--- /dev/null
+# ACPID config to power down machine if powerbutton is pressed
+
+event=button/power.*
+action=/etc/acpi/actions/power.sh
--- /dev/null
+#!/bin/sh
+
+# Shutdown the system immediately
+shutdown -h now
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.2.21 Kernel Configuration
+# Linux/arm 3.2.28-ipfire-omap Kernel Configuration
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
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_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_ALL_CODECS is not set
CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC32X4=m
CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_TLV320DAC33=m
CONFIG_SND_SOC_TWL4030=m
CONFIG_SND_SOC_TWL6040=m
-CONFIG_SND_SOC_UDA134X=m
-CONFIG_SND_SOC_UDA1380=m
-CONFIG_SND_SOC_WL1273=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_HID_SUPPORT=y
CONFIG_HID=y
--- /dev/null
+# port for HTTP (descriptions, SOAP, media transfer) traffic
+port=8200
+
+# network interfaces to serve, comma delimited
+network_interface=green0,blue0
+
+# set this to the directory you want scanned.
+# * if have multiple directories, you can have multiple media_dir= lines
+# * if you want to restrict a media_dir to a specific content type, you
+# can prepend the type, followed by a comma, to the directory:
+# + "A" for audio (eg. media_dir=A,/home/jmaggard/Music)
+# + "V" for video (eg. media_dir=V,/home/jmaggard/Videos)
+# + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
+media_dir=/var/mp3
+
+# set this if you want to customize the name that shows up on your clients
+#friendly_name=My DLNA Server
+
+# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
+db_dir=/var/cache/minidlna
+
+# set this if you would like to specify the directory where you want MiniDLNA to store its log file
+#log_dir=/var/log
+
+# set this to change the verbosity of the information that is logged
+# each section can use a different level: off, fatal, error, warn, info, or debug
+#log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn
+
+# this should be a list of file names to check for when searching for album art
+# note: names should be delimited with a forward slash ("/")
+album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
+
+# set this to no to disable inotify monitoring to automatically discover new files
+# note: the default is yes
+inotify=yes
+
+# set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
+enable_tivo=no
+
+# set this to strictly adhere to DLNA standards.
+# * This will allow server-side downscaling of very large JPEG images,
+# which may hurt JPEG serving performance on (at least) Sony DLNA products.
+strict_dlna=no
+
+# default presentation url is http address on port 80
+#presentation_url=http://www.mylan/index.php
+
+# notify interval in seconds. default is 895 seconds.
+notify_interval=900
+
+# serial and model number the daemon will report to clients
+# in its XML description
+serial=12345678
+model_number=1
+
+# specify the path to the MiniSSDPd socket
+#minissdpdsocket=/var/run/minissdpd.sock
+
+# use different container as root of the tree
+# possible values:
+# + "." - use standard container (this is the default)
+# + "B" - "Browse Directory"
+# + "M" - "Music"
+# + "V" - "Video"
+# + "P" - "Pictures"
+# if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
+#root_container=.
#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
-#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-2.12.so
lib/libBrokenLocale.so.1
#lib/libSegFault.so
-lib/libanl-2.5.so
+lib/libanl-2.12.so
lib/libanl.so.1
-lib/libc-2.5.so
+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-2.12.so
lib/libnss_hesiod.so.2
-lib/libnss_nis-2.5.so
+lib/libnss_nis-2.12.so
lib/libnss_nis.so.2
-lib/libnss_nisplus-2.5.so
+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/libutil-2.12.so
lib/libutil.so.1
sbin/ldconfig
#sbin/sln
#usr/bin/getent
#usr/bin/iconv
usr/bin/ldd
+#usr/bin/lddlibc4
#usr/bin/locale
#usr/bin/localedef
#usr/bin/mtrace
#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
#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
#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
#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/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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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/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/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/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
#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
#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
#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
#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
#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/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/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/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
#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
#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
#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
#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/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/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/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/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/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/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/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/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/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
#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
#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
#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
--- /dev/null
+#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
-#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
-#bin/[
+bin/[
bin/chgrp
bin/chmod
bin/chown
bin/date
bin/dd
bin/df
-bin/echo
bin/false
bin/head
bin/ln
#usr/bin/ptx
usr/bin/readlink
usr/bin/seq
-#usr/bin/sha1sum
+usr/bin/sha1sum
usr/bin/shred
usr/bin/sort
usr/bin/split
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
#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
+#usr/man/man1
#usr/man/man1/file.1
+#usr/man/man3
#usr/man/man3/libmagic.3
#usr/man/man4
#usr/man/man4/magic.4
+#usr/man/man5
#usr/share/file
usr/share/file/magic
usr/share/file/magic.mgc
-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
#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
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
#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
-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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
+#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
--- /dev/null
+usr/lib/libgmp.so.3
+usr/lib/libgmp.so.3.5.2
#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
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
+++ /dev/null
-#usr/man/man8/hddtemp.8
-usr/sbin/hddtemp
-#usr/share/locale/fr/LC_MESSAGES/hddtemp.mo
-#usr/share/locale/ru/LC_MESSAGES/hddtemp.mo
--- /dev/null
+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
#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
#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
#etc/ld.so.cache
etc/localtime
-#etc/rpc
-lib/ld-2.5.so
+etc/rpc
+lib/ld-2.12.so
lib/ld-linux.so.2
-lib/libBrokenLocale-2.5.so
+lib/libBrokenLocale-2.12.so
lib/libBrokenLocale.so.1
#lib/libSegFault.so
-lib/libanl-2.5.so
+lib/libanl-2.12.so
lib/libanl.so.1
-lib/libc-2.5.so
+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-2.12.so
lib/libnss_hesiod.so.2
-lib/libnss_nis-2.5.so
+lib/libnss_nis-2.12.so
lib/libnss_nis.so.2
-lib/libnss_nisplus-2.5.so
+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/libutil-2.12.so
lib/libutil.so.1
sbin/ldconfig
#sbin/sln
#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
#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
#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
#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/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
#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
#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
#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
#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/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
#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
#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
#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
#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
#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/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/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/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
#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
#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
#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
#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/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/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/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
#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
#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
#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
#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/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/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/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/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/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/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/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/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/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
#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
#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
#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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/WET
#usr/share/zoneinfo/right/Zulu
#usr/share/zoneinfo/zone.tab
+#var/cache/ldconfig
+#var/cache/ldconfig/aux-cache
#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
#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
#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
#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
#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
+++ /dev/null
-usr/sbin/iptstate
-#usr/share/man/man8/iptstate.8
+++ /dev/null
-#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
--- /dev/null
+#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
+++ /dev/null
-etc/ld.so.preload
-lib/libsafe.so.2
-lib/libsafe.so.2.0.16
-#usr/man/man8/libsafe.8
#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
#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
#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
#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
#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
#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
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
--- /dev/null
+#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
#usr/bin/nasm
#usr/bin/ndisasm
-#usr/man/man1/nasm.1
-#usr/man/man1/ndisasm.1
+#usr/share/man/man1/nasm.1
+#usr/share/man/man1/ndisasm.1
-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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
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
#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
#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
#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+
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
--- /dev/null
+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
-lib/libpcre.so.0
-lib/libpcre.so.0.0.1
#usr/bin/pcre-config
#usr/bin/pcregrep
#usr/bin/pcretest
#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
#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
#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
#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
#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
#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
#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
#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
#usr/share/man/man3/pcresample.3
#usr/share/man/man3/pcrestack.3
#usr/share/man/man3/pcresyntax.3
+#usr/share/man/man3/pcreunicode.3
--- /dev/null
+lib/libpcre.so.0
+lib/libpcre.so.0.0.1
--- /dev/null
+#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
-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
#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
--- /dev/null
+lib/libhistory.so.5
+lib/libhistory.so.5.2
+lib/libreadline.so.5
+lib/libreadline.so.5.2
+++ /dev/null
-#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
#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
#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
#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
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
#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
#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
bin/bash
bin/cat
-bin/grep
+bin/echo
bin/pwd
bin/stty
#boot
+dev/console
+dev/null
etc/bashrc
etc/certparams
etc/e2fsck.conf
etc/ipsec.user.secrets
etc/issue
etc/ld.so.conf
-etc/localtime
etc/logrotate.conf
etc/mime.types
etc/modprobe.d
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
usr/local/bin/setddns.pl
usr/local/bin/settime
usr/local/bin/timecheck
-#usr/local/bin/uname
#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
var/run/utmp
#var/spool
var/tmp
-dev/null
-dev/console
-tmp
-#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
+++ /dev/null
-#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
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/libz.so
+#usr/lib/pkgconfig
+#usr/lib/pkgconfig/zlib.pc
#usr/share/man/man3/zlib.3
etc/system-release
etc/issue
+srv/web/ipfire/cgi-bin/connections.cgi
+usr/lib/gconv
+++ /dev/null
-../common/libsafe
\ No newline at end of file
--- /dev/null
+../common/pcre
\ No newline at end of file
+++ /dev/null
-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
+++ /dev/null
-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
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/modprobe.d/dahdi.blacklist.conf
+etc/modprobe.d/dahdi.conf
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-hx8-2.06
lib/firmware/.dahdi-fw-oct6114-064-1.05.01
lib/firmware/.dahdi-fw-oct6114-128-1.05.01
+lib/firmware/.dahdi-fw-oct6114-256-1.05.01
lib/firmware/.dahdi-fw-tc400m-MR6.12
+lib/firmware/.dahdi-fw-te820-1.76
+lib/firmware/.dahdi-fw-vpmoct032-1.12.0
+lib/firmware/dahdi-fw-hx8.bin
lib/firmware/dahdi-fw-oct6114-064.bin
lib/firmware/dahdi-fw-oct6114-128.bin
+lib/firmware/dahdi-fw-oct6114-256.bin
lib/firmware/dahdi-fw-tc400m.bin
+lib/firmware/dahdi-fw-te820.bin
+lib/firmware/dahdi-fw-vpmoct032.bin
#usr/include/dahdi
#usr/include/dahdi/dahdi_config.h
#usr/include/dahdi/fasthdlc.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/hotplug/firmware/.dahdi-fw-hx8-2.06
+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-oct6114-256-1.05.01
+usr/lib/hotplug/firmware/.dahdi-fw-tc400m-MR6.12
+usr/lib/hotplug/firmware/.dahdi-fw-te820-1.76
+usr/lib/hotplug/firmware/.dahdi-fw-vpmoct032-1.12.0
+usr/lib/hotplug/firmware/dahdi-fw-hx8.bin
+usr/lib/hotplug/firmware/dahdi-fw-oct6114-064.bin
+usr/lib/hotplug/firmware/dahdi-fw-oct6114-128.bin
+usr/lib/hotplug/firmware/dahdi-fw-oct6114-256.bin
+usr/lib/hotplug/firmware/dahdi-fw-tc400m.bin
+usr/lib/hotplug/firmware/dahdi-fw-te820.bin
+usr/lib/hotplug/firmware/dahdi-fw-vpmoct032.bin
#usr/lib/libtonezone.a
-usr/lib/libtonezone.so
+#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
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
+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/Freepbxdb.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
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
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/sbin/dahdi_cfg
usr/sbin/dahdi_genconf
usr/sbin/dahdi_hardware
+usr/sbin/dahdi_maint
usr/sbin/dahdi_monitor
usr/sbin/dahdi_registration
usr/sbin/dahdi_scan
usr/sbin/twinstar
usr/sbin/xpp_blink
usr/sbin/xpp_sync
-#usr/share/dahdi
+usr/share/dahdi
usr/share/dahdi/FPGA_1141.hex
usr/share/dahdi/FPGA_1151.hex
+usr/share/dahdi/FPGA_1161.201.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.201.hex
usr/share/dahdi/USB_FW.hex
+usr/share/dahdi/USB_RECOV.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/init_card_5_30
usr/share/dahdi/waitfor_xpds
usr/share/dahdi/xpp_fxloader
#usr/share/man/man8/astribank_allow.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_maint.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/xpp_blink.8
#usr/share/man/man8/xpp_sync.8
#var/ipfire/asterisk
-#var/ipfire/asterisk/dahdi
+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
+var/ipfire/asterisk/hotplug
+var/ipfire/asterisk/hotplug/usb
+var/ipfire/asterisk/hotplug/usb/xpp_fxloader
+var/ipfire/asterisk/hotplug/usb/xpp_fxloader.usermap
--- /dev/null
+usr/bin/flac
+usr/bin/metaflac
+#usr/include/FLAC
+#usr/include/FLAC++
+#usr/include/FLAC++/all.h
+#usr/include/FLAC++/decoder.h
+#usr/include/FLAC++/encoder.h
+#usr/include/FLAC++/export.h
+#usr/include/FLAC++/metadata.h
+#usr/include/FLAC/all.h
+#usr/include/FLAC/assert.h
+#usr/include/FLAC/callback.h
+#usr/include/FLAC/export.h
+#usr/include/FLAC/format.h
+#usr/include/FLAC/metadata.h
+#usr/include/FLAC/ordinals.h
+#usr/include/FLAC/stream_decoder.h
+#usr/include/FLAC/stream_encoder.h
+#usr/lib/libFLAC++.a
+#usr/lib/libFLAC++.la
+#usr/lib/libFLAC++.so
+usr/lib/libFLAC++.so.6
+usr/lib/libFLAC++.so.6.2.0
+#usr/lib/libFLAC.a
+#usr/lib/libFLAC.la
+#usr/lib/libFLAC.so
+usr/lib/libFLAC.so.8
+usr/lib/libFLAC.so.8.2.0
+#usr/lib/pkgconfig/flac++.pc
+#usr/lib/pkgconfig/flac.pc
+#usr/man/man1/flac.1
+#usr/man/man1/metaflac.1
+#usr/share/aclocal/libFLAC++.m4
+#usr/share/aclocal/libFLAC.m4
+#usr/share/doc/flac-1.2.1
+#usr/share/doc/flac-1.2.1/FLAC.tag
+#usr/share/doc/flac-1.2.1/html
+#usr/share/doc/flac-1.2.1/html/api
+#usr/share/doc/flac-1.2.1/html/api/+_2all_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/+_2export_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/+_2export_8h.html
+#usr/share/doc/flac-1.2.1/html/api/+_2metadata_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/+_2metadata_8h.html
+#usr/share/doc/flac-1.2.1/html/api/all_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/annotated.html
+#usr/share/doc/flac-1.2.1/html/api/assert_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/callback_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/callback_8h.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1File-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1File.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1File.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream_1_1State-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Decoder_1_1Stream_1_1State.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1File-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1File.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1File.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream_1_1State-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Encoder_1_1Stream_1_1State.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Application-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Application.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Application.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Chain-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Chain.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Chain_1_1Status-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Chain_1_1Status.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet_1_1Track-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1CueSheet_1_1Track.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Iterator-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Iterator.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Padding-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Padding.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Padding.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Picture-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Picture.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Picture.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Prototype-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Prototype.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Prototype.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SeekTable-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SeekTable.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SeekTable.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SimpleIterator-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SimpleIterator.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SimpleIterator_1_1Status-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1SimpleIterator_1_1Status.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1StreamInfo-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1StreamInfo.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1StreamInfo.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Unknown-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Unknown.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1Unknown.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment.png
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment_1_1Entry-members.html
+#usr/share/doc/flac-1.2.1/html/api/classFLAC_1_1Metadata_1_1VorbisComment_1_1Entry.html
+#usr/share/doc/flac-1.2.1/html/api/classes.html
+#usr/share/doc/flac-1.2.1/html/api/decoder_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/decoder_8h.html
+#usr/share/doc/flac-1.2.1/html/api/dir_000000.html
+#usr/share/doc/flac-1.2.1/html/api/dir_000001.html
+#usr/share/doc/flac-1.2.1/html/api/dir_000002.html
+#usr/share/doc/flac-1.2.1/html/api/dirs.html
+#usr/share/doc/flac-1.2.1/html/api/doxygen.css
+#usr/share/doc/flac-1.2.1/html/api/doxygen.png
+#usr/share/doc/flac-1.2.1/html/api/encoder_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/encoder_8h.html
+#usr/share/doc/flac-1.2.1/html/api/export_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/export_8h.html
+#usr/share/doc/flac-1.2.1/html/api/files.html
+#usr/share/doc/flac-1.2.1/html/api/format_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/format_8h.html
+#usr/share/doc/flac-1.2.1/html/api/functions.html
+#usr/share/doc/flac-1.2.1/html/api/functions_func.html
+#usr/share/doc/flac-1.2.1/html/api/functions_vars.html
+#usr/share/doc/flac-1.2.1/html/api/globals.html
+#usr/share/doc/flac-1.2.1/html/api/globals_0x66.html
+#usr/share/doc/flac-1.2.1/html/api/globals_0x67.html
+#usr/share/doc/flac-1.2.1/html/api/globals_defs.html
+#usr/share/doc/flac-1.2.1/html/api/globals_enum.html
+#usr/share/doc/flac-1.2.1/html/api/globals_eval.html
+#usr/share/doc/flac-1.2.1/html/api/globals_func.html
+#usr/share/doc/flac-1.2.1/html/api/globals_type.html
+#usr/share/doc/flac-1.2.1/html/api/globals_vars.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__callbacks.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__decoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__encoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__export.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__format.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata__level0.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata__level1.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata__level2.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__metadata__object.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__stream__decoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flac__stream__encoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__decoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__encoder.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__export.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata__level0.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata__level1.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata__level2.html
+#usr/share/doc/flac-1.2.1/html/api/group__flacpp__metadata__object.html
+#usr/share/doc/flac-1.2.1/html/api/group__porting.html
+#usr/share/doc/flac-1.2.1/html/api/group__porting__1__1__2__to__1__1__3.html
+#usr/share/doc/flac-1.2.1/html/api/group__porting__1__1__3__to__1__1__4.html
+#usr/share/doc/flac-1.2.1/html/api/group__porting__1__1__4__to__1__2__0.html
+#usr/share/doc/flac-1.2.1/html/api/hierarchy.html
+#usr/share/doc/flac-1.2.1/html/api/index.html
+#usr/share/doc/flac-1.2.1/html/api/metadata_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/metadata_8h.html
+#usr/share/doc/flac-1.2.1/html/api/modules.html
+#usr/share/doc/flac-1.2.1/html/api/ordinals_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/stream__decoder_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/stream__decoder_8h.html
+#usr/share/doc/flac-1.2.1/html/api/stream__encoder_8h-source.html
+#usr/share/doc/flac-1.2.1/html/api/stream__encoder_8h.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod__PartitionedRice-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod__PartitionedRice.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod__PartitionedRiceContents-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____EntropyCodingMethod__PartitionedRiceContents.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Frame-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Frame.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____FrameFooter-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____FrameFooter.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____FrameHeader-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____FrameHeader.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____IOCallbacks-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____IOCallbacks.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamDecoder-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamDecoder.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamEncoder-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamEncoder.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Application-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Application.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet__Index-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet__Index.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet__Track-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__CueSheet__Track.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Padding-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Padding.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Picture-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Picture.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__SeekPoint-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__SeekPoint.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__SeekTable-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__SeekTable.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__StreamInfo-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__StreamInfo.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Unknown-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__Unknown.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__VorbisComment-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__VorbisComment.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__VorbisComment__Entry-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____StreamMetadata__VorbisComment__Entry.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Constant-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Constant.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Fixed-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Fixed.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__LPC-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__LPC.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Verbatim-members.html
+#usr/share/doc/flac-1.2.1/html/api/structFLAC____Subframe__Verbatim.html
+#usr/share/doc/flac-1.2.1/html/changelog.html
+#usr/share/doc/flac-1.2.1/html/comparison.html
+#usr/share/doc/flac-1.2.1/html/comparison__chopin_prelude_24.html
+#usr/share/doc/flac-1.2.1/html/comparison__dream_theater_600.html
+#usr/share/doc/flac-1.2.1/html/comparison__eddie_warner_titus.html
+#usr/share/doc/flac-1.2.1/html/comparison__fanfare_de_l_eventail_de_jeanne.html
+#usr/share/doc/flac-1.2.1/html/comparison__gloria_estefan_conga.html
+#usr/share/doc/flac-1.2.1/html/comparison__hand_in_my_pocket.html
+#usr/share/doc/flac-1.2.1/html/comparison__l_sub_raga_sivapriya.html
+#usr/share/doc/flac-1.2.1/html/comparison__laetatus_sum.html
+#usr/share/doc/flac-1.2.1/html/comparison__mummified_in_barbed_wire.html
+#usr/share/doc/flac-1.2.1/html/comparison__prokofiev_pcon3_3.html
+#usr/share/doc/flac-1.2.1/html/comparison__ravel_sq4_4.html
+#usr/share/doc/flac-1.2.1/html/comparison__scarlatti_k42.html
+#usr/share/doc/flac-1.2.1/html/comparison__tool_forty_six_and_2.html
+#usr/share/doc/flac-1.2.1/html/comparison__white_room.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_cpudectime.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_cpuenctime.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_procdectime.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_procenctime.html
+#usr/share/doc/flac-1.2.1/html/comparison_all_ratio.html
+#usr/share/doc/flac-1.2.1/html/developers.html
+#usr/share/doc/flac-1.2.1/html/documentation.html
+#usr/share/doc/flac-1.2.1/html/documentation_bugs.html
+#usr/share/doc/flac-1.2.1/html/documentation_example_code.html
+#usr/share/doc/flac-1.2.1/html/documentation_format_overview.html
+#usr/share/doc/flac-1.2.1/html/documentation_tasks.html
+#usr/share/doc/flac-1.2.1/html/documentation_tools.html
+#usr/share/doc/flac-1.2.1/html/documentation_tools_flac.html
+#usr/share/doc/flac-1.2.1/html/documentation_tools_metaflac.html
+#usr/share/doc/flac-1.2.1/html/documentation_tools_plugins.html
+#usr/share/doc/flac-1.2.1/html/download.html
+#usr/share/doc/flac-1.2.1/html/faq.html
+#usr/share/doc/flac-1.2.1/html/favicon.ico
+#usr/share/doc/flac-1.2.1/html/features.html
+#usr/share/doc/flac-1.2.1/html/flac.css
+#usr/share/doc/flac-1.2.1/html/format.html
+#usr/share/doc/flac-1.2.1/html/id.html
+#usr/share/doc/flac-1.2.1/html/images
+#usr/share/doc/flac-1.2.1/html/images/1x1.gif
+#usr/share/doc/flac-1.2.1/html/images/cafebug.gif
+#usr/share/doc/flac-1.2.1/html/images/hw
+#usr/share/doc/flac-1.2.1/html/images/hw/Blackbird_Front_low3_325x87.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/MS300frontsmall_270x108.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/MediaBox_Frt_170x325.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/SB_Hero_Black_325x182.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/Sooloos-ControlOne_325x328.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/Z500_front_325x94.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/a2_01_325x252.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/arcus_325x135.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/bmp-1430_325x241.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/cs505_front_lrg_325x113.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/enus_3-4lft-hires_product_eva8000_325x127.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/escient_ProductLine_325x163.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/hifidelio_bl_front_Z_RGB_325x163.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/i-station-mini-dx_325x237.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/iwod-g10_325x257.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/knc_hr-2800_325x209.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/mediaready_prodmain_MRMCa_325x232.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/meizu_m6_325x206.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/musica_artwork_325x90.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/neodigits_x5000_325x124.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/onda-vx737_325x240.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/request_n_front_325x103.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/rio_karma_279x254.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/sonos_family_RGB_325x200.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/teclast-tl29_325x244.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/transporter_hero_grey_325x208.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/tvix-4000_325x204.jpg
+#usr/share/doc/flac-1.2.1/html/images/hw/vibez_nofm_combi_black_b_325x220.jpg
+#usr/share/doc/flac-1.2.1/html/images/logo100.gif
+#usr/share/doc/flac-1.2.1/html/images/logo130.gif
+#usr/share/doc/flac-1.2.1/html/index.html
+#usr/share/doc/flac-1.2.1/html/itunes.html
+#usr/share/doc/flac-1.2.1/html/license.html
+#usr/share/doc/flac-1.2.1/html/links.html
+#usr/share/doc/flac-1.2.1/html/news.html
+#usr/share/doc/flac-1.2.1/html/ogg_mapping.html
+#usr/share/doc/flac-1.2.1/html/ru
+#usr/share/doc/flac-1.2.1/html/ru/authors.html
+#usr/share/doc/flac-1.2.1/html/ru/comparison.html
+#usr/share/doc/flac-1.2.1/html/ru/developers.html
+#usr/share/doc/flac-1.2.1/html/ru/documentation.html
+#usr/share/doc/flac-1.2.1/html/ru/download.html
+#usr/share/doc/flac-1.2.1/html/ru/features.html
+#usr/share/doc/flac-1.2.1/html/ru/format.html
+#usr/share/doc/flac-1.2.1/html/ru/goals.html
+#usr/share/doc/flac-1.2.1/html/ru/id.html
+#usr/share/doc/flac-1.2.1/html/ru/index.html
+#usr/share/doc/flac-1.2.1/html/ru/links.html
+#usr/share/doc/flac-1.2.1/html/ru/news.html
+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
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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
var/cache/gnump3d
var/cache/gnump3d/serving
var/log/gnump3d
-#var/mp3
var/mp3/info
-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
--- /dev/null
+#usr/include/libexif
+#usr/include/libexif/_stdint.h
+#usr/include/libexif/exif-byte-order.h
+#usr/include/libexif/exif-content.h
+#usr/include/libexif/exif-data-type.h
+#usr/include/libexif/exif-data.h
+#usr/include/libexif/exif-entry.h
+#usr/include/libexif/exif-format.h
+#usr/include/libexif/exif-ifd.h
+#usr/include/libexif/exif-loader.h
+#usr/include/libexif/exif-log.h
+#usr/include/libexif/exif-mem.h
+#usr/include/libexif/exif-mnote-data.h
+#usr/include/libexif/exif-tag.h
+#usr/include/libexif/exif-utils.h
+#usr/lib/libexif.la
+#usr/lib/libexif.so
+usr/lib/libexif.so.12
+usr/lib/libexif.so.12.3.3
+usr/lib/pkgconfig/libexif.pc
+#usr/share/doc/libexif
+#usr/share/doc/libexif/ABOUT-NLS
+#usr/share/doc/libexif/AUTHORS
+#usr/share/doc/libexif/COPYING
+#usr/share/doc/libexif/ChangeLog
+#usr/share/doc/libexif/NEWS
+#usr/share/doc/libexif/README
+#usr/share/locale/be/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/bs
+#usr/share/locale/bs/LC_MESSAGES
+#usr/share/locale/bs/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/cs/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/da/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/de/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/en_AU
+#usr/share/locale/en_AU/LC_MESSAGES
+#usr/share/locale/en_AU/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/en_CA
+#usr/share/locale/en_CA/LC_MESSAGES
+#usr/share/locale/en_CA/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/en_GB/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/es/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/fr/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/it/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/ja/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/nl/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/pl/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/pt
+#usr/share/locale/pt/LC_MESSAGES
+#usr/share/locale/pt/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/ru/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/sk/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/sq
+#usr/share/locale/sq/LC_MESSAGES
+#usr/share/locale/sq/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/sr
+#usr/share/locale/sr/LC_MESSAGES
+#usr/share/locale/sr/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/sv/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/tr/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/uk/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/vi/LC_MESSAGES/libexif-12.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/libexif-12.mo
#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
#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
#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
--- /dev/null
+etc/minidlna.conf
+usr/sbin/minidlna
+++ /dev/null
-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
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 -
+++ /dev/null
-#
-# 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
+++ /dev/null
-./charmaps/ASCII.pairs
-./charmaps/ISO-8859-1.pairs
+++ /dev/null
-@euro e
-@cyrillic c
-#---------------------------------------------------------------------------
-UTF-8 yes
-8-BIT yes
-#---------------------------------------------------------------------------
-en_US ISO-8859-1
-en_US.UTF-8 UTF-8
+++ /dev/null
-#
-# 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
}
}
+# Add Orange Firewall Interface
+push(@network, $netsettings{'ORANGE_ADDRESS'});
+push(@masklen, "255.255.255.255" );
+push(@colour, ${Header::colourfw} );
+
# Add Orange Network
if ($netsettings{'ORANGE_DEV'}) {
push(@network, $netsettings{'ORANGE_NETADDRESS'});
# Source and destination.
my $sip;
+ my $sip_ret;
my $dip;
+ my $dip_ret;
my $sport;
+ my $sport_ret;
my $dport;
+ my $dport_ret;
my @packets;
my @bytes;
switch ($key) {
case "src" {
- $sip = $val;
+ if ($sip == "") {
+ $sip = $val;
+ } else {
+ $dip_ret = $val;
+ }
}
case "dst" {
- $dip = $val;
+ if ($dip == "") {
+ $dip = $val;
+ } else {
+ $sip_ret = $val;
+ }
}
case "sport" {
- $sport = $val;
+ if ($sport == "") {
+ $sport = $val;
+ } else {
+ $dport_ret = $val;
+ }
}
case "dport" {
- $dport = $val;
+ if ($dport == "") {
+ $dport = $val;
+ } else {
+ $sport_ret = $val;
+ }
}
case "packets" {
push(@packets, $val);
my $sserv = '';
if ($sport < 1024) {
$sserv = uc(getservbyport($sport, lc($l4proto)));
- if ($sserv ne '') {
- $sserv = " ($sserv)";
- }
}
my $dserv = '';
if ($dport < 1024) {
$dserv = uc(getservbyport($dport, lc($l4proto)));
- if ($dserv ne '') {
- $dserv = " ($dserv)";
- }
}
my $bytes_in = format_bytes($bytes[0]);
# Format TTL
$ttl = format_time($ttl);
+ my $sip_extra;
+ if ($sip ne $sip_ret) {
+ $sip_extra = "<font color='#FFFFFF'>></font> ";
+ $sip_extra .= "<a href='/cgi-bin/ipinfo.cgi?ip=$sip_ret'>";
+ $sip_extra .= " <font color='#FFFFFF'>$sip_ret</font>";
+ $sip_extra .= "</a>";
+ }
+
+ my $dip_extra;
+ if ($dip ne $dip_ret) {
+ $dip_extra = "<font color='#FFFFFF'>></font> ";
+ $dip_extra .= "<a href='/cgi-bin/ipinfo.cgi?ip=$dip_ret'>";
+ $dip_extra .= " <font color='#FFFFFF'>$dip_ret</font>";
+ $dip_extra .= "</a>";
+ }
+
+
+ my $sport_extra;
+ if ($sport ne $sport_ret) {
+ my $sserv_ret = '';
+ if ($sport_ret < 1024) {
+ $sserv_ret = uc(getservbyport($sport_ret, lc($l4proto)));
+ }
+
+ $sport_extra = "<font color='#FFFFFF'>></font> ";
+ $sport_extra .= "<a href='http://isc.sans.org/port_details.php?port=$sport_ret' target='top' title='$sserv_ret'>";
+ $sport_extra .= " <font color='#FFFFFF'>$sport_ret</font>";
+ $sport_extra .= "</a>";
+ }
+
+ my $dport_extra;
+ if ($dport ne $dport_ret) {
+ my $dserv_ret = '';
+ if ($dport_ret < 1024) {
+ $dserv_ret = uc(getservbyport($dport_ret, lc($l4proto)));
+ }
+
+ $dport_extra = "<font color='#FFFFFF'>></font> ";
+ $dport_extra .= "<a href='http://isc.sans.org/port_details.php?port=$dport_ret' target='top' title='$dserv_ret'>";
+ $dport_extra .= " <font color='#FFFFFF'>$dport_ret</font>";
+ $dport_extra .= "</a>";
+ }
+
print <<END;
<tr>
<td align='center'>$l4proto</td>
<a href='/cgi-bin/ipinfo.cgi?ip=$sip'>
<font color='#FFFFFF'>$sip</font>
</a>
+ $sip_extra
</td>
<td align='center' bgcolor='$sip_colour'>
- <a href='http://isc.sans.org/port_details.php?port=$sport' target='top'>
- <font color='#FFFFFF'>$sport$sserv</font>
+ <a href='http://isc.sans.org/port_details.php?port=$sport' target='top' title='$sserv'>
+ <font color='#FFFFFF'>$sport</font>
</a>
+ $sport_extra
</td>
<td align='center' bgcolor='$dip_colour'>
<a href='/cgi-bin/ipinfo.cgi?ip=$dip'>
<font color='#FFFFFF'>$dip</font>
</a>
+ $dip_extra
</td>
<td align='center' bgcolor='$dip_colour'>
- <a href='http://isc.sans.org/port_details.php?port=$dport' target='top'>
- <font color='#FFFFFF'>$dport$dserv</font>
+ <a href='http://isc.sans.org/port_details.php?port=$dport' target='top' title='$dserv'>
+ <font color='#FFFFFF'>$dport</font>
</a>
+ $dport_extra
</td>
<td align='center'>
$bytes_in / $bytes_out
#
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
--- /dev/null
+###############################################################################
+# #
+# 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)
$(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/apcupsd-3.14.4-fix-gcc44.patch
cd $(DIR_APP) && ./configure --prefix=/usr --enable-usb --enable-cgi \
--with-cgi-bin=/srv/web/ipfire/cgi-bin
cd $(DIR_APP) && make $(MAKETUNING)
include Config
-VER = 3.1
+VER = 3.2
THISAPP = bash-$(VER)
DL_FILE = $(THISAPP).tar.gz
EXTRA_INSTALL =
endif
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
###############################################################################
# Top-level Rules
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ef5304c4b22aaa5088972c792ed45d72
+$(DL_FILE)_MD5 = 00bfa16d58e034e3c2aa27f390390d30
install : $(TARGET)
$(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
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
- CFLAGS =
- 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 \
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9d22ee4dafa3a194457caf4706f9cf01
+$(DL_FILE)_MD5 = ee0f10756c84979622b992a4a61ea3f5
install : $(TARGET)
@$(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
--- /dev/null
+###############################################################################
+# #
+# 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)
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)
include Config
-VER = 3.1.7
+VER = 3.1.8
THISAPP = ccache-$(VER)
DL_FILE = $(THISAPP).tar.bz2
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
###############################################################################
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 82257745eac54826527946e9e3d046f4
+$(DL_FILE)_MD5 = 0e0f25fb342dcb1196d9c2986a7323cf
install : $(TARGET)
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && CFLAGS="-O2 -static -DDEFAULT_MAXSIZE=5242880" ./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)
$(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)
$(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)
EXTRA_INSTALL =
endif
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
###############################################################################
# Top-level Rules
@$(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
$(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
VERSUFIX=ipfire$(KCFG)
-VER = 2.2.1
-TVER = 2.2.1
+VER = 2.6.1
+TVER = 2.6.1
DL_FILE = dahdi-linux-$(VER).tar.gz
DL_FILE1 = dahdi-tools-$(TVER).tar.gz
DIR_APP1 = $(DIR_SRC)/dahdi-tools-$(TVER)
PROG = dahdi
-PAK_VER = 2
+PAK_VER = 3
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
+objects = $(DL_FILE) $(DL_FILE1) dahdi-linux-2.6.1-firmware.tar.gz
$(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
+dahdi-linux-2.6.1-firmware.tar.gz = $(DL_FROM)/dahdi-linux-2.6.1-firmware.tar.gz
+$(DL_FILE)_MD5 = 75932fe3d4a6e656165aaaa7a1377305
+$(DL_FILE1)_MD5 = c2e4f476a8e7f96a5cad46dd9b648446
+dahdi-linux-2.6.1-firmware.tar.gz_MD5 = cb804d1b4dd1b644d3c1638daa12dcf5
install : $(TARGET)
@$(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)
+ cd $(DIR_SRC) && tar axf $(DIR_DL)/dahdi-linux-2.6.1-firmware.tar.gz
+ cd $(DIR_APP) && make $(MAKETUNING) clean all KVERS=$(KVER)-$(VERSUFIX)
ifeq "$(KMOD)" "1"
cd $(DIR_APP) && make install-modules KVERS=$(KVER)-$(VERSUFIX)
echo "dahdi_dummy" >> /etc/dahdi/modules
endif
@$(POSTBUILD)
-
@$(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)
$(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
THISAPP = fake-environ
DIR_APP = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP)-tools$(PASS)
+TARGET = $(DIR_INFO)/$(THISAPP)-tools
###############################################################################
# Top-level Rules
--- /dev/null
+###############################################################################
+# #
+# 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.2.1
+
+THISAPP = flac-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = flac
+PAK_VER = 1
+
+DEPS = "libogg"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 153c8b15a54da428d1f0fadc756c22c7
+
+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 axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-asm.patch
+ cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/flac-1.2.1-bitreader.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-cflags.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-gcc43.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-hidesyms.patch
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/flac-1.2.1-tests.patch
+ cd $(DIR_APP) && ./autogen.sh -V
+ cd $(DIR_APP) && \
+ ./configure \
+ --prefix=/usr \
+ --disable-xmms-plugin \
+ --disable-thorough-tests
+ cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+ cd $(DIR_APP) && make install
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = fontconfig
-PAK_VER = 1
-
-DEPS = ""
###############################################################################
# Top-level Rules
md5 : $(subst %,%_MD5,$(objects))
-dist:
- $(PAK)
-
###############################################################################
# Downloading, checking, md5sum
###############################################################################
EXTRA_INSTALL =
endif
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
+
###############################################################################
# Top-level Rules
###############################################################################
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 \
- --enable-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
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)
-ifeq "$(PASS)" "1"
- CFLAGS =
-endif
-
###############################################################################
# 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)
$(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 "$(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
-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
-
- cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
+ 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
include Config
-VER = 0.14.5
+VER = 0.18.1.1
THISAPP = gettext-$(VER)
DL_FILE = $(THISAPP).tar.gz
# 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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e2f6581626a22a0de66dce1d81d00de3
+$(DL_FILE)_MD5 = 3dd55b952826d2b32f51308f2f91aa89
install : $(TARGET)
@$(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
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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 846a86c74b74d5b16826aa5508940f9b
+$(DL_FILE)_MD5 = 9bd3ac535c24b6c162be13b2c43c5adc
+
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
-dist:
- @$(PAK)
-
###############################################################################
# Downloading, checking, md5sum
###############################################################################
$(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)
include Config
-VER = 2.5
+VER = 2.12-2-gc4ccff1
+PORTS_VER = 2.12.1
THISAPP = glibc-$(VER)
DL_FILE = $(THISAPP).tar.bz2
#
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.
--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
-$(DL_FILE)_MD5 = 1fb29764a6a650a4d5b409dda227ac9f
-glibc-libidn-$(VER).tar.bz2_MD5 = 8787868ba8962d9b125997ec2f25ac01
+$(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)
@$(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
- cd $(DIR_APP)/ports && patch -Np1 -i $(DIR_SRC)/src/patches/glibc-arm-dont-use-swp.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
+ # 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)" ""
- # 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
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 && make $(EXTRA_INSTALL) install
-else
- -mkdir /tools/etc
- touch /tools/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
-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
include Config
-VER = 4.2.4
+VER = 5.0.5
THISAPP = gmp-$(VER)
DL_FILE = $(THISAPP).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = fc1e3b3a2a5038d4d74138d0b9cf8dbe
+$(DL_FILE)_MD5 = 041487d25e9c230b0c42b106361055fe
install : $(TARGET)
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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 4381ccf9a38b08012dbdc3c0f28414fd
+$(DL_FILE)_MD5 = dd60683d7057917e34630b4a787932e8
install : $(TARGET)
md5 : $(subst %,%_MD5,$(objects))
-dist:
- $(PAK)
-
###############################################################################
# Downloading, checking, md5sum
###############################################################################
$(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)
include Config
-VER = 1.4.5
+VER = 1.4.12
THISAPP = gnupg-$(VER)
DL_FILE = $(THISAPP).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 811525965b4c0987e6418a7729a6444d
+$(DL_FILE)_MD5 = ce3742e5c7912559cab7894ad8ba7f6b
install : $(TARGET)
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)
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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 52202fe462770fa6be1bb667bd6cf30c
+$(DL_FILE)_MD5 = d4a3f03849d1e17ce56ab76aa5a24cab
install : $(TARGET)
$(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
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
SUP_ARCH = i586
-CFLAGS =
+CFLAGS = -O0 -fno-reorder-functions -fno-strict-aliasing -Wall -Werror \
+ -Wno-shadow -Wno-unused -Wno-pointer-sign
CXXFLAGS =
###############################################################################
$(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 \
+ --disable-auto-linux-mem-opt
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
include Config
-VER = 2.7.10
+VER = 3.12.6
THISAPP = hplip-$(VER)
DL_FILE = $(THISAPP).tar.gz
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = hplip
-PAK_VER = 1
+PAK_VER = 2
DEPS = ""
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = eafb815ca4b4bb5a2f35a76ee3c2dc72
+$(DL_FILE)_MD5 = 5303938e8630775ea6fb383af85775e5
install : $(TARGET)
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
$(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)
include Config
-VER = 0.9.6
+VER = 0.9.7
THISAPP = icecc-$(VER)
DL_FILE = $(THISAPP).tar.bz2
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = icecc
-PAK_VER = 2
+PAK_VER = 3
DEPS = ""
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c6dacb3f28eade45f603a99245cde4fd
+$(DL_FILE)_MD5 = c06900c2f4011428d0d48826a04f74fb
install : $(TARGET)
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/icecream-rename-scheduler.patch
+ cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/icecream-0.9.7-platform-arm.patch
cd $(DIR_APP) && ./configure \
--prefix=/opt/icecream
cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
$(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
@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 \
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)
###############################################################################
# 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)
$(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
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
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)
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
@$(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)
include Config
-VER = 0.3-beta14
+VER = 0.6.21
-THISAPP = hddtemp-$(VER)
+THISAPP = libexif-$(VER)
DL_FILE = $(THISAPP).tar.bz2
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = libexif
+PAK_VER = 1
+
+DEPS = ""
###############################################################################
# Top-level Rules
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = bbf8be4539495e18bec54af77511a680
+$(DL_FILE)_MD5 = 27339b89850f28c8f1c237f233e05b27
install : $(TARGET)
md5 : $(subst %,%_MD5,$(objects))
+dist:
+ @$(PAK)
+
###############################################################################
# Downloading, checking, md5sum
###############################################################################
$(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
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
+ cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+ cd $(DIR_APP) && make install
@rm -rf $(DIR_APP)
@$(POSTBUILD)
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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = d128b54e3cc04a6ee651c51682a497a9
-
+$(DL_FILE)_MD5 = f69b9693227d976835b4857b1ba7d0e3
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
dist:
- $(PAK)
+ @$(PAK)
###############################################################################
# Downloading, checking, md5sum
$(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)
$(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
$(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 \
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 = ""
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 10200ec22543841d9d1c23e0aed4e5e9
+$(DL_FILE)_MD5 = 84a35715170f2cd4c77a4448772b95d5
install : $(TARGET)
$(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
+++ /dev/null
-###############################################################################
-# #
-# 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)
include Config
-VER = 2.0.17
+VER = 2.0.18
THISAPP = libsigc++-$(VER)
DL_FILE = $(THISAPP).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = fde0ee69e3125e982746d9fe005763e1
+$(DL_FILE)_MD5 = ddebf5aafc8525d10366a8724abc9f28
install : $(TARGET)
$(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
include Config
-VER = 0.0.0-0db9d7f
+VER = 0.0.0-c02d759
THISAPP = libsolv-$(VER)
DL_FILE = $(THISAPP).tar.gz
PROG = libsolv
DEPS = ""
-PAK_VER = 1
+PAK_VER = 2
###############################################################################
# Top-level Rules
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ba95c404d807bc71297c508a7127a3d9
+$(DL_FILE)_MD5 = a8ba49ca49c309d61836fe78b0e0f83a
install : $(TARGET)
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)
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"
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 67beb237faf97d74782ec7071756b2b6
+$(DL_FILE)_MD5 = 71b649d3e08e63ece16649df906ce8b9
install : $(TARGET)
$(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)
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
+ 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-2f.tar.bz2 = $(URL_IPFIRE)/xen-patches-2.6.32-2f.tar.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-2f.tar.bz2_MD5 = b59d6f89e11accb9d40354418e13f31b
+xen-patches-2.6.32-2g.tar.bz2_MD5 = d259a847c9aa73cd6e5c3605d9657d66
install : $(TARGET)
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
+ 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]"; \
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
$(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)
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 =
--- /dev/null
+###############################################################################
+# #
+# 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.0.25
+
+THISAPP = minidlna-$(VER)
+DL_FILE = minidlna_$(VER)_src.tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+PROG = minidlna
+PAK_VER = 1
+
+DEPS = "ffmpeg flac libexif libid3tag libogg"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d966256baf2f9b068b9de871ab5dade5
+
+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 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
+
+ # Install configuration.
+ install -m 644 $(DIR_SRC)/config/minidlna/minidlna.conf /etc
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
include Config
-VER = 1.4
+VER = 1.7
THISAPP = miniupnpd-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ffa33d4ed8732c662bdb7d511e86db76
+$(DL_FILE)_MD5 = 5af9e8332d34a7b490d0d2ed3e674196
install : $(TARGET)
$(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) && patch -Np1 -i $(DIR_SRC)/src/patches/miniupnpd-1.4_use_XT_ALIGN.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
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
$(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; \
-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)
include Config
-VER = 2.1
+VER = 2.4.2
-THISAPP = iptstate-$(VER)
+THISAPP = mpfr-$(VER)
DL_FILE = $(THISAPP).tar.bz2
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c99e19c66645689b44a871428e003ec7
+$(DL_FILE)_MD5 = 89e59fe665e2b3ad44a6789f40b059a0
install : $(TARGET)
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+ 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)
include Config
-VER = 0.98.39
+VER = 2.10.03
THISAPP = nasm-$(VER)
-DL_FILE = $(THISAPP).tar.bz2
+DL_FILE = $(THISAPP).tar.xz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2032ad44c7359f7a9a166a40a633e772
+$(DL_FILE)_MD5 = a5d0ed070476a7c5b4f0893dc4a4ea4b
install : $(TARGET)
$(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/$(THISAPP)-security_fix-1.patch
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
include Config
-VER = 5.5
+VER = 5.9
THISAPP = ncurses-$(VER)
DL_FILE = $(THISAPP).tar.gz
#
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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e73c1ac10b4bfc46db43b2ddfd6244ef
+$(DL_FILE)_MD5 = 8cb9c412e5f2d96bc6f459aa8c6282a1
install : $(TARGET)
$(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)
$(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
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
@$(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)
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
###############################################################################
$(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)
--- /dev/null
+###############################################################################
+# #
+# 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)
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
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 = ""
$(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)
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)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b
+$(DL_FILE)_MD5 = fab1bb3b91a4c35398263a5c1e0858c1
install : $(TARGET)
$(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)
include Config
-VER = 1.0.6
+VER = 7.7
-THISAPP = reiser4progs-$(VER)
+THISAPP = pcre-$(VER)
DL_FILE = $(THISAPP).tar.bz2
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = d408cfeac40c266623bd51afa008caf6
+$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b
install : $(TARGET)
$(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 --prefix=/usr --enable-utf8
cd $(DIR_APP) && make $(MAKETUNING)
- cd $(DIR_APP) && make install
+
+ 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)
include Config
-VER = 5.3.14
+VER = 5.3.15
THISAPP = php-$(VER)
DL_FILE = $(THISAPP).tar.bz2
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
+ifeq "$(MACHINE_TYPE)" "arm"
+ CFLAGS := $(patsubst -march=%,,$(CFLAGS))
+endif
+
###############################################################################
# Top-level Rules
###############################################################################
idn-0.1.tgz = $(DL_FROM)/idn-0.1.tgz
Log-1.9.11.tgz = $(DL_FROM)/Log-1.9.11.tgz
-$(DL_FILE)_MD5 = 7caac4f71e2f21426c11ac153e538392
+$(DL_FILE)_MD5 = 5cfcfd0fa4c4da7576f397073e7993cc
idn-0.1.tgz_MD5 = ef8635ec22348325a76abd2abddca4a1
Log-1.9.11.tgz_MD5 = fb7c648b212f12fdb5ce1ab687793513
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)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6c55201acd2a2c0a1f46addf248da6a2
+$(DL_FILE)_MD5 = 6563b6400b9fa23b47fd52105faf72b4
install : $(TARGET)
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
$(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)
DEPS = "amavisd mysql"
+# Fake kernel release
+export UTS_RELEASE = 2.6.32-ipfire
+
###############################################################################
# Top-level Rules
###############################################################################
$(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)
$(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)
include Config
-VER = 5.1
+VER = 6.2
THISAPP = readline-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7ee5a692db88b30ca48927a13fd60e46
+$(DL_FILE)_MD5 = 67948acb2ca081f23359d0256e9a271c
install : $(TARGET)
$(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)
# #
###############################################################################
-
###############################################################################
# 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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = dc4ac444ff9ec9e1e841e856564d0234
+$(DL_FILE)_MD5 = e39331f32ad14009b9ff49cc10c5e751
install : $(TARGET)
md5 : $(subst %,%_MD5,$(objects))
-dist:
- @$(PAK)
-
###############################################################################
# Downloading, checking, md5sum
###############################################################################
$(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)
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
$(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)
include Config
-VER = 1.2.30
+VER = 1.4.7
THISAPP = rrdtool-$(VER)
DL_FILE = $(THISAPP).tar.gz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 19b24f7184a8dbf7b48c1bbb565ad9fb
+$(DL_FILE)_MD5 = ffe369d8921b4dfdeaaf43812100c38f
install : $(TARGET)
$(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/
$(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)
include Config
-VER = 4.1.5
+VER = 4.2.1
THISAPP = sed-$(VER)
DL_FILE = $(THISAPP).tar.gz
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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7a1cbbbb3341287308e140bd4834c3ba
+$(DL_FILE)_MD5 = f0fd4d7da574d4707e442285fd2d3b86
install : $(TARGET)
$(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)
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
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
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)
# 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
###############################################################################
$(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
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
$(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)
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
$(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)
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
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
@$(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
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)
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)
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
$(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)
$(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
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
$(DL_FILE)_MD5 = cc4044fcc073b8bcf3164d1d0df82161
-
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(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)
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
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = dee233bf288ee795ac96a98cc2e369b6
+$(DL_FILE)_MD5 = 60df6a37c56e7c1366cca812414f7b85
install : $(TARGET)
$(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)
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=4
+TOOLCHAINVER=5
BUILDMACHINE=$MACHINE
if [ "$MACHINE" = "x86_64" ]; then
BUILDMACHINE="i686";
- linux32="linux32";
fi
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
local error=false
case "${MACHINE}:$(uname -m)" in
# x86
- i586:i586|i586:i686)
+ i586:i586|i586:i686|i586:x86_64)
# These are working.
;;
i586:*)
${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."
- fi
-
- if [ ! -e /usr/include/asm -o ! -e /usr/include/bits -o ! -e /usr/include/gnu -o ! -e /usr/include/sys ]; then
- exiterror "Cannot build toolchain without (asm, bits, gnu or sys includes). Please fix or use the download."
- fi
-
- if [ ! -e /usr/lib/libc.so ]; then
- exiterror "Cannot build toolchain without (/usr/lib/libc.so). Please fix or 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 linux2 TOOLS=1 HEADERS=1
- lfsmake1 binutils PASS=1
- lfsmake1 gcc PASS=1
- export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
+
+ 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
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
}
LOGFILE="$BASEDIR/log/_build.base.log"
export LOGFILE
lfsmake2 stage2
- lfsmake2 linux2 HEADERS=1
+ 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
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
lfsmake2 diffutils
lfsmake2 e2fsprogs
lfsmake2 ed
- lfsmake2 file
lfsmake2 findutils
lfsmake2 flex
lfsmake2 gawk
lfsmake2 iproute2
lfsmake2 kbd
lfsmake2 less
- lfsmake2 libaal
lfsmake2 make
lfsmake2 man
lfsmake2 mktemp
lfsmake2 net-tools
lfsmake2 patch
lfsmake2 psmisc
- lfsmake2 reiser4progs
lfsmake2 shadow
lfsmake2 sysklogd
lfsmake2 sysvinit
lfsmake2 udev
lfsmake2 util-linux
lfsmake2 vim
+ lfsmake2 xz
lfsmake2 grub
}
ipfiremake pptp
ipfiremake unzip
ipfiremake which
- ipfiremake xz
ipfiremake linux-firmware
ipfiremake zd1211-firmware
ipfiremake rpi-firmware
ipfiremake linux2 KCFG="-xen"
# ipfiremake v4l-dvb KCFG="-xen"
# ipfiremake mISDN KCFG="-xen"
-# ipfiremake dahdi KCFG="-xen" KMOD=1
+ ipfiremake dahdi KCFG="-xen" KMOD=1
ipfiremake cryptodev KCFG="-xen"
ipfiremake compat-wireless KCFG="-xen"
# ipfiremake r8169 KCFG="-xen"
# ipfiremake v4l-dvb KCFG="-pae"
ipfiremake alsa KCFG="-pae" KMOD=1
# ipfiremake mISDN KCFG="-pae"
-# ipfiremake dahdi KCFG="-pae" KMOD=1
+ ipfiremake dahdi KCFG="-pae" KMOD=1
ipfiremake cryptodev KCFG="-pae"
ipfiremake compat-wireless KCFG="-pae"
# ipfiremake r8169 KCFG="-pae"
# ipfiremake v4l-dvb KCFG=""
ipfiremake alsa KCFG="" KMOD=1
# ipfiremake mISDN KCFG=""
-# ipfiremake dahdi KCFG="" KMOD=1
+ ipfiremake dahdi KCFG="" KMOD=1
ipfiremake cryptodev KCFG=""
ipfiremake compat-wireless KCFG=""
# ipfiremake r8169 KCFG=""
ipfiremake dracut
ipfiremake expat
ipfiremake gdbm
- ipfiremake gmp
ipfiremake pam
ipfiremake openssl
ipfiremake curl
ipfiremake libnl
ipfiremake libidn
ipfiremake libjpeg
+ ipfiremake libexif
ipfiremake libpng
ipfiremake libtiff
ipfiremake libart
ipfiremake iptables
ipfiremake libupnp
ipfiremake ipaddr
- ipfiremake iptstate
ipfiremake iputils
ipfiremake l7-protocols
ipfiremake mISDNuser
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 freefont
+ ipfiremake pixman
+ ipfiremake cairo
+ ipfiremake pango
ipfiremake rrdtool
ipfiremake setserial
ipfiremake setup
ipfiremake traceroute
ipfiremake vlan
ipfiremake wireless
- ipfiremake libsafe
ipfiremake pakfire
ipfiremake spandsp
ipfiremake lzo
ipfiremake wget
ipfiremake bridge-utils
ipfiremake screen
- ipfiremake hddtemp
ipfiremake smartmontools
ipfiremake htop
-# ipfiremake postfix # unknown system type linux 3.2.x
+ ipfiremake postfix
ipfiremake fetchmail
ipfiremake cyrus-imapd
ipfiremake openmailadmin
ipfiremake libogg
ipfiremake libvorbis
ipfiremake libdvbpsi
+ ipfiremake flac
ipfiremake lame
ipfiremake sox
ipfiremake libshout
ipfiremake cmake
ipfiremake gnump3d
ipfiremake libsigc++
- ipfiremake applejuice
ipfiremake libtorrent
ipfiremake rtorrent
ipfiremake ipfireseeder
ipfiremake vsftpd
ipfiremake strongswan
ipfiremake lsof
- ipfiremake centerim
ipfiremake br2684ctl
ipfiremake pcmciautils
ipfiremake lm_sensors
ipfiremake nagios
ipfiremake nagios_nrpe
ipfiremake ebtables
- ipfiremake fontconfig
- ipfiremake freefont
ipfiremake directfb
ipfiremake dfb++
ipfiremake faad2
ipfiremake netcat
ipfiremake 7zip
ipfiremake lynis
- ipfiremake splix
ipfiremake streamripper
ipfiremake sshfs
ipfiremake taglib
ipfiremake nut
ipfiremake watchdog
ipfiremake libpri
-# ipfiremake dahdi # update needed for 3.2.x
-# ipfiremake asterisk
-# ipfiremake lcr
+ ipfiremake dahdi
+ ipfiremake asterisk
+ ipfiremake lcr
ipfiremake usb_modeswitch
ipfiremake usb_modeswitch_data
ipfiremake zerofree
ipfiremake minicom
ipfiremake ddrescue
ipfiremake imspector
-# ipfiremake miniupnpd # will not build
+ ipfiremake miniupnpd
ipfiremake client175
ipfiremake powertop
ipfiremake parted
ipfiremake lcd4linux
ipfiremake mtr
ipfiremake tcpick
+ ipfiremake minidlna
+ ipfiremake acpid
echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
echo >> $BASEDIR/build/var/ipfire/firebuild
ipfiremake mbr
ipfiremake memtest
ipfiremake installer
- cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/
installmake strip
ipfiremake initrd
}
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
$(CC) $(CFLAGS) -o $@ -c $<
$(LIB): $(OBJECTS)
- $(CC) $(CFLAGS) -shared -o $@ $? -ldl
+ $(CC) $(CFLAGS) -shared -o $@ $? -ldl -static-libgcc
.PHONY: install
install: all
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)
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_part);
+ 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])) {
# scan sd?
echo "--> sd?"
-for DEVICE in `find /sys/block/* -maxdepth 0 -name sd* -exec basename {} \; | sort | uniq`
+for DEVICE in `find /sys/block/* -maxdepth 0 -name sd* -or -name vd* -exec basename {} \; | sort | uniq`
do
if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
umount /harddisk 2> /dev/null
CC = gcc
CFLAGS = -O2 -Wall
-INCLUDE = -I/opt/i586-uClibc/include
+INCLUDE =
LD = ld
LDFLAGS = -i
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 \
+++ /dev/null
-/* 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;
-}
-
+++ /dev/null
-#!/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
+++ /dev/null
-#!/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
-/etc/init.d/applejuice stop
-remove_files
-rm -rf /etc/rc.d/rc*.d/*applejuice
+++ /dev/null
-#!/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
--- /dev/null
+diff -up apcupsd-3.14.5/src/apcaccess.c.gcc44 apcupsd-3.14.5/src/apcaccess.c
+--- apcupsd-3.14.5/src/apcaccess.c.gcc44 2009-02-24 10:36:35.781325750 +0100
++++ apcupsd-3.14.5/src/apcaccess.c 2009-02-24 10:38:12.416285478 +0100
+@@ -86,10 +86,10 @@ int main(int argc, char **argv)
+ }
+
+ if (argc > 2) { /* assume host:port */
+- char *p;
++ char *p = argv[2];
+
+- host = argv[2];
+- p = strchr(host, ':');
++ host = p;
++ p = strchr(p, ':');
+ if (p) {
+ *p++ = 0;
+ port = atoi(p);
+++ /dev/null
-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);
+++ /dev/null
---- 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++;
- }
-
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
+
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
+
+
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
+
+
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
+
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
--- /dev/null
+ 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_ */
+++ /dev/null
-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"
--- /dev/null
+--- 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)
+ {
--- /dev/null
+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,
--- /dev/null
+--- 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);
+
--- /dev/null
+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>
--- /dev/null
+diff -up flac-1.2.1/src/libFLAC/stream_decoder.c.asm flac-1.2.1/src/libFLAC/stream_decoder.c
+--- flac-1.2.1/src/libFLAC/stream_decoder.c.asm 2007-09-13 17:38:05.000000000 +0200
++++ flac-1.2.1/src/libFLAC/stream_decoder.c 2008-01-29 10:32:17.000000000 +0100
+@@ -421,7 +421,7 @@ static FLAC__StreamDecoderInitStatus ini
+ #ifdef FLAC__CPU_IA32
+ FLAC__ASSERT(decoder->private_->cpuinfo.type == FLAC__CPUINFO_TYPE_IA32);
+ #ifdef FLAC__HAS_NASM
+-#if 1 /*@@@@@@ OPT: not clearly faster, needs more testing */
++#if 0 /*@@@@@@ OPT: not clearly faster, needs more testing */
+ if(decoder->private_->cpuinfo.data.ia32.bswap)
+ decoder->private_->local_bitreader_read_rice_signed_block = FLAC__bitreader_read_rice_signed_block_asm_ia32_bswap;
+ #endif
+diff -up flac-1.2.1/src/libFLAC/ia32/lpc_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/lpc_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/lpc_asm.nasm.asm 2007-03-22 05:13:05.000000000 +0100
++++ flac-1.2.1/src/libFLAC/ia32/lpc_asm.nasm 2008-01-29 10:34:09.000000000 +0100
+@@ -1507,5 +1507,5 @@ cident FLAC__lpc_restore_signal_asm_ia32
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
+diff -up flac-1.2.1/src/libFLAC/ia32/Makefile.am.asm flac-1.2.1/src/libFLAC/ia32/Makefile.am
+--- flac-1.2.1/src/libFLAC/ia32/Makefile.am.asm 2007-04-04 02:01:13.000000000 +0200
++++ flac-1.2.1/src/libFLAC/ia32/Makefile.am 2008-03-17 14:04:37.000000000 +0100
+@@ -37,7 +37,6 @@ STRIP_NON_ASM = sh $(top_srcdir)/strip_n
+
+ noinst_LTLIBRARIES = libFLAC-asm.la
+ libFLAC_asm_la_SOURCES = \
+- bitreader_asm.nasm \
+ cpu_asm.nasm \
+ fixed_asm.nasm \
+ lpc_asm.nasm \
+diff -up flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm.asm 2007-03-30 02:54:53.000000000 +0200
++++ flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm 2008-01-29 10:32:57.000000000 +0100
+@@ -564,5 +564,5 @@ cident FLAC__bitreader_read_rice_signed_
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
+diff -up flac-1.2.1/src/libFLAC/ia32/fixed_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/fixed_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/fixed_asm.nasm.asm 2007-03-22 05:13:05.000000000 +0100
++++ flac-1.2.1/src/libFLAC/ia32/fixed_asm.nasm 2008-01-29 10:33:52.000000000 +0100
+@@ -308,5 +308,5 @@ cident FLAC__fixed_compute_best_predicto
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
+diff -up flac-1.2.1/src/libFLAC/ia32/cpu_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/cpu_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/cpu_asm.nasm.asm 2007-03-22 05:13:05.000000000 +0100
++++ flac-1.2.1/src/libFLAC/ia32/cpu_asm.nasm 2008-01-29 10:33:24.000000000 +0100
+@@ -117,5 +117,5 @@ cident FLAC__cpu_info_extended_amd_asm_i
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
+diff -up flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm.asm flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm.asm 2007-06-19 22:01:27.000000000 +0200
++++ flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm 2008-01-29 10:34:40.000000000 +0100
+@@ -155,5 +155,5 @@ cident precompute_partition_info_sums_32
+ end
+
+ %ifdef OBJ_FORMAT_elf
+- section .note.GNU-stack noalloc
++ section .note.GNU-stack progbits noalloc noexec nowrite align=1
+ %endif
--- /dev/null
+Index: src/libFLAC/bitreader.c
+===================================================================
+RCS file: /cvsroot/flac/flac/src/libFLAC/bitreader.c,v
+retrieving revision 1.15
+diff -u -r1.15 bitreader.c
+--- src/libFLAC/bitreader.c 28 Feb 2008 05:34:26 -0000 1.15
++++ src/libFLAC/bitreader.c 14 Mar 2008 11:07:07 -0000
+@@ -69,13 +69,12 @@
+ #endif
+ /* counts the # of zero MSBs in a word */
+ #define COUNT_ZERO_MSBS(word) ( \
+- (word) <= 0xffff ? \
+- ( (word) <= 0xff? byte_to_unary_table[word] + 24 : byte_to_unary_table[(word) >> 8] + 16 ) : \
+- ( (word) <= 0xffffff? byte_to_unary_table[word >> 16] + 8 : byte_to_unary_table[(word) >> 24] ) \
++ word > 0xffffff ? byte_to_unary_table[(word) >> 24] : \
++ !word ? 32 : \
++ word > 0xffff ? byte_to_unary_table[word >> 16] + 8 : \
++ word > 0xff ? byte_to_unary_table[(word) >> 8] + 16 : \
++ byte_to_unary_table[word] + 24 \
+ )
+-/* this alternate might be slightly faster on some systems/compilers: */
+-#define COUNT_ZERO_MSBS2(word) ( (word) <= 0xff ? byte_to_unary_table[word] + 24 : ((word) <= 0xffff ? byte_to_unary_table[(word) >> 8] + 16 : ((word) <= 0xffffff ? byte_to_unary_table[(word) >> 16] + 8 : byte_to_unary_table[(word) >> 24])) )
+-
+
+ /*
+ * This should be at least twice as large as the largest number of words
+Index: src/libFLAC/bitreader.c
+===================================================================
+RCS file: /cvsroot/flac/flac/src/libFLAC/bitreader.c,v
+retrieving revision 1.15
+diff -u -r1.15 bitreader.c
+--- src/libFLAC/bitreader.c 28 Feb 2008 05:34:26 -0000 1.15
++++ src/libFLAC/bitreader.c 14 Mar 2008 13:19:46 -0000
+@@ -149,6 +148,7 @@
+ FLAC__CPUInfo cpu_info;
+ };
+
++#if FLAC__BYTES_PER_WORD == 4 && FLAC__CPU_IA32
+ #ifdef _MSC_VER
+ /* OPT: an MSVC built-in would be better */
+ static _inline FLAC__uint32 local_swap32_(FLAC__uint32 x)
+@@ -173,6 +173,15 @@
+ done1:
+ }
+ }
++#elif __GNUC__
++static void local_swap32_block_(FLAC__uint32 *start, FLAC__uint32 len)
++{
++ FLAC__uint32 *end;
++
++ for(end = start + len; start < end; start++)
++ asm ("bswap %0" : "=r"(*start) : "0"(*start));
++}
++#endif
+ #endif
+
+ static FLaC__INLINE void crc16_update_word_(FLAC__BitReader *br, brword word)
+@@ -263,7 +272,7 @@
+ #if WORDS_BIGENDIAN
+ #else
+ end = (br->words*FLAC__BYTES_PER_WORD + br->bytes + bytes + (FLAC__BYTES_PER_WORD-1)) / FLAC__BYTES_PER_WORD;
+-# if defined(_MSC_VER) && (FLAC__BYTES_PER_WORD == 4)
++# if FLAC__CPU_IA32 && (__GNUC__ || defined(_MSC_VER)) && FLAC__BYTES_PER_WORD == 4
+ if(br->cpu_info.type == FLAC__CPUINFO_TYPE_IA32 && br->cpu_info.data.ia32.bswap) {
+ start = br->words;
+ local_swap32_block_(br->buffer + start, end - start);
+Index: src/libFLAC/bitreader.c
+===================================================================
+RCS file: /cvsroot/flac/flac/src/libFLAC/bitreader.c,v
+retrieving revision 1.15
+diff -u -r1.15 bitreader.c
+--- src/libFLAC/bitreader.c 28 Feb 2008 05:34:26 -0000 1.15
++++ src/libFLAC/bitreader.c 17 Mar 2008 15:42:57 -0000
+@@ -803,379 +812,144 @@
+ }
+
+ /* this is by far the most heavily used reader call. it ain't pretty but it's fast */
+-/* a lot of the logic is copied, then adapted, from FLAC__bitreader_read_unary_unsigned() and FLAC__bitreader_read_raw_uint32() */
+ FLAC__bool FLAC__bitreader_read_rice_signed_block(FLAC__BitReader *br, int vals[], unsigned nvals, unsigned parameter)
+-/* OPT: possibly faster version for use with MSVC */
+-#ifdef _MSC_VER
+ {
+- unsigned i;
+- unsigned uval = 0;
+- unsigned bits; /* the # of binary LSBs left to read to finish a rice codeword */
+-
+ /* try and get br->consumed_words and br->consumed_bits into register;
+ * must remember to flush them back to *br before calling other
+- * bitwriter functions that use them, and before returning */
+- register unsigned cwords;
+- register unsigned cbits;
++ * bitreader functions that use them, and before returning */
++ unsigned cwords, words, lsbs, msbs, x, y;
++ unsigned ucbits; /* keep track of the number of unconsumed bits in word */
++ brword b;
++ int *val, *end;
+
+ FLAC__ASSERT(0 != br);
+ FLAC__ASSERT(0 != br->buffer);
+ /* WATCHOUT: code does not work with <32bit words; we can make things much faster with this assertion */
+ FLAC__ASSERT(FLAC__BITS_PER_WORD >= 32);
+ FLAC__ASSERT(parameter < 32);
+- /* the above two asserts also guarantee that the binary part never straddles more that 2 words, so we don't have to loop to read it */
+-
+- if(nvals == 0)
+- return true;
+-
+- cbits = br->consumed_bits;
+- cwords = br->consumed_words;
++ /* the above two asserts also guarantee that the binary part never straddles more than 2 words, so we don't have to loop to read it */
+
+- while(1) {
++ val = vals;
++ end = vals + nvals;
+
+- /* read unary part */
+- while(1) {
+- while(cwords < br->words) { /* if we've not consumed up to a partial tail word... */
+- brword b = br->buffer[cwords] << cbits;
+- if(b) {
+-#if 0 /* slower, probably due to bad register allocation... */ && defined FLAC__CPU_IA32 && !defined FLAC__NO_ASM && FLAC__BITS_PER_WORD == 32
+- __asm {
+- bsr eax, b
+- not eax
+- and eax, 31
+- mov i, eax
+- }
+-#else
+- i = COUNT_ZERO_MSBS(b);
+-#endif
+- uval += i;
+- bits = parameter;
+- i++;
+- cbits += i;
+- if(cbits == FLAC__BITS_PER_WORD) {
+- crc16_update_word_(br, br->buffer[cwords]);
+- cwords++;
+- cbits = 0;
+- }
+- goto break1;
+- }
+- else {
+- uval += FLAC__BITS_PER_WORD - cbits;
+- crc16_update_word_(br, br->buffer[cwords]);
+- cwords++;
+- cbits = 0;
+- /* didn't find stop bit yet, have to keep going... */
+- }
+- }
+- /* at this point we've eaten up all the whole words; have to try
+- * reading through any tail bytes before calling the read callback.
+- * this is a repeat of the above logic adjusted for the fact we
+- * don't have a whole word. note though if the client is feeding
+- * us data a byte at a time (unlikely), br->consumed_bits may not
+- * be zero.
+- */
+- if(br->bytes) {
+- const unsigned end = br->bytes * 8;
+- brword b = (br->buffer[cwords] & (FLAC__WORD_ALL_ONES << (FLAC__BITS_PER_WORD-end))) << cbits;
+- if(b) {
+- i = COUNT_ZERO_MSBS(b);
+- uval += i;
+- bits = parameter;
+- i++;
+- cbits += i;
+- FLAC__ASSERT(cbits < FLAC__BITS_PER_WORD);
+- goto break1;
+- }
+- else {
+- uval += end - cbits;
+- cbits += end;
+- FLAC__ASSERT(cbits < FLAC__BITS_PER_WORD);
+- /* didn't find stop bit yet, have to keep going... */
+- }
+- }
+- /* flush registers and read; bitreader_read_from_client_() does
+- * not touch br->consumed_bits at all but we still need to set
+- * it in case it fails and we have to return false.
+- */
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- if(!bitreader_read_from_client_(br))
++ if(parameter == 0) {
++ while(val < end) {
++ /* read the unary MSBs and end bit */
++ if(!FLAC__bitreader_read_unary_unsigned(br, &msbs))
+ return false;
+- cwords = br->consumed_words;
+- }
+-break1:
+- /* read binary part */
+- FLAC__ASSERT(cwords <= br->words);
+-
+- if(bits) {
+- while((br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits < bits) {
+- /* flush registers and read; bitreader_read_from_client_() does
+- * not touch br->consumed_bits at all but we still need to set
+- * it in case it fails and we have to return false.
+- */
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- if(!bitreader_read_from_client_(br))
+- return false;
+- cwords = br->consumed_words;
+- }
+- if(cwords < br->words) { /* if we've not consumed up to a partial tail word... */
+- if(cbits) {
+- /* this also works when consumed_bits==0, it's just a little slower than necessary for that case */
+- const unsigned n = FLAC__BITS_PER_WORD - cbits;
+- const brword word = br->buffer[cwords];
+- if(bits < n) {
+- uval <<= bits;
+- uval |= (word & (FLAC__WORD_ALL_ONES >> cbits)) >> (n-bits);
+- cbits += bits;
+- goto break2;
+- }
+- uval <<= n;
+- uval |= word & (FLAC__WORD_ALL_ONES >> cbits);
+- bits -= n;
+- crc16_update_word_(br, word);
+- cwords++;
+- cbits = 0;
+- if(bits) { /* if there are still bits left to read, there have to be less than 32 so they will all be in the next word */
+- uval <<= bits;
+- uval |= (br->buffer[cwords] >> (FLAC__BITS_PER_WORD-bits));
+- cbits = bits;
+- }
+- goto break2;
+- }
+- else {
+- FLAC__ASSERT(bits < FLAC__BITS_PER_WORD);
+- uval <<= bits;
+- uval |= br->buffer[cwords] >> (FLAC__BITS_PER_WORD-bits);
+- cbits = bits;
+- goto break2;
+- }
+- }
+- else {
+- /* in this case we're starting our read at a partial tail word;
+- * the reader has guaranteed that we have at least 'bits' bits
+- * available to read, which makes this case simpler.
+- */
+- uval <<= bits;
+- if(cbits) {
+- /* this also works when consumed_bits==0, it's just a little slower than necessary for that case */
+- FLAC__ASSERT(cbits + bits <= br->bytes*8);
+- uval |= (br->buffer[cwords] & (FLAC__WORD_ALL_ONES >> cbits)) >> (FLAC__BITS_PER_WORD-cbits-bits);
+- cbits += bits;
+- goto break2;
+- }
+- else {
+- uval |= br->buffer[cwords] >> (FLAC__BITS_PER_WORD-bits);
+- cbits += bits;
+- goto break2;
+- }
+- }
+- }
+-break2:
+- /* compose the value */
+- *vals = (int)(uval >> 1 ^ -(int)(uval & 1));
+
+- /* are we done? */
+- --nvals;
+- if(nvals == 0) {
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- return true;
++ *val++ = (int)(msbs >> 1) ^ -(int)(msbs & 1);
+ }
+
+- uval = 0;
+- ++vals;
+-
++ return true;
+ }
+-}
+-#else
+-{
+- unsigned i;
+- unsigned uval = 0;
+
+- /* try and get br->consumed_words and br->consumed_bits into register;
+- * must remember to flush them back to *br before calling other
+- * bitwriter functions that use them, and before returning */
+- register unsigned cwords;
+- register unsigned cbits;
+- unsigned ucbits; /* keep track of the number of unconsumed bits in the buffer */
++ FLAC__ASSERT(parameter > 0);
+
+- FLAC__ASSERT(0 != br);
+- FLAC__ASSERT(0 != br->buffer);
+- /* WATCHOUT: code does not work with <32bit words; we can make things much faster with this assertion */
+- FLAC__ASSERT(FLAC__BITS_PER_WORD >= 32);
+- FLAC__ASSERT(parameter < 32);
+- /* the above two asserts also guarantee that the binary part never straddles more than 2 words, so we don't have to loop to read it */
++ cwords = br->consumed_words;
++ words = br->words;
+
+- if(nvals == 0)
+- return true;
++ /* if we've not consumed up to a partial tail word... */
++ if(cwords >= words) {
++ x = 0;
++ goto process_tail;
++ }
++
++ ucbits = FLAC__BITS_PER_WORD - br->consumed_bits;
++ b = br->buffer[cwords] << br->consumed_bits; /* keep unconsumed bits aligned to left */
++
++ while(val < end) {
++ /* read the unary MSBs and end bit */
++ x = y = COUNT_ZERO_MSBS(b);
++ if(x == FLAC__BITS_PER_WORD) {
++ x = ucbits;
++ do {
++ /* didn't find stop bit yet, have to keep going... */
++ crc16_update_word_(br, br->buffer[cwords++]);
++ if (cwords >= words)
++ goto incomplete_msbs;
++ b = br->buffer[cwords];
++ y = COUNT_ZERO_MSBS(b);
++ x += y;
++ } while(y == FLAC__BITS_PER_WORD);
++ }
++ b <<= y;
++ b <<= 1; /* account for stop bit */
++ ucbits = (ucbits - x - 1) % FLAC__BITS_PER_WORD;
++ msbs = x;
++
++ /* read the binary LSBs */
++ x = b >> (FLAC__BITS_PER_WORD - parameter);
++ if(parameter <= ucbits) {
++ ucbits -= parameter;
++ b <<= parameter;
++ } else {
++ /* there are still bits left to read, they will all be in the next word */
++ crc16_update_word_(br, br->buffer[cwords++]);
++ if (cwords >= words)
++ goto incomplete_lsbs;
++ b = br->buffer[cwords];
++ ucbits += FLAC__BITS_PER_WORD - parameter;
++ x |= b >> ucbits;
++ b <<= FLAC__BITS_PER_WORD - ucbits;
++ }
++ lsbs = x;
+
+- cbits = br->consumed_bits;
+- cwords = br->consumed_words;
+- ucbits = (br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits;
++ /* compose the value */
++ x = (msbs << parameter) | lsbs;
++ *val++ = (int)(x >> 1) ^ -(int)(x & 1);
+
+- while(1) {
++ continue;
+
+- /* read unary part */
+- while(1) {
+- while(cwords < br->words) { /* if we've not consumed up to a partial tail word... */
+- brword b = br->buffer[cwords] << cbits;
+- if(b) {
+-#if 0 /* is not discernably faster... */ && defined FLAC__CPU_IA32 && !defined FLAC__NO_ASM && FLAC__BITS_PER_WORD == 32 && defined __GNUC__
+- asm volatile (
+- "bsrl %1, %0;"
+- "notl %0;"
+- "andl $31, %0;"
+- : "=r"(i)
+- : "r"(b)
+- );
+-#else
+- i = COUNT_ZERO_MSBS(b);
+-#endif
+- uval += i;
+- cbits += i;
+- cbits++; /* skip over stop bit */
+- if(cbits >= FLAC__BITS_PER_WORD) { /* faster way of testing if(cbits == FLAC__BITS_PER_WORD) */
+- crc16_update_word_(br, br->buffer[cwords]);
+- cwords++;
+- cbits = 0;
+- }
+- goto break1;
+- }
+- else {
+- uval += FLAC__BITS_PER_WORD - cbits;
+- crc16_update_word_(br, br->buffer[cwords]);
+- cwords++;
+- cbits = 0;
+- /* didn't find stop bit yet, have to keep going... */
+- }
+- }
+- /* at this point we've eaten up all the whole words; have to try
+- * reading through any tail bytes before calling the read callback.
+- * this is a repeat of the above logic adjusted for the fact we
+- * don't have a whole word. note though if the client is feeding
+- * us data a byte at a time (unlikely), br->consumed_bits may not
+- * be zero.
+- */
+- if(br->bytes) {
+- const unsigned end = br->bytes * 8;
+- brword b = (br->buffer[cwords] & ~(FLAC__WORD_ALL_ONES >> end)) << cbits;
+- if(b) {
+- i = COUNT_ZERO_MSBS(b);
+- uval += i;
+- cbits += i;
+- cbits++; /* skip over stop bit */
+- FLAC__ASSERT(cbits < FLAC__BITS_PER_WORD);
+- goto break1;
+- }
+- else {
+- uval += end - cbits;
+- cbits += end;
+- FLAC__ASSERT(cbits < FLAC__BITS_PER_WORD);
+- /* didn't find stop bit yet, have to keep going... */
+- }
++ /* at this point we've eaten up all the whole words */
++process_tail:
++ do {
++ if(0) {
++incomplete_msbs:
++ br->consumed_bits = 0;
++ br->consumed_words = cwords;
+ }
+- /* flush registers and read; bitreader_read_from_client_() does
+- * not touch br->consumed_bits at all but we still need to set
+- * it in case it fails and we have to return false.
+- */
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- if(!bitreader_read_from_client_(br))
++
++ /* read the unary MSBs and end bit */
++ if(!FLAC__bitreader_read_unary_unsigned(br, &msbs))
+ return false;
+- cwords = br->consumed_words;
+- ucbits = (br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits + uval;
+- /* + uval to offset our count by the # of unary bits already
+- * consumed before the read, because we will add these back
+- * in all at once at break1
+- */
+- }
+-break1:
+- ucbits -= uval;
+- ucbits--; /* account for stop bit */
+-
+- /* read binary part */
+- FLAC__ASSERT(cwords <= br->words);
+-
+- if(parameter) {
+- while(ucbits < parameter) {
+- /* flush registers and read; bitreader_read_from_client_() does
+- * not touch br->consumed_bits at all but we still need to set
+- * it in case it fails and we have to return false.
+- */
+- br->consumed_bits = cbits;
++ msbs += x;
++ x = ucbits = 0;
++
++ if(0) {
++incomplete_lsbs:
++ br->consumed_bits = 0;
+ br->consumed_words = cwords;
+- if(!bitreader_read_from_client_(br))
+- return false;
+- cwords = br->consumed_words;
+- ucbits = (br->words-cwords)*FLAC__BITS_PER_WORD + br->bytes*8 - cbits;
+- }
+- if(cwords < br->words) { /* if we've not consumed up to a partial tail word... */
+- if(cbits) {
+- /* this also works when consumed_bits==0, it's just slower than necessary for that case */
+- const unsigned n = FLAC__BITS_PER_WORD - cbits;
+- const brword word = br->buffer[cwords];
+- if(parameter < n) {
+- uval <<= parameter;
+- uval |= (word & (FLAC__WORD_ALL_ONES >> cbits)) >> (n-parameter);
+- cbits += parameter;
+- }
+- else {
+- uval <<= n;
+- uval |= word & (FLAC__WORD_ALL_ONES >> cbits);
+- crc16_update_word_(br, word);
+- cwords++;
+- cbits = parameter - n;
+- if(cbits) { /* parameter > n, i.e. if there are still bits left to read, there have to be less than 32 so they will all be in the next word */
+- uval <<= cbits;
+- uval |= (br->buffer[cwords] >> (FLAC__BITS_PER_WORD-cbits));
+- }
+- }
+- }
+- else {
+- cbits = parameter;
+- uval <<= parameter;
+- uval |= br->buffer[cwords] >> (FLAC__BITS_PER_WORD-cbits);
+- }
+ }
+- else {
+- /* in this case we're starting our read at a partial tail word;
+- * the reader has guaranteed that we have at least 'parameter'
+- * bits available to read, which makes this case simpler.
+- */
+- uval <<= parameter;
+- if(cbits) {
+- /* this also works when consumed_bits==0, it's just a little slower than necessary for that case */
+- FLAC__ASSERT(cbits + parameter <= br->bytes*8);
+- uval |= (br->buffer[cwords] & (FLAC__WORD_ALL_ONES >> cbits)) >> (FLAC__BITS_PER_WORD-cbits-parameter);
+- cbits += parameter;
+- }
+- else {
+- cbits = parameter;
+- uval |= br->buffer[cwords] >> (FLAC__BITS_PER_WORD-cbits);
+- }
+- }
+- }
+
+- ucbits -= parameter;
+-
+- /* compose the value */
+- *vals = (int)(uval >> 1 ^ -(int)(uval & 1));
++ /* read the binary LSBs */
++ if(!FLAC__bitreader_read_raw_uint32(br, &lsbs, parameter - ucbits))
++ return false;
++ lsbs = x | lsbs;
+
+- /* are we done? */
+- --nvals;
+- if(nvals == 0) {
+- br->consumed_bits = cbits;
+- br->consumed_words = cwords;
+- return true;
+- }
++ /* compose the value */
++ x = (msbs << parameter) | lsbs;
++ *val++ = (int)(x >> 1) ^ -(int)(x & 1);
++ x = 0;
+
+- uval = 0;
+- ++vals;
++ cwords = br->consumed_words;
++ words = br->words;
++ ucbits = FLAC__BITS_PER_WORD - br->consumed_bits;
++ b = br->buffer[cwords] << br->consumed_bits;
++ } while(cwords >= words && val < end);
++ }
+
++ if(ucbits == 0 && cwords < words) {
++ /* don't leave the head word with no unconsumed bits */
++ crc16_update_word_(br, br->buffer[cwords++]);
++ ucbits = FLAC__BITS_PER_WORD;
+ }
++
++ br->consumed_bits = FLAC__BITS_PER_WORD - ucbits;
++ br->consumed_words = cwords;
++
++ return true;
+ }
+-#endif
+
+ #if 0 /* UNUSED */
+ FLAC__bool FLAC__bitreader_read_golomb_signed(FLAC__BitReader *br, int *val, unsigned parameter)
--- /dev/null
+diff -up flac-1.2.1/src/libFLAC/Makefile.am.cflags flac-1.2.1/src/libFLAC/Makefile.am
+--- flac-1.2.1/src/libFLAC/Makefile.am.cflags 2007-09-14 23:06:17.000000000 +0200
++++ flac-1.2.1/src/libFLAC/Makefile.am 2008-03-17 14:19:29.000000000 +0100
+@@ -41,7 +41,7 @@ CPUCFLAGS = -faltivec -force_cpusubtype_
+ else
+ # Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific
+ #@@@ PPC optimizations temporarily disabled
+-CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM
++CPUCFLAGS = -DFLAC__NO_ASM
+ endif
+ endif
+
+@@ -69,7 +69,7 @@ endif
+ endif
+ endif
+
+-libFLAC_la_LIBADD = $(LOCAL_EXTRA_LIBADD) @OGG_LIBS@
++libFLAC_la_LIBADD = $(LOCAL_EXTRA_LIBADD) @OGG_LIBS@ libFLAC_extracflags.la
+
+ SUBDIRS = $(ARCH_SUBDIRS) include .
+
+@@ -112,7 +112,10 @@ libFLAC_la_SOURCES = \
+ metadata_iterators.c \
+ metadata_object.c \
+ stream_decoder.c \
+- stream_encoder.c \
+ stream_encoder_framing.c \
+ window.c \
+ $(extra_ogg_sources)
++
++noinst_LTLIBRARIES = libFLAC_extracflags.la
++libFLAC_extracflags_la_SOURCES = stream_encoder.c
++libFLAC_extracflags_la_CFLAGS = $(AM_CFLAGS) -funroll-loops
+diff -up flac-1.2.1/configure.in.cflags flac-1.2.1/configure.in
+--- flac-1.2.1/configure.in.cflags 2007-09-13 17:48:42.000000000 +0200
++++ flac-1.2.1/configure.in 2008-03-17 14:17:08.000000000 +0100
+@@ -301,7 +301,7 @@ else
+ CPPFLAGS="-DNDEBUG $CPPFLAGS"
+ if test "x$GCC" = xyes; then
+ CPPFLAGS="-DFLaC__INLINE=__inline__ $CPPFLAGS"
+- CFLAGS="-O3 -funroll-loops -finline-functions -Wall -W -Winline $CFLAGS"
++ CFLAGS="-Wall -W -Winline $CFLAGS"
+ fi
+ fi
+
--- /dev/null
+diff -up flac-1.2.1/examples/cpp/encode/file/main.cpp.gcc43 flac-1.2.1/examples/cpp/encode/file/main.cpp
+--- flac-1.2.1/examples/cpp/encode/file/main.cpp.gcc43 2007-09-13 17:58:03.000000000 +0200
++++ flac-1.2.1/examples/cpp/encode/file/main.cpp 2008-01-08 10:27:39.000000000 +0100
+@@ -29,6 +29,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <string.h>
+ #include <stdlib.h>
+ #include "FLAC++/metadata.h"
+ #include "FLAC++/encoder.h"
--- /dev/null
+diff -up flac-1.2.1/src/libFLAC/include/private/ogg_helper.h.hidesyms flac-1.2.1/src/libFLAC/include/private/ogg_helper.h
+--- flac-1.2.1/src/libFLAC/include/private/ogg_helper.h.hidesyms 2007-02-02 07:22:40.000000000 +0100
++++ flac-1.2.1/src/libFLAC/include/private/ogg_helper.h 2008-01-29 15:27:13.000000000 +0100
+@@ -35,9 +35,13 @@
+ #include <ogg/ogg.h>
+ #include "FLAC/stream_encoder.h" /* for FLAC__StreamEncoder */
+
++__attribute__((__visibility__("hidden")))
+ void simple_ogg_page__init(ogg_page *page);
++__attribute__((__visibility__("hidden")))
+ void simple_ogg_page__clear(ogg_page *page);
++__attribute__((__visibility__("hidden")))
+ FLAC__bool simple_ogg_page__get_at(FLAC__StreamEncoder *encoder, FLAC__uint64 position, ogg_page *page, FLAC__StreamEncoderSeekCallback seek_callback, FLAC__StreamEncoderReadCallback read_callback, void *client_data);
++__attribute__((__visibility__("hidden")))
+ FLAC__bool simple_ogg_page__set_at(FLAC__StreamEncoder *encoder, FLAC__uint64 position, ogg_page *page, FLAC__StreamEncoderSeekCallback seek_callback, FLAC__StreamEncoderWriteCallback write_callback, void *client_data);
+
+ #endif
+diff -up flac-1.2.1/src/libFLAC/include/private/bitreader.h.hidesyms flac-1.2.1/src/libFLAC/include/private/bitreader.h
+--- flac-1.2.1/src/libFLAC/include/private/bitreader.h.hidesyms 2007-07-10 22:22:19.000000000 +0200
++++ flac-1.2.1/src/libFLAC/include/private/bitreader.h 2008-01-29 15:27:13.000000000 +0100
+@@ -95,5 +95,6 @@ FLAC__bool FLAC__bitreader_read_golomb_u
+ FLAC__bool FLAC__bitreader_read_utf8_uint32(FLAC__BitReader *br, FLAC__uint32 *val, FLAC__byte *raw, unsigned *rawlen);
+ FLAC__bool FLAC__bitreader_read_utf8_uint64(FLAC__BitReader *br, FLAC__uint64 *val, FLAC__byte *raw, unsigned *rawlen);
+
++__attribute__((__visibility__("hidden")))
+ FLAC__bool bitreader_read_from_client_(FLAC__BitReader *br);
+ #endif
+diff -up flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm.hidesyms flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm.hidesyms 2008-01-29 15:27:13.000000000 +0100
++++ flac-1.2.1/src/libFLAC/ia32/stream_encoder_asm.nasm 2008-01-29 15:28:32.000000000 +0100
+@@ -34,7 +34,7 @@
+
+ data_section
+
+-cglobal precompute_partition_info_sums_32bit_asm_ia32_
++cglobal precompute_partition_info_sums_32bit_asm_ia32_:function hidden
+
+ code_section
+
--- /dev/null
+diff -up flac-1.2.1/test/test_seeking.sh.tests flac-1.2.1/test/test_seeking.sh
+--- flac-1.2.1/test/test_seeking.sh.tests 2007-09-11 09:33:04.000000000 +0200
++++ flac-1.2.1/test/test_seeking.sh 2008-01-29 13:52:03.000000000 +0100
+@@ -103,7 +103,7 @@ tiny_seek_count=100
+ if [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then
+ small_seek_count=10000
+ else
+- small_seek_count=100000
++ small_seek_count=100
+ fi
+
+ for suffix in '' '-s' ; do
+diff -up flac-1.2.1/test/test_streams.sh.tests flac-1.2.1/test/test_streams.sh
+--- flac-1.2.1/test/test_streams.sh.tests 2007-06-16 21:58:39.000000000 +0200
++++ flac-1.2.1/test/test_streams.sh 2008-03-17 13:57:39.000000000 +0100
+@@ -39,6 +39,10 @@ if [ x"$FLAC__TEST_LEVEL" = x ] ; then
+ FLAC__TEST_LEVEL=1
+ fi
+
++if [ "$FLAC__TEST_LEVEL" -eq 0 ] ; then
++ exit 0
++fi
++
+ flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
+
+ run_flac ()
+diff -up flac-1.2.1/src/test_streams/main.c.tests flac-1.2.1/src/test_streams/main.c
+--- flac-1.2.1/src/test_streams/main.c.tests 2007-08-31 07:54:49.000000000 +0200
++++ flac-1.2.1/src/test_streams/main.c 2008-01-29 13:53:46.000000000 +0100
+@@ -898,9 +898,9 @@ int main(int argc, char *argv[])
+ if(!generate_noise("noise.raw", 65536 * 8 * 3)) return 1;
+ if(!generate_noise("noise8m32.raw", 32)) return 1;
+ if(!generate_wackywavs()) return 1;
+- for(channels = 1; channels <= 8; channels++) {
++ for(channels = 1; channels <= 2; channels++) {
+ unsigned bits_per_sample;
+- for(bits_per_sample = 4; bits_per_sample <= 24; bits_per_sample++) {
++ for(bits_per_sample = 8; bits_per_sample <= 24; bits_per_sample += 8) {
+ static const unsigned nsamples[] = { 1, 111, 4777 } ;
+ unsigned samples;
+ for(samples = 0; samples < sizeof(nsamples)/sizeof(nsamples[0]); samples++) {
+++ /dev/null
-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
+++ /dev/null
-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"
-
+++ /dev/null
-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 }'`
+++ /dev/null
-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)
+++ /dev/null
-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
--- /dev/null
+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
+++ /dev/null
---- 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:
+++ /dev/null
-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
+++ /dev/null
---- 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]+$'
+++ /dev/null
-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;
--- /dev/null
+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"
+
--- /dev/null
+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" } }
--- /dev/null
+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>
--- /dev/null
+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
--- /dev/null
+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__ \
--- /dev/null
+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);
++}
--- /dev/null
+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)
--- /dev/null
+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++;
++ }
++}
--- /dev/null
+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;
++}
--- /dev/null
+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
--- /dev/null
+--- 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
+++ /dev/null
-#
-# 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;
-
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
--- /dev/null
+--- 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);
--- /dev/null
+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;
+ }
+
+
--- /dev/null
+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 \
--- /dev/null
+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
--- /dev/null
+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"
--- /dev/null
+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)
--- /dev/null
+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);
--- /dev/null
+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). */
--- /dev/null
+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);
++}
--- /dev/null
+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"
--- /dev/null
+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;
+ }
--- /dev/null
+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));
--- /dev/null
+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
--- /dev/null
+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)
+ {
--- /dev/null
+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);
+ }
--- /dev/null
+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 */
--- /dev/null
+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);
+ }
+
+
--- /dev/null
+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:
--- /dev/null
+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
--- /dev/null
+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;
+ }
--- /dev/null
+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. */
--- /dev/null
+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,
--- /dev/null
+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;
--- /dev/null
+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)
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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;
--- /dev/null
+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 {
--- /dev/null
+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
--- /dev/null
+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 */
+
--- /dev/null
+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;
--- /dev/null
+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
--- /dev/null
+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);
++ }
+ }
+ }
+
--- /dev/null
+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
--- /dev/null
+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>"
--- /dev/null
+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)
+
--- /dev/null
+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
--- /dev/null
+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))
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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)
--- /dev/null
+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:
--- /dev/null
+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/
--- /dev/null
+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;
--- /dev/null
+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 ();
+
--- /dev/null
+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 : ¬found);
+
+ if (fd != -1 &&
+- TEMP_FAILURE_RETRY (send (fd, ¬found, 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, ¬found, 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;
+ }
--- /dev/null
+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, ¬found, 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, ¬found, 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, ¬found, 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, ¬found, 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, ¬found, 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);
+ }
--- /dev/null
+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
+
--- /dev/null
+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.
--- /dev/null
+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
--- /dev/null
+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:
--- /dev/null
+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
+ ;;
+ *)
--- /dev/null
+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
--- /dev/null
+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)
--- /dev/null
+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 */
--- /dev/null
+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
+
--- /dev/null
+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)
+
--- /dev/null
+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)
--- /dev/null
+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.
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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)
--- /dev/null
+ * 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;
+ }
--- /dev/null
+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)
--- /dev/null
+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 \
--- /dev/null
+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
+
--- /dev/null
+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;
--- /dev/null
+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
--- /dev/null
+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;
+
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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;
+ }
+ /*
--- /dev/null
+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. */
--- /dev/null
+--- 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
--- /dev/null
+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
--- /dev/null
+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;
+
--- /dev/null
+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, ¬found, 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, ¬found, total,
+- MSG_NOSIGNAL));
++ if (fd != -1)
++ written = TEMP_FAILURE_RETRY (send (fd, ¬found, 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, ¬found, 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, ¬found, 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, ¬found, total,
+- MSG_NOSIGNAL));
++ if (fd != -1)
++ written = TEMP_FAILURE_RETRY (send (fd, ¬found, 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;
--- /dev/null
+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>";/
--- /dev/null
+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)
--- /dev/null
+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;
+ }
+
+
--- /dev/null
+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';
--- /dev/null
+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
--- /dev/null
+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);
--- /dev/null
+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 */
--- /dev/null
+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;
+ }
--- /dev/null
+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
+
--- /dev/null
+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,
--- /dev/null
+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;
+ }
+
+
--- /dev/null
+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;
--- /dev/null
+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)
--- /dev/null
+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);
--- /dev/null
+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
--- /dev/null
+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;
--- /dev/null
+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)
--- /dev/null
+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. */
--- /dev/null
+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];
+++ /dev/null
-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 \
+++ /dev/null
---- 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')
- {
+++ /dev/null
-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
+++ /dev/null
-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
-
+++ /dev/null
---- 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}
+++ /dev/null
-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;
-
+++ /dev/null
---- 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;
- }
-
+++ /dev/null
---- 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);
+++ /dev/null
-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. */
+++ /dev/null
---- 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
+++ /dev/null
---- 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])
+++ /dev/null
---- 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);
- }
- }
+++ /dev/null
---- 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
+++ /dev/null
---- 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
+++ /dev/null
---- 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
-
+++ /dev/null
---- 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)
+++ /dev/null
---- 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
+++ /dev/null
---- 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)
- {
+++ /dev/null
---- 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
-
+++ /dev/null
---- 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 == '"')
+++ /dev/null
---- 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
-
+++ /dev/null
---- 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 == '"')
+++ /dev/null
-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*)
+++ /dev/null
-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
- */
+++ /dev/null
---- 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
+++ /dev/null
-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
+++ /dev/null
---- 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);
+++ /dev/null
---- 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
+++ /dev/null
---- 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() {
+++ /dev/null
---- 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
-
+++ /dev/null
---- 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
+++ /dev/null
---- 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
+++ /dev/null
---- 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/.*'`
- ;;
+++ /dev/null
-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
+++ /dev/null
---- 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)
+++ /dev/null
---- 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)"
+++ /dev/null
---- 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)
- {
+++ /dev/null
---- 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
+++ /dev/null
---- 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.
--- /dev/null
+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,
++ ¶ms->red_field_pos, ¶ms->red_mask_size);
++ find_bits (gop_info->pixel_information.green_mask,
++ ¶ms->green_field_pos, ¶ms->green_mask_size);
++ find_bits (gop_info->pixel_information.blue_mask,
++ ¶ms->blue_field_pos, ¶ms->blue_mask_size);
++ find_bits (gop_info->pixel_information.reserved_mask,
++ ¶ms->reserved_field_pos, ¶ms->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 = ¶ms->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 *) ¶ms_buf, sizeof (params_buf))
++ != sizeof (params_buf))
++ {
++ errnum = ERR_EXEC_FORMAT;
++ grub_close();
++ grub_printf ("cannot read the linux header");
++ goto fail;
++ }
++
++ lh = ¶ms_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(¶ms->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(¶ms->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(¶ms->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 = ¶ms->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 *) ¶ms_buf, sizeof (params_buf))
++ != sizeof (params_buf))
++ {
++ errnum = ERR_EXEC_FORMAT;
++ grub_printf ("cannot read the linux header");
++ goto fail;
++ }
++
++ lh = ¶ms_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(¶ms->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(¶ms->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(¶ms->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,
+ ¤t_partition, ¤t_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
+
--- /dev/null
+Index: services/scheduler.cpp
+===================================================================
+--- services/scheduler.cpp (revision 1310078)
++++ services/scheduler.cpp (working copy)
+@@ -52,7 +52,7 @@
+ #include "config.h"
+ #include "bench.h"
+
+-#define DEBUG_SCHEDULER 0
++#define DEBUG_SCHEDULER 1
+
+ /* TODO:
+ * leak check
+@@ -613,6 +613,8 @@
+
+ platform_map.insert( make_pair( string( "ppc" ), string( "ppc64" ) ) );
+ platform_map.insert( make_pair( string( "s390" ), string( "s390x" ) ) );
++
++ platform_map.insert( make_pair( string( "armv5tel"), string( "armv7l" ) ) );
+ }
+
+ multimap<string, string>::const_iterator end = platform_map.upper_bound( target );
--- /dev/null
+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)
--- /dev/null
+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-*)
--- /dev/null
+--- 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>
+
+++ /dev/null
---- 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];
-
+++ /dev/null
-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
- }
-
-
--- /dev/null
+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) {}
+++ /dev/null
-diff -Naur miniupnpd-1.4.org/netfilter/iptcrdr.c miniupnpd-1.4/netfilter/iptcrdr.c
---- miniupnpd-1.4.org/netfilter/iptcrdr.c 2009-10-10 21:19:41.000000000 +0200
-+++ miniupnpd-1.4/netfilter/iptcrdr.c 2012-07-29 16:09:42.640363971 +0200
-@@ -443,8 +443,8 @@
- struct ipt_entry_match *match;
- struct ipt_tcp * tcpinfo;
- size_t size;
-- size = IPT_ALIGN(sizeof(struct ipt_entry_match))
-- + IPT_ALIGN(sizeof(struct ipt_tcp));
-+ size = XT_ALIGN(sizeof(struct ipt_entry_match))
-+ + XT_ALIGN(sizeof(struct ipt_tcp));
- match = calloc(1, size);
- match->u.match_size = size;
- strncpy(match->u.user.name, "tcp", IPT_FUNCTION_MAXNAMELEN);
-@@ -462,8 +462,8 @@
- struct ipt_entry_match *match;
- struct ipt_udp * udpinfo;
- size_t size;
-- size = IPT_ALIGN(sizeof(struct ipt_entry_match))
-- + IPT_ALIGN(sizeof(struct ipt_udp));
-+ size = XT_ALIGN(sizeof(struct ipt_entry_match))
-+ + XT_ALIGN(sizeof(struct ipt_udp));
- match = calloc(1, size);
- match->u.match_size = size;
- strncpy(match->u.user.name, "udp", IPT_FUNCTION_MAXNAMELEN);
-@@ -483,8 +483,8 @@
- struct ip_nat_range * range;
- size_t size;
-
-- size = IPT_ALIGN(sizeof(struct ipt_entry_target))
-- + IPT_ALIGN(sizeof(struct ip_nat_multi_range));
-+ size = XT_ALIGN(sizeof(struct ipt_entry_target))
-+ + XT_ALIGN(sizeof(struct ip_nat_multi_range));
- target = calloc(1, size);
- target->u.target_size = size;
- strncpy(target->u.user.name, "DNAT", IPT_FUNCTION_MAXNAMELEN);
-@@ -614,8 +614,8 @@
- {
- struct ipt_entry_target * target = NULL;
- size_t size;
-- size = IPT_ALIGN(sizeof(struct ipt_entry_target))
-- + IPT_ALIGN(sizeof(int));
-+ size = XT_ALIGN(sizeof(struct ipt_entry_target))
-+ + XT_ALIGN(sizeof(int));
- target = calloc(1, size);
- target->u.user.target_size = size;
- strncpy(target->u.user.name, "ACCEPT", IPT_FUNCTION_MAXNAMELEN);
+++ /dev/null
---- 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
+++ /dev/null
-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));
--- /dev/null
+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]
+
+
+
+
--- /dev/null
+--- 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];
+
--- /dev/null
+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
+++ /dev/null
-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
--- /dev/null
+ 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));
--- /dev/null
+ 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() \
--- /dev/null
+ 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;
--- /dev/null
+ 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);
--- /dev/null
+ 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 ();
--- /dev/null
+ 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
--- /dev/null
+ 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;
+
--- /dev/null
+ 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
--- /dev/null
+ 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;
--- /dev/null
+ 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;
+ }
--- /dev/null
+ 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);
--- /dev/null
+ 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)'
--- /dev/null
+ 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;
--- /dev/null
+ 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))
+ {
--- /dev/null
+ 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;
+ }
--- /dev/null
+ 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
--- /dev/null
+ 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
--- /dev/null
+ 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
--- /dev/null
+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
+
+++ /dev/null
-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
+++ /dev/null
---- 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;
-
--- /dev/null
+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 = '/';
--- /dev/null
+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);
--- /dev/null
+#!/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
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"
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"
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_COMPILERCHECK="none" \
KVER=$KVER \
BUILDTARGET="$BUILDTARGET" \
+ CROSSTARGET="${CROSSTARGET}" \
MACHINE="$MACHINE" \
MACHINE_TYPE="$MACHINE_TYPE" \
KGCC="ccache /usr/bin/gcc" \
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`
[ $? == 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" \
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 && \
[ $? == 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 \
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 && \
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" \
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 && \
[ $? == 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`