summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernels/gradm/PKGBUILD27
-rwxr-xr-xkernels/linux-libre-grsec/Kbuild19
-rwxr-xr-xkernels/linux-libre-grsec/Kbuild.platforms6
-rwxr-xr-xkernels/linux-libre-grsec/PKGBUILD399
-rwxr-xr-xkernels/linux-libre-grsec/boot-logo.patch22682
-rwxr-xr-xkernels/linux-libre-grsec/change-default-console-loglevel.patch12
-rw-r--r--kernels/linux-libre-grsec/config.i6866177
-rw-r--r--kernels/linux-libre-grsec/config.x86_645943
-rw-r--r--kernels/linux-libre-grsec/irq_cfg_pointer-3.6.6.patch16
-rwxr-xr-xkernels/linux-libre-grsec/linux-libre-grsec.install110
-rwxr-xr-xkernels/linux-libre-grsec/linux-libre-grsec.preset14
-rw-r--r--kernels/linux-libre-grsec/module-init-wait-3.6.patch77
-rw-r--r--kernels/linux-libre-grsec/module-symbol-waiting-3.6.patch66
-rwxr-xr-xkernels/linux-libre-lts-rt/PKGBUILD25
-rwxr-xr-xkernels/linux-libre-lts-rt/ext4-options.patch2
-rwxr-xr-xkernels/linux-libre-lts-rt/linux-libre-lts-rt.install2
-rw-r--r--kernels/linux-libre-lts-rt/module-init-wait-3.0.patch77
-rw-r--r--kernels/linux-libre-lts-rt/module-symbol-waiting-3.0.patch66
-rwxr-xr-xkernels/linux-libre-rt/PKGBUILD17
-rw-r--r--kernels/linux-libre-rt/irq_cfg_pointer-3.6.6.patch16
-rwxr-xr-xkernels/linux-libre-rt/linux-libre-rt.install2
-rw-r--r--kernels/paxctl/PKGBUILD18
-rw-r--r--kernels/paxutils/PKGBUILD24
-rwxr-xr-xkernels/paxutils/paxutils174
-rwxr-xr-xkernels/xe-guest-utilities/PKGBUILD22
-rw-r--r--kernels/xen-docs/PKGBUILD20
-rw-r--r--[-rwxr-xr-x]kernels/xen/09_xen140
-rwxr-xr-xkernels/xen/24341.patch11
-rwxr-xr-xkernels/xen/24344.patch33
-rwxr-xr-xkernels/xen/24345.patch31
-rw-r--r--[-rwxr-xr-x]kernels/xen/PKGBUILD214
-rw-r--r--kernels/xen/archinit.patch450
-rwxr-xr-xkernels/xen/dom0_xz_decompression.patch3528
-rw-r--r--kernels/xen/proc-xen.mount9
-rw-r--r--kernels/xen/texi2html.patch10
-rw-r--r--kernels/xen/var-lib-xenstored.mount10
-rw-r--r--kernels/xen/xen.conf19
-rw-r--r--kernels/xen/xen.install38
-rwxr-xr-xkernels/xen/xen.patch21
-rw-r--r--kernels/xen/xenconsoled.service18
-rw-r--r--kernels/xen/xendomU@.service12
-rw-r--r--kernels/xen/xendomains.service15
-rw-r--r--kernels/xen/xenstored.service18
-rwxr-xr-xlibre/aspell-pl-libre/PKGBUILD33
-rwxr-xr-xlibre/blender-libre/PKGBUILD2
-rwxr-xr-xlibre/clementine-libre/PKGBUILD6
-rwxr-xr-xlibre/cups-libre/PKGBUILD168
-rwxr-xr-xlibre/cups-libre/cups68
-rwxr-xr-xlibre/cups-libre/cups-avahi-1-config.patch42
-rwxr-xr-xlibre/cups-libre/cups-avahi-2-backend.patch1118
-rwxr-xr-xlibre/cups-libre/cups-avahi-3-timeouts.patch381
-rwxr-xr-xlibre/cups-libre/cups-avahi-4-poll.patch529
-rwxr-xr-xlibre/cups-libre/cups-avahi-5-services.patch1272
-rwxr-xr-xlibre/cups-libre/cups-no-export-ssllibs.patch12
-rwxr-xr-xlibre/cups-libre/cups-no-gcrypt.patch38
-rwxr-xr-xlibre/cups-libre/cups-no-gzip-man.patch18
-rwxr-xr-xlibre/cups-libre/cups.install26
-rwxr-xr-xlibre/cups-libre/cups.logrotate8
-rwxr-xr-xlibre/cups-libre/cups.pam3
-rwxr-xr-xlibre/cups-libre/rePKGBUILD50
-rw-r--r--libre/enscript/PKGBUILD32
-rwxr-xr-xlibre/file-roller-libre/PKGBUILD6
-rwxr-xr-xlibre/gnustep-base-libre/PKGBUILD40
-rwxr-xr-xlibre/gnustep-make-libre/PKGBUILD32
-rw-r--r--libre/gst-plugins-bad-libre/PKGBUILD6
-rwxr-xr-xlibre/gstreamer0.10-bad-libre/PKGBUILD8
-rwxr-xr-xlibre/iceape-i18n/PKGBUILD50
-rwxr-xr-xlibre/iceape-libre/PKGBUILD6
-rwxr-xr-xlibre/icedove-i18n/PKGBUILD112
-rw-r--r--libre/icedove-libre/Icedove-branding.patch37
-rwxr-xr-xlibre/icedove-libre/PKGBUILD19
-rwxr-xr-xlibre/iceweasel-i18n/PKGBUILD182
-rwxr-xr-xlibre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch4
-rwxr-xr-xlibre/iceweasel-libre/PKGBUILD8
-rwxr-xr-xlibre/kile-libre/PKGBUILD5
-rw-r--r--libre/linux-libre-kmod-alx/PKGBUILD4
-rw-r--r--libre/linux-libre-lts-kmod-alx/PKGBUILD4
-rwxr-xr-xlibre/linux-libre-lts/PKGBUILD8
-rwxr-xr-xlibre/linux-libre-lts/linux-libre-lts.install2
-rwxr-xr-xlibre/linux-libre/PKGBUILD13
-rw-r--r--libre/linux-libre/irq_cfg_pointer-3.6.6.patch16
-rwxr-xr-xlibre/linux-libre/linux-libre.install2
-rwxr-xr-xlibre/metalog/PKGBUILD43
-rwxr-xr-xlibre/metalog/metalog40
-rwxr-xr-xlibre/metalog/metalog.confd8
-rwxr-xr-xlibre/mplayer-libre/.directory3
-rwxr-xr-xlibre/mplayer-libre/PKGBUILD14
-rwxr-xr-xlibre/mplayer-vaapi-libre/PKGBUILD10
-rw-r--r--libre/pacman/0003-Ensure-pre_upgrade-scriptlet-gets-old-package-version.patch29
-rwxr-xr-xlibre/pacman/PKGBUILD9
-rwxr-xr-xlibre/sqlite3-libre/PKGBUILD63
-rwxr-xr-xlibre/sqlite3-libre/license.txt33
-rwxr-xr-xlibre/sqlite3/PKGBUILD68
-rwxr-xr-xlibre/sqlite3/license.txt33
-rwxr-xr-xlibre/thunderbird-libre/.directory2
-rwxr-xr-xlibre/thunderbird-libre/PKGBUILD82
-rwxr-xr-xlibre/thunderbird-libre/channel-prefs.js9
-rwxr-xr-xlibre/thunderbird-libre/clrf.patch265
-rwxr-xr-xlibre/thunderbird-libre/gcc47.patch39
-rwxr-xr-xlibre/thunderbird-libre/mozconfig40
-rwxr-xr-xlibre/thunderbird-libre/rePKGBUILD29
-rwxr-xr-xlibre/thunderbird-libre/searchplugins-libre.patch144
-rwxr-xr-xlibre/thunderbird-libre/thunderbird-install-dir.patch42
-rwxr-xr-xlibre/thunderbird-libre/thunderbird.desktop13
-rwxr-xr-xlibre/thunderbird-libre/thunderbird.install12
-rwxr-xr-xlibre/thunderbird-libre/vendor.js9
-rwxr-xr-xlibre/unar/PKGBUILD (renamed from libre/unarchiver/PKGBUILD)20
-rwxr-xr-xlibre/unar/libz.patch (renamed from libre/unarchiver/libz.patch)0
-rwxr-xr-xlibre/unar/native_obj_exceptions.patch (renamed from libre/unarchiver/native_obj_exceptions.patch)0
-rwxr-xr-xlibre/unrar-libre/PKGBUILD29
-rwxr-xr-xlibre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch4
-rwxr-xr-xlibre/xulrunner-libre/PKGBUILD10
-rw-r--r--pcr/barnyard2/PKGBUILD44
-rw-r--r--pcr/bison++/PKGBUILD51
-rw-r--r--pcr/facter/PKGBUILD30
-rw-r--r--pcr/ffmpeg-static/PKGBUILD2
-rw-r--r--pcr/glance/PKGBUILD62
-rw-r--r--pcr/gtkmm-utils/PKGBUILD27
-rw-r--r--pcr/gtkmm-utils/gtkmm-utils-glib.diff25
-rw-r--r--pcr/lessc/PKGBUILD29
-rw-r--r--pcr/libav-static/avconv-static2
-rw-r--r--pcr/libav-static/avplay-static2
-rw-r--r--pcr/libav-static/avprobe-static2
-rw-r--r--pcr/libav-static/avserver-static2
-rw-r--r--pcr/libav-static/ffmpeg-libav-static2
-rw-r--r--pcr/libav-static/qt-faststart-libav-static2
-rw-r--r--pcr/libav/PKGBUILD (renamed from pcr/libav-static/PKGBUILD)28
-rw-r--r--pcr/log4cxx/PKGBUILD24
-rw-r--r--pcr/log4cxx/log4cxx-0.10.0-missing_includes.patch38
-rw-r--r--pcr/mediatomb/PKGBUILD63
-rw-r--r--pcr/mediatomb/gcc46.patch10
-rw-r--r--pcr/mediatomb/jsparse.patch144
-rw-r--r--pcr/mediatomb/libav_0.7_support.patch64
-rw-r--r--pcr/mediatomb/libavformat.patch52
-rw-r--r--pcr/mediatomb/libmp4v2_191_p497.patch187
-rw-r--r--pcr/mediatomb/mediatomb.conf23
-rw-r--r--pcr/mediatomb/mediatomb.install9
-rw-r--r--pcr/mediatomb/mediatomb.rc54
-rw-r--r--pcr/mediatomb/tonewjs.patch564
-rw-r--r--pcr/mycron-git/PKGBUILD49
-rw-r--r--pcr/mycron-git/mycron.install3
-rw-r--r--pcr/nova/PKGBUILD55
-rw-r--r--pcr/pactools/PKGBUILD18
-rwxr-xr-xpcr/pactools/pactools63
-rwxr-xr-xpcr/pactools/pt-deptree54
-rwxr-xr-xpcr/pactools/pt-pacfix22
-rwxr-xr-xpcr/pactools/pt-pacman-cage152
-rwxr-xr-xpcr/pactools/pt-pacman-info77
-rwxr-xr-xpcr/pactools/pt-pacman-uncage108
-rwxr-xr-xpcr/pactools/pt-pacsize21
-rwxr-xr-xpcr/pactools/pt-repolist42
-rw-r--r--pcr/perl-file-find-rule/PKGBUILD27
-rw-r--r--pcr/perl-iptables-chainmgr/PKGBUILD22
-rw-r--r--pcr/perl-latex-encode/PKGBUILD29
-rw-r--r--pcr/perl-number-compare/PKGBUILD27
-rw-r--r--pcr/perl-text-glob/PKGBUILD51
-rw-r--r--pcr/perl-unix-syslog/PKGBUILD33
-rw-r--r--pcr/psad/PKGBUILD66
-rw-r--r--pcr/psad/psad-systemdinit.archlinux12
-rw-r--r--pcr/psad/psad-sysvinit.archlinux52
-rw-r--r--pcr/psad/psad.patch137
-rw-r--r--pcr/psad/responses7
-rw-r--r--pcr/pulledpork/PKGBUILD19
-rw-r--r--pcr/puppet/PKGBUILD86
-rw-r--r--pcr/puppet/fileserver.conf12
-rwxr-xr-xpcr/puppet/puppet45
-rw-r--r--pcr/puppet/puppet.conf32
-rw-r--r--pcr/puppet/puppet.install46
-rwxr-xr-xpcr/puppet/puppetmaster45
-rw-r--r--pcr/pysheng/PKGBUILD24
-rw-r--r--pcr/python-anyjson/PKGBUILD21
-rw-r--r--pcr/python-paste-deploy/PKGBUILD24
-rw-r--r--pcr/python-paste/PKGBUILD25
-rw-r--r--pcr/python-repoze.lru/PKGBUILD32
-rw-r--r--pcr/python-routes/PKGBUILD29
-rw-r--r--pcr/python-wsgiref/PKGBUILD19
-rw-r--r--pcr/python-xattr/PKGBUILD31
-rw-r--r--pcr/python2-amqplib/PKGBUILD22
-rw-r--r--pcr/python2-carrot/PKGBUILD21
-rw-r--r--pcr/python2-daemon/PKGBUILD20
-rw-r--r--pcr/python2-empy/PKGBUILD20
-rw-r--r--pcr/python2-eventlet/PKGBUILD22
-rw-r--r--pcr/python2-flask-lesscss/PKGBUILD17
-rw-r--r--pcr/python2-iso8601/PKGBUILD19
-rw-r--r--pcr/python2-kombu/PKGBUILD29
-rw-r--r--pcr/python2-netaddr/PKGBUILD19
-rw-r--r--pcr/python2-passlib/PKGBUILD21
-rw-r--r--pcr/python2-pkgtools/PKGBUILD20
-rw-r--r--pcr/python2-rospkg/PKGBUILD23
-rw-r--r--pcr/python2-sendfile/PKGBUILD22
-rw-r--r--pcr/python2-suds/PKGBUILD25
-rw-r--r--pcr/python2-webob/Changelog26
-rw-r--r--pcr/python2-webob/PKGBUILD34
-rw-r--r--pcr/rosinstall/PKGBUILD21
-rw-r--r--pcr/ruby-hiera-json/PKGBUILD26
-rw-r--r--pcr/ruby-hiera/PKGBUILD34
-rw-r--r--pcr/ruby-hiera/hiera.yaml21
-rw-r--r--pcr/ruby-shadow/PKGBUILD24
-rw-r--r--pcr/snort/PKGBUILD51
-rw-r--r--pcr/snort/snort41
-rw-r--r--pcr/snort/snort.conf.d21
-rw-r--r--pcr/snort/snort.install26
-rw-r--r--pcr/theide/PKGBUILD54
-rw-r--r--pcr/theide/license.txt9
-rw-r--r--pcr/theide/theide.install3
-rw-r--r--pcr/thinkfan/PKGBUILD27
-rw-r--r--[-rwxr-xr-x]pcr/thinkfan/thinkfan (renamed from ~mtjm/thinkfan/thinkfan)0
-rw-r--r--pcr/thinkfan/thinkfan.service9
-rw-r--r--pcr/ttf-roboto/PKGBUILD25
-rw-r--r--pcr/ttf-roboto/ttf-roboto.install15
-rw-r--r--pcr/upp-svn/GCC.bm23
-rw-r--r--pcr/upp-svn/PKGBUILD67
-rw-r--r--pcr/upp-svn/license.txt9
-rw-r--r--pcr/vcstools/PKGBUILD33
-rw-r--r--pcr/vuurmuur/PKGBUILD139
-rw-r--r--pcr/vuurmuur/modules.conf3
-rw-r--r--pcr/vuurmuur/vuurmuur.install27
-rw-r--r--pcr/vuurmuur/vuurmuur.rc114
-rw-r--r--pcr/vuurmuur/vuurmuur.script88
-rw-r--r--pcr/vuurmuur/vuurmuur.service13
-rw-r--r--pcr/xtables-addons/PKGBUILD35
-rw-r--r--social/uftp/PKGBUILD26
-rw-r--r--~aurelien/aurelien19
-rwxr-xr-x~fauno/notmuch/PKGBUILD76
-rwxr-xr-x~fauno/notmuch/SRCBUILD39
-rwxr-xr-x~fauno/pandoc/PKGBUILD71
-rwxr-xr-x~fauno/pandoc/SRCBUILD15
-rwxr-xr-x~mtjm/cups-usblp/PKGBUILD154
-rwxr-xr-x~mtjm/cups-usblp/cups68
-rwxr-xr-x~mtjm/cups-usblp/cups-avahi-1-config.patch42
-rwxr-xr-x~mtjm/cups-usblp/cups-avahi-2-backend.patch1118
-rwxr-xr-x~mtjm/cups-usblp/cups-avahi-3-timeouts.patch381
-rwxr-xr-x~mtjm/cups-usblp/cups-avahi-4-poll.patch529
-rwxr-xr-x~mtjm/cups-usblp/cups-avahi-5-services.patch1272
-rwxr-xr-x~mtjm/cups-usblp/cups-no-export-ssllibs.patch12
-rwxr-xr-x~mtjm/cups-usblp/cups-no-gcrypt.patch38
-rwxr-xr-x~mtjm/cups-usblp/cups-no-gzip-man.patch18
-rwxr-xr-x~mtjm/cups-usblp/cups-systemd-socket.patch527
-rwxr-xr-x~mtjm/cups-usblp/cups.install26
-rwxr-xr-x~mtjm/cups-usblp/cups.logrotate8
-rwxr-xr-x~mtjm/cups-usblp/cups.pam3
-rwxr-xr-x~mtjm/debootstrap/PKGBUILD31
-rwxr-xr-x~mtjm/python-getmediumurl/PKGBUILD27
-rwxr-xr-x~mtjm/python-urlreader/PKGBUILD27
-rwxr-xr-x~mtjm/python2-openid/PKGBUILD19
-rwxr-xr-x~mtjm/thinkfan/PKGBUILD36
-rwxr-xr-x~mtjm/zbar/PKGBUILD28
247 files changed, 41588 insertions, 13461 deletions
diff --git a/kernels/gradm/PKGBUILD b/kernels/gradm/PKGBUILD
new file mode 100644
index 000000000..b75f8286a
--- /dev/null
+++ b/kernels/gradm/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Jonathan Liu <net147@gmail.com>
+pkgname=gradm
+pkgver=2.9.1
+_timestamp=201207201554
+pkgrel=1
+pkgdesc="Administrative interface for the grsecurity Role Based Access Control system"
+arch=('i686' 'x86_64' 'mips64el')
+url="http://grsecurity.net/"
+license=('GPL2')
+depends=('pam')
+source=("http://grsecurity.net/stable/${pkgname}-${pkgver}-${_timestamp}.tar.gz")
+md5sums=('b0ae140e30629988a773decf27638e0c')
+
+build() {
+ cd "${srcdir}/${pkgname}2"
+ sed -i -e "s/^CFLAGS :=/CFLAGS +=/" "Makefile"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}2"
+ make DESTDIR="${pkgdir}" install
+ rm "${pkgdir}"/dev/grsec > /dev/null
+ rmdir "${pkgdir}"/dev > /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/kernels/linux-libre-grsec/Kbuild b/kernels/linux-libre-grsec/Kbuild
new file mode 100755
index 000000000..8a9d7dceb
--- /dev/null
+++ b/kernels/linux-libre-grsec/Kbuild
@@ -0,0 +1,19 @@
+# Fail on warnings - also for files referenced in subdirs
+# -Werror can be disabled for specific files using:
+# CFLAGS_<file.o> := -Wno-error
+subdir-ccflags-y := -Wno-error
+
+# platform specific definitions
+include arch/mips/Kbuild.platforms
+obj-y := $(platform-y)
+
+# make clean traverses $(obj-) without having included .config, so
+# everything ends up here
+obj- := $(platform-)
+
+# mips object files
+# The object files are linked as core-y files would be linked
+
+obj-y += kernel/
+obj-y += mm/
+obj-y += math-emu/
diff --git a/kernels/linux-libre-grsec/Kbuild.platforms b/kernels/linux-libre-grsec/Kbuild.platforms
new file mode 100755
index 000000000..90a226888
--- /dev/null
+++ b/kernels/linux-libre-grsec/Kbuild.platforms
@@ -0,0 +1,6 @@
+# All platforms listed in alphabetic order
+
+platforms += loongson
+
+# include the platform specific files
+include $(patsubst %, $(srctree)/arch/mips/%/Platform, $(platforms))
diff --git a/kernels/linux-libre-grsec/PKGBUILD b/kernels/linux-libre-grsec/PKGBUILD
new file mode 100755
index 000000000..34eb84ed2
--- /dev/null
+++ b/kernels/linux-libre-grsec/PKGBUILD
@@ -0,0 +1,399 @@
+# Maintainer: Joakim Hernberg <jbh@alchemy.lu>
+# Contributor: Ray Rashif <schiv@archlinux.org>
+# Contributor: timbosa <tinny_tim@dodo.com.au>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
+# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+
+pkgbase=linux-libre-grsec # Build stock -LIBRE-GRSEC kernel
+#pkgbase=linux-libre-custom # Build kernel with a different name
+_basekernel=3.6
+_sublevel=7
+_grsecver=2.9.1
+_timestamp=201211251900
+pkgver=${_basekernel}.${_sublevel}
+pkgrel=5
+_lxopkgver=${_basekernel}.7 # nearly always the same as pkgver
+arch=('i686' 'x86_64' 'mips64el')
+url="http://linux-libre.fsfla.org/"
+license=('GPL2')
+makedepends=('xmlto' 'docbook-xsl')
+options=('!strip')
+source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz"
+ "http://grsecurity.net/test/grsecurity-$_grsecver-$pkgver-$_timestamp.patch"
+ # the main kernel config files
+ 'config.i686' 'config.x86_64'
+ # standard config files for mkinitcpio ramdisk
+ "${pkgbase}.preset"
+ 'Kbuild'
+ 'Kbuild.platforms'
+ 'boot-logo.patch'
+ 'change-default-console-loglevel.patch'
+ #'module-symbol-waiting-3.6.patch'
+ #'module-init-wait-3.6.patch'
+ #'irq_cfg_pointer-3.6.6.patch'
+ "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
+md5sums=('a2312edd0265b5b07bd4b50afae2b380'
+ 'a4e642180c7d757a642175fe32e4a264'
+ 'a56e5d5ab9dd0f44677aa61466046ce6'
+ '9b4ec887671d9242eba16be5cba4f9dc'
+ '55695d7853abe483f4db189877fd5e36'
+ '5f66bed97a5c37e48eb2f71b2d354b9a'
+ '2967cecc3af9f954ccc822fd63dca6ff'
+ '8267264d9a8966e57fdacd1fa1fc65c4'
+ '86d3c12bdb77173617d2b9e170522ee0'
+ '9d3c56a4b999c8bfbd4018089a62f662'
+ #'670931649c60fcb3ef2e0119ed532bd4'
+ #'8a71abc4224f575008f974a099b5cf6f'
+ #'4909a0271af4e5f373136b382826717f'
+ '1dd80f353c705fef988346a8ef05d13f')
+if [ "$CARCH" != "mips64el" ]; then
+ # Don't use the Loongson-specific patches on non-mips64el arches.
+ unset source[${#source[@]}-1]
+ unset md5sums[${#md5sums[@]}-1]
+fi
+
+_kernelname=${pkgbase#linux-libre}
+_localversionname=-LIBRE-GRSEC
+
+build() {
+ cd "${srcdir}/linux-${_basekernel}"
+
+ if [ "${_basekernel}" != "${pkgver}" ]; then
+ patch -Np1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu"
+ fi
+
+ # Add grsecurity patches
+ patch -Np1 -i ${srcdir}/grsecurity-${_grsecver}-${pkgver}-${_timestamp}.patch
+ rm localversion-grsec
+
+ # Add freedo as boot logo
+ patch -Np1 -i "${srcdir}/boot-logo.patch"
+
+ # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
+ # remove this when a Kconfig knob is made available by upstream
+ # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
+ patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
+
+# # fix module initialisation
+# # https://bugs.archlinux.org/task/32122
+# patch -Np1 -i "${srcdir}/module-symbol-waiting-3.6.patch"
+# patch -Np1 -i "${srcdir}/module-init-wait-3.6.patch"
+
+# # fix FS#32615 - Check for valid irq_cfg pointer in smp_irq_move_cleanup_interrupt
+# patch -Np1 -i "${srcdir}/irq_cfg_pointer-3.6.6.patch"
+
+ if [ "$CARCH" == "mips64el" ]; then
+ sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre-grsec|" Makefile
+ sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \
+ < "${srcdir}/lxo-config.patch" > lxo-config.patch
+ msg2 "Adding loongson-community patches"
+ patch -Np1 -i ${srcdir}/${_basekernel}*-*-loongson-community.patch
+ patch -Np0 -i lxo-config.patch
+
+# ensure N32, add localversion, remove uevent helper as per
+# https://git.kernel.org/?p=linux/hotplug/udev.git;a=blob_plain;f=README
+# and make USB storage support builtin (e.g. for booting from USB
+# disks without slowly loading an initramfs)
+ sed -ri \
+ -e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \
+ -e "s|CONFIG_UEVENT_HELPER_PATH=.*|CONFIG_UEVENT_HELPER_PATH=\"\"|g" \
+ -e "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_localversionname}\"|g" \
+ -e "s;(CONFIG_USB(_COMMON|_EHCI_HCD|_OHCI_HCD|_STORAGE.*|_UAS)?)=.*;\1=y;g" \
+ ./.config
+ else
+ cat "${srcdir}/config.${CARCH}" > ./.config # simpler
+ fi
+
+ if [ "${_kernelname}" != "" ]; then
+ sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_localversionname}\"|g" ./.config
+ sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
+ fi
+
+ # set extraversion to pkgrel
+ sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
+
+ # don't run depmod on 'make install'. We'll do this ourselves in packaging
+ sed -i '2iexit 0' scripts/depmod.sh
+
+ # get kernel version
+ make prepare
+
+ # load configuration
+ # Configure the kernel. Replace the line below with one of your choice.
+ #make menuconfig # CLI menu for configuration
+ #make nconfig # new CLI menu for configuration
+ #make xconfig # X-based configuration
+ #make oldconfig # using old config from previous kernel version
+ # ... or manually edit .config
+
+ # rewrite configuration
+ yes "" | make config >/dev/null
+
+ # save configuration for later reuse
+ if [ "${CARCH}" = "x86_64" ]; then
+ cat .config > "${startdir}/config.x86_64.last"
+ else
+ cat .config > "${startdir}/config.i686.last"
+ fi
+
+ ####################
+ # stop here
+ # this is useful to configure the kernel
+ #msg "Stopping build"; return 1
+ ####################
+
+ # build!
+ if [ "$CARCH" == "mips64el" ]; then
+ # The build system passes it directly to linker, disable to avoid
+ # having unknown -Wl,... options.
+ export LDFLAGS=""
+ # bzImage is arch-specific and not supported on mips; vmlinux is
+ # useful for oprofile.
+ make ${MAKEFLAGS} LOCALVERSION= vmlinux vmlinuz modules
+ else
+ make ${MAKEFLAGS} LOCALVERSION= bzImage modules
+ fi
+}
+
+_package() {
+ pkgdesc="The ${pkgbase} kernel and modules with grsecurity/PaX patches"
+ [ "${pkgbase}" = "linux-libre" ] && groups=('base')
+ depends=('gradm' 'paxutils' 'coreutils' 'linux-libre-firmware' 'kmod')
+ optdepends=('crda: to set the correct wireless channels of your country')
+ provides=("kernel26${_kernelname}=${pkgver}" "linux${_kernelname}=${pkgver}")
+ conflicts=("kernel26${_kernelname}" "kernel26-libre${_kernelname}" "linux${_kernelname}")
+ replaces=("kernel26${_kernelname}" "kernel26-libre${_kernelname}" "linux${_kernelname}")
+ backup=("etc/mkinitcpio.d/${pkgbase}.preset")
+ install=${pkgbase}.install
+ if [ "$CARCH" = "mips64el" ]; then
+ optdepends+=('mkinitcpio: to make the initramfs (needs reinstall of this package)')
+ conflicts+=('mkinitcpio<0.7')
+ else
+ depends+=('mkinitcpio>=0.7')
+ fi
+
+ cd "${srcdir}/linux-${_basekernel}"
+
+ KARCH=x86
+ [ $CARCH = "mips64el" ] && KARCH=mips
+
+ # get kernel version
+ _kernver="$(make LOCALVERSION= kernelrelease)"
+ _basekernel=${_kernver%%-*}
+ _basekernel=${_basekernel%.*}
+
+ mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
+ make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
+
+ if [ "$CARCH" == "mips64el" ]; then
+ cp vmlinuz "${pkgdir}/boot/vmlinuz-${pkgbase}"
+ cp vmlinux "${pkgdir}/boot/vmlinux-${pkgbase}"
+ else
+ cp "arch/${KARCH}/boot/bzImage" "${pkgdir}/boot/vmlinuz-${pkgbase}"
+ fi
+
+ # add vmlinux
+ install -D -m644 vmlinux "${pkgdir}/usr/src/linux-${_kernver}/vmlinux"
+
+ # install fallback mkinitcpio.conf file and preset file for kernel
+ install -D -m644 "${srcdir}/${pkgbase}.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+
+ # set correct depmod command for install
+ sed \
+ -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \
+ -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
+ -i "${startdir}/${pkgbase}.install"
+ sed \
+ -e "1s|'linux*.*'|'${pkgbase}'|" \
+ -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \
+ -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \
+ -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
+ -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+
+# mkinitcpio 0.7 relies on bzImage to find the kernel version
+ if [ "$CARCH" == "mips64el" ]; then
+ sed -e "s|ALL_kver=.*|ALL_kver=\"${_kernver}\"|" \
+ -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+ fi
+
+ # remove build and source links
+ rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
+ # remove the firmware
+ rm -rf "${pkgdir}/lib/firmware"
+ # gzip -9 all modules to save 100MB of space
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+ # make room for external modules
+ ln -s "../extramodules-${_basekernel}${_localversionname:--LIBRE-GRSEC}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
+ # add real version for building modules and running depmod from post_install/upgrade
+ mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_localversionname:--LIBRE-GRSEC}"
+ echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_localversionname:--LIBRE-GRSEC}/version"
+
+ # Now we call depmod...
+ depmod -b "$pkgdir" -F System.map "$_kernver"
+
+ # move module tree /lib -> /usr/lib
+ mv "$pkgdir/lib" "$pkgdir/usr"
+}
+
+_package-headers() {
+ pkgdesc="Header files and scripts for building modules for ${pkgbase} kernel"
+ provides=("kernel26${_kernelname}-headers=${pkgver}" "linux${_kernelname}-headers=${pkgver}")
+ conflicts=("kernel26${_kernelname}-headers" "kernel26-libre${_kernelname}-headers" "linux${_kernelname}-headers")
+ replaces=("kernel26${_kernelname}-headers" "kernel26-libre${_kernelname}-headers" "linux${_kernelname}-headers")
+
+ KARCH=x86
+ [ $CARCH = "mips64el" ] && KARCH=mips
+
+# In case of repackaging this is empty
+ if [ -z "${_kernver}" ]; then
+ cd "${srcdir}/linux-${_basekernel}"
+ _kernver="$(make LOCALVERSION= kernelrelease)"
+ fi
+
+ install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
+
+ cd "${pkgdir}/usr/lib/modules/${_kernver}"
+ ln -sf ../../../src/linux-${_kernver} build
+
+ cd "${srcdir}/linux-${_basekernel}"
+ install -D -m644 Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/Makefile"
+ install -D -m644 kernel/Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile"
+ install -D -m644 .config \
+ "${pkgdir}/usr/src/linux-${_kernver}/.config"
+
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include"
+
+ for i in acpi asm-generic config crypto drm generated linux math-emu \
+ media mtd net pcmcia scsi sound trace video xen; do
+ cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/"
+ done
+
+ # copy arch includes for external modules
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}"
+ cp -a "arch/${KARCH}/include" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+
+ # copy files necessary for later builds
+ cp Module.symvers "${pkgdir}/usr/src/linux-${_kernver}"
+ cp -a scripts "${pkgdir}/usr/src/linux-${_kernver}"
+
+ if [ "$CARCH" = "mips64el" ]; then
+ cp "arch/${KARCH}/Kbuild" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ cp -a "arch/${KARCH}/loongson" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ cp "${srcdir}/Kbuild.platforms" "${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/"
+ fi
+
+ # fix permissions on scripts dir
+ chmod og-w -R "${pkgdir}/usr/src/linux-${_kernver}/scripts"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions"
+
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel"
+
+ cp arch/${KARCH}/Makefile "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+
+ if [ "${CARCH}" = "i686" ]; then
+ cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ fi
+
+ cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel/"
+
+ # add headers for lirc package
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video"
+
+ cp drivers/media/video/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/"
+
+ for i in bt8xx cpia2 cx25840 cx88 em28xx pwc saa7134 sn9c102; do
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
+ cp -a drivers/media/video/${i}/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
+ done
+
+ # add docbook makefile
+ install -D -m644 Documentation/DocBook/Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
+
+ # add dm headers
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
+ cp drivers/md/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
+
+ # add inotify.h
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/linux"
+ cp include/linux/inotify.h "${pkgdir}/usr/src/linux-${_kernver}/include/linux/"
+
+ # add wireless headers
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
+ cp net/mac80211/*.h "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
+
+ # add dvb headers for external modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/9912
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core"
+ cp drivers/media/dvb/dvb-core/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/"
+ # and...
+ # http://bugs.archlinux.org/task/11194
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
+ cp include/config/dvb/*.h "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
+
+ # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
+ # in reference to:
+ # http://bugs.archlinux.org/task/13146
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ cp drivers/media/dvb/frontends/lgdt330x.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ cp drivers/media/video/msp3400-driver.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+
+ # add dvb headers
+ # in reference to:
+ # http://bugs.archlinux.org/task/20402
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb"
+ cp drivers/media/dvb/dvb-usb/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends"
+ cp drivers/media/dvb/frontends/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners"
+ cp drivers/media/common/tuners/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/"
+
+ # add xfs and shmem for aufs building
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/mm"
+ cp fs/xfs/xfs_sb.h "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h"
+
+ # copy in Kconfig files
+ for i in `find . -name "Kconfig*"`; do
+ mkdir -p "${pkgdir}"/usr/src/linux-${_kernver}/`echo ${i} | sed 's|/Kconfig.*||'`
+ cp ${i} "${pkgdir}/usr/src/linux-${_kernver}/${i}"
+ done
+
+ chown -R root.root "${pkgdir}/usr/src/linux-${_kernver}"
+ find "${pkgdir}/usr/src/linux-${_kernver}" -type d -exec chmod 755 {} \;
+
+ # strip scripts directory
+ find "${pkgdir}/usr/src/linux-${_kernver}/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
+ case "$(file -bi "${binary}")" in
+ *application/x-sharedlib*) # Libraries (.so)
+ /usr/bin/strip ${STRIP_SHARED} "${binary}";;
+ *application/x-archive*) # Libraries (.a)
+ /usr/bin/strip ${STRIP_STATIC} "${binary}";;
+ *application/x-executable*) # Binaries
+ /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
+ esac
+ done
+
+ # remove unneeded architectures
+ rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
+ if [ "$CARCH" = "mips64el" ]; then
+ rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
+ else
+ rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/mips
+ fi
+}
+
+pkgname=("${pkgbase}" "${pkgbase}-headers")
+for _p in ${pkgname[@]}; do
+ eval "package_${_p}() {
+ _package${_p#${pkgbase}}
+ }"
+done
+
+# vim:set ts=8 sts=2 sw=2 et:
diff --git a/kernels/linux-libre-grsec/boot-logo.patch b/kernels/linux-libre-grsec/boot-logo.patch
new file mode 100755
index 000000000..6a3c68550
--- /dev/null
+++ b/kernels/linux-libre-grsec/boot-logo.patch
@@ -0,0 +1,22682 @@
+diff -Nur linux-3.6.7/drivers/video/logo/logo_linux_clut224.ppm linux-3.6.7-LIBRE/drivers/video/logo/logo_linux_clut224.ppm
+--- linux-3.6.7/drivers/video/logo/logo_linux_clut224.ppm 2012-11-21 00:47:32.000000000 -0200
++++ linux-3.6.7-LIBRE/drivers/video/logo/logo_linux_clut224.ppm 2012-11-21 01:02:17.000000000 -0200
+@@ -1,1123 +1,861 @@
+ P3
+-80 80
++80 78
+ 255
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 3 3 3 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 1 1 1 0 0 0
+-0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 2 1 0 2 1 0 3 2 2
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 2 2 2 0 0 0 3 4 3 26 28 28
+-37 38 37 37 38 37 14 17 19 2 2 2 0 0 0 2 2 2
+-5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 3 3 3 0 0 0 1 1 1 6 6 6
+-2 2 2 0 0 0 3 3 3 4 4 4 4 4 4 4 4 4
+-4 4 5 3 3 3 1 0 0 0 0 0 1 0 0 0 0 0
+-1 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-2 2 2 0 0 0 0 0 0 14 17 19 60 74 84 137 136 137
+-153 152 153 137 136 137 125 124 125 60 73 81 6 6 6 3 1 0
+-0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 0 0 0 4 4 4 41 54 63 125 124 125
+-60 73 81 6 6 6 4 0 0 3 3 3 4 4 4 4 4 4
+-4 4 4 0 0 0 6 9 11 41 54 63 41 65 82 22 30 35
+-2 2 2 2 1 0 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 5 5 5 5 5 5 2 2 2 0 0 0
+-4 0 0 6 6 6 41 54 63 137 136 137 174 174 174 167 166 167
+-165 164 165 165 164 165 163 162 163 163 162 163 125 124 125 41 54 63
+-1 1 1 0 0 0 0 0 0 3 3 3 5 5 5 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
+-3 3 3 2 0 0 4 0 0 60 73 81 156 155 156 167 166 167
+-163 162 163 85 115 134 5 7 8 0 0 0 4 4 4 5 5 5
+-0 0 0 2 5 5 55 98 126 90 154 193 90 154 193 72 125 159
+-37 51 59 2 0 0 1 1 1 4 5 5 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 5 5 5 4 4 4 1 1 1 0 0 0 3 3 3
+-37 38 37 125 124 125 163 162 163 174 174 174 158 157 158 158 157 158
+-156 155 156 156 155 156 158 157 158 165 164 165 174 174 174 166 165 166
+-125 124 125 16 19 21 1 0 0 0 0 0 0 0 0 4 4 4
+-5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 1 1 1
+-0 0 0 0 0 0 37 38 37 153 152 153 174 174 174 158 157 158
+-174 174 174 163 162 163 37 38 37 4 3 3 4 0 0 1 1 1
+-0 0 0 22 40 52 101 161 196 101 161 196 90 154 193 101 161 196
+-64 123 161 14 17 19 0 0 0 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
+-5 5 5 2 2 2 0 0 0 4 0 0 24 26 27 85 115 134
+-156 155 156 174 174 174 167 166 167 156 155 156 154 153 154 157 156 157
+-156 155 156 156 155 156 155 154 155 153 152 153 158 157 158 167 166 167
+-174 174 174 156 155 156 60 74 84 16 19 21 0 0 0 0 0 0
+-1 1 1 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 5 5 5 6 6 6 3 3 3 0 0 0 4 0 0
+-13 16 17 60 73 81 137 136 137 165 164 165 156 155 156 153 152 153
+-174 174 174 177 184 187 60 73 81 3 1 0 0 0 0 1 1 2
+-22 30 35 64 123 161 136 185 209 90 154 193 90 154 193 90 154 193
+-90 154 193 21 29 34 0 0 0 3 2 2 4 4 5 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 3 3 3
+-0 0 0 0 0 0 10 13 16 60 74 84 157 156 157 174 174 174
+-174 174 174 158 157 158 153 152 153 154 153 154 156 155 156 155 154 155
+-156 155 156 155 154 155 154 153 154 157 156 157 154 153 154 153 152 153
+-163 162 163 174 174 174 177 184 187 137 136 137 60 73 81 13 16 17
+-4 0 0 0 0 0 3 3 3 5 5 5 4 4 4 4 4 4
+-5 5 5 4 4 4 1 1 1 0 0 0 3 3 3 41 54 63
+-131 129 131 174 174 174 174 174 174 174 174 174 167 166 167 174 174 174
+-190 197 201 137 136 137 24 26 27 4 0 0 16 21 25 50 82 103
+-90 154 193 136 185 209 90 154 193 101 161 196 101 161 196 101 161 196
+-31 91 132 3 6 7 0 0 0 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 2 2 2 0 0 0 4 0 0
+-4 0 0 43 57 68 137 136 137 177 184 187 174 174 174 163 162 163
+-155 154 155 155 154 155 156 155 156 155 154 155 158 157 158 165 164 165
+-167 166 167 166 165 166 163 162 163 157 156 157 155 154 155 155 154 155
+-153 152 153 156 155 156 167 166 167 174 174 174 174 174 174 131 129 131
+-41 54 63 5 5 5 0 0 0 0 0 0 3 3 3 4 4 4
+-1 1 1 0 0 0 1 0 0 26 28 28 125 124 125 174 174 174
+-177 184 187 174 174 174 174 174 174 156 155 156 131 129 131 137 136 137
+-125 124 125 24 26 27 4 0 0 41 65 82 90 154 193 136 185 209
+-136 185 209 101 161 196 53 118 160 37 112 160 90 154 193 34 86 122
+-7 12 15 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 3 3 3 0 0 0 0 0 0 5 5 5 37 38 37
+-125 124 125 167 166 167 174 174 174 167 166 167 158 157 158 155 154 155
+-156 155 156 156 155 156 156 155 156 163 162 163 167 166 167 155 154 155
+-137 136 137 153 152 153 156 155 156 165 164 165 163 162 163 156 155 156
+-156 155 156 156 155 156 155 154 155 158 157 158 166 165 166 174 174 174
+-167 166 167 125 124 125 37 38 37 1 0 0 0 0 0 0 0 0
+-0 0 0 24 26 27 60 74 84 158 157 158 174 174 174 174 174 174
+-166 165 166 158 157 158 125 124 125 41 54 63 13 16 17 6 6 6
+-6 6 6 37 38 37 80 127 157 136 185 209 101 161 196 101 161 196
+-90 154 193 28 67 93 6 10 14 13 20 25 13 20 25 6 10 14
+-1 1 2 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-1 1 1 1 0 0 4 3 3 37 38 37 60 74 84 153 152 153
+-167 166 167 167 166 167 158 157 158 154 153 154 155 154 155 156 155 156
+-157 156 157 158 157 158 167 166 167 167 166 167 131 129 131 43 57 68
+-26 28 28 37 38 37 60 73 81 131 129 131 165 164 165 166 165 166
+-158 157 158 155 154 155 156 155 156 156 155 156 156 155 156 158 157 158
+-165 164 165 174 174 174 163 162 163 60 74 84 16 19 21 13 16 17
+-60 73 81 131 129 131 174 174 174 174 174 174 167 166 167 165 164 165
+-137 136 137 60 73 81 24 26 27 4 0 0 4 0 0 16 19 21
+-52 104 138 101 161 196 136 185 209 136 185 209 90 154 193 27 99 146
+-13 20 25 4 5 7 2 5 5 4 5 7 1 1 2 0 0 0
+-4 4 4 4 4 4 3 3 3 2 2 2 2 2 2 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 0 0 0
+-0 0 0 13 16 17 60 73 81 137 136 137 174 174 174 166 165 166
+-158 157 158 156 155 156 157 156 157 156 155 156 155 154 155 158 157 158
+-167 166 167 174 174 174 153 152 153 60 73 81 16 19 21 4 0 0
+-4 0 0 4 0 0 6 6 6 26 28 28 60 74 84 158 157 158
+-174 174 174 166 165 166 157 156 157 155 154 155 156 155 156 156 155 156
+-155 154 155 158 157 158 167 166 167 167 166 167 131 129 131 125 124 125
+-137 136 137 167 166 167 167 166 167 174 174 174 158 157 158 125 124 125
+-16 19 21 4 0 0 4 0 0 10 13 16 49 76 92 107 159 188
+-136 185 209 136 185 209 90 154 193 26 108 161 22 40 52 6 10 14
+-2 3 3 1 1 2 1 1 2 4 4 5 4 4 5 4 4 5
+-4 4 5 2 2 1 0 0 0 0 0 0 0 0 0 2 2 2
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 5 5 5 3 3 3 0 0 0 1 0 0 4 0 0
+-37 51 59 131 129 131 167 166 167 167 166 167 163 162 163 157 156 157
+-157 156 157 155 154 155 153 152 153 157 156 157 167 166 167 174 174 174
+-153 152 153 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
+-4 3 3 4 3 3 4 0 0 6 6 6 4 0 0 37 38 37
+-125 124 125 174 174 174 174 174 174 165 164 165 156 155 156 154 153 154
+-156 155 156 156 155 156 155 154 155 163 162 163 158 157 158 163 162 163
+-174 174 174 174 174 174 174 174 174 125 124 125 37 38 37 0 0 0
+-4 0 0 6 9 11 41 54 63 90 154 193 136 185 209 146 190 211
+-136 185 209 37 112 160 22 40 52 6 10 14 3 6 7 1 1 2
+-1 1 2 3 3 3 1 1 2 3 3 3 4 4 4 4 4 4
+-2 2 2 2 0 0 16 19 21 37 38 37 24 26 27 0 0 0
+-0 0 0 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
+-4 4 4 0 0 0 0 0 0 0 0 0 26 28 28 120 125 127
+-158 157 158 174 174 174 165 164 165 157 156 157 155 154 155 156 155 156
+-153 152 153 153 152 153 167 166 167 174 174 174 174 174 174 125 124 125
+-37 38 37 4 0 0 0 0 0 4 0 0 4 3 3 4 4 4
+-4 4 4 4 4 4 5 5 5 4 0 0 4 0 0 4 0 0
+-4 3 3 43 57 68 137 136 137 174 174 174 174 174 174 165 164 165
+-154 153 154 153 152 153 153 152 153 153 152 153 163 162 163 174 174 174
+-174 174 174 153 152 153 60 73 81 6 6 6 4 0 0 4 3 3
+-32 43 50 80 127 157 136 185 209 146 190 211 146 190 211 90 154 193
+-28 67 93 28 67 93 40 71 93 3 6 7 1 1 2 2 5 5
+-50 82 103 79 117 143 26 37 45 0 0 0 3 3 3 1 1 1
+-0 0 0 41 54 63 137 136 137 174 174 174 153 152 153 60 73 81
+-2 0 0 0 0 0
+-4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 2 2 2
+-0 0 0 2 0 0 24 26 27 60 74 84 153 152 153 174 174 174
+-174 174 174 157 156 157 154 153 154 156 155 156 154 153 154 153 152 153
+-165 164 165 174 174 174 177 184 187 137 136 137 43 57 68 6 6 6
+-4 0 0 2 0 0 3 3 3 5 5 5 5 5 5 4 4 4
+-4 4 4 4 4 4 4 4 4 5 5 5 6 6 6 4 3 3
+-4 0 0 4 0 0 24 26 27 60 73 81 153 152 153 174 174 174
+-174 174 174 158 157 158 158 157 158 174 174 174 174 174 174 158 157 158
+-60 74 84 24 26 27 4 0 0 4 0 0 17 23 27 59 113 148
+-136 185 209 191 222 234 146 190 211 136 185 209 31 91 132 7 11 13
+-22 40 52 101 161 196 90 154 193 6 9 11 3 4 4 43 95 132
+-136 185 209 172 205 220 55 98 126 0 0 0 0 0 0 2 0 0
+-26 28 28 153 152 153 177 184 187 167 166 167 177 184 187 165 164 165
+-37 38 37 0 0 0
+-4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
+-13 16 17 60 73 81 137 136 137 174 174 174 174 174 174 165 164 165
+-153 152 153 153 152 153 155 154 155 154 153 154 158 157 158 174 174 174
+-177 184 187 163 162 163 60 73 81 16 19 21 4 0 0 4 0 0
+-4 3 3 4 4 4 5 5 5 5 5 5 4 4 4 5 5 5
+-5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 5 5 5
+-6 6 6 4 0 0 4 0 0 4 0 0 24 26 27 60 74 84
+-166 165 166 174 174 174 177 184 187 165 164 165 125 124 125 24 26 27
+-4 0 0 4 0 0 5 5 5 50 82 103 136 185 209 172 205 220
+-146 190 211 136 185 209 26 108 161 22 40 52 7 12 15 44 81 103
+-71 116 144 28 67 93 37 51 59 41 65 82 100 139 164 101 161 196
+-90 154 193 90 154 193 28 67 93 0 0 0 0 0 0 26 28 28
+-125 124 125 167 166 167 163 162 163 153 152 153 163 162 163 174 174 174
+-85 115 134 4 0 0
+-4 4 4 5 5 5 4 4 4 1 0 0 4 0 0 34 47 55
+-125 124 125 174 174 174 174 174 174 167 166 167 157 156 157 153 152 153
+-155 154 155 155 154 155 158 157 158 166 165 166 167 166 167 154 153 154
+-125 124 125 26 28 28 4 0 0 4 0 0 4 0 0 5 5 5
+-5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 1 1 1
+-0 0 0 0 0 0 1 1 1 4 4 4 4 4 4 4 4 4
+-5 5 5 5 5 5 4 3 3 4 0 0 4 0 0 6 6 6
+-37 38 37 131 129 131 137 136 137 37 38 37 0 0 0 4 0 0
+-4 5 5 43 61 72 90 154 193 172 205 220 146 190 211 136 185 209
+-90 154 193 28 67 93 13 20 25 43 61 72 71 116 144 44 81 103
+-2 5 5 7 11 13 59 113 148 101 161 196 90 154 193 28 67 93
+-13 20 25 6 10 14 0 0 0 13 16 17 60 73 81 137 136 137
+-166 165 166 158 157 158 156 155 156 154 153 154 167 166 167 174 174 174
+-60 73 81 4 0 0
+-4 4 4 4 4 4 0 0 0 3 3 3 60 74 84 174 174 174
+-174 174 174 167 166 167 163 162 163 155 154 155 157 156 157 155 154 155
+-156 155 156 163 162 163 167 166 167 158 157 158 125 124 125 37 38 37
+-4 3 3 4 0 0 4 0 0 6 6 6 6 6 6 5 5 5
+-4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 2 3 3
+-10 13 16 7 11 13 1 0 0 0 0 0 2 2 1 4 4 4
+-4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 4 0 0
+-4 0 0 7 11 13 13 16 17 4 0 0 3 3 3 34 47 55
+-80 127 157 146 190 211 172 205 220 136 185 209 136 185 209 136 185 209
+-28 67 93 22 40 52 55 98 126 55 98 126 21 29 34 7 11 13
+-50 82 103 101 161 196 101 161 196 35 83 115 13 20 25 2 2 1
+-1 1 2 1 1 2 37 51 59 131 129 131 174 174 174 174 174 174
+-167 166 167 163 162 163 163 162 163 167 166 167 174 174 174 125 124 125
+-16 19 21 4 0 0
+-4 4 4 4 0 0 4 0 0 60 74 84 174 174 174 174 174 174
+-158 157 158 155 154 155 155 154 155 156 155 156 155 154 155 158 157 158
+-167 166 167 165 164 165 131 129 131 60 73 81 13 16 17 4 0 0
+-4 0 0 4 3 3 6 6 6 4 3 3 5 5 5 4 4 4
+-4 4 4 3 2 2 0 0 0 0 0 0 7 11 13 45 69 86
+-80 127 157 71 116 144 43 61 72 7 11 13 0 0 0 1 1 1
+-4 3 3 4 4 4 4 4 4 4 4 4 6 6 6 5 5 5
+-3 2 2 4 0 0 1 0 0 21 29 34 59 113 148 136 185 209
+-146 190 211 136 185 209 136 185 209 136 185 209 136 185 209 136 185 209
+-68 124 159 44 81 103 22 40 52 13 16 17 43 61 72 90 154 193
+-136 185 209 59 113 148 21 29 34 3 4 3 1 1 1 0 0 0
+-24 26 27 125 124 125 163 162 163 174 174 174 166 165 166 165 164 165
+-163 162 163 125 124 125 125 124 125 125 124 125 125 124 125 26 28 28
+-4 0 0 4 3 3
+-3 3 3 0 0 0 24 26 27 153 152 153 177 184 187 158 157 158
+-156 155 156 156 155 156 155 154 155 155 154 155 165 164 165 174 174 174
+-155 154 155 60 74 84 26 28 28 4 0 0 4 0 0 3 1 0
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3
+-2 0 0 0 0 0 0 0 0 32 43 50 72 125 159 101 161 196
+-136 185 209 101 161 196 101 161 196 79 117 143 32 43 50 0 0 0
+-0 0 0 2 2 2 4 4 4 4 4 4 3 3 3 1 0 0
+-0 0 0 4 5 5 49 76 92 101 161 196 146 190 211 146 190 211
+-136 185 209 136 185 209 136 185 209 136 185 209 136 185 209 90 154 193
+-28 67 93 13 16 17 37 51 59 80 127 157 136 185 209 90 154 193
+-22 40 52 6 9 11 3 4 3 2 2 1 16 19 21 60 73 81
+-137 136 137 163 162 163 158 157 158 166 165 166 167 166 167 153 152 153
+-60 74 84 37 38 37 6 6 6 13 16 17 4 0 0 1 0 0
+-3 2 2 4 4 4
+-3 2 2 4 0 0 37 38 37 137 136 137 167 166 167 158 157 158
+-157 156 157 154 153 154 157 156 157 167 166 167 174 174 174 125 124 125
+-37 38 37 4 0 0 4 0 0 4 0 0 4 3 3 4 4 4
+-4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
+-0 0 0 16 21 25 55 98 126 90 154 193 136 185 209 101 161 196
+-101 161 196 101 161 196 136 185 209 136 185 209 101 161 196 55 98 126
+-14 17 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-22 40 52 90 154 193 146 190 211 146 190 211 136 185 209 136 185 209
+-136 185 209 136 185 209 136 185 209 101 161 196 35 83 115 7 11 13
+-17 23 27 59 113 148 136 185 209 101 161 196 34 86 122 7 12 15
+-2 5 5 3 4 3 6 6 6 60 73 81 131 129 131 163 162 163
+-166 165 166 174 174 174 174 174 174 163 162 163 125 124 125 41 54 63
+-13 16 17 4 0 0 4 0 0 4 0 0 1 0 0 2 2 2
+-4 4 4 4 4 4
+-1 1 1 2 1 0 43 57 68 137 136 137 153 152 153 153 152 153
+-163 162 163 156 155 156 165 164 165 167 166 167 60 74 84 6 6 6
+-4 0 0 4 0 0 5 5 5 4 4 4 4 4 4 4 4 4
+-4 5 5 6 6 6 4 3 3 0 0 0 0 0 0 11 15 18
+-40 71 93 100 139 164 101 161 196 101 161 196 101 161 196 101 161 196
+-101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 136 185 209
+-101 161 196 45 69 86 6 6 6 0 0 0 17 23 27 55 98 126
+-136 185 209 146 190 211 136 185 209 136 185 209 136 185 209 136 185 209
+-136 185 209 136 185 209 90 154 193 22 40 52 7 11 13 50 82 103
+-136 185 209 136 185 209 53 118 160 22 40 52 7 11 13 2 5 5
+-3 4 3 37 38 37 125 124 125 157 156 157 166 165 166 167 166 167
+-174 174 174 174 174 174 137 136 137 60 73 81 4 0 0 4 0 0
+-4 0 0 4 0 0 5 5 5 3 3 3 3 3 3 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 41 54 63 137 136 137 125 124 125 131 129 131
+-155 154 155 167 166 167 174 174 174 60 74 84 6 6 6 4 0 0
+-4 3 3 6 6 6 4 4 4 4 4 4 4 4 4 5 5 5
+-4 4 4 1 1 1 0 0 0 3 6 7 41 65 82 72 125 159
+-101 161 196 101 161 196 101 161 196 90 154 193 90 154 193 101 161 196
+-101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
+-136 185 209 136 185 209 80 127 157 55 98 126 101 161 196 146 190 211
+-136 185 209 136 185 209 136 185 209 101 161 196 136 185 209 101 161 196
+-136 185 209 101 161 196 35 83 115 22 30 35 101 161 196 172 205 220
+-90 154 193 28 67 93 7 11 13 2 5 5 3 4 3 13 16 17
+-85 115 134 167 166 167 174 174 174 174 174 174 174 174 174 174 174 174
+-167 166 167 60 74 84 13 16 17 4 0 0 4 0 0 4 3 3
+-6 6 6 5 5 5 4 4 4 5 5 5 4 4 4 5 5 5
+-5 5 5 5 5 5
+-1 1 1 4 0 0 41 54 63 137 136 137 137 136 137 125 124 125
+-131 129 131 167 166 167 157 156 157 37 38 37 6 6 6 4 0 0
+-6 6 6 5 5 5 4 4 4 4 4 4 4 5 5 2 2 1
+-0 0 0 0 0 0 26 37 45 58 111 146 101 161 196 101 161 196
+-101 161 196 90 154 193 90 154 193 90 154 193 101 161 196 101 161 196
+-101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
+-101 161 196 136 185 209 136 185 209 136 185 209 146 190 211 136 185 209
+-136 185 209 101 161 196 136 185 209 136 185 209 101 161 196 136 185 209
+-101 161 196 136 185 209 136 185 209 136 185 209 136 185 209 16 89 141
+-7 11 13 2 5 5 2 5 5 13 16 17 60 73 81 154 154 154
+-174 174 174 174 174 174 174 174 174 174 174 174 163 162 163 125 124 125
+-24 26 27 4 0 0 4 0 0 4 0 0 5 5 5 5 5 5
+-4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
+-5 5 5 4 4 4
+-4 0 0 6 6 6 37 38 37 137 136 137 137 136 137 131 129 131
+-131 129 131 153 152 153 131 129 131 26 28 28 4 0 0 4 3 3
+-6 6 6 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0
+-13 20 25 51 88 114 90 154 193 101 161 196 101 161 196 90 154 193
+-90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
+-101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 101 161 196
+-101 161 196 136 185 209 101 161 196 136 185 209 136 185 209 101 161 196
+-136 185 209 101 161 196 136 185 209 101 161 196 101 161 196 101 161 196
+-136 185 209 136 185 209 136 185 209 37 112 160 21 29 34 5 7 8
+-2 5 5 13 16 17 43 57 68 131 129 131 174 174 174 174 174 174
+-174 174 174 167 166 167 157 156 157 125 124 125 37 38 37 4 0 0
+-4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-1 1 1 4 0 0 41 54 63 153 152 153 137 136 137 137 136 137
+-137 136 137 153 152 153 125 124 125 24 26 27 4 0 0 3 2 2
+-4 4 4 4 4 4 4 3 3 4 0 0 3 6 7 43 61 72
+-64 123 161 101 161 196 90 154 193 90 154 193 90 154 193 90 154 193
+-90 154 193 90 154 193 90 154 193 90 154 193 101 161 196 90 154 193
+-101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
+-101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
+-136 185 209 101 161 196 101 161 196 136 185 209 136 185 209 101 161 196
+-101 161 196 90 154 193 28 67 93 13 16 17 7 11 13 3 6 7
+-37 51 59 125 124 125 163 162 163 174 174 174 167 166 167 166 165 166
+-167 166 167 131 129 131 60 73 81 4 0 0 4 0 0 4 0 0
+-3 3 3 5 5 5 6 6 6 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 41 54 63 137 136 137 153 152 153 137 136 137
+-153 152 153 157 156 157 125 124 125 24 26 27 0 0 0 2 2 2
+-4 4 4 4 4 4 2 0 0 0 0 0 28 67 93 90 154 193
+-90 154 193 90 154 193 90 154 193 90 154 193 64 123 161 90 154 193
+-90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
+-90 154 193 101 161 196 101 161 196 101 161 196 90 154 193 136 185 209
+-101 161 196 101 161 196 136 185 209 101 161 196 136 185 209 101 161 196
+-101 161 196 101 161 196 136 185 209 101 161 196 101 161 196 90 154 193
+-35 83 115 13 16 17 3 6 7 2 5 5 13 16 17 60 74 84
+-154 154 154 166 165 166 165 164 165 158 157 158 163 162 163 157 156 157
+-60 74 84 13 16 17 4 0 0 4 0 0 3 2 2 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-1 1 1 4 0 0 41 54 63 157 156 157 155 154 155 137 136 137
+-153 152 153 158 157 158 137 136 137 26 28 28 2 0 0 2 2 2
+-4 4 4 4 4 4 1 0 0 6 10 14 34 86 122 90 154 193
+-64 123 161 90 154 193 64 123 161 90 154 193 90 154 193 90 154 193
+-64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
+-101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
+-101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
+-136 185 209 101 161 196 136 185 209 90 154 193 26 108 161 22 40 52
+-13 16 17 5 7 8 2 5 5 2 5 5 37 38 37 165 164 165
+-174 174 174 163 162 163 154 154 154 165 164 165 167 166 167 60 73 81
+-6 6 6 4 0 0 4 0 0 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 6 6 6 41 54 63 156 155 156 158 157 158 153 152 153
+-156 155 156 165 164 165 137 136 137 26 28 28 0 0 0 2 2 2
+-4 4 5 4 4 4 2 0 0 7 12 15 31 96 139 64 123 161
+-90 154 193 64 123 161 90 154 193 90 154 193 64 123 161 90 154 193
+-90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
+-90 154 193 90 154 193 90 154 193 101 161 196 101 161 196 101 161 196
+-101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
+-101 161 196 136 185 209 26 108 161 22 40 52 7 11 13 5 7 8
+-2 5 5 2 5 5 2 5 5 2 2 1 37 38 37 158 157 158
+-174 174 174 154 154 154 156 155 156 167 166 167 165 164 165 37 38 37
+-4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-3 1 0 4 0 0 60 73 81 157 156 157 163 162 163 153 152 153
+-158 157 158 167 166 167 137 136 137 26 28 28 2 0 0 2 2 2
+-4 5 5 4 4 4 4 0 0 7 12 15 24 86 132 26 108 161
+-37 112 160 64 123 161 90 154 193 64 123 161 90 154 193 90 154 193
+-90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
+-90 154 193 101 161 196 90 154 193 101 161 196 101 161 196 101 161 196
+-101 161 196 101 161 196 101 161 196 136 185 209 101 161 196 136 185 209
+-90 154 193 35 83 115 13 16 17 13 16 17 7 11 13 3 6 7
+-5 7 8 6 6 6 3 4 3 2 2 1 30 32 34 154 154 154
+-167 166 167 154 154 154 154 154 154 174 174 174 165 164 165 37 38 37
+-6 6 6 4 0 0 6 6 6 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 41 54 63 163 162 163 166 165 166 154 154 154
+-163 162 163 174 174 174 137 136 137 26 28 28 0 0 0 2 2 2
+-4 5 5 4 4 5 1 1 2 6 10 14 28 67 93 18 97 151
+-18 97 151 18 97 151 26 108 161 37 112 160 37 112 160 90 154 193
+-64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
+-90 154 193 101 161 196 101 161 196 90 154 193 101 161 196 101 161 196
+-101 161 196 101 161 196 101 161 196 136 185 209 90 154 193 16 89 141
+-13 20 25 7 11 13 5 7 8 5 7 8 2 5 5 4 5 5
+-3 4 3 4 5 5 3 4 3 0 0 0 37 38 37 158 157 158
+-174 174 174 158 157 158 158 157 158 167 166 167 174 174 174 41 54 63
+-4 0 0 3 2 2 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-1 1 1 4 0 0 60 73 81 165 164 165 174 174 174 158 157 158
+-167 166 167 174 174 174 153 152 153 26 28 28 2 0 0 2 2 2
+-4 5 5 4 4 4 4 0 0 7 12 15 10 87 144 10 87 144
+-18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
+-26 108 161 37 112 160 53 118 160 90 154 193 90 154 193 90 154 193
+-90 154 193 90 154 193 101 161 196 101 161 196 101 161 196 101 161 196
+-101 161 196 136 185 209 90 154 193 26 108 161 22 40 52 13 16 17
+-7 11 13 3 6 7 5 7 8 5 7 8 2 5 5 4 5 5
+-4 5 5 6 6 6 3 4 3 0 0 0 30 32 34 158 157 158
+-174 174 174 156 155 156 155 154 155 165 164 165 154 153 154 37 38 37
+-4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 60 73 81 167 166 167 174 174 174 163 162 163
+-174 174 174 174 174 174 153 152 153 26 28 28 0 0 0 3 3 3
+-5 5 5 4 4 4 1 1 2 7 12 15 28 67 93 18 97 151
+-18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
+-26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
+-90 154 193 26 108 161 90 154 193 90 154 193 90 154 193 101 161 196
+-101 161 196 26 108 161 22 40 52 13 16 17 7 11 13 2 5 5
+-2 5 5 6 6 6 2 5 5 4 5 5 4 5 5 4 5 5
+-3 4 3 5 5 5 3 4 3 2 0 0 30 32 34 137 136 137
+-153 152 153 137 136 137 131 129 131 137 136 137 131 129 131 37 38 37
+-4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-1 1 1 4 0 0 60 73 81 167 166 167 174 174 174 166 165 166
+-174 174 174 177 184 187 153 152 153 30 32 34 1 0 0 3 3 3
+-5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
+-18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
+-26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
+-26 108 161 26 108 161 26 108 161 90 154 193 90 154 193 26 108 161
+-35 83 115 13 16 17 7 11 13 5 7 8 3 6 7 5 7 8
+-2 5 5 6 6 6 4 5 5 4 5 5 3 4 3 4 5 5
+-3 4 3 6 6 6 3 4 3 0 0 0 26 28 28 125 124 125
+-131 129 131 125 124 125 125 124 125 131 129 131 131 129 131 37 38 37
+-4 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-3 1 0 4 0 0 60 73 81 174 174 174 177 184 187 167 166 167
+-174 174 174 177 184 187 153 152 153 30 32 34 0 0 0 3 3 3
+-5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
+-18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
+-26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
+-26 108 161 90 154 193 26 108 161 26 108 161 24 86 132 13 20 25
+-7 11 13 13 20 25 22 40 52 5 7 8 3 4 3 3 4 3
+-4 5 5 3 4 3 4 5 5 3 4 3 4 5 5 3 4 3
+-4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-1 1 1 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
+-174 174 174 190 197 201 157 156 157 30 32 34 1 0 0 3 3 3
+-5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
+-18 97 151 19 95 150 19 95 150 18 97 151 18 97 151 26 108 161
+-18 97 151 26 108 161 26 108 161 26 108 161 26 108 161 90 154 193
+-26 108 161 26 108 161 26 108 161 22 40 52 2 5 5 3 4 3
+-28 67 93 37 112 160 34 86 122 2 5 5 3 4 3 3 4 3
+-3 4 3 3 4 3 3 4 3 2 2 1 3 4 3 4 4 4
+-4 5 5 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
+-174 174 174 190 197 201 158 157 158 30 32 34 0 0 0 2 2 2
+-5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
+-10 87 144 19 95 150 19 95 150 18 97 151 18 97 151 18 97 151
+-26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
+-18 97 151 22 40 52 2 5 5 2 2 1 22 40 52 26 108 161
+-90 154 193 37 112 160 22 40 52 3 4 3 13 20 25 22 30 35
+-3 6 7 1 1 1 2 2 2 6 9 11 5 5 5 4 3 3
+-4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-1 1 1 4 0 0 60 73 81 177 184 187 193 200 203 174 174 174
+-177 184 187 193 200 203 163 162 163 30 32 34 4 0 0 2 2 2
+-5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
+-10 87 144 10 87 144 19 95 150 19 95 150 19 95 150 18 97 151
+-26 108 161 26 108 161 26 108 161 90 154 193 26 108 161 28 67 93
+-6 10 14 2 5 5 13 20 25 24 86 132 37 112 160 90 154 193
+-10 87 144 7 12 15 2 5 5 28 67 93 37 112 160 28 67 93
+-2 2 1 7 12 15 35 83 115 28 67 93 3 6 7 1 0 0
+-4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 60 73 81 174 174 174 190 197 201 174 174 174
+-177 184 187 193 200 203 163 162 163 30 32 34 0 0 0 2 2 2
+-5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
+-10 87 144 16 89 141 19 95 150 10 87 144 26 108 161 26 108 161
+-26 108 161 26 108 161 26 108 161 28 67 93 6 10 14 1 1 2
+-7 12 15 28 67 93 26 108 161 16 89 141 24 86 132 21 29 34
+-3 4 3 21 29 34 37 112 160 37 112 160 27 99 146 21 29 34
+-21 29 34 26 108 161 90 154 193 35 83 115 1 1 2 2 0 0
+-4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-3 1 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
+-190 197 201 193 200 203 165 164 165 37 38 37 4 0 0 2 2 2
+-5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
+-10 87 144 10 87 144 16 89 141 18 97 151 18 97 151 10 87 144
+-24 86 132 24 86 132 13 20 25 4 5 7 4 5 7 22 40 52
+-18 97 151 37 112 160 26 108 161 7 12 15 1 1 1 0 0 0
+-28 67 93 37 112 160 26 108 161 28 67 93 22 40 52 28 67 93
+-26 108 161 90 154 193 26 108 161 10 87 144 0 0 0 2 0 0
+-4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 6 6 6 60 73 81 174 174 174 193 200 203 174 174 174
+-190 197 201 193 200 203 165 164 165 30 32 34 0 0 0 2 2 2
+-5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
+-10 87 144 10 87 144 10 87 144 18 97 151 28 67 93 6 10 14
+-0 0 0 1 1 2 4 5 7 13 20 25 16 89 141 26 108 161
+-26 108 161 26 108 161 24 86 132 6 9 11 2 3 3 22 40 52
+-37 112 160 16 89 141 22 40 52 28 67 93 26 108 161 26 108 161
+-90 154 193 26 108 161 26 108 161 28 67 93 1 1 1 4 0 0
+-4 4 4 5 5 5 3 3 3 4 0 0 26 28 28 124 126 130
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
+-193 200 203 193 200 203 167 166 167 37 38 37 4 0 0 2 2 2
+-5 5 5 4 4 4 4 0 0 6 10 14 28 67 93 10 87 144
+-10 87 144 10 87 144 18 97 151 10 87 144 13 20 25 4 5 7
+-1 1 2 1 1 1 22 40 52 26 108 161 26 108 161 26 108 161
+-26 108 161 26 108 161 26 108 161 24 86 132 22 40 52 22 40 52
+-22 40 52 22 40 52 10 87 144 26 108 161 26 108 161 26 108 161
+-26 108 161 26 108 161 90 154 193 10 87 144 0 0 0 4 0 0
+-4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
+-190 197 201 205 212 215 167 166 167 30 32 34 0 0 0 2 2 2
+-5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
+-10 87 144 10 87 144 10 87 144 10 87 144 22 40 52 1 1 2
+-2 0 0 1 1 2 24 86 132 26 108 161 26 108 161 26 108 161
+-26 108 161 19 95 150 16 89 141 10 87 144 22 40 52 22 40 52
+-10 87 144 26 108 161 37 112 160 26 108 161 26 108 161 26 108 161
+-26 108 161 26 108 161 26 108 161 28 67 93 2 0 0 3 1 0
+-4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
+-193 200 203 193 200 203 174 174 174 37 38 37 4 0 0 2 2 2
+-5 5 5 4 4 4 3 2 2 1 1 2 13 20 25 10 87 144
+-10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 13 20 25
+-13 20 25 22 40 52 10 87 144 18 97 151 18 97 151 26 108 161
+-10 87 144 13 20 25 6 10 14 21 29 34 24 86 132 18 97 151
+-26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
+-26 108 161 90 154 193 18 97 151 13 20 25 0 0 0 4 3 3
+-4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
+-190 197 201 220 221 221 167 166 167 30 32 34 1 0 0 2 2 2
+-5 5 5 4 4 4 4 4 5 2 5 5 4 5 7 13 20 25
+-28 67 93 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
+-10 87 144 10 87 144 18 97 151 10 87 144 18 97 151 18 97 151
+-28 67 93 2 3 3 0 0 0 28 67 93 26 108 161 26 108 161
+-26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
+-26 108 161 10 87 144 13 20 25 1 1 2 3 2 2 4 4 4
+-4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
+-193 200 203 193 200 203 174 174 174 26 28 28 4 0 0 4 3 3
+-5 5 5 4 4 4 4 4 4 4 4 5 1 1 2 2 5 5
+-4 5 7 22 40 52 10 87 144 10 87 144 18 97 151 10 87 144
+-10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 18 97 151
+-10 87 144 28 67 93 22 40 52 10 87 144 26 108 161 18 97 151
+-18 97 151 18 97 151 26 108 161 26 108 161 26 108 161 26 108 161
+-22 40 52 1 1 2 0 0 0 2 3 3 4 4 4 4 4 4
+-4 4 4 5 5 5 4 4 4 0 0 0 26 28 28 131 129 131
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
+-190 197 201 220 221 221 190 197 201 41 54 63 4 0 0 2 2 2
+-6 6 6 4 4 4 4 4 4 4 4 5 4 4 5 3 3 3
+-1 1 2 1 1 2 6 10 14 22 40 52 10 87 144 18 97 151
+-18 97 151 10 87 144 10 87 144 10 87 144 18 97 151 10 87 144
+-10 87 144 18 97 151 26 108 161 18 97 151 18 97 151 10 87 144
+-26 108 161 26 108 161 26 108 161 10 87 144 28 67 93 6 10 14
+-1 1 2 1 1 2 4 3 3 4 4 5 4 4 4 4 4 4
+-5 5 5 5 5 5 1 1 1 4 0 0 37 51 59 137 136 137
+-137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 4 0 0 60 73 81 220 221 221 193 200 203 174 174 174
+-193 200 203 193 200 203 220 221 221 137 136 137 13 16 17 4 0 0
+-2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
+-4 4 5 4 3 3 1 1 2 4 5 7 13 20 25 28 67 93
+-10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
+-10 87 144 18 97 151 18 97 151 10 87 144 18 97 151 26 108 161
+-26 108 161 18 97 151 28 67 93 6 10 14 0 0 0 0 0 0
+-2 3 3 4 5 5 4 4 5 4 4 4 4 4 4 5 5 5
+-3 3 3 1 1 1 0 0 0 16 19 21 125 124 125 137 136 137
+-131 129 131 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
+-193 200 203 190 197 201 220 221 221 220 221 221 153 152 153 30 32 34
+-0 0 0 0 0 0 2 2 2 4 4 4 4 4 4 4 4 4
+-4 4 4 4 5 5 4 5 7 1 1 2 1 1 2 4 5 7
+-13 20 25 28 67 93 10 87 144 18 97 151 10 87 144 10 87 144
+-10 87 144 10 87 144 10 87 144 18 97 151 26 108 161 18 97 151
+-28 67 93 7 12 15 0 0 0 0 0 0 2 2 1 4 4 4
+-4 5 5 4 5 5 4 4 4 4 4 4 3 3 3 0 0 0
+-0 0 0 0 0 0 37 38 37 125 124 125 158 157 158 131 129 131
+-125 124 125 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 3 3 4 0 0 41 54 63 193 200 203 220 221 221 174 174 174
+-193 200 203 193 200 203 193 200 203 220 221 221 244 246 246 193 200 203
+-120 125 127 5 5 5 1 0 0 0 0 0 1 1 1 4 4 4
+-4 4 4 4 4 4 4 5 5 4 5 5 4 4 5 1 1 2
+-4 5 7 4 5 7 22 40 52 10 87 144 10 87 144 10 87 144
+-10 87 144 10 87 144 18 97 151 10 87 144 10 87 144 13 20 25
+-4 5 7 2 3 3 1 1 2 4 4 4 4 5 5 4 4 4
+-4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 1 2
+-24 26 27 60 74 84 153 152 153 163 162 163 137 136 137 125 124 125
+-125 124 125 125 124 125 125 124 125 137 136 137 125 124 125 26 28 28
+-0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 0 0 6 6 6 26 28 28 156 155 156 220 221 221 220 221 221
+-174 174 174 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
+-220 221 221 167 166 167 60 73 81 7 11 13 0 0 0 0 0 0
+-3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 4 4 5
+-4 4 5 1 1 2 1 1 2 4 5 7 22 40 52 10 87 144
+-10 87 144 10 87 144 10 87 144 22 40 52 4 5 7 1 1 2
+-1 1 2 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4
+-5 5 5 2 2 2 0 0 0 4 0 0 16 19 21 60 73 81
+-137 136 137 167 166 167 158 157 158 137 136 137 131 129 131 131 129 131
+-125 124 125 125 124 125 131 129 131 155 154 155 60 74 84 5 7 8
+-0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-5 5 5 4 0 0 4 0 0 60 73 81 193 200 203 220 221 221
+-193 200 203 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
+-220 221 221 220 221 221 220 221 221 137 136 137 43 57 68 6 6 6
+-4 0 0 1 1 1 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 5 4 4 5 3 2 2 1 1 2 2 5 5 13 20 25
+-22 40 52 22 40 52 13 20 25 2 3 3 1 1 2 3 3 3
+-4 5 7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-1 1 1 0 0 0 2 3 3 41 54 63 131 129 131 166 165 166
+-166 165 166 155 154 155 153 152 153 137 136 137 137 136 137 125 124 125
+-125 124 125 137 136 137 137 136 137 125 124 125 37 38 37 4 3 3
+-4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 3 3 6 6 6 6 6 6 13 16 17 60 73 81 167 166 167
+-220 221 221 220 221 221 220 221 221 193 200 203 193 200 203 193 200 203
+-205 212 215 220 221 221 220 221 221 244 246 246 205 212 215 125 124 125
+-24 26 27 0 0 0 0 0 0 2 2 2 5 5 5 5 5 5
+-4 4 4 4 4 4 4 4 4 4 4 5 1 1 2 4 5 7
+-4 5 7 4 5 7 1 1 2 3 2 2 4 4 5 4 4 4
+-4 4 4 4 4 4 5 5 5 4 4 4 0 0 0 0 0 0
+-2 0 0 26 28 28 125 124 125 174 174 174 174 174 174 166 165 166
+-156 155 156 153 152 153 137 136 137 137 136 137 131 129 131 137 136 137
+-137 136 137 137 136 137 60 74 84 30 32 34 4 0 0 4 0 0
+-5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-5 5 5 6 6 6 4 0 0 4 0 0 6 6 6 26 28 28
+-125 124 125 174 174 174 220 221 221 220 221 221 220 221 221 193 200 203
+-205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
+-193 200 203 60 74 84 13 16 17 4 0 0 0 0 0 3 3 3
+-5 5 5 5 5 5 4 4 4 4 4 4 4 4 5 3 3 3
+-1 1 2 3 3 3 4 4 5 4 4 5 4 4 4 4 4 4
+-5 5 5 5 5 5 2 2 2 0 0 0 0 0 0 13 16 17
+-60 74 84 174 174 174 193 200 203 174 174 174 167 166 167 163 162 163
+-153 152 153 153 152 153 137 136 137 137 136 137 153 152 153 137 136 137
+-125 124 125 41 54 63 24 26 27 4 0 0 4 0 0 5 5 5
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 3 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+-6 6 6 37 38 37 131 129 131 220 221 221 220 221 221 220 221 221
+-193 200 203 193 200 203 220 221 221 205 212 215 220 221 221 244 246 246
+-244 246 246 244 246 246 174 174 174 41 54 63 0 0 0 0 0 0
+-0 0 0 4 4 4 5 5 5 5 5 5 4 4 4 4 4 5
+-4 4 5 4 4 5 4 4 4 4 4 4 6 6 6 6 6 6
+-3 3 3 0 0 0 2 0 0 13 16 17 60 73 81 156 155 156
+-220 221 221 193 200 203 174 174 174 165 164 165 163 162 163 154 153 154
+-153 152 153 153 152 153 158 157 158 163 162 163 137 136 137 60 73 81
+-13 16 17 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-5 5 5 4 3 3 4 3 3 6 6 6 6 6 6 6 6 6
+-6 6 6 6 6 6 6 6 6 37 38 37 167 166 167 244 246 246
+-244 246 246 220 221 221 205 212 215 205 212 215 220 221 221 193 200 203
+-220 221 221 244 246 246 244 246 246 244 246 246 137 136 137 37 38 37
+-3 2 2 0 0 0 1 1 1 5 5 5 5 5 5 4 4 4
+-4 4 4 4 4 4 4 4 4 5 5 5 4 4 4 1 1 1
+-0 0 0 5 5 5 43 57 68 153 152 153 193 200 203 220 221 221
+-177 184 187 174 174 174 167 166 167 166 165 166 158 157 158 157 156 157
+-158 157 158 166 165 166 156 155 156 85 115 134 13 16 17 4 0 0
+-4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-5 5 5 4 3 3 6 6 6 6 6 6 4 0 0 6 6 6
+-6 6 6 6 6 6 6 6 6 6 6 6 13 16 17 60 73 81
+-177 184 187 220 221 221 220 221 221 220 221 221 205 212 215 220 221 221
+-220 221 221 205 212 215 220 221 221 244 246 246 244 246 246 205 212 215
+-125 124 125 30 32 34 0 0 0 0 0 0 2 2 2 5 5 5
+-4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 0 0
+-37 38 37 131 129 131 205 212 215 220 221 221 193 200 203 174 174 174
+-174 174 174 174 174 174 167 166 167 165 164 165 166 165 166 167 166 167
+-158 157 158 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
+-4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 5 5 5 4 3 3 4 3 3 6 6 6 6 6 6
+-4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+-26 28 28 125 124 125 205 212 215 220 221 221 220 221 221 220 221 221
+-205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
+-244 246 246 190 197 201 60 74 84 16 19 21 4 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 16 19 21 120 125 127
+-177 184 187 220 221 221 205 212 215 177 184 187 174 174 174 177 184 187
+-174 174 174 174 174 174 167 166 167 174 174 174 166 165 166 137 136 137
+-60 73 81 13 16 17 4 0 0 4 0 0 4 3 3 6 6 6
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-5 5 5 4 3 3 5 5 5 4 3 3 6 6 6 4 0 0
+-6 6 6 6 6 6 4 0 0 6 6 6 4 0 0 6 6 6
+-6 6 6 6 6 6 37 38 37 137 136 137 193 200 203 220 221 221
+-220 221 221 205 212 215 220 221 221 205 212 215 205 212 215 220 221 221
+-220 221 221 220 221 221 244 246 246 166 165 166 43 57 68 2 2 2
+-0 0 0 4 0 0 16 19 21 60 73 81 157 156 157 202 210 214
+-220 221 221 193 200 203 177 184 187 177 184 187 177 184 187 174 174 174
+-174 174 174 174 174 174 174 174 174 157 156 157 60 74 84 24 26 27
+-4 0 0 4 0 0 4 0 0 6 6 6 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
+-6 6 6 4 0 0 6 6 6 6 6 6 6 6 6 4 0 0
+-4 0 0 4 0 0 6 6 6 24 26 27 60 73 81 167 166 167
+-220 221 221 220 221 221 220 221 221 205 212 215 205 212 215 205 212 215
+-205 212 215 220 221 221 220 221 221 220 221 221 205 212 215 137 136 137
+-60 74 84 125 124 125 137 136 137 190 197 201 220 221 221 193 200 203
+-177 184 187 177 184 187 177 184 187 174 174 174 174 174 174 177 184 187
+-190 197 201 174 174 174 125 124 125 37 38 37 6 6 6 4 0 0
+-4 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 5 5 5 5 5 5 4 3 3 6 6 6
+-4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 6 6 6
+-6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
+-125 124 125 193 200 203 244 246 246 220 221 221 205 212 215 205 212 215
+-205 212 215 193 200 203 205 212 215 205 212 215 220 221 221 220 221 221
+-193 200 203 193 200 203 205 212 215 193 200 203 193 200 203 177 184 187
+-190 197 201 190 197 201 174 174 174 190 197 201 193 200 203 190 197 201
+-153 152 153 60 73 81 4 0 0 4 0 0 4 0 0 3 2 2
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
+-6 6 6 4 3 3 4 3 3 4 3 3 6 6 6 6 6 6
+-4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 4 0 0
+-4 0 0 26 28 28 131 129 131 220 221 221 244 246 246 220 221 221
+-205 212 215 193 200 203 205 212 215 193 200 203 193 200 203 205 212 215
+-220 221 221 193 200 203 193 200 203 193 200 203 190 197 201 174 174 174
+-174 174 174 190 197 201 193 200 203 193 200 203 167 166 167 125 124 125
+-6 6 6 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
+-5 5 5 4 3 3 5 5 5 6 6 6 4 3 3 5 5 5
+-6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
+-4 0 0 4 0 0 6 6 6 41 54 63 158 157 158 220 221 221
+-220 221 221 220 221 221 193 200 203 193 200 203 193 200 203 190 197 201
+-190 197 201 190 197 201 190 197 201 190 197 201 174 174 174 193 200 203
+-193 200 203 220 221 221 174 174 174 125 124 125 37 38 37 4 0 0
+-4 0 0 4 3 3 6 6 6 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 5 5 5 4 3 3 4 3 3 4 3 3 5 5 5
+-4 3 3 6 6 6 5 5 5 4 3 3 6 6 6 6 6 6
+-6 6 6 6 6 6 4 0 0 4 0 0 13 16 17 60 73 81
+-174 174 174 220 221 221 220 221 221 205 212 215 190 197 201 174 174 174
+-193 200 203 174 174 174 190 197 201 174 174 174 193 200 203 220 221 221
+-193 200 203 131 129 131 37 38 37 6 6 6 4 0 0 4 0 0
+-6 6 6 6 6 6 4 3 3 5 5 5 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
+-5 5 5 4 3 3 4 3 3 5 5 5 4 3 3 4 3 3
+-5 5 5 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
+-6 6 6 125 124 125 174 174 174 220 221 221 220 221 221 193 200 203
+-193 200 203 193 200 203 193 200 203 193 200 203 220 221 221 158 157 158
+-60 73 81 6 6 6 4 0 0 4 0 0 5 5 5 6 6 6
+-5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
+-5 5 5 5 5 5 6 6 6 6 6 6 4 0 0 4 0 0
+-4 0 0 4 0 0 26 28 28 125 124 125 174 174 174 193 200 203
+-193 200 203 174 174 174 193 200 203 167 166 167 125 124 125 6 6 6
+-6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 5 5 5
+-4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
+-4 3 3 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
+-6 6 6 4 0 0 4 0 0 6 6 6 37 38 37 125 124 125
+-153 152 153 131 129 131 125 124 125 37 38 37 6 6 6 6 6 6
+-6 6 6 4 0 0 6 6 6 6 6 6 4 3 3 5 5 5
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
+-6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
+-24 26 27 24 26 27 6 6 6 6 6 6 6 6 6 4 0 0
+-6 6 6 6 6 6 4 0 0 6 6 6 5 5 5 4 3 3
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
+-4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
+-6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
+-4 0 0 6 6 6 6 6 6 4 3 3 5 5 5 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 5 5 5
+-5 5 5 5 5 5 4 0 0 6 6 6 4 0 0 6 6 6
+-6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 4 0 0
+-6 6 6 4 3 3 5 5 5 4 3 3 5 5 5 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
+-4 3 3 6 6 6 4 3 3 6 6 6 6 6 6 6 6 6
+-4 0 0 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
+-6 6 6 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 5 5 5 4 3 3 5 5 5 4 0 0 6 6 6
+-6 6 6 4 0 0 6 6 6 6 6 6 4 0 0 6 6 6
+-4 3 3 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 5 5 5 4 3 3 5 5 5 6 6 6 4 3 3
+-4 3 3 6 6 6 6 6 6 4 3 3 6 6 6 4 3 3
+-5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 6 6 6
+-5 5 5 4 3 3 4 3 3 4 3 3 5 5 5 5 5 5
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
+-5 5 5 4 3 3 5 5 5 5 5 5 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+-4 4 4 4 4 4
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 6 9 23 30 36 44 54 65 57 72 88 44 54 65 6 12 15 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 31 41 52
++103 134 161 163 205 246 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 143 185 225
++82 108 129 8 14 16 0 2 0 0 6 9 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 17 24 30 126 162 196 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 161 203 243 92 119 140 0 6 9 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 44 54 65 154 195 235 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 138 174 208 21 27 33 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 70 96 117 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 157 198 239 49 59 70 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 7 0 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 3 6 52 62 74 170 212 252 170 212 252 170 212 252 170 212 252 129 165 199
++82 108 129 149 191 231 170 212 252 170 212 252 170 212 252 129 165 199 82 108 129 149 191 231
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 166 207 248 37 48 59 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 21 13 4 31 23 12 0 2 0 0 2 0 105 75 32 155 111 43 23 15 7
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 6 9 3 10 13 146 188 228 170 212 252 170 212 252 170 212 252 157 198 239 0 6 9
++0 2 0 52 62 74 170 212 252 170 212 252 154 195 235 0 6 9 0 2 0 55 66 77
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 151 193 233 17 24 30
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++10 12 8 23 15 7 139 99 44 206 148 61 67 49 21 0 2 0 125 92 35 206 148 61
++15 9 7 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 96 127 154 170 212 252 170 212 252 170 212 252 170 212 252 92 119 140 21 22 20
++10 12 8 53 68 84 170 212 252 170 212 252 92 119 140 10 12 8 7 10 5 53 68 84
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 134 170 204
++0 6 9 0 3 6 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 21 22 20
++62 64 61 38 40 37 0 2 0 34 26 8 212 153 66 64 46 18 0 2 0 170 124 49
++180 132 57 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++18 22 24 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 65 87 102 115 117 114
++43 44 42 88 115 136 170 212 252 170 212 252 68 83 99 108 110 107 60 62 59 88 115 136
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++80 98 121 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 10 12 8 56 58 55 95 96 94 178 180 177 215 217 214 198 200 197
++158 160 156 138 140 137 82 83 81 0 2 0 64 46 18 228 167 73 23 15 7 41 31 10
++250 179 73 55 39 17 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++75 94 116 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 63 78 94 0 2 0
++0 2 0 126 162 196 170 212 252 170 212 252 57 72 88 0 2 0 0 2 0 126 162 196
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++157 198 239 8 14 16 0 6 9 0 2 0 45 47 44 195 197 194 192 194 191 38 40 37
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 192 194 191 234 236 233 176 178 175 118 120 117 143 145 142 176 178 175
++215 217 214 234 236 233 234 236 233 104 106 103 0 2 0 142 101 40 134 100 43 0 2 0
++164 119 51 170 124 49 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++134 170 204 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 115 152 185 8 14 16
++49 59 70 166 207 248 170 212 252 170 212 252 119 150 178 8 14 16 55 66 77 166 207 248
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 92 119 140 0 2 0 0 2 0 200 202 199 254 255 252 254 255 252 244 246 243
++40 41 39 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 38 40 37 234 236 233 234 236 233 234 236 233 135 137 134 215 217 214 171 173 170
++141 142 139 138 140 137 138 140 137 135 137 134 31 32 30 3 6 2 212 153 66 15 9 7
++78 58 25 248 178 79 41 31 10 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 3 6 21 27 33
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 163 205 246 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 154 195 235 0 6 9 82 83 81 254 255 252 254 255 252 254 255 252 254 255 252
++188 190 187 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 62 64 61 234 236 233 234 236 233 234 236 233 198 200 197 131 133 130 198 200 197
++232 234 231 234 236 233 234 236 233 234 236 233 152 154 151 0 2 0 147 105 44 67 49 21
++23 15 7 250 179 73 158 114 46 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 6 9 61 76 92
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 154 195 235 103 134 161 80 98 121
++52 62 74 18 22 24 0 2 0 3 10 13 38 45 51 80 98 121 151 193 233 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 109 141 168 0 2 0 169 171 168 254 255 252 254 255 252 254 255 252 254 255 252
++226 228 225 65 66 64 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 43 44 42 234 236 233 234 236 233 234 236 233 234 236 233 131 133 130 192 194 191
++152 154 151 141 142 139 141 142 139 141 142 139 158 160 156 3 6 2 82 62 28 129 95 39
++0 2 0 206 148 61 248 178 79 21 13 4 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 96 115 138
++170 212 252 170 212 252 170 212 252 170 212 252 129 165 199 18 22 24 0 2 0 0 2 0
++34 26 8 75 55 22 114 83 33 95 68 30 55 39 17 7 0 0 0 6 9 84 103 125
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 84 103 125 0 2 0 229 231 228 254 255 252 254 255 252 254 255 252 171 173 170
++0 2 0 0 2 0 0 6 9 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 18 20 17 234 236 233 234 236 233 234 236 233 234 236 233 138 140 137 178 180 177
++226 228 225 234 236 233 234 236 233 234 236 233 231 233 230 45 47 44 23 15 7 190 136 56
++0 2 0 147 105 44 250 179 73 64 46 18 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 122 159 192
++170 212 252 170 212 252 170 212 252 126 162 196 0 2 0 26 20 13 190 136 56 245 175 76
++250 179 73 161 117 49 164 119 51 245 175 76 250 179 73 206 148 61 75 55 22 0 2 0
++126 162 196 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 68 83 99 0 2 0 252 254 250 254 255 252 254 255 252 254 255 252 71 73 70
++8 14 16 88 115 136 17 24 30 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 232 234 231 234 236 233 234 236 233 234 236 233 215 217 214 148 150 147
++183 185 181 141 142 139 135 137 134 135 137 134 141 142 139 87 89 86 0 2 0 202 145 58
++3 6 2 88 66 26 250 179 73 109 79 35 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 157 198 239
++170 212 252 170 212 252 166 207 248 26 33 39 26 20 13 224 163 69 250 179 73 250 179 73
++250 179 73 197 142 62 202 145 58 250 179 73 250 179 73 250 179 73 234 172 70 21 13 4
++38 45 51 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 52 62 74 21 22 20 254 255 252 254 255 252 254 255 252 254 255 252 21 22 20
++49 59 70 170 212 252 166 207 248 91 123 149 8 14 16 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 215 217 214 234 236 233 234 236 233 234 236 233 234 236 233 123 125 122
++188 190 187 229 231 228 234 236 233 234 236 233 222 224 221 118 120 117 0 2 0 168 123 54
++34 26 8 67 49 21 250 179 73 134 100 43 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 34 41 47 170 212 252
++170 212 252 170 212 252 85 112 133 0 2 0 164 119 51 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 129 95 39
++0 2 0 138 174 208 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 34 44 55 45 47 44 254 255 252 254 255 252 254 255 252 254 255 252 24 22 25
++52 62 74 170 212 252 170 212 252 170 212 252 138 174 208 10 16 18 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 178 180 177 234 236 233 234 236 233 234 236 233 234 236 233 141 142 139
++198 200 197 148 150 147 135 137 134 135 137 134 148 150 147 123 125 122 0 2 0 190 136 56
++21 13 4 78 58 25 250 179 73 129 95 39 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 82 108 129 170 212 252
++170 212 252 170 212 252 23 30 36 58 42 19 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 147 105 44
++0 2 0 139 181 221 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 34 41 47 45 47 44 254 255 252 254 255 252 254 255 252 254 255 252 56 58 55
++25 32 38 170 212 252 170 212 252 170 212 252 170 212 252 138 174 208 10 16 18 0 6 9
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 91 93 90 234 236 233 234 236 233 234 236 233 234 236 233 126 127 125
++169 171 168 222 224 221 234 236 233 229 231 228 178 180 177 71 73 70 0 2 0 212 153 66
++0 2 0 95 68 30 250 179 73 119 87 37 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 138 174 208 170 212 252
++170 212 252 154 195 235 0 2 0 125 92 35 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 119 87 37
++0 2 0 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 57 72 88 7 10 5 252 254 250 254 255 252 254 255 252 254 255 252 95 96 94
++0 6 9 166 207 248 170 212 252 170 212 252 170 212 252 170 212 252 138 174 208 8 14 16
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 7 10 5 222 224 221 234 236 233 234 236 233 234 236 233 141 142 139
++183 185 181 138 140 137 131 133 130 141 142 139 192 194 191 102 104 101 0 2 0 224 163 69
++0 2 0 105 75 32 250 179 73 55 39 17 7 0 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 21 27 33 170 212 252 170 212 252
++170 212 252 115 152 185 0 2 0 180 132 57 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 228 167 73 10 12 8
++38 45 51 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 82 108 129 0 2 0 222 224 221 254 255 252 254 255 252 254 255 252 158 160 156
++0 2 0 92 119 140 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 122 159 192
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 141 142 139 234 236 233 234 236 233 234 236 233 131 133 130
++185 187 183 231 233 230 222 224 221 158 160 156 138 140 137 48 50 48 3 6 2 250 179 73
++134 100 43 206 148 61 218 158 64 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 75 94 116 170 212 252 170 212 252
++170 212 252 92 119 140 0 2 0 224 163 69 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 87 61 23 7 0 0
++134 170 204 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 109 141 168 0 2 0 178 180 177 254 255 252 254 255 252 254 255 252 252 254 250
++39 43 45 10 16 18 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++88 115 136 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 45 47 44 234 236 233 234 236 233 234 236 233 131 133 130
++148 150 147 138 140 137 148 150 147 210 212 209 152 154 151 26 27 25 29 21 8 250 179 73
++250 179 73 234 172 70 55 39 17 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 126 162 196 170 212 252 170 212 252
++170 212 252 103 134 161 0 2 0 202 145 58 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 238 175 73 75 55 22 0 2 0 75 102 123
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 140 177 211 0 2 0 135 137 134 254 255 252 254 255 252 254 255 252 254 255 252
++183 185 181 0 2 0 75 94 116 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 57 72 88 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 162 164 161 234 236 233 234 236 233 135 137 134
++226 228 225 198 200 197 104 106 103 15 17 14 0 2 0 15 9 7 147 105 44 250 179 73
++248 178 79 55 39 17 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 21 27 33 170 212 252 170 212 252 170 212 252
++170 212 252 122 159 192 0 2 0 175 129 54 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 202 145 58 55 39 17 0 2 0 82 108 129 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 12 17 20 60 62 59 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 69 71 68 0 6 9 143 185 225 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 159 201 241 26 33 39 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 7 10 5 162 164 161 215 217 214 95 96 94
++56 58 55 0 2 0 0 2 0 0 2 0 61 44 16 238 175 73 250 179 73 250 179 73
++218 158 64 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 88 115 136 170 212 252 170 212 252 170 212 252
++170 212 252 143 185 225 0 2 0 147 105 44 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 212 153 66 95 68 30 0 2 0 8 14 16 103 134 161 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 68 83 99 0 2 0 231 233 230 254 255 252 254 255 252 254 255 252
++254 255 252 210 212 209 0 6 9 53 68 84 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 126 162 196 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 7 0 0 23 15 7 250 179 73 250 179 73 250 179 73
++250 179 73 29 21 8 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 154 195 235 170 212 252 170 212 252 170 212 252
++170 212 252 166 207 248 0 2 0 52 36 13 158 114 46 180 132 57 161 117 49 119 87 37
++41 31 10 0 2 0 0 2 0 72 87 103 154 195 235 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 115 152 185 0 2 0 152 154 151 254 255 252 238 241 237 85 87 84
++229 231 228 254 255 252 99 101 98 0 2 0 126 162 196 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 63 78 94 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 202 145 58 250 179 73 250 179 73
++250 179 73 105 75 32 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 32 39 45 0 2 0 57 72 88 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 85 112 133 12 17 20 0 2 0 0 2 0 0 2 0 0 2 0
++34 41 47 92 110 133 143 185 225 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 166 207 248 6 12 15 71 73 70 254 255 252 229 231 228 0 2 0
++141 142 139 254 255 252 231 233 230 10 12 8 34 44 55 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 154 195 235 6 12 15 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 125 92 35 250 179 73 250 179 73
++250 179 73 180 132 57 0 2 0 0 2 0 0 2 0 0 2 0 3 10 13 68 83 99
++129 165 199 85 112 133 0 2 0 122 159 192 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 126 162 196 119 156 189 134 170 204 149 191 231
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 57 72 88 3 6 2 242 244 240 254 255 252 35 37 34
++78 80 77 254 255 252 254 255 252 128 130 127 0 2 0 105 137 164 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 91 123 149 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 7 0 0 55 39 17 250 179 73 250 179 73
++250 179 73 245 175 76 7 10 5 0 2 0 44 54 65 103 134 161 161 203 243 170 212 252
++170 212 252 21 27 33 25 32 38 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 61 76 92 0 2 0 242 244 240 254 255 252 102 104 101
++10 12 8 231 233 230 254 255 252 244 246 243 26 27 25 21 27 33 159 201 241 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 32 39 45 0 6 9 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 218 158 64 250 179 73
++250 179 73 250 179 73 75 55 22 0 2 0 161 203 243 170 212 252 170 212 252 170 212 252
++115 147 174 0 2 0 91 123 149 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 159 201 241 146 188 228
++140 177 211 134 170 204 146 188 228 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 17 24 30 62 64 61 254 255 252 254 255 252 215 217 214
++0 2 0 102 104 101 254 255 252 254 255 252 166 168 165 0 2 0 72 87 103 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 129 165 199 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 105 75 32 250 179 73
++250 179 73 250 179 73 150 108 46 0 2 0 113 145 172 170 212 252 170 212 252 170 212 252
++49 59 70 3 10 13 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 166 207 248 109 141 168 65 87 102 28 35 41 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 28 35 41 70 96 117 138 174 208 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 0 2 0 102 104 101 254 255 252 254 255 252 254 255 252
++102 104 101 0 2 0 192 194 191 254 255 252 254 255 252 78 80 77 0 2 0 122 159 192
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 34 44 55 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 61 76 92 154 195 235 0 6 9 29 21 8 250 179 73
++250 179 73 250 179 73 224 163 69 0 2 0 68 83 99 170 212 252 170 212 252 143 179 213
++0 2 0 72 87 103 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++161 203 243 96 115 138 17 24 30 0 2 0 0 2 0 45 47 44 102 104 101 123 125 122
++138 140 137 143 145 142 115 117 114 82 83 81 43 44 42 0 2 0 0 2 0 32 39 45
++126 162 196 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 0 2 0 85 87 84 254 255 252 254 255 252 254 255 252
++242 244 240 27 29 27 35 37 34 254 255 252 254 255 252 231 233 230 10 12 8 21 27 33
++159 201 241 170 212 252 170 212 252 170 212 252 170 212 252 163 205 246 0 6 9 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 6 9 44 54 65 170 212 252 170 212 252 34 44 55 0 2 0 82 62 28
++109 79 35 224 163 69 250 179 73 52 36 13 15 20 22 170 212 252 170 212 252 75 89 106
++0 2 0 143 179 213 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 134 170 204
++25 32 38 0 2 0 40 41 39 155 157 153 238 241 237 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 210 212 209 115 117 114 18 20 17
++0 2 0 68 83 99 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 52 62 74 7 10 5 234 236 233 254 255 252 254 255 252
++254 255 252 195 197 194 102 104 101 254 255 252 254 255 252 254 255 252 162 164 161 0 2 0
++72 87 103 170 212 252 170 212 252 170 212 252 170 212 252 119 156 189 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 115 147 174 170 212 252 91 123 149 0 2 0 0 2 0 6 12 15
++0 2 0 15 9 7 197 142 62 125 92 35 0 2 0 115 152 185 113 145 172 3 6 2
++41 51 62 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 113 145 172 0 6 9
++10 12 8 155 157 153 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 232 234 231
++87 89 86 0 2 0 32 39 45 154 195 235 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 115 152 185 0 2 0 138 140 137 254 255 252 254 255 252
++254 255 252 254 255 252 249 251 248 254 255 252 254 255 252 254 255 252 254 255 252 65 66 64
++0 2 0 122 159 192 170 212 252 170 212 252 170 212 252 66 80 97 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 154 195 235 170 212 252 143 179 213 88 115 136 149 191 231 170 212 252
++126 162 196 3 6 2 64 46 18 202 145 58 0 2 0 0 2 0 0 2 0 0 2 0
++92 119 140 170 212 252 170 212 252 170 212 252 170 212 252 143 179 213 3 10 13 27 29 27
++215 217 214 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 155 157 153 0 2 0 32 39 45 154 195 235 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 23 30 36 27 29 27 249 251 248 254 255 252
++254 255 252 188 190 187 7 10 5 226 228 225 254 255 252 254 255 252 254 255 252 231 233 230
++7 10 5 21 27 33 159 201 241 170 212 252 103 134 161 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 119 156 189 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 55 66 77 11 4 3 250 179 73 24 17 10 0 2 0 0 2 0 0 2 0
++143 185 225 170 212 252 170 212 252 170 212 252 159 201 241 28 35 41 7 10 5 200 202 199
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 155 157 153 0 2 0 55 66 77 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 96 127 154 0 2 0 158 160 156 254 255 252
++254 255 252 192 194 191 0 2 0 176 178 175 254 255 252 254 255 252 254 255 252 254 255 252
++141 142 139 0 2 0 72 87 103 129 165 199 0 6 9 0 6 9 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 6 9 12 17 20 143 185 225 170 212 252 170 212 252 170 212 252 170 212 252
++138 174 208 17 24 30 29 21 8 250 179 73 101 72 28 0 2 0 0 2 0 32 39 45
++170 212 252 170 212 252 170 212 252 170 212 252 57 72 88 0 2 0 152 154 151 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 108 110 107 0 2 0 115 152 185 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 166 207 248 18 22 24 40 41 39 254 255 252
++254 255 252 232 234 231 0 2 0 148 150 147 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 10 12 8 0 2 0 8 14 16 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 41 51 62 61 76 92 34 44 55 3 10 13
++0 2 0 11 4 3 164 119 51 250 179 73 175 129 54 0 2 0 0 2 0 82 108 129
++170 212 252 170 212 252 170 212 252 98 129 156 0 2 0 95 96 94 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 238 241 237 18 20 17 25 32 38 166 207 248 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 85 112 133 0 2 0 188 190 187
++254 255 252 254 255 252 198 200 197 242 244 240 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 120 122 119 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 6 9 0 2 0 0 6 9 7 0 0
++31 23 12 202 145 58 250 179 73 250 179 73 238 175 73 0 2 0 0 2 0 122 159 192
++170 212 252 170 212 252 170 212 252 28 35 41 31 32 30 244 246 243 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 152 154 151 0 2 0 85 112 133 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 138 174 208 0 2 0 148 150 147
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 222 224 221 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++7 0 0 234 172 70 250 179 73 250 179 73 250 179 73 34 26 8 0 2 0 149 191 231
++170 212 252 170 212 252 129 165 199 0 2 0 128 130 127 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 252 254 250 48 50 48 3 10 13 146 188 228
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 157 198 239 0 2 0 118 120 117
++254 255 252 254 255 252 254 255 252 169 171 168 231 233 230 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 40 41 39 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 170 124 49 250 179 73 250 179 73 250 179 73 48 33 15 6 12 15 170 212 252
++170 212 252 170 212 252 65 87 102 0 2 0 222 224 221 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 195 197 194 0 2 0 84 103 125
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 3 10 13 85 87 84
++254 255 252 254 255 252 234 236 233 0 2 0 128 130 127 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 99 101 98 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 95 68 30 250 179 73 250 179 73 250 179 73 34 26 8 34 44 55 170 212 252
++170 212 252 163 205 246 8 14 16 62 64 61 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 35 37 34 34 44 55
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 26 33 39 60 62 59
++254 255 252 254 255 252 238 241 237 0 2 0 108 110 107 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 158 160 156 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 23 15 7 248 178 79 250 179 73 245 175 76 0 2 0 63 78 94 170 212 252
++170 212 252 109 141 168 0 2 0 158 160 156 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 104 106 103 0 2 0
++154 195 235 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 21 27 33 69 71 68
++254 255 252 254 255 252 244 246 243 0 2 0 91 93 90 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 215 217 214 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 197 142 62 250 179 73 212 153 66 0 2 0 92 110 133 170 212 252
++170 212 252 80 98 121 0 2 0 231 233 230 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 176 178 175 0 2 0
++105 137 164 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 8 14 16 87 89 86
++254 255 252 254 255 252 254 255 252 40 41 39 21 22 20 252 254 250 254 255 252 254 255 252
++254 255 252 254 255 252 252 254 250 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 125 92 35 250 179 73 170 124 49 0 2 0 113 145 172 170 212 252
++170 212 252 53 68 84 15 17 14 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 242 244 240 0 2 0
++63 78 94 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 0 2 0 104 106 103
++254 255 252 254 255 252 254 255 252 123 125 122 0 2 0 166 168 165 254 255 252 254 255 252
++254 255 252 254 255 252 234 236 233 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 7 0 0 52 36 13 250 179 73 129 95 39 0 2 0 143 179 213 170 212 252
++170 212 252 32 39 45 48 50 48 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 60 62 59
++18 22 24 170 212 252 170 212 252 170 212 252 170 212 252 163 205 246 0 2 0 102 104 101
++254 255 252 254 255 252 254 255 252 226 228 225 15 17 14 10 12 8 215 217 214 254 255 252
++254 255 252 254 255 252 210 212 209 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 88 66 26 29 21 8 0 2 0 166 207 248 170 212 252
++170 212 252 3 10 13 85 87 84 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 123 125 122
++0 2 0 149 191 231 170 212 252 170 212 252 170 212 252 170 212 252 21 27 33 56 58 55
++254 255 252 254 255 252 254 255 252 254 255 252 178 180 177 0 2 0 38 40 37 238 241 237
++254 255 252 254 255 252 210 212 209 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 7 0 0 7 0 0 0 2 0 161 203 243 170 212 252
++149 191 231 0 2 0 123 125 122 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 141 142 139
++0 2 0 143 179 213 170 212 252 170 212 252 170 212 252 170 212 252 66 80 97 0 2 0
++210 212 209 254 255 252 254 255 252 254 255 252 254 255 252 120 122 119 0 2 0 21 22 20
++143 145 142 244 246 243 219 221 218 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 149 191 231 170 212 252
++129 165 199 0 2 0 158 160 156 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 155 157 153
++0 2 0 134 170 204 170 212 252 170 212 252 170 212 252 170 212 252 143 185 225 0 6 9
++69 71 68 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 71 73 70 0 2 0
++0 2 0 0 2 0 40 41 39 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 139 181 221 170 212 252
++129 165 199 0 2 0 162 164 161 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 169 171 168
++0 2 0 119 156 189 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 75 94 116
++0 2 0 135 137 134 254 255 252 254 255 252 254 255 252 254 255 252 69 71 68 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 134 170 204 170 212 252
++134 170 204 0 2 0 152 154 151 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 183 185 181
++0 2 0 113 145 172 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 166 207 248
++44 54 65 0 2 0 162 164 161 254 255 252 254 255 252 254 255 252 35 37 34 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 126 162 196 170 212 252
++138 174 208 0 2 0 143 145 142 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 198 200 197
++0 2 0 103 134 161 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++157 198 239 28 35 41 0 2 0 188 190 187 254 255 252 252 254 250 3 6 2 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 115 152 185 170 212 252
++143 179 213 0 2 0 135 137 134 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 210 212 209
++0 2 0 91 123 149 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 146 188 228 0 6 9 26 27 25 242 244 240 176 178 175 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 105 137 164 170 212 252
++143 185 225 0 2 0 128 130 127 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 185 187 183
++0 2 0 105 137 164 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 163 205 246 0 2 0 0 2 0 102 104 101 60 62 59 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 80 98 121 170 212 252
++149 191 231 0 2 0 118 120 117 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 143 145 142
++0 2 0 134 170 204 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 143 179 213 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 44 54 65 170 212 252
++170 212 252 3 10 13 85 87 84 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 108 110 107
++0 2 0 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 115 152 185 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 3 10 13 170 212 252
++170 212 252 34 44 55 43 44 42 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 69 71 68
++15 20 22 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 75 94 116 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 139 181 221
++170 212 252 63 78 94 3 6 2 249 251 248 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 31 32 30
++41 51 62 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++161 203 243 6 12 15 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 105 137 164
++170 212 252 88 115 136 0 2 0 210 212 209 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 249 251 248 0 2 0
++68 83 99 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++96 127 154 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 61 76 92
++170 212 252 119 150 178 0 2 0 169 171 168 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 183 185 181 0 2 0
++91 123 149 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++28 35 41 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 6 9
++146 188 228 143 185 225 0 2 0 126 127 125 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 85 87 84 0 6 9
++154 195 235 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 98 129 156
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++72 90 112 170 212 252 18 22 24 56 58 55 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 238 241 237 7 10 5 55 66 77
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 122 159 192 0 6 9
++0 6 9 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 122 159 192 72 87 103 0 2 0 229 231 228 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 152 154 151 0 2 0 113 145 172
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 139 181 221 8 14 16 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 18 22 24 109 141 168 0 2 0 148 150 147 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 56 58 55 12 17 20 166 207 248
++170 212 252 170 212 252 170 212 252 170 212 252 146 188 228 23 30 36 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 101 72 28 202 145 58
++180 132 57 0 2 0 38 45 51 3 10 13 69 71 68 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 200 202 199 0 2 0 75 89 106 170 212 252
++170 212 252 170 212 252 170 212 252 109 141 168 8 14 16 0 2 0 21 13 4 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 7 0 0 0 2 0 101 72 28 218 158 64 250 179 73 250 179 73
++250 179 73 139 99 44 0 2 0 8 14 16 0 2 0 238 241 237 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 244 246 243 38 40 37 3 10 13 139 181 221 170 212 252
++170 212 252 161 203 243 66 80 97 0 2 0 31 23 12 191 142 60 248 183 74 180 132 57
++44 34 15 0 2 0 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 23 15 7 190 136 56 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 150 108 46 0 2 0 0 2 0 82 83 81 222 224 221 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 102 104 101 0 2 0 98 129 156 170 212 252 163 205 246
++98 129 156 23 30 36 0 2 0 82 62 28 234 172 70 248 183 74 248 183 74 248 183 74
++248 183 74 158 114 46 29 21 8 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 64 46 18 109 79 35 150 108 46 224 163 69 250 179 73
++250 179 73 250 179 73 250 179 73 158 114 46 0 2 0 0 2 0 3 6 2 115 117 114
++234 236 233 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 176 178 175 0 2 0 57 72 88 146 188 228 80 98 121 8 14 16
++0 2 0 24 17 10 158 114 46 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74
++248 183 74 248 183 74 242 178 77 58 42 19 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 7 0 0 0 2 0 0 2 0 67 49 21 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 228 167 73 95 68 30 0 2 0 0 2 0
++0 2 0 52 54 51 108 110 107 162 164 161 219 221 218 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 252 254 250
++219 221 218 178 180 177 18 20 17 6 12 15 26 33 39 0 2 0 0 2 0 52 36 13
++164 119 51 242 178 77 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 242 178 77
++187 138 56 175 129 54 158 114 46 82 62 28 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 78 58 25 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 234 172 70 142 101 40
++44 34 15 10 12 8 0 2 0 0 2 0 0 2 0 18 20 17 60 62 59 71 73 70
++82 83 81 95 96 94 104 106 103 118 120 117 115 117 114 78 80 77 40 41 39 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 44 34 15 105 75 32 191 142 60 248 183 74
++248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 105 75 32
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 187 138 56 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 142 101 40 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 206 148 61 248 183 74 248 183 74 248 183 74
++248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 161 117 49
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 228 167 73 250 179 73
++238 175 73 190 136 56 158 114 46 234 172 70 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 147 105 44 0 2 0 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 67 49 21 248 183 74 248 183 74 248 183 74
++248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74
++31 23 12 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 7 10 5 21 13 4
++0 2 0 0 2 0 0 2 0 147 105 44 250 179 73 250 179 73 250 179 73 250 179 73
++134 100 43 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 155 111 43 248 183 74 248 183 74
++248 183 74 248 183 74 224 163 69 55 39 17 64 46 18 164 119 51 242 178 77 248 183 74
++75 55 22 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 202 145 58 250 179 73 250 179 73 228 167 73 88 66 26
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 7 0 0 0 2 0 168 123 54 248 183 74
++248 183 74 248 183 74 158 114 46 0 2 0 7 0 0 0 2 0 10 12 8 44 34 15
++15 9 7 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 29 21 8 250 179 73 250 179 73 158 114 46 15 14 3 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 7 0 0 0 2 0 175 129 54
++248 183 74 248 183 74 114 83 33 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 29 21 8 147 105 44 58 42 19 0 2 0 7 0 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++105 75 32 218 158 64 23 15 7 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
+diff -Nur linux-2.6.39.1/drivers/video/logo/logo_linux_mono.pbm linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_mono.pbm
+--- linux-2.6.39.1/drivers/video/logo/logo_linux_mono.pbm 2011-06-02 21:34:20.000000000 -0300
++++ linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_mono.pbm 2011-06-22 13:42:06.000000000 -0300
+@@ -1,203 +1,159 @@
+-P1
+-# Standard black and white Linux logo
+-80 80
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+-1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1
+-1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1
+-1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1
+-1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1
+-1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
+-1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1
+-1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1
+-1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+-0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0
+-1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
+-0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1
+-1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1
+-1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0
+-0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0
+-0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
+-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
+-1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
+-1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+-1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
++P2
++80 78
++255
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 255 255 255 255 255 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 255 255 255 255 255 0 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 0 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255
++255 0 0 0 0 0 0 0 0 0
++0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255 255
++255 255 0 0 0 0 0 0 0 0
++0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 0 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 0 0 255 255 255 255
++255 255 0 0 0 0 0 0 0 0
++0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255
++255 255 255 0 0 0 0 0 0 0
++0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 255 255 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 255 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 255 255 255 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 0 255 255 0 0 255 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 0 255 255 255 0 0 255
++255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 0 0 255 255 255 0 255
++255 255 255 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 0 0 255 255 255 0 0
++255 255 255 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 0 0 255 255 255 0
++0 255 255 255 255 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 0 0 255 255 255 0
++0 255 255 255 255 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 255 255 0 0 255 255 255 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255
++0 0 255 255 255 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 0 0 255 255 0 0 255 255 0 0 255 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 255 255 255
++255 0 0 255 255 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 255 0 0 255 255 0 0 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255
++255 0 0 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 0 0 255 0 0 0 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 255 255 255
++255 255 0 0 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 255 0 0 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 255 255 255 255 0 255 255 255
++255 255 255 0 0 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 255 0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 0 255 255 255
++255 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 255 255 255 0 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 255 255 255 0 0 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 255 255 255 0 0 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255 0 0 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255 255 0 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255 255 0 0
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 0 0 255 255 255 255 255 0
++0 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 0 0 255 255 255 255 255 255
++0 0 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 0 0 255 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 0 0 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 0 0 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 0 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 0 255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
+diff -Nur linux-2.6.39.1/drivers/video/logo/logo_linux_vga16.ppm linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_vga16.ppm
+--- linux-2.6.39.1/drivers/video/logo/logo_linux_vga16.ppm 2011-06-02 21:34:20.000000000 -0300
++++ linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_vga16.ppm 2011-06-22 13:42:06.000000000 -0300
+@@ -1,1604 +1,18724 @@
+ P3
+-# Standard 16-color Linux logo
+-80 80
++# CREATOR: GIMP PNM Filter Version 1.1
++80 78
+ 255
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 85 85 85 85 85 85 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 85 85 85 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 170 170 170 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 170 170 170 170 170 85 85 85 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 170 170 170 170 170
+-170 170 170 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 85 85 85 170 170 170 170 170 170 170 170 170
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 170 170 170 255 255 255 255 255 255
+-255 255 255 170 170 170 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-170 170 170 170 170 170 255 255 255 255 255 255
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 170 170 255 255 255 170 170 170 170 170 170
+-255 255 255 170 170 170 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-170 170 170 0 0 0 0 0 0 255 255 255
+- 85 85 85 0 0 0 0 0 0 0 0 0
+-255 255 255 170 170 170 0 0 0 85 85 85
+-170 170 170 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+- 85 85 85 0 0 0 0 0 0 170 170 170
+- 85 85 85 0 0 0 0 0 0 0 0 0
+-255 255 255 85 85 85 0 0 0 0 0 0
+- 85 85 85 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-170 170 170 0 0 0 0 0 0 170 170 170
+- 85 85 85 85 85 85 85 85 85 85 85 85
+-255 255 255 85 85 85 0 0 0 0 0 0
+- 85 85 85 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-255 255 255 0 0 0 0 0 0 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 85 85 85 255 255 255 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-170 170 170 170 170 170 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 170 170 170 170 170 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 170 85 0 85 85 85 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+- 85 85 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 85 85 85 0 0 0
+- 0 0 0 85 85 85 170 170 170 85 85 85
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+- 85 85 85 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 170 170 170 170 170 170 170 170 0 0 0
+- 0 0 0 0 0 0 170 170 170 170 170 170
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 85 85 85 170 170 170 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 85 85 85
+- 0 0 0 0 0 0 85 85 85 85 85 85
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 85 85 85 170 170 170 170 170 170 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 170 170 170 170 170 170 170 170 170 170 170
+-255 255 255 255 255 255 255 255 255 170 170 170
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 170 170 170
+-170 170 170 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 170 170 170
+-255 255 255 255 255 255 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 170 170 170
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 85 85 85 255 255 255
+-255 255 255 255 255 255 255 255 255 170 170 170
+-170 170 170 170 170 170 170 170 170 170 170 170
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 85 85 85 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 85 85 85 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 170 170 170 170 170 170 170 170 170
+-255 255 255 255 255 255 255 255 255 170 170 170
+-170 170 170 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 170 170 170 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 170 170 170 170 170 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 85 85 85
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 170 170 170
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 85 85 85 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 170 170 170
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 170 170 170
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+- 0 0 0 0 0 0 85 85 85 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 0 0 0 85 85 85
+- 85 85 85 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+- 0 0 0 85 85 85 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 0 0 0 85 85 85
+- 85 85 85 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 85 85 85
+- 0 0 0 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 85 85 85 0 0 0
+- 0 0 0 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 85 85 85 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 85 85 85 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 85 85 85 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+- 0 0 0 0 0 0 85 85 85 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 170 85 0
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 0 0 0 0 0 0 0 0 0
+- 85 85 85 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 85 85 85 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 0 0 0 0 0 0 0 0 0
+- 85 85 85 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 85 85 85 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 85 85 85 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 85 85 85 85 85 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 170 170 170
+- 85 85 85 0 0 0 0 0 0 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 85 85 85
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 85 85 85 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 170 85 0 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 170 85 0 170 85 0 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 85 85 85 85 85 85 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-170 85 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 170 85 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 170 85 0 170 85 0
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 85 85 85 85 85 85 85 85 85 170 85 0
+-170 85 0 170 85 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++170
++170
++170
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++170
++170
++170
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++170
++170
++170
++85
++85
++85
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++0
++0
++0
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++255
++85
++85
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++170
++170
++170
++255
++255
++255
++170
++170
++170
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++85
++85
++85
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++85
++85
++85
++170
++170
++170
++170
++170
++170
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++85
++85
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
diff --git a/kernels/linux-libre-grsec/change-default-console-loglevel.patch b/kernels/linux-libre-grsec/change-default-console-loglevel.patch
new file mode 100755
index 000000000..63435d84f
--- /dev/null
+++ b/kernels/linux-libre-grsec/change-default-console-loglevel.patch
@@ -0,0 +1,12 @@
+diff -upr linux-3.0.orig/kernel/printk.c linux-3.0/kernel/printk.c
+--- linux-3.0.orig/kernel/printk.c 2011-07-22 05:17:23.000000000 +0300
++++ linux-3.0/kernel/printk.c 2011-07-27 14:43:07.000000000 +0300
+@@ -58,7 +58,7 @@ void asmlinkage __attribute__((weak)) ea
+
+ /* We show everything that is MORE important than this.. */
+ #define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
+-#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */
++#define DEFAULT_CONSOLE_LOGLEVEL 4 /* anything MORE serious than KERN_DEBUG */
+
+ DECLARE_WAIT_QUEUE_HEAD(log_wait);
+
diff --git a/kernels/linux-libre-grsec/config.i686 b/kernels/linux-libre-grsec/config.i686
new file mode 100644
index 000000000..cd4caf51b
--- /dev/null
+++ b/kernels/linux-libre-grsec/config.i686
@@ -0,0 +1,6177 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/i386 3.6.1-3 Kernel Configuration
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="LIBRE-GRSEC"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_FHANDLE=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_DOMAIN=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+CONFIG_RCU_FANOUT=32
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+# CONFIG_MEMCG is not set
+# CONFIG_CGROUP_HUGETLB is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=y
+CONFIG_KPROBES=y
+CONFIG_JUMP_LABEL=y
+CONFIG_UPROBES=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_KRETPROBES=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP_FILTER=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLK_DEV_THROTTLING=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_ZONE_DMA=y
+CONFIG_SMP=y
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_X86_32_IRIS=m
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_PARAVIRT_TIME_ACCOUNTING=y
+# CONFIG_XEN_PRIVILEGED_GUEST is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_LGUEST_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MELAN is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+# CONFIG_X86_PPRO_FENCE is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_NR_CPUS=8
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_VM86=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+# CONFIG_HIGHPTE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+CONFIG_SECCOMP=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_PHYSICAL_ALIGN=0x400000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_AUTOSLEEP=y
+CONFIG_PM_WAKELOCKS=y
+CONFIG_PM_WAKELOCKS_LIMIT=100
+CONFIG_PM_WAKELOCKS_GC=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PM_SLEEP_DEBUG=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+# CONFIG_ACPI_PROCFS is not set
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_EC_DEBUGFS=m
+# CONFIG_ACPI_PROC_EVENT is not set
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=y
+CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_BGRT=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_SFI=y
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# x86 CPU frequency scaling drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_GX_SUSPMOD=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+CONFIG_X86_E_POWERSAVER=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+CONFIG_INTEL_IDLE=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_OLPC=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+# CONFIG_EISA is not set
+# CONFIG_SCx200 is not set
+CONFIG_OLPC=y
+CONFIG_OLPC_XO1_PM=y
+CONFIG_OLPC_XO1_RTC=y
+CONFIG_OLPC_XO1_SCI=y
+CONFIG_OLPC_XO15_SCI=y
+# CONFIG_ALIX is not set
+# CONFIG_NET5501 is not set
+# CONFIG_GEOS is not set
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_TSI721=y
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_DMA_ENGINE=y
+CONFIG_RAPIDIO_DEBUG=y
+CONFIG_RAPIDIO_TSI57X=y
+CONFIG_RAPIDIO_CPS_XX=y
+CONFIG_RAPIDIO_TSI568=y
+CONFIG_RAPIDIO_CPS_GEN2=y
+CONFIG_RAPIDIO_TSI500=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_MISC=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=m
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_INET_UDP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+# CONFIG_NETFILTER_XT_MATCH_GRADM is not set
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS SH scheduler
+#
+CONFIG_IP_VS_SH_TAB_BITS=8
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_NET_DCCPPROBE=m
+CONFIG_IP_SCTP=m
+CONFIG_NET_SCTPPROBE=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_BLA=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_NETPRIO_CGROUP=m
+CONFIG_BQL=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_TCPPROBE=m
+CONFIG_NET_DROP_MONITOR=y
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_SCC=m
+# CONFIG_SCC_DELAY is not set
+# CONFIG_SCC_TRXECHO is not set
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_YAM=m
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_USB=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_NCI=m
+CONFIG_NFC_HCI=m
+# CONFIG_NFC_SHDLC is not set
+# CONFIG_NFC_LLCP is not set
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_PN544_NFC=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_WILINK=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_CMA is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+CONFIG_MTD=m
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP_OF=m
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_SLRAM is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_DOCG3=m
+CONFIG_BCH_CONST_M=14
+CONFIG_BCH_CONST_T=4
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_OF_SELFTEST is not set
+CONFIG_OF_PROMTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_I2C=m
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=m
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
+CONFIG_OF_MTD=y
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+
+#
+# Misc devices
+#
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_INTEL_MID_PTI=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=y
+CONFIG_BMP085_I2C=m
+# CONFIG_PCH_PHUB is not set
+CONFIG_USB_SWITCH_FSA9480=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_INTEL_MEI=m
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_TCM_QLA2XXX=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_WINBOND_VLB=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
+CONFIG_SBP_TARGET=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IEEE802154_FAKELB=m
+CONFIG_IFB=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
+# CONFIG_ARCNET is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_CAIF_HSI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_LANCE=m
+CONFIG_PCNET32=m
+CONFIG_DEPCA=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NI65=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_CALXEDA_XGMAC=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+# CONFIG_CS89x0_PLATFORM is not set
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_EWRK3=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_AT1700=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_ETH16I=m
+CONFIG_NET_VENDOR_HP=y
+CONFIG_HP100=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGB_PTP=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_PTP=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_APRICOT=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_LP486E=m
+CONFIG_NI52=m
+CONFIG_ZNET=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_EL2=m
+CONFIG_AC3200=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_E2100=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_NE2000=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRA=m
+CONFIG_WD80x3=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_PCH_PTP=y
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_PLATFORM is not set
+CONFIG_STMMAC_PCI=y
+# CONFIG_STMMAC_DEBUG_FS is not set
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5300=m
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_BUS_ANY=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_AMD_PHY=m
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_BCM87XX_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_MDIO_BUS_MUX=m
+CONFIG_MDIO_BUS_MUX_GPIO=m
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+# CONFIG_SLIP_COMPRESSED is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+CONFIG_ATH6KL_USB=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_B43=m
+CONFIG_B43_BCMA=y
+# CONFIG_B43_BCMA_EXTRA is not set
+CONFIG_B43_SSB=y
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_SDIO=y
+# CONFIG_BRCMFMAC_SDIO_OOB is not set
+CONFIG_BRCMFMAC_USB=y
+# CONFIG_BRCMDBG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+CONFIG_IWLDVM=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+# CONFIG_IWLWIFI_P2P is not set
+# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
+CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+
+#
+# iwl3945 / iwl4965 Debugging Options
+#
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8192C_COMMON=m
+CONFIG_WL_TI=y
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+# CONFIG_WAN is not set
+CONFIG_VMXNET3=m
+CONFIG_HYPERV_NET=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_MATRIXKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+CONFIG_KEYBOARD_LM8333=m
+# CONFIG_KEYBOARD_MAX7359 is not set
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_OLPC=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+# CONFIG_MOUSE_GPIO is not set
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MPU3050=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_GP2A=m
+# CONFIG_INPUT_GPIO_TILT_POLLED is not set
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_NOZOMI=m
+# CONFIG_ISI is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+# CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_DW=m
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_OF_PLATFORM=m
+# CONFIG_SERIAL_TIMBERDALE is not set
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+CONFIG_SONYPI=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_EG20T=m
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_PCI=y
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_ISA=m
+# CONFIG_I2C_STUB is not set
+CONFIG_SCx200_ACB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_SPI is not set
+# CONFIG_HSI is not set
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_PTP_1588_CLOCK_PCH=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+CONFIG_OF_GPIO=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_IT8761E is not set
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_ICH=m
+# CONFIG_GPIO_VX855 is not set
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_ARIZONA=m
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=y
+CONFIG_GPIO_AMD8111=m
+# CONFIG_GPIO_LANGWELL is not set
+# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_SODAVILLE is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_TEST_POWER=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+CONFIG_BATTERY_OLPC=m
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_SMB347 is not set
+CONFIG_POWER_AVS=y
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+# CONFIG_SENSORS_GPIO_FAN is not set
+CONFIG_SENSORS_HIH6130=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_IE6XX_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_VIA_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+# CONFIG_BCMA_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_MFD_LM3533=m
+# CONFIG_TPS6105X is not set
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_MFD_TPS65217=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_ARIZONA=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_WM5102=y
+CONFIG_MFD_WM5110=y
+CONFIG_MFD_PCF50633=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_ABX500_CORE=y
+CONFIG_MFD_CS5535=m
+# CONFIG_MFD_TIMBERDALE is not set
+CONFIG_LPC_SCH=m
+CONFIG_LPC_ICH=m
+CONFIG_MFD_RDC321X=m
+# CONFIG_MFD_JANZ_CMODIO is not set
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_RC_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
+
+#
+# Media drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_RC_CORE=m
+CONFIG_RC_MAP=m
+CONFIG_RC_DECODERS=y
+CONFIG_LIRC=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_IR_IGUANA=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_FC0011=m
+CONFIG_MEDIA_TUNER_FC0012=m
+CONFIG_MEDIA_TUNER_FC0013=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_MEDIA_TUNER_TUA9001=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7183=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_ADV7393=m
+CONFIG_VIDEO_AK881X=m
+
+#
+# Camera sensor devices
+#
+CONFIG_VIDEO_APTINA_PLL=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_VS6624=m
+CONFIG_VIDEO_MT9M032=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_S5K6AA=m
+
+#
+# Flash devices
+#
+CONFIG_VIDEO_ADP1653=m
+CONFIG_VIDEO_AS3645A=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_V4L_USB_DRIVERS=y
+
+#
+# Webcam devices
+#
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_VIDEO_CPIA2=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_USB_SN9C102=m
+
+#
+# Webcam and/or TV USB devices
+#
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=m
+
+#
+# TV USB devices
+#
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_V4L_PCI_DRIVERS=y
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+# CONFIG_V4L_ISA_PARPORT_DRIVERS is not set
+# CONFIG_V4L_PLATFORM_DRIVERS is not set
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_KEENE=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+CONFIG_RADIO_WL128X=m
+# CONFIG_V4L_RADIO_ISA_DRIVERS is not set
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_IT913X=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported ddbridge ('Octopus') Adapters
+#
+CONFIG_DVB_DDBRIDGE=m
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_TDA18271C2DD=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_TDA10071=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_RTL2830=m
+CONFIG_DVB_RTL2832=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LG2160=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AU8522_DTV=m
+CONFIG_DVB_AU8522_V4L=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
+CONFIG_DVB_M88RS2000=m
+CONFIG_DVB_AF9033=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_USB=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_UDL=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_STUB_POULSBO=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
+CONFIG_FB_I810=m
+CONFIG_FB_I810_GTF=y
+CONFIG_FB_I810_I2C=y
+# CONFIG_FB_LE80578 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+CONFIG_FB_VIA=m
+CONFIG_FB_VIA_DIRECT_PROCFS=y
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+CONFIG_FB_VOODOO1=m
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_SMSCUFX is not set
+CONFIG_FB_UDL=m
+CONFIG_FB_VIRTUAL=m
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_AUO_K190X is not set
+# CONFIG_EXYNOS_VIDEO is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_BACKLIGHT_LM3533=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_APPLE=m
+# CONFIG_BACKLIGHT_SAHARA is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_PCF50633=m
+# CONFIG_BACKLIGHT_LP855X is not set
+# CONFIG_BACKLIGHT_OT200 is not set
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_FONT_AUTOSELECT=y
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_KCTL_JACK=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT1605=m
+CONFIG_SND_AZT2316=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_TEA575X=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=4096
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+# CONFIG_SND_SOC is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+
+#
+# HID support
+#
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=m
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_APPLE=m
+CONFIG_HID_AUREAL=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HOLTEK_FF=y
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LENOVO_TPKBD=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWHEELS_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_HYPERV_MOUSE=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TIVO=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_WIIMOTE_EXT=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_DWC3 is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RENESAS_USBHS_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_HCD_BCMA is not set
+# CONFIG_USB_HCD_SSB is not set
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_TUSB6010=m
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+# CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_RENESAS_USBHS=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_ISP1301=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+#
+# USB Peripheral Controller
+#
+CONFIG_USB_FUSB300=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_RENESAS_USBHS_UDC=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_GADGET_MUSB_HDRC=m
+CONFIG_USB_M66592=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_EG20T=m
+CONFIG_USB_DUMMY_HCD=m
+CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_GADGET_SUPERSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+# CONFIG_GADGET_UAC1 is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_WEBCAM=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_LM3533=m
+CONFIG_LEDS_PCA9532=m
+# CONFIG_LEDS_PCA9532_GPIO is not set
+# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA9633=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_LM3556=m
+CONFIG_LEDS_OT200=m
+CONFIG_LEDS_BLINKM=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+CONFIG_EDAC_LEGACY_SYSFS=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_PCF50633=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+# CONFIG_VFIO is not set
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+
+#
+# Microsoft Hyper-V guest support
+#
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_STAGING=y
+CONFIG_ET131X=m
+CONFIG_SLICOSS=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
+CONFIG_COMEDI_MISC_DRIVERS=y
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_ISA_DRIVERS=y
+CONFIG_COMEDI_ACL7225B=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL725=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCM3730=m
+CONFIG_COMEDI_AMPLC_DIO200_ISA=m
+CONFIG_COMEDI_AMPLC_PC236_ISA=m
+CONFIG_COMEDI_AMPLC_PC263_ISA=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS08_ISA=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS800=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_POC=m
+CONFIG_COMEDI_PCI_DRIVERS=y
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200_PCI=m
+CONFIG_COMEDI_AMPLC_PC236_PCI=m
+CONFIG_COMEDI_AMPLC_PC263_PCI=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DAS08_PCI=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+# CONFIG_COMEDI_CB_PCIMDAS is not set
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIOCMD=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=y
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=y
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_FC=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_NI_TIO=m
+# CONFIG_FB_OLPC_DCON is not set
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_RTS_PSTOR=m
+# CONFIG_RTS_PSTOR_DEBUG is not set
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
+# CONFIG_TRANZPORT is not set
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+# CONFIG_LINE6_USB_DEBUG is not set
+# CONFIG_LINE6_USB_DUMP_CTRL is not set
+# CONFIG_LINE6_USB_DUMP_MIDI is not set
+# CONFIG_LINE6_USB_DUMP_PCM is not set
+# CONFIG_LINE6_USB_RAW is not set
+# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_DX_SEP=m
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_ZCACHE=y
+CONFIG_ZSMALLOC=y
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_FB_SM7XX=m
+CONFIG_CRYSTALHD=m
+CONFIG_FB_XGI=m
+CONFIG_ACPI_QUICKSTART=m
+CONFIG_USB_ENESTORAGE=m
+CONFIG_BCM_WIMAX=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_DVB_AS102=m
+CONFIG_DVB_CXD2099=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_DT3155_STREAMING=y
+CONFIG_EASYCAP=m
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_SOLO6X10=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_PHONE is not set
+CONFIG_USB_WPAN_HCD=m
+CONFIG_IPACK_BUS=m
+CONFIG_BOARD_TPCI200=m
+CONFIG_SERIAL_IPOCTAL=m
+CONFIG_WIMAX_GDM72XX=m
+CONFIG_WIMAX_GDM72XX_QOS=y
+CONFIG_WIMAX_GDM72XX_K_MODE=y
+CONFIG_WIMAX_GDM72XX_WIMAX2=y
+CONFIG_WIMAX_GDM72XX_USB=y
+# CONFIG_WIMAX_GDM72XX_SDIO is not set
+CONFIG_WIMAX_GDM72XX_USB_PM=y
+CONFIG_CSR_WIFI=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_FUJITSU_TABLET=m
+CONFIG_AMILO_RFKILL=m
+CONFIG_TC1100_WMI=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO1_RFKILL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_APPLE_GMUX=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_I8253=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_OF_IOMMU=y
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+
+#
+# Remoteproc drivers (EXPERIMENTAL)
+#
+
+#
+# Rpmsg drivers (EXPERIMENTAL)
+#
+CONFIG_VIRT_DRIVERS=y
+# CONFIG_PM_DEVFREQ is not set
+CONFIG_EXTCON=m
+
+#
+# Extcon Device Drivers
+#
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_ARIZONA=m
+CONFIG_MEMORY=y
+# CONFIG_IIO is not set
+# CONFIG_VME_BUS is not set
+# CONFIG_PWM is not set
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=m
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT23=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+CONFIG_NILFS2_FS=m
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_FTRACE is not set
+CONFIG_PSTORE_RAM=m
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_ORE=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+# CONFIG_NFS_SWAP is not set
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_SUNRPC_DEBUG is not set
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_READABLE_ASM is not set
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_VERBOSE is not set
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_KPROBES_SANITY_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_LKDTM=m
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+CONFIG_SCHED_TRACER=y
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+CONFIG_STACK_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_KPROBE_EVENT=y
+CONFIG_UPROBE_EVENT=y
+CONFIG_PROBE_EVENTS=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_TEST_KSTRTOX=m
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_NX_TEST is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+# CONFIG_X86_DECODER_SELFTEST is not set
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+
+#
+# Security options
+#
+
+#
+# Grsecurity
+#
+CONFIG_ARCH_TRACK_EXEC_LIMIT=y
+CONFIG_PAX_USERCOPY_SLABS=y
+CONFIG_GRKERNSEC=y
+# CONFIG_GRKERNSEC_CONFIG_AUTO is not set
+CONFIG_GRKERNSEC_CONFIG_CUSTOM=y
+CONFIG_GRKERNSEC_PROC_GID=9999
+CONFIG_GRKERNSEC_TPE_TRUSTED_GID=9999
+CONFIG_GRKERNSEC_SYMLINKOWN_GID=33
+
+#
+# Customize Configuration
+#
+
+#
+# PaX
+#
+CONFIG_PAX=y
+
+#
+# PaX Control
+#
+# CONFIG_PAX_SOFTMODE is not set
+# CONFIG_PAX_EI_PAX is not set
+CONFIG_PAX_PT_PAX_FLAGS=y
+CONFIG_PAX_XATTR_PAX_FLAGS=y
+# CONFIG_PAX_NO_ACL_FLAGS is not set
+CONFIG_PAX_HAVE_ACL_FLAGS=y
+# CONFIG_PAX_HOOK_ACL_FLAGS is not set
+
+#
+# Non-executable pages
+#
+CONFIG_PAX_NOEXEC=y
+CONFIG_PAX_PAGEEXEC=y
+CONFIG_PAX_SEGMEXEC=y
+CONFIG_PAX_EMUTRAMP=y
+CONFIG_PAX_MPROTECT=y
+# CONFIG_PAX_MPROTECT_COMPAT is not set
+CONFIG_PAX_ELFRELOCS=y
+CONFIG_PAX_KERNEXEC=y
+CONFIG_PAX_KERNEXEC_PLUGIN_METHOD=""
+CONFIG_PAX_KERNEXEC_MODULE_TEXT=4
+
+#
+# Address Space Layout Randomization
+#
+CONFIG_PAX_ASLR=y
+CONFIG_PAX_RANDKSTACK=y
+CONFIG_PAX_RANDUSTACK=y
+CONFIG_PAX_RANDMMAP=y
+
+#
+# Miscellaneous hardening features
+#
+CONFIG_PAX_MEMORY_STACKLEAK=y
+CONFIG_PAX_MEMORY_UDEREF=y
+CONFIG_PAX_REFCOUNT=y
+CONFIG_PAX_USERCOPY=y
+# CONFIG_PAX_SIZE_OVERFLOW is not set
+# CONFIG_PAX_LATENT_ENTROPY is not set
+
+#
+# Memory Protections
+#
+CONFIG_GRKERNSEC_KMEM=y
+CONFIG_GRKERNSEC_VM86=y
+# CONFIG_GRKERNSEC_IO is not set
+CONFIG_GRKERNSEC_JIT_HARDEN=y
+CONFIG_GRKERNSEC_PROC_MEMMAP=y
+CONFIG_GRKERNSEC_BRUTE=y
+CONFIG_GRKERNSEC_MODHARDEN=y
+CONFIG_GRKERNSEC_HIDESYM=y
+CONFIG_GRKERNSEC_KERN_LOCKOUT=y
+
+#
+# Role Based Access Control Options
+#
+# CONFIG_GRKERNSEC_NO_RBAC is not set
+CONFIG_GRKERNSEC_ACL_HIDEKERN=y
+CONFIG_GRKERNSEC_ACL_MAXTRIES=3
+CONFIG_GRKERNSEC_ACL_TIMEOUT=30
+
+#
+# Filesystem Protections
+#
+CONFIG_GRKERNSEC_PROC=y
+# CONFIG_GRKERNSEC_PROC_USER is not set
+CONFIG_GRKERNSEC_PROC_USERGROUP=y
+CONFIG_GRKERNSEC_PROC_ADD=y
+CONFIG_GRKERNSEC_LINK=y
+CONFIG_GRKERNSEC_SYMLINKOWN=y
+CONFIG_GRKERNSEC_FIFO=y
+CONFIG_GRKERNSEC_SYSFS_RESTRICT=y
+CONFIG_GRKERNSEC_ROFS=y
+CONFIG_GRKERNSEC_CHROOT=y
+CONFIG_GRKERNSEC_CHROOT_MOUNT=y
+CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
+CONFIG_GRKERNSEC_CHROOT_PIVOT=y
+CONFIG_GRKERNSEC_CHROOT_CHDIR=y
+CONFIG_GRKERNSEC_CHROOT_CHMOD=y
+CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
+CONFIG_GRKERNSEC_CHROOT_MKNOD=y
+CONFIG_GRKERNSEC_CHROOT_SHMAT=y
+CONFIG_GRKERNSEC_CHROOT_UNIX=y
+CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
+CONFIG_GRKERNSEC_CHROOT_NICE=y
+CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
+CONFIG_GRKERNSEC_CHROOT_CAPS=y
+
+#
+# Kernel Auditing
+#
+# CONFIG_GRKERNSEC_AUDIT_GROUP is not set
+# CONFIG_GRKERNSEC_EXECLOG is not set
+CONFIG_GRKERNSEC_RESLOG=y
+# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set
+CONFIG_GRKERNSEC_AUDIT_PTRACE=y
+# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set
+CONFIG_GRKERNSEC_AUDIT_MOUNT=y
+CONFIG_GRKERNSEC_SIGNAL=y
+CONFIG_GRKERNSEC_FORKFAIL=y
+CONFIG_GRKERNSEC_TIME=y
+CONFIG_GRKERNSEC_PROC_IPADDR=y
+CONFIG_GRKERNSEC_RWXMAP_LOG=y
+# CONFIG_GRKERNSEC_AUDIT_TEXTREL is not set
+
+#
+# Executable Protections
+#
+CONFIG_GRKERNSEC_DMESG=y
+CONFIG_GRKERNSEC_HARDEN_PTRACE=y
+CONFIG_GRKERNSEC_PTRACE_READEXEC=y
+CONFIG_GRKERNSEC_SETXID=y
+CONFIG_GRKERNSEC_TPE=y
+CONFIG_GRKERNSEC_TPE_ALL=y
+CONFIG_GRKERNSEC_TPE_INVERT=y
+CONFIG_GRKERNSEC_TPE_GID=9999
+
+#
+# Network Protections
+#
+CONFIG_GRKERNSEC_RANDNET=y
+CONFIG_GRKERNSEC_BLACKHOLE=y
+# CONFIG_GRKERNSEC_SOCKET is not set
+
+#
+# Sysctl Support
+#
+CONFIG_GRKERNSEC_SYSCTL=y
+# CONFIG_GRKERNSEC_SYSCTL_DISTRO is not set
+CONFIG_GRKERNSEC_SYSCTL_ON=y
+
+#
+# Logging Options
+#
+CONFIG_GRKERNSEC_FLOODTIME=10
+CONFIG_GRKERNSEC_FLOODBURST=6
+CONFIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_ABLK_HELPER_X86=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SERPENT_SSE2_586=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=y
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+CONFIG_TCM_VHOST=m
+CONFIG_LGUEST=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_ENC8=y
+CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_BCH=m
+CONFIG_BCH_CONST_PARAMS=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_NLATTR=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
+CONFIG_DDR=y
diff --git a/kernels/linux-libre-grsec/config.x86_64 b/kernels/linux-libre-grsec/config.x86_64
new file mode 100644
index 000000000..2652b500b
--- /dev/null
+++ b/kernels/linux-libre-grsec/config.x86_64
@@ -0,0 +1,5943 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/x86_64 3.6.1-2 Kernel Configuration
+#
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ZONE_DMA32=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="LIBRE-GRSEC"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_FHANDLE=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_DOMAIN=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+CONFIG_RCU_FANOUT=64
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+# CONFIG_MEMCG is not set
+# CONFIG_CGROUP_HUGETLB is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=y
+CONFIG_KPROBES=y
+CONFIG_JUMP_LABEL=y
+CONFIG_UPROBES=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_KRETPROBES=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP_FILTER=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLK_DEV_THROTTLING=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_ZONE_DMA=y
+CONFIG_SMP=y
+CONFIG_X86_X2APIC=y
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_PARAVIRT_TIME_ACCOUNTING=y
+CONFIG_XEN=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PRIVILEGED_GUEST=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=500
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_MK8 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=6
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_AUTOSLEEP=y
+CONFIG_PM_WAKELOCKS=y
+CONFIG_PM_WAKELOCKS_LIMIT=100
+CONFIG_PM_WAKELOCKS_GC=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_PM_SLEEP_DEBUG=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+# CONFIG_ACPI_PROCFS is not set
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_EC_DEBUGFS=m
+# CONFIG_ACPI_PROC_EVENT is not set
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=y
+CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_BGRT=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# x86 CPU frequency scaling drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K8=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+CONFIG_INTEL_IDLE=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_XEN=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_TSI721=y
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_DMA_ENGINE=y
+CONFIG_RAPIDIO_DEBUG=y
+CONFIG_RAPIDIO_TSI57X=y
+CONFIG_RAPIDIO_CPS_XX=y
+CONFIG_RAPIDIO_TSI568=y
+CONFIG_RAPIDIO_CPS_GEN2=y
+CONFIG_RAPIDIO_TSI500=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_IA32_EMULATION=y
+CONFIG_IA32_AOUT=m
+CONFIG_X86_X32=y
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
+CONFIG_X86_DEV_DMA_OPS=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=m
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_INET_UDP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+# CONFIG_NETFILTER_XT_MATCH_GRADM is not set
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS SH scheduler
+#
+CONFIG_IP_VS_SH_TAB_BITS=8
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_NET_DCCPPROBE=m
+CONFIG_IP_SCTP=m
+CONFIG_NET_SCTPPROBE=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_BLA=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_NETPRIO_CGROUP=m
+CONFIG_BQL=y
+CONFIG_BPF_JIT=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_TCPPROBE=m
+CONFIG_NET_DROP_MONITOR=y
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_YAM=m
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_USB=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_NCI=m
+CONFIG_NFC_HCI=m
+# CONFIG_NFC_SHDLC is not set
+# CONFIG_NFC_LLCP is not set
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_PN544_NFC=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_WILINK=m
+CONFIG_HAVE_BPF_JIT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+CONFIG_SYS_HYPERVISOR=y
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+CONFIG_MTD=m
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_SLRAM is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_DOCG3=m
+CONFIG_BCH_CONST_M=14
+CONFIG_BCH_CONST_T=4
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_PARIDE is not set
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+
+#
+# Misc devices
+#
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_INTEL_MID_PTI=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=y
+CONFIG_BMP085_I2C=m
+CONFIG_PCH_PHUB=m
+CONFIG_USB_SWITCH_FSA9480=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_INTEL_MEI=m
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_TCM_QLA2XXX=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
+CONFIG_SBP_TARGET=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IEEE802154_FAKELB=m
+CONFIG_IFB=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
+# CONFIG_ARCNET is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_CAIF_HSI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_CALXEDA_XGMAC=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_NET_VENDOR_HP=y
+CONFIG_HP100=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGB_PTP=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_PTP=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ZNET=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_PCH_PTP=y
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_PLATFORM is not set
+CONFIG_STMMAC_PCI=y
+# CONFIG_STMMAC_DEBUG_FS is not set
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5300=m
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_BUS_ANY=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_AMD_PHY=m
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_BCM87XX_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+# CONFIG_SLIP_COMPRESSED is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+CONFIG_ATH6KL_USB=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_B43=m
+CONFIG_B43_BCMA=y
+# CONFIG_B43_BCMA_EXTRA is not set
+CONFIG_B43_SSB=y
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_SDIO=y
+# CONFIG_BRCMFMAC_SDIO_OOB is not set
+CONFIG_BRCMFMAC_USB=y
+# CONFIG_BRCMDBG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+CONFIG_IWLDVM=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+# CONFIG_IWLWIFI_P2P is not set
+# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
+CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+
+#
+# iwl3945 / iwl4965 Debugging Options
+#
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8192C_COMMON=m
+CONFIG_WL_TI=y
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+# CONFIG_WAN is not set
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_VMXNET3=m
+CONFIG_HYPERV_NET=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_MATRIXKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+CONFIG_KEYBOARD_LM8333=m
+# CONFIG_KEYBOARD_MAX7359 is not set
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_VSXXXAA=m
+# CONFIG_MOUSE_GPIO is not set
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MPU3050=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_GP2A=m
+# CONFIG_INPUT_GPIO_TILT_POLLED is not set
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_NOZOMI=m
+# CONFIG_ISI is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+# CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+# CONFIG_SERIAL_TIMBERDALE is not set
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_EG20T=m
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_SPI is not set
+# CONFIG_HSI is not set
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_PTP_1588_CLOCK_PCH=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_IT8761E is not set
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_ICH=m
+# CONFIG_GPIO_VX855 is not set
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_ARIZONA=m
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_AMD8111=m
+CONFIG_GPIO_LANGWELL=y
+# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_TEST_POWER=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_SMB347 is not set
+CONFIG_POWER_AVS=y
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+# CONFIG_SENSORS_GPIO_FAN is not set
+CONFIG_SENSORS_HIH6130=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_IE6XX_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_VIA_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_XEN_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+# CONFIG_BCMA_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_MFD_LM3533=m
+# CONFIG_TPS6105X is not set
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_MFD_TPS65217=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_ARIZONA=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_WM5102=y
+CONFIG_MFD_WM5110=y
+CONFIG_MFD_PCF50633=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_ABX500_CORE=y
+CONFIG_MFD_CS5535=m
+# CONFIG_MFD_TIMBERDALE is not set
+CONFIG_LPC_SCH=m
+CONFIG_LPC_ICH=m
+CONFIG_MFD_RDC321X=m
+# CONFIG_MFD_JANZ_CMODIO is not set
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_RC_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
+
+#
+# Media drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_RC_CORE=m
+CONFIG_RC_MAP=m
+CONFIG_RC_DECODERS=y
+CONFIG_LIRC=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_IR_IGUANA=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_FC0011=m
+CONFIG_MEDIA_TUNER_FC0012=m
+CONFIG_MEDIA_TUNER_FC0013=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_MEDIA_TUNER_TUA9001=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7183=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_ADV7393=m
+CONFIG_VIDEO_AK881X=m
+
+#
+# Camera sensor devices
+#
+CONFIG_VIDEO_APTINA_PLL=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_VS6624=m
+CONFIG_VIDEO_MT9M032=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_S5K6AA=m
+
+#
+# Flash devices
+#
+CONFIG_VIDEO_ADP1653=m
+CONFIG_VIDEO_AS3645A=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_V4L_USB_DRIVERS=y
+
+#
+# Webcam devices
+#
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_VIDEO_CPIA2=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_USB_SN9C102=m
+
+#
+# Webcam and/or TV USB devices
+#
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=m
+
+#
+# TV USB devices
+#
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_V4L_PCI_DRIVERS=y
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+# CONFIG_V4L_ISA_PARPORT_DRIVERS is not set
+# CONFIG_V4L_PLATFORM_DRIVERS is not set
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_KEENE=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+CONFIG_RADIO_WL128X=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_IT913X=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported ddbridge ('Octopus') Adapters
+#
+CONFIG_DVB_DDBRIDGE=m
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_TDA18271C2DD=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_TDA10071=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_RTL2830=m
+CONFIG_DVB_RTL2832=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LG2160=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AU8522_DTV=m
+CONFIG_DVB_AU8522_V4L=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
+CONFIG_DVB_M88RS2000=m
+CONFIG_DVB_AF9033=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_USB=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_UDL=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_STUB_POULSBO=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FB_DDC is not set
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_LE80578 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+CONFIG_FB_VIA=m
+CONFIG_FB_VIA_DIRECT_PROCFS=y
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+CONFIG_FB_VOODOO1=m
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_SMSCUFX is not set
+CONFIG_FB_UDL=m
+CONFIG_FB_VIRTUAL=m
+CONFIG_XEN_FBDEV_FRONTEND=m
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_AUO_K190X is not set
+# CONFIG_EXYNOS_VIDEO is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_BACKLIGHT_LM3533=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_APPLE=m
+# CONFIG_BACKLIGHT_SAHARA is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_PCF50633=m
+# CONFIG_BACKLIGHT_LP855X is not set
+# CONFIG_BACKLIGHT_OT200 is not set
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_FONT_AUTOSELECT=y
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_KCTL_JACK=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_TEA575X=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=4096
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+# CONFIG_SND_SOC is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+
+#
+# HID support
+#
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=m
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_APPLE=m
+CONFIG_HID_AUREAL=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HOLTEK_FF=y
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LENOVO_TPKBD=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWHEELS_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_HYPERV_MOUSE=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TIVO=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_WIIMOTE_EXT=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_DWC3 is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RENESAS_USBHS_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_HCD_BCMA is not set
+# CONFIG_USB_HCD_SSB is not set
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_TUSB6010=m
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+# CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_RENESAS_USBHS=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_ISP1301=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+#
+# USB Peripheral Controller
+#
+CONFIG_USB_R8A66597=m
+CONFIG_USB_RENESAS_USBHS_UDC=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_GADGET_MUSB_HDRC=m
+CONFIG_USB_M66592=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_EG20T=m
+CONFIG_USB_DUMMY_HCD=m
+CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_GADGET_SUPERSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+# CONFIG_GADGET_UAC1 is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_WEBCAM=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_GPIO_VBUS is not set
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_LM3533=m
+CONFIG_LEDS_PCA9532=m
+# CONFIG_LEDS_PCA9532_GPIO is not set
+# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA9633=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_LM3556=m
+CONFIG_LEDS_OT200=m
+CONFIG_LEDS_BLINKM=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+CONFIG_EDAC_LEGACY_SYSFS=y
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_SBRIDGE=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_PCF50633=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+# CONFIG_VFIO is not set
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+
+#
+# Microsoft Hyper-V guest support
+#
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+
+#
+# Xen driver support
+#
+CONFIG_XEN_BALLOON=y
+# CONFIG_XEN_SELFBALLOONING is not set
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_TMEM=y
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PRIVCMD=m
+CONFIG_XEN_ACPI_PROCESSOR=m
+# CONFIG_XEN_MCE_LOG is not set
+CONFIG_STAGING=y
+CONFIG_ET131X=m
+CONFIG_SLICOSS=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
+CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
+CONFIG_COMEDI_MISC_DRIVERS=y
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_PCI_DRIVERS=y
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200_PCI=m
+CONFIG_COMEDI_AMPLC_PC236_PCI=m
+CONFIG_COMEDI_AMPLC_PC263_PCI=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DAS08_PCI=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIOCMD=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=y
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=y
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_FC=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_RTS_PSTOR=m
+# CONFIG_RTS_PSTOR_DEBUG is not set
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
+# CONFIG_TRANZPORT is not set
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+# CONFIG_LINE6_USB_DEBUG is not set
+# CONFIG_LINE6_USB_DUMP_CTRL is not set
+# CONFIG_LINE6_USB_DUMP_MIDI is not set
+# CONFIG_LINE6_USB_DUMP_PCM is not set
+# CONFIG_LINE6_USB_RAW is not set
+# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_DX_SEP=m
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_ZCACHE=y
+CONFIG_ZSMALLOC=y
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_FB_SM7XX=m
+CONFIG_CRYSTALHD=m
+CONFIG_FB_XGI=m
+CONFIG_ACPI_QUICKSTART=m
+CONFIG_USB_ENESTORAGE=m
+CONFIG_BCM_WIMAX=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_DVB_AS102=m
+CONFIG_DVB_CXD2099=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_DT3155_STREAMING=y
+CONFIG_EASYCAP=m
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_SOLO6X10=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_PHONE is not set
+CONFIG_USB_WPAN_HCD=m
+CONFIG_IPACK_BUS=m
+CONFIG_BOARD_TPCI200=m
+CONFIG_SERIAL_IPOCTAL=m
+CONFIG_WIMAX_GDM72XX=m
+CONFIG_WIMAX_GDM72XX_QOS=y
+CONFIG_WIMAX_GDM72XX_K_MODE=y
+CONFIG_WIMAX_GDM72XX_WIMAX2=y
+CONFIG_WIMAX_GDM72XX_USB=y
+# CONFIG_WIMAX_GDM72XX_SDIO is not set
+CONFIG_WIMAX_GDM72XX_USB_PM=y
+CONFIG_CSR_WIFI=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_FUJITSU_TABLET=m
+CONFIG_AMILO_RFKILL=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_APPLE_GMUX=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_AMD_IOMMU_V2=m
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_IRQ_REMAP=y
+
+#
+# Remoteproc drivers (EXPERIMENTAL)
+#
+
+#
+# Rpmsg drivers (EXPERIMENTAL)
+#
+CONFIG_VIRT_DRIVERS=y
+# CONFIG_PM_DEVFREQ is not set
+CONFIG_EXTCON=m
+
+#
+# Extcon Device Drivers
+#
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_ARIZONA=m
+CONFIG_MEMORY=y
+# CONFIG_IIO is not set
+# CONFIG_VME_BUS is not set
+# CONFIG_PWM is not set
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=m
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT23=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+CONFIG_NILFS2_FS=m
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_FS_SECURITY=y
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_FTRACE is not set
+CONFIG_PSTORE_RAM=m
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_ORE=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+# CONFIG_NFS_SWAP is not set
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_SUNRPC_DEBUG is not set
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_READABLE_ASM is not set
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHEDSTATS=y
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_VERBOSE is not set
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_KPROBES_SANITY_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_LKDTM=m
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+CONFIG_SCHED_TRACER=y
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+CONFIG_STACK_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_KPROBE_EVENT=y
+CONFIG_UPROBE_EVENT=y
+CONFIG_PROBE_EVENTS=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_TEST_KSTRTOX=m
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+# CONFIG_X86_DECODER_SELFTEST is not set
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+
+#
+# Security options
+#
+
+#
+# Grsecurity
+#
+CONFIG_TASK_SIZE_MAX_SHIFT=47
+CONFIG_PAX_USERCOPY_SLABS=y
+CONFIG_GRKERNSEC=y
+# CONFIG_GRKERNSEC_CONFIG_AUTO is not set
+CONFIG_GRKERNSEC_CONFIG_CUSTOM=y
+CONFIG_GRKERNSEC_PROC_GID=9999
+CONFIG_GRKERNSEC_TPE_TRUSTED_GID=9999
+CONFIG_GRKERNSEC_SYMLINKOWN_GID=33
+
+#
+# Customize Configuration
+#
+
+#
+# PaX
+#
+CONFIG_PAX=y
+
+#
+# PaX Control
+#
+# CONFIG_PAX_SOFTMODE is not set
+# CONFIG_PAX_EI_PAX is not set
+CONFIG_PAX_PT_PAX_FLAGS=y
+CONFIG_PAX_XATTR_PAX_FLAGS=y
+# CONFIG_PAX_NO_ACL_FLAGS is not set
+CONFIG_PAX_HAVE_ACL_FLAGS=y
+# CONFIG_PAX_HOOK_ACL_FLAGS is not set
+
+#
+# Non-executable pages
+#
+CONFIG_PAX_NOEXEC=y
+CONFIG_PAX_PAGEEXEC=y
+CONFIG_PAX_EMUTRAMP=y
+CONFIG_PAX_MPROTECT=y
+# CONFIG_PAX_MPROTECT_COMPAT is not set
+# CONFIG_PAX_ELFRELOCS is not set
+CONFIG_PAX_KERNEXEC_PLUGIN_METHOD=""
+
+#
+# Address Space Layout Randomization
+#
+CONFIG_PAX_ASLR=y
+CONFIG_PAX_RANDKSTACK=y
+CONFIG_PAX_RANDUSTACK=y
+CONFIG_PAX_RANDMMAP=y
+
+#
+# Miscellaneous hardening features
+#
+CONFIG_PAX_MEMORY_STACKLEAK=y
+CONFIG_PAX_REFCOUNT=y
+CONFIG_PAX_USERCOPY=y
+# CONFIG_PAX_SIZE_OVERFLOW is not set
+# CONFIG_PAX_LATENT_ENTROPY is not set
+
+#
+# Memory Protections
+#
+CONFIG_GRKERNSEC_KMEM=y
+# CONFIG_GRKERNSEC_IO is not set
+CONFIG_GRKERNSEC_JIT_HARDEN=y
+CONFIG_GRKERNSEC_PROC_MEMMAP=y
+CONFIG_GRKERNSEC_BRUTE=y
+CONFIG_GRKERNSEC_MODHARDEN=y
+CONFIG_GRKERNSEC_HIDESYM=y
+CONFIG_GRKERNSEC_KERN_LOCKOUT=y
+
+#
+# Role Based Access Control Options
+#
+# CONFIG_GRKERNSEC_NO_RBAC is not set
+CONFIG_GRKERNSEC_ACL_HIDEKERN=y
+CONFIG_GRKERNSEC_ACL_MAXTRIES=3
+CONFIG_GRKERNSEC_ACL_TIMEOUT=30
+
+#
+# Filesystem Protections
+#
+CONFIG_GRKERNSEC_PROC=y
+# CONFIG_GRKERNSEC_PROC_USER is not set
+CONFIG_GRKERNSEC_PROC_USERGROUP=y
+CONFIG_GRKERNSEC_PROC_ADD=y
+CONFIG_GRKERNSEC_LINK=y
+CONFIG_GRKERNSEC_SYMLINKOWN=y
+CONFIG_GRKERNSEC_FIFO=y
+CONFIG_GRKERNSEC_SYSFS_RESTRICT=y
+CONFIG_GRKERNSEC_ROFS=y
+CONFIG_GRKERNSEC_CHROOT=y
+CONFIG_GRKERNSEC_CHROOT_MOUNT=y
+CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
+CONFIG_GRKERNSEC_CHROOT_PIVOT=y
+CONFIG_GRKERNSEC_CHROOT_CHDIR=y
+CONFIG_GRKERNSEC_CHROOT_CHMOD=y
+CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
+CONFIG_GRKERNSEC_CHROOT_MKNOD=y
+CONFIG_GRKERNSEC_CHROOT_SHMAT=y
+CONFIG_GRKERNSEC_CHROOT_UNIX=y
+CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
+CONFIG_GRKERNSEC_CHROOT_NICE=y
+CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
+CONFIG_GRKERNSEC_CHROOT_CAPS=y
+
+#
+# Kernel Auditing
+#
+# CONFIG_GRKERNSEC_AUDIT_GROUP is not set
+# CONFIG_GRKERNSEC_EXECLOG is not set
+CONFIG_GRKERNSEC_RESLOG=y
+# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set
+CONFIG_GRKERNSEC_AUDIT_PTRACE=y
+# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set
+CONFIG_GRKERNSEC_AUDIT_MOUNT=y
+CONFIG_GRKERNSEC_SIGNAL=y
+CONFIG_GRKERNSEC_FORKFAIL=y
+CONFIG_GRKERNSEC_TIME=y
+CONFIG_GRKERNSEC_PROC_IPADDR=y
+CONFIG_GRKERNSEC_RWXMAP_LOG=y
+# CONFIG_GRKERNSEC_AUDIT_TEXTREL is not set
+
+#
+# Executable Protections
+#
+CONFIG_GRKERNSEC_DMESG=y
+CONFIG_GRKERNSEC_HARDEN_PTRACE=y
+CONFIG_GRKERNSEC_PTRACE_READEXEC=y
+CONFIG_GRKERNSEC_SETXID=y
+CONFIG_GRKERNSEC_TPE=y
+CONFIG_GRKERNSEC_TPE_ALL=y
+CONFIG_GRKERNSEC_TPE_INVERT=y
+CONFIG_GRKERNSEC_TPE_GID=9999
+
+#
+# Network Protections
+#
+CONFIG_GRKERNSEC_RANDNET=y
+CONFIG_GRKERNSEC_BLACKHOLE=y
+# CONFIG_GRKERNSEC_SOCKET is not set
+
+#
+# Sysctl Support
+#
+CONFIG_GRKERNSEC_SYSCTL=y
+# CONFIG_GRKERNSEC_SYSCTL_DISTRO is not set
+CONFIG_GRKERNSEC_SYSCTL_ON=y
+
+#
+# Logging Options
+#
+CONFIG_GRKERNSEC_FLOODTIME=10
+CONFIG_GRKERNSEC_FLOODBURST=6
+CONFIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_ABLK_HELPER_X86=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAMELLIA_X86_64=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=y
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+CONFIG_TCM_VHOST=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_ENC8=y
+CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_BCH=m
+CONFIG_BCH_CONST_PARAMS=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_NLATTR=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
+CONFIG_DDR=y
diff --git a/kernels/linux-libre-grsec/irq_cfg_pointer-3.6.6.patch b/kernels/linux-libre-grsec/irq_cfg_pointer-3.6.6.patch
new file mode 100644
index 000000000..32583c0ac
--- /dev/null
+++ b/kernels/linux-libre-grsec/irq_cfg_pointer-3.6.6.patch
@@ -0,0 +1,16 @@
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=arch%2Fx86%2Fkernel%2Fapic%2Fio_apic.c;h=1817fa911024f07151d3edf91bd350722c9f79f8;hp=c265593ec2cdc3df35fda1586aaf91514fab62fa;hb=94777fc51b3ad85ff9f705ddf7cdd0eb3bbad5a6;hpb=3e8fa263a97079c74880675c451587bb6899e661
+
+diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
+index c265593..1817fa9 100644
+--- a/arch/x86/kernel/apic/io_apic.c
++++ b/arch/x86/kernel/apic/io_apic.c
+@@ -2257,6 +2257,9 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
+ continue;
+
+ cfg = irq_cfg(irq);
++ if (!cfg)
++ continue;
++
+ raw_spin_lock(&desc->lock);
+
+ /*
diff --git a/kernels/linux-libre-grsec/linux-libre-grsec.install b/kernels/linux-libre-grsec/linux-libre-grsec.install
new file mode 100755
index 000000000..4c65c9783
--- /dev/null
+++ b/kernels/linux-libre-grsec/linux-libre-grsec.install
@@ -0,0 +1,110 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+KERNEL_NAME=-grsec
+KERNEL_VERSION=3.6.7-4-LIBRE-GRSEC
+
+_fix_permissions() {
+ /usr/bin/paxutils
+
+ echo
+ echo You can repeat this process after updating or installing affected
+ echo binaries by running "paxutils".
+}
+
+_add_trusted_group() {
+ if ! getent group grsec-trusted >/dev/null; then
+ groupadd -g 9999 -r grsec-trusted
+ useradd -g 9999 -r grsec-trusted
+ fi
+}
+
+_help() {
+ echo
+ echo For group grsec-trusted, Trusted Path Execution is disabled and
+ echo information about all processes from /proc is visible. Think carefully
+ echo before adding a normal user to this group.
+ echo
+ echo This is controllable with the sysctl options \"kernel.grsecurity.tpe*\".
+ echo
+ echo There is an extensive wikibook on grsecurity:
+ echo http://en.wikibooks.org/wiki/Grsecurity
+}
+
+# set a sane PATH to ensure that critical utils like depmod will be found
+export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
+
+post_install () {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod ${KERNEL_VERSION}
+ if command -v mkinitcpio 2>&1 > /dev/null; then
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ mkinitcpio -p linux-libre${KERNEL_NAME}
+ fi
+
+ # compat symlinks for the official kernels only
+ if [ -z "${KERNEL_NAME}" -o "${KERNEL_NAME}" = "-grsec" ]; then
+ loaders="$(find /boot -name syslinux.cfg -or -name extlinux.conf -or -name grub.cfg -or -name menu.lst)"
+ [ -f /etc/lilo.conf ] && loaders="$loaders /etc/lilo.conf"
+ if [ -n "${loaders}" ] && grep -q -e vmlinuz26 -e kernel26.img -e kernel26-fallback.img $loaders; then
+ # add compat symlinks for the initramfs images
+ ln -sf initramfs-linux-libre${KERNEL_NAME}.img boot/kernel26${KERNEL_NAME}.img
+ ln -sf initramfs-linux-libre${KERNEL_NAME}-fallback.img \
+ boot/kernel26${KERNEL_NAME}-fallback.img
+ ln -sf vmlinuz-linux-libre${KERNEL_NAME} /boot/vmlinuz26${KERNEL_NAME}
+ fi
+ fi
+
+ _add_trusted_group
+ _fix_permissions
+
+ _help
+}
+
+post_upgrade() {
+ pacman -Q grub &>/dev/null
+ hasgrub=$?
+ pacman -Q grub-common &>/dev/null
+ hasgrub2=$?
+ pacman -Q lilo &>/dev/null
+ haslilo=$?
+ # reminder notices
+ if [ $haslilo -eq 0 ]; then
+ echo ">>>"
+ if [ $hasgrub -eq 0 -o $hasgrub2 -eq 0 ]; then
+ echo ">>> If you use the LILO bootloader, you should run 'lilo' before rebooting."
+ else
+ echo ">>> You appear to be using the LILO bootloader. You should run"
+ echo ">>> 'lilo' before rebooting."
+ fi
+ echo ">>>"
+ fi
+
+ if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
+ echo "WARNING: /boot appears to be a separate partition but is not mounted."
+ fi
+
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod ${KERNEL_VERSION}
+ if command -v mkinitcpio 2>&1 > /dev/null; then
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ mkinitcpio -p linux-libre${KERNEL_NAME}
+ fi
+
+ _add_trusted_group
+ _fix_permissions
+
+ _help
+}
+
+post_remove() {
+ # also remove the compat symlinks
+ rm -f boot/{initramfs-linux-libre,kernel26}${KERNEL_NAME}.img
+ rm -f boot/{initramfs-linux-libre,kernel26}${KERNEL_NAME}-fallback.img
+
+ if getent group grsec-trusted >/dev/null; then
+ groupdel grsec-trusted
+ fi
+}
diff --git a/kernels/linux-libre-grsec/linux-libre-grsec.preset b/kernels/linux-libre-grsec/linux-libre-grsec.preset
new file mode 100755
index 000000000..3fe913d44
--- /dev/null
+++ b/kernels/linux-libre-grsec/linux-libre-grsec.preset
@@ -0,0 +1,14 @@
+# mkinitcpio preset file for the 'linux-libre-grsec' package
+
+ALL_config="/etc/mkinitcpio.conf"
+ALL_kver="/boot/vmlinuz-linux-libre-grsec"
+
+PRESETS=('default' 'fallback')
+
+#default_config="/etc/mkinitcpio.conf"
+default_image="/boot/initramfs-linux-libre-grsec.img"
+#default_options=""
+
+#fallback_config="/etc/mkinitcpio.conf"
+fallback_image="/boot/initramfs-linux-libre-grsec-fallback.img"
+fallback_options="-S autodetect"
diff --git a/kernels/linux-libre-grsec/module-init-wait-3.6.patch b/kernels/linux-libre-grsec/module-init-wait-3.6.patch
new file mode 100644
index 000000000..1bcfd2491
--- /dev/null
+++ b/kernels/linux-libre-grsec/module-init-wait-3.6.patch
@@ -0,0 +1,77 @@
+From: Rusty Russell <rusty@rustcorp.com.au>
+Date: Fri, 28 Sep 2012 05:01:03 +0000 (+0930)
+Subject: module: wait when loading a module which is currently initializing.
+X-Git-Tag: v3.7-rc1~2^2~32
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=9bb9c3be568346538
+
+module: wait when loading a module which is currently initializing.
+
+The original module-init-tools module loader used a fnctl lock on the
+.ko file to avoid attempts to simultaneously load a module.
+Unfortunately, you can't get an exclusive fcntl lock on a read-only
+fd, making this not work for read-only mounted filesystems.
+module-init-tools has a hacky sleep-and-loop for this now.
+
+It's not that hard to wait in the kernel, and only return -EEXIST once
+the first module has finished loading (or continue loading the module
+if the first one failed to initialize for some reason). It's also
+consistent with what we do for dependent modules which are still loading.
+
+Suggested-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+---
+
+diff --git a/kernel/module.c b/kernel/module.c
+index 63cf6e7..74bc195 100644
+--- a/kernel/module.c
++++ b/kernel/module.c
+@@ -2845,6 +2845,20 @@ static int post_relocation(struct module *mod, const struct load_info *info)
+ return module_finalize(info->hdr, info->sechdrs, mod);
+ }
+
++/* Is this module of this name done loading? No locks held. */
++static bool finished_loading(const char *name)
++{
++ struct module *mod;
++ bool ret;
++
++ mutex_lock(&module_mutex);
++ mod = find_module(name);
++ ret = !mod || mod->state != MODULE_STATE_COMING;
++ mutex_unlock(&module_mutex);
++
++ return ret;
++}
++
+ /* Allocate and load the module: note that size of section 0 is always
+ zero, and we rely on this for optional sections. */
+ static struct module *load_module(void __user *umod,
+@@ -2852,7 +2866,7 @@ static struct module *load_module(void __user *umod,
+ const char __user *uargs)
+ {
+ struct load_info info = { NULL, };
+- struct module *mod;
++ struct module *mod, *old;
+ long err;
+
+ pr_debug("load_module: umod=%p, len=%lu, uargs=%p\n",
+@@ -2918,8 +2932,18 @@ static struct module *load_module(void __user *umod,
+ * function to insert in a way safe to concurrent readers.
+ * The mutex protects against concurrent writers.
+ */
++again:
+ mutex_lock(&module_mutex);
+- if (find_module(mod->name)) {
++ if ((old = find_module(mod->name)) != NULL) {
++ if (old->state == MODULE_STATE_COMING) {
++ /* Wait in case it fails to load. */
++ mutex_unlock(&module_mutex);
++ err = wait_event_interruptible(module_wq,
++ finished_loading(mod->name));
++ if (err)
++ goto free_arch_cleanup;
++ goto again;
++ }
+ err = -EEXIST;
+ goto unlock;
+ }
diff --git a/kernels/linux-libre-grsec/module-symbol-waiting-3.6.patch b/kernels/linux-libre-grsec/module-symbol-waiting-3.6.patch
new file mode 100644
index 000000000..b87a38ff5
--- /dev/null
+++ b/kernels/linux-libre-grsec/module-symbol-waiting-3.6.patch
@@ -0,0 +1,66 @@
+From: Rusty Russell <rusty@rustcorp.com.au>
+Date: Fri, 28 Sep 2012 05:01:03 +0000 (+0930)
+Subject: module: fix symbol waiting when module fails before init
+X-Git-Tag: v3.7-rc1~2^2~33
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=6f13909f4fe9652f1
+
+module: fix symbol waiting when module fails before init
+
+We use resolve_symbol_wait(), which blocks if the module containing
+the symbol is still loading. However:
+
+1) The module_wq we use is only woken after calling the modules' init
+ function, but there are other failure paths after the module is
+ placed in the linked list where we need to do the same thing.
+
+2) wake_up() only wakes one waiter, and our waitqueue is shared by all
+ modules, so we need to wake them all.
+
+3) wake_up_all() doesn't imply a memory barrier: I feel happier calling
+ it after we've grabbed and dropped the module_mutex, not just after
+ the state assignment.
+
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+---
+
+diff --git a/kernel/module.c b/kernel/module.c
+index 7f2ee45f..63cf6e7 100644
+--- a/kernel/module.c
++++ b/kernel/module.c
+@@ -2959,7 +2959,7 @@ static struct module *load_module(void __user *umod,
+ /* Unlink carefully: kallsyms could be walking list. */
+ list_del_rcu(&mod->list);
+ module_bug_cleanup(mod);
+-
++ wake_up_all(&module_wq);
+ ddebug:
+ dynamic_debug_remove(info.debug);
+ unlock:
+@@ -3034,7 +3034,7 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+ blocking_notifier_call_chain(&module_notify_list,
+ MODULE_STATE_GOING, mod);
+ free_module(mod);
+- wake_up(&module_wq);
++ wake_up_all(&module_wq);
+ return ret;
+ }
+ if (ret > 0) {
+@@ -3046,9 +3046,8 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+ dump_stack();
+ }
+
+- /* Now it's a first class citizen! Wake up anyone waiting for it. */
++ /* Now it's a first class citizen! */
+ mod->state = MODULE_STATE_LIVE;
+- wake_up(&module_wq);
+ blocking_notifier_call_chain(&module_notify_list,
+ MODULE_STATE_LIVE, mod);
+
+@@ -3071,6 +3070,7 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+ mod->init_ro_size = 0;
+ mod->init_text_size = 0;
+ mutex_unlock(&module_mutex);
++ wake_up_all(&module_wq);
+
+ return 0;
+ }
diff --git a/kernels/linux-libre-lts-rt/PKGBUILD b/kernels/linux-libre-lts-rt/PKGBUILD
index daf2d1c16..b426568ed 100755
--- a/kernels/linux-libre-lts-rt/PKGBUILD
+++ b/kernels/linux-libre-lts-rt/PKGBUILD
@@ -11,12 +11,12 @@
pkgbase=linux-libre-lts-rt # Build stock -LIBRE-LTS-RT kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.0
-_releasever=43
-_rtpatchver=rt65
+_releasever=52
+_rtpatchver=rt76
_pkgver=${_basekernel}.${_releasever}
pkgver=${_basekernel}.${_releasever}_${_rtpatchver}
pkgrel=1
-_lxopkgver=${_basekernel}.43 # nearly always the same as pkgver
+_lxopkgver=${_basekernel}.52 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -35,10 +35,12 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'change-default-console-loglevel.patch'
'i915-fix-ghost-tv-output.patch'
'ext4-options.patch'
+ 'module-symbol-waiting-3.0.patch'
+ 'module-init-wait-3.0.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
md5sums=('5f64180fe7df4e574dac5911b78f5067'
- 'c4b4e6d908e70fc6f991a1789a3ac620'
- 'bcca49907b1c1e74f6ff6afced5ff959'
+ '41adc30b96b745f08899317da83f7eaa'
+ 'a2b53a39e1a4b4103f91609b3d285591'
'7266f5e7af09cc6e4b15d7a952e3b350'
'5387f0cf51652c071190789569adf9c7'
'85f04a9555bdc295f7c387a6564f0c81'
@@ -47,8 +49,10 @@ md5sums=('5f64180fe7df4e574dac5911b78f5067'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
- 'c8299cf750a84e12d60b372c8ca7e1e8'
- '2c4870ef22f87ef885f3be392d1aaa90')
+ 'f36222e7ce20c8e4dc27376f9be60f6c'
+ '670931649c60fcb3ef2e0119ed532bd4'
+ '8a71abc4224f575008f974a099b5cf6f'
+ 'ecf9d21d2d6dfbc29dc18b616cbce4e1')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
@@ -90,6 +94,11 @@ build() {
# https://bugs.archlinux.org/task/28653
patch -Np1 -i "${srcdir}/ext4-options.patch"
+ # fix module initialisation
+ # https://bugs.archlinux.org/task/32122
+ patch -Np1 -i "${srcdir}/module-symbol-waiting-3.0.patch"
+ patch -Np1 -i "${srcdir}/module-init-wait-3.0.patch"
+
if [ "$CARCH" == "mips64el" ]; then
sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre-lts-rt|" Makefile
sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \
@@ -102,7 +111,7 @@ build() {
# https://git.kernel.org/?p=linux/hotplug/udev.git;a=blob_plain;f=README
# and make USB storage support builtin (e.g. for booting from USB
# disks without slowly loading an initramfs)
- sed -ri -e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \
+ sed -ri \
-e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \
-e "s|CONFIG_UEVENT_HELPER_PATH=.*|CONFIG_UEVENT_HELPER_PATH=\"\"|g" \
-e "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_localversionname}\"|g" \
diff --git a/kernels/linux-libre-lts-rt/ext4-options.patch b/kernels/linux-libre-lts-rt/ext4-options.patch
index 812b05f04..ef1b2417d 100755
--- a/kernels/linux-libre-lts-rt/ext4-options.patch
+++ b/kernels/linux-libre-lts-rt/ext4-options.patch
@@ -46,4 +46,4 @@ index 502c61f..30de9cd 100644
+#endif
default:
ext4_msg(sb, KERN_ERR,
- "Unrecognized mount option \"%s\" " \ No newline at end of file
+ "Unrecognized mount option \"%s\" "
diff --git a/kernels/linux-libre-lts-rt/linux-libre-lts-rt.install b/kernels/linux-libre-lts-rt/linux-libre-lts-rt.install
index d2f0ae05a..98e85eeaf 100755
--- a/kernels/linux-libre-lts-rt/linux-libre-lts-rt.install
+++ b/kernels/linux-libre-lts-rt/linux-libre-lts-rt.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-lts-rt
-KERNEL_VERSION=3.0.43-1-rt65-LIBRE-LTS-RT
+KERNEL_VERSION=3.0.52-1-rt76-LIBRE-LTS-RT
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
diff --git a/kernels/linux-libre-lts-rt/module-init-wait-3.0.patch b/kernels/linux-libre-lts-rt/module-init-wait-3.0.patch
new file mode 100644
index 000000000..1bcfd2491
--- /dev/null
+++ b/kernels/linux-libre-lts-rt/module-init-wait-3.0.patch
@@ -0,0 +1,77 @@
+From: Rusty Russell <rusty@rustcorp.com.au>
+Date: Fri, 28 Sep 2012 05:01:03 +0000 (+0930)
+Subject: module: wait when loading a module which is currently initializing.
+X-Git-Tag: v3.7-rc1~2^2~32
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=9bb9c3be568346538
+
+module: wait when loading a module which is currently initializing.
+
+The original module-init-tools module loader used a fnctl lock on the
+.ko file to avoid attempts to simultaneously load a module.
+Unfortunately, you can't get an exclusive fcntl lock on a read-only
+fd, making this not work for read-only mounted filesystems.
+module-init-tools has a hacky sleep-and-loop for this now.
+
+It's not that hard to wait in the kernel, and only return -EEXIST once
+the first module has finished loading (or continue loading the module
+if the first one failed to initialize for some reason). It's also
+consistent with what we do for dependent modules which are still loading.
+
+Suggested-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+---
+
+diff --git a/kernel/module.c b/kernel/module.c
+index 63cf6e7..74bc195 100644
+--- a/kernel/module.c
++++ b/kernel/module.c
+@@ -2845,6 +2845,20 @@ static int post_relocation(struct module *mod, const struct load_info *info)
+ return module_finalize(info->hdr, info->sechdrs, mod);
+ }
+
++/* Is this module of this name done loading? No locks held. */
++static bool finished_loading(const char *name)
++{
++ struct module *mod;
++ bool ret;
++
++ mutex_lock(&module_mutex);
++ mod = find_module(name);
++ ret = !mod || mod->state != MODULE_STATE_COMING;
++ mutex_unlock(&module_mutex);
++
++ return ret;
++}
++
+ /* Allocate and load the module: note that size of section 0 is always
+ zero, and we rely on this for optional sections. */
+ static struct module *load_module(void __user *umod,
+@@ -2852,7 +2866,7 @@ static struct module *load_module(void __user *umod,
+ const char __user *uargs)
+ {
+ struct load_info info = { NULL, };
+- struct module *mod;
++ struct module *mod, *old;
+ long err;
+
+ pr_debug("load_module: umod=%p, len=%lu, uargs=%p\n",
+@@ -2918,8 +2932,18 @@ static struct module *load_module(void __user *umod,
+ * function to insert in a way safe to concurrent readers.
+ * The mutex protects against concurrent writers.
+ */
++again:
+ mutex_lock(&module_mutex);
+- if (find_module(mod->name)) {
++ if ((old = find_module(mod->name)) != NULL) {
++ if (old->state == MODULE_STATE_COMING) {
++ /* Wait in case it fails to load. */
++ mutex_unlock(&module_mutex);
++ err = wait_event_interruptible(module_wq,
++ finished_loading(mod->name));
++ if (err)
++ goto free_arch_cleanup;
++ goto again;
++ }
+ err = -EEXIST;
+ goto unlock;
+ }
diff --git a/kernels/linux-libre-lts-rt/module-symbol-waiting-3.0.patch b/kernels/linux-libre-lts-rt/module-symbol-waiting-3.0.patch
new file mode 100644
index 000000000..b87a38ff5
--- /dev/null
+++ b/kernels/linux-libre-lts-rt/module-symbol-waiting-3.0.patch
@@ -0,0 +1,66 @@
+From: Rusty Russell <rusty@rustcorp.com.au>
+Date: Fri, 28 Sep 2012 05:01:03 +0000 (+0930)
+Subject: module: fix symbol waiting when module fails before init
+X-Git-Tag: v3.7-rc1~2^2~33
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=6f13909f4fe9652f1
+
+module: fix symbol waiting when module fails before init
+
+We use resolve_symbol_wait(), which blocks if the module containing
+the symbol is still loading. However:
+
+1) The module_wq we use is only woken after calling the modules' init
+ function, but there are other failure paths after the module is
+ placed in the linked list where we need to do the same thing.
+
+2) wake_up() only wakes one waiter, and our waitqueue is shared by all
+ modules, so we need to wake them all.
+
+3) wake_up_all() doesn't imply a memory barrier: I feel happier calling
+ it after we've grabbed and dropped the module_mutex, not just after
+ the state assignment.
+
+Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+---
+
+diff --git a/kernel/module.c b/kernel/module.c
+index 7f2ee45f..63cf6e7 100644
+--- a/kernel/module.c
++++ b/kernel/module.c
+@@ -2959,7 +2959,7 @@ static struct module *load_module(void __user *umod,
+ /* Unlink carefully: kallsyms could be walking list. */
+ list_del_rcu(&mod->list);
+ module_bug_cleanup(mod);
+-
++ wake_up_all(&module_wq);
+ ddebug:
+ dynamic_debug_remove(info.debug);
+ unlock:
+@@ -3034,7 +3034,7 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+ blocking_notifier_call_chain(&module_notify_list,
+ MODULE_STATE_GOING, mod);
+ free_module(mod);
+- wake_up(&module_wq);
++ wake_up_all(&module_wq);
+ return ret;
+ }
+ if (ret > 0) {
+@@ -3046,9 +3046,8 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+ dump_stack();
+ }
+
+- /* Now it's a first class citizen! Wake up anyone waiting for it. */
++ /* Now it's a first class citizen! */
+ mod->state = MODULE_STATE_LIVE;
+- wake_up(&module_wq);
+ blocking_notifier_call_chain(&module_notify_list,
+ MODULE_STATE_LIVE, mod);
+
+@@ -3071,6 +3070,7 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+ mod->init_ro_size = 0;
+ mod->init_text_size = 0;
+ mutex_unlock(&module_mutex);
++ wake_up_all(&module_wq);
+
+ return 0;
+ }
diff --git a/kernels/linux-libre-rt/PKGBUILD b/kernels/linux-libre-rt/PKGBUILD
index 30361d313..32a69fba2 100755
--- a/kernels/linux-libre-rt/PKGBUILD
+++ b/kernels/linux-libre-rt/PKGBUILD
@@ -11,12 +11,12 @@
pkgbase=linux-libre-rt # Build stock -LIBRE-RT kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.6
-_releasever=6
-_rtpatchver=rt17
+_releasever=7
+_rtpatchver=rt18
_pkgver=${_basekernel}.${_releasever}
pkgver=${_basekernel}.${_releasever}_${_rtpatchver}
pkgrel=1
-_lxopkgver=${_basekernel}.6 # nearly always the same as pkgver
+_lxopkgver=${_basekernel}.7 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -35,10 +35,11 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'change-default-console-loglevel.patch'
'module-symbol-waiting-3.6.patch'
'module-init-wait-3.6.patch'
+ 'irq_cfg_pointer-3.6.6.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
md5sums=('a2312edd0265b5b07bd4b50afae2b380'
- '887e4a0fd0fb10da9410f5d1a75466b8'
- '20cd3b6ed53047a633d1e2b1ba32973e'
+ 'a4e642180c7d757a642175fe32e4a264'
+ '01f97c0630de43763699d580f48e1c74'
'11161582d9050710ccfecbe077fc5a63'
'ac8f20b0cd83acb9525b5557e1fafeaf'
'82496e68851d1960543a07ba51cdb44a'
@@ -48,7 +49,8 @@ md5sums=('a2312edd0265b5b07bd4b50afae2b380'
'9d3c56a4b999c8bfbd4018089a62f662'
'670931649c60fcb3ef2e0119ed532bd4'
'8a71abc4224f575008f974a099b5cf6f'
- 'a281ee5d89a016d72840bddb2d742635')
+ '4909a0271af4e5f373136b382826717f'
+ '1dd80f353c705fef988346a8ef05d13f')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
@@ -81,6 +83,9 @@ build() {
patch -Np1 -i "${srcdir}/module-symbol-waiting-3.6.patch"
patch -Np1 -i "${srcdir}/module-init-wait-3.6.patch"
+ # fix FS#32615 - Check for valid irq_cfg pointer in smp_irq_move_cleanup_interrupt
+ patch -Np1 -i "${srcdir}/irq_cfg_pointer-3.6.6.patch"
+
if [ "$CARCH" == "mips64el" ]; then
sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre-rt|" Makefile
sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \
diff --git a/kernels/linux-libre-rt/irq_cfg_pointer-3.6.6.patch b/kernels/linux-libre-rt/irq_cfg_pointer-3.6.6.patch
new file mode 100644
index 000000000..32583c0ac
--- /dev/null
+++ b/kernels/linux-libre-rt/irq_cfg_pointer-3.6.6.patch
@@ -0,0 +1,16 @@
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=arch%2Fx86%2Fkernel%2Fapic%2Fio_apic.c;h=1817fa911024f07151d3edf91bd350722c9f79f8;hp=c265593ec2cdc3df35fda1586aaf91514fab62fa;hb=94777fc51b3ad85ff9f705ddf7cdd0eb3bbad5a6;hpb=3e8fa263a97079c74880675c451587bb6899e661
+
+diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
+index c265593..1817fa9 100644
+--- a/arch/x86/kernel/apic/io_apic.c
++++ b/arch/x86/kernel/apic/io_apic.c
+@@ -2257,6 +2257,9 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
+ continue;
+
+ cfg = irq_cfg(irq);
++ if (!cfg)
++ continue;
++
+ raw_spin_lock(&desc->lock);
+
+ /*
diff --git a/kernels/linux-libre-rt/linux-libre-rt.install b/kernels/linux-libre-rt/linux-libre-rt.install
index c7a44aeee..7925ec89c 100755
--- a/kernels/linux-libre-rt/linux-libre-rt.install
+++ b/kernels/linux-libre-rt/linux-libre-rt.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-rt
-KERNEL_VERSION=3.6.6-1-rt17-LIBRE-RT
+KERNEL_VERSION=3.6.7-1-rt18-LIBRE-RT
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
diff --git a/kernels/paxctl/PKGBUILD b/kernels/paxctl/PKGBUILD
new file mode 100644
index 000000000..4d1ac4968
--- /dev/null
+++ b/kernels/paxctl/PKGBUILD
@@ -0,0 +1,18 @@
+# Contributor: sh0 <mee@sh0.org>
+
+pkgname='paxctl'
+pkgver='0.7'
+pkgrel=1
+pkgdesc='Manages various PaX related program header flags for Elf32, Elf64, binaries'
+url="http://pax.grsecurity.net/"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+depends=()
+source=("http://pax.grsecurity.net/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('25bf9df751976e87be20243e75291263')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/kernels/paxutils/PKGBUILD b/kernels/paxutils/PKGBUILD
new file mode 100644
index 000000000..3d6d1e772
--- /dev/null
+++ b/kernels/paxutils/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: André Silva <emulatorman@lavabit.com>
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+pkgname=paxutils
+pkgdesc='PaX utilities to configure flags for several binaries to work with PaX kernels'
+pkgver=0.1.0
+pkgrel=2
+arch=(any)
+url='https://projects.parabolagnulinux.org/abslibre.git/tree/kernels/paxutils/'
+license=(GPL2)
+depends=(bash paxctl)
+replaces=('linux-pax-flags' 'linux-libre-pax-flags')
+conflicts=('linux-pax-flags' 'linux-libre-pax-flags')
+provides=('linux-pax-flags' 'linux-libre-pax-flags')
+source=($pkgname)
+sha256sums=(bf1fda4919e7ed8052711c91933d9da5d86945ba44133c94e1952dedb4d1759b)
+
+build() {
+ return 0
+}
+
+package() {
+ install -D -m755 $srcdir/$pkgname $pkgdir/usr/bin/$pkgname
+}
diff --git a/kernels/paxutils/paxutils b/kernels/paxutils/paxutils
new file mode 100755
index 000000000..22f5a8171
--- /dev/null
+++ b/kernels/paxutils/paxutils
@@ -0,0 +1,174 @@
+#!/bin/bash
+
+[ "$UID" = "0" ] || {
+ sudo $0
+ exit $!
+}
+
+function homedir() {
+ egrep ^$1 /etc/passwd | cut -d: -f 6
+}
+
+declare -A perms
+
+perms=(
+ # RANDMMAP off
+ ['cPSMXEr']='
+ /usr/bin/grub-script-check
+ '
+ # MPROTECT and RANDMMAP off
+ ['cPSmXEr']='
+ /usr/bin/elinks
+ /usr/bin/pyrogenesis
+ /usr/lib/iceweasel/iceweasel
+ /usr/lib/iceweasel/plugin-container
+ /usr/lib/icecat/icecat
+ /usr/lib/icecat/plugin-container
+ /usr/lib/polkit-1/polkitd
+ /usr/lib/icedove/icedove
+ '
+ # SEGMEXEC and MPROTECT off
+ # (RANDEXEC is not activatable for qemu. The binaries seem to be compiled
+ # with PIE enabled, though.)
+ ['cPsmxER']='
+ /usr/bin/qemu-alpha
+ /usr/bin/qemu-arm
+ /usr/bin/qemu-armeb
+ /usr/bin/qemu-cris
+ /usr/bin/qemu-i386
+ /usr/bin/qemu-m68k
+ /usr/bin/qemu-microblaze
+ /usr/bin/qemu-microblazeel
+ /usr/bin/qemu-mips
+ /usr/bin/qemu-mipsel
+ /usr/bin/qemu-ppc
+ /usr/bin/qemu-ppc64
+ /usr/bin/qemu-ppc64abi32
+ /usr/bin/qemu-s390x
+ /usr/bin/qemu-sh4
+ /usr/bin/qemu-sh4eb
+ /usr/bin/qemu-sparc
+ /usr/bin/qemu-sparc32plus
+ /usr/bin/qemu-sparc64
+ /usr/bin/qemu-unicore32
+ /usr/bin/qemu-x86_64
+ '
+ # MPROTECT off
+ ['cPSmXER']="
+ /usr/bin/blender
+ /usr/bin/clamscan
+ /usr/bin/freshclam
+ /usr/bin/glxdemo
+ /usr/bin/glxgears
+ /usr/bin/glxinfo
+ /usr/bin/kdeinit4
+ /usr/bin/kdenlive
+ /usr/bin/kmail
+ /usr/bin/kwin
+ /usr/bin/liferea
+ /usr/bin/mono
+ /usr/bin/mplayer
+ /usr/bin/okular
+ /usr/bin/qemu-system-alpha
+ /usr/bin/qemu-system-arm
+ /usr/bin/qemu-system-cris
+ /usr/bin/qemu-system-i386
+ /usr/bin/qemu-system-lm32
+ /usr/bin/qemu-system-m68k
+ /usr/bin/qemu-system-microblaze
+ /usr/bin/qemu-system-microblazeel
+ /usr/bin/qemu-system-mips
+ /usr/bin/qemu-system-mips64
+ /usr/bin/qemu-system-mips64el
+ /usr/bin/qemu-system-mipsel
+ /usr/bin/qemu-system-ppc
+ /usr/bin/qemu-system-ppc64
+ /usr/bin/qemu-system-ppcemb
+ /usr/bin/qemu-system-s390x
+ /usr/bin/qemu-system-sh4
+ /usr/bin/qemu-system-sh4eb
+ /usr/bin/qemu-system-sparc
+ /usr/bin/qemu-system-sparc64
+ /usr/bin/qemu-system-x86_64
+ /usr/bin/qemu-system-xtensa
+ /usr/bin/qemu-system-xtensaeb
+ /usr/bin/ruby
+ /usr/bin/systemsettings
+ /usr/bin/tcc
+ /usr/bin/valgrind
+ /usr/lib/erlang/erts-*/bin/beam
+ /usr/lib/erlang/erts-*/bin/beam.smp
+ /usr/lib/ghc-*/ghc
+ /usr/lib/valgrind/cachegrind-amd64-linux
+ /usr/lib/valgrind/cachegrind-x86-linux
+ /usr/lib/valgrind/callgrind-amd64-linux
+ /usr/lib/valgrind/callgrind-x86-linux
+ /usr/lib/valgrind/drd-amd64-linux
+ /usr/lib/valgrind/drd-x86-linux
+ /usr/lib/valgrind/exp-bbv-amd64-linux
+ /usr/lib/valgrind/exp-bbv-x86-linux
+ /usr/lib/valgrind/exp-dhat-amd64-linux
+ /usr/lib/valgrind/exp-dhat-x86-linux
+ /usr/lib/valgrind/exp-sgcheck-amd64-linux
+ /usr/lib/valgrind/exp-sgcheck-x86-linux
+ /usr/lib/valgrind/helgrind-amd64-linux
+ /usr/lib/valgrind/helgrind-x86-linux
+ /usr/lib/valgrind/lackey-amd64-linux
+ /usr/lib/valgrind/lackey-x86-linux
+ /usr/lib/valgrind/massif-amd64-linux
+ /usr/lib/valgrind/massif-x86-linux
+ /usr/lib/valgrind/memcheck-amd64-linux
+ /usr/lib/valgrind/memcheck-x86-linux
+ /usr/lib/valgrind/none-amd64-linux
+ /usr/lib/valgrind/none-x86-linux
+ /usr/lib/xbmc/xbmc.bin
+ /usr/sbin/clamd
+ /usr/sbin/grub-probe
+ /usr/sbin/vbetool
+ "
+ # PAGEEXEC, MPROTECT, EMUTRAMP and RANDMMAP off
+ ['cpSmXer']='
+ /usr/bin/sbcl
+ '
+ # All off
+ ['cpsmxer']='
+ /usr/bin/wine
+ /usr/bin/wine-preloader
+ /usr/lib/jvm/java-6-openjdk/bin/java
+ /usr/lib/jvm/java-6-openjdk/bin/javac
+ /usr/lib/jvm/java-6-openjdk/jre/bin/java
+ /usr/lib/jvm/java-7-openjdk/bin/javac
+ /usr/lib/jvm/java-7-openjdk/jre/bin/java
+ '
+)
+
+echo Some programs do not work properly without deactivating some of the PaX
+echo features. Please close all instances of them if you want to change the
+echo configuration for the following binaries:
+
+for perm in ${!perms[@]}; do
+ for path in ${perms[$perm]}; do
+ [ -f $path ] && echo " * $path"
+ done
+done
+
+echo
+echo Continue writing PaX headers? \[Y/n\]
+
+read a
+
+case $a in
+ "Y"|"y"|"")
+ for perm in ${!perms[@]}; do
+ for path in ${perms[$perm]}; do
+ [ -f $path ] && {
+ echo $perm $path
+ paxctl -$perm $path
+ }
+ done
+ done
+ ;;
+ *)
+ exit 0
+ ;;
+esac
diff --git a/kernels/xe-guest-utilities/PKGBUILD b/kernels/xe-guest-utilities/PKGBUILD
index b866a6f58..a982f40d2 100755
--- a/kernels/xe-guest-utilities/PKGBUILD
+++ b/kernels/xe-guest-utilities/PKGBUILD
@@ -2,27 +2,27 @@
# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgname=xe-guest-utilities
-pkgver=6.0.0
-pkgrel=5
+pkgver=6.0.2
+pkgrel=1
pkgdesc="Citrix XenServer Tools"
arch=('i686' 'x86_64')
url="http://citrix.com/English/ps2/products/product.asp?contentID=683148&ntref=hp_nav_US"
license=('GPL' 'LGPL')
optdepends=('linux-libre: DomU kernel for x86_64'
'linux-libre-xen: DomU kernel for i686'
- 'kernel-libre-lts: DomU kernel for i686 (long time supported)')
+ 'linux-libre-lts-xen: DomU kernel for i686 (long time supported)')
makedepends=('rpmextract')
-source=(ftp://ftp.prz.edu.pl/pub/archlinux/archrak/src/xe-guest-utilities-${pkgver}-743.i386.rpm
- ftp://ftp.prz.edu.pl/pub/archlinux/archrak/src/xe-guest-utilities-xenstore-${pkgver}-743.i386.rpm
- ftp://ftp.prz.edu.pl/pub/archlinux/archrak/src/xe-guest-utilities-${pkgver}-743.x86_64.rpm
- ftp://ftp.prz.edu.pl/pub/archlinux/archrak/src/xe-guest-utilities-xenstore-${pkgver}-743.x86_64.rpm
+source=(ftp://ftp.prz.edu.pl/pub/archlinux/aur/src/xe-guest-utilities-${pkgver}-756.i386.rpm
+ ftp://ftp.prz.edu.pl/pub/archlinux/aur/src/xe-guest-utilities-xenstore-${pkgver}-756.i386.rpm
+ ftp://ftp.prz.edu.pl/pub/archlinux/aur/src/xe-guest-utilities-${pkgver}-756.x86_64.rpm
+ ftp://ftp.prz.edu.pl/pub/archlinux/aur/src/xe-guest-utilities-xenstore-${pkgver}-756.x86_64.rpm
xe-guest-utilities-parabola.patch
ip_address.patch)
-md5sums=('894d33028b2712650be324b7ba01c6c4'
- 'e100f97421ff522cb228aa749881a082'
- 'ffaf02afa2105d32e011a32c80921256'
- '9b9570b5cc27832df303c8ef9cd11d36'
+md5sums=('7f1b670b6fec6f55764bc19ead41b07d'
+ '7d9a2c9db65d76f93a5df709989915af'
+ '953e858c03570105ea855fc3b32d43ff'
+ '5cb44deb684f7069b05052ed92d0ac22'
'0d8a8ebe124d585a2b101150df8f5ff7'
'86b4a69b412f874bf5b4db8ac8858644')
diff --git a/kernels/xen-docs/PKGBUILD b/kernels/xen-docs/PKGBUILD
new file mode 100644
index 000000000..6d4782bbd
--- /dev/null
+++ b/kernels/xen-docs/PKGBUILD
@@ -0,0 +1,20 @@
+pkgname=xen-docs
+pkgver=4.2.0
+pkgrel=2
+pkgdesc="Xen 4 (docs)"
+arch=(i686 x86_64)
+url="http://xen.org/"
+license="GPL"
+depends=('markdown')
+conflicts=('xen4' 'xen3' 'xen-hv-tools' 'libxen4')
+
+
+source=(http://bits.xensource.com/oss-xen/release/${pkgver}/xen-${pkgver}.tar.gz)
+
+build() {
+ cd $srcdir/xen-${pkgver}
+ unset CFLAGS LDFLAGS
+ make PYTHON=python2 DESTDIR=$pkgdir install-docs
+ }
+
+md5sums=('f4f217969afc38f09251039966d91a87')
diff --git a/kernels/xen/09_xen b/kernels/xen/09_xen
index 094b7f427..42309149c 100755..100644
--- a/kernels/xen/09_xen
+++ b/kernels/xen/09_xen
@@ -1,69 +1,69 @@
#! /bin/sh -e
-if [ -f /usr/lib/grub/grub-mkconfig_lib ]; then
- . /usr/lib/grub/grub-mkconfig_lib
+if [ -f /usr/share/grub/grub-mkconfig_lib ]; then
+ . /usr/share/grub/grub-mkconfig_lib
else
# no grub file, so we notify and exit gracefully
- echo "Cannot find grub config file, exiting." >&2
- exit 0
+ echo "Cannot find grub config file, exiting." >&2
+ exit 0
fi
-XEN_HYPERVISOR_CMDLINE=
+XEN_HYPERVISOR_CMDLINE="xsave=1"
XEN_LINUX_CMDLINE="console=tty0"
[ -r /etc/xen/grub.conf ] && . /etc/xen/grub.conf
CLASS="--class gnu-linux --class gnu --class os"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
+ OS=GNU/Linux
else
- OS="${GRUB_DISTRIBUTOR}"
- CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}"
+ OS="${GRUB_DISTRIBUTOR}"
+ CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}"
fi
# loop-AES arranges things so that /dev/loop/X can be our root device, but
# the initrds that Linux uses don't like that.
case ${GRUB_DEVICE} in
- /dev/loop/*|/dev/loop[0-9])
- GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
- ;;
+ /dev/loop/*|/dev/loop[0-9])
+ GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
+ ;;
esac
if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
|| ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
|| [ "`grub-probe -t abstraction --device ${GRUB_DEVICE} | sed -e 's,.*\(lvm\).*,\1,'`" = "lvm" ] ; then
- LINUX_ROOT_DEVICE=${GRUB_DEVICE}
+ LINUX_ROOT_DEVICE=${GRUB_DEVICE}
else
- LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
+ LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
fi
xen_entry ()
{
- os="$1"
- xen_version="$2"
- version="$3"
- xen_args="$4"
- args="$5"
- printf "menuentry 'Xen %s / %s, with Linux %s' --class xen ${CLASS} {\n" "${xen_version}" "${os}" "${version}"
- save_default_entry | sed -e "s/^/\t/"
-
- if [ -z "${prepare_boot_cache}" ]; then
- prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"
- fi
- printf '%s\n' "${prepare_boot_cache}"
- cat << EOF
+ os="$1"
+ xen_version="$2"
+ version="$3"
+ xen_args="$4"
+ args="$5"
+ printf "menuentry 'Xen %s / %s, with Linux %s' --class xen ${CLASS} {\n" "${xen_version}" "${os}" "${version}"
+ save_default_entry | sed -e "s/^/\t/"
+
+ if [ -z "${prepare_boot_cache}" ]; then
+ prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"
+ fi
+ printf '%s\n' "${prepare_boot_cache}"
+ cat << EOF
echo '$(printf "Loading Xen %s ..." ${xen_version})'
multiboot ${rel_dirname}/${xen_basename} ${rel_dirname}/${xen_basename} ${xen_args}
echo $(printf "$(gettext "Loading Linux %s ...")" ${version})
module ${rel_dirname}/${basename} ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
EOF
- if test -n "${initrd}" ; then
- cat << EOF
+ if test -n "${initrd}" ; then
+ cat << EOF
echo "Loading initial ramdisk ..."
module ${rel_dirname}/${initrd}
EOF
- fi
- cat << EOF
+ fi
+ cat << EOF
}
EOF
}
@@ -74,50 +74,48 @@ done`
prepare_boot_cache=
while [ "x$xen_list" != "x" ] ; do
- xen=`version_find_latest $xen_list`
- echo "Found Xen hypervisor image: $xen" >&2
- xen_basename=`basename $xen`
- xen_dirname=`dirname $xen`
- rel_xen_dirname=`make_system_path_relative_to_its_root $xen_dirname`
- xen_version=`echo $xen_basename | sed -e "s,^[^0-9]*-,,g" | sed -e "s,.gz,,g"`
- alt_xen_version=`echo $xen_version | sed -e "s,\.old$,,g"`
-
- xen_configfiles=`grep -l 'CONFIG_XEN_PRIVILEGED_GUEST=y' /boot/config-*`
-
- list="/boot/vmlinuz-linux-libre";
-
- while [ "x$list" != "x" ] ; do
- linux=`version_find_latest $list`
- echo -e "\tFound linux image: $linux" >&2
- basename=`basename $linux`
- dirname=`dirname $linux`
- rel_dirname=`make_system_path_relative_to_its_root $dirname`
- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
- base_init=`echo $basename | sed -e "s,vmlinuz,initramfs,g"`
- alt_version="${base_init}-fallback"
- linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
- initrd=
-
- for i in "${base_init}.img"; do
- if test -e "${dirname}/${i}" ; then
- initrd="$i"
- break
- fi
- done
- if test -n "${initrd}" ; then
- echo -e "\tFound initrd image: ${dirname}/${initrd}" >&2
- else
+ xen=`version_find_latest $xen_list`
+ echo "Found Xen hypervisor image: $xen" >&2
+ xen_basename=`basename $xen`
+ xen_dirname=`dirname $xen`
+ rel_xen_dirname=`make_system_path_relative_to_its_root $xen_dirname`
+ xen_version=`echo $xen_basename | sed -e "s,^[^0-9]*-,,g" | sed -e "s,.gz,,g"`
+ alt_xen_version=`echo $xen_version | sed -e "s,\.old$,,g"`
+
+ list="/boot/vmlinuz-linux";
+
+ while [ "x$list" != "x" ] ; do
+ linux=`version_find_latest $list`
+ echo -e "\tFound linux image: $linux" >&2
+ basename=`basename $linux`
+ dirname=`dirname $linux`
+ rel_dirname=`make_system_path_relative_to_its_root $dirname`
+ version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
+ base_init=`echo $basename | sed -e "s,vmlinuz,initramfs,g"`
+ alt_version="${base_init}-fallback"
+ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+ initrd=
+
+ for i in "${base_init}.img"; do
+ if test -e "${dirname}/${i}" ; then
+ initrd="$i"
+ break
+ fi
+ done
+ if test -n "${initrd}" ; then
+ echo -e "\tFound initrd image: ${dirname}/${initrd}" >&2
+ else
# "UUID=" magic is parsed by initrds. Since there's no initrd, it can't work here.
- linux_root_device_thisversion=${GRUB_DEVICE}
- fi
+ linux_root_device_thisversion=${GRUB_DEVICE}
+ fi
- xen_entry "${OS}" "${xen_version}" "${version}" \
- "${XEN_HYPERVISOR_CMDLINE}" \
- "${XEN_LINUX_CMDLINE}"
+ xen_entry "${OS}" "${xen_version}" "${version}" \
+ "${XEN_HYPERVISOR_CMDLINE}" \
+ "${XEN_LINUX_CMDLINE}"
- list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
- done
+ list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
+ done
- xen_list=`echo $xen_list | tr ' ' '\n' | grep -vx $xen | tr '\n' ' '`
+ xen_list=`echo $xen_list | tr ' ' '\n' | grep -vx $xen | tr '\n' ' '`
done
diff --git a/kernels/xen/24341.patch b/kernels/xen/24341.patch
deleted file mode 100755
index 5554004d3..000000000
--- a/kernels/xen/24341.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/xen/arch/x86/x86_64/mmconfig_64.c 2011-10-20 15:05:49.000000000 -0200
-+++ b/xen/arch/x86/x86_64/mmconfig_64.c 2012-02-14 23:45:47.481729733 -0200
-@@ -23,7 +23,7 @@
- char __iomem *virt;
- };
- static struct mmcfg_virt *pci_mmcfg_virt;
--static int __initdata mmcfg_pci_segment_shift;
-+static unsigned int mmcfg_pci_segment_shift;
-
- static char __iomem *get_virt(unsigned int seg, unsigned bus)
- {
diff --git a/kernels/xen/24344.patch b/kernels/xen/24344.patch
deleted file mode 100755
index 642b90867..000000000
--- a/kernels/xen/24344.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/tools/libxc/xc_cpuid_x86.c 2011-10-20 15:05:42.000000000 -0200
-+++ b/tools/libxc/xc_cpuid_x86.c 2012-02-15 00:01:46.307514813 -0200
-@@ -42,23 +42,23 @@
- static void cpuid(const unsigned int *input, unsigned int *regs)
- {
- unsigned int count = (input[1] == XEN_CPUID_INPUT_UNUSED) ? 0 : input[1];
-- asm (
- #ifdef __i386__
-+/* Use the stack to avoid reg constraint failures with some gcc flags */
-+ asm (
- "push %%ebx; push %%edx\n\t"
--#else
-- "push %%rbx; push %%rdx\n\t"
--#endif
- "cpuid\n\t"
- "mov %%ebx,4(%4)\n\t"
- "mov %%edx,12(%4)\n\t"
--#ifdef __i386__
- "pop %%edx; pop %%ebx\n\t"
-+ : "=a" (regs[0]), "=c" (regs[2])
-+ : "0" (input[0]), "1" (count), "S" (regs)
-+ : "memory" );
- #else
-- "pop %%rdx; pop %%rbx\n\t"
-+ asm (
-+ "cpuid"
-+ : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3])
-+ : "0" (input[0]), "2" (count) );
- #endif
-- : "=a" (regs[0]), "=c" (regs[2])
-- : "0" (input[0]), "1" (count), "S" (regs)
-- : "memory" );
- }
diff --git a/kernels/xen/24345.patch b/kernels/xen/24345.patch
deleted file mode 100755
index e75a1b38c..000000000
--- a/kernels/xen/24345.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/tools/misc/xen-detect.c 2011-10-20 15:05:43.000000000 -0200
-+++ b/tools/misc/xen-detect.c 2012-02-15 00:05:55.524455578 -0200
-@@ -35,18 +35,21 @@
-
- static void cpuid(uint32_t idx, uint32_t *regs, int pv_context)
- {
-- asm volatile (
- #ifdef __i386__
--#define R(x) "%%e"#x"x"
--#else
--#define R(x) "%%r"#x"x"
--#endif
-- "push "R(a)"; push "R(b)"; push "R(c)"; push "R(d)"\n\t"
-+/* Use the stack to avoid reg constraint failures with some gcc flags */
-+ asm volatile (
-+ "push %%eax; push %%ebx; push %%ecx; push %%edx\n\t"
- "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid\n\t"
- "mov %%eax,(%2); mov %%ebx,4(%2)\n\t"
- "mov %%ecx,8(%2); mov %%edx,12(%2)\n\t"
-- "pop "R(d)"; pop "R(c)"; pop "R(b)"; pop "R(a)"\n\t"
-+ "pop %%edx; pop %%ecx; pop %%ebx; pop %%eax\n\t"
- : : "a" (idx), "c" (pv_context), "S" (regs) : "memory" );
-+#else
-+ asm volatile (
-+ "test %5,%5 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid\n\t"
-+ : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3])
-+ : "0" (idx), "1" (pv_context), "2" (0) );
-+#endif
- }
-
- static int check_for_xen(int pv_context)
diff --git a/kernels/xen/PKGBUILD b/kernels/xen/PKGBUILD
index c51ffeaa9..33a2dccb1 100755..100644
--- a/kernels/xen/PKGBUILD
+++ b/kernels/xen/PKGBUILD
@@ -1,104 +1,122 @@
-# Maintainer M0Rf30
-# Contributor WaxyMouthfeel
-# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+# Maintainer: Limao Luo <luolimao+AUR@gmail.com>
+# Contributor: Luceo
+# Contributor: Revellion
+
pkgname=xen
-pkgver=4.1.2
-pkgrel=3.1
-pkgdesc="Xen 4 (hypervisor and tools)"
+pkgver=4.2.0
+pkgrel=12
+pkgdesc="Xen Hypervisor & Tools"
arch=(i686 x86_64)
-url="http://xen.org/"
-license="GPL"
-
-if [[ $CARCH == "x86_64" ]]; then
- depends=('xz' 'bzip2' 'iproute' 'net-tools' 'bridge-utils' 'python2' 'sdl' 'zlib' 'e2fsprogs' 'bin86' 'pkgconfig' 'gnutls' 'lzo2' 'lib32-glibc')
-else
- depends=('xz' 'bzip2' 'iproute' 'net-tools' 'bridge-utils' 'python2' 'sdl' 'zlib' 'e2fsprogs' 'bin86' 'pkgconfig' 'gnutls' 'lzo2' 'glibc')
-fi
-
-optdepends=('xen-docs: Xen Official Documentation')
-makedepends=('dev86' 'ocaml-findlib' 'iasl')
-conflicts=('xen4' 'xen3' 'xen-hv-tools' 'libxen4')
-provides=('xen')
-backup=('etc/xen/xend-config.sxp' 'etc/xen/xend-pci-permissive.sxp' 'etc/xen/xend-pci-quirks.sxp')
-options=(!strip)
-optional=(xen-docs)
-source=(http://bits.xensource.com/oss-xen/release/${pkgver}/xen-${pkgver}.tar.gz
- 09_xen
- xen.patch
- parabolainit.patch
- dom0_xz_decompression.patch
- 24341.patch
- 24344.patch
- 24345.patch)
+url=http://xen.org
+license=(GPL)
+depends=(bin86 bluez bridge-utils glib2 gnutls libaio libjpeg-turbo libpng lzo2 sdl wget vde2 yajl)
+[[ "$CARCH" == "x86_64" ]] && depends+=(lib32-glibc)
+makedepends=(dev86 git iasl markdown ocaml-findlib)
+optdepends=('xen-docs: Official Xen Documentation')
+conflicts=(xen-4.2{,-testing-hg} xen-{gdbsx,hg-unstable,rc})
+backup=(etc/$pkgname/xend-{config,pci-{permissive,quirks}}.sxp etc/modules-load.d/$pkgname.conf)
+options=(!buildflags !emptydirs !strip)
+install=$pkgname.install
+source=(http://bits.xensource.com/oss-xen/release/$pkgver/$pkgname-$pkgver.tar.gz
+ 09_xen
+ archinit.patch
+ texi2html.patch
+ proc-xen.mount
+ var-lib-xenstored.mount
+ xenconsoled.service
+ xendomains.service
+ xendomU@.service
+ xenstored.service
+ $pkgname.conf)
+sha256sums=('43f4a086e4e0330145a27b7ace8365c42b5afbc95cefadafe067be91bd3e5cfb'
+ 'e8dd740c0f18ea41bb80afad36ca981669e6ab86eb3848fbb40f0dff3b8aa3e6'
+ '35900d3ae2f2cc27834b8a7cb11f134b582f01bde033598c407c8e58ad58fdb9'
+ '08e5bf65c833a608470ad118ce369e32f9c267e1787f2900c06708af321225e6'
+ '139eed988bfaf8edc8ccdfd0b668382bd63db48ce17be91776182a7e28e9d88c'
+ 'c19146931c6ab8e53092bd9b2ebbfda5c76fd22ad3b1d42dcda3dd1b61f123ff'
+ 'ba8f1c10b3f3df1f9fda0782a691fed67661e36f49be74471c86850639fee3ba'
+ '0bd45d9de6456c4f9adf32e726f2db3a3cd0423c1d161b442e8a1666d2e68e3f'
+ '1862a14607582d14247b74435dfb16411fd68904aa19e2a93c5e6ac301169d3c'
+ '0a1960fd51a2f4e8e856c7392e33cc9607ac4a80e9d68b316b6a4281f34728e0'
+ '50a9b7fd19e8beb1dea09755f07318f36be0b7ec53d3c9e74f3266a63e682c0c')
+sha512sums=('4fb56c79d722fb307bc657f16d02079c6636427e7650c4354193632d38d2d1db8e588f844ff0ca6e757c108ed639a528565ec9fc7c00bb4d5b6fbc9d122d8a70'
+ '23402f54e1a40c058566d6c0f18ac2e89ea85eea8bedf669f059e30ad76b3b90d81b7ff34d8e8c07ab4fea7f82ae32c80a66df2fd95fb3b296e982cdcc93d0b6'
+ '9ce0c009f055c9be42435be9eeeec980285cbef4fb52cbd8d81f76ae1e7760575b5c9f958e3d44612d2740eafa1e18ee48f30a5571f0c06bd031d4e102abb22f'
+ '562f12e723116c705fc9d0fd4a2afd382a93465be7f616d1e20e87daf39c11029fbc57ec46e38d3ff61c482fdc9ac4df9e07600a77515867d9da6f0faf3da7f9'
+ '6afdf16e32bb837faf6333334f86855a746f1f46fee9673a4fddc62eecf41f9856bc34397807203c6f5071f0b1ce74532214084042154585c0d39514450db25c'
+ '00e340f4d3635e3850ca24baea1da08467523c17815feb74161e18397b607fef904db2165fd9bf4632a6e8a6e37aeddad4e56965e1c99b5213c98b3f9afc6aad'
+ '27d7289a8bf6e15bddcb360287001429205b57ee4d791b0337328879ffd76b8e375e3c1dd0de0ab57dd4bd1e2a2bc1748c44cc05b2528632a3e6af60f626de9d'
+ 'f00034f8b826b828659a0177f0a6454113c625e69a817dfe32e461767f6643e0288bfc2a22d23358504240df627af6e3b8f5ffa0077e241e590b33d3f252e74c'
+ '31fefc739f0f0e568df03dcf9aa02e0265ff4fbf77e7ae62d6a318fcc34e87a0ffd3fc4b84ff8c9cc95511e2e74b7b61e6b5471cd0b3cd47ee0da86b1ea90268'
+ '87aceb1c646e49940bfbc47da85d7e20c9436449b152c0842b357033f66aba68a590f1d56c4a3f437d093047a611f28fd67d381692d9b21a582e598ecf1a72a2'
+ 'ccaa2ff82e4203b11e5dec9aeccac2e165721d8067e0094603ecaa7a70b78c9eb9e2287a32687883d26b6ceae6f8d2ad7636ddf949eb658637b3ceaa6999711b')
build() {
-
-
- cd $srcdir/xen-${pkgver}
-
- patch -p1 -i ../xen.patch
- patch -p1 -i ../parabolainit.patch
- patch -p1 -i ../dom0_xz_decompression.patch
- patch -p1 -i ../24341.patch
- patch -p1 -i ../24344.patch
- patch -p1 -i ../24345.patch
-
-unset CFLAGS LDFLAGS
-
-make PYTHON=python2 DESTDIR=$pkgdir install-xen
-make PYTHON=python2 DESTDIR=$pkgdir install-tools
-#make PYTHON=python2 DESTDIR=$pkgdir install-stubdom
-
- sed -i 's#XENDOM_CONFIG=/etc/sysconfig/xendomains#XENDOM_CONFIG=/etc/conf.d/xendomains#' $pkgdir/etc/init.d/xendomains
- sed -i "s#touch /var/lock/subsys/xend#mkdir -p /var/lock/subsys\n touch /var/lock/subsys/xend#" $pkgdir/etc/init.d/xend
-
- [ -d $pkgdir/usr/lib64 ] && ( cd $pkgdir/usr && cp -R lib64/* lib/ && rm -R lib64 )
- ( cd $pkgdir/etc && mv init.d rc.d ) || return 1
- rm -f $pkgdir/usr/share/man/man1/qemu-img.1* \
- $pkgdir/usr/share/man/man1/qemu.1*
- # First experiment to generate grub2.cfg entry
- mkdir -p $pkgdir/etc/grub.d
- chmod +x $srcdir/09_xen
- cp $srcdir/09_xen $pkgdir/etc/grub.d
-
- ############ kill unwanted stuff ############
-
-# stubdom: newlib
-rm -rf $pkgdir/usr/*-xen-elf
-
-# hypervisor symlinks
-rm -rf $pkgdir/boot/xen-4.1.gz
-rm -rf $pkgdir/boot/xen-4.gz
-rm -rf $pkgdir/boot/xen.gz
-
-# silly doc dir fun
-rm -fr $pkgdir/usr/share/doc/xen
-rm -rf $pkgdir/usr/share/doc/qemu
-
-# Pointless helper
-rm -f $pkgdir/usr/sbin/xen-python-path
-
-# qemu stuff (unused or available from upstream)
-rm -rf $pkgdir/usr/share/xen/man
-rm -rf $pkgdir/usr/bin/qemu-*-xen
-for file in bios.bin openbios-sparc32 openbios-sparc64 ppc_rom.bin \
- pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin \
- vgabios.bin vgabios-cirrus.bin video.x openbios-ppc bamboo.dtb
-do
- rm -f $pkgdir/usr/share/xen/qemu/$file
-done
-
-# adhere to Static Library Packaging Guidelines
-rm -rf $pkgdir/usr/lib/*.a
-
-
+ cd "$srcdir"/$pkgname-$pkgver/
+
+ patch -Np1 -i ../archinit.patch
+ patch -Np1 -i ../texi2html.patch
+
+ ./autogen.sh
+ ./configure PYTHON=/usr/bin/python2
}
-md5sums=('73561faf3c1b5e36ec5c089b5db848ad'
- '8d50beba46ffd89a3b959176245b676e'
- 'f149bae1a6b420e49c51b9f3a74338a4'
- '7a1ed81ecc828037724bb3280058c9fc'
- '4aebccf16b578ed97aa8bab945011f35'
- '1b0c05a555bc99fc8416dd52b6c6ae95'
- 'b6225be5bec3fe462f9166f9fde9c347'
- 'd282946a2873a78b2b2c3944571eb2fe')
+package() {
+ cd "$srcdir"/$pkgname-$pkgver/
+
+ make PYTHON=python2 DESTDIR="$pkgdir" install-xen install-tools
+ # stubdom won't build with multiple makethreads
+ make -j1 PYTHON=python2 DESTDIR="$pkgdir" install-stubdom
+
+ cd ../
+ for f in ${source[@]}; do
+ [[ $f =~ .mount || $f =~ .service ]] && install -Dm644 $f "$pkgdir"/usr/lib/systemd/system/$f
+ done
+ install -Dm644 $pkgname.conf "$pkgdir"/etc/modules-load.d/$pkgname.conf
+ install -Dm755 09_xen "$pkgdir"/etc/grub.d/09_xen
+
+ cd "$pkgdir"
+ sed -i ':XENDOM_CONFIG=/etc/:s:sysconfig/xendomains:conf.d/xendomains:' etc/init.d/xendomains
+ sed -i 's:touch /var/lock/subsys/xend:mkdir -p /var/lock/subsys\n &:' etc/init.d/xend
+
+ if [[ -d usr/lib64 ]]; then
+ cd usr/
+ cp -r lib64/* lib/
+ rm -rf lib64
+ fi
+
+ mv etc/{init,rc}.d
+
+ mv usr/local/etc/qemu/ etc/
+ rm -rf usr/local/share/
+ mv etc/rc.d/xendomains etc/xen/scripts/xendomains
+
+ ##### Kill unwanted stuff #####
+ # stubdom: newlib
+ rm -rf usr/*-xen-elf
+
+ # hypervisor symlinks
+ rm -f boot/xen{,-4,-4.2}.gz
+
+ # silly doc dir fun
+ rm -rf usr/share/doc/xen
+ rm -rf usr/share/doc/qemu
+
+ # Pointless helper
+ rm -f usr/sbin/xen-python-path
+
+ # qemu stuff (unused or available from upstream)
+ rm -rf usr/share/xen/man
+ rm -rf usr/bin/qemu-*-xen
+ for file in bios.bin openbios-sparc32 openbios-sparc64 ppc_rom.bin \
+ pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin \
+ vgabios.bin vgabios-cirrus.bin video.x openbios-ppc bamboo.dtb; do
+ rm -f usr/share/xen/qemu/$file
+ done
+
+ # adhere to Static Library Packaging Guidelines
+ rm -rf usr/lib/*.a
+
+ # Fix errors from deprecated xend
+ rm etc/udev/rules.d/xend.rules
+}
diff --git a/kernels/xen/archinit.patch b/kernels/xen/archinit.patch
new file mode 100644
index 000000000..f5bece6e2
--- /dev/null
+++ b/kernels/xen/archinit.patch
@@ -0,0 +1,450 @@
+--- a/tools/hotplug/Linux/init.d/xencommons 2011-07-03 03:08:44.953747064 -0700
++++ b/tools/hotplug/Linux/init.d/xencommons 2011-07-05 13:47:54.627029164 -0700
+@@ -17,6 +17,8 @@
+ # Short-Description: Start/stop xenstored and xenconsoled
+ # Description: Starts and stops the daemons neeeded for xl/xend
+ ### END INIT INFO
++. /etc/rc.conf
++. /etc/rc.d/functions
+
+ if [ -d /etc/sysconfig ]; then
+ xencommons_config=/etc/sysconfig
+@@ -26,7 +28,7 @@
+
+ test -f $xencommons_config/xencommons && . $xencommons_config/xencommons
+
+-XENCONSOLED_PIDFILE=/var/run/xenconsoled.pid
++XENCONSOLED_PIDFILE=/run/daemons/xenconsoled.pid
+ shopt -s extglob
+
+ # not running in Xen dom0 or domU
+@@ -69,7 +71,7 @@
+ modprobe pciback 2>/dev/null
+ modprobe xen-acpi-processor 2>/dev/null
+ modprobe blktap2 2>/dev/null || modprobe blktap 2>/dev/null
+- mkdir -p /var/run/xen
++ #mkdir -p /var/run/xen
+
+ if ! `xenstore-read -s / >/dev/null 2>&1`
+ then
+@@ -78,55 +80,66 @@
+ test -z "$XENSTORED_TRACE" || XENSTORED_ARGS=" -T /var/log/xen/xenstored-trace.log"
+
+ if [ -n "$XENSTORED" ] ; then
+- echo -n Starting $XENSTORED...
+- $XENSTORED --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
++ #echo -n Starting $XENSTORED...
++ stat_busy "Starting $XENSTORED"
++ $XENSTORED --pid-file /run/daemons/xenstored.pid $XENSTORED_ARGS
+ elif [ -x /usr/sbin/oxenstored ] ; then
+- echo -n Starting oxenstored...
+- /usr/sbin/oxenstored --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
++ #echo -n Starting oxenstored...
++ stat_busy "Starting oxenstored"
++ /usr/sbin/oxenstored --pid-file /run/daemons/xenstored.pid $XENSTORED_ARGS
+ elif [ -x /usr/sbin/xenstored ] ; then
+- echo -n Starting C xenstored...
+- /usr/sbin/xenstored --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
++ #echo -n Starting C xenstored...
++ stat_busy "Starting C xenstored"
++ /usr/sbin/xenstored --pid-file /run/daemons/xenstored.pid $XENSTORED_ARGS
+ else
+- echo "No xenstored found"
++ #echo "No xenstored found"
++ stat_fail
+ exit 1
+ fi
+
+ # Wait for xenstored to actually come up, timing out after 30 seconds
+ while [ $time -lt $timeout ] && ! `xenstore-read -s / >/dev/null 2>&1` ; do
+- echo -n .
++ #echo -n .
+ time=$(($time+1))
+ sleep 1
+ done
+- echo
++ #echo
+
+ # Exit if we timed out
+ if ! [ $time -lt $timeout ] ; then
+- echo Could not start xenstored
++ #echo Could not start xenstored
++ stat_fail
+ exit 1
+ fi
+
+- echo Setting domain 0 name...
++ #echo Setting domain 0 name...
++ stat_busy "Setting domain0 name"
+ xenstore-write "/local/domain/0/name" "Domain-0"
+ fi
+
+- echo Starting xenconsoled...
++ #echo Starting xenconsoled...
++ stat_busy "Starting xenconsoled"
+ test -z "$XENCONSOLED_TRACE" || XENCONSOLED_ARGS=" --log=$XENCONSOLED_TRACE"
+ xenconsoled --pid-file=$XENCONSOLED_PIDFILE $XENCONSOLED_ARGS
+ test -z "$XENBACKENDD_DEBUG" || XENBACKENDD_ARGS="-d"
+ test "`uname`" != "NetBSD" || xenbackendd $XENBACKENDD_ARGS
+- echo Starting QEMU as disk backend for dom0
++ #echo Starting QEMU as disk backend for dom0
++ stat_busy "Starting QEMU as disk backend for dom0"
+ test -z "$QEMU_XEN" && QEMU_XEN=/usr/lib/xen/bin/qemu-system-i386
+ $QEMU_XEN -xen-domid 0 -xen-attach -name dom0 -nographic -M xenpv -daemonize -monitor /dev/null
++ stat_done
+ }
+ do_stop () {
+- echo Stopping xenconsoled
++ #echo Stopping xenconsoled
++ stat_busy "Stopping xenconsoled"
+ if read 2>/dev/null <$XENCONSOLED_PIDFILE pid; then
+ kill $pid
+ while kill -9 $pid >/dev/null 2>&1; do sleep 0.1; done
+ rm -f $XENCONSOLED_PIDFILE
+ fi
++ stat_done
+
+- echo WARNING: Not stopping xenstored, as it cannot be restarted.
++ #echo WARNING: Not stopping xenstored, as it cannot be restarted.
+ }
+
+ case "$1" in
+--- a/tools/hotplug/Linux/init.d/xend 2011-07-03 03:08:44.953747064 -0700
++++ b/tools/hotplug/Linux/init.d/xend 2011-07-05 01:47:40.981951191 -0700
+@@ -18,6 +18,10 @@
+ # Description: Starts and stops the Xen control daemon.
+ ### END INIT INFO
+
++. /etc/rc.conf
++. /etc/rc.d/functions
++
++
+ shopt -s extglob
+
+ # Wait for Xend to be up
+@@ -37,23 +41,30 @@
+ case "$1" in
+ start)
+ if [ -z "`ps -C xenconsoled -o pid=`" ]; then
+- echo "xencommons should be started first."
++ printhl "xencommons should be started first."
+ exit 1
+ fi
+ # mkdir shouldn't be needed as most distros have this already created. Default to using subsys.
+ # See docs/misc/distro_mapping.txt
+- mkdir -p /var/lock
+- if [ -d /var/lock/subsys ] ; then
+- touch /var/lock/subsys/xend
++ if [ -d /run/lock/subsys ] ; then
++ touch /run/lock/subsys/xend
+ else
+- touch /var/lock/xend
++ touch /run/lock/xend
+ fi
++ stat_busy "Starting xend"
+ xend start
+ await_daemons_up
++ stat_done
++ add_daemon xend
+ ;;
++
++
+ stop)
++ stat_busy "Stopping xend"
+ xend stop
+- rm -f /var/lock/subsys/xend /var/lock/xend
++ rm -f /run/lock/xend /var/lock/xend
++ stat_done
++ rm_daemon xend
+ ;;
+ status)
+ xend status
+@@ -62,8 +73,10 @@
+ xend reload
+ ;;
+ restart|force-reload)
++ stat_busy "Restarting xend"
+ xend restart
+ await_daemons_up
++ stat_done
+ ;;
+ *)
+ # do not advertise unreasonable commands that there is no reason
+--- a/tools/hotplug/Linux/init.d/xendomains 2011-07-03 03:08:44.953747064 -0700
++++ b/tools/hotplug/Linux/init.d/xendomains 2011-07-05 13:46:36.208222760 -0700
+@@ -26,6 +26,9 @@
+ # Description: Start / stop domains automatically when domain 0
+ # boots / shuts down.
+ ### END INIT INFO
++. /etc/rc.conf
++. /etc/rc.d/functions
++
+
+ CMD=xm
+ $CMD list &> /dev/null
+@@ -46,93 +49,52 @@
+ exit 0
+ fi
+
+-# See docs/misc/distro_mapping.txt
+-if [ -d /var/lock/subsys ]; then
+- LOCKFILE=/var/lock/subsys/xendomains
+-else
+- LOCKFILE=/var/lock/xendomains
+-fi
+-
+-if [ -d /etc/sysconfig ]; then
+- XENDOM_CONFIG=/etc/sysconfig/xendomains
+-else
+- XENDOM_CONFIG=/etc/default/xendomains
+-fi
++LOCKFILE=/run/lock/xendomains
++XENDOM_CONFIG=/etc/default/xendomains
+
+-test -r $XENDOM_CONFIG || { echo "$XENDOM_CONFIG not existing";
++test -r $XENDOM_CONFIG || {
++ printhl "$XENDOM_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+ . $XENDOM_CONFIG
+
+-# Use the SUSE rc_ init script functions;
+-# emulate them on LSB, RH and other systems
+-if test -e /etc/rc.status; then
+- # SUSE rc script library
+- . /etc/rc.status
+-else
+- _cmd=$1
+- declare -a _SMSG
+- if test "${_cmd}" = "status"; then
++_cmd=$1
++declare -a _SMSG
++if test "${_cmd}" = "status"; then
+ _SMSG=(running dead dead unused unknown)
+ _RC_UNUSED=3
+- else
++else
+ _SMSG=(done failed failed missed failed skipped unused failed failed)
+ _RC_UNUSED=6
+- fi
+- if test -e /etc/init.d/functions; then
+- # REDHAT
+- . /etc/init.d/functions
+- echo_rc()
+- {
+- #echo -n " [${_SMSG[${_RC_RV}]}] "
+- if test ${_RC_RV} = 0; then
+- success " [${_SMSG[${_RC_RV}]}] "
+- else
+- failure " [${_SMSG[${_RC_RV}]}] "
+- fi
+- }
+- elif test -e /lib/lsb/init-functions; then
+- # LSB
+- . /lib/lsb/init-functions
+- if alias log_success_msg >/dev/null 2>/dev/null; then
+- echo_rc()
+- {
+- echo " [${_SMSG[${_RC_RV}]}] "
+- }
+- else
+- echo_rc()
+- {
+- if test ${_RC_RV} = 0; then
+- log_success_msg " [${_SMSG[${_RC_RV}]}] "
+- else
+- log_failure_msg " [${_SMSG[${_RC_RV}]}] "
+- fi
+- }
+- fi
+- else
+- # emulate it
+- echo_rc()
+- {
+- echo " [${_SMSG[${_RC_RV}]}] "
+- }
+- fi
+- rc_reset() { _RC_RV=0; }
+- rc_failed()
+- {
++fi
++
++
++
++echo_rc() {
++ echo
++ printhl "Return Status: ${_SMSG[${_RC_RV}]}"
++}
++
++
++rc_reset() { _RC_RV=0; }
++
++
++rc_failed() {
+ if test -z "$1"; then
+- _RC_RV=1;
++ _RC_RV=1;
+ elif test "$1" != "0"; then
+- _RC_RV=$1;
+- fi
++ _RC_RV=$1;
++ fi
+ return ${_RC_RV}
+- }
+- rc_check()
+- {
++}
++
++rc_check() {
+ return rc_failed $?
+- }
+- rc_status()
+- {
++}
++
++
++rc_status() {
+ rc_failed $?
+ if test "$1" = "-r"; then _RC_RV=0; shift; fi
+ if test "$1" = "-s"; then rc_failed 5; echo_rc; rc_failed 3; shift; fi
+@@ -140,26 +102,24 @@
+ if test "$1" = "-v"; then echo_rc; shift; fi
+ if test "$1" = "-r"; then _RC_RV=0; shift; fi
+ return ${_RC_RV}
+- }
+- rc_exit() { exit ${_RC_RV}; }
+- rc_active()
+- {
++}
++
++
++rc_exit() { exit ${_RC_RV}; }
++
++
++rc_active() {
+ if test -z "$RUNLEVEL"; then read RUNLEVEL REST < <(/sbin/runlevel); fi
+ if test -e /etc/init.d/S[0-9][0-9]${1}; then return 0; fi
+ return 1
+- }
+-fi
++}
+
+-if ! which usleep >&/dev/null
+-then
+- usleep()
+- {
+- if [ -n "$1" ]
+- then
+- sleep $(( $1 / 1000000 ))
+- fi
+- }
+-fi
++usleep() {
++ if [ -n "$1" ]
++ then
++ sleep $(( $1 / 1000000 ))
++ fi
++}
+
+ # Reset status of this service
+ rc_reset
+@@ -240,10 +200,12 @@
+ start()
+ {
+ if [ -f $LOCKFILE ]; then
+- echo -e "xendomains already running (lockfile exists)"
++ stat_busy "xendomains already running (lockfile exists)"
++ stat_fail
+ return;
+ fi
+
++ printhl "Starting Xen Domains"
+ saved_domains=" "
+ if [ "$XENDOMAINS_RESTORE" = "true" ] &&
+ contains_something "$XENDOMAINS_SAVE"
+@@ -304,6 +266,7 @@
+ fi
+ done
+ fi
++ add_daemon xendomains
+ }
+
+ all_zombies()
+@@ -357,7 +320,7 @@
+ if test "$XENDOMAINS_AUTO_ONLY" = "true"; then
+ rdnames
+ fi
+- echo -n "Shutting down Xen domains:"
++ printhl "Shutting down Xen domains"
+ name=;id=
+ while read LN; do
+ parseln "$LN" || continue
+@@ -470,6 +433,7 @@
+ rm -f $LOCKFILE
+
+ exec 2>&3
++ rm_daemon xendomains
+ }
+
+ check_domain_up()
+--- a/tools/hotplug/Linux/init.d/xen-watchdog 2011-07-03 03:08:44.957080397 -0700
++++ b/tools/hotplug/Linux/init.d/xen-watchdog 2011-07-05 13:20:22.515289867 -0700
+@@ -17,49 +17,32 @@
+ ### END INIT INFO
+ #
+
++. /etc/rc.conf
++. /etc/rc.d/functions
++
+ DAEMON=/usr/sbin/xenwatchdogd
+ base=$(basename $DAEMON)
++initname="xen-watchdog"
+
+-# Source function library.
+-if [ -e /etc/init.d/functions ] ; then
+- . /etc/init.d/functions
+-elif [ -e /lib/lsb/init-functions ] ; then
+- . /lib/lsb/init-functions
+- success () {
+- log_success_msg $*
+- }
+- failure () {
+- log_failure_msg $*
+- }
+-else
+- success () {
+- echo $*
+- }
+- failure () {
+- echo $*
+- }
+-fi
+
+ start() {
+ local r
+- echo -n $"Starting domain watchdog daemon: "
++ stat_busy "Starting domain watchdog daemon"
+
+ $DAEMON 30 15
+ r=$?
+- [ "$r" -eq 0 ] && success $"$base startup" || failure $"$base startup"
+- echo
++ [ "$r" -eq 0 ] && stat_done ; add_daemon $initname || stat_fail
+
+ return $r
+ }
+
+ stop() {
+ local r
+- echo -n $"Stopping domain watchdog daemon: "
++ stat_busy "Stopping domain watchdog daemon"
+
+ killall -USR1 $base 2>/dev/null
+ r=$?
+- [ "$r" -eq 0 ] && success $"$base stop" || failure $"$base stop"
+- echo
++ [ "$r" -eq 0 ] && stat_done ; rm_daemon $initname || stat_fail
+
+ return $r
+ }
diff --git a/kernels/xen/dom0_xz_decompression.patch b/kernels/xen/dom0_xz_decompression.patch
deleted file mode 100755
index 277ebcfd2..000000000
--- a/kernels/xen/dom0_xz_decompression.patch
+++ /dev/null
@@ -1,3528 +0,0 @@
-diff --git a/xen/common/Makefile b/xen/common/Makefile
---- a/xen/common/Makefile
-+++ b/xen/common/Makefile
-@@ -43,7 +43,7 @@
- obj-y += rbtree.o
- obj-y += lzo.o
-
--obj-$(CONFIG_X86) += decompress.o bunzip2.o unlzma.o unlzo.o
-+obj-$(CONFIG_X86) += decompress.o bunzip2.o unxz.o unlzma.o unlzo.o
-
- obj-$(perfc) += perfc.o
- obj-$(crash_debug) += gdbstub.o
-diff --git a/xen/common/decompress.c b/xen/common/decompress.c
---- a/xen/common/decompress.c
-+++ b/xen/common/decompress.c
-@@ -20,6 +20,9 @@
- if ( len >= 3 && !memcmp(inbuf, "\x42\x5a\x68", 3) )
- return bunzip2(inbuf, len, NULL, NULL, outbuf, NULL, error);
-
-+ if ( len >= 6 && !memcmp(inbuf, "\3757zXZ", 6) )
-+ return unxz(inbuf, len, NULL, NULL, outbuf, NULL, error);
-+
- if ( len >= 2 && !memcmp(inbuf, "\135\000", 2) )
- return unlzma(inbuf, len, NULL, NULL, outbuf, NULL, error);
-
-diff --git a/xen/common/decompress.h b/xen/common/decompress.h
---- a/xen/common/decompress.h
-+++ b/xen/common/decompress.h
-@@ -8,6 +8,7 @@
-
- #define STATIC
- #define INIT __init
-+#define INITDATA __initdata
-
- static void(*__initdata error)(const char *);
- #define set_error_fn(x) error = x;
-diff --git a/xen/common/unxz.c b/xen/common/unxz.c
-new file mode 100644
---- /dev/null
-+++ b/xen/common/unxz.c
-@@ -0,0 +1,306 @@
-+/*
-+ * Wrapper for decompressing XZ-compressed kernel, initramfs, and initrd
-+ *
-+ * Author: Lasse Collin <lasse.collin@tukaani.org>
-+ *
-+ * This file has been put into the public domain.
-+ * You can do whatever you want with this file.
-+ */
-+
-+/*
-+ * Important notes about in-place decompression
-+ *
-+ * At least on x86, the kernel is decompressed in place: the compressed data
-+ * is placed to the end of the output buffer, and the decompressor overwrites
-+ * most of the compressed data. There must be enough safety margin to
-+ * guarantee that the write position is always behind the read position.
-+ *
-+ * The safety margin for XZ with LZMA2 or BCJ+LZMA2 is calculated below.
-+ * Note that the margin with XZ is bigger than with Deflate (gzip)!
-+ *
-+ * The worst case for in-place decompression is that the beginning of
-+ * the file is compressed extremely well, and the rest of the file is
-+ * uncompressible. Thus, we must look for worst-case expansion when the
-+ * compressor is encoding uncompressible data.
-+ *
-+ * The structure of the .xz file in case of a compresed kernel is as follows.
-+ * Sizes (as bytes) of the fields are in parenthesis.
-+ *
-+ * Stream Header (12)
-+ * Block Header:
-+ * Block Header (8-12)
-+ * Compressed Data (N)
-+ * Block Padding (0-3)
-+ * CRC32 (4)
-+ * Index (8-20)
-+ * Stream Footer (12)
-+ *
-+ * Normally there is exactly one Block, but let's assume that there are
-+ * 2-4 Blocks just in case. Because Stream Header and also Block Header
-+ * of the first Block don't make the decompressor produce any uncompressed
-+ * data, we can ignore them from our calculations. Block Headers of possible
-+ * additional Blocks have to be taken into account still. With these
-+ * assumptions, it is safe to assume that the total header overhead is
-+ * less than 128 bytes.
-+ *
-+ * Compressed Data contains LZMA2 or BCJ+LZMA2 encoded data. Since BCJ
-+ * doesn't change the size of the data, it is enough to calculate the
-+ * safety margin for LZMA2.
-+ *
-+ * LZMA2 stores the data in chunks. Each chunk has a header whose size is
-+ * a maximum of 6 bytes, but to get round 2^n numbers, let's assume that
-+ * the maximum chunk header size is 8 bytes. After the chunk header, there
-+ * may be up to 64 KiB of actual payload in the chunk. Often the payload is
-+ * quite a bit smaller though; to be safe, let's assume that an average
-+ * chunk has only 32 KiB of payload.
-+ *
-+ * The maximum uncompressed size of the payload is 2 MiB. The minimum
-+ * uncompressed size of the payload is in practice never less than the
-+ * payload size itself. The LZMA2 format would allow uncompressed size
-+ * to be less than the payload size, but no sane compressor creates such
-+ * files. LZMA2 supports storing uncompressible data in uncompressed form,
-+ * so there's never a need to create payloads whose uncompressed size is
-+ * smaller than the compressed size.
-+ *
-+ * The assumption, that the uncompressed size of the payload is never
-+ * smaller than the payload itself, is valid only when talking about
-+ * the payload as a whole. It is possible that the payload has parts where
-+ * the decompressor consumes more input than it produces output. Calculating
-+ * the worst case for this would be tricky. Instead of trying to do that,
-+ * let's simply make sure that the decompressor never overwrites any bytes
-+ * of the payload which it is currently reading.
-+ *
-+ * Now we have enough information to calculate the safety margin. We need
-+ * - 128 bytes for the .xz file format headers;
-+ * - 8 bytes per every 32 KiB of uncompressed size (one LZMA2 chunk header
-+ * per chunk, each chunk having average payload size of 32 KiB); and
-+ * - 64 KiB (biggest possible LZMA2 chunk payload size) to make sure that
-+ * the decompressor never overwrites anything from the LZMA2 chunk
-+ * payload it is currently reading.
-+ *
-+ * We get the following formula:
-+ *
-+ * safety_margin = 128 + uncompressed_size * 8 / 32768 + 65536
-+ * = 128 + (uncompressed_size >> 12) + 65536
-+ *
-+ * For comparision, according to arch/x86/boot/compressed/misc.c, the
-+ * equivalent formula for Deflate is this:
-+ *
-+ * safety_margin = 18 + (uncompressed_size >> 12) + 32768
-+ *
-+ * Thus, when updating Deflate-only in-place kernel decompressor to
-+ * support XZ, the fixed overhead has to be increased from 18+32768 bytes
-+ * to 128+65536 bytes.
-+ */
-+
-+#include "decompress.h"
-+
-+#define XZ_EXTERN STATIC
-+
-+/*
-+ * For boot time use, we enable only the BCJ filter of the current
-+ * architecture or none if no BCJ filter is available for the architecture.
-+ */
-+#ifdef CONFIG_X86
-+# define XZ_DEC_X86
-+#endif
-+#ifdef CONFIG_PPC
-+# define XZ_DEC_POWERPC
-+#endif
-+#ifdef CONFIG_ARM
-+# define XZ_DEC_ARM
-+#endif
-+#ifdef CONFIG_IA64
-+# define XZ_DEC_IA64
-+#endif
-+#ifdef CONFIG_SPARC
-+# define XZ_DEC_SPARC
-+#endif
-+
-+/*
-+ * This will get the basic headers so that memeq() and others
-+ * can be defined.
-+ */
-+#include "xz/private.h"
-+
-+/*
-+ * memeq and memzero are not used much and any remotely sane implementation
-+ * is fast enough. memcpy/memmove speed matters in multi-call mode, but
-+ * the kernel image is decompressed in single-call mode, in which only
-+ * memcpy speed can matter and only if there is a lot of uncompressible data
-+ * (LZMA2 stores uncompressible chunks in uncompressed form). Thus, the
-+ * functions below should just be kept small; it's probably not worth
-+ * optimizing for speed.
-+ */
-+
-+#ifndef memeq
-+#define memeq(p1, p2, sz) (memcmp(p1, p2, sz) == 0)
-+#endif
-+
-+#ifndef memzero
-+#define memzero(p, sz) memset(p, 0, sz)
-+#endif
-+
-+#include "xz/crc32.c"
-+#include "xz/dec_stream.c"
-+#include "xz/dec_lzma2.c"
-+#include "xz/dec_bcj.c"
-+
-+/* Size of the input and output buffers in multi-call mode */
-+#define XZ_IOBUF_SIZE 4096
-+
-+/*
-+ * This function implements the API defined in <linux/decompress/generic.h>.
-+ *
-+ * This wrapper will automatically choose single-call or multi-call mode
-+ * of the native XZ decoder API. The single-call mode can be used only when
-+ * both input and output buffers are available as a single chunk, i.e. when
-+ * fill() and flush() won't be used.
-+ */
-+STATIC int INIT unxz(unsigned char *in, unsigned int in_size,
-+ int (*fill)(void *dest, unsigned int size),
-+ int (*flush)(void *src, unsigned int size),
-+ unsigned char *out, unsigned int *in_used,
-+ void (*error_fn)(const char *x))
-+{
-+ struct xz_buf b;
-+ struct xz_dec *s;
-+ enum xz_ret ret;
-+ bool_t must_free_in = false;
-+
-+ set_error_fn(error_fn);
-+
-+ xz_crc32_init();
-+
-+ if (in_used != NULL)
-+ *in_used = 0;
-+
-+ if (fill == NULL && flush == NULL)
-+ s = xz_dec_init(XZ_SINGLE, 0);
-+ else
-+ s = xz_dec_init(XZ_DYNALLOC, (uint32_t)-1);
-+
-+ if (s == NULL)
-+ goto error_alloc_state;
-+
-+ if (flush == NULL) {
-+ b.out = out;
-+ b.out_size = (size_t)-1;
-+ } else {
-+ b.out_size = XZ_IOBUF_SIZE;
-+ b.out = malloc(XZ_IOBUF_SIZE);
-+ if (b.out == NULL)
-+ goto error_alloc_out;
-+ }
-+
-+ if (in == NULL) {
-+ must_free_in = true;
-+ in = malloc(XZ_IOBUF_SIZE);
-+ if (in == NULL)
-+ goto error_alloc_in;
-+ }
-+
-+ b.in = in;
-+ b.in_pos = 0;
-+ b.in_size = in_size;
-+ b.out_pos = 0;
-+
-+ if (fill == NULL && flush == NULL) {
-+ ret = xz_dec_run(s, &b);
-+ } else {
-+ do {
-+ if (b.in_pos == b.in_size && fill != NULL) {
-+ if (in_used != NULL)
-+ *in_used += b.in_pos;
-+
-+ b.in_pos = 0;
-+
-+ in_size = fill(in, XZ_IOBUF_SIZE);
-+ if (in_size < 0) {
-+ /*
-+ * This isn't an optimal error code
-+ * but it probably isn't worth making
-+ * a new one either.
-+ */
-+ ret = XZ_BUF_ERROR;
-+ break;
-+ }
-+
-+ b.in_size = in_size;
-+ }
-+
-+ ret = xz_dec_run(s, &b);
-+
-+ if (flush != NULL && (b.out_pos == b.out_size
-+ || (ret != XZ_OK && b.out_pos > 0))) {
-+ /*
-+ * Setting ret here may hide an error
-+ * returned by xz_dec_run(), but probably
-+ * it's not too bad.
-+ */
-+ if (flush(b.out, b.out_pos) != (int)b.out_pos)
-+ ret = XZ_BUF_ERROR;
-+
-+ b.out_pos = 0;
-+ }
-+ } while (ret == XZ_OK);
-+
-+ if (must_free_in)
-+ free(in);
-+
-+ if (flush != NULL)
-+ free(b.out);
-+ }
-+
-+ if (in_used != NULL)
-+ *in_used += b.in_pos;
-+
-+ xz_dec_end(s);
-+
-+ switch (ret) {
-+ case XZ_STREAM_END:
-+ return 0;
-+
-+ case XZ_MEM_ERROR:
-+ /* This can occur only in multi-call mode. */
-+ error("XZ decompressor ran out of memory");
-+ break;
-+
-+ case XZ_FORMAT_ERROR:
-+ error("Input is not in the XZ format (wrong magic bytes)");
-+ break;
-+
-+ case XZ_OPTIONS_ERROR:
-+ error("Input was encoded with settings that are not "
-+ "supported by this XZ decoder");
-+ break;
-+
-+ case XZ_DATA_ERROR:
-+ case XZ_BUF_ERROR:
-+ error("XZ-compressed data is corrupt");
-+ break;
-+
-+ default:
-+ error("Bug in the XZ decompressor");
-+ break;
-+ }
-+
-+ return -1;
-+
-+error_alloc_in:
-+ if (flush != NULL)
-+ free(b.out);
-+
-+error_alloc_out:
-+ xz_dec_end(s);
-+
-+error_alloc_state:
-+ error("XZ decompressor ran out of memory");
-+ return -1;
-+}
-+
-+/*
-+ * This macro is used by architecture-specific files to decompress
-+ * the kernel image.
-+ */
-+#define decompress unxz
-diff --git a/xen/common/xz/crc32.c b/xen/common/xz/crc32.c
-new file mode 100644
---- /dev/null
-+++ b/xen/common/xz/crc32.c
-@@ -0,0 +1,51 @@
-+/*
-+ * CRC32 using the polynomial from IEEE-802.3
-+ *
-+ * Authors: Lasse Collin <lasse.collin@tukaani.org>
-+ * Igor Pavlov <http://7-zip.org/>
-+ *
-+ * This file has been put into the public domain.
-+ * You can do whatever you want with this file.
-+ */
-+
-+/*
-+ * This is not the fastest implementation, but it is pretty compact.
-+ * The fastest versions of xz_crc32() on modern CPUs without hardware
-+ * accelerated CRC instruction are 3-5 times as fast as this version,
-+ * but they are bigger and use more memory for the lookup table.
-+ */
-+
-+#include "private.h"
-+
-+XZ_EXTERN uint32_t INITDATA xz_crc32_table[256];
-+
-+XZ_EXTERN void INIT xz_crc32_init(void)
-+{
-+ const uint32_t poly = 0xEDB88320;
-+
-+ uint32_t i;
-+ uint32_t j;
-+ uint32_t r;
-+
-+ for (i = 0; i < 256; ++i) {
-+ r = i;
-+ for (j = 0; j < 8; ++j)
-+ r = (r >> 1) ^ (poly & ~((r & 1) - 1));
-+
-+ xz_crc32_table[i] = r;
-+ }
-+
-+ return;
-+}
-+
-+XZ_EXTERN uint32_t INIT xz_crc32(const uint8_t *buf, size_t size, uint32_t crc)
-+{
-+ crc = ~crc;
-+
-+ while (size != 0) {
-+ crc = xz_crc32_table[*buf++ ^ (crc & 0xFF)] ^ (crc >> 8);
-+ --size;
-+ }
-+
-+ return ~crc;
-+}
-diff --git a/xen/common/xz/dec_bcj.c b/xen/common/xz/dec_bcj.c
-new file mode 100644
---- /dev/null
-+++ b/xen/common/xz/dec_bcj.c
-@@ -0,0 +1,562 @@
-+/*
-+ * Branch/Call/Jump (BCJ) filter decoders
-+ *
-+ * Authors: Lasse Collin <lasse.collin@tukaani.org>
-+ * Igor Pavlov <http://7-zip.org/>
-+ *
-+ * This file has been put into the public domain.
-+ * You can do whatever you want with this file.
-+ */
-+
-+#include "private.h"
-+
-+/*
-+ * The rest of the file is inside this ifdef. It makes things a little more
-+ * convenient when building without support for any BCJ filters.
-+ */
-+#ifdef XZ_DEC_BCJ
-+
-+struct xz_dec_bcj {
-+ /* Type of the BCJ filter being used */
-+ enum {
-+ BCJ_X86 = 4, /* x86 or x86-64 */
-+ BCJ_POWERPC = 5, /* Big endian only */
-+ BCJ_IA64 = 6, /* Big or little endian */
-+ BCJ_ARM = 7, /* Little endian only */
-+ BCJ_ARMTHUMB = 8, /* Little endian only */
-+ BCJ_SPARC = 9 /* Big or little endian */
-+ } type;
-+
-+ /*
-+ * Return value of the next filter in the chain. We need to preserve
-+ * this information across calls, because we must not call the next
-+ * filter anymore once it has returned XZ_STREAM_END.
-+ */
-+ enum xz_ret ret;
-+
-+ /* True if we are operating in single-call mode. */
-+ bool_t single_call;
-+
-+ /*
-+ * Absolute position relative to the beginning of the uncompressed
-+ * data (in a single .xz Block). We care only about the lowest 32
-+ * bits so this doesn't need to be uint64_t even with big files.
-+ */
-+ uint32_t pos;
-+
-+ /* x86 filter state */
-+ uint32_t x86_prev_mask;
-+
-+ /* Temporary space to hold the variables from struct xz_buf */
-+ uint8_t *out;
-+ size_t out_pos;
-+ size_t out_size;
-+
-+ struct {
-+ /* Amount of already filtered data in the beginning of buf */
-+ size_t filtered;
-+
-+ /* Total amount of data currently stored in buf */
-+ size_t size;
-+
-+ /*
-+ * Buffer to hold a mix of filtered and unfiltered data. This
-+ * needs to be big enough to hold Alignment + 2 * Look-ahead:
-+ *
-+ * Type Alignment Look-ahead
-+ * x86 1 4
-+ * PowerPC 4 0
-+ * IA-64 16 0
-+ * ARM 4 0
-+ * ARM-Thumb 2 2
-+ * SPARC 4 0
-+ */
-+ uint8_t buf[16];
-+ } temp;
-+};
-+
-+#ifdef XZ_DEC_X86
-+/*
-+ * This is used to test the most significant byte of a memory address
-+ * in an x86 instruction.
-+ */
-+static inline int INIT bcj_x86_test_msbyte(uint8_t b)
-+{
-+ return b == 0x00 || b == 0xFF;
-+}
-+
-+static size_t INIT bcj_x86(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
-+{
-+ static /*const*/ bool_t INITDATA mask_to_allowed_status[8]
-+ = { true, true, true, false, true, false, false, false };
-+
-+ static /*const*/ uint8_t INITDATA mask_to_bit_num[8]
-+ = { 0, 1, 2, 2, 3, 3, 3, 3 };
-+
-+ size_t i;
-+ size_t prev_pos = (size_t)-1;
-+ uint32_t prev_mask = s->x86_prev_mask;
-+ uint32_t src;
-+ uint32_t dest;
-+ uint32_t j;
-+ uint8_t b;
-+
-+ if (size <= 4)
-+ return 0;
-+
-+ size -= 4;
-+ for (i = 0; i < size; ++i) {
-+ if ((buf[i] & 0xFE) != 0xE8)
-+ continue;
-+
-+ prev_pos = i - prev_pos;
-+ if (prev_pos > 3) {
-+ prev_mask = 0;
-+ } else {
-+ prev_mask = (prev_mask << (prev_pos - 1)) & 7;
-+ if (prev_mask != 0) {
-+ b = buf[i + 4 - mask_to_bit_num[prev_mask]];
-+ if (!mask_to_allowed_status[prev_mask]
-+ || bcj_x86_test_msbyte(b)) {
-+ prev_pos = i;
-+ prev_mask = (prev_mask << 1) | 1;
-+ continue;
-+ }
-+ }
-+ }
-+
-+ prev_pos = i;
-+
-+ if (bcj_x86_test_msbyte(buf[i + 4])) {
-+ src = get_unaligned_le32(buf + i + 1);
-+ while (true) {
-+ dest = src - (s->pos + (uint32_t)i + 5);
-+ if (prev_mask == 0)
-+ break;
-+
-+ j = mask_to_bit_num[prev_mask] * 8;
-+ b = (uint8_t)(dest >> (24 - j));
-+ if (!bcj_x86_test_msbyte(b))
-+ break;
-+
-+ src = dest ^ (((uint32_t)1 << (32 - j)) - 1);
-+ }
-+
-+ dest &= 0x01FFFFFF;
-+ dest |= (uint32_t)0 - (dest & 0x01000000);
-+ put_unaligned_le32(dest, buf + i + 1);
-+ i += 4;
-+ } else {
-+ prev_mask = (prev_mask << 1) | 1;
-+ }
-+ }
-+
-+ prev_pos = i - prev_pos;
-+ s->x86_prev_mask = prev_pos > 3 ? 0 : prev_mask << (prev_pos - 1);
-+ return i;
-+}
-+#endif
-+
-+#ifdef XZ_DEC_POWERPC
-+static size_t INIT bcj_powerpc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
-+{
-+ size_t i;
-+ uint32_t instr;
-+
-+ for (i = 0; i + 4 <= size; i += 4) {
-+ instr = get_unaligned_be32(buf + i);
-+ if ((instr & 0xFC000003) == 0x48000001) {
-+ instr &= 0x03FFFFFC;
-+ instr -= s->pos + (uint32_t)i;
-+ instr &= 0x03FFFFFC;
-+ instr |= 0x48000001;
-+ put_unaligned_be32(instr, buf + i);
-+ }
-+ }
-+
-+ return i;
-+}
-+#endif
-+
-+#ifdef XZ_DEC_IA64
-+static size_t INIT bcj_ia64(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
-+{
-+ static const uint8_t branch_table[32] = {
-+ 0, 0, 0, 0, 0, 0, 0, 0,
-+ 0, 0, 0, 0, 0, 0, 0, 0,
-+ 4, 4, 6, 6, 0, 0, 7, 7,
-+ 4, 4, 0, 0, 4, 4, 0, 0
-+ };
-+
-+ /*
-+ * The local variables take a little bit stack space, but it's less
-+ * than what LZMA2 decoder takes, so it doesn't make sense to reduce
-+ * stack usage here without doing that for the LZMA2 decoder too.
-+ */
-+
-+ /* Loop counters */
-+ size_t i;
-+ size_t j;
-+
-+ /* Instruction slot (0, 1, or 2) in the 128-bit instruction word */
-+ uint32_t slot;
-+
-+ /* Bitwise offset of the instruction indicated by slot */
-+ uint32_t bit_pos;
-+
-+ /* bit_pos split into byte and bit parts */
-+ uint32_t byte_pos;
-+ uint32_t bit_res;
-+
-+ /* Address part of an instruction */
-+ uint32_t addr;
-+
-+ /* Mask used to detect which instructions to convert */
-+ uint32_t mask;
-+
-+ /* 41-bit instruction stored somewhere in the lowest 48 bits */
-+ uint64_t instr;
-+
-+ /* Instruction normalized with bit_res for easier manipulation */
-+ uint64_t norm;
-+
-+ for (i = 0; i + 16 <= size; i += 16) {
-+ mask = branch_table[buf[i] & 0x1F];
-+ for (slot = 0, bit_pos = 5; slot < 3; ++slot, bit_pos += 41) {
-+ if (((mask >> slot) & 1) == 0)
-+ continue;
-+
-+ byte_pos = bit_pos >> 3;
-+ bit_res = bit_pos & 7;
-+ instr = 0;
-+ for (j = 0; j < 6; ++j)
-+ instr |= (uint64_t)(buf[i + j + byte_pos])
-+ << (8 * j);
-+
-+ norm = instr >> bit_res;
-+
-+ if (((norm >> 37) & 0x0F) == 0x05
-+ && ((norm >> 9) & 0x07) == 0) {
-+ addr = (norm >> 13) & 0x0FFFFF;
-+ addr |= ((uint32_t)(norm >> 36) & 1) << 20;
-+ addr <<= 4;
-+ addr -= s->pos + (uint32_t)i;
-+ addr >>= 4;
-+
-+ norm &= ~((uint64_t)0x8FFFFF << 13);
-+ norm |= (uint64_t)(addr & 0x0FFFFF) << 13;
-+ norm |= (uint64_t)(addr & 0x100000)
-+ << (36 - 20);
-+
-+ instr &= (1 << bit_res) - 1;
-+ instr |= norm << bit_res;
-+
-+ for (j = 0; j < 6; j++)
-+ buf[i + j + byte_pos]
-+ = (uint8_t)(instr >> (8 * j));
-+ }
-+ }
-+ }
-+
-+ return i;
-+}
-+#endif
-+
-+#ifdef XZ_DEC_ARM
-+static size_t INIT bcj_arm(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
-+{
-+ size_t i;
-+ uint32_t addr;
-+
-+ for (i = 0; i + 4 <= size; i += 4) {
-+ if (buf[i + 3] == 0xEB) {
-+ addr = (uint32_t)buf[i] | ((uint32_t)buf[i + 1] << 8)
-+ | ((uint32_t)buf[i + 2] << 16);
-+ addr <<= 2;
-+ addr -= s->pos + (uint32_t)i + 8;
-+ addr >>= 2;
-+ buf[i] = (uint8_t)addr;
-+ buf[i + 1] = (uint8_t)(addr >> 8);
-+ buf[i + 2] = (uint8_t)(addr >> 16);
-+ }
-+ }
-+
-+ return i;
-+}
-+#endif
-+
-+#ifdef XZ_DEC_ARMTHUMB
-+static size_t INIT bcj_armthumb(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
-+{
-+ size_t i;
-+ uint32_t addr;
-+
-+ for (i = 0; i + 4 <= size; i += 2) {
-+ if ((buf[i + 1] & 0xF8) == 0xF0
-+ && (buf[i + 3] & 0xF8) == 0xF8) {
-+ addr = (((uint32_t)buf[i + 1] & 0x07) << 19)
-+ | ((uint32_t)buf[i] << 11)
-+ | (((uint32_t)buf[i + 3] & 0x07) << 8)
-+ | (uint32_t)buf[i + 2];
-+ addr <<= 1;
-+ addr -= s->pos + (uint32_t)i + 4;
-+ addr >>= 1;
-+ buf[i + 1] = (uint8_t)(0xF0 | ((addr >> 19) & 0x07));
-+ buf[i] = (uint8_t)(addr >> 11);
-+ buf[i + 3] = (uint8_t)(0xF8 | ((addr >> 8) & 0x07));
-+ buf[i + 2] = (uint8_t)addr;
-+ i += 2;
-+ }
-+ }
-+
-+ return i;
-+}
-+#endif
-+
-+#ifdef XZ_DEC_SPARC
-+static size_t INIT bcj_sparc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
-+{
-+ size_t i;
-+ uint32_t instr;
-+
-+ for (i = 0; i + 4 <= size; i += 4) {
-+ instr = get_unaligned_be32(buf + i);
-+ if ((instr >> 22) == 0x100 || (instr >> 22) == 0x1FF) {
-+ instr <<= 2;
-+ instr -= s->pos + (uint32_t)i;
-+ instr >>= 2;
-+ instr = ((uint32_t)0x40000000 - (instr & 0x400000))
-+ | 0x40000000 | (instr & 0x3FFFFF);
-+ put_unaligned_be32(instr, buf + i);
-+ }
-+ }
-+
-+ return i;
-+}
-+#endif
-+
-+/*
-+ * Apply the selected BCJ filter. Update *pos and s->pos to match the amount
-+ * of data that got filtered.
-+ *
-+ * NOTE: This is implemented as a switch statement to avoid using function
-+ * pointers, which could be problematic in the kernel boot code, which must
-+ * avoid pointers to static data (at least on x86).
-+ */
-+static void INIT bcj_apply(struct xz_dec_bcj *s,
-+ uint8_t *buf, size_t *pos, size_t size)
-+{
-+ size_t filtered;
-+
-+ buf += *pos;
-+ size -= *pos;
-+
-+ switch (s->type) {
-+#ifdef XZ_DEC_X86
-+ case BCJ_X86:
-+ filtered = bcj_x86(s, buf, size);
-+ break;
-+#endif
-+#ifdef XZ_DEC_POWERPC
-+ case BCJ_POWERPC:
-+ filtered = bcj_powerpc(s, buf, size);
-+ break;
-+#endif
-+#ifdef XZ_DEC_IA64
-+ case BCJ_IA64:
-+ filtered = bcj_ia64(s, buf, size);
-+ break;
-+#endif
-+#ifdef XZ_DEC_ARM
-+ case BCJ_ARM:
-+ filtered = bcj_arm(s, buf, size);
-+ break;
-+#endif
-+#ifdef XZ_DEC_ARMTHUMB
-+ case BCJ_ARMTHUMB:
-+ filtered = bcj_armthumb(s, buf, size);
-+ break;
-+#endif
-+#ifdef XZ_DEC_SPARC
-+ case BCJ_SPARC:
-+ filtered = bcj_sparc(s, buf, size);
-+ break;
-+#endif
-+ default:
-+ /* Never reached but silence compiler warnings. */
-+ filtered = 0;
-+ break;
-+ }
-+
-+ *pos += filtered;
-+ s->pos += filtered;
-+}
-+
-+/*
-+ * Flush pending filtered data from temp to the output buffer.
-+ * Move the remaining mixture of possibly filtered and unfiltered
-+ * data to the beginning of temp.
-+ */
-+static void INIT bcj_flush(struct xz_dec_bcj *s, struct xz_buf *b)
-+{
-+ size_t copy_size;
-+
-+ copy_size = min_t(size_t, s->temp.filtered, b->out_size - b->out_pos);
-+ memcpy(b->out + b->out_pos, s->temp.buf, copy_size);
-+ b->out_pos += copy_size;
-+
-+ s->temp.filtered -= copy_size;
-+ s->temp.size -= copy_size;
-+ memmove(s->temp.buf, s->temp.buf + copy_size, s->temp.size);
-+}
-+
-+/*
-+ * The BCJ filter functions are primitive in sense that they process the
-+ * data in chunks of 1-16 bytes. To hide this issue, this function does
-+ * some buffering.
-+ */
-+XZ_EXTERN enum xz_ret INIT xz_dec_bcj_run(struct xz_dec_bcj *s,
-+ struct xz_dec_lzma2 *lzma2,
-+ struct xz_buf *b)
-+{
-+ size_t out_start;
-+
-+ /*
-+ * Flush pending already filtered data to the output buffer. Return
-+ * immediatelly if we couldn't flush everything, or if the next
-+ * filter in the chain had already returned XZ_STREAM_END.
-+ */
-+ if (s->temp.filtered > 0) {
-+ bcj_flush(s, b);
-+ if (s->temp.filtered > 0)
-+ return XZ_OK;
-+
-+ if (s->ret == XZ_STREAM_END)
-+ return XZ_STREAM_END;
-+ }
-+
-+ /*
-+ * If we have more output space than what is currently pending in
-+ * temp, copy the unfiltered data from temp to the output buffer
-+ * and try to fill the output buffer by decoding more data from the
-+ * next filter in the chain. Apply the BCJ filter on the new data
-+ * in the output buffer. If everything cannot be filtered, copy it
-+ * to temp and rewind the output buffer position accordingly.
-+ */
-+ if (s->temp.size < b->out_size - b->out_pos) {
-+ out_start = b->out_pos;
-+ memcpy(b->out + b->out_pos, s->temp.buf, s->temp.size);
-+ b->out_pos += s->temp.size;
-+
-+ s->ret = xz_dec_lzma2_run(lzma2, b);
-+ if (s->ret != XZ_STREAM_END
-+ && (s->ret != XZ_OK || s->single_call))
-+ return s->ret;
-+
-+ bcj_apply(s, b->out, &out_start, b->out_pos);
-+
-+ /*
-+ * As an exception, if the next filter returned XZ_STREAM_END,
-+ * we can do that too, since the last few bytes that remain
-+ * unfiltered are meant to remain unfiltered.
-+ */
-+ if (s->ret == XZ_STREAM_END)
-+ return XZ_STREAM_END;
-+
-+ s->temp.size = b->out_pos - out_start;
-+ b->out_pos -= s->temp.size;
-+ memcpy(s->temp.buf, b->out + b->out_pos, s->temp.size);
-+ }
-+
-+ /*
-+ * If we have unfiltered data in temp, try to fill by decoding more
-+ * data from the next filter. Apply the BCJ filter on temp. Then we
-+ * hopefully can fill the actual output buffer by copying filtered
-+ * data from temp. A mix of filtered and unfiltered data may be left
-+ * in temp; it will be taken care on the next call to this function.
-+ */
-+ if (s->temp.size > 0) {
-+ /* Make b->out{,_pos,_size} temporarily point to s->temp. */
-+ s->out = b->out;
-+ s->out_pos = b->out_pos;
-+ s->out_size = b->out_size;
-+ b->out = s->temp.buf;
-+ b->out_pos = s->temp.size;
-+ b->out_size = sizeof(s->temp.buf);
-+
-+ s->ret = xz_dec_lzma2_run(lzma2, b);
-+
-+ s->temp.size = b->out_pos;
-+ b->out = s->out;
-+ b->out_pos = s->out_pos;
-+ b->out_size = s->out_size;
-+
-+ if (s->ret != XZ_OK && s->ret != XZ_STREAM_END)
-+ return s->ret;
-+
-+ bcj_apply(s, s->temp.buf, &s->temp.filtered, s->temp.size);
-+
-+ /*
-+ * If the next filter returned XZ_STREAM_END, we mark that
-+ * everything is filtered, since the last unfiltered bytes
-+ * of the stream are meant to be left as is.
-+ */
-+ if (s->ret == XZ_STREAM_END)
-+ s->temp.filtered = s->temp.size;
-+
-+ bcj_flush(s, b);
-+ if (s->temp.filtered > 0)
-+ return XZ_OK;
-+ }
-+
-+ return s->ret;
-+}
-+
-+XZ_EXTERN struct xz_dec_bcj *INIT xz_dec_bcj_create(bool_t single_call)
-+{
-+ struct xz_dec_bcj *s = malloc(sizeof(*s));
-+ if (s != NULL)
-+ s->single_call = single_call;
-+
-+ return s;
-+}
-+
-+XZ_EXTERN enum xz_ret INIT xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id)
-+{
-+ switch (id) {
-+#ifdef XZ_DEC_X86
-+ case BCJ_X86:
-+#endif
-+#ifdef XZ_DEC_POWERPC
-+ case BCJ_POWERPC:
-+#endif
-+#ifdef XZ_DEC_IA64
-+ case BCJ_IA64:
-+#endif
-+#ifdef XZ_DEC_ARM
-+ case BCJ_ARM:
-+#endif
-+#ifdef XZ_DEC_ARMTHUMB
-+ case BCJ_ARMTHUMB:
-+#endif
-+#ifdef XZ_DEC_SPARC
-+ case BCJ_SPARC:
-+#endif
-+ break;
-+
-+ default:
-+ /* Unsupported Filter ID */
-+ return XZ_OPTIONS_ERROR;
-+ }
-+
-+ s->type = id;
-+ s->ret = XZ_OK;
-+ s->pos = 0;
-+ s->x86_prev_mask = 0;
-+ s->temp.filtered = 0;
-+ s->temp.size = 0;
-+
-+ return XZ_OK;
-+}
-+
-+#endif
-diff --git a/xen/common/xz/dec_lzma2.c b/xen/common/xz/dec_lzma2.c
-new file mode 100644
---- /dev/null
-+++ b/xen/common/xz/dec_lzma2.c
-@@ -0,0 +1,1171 @@
-+/*
-+ * LZMA2 decoder
-+ *
-+ * Authors: Lasse Collin <lasse.collin@tukaani.org>
-+ * Igor Pavlov <http://7-zip.org/>
-+ *
-+ * This file has been put into the public domain.
-+ * You can do whatever you want with this file.
-+ */
-+
-+#include "private.h"
-+#include "lzma2.h"
-+
-+/*
-+ * Range decoder initialization eats the first five bytes of each LZMA chunk.
-+ */
-+#define RC_INIT_BYTES 5
-+
-+/*
-+ * Minimum number of usable input buffer to safely decode one LZMA symbol.
-+ * The worst case is that we decode 22 bits using probabilities and 26
-+ * direct bits. This may decode at maximum of 20 bytes of input. However,
-+ * lzma_main() does an extra normalization before returning, thus we
-+ * need to put 21 here.
-+ */
-+#define LZMA_IN_REQUIRED 21
-+
-+/*
-+ * Dictionary (history buffer)
-+ *
-+ * These are always true:
-+ * start <= pos <= full <= end
-+ * pos <= limit <= end
-+ *
-+ * In multi-call mode, also these are true:
-+ * end == size
-+ * size <= size_max
-+ * allocated <= size
-+ *
-+ * Most of these variables are size_t to support single-call mode,
-+ * in which the dictionary variables address the actual output
-+ * buffer directly.
-+ */
-+struct dictionary {
-+ /* Beginning of the history buffer */
-+ uint8_t *buf;
-+
-+ /* Old position in buf (before decoding more data) */
-+ size_t start;
-+
-+ /* Position in buf */
-+ size_t pos;
-+
-+ /*
-+ * How full dictionary is. This is used to detect corrupt input that
-+ * would read beyond the beginning of the uncompressed stream.
-+ */
-+ size_t full;
-+
-+ /* Write limit; we don't write to buf[limit] or later bytes. */
-+ size_t limit;
-+
-+ /*
-+ * End of the dictionary buffer. In multi-call mode, this is
-+ * the same as the dictionary size. In single-call mode, this
-+ * indicates the size of the output buffer.
-+ */
-+ size_t end;
-+
-+ /*
-+ * Size of the dictionary as specified in Block Header. This is used
-+ * together with "full" to detect corrupt input that would make us
-+ * read beyond the beginning of the uncompressed stream.
-+ */
-+ uint32_t size;
-+
-+ /*
-+ * Maximum allowed dictionary size in multi-call mode.
-+ * This is ignored in single-call mode.
-+ */
-+ uint32_t size_max;
-+
-+ /*
-+ * Amount of memory currently allocated for the dictionary.
-+ * This is used only with XZ_DYNALLOC. (With XZ_PREALLOC,
-+ * size_max is always the same as the allocated size.)
-+ */
-+ uint32_t allocated;
-+
-+ /* Operation mode */
-+ enum xz_mode mode;
-+};
-+
-+/* Range decoder */
-+struct rc_dec {
-+ uint32_t range;
-+ uint32_t code;
-+
-+ /*
-+ * Number of initializing bytes remaining to be read
-+ * by rc_read_init().
-+ */
-+ uint32_t init_bytes_left;
-+
-+ /*
-+ * Buffer from which we read our input. It can be either
-+ * temp.buf or the caller-provided input buffer.
-+ */
-+ const uint8_t *in;
-+ size_t in_pos;
-+ size_t in_limit;
-+};
-+
-+/* Probabilities for a length decoder. */
-+struct lzma_len_dec {
-+ /* Probability of match length being at least 10 */
-+ uint16_t choice;
-+
-+ /* Probability of match length being at least 18 */
-+ uint16_t choice2;
-+
-+ /* Probabilities for match lengths 2-9 */
-+ uint16_t low[POS_STATES_MAX][LEN_LOW_SYMBOLS];
-+
-+ /* Probabilities for match lengths 10-17 */
-+ uint16_t mid[POS_STATES_MAX][LEN_MID_SYMBOLS];
-+
-+ /* Probabilities for match lengths 18-273 */
-+ uint16_t high[LEN_HIGH_SYMBOLS];
-+};
-+
-+struct lzma_dec {
-+ /* Distances of latest four matches */
-+ uint32_t rep0;
-+ uint32_t rep1;
-+ uint32_t rep2;
-+ uint32_t rep3;
-+
-+ /* Types of the most recently seen LZMA symbols */
-+ enum lzma_state state;
-+
-+ /*
-+ * Length of a match. This is updated so that dict_repeat can
-+ * be called again to finish repeating the whole match.
-+ */
-+ uint32_t len;
-+
-+ /*
-+ * LZMA properties or related bit masks (number of literal
-+ * context bits, a mask dervied from the number of literal
-+ * position bits, and a mask dervied from the number
-+ * position bits)
-+ */
-+ uint32_t lc;
-+ uint32_t literal_pos_mask; /* (1 << lp) - 1 */
-+ uint32_t pos_mask; /* (1 << pb) - 1 */
-+
-+ /* If 1, it's a match. Otherwise it's a single 8-bit literal. */
-+ uint16_t is_match[STATES][POS_STATES_MAX];
-+
-+ /* If 1, it's a repeated match. The distance is one of rep0 .. rep3. */
-+ uint16_t is_rep[STATES];
-+
-+ /*
-+ * If 0, distance of a repeated match is rep0.
-+ * Otherwise check is_rep1.
-+ */
-+ uint16_t is_rep0[STATES];
-+
-+ /*
-+ * If 0, distance of a repeated match is rep1.
-+ * Otherwise check is_rep2.
-+ */
-+ uint16_t is_rep1[STATES];
-+
-+ /* If 0, distance of a repeated match is rep2. Otherwise it is rep3. */
-+ uint16_t is_rep2[STATES];
-+
-+ /*
-+ * If 1, the repeated match has length of one byte. Otherwise
-+ * the length is decoded from rep_len_decoder.
-+ */
-+ uint16_t is_rep0_long[STATES][POS_STATES_MAX];
-+
-+ /*
-+ * Probability tree for the highest two bits of the match
-+ * distance. There is a separate probability tree for match
-+ * lengths of 2 (i.e. MATCH_LEN_MIN), 3, 4, and [5, 273].
-+ */
-+ uint16_t dist_slot[DIST_STATES][DIST_SLOTS];
-+
-+ /*
-+ * Probility trees for additional bits for match distance
-+ * when the distance is in the range [4, 127].
-+ */
-+ uint16_t dist_special[FULL_DISTANCES - DIST_MODEL_END];
-+
-+ /*
-+ * Probability tree for the lowest four bits of a match
-+ * distance that is equal to or greater than 128.
-+ */
-+ uint16_t dist_align[ALIGN_SIZE];
-+
-+ /* Length of a normal match */
-+ struct lzma_len_dec match_len_dec;
-+
-+ /* Length of a repeated match */
-+ struct lzma_len_dec rep_len_dec;
-+
-+ /* Probabilities of literals */
-+ uint16_t literal[LITERAL_CODERS_MAX][LITERAL_CODER_SIZE];
-+};
-+
-+struct lzma2_dec {
-+ /* Position in xz_dec_lzma2_run(). */
-+ enum lzma2_seq {
-+ SEQ_CONTROL,
-+ SEQ_UNCOMPRESSED_1,
-+ SEQ_UNCOMPRESSED_2,
-+ SEQ_COMPRESSED_0,
-+ SEQ_COMPRESSED_1,
-+ SEQ_PROPERTIES,
-+ SEQ_LZMA_PREPARE,
-+ SEQ_LZMA_RUN,
-+ SEQ_COPY
-+ } sequence;
-+
-+ /* Next position after decoding the compressed size of the chunk. */
-+ enum lzma2_seq next_sequence;
-+
-+ /* Uncompressed size of LZMA chunk (2 MiB at maximum) */
-+ uint32_t uncompressed;
-+
-+ /*
-+ * Compressed size of LZMA chunk or compressed/uncompressed
-+ * size of uncompressed chunk (64 KiB at maximum)
-+ */
-+ uint32_t compressed;
-+
-+ /*
-+ * True if dictionary reset is needed. This is false before
-+ * the first chunk (LZMA or uncompressed).
-+ */
-+ bool_t need_dict_reset;
-+
-+ /*
-+ * True if new LZMA properties are needed. This is false
-+ * before the first LZMA chunk.
-+ */
-+ bool_t need_props;
-+};
-+
-+struct xz_dec_lzma2 {
-+ /*
-+ * The order below is important on x86 to reduce code size and
-+ * it shouldn't hurt on other platforms. Everything up to and
-+ * including lzma.pos_mask are in the first 128 bytes on x86-32,
-+ * which allows using smaller instructions to access those
-+ * variables. On x86-64, fewer variables fit into the first 128
-+ * bytes, but this is still the best order without sacrificing
-+ * the readability by splitting the structures.
-+ */
-+ struct rc_dec rc;
-+ struct dictionary dict;
-+ struct lzma2_dec lzma2;
-+ struct lzma_dec lzma;
-+
-+ /*
-+ * Temporary buffer which holds small number of input bytes between
-+ * decoder calls. See lzma2_lzma() for details.
-+ */
-+ struct {
-+ uint32_t size;
-+ uint8_t buf[3 * LZMA_IN_REQUIRED];
-+ } temp;
-+};
-+
-+/**************
-+ * Dictionary *
-+ **************/
-+
-+/*
-+ * Reset the dictionary state. When in single-call mode, set up the beginning
-+ * of the dictionary to point to the actual output buffer.
-+ */
-+static void INIT dict_reset(struct dictionary *dict, struct xz_buf *b)
-+{
-+ if (DEC_IS_SINGLE(dict->mode)) {
-+ dict->buf = b->out + b->out_pos;
-+ dict->end = b->out_size - b->out_pos;
-+ }
-+
-+ dict->start = 0;
-+ dict->pos = 0;
-+ dict->limit = 0;
-+ dict->full = 0;
-+}
-+
-+/* Set dictionary write limit */
-+static void INIT dict_limit(struct dictionary *dict, size_t out_max)
-+{
-+ if (dict->end - dict->pos <= out_max)
-+ dict->limit = dict->end;
-+ else
-+ dict->limit = dict->pos + out_max;
-+}
-+
-+/* Return true if at least one byte can be written into the dictionary. */
-+static inline bool_t INIT dict_has_space(const struct dictionary *dict)
-+{
-+ return dict->pos < dict->limit;
-+}
-+
-+/*
-+ * Get a byte from the dictionary at the given distance. The distance is
-+ * assumed to valid, or as a special case, zero when the dictionary is
-+ * still empty. This special case is needed for single-call decoding to
-+ * avoid writing a '\0' to the end of the destination buffer.
-+ */
-+static inline uint32_t INIT dict_get(const struct dictionary *dict, uint32_t dist)
-+{
-+ size_t offset = dict->pos - dist - 1;
-+
-+ if (dist >= dict->pos)
-+ offset += dict->end;
-+
-+ return dict->full > 0 ? dict->buf[offset] : 0;
-+}
-+
-+/*
-+ * Put one byte into the dictionary. It is assumed that there is space for it.
-+ */
-+static inline void INIT dict_put(struct dictionary *dict, uint8_t byte)
-+{
-+ dict->buf[dict->pos++] = byte;
-+
-+ if (dict->full < dict->pos)
-+ dict->full = dict->pos;
-+}
-+
-+/*
-+ * Repeat given number of bytes from the given distance. If the distance is
-+ * invalid, false is returned. On success, true is returned and *len is
-+ * updated to indicate how many bytes were left to be repeated.
-+ */
-+static bool_t INIT dict_repeat(struct dictionary *dict, uint32_t *len, uint32_t dist)
-+{
-+ size_t back;
-+ uint32_t left;
-+
-+ if (dist >= dict->full || dist >= dict->size)
-+ return false;
-+
-+ left = min_t(size_t, dict->limit - dict->pos, *len);
-+ *len -= left;
-+
-+ back = dict->pos - dist - 1;
-+ if (dist >= dict->pos)
-+ back += dict->end;
-+
-+ do {
-+ dict->buf[dict->pos++] = dict->buf[back++];
-+ if (back == dict->end)
-+ back = 0;
-+ } while (--left > 0);
-+
-+ if (dict->full < dict->pos)
-+ dict->full = dict->pos;
-+
-+ return true;
-+}
-+
-+/* Copy uncompressed data as is from input to dictionary and output buffers. */
-+static void INIT dict_uncompressed(struct dictionary *dict, struct xz_buf *b,
-+ uint32_t *left)
-+{
-+ size_t copy_size;
-+
-+ while (*left > 0 && b->in_pos < b->in_size
-+ && b->out_pos < b->out_size) {
-+ copy_size = min(b->in_size - b->in_pos,
-+ b->out_size - b->out_pos);
-+ if (copy_size > dict->end - dict->pos)
-+ copy_size = dict->end - dict->pos;
-+ if (copy_size > *left)
-+ copy_size = *left;
-+
-+ *left -= copy_size;
-+
-+ memcpy(dict->buf + dict->pos, b->in + b->in_pos, copy_size);
-+ dict->pos += copy_size;
-+
-+ if (dict->full < dict->pos)
-+ dict->full = dict->pos;
-+
-+ if (DEC_IS_MULTI(dict->mode)) {
-+ if (dict->pos == dict->end)
-+ dict->pos = 0;
-+
-+ memcpy(b->out + b->out_pos, b->in + b->in_pos,
-+ copy_size);
-+ }
-+
-+ dict->start = dict->pos;
-+
-+ b->out_pos += copy_size;
-+ b->in_pos += copy_size;
-+ }
-+}
-+
-+/*
-+ * Flush pending data from dictionary to b->out. It is assumed that there is
-+ * enough space in b->out. This is guaranteed because caller uses dict_limit()
-+ * before decoding data into the dictionary.
-+ */
-+static uint32_t INIT dict_flush(struct dictionary *dict, struct xz_buf *b)
-+{
-+ size_t copy_size = dict->pos - dict->start;
-+
-+ if (DEC_IS_MULTI(dict->mode)) {
-+ if (dict->pos == dict->end)
-+ dict->pos = 0;
-+
-+ memcpy(b->out + b->out_pos, dict->buf + dict->start,
-+ copy_size);
-+ }
-+
-+ dict->start = dict->pos;
-+ b->out_pos += copy_size;
-+ return copy_size;
-+}
-+
-+/*****************
-+ * Range decoder *
-+ *****************/
-+
-+/* Reset the range decoder. */
-+static void INIT rc_reset(struct rc_dec *rc)
-+{
-+ rc->range = (uint32_t)-1;
-+ rc->code = 0;
-+ rc->init_bytes_left = RC_INIT_BYTES;
-+}
-+
-+/*
-+ * Read the first five initial bytes into rc->code if they haven't been
-+ * read already. (Yes, the first byte gets completely ignored.)
-+ */
-+static bool_t INIT rc_read_init(struct rc_dec *rc, struct xz_buf *b)
-+{
-+ while (rc->init_bytes_left > 0) {
-+ if (b->in_pos == b->in_size)
-+ return false;
-+
-+ rc->code = (rc->code << 8) + b->in[b->in_pos++];
-+ --rc->init_bytes_left;
-+ }
-+
-+ return true;
-+}
-+
-+/* Return true if there may not be enough input for the next decoding loop. */
-+static inline bool_t INIT rc_limit_exceeded(const struct rc_dec *rc)
-+{
-+ return rc->in_pos > rc->in_limit;
-+}
-+
-+/*
-+ * Return true if it is possible (from point of view of range decoder) that
-+ * we have reached the end of the LZMA chunk.
-+ */
-+static inline bool_t INIT rc_is_finished(const struct rc_dec *rc)
-+{
-+ return rc->code == 0;
-+}
-+
-+/* Read the next input byte if needed. */
-+static always_inline void rc_normalize(struct rc_dec *rc)
-+{
-+ if (rc->range < RC_TOP_VALUE) {
-+ rc->range <<= RC_SHIFT_BITS;
-+ rc->code = (rc->code << RC_SHIFT_BITS) + rc->in[rc->in_pos++];
-+ }
-+}
-+
-+/*
-+ * Decode one bit. In some versions, this function has been splitted in three
-+ * functions so that the compiler is supposed to be able to more easily avoid
-+ * an extra branch. In this particular version of the LZMA decoder, this
-+ * doesn't seem to be a good idea (tested with GCC 3.3.6, 3.4.6, and 4.3.3
-+ * on x86). Using a non-splitted version results in nicer looking code too.
-+ *
-+ * NOTE: This must return an int. Do not make it return a bool or the speed
-+ * of the code generated by GCC 3.x decreases 10-15 %. (GCC 4.3 doesn't care,
-+ * and it generates 10-20 % faster code than GCC 3.x from this file anyway.)
-+ */
-+static always_inline int rc_bit(struct rc_dec *rc, uint16_t *prob)
-+{
-+ uint32_t bound;
-+ int bit;
-+
-+ rc_normalize(rc);
-+ bound = (rc->range >> RC_BIT_MODEL_TOTAL_BITS) * *prob;
-+ if (rc->code < bound) {
-+ rc->range = bound;
-+ *prob += (RC_BIT_MODEL_TOTAL - *prob) >> RC_MOVE_BITS;
-+ bit = 0;
-+ } else {
-+ rc->range -= bound;
-+ rc->code -= bound;
-+ *prob -= *prob >> RC_MOVE_BITS;
-+ bit = 1;
-+ }
-+
-+ return bit;
-+}
-+
-+/* Decode a bittree starting from the most significant bit. */
-+static always_inline uint32_t rc_bittree(struct rc_dec *rc,
-+ uint16_t *probs, uint32_t limit)
-+{
-+ uint32_t symbol = 1;
-+
-+ do {
-+ if (rc_bit(rc, &probs[symbol]))
-+ symbol = (symbol << 1) + 1;
-+ else
-+ symbol <<= 1;
-+ } while (symbol < limit);
-+
-+ return symbol;
-+}
-+
-+/* Decode a bittree starting from the least significant bit. */
-+static always_inline void rc_bittree_reverse(struct rc_dec *rc,
-+ uint16_t *probs,
-+ uint32_t *dest, uint32_t limit)
-+{
-+ uint32_t symbol = 1;
-+ uint32_t i = 0;
-+
-+ do {
-+ if (rc_bit(rc, &probs[symbol])) {
-+ symbol = (symbol << 1) + 1;
-+ *dest += 1 << i;
-+ } else {
-+ symbol <<= 1;
-+ }
-+ } while (++i < limit);
-+}
-+
-+/* Decode direct bits (fixed fifty-fifty probability) */
-+static inline void INIT rc_direct(struct rc_dec *rc, uint32_t *dest, uint32_t limit)
-+{
-+ uint32_t mask;
-+
-+ do {
-+ rc_normalize(rc);
-+ rc->range >>= 1;
-+ rc->code -= rc->range;
-+ mask = (uint32_t)0 - (rc->code >> 31);
-+ rc->code += rc->range & mask;
-+ *dest = (*dest << 1) + (mask + 1);
-+ } while (--limit > 0);
-+}
-+
-+/********
-+ * LZMA *
-+ ********/
-+
-+/* Get pointer to literal coder probability array. */
-+static uint16_t *INIT lzma_literal_probs(struct xz_dec_lzma2 *s)
-+{
-+ uint32_t prev_byte = dict_get(&s->dict, 0);
-+ uint32_t low = prev_byte >> (8 - s->lzma.lc);
-+ uint32_t high = (s->dict.pos & s->lzma.literal_pos_mask) << s->lzma.lc;
-+ return s->lzma.literal[low + high];
-+}
-+
-+/* Decode a literal (one 8-bit byte) */
-+static void INIT lzma_literal(struct xz_dec_lzma2 *s)
-+{
-+ uint16_t *probs;
-+ uint32_t symbol;
-+ uint32_t match_byte;
-+ uint32_t match_bit;
-+ uint32_t offset;
-+ uint32_t i;
-+
-+ probs = lzma_literal_probs(s);
-+
-+ if (lzma_state_is_literal(s->lzma.state)) {
-+ symbol = rc_bittree(&s->rc, probs, 0x100);
-+ } else {
-+ symbol = 1;
-+ match_byte = dict_get(&s->dict, s->lzma.rep0) << 1;
-+ offset = 0x100;
-+
-+ do {
-+ match_bit = match_byte & offset;
-+ match_byte <<= 1;
-+ i = offset + match_bit + symbol;
-+
-+ if (rc_bit(&s->rc, &probs[i])) {
-+ symbol = (symbol << 1) + 1;
-+ offset &= match_bit;
-+ } else {
-+ symbol <<= 1;
-+ offset &= ~match_bit;
-+ }
-+ } while (symbol < 0x100);
-+ }
-+
-+ dict_put(&s->dict, (uint8_t)symbol);
-+ lzma_state_literal(&s->lzma.state);
-+}
-+
-+/* Decode the length of the match into s->lzma.len. */
-+static void INIT lzma_len(struct xz_dec_lzma2 *s, struct lzma_len_dec *l,
-+ uint32_t pos_state)
-+{
-+ uint16_t *probs;
-+ uint32_t limit;
-+
-+ if (!rc_bit(&s->rc, &l->choice)) {
-+ probs = l->low[pos_state];
-+ limit = LEN_LOW_SYMBOLS;
-+ s->lzma.len = MATCH_LEN_MIN;
-+ } else {
-+ if (!rc_bit(&s->rc, &l->choice2)) {
-+ probs = l->mid[pos_state];
-+ limit = LEN_MID_SYMBOLS;
-+ s->lzma.len = MATCH_LEN_MIN + LEN_LOW_SYMBOLS;
-+ } else {
-+ probs = l->high;
-+ limit = LEN_HIGH_SYMBOLS;
-+ s->lzma.len = MATCH_LEN_MIN + LEN_LOW_SYMBOLS
-+ + LEN_MID_SYMBOLS;
-+ }
-+ }
-+
-+ s->lzma.len += rc_bittree(&s->rc, probs, limit) - limit;
-+}
-+
-+/* Decode a match. The distance will be stored in s->lzma.rep0. */
-+static void INIT lzma_match(struct xz_dec_lzma2 *s, uint32_t pos_state)
-+{
-+ uint16_t *probs;
-+ uint32_t dist_slot;
-+ uint32_t limit;
-+
-+ lzma_state_match(&s->lzma.state);
-+
-+ s->lzma.rep3 = s->lzma.rep2;
-+ s->lzma.rep2 = s->lzma.rep1;
-+ s->lzma.rep1 = s->lzma.rep0;
-+
-+ lzma_len(s, &s->lzma.match_len_dec, pos_state);
-+
-+ probs = s->lzma.dist_slot[lzma_get_dist_state(s->lzma.len)];
-+ dist_slot = rc_bittree(&s->rc, probs, DIST_SLOTS) - DIST_SLOTS;
-+
-+ if (dist_slot < DIST_MODEL_START) {
-+ s->lzma.rep0 = dist_slot;
-+ } else {
-+ limit = (dist_slot >> 1) - 1;
-+ s->lzma.rep0 = 2 + (dist_slot & 1);
-+
-+ if (dist_slot < DIST_MODEL_END) {
-+ s->lzma.rep0 <<= limit;
-+ probs = s->lzma.dist_special + s->lzma.rep0
-+ - dist_slot - 1;
-+ rc_bittree_reverse(&s->rc, probs,
-+ &s->lzma.rep0, limit);
-+ } else {
-+ rc_direct(&s->rc, &s->lzma.rep0, limit - ALIGN_BITS);
-+ s->lzma.rep0 <<= ALIGN_BITS;
-+ rc_bittree_reverse(&s->rc, s->lzma.dist_align,
-+ &s->lzma.rep0, ALIGN_BITS);
-+ }
-+ }
-+}
-+
-+/*
-+ * Decode a repeated match. The distance is one of the four most recently
-+ * seen matches. The distance will be stored in s->lzma.rep0.
-+ */
-+static void INIT lzma_rep_match(struct xz_dec_lzma2 *s, uint32_t pos_state)
-+{
-+ uint32_t tmp;
-+
-+ if (!rc_bit(&s->rc, &s->lzma.is_rep0[s->lzma.state])) {
-+ if (!rc_bit(&s->rc, &s->lzma.is_rep0_long[
-+ s->lzma.state][pos_state])) {
-+ lzma_state_short_rep(&s->lzma.state);
-+ s->lzma.len = 1;
-+ return;
-+ }
-+ } else {
-+ if (!rc_bit(&s->rc, &s->lzma.is_rep1[s->lzma.state])) {
-+ tmp = s->lzma.rep1;
-+ } else {
-+ if (!rc_bit(&s->rc, &s->lzma.is_rep2[s->lzma.state])) {
-+ tmp = s->lzma.rep2;
-+ } else {
-+ tmp = s->lzma.rep3;
-+ s->lzma.rep3 = s->lzma.rep2;
-+ }
-+
-+ s->lzma.rep2 = s->lzma.rep1;
-+ }
-+
-+ s->lzma.rep1 = s->lzma.rep0;
-+ s->lzma.rep0 = tmp;
-+ }
-+
-+ lzma_state_long_rep(&s->lzma.state);
-+ lzma_len(s, &s->lzma.rep_len_dec, pos_state);
-+}
-+
-+/* LZMA decoder core */
-+static bool_t INIT lzma_main(struct xz_dec_lzma2 *s)
-+{
-+ uint32_t pos_state;
-+
-+ /*
-+ * If the dictionary was reached during the previous call, try to
-+ * finish the possibly pending repeat in the dictionary.
-+ */
-+ if (dict_has_space(&s->dict) && s->lzma.len > 0)
-+ dict_repeat(&s->dict, &s->lzma.len, s->lzma.rep0);
-+
-+ /*
-+ * Decode more LZMA symbols. One iteration may consume up to
-+ * LZMA_IN_REQUIRED - 1 bytes.
-+ */
-+ while (dict_has_space(&s->dict) && !rc_limit_exceeded(&s->rc)) {
-+ pos_state = s->dict.pos & s->lzma.pos_mask;
-+
-+ if (!rc_bit(&s->rc, &s->lzma.is_match[
-+ s->lzma.state][pos_state])) {
-+ lzma_literal(s);
-+ } else {
-+ if (rc_bit(&s->rc, &s->lzma.is_rep[s->lzma.state]))
-+ lzma_rep_match(s, pos_state);
-+ else
-+ lzma_match(s, pos_state);
-+
-+ if (!dict_repeat(&s->dict, &s->lzma.len, s->lzma.rep0))
-+ return false;
-+ }
-+ }
-+
-+ /*
-+ * Having the range decoder always normalized when we are outside
-+ * this function makes it easier to correctly handle end of the chunk.
-+ */
-+ rc_normalize(&s->rc);
-+
-+ return true;
-+}
-+
-+/*
-+ * Reset the LZMA decoder and range decoder state. Dictionary is nore reset
-+ * here, because LZMA state may be reset without resetting the dictionary.
-+ */
-+static void INIT lzma_reset(struct xz_dec_lzma2 *s)
-+{
-+ uint16_t *probs;
-+ size_t i;
-+
-+ s->lzma.state = STATE_LIT_LIT;
-+ s->lzma.rep0 = 0;
-+ s->lzma.rep1 = 0;
-+ s->lzma.rep2 = 0;
-+ s->lzma.rep3 = 0;
-+
-+ /*
-+ * All probabilities are initialized to the same value. This hack
-+ * makes the code smaller by avoiding a separate loop for each
-+ * probability array.
-+ *
-+ * This could be optimized so that only that part of literal
-+ * probabilities that are actually required. In the common case
-+ * we would write 12 KiB less.
-+ */
-+ probs = s->lzma.is_match[0];
-+ for (i = 0; i < PROBS_TOTAL; ++i)
-+ probs[i] = RC_BIT_MODEL_TOTAL / 2;
-+
-+ rc_reset(&s->rc);
-+}
-+
-+/*
-+ * Decode and validate LZMA properties (lc/lp/pb) and calculate the bit masks
-+ * from the decoded lp and pb values. On success, the LZMA decoder state is
-+ * reset and true is returned.
-+ */
-+static bool_t INIT lzma_props(struct xz_dec_lzma2 *s, uint8_t props)
-+{
-+ if (props > (4 * 5 + 4) * 9 + 8)
-+ return false;
-+
-+ s->lzma.pos_mask = 0;
-+ while (props >= 9 * 5) {
-+ props -= 9 * 5;
-+ ++s->lzma.pos_mask;
-+ }
-+
-+ s->lzma.pos_mask = (1 << s->lzma.pos_mask) - 1;
-+
-+ s->lzma.literal_pos_mask = 0;
-+ while (props >= 9) {
-+ props -= 9;
-+ ++s->lzma.literal_pos_mask;
-+ }
-+
-+ s->lzma.lc = props;
-+
-+ if (s->lzma.lc + s->lzma.literal_pos_mask > 4)
-+ return false;
-+
-+ s->lzma.literal_pos_mask = (1 << s->lzma.literal_pos_mask) - 1;
-+
-+ lzma_reset(s);
-+
-+ return true;
-+}
-+
-+/*********
-+ * LZMA2 *
-+ *********/
-+
-+/*
-+ * The LZMA decoder assumes that if the input limit (s->rc.in_limit) hasn't
-+ * been exceeded, it is safe to read up to LZMA_IN_REQUIRED bytes. This
-+ * wrapper function takes care of making the LZMA decoder's assumption safe.
-+ *
-+ * As long as there is plenty of input left to be decoded in the current LZMA
-+ * chunk, we decode directly from the caller-supplied input buffer until
-+ * there's LZMA_IN_REQUIRED bytes left. Those remaining bytes are copied into
-+ * s->temp.buf, which (hopefully) gets filled on the next call to this
-+ * function. We decode a few bytes from the temporary buffer so that we can
-+ * continue decoding from the caller-supplied input buffer again.
-+ */
-+static bool_t INIT lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b)
-+{
-+ size_t in_avail;
-+ uint32_t tmp;
-+
-+ in_avail = b->in_size - b->in_pos;
-+ if (s->temp.size > 0 || s->lzma2.compressed == 0) {
-+ tmp = 2 * LZMA_IN_REQUIRED - s->temp.size;
-+ if (tmp > s->lzma2.compressed - s->temp.size)
-+ tmp = s->lzma2.compressed - s->temp.size;
-+ if (tmp > in_avail)
-+ tmp = in_avail;
-+
-+ memcpy(s->temp.buf + s->temp.size, b->in + b->in_pos, tmp);
-+
-+ if (s->temp.size + tmp == s->lzma2.compressed) {
-+ memzero(s->temp.buf + s->temp.size + tmp,
-+ sizeof(s->temp.buf)
-+ - s->temp.size - tmp);
-+ s->rc.in_limit = s->temp.size + tmp;
-+ } else if (s->temp.size + tmp < LZMA_IN_REQUIRED) {
-+ s->temp.size += tmp;
-+ b->in_pos += tmp;
-+ return true;
-+ } else {
-+ s->rc.in_limit = s->temp.size + tmp - LZMA_IN_REQUIRED;
-+ }
-+
-+ s->rc.in = s->temp.buf;
-+ s->rc.in_pos = 0;
-+
-+ if (!lzma_main(s) || s->rc.in_pos > s->temp.size + tmp)
-+ return false;
-+
-+ s->lzma2.compressed -= s->rc.in_pos;
-+
-+ if (s->rc.in_pos < s->temp.size) {
-+ s->temp.size -= s->rc.in_pos;
-+ memmove(s->temp.buf, s->temp.buf + s->rc.in_pos,
-+ s->temp.size);
-+ return true;
-+ }
-+
-+ b->in_pos += s->rc.in_pos - s->temp.size;
-+ s->temp.size = 0;
-+ }
-+
-+ in_avail = b->in_size - b->in_pos;
-+ if (in_avail >= LZMA_IN_REQUIRED) {
-+ s->rc.in = b->in;
-+ s->rc.in_pos = b->in_pos;
-+
-+ if (in_avail >= s->lzma2.compressed + LZMA_IN_REQUIRED)
-+ s->rc.in_limit = b->in_pos + s->lzma2.compressed;
-+ else
-+ s->rc.in_limit = b->in_size - LZMA_IN_REQUIRED;
-+
-+ if (!lzma_main(s))
-+ return false;
-+
-+ in_avail = s->rc.in_pos - b->in_pos;
-+ if (in_avail > s->lzma2.compressed)
-+ return false;
-+
-+ s->lzma2.compressed -= in_avail;
-+ b->in_pos = s->rc.in_pos;
-+ }
-+
-+ in_avail = b->in_size - b->in_pos;
-+ if (in_avail < LZMA_IN_REQUIRED) {
-+ if (in_avail > s->lzma2.compressed)
-+ in_avail = s->lzma2.compressed;
-+
-+ memcpy(s->temp.buf, b->in + b->in_pos, in_avail);
-+ s->temp.size = in_avail;
-+ b->in_pos += in_avail;
-+ }
-+
-+ return true;
-+}
-+
-+/*
-+ * Take care of the LZMA2 control layer, and forward the job of actual LZMA
-+ * decoding or copying of uncompressed chunks to other functions.
-+ */
-+XZ_EXTERN enum xz_ret INIT xz_dec_lzma2_run(struct xz_dec_lzma2 *s,
-+ struct xz_buf *b)
-+{
-+ uint32_t tmp;
-+
-+ while (b->in_pos < b->in_size || s->lzma2.sequence == SEQ_LZMA_RUN) {
-+ switch (s->lzma2.sequence) {
-+ case SEQ_CONTROL:
-+ /*
-+ * LZMA2 control byte
-+ *
-+ * Exact values:
-+ * 0x00 End marker
-+ * 0x01 Dictionary reset followed by
-+ * an uncompressed chunk
-+ * 0x02 Uncompressed chunk (no dictionary reset)
-+ *
-+ * Highest three bits (s->control & 0xE0):
-+ * 0xE0 Dictionary reset, new properties and state
-+ * reset, followed by LZMA compressed chunk
-+ * 0xC0 New properties and state reset, followed
-+ * by LZMA compressed chunk (no dictionary
-+ * reset)
-+ * 0xA0 State reset using old properties,
-+ * followed by LZMA compressed chunk (no
-+ * dictionary reset)
-+ * 0x80 LZMA chunk (no dictionary or state reset)
-+ *
-+ * For LZMA compressed chunks, the lowest five bits
-+ * (s->control & 1F) are the highest bits of the
-+ * uncompressed size (bits 16-20).
-+ *
-+ * A new LZMA2 stream must begin with a dictionary
-+ * reset. The first LZMA chunk must set new
-+ * properties and reset the LZMA state.
-+ *
-+ * Values that don't match anything described above
-+ * are invalid and we return XZ_DATA_ERROR.
-+ */
-+ tmp = b->in[b->in_pos++];
-+
-+ if (tmp >= 0xE0 || tmp == 0x01) {
-+ s->lzma2.need_props = true;
-+ s->lzma2.need_dict_reset = false;
-+ dict_reset(&s->dict, b);
-+ } else if (s->lzma2.need_dict_reset) {
-+ return XZ_DATA_ERROR;
-+ }
-+
-+ if (tmp >= 0x80) {
-+ s->lzma2.uncompressed = (tmp & 0x1F) << 16;
-+ s->lzma2.sequence = SEQ_UNCOMPRESSED_1;
-+
-+ if (tmp >= 0xC0) {
-+ /*
-+ * When there are new properties,
-+ * state reset is done at
-+ * SEQ_PROPERTIES.
-+ */
-+ s->lzma2.need_props = false;
-+ s->lzma2.next_sequence
-+ = SEQ_PROPERTIES;
-+
-+ } else if (s->lzma2.need_props) {
-+ return XZ_DATA_ERROR;
-+
-+ } else {
-+ s->lzma2.next_sequence
-+ = SEQ_LZMA_PREPARE;
-+ if (tmp >= 0xA0)
-+ lzma_reset(s);
-+ }
-+ } else {
-+ if (tmp == 0x00)
-+ return XZ_STREAM_END;
-+
-+ if (tmp > 0x02)
-+ return XZ_DATA_ERROR;
-+
-+ s->lzma2.sequence = SEQ_COMPRESSED_0;
-+ s->lzma2.next_sequence = SEQ_COPY;
-+ }
-+
-+ break;
-+
-+ case SEQ_UNCOMPRESSED_1:
-+ s->lzma2.uncompressed
-+ += (uint32_t)b->in[b->in_pos++] << 8;
-+ s->lzma2.sequence = SEQ_UNCOMPRESSED_2;
-+ break;
-+
-+ case SEQ_UNCOMPRESSED_2:
-+ s->lzma2.uncompressed
-+ += (uint32_t)b->in[b->in_pos++] + 1;
-+ s->lzma2.sequence = SEQ_COMPRESSED_0;
-+ break;
-+
-+ case SEQ_COMPRESSED_0:
-+ s->lzma2.compressed
-+ = (uint32_t)b->in[b->in_pos++] << 8;
-+ s->lzma2.sequence = SEQ_COMPRESSED_1;
-+ break;
-+
-+ case SEQ_COMPRESSED_1:
-+ s->lzma2.compressed
-+ += (uint32_t)b->in[b->in_pos++] + 1;
-+ s->lzma2.sequence = s->lzma2.next_sequence;
-+ break;
-+
-+ case SEQ_PROPERTIES:
-+ if (!lzma_props(s, b->in[b->in_pos++]))
-+ return XZ_DATA_ERROR;
-+
-+ s->lzma2.sequence = SEQ_LZMA_PREPARE;
-+
-+ case SEQ_LZMA_PREPARE:
-+ if (s->lzma2.compressed < RC_INIT_BYTES)
-+ return XZ_DATA_ERROR;
-+
-+ if (!rc_read_init(&s->rc, b))
-+ return XZ_OK;
-+
-+ s->lzma2.compressed -= RC_INIT_BYTES;
-+ s->lzma2.sequence = SEQ_LZMA_RUN;
-+
-+ case SEQ_LZMA_RUN:
-+ /*
-+ * Set dictionary limit to indicate how much we want
-+ * to be encoded at maximum. Decode new data into the
-+ * dictionary. Flush the new data from dictionary to
-+ * b->out. Check if we finished decoding this chunk.
-+ * In case the dictionary got full but we didn't fill
-+ * the output buffer yet, we may run this loop
-+ * multiple times without changing s->lzma2.sequence.
-+ */
-+ dict_limit(&s->dict, min_t(size_t,
-+ b->out_size - b->out_pos,
-+ s->lzma2.uncompressed));
-+ if (!lzma2_lzma(s, b))
-+ return XZ_DATA_ERROR;
-+
-+ s->lzma2.uncompressed -= dict_flush(&s->dict, b);
-+
-+ if (s->lzma2.uncompressed == 0) {
-+ if (s->lzma2.compressed > 0 || s->lzma.len > 0
-+ || !rc_is_finished(&s->rc))
-+ return XZ_DATA_ERROR;
-+
-+ rc_reset(&s->rc);
-+ s->lzma2.sequence = SEQ_CONTROL;
-+
-+ } else if (b->out_pos == b->out_size
-+ || (b->in_pos == b->in_size
-+ && s->temp.size
-+ < s->lzma2.compressed)) {
-+ return XZ_OK;
-+ }
-+
-+ break;
-+
-+ case SEQ_COPY:
-+ dict_uncompressed(&s->dict, b, &s->lzma2.compressed);
-+ if (s->lzma2.compressed > 0)
-+ return XZ_OK;
-+
-+ s->lzma2.sequence = SEQ_CONTROL;
-+ break;
-+ }
-+ }
-+
-+ return XZ_OK;
-+}
-+
-+XZ_EXTERN struct xz_dec_lzma2 *INIT xz_dec_lzma2_create(enum xz_mode mode,
-+ uint32_t dict_max)
-+{
-+ struct xz_dec_lzma2 *s = malloc(sizeof(*s));
-+ if (s == NULL)
-+ return NULL;
-+
-+ s->dict.mode = mode;
-+ s->dict.size_max = dict_max;
-+
-+ if (DEC_IS_PREALLOC(mode)) {
-+ s->dict.buf = large_malloc(dict_max);
-+ if (s->dict.buf == NULL) {
-+ free(s);
-+ return NULL;
-+ }
-+ } else if (DEC_IS_DYNALLOC(mode)) {
-+ s->dict.buf = NULL;
-+ s->dict.allocated = 0;
-+ }
-+
-+ return s;
-+}
-+
-+XZ_EXTERN enum xz_ret INIT xz_dec_lzma2_reset(struct xz_dec_lzma2 *s, uint8_t props)
-+{
-+ /* This limits dictionary size to 3 GiB to keep parsing simpler. */
-+ if (props > 39)
-+ return XZ_OPTIONS_ERROR;
-+
-+ s->dict.size = 2 + (props & 1);
-+ s->dict.size <<= (props >> 1) + 11;
-+
-+ if (DEC_IS_MULTI(s->dict.mode)) {
-+ if (s->dict.size > s->dict.size_max)
-+ return XZ_MEMLIMIT_ERROR;
-+
-+ s->dict.end = s->dict.size;
-+
-+ if (DEC_IS_DYNALLOC(s->dict.mode)) {
-+ if (s->dict.allocated < s->dict.size) {
-+ large_free(s->dict.buf);
-+ s->dict.buf = large_malloc(s->dict.size);
-+ if (s->dict.buf == NULL) {
-+ s->dict.allocated = 0;
-+ return XZ_MEM_ERROR;
-+ }
-+ }
-+ }
-+ }
-+
-+ s->lzma.len = 0;
-+
-+ s->lzma2.sequence = SEQ_CONTROL;
-+ s->lzma2.need_dict_reset = true;
-+
-+ s->temp.size = 0;
-+
-+ return XZ_OK;
-+}
-+
-+XZ_EXTERN void INIT xz_dec_lzma2_end(struct xz_dec_lzma2 *s)
-+{
-+ if (DEC_IS_MULTI(s->dict.mode))
-+ large_free(s->dict.buf);
-+
-+ free(s);
-+}
-diff --git a/xen/common/xz/dec_stream.c b/xen/common/xz/dec_stream.c
-new file mode 100644
---- /dev/null
-+++ b/xen/common/xz/dec_stream.c
-@@ -0,0 +1,821 @@
-+/*
-+ * .xz Stream decoder
-+ *
-+ * Author: Lasse Collin <lasse.collin@tukaani.org>
-+ *
-+ * This file has been put into the public domain.
-+ * You can do whatever you want with this file.
-+ */
-+
-+#include "private.h"
-+#include "stream.h"
-+
-+/* Hash used to validate the Index field */
-+struct xz_dec_hash {
-+ vli_type unpadded;
-+ vli_type uncompressed;
-+ uint32_t crc32;
-+};
-+
-+struct xz_dec {
-+ /* Position in dec_main() */
-+ enum {
-+ SEQ_STREAM_HEADER,
-+ SEQ_BLOCK_START,
-+ SEQ_BLOCK_HEADER,
-+ SEQ_BLOCK_UNCOMPRESS,
-+ SEQ_BLOCK_PADDING,
-+ SEQ_BLOCK_CHECK,
-+ SEQ_INDEX,
-+ SEQ_INDEX_PADDING,
-+ SEQ_INDEX_CRC32,
-+ SEQ_STREAM_FOOTER
-+ } sequence;
-+
-+ /* Position in variable-length integers and Check fields */
-+ uint32_t pos;
-+
-+ /* Variable-length integer decoded by dec_vli() */
-+ vli_type vli;
-+
-+ /* Saved in_pos and out_pos */
-+ size_t in_start;
-+ size_t out_start;
-+
-+ /* CRC32 value in Block or Index */
-+ uint32_t crc32;
-+
-+ /* Type of the integrity check calculated from uncompressed data */
-+ enum xz_check check_type;
-+
-+ /* Operation mode */
-+ enum xz_mode mode;
-+
-+ /*
-+ * True if the next call to xz_dec_run() is allowed to return
-+ * XZ_BUF_ERROR.
-+ */
-+ bool_t allow_buf_error;
-+
-+ /* Information stored in Block Header */
-+ struct {
-+ /*
-+ * Value stored in the Compressed Size field, or
-+ * VLI_UNKNOWN if Compressed Size is not present.
-+ */
-+ vli_type compressed;
-+
-+ /*
-+ * Value stored in the Uncompressed Size field, or
-+ * VLI_UNKNOWN if Uncompressed Size is not present.
-+ */
-+ vli_type uncompressed;
-+
-+ /* Size of the Block Header field */
-+ uint32_t size;
-+ } block_header;
-+
-+ /* Information collected when decoding Blocks */
-+ struct {
-+ /* Observed compressed size of the current Block */
-+ vli_type compressed;
-+
-+ /* Observed uncompressed size of the current Block */
-+ vli_type uncompressed;
-+
-+ /* Number of Blocks decoded so far */
-+ vli_type count;
-+
-+ /*
-+ * Hash calculated from the Block sizes. This is used to
-+ * validate the Index field.
-+ */
-+ struct xz_dec_hash hash;
-+ } block;
-+
-+ /* Variables needed when verifying the Index field */
-+ struct {
-+ /* Position in dec_index() */
-+ enum {
-+ SEQ_INDEX_COUNT,
-+ SEQ_INDEX_UNPADDED,
-+ SEQ_INDEX_UNCOMPRESSED
-+ } sequence;
-+
-+ /* Size of the Index in bytes */
-+ vli_type size;
-+
-+ /* Number of Records (matches block.count in valid files) */
-+ vli_type count;
-+
-+ /*
-+ * Hash calculated from the Records (matches block.hash in
-+ * valid files).
-+ */
-+ struct xz_dec_hash hash;
-+ } index;
-+
-+ /*
-+ * Temporary buffer needed to hold Stream Header, Block Header,
-+ * and Stream Footer. The Block Header is the biggest (1 KiB)
-+ * so we reserve space according to that. buf[] has to be aligned
-+ * to a multiple of four bytes; the size_t variables before it
-+ * should guarantee this.
-+ */
-+ struct {
-+ size_t pos;
-+ size_t size;
-+ uint8_t buf[1024];
-+ } temp;
-+
-+ struct xz_dec_lzma2 *lzma2;
-+
-+#ifdef XZ_DEC_BCJ
-+ struct xz_dec_bcj *bcj;
-+ bool_t bcj_active;
-+#endif
-+};
-+
-+#ifdef XZ_DEC_ANY_CHECK
-+/* Sizes of the Check field with different Check IDs */
-+static const uint8_t check_sizes[16] = {
-+ 0,
-+ 4, 4, 4,
-+ 8, 8, 8,
-+ 16, 16, 16,
-+ 32, 32, 32,
-+ 64, 64, 64
-+};
-+#endif
-+
-+/*
-+ * Fill s->temp by copying data starting from b->in[b->in_pos]. Caller
-+ * must have set s->temp.pos to indicate how much data we are supposed
-+ * to copy into s->temp.buf. Return true once s->temp.pos has reached
-+ * s->temp.size.
-+ */
-+static bool_t INIT fill_temp(struct xz_dec *s, struct xz_buf *b)
-+{
-+ size_t copy_size = min_t(size_t,
-+ b->in_size - b->in_pos, s->temp.size - s->temp.pos);
-+
-+ memcpy(s->temp.buf + s->temp.pos, b->in + b->in_pos, copy_size);
-+ b->in_pos += copy_size;
-+ s->temp.pos += copy_size;
-+
-+ if (s->temp.pos == s->temp.size) {
-+ s->temp.pos = 0;
-+ return true;
-+ }
-+
-+ return false;
-+}
-+
-+/* Decode a variable-length integer (little-endian base-128 encoding) */
-+static enum xz_ret INIT dec_vli(struct xz_dec *s, const uint8_t *in,
-+ size_t *in_pos, size_t in_size)
-+{
-+ uint8_t byte;
-+
-+ if (s->pos == 0)
-+ s->vli = 0;
-+
-+ while (*in_pos < in_size) {
-+ byte = in[*in_pos];
-+ ++*in_pos;
-+
-+ s->vli |= (vli_type)(byte & 0x7F) << s->pos;
-+
-+ if ((byte & 0x80) == 0) {
-+ /* Don't allow non-minimal encodings. */
-+ if (byte == 0 && s->pos != 0)
-+ return XZ_DATA_ERROR;
-+
-+ s->pos = 0;
-+ return XZ_STREAM_END;
-+ }
-+
-+ s->pos += 7;
-+ if (s->pos == 7 * VLI_BYTES_MAX)
-+ return XZ_DATA_ERROR;
-+ }
-+
-+ return XZ_OK;
-+}
-+
-+/*
-+ * Decode the Compressed Data field from a Block. Update and validate
-+ * the observed compressed and uncompressed sizes of the Block so that
-+ * they don't exceed the values possibly stored in the Block Header
-+ * (validation assumes that no integer overflow occurs, since vli_type
-+ * is normally uint64_t). Update the CRC32 if presence of the CRC32
-+ * field was indicated in Stream Header.
-+ *
-+ * Once the decoding is finished, validate that the observed sizes match
-+ * the sizes possibly stored in the Block Header. Update the hash and
-+ * Block count, which are later used to validate the Index field.
-+ */
-+static enum xz_ret INIT dec_block(struct xz_dec *s, struct xz_buf *b)
-+{
-+ enum xz_ret ret;
-+
-+ s->in_start = b->in_pos;
-+ s->out_start = b->out_pos;
-+
-+#ifdef XZ_DEC_BCJ
-+ if (s->bcj_active)
-+ ret = xz_dec_bcj_run(s->bcj, s->lzma2, b);
-+ else
-+#endif
-+ ret = xz_dec_lzma2_run(s->lzma2, b);
-+
-+ s->block.compressed += b->in_pos - s->in_start;
-+ s->block.uncompressed += b->out_pos - s->out_start;
-+
-+ /*
-+ * There is no need to separately check for VLI_UNKNOWN, since
-+ * the observed sizes are always smaller than VLI_UNKNOWN.
-+ */
-+ if (s->block.compressed > s->block_header.compressed
-+ || s->block.uncompressed
-+ > s->block_header.uncompressed)
-+ return XZ_DATA_ERROR;
-+
-+ if (s->check_type == XZ_CHECK_CRC32)
-+ s->crc32 = xz_crc32(b->out + s->out_start,
-+ b->out_pos - s->out_start, s->crc32);
-+
-+ if (ret == XZ_STREAM_END) {
-+ if (s->block_header.compressed != VLI_UNKNOWN
-+ && s->block_header.compressed
-+ != s->block.compressed)
-+ return XZ_DATA_ERROR;
-+
-+ if (s->block_header.uncompressed != VLI_UNKNOWN
-+ && s->block_header.uncompressed
-+ != s->block.uncompressed)
-+ return XZ_DATA_ERROR;
-+
-+ s->block.hash.unpadded += s->block_header.size
-+ + s->block.compressed;
-+
-+#ifdef XZ_DEC_ANY_CHECK
-+ s->block.hash.unpadded += check_sizes[s->check_type];
-+#else
-+ if (s->check_type == XZ_CHECK_CRC32)
-+ s->block.hash.unpadded += 4;
-+#endif
-+
-+ s->block.hash.uncompressed += s->block.uncompressed;
-+ s->block.hash.crc32 = xz_crc32(
-+ (const uint8_t *)&s->block.hash,
-+ sizeof(s->block.hash), s->block.hash.crc32);
-+
-+ ++s->block.count;
-+ }
-+
-+ return ret;
-+}
-+
-+/* Update the Index size and the CRC32 value. */
-+static void INIT index_update(struct xz_dec *s, const struct xz_buf *b)
-+{
-+ size_t in_used = b->in_pos - s->in_start;
-+ s->index.size += in_used;
-+ s->crc32 = xz_crc32(b->in + s->in_start, in_used, s->crc32);
-+}
-+
-+/*
-+ * Decode the Number of Records, Unpadded Size, and Uncompressed Size
-+ * fields from the Index field. That is, Index Padding and CRC32 are not
-+ * decoded by this function.
-+ *
-+ * This can return XZ_OK (more input needed), XZ_STREAM_END (everything
-+ * successfully decoded), or XZ_DATA_ERROR (input is corrupt).
-+ */
-+static enum xz_ret INIT dec_index(struct xz_dec *s, struct xz_buf *b)
-+{
-+ enum xz_ret ret;
-+
-+ do {
-+ ret = dec_vli(s, b->in, &b->in_pos, b->in_size);
-+ if (ret != XZ_STREAM_END) {
-+ index_update(s, b);
-+ return ret;
-+ }
-+
-+ switch (s->index.sequence) {
-+ case SEQ_INDEX_COUNT:
-+ s->index.count = s->vli;
-+
-+ /*
-+ * Validate that the Number of Records field
-+ * indicates the same number of Records as
-+ * there were Blocks in the Stream.
-+ */
-+ if (s->index.count != s->block.count)
-+ return XZ_DATA_ERROR;
-+
-+ s->index.sequence = SEQ_INDEX_UNPADDED;
-+ break;
-+
-+ case SEQ_INDEX_UNPADDED:
-+ s->index.hash.unpadded += s->vli;
-+ s->index.sequence = SEQ_INDEX_UNCOMPRESSED;
-+ break;
-+
-+ case SEQ_INDEX_UNCOMPRESSED:
-+ s->index.hash.uncompressed += s->vli;
-+ s->index.hash.crc32 = xz_crc32(
-+ (const uint8_t *)&s->index.hash,
-+ sizeof(s->index.hash),
-+ s->index.hash.crc32);
-+ --s->index.count;
-+ s->index.sequence = SEQ_INDEX_UNPADDED;
-+ break;
-+ }
-+ } while (s->index.count > 0);
-+
-+ return XZ_STREAM_END;
-+}
-+
-+/*
-+ * Validate that the next four input bytes match the value of s->crc32.
-+ * s->pos must be zero when starting to validate the first byte.
-+ */
-+static enum xz_ret INIT crc32_validate(struct xz_dec *s, struct xz_buf *b)
-+{
-+ do {
-+ if (b->in_pos == b->in_size)
-+ return XZ_OK;
-+
-+ if (((s->crc32 >> s->pos) & 0xFF) != b->in[b->in_pos++])
-+ return XZ_DATA_ERROR;
-+
-+ s->pos += 8;
-+
-+ } while (s->pos < 32);
-+
-+ s->crc32 = 0;
-+ s->pos = 0;
-+
-+ return XZ_STREAM_END;
-+}
-+
-+#ifdef XZ_DEC_ANY_CHECK
-+/*
-+ * Skip over the Check field when the Check ID is not supported.
-+ * Returns true once the whole Check field has been skipped over.
-+ */
-+static bool_t INIT check_skip(struct xz_dec *s, struct xz_buf *b)
-+{
-+ while (s->pos < check_sizes[s->check_type]) {
-+ if (b->in_pos == b->in_size)
-+ return false;
-+
-+ ++b->in_pos;
-+ ++s->pos;
-+ }
-+
-+ s->pos = 0;
-+
-+ return true;
-+}
-+#endif
-+
-+/* Decode the Stream Header field (the first 12 bytes of the .xz Stream). */
-+static enum xz_ret INIT dec_stream_header(struct xz_dec *s)
-+{
-+ if (!memeq(s->temp.buf, HEADER_MAGIC, HEADER_MAGIC_SIZE))
-+ return XZ_FORMAT_ERROR;
-+
-+ if (xz_crc32(s->temp.buf + HEADER_MAGIC_SIZE, 2, 0)
-+ != get_le32(s->temp.buf + HEADER_MAGIC_SIZE + 2))
-+ return XZ_DATA_ERROR;
-+
-+ if (s->temp.buf[HEADER_MAGIC_SIZE] != 0)
-+ return XZ_OPTIONS_ERROR;
-+
-+ /*
-+ * Of integrity checks, we support only none (Check ID = 0) and
-+ * CRC32 (Check ID = 1). However, if XZ_DEC_ANY_CHECK is defined,
-+ * we will accept other check types too, but then the check won't
-+ * be verified and a warning (XZ_UNSUPPORTED_CHECK) will be given.
-+ */
-+ s->check_type = s->temp.buf[HEADER_MAGIC_SIZE + 1];
-+
-+#ifdef XZ_DEC_ANY_CHECK
-+ if (s->check_type > XZ_CHECK_MAX)
-+ return XZ_OPTIONS_ERROR;
-+
-+ if (s->check_type > XZ_CHECK_CRC32)
-+ return XZ_UNSUPPORTED_CHECK;
-+#else
-+ if (s->check_type > XZ_CHECK_CRC32)
-+ return XZ_OPTIONS_ERROR;
-+#endif
-+
-+ return XZ_OK;
-+}
-+
-+/* Decode the Stream Footer field (the last 12 bytes of the .xz Stream) */
-+static enum xz_ret INIT dec_stream_footer(struct xz_dec *s)
-+{
-+ if (!memeq(s->temp.buf + 10, FOOTER_MAGIC, FOOTER_MAGIC_SIZE))
-+ return XZ_DATA_ERROR;
-+
-+ if (xz_crc32(s->temp.buf + 4, 6, 0) != get_le32(s->temp.buf))
-+ return XZ_DATA_ERROR;
-+
-+ /*
-+ * Validate Backward Size. Note that we never added the size of the
-+ * Index CRC32 field to s->index.size, thus we use s->index.size / 4
-+ * instead of s->index.size / 4 - 1.
-+ */
-+ if ((s->index.size >> 2) != get_le32(s->temp.buf + 4))
-+ return XZ_DATA_ERROR;
-+
-+ if (s->temp.buf[8] != 0 || s->temp.buf[9] != s->check_type)
-+ return XZ_DATA_ERROR;
-+
-+ /*
-+ * Use XZ_STREAM_END instead of XZ_OK to be more convenient
-+ * for the caller.
-+ */
-+ return XZ_STREAM_END;
-+}
-+
-+/* Decode the Block Header and initialize the filter chain. */
-+static enum xz_ret INIT dec_block_header(struct xz_dec *s)
-+{
-+ enum xz_ret ret;
-+
-+ /*
-+ * Validate the CRC32. We know that the temp buffer is at least
-+ * eight bytes so this is safe.
-+ */
-+ s->temp.size -= 4;
-+ if (xz_crc32(s->temp.buf, s->temp.size, 0)
-+ != get_le32(s->temp.buf + s->temp.size))
-+ return XZ_DATA_ERROR;
-+
-+ s->temp.pos = 2;
-+
-+ /*
-+ * Catch unsupported Block Flags. We support only one or two filters
-+ * in the chain, so we catch that with the same test.
-+ */
-+#ifdef XZ_DEC_BCJ
-+ if (s->temp.buf[1] & 0x3E)
-+#else
-+ if (s->temp.buf[1] & 0x3F)
-+#endif
-+ return XZ_OPTIONS_ERROR;
-+
-+ /* Compressed Size */
-+ if (s->temp.buf[1] & 0x40) {
-+ if (dec_vli(s, s->temp.buf, &s->temp.pos, s->temp.size)
-+ != XZ_STREAM_END)
-+ return XZ_DATA_ERROR;
-+
-+ s->block_header.compressed = s->vli;
-+ } else {
-+ s->block_header.compressed = VLI_UNKNOWN;
-+ }
-+
-+ /* Uncompressed Size */
-+ if (s->temp.buf[1] & 0x80) {
-+ if (dec_vli(s, s->temp.buf, &s->temp.pos, s->temp.size)
-+ != XZ_STREAM_END)
-+ return XZ_DATA_ERROR;
-+
-+ s->block_header.uncompressed = s->vli;
-+ } else {
-+ s->block_header.uncompressed = VLI_UNKNOWN;
-+ }
-+
-+#ifdef XZ_DEC_BCJ
-+ /* If there are two filters, the first one must be a BCJ filter. */
-+ s->bcj_active = s->temp.buf[1] & 0x01;
-+ if (s->bcj_active) {
-+ if (s->temp.size - s->temp.pos < 2)
-+ return XZ_OPTIONS_ERROR;
-+
-+ ret = xz_dec_bcj_reset(s->bcj, s->temp.buf[s->temp.pos++]);
-+ if (ret != XZ_OK)
-+ return ret;
-+
-+ /*
-+ * We don't support custom start offset,
-+ * so Size of Properties must be zero.
-+ */
-+ if (s->temp.buf[s->temp.pos++] != 0x00)
-+ return XZ_OPTIONS_ERROR;
-+ }
-+#endif
-+
-+ /* Valid Filter Flags always take at least two bytes. */
-+ if (s->temp.size - s->temp.pos < 2)
-+ return XZ_DATA_ERROR;
-+
-+ /* Filter ID = LZMA2 */
-+ if (s->temp.buf[s->temp.pos++] != 0x21)
-+ return XZ_OPTIONS_ERROR;
-+
-+ /* Size of Properties = 1-byte Filter Properties */
-+ if (s->temp.buf[s->temp.pos++] != 0x01)
-+ return XZ_OPTIONS_ERROR;
-+
-+ /* Filter Properties contains LZMA2 dictionary size. */
-+ if (s->temp.size - s->temp.pos < 1)
-+ return XZ_DATA_ERROR;
-+
-+ ret = xz_dec_lzma2_reset(s->lzma2, s->temp.buf[s->temp.pos++]);
-+ if (ret != XZ_OK)
-+ return ret;
-+
-+ /* The rest must be Header Padding. */
-+ while (s->temp.pos < s->temp.size)
-+ if (s->temp.buf[s->temp.pos++] != 0x00)
-+ return XZ_OPTIONS_ERROR;
-+
-+ s->temp.pos = 0;
-+ s->block.compressed = 0;
-+ s->block.uncompressed = 0;
-+
-+ return XZ_OK;
-+}
-+
-+static enum xz_ret INIT dec_main(struct xz_dec *s, struct xz_buf *b)
-+{
-+ enum xz_ret ret;
-+
-+ /*
-+ * Store the start position for the case when we are in the middle
-+ * of the Index field.
-+ */
-+ s->in_start = b->in_pos;
-+
-+ while (true) {
-+ switch (s->sequence) {
-+ case SEQ_STREAM_HEADER:
-+ /*
-+ * Stream Header is copied to s->temp, and then
-+ * decoded from there. This way if the caller
-+ * gives us only little input at a time, we can
-+ * still keep the Stream Header decoding code
-+ * simple. Similar approach is used in many places
-+ * in this file.
-+ */
-+ if (!fill_temp(s, b))
-+ return XZ_OK;
-+
-+ /*
-+ * If dec_stream_header() returns
-+ * XZ_UNSUPPORTED_CHECK, it is still possible
-+ * to continue decoding if working in multi-call
-+ * mode. Thus, update s->sequence before calling
-+ * dec_stream_header().
-+ */
-+ s->sequence = SEQ_BLOCK_START;
-+
-+ ret = dec_stream_header(s);
-+ if (ret != XZ_OK)
-+ return ret;
-+
-+ case SEQ_BLOCK_START:
-+ /* We need one byte of input to continue. */
-+ if (b->in_pos == b->in_size)
-+ return XZ_OK;
-+
-+ /* See if this is the beginning of the Index field. */
-+ if (b->in[b->in_pos] == 0) {
-+ s->in_start = b->in_pos++;
-+ s->sequence = SEQ_INDEX;
-+ break;
-+ }
-+
-+ /*
-+ * Calculate the size of the Block Header and
-+ * prepare to decode it.
-+ */
-+ s->block_header.size
-+ = ((uint32_t)b->in[b->in_pos] + 1) * 4;
-+
-+ s->temp.size = s->block_header.size;
-+ s->temp.pos = 0;
-+ s->sequence = SEQ_BLOCK_HEADER;
-+
-+ case SEQ_BLOCK_HEADER:
-+ if (!fill_temp(s, b))
-+ return XZ_OK;
-+
-+ ret = dec_block_header(s);
-+ if (ret != XZ_OK)
-+ return ret;
-+
-+ s->sequence = SEQ_BLOCK_UNCOMPRESS;
-+
-+ case SEQ_BLOCK_UNCOMPRESS:
-+ ret = dec_block(s, b);
-+ if (ret != XZ_STREAM_END)
-+ return ret;
-+
-+ s->sequence = SEQ_BLOCK_PADDING;
-+
-+ case SEQ_BLOCK_PADDING:
-+ /*
-+ * Size of Compressed Data + Block Padding
-+ * must be a multiple of four. We don't need
-+ * s->block.compressed for anything else
-+ * anymore, so we use it here to test the size
-+ * of the Block Padding field.
-+ */
-+ while (s->block.compressed & 3) {
-+ if (b->in_pos == b->in_size)
-+ return XZ_OK;
-+
-+ if (b->in[b->in_pos++] != 0)
-+ return XZ_DATA_ERROR;
-+
-+ ++s->block.compressed;
-+ }
-+
-+ s->sequence = SEQ_BLOCK_CHECK;
-+
-+ case SEQ_BLOCK_CHECK:
-+ if (s->check_type == XZ_CHECK_CRC32) {
-+ ret = crc32_validate(s, b);
-+ if (ret != XZ_STREAM_END)
-+ return ret;
-+ }
-+#ifdef XZ_DEC_ANY_CHECK
-+ else if (!check_skip(s, b)) {
-+ return XZ_OK;
-+ }
-+#endif
-+
-+ s->sequence = SEQ_BLOCK_START;
-+ break;
-+
-+ case SEQ_INDEX:
-+ ret = dec_index(s, b);
-+ if (ret != XZ_STREAM_END)
-+ return ret;
-+
-+ s->sequence = SEQ_INDEX_PADDING;
-+
-+ case SEQ_INDEX_PADDING:
-+ while ((s->index.size + (b->in_pos - s->in_start))
-+ & 3) {
-+ if (b->in_pos == b->in_size) {
-+ index_update(s, b);
-+ return XZ_OK;
-+ }
-+
-+ if (b->in[b->in_pos++] != 0)
-+ return XZ_DATA_ERROR;
-+ }
-+
-+ /* Finish the CRC32 value and Index size. */
-+ index_update(s, b);
-+
-+ /* Compare the hashes to validate the Index field. */
-+ if (!memeq(&s->block.hash, &s->index.hash,
-+ sizeof(s->block.hash)))
-+ return XZ_DATA_ERROR;
-+
-+ s->sequence = SEQ_INDEX_CRC32;
-+
-+ case SEQ_INDEX_CRC32:
-+ ret = crc32_validate(s, b);
-+ if (ret != XZ_STREAM_END)
-+ return ret;
-+
-+ s->temp.size = STREAM_HEADER_SIZE;
-+ s->sequence = SEQ_STREAM_FOOTER;
-+
-+ case SEQ_STREAM_FOOTER:
-+ if (!fill_temp(s, b))
-+ return XZ_OK;
-+
-+ return dec_stream_footer(s);
-+ }
-+ }
-+
-+ /* Never reached */
-+}
-+
-+XZ_EXTERN void INIT xz_dec_reset(struct xz_dec *s)
-+{
-+ s->sequence = SEQ_STREAM_HEADER;
-+ s->allow_buf_error = false;
-+ s->pos = 0;
-+ s->crc32 = 0;
-+ memzero(&s->block, sizeof(s->block));
-+ memzero(&s->index, sizeof(s->index));
-+ s->temp.pos = 0;
-+ s->temp.size = STREAM_HEADER_SIZE;
-+}
-+
-+/*
-+ * xz_dec_run() is a wrapper for dec_main() to handle some special cases in
-+ * multi-call and single-call decoding.
-+ *
-+ * In multi-call mode, we must return XZ_BUF_ERROR when it seems clear that we
-+ * are not going to make any progress anymore. This is to prevent the caller
-+ * from calling us infinitely when the input file is truncated or otherwise
-+ * corrupt. Since zlib-style API allows that the caller fills the input buffer
-+ * only when the decoder doesn't produce any new output, we have to be careful
-+ * to avoid returning XZ_BUF_ERROR too easily: XZ_BUF_ERROR is returned only
-+ * after the second consecutive call to xz_dec_run() that makes no progress.
-+ *
-+ * In single-call mode, if we couldn't decode everything and no error
-+ * occurred, either the input is truncated or the output buffer is too small.
-+ * Since we know that the last input byte never produces any output, we know
-+ * that if all the input was consumed and decoding wasn't finished, the file
-+ * must be corrupt. Otherwise the output buffer has to be too small or the
-+ * file is corrupt in a way that decoding it produces too big output.
-+ *
-+ * If single-call decoding fails, we reset b->in_pos and b->out_pos back to
-+ * their original values. This is because with some filter chains there won't
-+ * be any valid uncompressed data in the output buffer unless the decoding
-+ * actually succeeds (that's the price to pay of using the output buffer as
-+ * the workspace).
-+ */
-+XZ_EXTERN enum xz_ret INIT xz_dec_run(struct xz_dec *s, struct xz_buf *b)
-+{
-+ size_t in_start;
-+ size_t out_start;
-+ enum xz_ret ret;
-+
-+ if (DEC_IS_SINGLE(s->mode))
-+ xz_dec_reset(s);
-+
-+ in_start = b->in_pos;
-+ out_start = b->out_pos;
-+ ret = dec_main(s, b);
-+
-+ if (DEC_IS_SINGLE(s->mode)) {
-+ if (ret == XZ_OK)
-+ ret = b->in_pos == b->in_size
-+ ? XZ_DATA_ERROR : XZ_BUF_ERROR;
-+
-+ if (ret != XZ_STREAM_END) {
-+ b->in_pos = in_start;
-+ b->out_pos = out_start;
-+ }
-+
-+ } else if (ret == XZ_OK && in_start == b->in_pos
-+ && out_start == b->out_pos) {
-+ if (s->allow_buf_error)
-+ ret = XZ_BUF_ERROR;
-+
-+ s->allow_buf_error = true;
-+ } else {
-+ s->allow_buf_error = false;
-+ }
-+
-+ return ret;
-+}
-+
-+XZ_EXTERN struct xz_dec *INIT xz_dec_init(enum xz_mode mode, uint32_t dict_max)
-+{
-+ struct xz_dec *s = malloc(sizeof(*s));
-+ if (s == NULL)
-+ return NULL;
-+
-+ s->mode = mode;
-+
-+#ifdef XZ_DEC_BCJ
-+ s->bcj = xz_dec_bcj_create(DEC_IS_SINGLE(mode));
-+ if (s->bcj == NULL)
-+ goto error_bcj;
-+#endif
-+
-+ s->lzma2 = xz_dec_lzma2_create(mode, dict_max);
-+ if (s->lzma2 == NULL)
-+ goto error_lzma2;
-+
-+ xz_dec_reset(s);
-+ return s;
-+
-+error_lzma2:
-+#ifdef XZ_DEC_BCJ
-+ xz_dec_bcj_end(s->bcj);
-+error_bcj:
-+#endif
-+ free(s);
-+ return NULL;
-+}
-+
-+XZ_EXTERN void INIT xz_dec_end(struct xz_dec *s)
-+{
-+ if (s != NULL) {
-+ xz_dec_lzma2_end(s->lzma2);
-+#ifdef XZ_DEC_BCJ
-+ xz_dec_bcj_end(s->bcj);
-+#endif
-+ free(s);
-+ }
-+}
-diff --git a/xen/common/xz/lzma2.h b/xen/common/xz/lzma2.h
-new file mode 100644
---- /dev/null
-+++ b/xen/common/xz/lzma2.h
-@@ -0,0 +1,204 @@
-+/*
-+ * LZMA2 definitions
-+ *
-+ * Authors: Lasse Collin <lasse.collin@tukaani.org>
-+ * Igor Pavlov <http://7-zip.org/>
-+ *
-+ * This file has been put into the public domain.
-+ * You can do whatever you want with this file.
-+ */
-+
-+#ifndef XZ_LZMA2_H
-+#define XZ_LZMA2_H
-+
-+/* Range coder constants */
-+#define RC_SHIFT_BITS 8
-+#define RC_TOP_BITS 24
-+#define RC_TOP_VALUE (1 << RC_TOP_BITS)
-+#define RC_BIT_MODEL_TOTAL_BITS 11
-+#define RC_BIT_MODEL_TOTAL (1 << RC_BIT_MODEL_TOTAL_BITS)
-+#define RC_MOVE_BITS 5
-+
-+/*
-+ * Maximum number of position states. A position state is the lowest pb
-+ * number of bits of the current uncompressed offset. In some places there
-+ * are different sets of probabilities for different position states.
-+ */
-+#define POS_STATES_MAX (1 << 4)
-+
-+/*
-+ * This enum is used to track which LZMA symbols have occurred most recently
-+ * and in which order. This information is used to predict the next symbol.
-+ *
-+ * Symbols:
-+ * - Literal: One 8-bit byte
-+ * - Match: Repeat a chunk of data at some distance
-+ * - Long repeat: Multi-byte match at a recently seen distance
-+ * - Short repeat: One-byte repeat at a recently seen distance
-+ *
-+ * The symbol names are in from STATE_oldest_older_previous. REP means
-+ * either short or long repeated match, and NONLIT means any non-literal.
-+ */
-+enum lzma_state {
-+ STATE_LIT_LIT,
-+ STATE_MATCH_LIT_LIT,
-+ STATE_REP_LIT_LIT,
-+ STATE_SHORTREP_LIT_LIT,
-+ STATE_MATCH_LIT,
-+ STATE_REP_LIT,
-+ STATE_SHORTREP_LIT,
-+ STATE_LIT_MATCH,
-+ STATE_LIT_LONGREP,
-+ STATE_LIT_SHORTREP,
-+ STATE_NONLIT_MATCH,
-+ STATE_NONLIT_REP
-+};
-+
-+/* Total number of states */
-+#define STATES 12
-+
-+/* The lowest 7 states indicate that the previous state was a literal. */
-+#define LIT_STATES 7
-+
-+/* Indicate that the latest symbol was a literal. */
-+static inline void INIT lzma_state_literal(enum lzma_state *state)
-+{
-+ if (*state <= STATE_SHORTREP_LIT_LIT)
-+ *state = STATE_LIT_LIT;
-+ else if (*state <= STATE_LIT_SHORTREP)
-+ *state -= 3;
-+ else
-+ *state -= 6;
-+}
-+
-+/* Indicate that the latest symbol was a match. */
-+static inline void INIT lzma_state_match(enum lzma_state *state)
-+{
-+ *state = *state < LIT_STATES ? STATE_LIT_MATCH : STATE_NONLIT_MATCH;
-+}
-+
-+/* Indicate that the latest state was a long repeated match. */
-+static inline void INIT lzma_state_long_rep(enum lzma_state *state)
-+{
-+ *state = *state < LIT_STATES ? STATE_LIT_LONGREP : STATE_NONLIT_REP;
-+}
-+
-+/* Indicate that the latest symbol was a short match. */
-+static inline void INIT lzma_state_short_rep(enum lzma_state *state)
-+{
-+ *state = *state < LIT_STATES ? STATE_LIT_SHORTREP : STATE_NONLIT_REP;
-+}
-+
-+/* Test if the previous symbol was a literal. */
-+static inline bool_t INIT lzma_state_is_literal(enum lzma_state state)
-+{
-+ return state < LIT_STATES;
-+}
-+
-+/* Each literal coder is divided in three sections:
-+ * - 0x001-0x0FF: Without match byte
-+ * - 0x101-0x1FF: With match byte; match bit is 0
-+ * - 0x201-0x2FF: With match byte; match bit is 1
-+ *
-+ * Match byte is used when the previous LZMA symbol was something else than
-+ * a literal (that is, it was some kind of match).
-+ */
-+#define LITERAL_CODER_SIZE 0x300
-+
-+/* Maximum number of literal coders */
-+#define LITERAL_CODERS_MAX (1 << 4)
-+
-+/* Minimum length of a match is two bytes. */
-+#define MATCH_LEN_MIN 2
-+
-+/* Match length is encoded with 4, 5, or 10 bits.
-+ *
-+ * Length Bits
-+ * 2-9 4 = Choice=0 + 3 bits
-+ * 10-17 5 = Choice=1 + Choice2=0 + 3 bits
-+ * 18-273 10 = Choice=1 + Choice2=1 + 8 bits
-+ */
-+#define LEN_LOW_BITS 3
-+#define LEN_LOW_SYMBOLS (1 << LEN_LOW_BITS)
-+#define LEN_MID_BITS 3
-+#define LEN_MID_SYMBOLS (1 << LEN_MID_BITS)
-+#define LEN_HIGH_BITS 8
-+#define LEN_HIGH_SYMBOLS (1 << LEN_HIGH_BITS)
-+#define LEN_SYMBOLS (LEN_LOW_SYMBOLS + LEN_MID_SYMBOLS + LEN_HIGH_SYMBOLS)
-+
-+/*
-+ * Maximum length of a match is 273 which is a result of the encoding
-+ * described above.
-+ */
-+#define MATCH_LEN_MAX (MATCH_LEN_MIN + LEN_SYMBOLS - 1)
-+
-+/*
-+ * Different sets of probabilities are used for match distances that have
-+ * very short match length: Lengths of 2, 3, and 4 bytes have a separate
-+ * set of probabilities for each length. The matches with longer length
-+ * use a shared set of probabilities.
-+ */
-+#define DIST_STATES 4
-+
-+/*
-+ * Get the index of the appropriate probability array for decoding
-+ * the distance slot.
-+ */
-+static inline uint32_t INIT lzma_get_dist_state(uint32_t len)
-+{
-+ return len < DIST_STATES + MATCH_LEN_MIN
-+ ? len - MATCH_LEN_MIN : DIST_STATES - 1;
-+}
-+
-+/*
-+ * The highest two bits of a 32-bit match distance are encoded using six bits.
-+ * This six-bit value is called a distance slot. This way encoding a 32-bit
-+ * value takes 6-36 bits, larger values taking more bits.
-+ */
-+#define DIST_SLOT_BITS 6
-+#define DIST_SLOTS (1 << DIST_SLOT_BITS)
-+
-+/* Match distances up to 127 are fully encoded using probabilities. Since
-+ * the highest two bits (distance slot) are always encoded using six bits,
-+ * the distances 0-3 don't need any additional bits to encode, since the
-+ * distance slot itself is the same as the actual distance. DIST_MODEL_START
-+ * indicates the first distance slot where at least one additional bit is
-+ * needed.
-+ */
-+#define DIST_MODEL_START 4
-+
-+/*
-+ * Match distances greater than 127 are encoded in three pieces:
-+ * - distance slot: the highest two bits
-+ * - direct bits: 2-26 bits below the highest two bits
-+ * - alignment bits: four lowest bits
-+ *
-+ * Direct bits don't use any probabilities.
-+ *
-+ * The distance slot value of 14 is for distances 128-191.
-+ */
-+#define DIST_MODEL_END 14
-+
-+/* Distance slots that indicate a distance <= 127. */
-+#define FULL_DISTANCES_BITS (DIST_MODEL_END / 2)
-+#define FULL_DISTANCES (1 << FULL_DISTANCES_BITS)
-+
-+/*
-+ * For match distances greater than 127, only the highest two bits and the
-+ * lowest four bits (alignment) is encoded using probabilities.
-+ */
-+#define ALIGN_BITS 4
-+#define ALIGN_SIZE (1 << ALIGN_BITS)
-+#define ALIGN_MASK (ALIGN_SIZE - 1)
-+
-+/* Total number of all probability variables */
-+#define PROBS_TOTAL (1846 + LITERAL_CODERS_MAX * LITERAL_CODER_SIZE)
-+
-+/*
-+ * LZMA remembers the four most recent match distances. Reusing these
-+ * distances tends to take less space than re-encoding the actual
-+ * distance value.
-+ */
-+#define REPS 4
-+
-+#endif
-diff --git a/xen/common/xz/private.h b/xen/common/xz/private.h
-new file mode 100644
---- /dev/null
-+++ b/xen/common/xz/private.h
-@@ -0,0 +1,271 @@
-+/*
-+ * Private includes and definitions
-+ *
-+ * Author: Lasse Collin <lasse.collin@tukaani.org>
-+ *
-+ * This file has been put into the public domain.
-+ * You can do whatever you want with this file.
-+ */
-+
-+#ifndef XZ_PRIVATE_H
-+#define XZ_PRIVATE_H
-+
-+#include <xen/kernel.h>
-+#include <asm/byteorder.h>
-+#define get_le32(p) le32_to_cpup((const uint32_t *)(p))
-+
-+#if 1 /* ndef CONFIG_??? */
-+static inline u32 INIT get_unaligned_le32(void *p)
-+{
-+ return le32_to_cpup(p);
-+}
-+
-+static inline void INIT put_unaligned_le32(u32 val, void *p)
-+{
-+ *(__force __le32*)p = cpu_to_le32(val);
-+}
-+#else
-+#include <asm/unaligned.h>
-+
-+static inline u32 INIT get_unaligned_le32(void *p)
-+{
-+ return le32_to_cpu(__get_unaligned(p, 4));
-+}
-+
-+static inline void INIT put_unaligned_le32(u32 val, void *p)
-+{
-+ __put_unaligned(cpu_to_le32(val), p, 4);
-+}
-+#endif
-+
-+#define false 0
-+#define true 1
-+
-+/**
-+ * enum xz_mode - Operation mode
-+ *
-+ * @XZ_SINGLE: Single-call mode. This uses less RAM than
-+ * than multi-call modes, because the LZMA2
-+ * dictionary doesn't need to be allocated as
-+ * part of the decoder state. All required data
-+ * structures are allocated at initialization,
-+ * so xz_dec_run() cannot return XZ_MEM_ERROR.
-+ * @XZ_PREALLOC: Multi-call mode with preallocated LZMA2
-+ * dictionary buffer. All data structures are
-+ * allocated at initialization, so xz_dec_run()
-+ * cannot return XZ_MEM_ERROR.
-+ * @XZ_DYNALLOC: Multi-call mode. The LZMA2 dictionary is
-+ * allocated once the required size has been
-+ * parsed from the stream headers. If the
-+ * allocation fails, xz_dec_run() will return
-+ * XZ_MEM_ERROR.
-+ *
-+ * It is possible to enable support only for a subset of the above
-+ * modes at compile time by defining XZ_DEC_SINGLE, XZ_DEC_PREALLOC,
-+ * or XZ_DEC_DYNALLOC. The xz_dec kernel module is always compiled
-+ * with support for all operation modes, but the preboot code may
-+ * be built with fewer features to minimize code size.
-+ */
-+enum xz_mode {
-+ XZ_SINGLE,
-+ XZ_PREALLOC,
-+ XZ_DYNALLOC
-+};
-+
-+/**
-+ * enum xz_ret - Return codes
-+ * @XZ_OK: Everything is OK so far. More input or more
-+ * output space is required to continue. This
-+ * return code is possible only in multi-call mode
-+ * (XZ_PREALLOC or XZ_DYNALLOC).
-+ * @XZ_STREAM_END: Operation finished successfully.
-+ * @XZ_UNSUPPORTED_CHECK: Integrity check type is not supported. Decoding
-+ * is still possible in multi-call mode by simply
-+ * calling xz_dec_run() again.
-+ * Note that this return value is used only if
-+ * XZ_DEC_ANY_CHECK was defined at build time,
-+ * which is not used in the kernel. Unsupported
-+ * check types return XZ_OPTIONS_ERROR if
-+ * XZ_DEC_ANY_CHECK was not defined at build time.
-+ * @XZ_MEM_ERROR: Allocating memory failed. This return code is
-+ * possible only if the decoder was initialized
-+ * with XZ_DYNALLOC. The amount of memory that was
-+ * tried to be allocated was no more than the
-+ * dict_max argument given to xz_dec_init().
-+ * @XZ_MEMLIMIT_ERROR: A bigger LZMA2 dictionary would be needed than
-+ * allowed by the dict_max argument given to
-+ * xz_dec_init(). This return value is possible
-+ * only in multi-call mode (XZ_PREALLOC or
-+ * XZ_DYNALLOC); the single-call mode (XZ_SINGLE)
-+ * ignores the dict_max argument.
-+ * @XZ_FORMAT_ERROR: File format was not recognized (wrong magic
-+ * bytes).
-+ * @XZ_OPTIONS_ERROR: This implementation doesn't support the requested
-+ * compression options. In the decoder this means
-+ * that the header CRC32 matches, but the header
-+ * itself specifies something that we don't support.
-+ * @XZ_DATA_ERROR: Compressed data is corrupt.
-+ * @XZ_BUF_ERROR: Cannot make any progress. Details are slightly
-+ * different between multi-call and single-call
-+ * mode; more information below.
-+ *
-+ * In multi-call mode, XZ_BUF_ERROR is returned when two consecutive calls
-+ * to XZ code cannot consume any input and cannot produce any new output.
-+ * This happens when there is no new input available, or the output buffer
-+ * is full while at least one output byte is still pending. Assuming your
-+ * code is not buggy, you can get this error only when decoding a compressed
-+ * stream that is truncated or otherwise corrupt.
-+ *
-+ * In single-call mode, XZ_BUF_ERROR is returned only when the output buffer
-+ * is too small or the compressed input is corrupt in a way that makes the
-+ * decoder produce more output than the caller expected. When it is
-+ * (relatively) clear that the compressed input is truncated, XZ_DATA_ERROR
-+ * is used instead of XZ_BUF_ERROR.
-+ */
-+enum xz_ret {
-+ XZ_OK,
-+ XZ_STREAM_END,
-+ XZ_UNSUPPORTED_CHECK,
-+ XZ_MEM_ERROR,
-+ XZ_MEMLIMIT_ERROR,
-+ XZ_FORMAT_ERROR,
-+ XZ_OPTIONS_ERROR,
-+ XZ_DATA_ERROR,
-+ XZ_BUF_ERROR
-+};
-+
-+/**
-+ * struct xz_buf - Passing input and output buffers to XZ code
-+ * @in: Beginning of the input buffer. This may be NULL if and only
-+ * if in_pos is equal to in_size.
-+ * @in_pos: Current position in the input buffer. This must not exceed
-+ * in_size.
-+ * @in_size: Size of the input buffer
-+ * @out: Beginning of the output buffer. This may be NULL if and only
-+ * if out_pos is equal to out_size.
-+ * @out_pos: Current position in the output buffer. This must not exceed
-+ * out_size.
-+ * @out_size: Size of the output buffer
-+ *
-+ * Only the contents of the output buffer from out[out_pos] onward, and
-+ * the variables in_pos and out_pos are modified by the XZ code.
-+ */
-+struct xz_buf {
-+ const uint8_t *in;
-+ size_t in_pos;
-+ size_t in_size;
-+
-+ uint8_t *out;
-+ size_t out_pos;
-+ size_t out_size;
-+};
-+
-+/**
-+ * struct xz_dec - Opaque type to hold the XZ decoder state
-+ */
-+struct xz_dec;
-+
-+/* If no specific decoding mode is requested, enable support for all modes. */
-+#if !defined(XZ_DEC_SINGLE) && !defined(XZ_DEC_PREALLOC) \
-+ && !defined(XZ_DEC_DYNALLOC)
-+# define XZ_DEC_SINGLE
-+# define XZ_DEC_PREALLOC
-+# define XZ_DEC_DYNALLOC
-+#endif
-+
-+/*
-+ * The DEC_IS_foo(mode) macros are used in "if" statements. If only some
-+ * of the supported modes are enabled, these macros will evaluate to true or
-+ * false at compile time and thus allow the compiler to omit unneeded code.
-+ */
-+#ifdef XZ_DEC_SINGLE
-+# define DEC_IS_SINGLE(mode) ((mode) == XZ_SINGLE)
-+#else
-+# define DEC_IS_SINGLE(mode) (false)
-+#endif
-+
-+#ifdef XZ_DEC_PREALLOC
-+# define DEC_IS_PREALLOC(mode) ((mode) == XZ_PREALLOC)
-+#else
-+# define DEC_IS_PREALLOC(mode) (false)
-+#endif
-+
-+#ifdef XZ_DEC_DYNALLOC
-+# define DEC_IS_DYNALLOC(mode) ((mode) == XZ_DYNALLOC)
-+#else
-+# define DEC_IS_DYNALLOC(mode) (false)
-+#endif
-+
-+#if !defined(XZ_DEC_SINGLE)
-+# define DEC_IS_MULTI(mode) (true)
-+#elif defined(XZ_DEC_PREALLOC) || defined(XZ_DEC_DYNALLOC)
-+# define DEC_IS_MULTI(mode) ((mode) != XZ_SINGLE)
-+#else
-+# define DEC_IS_MULTI(mode) (false)
-+#endif
-+
-+/*
-+ * If any of the BCJ filter decoders are wanted, define XZ_DEC_BCJ.
-+ * XZ_DEC_BCJ is used to enable generic support for BCJ decoders.
-+ */
-+#ifndef XZ_DEC_BCJ
-+# if defined(XZ_DEC_X86) || defined(XZ_DEC_POWERPC) \
-+ || defined(XZ_DEC_IA64) || defined(XZ_DEC_ARM) \
-+ || defined(XZ_DEC_ARM) || defined(XZ_DEC_ARMTHUMB) \
-+ || defined(XZ_DEC_SPARC)
-+# define XZ_DEC_BCJ
-+# endif
-+#endif
-+
-+/*
-+ * Allocate memory for LZMA2 decoder. xz_dec_lzma2_reset() must be used
-+ * before calling xz_dec_lzma2_run().
-+ */
-+XZ_EXTERN struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode,
-+ uint32_t dict_max);
-+
-+/*
-+ * Decode the LZMA2 properties (one byte) and reset the decoder. Return
-+ * XZ_OK on success, XZ_MEMLIMIT_ERROR if the preallocated dictionary is not
-+ * big enough, and XZ_OPTIONS_ERROR if props indicates something that this
-+ * decoder doesn't support.
-+ */
-+XZ_EXTERN enum xz_ret xz_dec_lzma2_reset(struct xz_dec_lzma2 *s,
-+ uint8_t props);
-+
-+/* Decode raw LZMA2 stream from b->in to b->out. */
-+XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s,
-+ struct xz_buf *b);
-+
-+/* Free the memory allocated for the LZMA2 decoder. */
-+XZ_EXTERN void xz_dec_lzma2_end(struct xz_dec_lzma2 *s);
-+
-+#ifdef XZ_DEC_BCJ
-+/*
-+ * Allocate memory for BCJ decoders. xz_dec_bcj_reset() must be used before
-+ * calling xz_dec_bcj_run().
-+ */
-+XZ_EXTERN struct xz_dec_bcj *xz_dec_bcj_create(bool_t single_call);
-+
-+/*
-+ * Decode the Filter ID of a BCJ filter. This implementation doesn't
-+ * support custom start offsets, so no decoding of Filter Properties
-+ * is needed. Returns XZ_OK if the given Filter ID is supported.
-+ * Otherwise XZ_OPTIONS_ERROR is returned.
-+ */
-+XZ_EXTERN enum xz_ret xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id);
-+
-+/*
-+ * Decode raw BCJ + LZMA2 stream. This must be used only if there actually is
-+ * a BCJ filter in the chain. If the chain has only LZMA2, xz_dec_lzma2_run()
-+ * must be called directly.
-+ */
-+XZ_EXTERN enum xz_ret xz_dec_bcj_run(struct xz_dec_bcj *s,
-+ struct xz_dec_lzma2 *lzma2,
-+ struct xz_buf *b);
-+
-+/* Free the memory allocated for the BCJ filters. */
-+#define xz_dec_bcj_end(s) free(s)
-+#endif
-+
-+#endif
-diff --git a/xen/common/xz/stream.h b/xen/common/xz/stream.h
-new file mode 100644
---- /dev/null
-+++ b/xen/common/xz/stream.h
-@@ -0,0 +1,55 @@
-+/*
-+ * Definitions for handling the .xz file format
-+ *
-+ * Author: Lasse Collin <lasse.collin@tukaani.org>
-+ *
-+ * This file has been put into the public domain.
-+ * You can do whatever you want with this file.
-+ */
-+
-+#ifndef XZ_STREAM_H
-+#define XZ_STREAM_H
-+
-+/*
-+ * See the .xz file format specification at
-+ * http://tukaani.org/xz/xz-file-format.txt
-+ * to understand the container format.
-+ */
-+
-+#define STREAM_HEADER_SIZE 12
-+
-+#define HEADER_MAGIC "\3757zXZ"
-+#define HEADER_MAGIC_SIZE 6
-+
-+#define FOOTER_MAGIC "YZ"
-+#define FOOTER_MAGIC_SIZE 2
-+
-+/*
-+ * Variable-length integer can hold a 63-bit unsigned integer or a special
-+ * value indicating that the value is unknown.
-+ *
-+ * Experimental: vli_type can be defined to uint32_t to save a few bytes
-+ * in code size (no effect on speed). Doing so limits the uncompressed and
-+ * compressed size of the file to less than 256 MiB and may also weaken
-+ * error detection slightly.
-+ */
-+typedef uint64_t vli_type;
-+
-+#define VLI_MAX ((vli_type)-1 / 2)
-+#define VLI_UNKNOWN ((vli_type)-1)
-+
-+/* Maximum encoded size of a VLI */
-+#define VLI_BYTES_MAX (sizeof(vli_type) * 8 / 7)
-+
-+/* Integrity Check types */
-+enum xz_check {
-+ XZ_CHECK_NONE = 0,
-+ XZ_CHECK_CRC32 = 1,
-+ XZ_CHECK_CRC64 = 4,
-+ XZ_CHECK_SHA256 = 10
-+};
-+
-+/* Maximum possible Check ID */
-+#define XZ_CHECK_MAX 15
-+
-+#endif
-diff --git a/xen/include/xen/decompress.h b/xen/include/xen/decompress.h
---- a/xen/include/xen/decompress.h
-+++ b/xen/include/xen/decompress.h
-@@ -31,7 +31,7 @@
- * dependent).
- */
-
--decompress_fn bunzip2, unlzma, unlzo;
-+decompress_fn bunzip2, unxz, unlzma, unlzo;
-
- int decompress(void *inbuf, unsigned int len, void *outbuf); \ No newline at end of file
diff --git a/kernels/xen/proc-xen.mount b/kernels/xen/proc-xen.mount
new file mode 100644
index 000000000..0eaa59c5f
--- /dev/null
+++ b/kernels/xen/proc-xen.mount
@@ -0,0 +1,9 @@
+[Unit]
+Description=Mount /proc/xen files
+ConditionPathExists=/proc/xen
+RefuseManualStop=true
+
+[Mount]
+What=xenfs
+Where=/proc/xen
+Type=xenfs
diff --git a/kernels/xen/texi2html.patch b/kernels/xen/texi2html.patch
new file mode 100644
index 000000000..8f22773c9
--- /dev/null
+++ b/kernels/xen/texi2html.patch
@@ -0,0 +1,10 @@
+--- a/tools/Makefile 2012-09-17 22:25:54.683349679 -0500
++++ b/tools/Makefile 2012-09-17 22:49:08.923331802 -0500
+@@ -164,6 +164,7 @@
+ $(QEMU_ROOT)/xen-setup \
+ --extra-cflags="$(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \
+ $(IOEMU_CONFIGURE_CROSS); \
++ sed -i 's/number[ ]/number-sections /' Makefile; \
+ $(MAKE) install
+
+ subdir-clean-qemu-xen-traditional-dir:
diff --git a/kernels/xen/var-lib-xenstored.mount b/kernels/xen/var-lib-xenstored.mount
new file mode 100644
index 000000000..1c2015ca2
--- /dev/null
+++ b/kernels/xen/var-lib-xenstored.mount
@@ -0,0 +1,10 @@
+[Unit]
+Description=mount xenstore file system
+ConditionPathExists=/proc/xen
+RefuseManualStop=true
+
+[Mount]
+What=xenstore
+Where=/var/lib/xenstored
+Type=tmpfs
+Options=mode=755
diff --git a/kernels/xen/xen.conf b/kernels/xen/xen.conf
new file mode 100644
index 000000000..37a5b59f7
--- /dev/null
+++ b/kernels/xen/xen.conf
@@ -0,0 +1,19 @@
+xen-evtchn
+xen-gntdev
+xen-gntalloc
+xen-blkback
+xen-netback
+xen-pciback
+xen-acpi-processor
+## xen-acpi-processor: This module may not work on all machines; try removing this first if it causes issues.
+
+## The following were included in xencommons, but were not inserted by systemd:
+# evtchn
+# gntdev
+# netbk
+# blkbk
+# xen-scsibk
+# usbbk
+# pciback
+# blktap2
+# blktap
diff --git a/kernels/xen/xen.install b/kernels/xen/xen.install
new file mode 100644
index 000000000..5664948c7
--- /dev/null
+++ b/kernels/xen/xen.install
@@ -0,0 +1,38 @@
+install_msg() {
+ cat << __EOF__
+===> IMPORTANT NOTICE:
+
+In order to complete the installation, and enable Xen,
+at the very least you must:
+1. Edit your GRUB2 config files as specified at
+ https://wiki.archlinux.org/index.php/Xen#Bootloader_Configuration
+2. Issue the following commands to allow you to create and start VMs:
+ systemctl enable xenstored.service
+ systemctl enable xenconsoled.service
+ systemctl enable xendomains.service
+For more information refer to the Wiki:
+ https://wiki.archlinux.org/index.php/Xen
+__EOF__
+
+}
+
+post_upgrade() {
+ install_msg
+}
+
+pre_remove() {
+ for i in xen{stored,consoled,domains}.service; do
+ systemctl disable $serv
+ systemctl stop $serv
+ done
+}
+
+post_remove() {
+ cat << __EOF__
+===> IMPORTANT NOTICE:
+
+In order to finish removing Xen, you will need to modify
+your bootloader configuration files to load your Linux
+kernel instead of Xen kernel.
+__EOF__
+}
diff --git a/kernels/xen/xen.patch b/kernels/xen/xen.patch
deleted file mode 100755
index 8b1b5585d..000000000
--- a/kernels/xen/xen.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- xen-4.0.1.orig/Config.mk 2010-08-25 12:22:44.000000000 +0200
-+++ xen-4.0.1/Config.mk 2010-11-02 23:38:11.575000000 +0100
-@@ -187,4 +187,4 @@
- CONFIG_MINITERM ?= n
- CONFIG_LOMOUNT ?= n
-
---include $(XEN_ROOT)/.config
-+#-include $(XEN_ROOT)/.config
-
---- xen-4.0.1/Config.mk.orig 2010-08-25 11:22:44.000000000 +0100
-+++ xen-4.0.1/Config.mk 2011-01-29 17:40:43.000000000 +0000
-@@ -135,6 +135,8 @@
-
- LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i))
- CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
-+# temporary compile fix for rawhide
-+CFLAGS += -Wunused-but-set-variable -Wno-error=unused-but-set-variable -Wuninitialized -Wno-error=uninitialized
-
- EMBEDDED_EXTRA_CFLAGS := -nopie -fno-stack-protector -fno-stack-protector-all
- EMBEDDED_EXTRA_CFLAGS += -fno-exceptions
-
diff --git a/kernels/xen/xenconsoled.service b/kernels/xen/xenconsoled.service
new file mode 100644
index 000000000..edcc8e69f
--- /dev/null
+++ b/kernels/xen/xenconsoled.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Xenconsoled - handles logging from guest consoles and hypervisor
+Requires=proc-xen.mount
+After=proc-xen.mount xenstored.service
+ConditionPathExists=/proc/xen
+
+[Service]
+Type=simple
+Environment=XENCONSOLED_ARGS=
+Environment=XENCONSOLED_LOG=none
+Environment=XENCONSOLED_LOG_DIR=/var/log/xen/console
+EnvironmentFile=-/etc/conf.d/xenconsoled
+PIDFile=/var/run/xenconsoled.pid
+ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
+ExecStart=/usr/sbin/xenconsoled --log=${XENCONSOLED_LOG} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/kernels/xen/xendomU@.service b/kernels/xen/xendomU@.service
new file mode 100644
index 000000000..57d6e520d
--- /dev/null
+++ b/kernels/xen/xendomU@.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=xen domU service for domain %i
+Requires=xenstored.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/sbin/xl create /etc/xen/conf/%i.cfg
+ExecStop=/usr/sbin/xl shutdown %i
+
+[Install]
+WantedBy=multi-user.target
diff --git a/kernels/xen/xendomains.service b/kernels/xen/xendomains.service
new file mode 100644
index 000000000..d49bd5593
--- /dev/null
+++ b/kernels/xen/xendomains.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Xendomains - start and stop guests on boot and shutdown
+Requires=proc-xen.mount xenstored.service
+After=proc-xen.mount xenstored.service xenconsoled.service
+ConditionPathExists=/proc/xen
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
+ExecStart=/etc/xen/scripts/xendomains start
+ExecStop=/etc/xen/scripts/xendomains stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/kernels/xen/xenstored.service b/kernels/xen/xenstored.service
new file mode 100644
index 000000000..9025f2244
--- /dev/null
+++ b/kernels/xen/xenstored.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Xenstored - daemon managing xenstore file system
+Requires=proc-xen.mount var-lib-xenstored.mount
+After=proc-xen.mount var-lib-xenstored.mount
+Before=libvirtd.service libvirt-guests.service
+RefuseManualStop=true
+ConditionPathExists=/proc/xen
+
+[Service]
+Type=forking
+Environment=XENSTORED_ARGS=
+EnvironmentFile=-/etc/conf.d/xenstored
+PIDFile=/var/run/xenstored.pid
+ExecStartPre=/usr/bin/grep -q control_d /proc/xen/capabilities
+ExecStart=/usr/sbin/xenstored --pid-file /var/run/xenstored.pid $XENSTORED_ARGS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/libre/aspell-pl-libre/PKGBUILD b/libre/aspell-pl-libre/PKGBUILD
deleted file mode 100755
index 6da90e449..000000000
--- a/libre/aspell-pl-libre/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# $Id: PKGBUILD 43278 2011-03-24 13:25:37Z andrea $
-# Maintainer: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
-# Contributor: Arkadiusz Laczynski <alaczynski@gmail.com>
-# Contributor (Parabola): Jorge Lopez <jorginho@adinet.com.uy>
-
-_pkgname=aspell-pl
-pkgname=aspell-pl-libre
-pkgver=20111117
-pkgrel=1
-pkgdesc="Polish dictionary for aspell"
-arch=('i686' 'x86_64')
-url="http://www.sjp.pl/slownik/en/"
-license=('GPL' 'LGPL' 'MPL')
-depends=('aspell')
-replaces=('aspell-pl')
-conflicts=('aspell-pl')
-provides=('aspell-pl')
-source=("ftp://ftp.archlinux.org/other/community/$_pkgname/sjp-aspell6-pl-6.0_$pkgver-0.tar.bz2")
-md5sums=('27aa9ca734d7049238399c279c5417fb')
-
-build() {
- cd "$srcdir/aspell6-pl-6.0_$pkgver-0"
-
- ./configure
- make
-}
-
-package() {
- cd "$srcdir/aspell6-pl-6.0_$pkgver-0"
-
- make DESTDIR="$pkgdir" install
-}
diff --git a/libre/blender-libre/PKGBUILD b/libre/blender-libre/PKGBUILD
index 396706459..2360945ee 100755
--- a/libre/blender-libre/PKGBUILD
+++ b/libre/blender-libre/PKGBUILD
@@ -17,7 +17,7 @@ else
fi
pkgdesc="A fully integrated 3D graphics creation suite, without nonfree cuda-toolkit and redcode image format support$spndesc"
pkgver=2.64a
-pkgrel=3
+pkgrel=4
pkgaev=5
arch=(
i686
diff --git a/libre/clementine-libre/PKGBUILD b/libre/clementine-libre/PKGBUILD
index c0a063e95..7c231fe27 100755
--- a/libre/clementine-libre/PKGBUILD
+++ b/libre/clementine-libre/PKGBUILD
@@ -7,8 +7,8 @@
_pkgname=clementine
pkgname=clementine-libre
-pkgver=1.1.0
-pkgrel=2
+pkgver=1.1.1
+pkgrel=1
pkgdesc="A music player and library organizer, without spotify support"
url="http://www.clementine-player.org/"
license=('GPL')
@@ -26,7 +26,7 @@ conflicts=('clementine')
provides=("clementine=$pkgver")
source=(http://clementine-player.googlecode.com/files/${_pkgname}-${pkgver}.tar.gz
remove-and-disable-spotify.patch)
-sha1sums=('af446aba5ca89edd1541871969b3b6738ffbd05f'
+sha1sums=('f8d3e9c8f54ac488323ab5a629c9accbe256378e'
'3980a00c02e406226f0d08ae9b7e581702c89838')
install=clementine.install
diff --git a/libre/cups-libre/PKGBUILD b/libre/cups-libre/PKGBUILD
deleted file mode 100755
index 105bea193..000000000
--- a/libre/cups-libre/PKGBUILD
+++ /dev/null
@@ -1,168 +0,0 @@
-# $Id: PKGBUILD 160055 2012-05-28 16:48:32Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-pkgbase="cups"
-pkgname=('libcups' 'cups-libre')
-pkgver=1.5.3
-pkgrel=3
-arch=('i686' 'x86_64' 'mips64el')
-license=('GPL')
-url="http://www.cups.org/"
-makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc'
- 'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme')
-source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
- cups-avahi-1-config.patch
- cups-avahi-2-backend.patch
- cups-avahi-3-timeouts.patch
- cups-avahi-4-poll.patch
- cups-avahi-5-services.patch
- cups-no-export-ssllibs.patch
- cups-no-gcrypt.patch
- cups-no-gzip-man.patch
- cups cups.logrotate cups.pam)
-#options=('!emptydirs')
-md5sums=('e1ad15257aa6f162414ea3beae0c5df8'
- '12c8af5bcd3b8f84240280b3dfaf9e89'
- 'cdc1322c8014297ae349e2db78a03c5a'
- '1a5112f63958643f2888abc9418dbcac'
- 'c37d1bf1bb76acc3fe93362c80d91b7c'
- '5d302860559960042f3b47a91b97c5fe'
- '9b8467a1e51d360096b70e2c3c081e6c'
- '3733c23e77eb503bd94cc368e02830dc'
- 'c9159ba1233902ba6ddbbe6885a46b72'
- '9657daa21760bb0b5fa3d8b51d5e01a1'
- 'f861b18f4446c43918c8643dcbbd7f6d'
- '96f82c38f3f540b53f3e5144900acf17')
-
-build() {
- cd ${srcdir}/${pkgbase}-${pkgver}
- # http://www.cups.org/str.php?L3066
- # Avahi support in the dnssd backend. patches from upstream/FC RawHide
- patch -Np1 -i ${srcdir}/cups-avahi-1-config.patch
- patch -Np1 -i ${srcdir}/cups-avahi-2-backend.patch
- patch -Np1 -i ${srcdir}/cups-avahi-3-timeouts.patch
- patch -Np1 -i ${srcdir}/cups-avahi-4-poll.patch
- patch -Np1 -i ${srcdir}/cups-avahi-5-services.patch
-
- # Do not export SSL libs in cups-config
- patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
-
- patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
- # don't zip man pages in make install, let makepkg do that / Fedora
- patch -Np1 -i ${srcdir}/cups-no-gzip-man.patch
-
- # Rebuild configure script for --enable-avahi.
- aclocal -I config-scripts
- autoconf -I config-scripts
-
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
- --libdir=/usr/lib \
- --with-logdir=/var/log/cups \
- --with-docdir=/usr/share/cups/doc \
- --with-cups-user=daemon \
- --with-cups-group=lp \
- --enable-pam=yes \
- --disable-ldap \
- --enable-raw-printing \
- --enable-dbus --with-dbusdir=/etc/dbus-1 \
- --enable-ssl=yes --enable-gnutls \
- --enable-threads \
- --enable-avahi\
- --with-php=/usr/bin/php-cgi \
- --with-pdftops=pdftops \
- --with-optim="$CFLAGS"
- make
-}
-
-check() {
- cd "$srcdir/$pkgbase-$pkgver"
- #httpAddrGetList(workstation64): FAIL
- #1 TESTS FAILED!
- #make[1]: *** [testhttp] Error 1
- make -k check || /bin/true
-}
-
-package_libcups() {
-pkgdesc="The CUPS Printing System - client libraries and headers"
-depends=('gnutls>=2.8.3' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi')
-backup=(etc/cups/client.conf)
-
- cd ${srcdir}/${pkgbase}-${pkgver}
- make BUILDROOT=${pkgdir} install-headers install-libs
- # put this into the libs pkg to make other software find the libs(no pkg-config file included)
- mkdir -p ${pkgdir}/usr/bin
- install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
-
- # install client.conf man page and config file
- install -dm755 ${pkgdir}/usr/share/man/man5
- #install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5.gz ${pkgdir}/usr/share/man/man5/
- install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5 ${pkgdir}/usr/share/man/man5/
- install -dm755 ${pkgdir}/etc/cups
- touch ${pkgdir}/etc/cups/client.conf
- echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
- echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
- chgrp lp ${pkgdir}/etc/cups/client.conf
-}
-
-package_cups-libre() {
-pkgdesc="The CUPS Printing System - daemon package"
-provides=("${pkgbase}=${pkgver}")
-replaces=("${pkgbase}")
-conflicts=("${pkgbase}")
-install=cups.install
-backup=(etc/cups/cupsd.conf
- etc/cups/snmp.conf
- etc/cups/printers.conf
- etc/cups/classes.conf
- etc/cups/subscriptions.conf
- etc/dbus-1/system.d/cups.conf
- etc/logrotate.d/cups
- etc/pam.d/cups
- etc/xinetd.d/cups-lpd)
-depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'libusb' 'dbus-core' 'hicolor-icon-theme')
-optdepends=('php: for included phpcups.so module'
- 'xdg-utils: xdg .desktop file support')
-
- cd ${srcdir}/${pkgbase}-${pkgver}
- make BUILDROOT=${pkgdir} install-data install-exec
-
- # this one we ship in the libcups pkg
- rm -f ${pkgdir}/usr/bin/cups-config
-
- # kill the sysv stuff
- rm -rf ${pkgdir}/etc/rc*.d
- rm -rf ${pkgdir}/etc/init.d
- install -D -m755 ../cups ${pkgdir}/etc/rc.d/cupsd
- install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
- install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
-
- # fix perms on /var/spool and /etc
- chmod 755 ${pkgdir}/var/spool
- chmod 755 ${pkgdir}/etc
-
- # install ssl directory where to store the certs, solves some samba issues
- install -dm700 -g lp ${pkgdir}/etc/cups/ssl
- # remove directory from package, we create it in cups rc.d file
- rm -rf ${pkgdir}/var/run
-
- # install some more configuration files that will get filled by cupsd
- touch ${pkgdir}/etc/cups/printers.conf
- touch ${pkgdir}/etc/cups/classes.conf
- touch ${pkgdir}/etc/cups/subscriptions.conf
- chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf}
-
- # fix .desktop file
- sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
-
- # compress some driver files, adopted from Fedora
- find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
-
- # remove client.conf man page
- rm -f ${pkgdir}/usr/share/man/man5/client.conf.5
-
- # remove files now part of cups-filters
- rm -v ${pkgdir}/usr/lib/cups/backend/{parallel,serial}
- rm -v ${pkgdir}/usr/lib/cups/filter/{commandtoescpx,commandtopclx,imagetops,imagetoraster,pdftops,rastertoescpx,rastertopclx,texttops}
- rm -v ${pkgdir}/usr/share/cups/banners/{classified,confidential,secret,standard,topsecret,unclassified}
- rm -v ${pkgdir}/usr/share/cups/data/testprint
-}
diff --git a/libre/cups-libre/cups b/libre/cups-libre/cups
deleted file mode 100755
index 744c8e663..000000000
--- a/libre/cups-libre/cups
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-
-daemon_name=cupsd
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-#. /etc/conf.d/$daemon_name.conf
-
-get_pid() {
- pidof -o %PPID $daemon_name
-}
-
-case "$1" in
- start)
- stat_busy "Starting $daemon_name daemon"
-
- PID=$(get_pid)
- if [ -z "$PID" ]; then
- [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
- # RUN
- $daemon_name
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- echo $(get_pid) > /var/run/$daemon_name.pid
- add_daemon $daemon_name
- stat_done
- fi
- else
- stat_fail
- exit 1
- fi
- ;;
-
- stop)
- stat_busy "Stopping $daemon_name daemon"
- PID=$(get_pid)
- # KILL
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- rm -f /var/run/$daemon_name.pid &> /dev/null
- rm_daemon $daemon_name
- stat_done
- fi
- ;;
-
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
-
- status)
- stat_busy "Checking $daemon_name status";
- ck_status $daemon_name
- ;;
-
- *)
- echo "usage: $0 {start|stop|restart|status}"
-esac
-
-exit 0
diff --git a/libre/cups-libre/cups-avahi-1-config.patch b/libre/cups-libre/cups-avahi-1-config.patch
deleted file mode 100755
index 516e01fa9..000000000
--- a/libre/cups-libre/cups-avahi-1-config.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -up cups-1.5.2/config.h.in.avahi-1-config cups-1.5.2/config.h.in
---- cups-1.5.2/config.h.in.avahi-1-config 2011-06-16 21:12:16.000000000 +0100
-+++ cups-1.5.2/config.h.in 2012-03-14 15:04:51.365347165 +0000
-@@ -390,6 +390,13 @@
-
-
- /*
-+ * Do we have Avahi for DNS Service Discovery?
-+ */
-+
-+#undef HAVE_AVAHI
-+
-+
-+/*
- * Do we have <sys/ioctl.h>?
- */
-
-diff -up cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config cups-1.5.2/config-scripts/cups-dnssd.m4
---- cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config 2011-05-12 06:21:56.000000000 +0100
-+++ cups-1.5.2/config-scripts/cups-dnssd.m4 2012-03-14 15:04:51.365347165 +0000
-@@ -23,6 +23,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
- DNSSDLIBS=""
- DNSSD_BACKEND=""
-
-+AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
-+ [if test x$enable_avahi = xyes; then
-+ AC_MSG_CHECKING(for Avahi)
-+ if $PKGCONFIG --exists avahi-client; then
-+ AC_MSG_RESULT(yes)
-+ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
-+ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
-+ DNSSD_BACKEND="dnssd"
-+ AC_DEFINE(HAVE_AVAHI)
-+ enable_dnssd=no
-+ else
-+ AC_MSG_RESULT(no)
-+ fi
-+ fi])
-+
- if test x$enable_dnssd != xno; then
- AC_CHECK_HEADER(dns_sd.h, [
- case "$uname" in
diff --git a/libre/cups-libre/cups-avahi-2-backend.patch b/libre/cups-libre/cups-avahi-2-backend.patch
deleted file mode 100755
index 9fa367729..000000000
--- a/libre/cups-libre/cups-avahi-2-backend.patch
+++ /dev/null
@@ -1,1118 +0,0 @@
-diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
---- cups-1.5.3/backend/dnssd.c.avahi-2-backend 2012-05-15 16:53:18.164774446 +0200
-+++ cups-1.5.3/backend/dnssd.c 2012-05-15 17:09:07.684155704 +0200
-@@ -15,14 +15,21 @@
- *
- * Contents:
- *
-+ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
-+ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
- * main() - Browse for printers.
- * browse_callback() - Browse devices.
- * browse_local_callback() - Browse local devices.
- * compare_devices() - Compare two devices.
- * exec_backend() - Execute the backend that corresponds to the
- * resolved service name.
-+ * device_type() - Get DNS-SD type enumeration from string.
- * get_device() - Create or update a device.
- * query_callback() - Process query data.
-+ * avahi_client_callback() - Avahi client callback function.
-+ * avahi_query_callback() - Avahi query callback function.
-+ * avahi_browse_callback() - Avahi browse callback function.
-+ * find_device() - Find a device from its name and domain.
- * sigterm_handler() - Handle termination signals...
- * unquote() - Unquote a name string.
- */
-@@ -33,7 +40,18 @@
-
- #include "backend-private.h"
- #include <cups/array.h>
--#include <dns_sd.h>
-+#ifdef HAVE_DNSSD
-+# include <dns_sd.h>
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/lookup.h>
-+# include <avahi-common/simple-watch.h>
-+# include <avahi-common/domain.h>
-+# include <avahi-common/error.h>
-+# include <avahi-common/malloc.h>
-+#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -53,7 +71,12 @@ typedef enum
-
- typedef struct
- {
-+#ifdef HAVE_DNSSD
- DNSServiceRef ref; /* Service reference for resolve */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int resolved; /* Did we resolve the device? */
-+#endif /* HAVE_AVAHI */
- char *name, /* Service name */
- *domain, /* Domain name */
- *fullName, /* Full name */
-@@ -65,6 +88,20 @@ typedef struct
- sent; /* Did we list the device? */
- } cups_device_t;
-
-+typedef struct
-+{
-+ char key[256];
-+ char value[256];
-+
-+#ifdef HAVE_DNSSD
-+ const uint8_t *data;
-+ const uint8_t *datanext;
-+ const uint8_t *dataend;
-+#else /* HAVE_AVAHI */
-+ AvahiStringList *txt;
-+#endif /* HAVE_DNSSD */
-+} cups_txt_records_t;
-+
-
- /*
- * Local globals...
-@@ -78,6 +115,7 @@ static int job_canceled = 0;
- * Local functions...
- */
-
-+#ifdef HAVE_DNSSD
- static void browse_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
-@@ -95,13 +133,6 @@ static void browse_local_callback(DNSSe
- const char *replyDomain,
- void *context)
- __attribute__((nonnull(1,5,6,7,8)));
--static int compare_devices(cups_device_t *a, cups_device_t *b);
--static void exec_backend(char **argv);
--static cups_device_t *get_device(cups_array_t *devices,
-- const char *serviceName,
-- const char *regtype,
-- const char *replyDomain)
-- __attribute__((nonnull(1,2,3,4)));
- static void query_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
-@@ -111,10 +142,119 @@ static void query_callback(DNSServiceRe
- const void *rdata, uint32_t ttl,
- void *context)
- __attribute__((nonnull(1,5,9,11)));
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+static void avahi_client_callback (AvahiClient *client,
-+ AvahiClientState state,
-+ void *context);
-+static void avahi_browse_callback (AvahiServiceBrowser *browser,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiBrowserEvent event,
-+ const char *serviceName,
-+ const char *regtype,
-+ const char *replyDomain,
-+ AvahiLookupResultFlags flags,
-+ void *context);
-+#endif /* HAVE_AVAHI */
-+static cups_device_t * find_device (cups_array_t *devices,
-+ cups_txt_records_t *txt,
-+ cups_device_t *dkey);
-+static int compare_devices(cups_device_t *a, cups_device_t *b);
-+static void exec_backend(char **argv);
-+static cups_device_t *get_device(cups_array_t *devices,
-+ const char *serviceName,
-+ const char *regtype,
-+ const char *replyDomain)
-+ __attribute__((nonnull(1,2,3,4)));
- static void sigterm_handler(int sig);
- static void unquote(char *dst, const char *src, size_t dstsize)
- __attribute__((nonnull(1,2)));
-
-+#ifdef HAVE_AVAHI
-+static AvahiSimplePoll *simple_poll = NULL;
-+static int avahi_got_callback;
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
-+ */
-+
-+static cups_txt_records_t *
-+next_txt_record (cups_txt_records_t *txt)
-+{
-+#ifdef HAVE_DNSSD
-+ txt->data = txt->datanext;
-+#else /* HAVE_AVAHI */
-+ txt->txt = avahi_string_list_get_next (txt->txt);
-+ if (txt->txt == NULL)
-+ return NULL;
-+#endif /* HAVE_DNSSD */
-+
-+ return txt;
-+}
-+
-+
-+/*
-+ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
-+ */
-+
-+static int
-+parse_txt_record_pair (cups_txt_records_t *txt)
-+{
-+#ifdef HAVE_DNSSD
-+ uint8_t datalen;
-+ uint8_t *data = txt->data;
-+ char *ptr;
-+
-+ /*
-+ * Read a key/value pair starting with an 8-bit length. Since the
-+ * length is 8 bits and the size of the key/value buffers is 256, we
-+ * don't need to check for overflow...
-+ */
-+
-+ datalen = *data++;
-+ if (!datalen || (data + datalen) > txt->dataend)
-+ return NULL;
-+ txt->datanext = data + datalen;
-+
-+ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
-+ *ptr++ = *data;
-+ *ptr = '\0';
-+
-+ if (data < txt->datanext && *data == '=')
-+ {
-+ data++;
-+
-+ if (data < datanext)
-+ memcpy (txt->value, data, txt->datanext - data);
-+ value[txt->datanext - data] = '\0';
-+ }
-+ else
-+ return 1;
-+#else /* HAVE_AVAHI */
-+ char *key, *value;
-+ size_t len;
-+ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
-+ if (len > sizeof (txt->value) - 1)
-+ len = sizeof (txt->value) - 1;
-+
-+ memcpy (txt->value, value, len);
-+ txt->value[len] = '\0';
-+ len = strlen (key);
-+ if (len > sizeof (txt->key) - 1)
-+ len = sizeof (txt->key) - 1;
-+
-+ memcpy (txt->key, key, len);
-+ txt->key[len] = '\0';
-+ avahi_free (key);
-+ avahi_free (value);
-+#endif /* HAVE_AVAHI */
-+
-+ return 0;
-+}
-+
-
- /*
- * 'main()' - Browse for printers.
-@@ -125,6 +265,13 @@ main(int argc, /* I - Number of comm
- char *argv[]) /* I - Command-line arguments */
- {
- const char *name; /* Backend name */
-+ cups_array_t *devices; /* Device array */
-+ cups_device_t *device; /* Current device */
-+ char uriName[1024]; /* Unquoted fullName for URI */
-+#ifdef HAVE_DNSSD
-+ int fd; /* Main file descriptor */
-+ fd_set input; /* Input set for select() */
-+ struct timeval timeout; /* Timeout for select() */
- DNSServiceRef main_ref, /* Main service reference */
- fax_ipp_ref, /* IPP fax service reference */
- ipp_ref, /* IPP service reference */
-@@ -138,12 +285,11 @@ main(int argc, /* I - Number of comm
- pdl_datastream_ref, /* AppSocket service reference */
- printer_ref, /* LPD service reference */
- riousbprint_ref; /* Remote IO service reference */
-- int fd; /* Main file descriptor */
-- fd_set input; /* Input set for select() */
-- struct timeval timeout; /* Timeout for select() */
-- cups_array_t *devices; /* Device array */
-- cups_device_t *device; /* Current device */
-- char uriName[1024]; /* Unquoted fullName for URI */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ AvahiClient *client;
-+ int error;
-+#endif /* HAVE_AVAHI */
- #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
- struct sigaction action; /* Actions for POSIX signals */
- #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
-@@ -203,6 +349,49 @@ main(int argc, /* I - Number of comm
- * Browse for different kinds of printers...
- */
-
-+#ifdef HAVE_AVAHI
-+ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
-+ {
-+ perror ("ERROR: Unable to create avahi simple poll object");
-+ return (1);
-+ }
-+
-+ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
-+ 0, avahi_client_callback, NULL, &error);
-+ if (!client)
-+ {
-+ perror ("DEBUG: Unable to create avahi client");
-+ return (0);
-+ }
-+
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_fax-ipp._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_ipp._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_ipp-tls._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_pdl-datastream._tcp",
-+ NULL, 0,
-+ avahi_browse_callback,
-+ devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_printer._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_riousbprint._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+#endif /* HAVE_AVAHI */
-+#ifdef HAVE_DNSSD
- if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
- {
- perror("ERROR: Unable to create service connection");
-@@ -263,6 +452,7 @@ main(int argc, /* I - Number of comm
- riousbprint_ref = main_ref;
- DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
- "_riousbprint._tcp", NULL, browse_callback, devices);
-+#endif /* HAVE_DNSSD */
-
- /*
- * Loop until we are killed...
-@@ -270,6 +460,9 @@ main(int argc, /* I - Number of comm
-
- while (!job_canceled)
- {
-+ int announce = 0;
-+
-+#ifdef HAVE_DNSSD
- FD_ZERO(&input);
- FD_SET(fd, &input);
-
-@@ -289,11 +482,35 @@ main(int argc, /* I - Number of comm
- }
- else
- {
-+ announce = 1;
-+ }
-+#else /* HAVE_AVAHI */
-+ int r;
-+ avahi_got_callback = 0;
-+ r = avahi_simple_poll_iterate (simple_poll, 1);
-+ if (r != 0 && r != EINTR)
-+ {
-+ /*
-+ * We've been told to exit the loop. Perhaps the connection to
-+ * avahi failed.
-+ */
-+
-+ break;
-+ }
-+
-+ if (avahi_got_callback)
-+ announce = 1;
-+#endif /* HAVE_DNSSD */
-+
-+ if (announce)
-+ {
- /*
- * Announce any devices we've found...
- */
-
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType status; /* DNS query status */
-+#endif /* HAVE_DNSSD */
- cups_device_t *best; /* Best matching device */
- char device_uri[1024]; /* Device URI */
- int count; /* Number of queries */
-@@ -307,6 +524,7 @@ main(int argc, /* I - Number of comm
- if (device->sent)
- sent ++;
-
-+#ifdef HAVE_DNSSD
- if (device->ref)
- count ++;
-
-@@ -338,14 +556,23 @@ main(int argc, /* I - Number of comm
- count ++;
- }
- }
-- else if (!device->sent)
-+ else
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (!device->resolved)
-+ continue;
-+ else
-+#endif /* HAVE_AVAHI */
-+ if (!device->sent)
- {
-+#ifdef HAVE_DNSSD
- /*
- * Got the TXT records, now report the device...
- */
-
- DNSServiceRefDeallocate(device->ref);
- device->ref = 0;
-+#endif /* HAVE_DNSSD */
-
- if (!best)
- best = device;
-@@ -406,6 +633,7 @@ main(int argc, /* I - Number of comm
- }
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'browse_callback()' - Browse devices.
- */
-@@ -494,6 +722,7 @@ browse_local_callback(
- device->fullName);
- device->sent = 1;
- }
-+#endif /* HAVE_DNSSD */
-
-
- /*
-@@ -574,6 +803,41 @@ exec_backend(char **argv) /* I - Comman
-
-
- /*
-+ * 'device_type()' - Get DNS-SD type enumeration from string.
-+ */
-+
-+static int
-+device_type (const char *regtype)
-+{
-+#ifdef HAVE_AVAHI
-+ if (!strcmp(regtype, "_ipp._tcp"))
-+ return (CUPS_DEVICE_IPP);
-+ else if (!strcmp(regtype, "_ipps._tcp") ||
-+ !strcmp(regtype, "_ipp-tls._tcp"))
-+ return (CUPS_DEVICE_IPPS);
-+ else if (!strcmp(regtype, "_fax-ipp._tcp"))
-+ return (CUPS_DEVICE_FAX_IPP);
-+ else if (!strcmp(regtype, "_printer._tcp"))
-+ return (CUPS_DEVICE_PDL_DATASTREAM);
-+#else
-+ if (!strcmp(regtype, "_ipp._tcp."))
-+ return (CUPS_DEVICE_IPP);
-+ else if (!strcmp(regtype, "_ipps._tcp.") ||
-+ !strcmp(regtype, "_ipp-tls._tcp."))
-+ return (CUPS_DEVICE_IPPS);
-+ else if (!strcmp(regtype, "_fax-ipp._tcp."))
-+ return (CUPS_DEVICE_FAX_IPP);
-+ else if (!strcmp(regtype, "_printer._tcp."))
-+ return (CUPS_DEVICE_PRINTER);
-+ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
-+ return (CUPS_DEVICE_PDL_DATASTREAM);
-+#endif /* HAVE_AVAHI */
-+
-+ return (CUPS_DEVICE_RIOUSBPRINT);
-+}
-+
-+
-+/*
- * 'get_device()' - Create or update a device.
- */
-
-@@ -594,20 +858,7 @@ get_device(cups_array_t *devices, /* I -
- */
-
- key.name = (char *)serviceName;
--
-- if (!strcmp(regtype, "_ipp._tcp."))
-- key.type = CUPS_DEVICE_IPP;
-- else if (!strcmp(regtype, "_ipps._tcp.") ||
-- !strcmp(regtype, "_ipp-tls._tcp."))
-- key.type = CUPS_DEVICE_IPPS;
-- else if (!strcmp(regtype, "_fax-ipp._tcp."))
-- key.type = CUPS_DEVICE_FAX_IPP;
-- else if (!strcmp(regtype, "_printer._tcp."))
-- key.type = CUPS_DEVICE_PRINTER;
-- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
-- key.type = CUPS_DEVICE_PDL_DATASTREAM;
-- else
-- key.type = CUPS_DEVICE_RIOUSBPRINT;
-+ key.type = device_type (regtype);
-
- for (device = cupsArrayFind(devices, &key);
- device;
-@@ -627,8 +878,14 @@ get_device(cups_array_t *devices, /* I -
- free(device->domain);
- device->domain = strdup(replyDomain);
-
-+#ifdef HAVE_DNSSD
- DNSServiceConstructFullName(fullName, device->name, regtype,
- replyDomain);
-+#else /* HAVE_AVAHI */
-+ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
-+ serviceName, regtype, replyDomain);
-+#endif /* HAVE_DNSSD */
-+
- free(device->fullName);
- device->fullName = strdup(fullName);
- }
-@@ -648,6 +905,9 @@ get_device(cups_array_t *devices, /* I -
- device->domain = strdup(replyDomain);
- device->type = key.type;
- device->priority = 50;
-+#ifdef HAVE_AVAHI
-+ device->resolved = 0;
-+#endif /* HAVE_AVAHI */
-
- cupsArrayAdd(devices, device);
-
-@@ -655,13 +915,20 @@ get_device(cups_array_t *devices, /* I -
- * Set the "full name" of this service, which is used for queries...
- */
-
-+#ifdef HAVE_DNSSD
- DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
-+#else /* HAVE_AVAHI */
-+ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
-+ serviceName, regtype, replyDomain);
-+#endif /* HAVE_DNSSD */
-+
- device->fullName = strdup(fullName);
-
- return (device);
- }
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'query_callback()' - Process query data.
- */
-@@ -685,7 +952,7 @@ query_callback(
- *ptr; /* Pointer into string */
- cups_device_t dkey, /* Search key */
- *device; /* Device */
--
-+ cups_txt_records_t txt;
-
- fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
- "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
-@@ -719,94 +986,233 @@ query_callback(
- if ((ptr = strstr(name, "._")) != NULL)
- *ptr = '\0';
-
-- if (strstr(fullName, "_ipp._tcp."))
-- dkey.type = CUPS_DEVICE_IPP;
-- else if (strstr(fullName, "_ipps._tcp.") ||
-- strstr(fullName, "_ipp-tls._tcp."))
-- dkey.type = CUPS_DEVICE_IPPS;
-- else if (strstr(fullName, "_fax-ipp._tcp."))
-- dkey.type = CUPS_DEVICE_FAX_IPP;
-- else if (strstr(fullName, "_printer._tcp."))
-- dkey.type = CUPS_DEVICE_PRINTER;
-- else if (strstr(fullName, "_pdl-datastream._tcp."))
-- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
-+ dkey.type = device_type (fullName);
-+
-+ txt.data = rdata;
-+ txt.dataend = rdata + rdlen;
-+ device = find_device ((cups_array_t *) context, &txt, &dkey);
-+ if (!device)
-+ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
-+}
-+#endif /* HAVE_DNSSD */
-+
-+
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahi_client_callback()' - Avahi client callback function.
-+ */
-+
-+static void
-+avahi_client_callback(AvahiClient *client,
-+ AvahiClientState state,
-+ void *context)
-+{
-+ /*
-+ * If the connection drops, quit.
-+ */
-+
-+ if (state == AVAHI_CLIENT_FAILURE)
-+ {
-+ fprintf (stderr, "ERROR: Avahi connection failed\n");
-+ avahi_simple_poll_quit (simple_poll);
-+ }
-+}
-+
-+
-+/*
-+ * 'avahi_query_callback()' - Avahi query callback function.
-+ */
-+
-+static void
-+avahi_query_callback(AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ AvahiClient *client;
-+ cups_device_t key,
-+ *device;
-+ char uqname[1024],
-+ *ptr;
-+ cups_txt_records_t txtr;
-+
-+ client = avahi_service_resolver_get_client (resolver);
-+ if (event != AVAHI_RESOLVER_FOUND)
-+ {
-+ if (event == AVAHI_RESOLVER_FAILURE)
-+ {
-+ fprintf (stderr, "ERROR: %s\n",
-+ avahi_strerror (avahi_client_errno (client)));
-+ }
-+
-+ avahi_service_resolver_free (resolver);
-+ return;
-+ }
-+
-+ /*
-+ * Set search key for device.
-+ */
-+
-+ key.name = uqname;
-+ unquote (uqname, name, sizeof (uqname));
-+ if ((ptr = strstr(name, "._")) != NULL)
-+ *ptr = '\0';
-+
-+ key.domain = (char *) domain;
-+ key.type = device_type (type);
-+
-+ /*
-+ * Find the device and the the TXT information.
-+ */
-+
-+ txtr.txt = txt;
-+ device = find_device ((cups_array_t *) context, &txtr, &key);
-+ if (device)
-+ {
-+ /*
-+ * Let the main loop know to announce the device.
-+ */
-+
-+ device->resolved = 1;
-+ avahi_got_callback = 1;
-+ }
- else
-- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
-+ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
-
-- for (device = cupsArrayFind(devices, &dkey);
-+ avahi_service_resolver_free (resolver);
-+}
-+
-+
-+/*
-+ * 'avahi_browse_callback()' - Avahi browse callback function.
-+ */
-+
-+static void
-+avahi_browse_callback(AvahiServiceBrowser *browser,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiBrowserEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ AvahiClient *client = avahi_service_browser_get_client (browser);
-+
-+ switch (event)
-+ {
-+ case AVAHI_BROWSER_FAILURE:
-+ fprintf (stderr, "ERROR: %s\n",
-+ avahi_strerror (avahi_client_errno (client)));
-+ avahi_simple_poll_quit (simple_poll);
-+ return;
-+
-+ case AVAHI_BROWSER_NEW:
-+ /*
-+ * This object is new on the network.
-+ */
-+
-+ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
-+ {
-+ /*
-+ * This comes from the local machine so ignore it.
-+ */
-+
-+ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
-+ }
-+ else
-+ {
-+ /*
-+ * Create a device entry for it if it doesn't yet exist.
-+ */
-+
-+ get_device ((cups_array_t *)context, name, type, domain);
-+
-+ /*
-+ * Now look for a TXT entry.
-+ */
-+
-+ if (avahi_service_resolver_new (client, interface, protocol,
-+ name, type, domain,
-+ AVAHI_PROTO_UNSPEC, 0,
-+ avahi_query_callback, context) == NULL)
-+ {
-+ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
-+ name, avahi_strerror (avahi_client_errno (client)));
-+ }
-+ }
-+
-+ break;
-+
-+ case AVAHI_BROWSER_REMOVE:
-+ case AVAHI_BROWSER_ALL_FOR_NOW:
-+ case AVAHI_BROWSER_CACHE_EXHAUSTED:
-+ break;
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * 'find_device()' - Find a device from its name and domain.
-+ */
-+
-+static cups_device_t *
-+find_device (cups_array_t *devices,
-+ cups_txt_records_t *txt,
-+ cups_device_t *dkey)
-+{
-+ cups_device_t *device;
-+ char *ptr;
-+
-+ for (device = cupsArrayFind(devices, dkey);
- device;
- device = cupsArrayNext(devices))
- {
-- if (_cups_strcasecmp(device->name, dkey.name) ||
-- _cups_strcasecmp(device->domain, dkey.domain))
-+ if (_cups_strcasecmp(device->name, dkey->name) ||
-+ _cups_strcasecmp(device->domain, dkey->domain))
- {
- device = NULL;
- break;
- }
-- else if (device->type == dkey.type)
-+ else if (device->type == dkey->type)
- {
- /*
- * Found it, pull out the priority and make and model from the TXT
- * record and save it...
- */
-
-- const uint8_t *data, /* Pointer into data */
-- *datanext, /* Next key/value pair */
-- *dataend; /* End of entire TXT record */
-- uint8_t datalen; /* Length of current key/value pair */
-- char key[256], /* Key string */
-- value[256], /* Value string */
-- make_and_model[512],
-+ char make_and_model[512],
- /* Manufacturer and model */
- model[256], /* Model */
-- device_id[2048];/* 1284 device ID */
--
-+ device_id[2048]; /* 1284 device ID */
-
- device_id[0] = '\0';
- make_and_model[0] = '\0';
-
- strcpy(model, "Unknown");
-
-- for (data = rdata, dataend = data + rdlen;
-- data < dataend;
-- data = datanext)
-+ for (;;)
- {
-- /*
-- * Read a key/value pair starting with an 8-bit length. Since the
-- * length is 8 bits and the size of the key/value buffers is 256, we
-- * don't need to check for overflow...
-- */
--
-- datalen = *data++;
--
-- if (!datalen || (data + datalen) > dataend)
-- break;
--
-- datanext = data + datalen;
--
-- for (ptr = key; data < datanext && *data != '='; data ++)
-- *ptr++ = *data;
-- *ptr = '\0';
-+ char *key;
-+ char *value;
-
-- if (data < datanext && *data == '=')
-- {
-- data ++;
--
-- if (data < datanext)
-- memcpy(value, data, datanext - data);
-- value[datanext - data] = '\0';
-+ if (parse_txt_record_pair (txt))
-+ goto next;
-
-- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
-- key, value);
-- }
-- else
-- {
-- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
-- key);
-- continue;
-- }
--
-- if (!_cups_strncasecmp(key, "usb_", 4))
-+ key = txt->key;
-+ value = txt->value;
-+ if (!strncasecmp(key, "usb_", 4))
- {
- /*
- * Add USB device ID information...
-@@ -861,6 +1267,10 @@ query_callback(
- if (device->type == CUPS_DEVICE_PRINTER)
- device->sent = 1;
- }
-+
-+ next:
-+ if (next_txt_record (txt) == NULL)
-+ break;
- }
-
- if (device->device_id)
-@@ -917,11 +1327,9 @@ query_callback(
- }
- }
-
-- if (!device)
-- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
-+ return device;
- }
-
--
- /*
- * 'sigterm_handler()' - Handle termination signals...
- */
-diff -up cups-1.5.3/cups/http-support.c.avahi-2-backend cups-1.5.3/cups/http-support.c
---- cups-1.5.3/cups/http-support.c.avahi-2-backend 2012-02-15 02:06:12.000000000 +0100
-+++ cups-1.5.3/cups/http-support.c 2012-05-15 17:04:51.045944634 +0200
-@@ -43,6 +43,10 @@
- * http_copy_decode() - Copy and decode a URI.
- * http_copy_encode() - Copy and encode a URI.
- * http_resolve_cb() - Build a device URI for the given service name.
-+ * avahi_resolve_uri_client_cb()
-+ * - Avahi client callback for resolving URI.
-+ * avahi_resolve_uri_resolver_cb()
-+ * - Avahi resolver callback for resolving URI.
- */
-
- /*
-@@ -60,6 +64,11 @@
- # include <sys/select.h>
- # endif /* WIN32 */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/lookup.h>
-+# include <avahi-common/simple-watch.h>
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -127,6 +136,24 @@ static void DNSSD_API http_resolve_cb(DN
- void *context);
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+static void avahi_resolve_uri_client_cb(AvahiClient *client,
-+ AvahiClientState state,
-+ void *simple_poll);
-+static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context);
-+#endif /* HAVE_AVAHI */
-
- /*
- * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
-@@ -1434,6 +1461,9 @@ _httpResolveURI(
-
- if (strstr(hostname, "._tcp"))
- {
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ char *regtype, /* Pointer to type in hostname */
-+ *domain; /* Pointer to domain in hostname */
- #ifdef HAVE_DNSSD
- # ifdef WIN32
- # pragma comment(lib, "dnssd.lib")
-@@ -1452,6 +1482,17 @@ _httpResolveURI(
- fd_set input_set; /* Input set for select() */
- struct timeval stimeout; /* Timeout value for select() */
- #endif /* HAVE_POLL */
-+#else /* HAVE_AVAHI */
-+ AvahiSimplePoll *simple_poll;
-+ AvahiClient *client;
-+ int error;
-+ struct
-+ {
-+ AvahiSimplePoll *poll;
-+ _http_uribuf_t uribuf;
-+ } user_data;
-+#endif /* HAVE_DNSSD */
-+
-
- if (options & _HTTP_RESOLVE_STDERR)
- fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
-@@ -1488,9 +1529,16 @@ _httpResolveURI(
- if (domain)
- *domain++ = '\0';
-
-+#ifdef HAVE_DNSSD
- uribuf.buffer = resolved_uri;
- uribuf.bufsize = resolved_size;
- uribuf.options = options;
-+#else
-+ user_data.uribuf.buffer = resolved_uri;
-+ user_data.uribuf.bufsize = resolved_size;
-+ user_data.uribuf.options = options;
-+#endif
-+
- resolved_uri[0] = '\0';
-
- DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
-@@ -1504,6 +1552,7 @@ _httpResolveURI(
-
- uri = NULL;
-
-+#ifdef HAVE_DNSSD
- if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
- {
- localref = ref;
-@@ -1611,6 +1660,36 @@ _httpResolveURI(
-
- DNSServiceRefDeallocate(ref);
- }
-+#else /* HAVE_AVAHI */
-+ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
-+ {
-+ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
-+ 0, avahi_resolve_uri_client_cb,
-+ &simple_poll, &error)) != NULL)
-+ {
-+ user_data.poll = simple_poll;
-+ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC, hostname,
-+ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
-+ avahi_resolve_uri_resolver_cb,
-+ &user_data) != NULL)
-+ {
-+ avahi_simple_poll_loop (simple_poll);
-+
-+ /*
-+ * Collect the result.
-+ */
-+
-+ if (resolved_uri[0])
-+ uri = resolved_uri;
-+ }
-+
-+ avahi_client_free (client);
-+ }
-+
-+ avahi_simple_poll_free (simple_poll);
-+ }
-+#endif /* HAVE_DNSSD */
-
- if (options & _HTTP_RESOLVE_STDERR)
- {
-@@ -1622,13 +1701,13 @@ _httpResolveURI(
- fputs("STATE: -connecting-to-device,offline-report\n", stderr);
- }
-
--#else
-+#else /* HAVE_DNSSD || HAVE_AVAHI */
- /*
- * No DNS-SD support...
- */
-
- uri = NULL;
--#endif /* HAVE_DNSSD */
-+#endif /* HAVE_DNSSD || HAVE_AVAHI */
-
- if ((options & _HTTP_RESOLVE_STDERR) && !uri)
- _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
-@@ -1916,6 +1995,115 @@ http_resolve_cb(
- }
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
-+ */
-+
-+static void
-+avahi_resolve_uri_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *simple_poll)
-+{
-+ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
-+ "simple_poll=%p)\n", client, state, simple_poll));
-+
-+ /*
-+ * If the connection drops, quit.
-+ */
-+
-+ if (state == AVAHI_CLIENT_FAILURE)
-+ avahi_simple_poll_quit (simple_poll);
-+}
-+
-+
-+/*
-+ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
-+ * URI.
-+ */
-+
-+static void
-+avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ const char *scheme; /* URI scheme */
-+ char rp[256]; /* Remote printer */
-+ AvahiStringList *pair;
-+ char *value;
-+ size_t valueLen = 0;
-+ char addr[AVAHI_ADDRESS_STR_MAX];
-+ struct
-+ {
-+ AvahiSimplePoll *poll;
-+ _http_uribuf_t uribuf;
-+ } *poll_uribuf = context;
-+
-+ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
-+ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
-+ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
-+ "port=%d, txt=%p, flags=%d, context=%p)\n",
-+ resolver, interface, protocol, event, name, type, domain,
-+ host_name, address, port, txt, flags, context));
-+
-+ if (event != AVAHI_RESOLVER_FOUND)
-+ {
-+ avahi_service_resolver_free (resolver);
-+ avahi_simple_poll_quit (poll_uribuf->poll);
-+ return;
-+ }
-+
-+ /*
-+ * Figure out the scheme from the full name...
-+ */
-+
-+ if (strstr(type, "_ipp."))
-+ scheme = "ipp";
-+ else if (strstr(type, "_printer."))
-+ scheme = "lpd";
-+ else if (strstr(type, "_pdl-datastream."))
-+ scheme = "socket";
-+ else
-+ scheme = "riousbprint";
-+
-+ /*
-+ * Extract the "remote printer key from the TXT record...
-+ */
-+
-+ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
-+ {
-+ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
-+ rp[0] = '/';
-+ memcpy (rp + 1, value, valueLen);
-+ rp[valueLen + 1] = '\0';
-+ }
-+ else
-+ rp[0] = '\0';
-+
-+ /*
-+ * Assemble the final device URI...
-+ */
-+
-+ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
-+ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
-+ poll_uribuf->uribuf.bufsize, scheme, NULL,
-+ addr, port, rp);
-+ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
-+ poll_uribuf->uribuf.buffer));
-+ avahi_simple_poll_quit (poll_uribuf->poll);
-+}
-+#endif /* HAVE_AVAHI */
-+
-
- /*
- * End of "$Id: http-support.c 10284 2012-02-15 01:06:12Z mike $".
diff --git a/libre/cups-libre/cups-avahi-3-timeouts.patch b/libre/cups-libre/cups-avahi-3-timeouts.patch
deleted file mode 100755
index daf852a0f..000000000
--- a/libre/cups-libre/cups-avahi-3-timeouts.patch
+++ /dev/null
@@ -1,381 +0,0 @@
-diff -up cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.2/scheduler/cupsd.h
---- cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
-+++ cups-1.5.2/scheduler/cupsd.h 2012-03-14 15:06:36.509476983 +0000
-@@ -140,6 +140,15 @@ extern const char *cups_hstrerror(int);
-
- typedef void (*cupsd_selfunc_t)(void *data);
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * Timeout callback function type...
-+ */
-+
-+typedef struct _cupsd_timeout_s cupsd_timeout_t;
-+typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
-+#endif /* HAVE_AVAHI */
-+
-
- /*
- * Globals...
-@@ -173,6 +182,11 @@ VAR int Launchd VALUE(0);
- /* Running from launchd */
- #endif /* HAVE_LAUNCH_H */
-
-+#ifdef HAVE_AVAHI
-+VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
-+#endif /* HAVE_AVAHI */
-+
-+
-
- /*
- * Prototypes...
-@@ -242,6 +256,20 @@ extern void cupsdStopSelect(void);
- extern void cupsdStartServer(void);
- extern void cupsdStopServer(void);
-
-+#ifdef HAVE_AVAHI
-+extern void cupsdInitTimeouts(void);
-+extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
-+ cupsd_timeoutfunc_t cb,
-+ void *data);
-+extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
-+extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
-+extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
-+ const struct timeval *tv);
-+extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
-+#endif /* HAVE_AVAHI */
-+
-+extern int cupsdRemoveFile(const char *filename);
-+
-
- /*
- * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
-diff -up cups-1.5.2/scheduler/main.c.avahi-3-timeouts cups-1.5.2/scheduler/main.c
---- cups-1.5.2/scheduler/main.c.avahi-3-timeouts 2012-03-14 15:04:17.655305548 +0000
-+++ cups-1.5.2/scheduler/main.c 2012-03-14 15:06:36.511476986 +0000
-@@ -146,6 +146,10 @@ main(int argc, /* I - Number of comm
- int launchd_idle_exit;
- /* Idle exit on select timeout? */
- #endif /* HAVE_LAUNCHD */
-+#ifdef HAVE_AVAHI
-+ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
-+ long tmo_delay; /* Time before it must be called */
-+#endif /* HAVE_AVAHI */
-
-
- #ifdef HAVE_GETEUID
-@@ -535,6 +539,14 @@ main(int argc, /* I - Number of comm
-
- httpInitialize();
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * Initialize timed callback structures.
-+ */
-+
-+ cupsdInitTimeouts();
-+#endif /* HAVE_AVAHI */
-+
- cupsdStartServer();
-
- /*
-@@ -874,6 +886,16 @@ main(int argc, /* I - Number of comm
- }
- #endif /* __APPLE__ */
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * If a timed callback is due, run it.
-+ */
-+
-+ tmo = cupsdNextTimeout (&tmo_delay);
-+ if (tmo && tmo_delay == 0)
-+ cupsdRunTimeout (tmo);
-+#endif /* HAVE_AVAHI */
-+
- #ifndef __APPLE__
- /*
- * Update the network interfaces once a minute...
-@@ -1787,6 +1809,10 @@ select_timeout(int fds) /* I - Number
- cupsd_job_t *job; /* Job information */
- cupsd_subscription_t *sub; /* Subscription information */
- const char *why; /* Debugging aid */
-+#ifdef HAVE_AVAHI
-+ cupsd_timeout_t *tmo; /* Timed callback */
-+ long tmo_delay; /* Seconds before calling it */
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -1829,6 +1855,19 @@ select_timeout(int fds) /* I - Number
- }
- #endif /* __APPLE__ */
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * See if there are any scheduled timed callbacks to run.
-+ */
-+
-+ if ((tmo = cupsdNextTimeout(&tmo_delay)) != NULL &&
-+ (now + tmo_delay) < timeout)
-+ {
-+ timeout = tmo_delay;
-+ why = "run a timed callback";
-+ }
-+#endif /* HAVE_AVAHI */
-+
- /*
- * Check whether we are accepting new connections...
- */
-diff -up cups-1.5.2/scheduler/Makefile.avahi-3-timeouts cups-1.5.2/scheduler/Makefile
---- cups-1.5.2/scheduler/Makefile.avahi-3-timeouts 2012-03-14 15:04:17.685305586 +0000
-+++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:06:36.508476980 +0000
-@@ -39,7 +39,8 @@ CUPSDOBJS = \
- server.o \
- statbuf.o \
- subscriptions.o \
-- sysman.o
-+ sysman.o \
-+ timeout.o
- LIBOBJS = \
- filter.o \
- mime.o \
-diff -up cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts cups-1.5.2/scheduler/timeout.c
---- cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts 2012-03-14 15:06:36.552477037 +0000
-+++ cups-1.5.2/scheduler/timeout.c 2012-03-14 15:06:36.552477037 +0000
-@@ -0,0 +1,235 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Timeout functions for the Common UNIX Printing System (CUPS).
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * Contents:
-+ *
-+ * cupsdInitTimeouts() - Initialise timeout structure.
-+ * cupsdAddTimeout() - Add a timed callback.
-+ * cupsdNextTimeout() - Find the next enabled timed callback.
-+ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
-+ * cupsdRemoveTimeout() - Discard a timed callback.
-+ * compare_timeouts() - Compare timed callbacks for array sorting.
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI /* Applies to entire file... */
-+
-+/*
-+ * Include necessary headers...
-+ */
-+
-+#include "cupsd.h"
-+
-+#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-+# include <malloc.h>
-+#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/timeval.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+struct _cupsd_timeout_s
-+{
-+ struct timeval when;
-+ int enabled;
-+ cupsd_timeoutfunc_t callback;
-+ void *data;
-+};
-+
-+/*
-+ * Local functions...
-+ */
-+
-+/*
-+ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
-+ */
-+
-+static int
-+compare_addrs (void *p0, void *p1)
-+{
-+ if (p0 == p1)
-+ return (0);
-+ if (p0 < p1)
-+ return (-1);
-+ return (1);
-+}
-+
-+static int
-+compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
-+{
-+ int addrsdiff = compare_addrs (p0, p1);
-+ int tvdiff;
-+
-+ if (addrsdiff == 0)
-+ return (0);
-+
-+ if (!p0->enabled || !p1->enabled)
-+ {
-+ if (!p0->enabled && !p1->enabled)
-+ return (addrsdiff);
-+
-+ return (p0->enabled ? -1 : 1);
-+ }
-+
-+ tvdiff = avahi_timeval_compare (&p0->when, &p1->when);
-+ if (tvdiff != 0)
-+ return (tvdiff);
-+
-+ return (addrsdiff);
-+}
-+
-+
-+/*
-+ * 'cupsdInitTimeouts()' - Initialise timeout structures.
-+ */
-+
-+void
-+cupsdInitTimeouts(void)
-+{
-+ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
-+}
-+
-+
-+/*
-+ * 'cupsdAddTimeout()' - Add a timed callback.
-+ */
-+
-+cupsd_timeout_t * /* O - Timeout handle */
-+cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
-+ cupsd_timeoutfunc_t cb, /* I - Callback function */
-+ void *data) /* I - User data */
-+{
-+ cupsd_timeout_t *timeout;
-+
-+ timeout = malloc (sizeof(cupsd_timeout_t));
-+ if (timeout != NULL)
-+ {
-+ timeout->enabled = (tv != NULL);
-+ if (tv)
-+ {
-+ timeout->when.tv_sec = tv->tv_sec;
-+ timeout->when.tv_usec = tv->tv_usec;
-+ }
-+
-+ timeout->callback = cb;
-+ timeout->data = data;
-+ cupsArrayAdd (Timeouts, timeout);
-+ }
-+
-+ return timeout;
-+}
-+
-+
-+/*
-+ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
-+ */
-+
-+cupsd_timeout_t * /* O - Next enabled timeout or NULL */
-+cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
-+{
-+ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
-+ struct timeval curtime;
-+
-+ if (first && !first->enabled)
-+ first = NULL;
-+
-+ if (first && delay)
-+ {
-+ gettimeofday (&curtime, NULL);
-+ if (avahi_timeval_compare (&curtime, &first->when) > 0)
-+ {
-+ *delay = 0;
-+ } else {
-+ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
-+ if (first->when.tv_usec < curtime.tv_usec)
-+ (*delay)--;
-+ }
-+ }
-+
-+ return (first);
-+}
-+
-+
-+/*
-+ * 'cupsdRunTimeout()' - Run a timed callback.
-+ */
-+
-+void
-+cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
-+{
-+ if (!timeout)
-+ return;
-+ timeout->enabled = 0;
-+ if (!timeout->callback)
-+ return;
-+ timeout->callback (timeout, timeout->data);
-+}
-+
-+/*
-+ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
-+ */
-+
-+void
-+cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
-+ const struct timeval *tv) /* I - Absolute time or NULL */
-+{
-+ cupsArrayRemove (Timeouts, timeout);
-+ timeout->enabled = (tv != NULL);
-+ if (tv)
-+ {
-+ timeout->when.tv_sec = tv->tv_sec;
-+ timeout->when.tv_usec = tv->tv_usec;
-+ }
-+ cupsArrayAdd (Timeouts, timeout);
-+}
-+
-+
-+/*
-+ * 'cupsdRemoveTimeout()' - Discard a timed callback.
-+ */
-+
-+void
-+cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
-+{
-+ cupsArrayRemove (Timeouts, timeout);
-+ free (timeout);
-+}
-+
-+
-+#endif /* HAVE_AVAHI ... from top of file */
-+
-+/*
-+ * End of "$Id$".
-+ */
diff --git a/libre/cups-libre/cups-avahi-4-poll.patch b/libre/cups-libre/cups-avahi-4-poll.patch
deleted file mode 100755
index d7fa5fd56..000000000
--- a/libre/cups-libre/cups-avahi-4-poll.patch
+++ /dev/null
@@ -1,529 +0,0 @@
-diff -up cups-1.5.2/scheduler/avahi.c.avahi-4-poll cups-1.5.2/scheduler/avahi.c
---- cups-1.5.2/scheduler/avahi.c.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.c 2012-03-14 15:07:29.477542381 +0000
-@@ -0,0 +1,441 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Avahi poll implementation for the CUPS scheduler.
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * Contents:
-+ *
-+ * watch_read_cb - Read callback for file descriptor
-+ * watch_write_cb - Write callback for file descriptor
-+ * watched_fd_add_select() - Call cupsdAddSelect() as needed
-+ * watch_new() - Create a new file descriptor watch
-+ * watch_free() - Free a file descriptor watch
-+ * watch_update() - Update watched events for a file descriptor
-+ * watch_get_events() - Get events that happened for a file descriptor
-+ * timeout_cb() - Run a timed Avahi callback
-+ * timeout_new() - Set a wakeup time
-+ * timeout_update() - Update the expiration time for a timeout
-+ * timeout_free() - Free a timeout
-+ * compare_watched_fds() - Compare watched file descriptors for array sorting
-+ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
-+ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
-+ * avahi_cups_poll_get() - Get the abstract poll API structure
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI /* Applies to entire file... */
-+
-+/*
-+ * Include necessary headers...
-+ */
-+
-+#include "cupsd.h"
-+
-+#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-+# include <malloc.h>
-+#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/timeval.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+typedef struct
-+{
-+ AvahiCupsPoll *cups_poll;
-+
-+ int fd;
-+ AvahiWatchEvent occurred;
-+ cups_array_t *watches;
-+} cupsd_watched_fd_t;
-+
-+struct AvahiWatch
-+{
-+ cupsd_watched_fd_t *watched_fd;
-+
-+ AvahiWatchEvent events;
-+ AvahiWatchCallback callback;
-+ void *userdata;
-+};
-+
-+struct AvahiTimeout
-+{
-+ AvahiCupsPoll *cups_poll;
-+ AvahiTimeoutCallback callback;
-+ void *userdata;
-+ cupsd_timeout_t *cupsd_timeout;
-+};
-+
-+/*
-+ * Local functions...
-+ */
-+
-+static AvahiWatch * watch_new(const AvahiPoll *api,
-+ int fd,
-+ AvahiWatchEvent events,
-+ AvahiWatchCallback callback,
-+ void *userdata);
-+static void watch_free(AvahiWatch *watch);
-+static void watch_update(AvahiWatch *watch,
-+ AvahiWatchEvent events);
-+static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
-+
-+
-+/*
-+ * 'watch_read_cb' - Read callback for file descriptor
-+ */
-+
-+static void
-+watch_read_cb (void *userdata)
-+{
-+ AvahiWatch *watch;
-+ cupsd_watched_fd_t *watched_fd = userdata;
-+ watched_fd->occurred |= AVAHI_WATCH_IN;
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ if (watch->events & watched_fd->occurred)
-+ {
-+ (watch->callback) (watch, watched_fd->fd,
-+ AVAHI_WATCH_IN, watch->userdata);
-+ watched_fd->occurred &= ~AVAHI_WATCH_IN;
-+ break;
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * 'watch_write_cb' - Write callback for file descriptor
-+ */
-+
-+static void
-+watch_write_cb (void *userdata)
-+{
-+ AvahiWatch *watch;
-+ cupsd_watched_fd_t *watched_fd = userdata;
-+ watched_fd->occurred |= AVAHI_WATCH_OUT;
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ if (watch->events & watched_fd->occurred)
-+ {
-+ (watch->callback) (watch, watched_fd->fd,
-+ AVAHI_WATCH_OUT, watch->userdata);
-+ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
-+ break;
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
-+ */
-+
-+static int /* O - Watches? */
-+watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
-+{
-+ AvahiWatch *watch;
-+ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
-+ int any_watches = 0;
-+
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ any_watches = 1;
-+ if (watch->events & (AVAHI_WATCH_IN |
-+ AVAHI_WATCH_ERR |
-+ AVAHI_WATCH_HUP))
-+ {
-+ read_cb = (cupsd_selfunc_t)watch_read_cb;
-+ if (write_cb != NULL)
-+ break;
-+ }
-+
-+ if (watch->events & AVAHI_WATCH_OUT)
-+ {
-+ write_cb = (cupsd_selfunc_t)watch_write_cb;
-+ if (read_cb != NULL)
-+ break;
-+ }
-+ }
-+
-+ if (read_cb || write_cb)
-+ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
-+ else
-+ cupsdRemoveSelect (watched_fd->fd);
-+
-+ return (any_watches);
-+}
-+
-+/*
-+ * 'watch_new' - Create a new file descriptor watch
-+ */
-+
-+static AvahiWatch *
-+watch_new (const AvahiPoll *api,
-+ int fd,
-+ AvahiWatchEvent events,
-+ AvahiWatchCallback callback,
-+ void *userdata)
-+{
-+ cupsd_watched_fd_t key, *watched_fd;
-+ AvahiCupsPoll *cups_poll = api->userdata;
-+ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
-+ if (watch == NULL)
-+ return (NULL);
-+
-+ watch->events = events;
-+ watch->callback = callback;
-+ watch->userdata = userdata;
-+
-+ key.fd = fd;
-+ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
-+ if (watched_fd == NULL)
-+ {
-+ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
-+ if (watched_fd == NULL)
-+ {
-+ free (watch);
-+ return (NULL);
-+ }
-+
-+ watched_fd->fd = fd;
-+ watched_fd->occurred = 0;
-+ watched_fd->cups_poll = cups_poll;
-+ watched_fd->watches = cupsArrayNew (NULL, NULL);
-+ cupsArrayAdd (cups_poll->watched_fds, watched_fd);
-+ }
-+
-+ watch->watched_fd = watched_fd;
-+ cupsArrayAdd(watched_fd->watches, watch);
-+ watched_fd_add_select (watched_fd);
-+ return (watch);
-+}
-+
-+
-+/*
-+ * 'watch_free' - Free a file descriptor watch
-+ */
-+
-+static void
-+watch_free (AvahiWatch *watch)
-+{
-+ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
-+ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
-+
-+ cupsArrayRemove (watched_fd->watches, watch);
-+ free (watch);
-+
-+ if (!watched_fd_add_select (watched_fd))
-+ {
-+ /* No more watches */
-+ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
-+ free (watched_fd);
-+ }
-+}
-+
-+
-+/*
-+ * 'watch_update' - Update watched events for a file descriptor
-+ */
-+
-+static void
-+watch_update (AvahiWatch *watch,
-+ AvahiWatchEvent events)
-+{
-+ watch->events = events;
-+ watched_fd_add_select (watch->watched_fd);
-+}
-+
-+
-+/*
-+ * 'watch_get_events' - Get events that happened for a file descriptor
-+ */
-+
-+static AvahiWatchEvent
-+watch_get_events (AvahiWatch *watch)
-+{
-+ return (watch->watched_fd->occurred);
-+}
-+
-+
-+/*
-+ * 'timeout_cb()' - Run a timed Avahi callback
-+ */
-+
-+static void
-+timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
-+{
-+ AvahiTimeout *timeout = userdata;
-+ (timeout->callback) (timeout, timeout->userdata);
-+}
-+
-+
-+/*
-+ * 'timeout_new' - Set a wakeup time
-+ */
-+
-+static AvahiTimeout *
-+timeout_new (const AvahiPoll *api,
-+ const struct timeval *tv,
-+ AvahiTimeoutCallback callback,
-+ void *userdata)
-+{
-+ AvahiTimeout *timeout;
-+ AvahiCupsPoll *cups_poll = api->userdata;
-+
-+ timeout = malloc(sizeof(AvahiTimeout));
-+ if (timeout == NULL)
-+ return (NULL);
-+
-+ timeout->cups_poll = cups_poll;
-+ timeout->callback = callback;
-+ timeout->userdata = userdata;
-+ timeout->cupsd_timeout = cupsdAddTimeout (tv,
-+ (cupsd_timeoutfunc_t)timeout_cb,
-+ timeout);
-+ cupsArrayAdd (cups_poll->timeouts, timeout);
-+ return (timeout);
-+}
-+
-+
-+/*
-+ * 'timeout_update' - Update the expiration time for a timeout
-+ */
-+
-+static void
-+timeout_update (AvahiTimeout *timeout,
-+ const struct timeval *tv)
-+{
-+ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
-+}
-+
-+
-+/*
-+ * ' timeout_free' - Free a timeout
-+ */
-+
-+static void
-+timeout_free (AvahiTimeout *timeout)
-+{
-+ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
-+ cupsdRemoveTimeout (timeout->cupsd_timeout);
-+ free (timeout);
-+}
-+
-+
-+/*
-+ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
-+ */
-+static int
-+compare_watched_fds(cupsd_watched_fd_t *p0,
-+ cupsd_watched_fd_t *p1)
-+{
-+ /*
-+ * Compare by fd (no two elements have the same fd)
-+ */
-+
-+ if (p0->fd == p1->fd)
-+ return 0;
-+
-+ return (p0->fd < p1->fd ? -1 : 1);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
-+ */
-+
-+AvahiCupsPoll *
-+avahi_cups_poll_new (void)
-+{
-+ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
-+ if (cups_poll == NULL)
-+ return (NULL);
-+
-+ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
-+ NULL);
-+ cups_poll->timeouts = cupsArrayNew (NULL, NULL);
-+
-+ cups_poll->api.userdata = cups_poll;
-+ cups_poll->api.watch_new = watch_new;
-+ cups_poll->api.watch_free = watch_free;
-+ cups_poll->api.watch_update = watch_update;
-+ cups_poll->api.watch_get_events = watch_get_events;
-+
-+ cups_poll->api.timeout_new = timeout_new;
-+ cups_poll->api.timeout_update = timeout_update;
-+ cups_poll->api.timeout_free = timeout_free;
-+
-+ return (cups_poll);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
-+ */
-+void
-+avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
-+{
-+ cupsd_watched_fd_t *watched_fd;
-+
-+ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
-+ watched_fd;
-+ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds))
-+ cupsArrayClear (watched_fd->watches);
-+
-+ cupsArrayClear (cups_poll->watched_fds);
-+ cupsArrayClear (cups_poll->timeouts);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_get' - Get the abstract poll API structure
-+ */
-+
-+const AvahiPoll *
-+avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
-+{
-+ return (&cups_poll->api);
-+}
-+
-+
-+#endif /* HAVE_AVAHI ... from top of file */
-+
-+/*
-+ * End of "$Id$".
-+ */
-diff -up cups-1.5.2/scheduler/avahi.h.avahi-4-poll cups-1.5.2/scheduler/avahi.h
---- cups-1.5.2/scheduler/avahi.h.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:07:29.477542381 +0000
-@@ -0,0 +1,69 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Avahi poll implementation for the CUPS scheduler.
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/publish.h>
-+#endif /* HAVE_AVAHI */
-+
-+#ifdef HAVE_AUTHORIZATION_H
-+# include <Security/Authorization.h>
-+#endif /* HAVE_AUTHORIZATION_H */
-+
-+
-+#ifdef HAVE_AVAHI
-+typedef struct
-+{
-+ AvahiPoll api;
-+ cups_array_t *watched_fds;
-+ cups_array_t *timeouts;
-+} AvahiCupsPoll;
-+#endif /* HAVE_AVAHI */
-+
-+/*
-+ * Prototypes...
-+ */
-+
-+#ifdef HAVE_AVAHI
-+extern AvahiCupsPoll * avahi_cups_poll_new(void);
-+extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
-+extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * End of "$Id$".
-+ */
-diff -up cups-1.5.2/scheduler/Makefile.avahi-4-poll cups-1.5.2/scheduler/Makefile
---- cups-1.5.2/scheduler/Makefile.avahi-4-poll 2012-03-14 15:06:36.508476980 +0000
-+++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:07:29.476542380 +0000
-@@ -17,6 +17,7 @@ include ../Makedefs
-
- CUPSDOBJS = \
- auth.o \
-+ avahi.o \
- banners.o \
- cert.o \
- classes.o \
diff --git a/libre/cups-libre/cups-avahi-5-services.patch b/libre/cups-libre/cups-avahi-5-services.patch
deleted file mode 100755
index 820b3c32b..000000000
--- a/libre/cups-libre/cups-avahi-5-services.patch
+++ /dev/null
@@ -1,1272 +0,0 @@
-diff -up cups-1.5.2/cgi-bin/admin.c.avahi-5-services cups-1.5.2/cgi-bin/admin.c
---- cups-1.5.2/cgi-bin/admin.c.avahi-5-services 2011-08-17 22:01:53.000000000 +0100
-+++ cups-1.5.2/cgi-bin/admin.c 2012-03-14 15:08:25.701611799 +0000
-@@ -1643,7 +1643,7 @@ do_config_server(http_t *http) /* I - H
- else
- local_protocols[0] = '\0';
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
- {
- if (local_protocols[0])
-@@ -1651,7 +1651,7 @@ do_config_server(http_t *http) /* I - H
- else
- strcat(local_protocols, "dnssd");
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LDAP
- if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
-@@ -2718,9 +2718,9 @@ do_menu(http_t *http) /* I - HTTP conn
- #endif /* HAVE_GSSAPI */
- cgiSetVariable("KERBEROS", "");
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cgiSetVariable("HAVE_DNSSD", "1");
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LDAP
- cgiSetVariable("HAVE_LDAP", "1");
-diff -up cups-1.5.2/scheduler/avahi.h.avahi-5-services cups-1.5.2/scheduler/avahi.h
---- cups-1.5.2/scheduler/avahi.h.avahi-5-services 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:08:25.701611799 +0000
-@@ -3,7 +3,7 @@
- *
- * Avahi poll implementation for the CUPS scheduler.
- *
-- * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Copyright (C) 2010, 2011, 2012 Red Hat, Inc.
- * Authors:
- * Tim Waugh <twaugh@redhat.com>
- *
-@@ -32,37 +32,40 @@
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
--#include <config.h>
-+#ifndef _CUPS_AVAHI_H_
-+# define _CUPS_AVAHI_H_
-
--#ifdef HAVE_AVAHI
--# include <avahi-client/client.h>
--# include <avahi-client/publish.h>
--#endif /* HAVE_AVAHI */
-+/*
-+ * Include necessary headers...
-+ */
-
--#ifdef HAVE_AUTHORIZATION_H
--# include <Security/Authorization.h>
--#endif /* HAVE_AUTHORIZATION_H */
-+# include <config.h>
-
-+# ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/publish.h>
-+# endif /* HAVE_AVAHI */
-
--#ifdef HAVE_AVAHI
-+# ifdef HAVE_AVAHI
- typedef struct
- {
- AvahiPoll api;
- cups_array_t *watched_fds;
- cups_array_t *timeouts;
- } AvahiCupsPoll;
--#endif /* HAVE_AVAHI */
-+# endif /* HAVE_AVAHI */
-
- /*
- * Prototypes...
- */
-
--#ifdef HAVE_AVAHI
-+# ifdef HAVE_AVAHI
- extern AvahiCupsPoll * avahi_cups_poll_new(void);
- extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
- extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
--#endif /* HAVE_AVAHI */
-+# endif /* HAVE_AVAHI */
-
-+#endif /* !_CUPS_AVAHI_H_ */
-
- /*
- * End of "$Id$".
-diff -up cups-1.5.2/scheduler/client.c.avahi-5-services cups-1.5.2/scheduler/client.c
---- cups-1.5.2/scheduler/client.c.avahi-5-services 2012-01-13 23:00:22.000000000 +0000
-+++ cups-1.5.2/scheduler/client.c 2012-03-14 15:08:25.703611797 +0000
-@@ -4989,7 +4989,7 @@ valid_host(cupsd_client_t *con) /* I -
- !strncmp(host, "[::1]:", 6));
- }
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * Check if the hostname is something.local (Bonjour); if so, allow it.
- */
-@@ -4998,7 +4998,7 @@ valid_host(cupsd_client_t *con) /* I -
- (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
- !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
- return (1);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- /*
- * Check if the hostname is an IP address...
-diff -up cups-1.5.2/scheduler/conf.c.avahi-5-services cups-1.5.2/scheduler/conf.c
---- cups-1.5.2/scheduler/conf.c.avahi-5-services 2012-03-14 15:04:17.636305526 +0000
-+++ cups-1.5.2/scheduler/conf.c 2012-03-14 15:08:25.706611803 +0000
-@@ -652,7 +652,7 @@ cupsdReadConfiguration(void)
- Browsing = CUPS_DEFAULT_BROWSING;
- DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
- #endif /* HAVE_DNSSD */
-
-diff -up cups-1.5.2/scheduler/dirsvc.c.avahi-5-services cups-1.5.2/scheduler/dirsvc.c
---- cups-1.5.2/scheduler/dirsvc.c.avahi-5-services 2012-03-14 15:04:17.674305572 +0000
-+++ cups-1.5.2/scheduler/dirsvc.c 2012-03-14 15:08:25.709611806 +0000
-@@ -27,6 +27,7 @@
- * ldap_connect() - Start new LDAP connection
- * ldap_reconnect() - Reconnect to LDAP Server
- * ldap_disconnect() - Disconnect from LDAP Server
-+ * cupsdStartAvahiClient() - Start an Avahi client if needed
- * cupsdStartBrowsing() - Start sending and receiving broadcast
- * information.
- * cupsdStartPolling() - Start polling servers as needed.
-@@ -40,11 +41,12 @@
- * dequote() - Remote quotes from a string.
- * dnssdAddAlias() - Add a DNS-SD alias name.
- * dnssdBuildTxtRecord() - Build a TXT record from printer info.
-- * dnssdComparePrinters() - Compare the registered names of two printers.
- * dnssdDeregisterPrinter() - Stop sending broadcast information for a
- * printer.
- * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
- * record format.
-+ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
-+ * AvahiStringList.
- * dnssdRegisterCallback() - DNSServiceRegister callback.
- * dnssdRegisterPrinter() - Start sending broadcast information for a
- * printer or update the broadcast contents.
-@@ -83,6 +85,7 @@
- */
-
- #include "cupsd.h"
-+#include <assert.h>
- #include <grp.h>
-
- #ifdef HAVE_DNSSD
-@@ -97,6 +100,17 @@
- # endif /* HAVE_SYSTEMCONFIGURATION */
- # endif /* __APPLE__ */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/domain.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+#ifdef HAVE_DNSSD
-+typedef char *cupsd_txt_record_t;
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+typedef AvahiStringList *cupsd_txt_record_t;
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -159,27 +173,38 @@ static void update_polling(void);
- static void update_smb(int onoff);
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
-+ int for_lpd);
-+static void dnssdDeregisterPrinter(cupsd_printer_t *p);
-+static void dnssdRegisterPrinter(cupsd_printer_t *p);
-+static void dnssdStop(void);
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+
- #ifdef HAVE_DNSSD
- # ifdef HAVE_COREFOUNDATION
- static void dnssdAddAlias(const void *key, const void *value,
- void *context);
- # endif /* HAVE_COREFOUNDATION */
--static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
-- int for_lpd);
--static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
--static void dnssdDeregisterPrinter(cupsd_printer_t *p);
--static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
-- int count);
- static void dnssdRegisterCallback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- DNSServiceErrorType errorCode,
- const char *name, const char *regtype,
- const char *domain, void *context);
--static void dnssdRegisterPrinter(cupsd_printer_t *p);
--static void dnssdStop(void);
- static void dnssdUpdate(void);
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
-+ int count);
-+static void avahi_entry_group_cb (AvahiEntryGroup *group,
-+ AvahiEntryGroupState state,
-+ void *userdata);
-+static void avahi_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *userdata);
-+#endif /* HAVE_AVAHI */
-+
- #ifdef HAVE_LDAP
- static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
- {
-@@ -283,10 +308,10 @@ cupsdDeregisterPrinter(
- ldap_dereg_printer(p);
- #endif /* HAVE_LDAP */
-
--#ifdef HAVE_DNSSD
-- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdDeregisterPrinter(p);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-@@ -702,10 +727,10 @@ cupsdRegisterPrinter(cupsd_printer_t *p)
- slpRegisterPrinter(p); */
- #endif /* HAVE_LIBSLP */
-
--#ifdef HAVE_DNSSD
-- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if ((BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdRegisterPrinter(p);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-@@ -1419,6 +1444,36 @@ ldap_disconnect(LDAP *ld) /* I - LDAP h
- #endif /* HAVE_LDAP */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
-+ */
-+
-+void
-+cupsdStartAvahiClient(void)
-+{
-+ int error = 0;
-+
-+ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
-+ {
-+ if (!AvahiCupsPollHandle)
-+ AvahiCupsPollHandle = avahi_cups_poll_new ();
-+
-+ if (AvahiCupsPollHandle)
-+ {
-+ if (avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
-+ AVAHI_CLIENT_NO_FAIL,
-+ avahi_client_cb, NULL,
-+ &error) != NULL)
-+ AvahiCupsClientConnecting = 1;
-+ else
-+ cupsdLogMessage (CUPSD_LOG_WARN, "Avahi client failed: %d", error);
-+ }
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
- */
-@@ -1542,13 +1597,16 @@ cupsdStartBrowsing(void)
- else
- BrowseSocket = -1;
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType error; /* Error from service creation */
-+#endif /* HAVE_DNSSD */
- cupsd_listener_t *lis; /* Current listening socket */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * First create a "master" connection for all registrations...
- */
-@@ -1573,6 +1631,7 @@ cupsdStartBrowsing(void)
- fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
-
- cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
-+#endif /* HAVE_DNSSD */
-
- /*
- * Then get the port we use for registrations. If we are not listening
-@@ -1598,17 +1657,23 @@ cupsdStartBrowsing(void)
- */
-
- if (BrowseRemoteProtocols & BROWSE_DNSSD)
-- DNSSDPrinters = cupsArrayNew((cups_array_func_t)dnssdComparePrinters,
-- NULL);
-+ DNSSDPrinters = cupsArrayNew(NULL, NULL);
-
- /*
- * Set the computer name and register the web interface...
- */
-
- cupsdUpdateDNSSDName();
-+
-+#ifdef HAVE_AVAHI
-+ cupsdStartAvahiClient ();
-+#endif /* HAVE_AVAHI */
-+
-+#ifdef HAVE_DNSSD
- }
-- }
- #endif /* HAVE_DNSSD */
-+ }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LIBSLP
- if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
-@@ -1834,10 +1899,10 @@ cupsdStopBrowsing(void)
- BrowseSocket = -1;
- }
-
--#ifdef HAVE_DNSSD
-- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if ((BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdStop();
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LIBSLP
- if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
-@@ -1902,7 +1967,7 @@ cupsdStopPolling(void)
- }
-
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
- */
-@@ -1910,8 +1975,14 @@ cupsdStopPolling(void)
- void
- cupsdUpdateDNSSDName(void)
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType error; /* Error from service creation */
- char webif[1024]; /* Web interface share name */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int ret; /* Error from service creation */
-+ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
-+#endif /* HAVE_AVAHI */
- # ifdef HAVE_SYSTEMCONFIGURATION
- SCDynamicStoreRef sc; /* Context for dynamic store */
- CFDictionaryRef btmm; /* Back-to-My-Mac domains */
-@@ -2042,6 +2113,7 @@ cupsdUpdateDNSSDName(void)
- else
- strlcpy(webif, "CUPS Web Interface", sizeof(webif));
-
-+#ifdef HAVE_DNSSD
- if (WebIFRef)
- DNSServiceRefDeallocate(WebIFRef);
-
-@@ -2054,9 +2126,45 @@ cupsdUpdateDNSSDName(void)
- NULL)) != kDNSServiceErr_NoError)
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "DNS-SD web interface registration failed: %d", error);
-+#endif /* HAVE_DNSSD */
-+
-+#ifdef HAVE_AVAHI
-+ if (!AvahiCupsClient)
-+ /*
-+ * Client not yet running.
-+ */
-+ return;
-+
-+ if (AvahiWebIFGroup)
-+ avahi_entry_group_reset (AvahiWebIFGroup);
-+ else
-+ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
-+ avahi_entry_group_cb,
-+ NULL);
-+
-+ if (AvahiWebIFGroup)
-+ {
-+ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, /* flags */
-+ webif, /* name */
-+ "_http._tcp", /* type */
-+ NULL, /* domain */
-+ NULL, /* host */
-+ DNSSDPort, /* port */
-+ "path=/", NULL);
-+ if (ret == 0)
-+ ret = avahi_entry_group_commit (AvahiWebIFGroup);
-+
-+ if (ret != 0)
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Avahi web interface registration failed: %d", ret);
-+ }
-+#endif /* HAVE_AVAHI */
- }
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
- #ifdef HAVE_LDAP
-@@ -2334,13 +2442,15 @@ dnssdAddAlias(const void *key, /* I - K
- "Bad Back to My Mac domain in dynamic store!");
- }
- # endif /* HAVE_COREFOUNDATION */
-+#endif /* HAVE_DNSSD */
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
- */
-
--static char * /* O - TXT record */
-+static cupsd_txt_record_t /* O - TXT record */
- dnssdBuildTxtRecord(
- int *txt_len, /* O - TXT record length */
- cupsd_printer_t *p, /* I - Printer information */
-@@ -2379,7 +2489,12 @@ dnssdBuildTxtRecord(
- keyvalue[i ][0] = "ty";
- keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
-
-- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
-+ snprintf(admin_hostname, sizeof(admin_hostname),
-+ "%s.local"
-+#ifdef HAVE_DNSSD
-+ "." /* terminating dot no good for Avahi */
-+#endif /* HAVE_DNSSD */
-+ , DNSSDHostName);
- httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
- "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
- (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
-@@ -2462,19 +2577,12 @@ dnssdBuildTxtRecord(
- * Then pack them into a proper txt record...
- */
-
-+#ifdef HAVE_DNSSD
- return (dnssdPackTxtRecord(txt_len, keyvalue, i));
--}
--
--
--/*
-- * 'dnssdComparePrinters()' - Compare the registered names of two printers.
-- */
--
--static int /* O - Result of comparison */
--dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
-- cupsd_printer_t *b)/* I - Second printer */
--{
-- return (_cups_strcasecmp(a->reg_name, b->reg_name));
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ return (avahiPackTxtRecord(keyvalue, i));
-+#endif /* HAVE_AVAHI */
- }
-
-
-@@ -2489,6 +2597,10 @@ dnssdDeregisterPrinter(
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+
- /*
- * Closing the socket deregisters the service
- */
-@@ -2524,6 +2636,24 @@ dnssdDeregisterPrinter(
- free(p->printer_txt);
- p->printer_txt = NULL;
- }
-+#endif /* HAVE_DNSSD */
-+
-+#ifdef HAVE_AVAHI
-+ if (p->avahi_group)
-+ {
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+
-+ if (p->ipp_txt)
-+ avahi_string_list_free (p->ipp_txt);
-+
-+ if (p->printer_txt)
-+ avahi_string_list_free (p->printer_txt);
-+
-+ p->ipp_txt = p->printer_txt = NULL;
-+ }
-+#endif /* HAVE_AVAHI */
-
- /*
- * Remove the printer from the array of DNS-SD printers, then clear the
-@@ -2533,8 +2663,10 @@ dnssdDeregisterPrinter(
- cupsArrayRemove(DNSSDPrinters, p);
- cupsdClearString(&p->reg_name);
- }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
- * TXT record format.
-@@ -2644,8 +2776,10 @@ dnssdRegisterCallback(
- LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
- }
- }
-+#endif /* HAVE_DNSSD */
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
- * or update the broadcast contents.
-@@ -2654,20 +2788,40 @@ dnssdRegisterCallback(
- static void
- dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType se; /* dnssd errors */
- char *ipp_txt, /* IPP TXT record buffer */
- *printer_txt, /* LPD TXT record buffer */
-- name[1024], /* Service name */
-- *nameptr; /* Pointer into name */
-+ name[1024]; /* Service name */
- int ipp_len, /* IPP TXT record length */
- printer_len, /* LPD TXT record length */
- printer_port; /* LPD port number */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int ret; /* Error code */
-+ AvahiStringList *ipp_txt, /* IPP TXT record */
-+ *printer_txt; /* LPD TXT record */
-+ char name[AVAHI_LABEL_MAX], /* Service name */
-+ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
-+ char *regtype_copy, /* Writeable copy of reg type */
-+ *subtype, /* Current service sub type */
-+ *nextsubtype; /* Next service sub type */
-+#endif /* HAVE_AVAHI */
-+ char *nameptr; /* Pointer into name */
- const char *regtype; /* Registration type */
-
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
- !p->ipp_ref ? "new" : "update");
--
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
-+ !p->avahi_group ? "new" : "update");
-+#endif /* HAVE_AVAHI */
- /*
- * If per-printer sharing was just disabled make sure we're not
- * registered before returning.
-@@ -2686,12 +2840,36 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
- if (p->info && strlen(p->info) > 0)
- {
- if (DNSSDComputerName)
-- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
-+ {
-+ /*
-+ * Make sure there is room for at least 15 characters of
-+ * DNSSDComputerName.
-+ */
-+
-+ assert(sizeof(name) >= 15 + 4);
-+ nameptr = name + strlcpy(name, p->info,
-+ sizeof(name) - 4 -
-+ strnlen(DNSSDComputerName, 15));
-+ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
-+ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
-+ }
- else
- strlcpy(name, p->info, sizeof(name));
- }
- else if (DNSSDComputerName)
-- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
-+ {
-+ /*
-+ * Make sure there is room for at least 15 characters of
-+ * DNSSDComputerName.
-+ */
-+
-+ assert(sizeof(name) >= 15 + 4);
-+ nameptr = name + strlcpy(name, p->info,
-+ sizeof(name) - 4 -
-+ strnlen(DNSSDComputerName, 15));
-+ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
-+ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
-+ }
- else
- strlcpy(name, p->name, sizeof(name));
-
-@@ -2712,6 +2890,7 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
- * Register IPP and (optionally) LPD...
- */
-
-+#ifdef HAVE_DNSSD
- ipp_len = 0; /* anti-compiler-warning-code */
- ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
-
-@@ -2884,6 +3063,209 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
-
- if (printer_txt)
- free(printer_txt);
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (!AvahiCupsClient)
-+ /*
-+ * Client not running yet. The client callback will call us again later.
-+ */
-+ return;
-+
-+ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
-+ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
-+ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
-+
-+ if (p->avahi_group && p->ipp_txt && ipp_txt &&
-+ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
-+ {
-+ /*
-+ * Update the existing registration...
-+ */
-+
-+ avahi_string_list_free (p->ipp_txt);
-+
-+ if (p->printer_txt)
-+ avahi_string_list_free (p->printer_txt);
-+
-+ /*
-+ * Update the service group entry.
-+ */
-+
-+ regtype_copy = strdup (regtype);
-+ subtype = strchr (regtype_copy, ',');
-+ if (subtype)
-+ *subtype = '\0';
-+
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Updating TXT record for %s (%s)", name, regtype_copy);
-+ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ regtype_copy,
-+ NULL, ipp_txt);
-+ free (regtype_copy);
-+
-+ if (ret < 0)
-+ goto update_failed;
-+
-+ p->ipp_txt = ipp_txt;
-+ ipp_txt = NULL;
-+
-+ if (BrowseLocalProtocols & BROWSE_LPD)
-+ {
-+ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ "_printer._tcp", NULL,
-+ printer_txt);
-+ if (ret < 0)
-+ goto update_failed;
-+
-+ p->printer_txt = printer_txt;
-+ printer_txt = NULL;
-+ }
-+
-+ ret = avahi_entry_group_commit (p->avahi_group);
-+ if (ret < 0)
-+ {
-+ update_failed:
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Failed to update TXT record for %s: %d",
-+ name, ret);
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+ ipp_txt = p->ipp_txt;
-+ p->ipp_txt = NULL;
-+ }
-+ }
-+
-+ if (!p->avahi_group)
-+ {
-+ /*
-+ * Initial registration. Use the _fax subtype for fax queues...
-+ */
-+
-+ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
-+ avahi_entry_group_cb,
-+ p);
-+
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "Registering Avahi printer %s with name \"%s\" and "
-+ "type \"%s\"", p->name, name, regtype);
-+
-+ if (!p->avahi_group)
-+ {
-+ ret = 0;
-+ goto add_failed;
-+ }
-+
-+ /*
-+ * Add each service type (DNSSDRegType may contain several,
-+ * separated by commas).
-+ */
-+
-+ subtype = regtype_copy = strdup (regtype);
-+ while (subtype && *subtype)
-+ {
-+ nextsubtype = strchr (subtype, ',');
-+ if (nextsubtype)
-+ *nextsubtype++ = '\0';
-+
-+ if (subtype == regtype_copy)
-+ {
-+ /*
-+ * Main type entry.
-+ */
-+
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Adding TXT record for %s (%s)", name, regtype_copy);
-+ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name, regtype_copy,
-+ NULL, NULL,
-+ DNSSDPort,
-+ ipp_txt);
-+ }
-+ else
-+ {
-+ /*
-+ * Sub-type entry.
-+ */
-+
-+ snprintf (fullsubtype, sizeof(fullsubtype),
-+ "%s._sub.%s", subtype, regtype_copy);
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Adding TXT record for %s (%s)", name, fullsubtype);
-+ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ regtype_copy,
-+ NULL, fullsubtype);
-+ }
-+
-+ if (ret < 0)
-+ {
-+ free (regtype_copy);
-+ goto add_failed;
-+ }
-+
-+ subtype = nextsubtype;
-+ }
-+
-+ free (regtype_copy);
-+ p->ipp_txt = ipp_txt;
-+ ipp_txt = NULL;
-+
-+ if (BrowseLocalProtocols & BROWSE_LPD)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "Registering Avahi printer %s with name \"%s\" and "
-+ "type \"_printer._tcp\"", p->name, name);
-+
-+ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ "_printer._tcp", NULL, NULL,
-+ 515,
-+ printer_txt);
-+ if (ret < 0)
-+ goto add_failed;
-+
-+ p->printer_txt = printer_txt;
-+ printer_txt = NULL;
-+ }
-+
-+ ret = avahi_entry_group_commit (p->avahi_group);
-+
-+ if (ret < 0)
-+ {
-+ add_failed:
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Failed to add Avahi entry for %s: %d",
-+ name, ret);
-+ if (p->avahi_group)
-+ {
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+ }
-+ ipp_txt = p->ipp_txt;
-+ p->ipp_txt = NULL;
-+ }
-+ }
-+
-+ if (ipp_txt)
-+ avahi_string_list_free (ipp_txt);
-+
-+ if (printer_txt)
-+ avahi_string_list_free (printer_txt);
-+#endif /* HAVE_AVAHI */
- }
-
-
-@@ -2896,6 +3278,10 @@ dnssdStop(void)
- {
- cupsd_printer_t *p; /* Current printer */
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+#endif /* HAVE_DNSSD */
-
- /*
- * De-register the individual printers
-@@ -2910,12 +3296,23 @@ dnssdStop(void)
- * Shutdown the rest of the service refs...
- */
-
-+#ifdef HAVE_DNSSD
- if (WebIFRef)
- {
- DNSServiceRefDeallocate(WebIFRef);
- WebIFRef = NULL;
- }
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (AvahiWebIFGroup)
-+ {
-+ avahi_entry_group_reset (AvahiWebIFGroup);
-+ avahi_entry_group_free (AvahiWebIFGroup);
-+ AvahiWebIFGroup = NULL;
-+ }
-+#endif /* HAVE_AVAHI */
-
-+#ifdef HAVE_DNSSD
- if (RemoteRef)
- {
- DNSServiceRefDeallocate(RemoteRef);
-@@ -2926,14 +3323,17 @@ dnssdStop(void)
-
- DNSServiceRefDeallocate(DNSSDRef);
- DNSSDRef = NULL;
-+#endif /* HAVE_DNSSD */
-
- cupsArrayDelete(DNSSDPrinters);
- DNSSDPrinters = NULL;
-
- DNSSDPort = 0;
- }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'dnssdUpdate()' - Handle DNS-SD queries.
- */
-@@ -2955,6 +3355,153 @@ dnssdUpdate(void)
- #endif /* HAVE_DNSSD */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
-+ * AvahiStringList.
-+ */
-+
-+static AvahiStringList * /* O - new string list */
-+avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
-+ int count) /* I - Number of items in table */
-+{
-+ AvahiStringList *strlst = NULL;
-+ char **elements;
-+ size_t len;
-+ int i = 0;
-+
-+ elements = malloc ((1 + count) * sizeof (char *));
-+ if (!elements)
-+ goto cleanup;
-+
-+ for (i = 0; i < count; i++)
-+ {
-+ len = (1 + strlen (keyvalue[i][0]) +
-+ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
-+ elements[i] = malloc (len * sizeof (char));
-+ if (!elements[i])
-+ goto cleanup;
-+
-+ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
-+ }
-+
-+ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
-+
-+cleanup:
-+ while (--i >= 0)
-+ free (elements[i]);
-+
-+ free (elements);
-+ return (strlst);
-+}
-+
-+
-+/*
-+ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
-+ */
-+static void
-+avahi_entry_group_cb (AvahiEntryGroup *group,
-+ AvahiEntryGroupState state,
-+ void *userdata)
-+{
-+ char *name;
-+
-+ if (userdata)
-+ name = ((cupsd_printer_t *) userdata)->reg_name;
-+ else
-+ name = "CUPS web interface";
-+
-+ switch (state)
-+ {
-+ case AVAHI_ENTRY_GROUP_UNCOMMITED:
-+ case AVAHI_ENTRY_GROUP_REGISTERING:
-+ break;
-+
-+ case AVAHI_ENTRY_GROUP_ESTABLISHED:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Avahi entry group established for %s", name);
-+ break;
-+
-+ default:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Avahi entry group %s has state %d",
-+ name, state);
-+ break;
-+ }
-+}
-+
-+
-+/*
-+ * 'avahi_client_cb()' - Avahi client callback function.
-+ */
-+static void
-+avahi_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *userdata)
-+{
-+ cupsd_printer_t *printer;
-+ switch (state)
-+ {
-+ case AVAHI_CLIENT_S_RUNNING:
-+ /*
-+ * Avahi client started successfully.
-+ */
-+ AvahiCupsClient = client;
-+ AvahiCupsClientConnecting = 0;
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
-+
-+ cupsdUpdateDNSSDName ();
-+
-+ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
-+ printer;
-+ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
-+ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
-+ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
-+ CUPS_PRINTER_SCANNER))) && printer->shared)
-+ dnssdRegisterPrinter (printer);
-+
-+ break;
-+
-+ case AVAHI_CLIENT_CONNECTING:
-+ /*
-+ * No Avahi daemon, client is waiting.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
-+ break;
-+
-+ case AVAHI_CLIENT_S_REGISTERING:
-+ /*
-+ * Not yet registered.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client registering");
-+ break;
-+
-+ case AVAHI_CLIENT_FAILURE:
-+ /*
-+ * Avahi client failed, close it to allow a clean restart.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Avahi client failed, "
-+ "closing client to allow a clean restart");
-+
-+ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
-+ printer;
-+ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
-+ dnssdDeregisterPrinter (printer);
-+
-+ avahi_client_free(client);
-+ AvahiCupsClientConnecting = 0;
-+ AvahiCupsClient = NULL;
-+
-+ break;
-+
-+ default:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
- */
-diff -up cups-1.5.2/scheduler/dirsvc.h.avahi-5-services cups-1.5.2/scheduler/dirsvc.h
---- cups-1.5.2/scheduler/dirsvc.h.avahi-5-services 2011-03-21 02:12:14.000000000 +0000
-+++ cups-1.5.2/scheduler/dirsvc.h 2012-03-14 15:08:25.711611808 +0000
-@@ -31,6 +31,10 @@
- # endif /* HAVE_LDAP_SSL_H */
- #endif /* HAVE_LDAP */
-
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/publish.h>
-+#endif /* HAVE_AVAHI */
-+
- /*
- * Browse protocols...
- */
-@@ -131,19 +135,22 @@ VAR int PollPipe VALUE(0);
- VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
- /* Status buffer for pollers */
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- VAR char *DNSSDComputerName VALUE(NULL),
- /* Computer/server name */
- *DNSSDHostName VALUE(NULL),
- /* Hostname */
- *DNSSDRegType VALUE(NULL);
- /* Bonjour registration type */
--VAR cups_array_t *DNSSDAlias VALUE(NULL);
-- /* List of dynamic ServerAlias's */
- VAR int DNSSDPort VALUE(0);
- /* Port number to register */
- VAR cups_array_t *DNSSDPrinters VALUE(NULL);
- /* Printers we have registered */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+
-+#ifdef HAVE_DNSSD
-+VAR cups_array_t *DNSSDAlias VALUE(NULL);
-+ /* List of dynamic ServerAlias's */
- VAR DNSServiceRef DNSSDRef VALUE(NULL),
- /* Master DNS-SD service reference */
- WebIFRef VALUE(NULL),
-@@ -152,6 +159,17 @@ VAR DNSServiceRef DNSSDRef VALUE(NULL),
- /* Remote printer browse reference */
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
-+ /* AvahiCupsPoll object */
-+VAR AvahiClient *AvahiCupsClient VALUE(NULL);
-+ /* AvahiClient object */
-+VAR int AvahiCupsClientConnecting VALUE(0);
-+ /* Is AvahiClient object connecting? */
-+VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
-+ /* Web interface entry group */
-+#endif /* HAVE_AVAHI */
-+
- #ifdef HAVE_LIBSLP
- VAR SLPHandle BrowseSLPHandle VALUE(NULL);
- /* SLP API handle */
-@@ -195,13 +213,14 @@ extern void cupsdRegisterPrinter(cupsd_p
- extern void cupsdRestartPolling(void);
- extern void cupsdSaveRemoteCache(void);
- extern void cupsdSendBrowseList(void);
-+extern void cupsdStartAvahiClient(void);
- extern void cupsdStartBrowsing(void);
- extern void cupsdStartPolling(void);
- extern void cupsdStopBrowsing(void);
- extern void cupsdStopPolling(void);
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- extern void cupsdUpdateDNSSDName(void);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- #ifdef HAVE_LDAP
- extern void cupsdUpdateLDAPBrowse(void);
- #endif /* HAVE_LDAP */
-diff -up cups-1.5.2/scheduler/ipp.c.avahi-5-services cups-1.5.2/scheduler/ipp.c
---- cups-1.5.2/scheduler/ipp.c.avahi-5-services 2012-03-14 15:04:17.665305560 +0000
-+++ cups-1.5.2/scheduler/ipp.c 2012-03-14 15:08:25.715611813 +0000
-@@ -6099,7 +6099,7 @@ copy_printer_attrs(
- ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
- ippTimeToDate(curtime));
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
- {
- if (printer->reg_name)
-@@ -6109,7 +6109,7 @@ copy_printer_attrs(
- ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
- "printer-dns-sd-name", 0);
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- if (!ra || cupsArrayFind(ra, "printer-error-policy"))
- ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
-diff -up cups-1.5.2/scheduler/main.c.avahi-5-services cups-1.5.2/scheduler/main.c
---- cups-1.5.2/scheduler/main.c.avahi-5-services 2012-03-14 15:06:36.511476986 +0000
-+++ cups-1.5.2/scheduler/main.c 2012-03-14 15:08:25.718611817 +0000
-@@ -120,6 +120,10 @@ main(int argc, /* I - Number of comm
- cupsd_listener_t *lis; /* Current listener */
- time_t current_time, /* Current time */
- activity, /* Client activity timer */
-+#ifdef HAVE_AVAHI
-+ avahi_client_time, /* Time for next Avahi client
-+ check */
-+#endif /* HAVE_AVAHI */
- browse_time, /* Next browse send time */
- senddoc_time, /* Send-Document time */
- expire_time, /* Subscription expire time */
-@@ -672,6 +676,9 @@ main(int argc, /* I - Number of comm
- */
-
- current_time = time(NULL);
-+#ifdef HAVE_AVAHI
-+ avahi_client_time = current_time;
-+#endif /* HAVE_AVAHI */
- browse_time = current_time;
- event_time = current_time;
- expire_time = current_time;
-@@ -894,6 +901,16 @@ main(int argc, /* I - Number of comm
- tmo = cupsdNextTimeout (&tmo_delay);
- if (tmo && tmo_delay == 0)
- cupsdRunTimeout (tmo);
-+
-+ /*
-+ * Try to restart the Avahi client every 10 seconds if needed...
-+ */
-+
-+ if ((current_time - avahi_client_time) >= 10)
-+ {
-+ avahi_client_time = current_time;
-+ cupsdStartAvahiClient();
-+ }
- #endif /* HAVE_AVAHI */
-
- #ifndef __APPLE__
-diff -up cups-1.5.2/scheduler/printers.c.avahi-5-services cups-1.5.2/scheduler/printers.c
---- cups-1.5.2/scheduler/printers.c.avahi-5-services 2012-03-14 15:04:17.646305537 +0000
-+++ cups-1.5.2/scheduler/printers.c 2012-03-14 15:08:25.720611819 +0000
-@@ -883,9 +883,9 @@ cupsdDeletePrinter(
- cupsdClearString(&p->alert);
- cupsdClearString(&p->alert_description);
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cupsdClearString(&p->pdl);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- cupsArrayDelete(p->filetypes);
-
-@@ -3787,7 +3787,7 @@ add_printer_formats(cupsd_printer_t *p)
- attr->values[i].string.text = _cupsStrAlloc(mimetype);
- }
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- {
- char pdl[1024]; /* Buffer to build pdl list */
- mime_filter_t *filter; /* MIME filter looping var */
-@@ -3843,7 +3843,7 @@ add_printer_formats(cupsd_printer_t *p)
-
- cupsdSetString(&p->pdl, pdl);
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-diff -up cups-1.5.2/scheduler/printers.h.avahi-5-services cups-1.5.2/scheduler/printers.h
---- cups-1.5.2/scheduler/printers.h.avahi-5-services 2011-03-18 18:42:46.000000000 +0000
-+++ cups-1.5.2/scheduler/printers.h 2012-03-14 15:08:25.721611820 +0000
-@@ -16,6 +16,9 @@
- #ifdef HAVE_DNSSD
- # include <dns_sd.h>
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include "avahi.h"
-+#endif /* HAVE_AVAHI */
- #include <cups/pwg-private.h>
-
-
-@@ -95,16 +98,23 @@ struct cupsd_printer_s
- time_t marker_time; /* Last time marker attributes were updated */
- _ppd_cache_t *pc; /* PPD cache and mapping data */
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- char *reg_name, /* Name used for service registration */
-- *pdl, /* pdl value for TXT record */
-- *ipp_txt, /* IPP TXT record contents */
-+ *pdl; /* pdl value for TXT record */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+#ifdef HAVE_DNSSD
-+ char *ipp_txt, /* IPP TXT record contents */
- *printer_txt; /* LPD TXT record contents */
- int ipp_len, /* IPP TXT record length */
- printer_len; /* LPD TXT record length */
- DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
- printer_ref; /* Reference for _printer._tcp */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ AvahiStringList *ipp_txt, /* IPP TXT record */
-+ *printer_txt; /* LPD TXT record */
-+ AvahiEntryGroup *avahi_group; /* Avahi entry group */
-+#endif /* HAVE_AVAHI */
- };
-
-
diff --git a/libre/cups-libre/cups-no-export-ssllibs.patch b/libre/cups-libre/cups-no-export-ssllibs.patch
deleted file mode 100755
index 9be3c819b..000000000
--- a/libre/cups-libre/cups-no-export-ssllibs.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4
---- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200
-+++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200
-@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES)
- AC_SUBST(SSLFLAGS)
- AC_SUBST(SSLLIBS)
-
--EXPORT_SSLLIBS="$SSLLIBS"
-+EXPORT_SSLLIBS=""
- AC_SUBST(EXPORT_SSLLIBS)
-
-
diff --git a/libre/cups-libre/cups-no-gcrypt.patch b/libre/cups-libre/cups-no-gcrypt.patch
deleted file mode 100755
index 42f71d0d4..000000000
--- a/libre/cups-libre/cups-no-gcrypt.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/cups-ssl.m4
---- cups-1.5.0.orig//config-scripts/cups-ssl.m4 2011-01-11 08:05:58.000000000 +0100
-+++ cups-1.5.0/config-scripts/cups-ssl.m4 2011-08-02 10:44:26.011047900 +0200
-@@ -96,7 +96,6 @@
- dnl Then look for GNU TLS...
- if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
- AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
-- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
- if $PKGCONFIG --exists gnutls; then
- have_ssl=1
- SSLLIBS=`$PKGCONFIG --libs gnutls`
-@@ -110,16 +109,6 @@
- AC_DEFINE(HAVE_SSL)
- AC_DEFINE(HAVE_GNUTLS)
- fi
--
-- if test $have_ssl = 1; then
-- if $PKGCONFIG --exists gcrypt; then
-- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
-- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
-- elif test "x$LIBGCRYPTCONFIG" != x; then
-- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
-- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
-- fi
-- fi
- fi
-
- dnl Check for the OpenSSL library last...
---- cups-1.5.0.orig//cups/http-private.h 2011-01-22 01:07:22.000000000 +0100
-+++ cups-1.5.0/cups/http-private.h 2011-08-02 10:42:43.341604107 +0200
-@@ -93,7 +93,6 @@
- # elif defined HAVE_GNUTLS
- # include <gnutls/gnutls.h>
- # include <gnutls/x509.h>
--# include <gcrypt.h>
- # elif defined(HAVE_CDSASSL)
- # include <CoreFoundation/CoreFoundation.h>
- # include <Security/Security.h>
diff --git a/libre/cups-libre/cups-no-gzip-man.patch b/libre/cups-libre/cups-no-gzip-man.patch
deleted file mode 100755
index 6786c4430..000000000
--- a/libre/cups-libre/cups-no-gzip-man.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man cups-1.5b1/config-scripts/cups-manpages.m4
---- cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man 2011-05-12 07:21:56.000000000 +0200
-+++ cups-1.5b1/config-scripts/cups-manpages.m4 2011-05-23 17:25:50.000000000 +0200
-@@ -69,10 +69,10 @@ case "$uname" in
- ;;
- Linux* | GNU* | Darwin*)
- # Linux, GNU Hurd, and Mac OS X
-- MAN1EXT=1.gz
-- MAN5EXT=5.gz
-- MAN7EXT=7.gz
-- MAN8EXT=8.gz
-+ MAN1EXT=1
-+ MAN5EXT=5
-+ MAN7EXT=7
-+ MAN8EXT=8
- MAN8DIR=8
- ;;
- *)
diff --git a/libre/cups-libre/cups.install b/libre/cups-libre/cups.install
deleted file mode 100755
index 47c3d9b82..000000000
--- a/libre/cups-libre/cups.install
+++ /dev/null
@@ -1,26 +0,0 @@
-post_install() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
- echo ">> If you use an HTTPS connection to CUPS, the first time you access"
- echo ">> the interface it may take a very long time before the site comes up."
- echo ">> This is because the first request triggers the generation of the CUPS"
- echo ">> SSL certificates which can be a very time-consuming job."
-}
-
-post_upgrade() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
- if [ "`vercmp $2 1.4.7-2`" -lt 0 ]; then
- # important upgrade notice
- echo "daemon script has been renamed to /etc/rc.d/cupsd"
- echo "change your entry in /etc/rc.conf"
- fi
-}
-
-post_remove() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
-}
diff --git a/libre/cups-libre/cups.logrotate b/libre/cups-libre/cups.logrotate
deleted file mode 100755
index 9c49bbdaf..000000000
--- a/libre/cups-libre/cups.logrotate
+++ /dev/null
@@ -1,8 +0,0 @@
-/var/log/cups/*log {
- missingok
- notifempty
- delaycompress
- postrotate
- /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
- endscript
-}
diff --git a/libre/cups-libre/cups.pam b/libre/cups-libre/cups.pam
deleted file mode 100755
index 53724d1f8..000000000
--- a/libre/cups-libre/cups.pam
+++ /dev/null
@@ -1,3 +0,0 @@
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
diff --git a/libre/cups-libre/rePKGBUILD b/libre/cups-libre/rePKGBUILD
deleted file mode 100755
index 5f55000cc..000000000
--- a/libre/cups-libre/rePKGBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# This is an example rePKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-source PKGBUILD
-unset build package md5sums source check
-_repo=extra
-pkgname='cups-libre'
-options=(!strip)
-source=(PKGBUILD
- http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
- # files for pkg modifications
- )
-
-build() {
- cd "${srcdir}/"
- rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
- # put actions for package modifications below this line
-}
-
-package_cups-libre() {
- pkgdesc="The CUPS Printing System - daemon package"
- provides=("${pkgbase}=${pkgver}")
- replaces=("${pkgbase}")
- conflicts=("${pkgbase}")
- install=cups.install
- backup=(etc/cups/cupsd.conf
- etc/cups/mime.convs
- etc/cups/mime.types
- etc/cups/snmp.conf
- etc/cups/printers.conf
- etc/cups/classes.conf
- etc/cups/client.conf
- etc/cups/subscriptions.conf
- etc/dbus-1/system.d/cups.conf
- etc/logrotate.d/cups
- etc/pam.d/cups
- etc/xinetd.d/cups-lpd)
- depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme')
- optdepends=('php: for included phpcups.so module'
- 'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images'
- 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly'
- 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly'
- 'xdg-utils: xdg .desktop file support')
-
- find ${srcdir} -maxdepth 1 -type l -delete
- cp -a ${srcdir}/* ${pkgdir}
-}
diff --git a/libre/enscript/PKGBUILD b/libre/enscript/PKGBUILD
new file mode 100644
index 000000000..281675296
--- /dev/null
+++ b/libre/enscript/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 150464 2012-02-18 00:24:06Z allan $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=enscript
+pkgver=1.6.6
+pkgrel=1
+pkgdesc="Convert ASCII files to PostScript suitable for printing"
+arch=('i686' 'x86_64' 'mips64el')
+backup=('etc/enscript/enscript.cfg')
+depends=('glibc')
+license=('GPL2' 'custom')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('3acc242b829adacabcaf28533f049afd')
+url="http://git.savannah.gnu.org/cgit/enscript.git"
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc/enscript --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr \
+ sysconfdir=$pkgdir/etc/enscript mandir=$pkgdir/usr/share/man \
+ infodir=$pkgdir/usr/share/info install
+ install -D -m644 afm/MustRead.html "${pkgdir}/usr/share/licenses/${pkgname}/MustRead.html"
+}
+
+# vim: ts=2 sw=2 et ft=sh
diff --git a/libre/file-roller-libre/PKGBUILD b/libre/file-roller-libre/PKGBUILD
index 1e20fe070..297067255 100755
--- a/libre/file-roller-libre/PKGBUILD
+++ b/libre/file-roller-libre/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 170951 2012-11-14 01:36:00Z foutrelis $
+# $Id: PKGBUILD 171115 2012-11-16 17:25:15Z ibiru $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=file-roller
pkgname=file-roller-libre
pkgver=3.6.2
-pkgrel=2
+pkgrel=3
pkgdesc="Archive manipulator for GNOME"
arch=('i686' 'x86_64')
license=('GPL')
-depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf' 'libarchive' 'file' 'json-glib')
+depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf' 'libarchive' 'file' 'json-glib' 'libnotify')
makedepends=('intltool' 'gnome-doc-utils' 'pkg-config' 'nautilus' 'itstool' 'docbook-xsl')
optdepends=('ununrar: interface to unarchiver, the free RAR uncompression program'
'zip: creates PKZIP-compatible .zip files'
diff --git a/libre/gnustep-base-libre/PKGBUILD b/libre/gnustep-base-libre/PKGBUILD
deleted file mode 100755
index 4b5fa1731..000000000
--- a/libre/gnustep-base-libre/PKGBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# Parabola contributor: André Silva <andre.paulista@adinet.com.uy>
-# $Id$
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
-# Contributor: Sebastian Sareyko <public@nooms.de>
-
-_pkgname=gnustep-base
-pkgname=gnustep-base-libre
-pkgver=1.24.0
-pkgrel=2
-pkgdesc="The GNUstep base package with exceptions enabled"
-arch=('i686' 'x86_64')
-url="http://www.gnustep.org/"
-license=("GPL" "LGPL")
-depends=(libxslt avahi gmp gcc-libs openssl libffi gnustep-make-libre gnutls)
-makedepends=(gcc-objc)
-conflicts=('gnustep-base-svn' 'gnustep-base')
-provides=('gnustep-base')
-groups=('gnustep-core')
-options=('!emptydirs' '!makeflags')
-source=(ftp://ftp.gnustep.org/pub/gnustep/core/$_pkgname-$pkgver.tar.gz)
-md5sums=('53cd117e9f64729870e906b66d2314ba')
-
-build() {
- cd "$srcdir/$_pkgname-$pkgver"
- source /etc/profile.d/GNUstep.sh
- ./configure --prefix=/usr --sysconfdir=/etc/GNUstep \
- --with-ffi-include=/usr/lib/libffi-`pacman -Q libffi | cut -f2 -d\ |cut -f1 -d-`/include/
- # fix file ownership
- sed -i 's/tar -xf $(TIMEZONE_ARCHIVE);/tar -xf $(TIMEZONE_ARCHIVE);chown -R root:root * ;/' NSTimeZones/Makefile.postamble
- sed -i 's|.*gnutls_transport_set_lowat.*||' Source/GSSocketStream.m
- make VERBOSE=1
-}
-
-package() {
- cd "$srcdir/$_pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
- chown -R root.root "$pkgdir/"
-}
diff --git a/libre/gnustep-make-libre/PKGBUILD b/libre/gnustep-make-libre/PKGBUILD
deleted file mode 100755
index 7abc014c6..000000000
--- a/libre/gnustep-make-libre/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# Parabola contributor: André Silva <andre.paulista@adinet.com.uy>
-# $Id$
-# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
-# Contributor: Sebastian Sareyko <public@nooms.de>
-
-_pkgname=gnustep-make
-pkgname=gnustep-make-libre
-pkgver=2.6.2
-pkgrel=1
-pkgdesc="The GNUstep make package with exceptions enabled"
-arch=('any')
-url="http://www.gnustep.org/"
-license=('GPL')
-depends=('glibc')
-conflicts=('gnustep-make-svn' 'gnustep-make')
-provides=('gnustep-make')
-groups=('gnustep-core')
-source=(ftp://ftp.gnustep.org/pub/gnustep/core/$_pkgname-$pkgver.tar.gz)
-md5sums=('b926d142debc9f38d75b11019c31889f')
-
-build() {
- cd $srcdir/$_pkgname-$pkgver
- # The option is not needed, but makes clear why we rebuild this.
- ./configure --prefix=/usr --sysconfdir=/etc/GNUstep \
- --enable-native-objc-exceptions
- make
- make DESTDIR=$pkgdir install
- install -D -m755 \
- $pkgdir/usr/share/GNUstep/Makefiles/GNUstep.sh \
- $pkgdir/etc/profile.d/GNUstep.sh
-}
diff --git a/libre/gst-plugins-bad-libre/PKGBUILD b/libre/gst-plugins-bad-libre/PKGBUILD
index 2e0658cfb..e96c047a8 100644
--- a/libre/gst-plugins-bad-libre/PKGBUILD
+++ b/libre/gst-plugins-bad-libre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 153258 2012-03-12 16:05:19Z jgc $
+# $Id: PKGBUILD 171693 2012-11-21 14:33:55Z heftig $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
pkgbase=gst-plugins-bad
pkgname=gst-plugins-bad-libre
-pkgver=1.0.2
+pkgver=1.0.3
pkgrel=1
pkgdesc='GStreamer Multimedia Framework Bad Plugins, without nonfree faac support'
arch=(
@@ -57,7 +57,7 @@ source=(
"$url/src/$pkgbase/$pkgbase-$pkgver.tar.xz"
)
sha256sums=(
- 9e503305799a2b6eb9d0b77c59b8aa8bbe9e6eb815a0635bd013560c73996579
+ 2eae746be0b4c7fa2f1e057c91bd36940d7c25593ab612b707904461360031f0
)
build() {
diff --git a/libre/gstreamer0.10-bad-libre/PKGBUILD b/libre/gstreamer0.10-bad-libre/PKGBUILD
index b74958e3c..46e608da9 100755
--- a/libre/gstreamer0.10-bad-libre/PKGBUILD
+++ b/libre/gstreamer0.10-bad-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 160766 2012-06-05 08:51:20Z jgc $
+# $Id: PKGBUILD 168313 2012-10-08 14:04:19Z heftig $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
@@ -6,10 +6,10 @@
pkgbase=gstreamer0.10-bad-libre
pkgname=('gstreamer0.10-bad-libre' 'gstreamer0.10-bad-libre-plugins')
pkgver=0.10.23
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
license=('LGPL' 'GPL')
-makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.36' 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'soundtouch' 'libvdpau' 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump' 'libsndfile' 'librsvg' 'wildmidi')
+makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.36' 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'soundtouch' 'libvdpau' 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump' 'libsndfile' 'librsvg' 'wildmidi' 'opus')
url="http://gstreamer.freedesktop.org/"
options=(!libtool !emptydirs)
source=(${url}/src/gst-plugins-bad/gst-plugins-bad-${pkgver}.tar.xz)
@@ -45,7 +45,7 @@ package_gstreamer0.10-bad-libre() {
package_gstreamer0.10-bad-libre-plugins() {
pkgdesc="GStreamer Multimedia Framework Bad Plugins (gst-plugins-bad)"
- depends=("gstreamer0.10-bad-libre=${pkgver}" 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'libvdpau' 'soundtouch' 'libass' 'schroedinger' 'libvpx' 'gsm' 'rtmpdump' 'libgme' 'libsndfile' 'librsvg' 'wildmidi')
+ depends=("gstreamer0.10-bad-libre=${pkgver}" 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'libvdpau' 'soundtouch' 'libass' 'schroedinger' 'libvpx' 'gsm' 'rtmpdump' 'libgme' 'libsndfile' 'librsvg' 'wildmidi' 'opus')
groups=('gstreamer0.10-plugins')
install=gstreamer0.10-bad-plugins.install
provides=("gstreamer0.10-bad-plugins=$pkgver")
diff --git a/libre/iceape-i18n/PKGBUILD b/libre/iceape-i18n/PKGBUILD
index 6aaa1aa04..815f0e340 100755
--- a/libre/iceape-i18n/PKGBUILD
+++ b/libre/iceape-i18n/PKGBUILD
@@ -11,7 +11,7 @@
# - Run 'make'. It will take care of everything else for you.
_debname=iceape
-_debver=2.7.10
+_debver=2.7.11
_debrel=1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -22,7 +22,7 @@ pkgbase=iceape-i18n
pkgname=($(for lang in ${_langpacks[@]}
do echo $pkgbase-$lang | tr A-Z a-z
done))
-_pkgver=2.7.10
+_pkgver=2.7.11
pkgver=${_debver}.${_debrel}
pkgrel=1
@@ -58,26 +58,26 @@ package_iceape-i18n-$(echo $lang | tr A-Z a-z)() {
"
done
-md5sums=('6499aa420d5fa855a3884c657066c443'
- 'c4b98806b5a6cce75878bdf0668f5a4a'
- 'ac1a19ed29bda42f66e533ca9ee79fac'
- '6116bd1b7c51d9414c68e1807d264f35'
- '621dc719068050b479ad0fb9060d39e6'
- 'b184194c4e69dc00ee9f3b15dee71d92'
- '84058513ab8884d0f279aa2990c10327'
- '5be7810ca391eb31d26f5ab46c2f8fea'
- '58737d11a2c0852d6701549d22f071b6'
- 'ac5994cd318ca2692823f91908eee101'
- '5a07c756674b24b0b33af1e26a8e59ee'
- '9178d335fa9f998f157a2e7f27384b15'
- '2e40229a1ef5386574d98b243260f266'
- 'ff8c27d6afc9911af03737c23a0eae5d'
- '611702c6dd5638154ff8a5c99e909da0'
- '217fd6fd1e46eefb524457566f124074'
- '09bb4d6d36403f97b923625055767884'
- 'cebd80d880c87862d9a8baf97c3c5b7b'
- '023750f204d9f0ac89c62987b41532f4'
- '0d753213210d92a8f751b3221fe34dad'
- '4b180802effa63316c54e5ec904405c7'
- '8be48ada576dfd9a37e6b3c0bc55c298'
- 'af08b7f96b175c560bba71ab59e1a3dc')
+md5sums=('fb27360aff6250e7d483803583a5cd78'
+ '236c7aacd7e6416a37aff95f7bfa6a80'
+ 'f17d76128ab529415078cafe63b61d50'
+ '07a5c72158427db8c5a990be6eb2d036'
+ 'fddbcf27d00f1f4d92fed197ace8dd1b'
+ '96eb3291200c44ffdc3ab1d1446f00b7'
+ '04dec3bee388ae66cd434342ab03074f'
+ 'bdef8b38501e7d6805b5304ef2bf8425'
+ '90b5d0ab0ab2eb3b75e5f80cb6d289bb'
+ '97f940c39b84a90b0e16eaeca4fa7806'
+ '34644b44381ae1da46f2fa308fd1cf34'
+ 'a6240664344798568276dd5dbdd27fb2'
+ '61aedef6a89b400584dde82b5e97ff0f'
+ 'abe7a9172876b30c4677b1f4c2237fc9'
+ '60f3c543fbdb72cc12aef8f2369101ff'
+ 'c002da281c0d0fa357f92edd2b8cd12c'
+ 'c17ab30f25f05024879afdf85fa4c516'
+ '250a08a999d6d1d6086ffbd17d60fbb4'
+ '609ce8793ea0d5465da7195e4d956fef'
+ '060226599bac5bc8ddb64417ef1a0108'
+ 'eaa827909690bfa8dfdc621164e23ca8'
+ '3fb66893b5ea3b959de48ef16fb26c74'
+ '6f2d77e767efa0b0d4cb56df9ccd0a2f')
diff --git a/libre/iceape-libre/PKGBUILD b/libre/iceape-libre/PKGBUILD
index eedd8f584..2247f0a8a 100755
--- a/libre/iceape-libre/PKGBUILD
+++ b/libre/iceape-libre/PKGBUILD
@@ -3,7 +3,7 @@
# We're getting this from Debian Sid
_debname=iceape
-_debver=2.7.10
+_debver=2.7.11
_debrel=1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -29,8 +29,8 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
${_pkgname}-2.0-lang.patch
clrf.patch
libre.patch)
-md5sums=('63596601fd01000c842d9543ea8dfd56'
- 'f8de6b9e1906c8349e8799f819503897'
+md5sums=('40473b4c662975eda865e1fc35c4953b'
+ 'f704b69cc0328c83edd6223420fbd412'
'60ba9e8f2fafd20e41268af534a55ea7'
'7266333e31731af8bb50c2eca8d0bd26'
'25b6fe16ac24cd5c852213e5c1adb272'
diff --git a/libre/icedove-i18n/PKGBUILD b/libre/icedove-i18n/PKGBUILD
index 7d0aa1d8b..d7dbbb211 100755
--- a/libre/icedove-i18n/PKGBUILD
+++ b/libre/icedove-i18n/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer: André Silva <emulatorman@lavabit.com>
pkgbase=icedove-i18n
-pkgver=16.0.2.1
+pkgver=17.0.1
pkgname=('icedove-i18n-ar'
'icedove-i18n-ast'
'icedove-i18n-be'
@@ -473,58 +473,58 @@ package_icedove-i18n-zh-tw() {
cd ${srcdir}
install -Dm644 icedove-i18n-$pkgver-zh-TW.xpi "${pkgdir}/$_path/langpack-zh-TW@icedove.mozilla.org.xpi"
}
-md5sums=('9c4a59c7da66e2354164c3a5bc7af21d'
- '1cc30ebb50c2ff783b07060fe14b4260'
- 'bd2a994f1b0aa8d71b7f432f582e08b5'
- '1b7d5f199b714e5d235cdadc89882c82'
- 'a5945807be0c8e205cf0f4be41d1f301'
- 'ec323d1ea8372afa236ed82d1f38bf62'
- '04985b1bb7a7255970de1c9a0d6b6c37'
- '143d16162ded3cf1ed99731e0ccd4cbc'
- 'ec04abda3d2eafd5cccad44b843d2191'
- 'a1273c8ba22f38f0304d44f52095541d'
- '06ff7794da97ef3cad3ccfde2a229db3'
- 'bb873b67b1e65eccf186622c1315e14b'
- '87ea24ef462fed8a3f6e74e25b210607'
- 'c7363deffa336c8470884ca7500ff583'
- '64d7b4490bbe3cdb25cc8633d46761d4'
- '1bc28fd43fbe54185e0f34161e2bb856'
- 'f90cedcac1daa1a7be9abc9a960bbde0'
- '326a063d3b5d0aff735a145dcbb51e01'
- '86ff061d2346b75b85e59374328d20f8'
- '83969caa207fa30dd016fee6bd2aa543'
- '68d50a5c356d62514bfa99b04776ed7c'
- 'f5ffaa9dc1da2412faf78a4920d19278'
- 'a76518ba680a2fc263de99099e0e1c53'
- 'e88f3c95cf4e51035429307f4f6a4eb5'
- 'c2573d6f463cdd69f6b37612f9ae997a'
- '8b17220cd897ea744978752b2ef11ab0'
- '4ee8b3d2e4fd7bf3353a910d76cbbaf8'
- 'f87d295343ecf5b1e21abe430b157c42'
- '74ce04669c8acf87a8b8878fb2653dc4'
- '5ffc16a8c701c8c2c133775a815d1e67'
- '6d6c1a7e31bf6301ee690509881a4395'
- '41c970fd7ef2224a63de7d562ce71b39'
- 'a4243831934d31aad648221190fe2b42'
- '6c1c023d67a35e4ed3a792bb365f360e'
- '0045f4bceaaddd57fa6c0b895a34feff'
- '18b359d881127defff20e549bb0c5b80'
- 'a295fbd180dfe3e009218aa2775ce332'
- '6beaeaf5bf67321fdef0ee6de968edaa'
- '92b29bc95a476d9cb75c5df075f353b9'
- 'fa757024edb1f1f794f77ecee8c07706'
- '8f21adb897625a2a27a040a8e88bed3f'
- '26b5ab6bb93b454702179c48c9da2e5b'
- 'f319345cdc962919830792644c66165d'
- '7f32885e485beab6822eb9ec0025bae7'
- 'edf019e6332d099d67b68f1f90da680c'
- 'e21836a77f143457ac7912ee0e6386dc'
- '24adc86b3fb496f3d27944a5027d5fa9'
- '7192e7c7d80cc8eb85e1f57defa0496c'
- 'f449ced45bb084ce0adda6df89b1ee31'
- '25e3ce79fc2c1e2164ce04821e683a29'
- '615138d3ed86797a168a0d5784f0c6fe'
- '7c83196da5ee2d01444450cca620c29d'
- '265f8447eee6e6b41ab8fdcf1a1dc154'
- '9889d38b50a7e2d095582ebf75cab9e2'
- '12b882986056bca65fdfc90806daf87b')
+md5sums=('15ededc2d92b095297c32682b1ea5556'
+ '21b066c8006bd37843873a0950b4dd17'
+ 'c531b388e48a2b964091cdabdc6ea843'
+ '02dd4a828cd62d3704b329cc0269c754'
+ 'aa058920d2e9e590a5f43371ec0c758a'
+ 'd2f6d97e73956b929812efc26cbb8a00'
+ '422ba52f874f376d97a74c79047bb07e'
+ 'ebc329dbdfd9533f237731f4ab13c0c7'
+ '372f5b371ef045fd9b1d87d0f5a02f1b'
+ 'f4833810e478a319360b144d1e4e5dd0'
+ 'dcd04ada6fc38908cd1a0b4c640d49b6'
+ 'f5805071746aaac4c977dc6104d81524'
+ '55fb0a3581661c71e8a8b4fdaa5f92c6'
+ 'f4f24e1b0a53d0dca2b8bef384173682'
+ '3beb64fc06de87f5b70f2ba08ab3359e'
+ '62d4a011ccdfdf4f24063caec6e881b2'
+ '230373349ab450147ff19f4afebde2ea'
+ 'c7eff1f39bf536a4da476d77a3e0a450'
+ '06a7c3143b493c96628e93a58f25550c'
+ '5017bdacb7ee1430fa73b9b7ca657497'
+ 'c7aa6657da6f2cd9dc90c323c6676bf9'
+ 'ee9a365773d95e7c31de8089aef0d847'
+ 'feebccca9f6eec21b81e26e1804b0140'
+ '65339aa37592def5a0fa6e5aaf416de5'
+ '64980f1186f4045574babcde77f11529'
+ '20f25644314ad2801db9156531ea290c'
+ 'fd7c8318ab9d946a49ef2873de0d8e0a'
+ 'd6612e0b47375fdb34341ed8386a621f'
+ '89295ed1c51be054d571609209641fa1'
+ 'b35e49dc04bf9134262ae7db57b0311b'
+ '15487ee85959928fa0b85fe99e3c7a82'
+ 'ed555ce92aa37545b4f62ea4bdca9187'
+ '5d83088d4bcd042acfecbb0a85215548'
+ '1f1a513aac9b1d3cbc6dce3e948c33ca'
+ '1b955a8dd7690991d06ced05fc2f1fae'
+ '1785e4bb27d71cc0226eab506f81669a'
+ 'fd9a007c75b8738f3b2e167087655526'
+ '6578b879762db29b40e1723ba59043d6'
+ 'afe8fff2c2707724d2ef5536180a0907'
+ 'b8befd7b5e781403c3c0797633f0f92b'
+ '2097f7218575732e448662b3d1d1a351'
+ '82c29288a115668f25d01d0e7175419f'
+ '8398d4a711dd73302b790a2b99d9e78f'
+ '1ed5155cd7f3be98b25d94a126d043bb'
+ '899f04c2629e648be0f32f1ec04b9b56'
+ '4af5b8985fdb1858c0c25b8452ca72fc'
+ '43189f0ad649e00cedc608c6197a6426'
+ 'aeed4c0b7e536c0b4f9b36a5dc3d1d63'
+ 'a8bbc0c2acf8defcf9c200cacd243536'
+ '9c35cfcbf9d66aa42abfaae4aa4a6937'
+ 'b19268362d73d7e3f66ff7f7f21ab6bd'
+ 'c45de9ad905bbdda655227e77b09a1ba'
+ '430bb7d6dc4037666fb452e5c2c03c83'
+ '6280326bb1fb7c2ddd5c3b5a5360651b'
+ '571688d2bce6597ae76a7ead8929420c')
diff --git a/libre/icedove-libre/Icedove-branding.patch b/libre/icedove-libre/Icedove-branding.patch
new file mode 100644
index 000000000..751305147
--- /dev/null
+++ b/libre/icedove-libre/Icedove-branding.patch
@@ -0,0 +1,37 @@
+From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
+Date: Sat, 24 Nov 2012 11:36:16 +0100
+Subject: Icedove branding
+
+---
+ mail/app/application.ini | 2 +-
+ mail/confvars.sh | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/mail/app/application.ini b/mail/app/application.ini
+index 8380eb7..12902c2 100644
+--- a/mail/app/application.ini
++++ b/mail/app/application.ini
+@@ -4,7 +4,7 @@
+
+ #filter substitution
+ [App]
+-Name=Thunderbird
++Name=Icedove
+ Version=@APP_VERSION@
+ BuildID=@GRE_BUILDID@
+ #ifdef MOZ_SOURCE_REPO
+diff --git a/mail/confvars.sh b/mail/confvars.sh
+index 5c34d70..395bb87 100755
+--- a/mail/confvars.sh
++++ b/mail/confvars.sh
+@@ -3,8 +3,8 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-MOZ_APP_BASENAME=Thunderbird
+-MOZ_APP_NAME=thunderbird
++MOZ_APP_BASENAME=Icedove
++MOZ_APP_NAME=icedove
+ MOZ_UPDATER=1
+ MOZ_THUNDERBIRD=1
+ MOZ_CHROME_FILE_FORMAT=omni
diff --git a/libre/icedove-libre/PKGBUILD b/libre/icedove-libre/PKGBUILD
index 6ec577f58..d61b756f5 100755
--- a/libre/icedove-libre/PKGBUILD
+++ b/libre/icedove-libre/PKGBUILD
@@ -3,7 +3,7 @@
# We're getting this from Debian Experimental
_debname=icedove
-_debver=16.0.2
+_debver=17.0
_debrel=1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -11,7 +11,7 @@ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
_pkgname=${_debname}
pkgname=${_debname}-libre
pkgver=${_debver}.${_debrel}
-pkgrel=3
+pkgrel=1
pkgdesc="A libre version of Debian Icedove, the Standalone Mail/News reader based on Mozilla Thunderbird."
arch=('i586' 'i686' 'x86_64' 'mips64el')
license=('GPL2' 'MPL' 'LGPL')
@@ -30,16 +30,18 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
vendor.js
makefile.patch
branding.patch
- ${_pkgname}.desktop)
+ ${_pkgname}.desktop
+ Icedove-branding.patch)
options=(!emptydirs)
-md5sums=('a3724f40d28014acf593528bb8a048f0'
- '53d62a4841d7989d1f6d1b04929394b4'
+md5sums=('f011e0308a0758df772638836fb03709'
+ '8534a19b46ce21d80fce16b50f1f37bd'
'd6d58d3104a44624e0a3d227cdf1c211'
'476ec205162340fb0679f522c9d31c3b'
'4eecc4fc5aafaf0da651a09eadc90bee'
'c4ed43e85945e180a89cce03e45ec62c'
'126b1446212396c33220936c01d9592d'
- 'e785e0c267f4435ae1a9aa0b03bcacfb')
+ 'e785e0c267f4435ae1a9aa0b03bcacfb'
+ 'ea5f7a06967f561d47d7e5c35b23de6f')
build() {
export QUILT_PATCHES=debian/patches
@@ -58,10 +60,15 @@ build() {
for i in 48x48 64x64; do
install -Dm644 "debian/app-icons/${_pkgname}${i/x*/}.png" "${srcdir}/${DEBIAN_BUILD}/mail/branding/${_pkgname}/content/icon${i/x*/}.png"
done
+
+ # This patch has a orthographic issue ("Icdove" instead of "Icedove") in MOZ_APP_BASENAME line for confvars.sh
+ rm -v debian/patches/debian-hacks/Icedove-branding.patch || true
+
quilt push -av
patch -Np1 -i "${srcdir}/makefile.patch" # small fix
patch -Np1 -i "${srcdir}/branding.patch" # fixing branding
+ patch -Np1 -i "${srcdir}/Icedove-branding.patch" # debian patch fixed version
cp "${srcdir}/mozconfig" .mozconfig
make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}"
diff --git a/libre/iceweasel-i18n/PKGBUILD b/libre/iceweasel-i18n/PKGBUILD
index 6fd6aaf03..406cb3c32 100755
--- a/libre/iceweasel-i18n/PKGBUILD
+++ b/libre/iceweasel-i18n/PKGBUILD
@@ -9,18 +9,18 @@
# - Run 'make'. It will take care of everything else for you.
_debname=iceweasel
-_debver=16.0.2
+_debver=17.0
_debrel=1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
-_langpacks=(ach af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja kk km kn ko ku lg lij lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta-LK ta te th tr uk vi zh-CN zh-TW zu)
+_langpacks=(ach af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja kk km kn ko ku lg lij lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta ta-LK te th tr uk vi zh-CN zh-TW zu)
pkgbase=iceweasel-i18n
pkgname=($(for lang in ${_langpacks[@]}
do echo $pkgbase-$lang | tr A-Z a-z
done))
-_pkgver=16.0.2
+_pkgver=17.0
pkgver=${_debver}.${_debrel}
pkgrel=1
@@ -56,91 +56,91 @@ package_iceweasel-i18n-$(echo $lang | tr A-Z a-z)() {
"
done
-md5sums=('7917e479db04573f738d25d9a57cb049'
- 'ec1fadd5879ebbd7884b00c15e8148a8'
- 'fc281450b90d5e7861ac4f555d5ea871'
- '1fe8f0d56b76f2bd627627098813ace2'
- 'fb3a5c73b806bbd7bd50a64a5894c831'
- '84e222c9a5caa3cfd30b8c79cf49ae20'
- '7a8b1160c2ac40dac7bb3ef788d7e2d0'
- '3b974c5d14de638a36ee6b6e3a1fab94'
- '6b40f968cd7c4a19ddc252fedf88dcbc'
- 'd6f533690c8570150ea193e4784fa37e'
- '75bcfbbacde730ec498345994d5da699'
- '322971c545da5815bfaf9c9f5b380ea4'
- '7da8514ff56ad89db85cf160bc02d8cc'
- '8b748543ca637db910531f35fcc7eb1e'
- '3a5188077b07d50a60c19a9be34fef2e'
- 'c2f01b10da3a49049dadf13e7d62194b'
- '97045cfea1caf0730557171a2dbc1384'
- '969c813859367a254d7edbb16e323d62'
- '479b9f915480af5c4cda1477bcc745f6'
- '081f3d13f05b9d44d5bb2d7842998d68'
- 'c527200432799e3a37180439074f7616'
- '6b688e726d273c21bb08f9e09a3dae48'
- 'b912eedaed384be13d99cbe769bb3683'
- '9d828a0459fbb3997ade5a2c4bcfff35'
- '67b79482d42d8057d0e66a8d00314efb'
- 'da9661e6211765ca9d503d1ff0aaeec1'
- 'e31f997e78fc2069b91a25cf71ee4a43'
- '5207746c0154fc737d3bbeb5d468651b'
- '191e284c168827fd4344f25c287f21d1'
- 'ebcb9f2fb2571d045d3e19ee9d8cbb9f'
- '81c5e660d89148f0ca7da1186f1cda3a'
- 'ca8a2f10358da70d30c8a6af7bc44d54'
- '8581d1f7e7e3a850d360e4da7506d166'
- 'd4811aef8cdc90b6661a669ffad2ead8'
- '41a9cd0e8ea9d71f4d82ac0f4e4911c0'
- 'e00759dd17ea1647afe40c1b9f676187'
- 'b145a19de88d7c62e319e5719cc079d5'
- '817beaa2dab8f01cfcc5f034d537f97b'
- '48257dba1a8ca1ccd9e75cf5d00819df'
- '2036c221e16ea942795eae837a690615'
- 'fc879e816fd4e831f47d14a3ed2442d7'
- '1851131108d0f9665cddaf636c5de826'
- '557c1a2d9176bde516c45112ae4632e8'
- '9142dcd98b5ec1783d72ffcb1326aae7'
- 'f4c0f20255fd7f715a923cd6f81301ca'
- '1f65f925300b5e4317018d80d147fb46'
- '955cba749d29a3608fb70e5914835f2b'
- '7ad38d60e90f96404860ef281bddfe17'
- 'd14126daf1067c19297ff1a94dc91e27'
- 'a1e55184abcd990206c5c82d7445b53e'
- '9e1eeb91fb680c4b09ed1439c8af4265'
- 'b313eb3158561713f00eec0b3ff82739'
- 'e42c798d9371109be8595653c87a96e6'
- '499cb790565eb93e4387120815bc0d3f'
- 'efed1f452372a569002282819f2828e8'
- '6e6e1215ffcc77fbd5deac9b3856ecff'
- '5905c1911035d9576e84791ac4416f23'
- 'd7a49fa9daec5c4c403633e04ec03b49'
- '58d91d27d4e9bb8106534bac2562c566'
- '73fe09d52c99ede62bd8fd07c4780ee4'
- '19eb3d4c88d80035645bbd6a992bf938'
- '51a35fae949c997b5a300211a967d36d'
- '579a02556b1200fc749600390dfb9d97'
- '2d7f14c47a9b974a69bfb5f821c6f04b'
- '8622ac1bb52fb56af89e26f2d2a98ffd'
- 'f5073a3e7bbbc71184a29d567c3d0914'
- '8979aaa64b9300ef245cb6368f1e3275'
- '1444fd6ec5639b51fc4c15c3fc7d41ec'
- '0eb171065c77b27c5aed4aa11fa2a6f4'
- '4b2a490537405ceb2935225807d4bde9'
- '69db8437023d658c5da0cf7388b1f579'
- '8d6bf855d5070624268cc175f3e86a14'
- '3edd9eea3d25fecb21787ce83499c994'
- '3ab336a082a86f9c7df7a7873f40a6e9'
- 'b798317e831b5b9a06161bdaf119ad4d'
- 'e86a78e5bfcba6f45b9f0bbf42c5ad89'
- '8f0a46cdd135c0d8858c409cbca4e9cd'
- '0a78294d15ef47fb1916ca129c5348c0'
- '625fb622c634c035f4b326928c776392'
- '6b528ef1c3427e799d924b12a5e1fb39'
- 'c790339622a85b5b307fb4a8fa496fe7'
- '56021c871cce43c64bc6ddff5f794f31'
- 'babbd7cde37d24463ea5d8a389abd512'
- '6eb58fc54626a3b8d58c03f37dfc2ec1'
- '782d556e773cb97298592fedabdc9a7f'
- 'f2cf5e5a2b244d0afab2edd193209039'
- '973c9e08c3329ba51625272db30d9d6c'
- '28055c70eda06dcf371f0399dce94e8b')
+md5sums=('aca195b6aa9da7fbf568c08f66f966f2'
+ 'e026ffecfd999b9ec8a38f3f2f29f4b5'
+ '4e1e3a700a7c64556fe7281447b2ee08'
+ '68586be8b467b4faf8e0822817a8a844'
+ '0855365b830c4558ec23b0976d258356'
+ '0e4857a39eab45b03607f0a18d469be6'
+ '3d47320eb012880e38344237cd2ee1ff'
+ 'd37290ecae4792f97302347c2d9b72fa'
+ 'ff8b22a9853a0876b42254dc856f8222'
+ '1d57aefb5d8200756e5751b6b660ba69'
+ 'b527326e74cb330a0e2ec36f47930e90'
+ '8a4ad51e5a9328b3437a5b1dc0ecf613'
+ 'c58a6d0ae9bc48d01775f91d84c8afda'
+ '01ffe65230eaf9551ea45d6d2d607cdc'
+ '735c3e03920964711b9914710fe37b56'
+ 'e25a3627c72b4e7a52bf00ccc087aa69'
+ 'f576d51ac7fa505133f75634af3a14dc'
+ 'd82798c091826fcff1552240669bf72d'
+ 'cdd5ec962ed5507eb63ff3cb42f77e19'
+ '8ff7b9281ffecc76831315ce3423db93'
+ 'e53f4816e34487e6c659dff373aae482'
+ 'cf7793dfcbf18d97ffd7168228767da8'
+ '20ca3aee8bf43c675f7fb160f5f3359e'
+ '228e40322a1fcf6fed867fec81b7c702'
+ 'a17b3619eeb977c11e5f99b527c26c12'
+ '180b5a570d1117d0f08c7ca9f43e9796'
+ 'c1a2dc0954ec3d58de0b46f9efb56c86'
+ 'df546f876542bd474656fc27bfea8afe'
+ 'fdb7d6212ed888759422222018289c27'
+ 'af55d3b4ab09fefde72a14f2d869bedb'
+ 'a0235aace986ccf2f66b8f7e3b7878af'
+ '4550a84b0884a7eb2530031b8cf7bd13'
+ '1a81ba0771c82680cb10182247503703'
+ '99950e68df786e47b896e784bd749d53'
+ '81f8ff7132d27e04ef18e743aeb7e6b5'
+ 'bffdcadd6c0e44013eca8d3cb3ff4e91'
+ '44726dde95fb92a9c96de3424784b420'
+ 'e70e64366cb381b583e19945ec78f465'
+ '38fcd722bc60540ecb347b52237595d2'
+ 'dfcc1dad5e95a1460737c70ccd4b5735'
+ '941183e99dc85e6b8a834a52f101784a'
+ 'eb2e91b9991161891d039eb4c40a25a3'
+ '7c509a226c72005e5c9bf4e83bb80abf'
+ 'cf7ce1659ee0af3fd6e9fccf6b0b7d62'
+ 'ab47d4c2d8ecf8c9a093529edc4cdd17'
+ '236cfdaa476eabe1d89e5d03ae83c5f0'
+ 'ab572cadb8b952aa0d165ff796f92084'
+ '8c7396b7010b6afe8b1cc5625405762c'
+ '2adac2f2c2bfc1216b3d7e3944e5a6c5'
+ 'fc544cdd63ce46d72694f296b90e807d'
+ '46ebea9850dd4f8b5bc8134b0e00fa88'
+ '8459c0e2ee2ad97b8828b3ae458c7a30'
+ '212ad5e037ae26e06a29e96076a46d88'
+ '483f0bc2b12782d93aff4ebd6c9d72bc'
+ '69331b072dc1978c7aedc05105b3dab7'
+ '9c325dc249e935e32c1bf573a8bf8a03'
+ 'dc065160d7d7109aca5e5abee88a38dd'
+ '63e0f6e5123b976ba91679e4b0668117'
+ '670301325560f01a65a1516c063ba0ab'
+ 'bf5754aa9937ca01796724bad4128348'
+ 'd37a9af438ede3c95c4147776c1881c7'
+ '00b6aa1338665c1ddd830332eba3e869'
+ 'fd6df56ae64208669b771cd44edbdf22'
+ 'd28ba0c094d0ac6ca8839b6f24b8e36d'
+ 'ddb04a9c43a0a7e3a410a56292abeab0'
+ '195d2b735f34c04505ca68c0f614805a'
+ '6fc7618c6bd4143a8f1e58a560b7a9b2'
+ 'aa1558345b96e6cc3b0c9c22fe3540a8'
+ '37a43a703b46f3275f960abd9852bae3'
+ '523d2d66af36dbd862156fefd183169a'
+ 'af4e4651a8e379d9ca151ae3180d4090'
+ '79240b7df3c53d122ddf7c734e83fdfa'
+ '4bc316dfd0cbb235e787f031155a70f4'
+ 'e04f0b6cb1c79345a989feeaba6adba0'
+ '4d294d9984a14c7f703a9e92a5144de9'
+ 'b1d70ed8d43a3655c2134c7ee32552b3'
+ '4b0decc563ef2f308cb76691e7a20ef6'
+ 'eec9a1717554a85671d4971757cb302d'
+ '588bb4c21d74f3db326ca527dc9fe593'
+ '704173008a109a4ca888bce6abdd1ea0'
+ '8c230dd567c576ca9e2d7cd40923623c'
+ '6dd510df2583839646268121db4ee517'
+ '2b915a4d899364934bc04e3ffe693279'
+ '3ac196603d06fa52746c56b431f0778d'
+ '90ff7e2af56d59cefb941043e6bcd5d5'
+ '77a39f2723940c6312798c65dbb602dc'
+ 'd7fe6dded2ac3aa1dc697e3b46c8d4d5'
+ 'feff9895b8d7678e208947c40c7f53e0') \ No newline at end of file
diff --git a/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch b/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
index a5fe02165..69fe5c072 100755
--- a/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
+++ b/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
@@ -267,10 +267,10 @@ index f35c227..7062886 100644
%{C++
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
-index 60348b5..c240c4f 100644
+index 68a52e6..02bb30e 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3651,7 +3651,7 @@ XREMain::XRE_mainRun()
+@@ -3669,7 +3669,7 @@ XREMain::XRE_mainRun()
if (gDoProfileReset) {
// Automatically migrate from the current application if we just
// reset the profile.
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD
index 7532436d7..185f1c039 100755
--- a/libre/iceweasel-libre/PKGBUILD
+++ b/libre/iceweasel-libre/PKGBUILD
@@ -14,7 +14,7 @@ _pgo=false
# We're getting this from Debian Experimental
_debname=iceweasel
-_debver=16.0.2
+_debver=17.0
_debrel=1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -52,8 +52,8 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
vendor.js
shared-libs.patch
Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch)
-md5sums=('4a4f19048e34f7f0a2d28adc351df1ed'
- 'ee38477dd7ede1c32e559ee74139b5c9'
+md5sums=('3e555026478026987753b4859ec91d3b'
+ '9b07815d94b8190c780fac10009025b9'
'eab149c1994ab14392e55af3abb08e80'
'ac29b01c189f20abae2f3eef1618ffc0'
'a485a2b5dc544a8a2bd40c985d2e5813'
@@ -61,7 +61,7 @@ md5sums=('4a4f19048e34f7f0a2d28adc351df1ed'
'abf5ecb74caa857abb42bcfbb3442d9c'
'0d053487907de4376d67d8f499c5502b'
'52e52f840a49eb1d14be1c0065b03a93'
- '0a31239f1008038df5057982fe745dec')
+ '65f68090d2a69b467bd2707d0c4ea3bd')
if [ "$_pkgname" != "$pkgname" ]; then
provides+=("$_pkgname=$pkgver")
diff --git a/libre/kile-libre/PKGBUILD b/libre/kile-libre/PKGBUILD
index fcc53e9d9..525624001 100755
--- a/libre/kile-libre/PKGBUILD
+++ b/libre/kile-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 159260 2012-05-19 19:37:30Z ronald $
+# $Id: PKGBUILD 171256 2012-11-16 22:51:16Z allan $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
@@ -7,13 +7,14 @@
_pkgname=kile
pkgname=kile-libre
pkgver=2.1.3
-pkgrel=1
+pkgrel=2
pkgdesc="A user friendly TeX/LaTeX frontend for KDE"
arch=("i686" "x86_64")
license=('GPL2')
url="http://kile.sourceforge.net/"
depends=('kdebase-runtime' 'texlive-core' 'kdebase-katepart')
makedepends=('cmake' 'automoc4')
+optdepends=('kdebase-konsole: embedded terminal')
conflicts=('kile')
replaces=('kile')
provides=('kile')
diff --git a/libre/linux-libre-kmod-alx/PKGBUILD b/libre/linux-libre-kmod-alx/PKGBUILD
index 68dfccc79..f7bf76187 100644
--- a/libre/linux-libre-kmod-alx/PKGBUILD
+++ b/libre/linux-libre-kmod-alx/PKGBUILD
@@ -1,11 +1,11 @@
# Maintainer: André Silva <emulatorman@lavabit.com>
-_kernver=3.6.6
+_kernver=3.6.7
_kernrel=1
pkgname=('linux-libre-kmod-alx')
_pkgver=2012-10-03
pkgver=20121003
-pkgrel=5
+pkgrel=6
pkgdesc='Atheros alx ethernet device driver for linux-libre kernel'
arch=('i686' 'x86_64')
url='http://linuxwireless.org/'
diff --git a/libre/linux-libre-lts-kmod-alx/PKGBUILD b/libre/linux-libre-lts-kmod-alx/PKGBUILD
index 65bae7c0b..5892fa794 100644
--- a/libre/linux-libre-lts-kmod-alx/PKGBUILD
+++ b/libre/linux-libre-lts-kmod-alx/PKGBUILD
@@ -1,11 +1,11 @@
# Maintainer: André Silva <emulatorman@lavabit.com>
-_kernver=3.0.51
+_kernver=3.0.52
_kernrel=1
pkgname=('linux-libre-lts-kmod-alx')
_pkgver=2012-10-03
pkgver=20121003
-pkgrel=6
+pkgrel=7
pkgdesc='Atheros alx ethernet device driver for linux-libre-lts kernel'
arch=('i686' 'x86_64')
url='http://linuxwireless.org/'
diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD
index b7ffda209..0948ed4f1 100755
--- a/libre/linux-libre-lts/PKGBUILD
+++ b/libre/linux-libre-lts/PKGBUILD
@@ -7,10 +7,10 @@
pkgbase=linux-libre-lts # Build stock -LIBRE-LTS kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.0
-_sublevel=51
+_sublevel=52
pkgver=${_basekernel}.${_sublevel}
pkgrel=1
-_lxopkgver=${_basekernel}.50 # nearly always the same as pkgver
+_lxopkgver=${_basekernel}.52 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -32,7 +32,7 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'module-init-wait-3.0.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
md5sums=('5f64180fe7df4e574dac5911b78f5067'
- 'fb3c742b1f8b01131534a22348cfa712'
+ '41adc30b96b745f08899317da83f7eaa'
'aed25ab047e1c0b020a1516c235c6a74'
'7d37e8ce0f4bd5a957172b12ae742ea0'
'c072b17032e80debc6a8626299245d46'
@@ -44,7 +44,7 @@ md5sums=('5f64180fe7df4e574dac5911b78f5067'
'f36222e7ce20c8e4dc27376f9be60f6c'
'670931649c60fcb3ef2e0119ed532bd4'
'8a71abc4224f575008f974a099b5cf6f'
- 'e2cc9f33fb26b254b6b65f8981aebf13')
+ 'ecf9d21d2d6dfbc29dc18b616cbce4e1')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
diff --git a/libre/linux-libre-lts/linux-libre-lts.install b/libre/linux-libre-lts/linux-libre-lts.install
index 75238bf66..28a571191 100755
--- a/libre/linux-libre-lts/linux-libre-lts.install
+++ b/libre/linux-libre-lts/linux-libre-lts.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-lts
-KERNEL_VERSION=3.0.51-1-LIBRE-LTS
+KERNEL_VERSION=3.0.52-1-LIBRE-LTS
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index 65086e3e8..7f9cb69cb 100755
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -10,10 +10,10 @@
pkgbase=linux-libre # Build stock -LIBRE kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.6
-_sublevel=6
+_sublevel=7
pkgver=${_basekernel}.${_sublevel}
pkgrel=1
-_lxopkgver=${_basekernel}.6 # nearly always the same as pkgver
+_lxopkgver=${_basekernel}.7 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
@@ -31,9 +31,10 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'change-default-console-loglevel.patch'
'module-symbol-waiting-3.6.patch'
'module-init-wait-3.6.patch'
+ 'irq_cfg_pointer-3.6.6.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
md5sums=('a2312edd0265b5b07bd4b50afae2b380'
- '887e4a0fd0fb10da9410f5d1a75466b8'
+ 'a4e642180c7d757a642175fe32e4a264'
'e4a3a4677e1fac6ecf0e0fb44c41ca08'
'68fc36a4efb6ade0eca409b9444fef0c'
'e49ac236dfeef709f91a3d993ea7b62c'
@@ -43,7 +44,8 @@ md5sums=('a2312edd0265b5b07bd4b50afae2b380'
'9d3c56a4b999c8bfbd4018089a62f662'
'670931649c60fcb3ef2e0119ed532bd4'
'8a71abc4224f575008f974a099b5cf6f'
- 'a281ee5d89a016d72840bddb2d742635')
+ '4909a0271af4e5f373136b382826717f'
+ '1dd80f353c705fef988346a8ef05d13f')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
@@ -73,6 +75,9 @@ build() {
patch -Np1 -i "${srcdir}/module-symbol-waiting-3.6.patch"
patch -Np1 -i "${srcdir}/module-init-wait-3.6.patch"
+ # fix FS#32615 - Check for valid irq_cfg pointer in smp_irq_move_cleanup_interrupt
+ patch -Np1 -i "${srcdir}/irq_cfg_pointer-3.6.6.patch"
+
if [ "$CARCH" == "mips64el" ]; then
sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile
sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \
diff --git a/libre/linux-libre/irq_cfg_pointer-3.6.6.patch b/libre/linux-libre/irq_cfg_pointer-3.6.6.patch
new file mode 100644
index 000000000..32583c0ac
--- /dev/null
+++ b/libre/linux-libre/irq_cfg_pointer-3.6.6.patch
@@ -0,0 +1,16 @@
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=arch%2Fx86%2Fkernel%2Fapic%2Fio_apic.c;h=1817fa911024f07151d3edf91bd350722c9f79f8;hp=c265593ec2cdc3df35fda1586aaf91514fab62fa;hb=94777fc51b3ad85ff9f705ddf7cdd0eb3bbad5a6;hpb=3e8fa263a97079c74880675c451587bb6899e661
+
+diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
+index c265593..1817fa9 100644
+--- a/arch/x86/kernel/apic/io_apic.c
++++ b/arch/x86/kernel/apic/io_apic.c
+@@ -2257,6 +2257,9 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
+ continue;
+
+ cfg = irq_cfg(irq);
++ if (!cfg)
++ continue;
++
+ raw_spin_lock(&desc->lock);
+
+ /*
diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install
index 8a3791240..f5c51e08f 100755
--- a/libre/linux-libre/linux-libre.install
+++ b/libre/linux-libre/linux-libre.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=
-KERNEL_VERSION=3.6.6-1-LIBRE
+KERNEL_VERSION=3.6.7-1-LIBRE
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
diff --git a/libre/metalog/PKGBUILD b/libre/metalog/PKGBUILD
deleted file mode 100755
index 41a570b7c..000000000
--- a/libre/metalog/PKGBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: PKGBUILD 137711 2011-09-10 13:12:33Z pierre $
-# Maintainer: juergen <juergen@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-pkgname=metalog
-pkgver=2.0
-pkgrel=3
-pkgdesc="Metalog is a modern replacement for syslogd and klogd"
-url="http://metalog.sourceforge.net"
-license=('GPL')
-arch=('i686' 'x86_64' 'mips64el')
-depends=('pcre')
-groups=('base')
-provides=('logger')
-replaces=('syslog-ng')
-conflicts=('syslog-ng')
-backup=('etc/metalog.conf' 'etc/conf.d/metalog')
-source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-2.tar.xz"
- 'metalog' 'metalog.confd')
-md5sums=('e948d10d780205eae17645c89aee1361'
- 'cdd1d34eedbfbc2d9e659bf0a0f58f56'
- '86bccd5a02996921e29eff8a0394d11f')
-
-build() {
- cd $srcdir/$pkgname-2
- ./configure --prefix=/usr --sysconfdir=/etc
- make
-}
-
-check() {
- cd $srcdir/$pkgname-2
- make check
-}
-
-package() {
- cd $srcdir/$pkgname-2
- make DESTDIR=$pkgdir install
- install -D -m755 $srcdir/metalog $pkgdir/etc/rc.d/metalog
- install -D -m644 $srcdir/metalog.confd $pkgdir/etc/conf.d/metalog
- install -D -m644 metalog.conf $pkgdir/etc/metalog.conf
-
-}
-
diff --git a/libre/metalog/metalog b/libre/metalog/metalog
deleted file mode 100755
index d30f47289..000000000
--- a/libre/metalog/metalog
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# source application-specific settings
-[ -f /etc/conf.d/metalog ] && . /etc/conf.d/metalog
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/sbin/metalog`
-case "$1" in
- start)
- stat_busy "Starting Metalog"
- [ -z "$PID" ] && /usr/sbin/metalog -B $METALOG_OPTS 2>&1
- if [ $? -gt 0 ]; then
- stat_fail
- else
- echo $PID > /var/run/metalog.pid
- add_daemon metalog
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping Metalog"
- [ ! -z "$PID" ] && kill $PID &>/dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon metalog
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/libre/metalog/metalog.confd b/libre/metalog/metalog.confd
deleted file mode 100755
index 3d76ffab3..000000000
--- a/libre/metalog/metalog.confd
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Parameters to be passed to metalog
-#
-
-# NOTE: Since v.0.7, metalog disables buffering by default.
-# Add '-a' if you want buffering.
-
-METALOG_OPTS=""
diff --git a/libre/mplayer-libre/.directory b/libre/mplayer-libre/.directory
index 724f09760..b3a1c5dc3 100755
--- a/libre/mplayer-libre/.directory
+++ b/libre/mplayer-libre/.directory
@@ -1,2 +1,3 @@
[Dolphin]
-Timestamp=2012,3,7,11,33,38
+Timestamp=2012,11,17,0,31,48
+Version=3
diff --git a/libre/mplayer-libre/PKGBUILD b/libre/mplayer-libre/PKGBUILD
index 3e9d0a44d..583b679ca 100755
--- a/libre/mplayer-libre/PKGBUILD
+++ b/libre/mplayer-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 163126 2012-07-07 16:29:25Z ibiru $
+# $Id: PKGBUILD 171086 2012-11-16 15:00:56Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Hugo Doria <hugo@archlinux.org>
# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
@@ -6,8 +6,8 @@
_pkgbase=mplayer
pkgbase=mplayer-libre
pkgname=('mplayer-libre' 'mencoder-libre')
-pkgver=35014
-pkgrel=1
+pkgver=35421
+pkgrel=1.1
arch=('i686' 'x86_64')
makedepends=('libxxf86dga' 'libxxf86vm' 'libmad' 'libxinerama' 'sdl' 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'libgl' 'smbclient'
'aalib' 'jack' 'libcaca' 'x264' 'faad2' 'lirc-utils' 'libxvmc' 'enca' 'libvdpau' 'opencore-amr' 'libdca' 'a52dec' 'schroedinger' 'libvpx'
@@ -16,7 +16,7 @@ license=('GPL')
url="http://www.mplayerhq.hu/"
options=(!buildflags !emptydirs)
source=(ftp://ftp.archlinux.org/other/$_pkgbase/$_pkgbase-$pkgver.tar.xz mplayer.desktop)
-md5sums=('d0785560e5e8eb02e089728ef4412eae'
+md5sums=('b8a82ad1e1d6c3ac847074772daba817'
'c0d6ef795cf6de48e3b87ff7c23f0319')
build() {
@@ -39,7 +39,7 @@ build() {
--enable-radio \
--enable-radio-capture \
--language=all \
- --confdir=/etc/mplayer
+ --confdir=/etc/mplayer
[ "$CARCH" = "i686" ] && sed 's|-march=i486|-march=i686|g' -i config.mak
make
@@ -71,7 +71,7 @@ package_mplayer-libre() {
package_mencoder-libre() {
pkgdesc="Free command line video decoding, encoding and filtering tool (without unfree faac support)"
depends=('enca' 'a52dec' 'libvpx' 'x264' 'libmng' 'libdca' 'bzip2' 'lame' 'alsa-lib' 'fontconfig' 'giflib' 'libpng' 'smbclient' 'xvidcore' 'opencore-amr'
- 'libmad' 'libtheora' 'fribidi' 'libjpeg' 'faad2' 'schroedinger' 'mpg123' 'libass' 'libbluray' 'libcdio')
+ 'libmad' 'libtheora' 'fribidi' 'libjpeg' 'faad2' 'schroedinger' 'mpg123' 'libass' 'libbluray' 'libcdio' 'libvorbis')
provides=("mencoder=$pkgver")
replaces=('mencoder')
conflicts=('mencoder')
@@ -80,3 +80,5 @@ package_mencoder-libre() {
make DESTDIR="$pkgdir" install-mencoder install-mencoder-man
find "$pkgdir/usr/share/man" -name 'mplayer.1' -exec bash -c 'mv "$1" "${1/mplayer/mencoder}"' _ {} \;
}
+md5sums=('b5d8c24fc106b4ed58acda3b86c468fa'
+ 'c0d6ef795cf6de48e3b87ff7c23f0319')
diff --git a/libre/mplayer-vaapi-libre/PKGBUILD b/libre/mplayer-vaapi-libre/PKGBUILD
index 41f84e022..c5b33cf75 100755
--- a/libre/mplayer-vaapi-libre/PKGBUILD
+++ b/libre/mplayer-vaapi-libre/PKGBUILD
@@ -6,19 +6,19 @@
# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
pkgname=mplayer-vaapi-libre
-pkgver=35014
-pkgrel=1
+pkgver=35107
+pkgrel=3.1
pkgdesc="A movie player, compiled with vaapi (without unfree faac support)"
arch=('i686' 'x86_64')
url="http://gitorious.org/vaapi/mplayer"
license=('GPL')
depends=('libxxf86dga' 'libxxf86vm' 'libmad' 'libcdio' 'libxinerama' 'sdl'
- 'lame' 'fontconfig' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'mesa'
+ 'lame' 'fontconfig' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'glu'
'smbclient' 'aalib' 'jack' 'libcaca' 'x264' 'speex' 'faad2'
'lirc-utils' 'ttf-dejavu' 'libxvmc' 'enca' 'opencore-amr' 'libdca'
'a52dec' 'schroedinger' 'mpg123' 'libvpx' 'libpulse' 'fribidi'
'libbluray' 'libva' 'libass' 'desktop-file-utils')
-makedepends=('unzip-libre' 'live-media' 'yasm' 'ladspa' 'git')
+makedepends=('unzip-libre' 'live-media' 'yasm' 'ladspa' 'git' 'mesa')
provides=("mplayer=$pkgver" "mplayer-vaapi=$pkgver")
conflicts=('mplayer' 'mplayer-vaapi')
replaces=('mplayer-vaapi')
@@ -27,7 +27,7 @@ source=(http://pkgbuild.com/~foutrelis/mplayer-vaapi-$pkgver.tar.xz
tweak-desktop-file.patch)
options=('!buildflags' '!emptydirs')
install=mplayer-vaapi.install
-sha256sums=('db19a938e7de46aad567b6d7d8866ec6cb3919a29d60236609a83ebf4e1bb5f0'
+sha256sums=('a6c645625cc2cd6ca48764db302c926049f831e757857ece351b37b674e05e56'
'5a09fb462729a4e573568f9e8c1f57dbe7f69c0b68cfa4f6d70b3e52c450d93b')
build() {
diff --git a/libre/pacman/0003-Ensure-pre_upgrade-scriptlet-gets-old-package-version.patch b/libre/pacman/0003-Ensure-pre_upgrade-scriptlet-gets-old-package-version.patch
new file mode 100644
index 000000000..ae3a57ecd
--- /dev/null
+++ b/libre/pacman/0003-Ensure-pre_upgrade-scriptlet-gets-old-package-version.patch
@@ -0,0 +1,29 @@
+From 1bf05e706b5edac92e9c913a69ca8686c6440f8b Mon Sep 17 00:00:00 2001
+From: Dan McGee <dan@archlinux.org>
+Date: Fri, 04 May 2012 16:41:40 +0000
+Subject: Ensure pre_upgrade scriptlet gets old package version
+
+This was accidentally broken in the refactor done in commit 73139ccb.
+
+Fixes FS#29371.
+
+Signed-off-by: Dan McGee <dan@archlinux.org>
+---
+diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
+index 6c2f0cb..c49d99b 100644
+--- a/lib/libalpm/add.c
++++ b/lib/libalpm/add.c
+@@ -488,8 +488,9 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
+ if(alpm_pkg_has_scriptlet(newpkg) &&
+ !(trans->flags & ALPM_TRANS_FLAG_NOSCRIPTLET)) {
+ const char *scriptlet_name = is_upgrade ? "pre_upgrade" : "pre_install";
+- _alpm_runscriptlet(handle, pkgfile,
+- scriptlet_name, newpkg->version, NULL, 1);
++
++ _alpm_runscriptlet(handle, pkgfile, scriptlet_name,
++ newpkg->version, oldpkg ? oldpkg->version : NULL, 1);
+ }
+
+ /* we override any pre-set reason if we have alldeps or allexplicit set */
+--
+cgit v0.9.0.2-13-g2bd3
diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD
index 4f05be586..85ae5cc5f 100755
--- a/libre/pacman/PKGBUILD
+++ b/libre/pacman/PKGBUILD
@@ -1,11 +1,11 @@
# vim: set ts=2 sw=2 et:
-# $Id: PKGBUILD 150148 2012-02-13 14:49:35Z dreisner $
+# $Id: PKGBUILD 171482 2012-11-18 01:57:51Z allan $
# Maintainer: Dan McGee <dan@archlinux.org>
-# Maintainer: Dave Reisner <dave@archlinux.org>
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=pacman
pkgver=4.0.3
-pkgrel=3
+pkgrel=5
pkgdesc="A library-based package manager with dependency support"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.archlinux.org/pacman/"
@@ -21,6 +21,7 @@ options=(!libtool)
source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig}
0001-Add-conflict-for-replacing-owned-empty-directory.patch
0002-Check-empty-subdirectory-ownership.patch
+ 0003-Ensure-pre_upgrade-scriptlet-gets-old-package-version.patch
pacman.conf
pacman.conf.x86_64
pacman.conf.mips64el
@@ -29,6 +30,7 @@ md5sums=('387965c7125e60e5f0b9ff3b427fe0f9'
'1a70392526c8768470da678b31905a6e'
'1a9b79788640907a2b34e8671cacc94a'
'a9ddd43891bed364e1e97d27b2887bf1'
+ '2e8cbf55a94b1954b167c5dee6b62317'
'080d9f76f56e135cc62205874636aa0f'
'ce9943fc8086d491890565e91ea1a0d8'
'eb8dba9bd0b315230fbf0e5dc0a7335b'
@@ -39,6 +41,7 @@ build() {
patch -p1 -i $srcdir/0001-Add-conflict-for-replacing-owned-empty-directory.patch
patch -p1 -i $srcdir/0002-Check-empty-subdirectory-ownership.patch
+ patch -p1 -i $srcdir/0003-Ensure-pre_upgrade-scriptlet-gets-old-package-version.patch
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --enable-doc
diff --git a/libre/sqlite3-libre/PKGBUILD b/libre/sqlite3-libre/PKGBUILD
deleted file mode 100755
index 569538fbf..000000000
--- a/libre/sqlite3-libre/PKGBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# $Id: PKGBUILD 154652 2012-03-30 14:26:35Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-pkgbase="sqlite3"
-pkgname=('sqlite3' 'sqlite3-tcl')
-_amalgamationver=3071100
-_amalgamationver2=${_amalgamationver/00/}
-#pkgver=${_amalgamationver2//0/.}
-pkgver=3.7.11
-pkgrel=1.1
-pkgdesc="A C library that implements an SQL database engine"
-arch=('i686' 'x86_64' 'mips64el')
-license=('custom')
-url="http://www.sqlite.org/"
-makedepends=('tcl' 'readline>=6.0.00')
-source=( # tarball containing the amalgamation for SQLite 3.7.5 together with a configure script and makefile for building it; includes now also the Tcl Extension Architecture (TEA)
- http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz
- license.txt)
-options=('!libtool' '!emptydirs')
-md5sums=('0552d71bda98ebdcaea305cd6058221b'
- 'c1cdbc5544034d9012e421e75a5e4890')
-
-build() {
- export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
-
- # build sqlite
- cd "$srcdir"/sqlite-autoconf-$_amalgamationver
- ./configure --prefix=/usr \
- --disable-static
- make
-
- # build the tcl extension
- cd "$srcdir"/sqlite-autoconf-$_amalgamationver/tea
- ./configure --prefix=/usr \
- --with-system-sqlite
- make
-
-}
-
-package_sqlite3() {
-
- pkgdesc="A C library that implements an SQL database engine"
- depends=('readline>=6.0.00')
- conflicts=('sqlite' 'sqlite3')
- replaces=('sqlite' 'sqlite3')
- provides=("sqlite3=$pkgver")
-
- cd ${srcdir}/sqlite-autoconf-$_amalgamationver
- make DESTDIR=${pkgdir} install
-
- # license
- install -D -m644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
-}
-
-package_sqlite3-tcl() {
-
- pkgdesc="sqlite3 Tcl Extension Architecture (TEA)"
- depends=('sqlite3>=3.7.5')
-
- cd ${srcdir}/sqlite-autoconf-$_amalgamationver/tea
- make DESTDIR=${pkgdir} install
-}
diff --git a/libre/sqlite3-libre/license.txt b/libre/sqlite3-libre/license.txt
deleted file mode 100755
index 118c5d5e6..000000000
--- a/libre/sqlite3-libre/license.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SQLite Copyright
-SQLite is in the
-Public Domain
-
-
-All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
-
-The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.
-
-All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.
-Obtaining An Explicit License To Use SQLite
-
-Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:
-You are using SQLite in a jurisdiction that does not recognize the public domain.
-You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
-You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
-Your legal department tells you that you have to purchase a license.
-
-If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and principal developers of SQLite, will sell you one.
-Contributed Code
-
-In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement:
-The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
-
-We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to:
-Hwaci
-6200 Maple Cove Lane
-Charlotte, NC 28269
-USA
-
-A template copyright release is available in PDF or HTML. You can use this release to make future changes.
-
-see http://www.sqlite.org/copyright.html \ No newline at end of file
diff --git a/libre/sqlite3/PKGBUILD b/libre/sqlite3/PKGBUILD
deleted file mode 100755
index 2a939aa57..000000000
--- a/libre/sqlite3/PKGBUILD
+++ /dev/null
@@ -1,68 +0,0 @@
-# $Id: PKGBUILD 138719 2011-09-27 17:41:55Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-
-# Parabola note: this PKGBUILD is not meant for building, but for
-# providing a PKGBUILD that doesn't build the with unclear permissions
-# docs
-
-pkgbase="sqlite3"
-pkgname=('sqlite3' 'sqlite3-tcl')
-_amalgamationver=3070800
-_amalgamationver2=${_amalgamationver/00/}
-pkgver=${_amalgamationver2//0/.}
-pkgrel=2
-pkgdesc="A C library that implements an SQL database engine"
-arch=('i686' 'x86_64')
-license=('custom')
-url="http://www.sqlite.org/"
-makedepends=('tcl' 'readline>=6.0.00')
-source=( # tarball containing the amalgamation for SQLite 3.7.5 together with a configure script and makefile for building it; includes now also the Tcl Extension Architecture (TEA)
- http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz
- license.txt)
-options=('!libtool' '!emptydirs')
-md5sums=('6bfb46d73caaa1bbbcd2b52184b6c542'
- 'c1cdbc5544034d9012e421e75a5e4890')
-sha1sums=('34852cfd49ddea440eb26a35ad32deee0176a724'
- 'f34f6daa4ab3073d74e774aad21d66878cf26853')
-
-build() {
- export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
-
- # build sqlite
- cd "$srcdir"/sqlite-autoconf-$_amalgamationver
- ./configure --prefix=/usr \
- --disable-static
- make
-
- # build the tcl extension
- cd "$srcdir"/sqlite-autoconf-$_amalgamationver/tea
- ./configure --prefix=/usr \
- --with-system-sqlite
- make
-
-}
-
-package_sqlite3() {
-
- pkgdesc="A C library that implements an SQL database engine"
- depends=('readline>=6.0.00')
- conflicts=('sqlite')
- replaces=('sqlite')
-
- cd ${srcdir}/sqlite-autoconf-$_amalgamationver
- make DESTDIR=${pkgdir} install
-
- # license
- install -D -m644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
-}
-
-package_sqlite3-tcl() {
-
- pkgdesc="sqlite3 Tcl Extension Architecture (TEA)"
- depends=('sqlite3>=3.7.5')
-
- cd ${srcdir}/sqlite-autoconf-$_amalgamationver/tea
- make DESTDIR=${pkgdir} install
-}
-
diff --git a/libre/sqlite3/license.txt b/libre/sqlite3/license.txt
deleted file mode 100755
index 118c5d5e6..000000000
--- a/libre/sqlite3/license.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-SQLite Copyright
-SQLite is in the
-Public Domain
-
-
-All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
-
-The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.
-
-All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.
-Obtaining An Explicit License To Use SQLite
-
-Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:
-You are using SQLite in a jurisdiction that does not recognize the public domain.
-You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
-You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
-Your legal department tells you that you have to purchase a license.
-
-If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and principal developers of SQLite, will sell you one.
-Contributed Code
-
-In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement:
-The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
-
-We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to:
-Hwaci
-6200 Maple Cove Lane
-Charlotte, NC 28269
-USA
-
-A template copyright release is available in PDF or HTML. You can use this release to make future changes.
-
-see http://www.sqlite.org/copyright.html \ No newline at end of file
diff --git a/libre/thunderbird-libre/.directory b/libre/thunderbird-libre/.directory
deleted file mode 100755
index 6ec9fb1ce..000000000
--- a/libre/thunderbird-libre/.directory
+++ /dev/null
@@ -1,2 +0,0 @@
-[Dolphin]
-Timestamp=2012,4,13,6,21,8
diff --git a/libre/thunderbird-libre/PKGBUILD b/libre/thunderbird-libre/PKGBUILD
deleted file mode 100755
index 134f0efd0..000000000
--- a/libre/thunderbird-libre/PKGBUILD
+++ /dev/null
@@ -1,82 +0,0 @@
-# $Id: PKGBUILD 157994 2012-04-30 20:56:00Z ibiru $
-# Maintainer : Ionut Biru <ibiru@archlinux.org>
-# Contributor: Alexander Baldeck <alexander@archlinux.org>
-# Contributor: Dale Blount <dale@archlinux.org>
-# Contributor: Anders Bostrom <anders.bostrom@home.se>
-# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
-
-pkgname=thunderbird-libre
-pkgver=12.0.1
-pkgrel=1
-pkgdesc="Standalone Mail/News reader"
-arch=('i686' 'x86_64')
-license=('MPL' 'GPL')
-url="http://www.mozilla.org/thunderbird/"
-depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite' 'startup-notification')
-makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13')
-optdepends=('libcanberra: for sound support')
-replaces=('thunderbird')
-conflicts=('thunderbird')
-provides=("thunderbird=$pkgver")
-install=thunderbird.install
-source=(ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.bz2
- mozconfig
- thunderbird.desktop
- thunderbird-install-dir.patch
- channel-prefs.js
- vendor.js
- gcc47.patch
- clrf.patch
- searchplugins-libre.patch)
-md5sums=('64cacde4cb2b1e8736f1c3a0ea6a02db'
- '41511a6bcdd04cf56706218e4670e631'
- 'af3e5b344d2edf1c7d61bb0a5a96de9a'
- 'aea906acf72c43dd82ead2fabcc1c6db'
- '476ec205162340fb0679f522c9d31c3b'
- '5a53179d14ae9631b7afe5e4d0fc0b25'
- '1e3ad86899c61f0993c429d10913edb4'
- 'abe8f73faa71ea2a1e4c6f5a33f56c27'
- '6a1d132b0275876678cb0b08c527805a')
-
-build() {
- cd comm-release
- patch -Np1 -i "$srcdir/thunderbird-install-dir.patch"
- patch -Np1 -i "$srcdir/gcc47.patch"
- patch -Np1 -i "$srcdir/clrf.patch"
-
- # Removing non-free search plugins replacing them with duckduckgo and identi.ca
- patch -Np1 -i "$srcdir/searchplugins-libre.patch"
-
- cp "$srcdir/mozconfig" .mozconfig
-
- export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/thunderbird"
- export PYTHON="/usr/bin/python2"
-
- make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
-}
-
-package() {
- cd comm-release
- make -j1 -f client.mk DESTDIR="$pkgdir" install
-
- install -m644 "$srcdir"/vendor.js "$pkgdir/usr/lib/thunderbird/defaults/pref/"
-
- for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
- install -Dm644 other-licenses/branding/thunderbird/mailicon${i/x*/}.png \
- "$pkgdir/usr/share/icons/hicolor/$i/apps/thunderbird.png"
- done
-
- install -Dm644 "$srcdir/thunderbird.desktop" \
- "$pkgdir/usr/share/applications/thunderbird.desktop"
-
- rm -rf "$pkgdir"/usr/lib/thunderbird/{dictionaries,hyphenation}
- ln -sf /usr/share/hunspell "$pkgdir/usr/lib/thunderbird/dictionaries"
- ln -sf /usr/share/hyphen "$pkgdir/usr/lib/thunderbird/hyphenation"
-
- # We don't want the development stuff
- rm -r "$pkgdir"/usr/{include,lib/thunderbird-devel,share/idl}
-
-# Recommend free addons
- cp --remove-destination "${srcdir}/channel-prefs.js" \
- "${pkgdir}/usr/lib/thunderbird/defaults/pref/channel-prefs.js"
-}
diff --git a/libre/thunderbird-libre/channel-prefs.js b/libre/thunderbird-libre/channel-prefs.js
deleted file mode 100755
index 13b1ba388..000000000
--- a/libre/thunderbird-libre/channel-prefs.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//@line 2 "/build/src/comm-release/mail/app/profile/channel-prefs.js"
-pref("app.update.channel", "default");
-
-//Recommend free addons
-pref("extensions.getAddons.get.url", "http://www.gnu.org/software/gnuzilla/addons.html");
-pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
-pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-pref("extensions.webservice.discoverURL", "http://www.gnu.org/software/gnuzilla/addons.html");
diff --git a/libre/thunderbird-libre/clrf.patch b/libre/thunderbird-libre/clrf.patch
deleted file mode 100755
index 5a77f2b01..000000000
--- a/libre/thunderbird-libre/clrf.patch
+++ /dev/null
@@ -1,265 +0,0 @@
-diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
---- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:10.468804374 +0000
-+++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:45.928528202 +0000
-@@ -688,7 +688,7 @@
- PL_strcat(encoding, "{");
- lengthStr.AppendInt((PRInt32) strlen(value));
- PL_strcat(encoding, lengthStr.get());
-- PL_strcat(encoding, "}"CRLF);
-+ PL_strcat(encoding, "}" CRLF);
- PL_strcat(encoding, value);
- return NS_OK;
- }
-diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
---- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:10.475470988 +0000
-+++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:45.928528202 +0000
-@@ -758,7 +758,7 @@
- }
- }
- }
--#define EXTRA_KEYWORD_HDR " "MSG_LINEBREAK
-+#define EXTRA_KEYWORD_HDR " " MSG_LINEBREAK
-
- // if status offset isn't in the first block, this code won't work. There's no good reason
- // for the status offset not to be at the beginning of the message anyway.
-@@ -1216,7 +1216,7 @@
- // check if there's an envelope header; if not, write one.
- if (strncmp(m_dataBuffer, "From ", 5))
- {
-- m_fileStream->Write("From "CRLF, 7, &bytesWritten);
-+ m_fileStream->Write("From " CRLF, 7, &bytesWritten);
- m_offlineMsgSize += bytesWritten;
- }
- }
-diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
---- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:10.542137136 +0000
-+++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:45.928528202 +0000
-@@ -1722,7 +1722,7 @@
- {
- m_sendDone = true;
- nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
-- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server.
-+ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server.
- m_nextState = SMTP_RESPONSE;
- m_nextStateAfterResponse = SMTP_DONE;
- return(0);
-@@ -1969,7 +1969,7 @@
- {
- nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
- // send a quit command to close the connection with the server.
-- if (SendData(url, "QUIT"CRLF) == NS_OK)
-+ if (SendData(url, "QUIT" CRLF) == NS_OK)
- {
- m_nextState = SMTP_RESPONSE;
- m_nextStateAfterResponse = SMTP_ERROR_DONE;
-@@ -2118,4 +2118,3 @@
- NS_ENSURE_SUCCESS(rv,rv);
- return rv;
- }
--
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
---- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:10.605469976 +0000
-+++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:45.928528202 +0000
-@@ -8309,7 +8309,7 @@
- bool needMoreData = false;
- char * newLine = nsnull;
- PRUint32 numBytesInLine = 0;
-- const char *envelope = "From "CRLF;
-+ const char *envelope = "From " CRLF;
- offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
- fileSize += bytesWritten;
- do
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
---- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:10.605469976 +0000
-+++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:45.931861509 +0000
-@@ -1409,7 +1409,7 @@
- {
- // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
- nsCAutoString commandBuffer(GetServerCommandTag());
-- commandBuffer.Append(" IDLE"CRLF);
-+ commandBuffer.Append(" IDLE" CRLF);
-
- do
- {
-@@ -3287,7 +3287,7 @@
- commandString.Append(messageIds);
- commandString.Append(" (");
- commandString.Append(attribute);
-- commandString.Append(")"CRLF);
-+ commandString.Append(")" CRLF);
- nsresult rv = SendData(commandString.get());
-
- if (NS_SUCCEEDED(rv))
-@@ -5283,7 +5283,7 @@
-
- IncrementCommandTagNumber();
- nsCAutoString command(GetServerCommandTag());
-- command.Append(" expunge"CRLF);
-+ command.Append(" expunge" CRLF);
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -5359,7 +5359,7 @@
- command.Append(gAppName);
- command.Append("\" \"version\" \"");
- command.Append(gAppVersion);
-- command.Append("\")"CRLF);
-+ command.Append("\")" CRLF);
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -5816,7 +5816,7 @@
- nsCAutoString correctedPassword;
- EscapeUserNamePasswordString(password.get(), &correctedPassword);
- command.Append(correctedPassword);
-- command.Append("\""CRLF);
-+ command.Append("\"" CRLF);
- rv = SendData(command.get(), true /* suppress logging */);
- NS_ENSURE_SUCCESS(rv, rv);
- ParseIMAPandCheckForNewMail();
-@@ -7447,7 +7447,7 @@
- nsCString command(GetServerCommandTag());
- command += " create \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if(NS_SUCCEEDED(rv))
-@@ -7550,7 +7550,7 @@
- nsCString command (GetServerCommandTag());
- command += " lsub \"\" \"";
- command += escapedPattern;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- PR_Free(boxnameWithOnlineDirectory);
-
-@@ -7579,7 +7579,7 @@
- command += useXLIST ?
- " xlist \"\" \"" : " list \"\" \"";
- command += escapedPattern;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- PR_Free(boxnameWithOnlineDirectory);
-
-@@ -7600,7 +7600,7 @@
- nsCString command (GetServerCommandTag());
- command += " subscribe \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -7618,7 +7618,7 @@
- nsCString command (GetServerCommandTag());
- command += " unsubscribe \"";
- command += escapedName;
-- command += "\""CRLF;
-+ command += "\"" CRLF;
-
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
-@@ -7632,7 +7632,7 @@
- if (m_urlInProgress)
- return;
- nsCAutoString command (GetServerCommandTag());
-- command += " IDLE"CRLF;
-+ command += " IDLE" CRLF;
- nsresult rv = SendData(command.get());
- if (NS_SUCCEEDED(rv))
- {
-@@ -7659,7 +7659,7 @@
- nsCOMPtr <nsIAsyncInputStream> asyncInputStream = do_QueryInterface(m_inputStream);
- if (asyncInputStream)
- asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
-- nsresult rv = SendData("DONE"CRLF);
-+ nsresult rv = SendData("DONE" CRLF);
- // set a short timeout if we don't want to wait for a response
- if (m_transport && !waitForResponse)
- m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
-@@ -7728,8 +7728,8 @@
- PRUint32 msgsHandled = 0;
- const char *formatString;
- formatString = (idsAreUid)
-- ? "%s uid store %s %s"CRLF
-- : "%s store %s %s"CRLF;
-+ ? "%s uid store %s %s" CRLF
-+ : "%s store %s %s" CRLF;
-
- do
- {
-diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
---- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:10.605469976 +0000
-+++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:45.931861509 +0000
-@@ -185,7 +185,7 @@
-
- NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' &&
- *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string");
-- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
-+ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
- if (sendingIdleDone)
- fWaitingForMoreClientInput = false;
-
-diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
---- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:10.492137526 +0000
-+++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:45.931861509 +0000
-@@ -2483,7 +2483,7 @@
- return(MK_OUT_OF_MEMORY);
- m_pop3ConData->next_state_after_response = POP3_GET_LIST;
- m_listpos = 0;
-- return SendData(m_url, "LIST"CRLF);
-+ return SendData(m_url, "LIST" CRLF);
- }
-
-
-diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
---- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:10.488804218 +0000
-+++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:45.931861509 +0000
-@@ -1473,7 +1473,7 @@
- *newbody = 0;
- PL_strcatn(newbody, newbodylen, "<PRE>");
- PL_strcatn(newbody, newbodylen, body);
-- PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
-+ PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
- PR_Free(body);
- body = newbody;
- }
-diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
---- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-04-25 01:09:10.488804218 +0000
-+++ comm-release/mailnews/mime/src/mimemult.cpp 2012-04-25 01:12:53.383735715 +0000
-@@ -280,7 +280,7 @@
- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\""));
- MimeWriteAString(obj, fileName);
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
- MimeWriteAString(obj, obj->options->state->detachedFilePath);
- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
-@@ -293,10 +293,10 @@
- status = MimeWriteAString(obj, header);
- if (status < 0)
- return status;
-- status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 8bit"MSG_LINEBREAK));
-+ status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK));
- MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: inline; filename=\"Deleted: "));
- MimeWriteAString(obj, fileName);
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; date=\""));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "X-Mozilla-Altered: AttachmentDeleted; date=\""));
- }
- nsCString result;
- char timeBuffer[128];
-@@ -306,8 +306,8 @@
- "%a %b %d %H:%M:%S %Y",
- &now);
- MimeWriteAString(obj, nsDependentCString(timeBuffer));
-- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
-- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
-+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK));
- MimeHeaders_write_raw_headers(mult->hdrs, obj->options, false);
- }
- PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/thunderbird-libre/gcc47.patch b/libre/thunderbird-libre/gcc47.patch
deleted file mode 100755
index 080502c23..000000000
--- a/libre/thunderbird-libre/gcc47.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:15:57.347221336 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:18:34.116046872 +0000
-@@ -5,6 +5,9 @@
- #include "base/file_util.h"
-
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <string>
- #include <vector>
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:15:57.353887955 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:18:34.116046872 +0000
-@@ -6,6 +6,9 @@
-
- #include <errno.h>
- #include <fcntl.h>
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include "eintr_wrapper.h"
- #include "base/logging.h"
-diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
---- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:15:57.350554645 +0000
-+++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:18:34.116046872 +0000
-@@ -13,6 +13,9 @@
- #else
- #include <time.h>
- #endif
-+#if defined(ANDROID) || defined(OS_POSIX)
-+#include <unistd.h>
-+#endif
-
- #include <limits>
-
diff --git a/libre/thunderbird-libre/mozconfig b/libre/thunderbird-libre/mozconfig
deleted file mode 100755
index 8950db703..000000000
--- a/libre/thunderbird-libre/mozconfig
+++ /dev/null
@@ -1,40 +0,0 @@
-mk_add_options MOZ_CO_PROJECT=mail
-ac_add_options --enable-application=mail
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-
-# System libraries
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-ac_add_options --with-system-bz2
-ac_add_options --with-system-png
-ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-ffi
-#ac_add_options --enable-system-cairo
-ac_add_options --enable-system-pixman
-ac_add_options --with-pthreads
-
-# Features
-ac_add_options --enable-official-branding
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-startup-notification
-ac_add_options --enable-gio
-
-ac_add_options --disable-gnomevfs
-ac_add_options --disable-crashreporter
-ac_add_options --disable-updater
-ac_add_options --disable-tests
-ac_add_options --disable-mochitest
-ac_add_options --disable-installer
-
-# Optimization
-ac_add_options --enable-optimize
-
-export MOZILLA_OFFICIAL=1
-mk_add_options MOZILLA_OFFICIAL=1
diff --git a/libre/thunderbird-libre/rePKGBUILD b/libre/thunderbird-libre/rePKGBUILD
deleted file mode 100755
index 6a0c46222..000000000
--- a/libre/thunderbird-libre/rePKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# This is an example rePKGBUILD file. Use this as a start to creating your own,
-# and remove these comments. For more information, see 'man PKGBUILD'.
-# NOTE: Please fill out the license field for your package! If it is unknown,
-# then please put 'unknown'.
-
-# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
-source PKGBUILD
-unset build package md5sums source
-_repo=extra
-options=(!strip)
-source=(PKGBUILD
- http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT
- # files for pkg modifications
- channel-prefs.js)
-
-build() {
- cd "${srcdir}/"
- rm -v .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT
-
-# Recommend free addons
- cp --remove-destination "${srcdir}/channel-prefs.js" \
- "${srcdir}/usr/lib/thunderbird/defaults/pref/channel-prefs.js"
-}
-
-package() {
- find ${srcdir} -type l -maxdepth 1 -delete
- cd ${srcdir}
- cp -a ./* ${pkgdir}
-}
diff --git a/libre/thunderbird-libre/searchplugins-libre.patch b/libre/thunderbird-libre/searchplugins-libre.patch
deleted file mode 100755
index e466a9eb3..000000000
--- a/libre/thunderbird-libre/searchplugins-libre.patch
+++ /dev/null
@@ -1,144 +0,0 @@
---- comm-release.orig/mail/locales/en-US/searchplugins/list.txt 2012-03-27 15:56:00.000000000 -0300
-+++ comm-release/mail/locales/en-US/searchplugins/list.txt 2012-04-13 05:43:25.227475353 -0300
-@@ -1,7 +1,5 @@
--amazondotcom
--aol-web-search
--bing
-+duckduckgo-ssl
- eBay
--twitter
-+identica-notice-search
-+identica-people-search
- wikipedia
--yahoo
---- comm-release.orig/mail/locales/en-US/searchplugins/amazondotcom.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,11 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Amazon.com</ShortName>
--<Description>Amazon.com Search</Description>
--<InputEncoding>ISO-8859-1</InputEncoding>
--<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHgSURBVHjalFM9TNtQEP4cB7PwM1RITUXIgsRaYEEVEyKZwhiyZAQyd0BhpFOlIjoBqhjSqVQMoVMLLAjEwECCQJkSkBqJYDOAFOMKFSf28d7DTUxiUDnp/Pzeu/vuu7t3ICKF6SLTMv2/lB0fRWKfjwDm4JJisYh0Oo3fpZLYT0SjSCQS8JAFMADNDZ3NZsnf1taiqVTKi4nGASruk5lkkmTmMB6JUKFQqO+DfX1eABWeQoVR6f7HSdM0obqu48Yw8G1tDT82NsRd1TSbU9BbGPCog8PDj+jLzurFoAVgMh4XxoNDQ6SqKi0tL9eBvAB8zZwymYxYY7EYAoEA8vm82BNTg6XUIs0MeGTZoR1mhXSnwNl4pmAbjU7mcjkKhkL1ynMnntZ4OEw3VyrV8utk7s5TdW++0QXz+1i3P7IK36t+PCfVn1OQOoOA0gXr5DPak+cPXbBK+/T3S69AtY3LJ98vZ1or/iLr+pTuvr59/A6s003UdqZFJF/PCKQ3o5CUznoBST2AfbEF/9iqYEDaIfwj73VJPEfgNTe0tWNYR0uwy9uOW0OkrgHI7z5ADo2C7v48nLV3XHKAT+x/1m1sX58xsBxg8rZJrDYD8DHHp4aJj/MK09sXjPOt46PcCzAACXY8/u34wN0AAAAASUVORK5CYII=</Image>
--<Url type="text/html" method="GET" template="http://www.amazon.com/exec/obidos/external-search/">
-- <Param name="field-keywords" value="{searchTerms}"/>
-- <Param name="mode" value="blended"/>
--</Url>
--<SearchForm>http://www.amazon.com/</SearchForm>
--</SearchPlugin>
---- comm-release.orig/mail/locales/en-US/searchplugins/aol-web-search.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,10 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
--<os:ShortName>AOL Web Search</os:ShortName>
--<os:Description>The AOL Search engine delivers great web search results, enhanced by Google, plus relevant multimedia results delivered on a single page-so you can search less and discover more.</os:Description>
--<os:InputEncoding>UTF-8</os:InputEncoding>
--<os:Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%06bKGD%00%FF%00%FF%00%FF%A0%BD%A7%93%00%00%00%09pHYs%00%00%00H%00%00%00H%00F%C9k%3E%00%00%00%FAIDAT8%CB%9D%D3%B1q%C2%40%10%85%E1%0F%8F%0B%A0%04%97%00%1D%40%05%C6%01%B9%95*1%AA%C0C%05%E0%84%D4%E4%0A%0C%15H%EE%40%1D%98%12%D4%81%1D%E84%C8B%60%C9%2F9%AD%EE%EE%9F%DD%B7%7B%23%B0%DC%7D%A3D%22%8D%F7%06h%D4%00%D4*%02(%EF%03%B8%EB%F87Af%B9%7B%EF%03%B8o%C59%DE%A4%F1%E1%3F%25%EC%91%60%83%87%B0%FF%89m%F8%5Et%F9S%032%3C%E1%0B%E3%D6%99%02s%7C%848%91%C6E%1B0%C1%0B%9E%AFd%9A%E0%D4%80l%B1%96%C6eebE%9C%DC(%F51dRk%15%B2%FD%D5%85%B1a*%CF%80%AA%84%FC%C6%E1%23f%8Dx%8D)%E76n%10aq%C5%C4%03%B2%B0%26%D2%F8To%D6%80Y0q%8AW%97m%1C%23%EA%9A%CE%E6%20%AD%82%91%5D%83T%AA%BAp%A1%AE%B7Pk%2F%8D%A3%BF%9C%ECz%0B9%E6%7D.7K(%C3%3A%F89%FF%00_%82G%C3%D5%0E(%3E%00%00%00%00IEND%AEB%60%82</os:Image>
--<SearchForm>http://search.aol.com</SearchForm>
--<os:Url type="text/html" method="GET" template="http://search.aol.com/aol/search">
-- <os:Param name="query" value="{searchTerms}"/>
--</os:Url>
--</SearchPlugin>
---- comm-release.orig/mail/locales/en-US/searchplugins/bing.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,21 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
-- <ShortName>Bing</ShortName>
-- <Description>Bing. Search by Microsoft.</Description>
-- <InputEncoding>UTF-8</InputEncoding>
-- <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAVpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8ysf97zf+24//F6f/F6f/F6f+K0/9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP+Z2P/////////w+f/F6f/F6f/i9P/////////T7v9Bt/8Vpv8Vpv8Vpv8Vpv/T7v/////w+f97zf8Vpv8Vpv8Vpv8Vpv9QvP/T7v/////w+f9Bt/8Vpv8Vpv97zf////////9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP/i9P/////i9P8Vpv8Vpv+24//////i9P8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+K0/////////8Vpv8Vpv/F6f////////8krP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+n3v/////w+f8Vpv8Vpv/F6f////////+n3v8krP8Vpv8Vpv8Vpv8Vpv8Vpv9tx/////////+Z2P8Vpv8Vpv/F6f/////////////i9P+K0/9QvP9QvP9tx//F6f////////+n3v8Vpv8Vpv8Vpv/F6f/////T7v+Z2P/i9P////////////////////+24/9QvP8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8krP9QvP9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv9Bt/9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8AAHBsAABhdAAAbiAAAHJ0AABsaQAAdGkAACBDAABlbgAAUEEAAEVYAAAuQwAAOy4AAEU7AABBVAAAQ00AAC5W</Image>
-- <Url type="application/x-suggestions+json" template="http://api.bing.com/osjson.aspx">
-- <Param name="query" value="{searchTerms}"/>
-- <Param name="form" value="OSDJAS"/>
-- </Url>
-- <Url type="text/html" method="GET" template="http://www.bing.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- <Param name="form" value="MOZESB"/>
-- <MozParam name="pc" condition="pref" pref="ms-pc"/>
-- </Url>
-- <Url type="application/x-moz-keywordsearch" method="GET" template="http://www.bing.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- <Param name="form" value="MOZESB"/>
-- <MozParam name="pc" condition="pref" pref="ms-pc"/>
-- </Url>
-- <SearchForm>http://www.bing.com/search</SearchForm>
--</SearchPlugin>
---- comm-release.orig/mail/locales/en-US/searchplugins/google.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,14 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Google</ShortName>
--<Description>Google Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image>
--<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;hl={moz:locale}&amp;q={searchTerms}"/>
--<Url type="text/html" method="GET" template="http://www.google.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- <Param name="ie" value="utf-8"/>
-- <Param name="oe" value="utf-8"/>
-- <Param name="aq" value="t"/>
--</Url>
--<SearchForm>http://www.google.com</SearchForm>
--</SearchPlugin>
---- comm-release.orig/mail/locales/en-US/searchplugins/twitter.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,10 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Twitter Search</ShortName>
--<Description>Realtime Twitter Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%20%00%00%00%20%08%06%00%00%00szz%F4%00%00%00%19tEXtSoftware%00Adobe%20ImageReadyq%C9e%3C%00%00%06%60IDATx%DA%ACWMLSY%14%BE%F7%F5%97%B6%96%96%16P%84q%02H%A0%01%85%08%26%C4%18%C9D%60%D8L2%0Bfm2%89%86%85%3B%E2l%5D%BA%9Ad%E2%CEY%B8%18c2a%8C%B3%10%893%02e%98d%F0%07%22c%D0%22%88%C4%01K)%D0%3F%FA%FF%DE%BB%F3%DD%F7Z%82%B5%16%A8%DE%E4%B6%AF%AF%EF%DD%F3%DDs%BEs%BEs)c%8C%F0A)%25%D9q%F9%F2eC%7F%7F%7F%1D.%BF%12%04%A1%F30F%22%91%10%A3%D1%E8%92%C1%60ponn%FE%3D99%E9%BDz%F5%AAL%3Ea(%B6%F9G%16%04%1F%83%83%83%E6%B1%B1%B1oVVV%86%E2%F1%F8%7F%C9d2%22%8Ab%2C%95J%C5p%1D%8A%C5b%9E%85%85%85%1F%EF%DF%BF%DF%06%90%9A%CF%0A%00%3B%D2%3Fy%F2%A4okkk%0C%06%A3%B8%CF%D22c1%91%B1%B8%C4%98%84kY%96%19%3C%B1%B6%B8%B8%F83F%13w%DE%E7%02%40%1F%3E%7CX%BB%BA%BAz%0B%C6%23%DCx%24%CD%D8%F30c%7F%FAe%E6%DE%90%D9%1B%40JIL%19%E1px%05%5E%F8a%60%60%C0%FE)%00%B4%D9%1F%D8%BDA%92%A4%13v%BB%FD%8CN%A7%B3D%25B%A6%02%8C%3C%0E2%12H1%A2%C1%3EkJ(%E9rP%D2x%88%92%92%92%92J%97%CB%F5%F5%F2%F2%F2%08%5E%0FcJ%C5%80%D8%01p%EC%D81%23%10%B94%1A%8DM%82C%BC%09BfB%8C%F8%93%8Cp~%8A%A0%DB%9B%18%23V%1D!%D5%00R%AA%D3j%9DNg%3D%80%B8n%DF%BE%ED%EB%EC%ECL%EE%5E8%18%0C%12%84J%9A%9B%9BK%5C%BAt)%BD'%00%B0%5D%83Lp%02%84%86%03%88%88%8C%84E%D5%B8%40%D4H%F3%FB~%98%89c%AF%1C%08%3CU%D6%D6%D6%F6%9D%CDfs%99%CD%E64%F8%B1%C3%07%AC%25%E9%F5%FA%8D%8E%8E%0E%CF%F8%F8%F8%FC%C4%C4%C4z%BE%AC%D1%E6%FC%D6dl%91%EC%93%BB%19%C6%C1H%84%E1%3F%CE%1BJ%60%C0%D4%D4%D4%D4%AB%D5j%BBr%C9%98%E1V%1A%E9%EB%F5%F9%7C%7F%9C%3Bw%EE%D7%8B%17%2F%CE%DE%B8q%23%5D%08%40%C1A3%93%7B%22%8DI9w%B5z%93H%88%E9%83g%E16-%1E%B6X%2C%0E%84%F5%08%C0V%9D%3F%7F%FE%A7%40%200%3D44%24%15%0D%20%81W%E7%B7%19%F1%26%0B%E7%9F%11%00%1CzJ%9Cz%22%80'%E5eee%3D%B5%B5%B5%1B%ED%ED%ED%EF%00%60%A5(%00%0A%B9%E0%C0%F1%0D%BEuV%F09%9E5%87%0D%94%9C%B6S%D2b%A5%C4d29%EB%EA%EA%BE%9E%99%99%19%ED%EA%EA%DAp%BB%DD%09%85%7B%C5%A4NB%DE%7Bn%23.%8BQF%FEA*%AF'9%5CJP%C6%2B0%DBz%7B%7BKv%C8_%0C%00%BA%8F)P%D5G%3E%A4%F1%26%08%23%AA%0E%D3%19%8D%C6%A3%C8%16%FD'%018%C8%1023%ABu(v4%9DNgq%1E%9C%03d%CF%E8%ABCfd%A7zV%80%8C%3C%23R%B2%9C%0E%85B%3E%BF%DF%9F%CE.s%60%00%DC%B5%A5Z%F5%BB0%09)%A92%12%D2%5E%8AL0%A8%85%01)%E8%F7z%BDsSSS%F1%A2%B2%80C%B6%A3%02v%97%0B%CA%A2TY7%0FG%A8%0A%E0%10%CA%9AE%ABz%C2%EF%DF%D8z%F4%E8%91%7Bzz%FA%19f%B2%E84%D4!%A0G%60%BC%D2H%F7%24%10%F7%12%E2-n%05%83%5BH%BF%C9%7B%F7%EE%0D%0D%0F%0F%2F%EF%16.m1%F1%CF%EA%C3%5Ea%E0%C6%D1%BC%2CC%07%1E%8C%8E%8E%FE~%E7%CE%9D%C7%3C%8BsI%BA%BB~%B3%BDH%26g%CA%F0~%DA%10%A6%F4%2Fr%10%A5x%B1%B2%B2r%1E%B7%22%B9%CB%EFx%00%82%22%A3%F5%8AB%C5d%BEC%BD%A0%C6.w%F0%02%F36F%88%13%5C0%EF%E1%3F%D4%7F%7DCCC3%A4%FEBww%B7%EE%E4%C9%93%B7%20%CD%DE%BC%1E%98%9D%9D%15%A1%E1k%40%2CrI%2CE%DE%98%81%20%D7%1B1D%EF)%9A%14tJ%8A4%87E.%DD%1FN~%9F%CB%B6N%AF7B%90N%94%97%97%7F%7F%FC%F8%F1o%A1%88%A5y%3D%80%064%05%97-!n%DB(%97%0E%0E%80%A7%91%2F%99%89%7Bf%F2%EB%95%04%23%0F%FC%10%1B4%2C%5Cth%1EO%F1M%1C%C6%FB'%AC%02%BE)%85%16%D4566%F6%9F%3Auj%1A%7F%3D%CD%12q%C7%03%D7%AF_O%A1%C1XX__%7F%89j%952a%85F%0BUr%5Ef%EF%97a%3Ex%B3%C2%3B%A4%97P%C6%17%91%0F%E7%BF%F0%D0%C4%86%3A%03)%A5%E1%D1Z%ADV%DEqu%5C%B9r%C5%94%8F%84%CC%E3%F1%AC%A3%85%FA%0BMD%88%A7%5B%BD%99%12%17%FA%3F%83%A0%F6%00%B9ZPP%2F%F0%40%1C%A2%B4%00A%E2z%C0%B5%00%C6%E1%08SCEE%85!o%16%A0e%8A%A0L%8E%A2-%9F%85%17%D2%A5%20%DAi%BB%A0%82%D0%A8%20%D8%01D%89%A7i%12%EEK%CA%AA%17%11b8B%B0%80g%DA%8Fi%81%84%5C%F5%A0%D9%FC%0D%C4%F9%02MDC5%E2%D8%E5%14%00%40%26sp%2B%EF%96%E5%7Dx%80e%AA%A4MG%89%15%7C%D2(%ED%1C%91%E1%DD%08%0E7%F2G%0B%D1%C8%C8H%B8%BE%BE~%18%00%8E%B6%B6%B6%5Ep8%1C55Po%B3F%20%D5FF%3C%88%EF%BB%04%CF%06%F6%5EX%F2%15%2B%1BD%A8%0DZ%C0%C9%C8%01%80%E8%DBkkk%8B(%C9%89%82b%04B%AEB%B7%7F%C1%A5%01%20x%D7%5B%E3%D0k4%ED6%AA%10%937%18%5C%E3%A3%A2%1A%16%9A%07%80%5E%A3vD_*%E0%15%E3%C9%D7%AF_%3F%C7%89%EA%196%19%CF%ED%5E%F3%F2%08%A7%9EZ%F4o%83x%F11NB!%14*)%7B%5CKH%EA%91%AD%D0%E4%CF%F1%C1%8D%BFz%F5%EA%D9%B5k%D7%06%AA%AA%AA%9C%D9%08r%BB4%DF%E9x7%88%BE%BE%3E%E7%D9%B3g%CF477%F7%B5%B4%B4t%22%24UHWd6%E5%E7%08%0Af%D3%DC%0D%F0%B5%F8%19%92%D7a%C4%3B%B6%B4%B4%F4%12%C7%BE%BB7o%DE%BC%3B%3F%3F%FF6%5B%03%F6%03%40%19%D5%D5%D5%25%3D%3D%3DG%90%C7%AD%A8%E9%EDh.%1BA%D4%0A%FC6%E1%5BGs%5E%86%5D%02%EDO%E3%3C%10x%81%81*%EB%86%18M%E1%DC%B9%86%BF%C5%DD%DE%FF_%80%01%00%94%13%9D%26%E9%81%03P%00%00%00%00IEND%AEB%60%82</Image>
--<Url type="text/html" method="get"
-- template="http://search.twitter.com/search?q={searchTerms}"/>
--<SearchForm>http://search.twitter.com/</SearchForm>
--</SearchPlugin>
--
---- comm-release.orig/mail/locales/en-US/searchplugins/yahoo.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,13 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Yahoo</ShortName>
--<Description>Yahoo Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgJqAIoCdgCaAnoAnhKCAKYijgCuLpIAskKeALpSpgC+Yq4AzHy8ANqezgDmvt4A7tLqAPz5+wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKlRFIoABWAKERERE6ADcKMzzu2hOgAAhERK8REWCWBERE36ERMHMEREvo6iEgY6hEn6Pu0mAzqkz/xjMzoDNwpERERDoAMzAKlERIoAAzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AADAOQAAgBkAAAAPAAAACQAAAAkAAAAIAAAACAAAAAgAAIAYAADAOAAA//8AAP//AAD//wAA</Image>
--<Url type="application/x-suggestions+json" method="GET"
-- template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
--<Url type="text/html" method="GET" template="http://search.yahoo.com/search">
-- <Param name="p" value="{searchTerms}"/>
-- <Param name="ei" value="UTF-8"/>
--</Url>
--<SearchForm>http://search.yahoo.com/</SearchForm>
--</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ comm-release/mail/locales/en-US/searchplugins/duckduckgo-ssl.xml 2012-04-09 14:43:56.000000000 -0300
-@@ -0,0 +1,11 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>DuckDuckGo RU SSL</os:ShortName>
-+<os:Description>DDG Search + Google's suggestions (Russian)</os:Description>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
-+<SearchForm>https://duckduckgo.com/</SearchForm>
-+<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}&amp;kl=ru-ru">
-+</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="http://ddgg.nfriedly.com/complete/search?output=firefox&amp;hl=ru&amp;q={searchTerms}">
-+</os:Url><os:Url type="application/opensearchdescription+xml" method="GET" template="http://mycroft.mozdev.org/updateos.php/id0/duckduckgo_ssl.xml" rel="self">
-+</os:Url>
-+</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ comm-release/mail/locales/en-US/searchplugins/identica-notice-search.xml 2012-04-13 05:15:55.000000000 -0300
-@@ -0,0 +1,7 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>Identi.ca Notice Search</os:ShortName>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
-+<os:Url type="text/html" method="GET" template="http://identi.ca/search/notice?q={searchTerms}">
-+</os:Url>
-+</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ comm-release/mail/locales/en-US/searchplugins/identica-people-search.xml 2012-04-13 05:15:53.000000000 -0300
-@@ -0,0 +1,7 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>Identi.ca People Search</os:ShortName>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
-+<os:Url type="text/html" method="GET" template="http://identi.ca/search/people?q={searchTerms}">
-+</os:Url>
-+</SearchPlugin>
diff --git a/libre/thunderbird-libre/thunderbird-install-dir.patch b/libre/thunderbird-libre/thunderbird-install-dir.patch
deleted file mode 100755
index 74e692bf2..000000000
--- a/libre/thunderbird-libre/thunderbird-install-dir.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -Nur comm-beta.orig/config/autoconf.mk.in comm-beta/config/autoconf.mk.in
---- comm-beta.orig/config/autoconf.mk.in 2011-11-06 14:39:51.064983780 +0000
-+++ comm-beta/config/autoconf.mk.in 2011-11-06 14:42:57.216735333 +0000
-@@ -65,8 +65,8 @@
- mandir = @mandir@
- idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
-
- MOZDEPTH = $(DEPTH)/mozilla
- DIST = $(MOZDEPTH)/dist
-diff -Nur comm-beta.orig/mozilla/config/autoconf.mk.in comm-beta/mozilla/config/autoconf.mk.in
---- comm-beta.orig/mozilla/config/autoconf.mk.in 2011-11-06 14:39:41.771562967 +0000
-+++ comm-beta/mozilla/config/autoconf.mk.in 2011-11-06 14:44:18.404165515 +0000
-@@ -68,8 +68,8 @@
- mandir = @mandir@
- idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
-
- DIST = $(DEPTH)/dist
- LIBXUL_SDK = @LIBXUL_SDK@
-diff -Nur comm-beta.orig/mozilla/js/src/config/autoconf.mk.in comm-beta/mozilla/js/src/config/autoconf.mk.in
---- comm-beta.orig/mozilla/js/src/config/autoconf.mk.in 2011-11-06 14:39:48.014955070 +0000
-+++ comm-beta/mozilla/js/src/config/autoconf.mk.in 2011-11-06 14:44:32.977635875 +0000
-@@ -61,8 +61,8 @@
- datadir = @datadir@
- mandir = @mandir@
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
-+sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
-
- TOP_DIST = @TOP_DIST@
- ifneq (,$(filter /%,$(TOP_DIST)))
diff --git a/libre/thunderbird-libre/thunderbird.desktop b/libre/thunderbird-libre/thunderbird.desktop
deleted file mode 100755
index a626e52ba..000000000
--- a/libre/thunderbird-libre/thunderbird.desktop
+++ /dev/null
@@ -1,13 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=Thunderbird
-Comment=Mail & News Reader
-GenericName=Mail Client & News Reader
-Exec=thunderbird %u
-TryExec=thunderbird
-Icon=thunderbird
-Terminal=false
-Type=Application
-Categories=Network;Email;
-MimeType=message/rfc822;x-scheme-handler/mailto;
-StartupNotify=true
diff --git a/libre/thunderbird-libre/thunderbird.install b/libre/thunderbird-libre/thunderbird.install
deleted file mode 100755
index 4d4a283db..000000000
--- a/libre/thunderbird-libre/thunderbird.install
+++ /dev/null
@@ -1,12 +0,0 @@
-post_install() {
- update-desktop-database -q
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_install
-}
diff --git a/libre/thunderbird-libre/vendor.js b/libre/thunderbird-libre/vendor.js
deleted file mode 100755
index 170b505a8..000000000
--- a/libre/thunderbird-libre/vendor.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Use LANG environment variable to choose locale
-pref("intl.locale.matchOS", true);
-
-// Disable default mailer checking.
-pref("mail.shell.checkDefaultMail", false);
-
-// Don't disable our bundled extensions in the application directory
-pref("extensions.autoDisableScopes", 11);
-pref("extensions.shownSelectionUI", true);
diff --git a/libre/unarchiver/PKGBUILD b/libre/unar/PKGBUILD
index 9921c6d9d..e1664e809 100755
--- a/libre/unarchiver/PKGBUILD
+++ b/libre/unar/PKGBUILD
@@ -1,27 +1,25 @@
# Maintainer: Cedric Girard <girard.cedric@gmail.com>
# Contributor: N30N <archlinux@alunamation.com>
-pkgname=unarchiver
-pkgver=3.2
+pkgname=unar
+pkgver=1.4
pkgrel=1
pkgdesc="An Objective-C application for uncompressing archive files"
-arch=('x86_64' 'i686')
+arch=('x86_64' 'i686' 'mips64el')
url="http://unarchiver.c3.cx/"
license=('LGPL2.1')
depends=('gnustep-base' 'openssl' 'bzip2' 'icu' 'gcc-libs' 'zlib')
makedepends=('gcc-objc')
-source=("http://theunarchiver.googlecode.com/files/TheUnarchiver${pkgver}_src.zip"
- "native_obj_exceptions.patch"
- "libz.patch")
-md5sums=('a23d7fbfe1f66b0950a359f206df5c8d'
- '4fa4ecc6e4ba14d3b6952d064e728511'
- '665d01bf93191cc6f57dc80d8c1d3d5a')
+replaces=("unarchiver")
+conflicts=("unarchiver")
+provides=("unarchiver")
+source=("http://theunarchiver.googlecode.com/files/${pkgname}${pkgver}_src.zip"
+ "native_obj_exceptions.patch")
build() {
cd "$srcdir/The Unarchiver"
patch -p1 < ../native_obj_exceptions.patch
- patch -p1 < ../libz.patch
cd XADMaster
. /usr/share/GNUstep/Makefiles/GNUstep.sh
@@ -40,3 +38,5 @@ package() {
}
# vim:set ts=2 sw=2 et:
+md5sums=('ae5233dd835229f867f0948d28dde0d6'
+ '4fa4ecc6e4ba14d3b6952d064e728511')
diff --git a/libre/unarchiver/libz.patch b/libre/unar/libz.patch
index acba51463..acba51463 100755
--- a/libre/unarchiver/libz.patch
+++ b/libre/unar/libz.patch
diff --git a/libre/unarchiver/native_obj_exceptions.patch b/libre/unar/native_obj_exceptions.patch
index 9c84918b2..9c84918b2 100755
--- a/libre/unarchiver/native_obj_exceptions.patch
+++ b/libre/unar/native_obj_exceptions.patch
diff --git a/libre/unrar-libre/PKGBUILD b/libre/unrar-libre/PKGBUILD
deleted file mode 100755
index e08e90220..000000000
--- a/libre/unrar-libre/PKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Joshua Ismael Haase Hernández <hahj87@gmail.com>
-_pkgbase=unrar
-pkgname=unrar-libre
-pkgver=0.0.1
-pkgrel=1
-pkgdesc="A free software library to decompress .rar files."
-arch=('i686' 'x86_64')
-url="http://gna.org/projects/unrar/"
-license=('GPL')
-provides=(unrar)
-conflicts=(unrar)
-replaces=(unrar)
-source=(http://download.gna.org/unrar/$_pkgbase-$pkgver.tar.gz)
-md5sums=('ac284a6739e3b8c794e7f9e8c20ed8f8') #generate with 'makepkg -g'
-
-build() {
- cd "$srcdir/$_pkgbase-$pkgver"
-
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$srcdir/$_pkgbase-$pkgver"
-
- make DESTDIR="$pkgdir/" install
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch b/libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
index a5fe02165..69fe5c072 100755
--- a/libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
+++ b/libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch
@@ -267,10 +267,10 @@ index f35c227..7062886 100644
%{C++
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
-index 60348b5..c240c4f 100644
+index 68a52e6..02bb30e 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3651,7 +3651,7 @@ XREMain::XRE_mainRun()
+@@ -3669,7 +3669,7 @@ XREMain::XRE_mainRun()
if (gDoProfileReset) {
// Automatically migrate from the current application if we just
// reset the profile.
diff --git a/libre/xulrunner-libre/PKGBUILD b/libre/xulrunner-libre/PKGBUILD
index 745723604..e9cd2a447 100755
--- a/libre/xulrunner-libre/PKGBUILD
+++ b/libre/xulrunner-libre/PKGBUILD
@@ -6,7 +6,7 @@
# We're getting this from Debian Experimental
_debname=iceweasel
-_debver=16.0.2
+_debver=17.0
_debrel=1
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -18,7 +18,7 @@ pkgrel=1
pkgdesc="Mozilla Runtime Environment"
arch=('i686' 'x86_64' 'mips64el')
license=('MPL' 'GPL' 'LGPL')
-depends=('gtk2' 'mozilla-common' 'nss>=3.13.1' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'libevent' 'sqlite3>=3.7.4' 'libnotify' 'libvpx' 'python2')
+depends=('gtk2' 'mozilla-common' 'nss>=3.13.1' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'libevent' 'sqlite3>=3.7.4' 'libvpx' 'python2')
makedepends=('zip' 'unzip' 'pkg-config' 'diffutils' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13' 'quilt')
url="http://wiki.mozilla.org/XUL:Xul_Runner"
source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
@@ -30,11 +30,11 @@ options=('!emptydirs')
conflicts=('xulrunner')
provides=("xulrunner=${_debver}")
replaces=('xulrunner-oss' 'xulrunner')
-md5sums=('4a4f19048e34f7f0a2d28adc351df1ed'
- 'ee38477dd7ede1c32e559ee74139b5c9'
+md5sums=('3e555026478026987753b4859ec91d3b'
+ '9b07815d94b8190c780fac10009025b9'
'f2f4f4a573f549e8b494e33b3ad226bc'
'27271ce647a83906ef7a24605e840d61'
- '0a31239f1008038df5057982fe745dec')
+ '65f68090d2a69b467bd2707d0c4ea3bd')
build() {
export QUILT_PATCHES=debian/patches
diff --git a/pcr/barnyard2/PKGBUILD b/pcr/barnyard2/PKGBUILD
new file mode 100644
index 000000000..7b52c952c
--- /dev/null
+++ b/pcr/barnyard2/PKGBUILD
@@ -0,0 +1,44 @@
+# Contributor: Commiebstrd<spenserreinhardt@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=barnyard2
+pkgver=1
+pkgrel=9
+pkgdesc="Barnyard2 is a fork of the original barnyard project, designed specifically for Snort's new unified2 file format. Barnyard2 is under active development and continues to adapt based on user feedback."
+arch=('i686' 'x86_64')
+url="http://www.securixlive.com/barnyard2/index.php"
+license=('GPLv2')
+depends=('snort' 'mysql')
+source=("http://www.securixlive.com/download/${pkgname}/${pkgname}-${pkgver}.${pkgrel}.tar.gz")
+
+package() {
+
+ #configures and makes package
+ cd "${srcdir}/${pkgname}-${pkgver}.${pkgrel}"
+ ./configure --with-mysql
+ make
+ make DESTDIR="${pkgdir}" install
+
+ #makes dir for /etc locations
+ mkdir "${pkgdir}/etc" -p
+
+ #makes dirs for /var locations
+ mkdir "${pkgdir}/var" -p
+ mkdir "${pkgdir}/var/log" -p
+ mkdir "${pkgdir}/var/log/$pkgname" -p
+
+ #makes /usr/bin, /usr should already be made from make\make install
+ mkdir "${pkgdir}/usr/bin"
+
+ #copy barnyard2.conf to /etc/barnyard2.conf and executable to /usr/bin/
+ cp "${pkgdir}/usr/local/etc/$pkgname.conf" "${pkgdir}/etc/"
+ cp "${pkgdir}/usr/local/bin/$pkgname" "${pkgdir}/usr/bin/"
+
+ #file permission mods and creation of initial .waldo file
+ chmod 666 "${pkgdir}/var/log/$pkgname"
+ touch "${pkgdir}/var/log/$pkgname/$pkgname.waldo"
+ chown snort.snort "${pkgdir}/var/log/$pkgname/$pkgname.waldo"
+
+ #not needed since conf is copied to /etc/ and barnyard is sent to /usr/bin
+ rm -rf "${pkgdir}/usr/local/"
+}
diff --git a/pcr/bison++/PKGBUILD b/pcr/bison++/PKGBUILD
new file mode 100644
index 000000000..947c41df4
--- /dev/null
+++ b/pcr/bison++/PKGBUILD
@@ -0,0 +1,51 @@
+# Contributor: Antonio Garcia-Dominguez <antonio.garciadominguez@uca.es>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=bison++
+pkgver=1.21.11
+pkgrel=1
+pkgdesc="Parser generator in C or C++ from BNF notation"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/bison++"
+license=('GPL')
+source=('http://ftp.de.debian.org/debian/pool/main/b/bison++/bison++_1.21.11.orig.tar.gz' 'http://ftp.de.debian.org/debian/pool/main/b/bison++/bison++_1.21.11-3.diff.gz')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Apply the Debian patch
+ patch -p1 < ../*.diff
+
+ # Fix the broken Makefile.am script
+ sed -e '
+ s/datadir/DESTDIR\)\$(datadir/
+ s/bindir/DESTDIR\)\$(bindir/
+ /^pkgdata_DATA/s/ Example$//
+ /install\-exec\-hook/i\install-data-hook:\
+\tcp -r $(srcdir)/Example $(DESTDIR)$(pkgdatadir)\
+' -i Makefile.am
+
+ # Bootstrap the autotools and compile
+ aclocal
+ automake --add-missing
+ autoreconf
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ # Remove or rename files that could conflict with regular Bison
+ rm "$pkgdir/usr/bin/bison"
+ mv "$pkgdir/usr/share/info/"{bison,bison++}.info
+ rm "$pkgdir/usr/share/man/man1/bison.1"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/facter/PKGBUILD b/pcr/facter/PKGBUILD
new file mode 100644
index 000000000..956569001
--- /dev/null
+++ b/pcr/facter/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Greg Sutcliffe <facter_aur (at) emeraldreverie.orgr>
+# Contributor: Hyacinthe Cartiaux <hyacinthe.cartiaux@free.fr>
+# Contributor: Thomas S Hatch <thatch45 (at) Gmail.com>
+# Contributor: Dave Simons <miouhpi (at) Gmail (dot) com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres
+
+pkgname=facter
+pkgver=1.6.14
+pkgrel=1
+pkgdesc="A library for collecting facts about your system."
+arch=("any")
+url="http://puppetlabs.com/projects/facter/"
+license=("APACHE")
+depends=("ruby" "inetutils" "net-tools")
+options=(!emptydirs)
+source=(http://puppetlabs.com/downloads/facter/facter-$pkgver.tar.gz)
+md5sums=('b6c3df8ad1781c10d30785c58a4504ef')
+
+package() {
+ cd $srcdir/facter-$pkgver
+
+ ruby ./install.rb \
+ --destdir=$pkgdir \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m 644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+}
diff --git a/pcr/ffmpeg-static/PKGBUILD b/pcr/ffmpeg-static/PKGBUILD
index 67ce115bb..1e5634fb6 100644
--- a/pcr/ffmpeg-static/PKGBUILD
+++ b/pcr/ffmpeg-static/PKGBUILD
@@ -6,7 +6,7 @@
pkgname=ffmpeg-static
pkgver=1.0
-pkgrel=1
+pkgrel=2
epoch=1
pkgdesc='Complete and free Internet live audio and video broadcasting solution for GNU/Linux, with static library'
arch=(i686 x86_64 mips64el)
diff --git a/pcr/glance/PKGBUILD b/pcr/glance/PKGBUILD
new file mode 100644
index 000000000..a05e66686
--- /dev/null
+++ b/pcr/glance/PKGBUILD
@@ -0,0 +1,62 @@
+# Contributor: Josh Chase <jcjoshuachase@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=glance
+pkgver=2012.1.2
+pkgrel=1
+_ostackver=essex
+_clientname=python-glanceclient
+_clientver=0.5.1
+pkgdesc="OpenStack image service"
+arch=('any')
+license=('custom')
+url="https://launchpad.net/$pkgname"
+depends=('python2'
+ 'python2-httplib2'
+ 'python2-webob'
+ 'python2-eventlet'
+ 'python2-greenlet'
+ 'python-paste'
+ 'python-paste-deploy'
+ 'python-routes'
+ 'python2-sqlalchemy'
+ 'python2-migrate'
+ 'python2-passlib'
+ 'python2-lxml'
+ 'python-anyjson'
+ 'python-wsgiref'
+ 'python2-argparse'
+ 'python2-boto'
+ 'python-xattr'
+ 'python2-kombu'
+ 'python2-crypto'
+ 'python2-sendfile'
+ 'python2-iso8601')
+makedepends=('python2-distribute')
+source=("https://launchpad.net/$pkgname/$_ostackver/$pkgver/+download/$pkgname-$pkgver.tar.gz"
+ "http://pypi.python.org/packages/source/${_clientname:0:1}/$_clientname/$_clientname-$_clientver.tar.gz")
+
+build() {
+ cd $srcdir
+
+ find . -type f -exec sed -i -e 's|^#!/usr/bin/python$|#!/usr/bin/python2|' \
+ -e 's|^#!/usr/bin/env python$|#!/usr/bin/env python2|' {} +
+
+ cd $srcdir/$_clientname-$_clientver
+ python2 setup.py build
+
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_clientname-$_clientver
+ python2 setup.py install --root=$pkgdir
+
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ install -dm600 "$pkgdir"/etc/$pkgname
+ install -Dm600 etc/* "$pkgdir"/etc/$pkgname/
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/gtkmm-utils/PKGBUILD b/pcr/gtkmm-utils/PKGBUILD
new file mode 100644
index 000000000..e3fdfd4a0
--- /dev/null
+++ b/pcr/gtkmm-utils/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: Michele Vascellari <michele.vascellari@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=gtkmm-utils
+pkgver=0.4.1
+pkgrel=2
+pkgdesc="High level utility functions/classes/widgets for gtkmm and glibmm"
+arch=('i686' 'x86_64')
+url="http://gtkmm-utils.googlecode.com/"
+license=('GPL')
+depends=('gtkmm')
+makedepends=('pkgconfig>=0.9.0')
+source=(http://$pkgname.googlecode.com/files/$pkgname-$pkgver.tar.gz
+ $pkgname-glib.diff)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/$pkgname-glib.diff"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/pcr/gtkmm-utils/gtkmm-utils-glib.diff b/pcr/gtkmm-utils/gtkmm-utils-glib.diff
new file mode 100644
index 000000000..fbe21bb3f
--- /dev/null
+++ b/pcr/gtkmm-utils/gtkmm-utils-glib.diff
@@ -0,0 +1,25 @@
+diff -Naur gtkmm-utils-0.4.1~/glibmm-utils/date.cc gtkmm-utils-0.4.1/glibmm-utils/date.cc
+--- gtkmm-utils-0.4.1~/glibmm-utils/date.cc 2012-11-21 11:43:42.726346909 -0600
++++ gtkmm-utils-0.4.1/glibmm-utils/date.cc 2012-11-21 11:44:27.172760954 -0600
+@@ -25,7 +25,7 @@
+
+ #include <sys/time.h>
+
+-#include <glib/gmessages.h>
++#include <glib.h>
+
+ #include <glibmm/convert.h>
+ #include <glibmm/date.h>
+diff -Naur gtkmm-utils-0.4.1~/glibmm-utils/ustring.cc gtkmm-utils-0.4.1/glibmm-utils/ustring.cc
+--- gtkmm-utils-0.4.1~/glibmm-utils/ustring.cc 2012-11-21 11:43:42.726346909 -0600
++++ gtkmm-utils-0.4.1/glibmm-utils/ustring.cc 2012-11-21 11:44:55.645930936 -0600
+@@ -20,8 +20,7 @@
+ */
+
+ #include <cstring> // for g++ 4.3
+-#include <glib/gmem.h>
+-#include <glib/gmessages.h>
++#include <glib.h>
+ #include "ustring.h"
+
+ namespace Glib {
diff --git a/pcr/lessc/PKGBUILD b/pcr/lessc/PKGBUILD
new file mode 100644
index 000000000..ec9f8cf90
--- /dev/null
+++ b/pcr/lessc/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=lessc
+pkgver=1.3.1
+pkgrel=1
+_commit=9a46f67f44ca908f7da36036c5b3ae83ef8188dc
+pkgdesc="A standalone compiler for the LESS CSS language."
+arch=('any')
+url="http://lesscss.org/"
+license=('Apache')
+depends=('nodejs')
+source=($pkgname-$pkgver.tar.gz::https://github.com/cloudhead/less.js/archive/$_commit.tar.gz)
+
+build() {
+ cd "$srcdir/less.js-$_commit"
+ make less
+}
+
+package() {
+ cd "$srcdir/less.js-$_commit"
+ install -d "$pkgdir/usr/lib/node"
+ install -d "$pkgdir/usr/bin"
+ cp -r lib/less "$pkgdir/usr/lib/node/less"
+ ln -s "node/less" "$pkgdir/usr/lib/less"
+ install -Dm755 "bin/lessc" "$pkgdir/usr/bin/lessc"
+}
+
+sha256sums=('43a2df3466c08e6d30ae0cd847febf981ef5d15d4d9d6ce86c1b1901154bb22a')
diff --git a/pcr/libav-static/avconv-static b/pcr/libav-static/avconv-static
deleted file mode 100644
index 5f632bec0..000000000
--- a/pcr/libav-static/avconv-static
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libav-static/lib /opt/libav-static/bin/avconv $*
diff --git a/pcr/libav-static/avplay-static b/pcr/libav-static/avplay-static
deleted file mode 100644
index 8db2da816..000000000
--- a/pcr/libav-static/avplay-static
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libav-static/lib /opt/libav-static/bin/avplay $*
diff --git a/pcr/libav-static/avprobe-static b/pcr/libav-static/avprobe-static
deleted file mode 100644
index 44b730287..000000000
--- a/pcr/libav-static/avprobe-static
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libav-static/lib /opt/libav-static/bin/avprobe $*
diff --git a/pcr/libav-static/avserver-static b/pcr/libav-static/avserver-static
deleted file mode 100644
index 642d4722c..000000000
--- a/pcr/libav-static/avserver-static
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libav-static/lib /opt/libav-static/bin/avserver $*
diff --git a/pcr/libav-static/ffmpeg-libav-static b/pcr/libav-static/ffmpeg-libav-static
deleted file mode 100644
index 3f9ef6d52..000000000
--- a/pcr/libav-static/ffmpeg-libav-static
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libav-static/lib /opt/libav-static/bin/ffmpeg $*
diff --git a/pcr/libav-static/qt-faststart-libav-static b/pcr/libav-static/qt-faststart-libav-static
deleted file mode 100644
index 8613091c4..000000000
--- a/pcr/libav-static/qt-faststart-libav-static
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libav-static/lib /opt/libav-static/bin/qt-faststart $*
diff --git a/pcr/libav-static/PKGBUILD b/pcr/libav/PKGBUILD
index 932213a3e..6da6f14bd 100644
--- a/pcr/libav-static/PKGBUILD
+++ b/pcr/libav/PKGBUILD
@@ -4,12 +4,18 @@
# Contributor: Paul Mattal <paul@archlinux.org>
# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com>
+static=false
pkgbase=libav
-pkgname=libav-static
-pkgflag=-static
+if [[ $static == true ]] || [[ $static == 1 ]] || [[ $static == enable ]]; then
+ pkgname=libav-static
+ pkgflag=-static
+ staticdesc=', with static library'
+elif [[ $static == false ]] || [[ $static == 0 ]] || [[ $static == disable ]]; then
+ pkgname=libav
+fi
pkgver=0.8.4
-pkgrel=2
-pkgdesc='Complete and free Internet live audio and video broadcasting solution for GNU/Linux, with static library'
+pkgrel=3
+pkgdesc="Complete and free Internet live audio and video broadcasting solution for GNU/Linux$staticdesc"
arch=(
i686
x86_64
@@ -45,21 +51,9 @@ makedepends=(
)
source=(
http://$pkgbase.org/releases/$pkgbase-$pkgver.tar.gz
- avconv$pkgflag
- avplay$pkgflag
- avprobe$pkgflag
- avserver$pkgflag
- ffmpeg-$pkgname
- qt-faststart-$pkgname
)
sha512sums=(
d402c7d586708e29b92340c4d03d8431fe607f0b88c2762cc95671786cdb9a7221968164b571e11086b53b2169f3a657c6106dc769c04a1a035429d011e72610
- 4a98c459df5f5bc5e42580b5f2081509719c057fdf55693b3554006b21adcaa29ee59ac0debfe0486fe1df8b9a937135d99e4ccc2df894a2634dd314eed93114
- afd2eadd0a0522cd3665ccd2b819f06a99cc50e3bdac3a0ef200861664c7084cc5990a3c1a860f2f0cc9f835c33c09cb5c57a25dbab0673eb74ba0f4c980e539
- 4e557c9eab6a97a3206df1dd49a516ae7be9490c894ff212cb5286ee097ae606c0b7a650c75278a71e4c91d0325eaee729937e1ae659ce0887c3c20ea8fe6333
- f0fa50711d19babf3f485189fb37b17a87f31849dad9cf6a7324601bdde0856fe47d55a4d82c6839c93f39e970edcbeecfbcb70a8b4e7570250fa4c7bb6975fb
- 8101ec9c3e0a945ea89f85f81ace52ce67159661e3440668726a5767ba6250a91533494f1aa8fc30ee97ff9af5d64636d0f0dbcb2da862124d35b6b5ec571f5b
- 0133fae31e1df586317deb7235f5e74d22abd007038f82b9df10ea3eea6748945c50a0bbe8f588e8a5d1b7874b3fa2639430e1efa32b0cfe16383a32751d3245
)
build() {
@@ -114,7 +108,7 @@ package() {
ln -s /opt/$pkgname/share/man/man1/avprobe.1 $pkgdir/usr/share/man/man1/avprobe$pkgflag.1
ln -s /opt/$pkgname/share/man/man1/avserver.1 $pkgdir/usr/share/man/man1/avserver$pkgflag.1
ln -s /opt/$pkgname/share/man/man1/ffmpeg.1 $pkgdir/usr/share/man/man1/ffmpeg-$pkgname.1
- echo /opt/libav-static/lib > $pkgdir/etc/ld.so.conf.d/libav-static.conf
+ echo /opt/libav$pkgflag/lib > $pkgdir/etc/ld.so.conf.d/libav$pkgflag.conf
}
# vim:set ts=2 sw=2 et:
diff --git a/pcr/log4cxx/PKGBUILD b/pcr/log4cxx/PKGBUILD
new file mode 100644
index 000000000..c77813e56
--- /dev/null
+++ b/pcr/log4cxx/PKGBUILD
@@ -0,0 +1,24 @@
+pkgname=log4cxx
+pkgver=0.10.0
+pkgrel=2
+pkgdesc="A C++ port of Log4j"
+url="http://logging.apache.org/log4cxx"
+license="APACHE"
+depends=('apr-util' 'libxml2')
+arch=('i686' 'x86_64')
+makedepends=('autoconf' 'automake' 'libtool' 'patch' 'zip' 'gzip' 'sed')
+
+source=(http://archive.apache.org/dist/logging/$pkgname/$pkgver/apache-$pkgname-$pkgver.tar.gz
+ log4cxx-0.10.0-missing_includes.patch)
+md5sums=('b30ffb8da3665178e68940ff7a61084c'
+ 'dfa17719a57b19f12cbef94419a2aac8')
+
+build() {
+ cd $startdir/src/apache-$pkgname-$pkgver
+
+ patch -p1 < $startdir/log4cxx-0.10.0-missing_includes.patch
+
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/pcr/log4cxx/log4cxx-0.10.0-missing_includes.patch b/pcr/log4cxx/log4cxx-0.10.0-missing_includes.patch
new file mode 100644
index 000000000..9f3534ccc
--- /dev/null
+++ b/pcr/log4cxx/log4cxx-0.10.0-missing_includes.patch
@@ -0,0 +1,38 @@
+diff -Naur apache-log4cxx-0.10.0.orig/src/examples/cpp/console.cpp apache-log4cxx-0.10.0/src/examples/cpp/console.cpp
+--- apache-log4cxx-0.10.0.orig/src/examples/cpp/console.cpp 2008-04-01 00:34:52.000000000 +0200
++++ apache-log4cxx-0.10.0/src/examples/cpp/console.cpp 2008-05-06 05:40:52.000000000 +0200
+@@ -15,7 +15,10 @@
+ * limitations under the License.
+ */
+
+-#include <stdlib.h>
++#include <cstdio>
++#include <cstdlib>
++#include <cstring>
++#include <stdint.h>
+ #include <log4cxx/logger.h>
+ #include <log4cxx/consoleappender.h>
+ #include <log4cxx/simplelayout.h>
+diff -Naur apache-log4cxx-0.10.0.orig/src/main/cpp/inputstreamreader.cpp apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp
+--- apache-log4cxx-0.10.0.orig/src/main/cpp/inputstreamreader.cpp 2008-04-01 00:34:09.000000000 +0200
++++ apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp 2008-05-06 05:32:31.000000000 +0200
+@@ -21,6 +21,8 @@
+ #include <log4cxx/helpers/pool.h>
+ #include <log4cxx/helpers/bytebuffer.h>
+
++#include <cstring>
++
+ using namespace log4cxx;
+ using namespace log4cxx::helpers;
+
+diff -Naur apache-log4cxx-0.10.0.orig/src/main/cpp/socketoutputstream.cpp apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp
+--- apache-log4cxx-0.10.0.orig/src/main/cpp/socketoutputstream.cpp 2008-04-01 00:34:09.000000000 +0200
++++ apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp 2008-05-06 05:35:55.000000000 +0200
+@@ -20,6 +20,8 @@
+ #include <log4cxx/helpers/socket.h>
+ #include <log4cxx/helpers/bytebuffer.h>
+
++#include <cstring>
++
+ using namespace log4cxx;
+ using namespace log4cxx::helpers;
diff --git a/pcr/mediatomb/PKGBUILD b/pcr/mediatomb/PKGBUILD
new file mode 100644
index 000000000..f07e12748
--- /dev/null
+++ b/pcr/mediatomb/PKGBUILD
@@ -0,0 +1,63 @@
+# Contributor: Peter Richard Lewis <plewis@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Nikhil Bysani <nikron@gmail.com>
+# Contributor: Mika Hynnä <igheax@gmail.com>
+# Contributor: Jonathan Conder <jonno.conder@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=mediatomb
+pkgver=0.12.1
+pkgrel=11
+pkgdesc="Free UPnP/DLNA media server"
+arch=('i686' 'x86_64')
+url="http://mediatomb.cc/"
+license=('GPL')
+depends=('file' 'curl' 'ffmpegthumbnailer' 'js' 'libexif' 'libmp4v2' 'sqlite3' 'taglib' 'libmysqlclient')
+optdepends=('mysql: to store your music database in mysql')
+backup=('etc/conf.d/mediatomb')
+install=mediatomb.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'mediatomb.rc'
+ 'mediatomb.conf'
+ 'gcc46.patch'
+ 'tonewjs.patch'
+ 'jsparse.patch'
+ 'libav_0.7_support.patch'
+ 'libmp4v2_191_p497.patch'
+ 'libavformat.patch')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i "$srcdir/gcc46.patch"
+ patch -Np1 -i "$srcdir/tonewjs.patch"
+ patch -Np1 -i "$srcdir/jsparse.patch"
+ patch -Np1 -i "$srcdir/libav_0.7_support.patch"
+ patch -Np1 -i "$srcdir/libmp4v2_191_p497.patch"
+ patch -Np1 -i "$srcdir/libavformat.patch"
+
+ ./configure --prefix=/usr \
+ --enable-mysql \
+ --enable-libmagic \
+ --enable-libjs \
+ --enable-ffmpeg
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -D -m0755 "$srcdir/mediatomb.rc" "$pkgdir/etc/rc.d/mediatomb"
+ install -D -m0755 "$srcdir/mediatomb.conf" "$pkgdir/etc/conf.d/mediatomb"
+ install -d "$pkgdir/var/lib/mediatomb"
+}
+sha256sums=('31163c34a7b9d1c9735181737cb31306f29f1f2a0335fb4f53ecccf8f62f11cd'
+ '1a67a1deb8a41467fe9bbf66358a255f0df97b0170a5fc3d48c1f768c8d328b9'
+ 'ba9753a4a380d4c717c987efec03a3c6d401d3ff93a6fced28098adbd3a44cc9'
+ '0c02a20032f0c296800b1bb9644638970c2dedbc5ab7141d66a637235e9da6ce'
+ '2cd8f5628c3a38b290526f008bae351b90211825f86e5959bf95f140748de574'
+ 'd9a3062858900d32b977f0d50d168fd7d36785b6ecc038c019e661e27f7b1c17'
+ 'c6523e8bf5e2da89b7475d6777ef9bffe7d089752ef2f7b27b5e39a4130fb0ff'
+ 'd39c2f9aab051c5447461718fd0ec72cf5982f6c920a4a985a50831f34babe84'
+ '76b11706d70ed8f5e157d96ca441c90c46c42176102fcb651b4ab1102b61bfee')
diff --git a/pcr/mediatomb/gcc46.patch b/pcr/mediatomb/gcc46.patch
new file mode 100644
index 000000000..0f4fe490f
--- /dev/null
+++ b/pcr/mediatomb/gcc46.patch
@@ -0,0 +1,10 @@
+--- a/src/zmm/object.h
++++ b/src/zmm/object.h
+@@ -33,6 +33,7 @@
+ #define __ZMM_OBJECT_H__
+
+ #include <new> // for size_t
++#include <cstddef>
+ #include "atomic.h"
+
+ namespace zmm
diff --git a/pcr/mediatomb/jsparse.patch b/pcr/mediatomb/jsparse.patch
new file mode 100644
index 000000000..9938939b0
--- /dev/null
+++ b/pcr/mediatomb/jsparse.patch
@@ -0,0 +1,144 @@
+diff -rup mediatomb-0.12.1/src/scripting/js_functions.cc ../mediatomb-0.12.1/src/scripting/js_functions.cc
+--- mediatomb-0.12.1/src/scripting/js_functions.cc 2011-06-29 21:51:13.641025479 -0400
++++ ../mediatomb-0.12.1/src/scripting/js_functions.cc 2011-06-29 21:49:21.071800273 -0400
+@@ -51,15 +51,28 @@ extern "C" {
+ JSBool
+ js_print(JSContext *cx, uintN argc, jsval *argv)
+ {
+- uintN i;
++ uintN i, j;
+ JSString *str;
+
+ for (i = 0; i < argc; i++)
+ {
+- str = JS_ValueToString(cx, argv[i]);
++ String fmtStr;
++ for (j = 0; j < argc; j++)
++ {
++ if (j == i)
++ fmtStr = fmtStr + "S";
++ else
++ fmtStr = fmtStr + "*";
++ }
++ if(!JS_ConvertArguments(cx, 1, JS_ARGV(cx, argv), fmtStr.c_str(), &str))
++ {
++ log_debug("Could not parse input arguments\n");
++ return JS_TRUE;
++ }
++
+ if (!str)
+ return JS_TRUE;
+- argv[i] = STRING_TO_JSVAL(str);
++
+ char * log_str = JS_EncodeString(cx, str);
+ log_js("%s\n", log_str);
+ JS_free(cx, log_str);
+@@ -116,24 +129,54 @@ js_addCdsObject(JSContext *cx, uintN arg
+ {
+ try
+ {
+- jsval arg;
+- JSString *str;
+- String path;
+- String containerclass;
++ // Inputs from native code
++ JSObject *js_cds_obj = NULL;
++ JSString *str = NULL;
++ JSString *cont = NULL;
+
+- JSObject *js_cds_obj;
++ String path = nil;
++ String containerclass = nil;
++
++ JSObject *obj = JS_THIS_OBJECT(cx, argv);
+ JSObject *js_orig_obj = NULL;
+ Ref<CdsObject> orig_object;
+
+ Ref<StringConverter> p2i;
+ Ref<StringConverter> i2i;
++ switch (argc)
++ {
++ case 0:
++ log_debug("No input arguments given\n");
++ return JS_FALSE;
++ case 1:
++ if(!JS_ConvertArguments(cx, 1, JS_ARGV(cx, argv), "o", &js_cds_obj))
++ {
++ log_debug("Could not parse input arguments\n");
++ return JS_TRUE;
++ }
++ break;
++ case 2:
++ if(!JS_ConvertArguments(cx, 2, JS_ARGV(cx, argv), "oS", &js_cds_obj, &str))
++ {
++ log_debug("Could not parse input arguments\n");
++ return JS_TRUE;
++ }
++ break;
++ default:
++ if(!JS_ConvertArguments(cx, 3, JS_ARGV(cx, argv), "oSS", &js_cds_obj, &str, &cont))
++ {
++ log_debug("Could not parse input arguments\n");
++ return JS_TRUE;
++ }
++ break;
++ }
+
+- Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
++ Script *self = (Script *)JS_GetPrivate(cx, obj);
+
+ if (self == NULL)
+ {
+ log_debug("Could not retrieve class instance from global object\n");
+- return JS_FALSE;
++ return JS_TRUE;
+ }
+
+ if (self->whoami() == S_PLAYLIST)
+@@ -144,23 +187,14 @@ js_addCdsObject(JSContext *cx, uintN arg
+ {
+ i2i = StringConverter::i2i();
+ }
+-
+- arg = argv[0];
+- if (!JSVAL_IS_OBJECT(arg))
+- return JS_TRUE;
+- if (!JS_ValueToObject(cx, arg, &js_cds_obj))
+- return JS_TRUE;
+
+- // root it
+- argv[0] = OBJECT_TO_JSVAL(js_cds_obj);
+
+- str = JS_ValueToString(cx, argv[1]);
+ if (!str)
+ path = _("/");
+ else
+ path = JS_EncodeString(cx, str);
+
+- JSString *cont = JS_ValueToString(cx, argv[2]);
++
+ if (cont)
+ {
+ containerclass = JS_EncodeString(cx, cont);
+@@ -169,9 +203,9 @@ js_addCdsObject(JSContext *cx, uintN arg
+ }
+
+ if (self->whoami() == S_PLAYLIST)
+- js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("playlist"));
++ js_orig_obj = self->getObjectProperty(obj, _("playlist"));
+ else if (self->whoami() == S_IMPORT)
+- js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("orig"));
++ js_orig_obj = self->getObjectProperty(obj, _("orig"));
+
+ if (js_orig_obj == NULL)
+ {
+@@ -179,9 +213,6 @@ js_addCdsObject(JSContext *cx, uintN arg
+ return JS_TRUE;
+ }
+
+- // root it
+- argv[1] = OBJECT_TO_JSVAL(js_orig_obj);
+-
+ orig_object = self->jsObject2cdsObject(js_orig_obj, self->getProcessedObject());
+ if (orig_object == nil)
+ return JS_TRUE;
diff --git a/pcr/mediatomb/libav_0.7_support.patch b/pcr/mediatomb/libav_0.7_support.patch
new file mode 100644
index 000000000..e25697c50
--- /dev/null
+++ b/pcr/mediatomb/libav_0.7_support.patch
@@ -0,0 +1,64 @@
+=== modified file 'src/metadata/ffmpeg_handler.cc'
+--- old/src/metadata/ffmpeg_handler.cc 2010-08-25 17:07:03 +0000
++++ new/src/metadata/ffmpeg_handler.cc 2011-05-19 04:33:32 +0000
+@@ -89,6 +89,33 @@
+
+ Ref<StringConverter> sc = StringConverter::m2i();
+
++ /* Tabs are 4 characters here */
++ typedef struct {const char *avname; metadata_fields_t field;} mapping_t;
++ static const mapping_t mapping[] =
++ {
++ {"title", M_TITLE},
++ {"artist", M_ARTIST},
++ {"album", M_ALBUM},
++ {"date", M_DATE},
++ {"genre", M_GENRE},
++ {"comment", M_DESCRIPTION},
++ {"track", M_TRACKNUMBER},
++ {NULL, M_MAX},
++ };
++
++ if (!pFormatCtx->metadata)
++ return;
++ for (const mapping_t *m = mapping; m->avname != NULL; m++)
++ {
++ AVMetadataTag *tag = NULL;
++ tag = av_metadata_get(pFormatCtx->metadata, m->avname, NULL, 0);
++ if (tag && tag->value && tag->value[0])
++ {
++ log_debug("Added metadata %s: %s\n", m->avname, tag->value);
++ item->setMetadata(MT_KEYS[m->field].upnp, sc->convert(tag->value));
++ }
++ }
++ /* Old algorithm (doesn't work with libav >= 0.7)
+ if (strlen(pFormatCtx->title) > 0)
+ {
+ log_debug("Added metadata title: %s\n", pFormatCtx->title);
+@@ -131,6 +158,7 @@
+ item->setMetadata(MT_KEYS[M_TRACKNUMBER].upnp,
+ sc->convert(String::from(pFormatCtx->track)));
+ }
++ */
+ }
+
+ // ffmpeg library calls
+@@ -178,7 +206,7 @@
+ for(i=0; i<pFormatCtx->nb_streams; i++)
+ {
+ AVStream *st = pFormatCtx->streams[i];
+- if((st != NULL) && (videoset == false) && (st->codec->codec_type == CODEC_TYPE_VIDEO))
++ if((st != NULL) && (videoset == false) && (st->codec->codec_type == AVMEDIA_TYPE_VIDEO))
+ {
+ if (st->codec->codec_tag > 0)
+ {
+@@ -209,7 +237,7 @@
+ *y = st->codec->height;
+ }
+ }
+- if(st->codec->codec_type == CODEC_TYPE_AUDIO)
++ if(st->codec->codec_type == AVMEDIA_TYPE_AUDIO)
+ {
+ // Increase number of audiochannels
+ audioch++;
+
diff --git a/pcr/mediatomb/libavformat.patch b/pcr/mediatomb/libavformat.patch
new file mode 100644
index 000000000..96685ea15
--- /dev/null
+++ b/pcr/mediatomb/libavformat.patch
@@ -0,0 +1,52 @@
+--- mediatomb-0.12.1.orig/src/metadata/ffmpeg_handler.cc 2012-06-18 02:50:35.000000000 -0400
++++ mediatomb-0.12.1/src/metadata/ffmpeg_handler.cc 2012-06-18 02:59:02.000000000 -0400
+@@ -107,8 +107,8 @@
+ return;
+ for (const mapping_t *m = mapping; m->avname != NULL; m++)
+ {
+- AVMetadataTag *tag = NULL;
+- tag = av_metadata_get(pFormatCtx->metadata, m->avname, NULL, 0);
++ AVDictionaryEntry *tag = NULL;
++ tag = av_dict_get(pFormatCtx->metadata, m->avname, NULL, 0);
+ if (tag && tag->value && tag->value[0])
+ {
+ log_debug("Added metadata %s: %s\n", m->avname, tag->value);
+@@ -278,7 +278,7 @@
+ int x = 0;
+ int y = 0;
+
+- AVFormatContext *pFormatCtx;
++ AVFormatContext *pFormatCtx = avformat_alloc_context();
+
+ // Suppress all log messages
+ av_log_set_callback(FfmpegNoOutputStub);
+@@ -286,15 +286,15 @@
+ // Register all formats and codecs
+ av_register_all();
+
+- // Open video file
+- if (av_open_input_file(&pFormatCtx,
+- item->getLocation().c_str(), NULL, 0, NULL) != 0)
++ // Open video file
++ if (avformat_open_input(&pFormatCtx,
++ item->getLocation().c_str(), NULL, NULL) != 0)
+ return; // Couldn't open file
+
+ // Retrieve stream information
+- if (av_find_stream_info(pFormatCtx) < 0)
++ if (avformat_find_stream_info(pFormatCtx,NULL) < 0)
+ {
+- av_close_input_file(pFormatCtx);
++ avformat_close_input(&pFormatCtx);
+ return; // Couldn't find stream information
+ }
+ // Add metadata using ffmpeg library calls
+@@ -303,7 +303,7 @@
+ addFfmpegResourceFields(item, pFormatCtx, &x, &y);
+
+ // Close the video file
+- av_close_input_file(pFormatCtx);
++ avformat_close_input(&pFormatCtx);
+ }
+
+ Ref<IOHandler> FfmpegHandler::serveContent(Ref<CdsItem> item, int resNum, off_t *data_size)
diff --git a/pcr/mediatomb/libmp4v2_191_p497.patch b/pcr/mediatomb/libmp4v2_191_p497.patch
new file mode 100644
index 000000000..6a6b51e1e
--- /dev/null
+++ b/pcr/mediatomb/libmp4v2_191_p497.patch
@@ -0,0 +1,187 @@
+diff -urN old/src/metadata/libmp4v2_handler.cc new/src/metadata/libmp4v2_handler.cc
+--- old/src/metadata/libmp4v2_handler.cc 2012-04-05 01:46:26.000000000 +0200
++++ new/src/metadata/libmp4v2_handler.cc 2012-04-05 02:01:24.000000000 +0200
+@@ -65,29 +65,28 @@
+ static void addMetaField(metadata_fields_t field, MP4FileHandle mp4, Ref<CdsItem> item)
+ {
+ String value;
+- char* mp4_retval = NULL;
+- u_int16_t track;
+- u_int16_t total_tracks;
+-
+ Ref<StringConverter> sc = StringConverter::i2i();
+
++ const MP4Tags* new_tags = MP4TagsAlloc();
++
++ if (!MP4TagsFetch(new_tags, mp4))
++ return;
++
+ switch (field)
+ {
+ case M_TITLE:
+- MP4GetMetadataName(mp4, &mp4_retval);
++ value = new_tags->name;
+ break;
+ case M_ARTIST:
+- MP4GetMetadataArtist(mp4, &mp4_retval);
++ value = new_tags->artist;
+ break;
+ case M_ALBUM:
+- MP4GetMetadataAlbum(mp4, &mp4_retval);
++ value = new_tags->album;
+ break;
+ case M_DATE:
+- MP4GetMetadataYear(mp4, &mp4_retval);
+- if (mp4_retval)
++ value = new_tags->releaseDate;
++ if (value.length() > 0)
+ {
+- value = mp4_retval;
+- free(mp4_retval);
+ if (string_ok(value))
+ value = value + "-01-01";
+ else
+@@ -95,34 +94,31 @@
+ }
+ break;
+ case M_GENRE:
+- MP4GetMetadataGenre(mp4, &mp4_retval);
++ value = new_tags->genre;
+ break;
+ case M_DESCRIPTION:
+- MP4GetMetadataComment(mp4, &mp4_retval);
++ value = new_tags->comments;
+ break;
+ case M_TRACKNUMBER:
+- MP4GetMetadataTrack(mp4, &track, &total_tracks);
+- if (track > 0)
++ if (new_tags->track)
+ {
+- value = String::from(track);
+- item->setTrackNumber((int)track);
++ value = String::from(new_tags->track->index);
++ item->setTrackNumber((int)new_tags->track->index);
+ }
+ else
++ {
++ MP4TagsFree( new_tags );
+ return;
++ }
+ break;
+ default:
++ MP4TagsFree( new_tags );
+ return;
+ }
+
+- if ((field != M_DATE) && (field != M_TRACKNUMBER) &&
+- (mp4_retval))
+- {
+- value = mp4_retval;
+- free(mp4_retval);
+- }
+-
++ MP4TagsFree( new_tags );
+ value = trim_string(value);
+-
++
+ if (string_ok(value))
+ {
+ item->setMetadata(MT_KEYS[field].upnp, sc->convert(value));
+@@ -190,14 +186,19 @@
+ }
+
+ #if defined(HAVE_MAGIC)
+- u_int8_t *art_data;
+- u_int32_t art_data_len;
++ void *art_data = 0;
++ u_int32_t art_data_len = 0;
+ String art_mimetype;
++
++ const MP4Tags* new_tags = MP4TagsAlloc();
++ MP4TagsFetch(new_tags, mp4);
++ if (new_tags->artworkCount)
++ {
++ art_data = new_tags->artwork->data;
++ art_data_len = new_tags->artwork->size;
++ }
+ #ifdef HAVE_MP4_GET_METADATA_COVER_ART_COUNT
+- if (MP4GetMetadataCoverArtCount(mp4) &&
+- MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len))
+-#else
+- MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len);
++ if (new_tags->artworkCount && art_data_len > 0)
+ #endif
+ {
+ if (art_data)
+@@ -211,11 +212,10 @@
+ }
+ catch (Exception ex)
+ {
+- free(art_data);
++ MP4TagsFree(new_tags);
+ throw ex;
+ }
+
+- free(art_data);
+ if (art_mimetype != _(MIMETYPE_DEFAULT))
+ {
+ Ref<CdsResource> resource(new CdsResource(CH_MP4));
+@@ -225,6 +225,7 @@
+ }
+ }
+ }
++ MP4TagsFree(new_tags);
+ #endif
+ MP4Close(mp4);
+ }
+@@ -249,26 +250,35 @@
+
+ if (ctype != ID3_ALBUM_ART)
+ throw _Exception(_("LibMP4V2Handler: got unknown content type: ") + ctype);
++
++ const MP4Tags* new_tags = MP4TagsAlloc();
++ if (MP4TagsFetch(new_tags, mp4))
++ {
+ #ifdef HAVE_MP4_GET_METADATA_COVER_ART_COUNT
+- if (!MP4GetMetadataCoverArtCount(mp4))
+- throw _Exception(_("LibMP4V2Handler: resource has no album art information"));
++ if (!new_tags->artworkCount)
++ throw _Exception(_("LibMP4V2Handler: resource has no album art information"));
+ #endif
+- u_int8_t *art_data;
+- u_int32_t art_data_len;
+- if (MP4GetMetadataCoverArt(mp4, &art_data, &art_data_len))
+- {
+- if (art_data)
++ void *art_data = 0;
++ u_int32_t art_data_len;
++
++ const MP4TagArtwork* art = new_tags->artwork;
++ art_data = art->data;
++ art_data_len = art->size;
++ if (art)
+ {
+- *data_size = (off_t)art_data_len;
+- Ref<IOHandler> h(new MemIOHandler((void *)art_data, art_data_len));
+- free(art_data);
+- return h;
++ if (art_data)
++ {
++ *data_size = (off_t)art_data_len;
++ Ref<IOHandler> h(new MemIOHandler(art_data, art_data_len));
++ MP4TagsFree(new_tags);
++ return h;
++ }
+ }
++ MP4TagsFree(new_tags);
+ }
+-
+ throw _Exception(_("LibMP4V2Handler: could not serve album art "
+- "for file") + item->getLocation() +
+- " - embedded image not found");
++ "for file") + item->getLocation() +
++ " - embedded image not found");
+ }
+
+ #endif // HAVE_LIBMP4V2
+De binära filerna old/src/metadata/.libmp4v2_handler.cc.swp och new/src/metadata/.libmp4v2_handler.cc.swp skiljer
diff --git a/pcr/mediatomb/mediatomb.conf b/pcr/mediatomb/mediatomb.conf
new file mode 100644
index 000000000..798018d2a
--- /dev/null
+++ b/pcr/mediatomb/mediatomb.conf
@@ -0,0 +1,23 @@
+#
+# Parameters to be passed to mediatomb
+#
+
+# Port to listen on
+MT_PORT='50500'
+
+# User and group to run as
+MT_USER='nobody'
+MT_GROUP='nobody'
+
+# Location of the PID file
+MT_PIDFILE='/var/run/mediatomb.pid'
+
+# Location of the log file
+MT_LOGFILE='/var/log/mediatomb.log'
+
+# Location of the config file/database
+MT_HOME='/var/lib/mediatomb'
+MT_CFGDIR='.mediatomb'
+
+# User defined command line options
+MT_OPTIONS=''
diff --git a/pcr/mediatomb/mediatomb.install b/pcr/mediatomb/mediatomb.install
new file mode 100644
index 000000000..56f6ef92c
--- /dev/null
+++ b/pcr/mediatomb/mediatomb.install
@@ -0,0 +1,9 @@
+post_install() {
+ echo 'Warning: the MediaTomb web interface exposes your filesystem to the network'
+ echo 'For maximum security, set <ui enabled="no"> in your MediaTomb config file'
+}
+
+post_upgrade() {
+ # TODO: disable next update
+ post_install
+}
diff --git a/pcr/mediatomb/mediatomb.rc b/pcr/mediatomb/mediatomb.rc
new file mode 100644
index 000000000..7b93012cd
--- /dev/null
+++ b/pcr/mediatomb/mediatomb.rc
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/mediatomb
+
+MT_OPTIONS="-p $MT_PORT -u $MT_USER -g $MT_GROUP -P $MT_PIDFILE \
+ -l $MT_LOGFILE -m $MT_HOME -f $MT_CFGDIR $MT_OPTIONS"
+
+case "$1" in
+ start)
+ stat_busy "Starting Mediatomb UPnP Media Server"
+
+ chown "$MT_USER:$MT_GROUP" "$MT_HOME"
+
+ if ! pidof -o %PPID /usr/bin/mediatomb &> /dev/null; then
+ rm -f "$MT_PIDFILE"
+ fi
+
+ PID="$(cat "$MT_PIDFILE" 2> /dev/null)"
+
+ if [ -z "$PID" ] && /usr/bin/mediatomb -d $MT_OPTIONS; then
+ add_daemon mediatomb
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Mediatomb UPnP Media Server"
+
+ PID="$(cat "$MT_PIDFILE" 2> /dev/null)"
+
+ if [ -n "$PID" ] && kill "$PID" &> /dev/null; then
+ rm -f "$MT_PIDFILE"
+ rm_daemon mediatomb
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ restart)
+ "$0" stop
+ sleep 1
+ "$0" start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/pcr/mediatomb/tonewjs.patch b/pcr/mediatomb/tonewjs.patch
new file mode 100644
index 000000000..115968530
--- /dev/null
+++ b/pcr/mediatomb/tonewjs.patch
@@ -0,0 +1,564 @@
+diff -up mediatomb-0.12.1-back/build/Makefile.in.tonewjs mediatomb-0.12.1-back/build/Makefile.in
+--- mediatomb-0.12.1-back/build/Makefile.in.tonewjs 2010-04-08 00:40:15.000000000 +0200
++++ mediatomb-0.12.1-back/build/Makefile.in 2011-04-19 17:17:01.343509944 +0200
+@@ -257,7 +257,7 @@ CURL_LIBS = @CURL_LIBS@
+ CXX = @CXX@
+ CXXCPP = @CXXCPP@
+ CXXDEPMODE = @CXXDEPMODE@
+-CXXFLAGS = @CXXFLAGS@
++CXXFLAGS = -fpermissive @CXXFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DB_AUTOCREATE_OPTION_ENABLED = @DB_AUTOCREATE_OPTION_ENABLED@
+ DB_AUTOCREATE_OPTION_REQUESTED = @DB_AUTOCREATE_OPTION_REQUESTED@
+diff -up mediatomb-0.12.1-back/src/scripting/import_script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/import_script.cc
+--- mediatomb-0.12.1-back/src/scripting/import_script.cc.tonewjs 2011-04-18 13:10:48.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/import_script.cc 2011-04-18 13:29:36.000000000 +0200
+@@ -53,8 +53,8 @@ ImportScript::ImportScript(Ref<Runtime>
+ try
+ {
+ load(scriptPath);
+- root = JS_NewScriptObject(cx, script);
+- JS_AddNamedRoot(cx, &root, "ImportScript");
++ root = JS_NewObject(cx, NULL, script, NULL);
++ JS_AddNamedObjectRoot(cx, &root, "ImportScript");
+ }
+ catch (Exception ex)
+ {
+@@ -117,7 +117,7 @@ ImportScript::~ImportScript()
+ #endif
+
+ if (root)
+- JS_RemoveRoot(cx, &root);
++ JS_RemoveObjectRoot(cx, &root);
+
+ #ifdef JS_THREADSAFE
+ JS_EndRequest(cx);
+diff -up mediatomb-0.12.1-back/src/scripting/js_functions.cc.tonewjs mediatomb-0.12.1-back/src/scripting/js_functions.cc
+--- mediatomb-0.12.1-back/src/scripting/js_functions.cc.tonewjs 2011-04-18 13:29:55.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/js_functions.cc 2011-04-19 16:48:04.009229611 +0200
+@@ -49,7 +49,7 @@ using namespace zmm;
+ extern "C" {
+
+ JSBool
+-js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_print(JSContext *cx, uintN argc, jsval *argv)
+ {
+ uintN i;
+ JSString *str;
+@@ -60,19 +60,21 @@ js_print(JSContext *cx, JSObject *obj, u
+ if (!str)
+ return JS_TRUE;
+ argv[i] = STRING_TO_JSVAL(str);
+- log_js("%s\n", JS_GetStringBytes(str));
++ char * log_str = JS_EncodeString(cx, str);
++ log_js("%s\n", log_str);
++ JS_free(cx, log_str);
+ }
+ return JS_TRUE;
+ }
+
+ JSBool
+-js_copyObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_copyObject(JSContext *cx, uintN argc, jsval *argv)
+ {
+ jsval arg;
+ JSObject *js_cds_obj;
+ JSObject *js_cds_clone_obj;
+
+- Script *self = (Script *)JS_GetPrivate(cx, obj);
++ Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ try
+ {
+@@ -91,7 +93,7 @@ js_copyObject(JSContext *cx, JSObject *o
+
+ self->cdsObject2jsObject(cds_obj, js_cds_clone_obj);
+
+- *rval = OBJECT_TO_JSVAL(js_cds_clone_obj);
++ JS_SET_RVAL(cx, argv, OBJECT_TO_JSVAL(js_cds_clone_obj));
+
+ return JS_TRUE;
+
+@@ -110,7 +112,7 @@ js_copyObject(JSContext *cx, JSObject *o
+ }
+
+ JSBool
+-js_addCdsObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_addCdsObject(JSContext *cx, uintN argc, jsval *argv)
+ {
+ try
+ {
+@@ -126,7 +128,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ Ref<StringConverter> p2i;
+ Ref<StringConverter> i2i;
+
+- Script *self = (Script *)JS_GetPrivate(cx, obj);
++ Script *self = (Script *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ if (self == NULL)
+ {
+@@ -156,20 +158,20 @@ js_addCdsObject(JSContext *cx, JSObject
+ if (!str)
+ path = _("/");
+ else
+- path = JS_GetStringBytes(str);
++ path = JS_EncodeString(cx, str);
+
+ JSString *cont = JS_ValueToString(cx, argv[2]);
+ if (cont)
+ {
+- containerclass = JS_GetStringBytes(cont);
++ containerclass = JS_EncodeString(cx, cont);
+ if (!string_ok(containerclass) || containerclass == "undefined")
+ containerclass = nil;
+ }
+
+ if (self->whoami() == S_PLAYLIST)
+- js_orig_obj = self->getObjectProperty(obj, _("playlist"));
++ js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("playlist"));
+ else if (self->whoami() == S_IMPORT)
+- js_orig_obj = self->getObjectProperty(obj, _("orig"));
++ js_orig_obj = self->getObjectProperty(JS_THIS_OBJECT(cx, argv), _("orig"));
+
+ if (js_orig_obj == NULL)
+ {
+@@ -285,8 +287,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ JSString *str2 = JS_NewStringCopyN(cx, tmp.c_str(), tmp.length());
+ if (!str2)
+ return JS_TRUE;
+- *rval = STRING_TO_JSVAL(str2);
+-
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(str2));
+ return JS_TRUE;
+ }
+ catch (ServerShutdownException se)
+@@ -302,7 +303,7 @@ js_addCdsObject(JSContext *cx, JSObject
+ return JS_TRUE;
+ }
+
+-static JSBool convert_charset_generic(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval, charset_convert_t chr)
++static JSBool convert_charset_generic(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, charset_convert_t chr)
+ {
+ try
+ {
+@@ -321,7 +322,7 @@ static JSBool convert_charset_generic(JS
+ {
+ str = JS_ValueToString(cx, argv[0]);
+ if (str)
+- result = JS_GetStringBytes(str);
++ result = JS_EncodeString(cx, str);
+ }
+
+ if (result != nil)
+@@ -330,7 +331,7 @@ static JSBool convert_charset_generic(JS
+ JSString *str2 = JS_NewStringCopyN(cx, result.c_str(), result.length());
+ if (!str2)
+ return JS_TRUE;
+- *rval = STRING_TO_JSVAL(str2);
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(str2));
+ }
+ }
+ catch (ServerShutdownException se)
+@@ -347,24 +348,23 @@ static JSBool convert_charset_generic(JS
+ }
+
+
+-JSBool js_f2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_f2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, F2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, F2I);
+ }
+
+-JSBool js_m2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_m2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, M2I);
+-}
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, M2I); }
+
+-JSBool js_p2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_p2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, P2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, P2I);
+ }
+
+-JSBool js_j2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++JSBool js_j2i(JSContext *cx, uintN argc, jsval *argv)
+ {
+- return convert_charset_generic(cx, obj, argc, argv, rval, J2I);
++ return convert_charset_generic(cx, JS_THIS_OBJECT(cx, argv), argc, argv, J2I);
+ }
+
+ } // extern "C"
+diff -up mediatomb-0.12.1-back/src/scripting/js_functions.h.tonewjs mediatomb-0.12.1-back/src/scripting/js_functions.h
+--- mediatomb-0.12.1-back/src/scripting/js_functions.h.tonewjs 2010-03-25 15:58:05.000000000 +0100
++++ mediatomb-0.12.1-back/src/scripting/js_functions.h 2011-04-18 13:59:29.000000000 +0200
+@@ -40,18 +40,18 @@
+ extern "C" {
+
+ /// \brief Log output.
+-JSBool js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_print(JSContext *cx, uintN argc, jsval *argv);
+
+ /// \brief Adds an object to the database.
+-JSBool js_addCdsObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_addCdsObject(JSContext *cx, uintN argc, jsval *argv);
+
+ /// \brief Makes a copy of an CDS object.
+-JSBool js_copyObject(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_copyObject(JSContext *cx, uintN argc, jsval *argv);
+
+-JSBool js_f2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_m2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_p2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
+-JSBool js_j2i(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
++JSBool js_f2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_m2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_p2i(JSContext *cx, uintN argc, jsval *argv);
++JSBool js_j2i(JSContext *cx, uintN argc, jsval *argv);
+
+ } // extern "C"
+
+diff -up mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc
+--- mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc.tonewjs 2011-04-18 13:34:14.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/playlist_parser_script.cc 2011-04-18 13:51:59.000000000 +0200
+@@ -46,9 +46,9 @@ using namespace zmm;
+ extern "C" {
+
+ static JSBool
+-js_readln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
++js_readln(JSContext *cx, uintN argc, jsval *argv)
+ {
+- PlaylistParserScript *self = (PlaylistParserScript *)JS_GetPrivate(cx, obj);
++ PlaylistParserScript *self = (PlaylistParserScript *)JS_GetPrivate(cx, JS_THIS_OBJECT(cx, argv));
+
+ String line;
+
+@@ -69,7 +69,7 @@ js_readln(JSContext *cx, JSObject *obj,
+
+ JSString *jsline = JS_NewStringCopyZ(cx, line.c_str());
+
+- *rval = STRING_TO_JSVAL(jsline);
++ JS_SET_RVAL(cx, argv, STRING_TO_JSVAL(jsline));
+
+ return JS_TRUE;
+ }
+@@ -93,8 +93,8 @@ PlaylistParserScript::PlaylistParserScri
+
+ String scriptPath = ConfigManager::getInstance()->getOption(CFG_IMPORT_SCRIPTING_PLAYLIST_SCRIPT);
+ load(scriptPath);
+- root = JS_NewScriptObject(cx, script);
+- JS_AddNamedRoot(cx, &root, "PlaylistScript");
++ root = JS_NewObject(cx, NULL, script, NULL);
++ JS_AddNamedObjectRoot(cx, &root, "PlaylistScript");
+ }
+ catch (Exception ex)
+ {
+@@ -245,7 +245,7 @@ PlaylistParserScript::~PlaylistParserScr
+ #endif
+
+ if (root)
+- JS_RemoveRoot(cx, &root);
++ JS_RemoveObjectRoot(cx, &root);
+
+ #ifdef JS_THREADSAFE
+ JS_EndRequest(cx);
+diff -up mediatomb-0.12.1-back/src/scripting/script.cc.tonewjs mediatomb-0.12.1-back/src/scripting/script.cc
+--- mediatomb-0.12.1-back/src/scripting/script.cc.tonewjs 2011-04-18 13:53:07.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/script.cc 2011-04-19 18:26:34.460338804 +0200
+@@ -87,7 +87,7 @@ String Script::getProperty(JSObject *obj
+ str = JS_ValueToString(cx, val);
+ if (! str)
+ return nil;
+- return JS_GetStringBytes(str);
++ return JS_EncodeString(cx, str);
+ }
+
+ int Script::getBoolProperty(JSObject *obj, String name)
+@@ -427,14 +427,14 @@ static JSFunctionSpec js_global_function
+ try
+ {
+ common_script = _load(common_scr_path);
+- common_root = JS_NewScriptObject(cx, common_script);
+- JS_AddNamedRoot(cx, &common_root, "common-script");
++ common_root = JS_NewObject(cx, NULL, common_script, NULL);
++ JS_AddNamedObjectRoot(cx, &common_root, "common-script");
+ _execute(common_script);
+ }
+ catch (Exception e)
+ {
+ if (common_root)
+- JS_RemoveRoot(cx, &common_root);
++ JS_RemoveObjectRoot(cx, &common_root);
+
+ log_js("Unable to load %s: %s\n", common_scr_path.c_str(),
+ e.getMessage().c_str());
+@@ -460,7 +460,7 @@ Script::~Script()
+ JS_BeginRequest(cx);
+ #endif
+ if (common_root)
+- JS_RemoveRoot(cx, &common_root);
++ JS_RemoveObjectRoot(cx, &common_root);
+
+ /*
+ * scripts are unrooted and will be cleaned up by GC
+@@ -504,11 +504,11 @@ void Script::initGlobalObject()
+ static JSClass global_class =
+ {
+ "global", /* name */
+- JSCLASS_HAS_PRIVATE, /* flags */
++ JSCLASS_HAS_PRIVATE | JSCLASS_GLOBAL_FLAGS,/* flags */
+ JS_PropertyStub, /* add property */
+ JS_PropertyStub, /* del property */
+ JS_PropertyStub, /* get property */
+- JS_PropertyStub, /* set property */
++ JS_StrictPropertyStub, /* set property */
+ JS_EnumerateStandardClasses, /* enumerate */
+ JS_ResolveStub, /* resolve */
+ JS_ConvertStub, /* convert */
+@@ -517,7 +517,7 @@ void Script::initGlobalObject()
+ };
+
+ /* create the global object here */
+- glob = JS_NewObject(cx, &global_class, NULL, NULL);
++ glob = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL);
+ if (! glob)
+ throw _Exception(_("Scripting: could not initialize glboal class"));
+
+@@ -539,12 +539,12 @@ void Script::defineFunctions(JSFunctionS
+ throw _Exception(_("Scripting: JS_DefineFunctions failed"));
+ }
+
+-JSScript *Script::_load(zmm::String scriptPath)
++JSObject *Script::_load(zmm::String scriptPath)
+ {
+ if (glob == NULL)
+ initGlobalObject();
+
+- JSScript *scr;
++ JSObject *scr;
+
+ String scriptText = read_text_file(scriptPath);
+
+@@ -571,14 +571,11 @@ JSScript *Script::_load(zmm::String scri
+
+ void Script::load(zmm::String scriptPath)
+ {
+- if (script)
+- JS_DestroyScript(cx, script);
+-
+ script = _load((scriptPath));
+ }
+
+
+-void Script::_execute(JSScript *scr)
++void Script::_execute(JSObject *scr)
+ {
+ jsval ret_val;
+
+@@ -662,7 +659,7 @@ Ref<CdsObject> Script::jsObject2cdsObjec
+ JSObject *js_meta = getObjectProperty(js, _("meta"));
+ if (js_meta)
+ {
+- JS_AddNamedRoot(cx, &js_meta, "meta");
++ JS_AddNamedObjectRoot(cx, &js_meta, "meta");
+ /// \todo: only metadata enumerated in MT_KEYS is taken
+ for (int i = 0; i < M_MAX; i++)
+ {
+@@ -687,7 +684,7 @@ Ref<CdsObject> Script::jsObject2cdsObjec
+ }
+ }
+ }
+- JS_RemoveRoot(cx, &js_meta);
++ JS_RemoveObjectRoot(cx, &js_meta);
+ }
+
+ // stuff that has not been exported to js
+diff -up mediatomb-0.12.1-back/src/scripting/script.h.tonewjs mediatomb-0.12.1-back/src/scripting/script.h
+--- mediatomb-0.12.1-back/src/scripting/script.h.tonewjs 2011-04-18 12:56:14.000000000 +0200
++++ mediatomb-0.12.1-back/src/scripting/script.h 2011-04-18 12:56:51.000000000 +0200
+@@ -66,8 +66,8 @@ public:
+ JSRuntime *rt;
+ JSContext *cx;
+ JSObject *glob;
+- JSScript *script;
+- JSScript *common_script;
++ JSObject *script;
++ JSObject *common_script;
+
+ public:
+ Script(zmm::Ref<Runtime> runtime);
+@@ -115,8 +115,8 @@ private:
+ JSObject *common_root;
+
+ void initGlobalObject();
+- JSScript *_load(zmm::String scriptPath);
+- void _execute(JSScript *scr);
++ JSObject *_load(zmm::String scriptPath);
++ void _execute(JSObject *scr);
+ zmm::Ref<StringConverter> _p2i;
+ zmm::Ref<StringConverter> _j2i;
+ zmm::Ref<StringConverter> _f2i;
+--- mediatomb-0.12.1/configure.tonewjs 2011-07-04 20:20:00.290227110 +1200
++++ mediatomb-0.12.1/configure 2011-07-04 20:20:28.186894644 +1200
+@@ -23784,14 +23784,14 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+
+ else
+
+- LDFLAGS="-L$JS_SEARCH_LIBS $LDFLAGS_SAVE -lmozjs $ADD_PTHREAD_CFLAGS"
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ LDFLAGS="-L$JS_SEARCH_LIBS $LDFLAGS_SAVE -lmozjs185 $ADD_PTHREAD_CFLAGS"
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -23835,12 +23835,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -23848,12 +23848,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- JS_LIBS="-L$JS_SEARCH_LIBS -lmozjs"
+- MOZLIB=mozjs
++ JS_LIBS="-L$JS_SEARCH_LIBS -lmozjs185"
++ MOZLIB=mozjs185
+
+ else
+
+@@ -24020,13 +24020,13 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+ else
+
+ unset ac_cv_lib_smjs_JS_NewObject
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -24070,12 +24070,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -24083,12 +24083,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- MOZLIB=mozjs
+- JS_LIBS="-lmozjs"
++ MOZLIB=mozjs185
++ JS_LIBS="-lmozjs185"
+
+ else
+
+@@ -24239,15 +24239,15 @@ if test "x$ac_cv_lib_smjs_JS_NewObject"
+
+ else
+
+- LDFLAGS="-L$SEARCH_DIR_LIBS $LDFLAGS_SAVE -lmozjs"
+- unset ac_cv_lib_mozjs_JS_NewObject
+- { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs" >&5
+-$as_echo_n "checking for JS_NewObject in -lmozjs... " >&6; }
+-if test "${ac_cv_lib_mozjs_JS_NewObject+set}" = set; then
++ LDFLAGS="-L$SEARCH_DIR_LIBS $LDFLAGS_SAVE -lmozjs185"
++ unset ac_cv_lib_mozjs185_JS_NewObject
++ { $as_echo "$as_me:$LINENO: checking for JS_NewObject in -lmozjs185" >&5
++$as_echo_n "checking for JS_NewObject in -lmozjs185... " >&6; }
++if test "${ac_cv_lib_mozjs185_JS_NewObject+set}" = set; then
+ $as_echo_n "(cached) " >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmozjs $LIBS"
++LIBS="-lmozjs185 $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+ _ACEOF
+@@ -24291,12 +24291,12 @@ $as_echo "$ac_try_echo") >&5
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+- ac_cv_lib_mozjs_JS_NewObject=yes
++ ac_cv_lib_mozjs185_JS_NewObject=yes
+ else
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+
+- ac_cv_lib_mozjs_JS_NewObject=no
++ ac_cv_lib_mozjs185_JS_NewObject=no
+ fi
+
+ rm -rf conftest.dSYM
+@@ -24304,12 +24304,12 @@ rm -f core conftest.err conftest.$ac_obj
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs_JS_NewObject" >&5
+-$as_echo "$ac_cv_lib_mozjs_JS_NewObject" >&6; }
+-if test "x$ac_cv_lib_mozjs_JS_NewObject" = x""yes; then
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mozjs185_JS_NewObject" >&5
++$as_echo "$ac_cv_lib_mozjs185_JS_NewObject" >&6; }
++if test "x$ac_cv_lib_mozjs185_JS_NewObject" = x""yes; then
+
+- JS_LIBS="-L$SEARCH_DIR_LIBS -lmozjs"
+- MOZLIB=mozjs
++ JS_LIBS="-L$SEARCH_DIR_LIBS -lmozjs185"
++ MOZLIB=mozjs185
+
+ else
+
diff --git a/pcr/mycron-git/PKGBUILD b/pcr/mycron-git/PKGBUILD
new file mode 100644
index 000000000..16022bc5f
--- /dev/null
+++ b/pcr/mycron-git/PKGBUILD
@@ -0,0 +1,49 @@
+# Contributor: Dirk Sohler <spam@0x7be.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=mycron-git
+pkgver=20121116
+pkgrel=1
+pkgdesc='A standards compliant and convenient crontab management system.'
+
+url='https://dev.0x7be.de/mycron'
+arch=('any')
+license=('GPL')
+
+depends=('python>=3.0')
+makedepends=('git')
+
+install=mycron.install
+
+source=('mycron.install')
+sha256sums=('a5406ae03412d3a1aaf6aadb902b4dd40bb6eadb21aa2ffb7c21ae95d656f598')
+
+_gitroot='https://github.com/dsohler/mycron'
+_gitname='master'
+
+build() {
+ cd $srcdir
+ msg "Connecting to GIT server...."
+
+ if [[ -d "$_gitname" ]]; then
+ cd "$_gitname" && git pull origin
+ msg "The local files are updated."
+ else
+ git clone "$_gitroot" "$_gitname"
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting build..."
+
+ rm -rf "$srcdir/$_gitname-build"
+ git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+}
+
+package() {
+ cd "$srcdir/$_gitname-build"
+ install -Dm 755 mycron.py $pkgdir/usr/bin/mycron
+ install -Dm 644 example-config.cfg \
+ $pkgdir/usr/share/doc/mycron/example-config.cfg
+ install -Dm 644 example.crontab \
+ $pkgdir/usr/share/doc/mycron/example.crontab
+}
diff --git a/pcr/mycron-git/mycron.install b/pcr/mycron-git/mycron.install
new file mode 100644
index 000000000..a56c1ab97
--- /dev/null
+++ b/pcr/mycron-git/mycron.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo 'Don’t forget to set up your cron service/daemon to execute mycron every minute. See https://dev.0x7be.de/mycron for setup instructions and configuration examples.' | fold -sw 70
+}
diff --git a/pcr/nova/PKGBUILD b/pcr/nova/PKGBUILD
new file mode 100644
index 000000000..181e5a626
--- /dev/null
+++ b/pcr/nova/PKGBUILD
@@ -0,0 +1,55 @@
+# Contributor: Josh Chase <jcjoshuachase@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=nova
+pkgver=2012.1.2
+_clientname=python-novaclient
+_clientver=2.8.0
+pkgrel=1.1
+pkgdesc="OpenStack cloud computing fabric controller"
+arch=('any')
+license=('custom')
+url="https://launchpad.net/nova"
+depends=('python2'
+ 'python2-cheetah'
+ 'python2-simplejson'
+ 'python2-prettytable'
+ 'python2-amqplib'
+ 'python2-carrot'
+ 'python2-lockfile'
+ 'python2-daemon'
+ 'python2-gflags'
+ 'python2-netaddr'
+ 'glance'
+ 'python2-suds'
+ 'python2-paramiko'
+ 'python2-feedparser'
+ 'python2-babel' )
+makedepends=('python2-distribute')
+source=("https://launchpad.net/nova/essex/2012.1.2/+download/nova-2012.1.2.tar.gz"
+ "http://pypi.python.org/packages/source/${_clientname:0:1}/$_clientname/$_clientname-$_clientver.tar.gz")
+
+build() {
+ cd $srcdir
+
+ find . -type f -exec sed -i -e 's|^#!/usr/bin/python$|#!/usr/bin/python2|' \
+ -e 's|^#!/usr/bin/env python$|#!/usr/bin/env python2|' {} +
+
+ cd $srcdir/$_clientname-$_clientver
+ python2 setup.py build
+
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py build
+}
+
+package() {
+ cd $srcdir/$_clientname-$_clientver
+ python2 setup.py install --root=$pkgdir
+
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ install -dm600 "$pkgdir"/etc/$pkgname
+ install -Dm600 etc/$pkgname/* "$pkgdir"/etc/$pkgname/
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/pcr/pactools/PKGBUILD b/pcr/pactools/PKGBUILD
new file mode 100644
index 000000000..d05953b99
--- /dev/null
+++ b/pcr/pactools/PKGBUILD
@@ -0,0 +1,18 @@
+# Contributor: Pierluigi <pierluigi88@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=pactools
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="A collection of the best tools for pacman"
+arch=('i686' 'x86_64')
+url="http://pierloz.com/pactools"
+license=("GPL")
+depends=('perl' 'bash' 'python')
+source=(pactools pt-pacman-cage pt-pacman-uncage pt-pacsize \
+pt-deptree pt-pacman-info pt-repolist pt-pacfix)
+
+build() {
+ install -d $pkgdir/usr/bin
+ install -m 755 $srcdir/* $pkgdir/usr/bin
+}
diff --git a/pcr/pactools/pactools b/pcr/pactools/pactools
new file mode 100755
index 000000000..1fe3ddbe8
--- /dev/null
+++ b/pcr/pactools/pactools
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+green() {
+ echo -e "\033[1;32m${1}\033[1;0m"
+ }
+
+red() {
+ echo -e "\033[1;31m${1}\033[1;0m"
+ }
+
+
+echo 'pactools is a set of useful tools for pacman'
+echo
+echo 'Tools installed:'
+echo
+green ' * pt-pacman-cage'
+echo ' by: ody'
+echo ' A script to keep the pacman db in a contiguous as possible'
+echo ' place on your hd to make reading it quicker.'
+echo ' Attention: be sure to have the module loop loaded in rc.conf'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=20385'
+echo
+green ' * pt-pacman-uncage'
+echo ' by: ody'
+echo ' To uncage your pacman db, after pt-pacman-cage.'
+echo ' Use only if you have problem with pt-pacman-cage and you'
+echo ' want to come back to standard db system'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=20385'
+echo
+green ' * pt-pacsize'
+echo ' by: hads'
+echo ' How much disk space do my installed packages use?'
+echo ' This script answers to the question.'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=20971'
+echo
+green ' * pt-deptree'
+echo ' by: skoal'
+echo ' A visual representation of packages dependencies'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=10283'
+echo
+green ' * pt-pacman-info'
+echo ' by: Pvel Varela Rodrguez [aka NeOnsKuLL]'
+echo ' List the names of configured repos in your pacman.conf'
+echo ' Calculates the total number of available packages'
+echo ' in each repo;'
+echo ' calculates the number of installed packages.'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=23124'
+echo
+green ' * pt-repolist'
+echo ' by: dtw'
+echo ' Shows installed packages from a certain repo.'
+echo ' USAGE: pt-repolist <reponame> [all]'
+echo ' <reponame> is the repository name'
+echo ' [all] to include also NOT installed packages.'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?id=12369'
+echo
+green ' * pt-pacfix'
+echo ' by: pierluigi and fixed by Chris.Giles'
+echo ' A script to list all the packages currently installed,'
+echo ' according to /var/log/pacman.log'
+echo ' WEB: http://bbs.archlinux.org/viewtopic.php?pid=227510'
+echo
+red 'Please remember: pactools comes with NO WARRANTY, use at your own risk'
diff --git a/pcr/pactools/pt-deptree b/pcr/pactools/pt-deptree
new file mode 100755
index 000000000..edb6f538b
--- /dev/null
+++ b/pcr/pactools/pt-deptree
@@ -0,0 +1,54 @@
+#!/bin/sh
+# Pacman Dependency Tree
+# does NOT handle group names -> unexpected results.
+# Package names using aliases, like x-server, should work.
+# Breaks on circular dependencies -> you better hit ctrl-c.
+
+export LC_ALL=en_US
+
+progname=`basename $0`
+pacexec='pacman'
+leafnull='None'
+branch=""
+vbranch="| "
+vprune=" "
+hbranch="+---"
+
+_showdep () {
+
+ # Try to use specific pkg req
+ if $pacexec -Qi $1 &> /dev/null ; then
+ # Grab deps list|from "Depends"|Remove Tag \| specific version req's.
+ deplist=`$pacexec -Qi $1|grep Depends|sed 's/^.*: \|>[^ ]*//g;s/ $//'`
+ else # Oops! Failed on alias, try this...
+ deplist=`$pacexec -Qs $1 | sed '1!d;s/\(^.*\/\)\(.*\)\( .*$\)/\2/'`
+ fi
+
+ [ "x$deplist" = "x$leafnull" ] && return
+
+ while [ -n "$deplist" ]
+ do
+ set -- $deplist && echo "$branch$hbranch$1"
+ if [ $# -gt 1 ] ; then
+ branch=${branch}$vbranch
+ else
+ branch=${branch}$vprune
+ fi
+
+ _showdep $1
+
+ deplist=${*:2}
+ branch=${branch:0:${#branch}-${#vprune}}
+ done
+}
+
+branch=$vprune
+
+for pkg in `$pacexec -Q $1 | sed 's/ .*//'`
+do
+ echo $pkg
+ _showdep $pkg
+done
+
+unset _showdep && set --
+exit 0
diff --git a/pcr/pactools/pt-pacfix b/pcr/pactools/pt-pacfix
new file mode 100755
index 000000000..cd128331e
--- /dev/null
+++ b/pcr/pactools/pt-pacfix
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+#
+# pacfix.py: a script by pierluigi to list all the packages currently installed according to /var/log/pacman.log
+# 2008-07-04: Modified by Chris Giles to prevent failure when "pacman.log" has lines with only two words
+
+
+pkg=[]
+
+logfile = open("/var/log/pacman.log","r")
+log=logfile.readlines()
+for myline in log:
+ myarray = myline.strip("\n").split(" ")
+ if len(myarray) >= 3 :
+ if (myarray[2]=="installed" or myarray[2]=="upgraded"):
+ if (pkg.count(myarray[3])==0):
+ pkg.append(myarray[3])
+ if (myarray[2]=="removed"):
+ if (pkg.count(myarray[3])!=0):
+ pkg.remove(myarray[3])
+pkg.sort()
+for p in pkg:
+ print(p)
diff --git a/pcr/pactools/pt-pacman-cage b/pcr/pactools/pt-pacman-cage
new file mode 100755
index 000000000..f9248e496
--- /dev/null
+++ b/pcr/pactools/pt-pacman-cage
@@ -0,0 +1,152 @@
+#!/bin/bash
+#
+# pacman-cage
+#
+# Copyright (c) 2002-2006 by Andrew Rose <rose.andrew@gmail.com>
+# I used Judds pacman-optimise as a framework.
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+
+myver='2.9.8.1'
+dbroot="/var/lib/pacman"
+pacmandb="/var/lib/pacman.db"
+
+usage() {
+ echo "pacman-cage $myver"
+ echo "usage: $0 pacman_db_size(MB)"
+ echo
+ echo "pacman-cage creates a loopbacked filesystem in a contigious file."
+ echo "This will give better response times when using pacman"
+ echo "A safe value for pacman_db_size should be > 40"
+ echo
+ echo "If you are unsure, use this:"
+ echo " $0 60"
+ echo
+}
+
+die() {
+ echo "pacman-cage: $*" >&2
+ exit 1
+}
+
+die_r() {
+ rm -f /tmp/pacman.lck
+ die $*
+}
+
+loop_check=`zcat /proc/config.gz | grep CONFIG_BLK_DEV_LOOP | cut -d\= -f2`
+
+if [ "$loop_check" == "m" ]; then
+ if [ `lsmod | grep loop | cut -d\ -f1` != "loop" ]; then
+ echo "Error. You have to load the module 'loop' in rc.conf."
+ exit 1
+ fi
+fi
+
+if [ "$loop_check" == "CONFIG_BLK_DEV_LOOP" ]; then
+ echo "Error. Your kernel config doesn't include CONFIG_BLK_DEV_LOOP."
+ exit 1
+fi
+
+
+if [ "$#" != "1" ]; then echo "wrong number of parameters" 1>&2 ; usage; exit 0; fi
+
+if [ "$1" != "" ]; then
+ if [ "$1" = "-h" -o "$1" = "--help" ]; then
+ usage
+ exit 0
+ fi
+ dbsize=$1
+fi
+
+if [ "`id -u`" != 0 ]; then
+ die "You must be root to cage the database"
+fi
+
+# make sure pacman isn't running
+if [ -f /tmp/pacman.lck ]; then
+ die "Pacman lockfile was found. Cannot run while pacman is running."
+fi
+# make sure pacman.db hasnt already been made
+if [ -f $pacmandb ]; then
+ die "$pacmandb already exists!."
+fi
+
+if [ ! -d $dbroot ]; then
+ die "$dbroot does not exist or is not a directory"
+fi
+
+# don't let pacman run while we do this
+touch /tmp/pacman.lck
+
+# step 1: sum the old db
+echo "==> md5sum'ing the old database..."
+find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.old
+
+echo "==> creating pacman.db loopback file..."
+dd if=/dev/zero of=$pacmandb bs=1M count=$dbsize > /dev/null 2>&1
+
+echo "==> creating ext2 -O dir_index -b 1024 -m 0 on $pacmandb..."
+yes | mkfs.ext2 -O dir_index -b 1024 -i 1024 -m 0 -F $pacmandb > /dev/null 2>&1
+
+echo "==> creating temporary mount point /mnt/tmp-pacman.."
+mkdir /mnt/tmp-pacman
+
+echo "==> mounting pacman.db to temporary mount point..."
+mount -o loop $pacmandb /mnt/tmp-pacman
+
+echo "==> copying pacman database to temporary mount point..."
+cp -a /var/lib/pacman/. /mnt/tmp-pacman
+
+echo "==> unmounting temporary mount point..."
+umount /mnt/tmp-pacman
+
+echo "==> removing temporary mount point..."
+rmdir /mnt/tmp-pacman
+
+echo "==> moving old /var/lib/pacman to /var/lib/pacman.bak..."
+mv /var/lib/pacman /var/lib/pacman.bak
+
+echo "==> createing new pacman db mount point @ $dbroot..."
+mkdir $dbroot
+
+echo "==> Mounting new pacman db..."
+mount -o loop $pacmandb $dbroot
+
+echo "==> md5sum'ing the new database..."
+find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.new
+
+echo "==> checking integrity..."
+diff /tmp/pacsums.old /tmp/pacsums.new >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ # failed, move the old one back into place
+ umount $dbroot
+ rm $pacmandb
+ mv $dbroot.bak $dbroot
+ die_r "integrity check FAILED, reverting to old database"
+fi
+
+echo "==> Updating /etc/fstab to reflect changes..."
+echo "$pacmandb $dbroot ext2 loop,defaults 0 0" >> /etc/fstab
+
+rm -f /tmp/pacman.lck /tmp/pacsums.old /tmp/pacsums.new
+
+echo
+echo "Finished. Your pacman database has been caged!. May the speedy pacman be with you."
+echo
+
+exit 0
diff --git a/pcr/pactools/pt-pacman-info b/pcr/pactools/pt-pacman-info
new file mode 100755
index 000000000..c2c82f219
--- /dev/null
+++ b/pcr/pactools/pt-pacman-info
@@ -0,0 +1,77 @@
+#!/bin/sh
+# pacman-info
+# /usr/bin/pacman-info
+# GPL v2
+# neonskull [at] gmail.com
+
+VERSION="0.1"
+AUTHOR="Pvel Varela Rodrguez [aka NeOnsKuLL]"
+
+usage()
+{
+echo "pacman-info v$VERSION"
+echo "usage: `basename $0` [OPTION]
+
+OPTIONS:
+ -cr|--configured-repos List the names of configured repos in your
+ pacman.conf
+
+ -a|--all Calculates the total number of available
+ packages in your repos
+
+ -br|--by-repo Calculates the total number of available
+ packages in each repo
+
+ -i|--installed Calculates the number of installed packages
+
+ -f|--full Generates a full Report
+
+ -h|--help Show this message
+
+ -v|--version Show version
+"
+}
+
+[ "$#" -lt 1 ] && PARAM="-h";
+[ "$#" -gt 1 ] && PARAM="*";
+[ "$#" -eq 1 ] && PARAM="$1";
+
+case $PARAM in
+ "-a"|"--all")
+ echo -e "Repositories information (total of packages in repos): `pacman -Sl|wc -l`"
+ ;;
+ "-cr"|"--configured-repos")
+ echo "Repositories information (name of configured repos):"
+ pacman -Sl|awk '{print $1}'|cut -d"/" -f 2|uniq -c|awk '{print "* " $2}'
+ ;;
+ "-br"|"--by-repo")
+ echo "Repositories information (number of packages by repo):"
+ pacman -Sl|awk '{print $1}'|cut -d"/" -f 2|uniq -c|awk '{print ":: "$2 "\t-> " $1 "\tpkgs"}'
+ ;;
+ "-i"|"--installed")
+ echo -e "System information (total of installed packages): `pacman -Q|wc -l`"
+ ;;
+ "-f"|"--full")
+ echo -e "Full Report about Repositories and Packages for Archlinux"
+ echo -e "Node name: `uname -n`\n"
+ $0 -cr
+ echo
+ $0 -a
+ echo
+ $0 -br
+ echo
+ $0 -i
+ echo
+ echo -e "Generated using `$0 -v` by $AUTHOR"
+ ;;
+ "-h"|"--help")
+ usage
+ ;;
+ "-v"|"--version")
+ echo "`basename $0` v$VERSION"
+ ;;
+ *)
+ echo "Error! Unknown parameter."
+ usage
+ ;;
+esac
diff --git a/pcr/pactools/pt-pacman-uncage b/pcr/pactools/pt-pacman-uncage
new file mode 100755
index 000000000..12b7e41d3
--- /dev/null
+++ b/pcr/pactools/pt-pacman-uncage
@@ -0,0 +1,108 @@
+
+#!/bin/bash
+#
+# pacman-uncage
+#
+# Copyright (c) 2002-2006 by Andrew Rose <rose.andrew@gmail.com>
+# I used Judds pacman-optimise as a framework.
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+
+myver='2.9.8'
+dbroot="/var/lib/pacman"
+tmproot="/var/lib/pacman.new"
+pacmandb="/var/lib/pacman.db"
+
+usage() {
+ echo "pacman-uncage $myver"
+ echo "usage: $0 [pacman_db_root]"
+ echo
+ echo "pacman-uncage returns your pacman db to the generic style."
+ echo
+}
+
+die() {
+ echo "pacman-uncage: $*" >&2
+ exit 1
+}
+
+die_r() {
+ rm -f /tmp/pacman.lck
+ die $*
+}
+
+if [ "$1" != "" ]; then
+ if [ "$1" = "-h" -o "$1" = "--help" ]; then
+ usage
+ exit 0
+ fi
+ dbroot=$1
+fi
+
+if [ "`id -u`" != 0 ]; then
+ die "You must be root to uncage the database"
+fi
+
+# make sure pacman isn't running
+if [ -f /tmp/pacman.lck ]; then
+ die "Pacman lockfile was found. Cannot run while pacman is running."
+fi
+
+if [ ! -d $dbroot ]; then
+ die "$dbroot does not exist or is not a directory"
+fi
+
+# don't let pacman run while we do this
+touch /tmp/pacman.lck
+
+# step 1: sum the old db
+echo "==> md5sum'ing the old database..."
+find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.old
+
+echo "==> copying pacman.db contents back, note: the time needed to get a brew is now."
+mkdir $tmproot
+cp -a $dbroot/. $tmproot
+
+echo "==> unmounting old dbroot and moving new one in"
+umount $dbroot
+rmdir $dbroot
+mv $tmproot $dbroot
+
+echo "==> md5sum'ing the new database..."
+find $dbroot -type f | sort | xargs md5sum >/tmp/pacsums.new
+
+echo "==> checking integrity..."
+diff /tmp/pacsums.old /tmp/pacsums.new >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ # failed, move the old one back into place
+ rm -rf $dbroot
+ mkdir $dbroot
+ mount -a
+ die_r "integrity check FAILED, reverting to old database"
+fi
+
+echo "==> Removing old pacman.db"
+rm $pacmandb
+
+rm -f /tmp/pacman.lck /tmp/pacsums.old /tmp/pacsums.new
+
+echo
+echo "Finished. Your pacman database has been uncaged!. Welcome home."
+echo "You will need to remove the old mount line from your /etc/fstab"
+echo
+
+exit 0
diff --git a/pcr/pactools/pt-pacsize b/pcr/pactools/pt-pacsize
new file mode 100755
index 000000000..e70a34597
--- /dev/null
+++ b/pcr/pactools/pt-pacsize
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+##AUTHOR: hads
+##See: http://bbs.archlinux.org/viewtopic.php?t=20971
+
+for i in /var/lib/pacman/local/*; do
+ PKG=`echo $i | cut -d '/' -f 6`
+ SIZE=`grep -A 1 SIZE $i/desc | tail -1`
+ if [ -x /usr/bin/bc ]; then
+ if [ $SIZE -gt 1024 ]; then
+ if [ $SIZE -gt 1048576 ]; then
+ SIZE=`echo "scale=1;$SIZE/1048576" | bc`M
+ else
+ SIZE=`echo "scale=1;$SIZE/1024" | bc`K
+ fi
+ else
+ SIZE={$SIZE}B
+ fi
+ fi
+ echo "$PKG | $SIZE"
+done
diff --git a/pcr/pactools/pt-repolist b/pcr/pactools/pt-repolist
new file mode 100755
index 000000000..5f15fe462
--- /dev/null
+++ b/pcr/pactools/pt-repolist
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+pacman -Qi >./all_files
+
+if [ -z "$1" ] ; then
+ echo -e "\033[0;37mNo repo given!"
+ echo " usage: scriptname reponame"
+fi
+
+reponame=$1
+list=$1_list
+pacman -Sl $reponame >./$list
+sed -i "s|\$reponame |g|" ./$list
+repo=`cat ./$list | cut --fields 2 --delim " "`
+
+for pkg in $repo ; do
+ if [[ $(cat ./all_files | grep -w "$pkg") ]] ; then
+ echo -e "\033[0;34m$pkg\033[0;37m is installed"
+ echo "$pkg" >>./installed_files
+ elif [ "$2" == "all" ] ; then
+ echo -e "\033[0;31m$pkg\033[0;37m is NOT installed"
+ fi
+done
+
+echo
+echo -n "Would you like to save the names of these pkgs to a file? (Y/n) "
+read choice
+if [ "$choice" == "Y" -o "$choice" == "y" ] ; then
+ echo "Currently in `pwd`"
+ echo -n " Save as: "
+ read filename
+ if [ -z $filename ] ; then
+ echo "No name given saved as ./installed_files_$reponame"
+ cp -u ./installed_files ./installed_files_$reponame
+ else
+ cp -u ./installed_files $filename
+ fi
+ rm ./installed_files
+else
+ rm ./installed_files
+fi
+rm ./$list ./all_files
diff --git a/pcr/perl-file-find-rule/PKGBUILD b/pcr/perl-file-find-rule/PKGBUILD
new file mode 100644
index 000000000..7953217a3
--- /dev/null
+++ b/pcr/perl-file-find-rule/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Blaž Tomažič <blaz.tomazic@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=perl-file-find-rule
+_realname=File-Find-Rule
+pkgver=0.33
+pkgrel=1
+pkgdesc="Perl/CPAN Module File::Find::Rule."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://search.cpan.org/dist/File-Find-Rule/"
+depends=('perl-text-glob' 'perl-number-compare' 'perl')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/R/RC/RCLAMP/${_realname}-${pkgver}.tar.gz)
+
+build() {
+ cd $startdir/src/${_realname}-$pkgver
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=${startdir}/pkg || return 1
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+}
+
diff --git a/pcr/perl-iptables-chainmgr/PKGBUILD b/pcr/perl-iptables-chainmgr/PKGBUILD
new file mode 100644
index 000000000..e45a1faf3
--- /dev/null
+++ b/pcr/perl-iptables-chainmgr/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Weirch Sodora <sodora@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=perl-iptables-chainmgr
+pkgver=1.2
+pkgrel=1
+pkgdesc="IPTables::ChainMgr - Perl extension for manipulating iptables and ip6tables policies"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~mrash/IPTables-ChainMgr/"
+license=('GPL' 'PerlArtistic')
+depends=('perl' 'iptables' 'perl-iptables-parse>=0.9' 'perl-netaddr-ip>=4.0')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/M/MR/MRASH/IPTables-ChainMgr-$pkgver.tar.gz)
+
+build() {
+ cd $startdir/src/IPTables-ChainMgr-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$startdir/pkg || return 1
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/pcr/perl-latex-encode/PKGBUILD b/pcr/perl-latex-encode/PKGBUILD
new file mode 100644
index 000000000..ef7d98b37
--- /dev/null
+++ b/pcr/perl-latex-encode/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Moritz Bunkus <moritz@bunkus.org>
+
+pkgname=perl-latex-encode
+pkgver=0.08
+pkgrel=1
+pkgdesc="Encode characters for LaTeX formatting"
+arch=(any)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/Rose-Object/"
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/A/AN/ANDREWF/LaTeX-Encode-${pkgver}.tar.gz)
+md5sums=('0877ff573bbacdfcd6ceb130c4282ab6')
+sha1sums=('9d11a38a4eb07c86b6cc026a2163b7299bc64631')
+
+build() {
+ cd ${srcdir}/LaTeX-Encode-${pkgver}
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd ${srcdir}/LaTeX-Encode-${pkgver}
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} '(' -name perllocal.pod -o -name .packlist ')' -delete
+}
diff --git a/pcr/perl-number-compare/PKGBUILD b/pcr/perl-number-compare/PKGBUILD
new file mode 100644
index 000000000..64566aa10
--- /dev/null
+++ b/pcr/perl-number-compare/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Blaž Tomažič <blaz.tomazic@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre <aurelien@cwb.io>
+
+pkgname=perl-number-compare
+_realname=Number-Compare
+pkgver=0.03
+pkgrel=1
+pkgdesc="Perl/CPAN Module Number::Compare."
+arch=('i686' 'x86_64')
+license=('unknown')
+url="http://search.cpan.org/dist/Number-Compare/"
+depends=('perl')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/R/RC/RCLAMP/${_realname}-${pkgver}.tar.gz)
+
+build() {
+ cd $startdir/src/${_realname}-$pkgver
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=${startdir}/pkg || return 1
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+}
+
diff --git a/pcr/perl-text-glob/PKGBUILD b/pcr/perl-text-glob/PKGBUILD
new file mode 100644
index 000000000..194ab831c
--- /dev/null
+++ b/pcr/perl-text-glob/PKGBUILD
@@ -0,0 +1,51 @@
+# CPAN Name : Text-Glob
+# Contributor: Alan Young <harleypig@gmail.com>
+# Generator : CPANPLUS::Dist::Arch 1.21
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname='perl-text-glob'
+pkgver='0.09'
+pkgrel='2'
+pkgdesc="match globbing patterns against text"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+makedepends=()
+url='http://search.cpan.org/dist/Text-Glob'
+source=('http://search.cpan.org/CPAN/authors/id/R/RC/RCLAMP/Text-Glob-0.09.tar.gz')
+md5sums=('1daa10e087f891c49b720a5c551a024b')
+sha512sums=('9b729e4ece88ad79e1b637c7f35e5e1ecae3fd7f62c408ed4f3fcac2e8e8afff32d7d805e1b0269800aada5ae609d03335d42ac54def2797d301e91fa488ae47')
+_distdir="${srcdir}/Text-Glob-0.09"
+
+build() {
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ cd "$_distdir"
+ /usr/bin/perl Build.PL
+ /usr/bin/perl Build
+ )
+}
+
+check() {
+ cd "$_distdir"
+ ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+ /usr/bin/perl Build test
+ )
+}
+
+package() {
+ cd "$_distdir"
+ /usr/bin/perl Build install
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/perl-unix-syslog/PKGBUILD b/pcr/perl-unix-syslog/PKGBUILD
new file mode 100644
index 000000000..5f4acd962
--- /dev/null
+++ b/pcr/perl-unix-syslog/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Justin Davis <jrcd83@gmail.com>
+# Generator : CPANPLUS::Dist::Arch 1.04
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname='perl-unix-syslog'
+pkgver='1.1'
+pkgrel='1'
+pkgdesc="Interface to syslog functions in a C-library"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('glibc>=2.12.1' 'perl')
+url='http://search.cpan.org/dist/Unix-Syslog'
+source=('http://search.cpan.org/CPAN/authors/id/M/MH/MHARNISCH/Unix-Syslog-1.1.tar.gz')
+
+build() {
+ PERL=/usr/bin/perl
+ DIST_DIR="${srcdir}/Unix-Syslog-1.1"
+ export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
+ PERL_AUTOINSTALL=--skipdeps \
+ PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
+ PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+ MODULEBUILDRC=/dev/null
+
+ { cd "$DIST_DIR" &&
+ $PERL Makefile.PL &&
+ make &&
+ make test &&
+ make install;
+ } || return 1;
+
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
diff --git a/pcr/psad/PKGBUILD b/pcr/psad/PKGBUILD
new file mode 100644
index 000000000..145625e89
--- /dev/null
+++ b/pcr/psad/PKGBUILD
@@ -0,0 +1,66 @@
+# Maintainer: Artur Wojcik <xartii at gmail dot com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=psad
+pkgver=2.2
+pkgrel=2
+pkgdesc="A collection of three lightweight system daemons (two main daemons and one helper daemon) that run on Linux machines and analyze iptables log messages to detect port scans and other suspicious traffic"
+arch=('i686 x86_64')
+url="http://cipherdyne.org/psad/"
+license=('GPL')
+depends=('perl-bit-vector' 'perl-date-calc' 'perl-iptables-chainmgr' 'perl-iptables-parse' 'perl-net-ipv4addr' 'perl-storable' 'perl-unix-syslog' 'net-tools')
+source=("http://cipherdyne.org/psad/download/$pkgname-$pkgver.tar.gz" "responses" "psad-sysvinit.archlinux" "psad-systemdinit.archlinux" "psad.patch1")
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cp $srcdir/psad-sysvinit.archlinux init-scripts/psad-init.archlinux
+ if [ ! -e responses ]; then
+ ln $srcdir/responses responses -s;
+ fi
+ patch -p1 -i $srcdir/psad.patch1
+
+ #Create the dirs it will need to make the program
+ mkdir -p $pkgdir/etc/psad \
+ $pkgdir/etc/rc.d \
+ $pkgdir/usr/bin \
+ $pkgdir/usr/sbin \
+ $pkgdir/usr/share/man/man8 \
+ $pkgdir/var/lib/psad \
+ $pkgdir/var/log/psad \
+ $pkgdir/var/run/psad \
+ $pkgdir/usr/lib/psad \
+ $pkgdir/usr/lib/systemd/system
+ #Set the config dirs
+ sed -e "s|'/usr/sbin'|'$pkgdir/usr/sbin'|" \
+ -e "s|'/usr/bin'|'$pkgdir/usr/bin'|" \
+ -e "s|my \$mpath = \"/usr/share/man/man\$section\";|my \$mpath = \"$pkgdir/usr/share/man/man\$section\";|" \
+ ./install.pl -i
+ sed -e "s|/var/log/psad|$pkgdir&|" \
+ -e "s|/var/run/psad|$pkgdir&|" \
+ -e "s|/var/lib/psad|$pkgdir&|" \
+ -e "s|/usr/lib/psad|$pkgdir&|" \
+ -e "s|/etc/psad|$pkgdir&|" \
+ -e "s|/usr/bin/whois_psad|$pkgdir&|" \
+ -e "s|/usr/sbin/fwcheck_psad|$pkgdir&|" \
+ -e "s|/usr/sbin/psadwatchd|$pkgdir&|" \
+ -e "s|/usr/sbin/kmsgsd|$pkgdir&|" \
+ -e "s|/usr/sbin/psad|$pkgdir&|" \
+ ./psad.conf -i
+
+ #hope that things work
+ ./install.pl --init-dir "$pkgdir/etc/rc.d/" < responses
+
+ #add the systemd service file
+ cp $srcdir/psad-systemdinit.archlinux $pkgdir/usr/lib/systemd/system/psad.service
+
+ # Fix the config
+ sed -e "s|$pkgdir||" $pkgdir/etc/psad/psad.conf -i
+ sed -e "s|$pkgdir||" $pkgdir/var/log/psad/install.log -i
+
+ #Set correct permissions
+ chmod 0700 $pkgdir/var/lib/psad
+
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/psad/psad-systemdinit.archlinux b/pcr/psad/psad-systemdinit.archlinux
new file mode 100644
index 000000000..991aa7423
--- /dev/null
+++ b/pcr/psad/psad-systemdinit.archlinux
@@ -0,0 +1,12 @@
+[Unit]
+Description=Port scan attack detector
+After=iptables.service
+
+[Service]
+ExecStart=/usr/sbin/psad
+ExecStop=/usr/sbin/psad --Kill
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/psad/psad-sysvinit.archlinux b/pcr/psad/psad-sysvinit.archlinux
new file mode 100644
index 000000000..6b4e76042
--- /dev/null
+++ b/pcr/psad/psad-sysvinit.archlinux
@@ -0,0 +1,52 @@
+#!/bin/bash
+#
+# Startup script for psad
+#
+# chkconfig: 345 99 05
+# description: The Port Scan Attack Detector (psad)
+# processname: psad
+# pidfile: /var/run/psad.pid
+# config: /etc/psad/psad.conf
+#
+# $Id: psad-init.archlinux
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/sshd
+
+PID=`cat /var/run/psad.pid`
+# See how we were called.
+case "$1" in
+start)
+ stat_busy "Starting psad"
+ [ -z "$PID" ] && /usr/sbin/psad
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ #let psad take care of the pid; we don't need to
+ add_daemon psad
+ stat_done
+ fi
+ ;;
+stop)
+ stat_busy "Stopping psad"
+ /usr/sbin/psad --Kill
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ #let psad take care of the pid; we don't need to
+ rm_daemon psad
+ stat_done
+ fi
+ ;;
+status)
+ /usr/sbin/psad --Status
+ ;;
+restart)
+ $0 stop
+ $0 start
+ ;;
+*)
+ echo "Usage: psad {start|stop|status|restart}"
+ exit 1
+esac
diff --git a/pcr/psad/psad.patch1 b/pcr/psad/psad.patch1
new file mode 100644
index 000000000..98ddd9a60
--- /dev/null
+++ b/pcr/psad/psad.patch1
@@ -0,0 +1,37 @@
+--- psad-2.2/install.pl 2012-04-21 04:43:46.000000000 +0200
++++ psad-2.2/install.pl 2012-10-13 16:05:03.302818330 +0200
+@@ -752,6 +752,8 @@
+ $init_file = 'init-scripts/psad-init.fedora';
+ } elsif ($distro eq 'gentoo') {
+ $init_file = 'init-scripts/psad-init.gentoo';
++ } elsif ($distro eq 'archlinux') {
++ $init_file = 'init-scripts/psad-init.archlinux';
+ } else {
+ $init_file = 'init-scripts/psad-init.generic';
+ }
+@@ -773,13 +775,14 @@
+ if ($preserve_rv) {
+ &logr("\n[+] psad has been installed (with your original config merged).\n");
+ } else {
+- &logr("\n[+] psad has been installed.\n");
++ &logr("\n[+] psad has been compiled.\n");
++ &logr("\n[+] use pacman -U to install.\n");
+ }
+ if ($installed_init_script) {
+ if ($init_dir) {
+- &logr("\n[+] To start psad, run \"${init_dir}/psad start\"\n");
++ #&logr("\n[+] To start psad, run \"${init_dir}/psad start\"\n");
+ } else {
+- &logr("\n[+] To start psad, run ${USRSBIN_DIR}/psad\"\n");
++ #&logr("\n[+] To start psad, run ${USRSBIN_DIR}/psad\"\n");
+ }
+ }
+
+@@ -1748,6 +1751,7 @@
+
+ sub get_distro() {
+ return 'gentoo' if -e '/etc/gentoo-release';
++ return 'archlinux' if -e '/etc/archlinux-release';
+ if (-e '/etc/issue') {
+ ### Red Hat Linux release 6.2 (Zoot)
+ open ISSUE, '< /etc/issue' or
diff --git a/pcr/psad/responses b/pcr/psad/responses
new file mode 100644
index 000000000..715dfaf1a
--- /dev/null
+++ b/pcr/psad/responses
@@ -0,0 +1,7 @@
+n
+n
+y
+n
+n
+n
+
diff --git a/pcr/pulledpork/PKGBUILD b/pcr/pulledpork/PKGBUILD
new file mode 100644
index 000000000..db7aa9d0d
--- /dev/null
+++ b/pcr/pulledpork/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Isaac C. Aronson <i@pingas.org>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=pulledpork
+pkgver=0.6.1
+pkgrel=3
+pkgdesc="Tool to automatically update rules for snort"
+arch=('any')
+url="http://code.google.com/p/pulledpork"
+license=('GPL')
+depends=('perl' 'perl-lwp-protocol-https' 'perl-crypt-ssleay' 'perl-archive-tar' 'perl-switch')
+optdepends=('snort')
+source=(http://pulledpork.googlecode.com/files/pulledpork-0.6.1.tar.gz)
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -Dm644 etc/pulledpork.conf $pkgdir/etc/pulledpork.conf
+ install -Dm755 pulledpork.pl $pkgdir/usr/sbin/pulledpork.pl
+}
diff --git a/pcr/puppet/PKGBUILD b/pcr/puppet/PKGBUILD
new file mode 100644
index 000000000..02e8f32c8
--- /dev/null
+++ b/pcr/puppet/PKGBUILD
@@ -0,0 +1,86 @@
+# Puppet: Installer: Arch
+# Contributor: Greg Sutcliffe <puppet-aur (at) emeraldreverie (dot) org>
+# Contributor: Hyacinthe Cartiaux <hyacinthe (dot) cartiaux (at) free (dot) fr>
+# Contributor: Thomas S Hatch <thatch45 (at) Gmail (dot) com>
+# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
+# Contributor: Miah Johnson <miah (at) chia-pet dot org>
+# Contributor: Dave Simons <miouhpi (at) Gmail (dot) com>
+# Contributor: Niels Abspoel <aboe76 (at) Gmail (dot) com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+# RC style, reserved for later use
+#pkgname=puppet
+#_rc=8
+#_pkgver=3.0.0
+#pkgver=${_pkgver}_rc${_rc}
+
+pkgname=puppet
+pkgver=3.0.1
+pkgrel=5
+pkgdesc="A system for automating system administration tasks."
+arch=("any")
+url="http://puppetlabs.com/projects/puppet/"
+license=("APACHE")
+depends=("ruby" "ruby-shadow" "facter" "ruby-hiera" "ruby-hiera-json")
+makedepends=('which')
+backup=("etc/puppet/puppet.conf")
+options=(emptydirs)
+provides=("puppet" "vim-puppet" "ruby-hiera-puppet")
+conflicts=("puppet3" "ruby-puppet" "vim-puppet" "ruby-hiera-puppet")
+install="puppet.install"
+source=(http://puppetlabs.com/downloads/puppet/puppet-${pkgver//_/-}.tar.gz
+ fileserver.conf
+ puppet
+ puppet.conf
+ puppetmaster)
+md5sums=('2117e3a1964ac54fcd36d926eed3db94'
+ 'ffacd9bfb9c7656a3a345dbc5eb0e67a'
+ '59dbf39e251bc4877e7604a5876c642d'
+ 'a7d61d20e46b411eb50ad5279987584a'
+ '4c507c580cb28d7a5adc9ea6b3626657')
+
+package() {
+ cd $srcdir/puppet-${pkgver//_/-}
+
+ # Install
+ ruby ./install.rb \
+ --destdir=$pkgdir \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --mandir=/usr/share/man
+
+
+ # Set up vim and emacs
+ install -Dp -m0644 ext/vim/ftdetect/puppet.vim $pkgdir/usr/share/vim/vimfiles/ftdetect/puppet.vim
+ install -Dp -m0644 ext/vim/syntax/puppet.vim $pkgdir/usr/share/vim/vimfiles/syntax/puppet.vim
+ install -Dp -m0644 ext/emacs/puppet-mode.el $pkgdir/usr/share/emacs/site-lisp/puppet-mode.el
+ install -Dp -m0644 ext/emacs/puppet-mode-init.el $pkgdir/usr/share/emacs/site-lisp/site-start.d/puppet-mode-init.el
+
+ # Configuration and rc scripts
+ install -d $pkgdir/etc/{puppet,rc.d}
+ install -m 644 $srcdir/puppet.conf $pkgdir/etc/puppet/puppet.conf
+ install -m 644 $srcdir/fileserver.conf $pkgdir/etc/puppet/fileserver.conf
+
+ # Setup tmpfiles.d config
+ install -d $pkgdir/etc/tmpfiles.d
+ echo "D /var/run/puppet 0755 puppet puppet -" > $pkgdir/etc/tmpfiles.d/puppet.conf
+
+ # Configuration for hiera / symlink is there to use hiera within puppet.
+ ln -snf /etc/hiera.yaml ${pkgdir}/etc/puppet/hiera.yaml
+
+ # Systemd files
+ install -Dm 644 $srcdir/puppet-${pkgver//_/-}/ext/systemd/puppetagent.service $pkgdir/usr/lib/systemd/system/puppetagent.service
+ install -Dm 644 $srcdir/puppet-${pkgver//_/-}/ext/systemd/puppetmaster.service $pkgdir/usr/lib/systemd/system/puppetmaster.service
+
+ # Create puppet homedir and hieradir
+ install -d $pkgdir/var/lib/puppet
+ install -d $pkgdir/var/lib/hiera
+
+ install -D $srcdir/puppet $pkgdir/etc/rc.d/puppet
+ install -D $srcdir/puppetmaster $pkgdir/etc/rc.d/puppetmaster
+
+ # Copy the LICENSE file in the usual directory
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m 644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+}
diff --git a/pcr/puppet/fileserver.conf b/pcr/puppet/fileserver.conf
new file mode 100644
index 000000000..67e387ca0
--- /dev/null
+++ b/pcr/puppet/fileserver.conf
@@ -0,0 +1,12 @@
+# This file consists of arbitrarily named sections/modules
+# defining where files are served from and to whom
+
+# Define a section 'files'
+# Adapt the allow/deny settings to your needs. Order
+# for allow/deny does not matter, allow always takes precedence
+# over deny
+# [files]
+# path /var/lib/puppet/files
+# allow *.example.com
+# deny *.evil.example.com
+# allow 192.168.0.0/24
diff --git a/pcr/puppet/puppet b/pcr/puppet/puppet
new file mode 100755
index 000000000..4126be850
--- /dev/null
+++ b/pcr/puppet/puppet
@@ -0,0 +1,45 @@
+#!/bin/bash
+DAEMON=$(type -p puppetd)
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/puppet ] && . /etc/conf.d/puppet
+
+PID=$(pidof -xo %PPID $DAEMON)
+case "$1" in
+ start)
+ stat_busy "Starting Puppet Daemon"
+ if [ -z "$PID" ]; then
+ [ -f /var/run/puppet.pid ] && rm -f /var/run/puppet.pid
+ $DAEMON $PUPPETD_ARGS
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=$(pidof -xo %PPID $DAEMON)
+ echo $PID > /var/run/puppet.pid
+ add_daemon puppet
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Puppet Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon puppet
+ rm -f /var/run/puppet.pid
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ if [ ! -z $PID ]; then
+ while ps -p $PID > /dev/null; do sleep 1; done
+ fi
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/pcr/puppet/puppet.conf b/pcr/puppet/puppet.conf
new file mode 100644
index 000000000..aa5868dee
--- /dev/null
+++ b/pcr/puppet/puppet.conf
@@ -0,0 +1,32 @@
+[main]
+ # The Puppet var directory
+ # The default value is '/var/lib/puppet'
+ vardir = /var/lib/puppet
+
+ # The Puppet log directory.
+ # The default value is '$vardir/log'.
+ logdir = /var/log/puppet
+
+ # Where Puppet PID files are kept.
+ # The default value is '$vardir/run'.
+ rundir = /var/run/puppet
+
+ # Where SSL certificates are kept.
+ # The default value is '$confdir/ssl'.
+ pluginsync=true
+
+
+[agent]
+ # The file in which puppetd stores a list of the classes
+ # associated with the retrieved configuratiion. Can be loaded in
+ # the separate ``puppet`` executable using the ``--loadclasses``
+ # option.
+ # The default value is '$confdir/classes.txt'.
+ classfile = $vardir/classes.txt
+
+ # Where puppetd caches the local configuration. An
+ # extension indicating the cache format is added automatically.
+ # The default value is '$confdir/localconfig'.
+ localconfig = $vardir/localconfig
+
+#[master]
diff --git a/pcr/puppet/puppet.install b/pcr/puppet/puppet.install
new file mode 100644
index 000000000..928df566b
--- /dev/null
+++ b/pcr/puppet/puppet.install
@@ -0,0 +1,46 @@
+# Puppet: Installer: Arch
+# Maintainer: Thomas S Hatch <thatch45 (at) Gmail (dot) com>
+# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
+# Contributor: Miah Johnson <Miah (at) chia-pet dot org>
+
+pre_install() {
+ getent group puppet &>/dev/null || groupadd -r puppet -g 52 &>/dev/null
+ getent passwd puppet &>/dev/null || useradd -r -u 52 -g puppet -d /var/lib/puppet -s /sbin/nologin -c "Puppet" puppet &>/dev/null || :
+}
+
+pre_upgrade() {
+ pre_install
+ usermod -d /var/lib/puppet puppet &>/dev/null || :
+}
+
+post_install() {
+ :
+}
+
+pre_remove() {
+if [ -f /var/run/puppetmasterd.pid ]; then
+ PIDOF=$(pidof -xo %PPID puppetmasterd)
+ PIDFILE=$(cat /var/run/puppetmasterd.pid)
+ if [ $PIDOF -eq $PIDFILE ]; then
+ /etc/rc.d/puppetmaster stop
+ fi
+fi
+
+if [ -f /var/run/puppetd.pid ]; then
+ PIDOF=$(pidof -xo %PPID puppetd)
+ PIDFILE=$(cat /var/run/puppetd.pid)
+ if [ $PIDOF -eq $PIDFILE ]; then
+ /etc/rc.d/puppet stop
+ fi
+fi
+}
+
+post_remove() {
+ # Remove user and group
+ userdel puppet
+}
+
+op=$1
+shift
+
+$op "$@"
diff --git a/pcr/puppet/puppetmaster b/pcr/puppet/puppetmaster
new file mode 100755
index 000000000..8b3971053
--- /dev/null
+++ b/pcr/puppet/puppetmaster
@@ -0,0 +1,45 @@
+#!/bin/bash
+DAEMON=$(type -p puppetmasterd)
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/puppetmaster ] && . /etc/conf.d/puppetmaster
+
+PID=$(pidof -xo %PPID $DAEMON)
+case "$1" in
+ start)
+ stat_busy "Starting Puppet Master Daemon"
+ if [ -z "$PID" ]; then
+ [ -f /var/run/puppetmaster.pid ] && rm -f /var/run/puppetmaster.pid
+ $DAEMON $PUPPETMASTER_ARGS
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=$(pidof -xo %PPID $DAEMON)
+ echo $PID > /var/run/puppetmaster.pid
+ add_daemon puppetmaster
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Puppet Master Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon puppetmaster
+ rm -f /var/run/puppetmaster.pid
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ if [ ! -z $PID ]; then
+ while ps -p $PID > /dev/null; do sleep 1; done
+ fi
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/pcr/pysheng/PKGBUILD b/pcr/pysheng/PKGBUILD
new file mode 100644
index 000000000..4cbdf5d38
--- /dev/null
+++ b/pcr/pysheng/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: mutlu_inek@yahoo.de
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=pysheng
+pkgver=0.1
+pkgrel=1
+pkgdesc="CLI and GUI program to download pages from Google Books as PNG images"
+arch=(i686 x86_64)
+url="https://code.google.com/p/pysheng/"
+license=('GPL')
+depends=('python2')
+makedepends=()
+optdepends=('python2-reportlab: GUI')
+provides=()
+conflicts=()
+replaces=()
+options=()
+source=(http://pysheng.googlecode.com/files/$pkgname-$pkgver.tgz)
+
+package() {
+ cd $pkgname-$pkgver
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
+
diff --git a/pcr/python-anyjson/PKGBUILD b/pcr/python-anyjson/PKGBUILD
new file mode 100644
index 000000000..8ab20d1c9
--- /dev/null
+++ b/pcr/python-anyjson/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Benjamin A. Shelton <zancarius@gmail.com>
+# Contributor: p2k <Patrick.Schneider@uni-ulm.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-anyjson
+pkgver=0.3.3
+pkgrel=1
+pkgdesc="Wraps the best available JSON implementation available in a common interface."
+arch=('any')
+url="http://pypi.python.org/pypi/anyjson"
+license=('BSD')
+depends=('python2')
+makedepends=('python2-distribute')
+source=("http://pypi.python.org/packages/source/a/anyjson/anyjson-${pkgver}.tar.gz")
+
+build () {
+
+ cd "${srcdir}/anyjson-${pkgver}"
+ python2 setup.py install --root="${pkgdir}/" --optimize=1
+
+}
diff --git a/pcr/python-paste-deploy/PKGBUILD b/pcr/python-paste-deploy/PKGBUILD
new file mode 100644
index 000000000..57b7ca0d3
--- /dev/null
+++ b/pcr/python-paste-deploy/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: David Campbell <davekong@archlinux.us>
+# Contributor: Cilyan Olowen <gaknar@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-paste-deploy
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="Load, configure, and compose WSGI applications and servers"
+arch=('any')
+url="http://pythonpaste.org/deploy/"
+license=('custom')
+depends=('python2')
+makedepends=('setuptools')
+source=(http://pypi.python.org/packages/source/P/PasteDeploy/PasteDeploy-${pkgver}.tar.gz)
+
+
+build() {
+ cd $srcdir/PasteDeploy-${pkgver}
+ python2 setup.py install --root=$pkgdir --optimize=1
+ install -Dm644 docs/license.txt $pkgdir/usr/share/licenses/$pkgname/license.txt
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find $pkgdir -name '*.py')
+}
diff --git a/pcr/python-paste/PKGBUILD b/pcr/python-paste/PKGBUILD
new file mode 100644
index 000000000..3ffc12ca3
--- /dev/null
+++ b/pcr/python-paste/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: David Campbell <davekong@archlinux.us>
+# Contributor: Cilyan Olowen <gaknar@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-paste
+pkgver=1.7.5.1
+pkgrel=1
+pkgdesc="Tools for using a Web Server Gateway Interface stack."
+arch=('any')
+url="http://pythonpaste.org/index.html"
+license=('custom')
+depends=('python2')
+makedepends=('setuptools')
+source=(http://pypi.python.org/packages/source/P/Paste/Paste-${pkgver}.tar.gz)
+optdepends=('python-flup: WSGI utilities'
+ 'python-openid: Support for OpenID')
+
+build() {
+ cd ${srcdir}/Paste-${pkgver}
+ python2 setup.py install --root=${pkgdir} --optimize=1
+ install -Dm644 docs/license.txt ${pkgdir}/usr/share/licenses/$pkgname/license.txt
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find $pkgdir -name '*.py')
+}
diff --git a/pcr/python-repoze.lru/PKGBUILD b/pcr/python-repoze.lru/PKGBUILD
new file mode 100644
index 000000000..844658c27
--- /dev/null
+++ b/pcr/python-repoze.lru/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: speps <speps at aur dot archlinux dot org>
+# Contributor: DasIch <dasdasich@googlemail.com>
+# Maintainer : Paraobla GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+_name=repoze.lru
+pkgname=python-$_name
+pkgver=0.6
+pkgrel=1
+pkgdesc="A tiny LRU cache implementation and decorator"
+arch=('any')
+license=('custom:BSD')
+url="http://pypi.python.org/pypi/$_name"
+depends=('python')
+makedepends=('python-distribute')
+provides=(python-repoze-lru)
+conflicts=(python-repoze-lru)
+replaces=(python-repoze-lru)
+source=("http://pypi.python.org/packages/source/r/$_name/$_name-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/$_name-$pkgver"
+ python setup.py build
+}
+
+package() {
+ cd "$srcdir/$_name-$pkgver"
+ python setup.py install --root="$pkgdir/"
+
+ # license
+ install -Dm644 LICENSE.txt \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/pcr/python-routes/PKGBUILD b/pcr/python-routes/PKGBUILD
new file mode 100644
index 000000000..511934ef2
--- /dev/null
+++ b/pcr/python-routes/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: David Moore <davidm@sjsoft.com>
+# Contributor: Nathan Jones <nathanj@insightbb.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-routes
+pkgver=1.13
+pkgrel=2
+pkgdesc="A routing package for Python that matches URL's to dicts and vice versa"
+arch=('any')
+url="http://pypi.python.org/pypi/Routes"
+license=('custom:BSD')
+depends=('python-repoze.lru')
+makedepends=('python-distribute')
+source=("http://pypi.python.org/packages/source/R/Routes/Routes-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/Routes-$pkgver"
+ python setup.py build
+}
+
+package() {
+ cd "$srcdir/Routes-$pkgver"
+
+ python setup.py install --root="$pkgdir/"
+ install -Dm644 LICENSE \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
diff --git a/pcr/python-wsgiref/PKGBUILD b/pcr/python-wsgiref/PKGBUILD
new file mode 100644
index 000000000..3f3b38bd2
--- /dev/null
+++ b/pcr/python-wsgiref/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Philipp Schmidt <philschmidt at gmx dot net>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-wsgiref
+pkgver=0.1.2
+pkgrel=2
+pkgdesc="WSGI (PEP 333) Reference Library"
+arch=('i686' 'x86_64')
+url="http://cheeseshop.python.org/pypi/wsgiref"
+license=('PSF or ZPL')
+depends=('python2')
+makedepends=('unzip' 'setuptools')
+source=("http://pypi.python.org/packages/source/w/wsgiref/wsgiref-$pkgver.zip")
+
+build() {
+ cd "$srcdir/wsgiref-$pkgver"
+
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/pcr/python-xattr/PKGBUILD b/pcr/python-xattr/PKGBUILD
new file mode 100644
index 000000000..d6977f435
--- /dev/null
+++ b/pcr/python-xattr/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python-xattr
+pkgver=20111028
+pkgrel=1
+pkgdesc="module for manipulating filesystem extended attributes"
+arch=('i686' 'x86_64')
+url="http://undefined.org/python/#xattr"
+license=('MIT')
+conflicts=('pyattr')
+provied=('pyattr')
+makedepends=('setuptools')
+depends=('python2' 'git')
+
+_gitroot=https://github.com/xattr/xattr.git
+_gitname=xattr
+
+build() {
+ cd $srcdir/
+
+ if [ -e ${_gitname} ] ; then
+ cd ${_gitname}
+ git pull
+ cd ..
+ else
+ git clone ${_gitroot} ${_gitname}
+ fi
+
+ cd $srcdir/xattr/
+ python2 setup.py install --prefix=/usr --root=$pkgdir
+}
diff --git a/pcr/python2-amqplib/PKGBUILD b/pcr/python2-amqplib/PKGBUILD
new file mode 100644
index 000000000..d67800a06
--- /dev/null
+++ b/pcr/python2-amqplib/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Tevin Zhang <mail2tevin {at} gmail {dot} com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-amqplib
+pkgver=1.0.2
+pkgrel=3
+pkgdesc="Python client for the Advanced Message Queuing Procotol (AMQP). Uses Python2."
+arch=('any')
+url="http://code.google.com/p/py-amqplib/"
+license=("LGPL")
+depends=('python2>=2.6' 'setuptools')
+source=(http://py-amqplib.googlecode.com/files/amqplib-$pkgver.tgz)
+
+build() {
+ cd $srcdir/amqplib-$pkgver
+
+ # replace /usr/bin/env python with python2
+ find . -name '*.py' -exec sed -i -e '1 s/python\s*$/python2/' {} \;
+
+ python2 ./setup.py install --root=$pkgdir --prefix=/usr || return 1
+}
+
diff --git a/pcr/python2-carrot/PKGBUILD b/pcr/python2-carrot/PKGBUILD
new file mode 100644
index 000000000..b620eca9e
--- /dev/null
+++ b/pcr/python2-carrot/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Lukas Linhart <bugs@almad.net>
+# Contributor: Marco Elver <marco.elver AT gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-carrot
+pkgver=0.10.5
+pkgrel=1
+pkgdesc="AMQP Messaging Framwork for Python"
+arch=('any')
+url='http://ask.github.com/carrot/'
+license=('BSD')
+depends=('python2' 'python2-amqplib')
+makedepends=('setuptools')
+source=("http://pypi.python.org/packages/source/c/carrot/carrot-$pkgver.tar.gz")
+options=(!emptydirs)
+
+build() {
+ cd ${srcdir}/carrot-$pkgver
+ python2 setup.py install --root=$pkgdir/ --optimize=1 || return 1
+}
+
diff --git a/pcr/python2-daemon/PKGBUILD b/pcr/python2-daemon/PKGBUILD
new file mode 100644
index 000000000..18358f9cb
--- /dev/null
+++ b/pcr/python2-daemon/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-daemon
+pkgver=1.6
+pkgrel=2
+pkgdesc="Library to implement a well-behaved Unix daemon process"
+license=("PSF-2+")
+url="http://pypi.python.org/pypi/python-daemon"
+depends=('python2-lockfile')
+makedepends=('python2-distribute')
+source=(http://pypi.python.org/packages/source/p/python-daemon/python-daemon-$pkgver.tar.gz)
+arch=('any')
+options=(!emptydirs)
+
+build() {
+ cd "$srcdir/python-daemon-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+}
+
diff --git a/pcr/python2-empy/PKGBUILD b/pcr/python2-empy/PKGBUILD
new file mode 100644
index 000000000..3c4cd7bee
--- /dev/null
+++ b/pcr/python2-empy/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Andrew Conkling <andrewski@fr.st>
+# Contributor: hauptmech <hauptmech@gmail.com>
+# Maintainer : Parabola GNU / LInux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=python2-empy
+realname=empy
+pkgver=3.3
+pkgrel=2
+pkgdesc="A powerful and robust templating system for Python."
+arch=(i686 x86_64)
+url="http://www.alcyone.com/software/empy"
+depends=('python2')
+license=('LGPL')
+source=("http://www.alcyone.com/software/empy/empy-$pkgver.tar.gz")
+
+build() {
+ cd $startdir/src/empy-$pkgver
+ python2 setup.py install --prefix=$startdir/pkg/usr
+}
+
diff --git a/pcr/python2-eventlet/PKGBUILD b/pcr/python2-eventlet/PKGBUILD
new file mode 100644
index 000000000..d9dc41d8d
--- /dev/null
+++ b/pcr/python2-eventlet/PKGBUILD
@@ -0,0 +1,22 @@
+# -*- shell-script -*-
+#Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+python=python2
+name=eventlet
+
+pkgname=$python-$name
+pkgver=0.9.16
+pkgrel=1
+pkgdesc="Highly concurrent networking library"
+arch=(any)
+url="http://eventlet.net"
+license=(MIT)
+depends=('python2-greenlet' 'python' 'python2-distribute')
+makedepends=("$python")
+source=("http://pypi.python.org/packages/source/e/$name/$name-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/$name-$pkgver"
+ $python setup.py install --prefix=/usr --root=$pkgdir
+}
+
diff --git a/pcr/python2-flask-lesscss/PKGBUILD b/pcr/python2-flask-lesscss/PKGBUILD
new file mode 100644
index 000000000..3f2aecb73
--- /dev/null
+++ b/pcr/python2-flask-lesscss/PKGBUILD
@@ -0,0 +1,17 @@
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname="python2-flask-lesscss"
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="A small Flask extension that adds LessCSS support to Flask."
+arch=("any")
+url="http://pypi.python.org/pypi/flask-lesscss"
+license=("MIT")
+depends=("python2" "lessc" "python2-flask")
+makedepends=("setuptools")
+source=("http://pypi.python.org/packages/source/f/flask-lesscss/flask-lesscss-${pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/flask-lesscss-${pkgver}"
+ python2 ./setup.py install --root="${pkgdir}" --prefix="/usr" || return 1
+}
diff --git a/pcr/python2-iso8601/PKGBUILD b/pcr/python2-iso8601/PKGBUILD
new file mode 100644
index 000000000..08ca49004
--- /dev/null
+++ b/pcr/python2-iso8601/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: WU Jun <quark at lihdd dot net>
+# Contributor: Vsevolod Balashov <vsevolod@balashov.name>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+name=iso8601
+pkgname=python2-$name
+pkgver=0.1.4
+pkgrel=3
+pkgdesc="Simple module to parse ISO 8601 dates"
+arch=(any)
+url="http://pypi.python.org/pypi/$name"
+license=(MIT)
+depends=(python2)
+makedepends=(python2-distribute)
+source=("http://pypi.python.org/packages/source/i/$name/$name-$pkgver.tar.gz")
+build() {
+ cd "$srcdir/$name-$pkgver"
+ python2 setup.py install --prefix=/usr --root=$pkgdir || return 1
+}
diff --git a/pcr/python2-kombu/PKGBUILD b/pcr/python2-kombu/PKGBUILD
new file mode 100644
index 000000000..ef99b0beb
--- /dev/null
+++ b/pcr/python2-kombu/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Felix Yan <felixonmars@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-kombu
+pkgver=2.4.10
+pkgrel=1
+pkgdesc="AMQP Messaging Framework for Python 2.x"
+arch=('any')
+url="http://pypi.python.org/pypi/kombu/"
+license=('BSD')
+depends=('python2' 'python-anyjson')
+optdepends=(
+ "python2-librabbitmq: High performance AMQP transport written in C"
+)
+makedepends=('setuptools')
+source=("http://pypi.python.org/packages/source/k/kombu/kombu-$pkgver.tar.gz")
+options=(!emptydirs)
+
+build() {
+ cd "$srcdir"/kombu-$pkgver
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir"/kombu-$pkgver
+ python2 setup.py install --root="$pkgdir/"
+ install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
diff --git a/pcr/python2-netaddr/PKGBUILD b/pcr/python2-netaddr/PKGBUILD
new file mode 100644
index 000000000..8d9f2a827
--- /dev/null
+++ b/pcr/python2-netaddr/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Sebastien LEDUC <sebastien@sleduc.fr>
+# Contributor: Gilles CHAUVIN <gcnweb at gmail dot com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-netaddr
+pkgver=0.7.10
+pkgrel=1
+pkgdesc="A pure Python network address representation and manipulation library"
+arch=('i686' 'x86_64')
+license=('BSD')
+url="http://github.com/drkjam/netaddr/"
+depends=('python2')
+source=("http://github.com/downloads/drkjam/netaddr/netaddr-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir/netaddr-$pkgver/"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
+
diff --git a/pcr/python2-passlib/PKGBUILD b/pcr/python2-passlib/PKGBUILD
new file mode 100644
index 000000000..753677827
--- /dev/null
+++ b/pcr/python2-passlib/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: onny <onny@project-insanity.org>
+# Contributor: onny <onny@project-insanity.org>
+# Maintainer : Parabola GNU /Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-passlib
+pkgver=1.6.1
+pkgrel=1
+pkgdesc="A password hashing library for Python."
+arch=('i686' 'x86_64')
+url=("https://code.google.com/p/passlib/")
+license=('custom')
+depends=('python2')
+source=("https://passlib.googlecode.com/files/passlib-${pkgver}.tar.gz")
+sha512sums=('93c047dc0a06f19a20e5da97db43c5c76e06d69baeac15cc932ef0306ae22dac5c1a3925889a140fd181ab4e00ac513ec829951e15babf5aad89bd2d08dc9907')
+
+build() {
+ cd "$srcdir/passlib-${pkgver}"
+ python2 setup.py build install --root="${pkgdir}" || return 1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python2-pkgtools/PKGBUILD b/pcr/python2-pkgtools/PKGBUILD
new file mode 100644
index 000000000..7060dc416
--- /dev/null
+++ b/pcr/python2-pkgtools/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Fabien Devaux <fdev31 at gmail dot com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-pkgtools
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="Python packages tools"
+arch=('any')
+url="http://pkgtools.readthedocs.org/en/latest/"
+license=('MIT')
+depends=('python2')
+makedepends=('python2-distribute')
+source=(http://pypi.python.org/packages/source/p/pkgtools/pkgtools-${pkgver}.tar.gz)
+
+build() {
+ cd "${srcdir}/pkgtools-${pkgver}"
+ python2 setup.py build || exit 1
+ python2 setup.py install --root="${pkgdir}" --optimize=1 || exit 1
+}
+
diff --git a/pcr/python2-rospkg/PKGBUILD b/pcr/python2-rospkg/PKGBUILD
new file mode 100644
index 000000000..cf6116ba0
--- /dev/null
+++ b/pcr/python2-rospkg/PKGBUILD
@@ -0,0 +1,23 @@
+# Contributor: Somebody <somebody[at]foo[dot]tld>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+_name=rospkg
+pkgname=python2-rospkg
+pkgver=1.0.15
+pkgrel=1
+pkgdesc="provides basic utilities for querying information about ROS packages, stacks, and distributions."
+url="http://ros.org/doc/api/rospkg/html/python_api.html"
+arch=('x86_64' 'i686')
+license=('BSD')
+depends=('python2')
+optdepends=()
+makedepends=('python2-distribute')
+conflicts=()
+replaces=()
+backup=()
+source=(http://pr.willowgarage.com/downloads/${_name}/${_name}-${pkgver}.tar.gz)
+
+build() {
+ cd ${srcdir}/${_name}-${pkgver}
+ find -type f -print0 | xargs -0 sed -i -e 's/#!\/usr\/bin\/env python/#!\/usr\/bin\/env python2/g'
+ python2 setup.py install --root="${pkgdir}" --optimize=1 || return 1
+}
diff --git a/pcr/python2-sendfile/PKGBUILD b/pcr/python2-sendfile/PKGBUILD
new file mode 100644
index 000000000..3de2d5a48
--- /dev/null
+++ b/pcr/python2-sendfile/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Josh Chase <jcjoshuachase@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-sendfile
+_pkgname=py-sendfile
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="pysendfile"
+url="http://code.google.com/p/pysendfile"
+license=('MIT')
+arch=('i686' 'x86_64')
+depends=('python2' 'setuptools')
+conflicts=()
+replaces=()
+backup=()
+source=("http://pypi.python.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz")
+
+build() {
+ cd $srcdir/$_pkgname-$pkgver
+ python2 setup.py build
+ python2 setup.py install --root=$pkgdir
+ }
diff --git a/pcr/python2-suds/PKGBUILD b/pcr/python2-suds/PKGBUILD
new file mode 100644
index 000000000..a45009a2b
--- /dev/null
+++ b/pcr/python2-suds/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Jonathan Liu <net147@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=python2-suds
+pkgver=0.4
+pkgrel=3
+pkgdesc="A lightweight SOAP python client."
+arch=('any')
+url="https://fedorahosted.org/suds/"
+license=('LGPL')
+depends=('python2')
+makedepends=('python2-distribute')
+source=("https://fedorahosted.org/releases/s/u/suds/python-suds-${pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/python-suds-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/python-suds-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" -O1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/python2-webob/Changelog b/pcr/python2-webob/Changelog
new file mode 100644
index 000000000..d67f3b16b
--- /dev/null
+++ b/pcr/python2-webob/Changelog
@@ -0,0 +1,26 @@
+2012-10-30 Aaron DeVore <aaron.devore@gmail.com> (1.2.3-1)
+- Version bump to 1.2.3
+- Change WebOb-${pkgver}.zip to WebOb-${pkgver}.tar.gz
+2012-06-07 Aaron DeVore <aaron.devore@gmail.com> (1.2.2-1)
+- Version bump to 1.2.2
+2012-06-07 Aaron DeVore <aaron.devore@gmail.com> (1.2-1)
+- Version bump to 1.2
+2012-10-07 Aaron DeVore <aaron.devore@gmail.com>
+- Version bump to 1.1.1
+2011-8-8 Aaron DeVore <aaron.devore@gmail.com> (1.1b2)
+- Version bump to 1.1b2
+- Add python-sphinx to makedepends
+2011-5-14 Aaron DeVore <aaron.devore@gmail.com> (1.0.7-2)
+- Revert from split build (AUR doesn't work with split builds)
+2011-5-14 Aaron DeVore <aaron.devore@gmail.com> (1.0.7-1)
+- Version bump to 1.0.7
+- Switch to split build
+- Split Sphinx html docs into python-webob-docs package
+- Don't bundle license file (upstream has restored it)
+2011-4-13 Aaron DeVore <aaron.devore@gmail.com> (1.0.6-1)
+- Version bump to 1.0.6
+- Bundle the license file (upstream removed it from the Pypi zip file)
+2011-3-24 Aaron DeVore <aaron.devore@gmail.com> (1.0.5-1)
+- Version bump to 1.0.5
+- Fix source URL (file extension changed on Pypi)
+- Fix some recently change idioms
diff --git a/pcr/python2-webob/PKGBUILD b/pcr/python2-webob/PKGBUILD
new file mode 100644
index 000000000..8dd0df386
--- /dev/null
+++ b/pcr/python2-webob/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Aaron DeVore <aaron.devore@gmail.com>
+# Contributor: Cilyan Olowen <gaknar@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname='python2-webob'
+pkgver='1.2.3'
+pkgrel='1'
+pkgdesc="WebOb provides objects for HTTP requests and responses."
+arch=('any')
+url="http://webob.org/"
+license=('MIT')
+depends=('python2')
+makedepends=('python2-distribute')
+optdepends=('python-webob-docs: documentation')
+changelog='Changelog'
+source=("http://pypi.python.org/packages/source/W/WebOb/WebOb-${pkgver}.tar.gz")
+
+build() {
+ cd "$srcdir/WebOb-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "$srcdir/WebOb-${pkgver}"
+ python2 setup.py install "--root=$pkgdir" --optimize=1
+ install -D -m644 "docs/license.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+}
+
+check() {
+ cd "$srcdir/WebOb-${pkgver}"
+ python2 setup.py test
+}
+
diff --git a/pcr/rosinstall/PKGBUILD b/pcr/rosinstall/PKGBUILD
new file mode 100644
index 000000000..3f91dbe6c
--- /dev/null
+++ b/pcr/rosinstall/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Georg Bremer <pkgbuild@dschoordsch.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgdesc='Tool to download/boostrap the ROS stack'
+url='http://www.ros.org/'
+
+pkgname='rosinstall'
+pkgver='0.6.20'
+pkgrel='1'
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('python2' 'cmake' 'wget' 'vcstools'
+ 'git' 'python2-distribute' 'python2-yaml')
+
+source=("http://pr.willowgarage.com/downloads/$pkgname/$pkgname-$pkgver.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/env python /env python2 /' src/rosinstall/setupfiles.py
+ python2 setup.py install --root=$pkgdir --optimize=1
+}
diff --git a/pcr/ruby-hiera-json/PKGBUILD b/pcr/ruby-hiera-json/PKGBUILD
new file mode 100644
index 000000000..4d80244c8
--- /dev/null
+++ b/pcr/ruby-hiera-json/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Jochen Schalanda <jochen+aur@schalanda.name>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+_gemname=hiera-json
+pkgname=ruby-$_gemname
+pkgver=0.4.0
+pkgrel=1
+pkgdesc='Store Hiera data in JSON'
+arch=(any)
+url='http://projects.puppetlabs.com/projects/hiera/'
+license=('MIT')
+depends=('ruby')
+makedepends=('rubygems' 'ruby-hiera')
+source=(http://gems.rubyforge.org/gems/$_gemname-$pkgver.gem)
+noextract=($_gemname-$pkgver.gem)
+
+package() {
+ cd "$srcdir"
+ # _gemdir is defined inside package() because if ruby[gems] is not installed on
+ # the system, makepkg will exit with an error when sourcing the PKGBUILD.
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+
+ gem install --no-user-install --ignore-dependencies -i "$pkgdir$_gemdir" \
+ -n "$pkgdir/usr/bin" "$_gemname-$pkgver.gem"
+}
+
diff --git a/pcr/ruby-hiera/PKGBUILD b/pcr/ruby-hiera/PKGBUILD
new file mode 100644
index 000000000..c4d51fe44
--- /dev/null
+++ b/pcr/ruby-hiera/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Jochen Schalanda <jochen+aur@schalanda.name>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+_gemname=hiera
+pkgname=ruby-$_gemname
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="A pluggable data store for hierarcical data."
+arch=(any)
+url='http://projects.puppetlabs.com/projects/hiera/'
+license=('MIT')
+depends=('ruby')
+makedepends=('rubygems')
+source=(
+ "http://gems.rubyforge.org/gems/$_gemname-$pkgver.gem"
+ 'hiera.yaml')
+noextract=($_gemname-$pkgver.gem)
+
+package() {
+ cd "$srcdir"
+ # _gemdir is defined inside package() because if ruby[gems] is not installed on
+ # the system, makepkg will exit with an error when sourcing the PKGBUILD.
+ local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')"
+
+ gem install --no-user-install --ignore-dependencies -i "$pkgdir$_gemdir" \
+ -n "$pkgdir/usr/bin" "$_gemname-$pkgver.gem"
+
+ # Create hiera default directory
+ install -d $pkgdir/var/lib/hiera
+
+ # Create hiera default configuration
+ install -d $pkgdir/etc
+ install -m 644 $srcdir/hiera.yaml $pkgdir/etc/
+}
diff --git a/pcr/ruby-hiera/hiera.yaml b/pcr/ruby-hiera/hiera.yaml
new file mode 100644
index 000000000..cd0be3fec
--- /dev/null
+++ b/pcr/ruby-hiera/hiera.yaml
@@ -0,0 +1,21 @@
+---
+:backend:
+ - yaml
+ - json
+:hierarchy:
+ - defaults
+ - global
+
+:yaml:
+# datadir is empty here, so hiera uses its defaults:
+# - /var/lib/hiera on *nix
+# - %CommonAppData%\PuppetLabs\hiera\var on Windows
+# When specifying a datadir, make sure the directory exists.
+ :datadir:
+
+:json:
+# datadir is empty here, so hiera uses its defaults:
+# - /var/lib/hiera on *nix
+# - %CommonAppData%\PuppetLabs\hiera\var on Windows
+# When specifying a datadir, make sure the directory exists.
+ :datadir:
diff --git a/pcr/ruby-shadow/PKGBUILD b/pcr/ruby-shadow/PKGBUILD
new file mode 100644
index 000000000..5b7ee1972
--- /dev/null
+++ b/pcr/ruby-shadow/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Thomas S Hatch <thatch45@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=ruby-shadow
+pkgver=2.1.4
+pkgrel=5
+pkgdesc="Interface for shadow passwords for Ruby"
+arch=(i686 x86_64 arm)
+depends=('ruby')
+license=('publicdomain')
+url=('https://github.com/apalmblad/ruby-shadow.git')
+source=("https://github.com/apalmblad/ruby-shadow/archive/$pkgver.tar.gz")
+
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ruby extconf.rb
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/pcr/snort/PKGBUILD b/pcr/snort/PKGBUILD
new file mode 100644
index 000000000..2439a1c73
--- /dev/null
+++ b/pcr/snort/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 78820 2012-10-25 06:47:28Z foutrelis $
+# Contributor: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Contributor: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=snort
+pkgver=2.9.3.1
+pkgrel=1
+pkgdesc='A lightweight network intrusion detection system.'
+arch=('i686' 'x86_64')
+url='http://www.snort.org'
+license=('GPL')
+depends=('libdaq' 'libdnet' 'libpcap' 'pcre' 'zlib')
+makedepends=('ca-certificates')
+backup=('etc/conf.d/snort'
+ 'etc/snort/snort.conf'
+ 'etc/snort/threshold.conf'
+ 'etc/snort/confreference.config'
+ 'etc/snort/classification.config')
+options=('!makeflags' '!libtool')
+install='snort.install'
+source=("http://www.snort.org/dl/snort-current/${pkgname}-${pkgver}.tar.gz"{,.sig}
+ 'snort'
+ 'snort.conf.d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc/snort --with-libpcap-includes=/usr/include/pcap \
+ --without-mysql --without-postgresql --without-oracle --without-odbc --enable-zlib \
+ --enable-ipv6
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ mkdir -p "${pkgdir}/"{etc/rc.d,etc/snort/rules}
+
+ install -d -m755 "${pkgdir}/var/log/snort"
+ install -D -m644 etc/{*.conf*,*.map} "${pkgdir}/etc/snort/"
+ install -D -m644 "${srcdir}/snort.conf.d" "${pkgdir}/etc/conf.d/snort"
+ install -D -m755 "${srcdir}/snort" "${pkgdir}/etc/rc.d/snort"
+
+ sed -i 's#/usr/local/lib/#/usr/lib/#' "${pkgdir}/etc/snort/snort.conf"
+}
diff --git a/pcr/snort/snort b/pcr/snort/snort
new file mode 100644
index 000000000..5dfa72fbf
--- /dev/null
+++ b/pcr/snort/snort
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/snort ] && . /etc/conf.d/snort
+
+PID=`pidof -o %PPID /usr/bin/snort`
+case "$1" in
+ start)
+ stat_busy "Starting Intrusion Database System: SNORT"
+ [ -z "$PID" ] && /usr/bin/snort ${SNORT_OPTIONS} -u ${USER} -g ${GROUP} \
+ -i ${INTERFACE} -c ${SNORT_CONF}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon snort
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Intrusion Database System: SNORT"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon snort
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/pcr/snort/snort.conf.d b/pcr/snort/snort.conf.d
new file mode 100644
index 000000000..86b566abc
--- /dev/null
+++ b/pcr/snort/snort.conf.d
@@ -0,0 +1,21 @@
+#
+# Parameters to be passed to snort
+#
+
+# options taken from Fedora
+# http://cvs.fedoraproject.org/viewcvs/devel/snort/sysconfig.snort?rev=1.2&view=markup
+
+# Where is the snort.conf file.
+SNORT_CONF="/etc/snort/snort.conf"
+
+# What user account should we run under.
+USER="snort"
+
+# What group account should we run under.
+GROUP="snort"
+
+# define the interface we listen on
+INTERFACE="eth0"
+
+# If you are using prelude, delete the '-A fast' option
+SNORT_OPTIONS="-A fast -b -l /var/log/snort -D -p"
diff --git a/pcr/snort/snort.install b/pcr/snort/snort.install
new file mode 100644
index 000000000..673f22c6c
--- /dev/null
+++ b/pcr/snort/snort.install
@@ -0,0 +1,26 @@
+post_install() {
+ getent group snort >/dev/null || usr/sbin/groupadd -g 29 snort
+ getent passwd snort >/dev/null || usr/sbin/useradd -c 'Snort user' -u 29 -g snort -d /var/log/snort -s /bin/false snort
+ usr/bin/passwd -l snort &>/dev/null
+
+ [ -f var/log/snort/alert ] || : >var/log/snort/alert
+ chown snort.snort var/log/snort/ -R
+
+cat << _EOF
+
+>>> You have to edit the HOME_NET variable in the /etc/snort/snort.conf file to reflect your local network.
+>>> If you do not change it, snort may not work.
+
+_EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/userdel snort &>/dev/null
+ usr/sbin/groupdel snort &>/dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/theide/PKGBUILD b/pcr/theide/PKGBUILD
new file mode 100644
index 000000000..26dc34f0f
--- /dev/null
+++ b/pcr/theide/PKGBUILD
@@ -0,0 +1,54 @@
+# Contributor: Jan Dolinar <dolik.rce@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=theide
+pkgver=5485
+pkgrel=1
+pkgdesc="Modern IDE designed for developping large U++/C++ applications"
+arch=('i686' 'x86_64')
+url="http://www.ultimatepp.org"
+license=('BSD')
+groups=()
+depends=('gtk2' 'libnotify' 'desktop-file-utils')
+makedepends=()
+provides=('theide')
+conflicts=('theide')
+replaces=()
+backup=()
+options=(!makeflags emptydirs)
+install='theide.install'
+source=('http://downloads.sourceforge.net/project/upp/upp/'$pkgver'/upp-x11-src-'$pkgver'.tar.gz'
+ 'http://upp-mirror.googlecode.com/svn-history/r'$pkgver'/trunk/uppbox/lpbuild2/mkfile'
+ 'http://upp-mirror.googlecode.com/svn-history/r'$pkgver'/trunk/uppbox/lpbuild2/theide.1'
+ 'http://upp-mirror.googlecode.com/svn-history/r'$pkgver'/trunk/uppbox/lpbuild2/umk.1'
+ 'license.txt')
+noextract=()
+
+build() {
+ cd "$srcdir/upp-x11-src-$pkgver"
+ #build
+ echo "#define IDE_VERSION \"$pkgver-Arch-$(uname -m)\"" > "uppsrc/ide/version.h"
+ msg2 "Building $pkgname..."
+ make -f "$srcdir/mkfile" PKG=umk FLAGS="GCC" NESTS="uppsrc" TIME= COLOR=0 USEMAINCFG=0 JOBS=5 ECHO=0 TARGET="$srcdir/umk"
+ make -f "$srcdir/mkfile" PKG=ide FLAGS="GCC GUI" NESTS="uppsrc" TIME= COLOR=0 USEMAINCFG=0 JOBS=5 ECHO=0 TARGET="$srcdir/theide"
+}
+
+package(){
+ #license
+ install -D "$srcdir/license.txt" "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+ #man pagess
+ install -D "$srcdir/theide.1" "$pkgdir/usr/share/man/man1/theide.1"
+ install -D "$srcdir/umk.1" "$pkgdir/usr/share/man/man1/umk.1"
+ #desktop entry
+ install -D "$srcdir/upp-x11-src-$pkgver/uppsrc/ide/theide.desktop" "$pkgdir/usr/share/applications/theide.desktop"
+ #icon
+ install -D "$srcdir/upp-x11-src-$pkgver/uppsrc/ide/theide-48.png" "$pkgdir/usr/share/pixmaps/theide.png"
+ #fix permissions
+ find "$pkgdir/usr/" -print0 | xargs -0 chown root:root
+ find "$pkgdir/usr/" -type f -print0 | xargs -0 chmod 644
+ find "$pkgdir/usr/" -type d -print0 | xargs -0 chmod 755
+ #install applications
+ install -D "$srcdir/umk" "$pkgdir/usr/bin/umk"
+ install -D "$srcdir/theide" "$pkgdir/usr/bin/theide"
+}
+
diff --git a/pcr/theide/license.txt b/pcr/theide/license.txt
new file mode 100644
index 000000000..6cea058a6
--- /dev/null
+++ b/pcr/theide/license.txt
@@ -0,0 +1,9 @@
+Copyright (C) 2010 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies of the Software and its Copyright notices. In addition publicly documented acknowledgment must be given that this software has been used if no source code of this software is made available publicly. This includes
+acknowledgments in either Copyright notices, Manuals, Publicity and Marketing documents or any documentation provided with any product containing this software. This License does not apply to any software that links to the libraries provided by this software (statically or dynamically), but only to
+the software provided.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/pcr/theide/theide.install b/pcr/theide/theide.install
new file mode 100644
index 000000000..5e16c038a
--- /dev/null
+++ b/pcr/theide/theide.install
@@ -0,0 +1,3 @@
+post_install() {
+ update-desktop-database -q
+}
diff --git a/pcr/thinkfan/PKGBUILD b/pcr/thinkfan/PKGBUILD
new file mode 100644
index 000000000..18a97754f
--- /dev/null
+++ b/pcr/thinkfan/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: nblock <nblock [/at\] archlinux DOT us>
+# Contributor: Frederik Alkærsig (FALKER) <havnelisten AT gmail.com>
+
+pkgname=thinkfan
+pkgver=0.8.1
+pkgrel=3
+pkgdesc="A minimalist fan control program. Supports the sysfs hwmon interface and thinkpad_acpi"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+source=(http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ "thinkfan" "thinkfan.service")
+url="http://thinkfan.sourceforge.net/"
+md5sums=('aaa6c88bab3b43756ac5a1638622828c'
+ '16fc3a83a1468e3ccaeba67e14ab2177'
+ '7639b82035fcee712753e05de6b0601d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+ install -D -m755 ${pkgname} ${pkgdir}/usr/sbin/${pkgname}
+ install -D -m755 ${srcdir}/${pkgname} ${pkgdir}/etc/rc.d/${pkgname}
+ install -D -m644 README ${pkgdir}/usr/share/doc/${pkgname}/README
+ install -D -m644 ${srcdir}/thinkfan.service ${pkgdir}/usr/lib/systemd/system/thinkfan.service
+ cp -r examples ${pkgdir}/usr/share/doc/${pkgname}/
+}
+
+# vim:set ts=2 sw=2 noet:
diff --git a/~mtjm/thinkfan/thinkfan b/pcr/thinkfan/thinkfan
index d37c81424..d37c81424 100755..100644
--- a/~mtjm/thinkfan/thinkfan
+++ b/pcr/thinkfan/thinkfan
diff --git a/pcr/thinkfan/thinkfan.service b/pcr/thinkfan/thinkfan.service
new file mode 100644
index 000000000..7895b8d3a
--- /dev/null
+++ b/pcr/thinkfan/thinkfan.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Thinkfan Daemon - simple and lightweight fan control program
+After=basic.target
+
+[Service]
+ExecStart=/usr/sbin/thinkfan -n -s5 -q
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/ttf-roboto/PKGBUILD b/pcr/ttf-roboto/PKGBUILD
new file mode 100644
index 000000000..9085985d7
--- /dev/null
+++ b/pcr/ttf-roboto/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Michael Düll <mail@akurei.me> PGP-Key: D6777412 - Fingerprint: C972 8B50 9411 BBE1 5CA5 9906 5103 71F3 D677 7412
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=ttf-roboto
+pkgver=20121102
+pkgrel=1
+pkgdesc='The new system font of Android 4, Codename "Ice Cream Sandwich".'
+arch=('any')
+license=('APACHE')
+url="https://developer.android.com/design/style/typography.html"
+depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils')
+install=$pkgname.install
+source=(
+ "https://developer.android.com/downloads/design/Roboto_Hinted_20120823.zip"
+)
+
+package()
+{
+ install -d $pkgdir/usr/share/fonts/TTF/
+ install -m644 *.ttf $pkgdir/usr/share/fonts/TTF/
+ install -d $pkgdir/usr/share/licenses/$pkgname/
+ install -m644 $srcdir/COPYING.txt $pkgdir/usr/share/licenses/$pkgname/
+}
+
+sha512sums=('ce4af34d0a23dd4076d033dcb03f17335eb83317da72b45257291be3aa34ff589405bfdfb768faca769d401a9091b63e5f195704ed69874d7d17289ca436a785')
diff --git a/pcr/ttf-roboto/ttf-roboto.install b/pcr/ttf-roboto/ttf-roboto.install
new file mode 100644
index 000000000..7dde94b45
--- /dev/null
+++ b/pcr/ttf-roboto/ttf-roboto.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/TTF
+ mkfontdir /usr/share/fonts/TTF
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/pcr/upp-svn/GCC.bm b/pcr/upp-svn/GCC.bm
new file mode 100644
index 000000000..bfcb09c1d
--- /dev/null
+++ b/pcr/upp-svn/GCC.bm
@@ -0,0 +1,23 @@
+BUILDER = "GCC";
+COMPILER = "";
+DEBUG_INFO = "2";
+DEBUG_BLITZ = "1";
+DEBUG_LINKMODE = "1";
+DEBUG_OPTIONS = "-O0";
+DEBUG_FLAGS = "";
+DEBUG_LINK = "";
+RELEASE_BLITZ = "0";
+RELEASE_LINKMODE = "1";
+RELEASE_OPTIONS = "-O3 -ffunction-sections -fdata-sections";
+RELEASE_SIZE_OPTIONS = "-Os -finline-limit=20 -ffunction-sections -fdata-sections";
+RELEASE_FLAGS = "";
+RELEASE_LINK = "-Wl,--gc-sections";
+DEBUGGER = "gdb";
+PATH = "";
+INCLUDE = "/usr/include/freetype2;/usr/include/gtk-2.0;/usr/include/glib-2.0;/usr/lib/glib-2.0/include;/usr/lib/gtk-2.0/include;/usr/include/cairo;/usr/include/pango-1.0;/usr/include/atk-1.0;/usr/X11R6/include;/usr/X11R6/include/freetype2;/usr/X11R6/include/gtk-2.0;/usr/X11R6/include/glib-2.0;/usr/X11R6/lib/glib-2.0/include;/usr/X11R6/lib/gtk-2.0/include;/usr/X11R6/include/cairo;/usr/X11R6/include/pango-1.0;/usr/X11R6/include/atk-1.0;/usr/include/c++/4.5.0;/usr/include/c++/4.5.0/i686-pc-linux-gnu;/usr/include/webkit-1.0;/usr/include/libsoup-2.4;/usr/include/libxml2";
+LIB = "/usr/X11R6/lib;/usr/lib;/usr/local/lib";
+REMOTE_HOST = "";
+REMOTE_OS = "";
+REMOTE_TRANSFER = "";
+REMOTE_MAP = "";
+LINKMODE_LOCK = "0";
diff --git a/pcr/upp-svn/PKGBUILD b/pcr/upp-svn/PKGBUILD
new file mode 100644
index 000000000..1a5a50d4b
--- /dev/null
+++ b/pcr/upp-svn/PKGBUILD
@@ -0,0 +1,67 @@
+# Contributor: Jan Dolinar <dolik.rce@gmail.com>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=upp-svn
+pkgver=5554
+pkgrel=1
+pkgdesc="Radical and innovative multiplatform C++ framework (known as U++)"
+arch=('any')
+url="http://www.ultimatepp.org"
+license=('BSD')
+groups=()
+depends=('gcc-libs' 'libpng' 'libxft' 'theide')
+makedepends=('subversion')
+optdepends=('libnotify: Enables compiling gtk-styled apps')
+provides=('upp')
+conflicts=('upp')
+replaces=()
+backup=()
+options=(emptydirs !strip)
+install=
+source=('GCC.bm' 'license.txt')
+noextract=()
+
+_svntrunk="http://upp-mirror.googlecode.com/svn/trunk/"
+# many users have already working copy of U++ on their system, so they
+# can use it for building (e.g. to save network traffic or to speed up
+# things) by setting $UPPSVN environment variable
+if [ "x$UPPSVN" != "x" ]
+then
+ _svnmod=$UPPSVN
+else
+ _svnmod="$srcdir/uppsvn"
+fi
+
+build() {
+ cd "$srcdir"
+ #get sources
+ msg "Downloading sources from svn..."
+ for n in bazaar reference examples tutorial uppsrc
+ do
+ msg2 "$n"
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod/$n && svn up -r $pkgver)
+ else
+ svn co $_svntrunk$n/ --config-dir ./ -r $pkgver $_svnmod/$n
+ fi
+ done
+ msg "SVN checkout done (or server timeout)"
+}
+
+package() {
+ #copy source files
+ mkdir -p "$pkgdir/usr/share/upp"
+ msg2 "Copying the source codes..."
+ cp -r "$_svnmod/"{bazaar,examples,reference,tutorial,uppsrc} "$pkgdir/usr/share/upp/"
+ echo "#define IDE_VERSION \"$pkgver-Arch-$(uname -m)\"" > "$pkgdir/usr/share/upp/uppsrc/ide/version.h"
+ msg2 "Removing the .svn directories..."
+ find "$pkgdir/" -type d -name ".svn" -exec rm -rf {} \; -prune
+ #license
+ mkdir -p "$pkgdir/usr/share/licenses/upp-svn"
+ cp "$srcdir/license.txt" "$pkgdir/usr/share/licenses/upp-svn"
+ #build method
+ cp "$srcdir/GCC.bm" "$pkgdir/usr/share/upp"
+ #fix permissions
+ msg2 "Setting permissions..."
+ find "$pkgdir/usr/" -type f -exec chown root:root {} \; -exec chmod 644 {} \;
+}
diff --git a/pcr/upp-svn/license.txt b/pcr/upp-svn/license.txt
new file mode 100644
index 000000000..6cea058a6
--- /dev/null
+++ b/pcr/upp-svn/license.txt
@@ -0,0 +1,9 @@
+Copyright (C) 2010 Mirek Fidler, Tomas Rylek and various contributors (see AUTHORS)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies of the Software and its Copyright notices. In addition publicly documented acknowledgment must be given that this software has been used if no source code of this software is made available publicly. This includes
+acknowledgments in either Copyright notices, Manuals, Publicity and Marketing documents or any documentation provided with any product containing this software. This License does not apply to any software that links to the libraries provided by this software (statically or dynamically), but only to
+the software provided.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/pcr/vcstools/PKGBUILD b/pcr/vcstools/PKGBUILD
new file mode 100644
index 000000000..3eb123ffa
--- /dev/null
+++ b/pcr/vcstools/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Georg Bremer <pkgbuild@dschoordsch.de>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.io>
+
+pkgname=('vcstools')
+pkgver=0.1.24
+pkgrel=1
+pkgdesc=""
+arch=('any')
+url="http://ros.org/"
+license=('BSD')
+groups=()
+depends=('python2' 'python2-yaml' 'python2-distribute')
+makedepends=()
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+options=()
+install=
+source=("http://pr.willowgarage.com/downloads/vcstools/vcstools-$pkgver.tar.gz")
+
+noextract=()
+
+build() {
+ echo ""
+}
+
+package() {
+ cd "$srcdir/vcstools-$pkgver"
+ python2 setup.py install --root "$pkgdir"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/pcr/vuurmuur/PKGBUILD b/pcr/vuurmuur/PKGBUILD
new file mode 100644
index 000000000..8aed82655
--- /dev/null
+++ b/pcr/vuurmuur/PKGBUILD
@@ -0,0 +1,139 @@
+# vim:set ts=2 sw=2 et ft=sh tw=100: expandtab
+# Contributor: Piotr Rogoża <rogoza dot piotr at gmail dot com>
+# Contributor: skydrome <skydrome@i2pmail.org>
+# Contributor: Valere Monseur <valere_monseur@hotmail.com>
+# Contributor: Phillip Smith <fukawi2@NO-SPAM.gmail.com>
+# Contributor: (asper, noob
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=vuurmuur
+_pkgname=Vuurmuur
+pkgver=0.7
+pkgrel=1
+pkgdesc='powerful front-end for iptables aimed at system-administrators who need a decent firewall, but dont have netfilter specific knowledge'
+arch=('i686' 'x86_64')
+url='http://www.vuurmuur.org'
+license=('GPL')
+install='vuurmuur.install'
+depends=('iptables' 'ncurses' 'libjpeg')
+optdepends=('conntrack-tools: for connection tracking'
+ 'iproute2: for traffic shapping'
+ 'iptrafvol: for traffic volume logging')
+conflicts=(vuurmuur-devel)
+backup=('etc/vuurmuur/config.conf'
+ 'etc/vuurmuur/modules.conf'
+ 'etc/vuurmuur/vuurmuur_conf.conf'
+ 'etc/vuurmuur/plugins/textdir.conf'
+ 'etc/logrotate.d/vuurmuur')
+source=(
+ftp://ftp.vuurmuur.org/releases/$pkgver/${_pkgname}-$pkgver.tar.gz
+modules.conf
+vuurmuur.rc
+vuurmuur.service
+vuurmuur.script
+)
+build() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+
+ for archive in libvuurmuur vuurmuur vuurmuur_conf; do
+ [[ ! -d "$archive" ]] &&
+ tar xzf ${archive}-${pkgver}.tar.gz
+ done
+
+ msg "building vuurmuur libraries..."
+ pushd libvuurmuur-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ popd
+
+ msg "building vuurmuur..."
+ pushd vuurmuur-${pkgver}
+ sed -i 's|-rpath|-rpath-link|' configure
+ LDFLAGS+="-L${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src \
+ -L${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src/.libs \
+ -Wl,-rpath=/usr/lib/${pkgname}/plugins" \
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-libvuurmuur-includes="${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src" \
+ --with-libvuurmuur-libraries="${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src"
+ make
+ popd
+
+ msg "building vuurmuur_conf..."
+ pushd vuurmuur_conf-${pkgver}
+ sed -i 's|-rpath|-rpath-link|' configure
+ LDFLAGS+="-L${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src \
+ -L${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src/.libs \
+ -Wl,-rpath=/usr/lib/${pkgname}/plugins" \
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-libvuurmuur-includes="${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src" \
+ --with-libvuurmuur-libraries="${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/src"
+ make
+ popd
+}
+
+package() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+
+ pushd libvuurmuur-${pkgver}
+ make DESTDIR=${pkgdir} install
+ popd
+
+ pushd vuurmuur-${pkgver}
+ make DESTDIR=${pkgdir} install
+ popd
+
+ pushd vuurmuur_conf-${pkgver}
+ make DESTDIR=${pkgdir} install
+ popd
+
+ # make directory structure
+ install -dm700 ${pkgdir}/etc/${pkgname}
+ install -dm700 ${pkgdir}/etc/${pkgname}/plugins
+ install -dm700 ${pkgdir}/etc/logrotate.d/
+ install -dm755 ${pkgdir}/usr/share/${pkgname}/textdir/{interfaces,services,zones,rules}
+ install -dm700 ${pkgdir}/var/log/${pkgname}
+
+ # install daemon and log
+ install -Dm755 ${srcdir}/vuurmuur.rc ${pkgdir}/etc/rc.d/${pkgname}
+ install -Dm644 ${pkgdir}/usr/share/${pkgname}/scripts/vuurmuur-logrotate ${pkgdir}/etc/logrotate.d/${pkgname}
+
+ # install systemd's files
+ install -Dm755 $srcdir/vuurmuur.script $pkgdir/usr/lib/systemd/scripts/vuurmuur
+ install -Dm644 $srcdir/vuurmuur.service $pkgdir/usr/lib/systemd/system/vuurmuur.service
+
+ # install configuration
+ install -Dm600 ${pkgdir}/usr/share/vuurmuur/config/config.conf.sample \
+ ${pkgdir}/etc/${pkgname}/config.conf
+ install -Dm600 ${srcdir}/modules.conf ${pkgdir}/etc/${pkgname}/modules.conf
+ install -Dm600 ${pkgdir}/usr/share/vuurmuur/config/vuurmuur_conf.conf.sample \
+ ${pkgdir}/etc/${pkgname}/${pkgname}_conf.conf
+
+ sed -i ${pkgdir}/etc/${pkgname}/config.conf \
+ -e 's|"/sbin/tc|"/usr/sbin/tc|' \
+ -e 's|"/sbin/ip6tables|"/usr/sbin/ip6tables|' \
+ -e 's|"/sbin/iptables|"/usr/sbin/iptables|' \
+ -e 's|"/sbin/ip6tables-restore|"/usr/sbin/ip6tables-restore|' \
+ -e 's|"/sbin/iptables-restore|"/usr/sbin/iptables-restore|' \
+ -e 's|"/var/log/messages|"/var/log/iptables.log|'
+
+ sed -i ${pkgdir}/etc/${pkgname}/${pkgname}_conf.conf \
+ -e 's|"/usr/bin/iptrafvol.pl|"/usr/sbin/iptrafvol.pl|'
+
+
+ echo "LOCATION=\"/etc/${pkgname}/textdir\"" > ${pkgdir}/etc/${pkgname}/plugins/textdir.conf
+
+ # default firewall setup in /usr/share
+ touch ${pkgdir}/usr/share/${pkgname}/textdir/rules/rules.conf
+ touch ${pkgdir}/usr/share/${pkgname}/textdir/rules/blocklist.conf
+
+ cp -R ${srcdir}/${_pkgname}-${pkgver}/zones/* ${pkgdir}/usr/share/${pkgname}/textdir/zones/
+ mv ${pkgdir}/usr/share/${pkgname}/services/* ${pkgdir}/usr/share/${pkgname}/textdir/services/
+
+ # install licenses
+ install -Dm644 ${srcdir}/${_pkgname}-${pkgver}/lib${pkgname}-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/lib${pkgname}/COPYING
+ install -Dm644 ${srcdir}/${_pkgname}-${pkgver}/${pkgname}-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+ install -Dm644 ${srcdir}/${_pkgname}-${pkgver}/${pkgname}_conf-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}_conf/COPYING
+}
diff --git a/pcr/vuurmuur/modules.conf b/pcr/vuurmuur/modules.conf
new file mode 100644
index 000000000..eda78a036
--- /dev/null
+++ b/pcr/vuurmuur/modules.conf
@@ -0,0 +1,3 @@
+# modules loaded by vuurmuur daemon
+# ip_queue => not found
+MODULES_TO_LOAD="ip_tables iptable_filter iptable_mangle iptable_nat ip_conntrack ipt_state ip_conntrack_ftp ip_nat_ftp"
diff --git a/pcr/vuurmuur/vuurmuur.install b/pcr/vuurmuur/vuurmuur.install
new file mode 100644
index 000000000..0f596b8c9
--- /dev/null
+++ b/pcr/vuurmuur/vuurmuur.install
@@ -0,0 +1,27 @@
+post_install() {
+ if [[ ! -d /etc/vuurmuur/textdir ]]; then
+ # copy default firewall setup
+ cp -R /usr/share/vuurmuur/textdir /etc/vuurmuur/
+
+ # set permissions and ownership
+ chown -R root:root /etc/vuurmuur
+ chmod -R o=rwX,go= /etc/vuurmuur
+ chown -R root:root /var/log/vuurmuur
+ chmod -R o=rwX,go= /var/log/vuurmuur
+
+ echo
+ echo "Default firewall setup has been installed in /etc/vuurmuur/textdir"
+ echo
+ echo "You can now setup your network topology and firewall rules using vuurmuur_conf"
+ echo "Don't forget to add 'vuurmuur' in /etc/rc.conf"
+ echo
+ echo "Usefull documentation can be found at http://www.vuurmuur.org"
+ echo
+ fi
+}
+
+post_remove () {
+ echo
+ echo "Your firewall setup has been left unchanged in /etc/vuurmuur/textdir"
+ echo
+}
diff --git a/pcr/vuurmuur/vuurmuur.rc b/pcr/vuurmuur/vuurmuur.rc
new file mode 100644
index 000000000..3b4d3e99e
--- /dev/null
+++ b/pcr/vuurmuur/vuurmuur.rc
@@ -0,0 +1,114 @@
+#!/bin/bash
+# vi: ft=sh
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# PID file
+VUURMUURPID='/run/vuurmuur.pid'
+VUURMUURLOGPID='/run/vuurmuur_log.pid'
+case $1 in
+start)
+ # initialize
+ stat_busy "Starting Vuurmuur Firewall"
+ STATUS="ok"
+
+ # check if vuurmuur is configured
+ IFNUM=`/usr/bin/vuurmuur_script --list --interface any | wc -l`
+ if [ $IFNUM = 0 ]; then
+ stat_busy "Please configure Vuurmuur first by defining at least one interface."
+ stat_fail
+ exit 1
+ fi
+
+ # load modules
+ . /etc/vuurmuur/modules.conf
+ for MODULE in `echo $MODULES_TO_LOAD`; do
+ /sbin/modprobe $MODULE &>/dev/null
+ if [ $? != 0 ]; then
+ stat_busy "Error when loading module $MODULE. Check log files."
+ stat_fail
+ exit 1
+ fi
+ done
+
+ # start vuurmuur daemon
+ if [ ! -f $VUURMUURPID ]; then
+ /usr/bin/vuurmuur -l
+ if [ $? != 0 ]; then
+ stat_busy "Error when starting Vuurmuur daemon. Check log files."
+ STATUS="failed"
+ fi
+ else
+ PID=`cat $VUURMUURPID | cut -d " " -f 1`
+ stat_busy "Error when starting Vuurmuur daemon. Already running at pid $PID."
+ STATUS="failed"
+ fi
+
+ # start vuurmuur log parsing daemon
+ if [ ! -f $VUURMUURLOGPID ]; then
+ /usr/bin/vuurmuur_log
+ if [ $? != 0 ]; then
+ stat_busy "Error when starting Vuurmuur log parsing daemon. Check log files."
+ STATUS="failed"
+ fi
+ else
+ PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
+ stat_busy "Error when starting Vuurmuur log parsing daemon. Already running at pid $PID."
+ STATUS="failed"
+ fi
+
+ # finalize
+ if [ $STATUS = "ok" ]; then
+ add_daemon vuurmuur
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+stop)
+ # initialize
+ stat_busy "Stopping Vuurmuur Firewall"
+ STATUS="ok"
+
+ # stop vuurmuur log parsing daemon
+ PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm -f $VUURMUURLOGPID
+ else
+ stat_busy "Error when stopping Vuurmuur log parsing daemon. Check log files."
+ STATUS="failed"
+ fi
+
+ # stop vuurmuur daemon
+ PID=`cat $VUURMUURPID | cut -d " " -f 1`
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm -f $VUURMUURPID
+ else
+ stat_busy "Error when stopping Vuurmuur daemon. Check log files."
+ STATUS="failed"
+ fi
+
+ # finalize
+ if [ $STATUS = "ok" ]; then
+ rm_daemon vuurmuur
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ echo "Usage: $0 {start|stop|restart}" >&2
+ exit 1
+
+esac
+exit 0
diff --git a/pcr/vuurmuur/vuurmuur.script b/pcr/vuurmuur/vuurmuur.script
new file mode 100644
index 000000000..a643d6fbd
--- /dev/null
+++ b/pcr/vuurmuur/vuurmuur.script
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+VUURMUURPID='/run/vuurmuur.pid'
+VUURMUURLOGPID='/run/vuurmuur_log.pid'
+start() {
+ IFNUM=`/usr/bin/vuurmuur_script --list --interface any | wc -l`
+ if [ $IFNUM = 0 ]; then
+ echo "Please configure Vuurmuur first by defining at least one interface."
+ exit 1
+ fi
+
+ # load modules
+ . /etc/vuurmuur/modules.conf
+ for MODULE in `echo $MODULES_TO_LOAD`; do
+ /sbin/modprobe $MODULE &>/dev/null
+ if [ $? != 0 ]; then
+ echo "Error when loading module $MODULE. Check log files."
+ exit 1
+ fi
+ done
+
+ # start vuurmuur daemon
+ if [ ! -f $VUURMUURPID ]; then
+ /usr/bin/vuurmuur -l
+ if [ $? != 0 ]; then
+ echo "Error when starting Vuurmuur daemon. Check log files."
+ STATUS="failed"
+ fi
+ else
+ PID=`cat $VUURMUURPID | cut -d " " -f 1`
+ echo "Error when starting Vuurmuur daemon. Already running at pid $PID."
+ STATUS="failed"
+ fi
+
+ # start vuurmuur log parsing daemon
+ if [ ! -f $VUURMUURLOGPID ]; then
+ /usr/bin/vuurmuur_log
+ if [ $? != 0 ]; then
+ echo "Error when starting Vuurmuur log parsing daemon. Check log files."
+ STATUS="failed"
+ fi
+ else
+ PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
+ echo "Error when starting Vuurmuur log parsing daemon. Already running at pid $PID."
+ STATUS="failed"
+ fi
+
+ # finalize
+ if [ $STATUS = "failed" ]; then
+ exit 1
+ fi
+}
+stop() {
+ # initialize
+ echo "Stopping Vuurmuur Firewall"
+ STATUS="ok"
+
+ # stop vuurmuur log parsing daemon
+ PID=`cat $VUURMUURLOGPID | cut -d " " -f 1`
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm -f $VUURMUURLOGPID
+ else
+ echo "Error when stopping Vuurmuur log parsing daemon. Check log files."
+ STATUS="failed"
+ fi
+
+ # stop vuurmuur daemon
+ PID=`cat $VUURMUURPID | cut -d " " -f 1`
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm -f $VUURMUURPID
+ else
+ echo "Error when stopping Vuurmuur daemon. Check log files."
+ STATUS="failed"
+ fi
+
+ # finalize
+ if [ $STATUS = "false" ]; then
+ exit 1
+ fi
+}
+restart() {
+ $0 stop
+ $0 start
+}
+
+case $1 in
+ start|stop|restart) "$1" ;;
+esac
diff --git a/pcr/vuurmuur/vuurmuur.service b/pcr/vuurmuur/vuurmuur.service
new file mode 100644
index 000000000..3defcaa82
--- /dev/null
+++ b/pcr/vuurmuur/vuurmuur.service
@@ -0,0 +1,13 @@
+# vi: ft=systemd
+[Unit]
+Description=Powerful front-end for iptables
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/lib/systemd/scripts/vuurmuur start
+ExecStop=/usr/lib/systemd/scripts/vuurmuur stop
+ExecReload=/usr/lib/systemd/scripts/vuurmuur restart
+
+[Install]
+WantedBy=multi-user.target
diff --git a/pcr/xtables-addons/PKGBUILD b/pcr/xtables-addons/PKGBUILD
new file mode 100644
index 000000000..0b652408a
--- /dev/null
+++ b/pcr/xtables-addons/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributor: Vladimir Kutyavin <vlkut@bk.ru>
+# Maintainer : Parabola GNU / Linux-libre Aurelien Desbrieres <aurelien@cwb.IO>
+
+pkgname=xtables-addons
+pkgver=1.46
+pkgrel=1
+pkgdesc="Successor to patch-o-matic(-ng). Additional extensions for iptables, ip6tables, etc. CHAOS, TARPIT, TEE, DELUDE and other targets; condition, geoip, ipp2p and other matches. Includes ipset package."
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xtables-addons.sourceforge.net/"
+depends=('iptables>=1.4.3' 'glibc')
+makedepends=('linux-api-headers' 'linux-headers')
+conflicts=(ipset)
+replaces=(ipset)
+provides=(ipset)
+source=(http://download.sourceforge.net/project/xtables-addons/Xtables-addons/$pkgver/$pkgname-$pkgver.tar.xz)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/iptables \
+ --sysconfdir=/etc \
+ --with-xtlibdir=/usr/lib/iptables \
+ --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ chmod a-x $pkgdir/usr/lib/iptables/*.so
+ #remove ipset there is a ipset package
+# rm \
+# $pkgdir/usr/lib/iptables/libipset_* \
+# $pkgdir/usr/sbin/ipset
+# $pkgdir/usr/share/man/man8/ipset.8
+# rmdir $pkgdir/usr/sbin
+}
diff --git a/social/uftp/PKGBUILD b/social/uftp/PKGBUILD
new file mode 100644
index 000000000..1dea3b5ba
--- /dev/null
+++ b/social/uftp/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Markus Jochim <ich@markusjochim.de>
+# Maintainer (Parabola): fauno <fauno@parabola.nu>
+pkgname=uftp
+pkgver=3.7.1
+pkgrel=2
+pkgdesc="Multicast FTP software"
+arch=(i686 x86_64 mips64el)
+url="http://www.tcnj.edu/~bush/uftp.html"
+license=('GPL3')
+depends=('openssl')
+source=(http://www.tcnj.edu/~bush/downloads/uftp-${pkgver}.tar)
+md5sums=('0d3aa7d3e57251e8abf34027afa1e321')
+
+build() {
+ cd "$srcdir/uftp-${pkgver}/"
+
+ sed "s,/bin,/usr&,g" -i makefile
+
+ make CFLAGS="$CFLAGS"
+}
+
+package() {
+ cd "$srcdir/uftp-${pkgver}/"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/~aurelien/aurelien b/~aurelien/aurelien
new file mode 100644
index 000000000..3bda9d20a
--- /dev/null
+++ b/~aurelien/aurelien
@@ -0,0 +1,19 @@
+Hi!
+
+I am or was aurelien.
+
+An happy free thinker that have find his way in Parabola!
+
+All the packages i had build are in pcr, why pcr?
+Because Parabola Community Repository
+
+And so that community need from my point of view to offer
+cool software to offer cool ways.
+
+All the packages have build are free as in freedom, so,
+you are free to build them too, to get care of them.
+
+PKGBUILDs are great way to discover Parabola, BASH and much
+more.
+
+Have fun & be free! \ No newline at end of file
diff --git a/~fauno/notmuch/PKGBUILD b/~fauno/notmuch/PKGBUILD
deleted file mode 100755
index 58599073c..000000000
--- a/~fauno/notmuch/PKGBUILD
+++ /dev/null
@@ -1,76 +0,0 @@
-# Maintainer: fauno <fauno at kiwwwi.com.ar>
-# Maintainer: Olivier Ramonat <olivier at ramonat dot fr>
-# Maintainer: Richard Murri <admin@richardmurri.com>
-
-pkgname=notmuch
-pkgver=0.14
-pkgrel=2
-pkgdesc="Notmuch is not much of an email program"
-arch=(i686 x86_64 mips64el)
-url="http://notmuchmail.org/"
-license=('GPL3')
-depends=('xapian-core' 'gmime' 'talloc')
-makedepends=('python2' 'python' 'emacs' 'gnupg' 'ruby' 'pkgconfig')
-optdepends=('emacs: for using the emacs interface'
- 'vim: for using the vim interface'
- 'python2: for using the python bindings'
- 'ruby: for using the ruby bindings'
- 'gnupg: for email encryption')
-options=(!distcc !makeflags)
-
-source=("http://notmuchmail.org/releases/${pkgname}-${pkgver}.tar.gz")
-
-build() {
- cd "$srcdir/${pkgname}-${pkgver}"
-
- ./configure --prefix=/usr --sysconfdir=/etc
- make
-
- cd bindings/ruby
- ruby extconf.rb
- make
-
- cp -r $srcdir/${pkgname}-${pkgver}/bindings/python{,2}
-
- cd $srcdir/${pkgname}-${pkgver}/bindings/python
- env LD_LIBRARY_PATH="." python setup.py build
-
- cd $srcdir/${pkgname}-${pkgver}/bindings/python2
- find "." -name '*.py' -print0 |xargs -0 \
- sed -i -e 's,^#!/usr/bin/env python$,#!/usr/bin/env python2,' \
- -e 's,^#!/usr/bin/python$,#!/usr/bin/python2,'
- env LD_LIBRARY_PATH="." python2 setup.py build
-}
-
-check() {
- cd "$srcdir/${pkgname}-${pkgver}"
- make test
-}
-
-package(){
- cd "$srcdir/${pkgname}-${pkgver}"
- make DESTDIR="$pkgdir/" LIBDIR_IN_LDCONFIG=0 install
-
- install -D notmuch $pkgdir/usr/sbin/notmuch
-
- mkdir -p $pkgdir/usr/share/vim/vimfiles/{plugin,syntax}
-
- cd vim && make PREFIX="$pkgdir/usr/share/vim/vimfiles" install
-
- # Install python bindings
-
- cd $srcdir/${pkgname}-${pkgver}/bindings/python2
- env LD_LIBRARY_PATH="." python2 setup.py install --prefix=/usr --root=$pkgdir
-
- cd $srcdir/${pkgname}-${pkgver}/bindings/python
- env LD_LIBRARY_PATH="." python setup.py install --prefix=/usr --root=$pkgdir
-
-# Install ruby bindings
- cd $srcdir/${pkgname}-${pkgver}/bindings/ruby
- sed -i -e 's,/site_ruby,,g' Makefile
- make prefix=${pkgdir}/usr install
-
-# Remove conflicting zsh completion
- rm -r ${pkgdir}/usr/share/zsh
-}
-md5sums=('5eb3f225d3eb37862932f6baa5780d15')
diff --git a/~fauno/notmuch/SRCBUILD b/~fauno/notmuch/SRCBUILD
deleted file mode 100755
index 29a3a945f..000000000
--- a/~fauno/notmuch/SRCBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Maintainer: Nicolás Reynolds <fauno@parabola.nu>
-
-pkgname=notmuch
-pkgver=0.11.1
-pkgrel=1
-pkgdesc="Notmuch is not much of an email program"
-arch=('any')
-url="http://notmuchmail.org/"
-license=('GPL3')
-makedepends=('git')
-
-_gitroot="git://notmuchmail.org/git/notmuch"
-_gitname="${pkgname}"
-
-build() {
- cd "$srcdir"
- msg 'Connecting to GIT server...'
-
- if [ -d $_gitname ] ; then
- cd $_gitname; git pull origin
- msg 'The local files are updated.'
- else
- git clone $_gitroot $_gitname
- fi
-
- msg "GIT checkout done or server timeout"
-
-}
-
-package() {
- cd ${pkgdir}
- export PKGDEST=${SRCDEST}
- export PKGEXT=.src.tar.xz
-
- git clone ${srcdir}/${pkgname} ${pkgname}-${pkgver}
-
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/~fauno/pandoc/PKGBUILD b/~fauno/pandoc/PKGBUILD
index 3d7d1fa9f..d3b88d3a0 100755
--- a/~fauno/pandoc/PKGBUILD
+++ b/~fauno/pandoc/PKGBUILD
@@ -4,8 +4,8 @@
# Run `makepkg -srp SRCBUILD` if you want to update the source tarball
pkgname=pandoc
-pkgver=1.9.4.2
-pkgrel=2
+pkgver=1.9.4.5
+pkgrel=3
pkgdesc='Conversion between markup formats (no Haskell libs)'
url='http://johnmacfarlane.net/pandoc/'
license=('GPL')
@@ -15,53 +15,54 @@ options=(strip !makeflags !distcc)
source=(https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-$pkgrel-any.src.tar.xz{,.sig} SRCBUILD)
conflicts=('haskell-pandoc')
optdepends=('texlive-most: for pdf creation')
-md5sums=('15f522c6bd0e26c709579b0a0fcfdcea'
- 'e86da5aad2a7dfc6d53d2a2a0c562baa'
- '415bbf263863c5cbc7c672ec1f497893')
# PKGBUILD functions
build() {
mkdir -p ${srcdir}/{build,${pkgname}-${pkgver}}
cd ${srcdir}/${pkgname}-${pkgver}
- for _hkpkg in $(grep -v ${pkgname}-${pkgver} BUILDORDER); do
- pushd ${srcdir}/${pkgname}-${pkgver}/${_hkpkg}
-
- HOME=${srcdir}/${pkgname}-${pkgver} \
- cabal install --flags="embed_data_files" --prefix=${srcdir}/build/usr
-
- popd
- done
-
- cd ${srcdir}/${pkgname}-${pkgver}/${pkgname}-${pkgver}
-
- HOME=${srcdir}/${pkgname}-${pkgver} \
- cabal configure --prefix=/usr --libdir=${srcdir}/build/usr/lib --flags="-library embed_data_files"
- HOME=${srcdir}/${pkgname}-${pkgver} \
- cabal build
+ while read _hkpkg; do
+ pushd ${srcdir}/${pkgname}-${pkgver}/${_hkpkg} >/dev/null
+
+ extra="--prefix=${srcdir}/build/usr"
+ case $_hkpkg in
+ $pkgname-$pkgver)
+ extra="--flags=\"executable -library\" --prefix=/usr --libdir=${srcdir}/build/usr/lib -v" ;;
+ citeproc-hs-*)
+ extra="--flags=\"embed_data_files\" --prefix=${srcdir}/build/usr -v" ;;
+ esac
+
+ msg2 "Configuring $_hkpkg with $extra"
+ if [ "$_hkpkg" != "$pkgname-$pkgver" ]; then
+ HOME=${srcdir}/${pkgname}-${pkgver} \
+ cabal install $extra
+ else
+ HOME=${srcdir}/${pkgname}-${pkgver} \
+ cabal configure $extra
+ HOME=${srcdir}/${pkgname}-${pkgver} \
+ cabal build
+ fi
+
+ popd >/dev/null
+ done <BUILDORDER
}
package() {
+ cd ${srcdir}/${pkgname}-${pkgver}/${pkgname}-${pkgver}
- cd ${srcdir}/${pkgname}-${pkgver}/${pkgname}-${pkgver}
+ runghc Setup.hs copy --destdir=${pkgdir}/
- runghc Setup.hs copy --destdir=${pkgdir}/
+ msg2 "Removing lib files..."
+ rm -rfv ${pkgdir}/build
# EC is unfree and makes Parabola TeXLive cry
# besides, it's unneeded
- sed "/fontenc/d" -i ${pkgdir}/usr/share/${pkgname}-${pkgver}/templates/default.latex
-
-# runghc Setup.hs configure --prefix=DIR --bindir=DIR --libdir=DIR \
-# --datadir=DIR --libsubdir=DIR --datasubdir=DIR --docdir=DIR \
-# --htmldir=DIR --program-prefix=PREFIX --program-suffix=SUFFIX \
-# --mandir=DIR --flags=FLAGSPEC
-
-# Copy everything, but remove docs and haskell-libs
-# rm -r ${pkgdir}/usr/{lib,share/*}
+ sed "/fontenc/d" -i ${pkgdir}/usr/share/${pkgname}-${pkgver}/templates/default.latex
-# cp -a ${srcdir}/build/usr/share/man ${pkgdir}/usr/share/
-# cp -a ${srcdir}/build/usr/share/doc ${pkgdir}/usr/share/
- find ${pkgdir}/usr/share -type f -exec chmod 644 {} \;
- find ${pkgdir}/usr/share -type d -exec chmod 755 {} \;
+ find ${pkgdir}/usr/share -type f -exec chmod 644 {} \;
+ find ${pkgdir}/usr/share -type d -exec chmod 755 {} \;
}
+md5sums=('912abc4574aea3c5203eff1b02ceafa9'
+ '7ac798d62f253535a2e194af5aa1c3c3'
+ 'e632f8c06be8284e17329a5d1c459e3b')
diff --git a/~fauno/pandoc/SRCBUILD b/~fauno/pandoc/SRCBUILD
index 29c5f25ae..ebe1a0552 100755
--- a/~fauno/pandoc/SRCBUILD
+++ b/~fauno/pandoc/SRCBUILD
@@ -2,14 +2,17 @@
# Based on haskell-pandoc
pkgname=pandoc
-pkgver=1.9.4.2
-pkgrel=2
+pkgver=1.9.4.5
+# 0.3.6 fails with embed_data_files
+_citeproc=0.3.5
+pkgrel=3
pkgdesc='Conversion between markup formats (no Haskell libs)'
url='http://johnmacfarlane.net/pandoc/'
license=('GPL')
arch=('any')
makedepends=('ghc' 'sh' 'cabal-install')
source=()
+options=(!strip)
# PKGBUILD functions
build() {
@@ -20,22 +23,22 @@ build() {
cabal --verbose=3 update
HOME=${srcdir}/${pkgname}-${pkgver} \
- cabal --verbose=3 fetch file-embed ${pkgname}-${pkgver}
+ cabal --verbose=3 fetch file-embed citeproc-hs-${_citeproc} ${pkgname}-${pkgver}
msg2 "Getting the dependency build order"
# Ignore the cabal messages
HOME=${srcdir}/${pkgname}-${pkgver} \
- cabal install --dry-run file-embed ${pkgname}-${pkgver} | tail -n+3 >> BUILDORDER
+ cabal install --dry-run file-embed citeproc-hs-${_citeproc} ${pkgname}-${pkgver} | grep "\-[0-9]\+" >>BUILDORDER
}
package() {
export PKGEXT=.src.tar.xz
- export PKGDEST=${startdir}
+ export PKGDEST=${SRCDEST}
mkdir -p ${pkgdir}/${pkgname}-${pkgver}
cd ${pkgdir}/${pkgname}-${pkgver}
- find ${srcdir} -iname '*.tar.?z' -a \! -iname '00-index.tar.gz' -exec \
+ find ${srcdir}/${pkgname}-${pkgver} -iname '*.tar.?z' -a \! -iname '00-index.tar.gz' -exec \
bsdtar xvf '{}' \;
cp ${srcdir}/${pkgname}-${pkgver}/BUILDORDER .
diff --git a/~mtjm/cups-usblp/PKGBUILD b/~mtjm/cups-usblp/PKGBUILD
deleted file mode 100755
index 62b12072a..000000000
--- a/~mtjm/cups-usblp/PKGBUILD
+++ /dev/null
@@ -1,154 +0,0 @@
-# $Id: PKGBUILD 164175 2012-07-26 17:37:45Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-_pkgname="cups"
-pkgname="cups-usblp"
-pkgver=1.5.4
-pkgrel=1
-pkgdesc="The CUPS Printing System - daemon package with usblp backend"
-arch=('i686' 'x86_64' 'mips64el')
-license=('GPL')
-url="http://www.cups.org/"
-depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'libusb' 'dbus-core' 'libsystemd' 'hicolor-icon-theme')
-makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc'
- 'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme' 'systemd')
-optdepends=('php: for included phpcups.so module'
- 'xdg-utils: xdg .desktop file support')
-provides=("cups=${pkgver}")
-conflicts=("cups" "cups-libre")
-backup=(etc/cups/cupsd.conf
- etc/cups/snmp.conf
- etc/cups/printers.conf
- etc/cups/classes.conf
- etc/cups/subscriptions.conf
- etc/dbus-1/system.d/cups.conf
- etc/logrotate.d/cups
- etc/pam.d/cups
- etc/xinetd.d/cups-lpd)
-install=cups.install
-source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
- cups-avahi-1-config.patch
- cups-avahi-2-backend.patch
- cups-avahi-3-timeouts.patch
- cups-avahi-4-poll.patch
- cups-avahi-5-services.patch
- cups-no-export-ssllibs.patch
- cups-no-gcrypt.patch
- cups-no-gzip-man.patch
- cups-systemd-socket.patch
- cups cups.logrotate cups.pam)
-#options=('!emptydirs')
-md5sums=('de3006e5cf1ee78a9c6145ce62c4e982'
- '12c8af5bcd3b8f84240280b3dfaf9e89'
- 'cdc1322c8014297ae349e2db78a03c5a'
- '1a5112f63958643f2888abc9418dbcac'
- 'c37d1bf1bb76acc3fe93362c80d91b7c'
- '5d302860559960042f3b47a91b97c5fe'
- '9b8467a1e51d360096b70e2c3c081e6c'
- '3733c23e77eb503bd94cc368e02830dc'
- 'c9159ba1233902ba6ddbbe6885a46b72'
- '4505b8b2c57a7c28ea79e08388bbbbb9'
- '9657daa21760bb0b5fa3d8b51d5e01a1'
- 'f861b18f4446c43918c8643dcbbd7f6d'
- '96f82c38f3f540b53f3e5144900acf17')
-
-build() {
- cd ${srcdir}/${_pkgname}-${pkgver}
- # http://www.cups.org/str.php?L3066
- # Avahi support in the dnssd backend. patches from upstream/FC RawHide
- patch -Np1 -i ${srcdir}/cups-avahi-1-config.patch
- patch -Np1 -i ${srcdir}/cups-avahi-2-backend.patch
- patch -Np1 -i ${srcdir}/cups-avahi-3-timeouts.patch
- patch -Np1 -i ${srcdir}/cups-avahi-4-poll.patch
- patch -Np1 -i ${srcdir}/cups-avahi-5-services.patch
-
- # add systemd socket support - Fedora patch, also used in Gentoo
- patch -Np1 -i ${srcdir}/cups-systemd-socket.patch
-
- # Do not export SSL libs in cups-config
- patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
-
- patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
- # don't zip man pages in make install, let makepkg do that / Fedora
- patch -Np1 -i ${srcdir}/cups-no-gzip-man.patch
-
- # Rebuild configure script for --enable-avahi.
- aclocal -I config-scripts
- autoconf -I config-scripts
-
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
- --libdir=/usr/lib \
- --with-systemdsystemunitdir=/usr/lib/systemd/system \
- --with-logdir=/var/log/cups \
- --with-docdir=/usr/share/cups/doc \
- --with-cups-user=daemon \
- --with-cups-group=lp \
- --enable-pam=yes \
- --disable-ldap \
- --enable-raw-printing \
- --enable-dbus --with-dbusdir=/etc/dbus-1 \
- --enable-ssl=yes --enable-gnutls \
- --enable-threads \
- --enable-avahi\
- --with-php=/usr/bin/php-cgi \
- --with-pdftops=pdftops \
- --with-optim="$CFLAGS" \
- --disable-libusb
- make
-}
-
-check() {
- cd "$srcdir/$_pkgname-$pkgver"
- #httpAddrGetList(workstation64): FAIL
- #1 TESTS FAILED!
- #make[1]: *** [testhttp] Error 1
- make -k check || /bin/true
-}
-
-package() {
- cd ${srcdir}/${_pkgname}-${pkgver}
- make BUILDROOT=${pkgdir} install-data install-exec
-
- # this one we ship in the libcups pkg
- rm -f ${pkgdir}/usr/bin/cups-config
-
- # kill the sysv stuff
- rm -rf ${pkgdir}/etc/rc*.d
- rm -rf ${pkgdir}/etc/init.d
- install -D -m755 ../cups ${pkgdir}/etc/rc.d/cupsd
- install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
- install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
-
- # fix perms on /var/spool and /etc
- chmod 755 ${pkgdir}/var/spool
- chmod 755 ${pkgdir}/etc
-
- # install ssl directory where to store the certs, solves some samba issues
- install -dm700 -g lp ${pkgdir}/etc/cups/ssl
- # remove directory from package, we create it in cups rc.d file
- rm -rf ${pkgdir}/var/run
-
- # install some more configuration files that will get filled by cupsd
- touch ${pkgdir}/etc/cups/printers.conf
- touch ${pkgdir}/etc/cups/classes.conf
- touch ${pkgdir}/etc/cups/subscriptions.conf
- chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf}
-
- # fix .desktop file
- sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
-
- # compress some driver files, adopted from Fedora
- find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
-
- # remove client.conf man page
- rm -f ${pkgdir}/usr/share/man/man5/client.conf.5
-
- # remove files now part of cups-filters - check cups-filters INSTALL for packagers instructions
- rm -v ${pkgdir}/usr/lib/cups/backend/{parallel,serial}
- rm -v ${pkgdir}/usr/lib/cups/filter/{bannertops,commandtoescpx,commandtopclx,imagetops,imagetoraster,pdftops,rastertoescpx,rastertopclx,texttops}
- rm -v ${pkgdir}/usr/share/cups/banners/*
- rm -v ${pkgdir}/usr/share/cups/data/{testprint,psglyphs}
- rm -v ${pkgdir}/usr/share/cups/fonts/*
- # comment out all conversion rules which use any of the removed filters
- perl -p -i -e 's:^(.*\s+(pdftops|texttops|imagetops|bannertops|imagetoraster)\s*)$:#\1:' ${pkgdir}/usr/share/cups/mime/mime.convs
-}
diff --git a/~mtjm/cups-usblp/cups b/~mtjm/cups-usblp/cups
deleted file mode 100755
index 744c8e663..000000000
--- a/~mtjm/cups-usblp/cups
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-
-daemon_name=cupsd
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-#. /etc/conf.d/$daemon_name.conf
-
-get_pid() {
- pidof -o %PPID $daemon_name
-}
-
-case "$1" in
- start)
- stat_busy "Starting $daemon_name daemon"
-
- PID=$(get_pid)
- if [ -z "$PID" ]; then
- [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
- # RUN
- $daemon_name
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- echo $(get_pid) > /var/run/$daemon_name.pid
- add_daemon $daemon_name
- stat_done
- fi
- else
- stat_fail
- exit 1
- fi
- ;;
-
- stop)
- stat_busy "Stopping $daemon_name daemon"
- PID=$(get_pid)
- # KILL
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- #
- if [ $? -gt 0 ]; then
- stat_fail
- exit 1
- else
- rm -f /var/run/$daemon_name.pid &> /dev/null
- rm_daemon $daemon_name
- stat_done
- fi
- ;;
-
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
-
- status)
- stat_busy "Checking $daemon_name status";
- ck_status $daemon_name
- ;;
-
- *)
- echo "usage: $0 {start|stop|restart|status}"
-esac
-
-exit 0
diff --git a/~mtjm/cups-usblp/cups-avahi-1-config.patch b/~mtjm/cups-usblp/cups-avahi-1-config.patch
deleted file mode 100755
index 304cd2607..000000000
--- a/~mtjm/cups-usblp/cups-avahi-1-config.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -up cups-1.5.2/config.h.in.avahi-1-config cups-1.5.2/config.h.in
---- cups-1.5.2/config.h.in.avahi-1-config 2011-06-16 21:12:16.000000000 +0100
-+++ cups-1.5.2/config.h.in 2012-03-14 15:04:51.365347165 +0000
-@@ -390,6 +390,13 @@
-
-
- /*
-+ * Do we have Avahi for DNS Service Discovery?
-+ */
-+
-+#undef HAVE_AVAHI
-+
-+
-+/*
- * Do we have <sys/ioctl.h>?
- */
-
-diff -up cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config cups-1.5.2/config-scripts/cups-dnssd.m4
---- cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config 2011-05-12 06:21:56.000000000 +0100
-+++ cups-1.5.2/config-scripts/cups-dnssd.m4 2012-03-14 15:04:51.365347165 +0000
-@@ -23,6 +23,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
- DNSSDLIBS=""
- DNSSD_BACKEND=""
-
-+AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
-+ [if test x$enable_avahi = xyes; then
-+ AC_MSG_CHECKING(for Avahi)
-+ if $PKGCONFIG --exists avahi-client; then
-+ AC_MSG_RESULT(yes)
-+ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
-+ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
-+ DNSSD_BACKEND="dnssd"
-+ AC_DEFINE(HAVE_AVAHI)
-+ enable_dnssd=no
-+ else
-+ AC_MSG_RESULT(no)
-+ fi
-+ fi])
-+
- if test x$enable_dnssd != xno; then
- AC_CHECK_HEADER(dns_sd.h, [
- case "$uname" in \ No newline at end of file
diff --git a/~mtjm/cups-usblp/cups-avahi-2-backend.patch b/~mtjm/cups-usblp/cups-avahi-2-backend.patch
deleted file mode 100755
index 00e12a0a3..000000000
--- a/~mtjm/cups-usblp/cups-avahi-2-backend.patch
+++ /dev/null
@@ -1,1118 +0,0 @@
-diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
---- cups-1.5.3/backend/dnssd.c.avahi-2-backend 2012-05-15 16:53:18.164774446 +0200
-+++ cups-1.5.3/backend/dnssd.c 2012-05-15 17:09:07.684155704 +0200
-@@ -15,14 +15,21 @@
- *
- * Contents:
- *
-+ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
-+ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
- * main() - Browse for printers.
- * browse_callback() - Browse devices.
- * browse_local_callback() - Browse local devices.
- * compare_devices() - Compare two devices.
- * exec_backend() - Execute the backend that corresponds to the
- * resolved service name.
-+ * device_type() - Get DNS-SD type enumeration from string.
- * get_device() - Create or update a device.
- * query_callback() - Process query data.
-+ * avahi_client_callback() - Avahi client callback function.
-+ * avahi_query_callback() - Avahi query callback function.
-+ * avahi_browse_callback() - Avahi browse callback function.
-+ * find_device() - Find a device from its name and domain.
- * sigterm_handler() - Handle termination signals...
- * unquote() - Unquote a name string.
- */
-@@ -33,7 +40,18 @@
-
- #include "backend-private.h"
- #include <cups/array.h>
--#include <dns_sd.h>
-+#ifdef HAVE_DNSSD
-+# include <dns_sd.h>
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/lookup.h>
-+# include <avahi-common/simple-watch.h>
-+# include <avahi-common/domain.h>
-+# include <avahi-common/error.h>
-+# include <avahi-common/malloc.h>
-+#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -53,7 +71,12 @@ typedef enum
-
- typedef struct
- {
-+#ifdef HAVE_DNSSD
- DNSServiceRef ref; /* Service reference for resolve */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int resolved; /* Did we resolve the device? */
-+#endif /* HAVE_AVAHI */
- char *name, /* Service name */
- *domain, /* Domain name */
- *fullName, /* Full name */
-@@ -65,6 +88,20 @@ typedef struct
- sent; /* Did we list the device? */
- } cups_device_t;
-
-+typedef struct
-+{
-+ char key[256];
-+ char value[256];
-+
-+#ifdef HAVE_DNSSD
-+ const uint8_t *data;
-+ const uint8_t *datanext;
-+ const uint8_t *dataend;
-+#else /* HAVE_AVAHI */
-+ AvahiStringList *txt;
-+#endif /* HAVE_DNSSD */
-+} cups_txt_records_t;
-+
-
- /*
- * Local globals...
-@@ -78,6 +115,7 @@ static int job_canceled = 0;
- * Local functions...
- */
-
-+#ifdef HAVE_DNSSD
- static void browse_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
-@@ -95,13 +133,6 @@ static void browse_local_callback(DNSSe
- const char *replyDomain,
- void *context)
- __attribute__((nonnull(1,5,6,7,8)));
--static int compare_devices(cups_device_t *a, cups_device_t *b);
--static void exec_backend(char **argv);
--static cups_device_t *get_device(cups_array_t *devices,
-- const char *serviceName,
-- const char *regtype,
-- const char *replyDomain)
-- __attribute__((nonnull(1,2,3,4)));
- static void query_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
-@@ -111,10 +142,119 @@ static void query_callback(DNSServiceRe
- const void *rdata, uint32_t ttl,
- void *context)
- __attribute__((nonnull(1,5,9,11)));
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+static void avahi_client_callback (AvahiClient *client,
-+ AvahiClientState state,
-+ void *context);
-+static void avahi_browse_callback (AvahiServiceBrowser *browser,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiBrowserEvent event,
-+ const char *serviceName,
-+ const char *regtype,
-+ const char *replyDomain,
-+ AvahiLookupResultFlags flags,
-+ void *context);
-+#endif /* HAVE_AVAHI */
-+static cups_device_t * find_device (cups_array_t *devices,
-+ cups_txt_records_t *txt,
-+ cups_device_t *dkey);
-+static int compare_devices(cups_device_t *a, cups_device_t *b);
-+static void exec_backend(char **argv);
-+static cups_device_t *get_device(cups_array_t *devices,
-+ const char *serviceName,
-+ const char *regtype,
-+ const char *replyDomain)
-+ __attribute__((nonnull(1,2,3,4)));
- static void sigterm_handler(int sig);
- static void unquote(char *dst, const char *src, size_t dstsize)
- __attribute__((nonnull(1,2)));
-
-+#ifdef HAVE_AVAHI
-+static AvahiSimplePoll *simple_poll = NULL;
-+static int avahi_got_callback;
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
-+ */
-+
-+static cups_txt_records_t *
-+next_txt_record (cups_txt_records_t *txt)
-+{
-+#ifdef HAVE_DNSSD
-+ txt->data = txt->datanext;
-+#else /* HAVE_AVAHI */
-+ txt->txt = avahi_string_list_get_next (txt->txt);
-+ if (txt->txt == NULL)
-+ return NULL;
-+#endif /* HAVE_DNSSD */
-+
-+ return txt;
-+}
-+
-+
-+/*
-+ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
-+ */
-+
-+static int
-+parse_txt_record_pair (cups_txt_records_t *txt)
-+{
-+#ifdef HAVE_DNSSD
-+ uint8_t datalen;
-+ uint8_t *data = txt->data;
-+ char *ptr;
-+
-+ /*
-+ * Read a key/value pair starting with an 8-bit length. Since the
-+ * length is 8 bits and the size of the key/value buffers is 256, we
-+ * don't need to check for overflow...
-+ */
-+
-+ datalen = *data++;
-+ if (!datalen || (data + datalen) > txt->dataend)
-+ return NULL;
-+ txt->datanext = data + datalen;
-+
-+ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
-+ *ptr++ = *data;
-+ *ptr = '\0';
-+
-+ if (data < txt->datanext && *data == '=')
-+ {
-+ data++;
-+
-+ if (data < datanext)
-+ memcpy (txt->value, data, txt->datanext - data);
-+ value[txt->datanext - data] = '\0';
-+ }
-+ else
-+ return 1;
-+#else /* HAVE_AVAHI */
-+ char *key, *value;
-+ size_t len;
-+ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
-+ if (len > sizeof (txt->value) - 1)
-+ len = sizeof (txt->value) - 1;
-+
-+ memcpy (txt->value, value, len);
-+ txt->value[len] = '\0';
-+ len = strlen (key);
-+ if (len > sizeof (txt->key) - 1)
-+ len = sizeof (txt->key) - 1;
-+
-+ memcpy (txt->key, key, len);
-+ txt->key[len] = '\0';
-+ avahi_free (key);
-+ avahi_free (value);
-+#endif /* HAVE_AVAHI */
-+
-+ return 0;
-+}
-+
-
- /*
- * 'main()' - Browse for printers.
-@@ -125,6 +265,13 @@ main(int argc, /* I - Number of comm
- char *argv[]) /* I - Command-line arguments */
- {
- const char *name; /* Backend name */
-+ cups_array_t *devices; /* Device array */
-+ cups_device_t *device; /* Current device */
-+ char uriName[1024]; /* Unquoted fullName for URI */
-+#ifdef HAVE_DNSSD
-+ int fd; /* Main file descriptor */
-+ fd_set input; /* Input set for select() */
-+ struct timeval timeout; /* Timeout for select() */
- DNSServiceRef main_ref, /* Main service reference */
- fax_ipp_ref, /* IPP fax service reference */
- ipp_ref, /* IPP service reference */
-@@ -138,12 +285,11 @@ main(int argc, /* I - Number of comm
- pdl_datastream_ref, /* AppSocket service reference */
- printer_ref, /* LPD service reference */
- riousbprint_ref; /* Remote IO service reference */
-- int fd; /* Main file descriptor */
-- fd_set input; /* Input set for select() */
-- struct timeval timeout; /* Timeout for select() */
-- cups_array_t *devices; /* Device array */
-- cups_device_t *device; /* Current device */
-- char uriName[1024]; /* Unquoted fullName for URI */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ AvahiClient *client;
-+ int error;
-+#endif /* HAVE_AVAHI */
- #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
- struct sigaction action; /* Actions for POSIX signals */
- #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
-@@ -203,6 +349,49 @@ main(int argc, /* I - Number of comm
- * Browse for different kinds of printers...
- */
-
-+#ifdef HAVE_AVAHI
-+ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
-+ {
-+ perror ("ERROR: Unable to create avahi simple poll object");
-+ return (1);
-+ }
-+
-+ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
-+ 0, avahi_client_callback, NULL, &error);
-+ if (!client)
-+ {
-+ perror ("DEBUG: Unable to create avahi client");
-+ return (0);
-+ }
-+
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_fax-ipp._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_ipp._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_ipp-tls._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_pdl-datastream._tcp",
-+ NULL, 0,
-+ avahi_browse_callback,
-+ devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_printer._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_riousbprint._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+#endif /* HAVE_AVAHI */
-+#ifdef HAVE_DNSSD
- if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
- {
- perror("ERROR: Unable to create service connection");
-@@ -263,6 +452,7 @@ main(int argc, /* I - Number of comm
- riousbprint_ref = main_ref;
- DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
- "_riousbprint._tcp", NULL, browse_callback, devices);
-+#endif /* HAVE_DNSSD */
-
- /*
- * Loop until we are killed...
-@@ -270,6 +460,9 @@ main(int argc, /* I - Number of comm
-
- while (!job_canceled)
- {
-+ int announce = 0;
-+
-+#ifdef HAVE_DNSSD
- FD_ZERO(&input);
- FD_SET(fd, &input);
-
-@@ -289,11 +482,35 @@ main(int argc, /* I - Number of comm
- }
- else
- {
-+ announce = 1;
-+ }
-+#else /* HAVE_AVAHI */
-+ int r;
-+ avahi_got_callback = 0;
-+ r = avahi_simple_poll_iterate (simple_poll, 1);
-+ if (r != 0 && r != EINTR)
-+ {
-+ /*
-+ * We've been told to exit the loop. Perhaps the connection to
-+ * avahi failed.
-+ */
-+
-+ break;
-+ }
-+
-+ if (avahi_got_callback)
-+ announce = 1;
-+#endif /* HAVE_DNSSD */
-+
-+ if (announce)
-+ {
- /*
- * Announce any devices we've found...
- */
-
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType status; /* DNS query status */
-+#endif /* HAVE_DNSSD */
- cups_device_t *best; /* Best matching device */
- char device_uri[1024]; /* Device URI */
- int count; /* Number of queries */
-@@ -307,6 +524,7 @@ main(int argc, /* I - Number of comm
- if (device->sent)
- sent ++;
-
-+#ifdef HAVE_DNSSD
- if (device->ref)
- count ++;
-
-@@ -338,14 +556,23 @@ main(int argc, /* I - Number of comm
- count ++;
- }
- }
-- else if (!device->sent)
-+ else
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (!device->resolved)
-+ continue;
-+ else
-+#endif /* HAVE_AVAHI */
-+ if (!device->sent)
- {
-+#ifdef HAVE_DNSSD
- /*
- * Got the TXT records, now report the device...
- */
-
- DNSServiceRefDeallocate(device->ref);
- device->ref = 0;
-+#endif /* HAVE_DNSSD */
-
- if (!best)
- best = device;
-@@ -406,6 +633,7 @@ main(int argc, /* I - Number of comm
- }
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'browse_callback()' - Browse devices.
- */
-@@ -494,6 +722,7 @@ browse_local_callback(
- device->fullName);
- device->sent = 1;
- }
-+#endif /* HAVE_DNSSD */
-
-
- /*
-@@ -574,6 +803,41 @@ exec_backend(char **argv) /* I - Comman
-
-
- /*
-+ * 'device_type()' - Get DNS-SD type enumeration from string.
-+ */
-+
-+static int
-+device_type (const char *regtype)
-+{
-+#ifdef HAVE_AVAHI
-+ if (!strcmp(regtype, "_ipp._tcp"))
-+ return (CUPS_DEVICE_IPP);
-+ else if (!strcmp(regtype, "_ipps._tcp") ||
-+ !strcmp(regtype, "_ipp-tls._tcp"))
-+ return (CUPS_DEVICE_IPPS);
-+ else if (!strcmp(regtype, "_fax-ipp._tcp"))
-+ return (CUPS_DEVICE_FAX_IPP);
-+ else if (!strcmp(regtype, "_printer._tcp"))
-+ return (CUPS_DEVICE_PDL_DATASTREAM);
-+#else
-+ if (!strcmp(regtype, "_ipp._tcp."))
-+ return (CUPS_DEVICE_IPP);
-+ else if (!strcmp(regtype, "_ipps._tcp.") ||
-+ !strcmp(regtype, "_ipp-tls._tcp."))
-+ return (CUPS_DEVICE_IPPS);
-+ else if (!strcmp(regtype, "_fax-ipp._tcp."))
-+ return (CUPS_DEVICE_FAX_IPP);
-+ else if (!strcmp(regtype, "_printer._tcp."))
-+ return (CUPS_DEVICE_PRINTER);
-+ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
-+ return (CUPS_DEVICE_PDL_DATASTREAM);
-+#endif /* HAVE_AVAHI */
-+
-+ return (CUPS_DEVICE_RIOUSBPRINT);
-+}
-+
-+
-+/*
- * 'get_device()' - Create or update a device.
- */
-
-@@ -594,20 +858,7 @@ get_device(cups_array_t *devices, /* I -
- */
-
- key.name = (char *)serviceName;
--
-- if (!strcmp(regtype, "_ipp._tcp."))
-- key.type = CUPS_DEVICE_IPP;
-- else if (!strcmp(regtype, "_ipps._tcp.") ||
-- !strcmp(regtype, "_ipp-tls._tcp."))
-- key.type = CUPS_DEVICE_IPPS;
-- else if (!strcmp(regtype, "_fax-ipp._tcp."))
-- key.type = CUPS_DEVICE_FAX_IPP;
-- else if (!strcmp(regtype, "_printer._tcp."))
-- key.type = CUPS_DEVICE_PRINTER;
-- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
-- key.type = CUPS_DEVICE_PDL_DATASTREAM;
-- else
-- key.type = CUPS_DEVICE_RIOUSBPRINT;
-+ key.type = device_type (regtype);
-
- for (device = cupsArrayFind(devices, &key);
- device;
-@@ -627,8 +878,14 @@ get_device(cups_array_t *devices, /* I -
- free(device->domain);
- device->domain = strdup(replyDomain);
-
-+#ifdef HAVE_DNSSD
- DNSServiceConstructFullName(fullName, device->name, regtype,
- replyDomain);
-+#else /* HAVE_AVAHI */
-+ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
-+ serviceName, regtype, replyDomain);
-+#endif /* HAVE_DNSSD */
-+
- free(device->fullName);
- device->fullName = strdup(fullName);
- }
-@@ -648,6 +905,9 @@ get_device(cups_array_t *devices, /* I -
- device->domain = strdup(replyDomain);
- device->type = key.type;
- device->priority = 50;
-+#ifdef HAVE_AVAHI
-+ device->resolved = 0;
-+#endif /* HAVE_AVAHI */
-
- cupsArrayAdd(devices, device);
-
-@@ -655,13 +915,20 @@ get_device(cups_array_t *devices, /* I -
- * Set the "full name" of this service, which is used for queries...
- */
-
-+#ifdef HAVE_DNSSD
- DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
-+#else /* HAVE_AVAHI */
-+ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
-+ serviceName, regtype, replyDomain);
-+#endif /* HAVE_DNSSD */
-+
- device->fullName = strdup(fullName);
-
- return (device);
- }
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'query_callback()' - Process query data.
- */
-@@ -685,7 +952,7 @@ query_callback(
- *ptr; /* Pointer into string */
- cups_device_t dkey, /* Search key */
- *device; /* Device */
--
-+ cups_txt_records_t txt;
-
- fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
- "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
-@@ -719,94 +986,233 @@ query_callback(
- if ((ptr = strstr(name, "._")) != NULL)
- *ptr = '\0';
-
-- if (strstr(fullName, "_ipp._tcp."))
-- dkey.type = CUPS_DEVICE_IPP;
-- else if (strstr(fullName, "_ipps._tcp.") ||
-- strstr(fullName, "_ipp-tls._tcp."))
-- dkey.type = CUPS_DEVICE_IPPS;
-- else if (strstr(fullName, "_fax-ipp._tcp."))
-- dkey.type = CUPS_DEVICE_FAX_IPP;
-- else if (strstr(fullName, "_printer._tcp."))
-- dkey.type = CUPS_DEVICE_PRINTER;
-- else if (strstr(fullName, "_pdl-datastream._tcp."))
-- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
-+ dkey.type = device_type (fullName);
-+
-+ txt.data = rdata;
-+ txt.dataend = rdata + rdlen;
-+ device = find_device ((cups_array_t *) context, &txt, &dkey);
-+ if (!device)
-+ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
-+}
-+#endif /* HAVE_DNSSD */
-+
-+
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahi_client_callback()' - Avahi client callback function.
-+ */
-+
-+static void
-+avahi_client_callback(AvahiClient *client,
-+ AvahiClientState state,
-+ void *context)
-+{
-+ /*
-+ * If the connection drops, quit.
-+ */
-+
-+ if (state == AVAHI_CLIENT_FAILURE)
-+ {
-+ fprintf (stderr, "ERROR: Avahi connection failed\n");
-+ avahi_simple_poll_quit (simple_poll);
-+ }
-+}
-+
-+
-+/*
-+ * 'avahi_query_callback()' - Avahi query callback function.
-+ */
-+
-+static void
-+avahi_query_callback(AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ AvahiClient *client;
-+ cups_device_t key,
-+ *device;
-+ char uqname[1024],
-+ *ptr;
-+ cups_txt_records_t txtr;
-+
-+ client = avahi_service_resolver_get_client (resolver);
-+ if (event != AVAHI_RESOLVER_FOUND)
-+ {
-+ if (event == AVAHI_RESOLVER_FAILURE)
-+ {
-+ fprintf (stderr, "ERROR: %s\n",
-+ avahi_strerror (avahi_client_errno (client)));
-+ }
-+
-+ avahi_service_resolver_free (resolver);
-+ return;
-+ }
-+
-+ /*
-+ * Set search key for device.
-+ */
-+
-+ key.name = uqname;
-+ unquote (uqname, name, sizeof (uqname));
-+ if ((ptr = strstr(name, "._")) != NULL)
-+ *ptr = '\0';
-+
-+ key.domain = (char *) domain;
-+ key.type = device_type (type);
-+
-+ /*
-+ * Find the device and the the TXT information.
-+ */
-+
-+ txtr.txt = txt;
-+ device = find_device ((cups_array_t *) context, &txtr, &key);
-+ if (device)
-+ {
-+ /*
-+ * Let the main loop know to announce the device.
-+ */
-+
-+ device->resolved = 1;
-+ avahi_got_callback = 1;
-+ }
- else
-- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
-+ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
-
-- for (device = cupsArrayFind(devices, &dkey);
-+ avahi_service_resolver_free (resolver);
-+}
-+
-+
-+/*
-+ * 'avahi_browse_callback()' - Avahi browse callback function.
-+ */
-+
-+static void
-+avahi_browse_callback(AvahiServiceBrowser *browser,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiBrowserEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ AvahiClient *client = avahi_service_browser_get_client (browser);
-+
-+ switch (event)
-+ {
-+ case AVAHI_BROWSER_FAILURE:
-+ fprintf (stderr, "ERROR: %s\n",
-+ avahi_strerror (avahi_client_errno (client)));
-+ avahi_simple_poll_quit (simple_poll);
-+ return;
-+
-+ case AVAHI_BROWSER_NEW:
-+ /*
-+ * This object is new on the network.
-+ */
-+
-+ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
-+ {
-+ /*
-+ * This comes from the local machine so ignore it.
-+ */
-+
-+ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
-+ }
-+ else
-+ {
-+ /*
-+ * Create a device entry for it if it doesn't yet exist.
-+ */
-+
-+ get_device ((cups_array_t *)context, name, type, domain);
-+
-+ /*
-+ * Now look for a TXT entry.
-+ */
-+
-+ if (avahi_service_resolver_new (client, interface, protocol,
-+ name, type, domain,
-+ AVAHI_PROTO_UNSPEC, 0,
-+ avahi_query_callback, context) == NULL)
-+ {
-+ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
-+ name, avahi_strerror (avahi_client_errno (client)));
-+ }
-+ }
-+
-+ break;
-+
-+ case AVAHI_BROWSER_REMOVE:
-+ case AVAHI_BROWSER_ALL_FOR_NOW:
-+ case AVAHI_BROWSER_CACHE_EXHAUSTED:
-+ break;
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * 'find_device()' - Find a device from its name and domain.
-+ */
-+
-+static cups_device_t *
-+find_device (cups_array_t *devices,
-+ cups_txt_records_t *txt,
-+ cups_device_t *dkey)
-+{
-+ cups_device_t *device;
-+ char *ptr;
-+
-+ for (device = cupsArrayFind(devices, dkey);
- device;
- device = cupsArrayNext(devices))
- {
-- if (_cups_strcasecmp(device->name, dkey.name) ||
-- _cups_strcasecmp(device->domain, dkey.domain))
-+ if (_cups_strcasecmp(device->name, dkey->name) ||
-+ _cups_strcasecmp(device->domain, dkey->domain))
- {
- device = NULL;
- break;
- }
-- else if (device->type == dkey.type)
-+ else if (device->type == dkey->type)
- {
- /*
- * Found it, pull out the priority and make and model from the TXT
- * record and save it...
- */
-
-- const uint8_t *data, /* Pointer into data */
-- *datanext, /* Next key/value pair */
-- *dataend; /* End of entire TXT record */
-- uint8_t datalen; /* Length of current key/value pair */
-- char key[256], /* Key string */
-- value[256], /* Value string */
-- make_and_model[512],
-+ char make_and_model[512],
- /* Manufacturer and model */
- model[256], /* Model */
-- device_id[2048];/* 1284 device ID */
--
-+ device_id[2048]; /* 1284 device ID */
-
- device_id[0] = '\0';
- make_and_model[0] = '\0';
-
- strcpy(model, "Unknown");
-
-- for (data = rdata, dataend = data + rdlen;
-- data < dataend;
-- data = datanext)
-+ for (;;)
- {
-- /*
-- * Read a key/value pair starting with an 8-bit length. Since the
-- * length is 8 bits and the size of the key/value buffers is 256, we
-- * don't need to check for overflow...
-- */
--
-- datalen = *data++;
--
-- if (!datalen || (data + datalen) > dataend)
-- break;
--
-- datanext = data + datalen;
--
-- for (ptr = key; data < datanext && *data != '='; data ++)
-- *ptr++ = *data;
-- *ptr = '\0';
-+ char *key;
-+ char *value;
-
-- if (data < datanext && *data == '=')
-- {
-- data ++;
--
-- if (data < datanext)
-- memcpy(value, data, datanext - data);
-- value[datanext - data] = '\0';
-+ if (parse_txt_record_pair (txt))
-+ goto next;
-
-- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
-- key, value);
-- }
-- else
-- {
-- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
-- key);
-- continue;
-- }
--
-- if (!_cups_strncasecmp(key, "usb_", 4))
-+ key = txt->key;
-+ value = txt->value;
-+ if (!strncasecmp(key, "usb_", 4))
- {
- /*
- * Add USB device ID information...
-@@ -861,6 +1267,10 @@ query_callback(
- if (device->type == CUPS_DEVICE_PRINTER)
- device->sent = 1;
- }
-+
-+ next:
-+ if (next_txt_record (txt) == NULL)
-+ break;
- }
-
- if (device->device_id)
-@@ -917,11 +1327,9 @@ query_callback(
- }
- }
-
-- if (!device)
-- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
-+ return device;
- }
-
--
- /*
- * 'sigterm_handler()' - Handle termination signals...
- */
-diff -up cups-1.5.3/cups/http-support.c.avahi-2-backend cups-1.5.3/cups/http-support.c
---- cups-1.5.3/cups/http-support.c.avahi-2-backend 2012-02-15 02:06:12.000000000 +0100
-+++ cups-1.5.3/cups/http-support.c 2012-05-15 17:04:51.045944634 +0200
-@@ -43,6 +43,10 @@
- * http_copy_decode() - Copy and decode a URI.
- * http_copy_encode() - Copy and encode a URI.
- * http_resolve_cb() - Build a device URI for the given service name.
-+ * avahi_resolve_uri_client_cb()
-+ * - Avahi client callback for resolving URI.
-+ * avahi_resolve_uri_resolver_cb()
-+ * - Avahi resolver callback for resolving URI.
- */
-
- /*
-@@ -60,6 +64,11 @@
- # include <sys/select.h>
- # endif /* WIN32 */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/lookup.h>
-+# include <avahi-common/simple-watch.h>
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -127,6 +136,24 @@ static void DNSSD_API http_resolve_cb(DN
- void *context);
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+static void avahi_resolve_uri_client_cb(AvahiClient *client,
-+ AvahiClientState state,
-+ void *simple_poll);
-+static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context);
-+#endif /* HAVE_AVAHI */
-
- /*
- * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
-@@ -1434,6 +1461,9 @@ _httpResolveURI(
-
- if (strstr(hostname, "._tcp"))
- {
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ char *regtype, /* Pointer to type in hostname */
-+ *domain; /* Pointer to domain in hostname */
- #ifdef HAVE_DNSSD
- # ifdef WIN32
- # pragma comment(lib, "dnssd.lib")
-@@ -1452,6 +1482,17 @@ _httpResolveURI(
- fd_set input_set; /* Input set for select() */
- struct timeval stimeout; /* Timeout value for select() */
- #endif /* HAVE_POLL */
-+#else /* HAVE_AVAHI */
-+ AvahiSimplePoll *simple_poll;
-+ AvahiClient *client;
-+ int error;
-+ struct
-+ {
-+ AvahiSimplePoll *poll;
-+ _http_uribuf_t uribuf;
-+ } user_data;
-+#endif /* HAVE_DNSSD */
-+
-
- if (options & _HTTP_RESOLVE_STDERR)
- fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
-@@ -1488,9 +1529,16 @@ _httpResolveURI(
- if (domain)
- *domain++ = '\0';
-
-+#ifdef HAVE_DNSSD
- uribuf.buffer = resolved_uri;
- uribuf.bufsize = resolved_size;
- uribuf.options = options;
-+#else
-+ user_data.uribuf.buffer = resolved_uri;
-+ user_data.uribuf.bufsize = resolved_size;
-+ user_data.uribuf.options = options;
-+#endif
-+
- resolved_uri[0] = '\0';
-
- DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
-@@ -1504,6 +1552,7 @@ _httpResolveURI(
-
- uri = NULL;
-
-+#ifdef HAVE_DNSSD
- if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
- {
- localref = ref;
-@@ -1611,6 +1660,36 @@ _httpResolveURI(
-
- DNSServiceRefDeallocate(ref);
- }
-+#else /* HAVE_AVAHI */
-+ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
-+ {
-+ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
-+ 0, avahi_resolve_uri_client_cb,
-+ &simple_poll, &error)) != NULL)
-+ {
-+ user_data.poll = simple_poll;
-+ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC, hostname,
-+ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
-+ avahi_resolve_uri_resolver_cb,
-+ &user_data) != NULL)
-+ {
-+ avahi_simple_poll_loop (simple_poll);
-+
-+ /*
-+ * Collect the result.
-+ */
-+
-+ if (resolved_uri[0])
-+ uri = resolved_uri;
-+ }
-+
-+ avahi_client_free (client);
-+ }
-+
-+ avahi_simple_poll_free (simple_poll);
-+ }
-+#endif /* HAVE_DNSSD */
-
- if (options & _HTTP_RESOLVE_STDERR)
- {
-@@ -1622,13 +1701,13 @@ _httpResolveURI(
- fputs("STATE: -connecting-to-device,offline-report\n", stderr);
- }
-
--#else
-+#else /* HAVE_DNSSD || HAVE_AVAHI */
- /*
- * No DNS-SD support...
- */
-
- uri = NULL;
--#endif /* HAVE_DNSSD */
-+#endif /* HAVE_DNSSD || HAVE_AVAHI */
-
- if ((options & _HTTP_RESOLVE_STDERR) && !uri)
- _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
-@@ -1916,6 +1995,115 @@ http_resolve_cb(
- }
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
-+ */
-+
-+static void
-+avahi_resolve_uri_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *simple_poll)
-+{
-+ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
-+ "simple_poll=%p)\n", client, state, simple_poll));
-+
-+ /*
-+ * If the connection drops, quit.
-+ */
-+
-+ if (state == AVAHI_CLIENT_FAILURE)
-+ avahi_simple_poll_quit (simple_poll);
-+}
-+
-+
-+/*
-+ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
-+ * URI.
-+ */
-+
-+static void
-+avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ const char *scheme; /* URI scheme */
-+ char rp[256]; /* Remote printer */
-+ AvahiStringList *pair;
-+ char *value;
-+ size_t valueLen = 0;
-+ char addr[AVAHI_ADDRESS_STR_MAX];
-+ struct
-+ {
-+ AvahiSimplePoll *poll;
-+ _http_uribuf_t uribuf;
-+ } *poll_uribuf = context;
-+
-+ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
-+ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
-+ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
-+ "port=%d, txt=%p, flags=%d, context=%p)\n",
-+ resolver, interface, protocol, event, name, type, domain,
-+ host_name, address, port, txt, flags, context));
-+
-+ if (event != AVAHI_RESOLVER_FOUND)
-+ {
-+ avahi_service_resolver_free (resolver);
-+ avahi_simple_poll_quit (poll_uribuf->poll);
-+ return;
-+ }
-+
-+ /*
-+ * Figure out the scheme from the full name...
-+ */
-+
-+ if (strstr(type, "_ipp."))
-+ scheme = "ipp";
-+ else if (strstr(type, "_printer."))
-+ scheme = "lpd";
-+ else if (strstr(type, "_pdl-datastream."))
-+ scheme = "socket";
-+ else
-+ scheme = "riousbprint";
-+
-+ /*
-+ * Extract the "remote printer key from the TXT record...
-+ */
-+
-+ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
-+ {
-+ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
-+ rp[0] = '/';
-+ memcpy (rp + 1, value, valueLen);
-+ rp[valueLen + 1] = '\0';
-+ }
-+ else
-+ rp[0] = '\0';
-+
-+ /*
-+ * Assemble the final device URI...
-+ */
-+
-+ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
-+ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
-+ poll_uribuf->uribuf.bufsize, scheme, NULL,
-+ addr, port, rp);
-+ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
-+ poll_uribuf->uribuf.buffer));
-+ avahi_simple_poll_quit (poll_uribuf->poll);
-+}
-+#endif /* HAVE_AVAHI */
-+
-
- /*
- * End of "$Id: http-support.c 10284 2012-02-15 01:06:12Z mike $". \ No newline at end of file
diff --git a/~mtjm/cups-usblp/cups-avahi-3-timeouts.patch b/~mtjm/cups-usblp/cups-avahi-3-timeouts.patch
deleted file mode 100755
index daf852a0f..000000000
--- a/~mtjm/cups-usblp/cups-avahi-3-timeouts.patch
+++ /dev/null
@@ -1,381 +0,0 @@
-diff -up cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.2/scheduler/cupsd.h
---- cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
-+++ cups-1.5.2/scheduler/cupsd.h 2012-03-14 15:06:36.509476983 +0000
-@@ -140,6 +140,15 @@ extern const char *cups_hstrerror(int);
-
- typedef void (*cupsd_selfunc_t)(void *data);
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * Timeout callback function type...
-+ */
-+
-+typedef struct _cupsd_timeout_s cupsd_timeout_t;
-+typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
-+#endif /* HAVE_AVAHI */
-+
-
- /*
- * Globals...
-@@ -173,6 +182,11 @@ VAR int Launchd VALUE(0);
- /* Running from launchd */
- #endif /* HAVE_LAUNCH_H */
-
-+#ifdef HAVE_AVAHI
-+VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
-+#endif /* HAVE_AVAHI */
-+
-+
-
- /*
- * Prototypes...
-@@ -242,6 +256,20 @@ extern void cupsdStopSelect(void);
- extern void cupsdStartServer(void);
- extern void cupsdStopServer(void);
-
-+#ifdef HAVE_AVAHI
-+extern void cupsdInitTimeouts(void);
-+extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
-+ cupsd_timeoutfunc_t cb,
-+ void *data);
-+extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
-+extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
-+extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
-+ const struct timeval *tv);
-+extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
-+#endif /* HAVE_AVAHI */
-+
-+extern int cupsdRemoveFile(const char *filename);
-+
-
- /*
- * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
-diff -up cups-1.5.2/scheduler/main.c.avahi-3-timeouts cups-1.5.2/scheduler/main.c
---- cups-1.5.2/scheduler/main.c.avahi-3-timeouts 2012-03-14 15:04:17.655305548 +0000
-+++ cups-1.5.2/scheduler/main.c 2012-03-14 15:06:36.511476986 +0000
-@@ -146,6 +146,10 @@ main(int argc, /* I - Number of comm
- int launchd_idle_exit;
- /* Idle exit on select timeout? */
- #endif /* HAVE_LAUNCHD */
-+#ifdef HAVE_AVAHI
-+ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
-+ long tmo_delay; /* Time before it must be called */
-+#endif /* HAVE_AVAHI */
-
-
- #ifdef HAVE_GETEUID
-@@ -535,6 +539,14 @@ main(int argc, /* I - Number of comm
-
- httpInitialize();
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * Initialize timed callback structures.
-+ */
-+
-+ cupsdInitTimeouts();
-+#endif /* HAVE_AVAHI */
-+
- cupsdStartServer();
-
- /*
-@@ -874,6 +886,16 @@ main(int argc, /* I - Number of comm
- }
- #endif /* __APPLE__ */
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * If a timed callback is due, run it.
-+ */
-+
-+ tmo = cupsdNextTimeout (&tmo_delay);
-+ if (tmo && tmo_delay == 0)
-+ cupsdRunTimeout (tmo);
-+#endif /* HAVE_AVAHI */
-+
- #ifndef __APPLE__
- /*
- * Update the network interfaces once a minute...
-@@ -1787,6 +1809,10 @@ select_timeout(int fds) /* I - Number
- cupsd_job_t *job; /* Job information */
- cupsd_subscription_t *sub; /* Subscription information */
- const char *why; /* Debugging aid */
-+#ifdef HAVE_AVAHI
-+ cupsd_timeout_t *tmo; /* Timed callback */
-+ long tmo_delay; /* Seconds before calling it */
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -1829,6 +1855,19 @@ select_timeout(int fds) /* I - Number
- }
- #endif /* __APPLE__ */
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * See if there are any scheduled timed callbacks to run.
-+ */
-+
-+ if ((tmo = cupsdNextTimeout(&tmo_delay)) != NULL &&
-+ (now + tmo_delay) < timeout)
-+ {
-+ timeout = tmo_delay;
-+ why = "run a timed callback";
-+ }
-+#endif /* HAVE_AVAHI */
-+
- /*
- * Check whether we are accepting new connections...
- */
-diff -up cups-1.5.2/scheduler/Makefile.avahi-3-timeouts cups-1.5.2/scheduler/Makefile
---- cups-1.5.2/scheduler/Makefile.avahi-3-timeouts 2012-03-14 15:04:17.685305586 +0000
-+++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:06:36.508476980 +0000
-@@ -39,7 +39,8 @@ CUPSDOBJS = \
- server.o \
- statbuf.o \
- subscriptions.o \
-- sysman.o
-+ sysman.o \
-+ timeout.o
- LIBOBJS = \
- filter.o \
- mime.o \
-diff -up cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts cups-1.5.2/scheduler/timeout.c
---- cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts 2012-03-14 15:06:36.552477037 +0000
-+++ cups-1.5.2/scheduler/timeout.c 2012-03-14 15:06:36.552477037 +0000
-@@ -0,0 +1,235 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Timeout functions for the Common UNIX Printing System (CUPS).
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * Contents:
-+ *
-+ * cupsdInitTimeouts() - Initialise timeout structure.
-+ * cupsdAddTimeout() - Add a timed callback.
-+ * cupsdNextTimeout() - Find the next enabled timed callback.
-+ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
-+ * cupsdRemoveTimeout() - Discard a timed callback.
-+ * compare_timeouts() - Compare timed callbacks for array sorting.
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI /* Applies to entire file... */
-+
-+/*
-+ * Include necessary headers...
-+ */
-+
-+#include "cupsd.h"
-+
-+#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-+# include <malloc.h>
-+#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/timeval.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+struct _cupsd_timeout_s
-+{
-+ struct timeval when;
-+ int enabled;
-+ cupsd_timeoutfunc_t callback;
-+ void *data;
-+};
-+
-+/*
-+ * Local functions...
-+ */
-+
-+/*
-+ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
-+ */
-+
-+static int
-+compare_addrs (void *p0, void *p1)
-+{
-+ if (p0 == p1)
-+ return (0);
-+ if (p0 < p1)
-+ return (-1);
-+ return (1);
-+}
-+
-+static int
-+compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
-+{
-+ int addrsdiff = compare_addrs (p0, p1);
-+ int tvdiff;
-+
-+ if (addrsdiff == 0)
-+ return (0);
-+
-+ if (!p0->enabled || !p1->enabled)
-+ {
-+ if (!p0->enabled && !p1->enabled)
-+ return (addrsdiff);
-+
-+ return (p0->enabled ? -1 : 1);
-+ }
-+
-+ tvdiff = avahi_timeval_compare (&p0->when, &p1->when);
-+ if (tvdiff != 0)
-+ return (tvdiff);
-+
-+ return (addrsdiff);
-+}
-+
-+
-+/*
-+ * 'cupsdInitTimeouts()' - Initialise timeout structures.
-+ */
-+
-+void
-+cupsdInitTimeouts(void)
-+{
-+ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
-+}
-+
-+
-+/*
-+ * 'cupsdAddTimeout()' - Add a timed callback.
-+ */
-+
-+cupsd_timeout_t * /* O - Timeout handle */
-+cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
-+ cupsd_timeoutfunc_t cb, /* I - Callback function */
-+ void *data) /* I - User data */
-+{
-+ cupsd_timeout_t *timeout;
-+
-+ timeout = malloc (sizeof(cupsd_timeout_t));
-+ if (timeout != NULL)
-+ {
-+ timeout->enabled = (tv != NULL);
-+ if (tv)
-+ {
-+ timeout->when.tv_sec = tv->tv_sec;
-+ timeout->when.tv_usec = tv->tv_usec;
-+ }
-+
-+ timeout->callback = cb;
-+ timeout->data = data;
-+ cupsArrayAdd (Timeouts, timeout);
-+ }
-+
-+ return timeout;
-+}
-+
-+
-+/*
-+ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
-+ */
-+
-+cupsd_timeout_t * /* O - Next enabled timeout or NULL */
-+cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
-+{
-+ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
-+ struct timeval curtime;
-+
-+ if (first && !first->enabled)
-+ first = NULL;
-+
-+ if (first && delay)
-+ {
-+ gettimeofday (&curtime, NULL);
-+ if (avahi_timeval_compare (&curtime, &first->when) > 0)
-+ {
-+ *delay = 0;
-+ } else {
-+ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
-+ if (first->when.tv_usec < curtime.tv_usec)
-+ (*delay)--;
-+ }
-+ }
-+
-+ return (first);
-+}
-+
-+
-+/*
-+ * 'cupsdRunTimeout()' - Run a timed callback.
-+ */
-+
-+void
-+cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
-+{
-+ if (!timeout)
-+ return;
-+ timeout->enabled = 0;
-+ if (!timeout->callback)
-+ return;
-+ timeout->callback (timeout, timeout->data);
-+}
-+
-+/*
-+ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
-+ */
-+
-+void
-+cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
-+ const struct timeval *tv) /* I - Absolute time or NULL */
-+{
-+ cupsArrayRemove (Timeouts, timeout);
-+ timeout->enabled = (tv != NULL);
-+ if (tv)
-+ {
-+ timeout->when.tv_sec = tv->tv_sec;
-+ timeout->when.tv_usec = tv->tv_usec;
-+ }
-+ cupsArrayAdd (Timeouts, timeout);
-+}
-+
-+
-+/*
-+ * 'cupsdRemoveTimeout()' - Discard a timed callback.
-+ */
-+
-+void
-+cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
-+{
-+ cupsArrayRemove (Timeouts, timeout);
-+ free (timeout);
-+}
-+
-+
-+#endif /* HAVE_AVAHI ... from top of file */
-+
-+/*
-+ * End of "$Id$".
-+ */
diff --git a/~mtjm/cups-usblp/cups-avahi-4-poll.patch b/~mtjm/cups-usblp/cups-avahi-4-poll.patch
deleted file mode 100755
index d7fa5fd56..000000000
--- a/~mtjm/cups-usblp/cups-avahi-4-poll.patch
+++ /dev/null
@@ -1,529 +0,0 @@
-diff -up cups-1.5.2/scheduler/avahi.c.avahi-4-poll cups-1.5.2/scheduler/avahi.c
---- cups-1.5.2/scheduler/avahi.c.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.c 2012-03-14 15:07:29.477542381 +0000
-@@ -0,0 +1,441 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Avahi poll implementation for the CUPS scheduler.
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * Contents:
-+ *
-+ * watch_read_cb - Read callback for file descriptor
-+ * watch_write_cb - Write callback for file descriptor
-+ * watched_fd_add_select() - Call cupsdAddSelect() as needed
-+ * watch_new() - Create a new file descriptor watch
-+ * watch_free() - Free a file descriptor watch
-+ * watch_update() - Update watched events for a file descriptor
-+ * watch_get_events() - Get events that happened for a file descriptor
-+ * timeout_cb() - Run a timed Avahi callback
-+ * timeout_new() - Set a wakeup time
-+ * timeout_update() - Update the expiration time for a timeout
-+ * timeout_free() - Free a timeout
-+ * compare_watched_fds() - Compare watched file descriptors for array sorting
-+ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
-+ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
-+ * avahi_cups_poll_get() - Get the abstract poll API structure
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI /* Applies to entire file... */
-+
-+/*
-+ * Include necessary headers...
-+ */
-+
-+#include "cupsd.h"
-+
-+#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-+# include <malloc.h>
-+#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/timeval.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+typedef struct
-+{
-+ AvahiCupsPoll *cups_poll;
-+
-+ int fd;
-+ AvahiWatchEvent occurred;
-+ cups_array_t *watches;
-+} cupsd_watched_fd_t;
-+
-+struct AvahiWatch
-+{
-+ cupsd_watched_fd_t *watched_fd;
-+
-+ AvahiWatchEvent events;
-+ AvahiWatchCallback callback;
-+ void *userdata;
-+};
-+
-+struct AvahiTimeout
-+{
-+ AvahiCupsPoll *cups_poll;
-+ AvahiTimeoutCallback callback;
-+ void *userdata;
-+ cupsd_timeout_t *cupsd_timeout;
-+};
-+
-+/*
-+ * Local functions...
-+ */
-+
-+static AvahiWatch * watch_new(const AvahiPoll *api,
-+ int fd,
-+ AvahiWatchEvent events,
-+ AvahiWatchCallback callback,
-+ void *userdata);
-+static void watch_free(AvahiWatch *watch);
-+static void watch_update(AvahiWatch *watch,
-+ AvahiWatchEvent events);
-+static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
-+
-+
-+/*
-+ * 'watch_read_cb' - Read callback for file descriptor
-+ */
-+
-+static void
-+watch_read_cb (void *userdata)
-+{
-+ AvahiWatch *watch;
-+ cupsd_watched_fd_t *watched_fd = userdata;
-+ watched_fd->occurred |= AVAHI_WATCH_IN;
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ if (watch->events & watched_fd->occurred)
-+ {
-+ (watch->callback) (watch, watched_fd->fd,
-+ AVAHI_WATCH_IN, watch->userdata);
-+ watched_fd->occurred &= ~AVAHI_WATCH_IN;
-+ break;
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * 'watch_write_cb' - Write callback for file descriptor
-+ */
-+
-+static void
-+watch_write_cb (void *userdata)
-+{
-+ AvahiWatch *watch;
-+ cupsd_watched_fd_t *watched_fd = userdata;
-+ watched_fd->occurred |= AVAHI_WATCH_OUT;
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ if (watch->events & watched_fd->occurred)
-+ {
-+ (watch->callback) (watch, watched_fd->fd,
-+ AVAHI_WATCH_OUT, watch->userdata);
-+ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
-+ break;
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
-+ */
-+
-+static int /* O - Watches? */
-+watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
-+{
-+ AvahiWatch *watch;
-+ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
-+ int any_watches = 0;
-+
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
-+ {
-+ any_watches = 1;
-+ if (watch->events & (AVAHI_WATCH_IN |
-+ AVAHI_WATCH_ERR |
-+ AVAHI_WATCH_HUP))
-+ {
-+ read_cb = (cupsd_selfunc_t)watch_read_cb;
-+ if (write_cb != NULL)
-+ break;
-+ }
-+
-+ if (watch->events & AVAHI_WATCH_OUT)
-+ {
-+ write_cb = (cupsd_selfunc_t)watch_write_cb;
-+ if (read_cb != NULL)
-+ break;
-+ }
-+ }
-+
-+ if (read_cb || write_cb)
-+ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
-+ else
-+ cupsdRemoveSelect (watched_fd->fd);
-+
-+ return (any_watches);
-+}
-+
-+/*
-+ * 'watch_new' - Create a new file descriptor watch
-+ */
-+
-+static AvahiWatch *
-+watch_new (const AvahiPoll *api,
-+ int fd,
-+ AvahiWatchEvent events,
-+ AvahiWatchCallback callback,
-+ void *userdata)
-+{
-+ cupsd_watched_fd_t key, *watched_fd;
-+ AvahiCupsPoll *cups_poll = api->userdata;
-+ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
-+ if (watch == NULL)
-+ return (NULL);
-+
-+ watch->events = events;
-+ watch->callback = callback;
-+ watch->userdata = userdata;
-+
-+ key.fd = fd;
-+ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
-+ if (watched_fd == NULL)
-+ {
-+ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
-+ if (watched_fd == NULL)
-+ {
-+ free (watch);
-+ return (NULL);
-+ }
-+
-+ watched_fd->fd = fd;
-+ watched_fd->occurred = 0;
-+ watched_fd->cups_poll = cups_poll;
-+ watched_fd->watches = cupsArrayNew (NULL, NULL);
-+ cupsArrayAdd (cups_poll->watched_fds, watched_fd);
-+ }
-+
-+ watch->watched_fd = watched_fd;
-+ cupsArrayAdd(watched_fd->watches, watch);
-+ watched_fd_add_select (watched_fd);
-+ return (watch);
-+}
-+
-+
-+/*
-+ * 'watch_free' - Free a file descriptor watch
-+ */
-+
-+static void
-+watch_free (AvahiWatch *watch)
-+{
-+ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
-+ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
-+
-+ cupsArrayRemove (watched_fd->watches, watch);
-+ free (watch);
-+
-+ if (!watched_fd_add_select (watched_fd))
-+ {
-+ /* No more watches */
-+ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
-+ free (watched_fd);
-+ }
-+}
-+
-+
-+/*
-+ * 'watch_update' - Update watched events for a file descriptor
-+ */
-+
-+static void
-+watch_update (AvahiWatch *watch,
-+ AvahiWatchEvent events)
-+{
-+ watch->events = events;
-+ watched_fd_add_select (watch->watched_fd);
-+}
-+
-+
-+/*
-+ * 'watch_get_events' - Get events that happened for a file descriptor
-+ */
-+
-+static AvahiWatchEvent
-+watch_get_events (AvahiWatch *watch)
-+{
-+ return (watch->watched_fd->occurred);
-+}
-+
-+
-+/*
-+ * 'timeout_cb()' - Run a timed Avahi callback
-+ */
-+
-+static void
-+timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
-+{
-+ AvahiTimeout *timeout = userdata;
-+ (timeout->callback) (timeout, timeout->userdata);
-+}
-+
-+
-+/*
-+ * 'timeout_new' - Set a wakeup time
-+ */
-+
-+static AvahiTimeout *
-+timeout_new (const AvahiPoll *api,
-+ const struct timeval *tv,
-+ AvahiTimeoutCallback callback,
-+ void *userdata)
-+{
-+ AvahiTimeout *timeout;
-+ AvahiCupsPoll *cups_poll = api->userdata;
-+
-+ timeout = malloc(sizeof(AvahiTimeout));
-+ if (timeout == NULL)
-+ return (NULL);
-+
-+ timeout->cups_poll = cups_poll;
-+ timeout->callback = callback;
-+ timeout->userdata = userdata;
-+ timeout->cupsd_timeout = cupsdAddTimeout (tv,
-+ (cupsd_timeoutfunc_t)timeout_cb,
-+ timeout);
-+ cupsArrayAdd (cups_poll->timeouts, timeout);
-+ return (timeout);
-+}
-+
-+
-+/*
-+ * 'timeout_update' - Update the expiration time for a timeout
-+ */
-+
-+static void
-+timeout_update (AvahiTimeout *timeout,
-+ const struct timeval *tv)
-+{
-+ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
-+}
-+
-+
-+/*
-+ * ' timeout_free' - Free a timeout
-+ */
-+
-+static void
-+timeout_free (AvahiTimeout *timeout)
-+{
-+ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
-+ cupsdRemoveTimeout (timeout->cupsd_timeout);
-+ free (timeout);
-+}
-+
-+
-+/*
-+ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
-+ */
-+static int
-+compare_watched_fds(cupsd_watched_fd_t *p0,
-+ cupsd_watched_fd_t *p1)
-+{
-+ /*
-+ * Compare by fd (no two elements have the same fd)
-+ */
-+
-+ if (p0->fd == p1->fd)
-+ return 0;
-+
-+ return (p0->fd < p1->fd ? -1 : 1);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
-+ */
-+
-+AvahiCupsPoll *
-+avahi_cups_poll_new (void)
-+{
-+ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
-+ if (cups_poll == NULL)
-+ return (NULL);
-+
-+ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
-+ NULL);
-+ cups_poll->timeouts = cupsArrayNew (NULL, NULL);
-+
-+ cups_poll->api.userdata = cups_poll;
-+ cups_poll->api.watch_new = watch_new;
-+ cups_poll->api.watch_free = watch_free;
-+ cups_poll->api.watch_update = watch_update;
-+ cups_poll->api.watch_get_events = watch_get_events;
-+
-+ cups_poll->api.timeout_new = timeout_new;
-+ cups_poll->api.timeout_update = timeout_update;
-+ cups_poll->api.timeout_free = timeout_free;
-+
-+ return (cups_poll);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
-+ */
-+void
-+avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
-+{
-+ cupsd_watched_fd_t *watched_fd;
-+
-+ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
-+ watched_fd;
-+ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds))
-+ cupsArrayClear (watched_fd->watches);
-+
-+ cupsArrayClear (cups_poll->watched_fds);
-+ cupsArrayClear (cups_poll->timeouts);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_get' - Get the abstract poll API structure
-+ */
-+
-+const AvahiPoll *
-+avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
-+{
-+ return (&cups_poll->api);
-+}
-+
-+
-+#endif /* HAVE_AVAHI ... from top of file */
-+
-+/*
-+ * End of "$Id$".
-+ */
-diff -up cups-1.5.2/scheduler/avahi.h.avahi-4-poll cups-1.5.2/scheduler/avahi.h
---- cups-1.5.2/scheduler/avahi.h.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:07:29.477542381 +0000
-@@ -0,0 +1,69 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Avahi poll implementation for the CUPS scheduler.
-+ *
-+ * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/publish.h>
-+#endif /* HAVE_AVAHI */
-+
-+#ifdef HAVE_AUTHORIZATION_H
-+# include <Security/Authorization.h>
-+#endif /* HAVE_AUTHORIZATION_H */
-+
-+
-+#ifdef HAVE_AVAHI
-+typedef struct
-+{
-+ AvahiPoll api;
-+ cups_array_t *watched_fds;
-+ cups_array_t *timeouts;
-+} AvahiCupsPoll;
-+#endif /* HAVE_AVAHI */
-+
-+/*
-+ * Prototypes...
-+ */
-+
-+#ifdef HAVE_AVAHI
-+extern AvahiCupsPoll * avahi_cups_poll_new(void);
-+extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
-+extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * End of "$Id$".
-+ */
-diff -up cups-1.5.2/scheduler/Makefile.avahi-4-poll cups-1.5.2/scheduler/Makefile
---- cups-1.5.2/scheduler/Makefile.avahi-4-poll 2012-03-14 15:06:36.508476980 +0000
-+++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:07:29.476542380 +0000
-@@ -17,6 +17,7 @@ include ../Makedefs
-
- CUPSDOBJS = \
- auth.o \
-+ avahi.o \
- banners.o \
- cert.o \
- classes.o \
diff --git a/~mtjm/cups-usblp/cups-avahi-5-services.patch b/~mtjm/cups-usblp/cups-avahi-5-services.patch
deleted file mode 100755
index 820b3c32b..000000000
--- a/~mtjm/cups-usblp/cups-avahi-5-services.patch
+++ /dev/null
@@ -1,1272 +0,0 @@
-diff -up cups-1.5.2/cgi-bin/admin.c.avahi-5-services cups-1.5.2/cgi-bin/admin.c
---- cups-1.5.2/cgi-bin/admin.c.avahi-5-services 2011-08-17 22:01:53.000000000 +0100
-+++ cups-1.5.2/cgi-bin/admin.c 2012-03-14 15:08:25.701611799 +0000
-@@ -1643,7 +1643,7 @@ do_config_server(http_t *http) /* I - H
- else
- local_protocols[0] = '\0';
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
- {
- if (local_protocols[0])
-@@ -1651,7 +1651,7 @@ do_config_server(http_t *http) /* I - H
- else
- strcat(local_protocols, "dnssd");
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LDAP
- if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
-@@ -2718,9 +2718,9 @@ do_menu(http_t *http) /* I - HTTP conn
- #endif /* HAVE_GSSAPI */
- cgiSetVariable("KERBEROS", "");
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cgiSetVariable("HAVE_DNSSD", "1");
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LDAP
- cgiSetVariable("HAVE_LDAP", "1");
-diff -up cups-1.5.2/scheduler/avahi.h.avahi-5-services cups-1.5.2/scheduler/avahi.h
---- cups-1.5.2/scheduler/avahi.h.avahi-5-services 2012-03-14 15:07:29.477542381 +0000
-+++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:08:25.701611799 +0000
-@@ -3,7 +3,7 @@
- *
- * Avahi poll implementation for the CUPS scheduler.
- *
-- * Copyright (C) 2010, 2011 Red Hat, Inc.
-+ * Copyright (C) 2010, 2011, 2012 Red Hat, Inc.
- * Authors:
- * Tim Waugh <twaugh@redhat.com>
- *
-@@ -32,37 +32,40 @@
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
--#include <config.h>
-+#ifndef _CUPS_AVAHI_H_
-+# define _CUPS_AVAHI_H_
-
--#ifdef HAVE_AVAHI
--# include <avahi-client/client.h>
--# include <avahi-client/publish.h>
--#endif /* HAVE_AVAHI */
-+/*
-+ * Include necessary headers...
-+ */
-
--#ifdef HAVE_AUTHORIZATION_H
--# include <Security/Authorization.h>
--#endif /* HAVE_AUTHORIZATION_H */
-+# include <config.h>
-
-+# ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/publish.h>
-+# endif /* HAVE_AVAHI */
-
--#ifdef HAVE_AVAHI
-+# ifdef HAVE_AVAHI
- typedef struct
- {
- AvahiPoll api;
- cups_array_t *watched_fds;
- cups_array_t *timeouts;
- } AvahiCupsPoll;
--#endif /* HAVE_AVAHI */
-+# endif /* HAVE_AVAHI */
-
- /*
- * Prototypes...
- */
-
--#ifdef HAVE_AVAHI
-+# ifdef HAVE_AVAHI
- extern AvahiCupsPoll * avahi_cups_poll_new(void);
- extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
- extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
--#endif /* HAVE_AVAHI */
-+# endif /* HAVE_AVAHI */
-
-+#endif /* !_CUPS_AVAHI_H_ */
-
- /*
- * End of "$Id$".
-diff -up cups-1.5.2/scheduler/client.c.avahi-5-services cups-1.5.2/scheduler/client.c
---- cups-1.5.2/scheduler/client.c.avahi-5-services 2012-01-13 23:00:22.000000000 +0000
-+++ cups-1.5.2/scheduler/client.c 2012-03-14 15:08:25.703611797 +0000
-@@ -4989,7 +4989,7 @@ valid_host(cupsd_client_t *con) /* I -
- !strncmp(host, "[::1]:", 6));
- }
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * Check if the hostname is something.local (Bonjour); if so, allow it.
- */
-@@ -4998,7 +4998,7 @@ valid_host(cupsd_client_t *con) /* I -
- (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
- !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
- return (1);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- /*
- * Check if the hostname is an IP address...
-diff -up cups-1.5.2/scheduler/conf.c.avahi-5-services cups-1.5.2/scheduler/conf.c
---- cups-1.5.2/scheduler/conf.c.avahi-5-services 2012-03-14 15:04:17.636305526 +0000
-+++ cups-1.5.2/scheduler/conf.c 2012-03-14 15:08:25.706611803 +0000
-@@ -652,7 +652,7 @@ cupsdReadConfiguration(void)
- Browsing = CUPS_DEFAULT_BROWSING;
- DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
- #endif /* HAVE_DNSSD */
-
-diff -up cups-1.5.2/scheduler/dirsvc.c.avahi-5-services cups-1.5.2/scheduler/dirsvc.c
---- cups-1.5.2/scheduler/dirsvc.c.avahi-5-services 2012-03-14 15:04:17.674305572 +0000
-+++ cups-1.5.2/scheduler/dirsvc.c 2012-03-14 15:08:25.709611806 +0000
-@@ -27,6 +27,7 @@
- * ldap_connect() - Start new LDAP connection
- * ldap_reconnect() - Reconnect to LDAP Server
- * ldap_disconnect() - Disconnect from LDAP Server
-+ * cupsdStartAvahiClient() - Start an Avahi client if needed
- * cupsdStartBrowsing() - Start sending and receiving broadcast
- * information.
- * cupsdStartPolling() - Start polling servers as needed.
-@@ -40,11 +41,12 @@
- * dequote() - Remote quotes from a string.
- * dnssdAddAlias() - Add a DNS-SD alias name.
- * dnssdBuildTxtRecord() - Build a TXT record from printer info.
-- * dnssdComparePrinters() - Compare the registered names of two printers.
- * dnssdDeregisterPrinter() - Stop sending broadcast information for a
- * printer.
- * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
- * record format.
-+ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
-+ * AvahiStringList.
- * dnssdRegisterCallback() - DNSServiceRegister callback.
- * dnssdRegisterPrinter() - Start sending broadcast information for a
- * printer or update the broadcast contents.
-@@ -83,6 +85,7 @@
- */
-
- #include "cupsd.h"
-+#include <assert.h>
- #include <grp.h>
-
- #ifdef HAVE_DNSSD
-@@ -97,6 +100,17 @@
- # endif /* HAVE_SYSTEMCONFIGURATION */
- # endif /* __APPLE__ */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/domain.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+#ifdef HAVE_DNSSD
-+typedef char *cupsd_txt_record_t;
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+typedef AvahiStringList *cupsd_txt_record_t;
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -159,27 +173,38 @@ static void update_polling(void);
- static void update_smb(int onoff);
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
-+ int for_lpd);
-+static void dnssdDeregisterPrinter(cupsd_printer_t *p);
-+static void dnssdRegisterPrinter(cupsd_printer_t *p);
-+static void dnssdStop(void);
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+
- #ifdef HAVE_DNSSD
- # ifdef HAVE_COREFOUNDATION
- static void dnssdAddAlias(const void *key, const void *value,
- void *context);
- # endif /* HAVE_COREFOUNDATION */
--static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
-- int for_lpd);
--static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
--static void dnssdDeregisterPrinter(cupsd_printer_t *p);
--static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
-- int count);
- static void dnssdRegisterCallback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- DNSServiceErrorType errorCode,
- const char *name, const char *regtype,
- const char *domain, void *context);
--static void dnssdRegisterPrinter(cupsd_printer_t *p);
--static void dnssdStop(void);
- static void dnssdUpdate(void);
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
-+ int count);
-+static void avahi_entry_group_cb (AvahiEntryGroup *group,
-+ AvahiEntryGroupState state,
-+ void *userdata);
-+static void avahi_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *userdata);
-+#endif /* HAVE_AVAHI */
-+
- #ifdef HAVE_LDAP
- static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
- {
-@@ -283,10 +308,10 @@ cupsdDeregisterPrinter(
- ldap_dereg_printer(p);
- #endif /* HAVE_LDAP */
-
--#ifdef HAVE_DNSSD
-- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdDeregisterPrinter(p);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-@@ -702,10 +727,10 @@ cupsdRegisterPrinter(cupsd_printer_t *p)
- slpRegisterPrinter(p); */
- #endif /* HAVE_LIBSLP */
-
--#ifdef HAVE_DNSSD
-- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if ((BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdRegisterPrinter(p);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-@@ -1419,6 +1444,36 @@ ldap_disconnect(LDAP *ld) /* I - LDAP h
- #endif /* HAVE_LDAP */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
-+ */
-+
-+void
-+cupsdStartAvahiClient(void)
-+{
-+ int error = 0;
-+
-+ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
-+ {
-+ if (!AvahiCupsPollHandle)
-+ AvahiCupsPollHandle = avahi_cups_poll_new ();
-+
-+ if (AvahiCupsPollHandle)
-+ {
-+ if (avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
-+ AVAHI_CLIENT_NO_FAIL,
-+ avahi_client_cb, NULL,
-+ &error) != NULL)
-+ AvahiCupsClientConnecting = 1;
-+ else
-+ cupsdLogMessage (CUPSD_LOG_WARN, "Avahi client failed: %d", error);
-+ }
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
- */
-@@ -1542,13 +1597,16 @@ cupsdStartBrowsing(void)
- else
- BrowseSocket = -1;
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType error; /* Error from service creation */
-+#endif /* HAVE_DNSSD */
- cupsd_listener_t *lis; /* Current listening socket */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * First create a "master" connection for all registrations...
- */
-@@ -1573,6 +1631,7 @@ cupsdStartBrowsing(void)
- fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
-
- cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
-+#endif /* HAVE_DNSSD */
-
- /*
- * Then get the port we use for registrations. If we are not listening
-@@ -1598,17 +1657,23 @@ cupsdStartBrowsing(void)
- */
-
- if (BrowseRemoteProtocols & BROWSE_DNSSD)
-- DNSSDPrinters = cupsArrayNew((cups_array_func_t)dnssdComparePrinters,
-- NULL);
-+ DNSSDPrinters = cupsArrayNew(NULL, NULL);
-
- /*
- * Set the computer name and register the web interface...
- */
-
- cupsdUpdateDNSSDName();
-+
-+#ifdef HAVE_AVAHI
-+ cupsdStartAvahiClient ();
-+#endif /* HAVE_AVAHI */
-+
-+#ifdef HAVE_DNSSD
- }
-- }
- #endif /* HAVE_DNSSD */
-+ }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LIBSLP
- if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
-@@ -1834,10 +1899,10 @@ cupsdStopBrowsing(void)
- BrowseSocket = -1;
- }
-
--#ifdef HAVE_DNSSD
-- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if ((BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdStop();
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LIBSLP
- if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
-@@ -1902,7 +1967,7 @@ cupsdStopPolling(void)
- }
-
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
- */
-@@ -1910,8 +1975,14 @@ cupsdStopPolling(void)
- void
- cupsdUpdateDNSSDName(void)
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType error; /* Error from service creation */
- char webif[1024]; /* Web interface share name */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int ret; /* Error from service creation */
-+ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
-+#endif /* HAVE_AVAHI */
- # ifdef HAVE_SYSTEMCONFIGURATION
- SCDynamicStoreRef sc; /* Context for dynamic store */
- CFDictionaryRef btmm; /* Back-to-My-Mac domains */
-@@ -2042,6 +2113,7 @@ cupsdUpdateDNSSDName(void)
- else
- strlcpy(webif, "CUPS Web Interface", sizeof(webif));
-
-+#ifdef HAVE_DNSSD
- if (WebIFRef)
- DNSServiceRefDeallocate(WebIFRef);
-
-@@ -2054,9 +2126,45 @@ cupsdUpdateDNSSDName(void)
- NULL)) != kDNSServiceErr_NoError)
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "DNS-SD web interface registration failed: %d", error);
-+#endif /* HAVE_DNSSD */
-+
-+#ifdef HAVE_AVAHI
-+ if (!AvahiCupsClient)
-+ /*
-+ * Client not yet running.
-+ */
-+ return;
-+
-+ if (AvahiWebIFGroup)
-+ avahi_entry_group_reset (AvahiWebIFGroup);
-+ else
-+ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
-+ avahi_entry_group_cb,
-+ NULL);
-+
-+ if (AvahiWebIFGroup)
-+ {
-+ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, /* flags */
-+ webif, /* name */
-+ "_http._tcp", /* type */
-+ NULL, /* domain */
-+ NULL, /* host */
-+ DNSSDPort, /* port */
-+ "path=/", NULL);
-+ if (ret == 0)
-+ ret = avahi_entry_group_commit (AvahiWebIFGroup);
-+
-+ if (ret != 0)
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Avahi web interface registration failed: %d", ret);
-+ }
-+#endif /* HAVE_AVAHI */
- }
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
- #ifdef HAVE_LDAP
-@@ -2334,13 +2442,15 @@ dnssdAddAlias(const void *key, /* I - K
- "Bad Back to My Mac domain in dynamic store!");
- }
- # endif /* HAVE_COREFOUNDATION */
-+#endif /* HAVE_DNSSD */
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
- */
-
--static char * /* O - TXT record */
-+static cupsd_txt_record_t /* O - TXT record */
- dnssdBuildTxtRecord(
- int *txt_len, /* O - TXT record length */
- cupsd_printer_t *p, /* I - Printer information */
-@@ -2379,7 +2489,12 @@ dnssdBuildTxtRecord(
- keyvalue[i ][0] = "ty";
- keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
-
-- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
-+ snprintf(admin_hostname, sizeof(admin_hostname),
-+ "%s.local"
-+#ifdef HAVE_DNSSD
-+ "." /* terminating dot no good for Avahi */
-+#endif /* HAVE_DNSSD */
-+ , DNSSDHostName);
- httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
- "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
- (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
-@@ -2462,19 +2577,12 @@ dnssdBuildTxtRecord(
- * Then pack them into a proper txt record...
- */
-
-+#ifdef HAVE_DNSSD
- return (dnssdPackTxtRecord(txt_len, keyvalue, i));
--}
--
--
--/*
-- * 'dnssdComparePrinters()' - Compare the registered names of two printers.
-- */
--
--static int /* O - Result of comparison */
--dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
-- cupsd_printer_t *b)/* I - Second printer */
--{
-- return (_cups_strcasecmp(a->reg_name, b->reg_name));
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ return (avahiPackTxtRecord(keyvalue, i));
-+#endif /* HAVE_AVAHI */
- }
-
-
-@@ -2489,6 +2597,10 @@ dnssdDeregisterPrinter(
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+
- /*
- * Closing the socket deregisters the service
- */
-@@ -2524,6 +2636,24 @@ dnssdDeregisterPrinter(
- free(p->printer_txt);
- p->printer_txt = NULL;
- }
-+#endif /* HAVE_DNSSD */
-+
-+#ifdef HAVE_AVAHI
-+ if (p->avahi_group)
-+ {
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+
-+ if (p->ipp_txt)
-+ avahi_string_list_free (p->ipp_txt);
-+
-+ if (p->printer_txt)
-+ avahi_string_list_free (p->printer_txt);
-+
-+ p->ipp_txt = p->printer_txt = NULL;
-+ }
-+#endif /* HAVE_AVAHI */
-
- /*
- * Remove the printer from the array of DNS-SD printers, then clear the
-@@ -2533,8 +2663,10 @@ dnssdDeregisterPrinter(
- cupsArrayRemove(DNSSDPrinters, p);
- cupsdClearString(&p->reg_name);
- }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
- * TXT record format.
-@@ -2644,8 +2776,10 @@ dnssdRegisterCallback(
- LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
- }
- }
-+#endif /* HAVE_DNSSD */
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
- * or update the broadcast contents.
-@@ -2654,20 +2788,40 @@ dnssdRegisterCallback(
- static void
- dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType se; /* dnssd errors */
- char *ipp_txt, /* IPP TXT record buffer */
- *printer_txt, /* LPD TXT record buffer */
-- name[1024], /* Service name */
-- *nameptr; /* Pointer into name */
-+ name[1024]; /* Service name */
- int ipp_len, /* IPP TXT record length */
- printer_len, /* LPD TXT record length */
- printer_port; /* LPD port number */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int ret; /* Error code */
-+ AvahiStringList *ipp_txt, /* IPP TXT record */
-+ *printer_txt; /* LPD TXT record */
-+ char name[AVAHI_LABEL_MAX], /* Service name */
-+ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
-+ char *regtype_copy, /* Writeable copy of reg type */
-+ *subtype, /* Current service sub type */
-+ *nextsubtype; /* Next service sub type */
-+#endif /* HAVE_AVAHI */
-+ char *nameptr; /* Pointer into name */
- const char *regtype; /* Registration type */
-
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
- !p->ipp_ref ? "new" : "update");
--
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
-+ !p->avahi_group ? "new" : "update");
-+#endif /* HAVE_AVAHI */
- /*
- * If per-printer sharing was just disabled make sure we're not
- * registered before returning.
-@@ -2686,12 +2840,36 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
- if (p->info && strlen(p->info) > 0)
- {
- if (DNSSDComputerName)
-- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
-+ {
-+ /*
-+ * Make sure there is room for at least 15 characters of
-+ * DNSSDComputerName.
-+ */
-+
-+ assert(sizeof(name) >= 15 + 4);
-+ nameptr = name + strlcpy(name, p->info,
-+ sizeof(name) - 4 -
-+ strnlen(DNSSDComputerName, 15));
-+ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
-+ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
-+ }
- else
- strlcpy(name, p->info, sizeof(name));
- }
- else if (DNSSDComputerName)
-- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
-+ {
-+ /*
-+ * Make sure there is room for at least 15 characters of
-+ * DNSSDComputerName.
-+ */
-+
-+ assert(sizeof(name) >= 15 + 4);
-+ nameptr = name + strlcpy(name, p->info,
-+ sizeof(name) - 4 -
-+ strnlen(DNSSDComputerName, 15));
-+ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
-+ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
-+ }
- else
- strlcpy(name, p->name, sizeof(name));
-
-@@ -2712,6 +2890,7 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
- * Register IPP and (optionally) LPD...
- */
-
-+#ifdef HAVE_DNSSD
- ipp_len = 0; /* anti-compiler-warning-code */
- ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
-
-@@ -2884,6 +3063,209 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
-
- if (printer_txt)
- free(printer_txt);
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (!AvahiCupsClient)
-+ /*
-+ * Client not running yet. The client callback will call us again later.
-+ */
-+ return;
-+
-+ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
-+ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
-+ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
-+
-+ if (p->avahi_group && p->ipp_txt && ipp_txt &&
-+ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
-+ {
-+ /*
-+ * Update the existing registration...
-+ */
-+
-+ avahi_string_list_free (p->ipp_txt);
-+
-+ if (p->printer_txt)
-+ avahi_string_list_free (p->printer_txt);
-+
-+ /*
-+ * Update the service group entry.
-+ */
-+
-+ regtype_copy = strdup (regtype);
-+ subtype = strchr (regtype_copy, ',');
-+ if (subtype)
-+ *subtype = '\0';
-+
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Updating TXT record for %s (%s)", name, regtype_copy);
-+ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ regtype_copy,
-+ NULL, ipp_txt);
-+ free (regtype_copy);
-+
-+ if (ret < 0)
-+ goto update_failed;
-+
-+ p->ipp_txt = ipp_txt;
-+ ipp_txt = NULL;
-+
-+ if (BrowseLocalProtocols & BROWSE_LPD)
-+ {
-+ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ "_printer._tcp", NULL,
-+ printer_txt);
-+ if (ret < 0)
-+ goto update_failed;
-+
-+ p->printer_txt = printer_txt;
-+ printer_txt = NULL;
-+ }
-+
-+ ret = avahi_entry_group_commit (p->avahi_group);
-+ if (ret < 0)
-+ {
-+ update_failed:
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Failed to update TXT record for %s: %d",
-+ name, ret);
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+ ipp_txt = p->ipp_txt;
-+ p->ipp_txt = NULL;
-+ }
-+ }
-+
-+ if (!p->avahi_group)
-+ {
-+ /*
-+ * Initial registration. Use the _fax subtype for fax queues...
-+ */
-+
-+ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
-+ avahi_entry_group_cb,
-+ p);
-+
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "Registering Avahi printer %s with name \"%s\" and "
-+ "type \"%s\"", p->name, name, regtype);
-+
-+ if (!p->avahi_group)
-+ {
-+ ret = 0;
-+ goto add_failed;
-+ }
-+
-+ /*
-+ * Add each service type (DNSSDRegType may contain several,
-+ * separated by commas).
-+ */
-+
-+ subtype = regtype_copy = strdup (regtype);
-+ while (subtype && *subtype)
-+ {
-+ nextsubtype = strchr (subtype, ',');
-+ if (nextsubtype)
-+ *nextsubtype++ = '\0';
-+
-+ if (subtype == regtype_copy)
-+ {
-+ /*
-+ * Main type entry.
-+ */
-+
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Adding TXT record for %s (%s)", name, regtype_copy);
-+ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name, regtype_copy,
-+ NULL, NULL,
-+ DNSSDPort,
-+ ipp_txt);
-+ }
-+ else
-+ {
-+ /*
-+ * Sub-type entry.
-+ */
-+
-+ snprintf (fullsubtype, sizeof(fullsubtype),
-+ "%s._sub.%s", subtype, regtype_copy);
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Adding TXT record for %s (%s)", name, fullsubtype);
-+ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ regtype_copy,
-+ NULL, fullsubtype);
-+ }
-+
-+ if (ret < 0)
-+ {
-+ free (regtype_copy);
-+ goto add_failed;
-+ }
-+
-+ subtype = nextsubtype;
-+ }
-+
-+ free (regtype_copy);
-+ p->ipp_txt = ipp_txt;
-+ ipp_txt = NULL;
-+
-+ if (BrowseLocalProtocols & BROWSE_LPD)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "Registering Avahi printer %s with name \"%s\" and "
-+ "type \"_printer._tcp\"", p->name, name);
-+
-+ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ "_printer._tcp", NULL, NULL,
-+ 515,
-+ printer_txt);
-+ if (ret < 0)
-+ goto add_failed;
-+
-+ p->printer_txt = printer_txt;
-+ printer_txt = NULL;
-+ }
-+
-+ ret = avahi_entry_group_commit (p->avahi_group);
-+
-+ if (ret < 0)
-+ {
-+ add_failed:
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Failed to add Avahi entry for %s: %d",
-+ name, ret);
-+ if (p->avahi_group)
-+ {
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+ }
-+ ipp_txt = p->ipp_txt;
-+ p->ipp_txt = NULL;
-+ }
-+ }
-+
-+ if (ipp_txt)
-+ avahi_string_list_free (ipp_txt);
-+
-+ if (printer_txt)
-+ avahi_string_list_free (printer_txt);
-+#endif /* HAVE_AVAHI */
- }
-
-
-@@ -2896,6 +3278,10 @@ dnssdStop(void)
- {
- cupsd_printer_t *p; /* Current printer */
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+#endif /* HAVE_DNSSD */
-
- /*
- * De-register the individual printers
-@@ -2910,12 +3296,23 @@ dnssdStop(void)
- * Shutdown the rest of the service refs...
- */
-
-+#ifdef HAVE_DNSSD
- if (WebIFRef)
- {
- DNSServiceRefDeallocate(WebIFRef);
- WebIFRef = NULL;
- }
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (AvahiWebIFGroup)
-+ {
-+ avahi_entry_group_reset (AvahiWebIFGroup);
-+ avahi_entry_group_free (AvahiWebIFGroup);
-+ AvahiWebIFGroup = NULL;
-+ }
-+#endif /* HAVE_AVAHI */
-
-+#ifdef HAVE_DNSSD
- if (RemoteRef)
- {
- DNSServiceRefDeallocate(RemoteRef);
-@@ -2926,14 +3323,17 @@ dnssdStop(void)
-
- DNSServiceRefDeallocate(DNSSDRef);
- DNSSDRef = NULL;
-+#endif /* HAVE_DNSSD */
-
- cupsArrayDelete(DNSSDPrinters);
- DNSSDPrinters = NULL;
-
- DNSSDPort = 0;
- }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'dnssdUpdate()' - Handle DNS-SD queries.
- */
-@@ -2955,6 +3355,153 @@ dnssdUpdate(void)
- #endif /* HAVE_DNSSD */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
-+ * AvahiStringList.
-+ */
-+
-+static AvahiStringList * /* O - new string list */
-+avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
-+ int count) /* I - Number of items in table */
-+{
-+ AvahiStringList *strlst = NULL;
-+ char **elements;
-+ size_t len;
-+ int i = 0;
-+
-+ elements = malloc ((1 + count) * sizeof (char *));
-+ if (!elements)
-+ goto cleanup;
-+
-+ for (i = 0; i < count; i++)
-+ {
-+ len = (1 + strlen (keyvalue[i][0]) +
-+ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
-+ elements[i] = malloc (len * sizeof (char));
-+ if (!elements[i])
-+ goto cleanup;
-+
-+ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
-+ }
-+
-+ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
-+
-+cleanup:
-+ while (--i >= 0)
-+ free (elements[i]);
-+
-+ free (elements);
-+ return (strlst);
-+}
-+
-+
-+/*
-+ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
-+ */
-+static void
-+avahi_entry_group_cb (AvahiEntryGroup *group,
-+ AvahiEntryGroupState state,
-+ void *userdata)
-+{
-+ char *name;
-+
-+ if (userdata)
-+ name = ((cupsd_printer_t *) userdata)->reg_name;
-+ else
-+ name = "CUPS web interface";
-+
-+ switch (state)
-+ {
-+ case AVAHI_ENTRY_GROUP_UNCOMMITED:
-+ case AVAHI_ENTRY_GROUP_REGISTERING:
-+ break;
-+
-+ case AVAHI_ENTRY_GROUP_ESTABLISHED:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Avahi entry group established for %s", name);
-+ break;
-+
-+ default:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Avahi entry group %s has state %d",
-+ name, state);
-+ break;
-+ }
-+}
-+
-+
-+/*
-+ * 'avahi_client_cb()' - Avahi client callback function.
-+ */
-+static void
-+avahi_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *userdata)
-+{
-+ cupsd_printer_t *printer;
-+ switch (state)
-+ {
-+ case AVAHI_CLIENT_S_RUNNING:
-+ /*
-+ * Avahi client started successfully.
-+ */
-+ AvahiCupsClient = client;
-+ AvahiCupsClientConnecting = 0;
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
-+
-+ cupsdUpdateDNSSDName ();
-+
-+ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
-+ printer;
-+ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
-+ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
-+ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
-+ CUPS_PRINTER_SCANNER))) && printer->shared)
-+ dnssdRegisterPrinter (printer);
-+
-+ break;
-+
-+ case AVAHI_CLIENT_CONNECTING:
-+ /*
-+ * No Avahi daemon, client is waiting.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
-+ break;
-+
-+ case AVAHI_CLIENT_S_REGISTERING:
-+ /*
-+ * Not yet registered.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client registering");
-+ break;
-+
-+ case AVAHI_CLIENT_FAILURE:
-+ /*
-+ * Avahi client failed, close it to allow a clean restart.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Avahi client failed, "
-+ "closing client to allow a clean restart");
-+
-+ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
-+ printer;
-+ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
-+ dnssdDeregisterPrinter (printer);
-+
-+ avahi_client_free(client);
-+ AvahiCupsClientConnecting = 0;
-+ AvahiCupsClient = NULL;
-+
-+ break;
-+
-+ default:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
- */
-diff -up cups-1.5.2/scheduler/dirsvc.h.avahi-5-services cups-1.5.2/scheduler/dirsvc.h
---- cups-1.5.2/scheduler/dirsvc.h.avahi-5-services 2011-03-21 02:12:14.000000000 +0000
-+++ cups-1.5.2/scheduler/dirsvc.h 2012-03-14 15:08:25.711611808 +0000
-@@ -31,6 +31,10 @@
- # endif /* HAVE_LDAP_SSL_H */
- #endif /* HAVE_LDAP */
-
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/publish.h>
-+#endif /* HAVE_AVAHI */
-+
- /*
- * Browse protocols...
- */
-@@ -131,19 +135,22 @@ VAR int PollPipe VALUE(0);
- VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
- /* Status buffer for pollers */
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- VAR char *DNSSDComputerName VALUE(NULL),
- /* Computer/server name */
- *DNSSDHostName VALUE(NULL),
- /* Hostname */
- *DNSSDRegType VALUE(NULL);
- /* Bonjour registration type */
--VAR cups_array_t *DNSSDAlias VALUE(NULL);
-- /* List of dynamic ServerAlias's */
- VAR int DNSSDPort VALUE(0);
- /* Port number to register */
- VAR cups_array_t *DNSSDPrinters VALUE(NULL);
- /* Printers we have registered */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+
-+#ifdef HAVE_DNSSD
-+VAR cups_array_t *DNSSDAlias VALUE(NULL);
-+ /* List of dynamic ServerAlias's */
- VAR DNSServiceRef DNSSDRef VALUE(NULL),
- /* Master DNS-SD service reference */
- WebIFRef VALUE(NULL),
-@@ -152,6 +159,17 @@ VAR DNSServiceRef DNSSDRef VALUE(NULL),
- /* Remote printer browse reference */
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
-+ /* AvahiCupsPoll object */
-+VAR AvahiClient *AvahiCupsClient VALUE(NULL);
-+ /* AvahiClient object */
-+VAR int AvahiCupsClientConnecting VALUE(0);
-+ /* Is AvahiClient object connecting? */
-+VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
-+ /* Web interface entry group */
-+#endif /* HAVE_AVAHI */
-+
- #ifdef HAVE_LIBSLP
- VAR SLPHandle BrowseSLPHandle VALUE(NULL);
- /* SLP API handle */
-@@ -195,13 +213,14 @@ extern void cupsdRegisterPrinter(cupsd_p
- extern void cupsdRestartPolling(void);
- extern void cupsdSaveRemoteCache(void);
- extern void cupsdSendBrowseList(void);
-+extern void cupsdStartAvahiClient(void);
- extern void cupsdStartBrowsing(void);
- extern void cupsdStartPolling(void);
- extern void cupsdStopBrowsing(void);
- extern void cupsdStopPolling(void);
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- extern void cupsdUpdateDNSSDName(void);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- #ifdef HAVE_LDAP
- extern void cupsdUpdateLDAPBrowse(void);
- #endif /* HAVE_LDAP */
-diff -up cups-1.5.2/scheduler/ipp.c.avahi-5-services cups-1.5.2/scheduler/ipp.c
---- cups-1.5.2/scheduler/ipp.c.avahi-5-services 2012-03-14 15:04:17.665305560 +0000
-+++ cups-1.5.2/scheduler/ipp.c 2012-03-14 15:08:25.715611813 +0000
-@@ -6099,7 +6099,7 @@ copy_printer_attrs(
- ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
- ippTimeToDate(curtime));
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
- {
- if (printer->reg_name)
-@@ -6109,7 +6109,7 @@ copy_printer_attrs(
- ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
- "printer-dns-sd-name", 0);
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- if (!ra || cupsArrayFind(ra, "printer-error-policy"))
- ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
-diff -up cups-1.5.2/scheduler/main.c.avahi-5-services cups-1.5.2/scheduler/main.c
---- cups-1.5.2/scheduler/main.c.avahi-5-services 2012-03-14 15:06:36.511476986 +0000
-+++ cups-1.5.2/scheduler/main.c 2012-03-14 15:08:25.718611817 +0000
-@@ -120,6 +120,10 @@ main(int argc, /* I - Number of comm
- cupsd_listener_t *lis; /* Current listener */
- time_t current_time, /* Current time */
- activity, /* Client activity timer */
-+#ifdef HAVE_AVAHI
-+ avahi_client_time, /* Time for next Avahi client
-+ check */
-+#endif /* HAVE_AVAHI */
- browse_time, /* Next browse send time */
- senddoc_time, /* Send-Document time */
- expire_time, /* Subscription expire time */
-@@ -672,6 +676,9 @@ main(int argc, /* I - Number of comm
- */
-
- current_time = time(NULL);
-+#ifdef HAVE_AVAHI
-+ avahi_client_time = current_time;
-+#endif /* HAVE_AVAHI */
- browse_time = current_time;
- event_time = current_time;
- expire_time = current_time;
-@@ -894,6 +901,16 @@ main(int argc, /* I - Number of comm
- tmo = cupsdNextTimeout (&tmo_delay);
- if (tmo && tmo_delay == 0)
- cupsdRunTimeout (tmo);
-+
-+ /*
-+ * Try to restart the Avahi client every 10 seconds if needed...
-+ */
-+
-+ if ((current_time - avahi_client_time) >= 10)
-+ {
-+ avahi_client_time = current_time;
-+ cupsdStartAvahiClient();
-+ }
- #endif /* HAVE_AVAHI */
-
- #ifndef __APPLE__
-diff -up cups-1.5.2/scheduler/printers.c.avahi-5-services cups-1.5.2/scheduler/printers.c
---- cups-1.5.2/scheduler/printers.c.avahi-5-services 2012-03-14 15:04:17.646305537 +0000
-+++ cups-1.5.2/scheduler/printers.c 2012-03-14 15:08:25.720611819 +0000
-@@ -883,9 +883,9 @@ cupsdDeletePrinter(
- cupsdClearString(&p->alert);
- cupsdClearString(&p->alert_description);
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cupsdClearString(&p->pdl);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- cupsArrayDelete(p->filetypes);
-
-@@ -3787,7 +3787,7 @@ add_printer_formats(cupsd_printer_t *p)
- attr->values[i].string.text = _cupsStrAlloc(mimetype);
- }
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- {
- char pdl[1024]; /* Buffer to build pdl list */
- mime_filter_t *filter; /* MIME filter looping var */
-@@ -3843,7 +3843,7 @@ add_printer_formats(cupsd_printer_t *p)
-
- cupsdSetString(&p->pdl, pdl);
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-diff -up cups-1.5.2/scheduler/printers.h.avahi-5-services cups-1.5.2/scheduler/printers.h
---- cups-1.5.2/scheduler/printers.h.avahi-5-services 2011-03-18 18:42:46.000000000 +0000
-+++ cups-1.5.2/scheduler/printers.h 2012-03-14 15:08:25.721611820 +0000
-@@ -16,6 +16,9 @@
- #ifdef HAVE_DNSSD
- # include <dns_sd.h>
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include "avahi.h"
-+#endif /* HAVE_AVAHI */
- #include <cups/pwg-private.h>
-
-
-@@ -95,16 +98,23 @@ struct cupsd_printer_s
- time_t marker_time; /* Last time marker attributes were updated */
- _ppd_cache_t *pc; /* PPD cache and mapping data */
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- char *reg_name, /* Name used for service registration */
-- *pdl, /* pdl value for TXT record */
-- *ipp_txt, /* IPP TXT record contents */
-+ *pdl; /* pdl value for TXT record */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+#ifdef HAVE_DNSSD
-+ char *ipp_txt, /* IPP TXT record contents */
- *printer_txt; /* LPD TXT record contents */
- int ipp_len, /* IPP TXT record length */
- printer_len; /* LPD TXT record length */
- DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
- printer_ref; /* Reference for _printer._tcp */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ AvahiStringList *ipp_txt, /* IPP TXT record */
-+ *printer_txt; /* LPD TXT record */
-+ AvahiEntryGroup *avahi_group; /* Avahi entry group */
-+#endif /* HAVE_AVAHI */
- };
-
-
diff --git a/~mtjm/cups-usblp/cups-no-export-ssllibs.patch b/~mtjm/cups-usblp/cups-no-export-ssllibs.patch
deleted file mode 100755
index 9be3c819b..000000000
--- a/~mtjm/cups-usblp/cups-no-export-ssllibs.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4
---- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200
-+++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200
-@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES)
- AC_SUBST(SSLFLAGS)
- AC_SUBST(SSLLIBS)
-
--EXPORT_SSLLIBS="$SSLLIBS"
-+EXPORT_SSLLIBS=""
- AC_SUBST(EXPORT_SSLLIBS)
-
-
diff --git a/~mtjm/cups-usblp/cups-no-gcrypt.patch b/~mtjm/cups-usblp/cups-no-gcrypt.patch
deleted file mode 100755
index 42f71d0d4..000000000
--- a/~mtjm/cups-usblp/cups-no-gcrypt.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/cups-ssl.m4
---- cups-1.5.0.orig//config-scripts/cups-ssl.m4 2011-01-11 08:05:58.000000000 +0100
-+++ cups-1.5.0/config-scripts/cups-ssl.m4 2011-08-02 10:44:26.011047900 +0200
-@@ -96,7 +96,6 @@
- dnl Then look for GNU TLS...
- if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
- AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
-- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
- if $PKGCONFIG --exists gnutls; then
- have_ssl=1
- SSLLIBS=`$PKGCONFIG --libs gnutls`
-@@ -110,16 +109,6 @@
- AC_DEFINE(HAVE_SSL)
- AC_DEFINE(HAVE_GNUTLS)
- fi
--
-- if test $have_ssl = 1; then
-- if $PKGCONFIG --exists gcrypt; then
-- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
-- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
-- elif test "x$LIBGCRYPTCONFIG" != x; then
-- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
-- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
-- fi
-- fi
- fi
-
- dnl Check for the OpenSSL library last...
---- cups-1.5.0.orig//cups/http-private.h 2011-01-22 01:07:22.000000000 +0100
-+++ cups-1.5.0/cups/http-private.h 2011-08-02 10:42:43.341604107 +0200
-@@ -93,7 +93,6 @@
- # elif defined HAVE_GNUTLS
- # include <gnutls/gnutls.h>
- # include <gnutls/x509.h>
--# include <gcrypt.h>
- # elif defined(HAVE_CDSASSL)
- # include <CoreFoundation/CoreFoundation.h>
- # include <Security/Security.h>
diff --git a/~mtjm/cups-usblp/cups-no-gzip-man.patch b/~mtjm/cups-usblp/cups-no-gzip-man.patch
deleted file mode 100755
index 6786c4430..000000000
--- a/~mtjm/cups-usblp/cups-no-gzip-man.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man cups-1.5b1/config-scripts/cups-manpages.m4
---- cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man 2011-05-12 07:21:56.000000000 +0200
-+++ cups-1.5b1/config-scripts/cups-manpages.m4 2011-05-23 17:25:50.000000000 +0200
-@@ -69,10 +69,10 @@ case "$uname" in
- ;;
- Linux* | GNU* | Darwin*)
- # Linux, GNU Hurd, and Mac OS X
-- MAN1EXT=1.gz
-- MAN5EXT=5.gz
-- MAN7EXT=7.gz
-- MAN8EXT=8.gz
-+ MAN1EXT=1
-+ MAN5EXT=5
-+ MAN7EXT=7
-+ MAN8EXT=8
- MAN8DIR=8
- ;;
- *)
diff --git a/~mtjm/cups-usblp/cups-systemd-socket.patch b/~mtjm/cups-usblp/cups-systemd-socket.patch
deleted file mode 100755
index 09d17d415..000000000
--- a/~mtjm/cups-usblp/cups-systemd-socket.patch
+++ /dev/null
@@ -1,527 +0,0 @@
-diff -up cups-1.5.2/config.h.in.systemd-socket cups-1.5.2/config.h.in
---- cups-1.5.2/config.h.in.systemd-socket 2012-03-16 14:50:57.089449755 +0000
-+++ cups-1.5.2/config.h.in 2012-03-16 14:50:57.146449787 +0000
-@@ -503,6 +503,13 @@
-
-
- /*
-+ * Do we have systemd support?
-+ */
-+
-+#undef HAVE_SYSTEMD
-+
-+
-+/*
- * Various scripting languages...
- */
-
-diff -up cups-1.5.2/config-scripts/cups-systemd.m4.systemd-socket cups-1.5.2/config-scripts/cups-systemd.m4
---- cups-1.5.2/config-scripts/cups-systemd.m4.systemd-socket 2012-03-16 14:50:57.146449787 +0000
-+++ cups-1.5.2/config-scripts/cups-systemd.m4 2012-03-16 14:50:57.146449787 +0000
-@@ -0,0 +1,36 @@
-+dnl
-+dnl "$Id$"
-+dnl
-+dnl systemd stuff for CUPS.
-+
-+dnl Find whether systemd is available
-+
-+SDLIBS=""
-+AC_ARG_WITH([systemdsystemunitdir],
-+ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
-+ [], [with_systemdsystemunitdir=$($PKGCONFIG --variable=systemdsystemunitdir systemd)])
-+if test "x$with_systemdsystemunitdir" != xno; then
-+ AC_MSG_CHECKING(for libsystemd-daemon)
-+ if $PKGCONFIG --exists libsystemd-daemon; then
-+ AC_MSG_RESULT(yes)
-+ SDCFLAGS=`$PKGCONFIG --cflags libsystemd-daemon`
-+ SDLIBS=`$PKGCONFIG --libs libsystemd-daemon`
-+ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
-+ AC_DEFINE(HAVE_SYSTEMD)
-+ else
-+ AC_MSG_RESULT(no)
-+ fi
-+fi
-+
-+if test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ; then
-+ SYSTEMD_UNITS="cups.service cups.socket cups.path"
-+else
-+ SYSTEMD_UNITS=""
-+fi
-+
-+AC_SUBST(SYSTEMD_UNITS)
-+AC_SUBST(SDLIBS)
-+
-+dnl
-+dnl "$Id$"
-+dnl
-diff -up cups-1.5.2/configure.in.systemd-socket cups-1.5.2/configure.in
---- cups-1.5.2/configure.in.systemd-socket 2011-08-31 02:36:33.000000000 +0100
-+++ cups-1.5.2/configure.in 2012-03-16 14:50:57.146449787 +0000
-@@ -37,6 +37,7 @@ sinclude(config-scripts/cups-pam.m4)
- sinclude(config-scripts/cups-largefile.m4)
- sinclude(config-scripts/cups-dnssd.m4)
- sinclude(config-scripts/cups-launchd.m4)
-+sinclude(config-scripts/cups-systemd.m4)
- sinclude(config-scripts/cups-defaults.m4)
- sinclude(config-scripts/cups-pdf.m4)
- sinclude(config-scripts/cups-scripting.m4)
-@@ -71,6 +72,9 @@ AC_OUTPUT(Makedefs
- conf/snmp.conf
- cups-config
- data/testprint
-+ data/cups.service
-+ data/cups.socket
-+ data/cups.path
- desktop/cups.desktop
- doc/help/ref-cupsd-conf.html
- doc/help/standard.html
-diff -up cups-1.5.2/cups/usersys.c.systemd-socket cups-1.5.2/cups/usersys.c
---- cups-1.5.2/cups/usersys.c.systemd-socket 2012-03-16 14:50:57.054449734 +0000
-+++ cups-1.5.2/cups/usersys.c 2012-03-16 14:50:57.148449788 +0000
-@@ -778,7 +778,7 @@ cups_read_client_conf(
- struct stat sockinfo; /* Domain socket information */
-
- if (!stat(CUPS_DEFAULT_DOMAINSOCKET, &sockinfo) &&
-- (sockinfo.st_mode & S_IRWXO) == S_IRWXO)
-+ (sockinfo.st_mode & (S_IROTH | S_IWOTH)) == (S_IROTH | S_IWOTH))
- cups_server = CUPS_DEFAULT_DOMAINSOCKET;
- else
- #endif /* CUPS_DEFAULT_DOMAINSOCKET */
-diff -up cups-1.5.2/data/cups.path.in.systemd-socket cups-1.5.2/data/cups.path.in
---- cups-1.5.2/data/cups.path.in.systemd-socket 2012-03-16 14:50:57.148449788 +0000
-+++ cups-1.5.2/data/cups.path.in 2012-03-16 14:50:57.148449788 +0000
-@@ -0,0 +1,8 @@
-+[Unit]
-+Description=CUPS Printer Service Spool
-+
-+[Path]
-+PathExistsGlob=@CUPS_REQUESTS@/d*
-+
-+[Install]
-+WantedBy=multi-user.target
-diff -up cups-1.5.2/data/cups.service.in.systemd-socket cups-1.5.2/data/cups.service.in
---- cups-1.5.2/data/cups.service.in.systemd-socket 2012-03-16 14:50:57.149449788 +0000
-+++ cups-1.5.2/data/cups.service.in 2012-03-16 14:50:57.149449788 +0000
-@@ -0,0 +1,10 @@
-+[Unit]
-+Description=CUPS Printing Service
-+
-+[Service]
-+ExecStart=@sbindir@/cupsd -f
-+PrivateTmp=true
-+
-+[Install]
-+Also=cups.socket cups.path
-+WantedBy=printer.target
-diff -up cups-1.5.2/data/cups.socket.in.systemd-socket cups-1.5.2/data/cups.socket.in
---- cups-1.5.2/data/cups.socket.in.systemd-socket 2012-03-16 14:50:57.150449788 +0000
-+++ cups-1.5.2/data/cups.socket.in 2012-03-16 14:50:57.150449788 +0000
-@@ -0,0 +1,11 @@
-+[Unit]
-+Description=CUPS Printing Service Sockets
-+
-+[Socket]
-+ListenStream=@CUPS_DEFAULT_DOMAINSOCKET@
-+ListenStream=631
-+ListenDatagram=0.0.0.0:631
-+BindIPv6Only=ipv6-only
-+
-+[Install]
-+WantedBy=sockets.target
-diff -up cups-1.5.2/data/Makefile.systemd-socket cups-1.5.2/data/Makefile
---- cups-1.5.2/data/Makefile.systemd-socket 2011-05-12 06:21:56.000000000 +0100
-+++ cups-1.5.2/data/Makefile 2012-03-16 14:50:57.151449789 +0000
-@@ -112,6 +112,12 @@ install-data:
- $(INSTALL_DATA) $$file $(DATADIR)/ppdc; \
- done
- $(INSTALL_DIR) -m 755 $(DATADIR)/profiles
-+ if test "x$(SYSTEMD_UNITS)" != "x" ; then \
-+ $(INSTALL_DIR) -m 755 $(SYSTEMDUNITDIR); \
-+ for file in $(SYSTEMD_UNITS); do \
-+ $(INSTALL_DATA) $$file $(SYSTEMDUNITDIR); \
-+ done; \
-+ fi
-
-
- #
-@@ -159,6 +165,9 @@ uninstall:
- -$(RMDIR) $(DATADIR)/charsets
- -$(RMDIR) $(DATADIR)/banners
- -$(RMDIR) $(DATADIR)
-+ for file in $(SYSTEMD_UNITS); do \
-+ $(RM) $(SYSTEMDUNITDIR)/$$file; \
-+ done
-
-
- #
-diff -up cups-1.5.2/Makedefs.in.systemd-socket cups-1.5.2/Makedefs.in
---- cups-1.5.2/Makedefs.in.systemd-socket 2012-03-16 14:50:57.081449751 +0000
-+++ cups-1.5.2/Makedefs.in 2012-03-16 14:50:57.152449790 +0000
-@@ -143,6 +143,7 @@ CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@
- CXXLIBS = @CXXLIBS@
- DBUS_NOTIFIER = @DBUS_NOTIFIER@
- DBUS_NOTIFIERLIBS = @DBUS_NOTIFIERLIBS@
-+SYSTEMD_UNITS = @SYSTEMD_UNITS@
- DNSSD_BACKEND = @DNSSD_BACKEND@
- DSOFLAGS = -L../cups @DSOFLAGS@
- DSOLIBS = @DSOLIBS@ $(COMMONLIBS)
-@@ -151,6 +152,7 @@ FONTS = @FONTS@
- IMGLIBS = @IMGLIBS@
- IMGFILTERS = @IMGFILTERS@
- LAUNCHDLIBS = @LAUNCHDLIBS@
-+SDLIBS = @SDLIBS@
- LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \
- -L../scheduler @LDARCHFLAGS@ \
- @LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM)
-@@ -267,6 +269,7 @@ PAMFILE = @PAMFILE@
-
- DEFAULT_LAUNCHD_CONF = @DEFAULT_LAUNCHD_CONF@
- DBUSDIR = @DBUSDIR@
-+SYSTEMDUNITDIR = $(BUILDROOT)@systemdsystemunitdir@
-
-
- #
-diff -up cups-1.5.2/scheduler/client.h.systemd-socket cups-1.5.2/scheduler/client.h
---- cups-1.5.2/scheduler/client.h.systemd-socket 2011-03-25 21:25:38.000000000 +0000
-+++ cups-1.5.2/scheduler/client.h 2012-03-16 14:50:57.153449791 +0000
-@@ -75,6 +75,9 @@ typedef struct
- int fd; /* File descriptor for this server */
- http_addr_t address; /* Bind address of socket */
- http_encryption_t encryption; /* To encrypt or not to encrypt... */
-+#ifdef HAVE_SYSTEMD
-+ int is_systemd; /* Is this a systemd socket? */
-+#endif /* HAVE_SYSTEMD */
- } cupsd_listener_t;
-
-
-diff -up cups-1.5.2/scheduler/dirsvc.c.systemd-socket cups-1.5.2/scheduler/dirsvc.c
---- cups-1.5.2/scheduler/dirsvc.c.systemd-socket 2012-03-16 14:50:57.112449768 +0000
-+++ cups-1.5.2/scheduler/dirsvc.c 2012-03-16 14:50:57.155449792 +0000
-@@ -1512,7 +1512,7 @@ cupsdStartBrowsing(void)
- }
- }
-
-- if (BrowseSocket >= 0)
-+ if (BrowseSocket >= 0 && !BrowseSocketIsSystemd)
- {
- /*
- * Bind the socket to browse port...
-@@ -1556,13 +1556,17 @@ cupsdStartBrowsing(void)
- cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to set broadcast mode - %s.",
- strerror(errno));
-
-+ if (!BrowseSocketIsSystemd)
-+ {
- #ifdef WIN32
-- closesocket(BrowseSocket);
-+ closesocket(BrowseSocket);
- #else
-- close(BrowseSocket);
-+ close(BrowseSocket);
- #endif /* WIN32 */
-
-- BrowseSocket = -1;
-+ BrowseSocket = -1;
-+ }
-+
- BrowseLocalProtocols &= ~BROWSE_CUPS;
- BrowseRemoteProtocols &= ~BROWSE_CUPS;
-
-@@ -1885,15 +1889,22 @@ cupsdStopBrowsing(void)
- if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_CUPS) &&
- BrowseSocket >= 0)
- {
-- /*
-- * Close the socket and remove it from the input selection set.
-- */
-+ if (!BrowseSocketIsSystemd)
-+ {
-+ /*
-+ * Close the socket.
-+ */
-
- #ifdef WIN32
-- closesocket(BrowseSocket);
-+ closesocket(BrowseSocket);
- #else
-- close(BrowseSocket);
-+ close(BrowseSocket);
- #endif /* WIN32 */
-+ }
-+
-+ /*
-+ * Remove it from the input selection set.
-+ */
-
- cupsdRemoveSelect(BrowseSocket);
- BrowseSocket = -1;
-@@ -5693,11 +5704,14 @@ update_cups_browse(void)
- strerror(errno));
- cupsdLogMessage(CUPSD_LOG_ERROR, "CUPS browsing turned off.");
-
-+ if (!BrowseSocketIsSystemd)
-+ {
- #ifdef WIN32
-- closesocket(BrowseSocket);
-+ closesocket(BrowseSocket);
- #else
-- close(BrowseSocket);
-+ close(BrowseSocket);
- #endif /* WIN32 */
-+ }
-
- cupsdRemoveSelect(BrowseSocket);
- BrowseSocket = -1;
-diff -up cups-1.5.2/scheduler/dirsvc.h.systemd-socket cups-1.5.2/scheduler/dirsvc.h
---- cups-1.5.2/scheduler/dirsvc.h.systemd-socket 2012-03-16 14:50:57.113449769 +0000
-+++ cups-1.5.2/scheduler/dirsvc.h 2012-03-16 14:50:57.157449792 +0000
-@@ -100,6 +100,8 @@ VAR int Browsing VALUE(TRUE),
- /* Short names for remote printers? */
- BrowseSocket VALUE(-1),
- /* Socket for browsing */
-+ BrowseSocketIsSystemd VALUE(0),
-+ /* BrowseSocket is systemd-provided? */
- BrowsePort VALUE(IPP_PORT),
- /* Port number for broadcasts */
- BrowseInterval VALUE(DEFAULT_INTERVAL),
-diff -up cups-1.5.2/scheduler/listen.c.systemd-socket cups-1.5.2/scheduler/listen.c
---- cups-1.5.2/scheduler/listen.c.systemd-socket 2011-04-16 00:38:13.000000000 +0100
-+++ cups-1.5.2/scheduler/listen.c 2012-03-16 14:50:57.158449792 +0000
-@@ -401,7 +401,11 @@ cupsdStopListening(void)
- lis;
- lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
- {
-- if (lis->fd != -1)
-+ if (lis->fd != -1
-+#ifdef HAVE_SYSTEMD
-+ && !lis->is_systemd
-+#endif /* HAVE_SYSTEMD */
-+ )
- {
- #ifdef WIN32
- closesocket(lis->fd);
-diff -up cups-1.5.2/scheduler/main.c.systemd-socket cups-1.5.2/scheduler/main.c
---- cups-1.5.2/scheduler/main.c.systemd-socket 2012-03-16 14:50:57.121449773 +0000
-+++ cups-1.5.2/scheduler/main.c 2012-03-16 14:51:55.409483636 +0000
-@@ -26,6 +26,8 @@
- * launchd_checkin() - Check-in with launchd and collect the listening
- * fds.
- * launchd_checkout() - Update the launchd KeepAlive file as needed.
-+ * systemd_checkin() - Check-in with systemd and collect the
-+ * listening fds.
- * parent_handler() - Catch USR1/CHLD signals...
- * process_children() - Process all dead children...
- * select_timeout() - Calculate the select timeout value.
-@@ -62,6 +64,10 @@
- # endif /* !LAUNCH_JOBKEY_SERVICEIPC */
- #endif /* HAVE_LAUNCH_H */
-
-+#ifdef HAVE_SYSTEMD
-+#include <systemd/sd-daemon.h>
-+#endif /* HAVE_SYSTEMD */
-+
- #if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
- # include <malloc.h>
- #endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-@@ -78,6 +84,9 @@
- static void launchd_checkin(void);
- static void launchd_checkout(void);
- #endif /* HAVE_LAUNCHD */
-+#ifdef HAVE_SYSTEMD
-+static void systemd_checkin(void);
-+#endif /* HAVE_SYSTEMD */
- static void parent_handler(int sig);
- static void process_children(void);
- static void sigchld_handler(int sig);
-@@ -537,6 +546,13 @@ main(int argc, /* I - Number of comm
- }
- #endif /* HAVE_LAUNCHD */
-
-+#ifdef HAVE_SYSTEMD
-+ /*
-+ * If we were started by systemd get the listen sockets file descriptors...
-+ */
-+ systemd_checkin();
-+#endif /* HAVE_SYSTEMD */
-+
- /*
- * Startup the server...
- */
-@@ -759,6 +775,15 @@ main(int argc, /* I - Number of comm
- }
- #endif /* HAVE_LAUNCHD */
-
-+#ifdef HAVE_SYSTEMD
-+ /*
-+ * If we were started by systemd get the listen sockets file
-+ * descriptors...
-+ */
-+
-+ systemd_checkin();
-+#endif /* HAVE_SYSTEMD */
-+
- /*
- * Startup the server...
- */
-@@ -1584,6 +1609,139 @@ launchd_checkout(void)
- }
- #endif /* HAVE_LAUNCHD */
-
-+#ifdef HAVE_SYSTEMD
-+static void
-+systemd_checkin(void)
-+{
-+ int n, fd;
-+
-+ n = sd_listen_fds(0);
-+ if (n < 0)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_ERROR,
-+ "systemd_checkin: Failed to acquire sockets from systemd - %s",
-+ strerror(-n));
-+ exit(EXIT_FAILURE);
-+ return;
-+ }
-+
-+ if (n == 0)
-+ return;
-+
-+ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + n; fd ++)
-+ {
-+ http_addr_t addr;
-+ socklen_t addrlen = sizeof (addr);
-+ int r;
-+ cupsd_listener_t *lis;
-+ char s[256];
-+
-+ r = sd_is_socket(fd, AF_UNSPEC, SOCK_STREAM, 1);
-+ if (r < 0)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_ERROR,
-+ "systemd_checkin: Unable to verify socket type - %s",
-+ strerror(-r));
-+ continue;
-+ }
-+
-+ if (!r)
-+ {
-+ if (Browsing &&
-+ ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_CUPS))
-+ {
-+ r = sd_is_socket(fd, AF_UNSPEC, SOCK_DGRAM, 0);
-+ if (r < 0)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_ERROR,
-+ "systemd_checkin: Unable to verify socket type - %s",
-+ strerror(-r));
-+ continue;
-+ }
-+
-+ if (r)
-+ {
-+ /*
-+ * This is the browse socket.
-+ */
-+
-+ char addrstr[256];
-+ if (getsockname(fd, (struct sockaddr*) &addr, &addrlen))
-+ {
-+ cupsdLogMessage(CUPSD_LOG_ERROR,
-+ "systemd_checkin: Unable to get local address - %s",
-+ strerror(errno));
-+ continue;
-+ }
-+
-+ httpAddrString (&addr, addrstr, sizeof (addrstr));
-+ BrowseSocket = fd;
-+ BrowseSocketIsSystemd = 1;
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "systemd_checkin: Matched browse (port %d) with fd %d:%s...",
-+ BrowsePort, fd, addrstr);
-+ continue;
-+ }
-+
-+ }
-+ cupsdLogMessage(CUPSD_LOG_ERROR,
-+ "systemd_checkin: Socket not of the right type");
-+ continue;
-+ }
-+
-+ if (getsockname(fd, (struct sockaddr*) &addr, &addrlen))
-+ {
-+ cupsdLogMessage(CUPSD_LOG_ERROR,
-+ "systemd_checkin: Unable to get local address - %s",
-+ strerror(errno));
-+ continue;
-+ }
-+
-+ /*
-+ * Try to match the systemd socket address to one of the listeners...
-+ */
-+
-+ for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
-+ lis;
-+ lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
-+ if (httpAddrEqual(&lis->address, &addr))
-+ break;
-+
-+ if (lis)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "systemd_checkin: Matched existing listener %s with fd %d...",
-+ httpAddrString(&(lis->address), s, sizeof(s)), fd);
-+ }
-+ else
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "systemd_checkin: Adding new listener %s with fd %d...",
-+ httpAddrString(&addr, s, sizeof(s)), fd);
-+
-+ if ((lis = calloc(1, sizeof(cupsd_listener_t))) == NULL)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_ERROR,
-+ "systemd_checkin: Unable to allocate listener - "
-+ "%s.", strerror(errno));
-+ exit(EXIT_FAILURE);
-+ }
-+
-+ cupsArrayAdd(Listeners, lis);
-+
-+ memcpy(&lis->address, &addr, sizeof(lis->address));
-+ }
-+
-+ lis->fd = fd;
-+ lis->is_systemd = 1;
-+
-+# ifdef HAVE_SSL
-+ if (_httpAddrPort(&(lis->address)) == 443)
-+ lis->encryption = HTTP_ENCRYPT_ALWAYS;
-+# endif /* HAVE_SSL */
-+ }
-+}
-+#endif /* HAVE_SYSTEMD */
-
- /*
- * 'parent_handler()' - Catch USR1/CHLD signals...
-diff -up cups-1.5.2/scheduler/Makefile.systemd-socket cups-1.5.2/scheduler/Makefile
---- cups-1.5.2/scheduler/Makefile.systemd-socket 2012-03-16 14:50:57.130449778 +0000
-+++ cups-1.5.2/scheduler/Makefile 2012-03-16 14:50:57.160449794 +0000
-@@ -382,7 +382,7 @@ cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cu
- $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \
- $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
- $(LIBPAPER) $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBS) \
-- $(LIBGSSAPI) $(LIBWRAP)
-+ $(LIBGSSAPI) $(LIBWRAP) $(SDLIBS)
-
- cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC)
- echo Linking $@...
-@@ -390,7 +390,7 @@ cupsd-static: $(CUPSDOBJS) libcupsmime.a
- $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
- ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
- $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBGSSAPI) \
-- $(LIBWRAP)
-+ $(LIBWRAP) $(SDLIBS)
-
-
- #
diff --git a/~mtjm/cups-usblp/cups.install b/~mtjm/cups-usblp/cups.install
deleted file mode 100755
index 47c3d9b82..000000000
--- a/~mtjm/cups-usblp/cups.install
+++ /dev/null
@@ -1,26 +0,0 @@
-post_install() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
- echo ">> If you use an HTTPS connection to CUPS, the first time you access"
- echo ">> the interface it may take a very long time before the site comes up."
- echo ">> This is because the first request triggers the generation of the CUPS"
- echo ">> SSL certificates which can be a very time-consuming job."
-}
-
-post_upgrade() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
- if [ "`vercmp $2 1.4.7-2`" -lt 0 ]; then
- # important upgrade notice
- echo "daemon script has been renamed to /etc/rc.d/cupsd"
- echo "change your entry in /etc/rc.conf"
- fi
-}
-
-post_remove() {
- if [ -x usr/bin/xdg-icon-resource ]; then
- xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
- fi
-}
diff --git a/~mtjm/cups-usblp/cups.logrotate b/~mtjm/cups-usblp/cups.logrotate
deleted file mode 100755
index 9c49bbdaf..000000000
--- a/~mtjm/cups-usblp/cups.logrotate
+++ /dev/null
@@ -1,8 +0,0 @@
-/var/log/cups/*log {
- missingok
- notifempty
- delaycompress
- postrotate
- /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
- endscript
-}
diff --git a/~mtjm/cups-usblp/cups.pam b/~mtjm/cups-usblp/cups.pam
deleted file mode 100755
index 53724d1f8..000000000
--- a/~mtjm/cups-usblp/cups.pam
+++ /dev/null
@@ -1,3 +0,0 @@
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
diff --git a/~mtjm/debootstrap/PKGBUILD b/~mtjm/debootstrap/PKGBUILD
deleted file mode 100755
index 20ff27fcb..000000000
--- a/~mtjm/debootstrap/PKGBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
-
-pkgname=debootstrap
-_version=1.0.37
-_ubuntu=0
-_trisquel=5.5
-_trisquelrev=1
-pkgver=$_version.$_ubuntu.$_trisquel.$_trisquelrev
-pkgrel=1
-pkgdesc="Bootstrap a basic Trisquel system"
-arch=('any')
-url="http://packages.trisquel.info/source/brigantia/debootstrap"
-license=('custom')
-depends=('sh')
-makedepends=('makedev')
-backup=()
-#source=("http://archive.trisquel.info/trisquel/pool/main/d/debootstrap/debootstrap_${_version}ubuntu${_ubuntu}+${_trisquel}trisquel${_trisquelrev}.tar.gz")
-source=("http://archive.trisquel.info/trisquel/pool/main/d/debootstrap/debootstrap_${_version}+${_trisquel}trisquel${_trisquelrev}.tar.gz")
-sha256sums=('13ce77c840dc83ce84b52e850275b5ef6371bb72d068663933a2e1eefbd13e1e')
-
-package() {
- cd "$srcdir/source"
- sed -i 's;MAKEDEV := /sbin/MAKEDEV;MAKEDEV := /usr/sbin/MAKEDEV -d .;' Makefile # fix Arch compatibility
- sed -i 's; consoleonly;;' Makefile # doesn't work, not sure why
- make all # not in build, since it needs root priviledges
- make DESTDIR="$pkgdir/" install
- install -m755 -d "${pkgdir}/usr/share/licenses/$pkgname"
- install -m644 debian/copyright "${pkgdir}/usr/share/licenses/$pkgname"
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/~mtjm/python-getmediumurl/PKGBUILD b/~mtjm/python-getmediumurl/PKGBUILD
deleted file mode 100755
index 172f6dcd9..000000000
--- a/~mtjm/python-getmediumurl/PKGBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
-
-_pkgname=GetMediumURL
-pkgname=python-getmediumurl
-pkgver=0.0a5
-pkgrel=2
-pkgdesc="A package for getting URLs of media files from some websites"
-arch=("any")
-url="http://savannah.nongnu.org/projects/getmediumurl/"
-license=('AGPL')
-depends=('python' 'python-lxml' 'python-urlreader' 'python-distribute')
-checkdepends=('python2') # due to my laziness
-options=(!emptydirs)
-source=("http://download.savannah.gnu.org/releases/getmediumurl/${_pkgname}-${pkgver}.tar.gz")
-md5sums=("0d3660e178bd58549d7a5718f8e39de2")
-
-check() {
- cd "$srcdir/$_pkgname-$pkgver"
- LANG=en_US.UTF-8 python setup.py test
-}
-
-package() {
- cd "$srcdir/$_pkgname-$pkgver"
- LANG=en_US.UTF-8 python setup.py install --root="$pkgdir/" --optimize=1
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/~mtjm/python-urlreader/PKGBUILD b/~mtjm/python-urlreader/PKGBUILD
deleted file mode 100755
index 4ffe93c6f..000000000
--- a/~mtjm/python-urlreader/PKGBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
-
-_pkgname=URLReader
-pkgname=python-urlreader
-pkgver=0.0a1
-pkgrel=1
-pkgdesc="Simple package for cached URL fetching"
-arch=("any")
-url="http://hg.mtjm.eu/urlreader/"
-license=('AGPL')
-depends=('python' 'python-distribute')
-checkdepends=('python2') # due to my laziness
-options=(!emptydirs)
-source=("http://pypi.python.org/packages/source/U/URLReader/URLReader-${pkgver}.tar.gz")
-md5sums=("5a96519a24099aae05fc0612d9cfd650")
-
-check() {
- cd "$srcdir/$_pkgname-$pkgver"
- LANG=en_US.UTF-8 python setup.py test
-}
-
-package() {
- cd "$srcdir/$_pkgname-$pkgver"
- LANG=en_US.UTF-8 python setup.py install --root="$pkgdir/" --optimize=1
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/~mtjm/python2-openid/PKGBUILD b/~mtjm/python2-openid/PKGBUILD
deleted file mode 100755
index 31cdf3290..000000000
--- a/~mtjm/python2-openid/PKGBUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# Based on https://aur.archlinux.org/packages.php?ID=12562
-# Contributor: Ryan Coyner <rcoyner@gmail.com>
-# Maintainer: Laszlo Papp <dj szapi at archlinux us>
-pkgname=python2-openid
-pkgver=2.2.5
-pkgrel=1
-pkgdesc="OpenID library for Python"
-arch=('any')
-url="http://www.openidenabled.com/openid/libraries/python"
-license=('Apache')
-depends=('python2')
-source=("http://pypi.python.org/packages/source/p/python-openid/python-openid-${pkgver}.tar.gz")
-md5sums=('393f48b162ec29c3de9e2973548ea50d')
-
-build() {
- cd "${srcdir}/python-openid-${pkgver}"
- python2 setup.py build || return 1
- python2 setup.py install --root=$pkgdir || return 1
-}
diff --git a/~mtjm/thinkfan/PKGBUILD b/~mtjm/thinkfan/PKGBUILD
deleted file mode 100755
index 9bb9a4793..000000000
--- a/~mtjm/thinkfan/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# From https://aur.archlinux.org/packages.php?ID=24359
-# Maintainer: nblock <nblock [/at\] archlinux DOT us>
-# Contributor: Frederik Alkærsig (FALKER) <havnelisten AT gmail.com>
-
-pkgname=thinkfan
-pkgver=0.7.3
-pkgrel=1
-pkgdesc="A minimalist fan control program. Supports the sysfs hwmon interface and thinkpad_acpi"
-arch=('i686' 'x86_64' 'mips64el')
-license=('GPL3')
-source=(http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver}.tar.gz "thinkfan")
-url="http://thinkfan.sourceforge.net/"
-#backup=('etc/thinkfan.conf')
-md5sums=('d1b0d7a05b37cce412ee227cf759a9f6'
- '16fc3a83a1468e3ccaeba67e14ab2177')
-
-build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make
- install -D -m755 ${pkgname} ${pkgdir}/usr/sbin/${pkgname}
- install -D -m755 ${srcdir}/${pkgname} ${pkgdir}/etc/rc.d/${pkgname}
-
- # A better way would be to check it at install time.
-# if ! [[ -f /proc/acpi/ibm/fan ]]; then
-# echo "thinkpad_acpi procfs entries don't seem to exist." \
-# "You'll need to use the generic sysfs hwmon interface. Will use sysfs conf."
- install -D -m644 thinkfan.conf.sysfs ${pkgdir}/etc/thinkfan.conf.sysfs
-# else
-# echo "This seems to be a Thinkpad. You should use the IBM" \
-# "interface. Will use thinkfan conf."
- [ "${CARCH}" = "mips64el" ] || install -D -m644 thinkfan.conf.thinkpad ${pkgdir}/etc/thinkfan.conf.thinkpad
-# fi
-}
-
-# vim:set ts=2 sw=2 noet:
diff --git a/~mtjm/zbar/PKGBUILD b/~mtjm/zbar/PKGBUILD
deleted file mode 100755
index 64b47b5dc..000000000
--- a/~mtjm/zbar/PKGBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# Based on https://aur.archlinux.org/packages.php?ID=33527
-# Contributor: Radu Andries <admiral0@tuxfamily.org>
-pkgname=zbar
-pkgver=0.10
-pkgrel=1
-pkgdesc="A library for reading bar codes from various sources"
-arch=('i686' 'x86_64')
-url="http://zbar.sourceforge.net/"
-license=('LGPL')
-depends=('glibc')
-provides=()
-source=("http://downloads.sourceforge.net/project/zbar/zbar/$pkgver/zbar-$pkgver.tar.bz2")
-options=(!libtool !emptydirs)
-
-# Disabled nearly everything since I don't need it and some of it needs fixes.
-
-build() {
- cd "$srcdir/zbar-$pkgver"
-
- ./configure --prefix=/usr --without-qt --disable-video --without-python \
- --without-imagemagick --without-gtk --disable-static
- make || return 1
- make DESTDIR="$pkgdir/" install
-}
-
-# vim:set ts=2 sw=2 et:
-md5sums=('0fd61eb590ac1bab62a77913c8b086a5')