summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-testing/coin/PKGBUILD54
-rw-r--r--community-testing/couchdb/PKGBUILD46
-rw-r--r--community-testing/couchdb/couchdb.install22
-rw-r--r--community-testing/couchdb/rc-script.patch90
-rw-r--r--community-testing/elinks/PKGBUILD37
-rw-r--r--community-testing/freewrl/PKGBUILD38
-rw-r--r--community-testing/freewrl/build-fix.patch1201
-rw-r--r--community-testing/gpac/PKGBUILD44
-rw-r--r--community-testing/gpac/libpng14-infopp-null.patch12
-rw-r--r--community-testing/mediatomb/PKGBUILD49
-rw-r--r--community-testing/mediatomb/gcc46.patch10
-rw-r--r--community-testing/mediatomb/mediatomb.conf23
-rw-r--r--community-testing/mediatomb/mediatomb.install9
-rw-r--r--community-testing/mediatomb/mediatomb.rc54
-rw-r--r--community-testing/mediatomb/tonewjs.patch564
-rw-r--r--community-testing/mongodb/PKGBUILD60
-rw-r--r--community-testing/mongodb/add-js185-support-to-SConstruct.diff12
-rw-r--r--community-testing/mongodb/mongodb-1.8.0-spidermonkey-1.8.5-support.patch1502
-rw-r--r--community-testing/mongodb/mongodb.conf8
-rwxr-xr-xcommunity-testing/mongodb/mongodb.install29
-rwxr-xr-xcommunity-testing/mongodb/mongodb.rc39
-rw-r--r--community/conkeror-git/PKGBUILD61
-rw-r--r--community/conkeror-git/conkeror-git.install11
-rw-r--r--community/conkeror-git/conkeror_gimpfile.xpm2251
-rw-r--r--community/spidermonkey/PKGBUILD36
-rw-r--r--community/spidermonkey/spidermonkey-1.7-threadsafe.patch16
-rw-r--r--community/spidermonkey/spidermonkey-Makefile.patch22
-rw-r--r--core/mdadm/segfault-3.2.1.patch68
-rw-r--r--extra/avahi/avahi-daemon-dbus.patch11
-rw-r--r--extra/avahi/avahi.install21
-rw-r--r--extra/file-roller/PKGBUILD38
-rw-r--r--extra/file-roller/file-roller.install22
-rw-r--r--extra/qtiplot/gentoo-fix-origin-build-failure.patch72
-rw-r--r--extra/qtiplot/qtiplot-0.9.7.14-system-liborigin.patch101
-rw-r--r--extra/xulrunner/port_gnomevfs_to_gio.patch1316
-rw-r--r--extra/xulrunner/xulrunner-omnijar.patch1737
-rw-r--r--extra/xulrunner/xulrunner-version.patch12
-rw-r--r--multilib-testing/gcc-multilib/PKGBUILD303
-rw-r--r--multilib-testing/gcc-multilib/gcc-ada.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc-fortran.install16
-rw-r--r--multilib-testing/gcc-multilib/gcc-go.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc-hash-style-both.patch122
-rw-r--r--multilib-testing/gcc-multilib/gcc-libs.install16
-rw-r--r--multilib-testing/gcc-multilib/gcc.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc_pure64.patch24
-rw-r--r--multilib-testing/lib32-mesa/nouveau-fix-header.patch86
-rw-r--r--testing/avahi/PKGBUILD75
-rw-r--r--testing/avahi/gnome-nettool.pngbin4509 -> 0 bytes
-rw-r--r--testing/avahi/install21
-rw-r--r--testing/avahi/rc.d.patch11
-rw-r--r--testing/cryptsetup/PKGBUILD36
-rw-r--r--testing/cryptsetup/encrypt_hook132
-rw-r--r--testing/cryptsetup/encrypt_install26
-rw-r--r--testing/dmraid/PKGBUILD39
-rw-r--r--testing/dmraid/dmraid.install14
-rw-r--r--testing/dmraid/dmraid_hook19
-rw-r--r--testing/dmraid/dmraid_install19
-rw-r--r--testing/gcc/PKGBUILD254
-rw-r--r--testing/gcc/gcc-ada.install20
-rw-r--r--testing/gcc/gcc-fortran.install16
-rw-r--r--testing/gcc/gcc-go.install20
-rw-r--r--testing/gcc/gcc-hash-style-both.patch122
-rw-r--r--testing/gcc/gcc-libs.install16
-rw-r--r--testing/gcc/gcc.install20
-rw-r--r--testing/gcc/gcc_pure64.patch26
-rw-r--r--testing/gimp-devel/PKGBUILD58
-rw-r--r--testing/gimp-devel/gimp-devel.install12
-rw-r--r--testing/gimp-devel/linux.gpl19
-rw-r--r--testing/gimp-devel/uri-backend-libcurl.patch44
-rw-r--r--testing/gimp/PKGBUILD51
-rw-r--r--testing/gimp/gimp.install12
-rw-r--r--testing/gimp/linux.gpl19
-rw-r--r--testing/gimp/uri-backend-libcurl.patch77
-rw-r--r--testing/gjs/PKGBUILD29
-rw-r--r--testing/gjs/gjs-0.7.14-js185-backport.patch436
-rw-r--r--testing/gnome-shell/PKGBUILD50
-rw-r--r--testing/gnome-shell/arch.patch12
-rw-r--r--testing/gnome-shell/bluetoothstatus-always-update-devices.patch132
-rw-r--r--testing/gnome-shell/gnome-shell.install22
-rw-r--r--testing/gnome-shell/shell-recorder-missing-XFree.patch22
-rw-r--r--testing/js/PKGBUILD37
-rw-r--r--testing/js/js185-destdir.patch15
-rw-r--r--testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff17
-rw-r--r--testing/mdadm/PKGBUILD45
-rw-r--r--testing/mdadm/disable-werror.patch11
-rwxr-xr-xtesting/mdadm/mdadm37
-rw-r--r--testing/mdadm/mdadm.conf67
-rw-r--r--testing/mdadm/mdadm.install10
-rwxr-xr-xtesting/mdadm/mdadm_hook42
-rw-r--r--testing/mdadm/mdadm_install46
-rw-r--r--testing/pixman/PKGBUILD33
-rw-r--r--testing/poppler/PKGBUILD67
-rw-r--r--testing/v86d/PKGBUILD38
-rw-r--r--testing/v86d/modprobe.uvesafb10
-rw-r--r--testing/v86d/v86d12
-rw-r--r--testing/v86d/v86d_hook4
96 files changed, 0 insertions, 12697 deletions
diff --git a/community-testing/coin/PKGBUILD b/community-testing/coin/PKGBUILD
deleted file mode 100644
index 70289ef96..000000000
--- a/community-testing/coin/PKGBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Maintainer: Thomas Dziedzic < gostrc at gmail >
-# Contributor: mickele
-# Contributor: marcus fritzsch <fritschy@googlemail.com>
-
-pkgname=coin
-pkgver=3.1.3
-pkgrel=5
-pkgdesc='Coin3D is a high-level 3D graphics toolkit on top of OpenGL.'
-url='http://www.coin3d.org/'
-license=('GPL')
-arch=('i686' 'x86_64')
-depends=('mesa' 'expat')
-makedepends=('doxygen')
-optdepends=('openal: sound/dynamic linking support'
- 'fontconfig: dynamic linking support'
- 'zlib: dynamic linking support'
- 'freetype2: dynamic linking support'
- 'js: dynamic linking support')
-options=('!libtool')
-source=("http://ftp.coin3d.org/coin/src/all/Coin-${pkgver}.tar.gz")
-md5sums=('1538682f8d92cdf03e845c786879fbea')
-
-build() {
- cd Coin-${pkgver}
-
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --enable-optimization \
- --enable-3ds-import \
- --enable-javascript-api \
- --enable-threadsafe \
- --enable-exceptions \
- --enable-man \
- --with-mesa \
- --disable-debug \
- --enable-shared \
- --disable-maintainer-mode \
- --disable-dependency-tracking \
- --enable-system-expat
-
- make
-}
-
-package() {
- cd Coin-${pkgver}
-
- make DESTDIR=${pkgdir} install
-
- # final adjustments
- for _FILE in threads deprecated ; do
- mv "${pkgdir}/usr/share/man/man3/${_FILE}.3" "${pkgdir}/usr/share/man/man3/coin-${_FILE}.3"
- done
-}
diff --git a/community-testing/couchdb/PKGBUILD b/community-testing/couchdb/PKGBUILD
deleted file mode 100644
index 6d4d6d171..000000000
--- a/community-testing/couchdb/PKGBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# $Id: PKGBUILD 51045 2011-07-04 15:16:10Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Vitaliy Berdinskikh ur6lad[at]i.ua
-# Previous Contributor: Michael Fellinger <m.fellinger@gmail.com>
-
-pkgname=couchdb
-pkgver=1.1.0
-pkgrel=1.svn20110704
-pkgdesc="A document-oriented database that can be queried and indexed in a MapReduce fashion using JSON"
-arch=('i686' 'x86_64')
-url="http://couchdb.apache.org"
-license=('APACHE')
-depends=('icu' 'erlang' 'js' 'openssl' 'curl')
-makedepends=('gcc')
-install=couchdb.install
-options=('!libtool')
-backup=('etc/couchdb/local.ini'
- 'etc/conf.d/couchdb'
- 'etc/logrotate.d/couchdb')
-#source=("http://www.apache.org/dist/$pkgname/$pkgver/apache-$pkgname-$pkgver.tar.gz"
-source=("http://arch.p5n.pp.ru/~sergej/dl/apache-couchdb-$pkgver.svn20110704.tar.gz"
- "rc-script.patch")
-md5sums=('a961f9047aa34df56ef19d6f6dce083b'
- 'e9b5595338efbdc1a5db13284a296612')
-
-build() {
- cd "$srcdir/apache-$pkgname-$pkgver"
-
- sed -i 's|-ljs|-lmozjs185|' configure
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
- make
- patch etc/init/couchdb <$srcdir/rc-script.patch
-}
-
-package() {
- cd "$srcdir/apache-$pkgname-$pkgver"
- make DESTDIR="$pkgdir" install
-
- install -Dm755 etc/default/couchdb $pkgdir/etc/conf.d/couchdb
- sed -i 's|\(CONFIGURATION_FILE=/etc/\)default\(/couchdb\)|\1conf.d\2|' $pkgdir/etc/rc.d/couchdb
- sed -i 's|\(COUCHDB_OPTIONS=\)|\1"-p /var/run/couchdb/couchdb.pid"|' $pkgdir/etc/conf.d/couchdb
- sed -i 's|$COUCHDB -s|$COUCHDB $COUCHDB_OPTIONS -s|' $pkgdir/etc/rc.d/couchdb
- sed -i 's|su $COUCHDB_USER -c|su $COUCHDB_USER -s /bin/bash -c|' $pkgdir/etc/rc.d/couchdb
-
- rm -rf $pkgdir/etc/default/ $pkgdir/var/run
-}
diff --git a/community-testing/couchdb/couchdb.install b/community-testing/couchdb/couchdb.install
deleted file mode 100644
index 5eff459c7..000000000
--- a/community-testing/couchdb/couchdb.install
+++ /dev/null
@@ -1,22 +0,0 @@
-post_install() {
- id couchdb &>/dev/null || \
- useradd -r -c "CouchDB daemon" -g daemon -d /var/lib/couchdb -s /bin/false couchdb
- mkdir -p /var/run/couchdb
- chown -R couchdb.daemon /etc/couchdb
- chown -R couchdb.daemon /var/{lib,log,run}/couchdb
-}
-
-pre_upgrade() {
- id couchdb &>/dev/null || \
- useradd -r -c "CouchDB daemon" -g daemon -d /var/lib/couchdb -s /bin/false couchdb
-}
-
-post_upgrade() {
- mkdir -p $pkgdir/var/run/couchdb
- chown -R couchdb.daemon /etc/couchdb
- chown -R couchdb.daemon /var/{lib,log,run}/couchdb
-}
-
-post_remove() {
- userdel couchdb &>/dev/null
-}
diff --git a/community-testing/couchdb/rc-script.patch b/community-testing/couchdb/rc-script.patch
deleted file mode 100644
index d38f4dc6c..000000000
--- a/community-testing/couchdb/rc-script.patch
+++ /dev/null
@@ -1,90 +0,0 @@
---- couchdb.org 2011-04-01 19:56:32.000000000 +0000
-+++ couchdb 2011-04-01 19:59:17.000000000 +0000
-@@ -1,4 +1,7 @@
--#!/bin/sh -e
-+#!/bin/bash
-+#general config
-+. /etc/rc.conf
-+. /etc/rc.d/functions
-
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not
- # use this file except in compliance with the License. You may obtain a copy of
-@@ -29,7 +32,7 @@
- NAME=couchdb
- SCRIPT_NAME=`basename $0`
- COUCHDB=/usr/bin/couchdb
--CONFIGURATION_FILE=/etc/default/couchdb
-+CONFIGURATION_FILE=/etc/conf.d/couchdb
- RUN_DIR=/var/run/couchdb
- LSB_LIBRARY=/lib/lsb/init-functions
-
-@@ -61,8 +63,9 @@
- fi
-
- start_couchdb () {
-- # Start Apache CouchDB as a background process.
-+ stat_busy "Starting the CouchDB daemon"
-
-+ [ -d /var/run/couchdb ] || mkdir -p /var/run/couchdb
- command="$COUCHDB -b"
- if test -n "$COUCHDB_STDOUT_FILE"; then
- command="$command -o $COUCHDB_STDOUT_FILE"
-@@ -79,38 +82,38 @@
- mkdir -p "$RUN_DIR"
- if test -n "$COUCHDB_USER"; then
- chown $COUCHDB_USER "$RUN_DIR"
-- if su $COUCHDB_USER -c "$command" > /dev/null; then
-- return $SCRIPT_OK
-+ if su $COUCHDB_USER -s /bin/bash -c "$command" > /dev/null; then
-+ stat_done
- else
-- return $SCRIPT_ERROR
-+ stat_fail
- fi
- else
- if $command > /dev/null; then
-- return $SCRIPT_OK
-+ stat_done
- else
-- return $SCRIPT_ERROR
-+ stat_fail
- fi
- fi
- }
-
- stop_couchdb () {
-- # Stop the running Apache CouchDB process.
-+ stat_busy "Stopping the CouchDB daemon"
-
- command="$COUCHDB -d"
- if test -n "$COUCHDB_OPTIONS"; then
- command="$command $COUCHDB_OPTIONS"
- fi
- if test -n "$COUCHDB_USER"; then
-- if su $COUCHDB_USER -c "$command" > /dev/null; then
-- return $SCRIPT_OK
-+ if su $COUCHDB_USER -s /bin/bash -c "$command" > /dev/null; then
-+ stat_done
- else
-- return $SCRIPT_ERROR
-+ stat_fail
- fi
- else
- if $command > /dev/null; then
-- return $SCRIPT_OK
-+ stat_done
- else
-- return $SCRIPT_ERROR
-+ stat_fail
- fi
- fi
- }
-@@ -118,7 +121,7 @@
- display_status () {
- # Display the status of the running Apache CouchDB process.
-
-- $COUCHDB -s
-+ $COUCHDB $COUCHDB_OPTIONS -s
- }
-
- parse_script_option_list () {
diff --git a/community-testing/elinks/PKGBUILD b/community-testing/elinks/PKGBUILD
deleted file mode 100644
index 037b290e9..000000000
--- a/community-testing/elinks/PKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# $Id: PKGBUILD 51048 2011-07-04 15:29:28Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: damir <damir@archlinux.org>
-# Contributor: Ben <contrasutra@myrealbox.com>
-
-pkgname=elinks
-pkgver=0.13
-_commit="03c698e926d4421ba43d905b6d9fd7388b97352f"
-pkgrel=6
-pkgdesc="An advanced and well-established feature-rich text mode web browser."
-arch=("i686" "x86_64")
-url="http://elinks.or.cz"
-license=('GPL')
-depends=('bzip2' 'expat>=2.0' 'gpm>=1.20.4' 'openssl' 'lua>=5.1.1' 'libidn' 'js'
- 'gc' 'tre' 'smbclient')
-source=("http://arch.p5n.pp.ru/~sergej/dl/elinks-$pkgver-${_commit}.tar.gz")
-md5sums=('85916038633d0eb4ed98c3f82ac0b405')
-
-build() {
- cd "$srcdir/elinks"
- [ -x configure ] || sh autogen.sh
- ./configure --prefix=/usr --mandir=/usr/share/man \
- --sysconfdir=/etc \
- --enable-smb --without-x --enable-cgi \
- --enable-leds --enable-256-colors --enable-html-highlight \
- --with-zlib
- make
-}
-
-package() {
- cd "$srcdir/elinks"
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir/usr/share/locale/locale.alias"
- install -D -m644 "contrib/debian/$pkgname.desktop" \
- "$pkgdir/usr/share/applications/$pkgname.desktop"
-}
diff --git a/community-testing/freewrl/PKGBUILD b/community-testing/freewrl/PKGBUILD
deleted file mode 100644
index 8d00cdc7f..000000000
--- a/community-testing/freewrl/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 51056 2011-07-04 16:35:05Z spupykin $
-# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
-
-pkgname=freewrl
-pkgver=1.22.10
-pkgrel=6
-pkgdesc="VRML viewer"
-arch=('i686' 'x86_64')
-url="http://freewrl.sourceforge.net/"
-license=('GPL')
-depends=('java-runtime' 'libxaw' 'glew' 'freeglut' 'curl' 'freetype2' 'imlib2' 'sox'
- 'unzip' 'imagemagick' 'libxml2' 'ttf-bitstream-vera' 'lesstif' 'js')
-makedepends=('java-environment')
-options=(!libtool)
-source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2
- build-fix.patch)
-md5sums=('07fd8f193d14799ffb95a59a4887fc88'
- '52e4b6aacebcaf18cbec8975e0eb7fd8')
-
-build() {
- . /etc/profile.d/openjdk6.sh
- cd $srcdir/$pkgname-$pkgver
- patch -p1 <$srcdir/build-fix.patch
- export JAVASCRIPT_ENGINE_CFLAGS="-I/usr/include/js -DXP_UNIX -DJS_THREADSAFE $(pkg-config --cflags nspr)"
- export JAVASCRIPT_ENGINE_LIBS="$(pkg-config --libs nspr) -lmozjs185"
- ./configure \
- --prefix=/usr --with-fontsdir=/usr/share/fonts/TTF --enable-libeai \
- --enable-libcurl --with-expat=/usr --with-target=x11 --disable-plugin \
- --disable-mozilla-js --disable-xulrunner-js --disable-firefox-js \
- --disable-seamonkey-js
- make
-}
-
-package() {
- cd $srcdir/$pkgname-$pkgver
- make DESTDIR=$pkgdir install
-}
diff --git a/community-testing/freewrl/build-fix.patch b/community-testing/freewrl/build-fix.patch
deleted file mode 100644
index c0de71d07..000000000
--- a/community-testing/freewrl/build-fix.patch
+++ /dev/null
@@ -1,1201 +0,0 @@
-diff -wbBur freewrl-1.22.10/src/lib/non_web3d_formats/ColladaParser.c freewrl-1.22.10.my/src/lib/non_web3d_formats/ColladaParser.c
---- freewrl-1.22.10/src/lib/non_web3d_formats/ColladaParser.c 2010-08-19 06:20:36.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/non_web3d_formats/ColladaParser.c 2011-07-04 01:19:07.000000000 +0400
-@@ -54,7 +54,7 @@
- #include "ColladaParser.h"
-
- #if HAVE_EXPAT_H
--# include <expat.h>
-+# include </usr/include/expat.h>
- #endif
-
- #define PROTOINSTANCE_MAX_LEVELS 10
-diff -wbBur freewrl-1.22.10/src/lib/world_script/fieldGet.c freewrl-1.22.10.my/src/lib/world_script/fieldGet.c
---- freewrl-1.22.10/src/lib/world_script/fieldGet.c 2010-10-13 23:45:26.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/world_script/fieldGet.c 2011-07-04 20:21:21.000000000 +0400
-@@ -412,7 +412,7 @@
- /* create a new SFFloat object */
-
- fp = (float *)fp_in;
-- newjsval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)*fp));
-+ newjsval = JS_NewJSVal(cx,(double)*fp);
- fp_in = offsetPointer_deref(float *,fp_in,elementlen);
-
- /* put this object into the MF class */
-@@ -449,7 +449,7 @@
- /* create a new SFTime object */
-
- fp = (float *)fp_in;
-- newjsval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)*fp));
-+ newjsval = JS_NewJSVal(cx,(double)*fp);
- fp_in = offsetPointer_deref(float *,fp_in,elementlen);
-
- /* put this object into the MF class */
-diff -wbBur freewrl-1.22.10/src/lib/world_script/fieldSet.c freewrl-1.22.10.my/src/lib/world_script/fieldSet.c
---- freewrl-1.22.10/src/lib/world_script/fieldSet.c 2010-09-22 00:00:25.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/world_script/fieldSet.c 2011-07-04 20:03:53.000000000 +0400
-@@ -748,7 +748,7 @@
-
- #ifdef SETFIELDVERBOSE
- strval = JS_ValueToString(scriptContext, JSglobal_return_val);
-- strp = JS_GetStringBytes(strval);
-+ strp = JS_EncodeString(scriptContext, strval);
- printf ("start of setField_javascriptEventOut, to %ld:%d = %p, fieldtype %d string %s\n",(long)tn, tptr, memptr, fieldType, strp);
- #endif
-
-@@ -813,7 +813,7 @@
- case FIELDTYPE_SFImage: {
- /* the string should be saved as an SFImage */
- strval = JS_ValueToString(scriptContext, JSglobal_return_val);
-- strp = JS_GetStringBytes(strval);
-+ strp = JS_EncodeString(scriptContext, strval);
-
- Parser_scanStringValueToMem(tn, tptr, FIELDTYPE_SFImage, strp, FALSE);
- break;
-@@ -824,7 +824,7 @@
- uintptr_t *newptr;
-
- strval = JS_ValueToString(scriptContext, JSglobal_return_val);
-- strp = JS_GetStringBytes(strval);
-+ strp = JS_EncodeString(scriptContext, strval);
-
- /* copy the string over, delete the old one, if need be */
- /* printf ("fieldSet SFString, tn %d tptr %d offset from struct %d\n",
-@@ -844,7 +844,7 @@
- struct X3D_Node *mynode;
-
- strval = JS_ValueToString(scriptContext, JSglobal_return_val);
-- strp = JS_GetStringBytes(strval);
-+ strp = JS_EncodeString(scriptContext, strval);
-
- /* we will have at least one node here, in an ascii string */
- while ((*strp > '\0') && (*strp <= ' ')) strp ++;
-@@ -1227,7 +1227,7 @@
- JSString *_tmpStr;
-
- _tmpStr = JS_ValueToString(cx, mainElement);
-- strp = JS_GetStringBytes(_tmpStr);
-+ strp = JS_EncodeString(scriptContext, _tmpStr);
- printf ("sub element %d is \"%s\" \n",i,strp);
-
- if (JSVAL_IS_OBJECT(mainElement)) printf ("sub element %d is an OBJECT\n",i);
-@@ -1329,7 +1329,7 @@
- JSString *strval;
-
- strval = JS_ValueToString(cx, mainElement);
-- strp = JS_GetStringBytes(strval);
-+ strp = JS_EncodeString(cx, strval);
-
- #ifdef SETFIELDVERBOSE
- printf ("getJSMultiNumType, got string %s\n",strp);
-@@ -1441,7 +1441,7 @@
- return;
- }
- strval = JS_ValueToString(cx, _v);
-- valStr = JS_GetStringBytes(strval);
-+ valStr = JS_EncodeString(cx, strval);
-
- /* printf ("new string %d is %s\n",i,valStr); */
-
-diff -wbBur freewrl-1.22.10/src/lib/world_script/jsUtils.c freewrl-1.22.10.my/src/lib/world_script/jsUtils.c
---- freewrl-1.22.10/src/lib/world_script/jsUtils.c 2010-06-03 23:38:37.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/world_script/jsUtils.c 2011-07-04 20:21:44.000000000 +0400
-@@ -134,7 +134,7 @@
- nf = OBJECT_TO_JSVAL(me);
-
- #ifdef JSVRMLCLASSESVERBOSE
-- printf ("parentField is %u \"%s\"\n", pf, JS_GetStringBytes(JSVAL_TO_STRING(pf)));
-+ printf ("parentField is %u \"%s\"\n", pf, JS_EncodeString(cx, JSVAL_TO_STRING(pf)));
- #endif
-
- if (!setSFNodeField (cx, par, pf, &nf)) {
-@@ -197,7 +197,7 @@
- char *_id_c;
-
- _idStr = JS_ValueToString(cx, *newval);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
-
- oldS = (struct Uni_String *) *((uintptr_t *)Data);
-
-@@ -305,12 +305,12 @@
-
- case FIELDTYPE_SFFloat: {
- memcpy ((void *) &fl, Data, datalen);
-- *newval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,(double)fl));
-+ *newval = JS_NewJSVal(cx,(double)fl);
- break;
- }
- case FIELDTYPE_SFTime: {
- memcpy ((void *) &dl, Data, datalen);
-- *newval = DOUBLE_TO_JSVAL(JS_NewDouble(cx,dl));
-+ *newval = JS_NewJSVal(cx,dl);
- break;
- }
- case FIELDTYPE_SFBool:
-@@ -824,7 +824,7 @@
- struct X3D_Node *node;
-
- _idStr = JS_ValueToString(context, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(context, _idStr);
-
- #ifdef JSVRMLCLASSESVERBOSE
- printf ("\ngetSFNodeField called on name %s object %u\n",_id_c, obj);
-@@ -912,7 +912,7 @@
-
- /* get the id field... */
-
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
-
- #ifdef JSVRMLCLASSESVERBOSE
- printf ("\nsetSFNodeField called on name %s object %u, jsval %u\n",_id_c, obj, *vp);
-@@ -1131,10 +1131,10 @@
- char *_id_c = "(no value in string)";
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
- /* printf ("hmmm...js_SetPropertyCheck called on string \"%s\" object %u, jsval %u\n",_id_c, obj, *vp); */
- } else if (JSVAL_IS_DOUBLE(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyCheck called on double %s object %u, jsval %u\n",_id_c, obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1192,7 +1192,7 @@
- /* get the id field... */
-
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
- printf ("\n...js_GetPropertyDebug called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1211,7 +1211,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1229,7 +1229,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug1 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1247,7 +1247,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(cx, JSVAL_TO_STRING(id));
- printf ("...js_SetPropertyDebug2 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1265,7 +1265,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug3 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1283,7 +1283,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug4 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1301,7 +1301,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug5 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1319,7 +1319,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug6 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1337,7 +1337,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug7 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1355,7 +1355,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug8 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-@@ -1373,7 +1373,7 @@
-
- /* get the id field... */
- if (JSVAL_IS_STRING(id)) {
-- _id_c = JS_GetStringBytes(JSVAL_TO_STRING(id));
-+ _id_c = JS_EncodeString(context, JSVAL_TO_STRING(id));
- printf ("\n...js_SetPropertyDebug9 called on string \"%s\" object %u, jsval %lu\n",_id_c, (unsigned int) obj, *vp);
- } else if (JSVAL_IS_INT(id)) {
- num = JSVAL_TO_INT(id);
-diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLBrowser.c freewrl-1.22.10.my/src/lib/world_script/jsVRMLBrowser.c
---- freewrl-1.22.10/src/lib/world_script/jsVRMLBrowser.c 2010-08-02 23:55:57.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLBrowser.c 2011-07-04 20:06:25.000000000 +0400
-@@ -336,7 +336,7 @@
- return JS_FALSE;
- }
- _str = JS_ValueToString(context, argv[0]);
-- _costr = JS_GetStringBytes(_str);
-+ _costr = JS_EncodeString(context, _str);
-
- /* sanitize string, for the EAI_RW call (see EAI_RW code) */
- tptr = _costr;
-@@ -385,10 +385,10 @@
- return JS_FALSE;
- }
- _str[0] = JS_ValueToString(context, argv[0]);
-- _costr[0] = JS_GetStringBytes(_str[0]);
-+ _costr[0] = JS_EncodeString(context, _str[0]);
-
- _str[1] = JS_ValueToString(context, argv[1]);
-- _costr[1] = JS_GetStringBytes(_str[1]);
-+ _costr[1] = JS_EncodeString(context, _str[1]);
-
- /* we use the EAI code for this - so reformat this for the EAI format */
- {
-@@ -575,7 +575,7 @@
- /* third parameter should be a string */
- if (JSVAL_IS_STRING(argv[2])) {
- _str[1] = JSVAL_TO_STRING(argv[2]);
-- fieldStr = JS_GetStringBytes(_str[1]);
-+ fieldStr = JS_EncodeString(context, _str[1]);
- #ifdef JSVERBOSE
- printf ("field string is :%s:\n",fieldStr);
- #endif
-@@ -590,7 +590,7 @@
-
- /* get the URL listing as a string */
- _str[0] = JS_ValueToString(context, argv[0]);
-- _costr0 = JS_GetStringBytes(_str[0]);
-+ _costr0 = JS_EncodeString(context, _str[0]);
-
-
- #ifdef JSVERBOSE
-@@ -690,7 +690,7 @@
- for (count=0; count < argc; count++) {
- if (JSVAL_IS_STRING(argv[count])) {
- _str = JSVAL_TO_STRING(argv[count]);
-- _id_c = JS_GetStringBytes(_str);
-+ _id_c = JS_EncodeString(context, _str);
- #if defined(AQUA) || defined(_MSC_VER)
- BrowserPrintConsoleMessage(_id_c); /* statusbar hud */
- consMsgCount = 0; /* reset the "Maximum" count */
-@@ -850,7 +850,7 @@
-
- /* parameter should be a string */
- if (JSVAL_IS_STRING(argv[0])) {
-- target = JS_GetStringBytes( JSVAL_TO_STRING(argv[0]));
-+ target = JS_EncodeString(context, JSVAL_TO_STRING(argv[0]));
- #ifdef JSVERBOSE
- printf ("field string is %s\n",target);
- #endif
-@@ -930,7 +930,7 @@
-
- /* parameters should be a string */
- if (JSVAL_IS_STRING(argv[0])) {
-- targetDevice = JS_GetStringBytes( JSVAL_TO_STRING(argv[0]));
-+ targetDevice = JS_EncodeString(cx, JSVAL_TO_STRING(argv[0]));
- #ifdef JSVERBOSE
- printf ("field string is %s\n",targetDevice);
- #endif
-@@ -939,7 +939,7 @@
- return -1;
- }
- if (JSVAL_IS_STRING(argv[1])) {
-- targetController = JS_GetStringBytes( JSVAL_TO_STRING(argv[1]));
-+ targetController = JS_EncodeString(cx, JSVAL_TO_STRING(argv[1]));
- #ifdef JSVERBOSE
- printf ("field string is %s\n",targetController);
- #endif
-diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.c
---- freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.c 2010-09-22 23:40:48.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.c 2011-07-04 20:08:03.000000000 +0400
-@@ -935,7 +935,7 @@
- printf( "JS_NewDouble failed for %f in simplecopyelements.\n",dd);
- return JS_FALSE;
- }
-- val = DOUBLE_TO_JSVAL(dp);
-+ val = DOUBLE_TO_JSVAL(*dp);
-
- }
- }
-@@ -1108,7 +1108,7 @@
-
- printf ("HAVE STRING HERE!\n");
- _str = JS_ValueToString(cx, id);
-- asciiStr = JS_GetStringBytes(_str);
-+ asciiStr = JS_EncodeString(context, _str);
- printf ("we have as a parameter :%s:\n",asciiStr);
- #endif
-
-@@ -1185,7 +1185,7 @@
- if (_tmpStr==NULL) {
- _tmp_valStr = "NULL";
- } else {
-- _tmp_valStr = JS_GetStringBytes(_tmpStr);
-+ _tmp_valStr = JS_EncodeString(cx, _tmpStr);
- }
- }
-
-@@ -1281,7 +1281,7 @@
- #endif
-
- str = JS_ValueToString(cx, id);
-- p = JS_GetStringBytes(str);
-+ p = JS_EncodeString(cx, str);
- #ifdef JSVRMLCLASSESVERBOSE
- printf("\tid string %s\n ",p);
- #endif
-@@ -1368,12 +1368,12 @@
- char * _c;
- printf ("doMFSetProperty, for object %u, vp %u\n", obj,*vp);
- _str = JS_ValueToString(cx, id);
-- _c = JS_GetStringBytes(_str);
-+ _c = JS_EncodeString(cx, _str);
- printf ("id is %s\n",_c);
-
- _sstr = JS_ValueToString(cx, *vp);
- printf ("looking up value for %d %x object %p\n",*vp,*vp,obj);
-- _cc = JS_GetStringBytes(_sstr);
-+ _cc = JS_EncodeString(cx, _sstr);
- printf("\tdoMFSetProperty:%d: obj = %p, id = %s, vp = %s\n",type,
- obj, _c, _cc);
- if (JSVAL_IS_OBJECT(*vp)) { printf ("doMFSet, vp is an OBJECT\n"); }
-@@ -1397,7 +1397,7 @@
-
- if (!JS_ValueToInt32(cx, *vp, &i)) {
- _sstr = JS_ValueToString(cx, *vp);
-- _cc = JS_GetStringBytes(_sstr);
-+ _cc = JS_EncodeString(cx, _sstr);
- printf ("can not convert %s to an integer in doMFAddProperty for type %d\n",_cc,type);
- return JS_FALSE;
- }
-@@ -1408,7 +1408,7 @@
- #ifdef JSVRMLCLASSESVERBOSE
- printf ("doMFSetProperty - ensure that this is a DOUBLE ");
- _sstr = JS_ValueToString(cx, *vp);
-- _cc = JS_GetStringBytes(_sstr);
-+ _cc = JS_EncodeString(cx, _sstr);
- printf ("value is %s \n",_cc);
- #endif
-
-@@ -1420,7 +1420,7 @@
- printf( "JS_NewDouble failed for %f in simplecopyelements.\n",dd);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
-
- }
- }
-@@ -1511,7 +1511,7 @@
- nf = OBJECT_TO_JSVAL(me);
-
- #ifdef JSVRMLCLASSESVERBOSE
-- printf ("parentField is %u \"%s\"\n", pf, JS_GetStringBytes(JSVAL_TO_STRING(pf)));
-+ printf ("parentField is %u \"%s\"\n", pf, JS_EncodeString(cx, JSVAL_TO_STRING(pf)));
- #endif
-
- if (!setSFNodeField (cx, par, pf, &nf)) {
-@@ -1535,7 +1535,7 @@
- unsigned int i, j = 0;
-
- _str = JS_ValueToString(cx, *vp);
-- _buff = JS_GetStringBytes(_str);
-+ _buff = JS_EncodeString(cx, _str);
- _buff_len = strlen(_buff) + 1;
-
- #ifdef JSVRMLCLASSESVERBOSE
-@@ -1719,14 +1719,14 @@
- size_t len = 0;
-
- _idStr = JS_ValueToString(context, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(context, _idStr);
-
- /* "register" this ECMA value for routing changed flag stuff */
- setInECMATable(context, _id_c);
-
- if (JSVAL_IS_STRING(*vp)) {
- _vpStr = JS_ValueToString(context, *vp);
-- _vp_c = JS_GetStringBytes(_vpStr);
-+ _vp_c = JS_EncodeString(context, _vpStr);
-
- len = strlen(_vp_c);
-
-@@ -1752,7 +1752,7 @@
- } else {
- #ifdef JSVRMLCLASSESVERBOSE
- _vpStr = JS_ValueToString(context, *vp);
-- _vp_c = JS_GetStringBytes(_vpStr);
-+ _vp_c = JS_EncodeString(cx, _vpStr);
- printf("setECMANative: obj = %p, id = \"%s\", vp = %s\n",
- obj, _id_c, _vp_c);
- #endif
-@@ -1770,9 +1770,9 @@
- JSString *_idStr, *_vpStr;
- char *_id_c, *_vp_c;
- _idStr = JS_ValueToString(cx, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
- _vpStr = JS_ValueToString(cx, *vp);
-- _vp_c = JS_GetStringBytes(_vpStr);
-+ _vp_c = JS_EncodeString(cx, _vpStr);
- printf("getAssignProperty: obj = %p, id = \"%s\", vp = %s\n",
- obj, _id_c, _vp_c);
- printf ("what is vp? \n");
-@@ -1803,7 +1803,7 @@
-
- if (JSVAL_IS_STRING(id)) {
- _str = JSVAL_TO_STRING(id);
-- _id_c = JS_GetStringBytes(_str);
-+ _id_c = JS_EncodeString(cx, _str);
- if (!JS_ConvertValue(cx, *vp, JSTYPE_OBJECT, &newVal)) {
- printf( "JS_ConvertValue failed in setAssignProperty.\n");
- return JS_FALSE;
-@@ -1834,9 +1834,9 @@
- if (JSVAL_IS_DOUBLE(id)) printf ("id is an DOUBLE\n");
- if (JSVAL_IS_INT(id)) printf ("id is an INT\n");
-
-- printf ("id is %s\n",JS_GetStringBytes(JS_ValueToString(cx,id)));
-- printf ("initVal is %s\n",JS_GetStringBytes(JS_ValueToString(cx,initVal)));
-- printf ("newVal is %s\n",JS_GetStringBytes(JS_ValueToString(cx,newVal)));
-+ printf ("id is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,id)));
-+ printf ("initVal is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,initVal)));
-+ printf ("newVal is %s\n",JS_EncodeString(cx, JS_ValueToString(cx,newVal)));
-
- #endif
-
-@@ -1859,7 +1859,7 @@
- } else {
- #ifdef JSVRMLCLASSESVERBOSE
- _str = JS_ValueToString(cx, id);
-- _id_c = JS_GetStringBytes(_str);
-+ _id_c = JS_EncodeString(cx, _str);
- printf("setAssignProperty: obj = %p, id = \"%s\"\n",
- obj, _id_c);
- #endif
-diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.h freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.h
---- freewrl-1.22.10/src/lib/world_script/jsVRMLClasses.h 2010-10-13 23:45:26.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/world_script/jsVRMLClasses.h 2011-07-04 20:24:53.000000000 +0400
-@@ -30,6 +30,21 @@
- #ifndef __FREEWRL_JS_VRML_CLASSES_H__
- #define __FREEWRL_JS_VRML_CLASSES_H__
-
-+static inline jsval JS_NewJSVal(JSContext *cx, jsdouble d)
-+{
-+ jsval ret;
-+ JS_NewNumberValue(cx, d, &ret);
-+ return ret;
-+}
-+
-+static inline jsdouble * JS_NewDouble(JSContext *cx, jsdouble d)
-+{
-+ static jsdouble ret;
-+ jsval rv;
-+ JS_NewNumberValue(cx, d, &rv);
-+ ret = JSVAL_TO_DOUBLE(rv);
-+ return &ret;
-+}
-
- #ifndef UNUSED
- #define UNUSED(v) ((void) v)
-@@ -80,14 +95,14 @@
-
-
- #define SET_JS_TICKTIME_FALSE(possibleRetVal) { jsval zimbo; \
-- zimbo = DOUBLE_TO_JSVAL(JS_NewDouble(cx, TickTime)); \
-+ zimbo = JS_NewJSVal(cx, TickTime); \
- if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
- printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \
- return possibleRetVal; \
- }}
-
- #define SET_JS_TICKTIME() { jsval zimbo; \
-- zimbo = DOUBLE_TO_JSVAL(JS_NewDouble(cx, TickTime)); \
-+ zimbo = JS_NewJSVal(cx, TickTime); \
- if (!JS_DefineProperty(cx,obj, "__eventInTickTime", zimbo, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_STUB2, JSPROP_PERMANENT)) { \
- printf( "JS_DefineProperty failed for \"__eventInTickTime\" at %s:%d.\n",__FILE__,__LINE__); \
- return FALSE; \
-diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRML_MFClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRML_MFClasses.c
---- freewrl-1.22.10/src/lib/world_script/jsVRML_MFClasses.c 2010-09-22 23:40:48.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/world_script/jsVRML_MFClasses.c 2011-07-04 20:08:44.000000000 +0400
-@@ -596,7 +596,7 @@
- return;
- }
-
-- val = DOUBLE_TO_JSVAL(dp);
-+ val = DOUBLE_TO_JSVAL(*dp);
-
- if (!JS_SetElement(cx, obj, (jsint) i, &val)) {
- printf( "JS_DefineElement failed for arg %u in VrmlMatrixSetTransform.\n", i);
-@@ -1212,7 +1212,7 @@
- /*
- if (JSVAL_IS_STRING(id)==TRUE) {
- printf(" is a common string :%s:\n",
-- JS_GetStringBytes(JS_ValueToString(cx, id)));
-+ JS_EncodeString(cx, JS_ValueToString(cx, id)));
- }
- if (JSVAL_IS_OBJECT(id)==TRUE) {
- printf (" parameter is an object\n");
-@@ -1231,7 +1231,7 @@
- _index = JSVAL_TO_INT(id);
-
- if (_index >= _length) {
-- *vp = DOUBLE_TO_JSVAL(&zerojsdouble);
-+ *vp = DOUBLE_TO_JSVAL(zerojsdouble);
- if (!JS_DefineElement(cx, obj, (jsint) _index, *vp, JS_GET_PROPERTY_STUB, JS_SET_PROPERTY_CHECK, JSPROP_ENUMERATE)) {
- printf( "JS_DefineElement failed in VrmlMatrixGetProperty.\n");
- return JS_FALSE;
-@@ -1331,7 +1331,7 @@
- printf("MFStringAddProperty: vp = %p\n", obj);
- if (JSVAL_IS_STRING(*vp)==TRUE) {
- printf(" is a common string :%s:\n",
-- JS_GetStringBytes(JS_ValueToString(cx, *vp)));
-+ JS_EncodeString(cx, JS_ValueToString(cx, *vp)));
- }
- if (JSVAL_IS_OBJECT(*vp)==TRUE) {
- printf (" parameter is an object\n");
-@@ -1345,7 +1345,7 @@
- printf("MFStringAddProperty: id = %p\n", obj);
- if (JSVAL_IS_STRING(id)==TRUE) {
- printf(" is a common string :%s:\n",
-- JS_GetStringBytes(JS_ValueToString(cx, id)));
-+ JS_EncodeString(cx, JS_ValueToString(cx, id)));
- }
- if (JSVAL_IS_OBJECT(id)==TRUE) {
- printf (" parameter is an object\n");
-@@ -1494,7 +1494,7 @@
- if (JSVAL_IS_STRING(argv[i])==TRUE) {
- printf (" Common String, is");
- _str = JS_ValueToString(cx, argv[i]);
-- printf (JS_GetStringBytes(_str));
-+ printf (JS_EncodeString(cx, _str));
- printf ("..");
-
- }
-diff -wbBur freewrl-1.22.10/src/lib/world_script/jsVRML_SFClasses.c freewrl-1.22.10.my/src/lib/world_script/jsVRML_SFClasses.c
---- freewrl-1.22.10/src/lib/world_script/jsVRML_SFClasses.c 2010-09-25 00:22:05.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/world_script/jsVRML_SFClasses.c 2011-07-04 20:09:01.000000000 +0400
-@@ -161,7 +161,7 @@
- printf( "JS_NewDouble failed for %f in SFColorGetHSV.\n", xp[i]);
- return JS_FALSE;
- }
-- _v = DOUBLE_TO_JSVAL(dp);
-+ _v = DOUBLE_TO_JSVAL(*dp);
- JS_SetElement(cx, result, (jsint)i, &_v);
- }
-
-@@ -336,7 +336,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 1:
- d = (ptr->v).c[1];
-@@ -346,7 +346,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 2:
- d = (ptr->v).c[2];
-@@ -356,7 +356,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- }
- }
-@@ -387,13 +387,13 @@
- if (JSVAL_IS_INT(id)) {
- switch (JSVAL_TO_INT(id)) {
- case 0:
-- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(_val);
-+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(_val);
- break;
- case 1:
-- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(_val);
-+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(_val);
- break;
- case 2:
-- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(_val);
-+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(_val);
- break;
-
- }
-@@ -422,18 +422,18 @@
- *rval = OBJECT_TO_JSVAL(_arrayObj);
-
- /* construct new double before conversion? */
-- _v = DOUBLE_TO_JSVAL(&hue);
-+ _v = DOUBLE_TO_JSVAL(hue);
- if (!JS_SetElement(cx, _arrayObj, 0, &_v)) {
- printf( "JS_SetElement failed for hue in SFColorRGBAGetHSV.\n");
- return JS_FALSE;
- }
-- _v = DOUBLE_TO_JSVAL(&saturation);
-+ _v = DOUBLE_TO_JSVAL(saturation);
- if (!JS_SetElement(cx, _arrayObj, 1, &_v)) {
- printf( "JS_SetElement failed for saturation in SFColorRGBAGetHSV.\n");
- return JS_FALSE;
- }
-
-- _v = DOUBLE_TO_JSVAL(&value);
-+ _v = DOUBLE_TO_JSVAL(value);
- if (!JS_SetElement(cx, _arrayObj, 2, &_v)) {
- printf( "JS_SetElement failed for value in SFColorRGBAGetHSV.\n");
- return JS_FALSE;
-@@ -601,7 +601,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 1:
- d = (ptr->v).c[1];
-@@ -611,7 +611,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 2:
- d = (ptr->v).c[2];
-@@ -621,7 +621,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 3:
- d = (ptr->v).c[3];
-@@ -631,7 +631,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- }
- }
-@@ -662,16 +662,16 @@
- if (JSVAL_IS_INT(id)) {
- switch (JSVAL_TO_INT(id)) {
- case 0:
-- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(_val);
-+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(_val);
- break;
- case 1:
-- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(_val);
-+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(_val);
- break;
- case 2:
-- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(_val);
-+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(_val);
- break;
- case 3:
-- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(_val);
-+ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(_val);
- break;
-
- }
-@@ -983,7 +983,7 @@
- } else if (argc == 1) {
- /* is this a string, or a number indicating a node? */
- myStr = JS_ValueToString(cx, argv[0]);
-- cString = JS_GetStringBytes(myStr);
-+ cString = JS_EncodeString(cx, myStr);
- #ifdef JSVRMLCLASSESVERBOSE
- printf ("SFNodeConstr, argc =1l string %s\n",cString);
- #endif
-@@ -1067,13 +1067,13 @@
- char *_id_c;
-
- _idStr = JS_ValueToString(cx, argv[0]);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
- /* printf ("first string :%s:\n",_id_c); */
-
- cString = STRDUP(_id_c);
-
- _idStr = JS_ValueToString(cx, argv[1]);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
- /* printf ("second string :%s:\n",_id_c); */
-
- if (sscanf (_id_c,"%p",&newHandle) != 1) {
-@@ -1190,7 +1190,7 @@
- jsval rval;
-
- _idStr = JS_ValueToString(cx, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
-
- #ifdef JSVRMLCLASSESVERBOSE
- printf ("start of SFNodeGetProperty... id is %s\n",_id_c);
-@@ -1264,10 +1264,10 @@
-
-
- _idStr = JS_ValueToString(cx, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
-
- _valStr = JS_ValueToString(cx, *vp);
-- _val_c = JS_GetStringBytes(_valStr);
-+ _val_c = JS_EncodeString(cx, _valStr);
-
- #ifdef JSVRMLCLASSESVERBOSE
- printf("SFNodeSetProperty: obj = %p, id = %s, vp = %s\n",
-@@ -1904,7 +1904,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 1:
- d = (ptr->v).c[1];
-@@ -1914,7 +1914,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 2:
- d = (ptr->v).c[2];
-@@ -1924,7 +1924,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 3:
- d = (ptr->v).c[3];
-@@ -1934,7 +1934,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- }
- }
-@@ -1969,16 +1969,16 @@
- if (JSVAL_IS_INT(id)) {
- switch (JSVAL_TO_INT(id)) {
- case 0:
-- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 1:
-- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 2:
-- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 3:
-- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- }
- }
-@@ -2051,7 +2051,7 @@
- * it get created in javascript? */
- if (param_isString) {
- _str = JS_ValueToString(cx, *argv);
-- charString = JS_GetStringBytes(_str);
-+ charString = JS_EncodeString(cx, _str);
-
- if (sscanf(charString, "%lf %lf",
- &(pars[0]), &(pars[1])) != 2) {
-@@ -2143,7 +2143,7 @@
- printf( "JS_NewDouble failed for %f in SFVec2f.\n",d);
- return JS_FALSE;
- }
-- *rval = DOUBLE_TO_JSVAL(dp);
-+ *rval = DOUBLE_TO_JSVAL(*dp);
- }
-
- #ifdef JSVRMLCLASSESVERBOSE
-@@ -2332,7 +2332,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 1:
- d = (ptr->v).c[1];
-@@ -2342,7 +2342,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- }
- }
-@@ -2373,13 +2373,13 @@
- if (JSVAL_IS_INT(id)) {
- switch (JSVAL_TO_INT(id)) {
- case 0:
-- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 1:
-- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 2:
-- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- }
- }
-@@ -2458,7 +2458,7 @@
- * it get created in javascript? */
- if (param_isString) {
- _str = JS_ValueToString(cx, *argv);
-- charString = JS_GetStringBytes(_str);
-+ charString = JS_EncodeString(cx, _str);
-
- if (sscanf(charString, "%lf %lf %lf",
- &(pars[0]), &(pars[1]), &(pars[2])) != 3) {
-@@ -2580,7 +2580,7 @@
- printf( "JS_NewDouble failed for %f in SFVec3f.\n",d);
- return JS_FALSE;
- }
-- *rval = DOUBLE_TO_JSVAL(dp);
-+ *rval = DOUBLE_TO_JSVAL(*dp);
- }
- #ifdef JSVRMLCLASSESVERBOSE
- if (retSFVec3f){
-@@ -2792,9 +2792,9 @@
- char *_id_c;
-
- _idStr = JS_ValueToString(cx, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
- _idStr = JS_ValueToString(cx, *vp);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
-
- #endif
-
-@@ -2813,7 +2813,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 1:
- d = (ptr->v).c[1];
-@@ -2823,7 +2823,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 2:
- d = (ptr->v).c[2];
-@@ -2833,7 +2833,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- }
- } else {
-@@ -2869,13 +2869,13 @@
- if (JSVAL_IS_INT(id)) {
- switch (JSVAL_TO_INT(id)) {
- case 0:
-- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 1:
-- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 2:
-- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- }
- }
-@@ -2949,7 +2949,7 @@
- * it get created in javascript? */
- if (param_isString) {
- _str = JS_ValueToString(cx, *argv);
-- charString = JS_GetStringBytes(_str);
-+ charString = JS_EncodeString(cx, _str);
-
- if (sscanf(charString, "%lf %lf %lf",
- &(pars[0]), &(pars[1]), &(pars[2])) != 3) {
-@@ -3071,7 +3071,7 @@
- printf( "JS_NewDouble failed for %f in SFVec3d.\n",d);
- return JS_FALSE;
- }
-- *rval = DOUBLE_TO_JSVAL(dp);
-+ *rval = DOUBLE_TO_JSVAL(*dp);
- }
- #ifdef JSVRMLCLASSESVERBOSE
- if (retSFVec3d){
-@@ -3282,9 +3282,9 @@
- char *_id_c;
-
- _idStr = JS_ValueToString(cx, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
- _idStr = JS_ValueToString(cx, *vp);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
-
- #endif
-
-@@ -3303,7 +3303,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 1:
- d = (ptr->v).c[1];
-@@ -3313,7 +3313,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 2:
- d = (ptr->v).c[2];
-@@ -3323,7 +3323,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- }
- } else {
-@@ -3359,13 +3359,13 @@
- if (JSVAL_IS_INT(id)) {
- switch (JSVAL_TO_INT(id)) {
- case 0:
-- (ptr->v).c[0] = *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[0] = JSVAL_TO_DOUBLE(myv);
- break;
- case 1:
-- (ptr->v).c[1] = *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[1] = JSVAL_TO_DOUBLE(myv);
- break;
- case 2:
-- (ptr->v).c[2] = *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[2] = JSVAL_TO_DOUBLE(myv);
- break;
- }
- }
-@@ -3513,9 +3513,9 @@
- char *_id_c;
-
- _idStr = JS_ValueToString(cx, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
- _idStr = JS_ValueToString(cx, *vp);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
-
- #endif
-
-@@ -3534,7 +3534,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 1:
- d = (ptr->v).c[1];
-@@ -3544,7 +3544,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 2:
- d = (ptr->v).c[2];
-@@ -3554,7 +3554,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 3:
- d = (ptr->v).c[3];
-@@ -3564,7 +3564,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- }
- } else {
-@@ -3600,16 +3600,16 @@
- if (JSVAL_IS_INT(id)) {
- switch (JSVAL_TO_INT(id)) {
- case 0:
-- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 1:
-- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 2:
-- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 3:
-- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- }
- }
-@@ -3758,9 +3758,9 @@
- char *_id_c;
-
- _idStr = JS_ValueToString(cx, id);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
- _idStr = JS_ValueToString(cx, *vp);
-- _id_c = JS_GetStringBytes(_idStr);
-+ _id_c = JS_EncodeString(cx, _idStr);
-
- #endif
-
-@@ -3779,7 +3779,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 1:
- d = (ptr->v).c[1];
-@@ -3789,7 +3789,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 2:
- d = (ptr->v).c[2];
-@@ -3799,7 +3799,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- case 3:
- d = (ptr->v).c[3];
-@@ -3809,7 +3809,7 @@
- d);
- return JS_FALSE;
- }
-- *vp = DOUBLE_TO_JSVAL(dp);
-+ *vp = DOUBLE_TO_JSVAL(*dp);
- break;
- }
- } else {
-@@ -3845,16 +3845,16 @@
- if (JSVAL_IS_INT(id)) {
- switch (JSVAL_TO_INT(id)) {
- case 0:
-- (ptr->v).c[0] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[0] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 1:
-- (ptr->v).c[1] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[1] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 2:
-- (ptr->v).c[2] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[2] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- case 3:
-- (ptr->v).c[3] = (float) *JSVAL_TO_DOUBLE(myv);
-+ (ptr->v).c[3] = (float) JSVAL_TO_DOUBLE(myv);
- break;
- }
- }
-diff -wbBur freewrl-1.22.10/src/lib/x3d_parser/X3DParser.c freewrl-1.22.10.my/src/lib/x3d_parser/X3DParser.c
---- freewrl-1.22.10/src/lib/x3d_parser/X3DParser.c 2010-09-22 20:54:59.000000000 +0400
-+++ freewrl-1.22.10.my/src/lib/x3d_parser/X3DParser.c 2011-07-04 01:19:07.000000000 +0400
-@@ -54,7 +54,7 @@
- #include "X3DProtoScript.h"
-
- #if HAVE_EXPAT_H
--# include <expat.h>
-+# include </usr/include/expat.h>
- #endif
- //#define X3DPARSERVERBOSE 1
-
diff --git a/community-testing/gpac/PKGBUILD b/community-testing/gpac/PKGBUILD
deleted file mode 100644
index 69717e2bc..000000000
--- a/community-testing/gpac/PKGBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Maintainer: Brad Fanella <bradfanella@archlinux.us
-# Contributor: Allan McRae <allan@archlinux.org>
-# Contributor: niQo
-# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
-
-pkgname=gpac
-pkgver=0.4.5
-pkgrel=7
-pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
-arch=('i686' 'x86_64')
-url="http://gpac.sourceforge.net"
-depends=('libxml2' 'wxgtk' 'alsa-lib' 'sdl' 'js' 'libmad' \
- 'faad2' 'xvidcore' 'ffmpeg' 'freeglut')
-license=('LGPL')
-options=('!makeflags') # Multiple build jobs aren't handled correctly
-source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
- libpng14-infopp-null.patch)
-md5sums=('755e8c438a48ebdb13525dd491f5b0d1'
- '14d6483c9eb84434aea68596f243e0ca')
-
-build() {
- cd ${srcdir}/${pkgname}
- chmod +x configure
- sed -i 's|--warn-common||' configure
- sed -i 's#osmozilla##g' applications/Makefile
- sed -i 's#"$(prefix)#"$(DESTDIR)$(prefix)#' applications/osmo4_wx/Makefile
- sed -i 's#ldconfig || true##g' Makefile
-
- #FS#14506
- sed -i 's#lib64#lib#g' configure
- patch -Np1 -i ${srcdir}/libpng14-infopp-null.patch
-
- # Was getting "symbol lookup error: /usr/lib/gpac/gm_x11_out.so: undefined
- # symbol: XvQueryExtension" with our LDFLAGS :\
- unset LDFLAGS
-
- ./configure --prefix=/usr --mandir=/usr/share/man --use-js=no
- make
-}
-
-package() {
- cd ${srcdir}/${pkgname}
- make DESTDIR=${pkgdir} install install-lib
-}
diff --git a/community-testing/gpac/libpng14-infopp-null.patch b/community-testing/gpac/libpng14-infopp-null.patch
deleted file mode 100644
index b02456557..000000000
--- a/community-testing/gpac/libpng14-infopp-null.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -upr gpac.orig/src/media_tools/img.c gpac/src/media_tools/img.c
---- gpac.orig/src/media_tools/img.c 2010-01-24 19:03:28.000000000 +0200
-+++ gpac/src/media_tools/img.c 2010-01-24 19:04:07.000000000 +0200
-@@ -551,7 +551,7 @@ GF_Err gf_img_png_enc(char *data, u32 wi
- /* Allocate/initialize the image information data. REQUIRED */
- info_ptr = png_create_info_struct(png_ptr);
- if (info_ptr == NULL) {
-- png_destroy_write_struct(&png_ptr, png_infopp_NULL);
-+ png_destroy_write_struct(&png_ptr, NULL);
- return GF_IO_ERR;
- }
-
diff --git a/community-testing/mediatomb/PKGBUILD b/community-testing/mediatomb/PKGBUILD
deleted file mode 100644
index c8850e23c..000000000
--- a/community-testing/mediatomb/PKGBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# $Id: PKGBUILD 51077 2011-07-05 06:51:52Z jconder $
-# Contributor: William Rea <sillywilly@gmail.com>
-# Contributor: Nikhil Bysani <nikron@gmail.com>
-# Contributor: Mika Hynnä <igheax@gmail.com>
-# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
-
-pkgname=mediatomb
-pkgver=0.12.1
-pkgrel=5
-pkgdesc="Free UPnP/DLNA media server"
-arch=('i686' 'x86_64')
-url="http://mediatomb.cc/"
-license=('GPL')
-depends=('curl' 'ffmpegthumbnailer' 'js' 'libexif' 'libmp4v2' 'sqlite3' 'taglib')
-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')
-md5sums=('e927dd5dc52d3cfcebd8ca1af6f0d3c2'
- 'aa1191ec508d8bd4b3b9a5fe48efc079'
- 'bec297e4178332a26b42bbde873b94cd'
- '0ae34c0d73b76e3d215887834c3c08cf'
- 'd9e02a9956eecf5ff645bddf6dac0331')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- patch -Np1 -i $srcdir/gcc46.patch
- patch -Np1 -i $srcdir/tonewjs.patch
-
- ./configure --prefix=/usr \
- --disable-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"
-}
diff --git a/community-testing/mediatomb/gcc46.patch b/community-testing/mediatomb/gcc46.patch
deleted file mode 100644
index 0f4fe490f..000000000
--- a/community-testing/mediatomb/gcc46.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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/community-testing/mediatomb/mediatomb.conf b/community-testing/mediatomb/mediatomb.conf
deleted file mode 100644
index 798018d2a..000000000
--- a/community-testing/mediatomb/mediatomb.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# 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/community-testing/mediatomb/mediatomb.install b/community-testing/mediatomb/mediatomb.install
deleted file mode 100644
index 56f6ef92c..000000000
--- a/community-testing/mediatomb/mediatomb.install
+++ /dev/null
@@ -1,9 +0,0 @@
-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/community-testing/mediatomb/mediatomb.rc b/community-testing/mediatomb/mediatomb.rc
deleted file mode 100644
index 7b93012cd..000000000
--- a/community-testing/mediatomb/mediatomb.rc
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/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/community-testing/mediatomb/tonewjs.patch b/community-testing/mediatomb/tonewjs.patch
deleted file mode 100644
index 115968530..000000000
--- a/community-testing/mediatomb/tonewjs.patch
+++ /dev/null
@@ -1,564 +0,0 @@
-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/community-testing/mongodb/PKGBUILD b/community-testing/mongodb/PKGBUILD
deleted file mode 100644
index 04fa547a9..000000000
--- a/community-testing/mongodb/PKGBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# Maintainer: Thomas Dziedzic < gostrc at gmail >
-# Contributor: Mathias Stearn <mathias@10gen.com>
-# Contributor: Alec Thomas
-
-pkgname=mongodb
-pkgver=1.8.2
-pkgrel=5
-pkgdesc='A high-performance, open source, schema-free document-oriented database.'
-arch=('i686' 'x86_64')
-url='http://www.mongodb.org'
-license=('AGPL3')
-depends=('boost-libs' 'js' 'pcre')
-makedepends=('scons' 'boost')
-optdepends=('libpcap: needed for mongosniff')
-backup=('etc/mongodb.conf')
-install="mongodb.install"
-source=("http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz"
- 'mongodb.rc'
- 'mongodb.conf'
- 'mongodb-1.8.0-spidermonkey-1.8.5-support.patch'
- 'add-js185-support-to-SConstruct.diff')
-md5sums=('951fb1a75d90fc822cf4528585a970cf'
- '85eaa28e349fdc6250f883624e624cca'
- '4839fe1d638187ca3226e8267b947318'
- '2e6409732fba887c9cfe81257b5260ad'
- 'ca7e62be31389d951bfd8848b1675c1b')
-
-build() {
- export SCONSFLAGS="$MAKEFLAGS"
-
- cd mongodb-src-r${pkgver}
-
- # js185 support https://jira.mongodb.org/browse/SERVER-2887
- patch -Np1 -i ${srcdir}/mongodb-1.8.0-spidermonkey-1.8.5-support.patch
- patch -Np0 -i ${srcdir}/add-js185-support-to-SConstruct.diff
-
- scons \
- all \
- --full
-}
-
-package() {
- cd mongodb-src-r${pkgver}
-
- scons \
- install \
- --full \
- --prefix=${pkgdir}/usr
-
- install -D -m755 ${srcdir}/mongodb.rc \
- ${pkgdir}/etc/rc.d/mongodb
- install -D -m644 ${srcdir}/mongodb.conf \
- ${pkgdir}/etc/mongodb.conf
- install -d -m700 ${pkgdir}/var/lib/mongodb
- install -d -m755 ${pkgdir}/var/log/mongodb
-
- if [ -d ${pkgdir}/usr/lib64 ]; then
- mv ${pkgdir}/usr/lib64 ${pkgdir}/usr/lib
- fi
-}
diff --git a/community-testing/mongodb/add-js185-support-to-SConstruct.diff b/community-testing/mongodb/add-js185-support-to-SConstruct.diff
deleted file mode 100644
index c621d00cb..000000000
--- a/community-testing/mongodb/add-js185-support-to-SConstruct.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- SConstruct.original 2011-07-05 14:23:46.334748007 +0000
-+++ SConstruct 2011-07-05 14:26:15.729533840 +0000
-@@ -208,6 +208,9 @@
- justClientLib = (COMMAND_LINE_TARGETS == ['mongoclient'])
-
- env = Environment( MSVS_ARCH=msarch , tools = ["default", "gch"], toolpath = '.' )
-+
-+env.ParseConfig('pkg-config --cflags --libs mozjs185')
-+
- if has_option( "cxx" ):
- env["CC"] = get_option( "cxx" )
- env["CXX"] = get_option( "cxx" )
diff --git a/community-testing/mongodb/mongodb-1.8.0-spidermonkey-1.8.5-support.patch b/community-testing/mongodb/mongodb-1.8.0-spidermonkey-1.8.5-support.patch
deleted file mode 100644
index 46160450f..000000000
--- a/community-testing/mongodb/mongodb-1.8.0-spidermonkey-1.8.5-support.patch
+++ /dev/null
@@ -1,1502 +0,0 @@
---- mongodb-src-r1.8.0/SConstruct.mozjs185~ 2011-03-16 16:33:30.000000000 +0100
-+++ mongodb-src-r1.8.0/SConstruct 2011-04-01 22:16:43.411100876 +0200
-@@ -671,7 +671,6 @@ if nix:
- env.Append( CPPFLAGS="-fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch" )
- # env.Append( " -Wconversion" ) TODO: this doesn't really work yet
- if linux:
-- env.Append( CPPFLAGS=" -Werror " )
- env.Append( CPPFLAGS=" -fno-builtin-memcmp " ) # glibc's memcmp is faster than gcc's
- env.Append( CXXFLAGS=" -Wnon-virtual-dtor " )
- env.Append( LINKFLAGS=" -fPIC -pthread -rdynamic" )
-@@ -893,11 +892,11 @@ def doConfigure( myenv , needPcre=True ,
- if usesm:
-
- # see http://www.mongodb.org/pages/viewpageattachments.action?pageId=12157032
-- J = [ "mozjs" , "js", "js_static" ]
-+ J = [ "mozjs185" , "js", "js_static" ]
- if windows:
- if msarch == "amd64":
- if release:
-- J = [ "js64r", "js", "mozjs" , "js_static" ]
-+ J = [ "js64r", "js", "mozjs185" , "js_static" ]
- else:
- J = "js64d"
- print( "looking for js64d.lib for spidermonkey. (available at mongodb.org prebuilt)" );
-@@ -905,14 +904,12 @@ def doConfigure( myenv , needPcre=True ,
- if not force32:
- print( "Assuming a 32 bit build is desired" )
- if release:
-- J = [ "js32r", "js", "mozjs" , "js_static" ]
-+ J = [ "js32r", "js", "mozjs185" , "js_static" ]
- else:
-- J = [ "js32d", "js", "mozjs" , "js_static" ]
-+ J = [ "js32d", "js", "mozjs185" , "js_static" ]
-
- myCheckLib( J , True )
- mozHeader = "js"
-- if bigLibString(myenv).find( "mozjs" ) >= 0:
-- mozHeader = "mozjs"
-
- if not conf.CheckHeader( mozHeader + "/jsapi.h" ):
- if conf.CheckHeader( "jsapi.h" ):
-@@ -921,6 +918,13 @@ def doConfigure( myenv , needPcre=True ,
- print( "no spider monkey headers!" )
- Exit(1)
-
-+ if conf.CheckFunc( 'JS_NewCompartmentAndGlobalObject' ):
-+ myenv.Append( CPPDEFINES=[ "HAVE_COMPARTMENTS" ] )
-+ if conf.CheckFunc( 'JS_GetStringCharsAndLength' ):
-+ myenv.Append( CPPDEFINES=[ "HAVE_JS_GET_STRING_CHARS_AND_LENGTH" ] )
-+ if conf.CheckFunc( 'JS_NewRegExpObjectNoStatics' ):
-+ myenv.Append( CPPDEFINES=[ "JS_NEW_REG_EXP_OBJECT_NO_STATISTICS" ] )
-+
- if usev8:
- if debugBuild:
- myCheckLib( [ "v8_g" , "v8" ] , True )
---- mongodb-src-r1.8.0/scripting/engine_spidermonkey.cpp.mozjs185~ 2011-03-16 16:33:30.000000000 +0100
-+++ mongodb-src-r1.8.0/scripting/engine_spidermonkey.cpp 2011-04-01 22:42:19.780233492 +0200
-@@ -192,8 +192,13 @@ namespace mongo {
- }
-
- string toString( JSString * so ) {
-+#ifdef HAVE_JS_GET_STRING_CHARS_AND_LENGTH
-+ size_t srclen;
-+ const jschar * s = JS_GetStringCharsAndLength( _context , so , &srclen );
-+#else
- jschar * s = JS_GetStringChars( so );
- size_t srclen = JS_GetStringLength( so );
-+#endif
- if( srclen == 0 )
- return "";
-
-@@ -360,7 +365,7 @@ namespace mongo {
-
- case JSTYPE_OBJECT: {
- JSObject * o = JSVAL_TO_OBJECT( val );
-- if ( ! o || o == JSVAL_NULL ) {
-+ if ( ! o || o == (JSObject *)JSVAL_NULL ){
- b.appendNull( name );
- }
- else if ( ! appendSpecialDBObject( this , b , name , val , o ) ) {
-@@ -419,16 +424,15 @@ namespace mongo {
- return true;
- }
-
-- void addRoot( JSFunction * f , const char * name );
-+ void addRoot( JSFunction * f );
-
- JSFunction * compileFunction( const char * code, JSObject * assoc = 0 ) {
-- const char * gcName = "unknown";
-- JSFunction * f = _compileFunction( code , assoc , gcName );
-- //addRoot( f , gcName );
-+ JSFunction * f = _compileFunction( code , assoc );
-+ //addRoot( f );
- return f;
- }
-
-- JSFunction * _compileFunction( const char * raw , JSObject * assoc , const char *& gcName ) {
-+ JSFunction * _compileFunction( const char * raw , JSObject * assoc ) {
- if ( ! assoc )
- assoc = JS_GetGlobalObject( _context );
-
-@@ -447,7 +451,6 @@ namespace mongo {
- if ( isSimpleStatement( s ) ) {
- s = "return " + s;
- }
-- gcName = "cf anon";
- fname << "anon";
- return JS_CompileFunction( _context , assoc , fname.str().c_str() , 0 , 0 , s.c_str() , s.size() , "nofile_a" , 0 );
- }
-@@ -488,7 +491,6 @@ namespace mongo {
- log() << "compile failed for: " << raw << endl;
- return 0;
- }
-- gcName = "cf normal";
- return func;
- }
-
-@@ -630,7 +632,11 @@ namespace mongo {
- flags++;
- }
-
-+#ifdef JS_NEW_REG_EXP_OBJECT_NO_STATISTICS
-+ JSObject * r = JS_NewRegExpObjectNoStatics( _context , (char*)e.regex() , strlen( e.regex() ) , flagNumber);
-+#else
- JSObject * r = JS_NewRegExpObject( _context , (char*)e.regex() , strlen( e.regex() ) , flagNumber );
-+#endif
- assert( r );
- return OBJECT_TO_JSVAL( r );
- }
-@@ -791,7 +797,7 @@ namespace mongo {
-
- BSONFieldIterator * it = (BSONFieldIterator*)JSVAL_TO_PRIVATE( *statep );
- if ( ! it ) {
-- *statep = 0;
-+ *statep = JSVAL_NULL;
- return JS_TRUE;
- }
-
-@@ -803,7 +809,7 @@ namespace mongo {
- }
- else {
- delete it;
-- *statep = 0;
-+ *statep = JSVAL_NULL;
- }
- return JS_TRUE;
- }
-@@ -818,7 +824,7 @@ namespace mongo {
- return JS_FALSE;
- }
-
-- JSBool noaccess( JSContext *cx, JSObject *obj, jsval idval, jsval *vp) {
-+ JSBool noaccess( JSContext *cx, JSObject *obj, jsid id, jsval *vp){
- BSONHolder * holder = GETHOLDER( cx , obj );
- if ( ! holder ) {
- // in init code still
-@@ -830,24 +836,37 @@ namespace mongo {
- return JS_FALSE;
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
-+ JSBool strict_noaccess( JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp){
-+ return noaccess( cx , obj , id , vp );
-+ }
-+
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp)
- JSClass bson_ro_class = {
- "bson_ro_object" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE | JSCLASS_NEW_ENUMERATE ,
-- noaccess, noaccess, JS_PropertyStub, noaccess,
-- (JSEnumerateOp)bson_enumerate, (JSResolveOp)(&resolveBSONField) , JS_ConvertStub, bson_finalize ,
-+ noaccess, noaccess, JS_PropertyStub, strict_noaccess,
-+ (JSEnumerateOp)bson_enumerate, (JSResolveOp)resolveBSONField , JS_ConvertStub, bson_finalize ,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool bson_cons( JSContext* cx, uintN argc, jsval* vp ){
-+#else
- JSBool bson_cons( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- cerr << "bson_cons : shouldn't be here!" << endl;
- JS_ReportError( cx , "can't construct bson object" );
- return JS_FALSE;
- }
-
- JSFunctionSpec bson_functions[] = {
-- { 0 }
-+ JS_FS_END
- };
-
-- JSBool bson_add_prop( JSContext *cx, JSObject *obj, jsval idval, jsval *vp) {
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSPropertyOp)
-+ JSBool bson_add_prop( JSContext *cx, JSObject *obj, jsid id, jsval *vp){
-+ jsval idval;
-+ JS_IdToValue( cx , id , &idval );
- BSONHolder * holder = GETHOLDER( cx , obj );
- if ( ! holder ) {
- // static init
-@@ -864,8 +883,10 @@ namespace mongo {
- return JS_TRUE;
- }
-
--
-- JSBool mark_modified( JSContext *cx, JSObject *obj, jsval idval, jsval *vp) {
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSPropertyOp)
-+ JSBool mark_modified( JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp){
-+ jsval idval;
-+ JS_IdToValue( cx , id , &idval );
- Convertor c(cx);
- BSONHolder * holder = GETHOLDER( cx , obj );
- if ( !holder ) // needed when we're messing with DBRef.prototype
-@@ -877,7 +898,10 @@ namespace mongo {
- return JS_TRUE;
- }
-
-- JSBool mark_modified_remove( JSContext *cx, JSObject *obj, jsval idval, jsval *vp) {
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSPropertyOp)
-+ JSBool mark_modified_remove( JSContext *cx, JSObject *obj, jsid id, jsval *vp){
-+ jsval idval;
-+ JS_IdToValue( cx , id , &idval );
- Convertor c(cx);
- BSONHolder * holder = GETHOLDER( cx , obj );
- if ( holder->_inResolve )
-@@ -887,23 +911,26 @@ namespace mongo {
- return JS_TRUE;
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp)
- JSClass bson_class = {
- "bson_object" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE | JSCLASS_NEW_ENUMERATE ,
- bson_add_prop, mark_modified_remove, JS_PropertyStub, mark_modified,
-- (JSEnumerateOp)bson_enumerate, (JSResolveOp)(&resolveBSONField) , JS_ConvertStub, bson_finalize ,
-+ (JSEnumerateOp)bson_enumerate, (JSResolveOp)resolveBSONField , JS_ConvertStub, bson_finalize ,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- static JSClass global_class = {
- "global", JSCLASS_GLOBAL_FLAGS,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
- // --- global helpers ---
-
-- JSBool native_print( JSContext * cx , JSObject * obj , uintN argc, jsval *argv, jsval *rval ) {
-+ JSBool native_print( JSContext * cx , uintN argc , jsval *vp ){
-+ jsval *argv = JS_ARGV( cx , vp);
- stringstream ss;
- Convertor c( cx );
- for ( uintN i=0; i<argc; i++ ) {
-@@ -913,10 +940,13 @@ namespace mongo {
- }
- ss << "\n";
- Logstream::logLockless( ss.str() );
-+ JS_SET_RVAL( cx , vp , JSVAL_VOID );
- return JS_TRUE;
- }
-
-- JSBool native_helper( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval ) {
-+ JSBool native_helper( JSContext *cx , uintN argc, jsval *vp){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
-
- NativeFunction func = (NativeFunction)((long long)c.getNumber( obj , "x" ) );
-@@ -942,35 +972,37 @@ namespace mongo {
- }
-
- if ( out.isEmpty() ) {
-- *rval = JSVAL_VOID;
-+ JS_SET_RVAL( cx , vp , JSVAL_VOID );
- }
- else {
-- *rval = c.toval( out.firstElement() );
-+ JS_SET_RVAL( cx , vp , c.toval( out.firstElement() ) );
- }
-
- return JS_TRUE;
- }
-
-- JSBool native_load( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval );
-+ JSBool native_load( JSContext *cx , uintN argc, jsval *vp );
-
-- JSBool native_gc( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval ) {
-+ JSBool native_gc( JSContext *cx , uintN argc, jsval *vp ){
- JS_GC( cx );
-+ JS_SET_RVAL( cx , vp , JSVAL_VOID );
- return JS_TRUE;
- }
-
- JSFunctionSpec globalHelpers[] = {
-- { "print" , &native_print , 0 , 0 , 0 } ,
-- { "nativeHelper" , &native_helper , 1 , 0 , 0 } ,
-- { "load" , &native_load , 1 , 0 , 0 } ,
-- { "gc" , &native_gc , 1 , 0 , 0 } ,
-- { 0 , 0 , 0 , 0 , 0 }
-+ JS_FS( "print" , &native_print , 0 , JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "nativeHelper" , &native_helper , 1 , JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "load" , &native_load , 1 , JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "gc" , &native_gc , 1 , JSFUN_FAST_NATIVE ) ,
-+ JS_FS_END
- };
-
- // ----END global helpers ----
-
- // Object helpers
-
-- JSBool bson_get_size(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool bson_get_size(JSContext *cx, uintN argc, jsval *vp){
-+ jsval *argv = JS_ARGV( cx , vp );
- if ( argc != 1 || !JSVAL_IS_OBJECT( argv[ 0 ] ) ) {
- JS_ReportError( cx , "bsonsize requires one valid object" );
- return JS_FALSE;
-@@ -979,7 +1011,7 @@ namespace mongo {
- Convertor c(cx);
-
- if ( argv[0] == JSVAL_VOID || argv[0] == JSVAL_NULL ) {
-- *rval = c.toval( 0.0 );
-+ JS_SET_RVAL( cx , vp , c.toval( 0.0 ) );
- return JS_TRUE;
- }
-
-@@ -999,18 +1031,21 @@ namespace mongo {
- size = temp.objsize();
- }
-
-- *rval = c.toval( size );
-+ JS_SET_RVAL( cx , vp , c.toval( size ) );
- return JS_TRUE;
- }
-
- JSFunctionSpec objectHelpers[] = {
-- { "bsonsize" , &bson_get_size , 1 , 0 , 0 } ,
-- { 0 , 0 , 0 , 0 , 0 }
-+ JS_FS( "bsonsize" , &bson_get_size , 1 , JSFUN_FAST_NATIVE ) ,
-+ JS_FS_END
- };
-
- // end Object helpers
-
-- JSBool resolveBSONField( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ) {
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSResolveOp)
-+ JSBool resolveBSONField( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ){
-+ jsval idval;
-+ JS_IdToValue( cx , id , &idval );
- assert( JS_EnterLocalRootScope( cx ) );
- Convertor c( cx );
-
-@@ -1023,7 +1058,7 @@ namespace mongo {
- }
- holder->check();
-
-- string s = c.toString( id );
-+ string s = c.toString( idval );
-
- BSONElement e = holder->_obj[ s.c_str() ];
-
-@@ -1139,9 +1174,15 @@ namespace mongo {
- //JS_SetVersion( _context , JSVERSION_LATEST); TODO
- JS_SetErrorReporter( _context , errorReporter );
-
-+#ifdef HAVE_COMPARTMENTS
-+ _global = JS_NewCompartmentAndGlobalObject( _context , &global_class , NULL);
-+ massert( 13442 , "JS_NewCompartmentAndGlobalObject failed for global" , _global );
-+ _call = JS_EnterCrossCompartmentCall( _context , _global);
-+#else
- _global = JS_NewObject( _context , &global_class, NULL, NULL);
- massert( 10432 , "JS_NewObject failed for global" , _global );
- JS_SetGlobalObject( _context , _global );
-+#endif
- massert( 10433 , "js init failed" , JS_InitStandardClasses( _context , _global ) );
-
- JS_SetOptions( _context , JS_GetOptions( _context ) | JSOPTION_VAROBJFIX );
-@@ -1159,13 +1200,14 @@ namespace mongo {
- smlock;
- uassert( 10223 , "deleted SMScope twice?" , _convertor );
-
-- for ( list<void*>::iterator i=_roots.begin(); i != _roots.end(); i++ ) {
-- JS_RemoveRoot( _context , *i );
-+ for ( list<JSObject*>::iterator i=_roots.begin(); i != _roots.end(); i++ ){
-+ JSObject * obj = (JSObject *)*i;
-+ JS_RemoveObjectRoot( _context , &obj );
- }
- _roots.clear();
-
- if ( _this ) {
-- JS_RemoveRoot( _context , &_this );
-+ JS_RemoveObjectRoot( _context , &_this );
- _this = 0;
- }
-
-@@ -1174,6 +1216,13 @@ namespace mongo {
- _convertor = 0;
- }
-
-+#ifdef HAVE_COMPARTMENTS
-+ if ( _call ) {
-+ JS_LeaveCrossCompartmentCall( _call );
-+ _call = 0;
-+ }
-+#endif
-+
- if ( _context ) {
- // This is expected to reclaim _global as well.
- JS_DestroyContext( _context );
-@@ -1187,16 +1236,16 @@ namespace mongo {
- assert( _convertor );
- return;
- if ( _this ) {
-- JS_RemoveRoot( _context , &_this );
-+ JS_RemoveObjectRoot( _context , &_this );
- _this = 0;
- }
- currentScope.reset( this );
- _error = "";
- }
-
-- void addRoot( void * root , const char * name ) {
-- JS_AddNamedRoot( _context , root , name );
-- _roots.push_back( root );
-+ void addRoot( JSObject * obj ){
-+ JS_AddObjectRoot( _context , &obj );
-+ _roots.push_back( obj );
- }
-
- void init( const BSONObj * data ) {
-@@ -1336,13 +1385,13 @@ namespace mongo {
- void setThis( const BSONObj * obj ) {
- smlock;
- if ( _this ) {
-- JS_RemoveRoot( _context , &_this );
-+ JS_RemoveObjectRoot( _context , &_this );
- _this = 0;
- }
-
- if ( obj ) {
- _this = _convertor->toJSObject( obj );
-- JS_AddNamedRoot( _context , &_this , "scope this" );
-+ JS_AddObjectRoot( _context , &_this );
- }
- }
-
-@@ -1402,7 +1451,7 @@ namespace mongo {
- spec->start = boost::posix_time::microsec_clock::local_time();
- spec->count = 0;
- JS_SetContextPrivate( _context, (void*)spec );
--#if defined(SM181) && !defined(XULRUNNER190)
-+#if JS_VERSION >= 181 && !defined(XULRUNNER190)
- JS_SetOperationCallback( _context, _interrupt );
- #else
- JS_SetBranchCallback( _context, interrupt );
-@@ -1412,7 +1461,7 @@ namespace mongo {
-
- void uninstallInterrupt( int timeoutMs ) {
- if ( timeoutMs != 0 || ScriptEngine::haveCheckInterruptCallback() ) {
--#if defined(SM181) && !defined(XULRUNNER190)
-+#if JS_VERSION >= 181 && !defined(XULRUNNER190)
- JS_SetOperationCallback( _context , 0 );
- #else
- JS_SetBranchCallback( _context, 0 );
-@@ -1548,9 +1597,12 @@ namespace mongo {
-
- JSObject * _global;
- JSObject * _this;
-+#ifdef HAVE_COMPARTMENTS
-+ JSCrossCompartmentCall * _call;
-+#endif
-
- string _error;
-- list<void*> _roots;
-+ list<JSObject*> _roots;
-
- bool _externalSetup;
- bool _localConnect;
-@@ -1579,7 +1631,8 @@ namespace mongo {
- }
- }
-
-- JSBool native_load( JSContext *cx , JSObject *obj , uintN argc, jsval *argv , jsval *rval ) {
-+ JSBool native_load( JSContext *cx , uintN argc, jsval *vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
- Convertor c(cx);
-
- Scope * s = currentScope.get();
-@@ -1594,6 +1647,7 @@ namespace mongo {
- }
- }
-
-+ JS_SET_RVAL( cx , vp , JSVAL_VOID );
- return JS_TRUE;
- }
-
-@@ -1633,7 +1687,7 @@ namespace mongo {
- return new SMScope();
- }
-
-- void Convertor::addRoot( JSFunction * f , const char * name ) {
-+ void Convertor::addRoot( JSFunction * f ){
- if ( ! f )
- return;
-
-@@ -1642,7 +1696,7 @@ namespace mongo {
-
- JSObject * o = JS_GetFunctionObject( f );
- assert( o );
-- scope->addRoot( &o , name );
-+ scope->addRoot( o );
- }
-
- }
---- mongodb-src-r1.8.0/scripting/engine_spidermonkey.h.mozjs185~ 2011-03-16 16:33:30.000000000 +0100
-+++ mongodb-src-r1.8.0/scripting/engine_spidermonkey.h 2011-04-01 21:29:15.697678508 +0200
-@@ -21,6 +21,9 @@
-
- // START inc hacking
-
-+#undef malloc
-+#undef realloc
-+
- #if defined( MOZJS )
-
- #define MOZILLA_1_8_BRANCH
-@@ -55,6 +58,9 @@
-
- #endif
-
-+#define malloc MONGO_malloc
-+#define realloc MONGO_realloc
-+
- // END inc hacking
-
- // -- SM 1.6 hacks ---
-@@ -81,6 +87,10 @@ JSBool JS_CStringsAreUTF8() {
- #define SM181
- #endif
-
-+#ifndef JSFUN_FAST_NATIVE
-+#define JSFUN_FAST_NATIVE 0
-+#endif
-+
- namespace mongo {
-
- class SMScope;
-@@ -104,7 +114,7 @@ namespace mongo {
- extern boost::thread_specific_ptr<SMScope> currentScope;
-
- // bson
-- JSBool resolveBSONField( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp );
-+ JSBool resolveBSONField( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp );
-
-
- // mongo
---- mongodb-src-r1.8.0/scripting/sm_db.cpp.mozjs185~ 2011-03-16 16:33:30.000000000 +0100
-+++ mongodb-src-r1.8.0/scripting/sm_db.cpp 2011-04-01 22:51:59.701652521 +0200
-@@ -79,13 +79,25 @@ namespace mongo {
- return holder->get();
- }
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool internal_cursor_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool internal_cursor_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- uassert( 10236 , "no args to internal_cursor_constructor" , argc == 0 );
- assert( JS_SetPrivate( cx , obj , 0 ) ); // just for safety
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
-
-- void internal_cursor_finalize( JSContext * cx , JSObject * obj ) {
-+ void internal_cursor_finalize( JSContext * cx, JSObject * obj ){
- CursorHolder * holder = (CursorHolder*)JS_GetPrivate( cx , obj );
- if ( holder ) {
- delete holder;
-@@ -93,10 +105,11 @@ namespace mongo {
- }
- }
-
-- JSBool internal_cursor_hasNext(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool internal_cursor_hasNext(JSContext *cx , uintN argc , jsval *vp) {
-+ JSObject* obj = JS_THIS_OBJECT( cx , vp );
- DBClientCursor *cursor = getCursor( cx, obj );
- try {
-- *rval = cursor->more() ? JSVAL_TRUE : JSVAL_FALSE;
-+ JS_SET_RVAL( cx , vp , cursor->more() ? JSVAL_TRUE : JSVAL_FALSE );
- }
- catch ( std::exception& e ) {
- JS_ReportError( cx , e.what() );
-@@ -105,14 +118,16 @@ namespace mongo {
- return JS_TRUE;
- }
-
-- JSBool internal_cursor_objsLeftInBatch(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool internal_cursor_objsLeftInBatch(JSContext *cx, uintN argc, jsval *vp) {
-+ JSObject* obj = JS_THIS_OBJECT( cx , vp );
- DBClientCursor *cursor = getCursor( cx, obj );
- Convertor c(cx);
-- *rval = c.toval((double) cursor->objsLeftInBatch() );
-+ JS_SET_RVAL( cx , vp , c.toval((double) cursor->objsLeftInBatch()) );
- return JS_TRUE;
- }
-
-- JSBool internal_cursor_next(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool internal_cursor_next(JSContext *cx, uintN argc, jsval *vp) {
-+ JSObject* obj = JS_THIS_OBJECT( cx , vp );
- DBClientCursor *cursor = getCursor( cx, obj );
-
- BSONObj n;
-@@ -131,20 +146,21 @@ namespace mongo {
- }
-
- Convertor c(cx);
-- *rval = c.toval( &n );
-+ JS_SET_RVAL( cx , vp , c.toval( &n ) );
- return JS_TRUE;
- }
-
- JSFunctionSpec internal_cursor_functions[] = {
-- { "hasNext" , internal_cursor_hasNext , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "objsLeftInBatch" , internal_cursor_objsLeftInBatch , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "next" , internal_cursor_next , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { 0 }
-+ JS_FS( "hasNext" , internal_cursor_hasNext , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "objsLeftInBatch" , internal_cursor_objsLeftInBatch , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "next" , internal_cursor_next , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS_END
- };
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass internal_cursor_class = {
- "InternalCursor" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, internal_cursor_finalize,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-@@ -157,7 +173,16 @@ namespace mongo {
- throw -1;
- }
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool mongo_local_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool mongo_local_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- Convertor c( cx );
-
- shared_ptr< DBClientWithCommands > client( createDirectClient() );
-@@ -166,10 +191,23 @@ namespace mongo {
- jsval host = c.toval( "EMBEDDED" );
- assert( JS_SetProperty( cx , obj , "host" , &host ) );
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool mongo_external_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool mongo_external_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- Convertor c( cx );
-
- smuassert( cx , "0 or 1 args to Mongo" , argc <= 1 );
-@@ -197,6 +235,9 @@ namespace mongo {
- assert( JS_SetPrivate( cx , obj , (void*)( new shared_ptr< DBClientWithCommands >( conn ) ) ) );
- jsval host_val = c.toval( host.c_str() );
- assert( JS_SetProperty( cx , obj , "host" , &host_val ) );
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
-
- }
-@@ -215,14 +256,18 @@ namespace mongo {
- }
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass mongo_class = {
- "Mongo" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, mongo_finalize,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-- JSBool mongo_find(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool mongo_find(JSContext *cx, uintN argc, jsval *vp) {
-+ JSObject* obj = JS_THIS_OBJECT( cx , vp );
-+ jsval* argv = JS_ARGV( cx , vp );
-+
- smuassert( cx , "mongo_find needs 7 args" , argc == 7 );
- shared_ptr< DBClientWithCommands > * connHolder = (shared_ptr< DBClientWithCommands >*)JS_GetPrivate( cx , obj );
- smuassert( cx , "no connection!" , connHolder && connHolder->get() );
-@@ -252,7 +297,8 @@ namespace mongo {
- JSObject * mycursor = JS_NewObject( cx , &internal_cursor_class , 0 , 0 );
- CHECKNEWOBJECT( mycursor, cx, "internal_cursor_class" );
- assert( JS_SetPrivate( cx , mycursor , new CursorHolder( cursor, *connHolder ) ) );
-- *rval = OBJECT_TO_JSVAL( mycursor );
-+
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( mycursor ));
- return JS_TRUE;
- }
- catch ( ... ) {
-@@ -261,7 +307,10 @@ namespace mongo {
- }
- }
-
-- JSBool mongo_update(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool mongo_update(JSContext *cx, uintN argc, jsval *vp) {
-+ JSObject* obj = JS_THIS_OBJECT( cx , vp );
-+ jsval* argv = JS_ARGV( cx , vp );
-+
- smuassert( cx , "mongo_find needs at elast 3 args" , argc >= 3 );
- smuassert( cx , "2nd param to update has to be an object" , JSVAL_IS_OBJECT( argv[1] ) );
- smuassert( cx , "3rd param to update has to be an object" , JSVAL_IS_OBJECT( argv[2] ) );
-@@ -282,6 +331,7 @@ namespace mongo {
-
- try {
- conn->update( ns , c.toObject( argv[1] ) , c.toObject( argv[2] ) , upsert , multi );
-+ JS_SET_RVAL( cx , vp , JSVAL_VOID );
- return JS_TRUE;
- }
- catch ( ... ) {
-@@ -290,7 +340,10 @@ namespace mongo {
- }
- }
-
-- JSBool mongo_insert(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool mongo_insert(JSContext *cx, uintN argc, jsval *vp) {
-+ JSObject* obj = JS_THIS_OBJECT( cx , vp );
-+ jsval* argv = JS_ARGV( cx , vp );
-+
- smuassert( cx , "mongo_insert needs 2 args" , argc == 2 );
- smuassert( cx , "2nd param to insert has to be an object" , JSVAL_IS_OBJECT( argv[1] ) );
-
-@@ -310,6 +363,7 @@ namespace mongo {
- // TODO: add _id
-
- conn->insert( ns , o );
-+ JS_SET_RVAL( cx, vp, JSVAL_VOID );
- return JS_TRUE;
- }
- catch ( std::exception& e ) {
-@@ -325,7 +379,10 @@ namespace mongo {
- }
- }
-
-- JSBool mongo_remove(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool mongo_remove(JSContext *cx, uintN argc, jsval *vp) {
-+ JSObject* obj = JS_THIS_OBJECT( cx , vp );
-+ jsval* argv = JS_ARGV( cx , vp );
-+
- smuassert( cx , "mongo_remove needs 2 or 3 arguments" , argc == 2 || argc == 3 );
- smuassert( cx , "2nd param to insert has to be an object" , JSVAL_IS_OBJECT( argv[1] ) );
-
-@@ -346,6 +403,7 @@ namespace mongo {
-
- try {
- conn->remove( ns , o , justOne );
-+ JS_SET_RVAL( cx , vp , JSVAL_VOID );
- return JS_TRUE;
- }
- catch ( std::exception& e ) {
-@@ -361,16 +419,26 @@ namespace mongo {
- }
-
- JSFunctionSpec mongo_functions[] = {
-- { "find" , mongo_find , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "update" , mongo_update , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "insert" , mongo_insert , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "remove" , mongo_remove , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { 0 }
-+ JS_FS( "find" , mongo_find , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "update" , mongo_update , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "insert" , mongo_insert , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "remove" , mongo_remove , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS_END
- };
-
- // ------------- db_collection -------------
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool db_collection_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool db_collection_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- smuassert( cx , "db_collection_constructor wrong args" , argc == 4 );
- assert( JS_SetProperty( cx , obj , "_mongo" , &(argv[0]) ) );
- assert( JS_SetProperty( cx , obj , "_db" , &(argv[1]) ) );
-@@ -382,16 +450,22 @@ namespace mongo {
- JS_ReportError( cx , "can't use sharded collection from db.eval" );
- return JS_FALSE;
- }
--
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
-
-- JSBool db_collection_resolve( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ) {
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSResolveOp)
-+ JSBool db_collection_resolve( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ){
-+ jsval idval;
-+ JS_IdToValue( cx , id , &idval );
-+
- if ( flags & JSRESOLVE_ASSIGNING )
- return JS_TRUE;
-
- Convertor c( cx );
-- string collname = c.toString( id );
-+ string collname = c.toString( idval );
-
- if ( isSpecialName( collname ) )
- return JS_TRUE;
-@@ -419,10 +493,11 @@ namespace mongo {
- return JS_TRUE;
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp)
- JSClass db_collection_class = {
- "DBCollection" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-- JS_EnumerateStub, (JSResolveOp)(&db_collection_resolve) , JS_ConvertStub, JS_FinalizeStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
-+ JS_EnumerateStub, (JSResolveOp)db_collection_resolve , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-@@ -454,15 +529,32 @@ namespace mongo {
- // -------------- DB ---------------
-
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool db_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool db_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- smuassert( cx, "wrong number of arguments to DB" , argc == 2 );
- assert( JS_SetProperty( cx , obj , "_mongo" , &(argv[0]) ) );
- assert( JS_SetProperty( cx , obj , "_name" , &(argv[1]) ) );
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
-+
- return JS_TRUE;
- }
-
-- JSBool db_resolve( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ) {
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSResolveOp)
-+ JSBool db_resolve( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ){
-+ jsval idval;
-+ JS_IdToValue( cx , id , &idval );
- if ( flags & JSRESOLVE_ASSIGNING )
- return JS_TRUE;
-
-@@ -471,7 +563,7 @@ namespace mongo {
- if ( obj == c.getGlobalPrototype( "DB" ) )
- return JS_TRUE;
-
-- string collname = c.toString( id );
-+ string collname = c.toString( idval );
-
- if ( isSpecialName( collname ) )
- return JS_TRUE;
-@@ -489,17 +581,28 @@ namespace mongo {
- return JS_TRUE;
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp)
- JSClass db_class = {
- "DB" , JSCLASS_HAS_PRIVATE | JSCLASS_NEW_RESOLVE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-- JS_EnumerateStub, (JSResolveOp)(&db_resolve) , JS_ConvertStub, JS_FinalizeStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
-+ JS_EnumerateStub, (JSResolveOp)db_resolve , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-
- // -------------- object id -------------
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool object_id_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool object_id_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- Convertor c( cx );
-
- OID oid;
-@@ -524,35 +627,48 @@ namespace mongo {
- if ( ! JS_InstanceOf( cx , obj , &object_id_class , 0 ) ) {
- obj = JS_NewObject( cx , &object_id_class , 0 , 0 );
- CHECKNEWOBJECT( obj, cx, "object_id_constructor" );
-- *rval = OBJECT_TO_JSVAL( obj );
- }
-
- jsval v = c.toval( oid.str().c_str() );
- assert( JS_SetProperty( cx , obj , "str" , &v ) );
-
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
- return JS_TRUE;
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass object_id_class = {
- "ObjectId" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-- JSBool object_id_tostring(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool object_id_tostring(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
-- return (JSBool) (*rval = c.getProperty( obj , "str" ));
-+ JS_SET_RVAL( cx , vp , c.getProperty( obj , "str" ));
-+ return JS_TRUE;
- }
-
- JSFunctionSpec object_id_functions[] = {
-- { "toString" , object_id_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { 0 }
-+ JS_FS( "toString" , object_id_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS_END
- };
-
- // dbpointer
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool dbpointer_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool dbpointer_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- Convertor c( cx );
-
- if ( argc == 2 ) {
-@@ -564,6 +680,9 @@ namespace mongo {
-
- assert( JS_SetProperty( cx , obj , "ns" , &(argv[0]) ) );
- assert( JS_SetProperty( cx , obj , "id" , &(argv[1]) ) );
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
- else {
-@@ -572,19 +691,30 @@ namespace mongo {
- }
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass dbpointer_class = {
- "DBPointer" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
- JSFunctionSpec dbpointer_functions[] = {
-- { 0 }
-+ JS_FS_END
- };
-
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool dbref_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool dbref_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- Convertor c( cx );
-
- if ( argc == 2 ) {
-@@ -594,6 +724,9 @@ namespace mongo {
- assert( JS_SetProperty( cx, o , "$id" , &argv[ 1 ] ) );
- BSONObj bo = c.toObject( o );
- assert( JS_SetPrivate( cx , obj , (void*)(new BSONHolder( bo.getOwned() ) ) ) );
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
- else {
-@@ -607,7 +740,17 @@ namespace mongo {
-
- // UUID **************************
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool uuid_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool uuid_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- Convertor c( cx );
-
- if( argc == 0 ) {
-@@ -635,6 +778,9 @@ namespace mongo {
- c.setProperty( obj, "len", c.toval( (double)16 ) );
- c.setProperty( obj, "type", c.toval( (double)3 ) );
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
- else {
-@@ -643,7 +789,8 @@ namespace mongo {
- }
- }
-
-- JSBool uuid_tostring(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool uuid_tostring(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
- void *holder = JS_GetPrivate( cx, obj );
- assert( holder );
-@@ -652,7 +799,8 @@ namespace mongo {
- ss << "UUID(\"" << toHex(data, 16);
- ss << "\")";
- string ret = ss.str();
-- return *rval = c.toval( ret.c_str() );
-+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) );
-+ return JS_TRUE;
- }
-
- void uuid_finalize( JSContext * cx , JSObject * obj ) {
-@@ -664,21 +812,32 @@ namespace mongo {
- }
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass uuid_class = {
- "UUID" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, uuid_finalize,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
- JSFunctionSpec uuid_functions[] = {
-- { "toString" , uuid_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { 0 }
-+ JS_FS( "toString" , uuid_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS_END
- };
-
- // BinData **************************
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool bindata_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool bindata_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- Convertor c( cx );
-
- if ( argc == 2 ) {
-@@ -702,6 +861,9 @@ namespace mongo {
- c.setProperty( obj, "len", c.toval( (double)decoded.length() ) );
- c.setProperty( obj, "type", c.toval( (double)type ) );
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
- else {
-@@ -710,7 +872,8 @@ namespace mongo {
- }
- }
-
-- JSBool bindata_tostring(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool bindata_tostring(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
- int type = (int)c.getNumber( obj , "type" );
- int len = (int)c.getNumber( obj, "len" );
-@@ -722,10 +885,12 @@ namespace mongo {
- base64::encode( ss, (const char *)data, len );
- ss << "\")";
- string ret = ss.str();
-- return *rval = c.toval( ret.c_str() );
-+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) );
-+ return JS_TRUE;
- }
-
-- JSBool bindataBase64(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool bindataBase64(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
- int len = (int)c.getNumber( obj, "len" );
- void *holder = JS_GetPrivate( cx, obj );
-@@ -734,10 +899,12 @@ namespace mongo {
- stringstream ss;
- base64::encode( ss, (const char *)data, len );
- string ret = ss.str();
-- return *rval = c.toval( ret.c_str() );
-+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) );
-+ return JS_TRUE;
- }
-
-- JSBool bindataAsHex(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool bindataAsHex(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
- int len = (int)c.getNumber( obj, "len" );
- void *holder = JS_GetPrivate( cx, obj );
-@@ -750,19 +917,24 @@ namespace mongo {
- ss << v;
- }
- string ret = ss.str();
-- return *rval = c.toval( ret.c_str() );
-+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) );
-+ return JS_TRUE;
- }
-
-- JSBool bindataLength(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool bindataLength(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
- int len = (int)c.getNumber( obj, "len" );
-- return *rval = c.toval((double) len);
-+ JS_SET_RVAL( cx , vp , c.toval((double) len) );
-+ return JS_TRUE;
- }
-
-- JSBool bindataSubtype(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool bindataSubtype(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
- int t = (int)c.getNumber( obj, "type" );
-- return *rval = c.toval((double) t);
-+ JS_SET_RVAL( cx , vp , c.toval((double) t) );
-+ return JS_TRUE;
- }
-
- void bindata_finalize( JSContext * cx , JSObject * obj ) {
-@@ -774,20 +946,21 @@ namespace mongo {
- }
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass bindata_class = {
- "BinData" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, bindata_finalize,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
- JSFunctionSpec bindata_functions[] = {
-- { "toString" , bindata_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "hex", bindataAsHex, 0, JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "base64", bindataBase64, 0, JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "length", bindataLength, 0, JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "subtype", bindataSubtype, 0, JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { 0 }
-+ JS_FS( "toString" , bindata_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "hex", bindataAsHex, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "base64", bindataBase64, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "length", bindataLength, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "subtype", bindataSubtype, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS_END
- };
-
- // Map
-@@ -796,7 +969,16 @@ namespace mongo {
- return s == "put" || s == "get" || s == "_get" || s == "values" || s == "_data" || s == "constructor" ;
- }
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool map_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool map_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- if ( argc > 0 ) {
- JS_ReportError( cx , "Map takes no arguments" );
- return JS_FALSE;
-@@ -808,10 +990,16 @@ namespace mongo {
- jsval a = OBJECT_TO_JSVAL( array );
- JS_SetProperty( cx , obj , "_data" , &a );
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
-
-- JSBool map_prop( JSContext *cx, JSObject *obj, jsval idval, jsval *vp ) {
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSPropertyOp)
-+ JSBool map_prop( JSContext *cx, JSObject *obj, jsid id, jsval *vp ){
-+ jsval idval;
-+ JS_IdToValue( cx , id , &idval );
- Convertor c(cx);
- if ( specialMapString( c.toString( idval ) ) )
- return JS_TRUE;
-@@ -821,34 +1009,49 @@ namespace mongo {
- return JS_FALSE;
- }
-
-+ JSBool strict_map_prop( JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp ){
-+ return map_prop( cx , obj , id , vp );
-+ }
-+
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass map_class = {
- "Map" , JSCLASS_HAS_PRIVATE ,
-- map_prop, JS_PropertyStub, map_prop, map_prop,
-+ map_prop, JS_PropertyStub, map_prop, strict_map_prop,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
- JSFunctionSpec map_functions[] = {
-- { 0 }
-+ JS_FS_END
- };
-
-
- // -----
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass timestamp_class = {
- "Timestamp" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool timestamp_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool timestamp_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- smuassert( cx , "Timestamp needs 0 or 2 args" , argc == 0 || argc == 2 );
-
- if ( ! JS_InstanceOf( cx , obj , &timestamp_class , 0 ) ) {
- obj = JS_NewObject( cx , &timestamp_class , 0 , 0 );
- CHECKNEWOBJECT( obj, cx, "timestamp_constructor" );
-- *rval = OBJECT_TO_JSVAL( obj );
- }
-
- Convertor c( cx );
-@@ -864,21 +1067,30 @@ namespace mongo {
- return JS_TRUE;
- }
-
--
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass numberlong_class = {
- "NumberLong" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool numberlong_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool numberlong_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- smuassert( cx , "NumberLong needs 0 or 1 args" , argc == 0 || argc == 1 );
-
- if ( ! JS_InstanceOf( cx , obj , &numberlong_class , 0 ) ) {
- obj = JS_NewObject( cx , &numberlong_class , 0 , 0 );
- CHECKNEWOBJECT( obj, cx, "numberlong_constructor" );
-- *rval = OBJECT_TO_JSVAL( obj );
- }
-
- Convertor c( cx );
-@@ -903,19 +1115,25 @@ namespace mongo {
- c.makeLongObj( n, obj );
- }
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
-
-- JSBool numberlong_valueof(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool numberlong_valueof(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
-- return *rval = c.toval( double( c.toNumberLongUnsafe( obj ) ) );
-+ JS_SET_RVAL( cx , vp , c.toval( double( c.toNumberLongUnsafe( obj ) ) ) );
-+ return JS_TRUE;
- }
-
-- JSBool numberlong_tonumber(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-- return numberlong_valueof( cx, obj, argc, argv, rval );
-+ JSBool numberlong_tonumber(JSContext *cx, uintN argc, jsval *vp){
-+ return numberlong_valueof( cx, argc, vp );
- }
-
-- JSBool numberlong_tostring(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) {
-+ JSBool numberlong_tostring(JSContext *cx, uintN argc, jsval *vp){
-+ JSObject *obj = JS_THIS_OBJECT( cx , vp );
- Convertor c(cx);
- stringstream ss;
- long long val = c.toNumberLongUnsafe( obj );
-@@ -927,33 +1145,45 @@ namespace mongo {
- ss << "NumberLong(" << val << ")";
-
- string ret = ss.str();
-- return *rval = c.toval( ret.c_str() );
-+ JS_SET_RVAL( cx , vp , c.toval( ret.c_str() ) );
-+ return JS_TRUE;
- }
-
- JSFunctionSpec numberlong_functions[] = {
-- { "valueOf" , numberlong_valueof , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "toNumber" , numberlong_tonumber , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { "toString" , numberlong_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT, 0 } ,
-- { 0 }
-+ JS_FS( "valueOf" , numberlong_valueof , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "toNumber" , numberlong_tonumber , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS( "toString" , numberlong_tostring , 0 , JSPROP_READONLY | JSPROP_PERMANENT | JSFUN_FAST_NATIVE ) ,
-+ JS_FS_END
- };
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp)
- JSClass minkey_class = {
- "MinKey" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
- JSClass maxkey_class = {
- "MaxKey" , JSCLASS_HAS_PRIVATE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
- JS_EnumerateStub, JS_ResolveStub , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
- // dbquery
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JSBool dbquery_constructor( JSContext* cx, uintN argc, jsval* vp ){
-+ jsval *argv = JS_ARGV( cx , vp );
-+ JSObject *obj = JS_NewObjectForConstructor( cx , vp );
-+ if( ! obj ) {
-+ JS_ReportError( cx , "Failed to create 'this' object" );
-+ return JS_FALSE;
-+ }
-+#else
- JSBool dbquery_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ) {
-+#endif
- smuassert( cx , "DDQuery needs at least 4 args" , argc >= 4 );
-
- Convertor c(cx);
-@@ -1001,28 +1231,35 @@ namespace mongo {
- c.setProperty( obj , "_numReturned" , JSVAL_ZERO );
- c.setProperty( obj , "_special" , JSVAL_FALSE );
-
-+#ifdef JSFUN_CONSTRUCTOR
-+ JS_SET_RVAL( cx , vp , OBJECT_TO_JSVAL( obj ) );
-+#endif
- return JS_TRUE;
- }
-
-- JSBool dbquery_resolve( JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp ) {
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSResolveOp)
-+ JSBool dbquery_resolve( JSContext *cx, JSObject *obj, jsid id, uintN flags, JSObject **objp ){
-+ jsval idval;
-+ JS_IdToValue( cx , id , &idval );
- if ( flags & JSRESOLVE_ASSIGNING )
- return JS_TRUE;
-
-- if ( ! JSVAL_IS_NUMBER( id ) )
-+ if ( ! JSVAL_IS_NUMBER( idval ) )
- return JS_TRUE;
-
- jsval val = JSVAL_VOID;
-- assert( JS_CallFunctionName( cx , obj , "arrayAccess" , 1 , &id , &val ) );
-+ assert( JS_CallFunctionName( cx , obj , "arrayAccess" , 1 , &idval , &val ) );
- Convertor c(cx);
-- c.setProperty( obj , c.toString( id ).c_str() , val );
-+ c.setProperty( obj , c.toString( idval ).c_str() , val );
- *objp = obj;
- return JS_TRUE;
- }
-
-+ // FIXME: This won't build on spidermonkey < 1.8.5 (JSStrictPropertyOp, JSResolveOp)
- JSClass dbquery_class = {
- "DBQuery" , JSCLASS_NEW_RESOLVE ,
-- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
-- JS_EnumerateStub, (JSResolveOp)(&dbquery_resolve) , JS_ConvertStub, JS_FinalizeStub,
-+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub,
-+ JS_EnumerateStub, (JSResolveOp)dbquery_resolve , JS_ConvertStub, JS_FinalizeStub,
- JSCLASS_NO_OPTIONAL_MEMBERS
- };
-
-@@ -1102,7 +1339,7 @@ namespace mongo {
- return true;
- }
-
--#if defined( SM16 ) || defined( MOZJS )
-+#if defined( SM16 ) || JS_VERSION >= 181
- #warning dates do not work in your version of spider monkey
- {
- jsdouble d = js_DateGetMsecSinceEpoch( c->_context , o );
-@@ -1150,7 +1387,7 @@ namespace mongo {
- }
-
- bool isDate( JSContext * cx , JSObject * o ) {
--#if defined( SM16 ) || defined( MOZJS ) || defined( XULRUNNER )
-+#if defined( SM16 ) || JS_VERSION >= 181 || defined( XULRUNNER )
- return js_DateGetMsecSinceEpoch( cx , o ) != 0;
- #else
- return JS_InstanceOf( cx , o, &js_DateClass, 0 );
diff --git a/community-testing/mongodb/mongodb.conf b/community-testing/mongodb/mongodb.conf
deleted file mode 100644
index c5272b7f2..000000000
--- a/community-testing/mongodb/mongodb.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-# See http://www.mongodb.org/display/DOCS/File+Based+Configuration for format details
-# Run mongod --help to see a list of options
-
-bind_ip = 127.0.0.1
-quiet = true
-dbpath = /var/lib/mongodb
-logpath = /var/log/mongodb/mongod.log
-logappend = true
diff --git a/community-testing/mongodb/mongodb.install b/community-testing/mongodb/mongodb.install
deleted file mode 100755
index 8808eea0d..000000000
--- a/community-testing/mongodb/mongodb.install
+++ /dev/null
@@ -1,29 +0,0 @@
-# vim: syntax=sh
-
-post_install() {
- useradd -r -g daemon -d /var/lib/mongodb -s /bin/bash mongodb
- chown -R mongodb:daemon /var/lib/mongodb
- chown -R mongodb:daemon /var/log/mongodb
-
- if [ "$(arch)" != "x86_64" ]
- then
- echo '==> Warning: the 32 bit version of MongoDB is limited to about 2GB of data.'
- echo '==> See http://blog.mongodb.org/post/137788967/32-bit-limitations'
- fi
-}
-
-post_upgrade() {
- chown -R mongodb:daemon /var/lib/mongodb
- chown -R mongodb:daemon /var/log/mongodb
-
- # have to fix my fudge up in 1.8.2-2 and 1.8.2-3
- # added july 5th, 2011
- usermod -s /bin/bash mongodb >& /dev/null
- echo 'The dbpath has changed from /var/state/mongodb to /var/lib/mongodb'
- echo 'Make sure you move your data files to the new dbpath before you start/restart mongodb'
- echo 'The logpath has changed from /var/log/mongod to /var/log/mongodb/mongod.log'
-}
-
-pre_remove() {
- userdel mongodb
-}
diff --git a/community-testing/mongodb/mongodb.rc b/community-testing/mongodb/mongodb.rc
deleted file mode 100755
index 517258f63..000000000
--- a/community-testing/mongodb/mongodb.rc
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-# vim: syntax=sh
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof /usr/bin/mongod`
-case "$1" in
- start)
- stat_busy "Starting mongodb"
- [ -z "$PID" ] && /bin/su mongodb -c "/usr/bin/mongod --config /etc/mongodb.conf --fork" > /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- add_daemon mongodb
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping mongodb"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon mongodb
- while [ ! -z "$(pidof /usr/bin/mongod)" ]; do
- sleep 1;
- done
- stat_done
- fi
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/community/conkeror-git/PKGBUILD b/community/conkeror-git/PKGBUILD
deleted file mode 100644
index 4343b023b..000000000
--- a/community/conkeror-git/PKGBUILD
+++ /dev/null
@@ -1,61 +0,0 @@
-# Contributor: Heeru Kiyura <M8R-p9i5nh@mailinator.com>
-# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
-
-_commit=0d883dfd5e61e7d0b8a96a079d69b46af064fdca
-pkgname=conkeror-git
-pkgver=0.9.3
-pkgrel=5
-pkgdesc="A highly programmable web browser based on Mozilla XULRunner."
-arch=('i686' 'x86_64')
-url="http://conkeror.mozdev.org/"
-license=('MPL' 'GPL' 'LGPL')
-depends=('xulrunner' 'desktop-file-utils')
-makedepends=('git' 'imagemagick')
-provides=(conkeror)
-source=(conkeror_gimpfile.xpm)
-md5sums=('b592582a5b923db1707615564a95737f')
-install=conkeror-git.install
-
-__gitroot="git://repo.or.cz/conkeror.git"
-__gitname="conkeror"
-
-build() {
- cd $srcdir
-
- ## Git checkout
- if [ -d $srcdir/${__gitname} ] ; then
- msg "Git checkout: Updating existing tree"
- cd ${__gitname} && git checkout ${_commit}
- msg "Git checkout: Tree has been updated"
- else
- msg "Git checkout: Retrieving sources"
- git clone ${__gitroot} && cd ${__gitname} && git checkout ${_commit}
- fi
- msg "Checkout completed"
-
- ## Build
- [ -d ${__gitname}-build ] || rm -rf $srcdir/${__gitname}-build
- git clone $srcdir/${__gitname} $srcdir/${__gitname}-build
- cd $srcdir/${__gitname}-build
- make
-}
-
-package() {
- cd $srcdir/${__gitname}-build
- install -d $pkgdir/usr/share/conkeror
- install -Dm755 $srcdir/${__gitname}-build/conkeror-spawn-helper \
- $pkgdir/usr/bin/conkeror-spawn-helper
- install -d $pkgdir/usr/share/man/man1
- cp -a $srcdir/${__gitname}-build/* $pkgdir/usr/share/conkeror
- install -Dm644 $pkgdir/usr/share/conkeror/contrib/man/conkeror.1 \
- $pkgdir/usr/share/man/man1/conkeror.1
- rm -r $pkgdir/usr/share/conkeror/contrib/man
- install -Dm644 $srcdir/${__gitname}-build/debian/conkeror.desktop \
- $pkgdir/usr/share/applications/conkeror.desktop
- ln -s /usr/share/conkeror/contrib/run-conkeror \
- $pkgdir/usr/bin/conkeror
- rm $pkgdir/usr/share/conkeror/conkeror-spawn-helper
- rm -r $pkgdir/usr/share/conkeror/debian
- install -d $pkgdir/usr/share/pixmaps
- install $srcdir/conkeror_gimpfile.xpm $pkgdir/usr/share/pixmaps
-}
diff --git a/community/conkeror-git/conkeror-git.install b/community/conkeror-git/conkeror-git.install
deleted file mode 100644
index 5e5cfef4d..000000000
--- a/community/conkeror-git/conkeror-git.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- update-desktop-database -q
-}
-
-post_upgrade() {
- post_install $1
-}
-
-post_remove() {
- update-desktop-database -q
-}
diff --git a/community/conkeror-git/conkeror_gimpfile.xpm b/community/conkeror-git/conkeror_gimpfile.xpm
deleted file mode 100644
index ee2dc0773..000000000
--- a/community/conkeror-git/conkeror_gimpfile.xpm
+++ /dev/null
@@ -1,2251 +0,0 @@
-/* XPM */
-static char * conkeror_gimpfile_xpm[] = {
-"337 274 1974 2",
-" c None",
-". c #BD8A7A",
-"+ c #F1D9A4",
-"@ c #587533",
-"# c #2F6B20",
-"$ c #347028",
-"% c #38732C",
-"& c #3D7630",
-"* c #437935",
-"= c #487D3C",
-"- c #4F8141",
-"; c #558447",
-"> c #558546",
-", c #4C7F3D",
-"' c #417935",
-") c #5C7736",
-"! c #9D9C64",
-"~ c #29671B",
-"{ c #2D6A1E",
-"] c #2C6A1E",
-"^ c #2D6A1F",
-"/ c #2C6A1F",
-"( c #2B6A1E",
-"_ c #2D6B1F",
-": c #326D25",
-"< c #39732C",
-"[ c #4B7E3E",
-"} c #578546",
-"| c #4C8040",
-"1 c #427934",
-"2 c #367129",
-"3 c #2C691E",
-"4 c #246314",
-"5 c #EBD49F",
-"6 c #266619",
-"7 c #36712A",
-"8 c #4E8040",
-"9 c #538346",
-"0 c #467B39",
-"a c #38722B",
-"b c #2B6A1D",
-"c c #246414",
-"d c #DAC691",
-"e c #2A681C",
-"f c #2C6A1D",
-"g c #2D6B21",
-"h c #39722A",
-"i c #558346",
-"j c #487D3B",
-"k c #39722B",
-"l c #2D6B20",
-"m c #246417",
-"n c #236415",
-"o c #497C3C",
-"p c #568246",
-"q c #326F25",
-"r c #256516",
-"s c #2B681C",
-"t c #336F25",
-"u c #417733",
-"v c #558147",
-"w c #457B37",
-"x c #336E25",
-"y c #2C691D",
-"z c #276618",
-"A c #246415",
-"B c #26631A",
-"C c #276219",
-"D c #266119",
-"E c #2D6620",
-"F c #437A36",
-"G c #4D7F3F",
-"H c #2B6A1F",
-"I c #276619",
-"J c #2D6B1E",
-"K c #2B681D",
-"L c #2A661C",
-"M c #27641B",
-"N c #256219",
-"O c #316A25",
-"P c #316D24",
-"Q c #28681A",
-"R c #246516",
-"S c #2B691D",
-"T c #2A671C",
-"U c #28651C",
-"V c #266219",
-"W c #2A651E",
-"X c #457A37",
-"Y c #417834",
-"Z c #2F6C20",
-"` c #2C6B1E",
-" . c #2B691B",
-".. c #27641A",
-"+. c #28641B",
-"@. c #3D7430",
-"#. c #2E6B20",
-"$. c #2E6B1F",
-"%. c #2D6C1F",
-"&. c #2A691C",
-"*. c #2A691B",
-"=. c #2C6B1F",
-"-. c #2B681E",
-";. c #29651B",
-">. c #27621A",
-",. c #27631C",
-"'. c #3F7631",
-"). c #306C22",
-"!. c #2D6C20",
-"~. c #2E6C1F",
-"{. c #2E6C20",
-"]. c #29691B",
-"^. c #27631A",
-"/. c #2A641D",
-"(. c #508042",
-"_. c #357028",
-":. c #2A691A",
-"<. c #29671D",
-"[. c #28631A",
-"}. c #2F6821",
-"|. c #4E8242",
-"1. c #407733",
-"2. c #2E6D20",
-"3. c #2D6D21",
-"4. c #26621A",
-"5. c #3A722F",
-"6. c #336F27",
-"7. c #2D6D20",
-"8. c #28691A",
-"9. c #29661B",
-"0. c #2D6720",
-"a. c #508142",
-"b. c #447B38",
-"c. c #2E6D21",
-"d. c #27681A",
-"e. c #467B38",
-"f. c #3C7630",
-"g. c #2D6C21",
-"h. c #2E6E21",
-"i. c #2F6E21",
-"j. c #2F6D21",
-"k. c #276818",
-"l. c #2E6C21",
-"m. c #2B671C",
-"n. c #266118",
-"o. c #366E29",
-"p. c #38712A",
-"q. c #266718",
-"r. c #2E6E20",
-"s. c #316924",
-"t. c #558347",
-"u. c #347027",
-"v. c #2E6E22",
-"w. c #2F6E22",
-"x. c #2F6F21",
-"y. c #266818",
-"z. c #2D6821",
-"A. c #558547",
-"B. c #548246",
-"C. c #2F6D20",
-"D. c #2F6F22",
-"E. c #246617",
-"F. c #2B691E",
-"G. c #29651C",
-"H. c #2C6720",
-"I. c #538246",
-"J. c #548347",
-"K. c #2E6F21",
-"L. c #256716",
-"M. c #29671C",
-"N. c #367027",
-"O. c #2F6F23",
-"P. c #306F22",
-"Q. c #236615",
-"R. c #2A681E",
-"S. c #28631B",
-"T. c #2F6921",
-"U. c #3A742C",
-"V. c #2E6F22",
-"W. c #2F7022",
-"X. c #2F7023",
-"Y. c #216515",
-"Z. c #336C26",
-"`. c #417833",
-" + c #307022",
-".+ c #307023",
-"++ c #216513",
-"@+ c #3D742F",
-"#+ c #497D3C",
-"$+ c #2F7123",
-"%+ c #226614",
-"&+ c #4A7F3C",
-"*+ c #578348",
-"=+ c #306D24",
-"-+ c #307123",
-";+ c #2B6C1E",
-">+ c #568248",
-",+ c #3B752F",
-"'+ c #307124",
-")+ c #317123",
-"!+ c #356D29",
-"~+ c #4A7F3E",
-"{+ c #306F23",
-"]+ c #307224",
-"^+ c #286B1B",
-"/+ c #276B1A",
-"(+ c #4C803E",
-"_+ c #357027",
-":+ c #317124",
-"<+ c #317224",
-"[+ c #477C3A",
-"}+ c #307122",
-"|+ c #2F7124",
-"1+ c #307024",
-"2+ c #317225",
-"3+ c #256218",
-"4+ c #2D7020",
-"5+ c #2D6E20",
-"6+ c #307225",
-"7+ c #317325",
-"8+ c #276C1A",
-"9+ c #384E16",
-"0+ c #2C681D",
-"a+ c #27631B",
-"b+ c #256118",
-"c+ c #367128",
-"d+ c #2D6D1F",
-"e+ c #307325",
-"f+ c #307324",
-"g+ c #317324",
-"h+ c #567834",
-"i+ c #296C1D",
-"j+ c #2F6923",
-"k+ c #508243",
-"l+ c #2F7024",
-"m+ c #307223",
-"n+ c #317326",
-"o+ c #327326",
-"p+ c #518244",
-"q+ c #317426",
-"r+ c #327425",
-"s+ c #327426",
-"t+ c #246917",
-"u+ c #2A671D",
-"v+ c #3B722F",
-"w+ c #326E24",
-"x+ c #327325",
-"y+ c #317425",
-"z+ c #2C7120",
-"A+ c #2A661D",
-"B+ c #2C661F",
-"C+ c #327526",
-"D+ c #327527",
-"E+ c #266C19",
-"F+ c #2D1616",
-"G+ c #2E1717",
-"H+ c #305716",
-"I+ c #518245",
-"J+ c #317526",
-"K+ c #327427",
-"L+ c #7B8B4D",
-"M+ c #C0A880",
-"N+ c #2B6E1E",
-"O+ c #28641A",
-"P+ c #427936",
-"Q+ c #317527",
-"R+ c #316C21",
-"S+ c #327627",
-"T+ c #266B19",
-"U+ c #2A681D",
-"V+ c #29641D",
-"W+ c #327628",
-"X+ c #337627",
-"Y+ c #2B7120",
-"Z+ c #317223",
-"`+ c #266218",
-" @ c #548547",
-".@ c #4B7F3F",
-"+@ c #337527",
-"@@ c #337628",
-"#@ c #246C18",
-"$@ c #2A5315",
-"%@ c #4B803F",
-"&@ c #447B36",
-"*@ c #327528",
-"=@ c #337728",
-"-@ c #327728",
-";@ c #BAAD7B",
-">@ c #2D6F1F",
-",@ c #2F6E20",
-"'@ c #437A35",
-")@ c #3D7531",
-"!@ c #312117",
-"~@ c #2E6D22",
-"{@ c #37702A",
-"]@ c #38722C",
-"^@ c #347729",
-"/@ c #337729",
-"(@ c #307525",
-"_@ c #BCA47D",
-":@ c #E4CC9B",
-"<@ c #28681B",
-"[@ c #2A661B",
-"}@ c #326A26",
-"|@ c #337829",
-"1@ c #3E2723",
-"2@ c #8A7359",
-"3@ c #CDB68A",
-"4@ c #2F7223",
-"5@ c #307125",
-"6@ c #337828",
-"7@ c #347828",
-"8@ c #246517",
-"9@ c #432C26",
-"0@ c #A68E6D",
-"a@ c #226215",
-"b@ c #317125",
-"c@ c #2C6620",
-"d@ c #316D23",
-"e@ c #337526",
-"f@ c #347829",
-"g@ c #34782A",
-"h@ c #EDD5A1",
-"i@ c #78604C",
-"j@ c #D8C092",
-"k@ c #2E7121",
-"l@ c #306D22",
-"m@ c #584135",
-"n@ c #C6AF85",
-"o@ c #BEAA7E",
-"p@ c #29651E",
-"q@ c #2F6D23",
-"r@ c #347728",
-"s@ c #347929",
-"t@ c #34792A",
-"u@ c #4D362D",
-"v@ c #2A6C1C",
-"w@ c #2A651D",
-"x@ c #337727",
-"y@ c #35792A",
-"z@ c #296D1E",
-"A@ c #2F1818",
-"B@ c #574034",
-"C@ c #D4BC8F",
-"D@ c #357929",
-"E@ c #347A2A",
-"F@ c #357A2A",
-"G@ c #34792B",
-"H@ c #236617",
-"I@ c #61493C",
-"J@ c #D0B98C",
-"K@ c #2B651F",
-"L@ c #35782A",
-"M@ c #347A2B",
-"N@ c #553E33",
-"O@ c #2E7223",
-"P@ c #38732A",
-"Q@ c #357A2B",
-"R@ c #316B24",
-"S@ c #3D752F",
-"T@ c #337528",
-"U@ c #35792B",
-"V@ c #357B2A",
-"W@ c #357B2B",
-"X@ c #307425",
-"Y@ c #2C6F1F",
-"Z@ c #427A36",
-"`@ c #367B2C",
-" # c #286D1E",
-".# c #2D1717",
-"+# c #77604C",
-"@# c #E7CF9D",
-"## c #4A7E3D",
-"$# c #357B2C",
-"%# c #226416",
-"&# c #A38B6B",
-"*# c #2E7022",
-"=# c #528448",
-"-# c #357C2C",
-";# c #442D27",
-"># c #718448",
-",# c #28651B",
-"'# c #548448",
-")# c #367C2C",
-"!# c #2E7425",
-"~# c #2E1716",
-"{# c #A99170",
-"]# c #38732B",
-"^# c #357C2D",
-"/# c #367C2D",
-"(# c #377C2C",
-"_# c #276B1D",
-":# c #DDC595",
-"<# c #316B25",
-"[# c #457A38",
-"}# c #377C2D",
-"|# c #9B9A65",
-"1# c #2A6B1C",
-"2# c #528546",
-"3# c #377D2D",
-"4# c #367D2D",
-"5# c #367D2E",
-"6# c #357C2B",
-"7# c #377D2E",
-"8# c #CCB489",
-"9# c #2D7122",
-"0# c #377E2D",
-"a# c #367E2E",
-"b# c #2E7424",
-"c# c #6B5343",
-"d# c #A78F6E",
-"e# c #2E6821",
-"f# c #377E2E",
-"g# c #266B1B",
-"h# c #988063",
-"i# c #307526",
-"j# c #29661C",
-"k# c #56874A",
-"l# c #367B2B",
-"m# c #BAAE7B",
-"n# c #2E1617",
-"o# c #B8A07B",
-"p# c #588749",
-"q# c #337929",
-"r# c #357A2C",
-"s# c #367E2D",
-"t# c #387F2E",
-"u# c #387F2F",
-"v# c #5B4438",
-"w# c #29631B",
-"x# c #3D7632",
-"y# c #377E2F",
-"z# c #347C2B",
-"A# c #286D1D",
-"B# c #37702D",
-"C# c #538647",
-"D# c #367D2C",
-"E# c #377F2F",
-"F# c #2E7423",
-"G# c #528547",
-"H# c #367A2B",
-"I# c #387E2F",
-"J# c #37802F",
-"K# c #256B1A",
-"L# c #2E7222",
-"M# c #3F7732",
-"N# c #387F30",
-"O# c #38802F",
-"P# c #D2BF8D",
-"Q# c #38712D",
-"R# c #33782A",
-"S# c #357829",
-"T# c #387E2E",
-"U# c #388030",
-"V# c #347628",
-"W# c #266319",
-"X# c #337B2C",
-"Y# c #236717",
-"Z# c #317427",
-"`# c #497E3C",
-" $ c #398030",
-".$ c #388130",
-"+$ c #388031",
-"@$ c #398130",
-"#$ c #2C7223",
-"$$ c #276319",
-"%$ c #2D691E",
-"&$ c #388131",
-"*$ c #246919",
-"=$ c #2F1717",
-"-$ c #2F1817",
-";$ c #286C1C",
-">$ c #337629",
-",$ c #276118",
-"'$ c #3D7530",
-")$ c #377F2E",
-"!$ c #398031",
-"~$ c #398131",
-"{$ c #301718",
-"]$ c #2F1718",
-"^$ c #2E1718",
-"/$ c #366E2B",
-"($ c #327727",
-"_$ c #3A8232",
-":$ c #301717",
-"<$ c #311817",
-"[$ c #301817",
-"}$ c #301818",
-"|$ c #2D7223",
-"1$ c #28661B",
-"2$ c #367028",
-"3$ c #398232",
-"4$ c #337B2A",
-"5$ c #311818",
-"6$ c #2E6822",
-"7$ c #398231",
-"8$ c #3A8231",
-"9$ c #2B7222",
-"0$ c #321918",
-"a$ c #321818",
-"b$ c #321718",
-"c$ c #311718",
-"d$ c #311717",
-"e$ c #307527",
-"f$ c #316E24",
-"g$ c #2E6D1F",
-"h$ c #398132",
-"i$ c #236918",
-"j$ c #331918",
-"k$ c #331818",
-"l$ c #321819",
-"m$ c #2B661E",
-"n$ c #508244",
-"o$ c #398332",
-"p$ c #341819",
-"q$ c #331919",
-"r$ c #341918",
-"s$ c #331819",
-"t$ c #2A691D",
-"u$ c #3A8233",
-"v$ c #351919",
-"w$ c #341919",
-"x$ c #351819",
-"y$ c #286C1D",
-"z$ c #4E8143",
-"A$ c #3A8332",
-"B$ c #31792A",
-"C$ c #361919",
-"D$ c #351818",
-"E$ c #341818",
-"F$ c #3A8333",
-"G$ c #2A7121",
-"H$ c #361A19",
-"I$ c #36191A",
-"J$ c #317727",
-"K$ c #3B8433",
-"L$ c #236818",
-"M$ c #371A19",
-"N$ c #37191A",
-"O$ c #371919",
-"P$ c #371A1A",
-"Q$ c #351918",
-"R$ c #2E1817",
-"S$ c #2C7020",
-"T$ c #2C691F",
-"U$ c #336F26",
-"V$ c #377F30",
-"W$ c #3A8433",
-"X$ c #3B8434",
-"Y$ c #381A19",
-"Z$ c #381919",
-"`$ c #256919",
-" % c #3A8434",
-".% c #39191A",
-"+% c #381A1A",
-"@% c #391A1A",
-"#% c #38191A",
-"$% c #3A732D",
-"%% c #378030",
-"&% c #398333",
-"*% c #3A8534",
-"=% c #3A1B1A",
-"-% c #3A1A1A",
-";% c #3A191A",
-">% c #391919",
-",% c #351A19",
-"'% c #27651B",
-")% c #336B27",
-"!% c #3B8333",
-"~% c #378130",
-"{% c #3A1A1B",
-"]% c #3B1A1B",
-"^% c #28651A",
-"/% c #26641A",
-"(% c #3A8432",
-"_% c #3B8534",
-":% c #327A2A",
-"<% c #3B1B1A",
-"[% c #3B1A1A",
-"}% c #3B1B1B",
-"|% c #391A19",
-"1% c #2F7526",
-"2% c #27651A",
-"3% c #2E6A1F",
-"4% c #3B8535",
-"5% c #2D7524",
-"6% c #3C1A1A",
-"7% c #3C1B1B",
-"8% c #3C1B1A",
-"9% c #2A701F",
-"0% c #28621A",
-"a% c #347B2B",
-"b% c #397F30",
-"c% c #3B8533",
-"d% c #286E1F",
-"e% c #3D1B1B",
-"f% c #3C1A1B",
-"g% c #3D1A1B",
-"h% c #391B1A",
-"i% c #2B6B1E",
-"j% c #518447",
-"k% c #3C8534",
-"l% c #236919",
-"m% c #3E1B1B",
-"n% c #3E1C1B",
-"o% c #3A1B1B",
-"p% c #276419",
-"q% c #306A24",
-"r% c #3C8635",
-"s% c #E5CF9B",
-"t% c #3E1C1C",
-"u% c #321817",
-"v% c #266419",
-"w% c #497E3D",
-"x% c #2F6D22",
-"y% c #3A8131",
-"z% c #3A8331",
-"A% c #3C8535",
-"B% c #3C8636",
-"C% c #401C1C",
-"D% c #3F1B1C",
-"E% c #3F1B1B",
-"F% c #3F1C1C",
-"G% c #3F1C1B",
-"H% c #3E1B1C",
-"I% c #487E3E",
-"J% c #336E24",
-"K% c #3B8635",
-"L% c #3B8636",
-"M% c #401C1B",
-"N% c #401B1B",
-"O% c #401B1C",
-"P% c #2F7424",
-"Q% c #2C661E",
-"R% c #3D8636",
-"S% c #388331",
-"T% c #411C1C",
-"U% c #2A6E1E",
-"V% c #367A2C",
-"W% c #377D2C",
-"X% c #3D8736",
-"Y% c #327C2C",
-"Z% c #411D1C",
-"`% c #421C1C",
-" & c #421D1C",
-".& c #367B2D",
-"+& c #28661C",
-"@& c #3C8736",
-"#& c #3D8637",
-"$& c #2D7725",
-"%& c #431C1C",
-"&& c #431D1D",
-"*& c #421C1D",
-"=& c #411C1D",
-"-& c #411C1B",
-";& c #3B8634",
-">& c #3C8637",
-",& c #3D8737",
-"'& c #286F1F",
-")& c #431C1D",
-"!& c #431D1C",
-"~& c #421D1D",
-"{& c #2A6A1E",
-"]& c #27661B",
-"^& c #49803F",
-"/& c #3B8334",
-"(& c #3C8837",
-"_& c #441D1D",
-":& c #3D1B1C",
-"<& c #28661A",
-"[& c #377229",
-"}& c #3D8837",
-"|& c #451D1D",
-"1& c #451D1C",
-"2& c #441D1C",
-"3& c #441C1D",
-"4& c #306A23",
-"5& c #3D8836",
-"6& c #461D1E",
-"7& c #461E1D",
-"8& c #441C1C",
-"9& c #327626",
-"0& c #3A8334",
-"a& c #3A8533",
-"b& c #3D8838",
-"c& c #461D1D",
-"d& c #461E1E",
-"e& c #471D1E",
-"f& c #471E1D",
-"g& c #451E1D",
-"h& c #3E6E29",
-"i& c #388232",
-"j& c #471E1E",
-"k& c #337C2C",
-"l& c #481E1E",
-"m& c #481E1D",
-"n& c #471D1D",
-"o& c #27661A",
-"p& c #3E8938",
-"q& c #2D7726",
-"r& c #491E1E",
-"s& c #491E1F",
-"t& c #481D1E",
-"u& c #327929",
-"v& c #367C2B",
-"w& c #3D8938",
-"x& c #28701F",
-"y& c #4A1F1E",
-"z& c #4A1E1E",
-"A& c #477C39",
-"B& c #3C8737",
-"C& c #3E8838",
-"D& c #236B19",
-"E& c #4A1F1F",
-"F& c #4B1E1E",
-"G& c #4B1F1E",
-"H& c #4A1E1F",
-"I& c #491F1F",
-"J& c #451C1D",
-"K& c #266A1B",
-"L& c #29681C",
-"M& c #457B39",
-"N& c #3C8836",
-"O& c #D3BF8D",
-"P& c #4B1F1F",
-"Q& c #4C1F1E",
-"R& c #4B1E1F",
-"S& c #491F1E",
-"T& c #718549",
-"U& c #26651A",
-"V& c #2F6A24",
-"W& c #3D8937",
-"X& c #3E8837",
-"Y& c #3E8A39",
-"Z& c #4C1F1F",
-"`& c #3C8735",
-" * c #4D1F1F",
-".* c #4C1E1F",
-"+* c #28671B",
-"@* c #578748",
-"#* c #4E201F",
-"$* c #4D1F20",
-"%* c #4E2020",
-"&* c #4E1F1F",
-"** c #451D1E",
-"=* c #307728",
-"-* c #27671B",
-";* c #548649",
-">* c #477C3B",
-",* c #2F7122",
-"'* c #377C2E",
-")* c #337C2D",
-"!* c #4F1F1F",
-"~* c #4E1F20",
-"{* c #411B1C",
-"]* c #E5CC9B",
-"^* c #2B7121",
-"/* c #2B6B1F",
-"(* c #477D3B",
-"_* c #3C742D",
-":* c #3E8939",
-"<* c #3E8A38",
-"[* c #2D7626",
-"}* c #4F2020",
-"|* c #4F1F20",
-"1* c #4F201F",
-"2* c #4D201F",
-"3* c #4C1F20",
-"4* c #CEB48A",
-"5* c #246A19",
-"6* c #336C27",
-"7* c #502020",
-"8* c #A4896A",
-"9* c #33792A",
-"0* c #3D8738",
-"a* c #276E1E",
-"b* c #512020",
-"c* c #502021",
-"d* c #502121",
-"e* c #502120",
-"f* c #512021",
-"g* c #512120",
-"h* c #451E1E",
-"i* c #846752",
-"j* c #28701D",
-"k* c #512121",
-"l* c #522020",
-"m* c #522021",
-"n* c #522120",
-"o* c #4D2020",
-"p* c #3D1C1B",
-"q* c #6B4E3F",
-"r* c #3E8937",
-"s* c #3E8A3A",
-"t* c #256C1C",
-"u* c #532021",
-"v* c #532120",
-"w* c #532121",
-"x* c #522121",
-"y* c #441D1E",
-"z* c #5D3F35",
-"A* c #2F7626",
-"B* c #29691D",
-"C* c #548446",
-"D* c #3C8634",
-"E* c #3F8A39",
-"F* c #3E8B39",
-"G* c #542121",
-"H* c #4B2C27",
-"I* c #296E1F",
-"J* c #28671C",
-"K* c #518547",
-"L* c #497F3D",
-"M* c #3D8939",
-"N* c #3F8A3A",
-"O* c #246B1A",
-"P* c #427835",
-"Q* c #3F8B3A",
-"R* c #226918",
-"S* c #552121",
-"T* c #552221",
-"U* c #542122",
-"V* c #ECD4A0",
-"W* c #F0D8A3",
-"X* c #3F7632",
-"Y* c #3F8939",
-"Z* c #226919",
-"`* c #562122",
-" = c #562121",
-".= c #562221",
-"+= c #552122",
-"@= c #D5BC8F",
-"#= c #356C27",
-"$= c #3E7129",
-"%= c #562222",
-"&= c #572222",
-"*= c #BBA07A",
-"== c #572122",
-"-= c #582222",
-";= c #8B6E57",
-">= c #2F7525",
-",= c #582223",
-"'= c #582322",
-")= c #572221",
-"!= c #80624D",
-"~= c #29641B",
-"{= c #3C8536",
-"]= c #592222",
-"^= c #582323",
-"/= c #592223",
-"(= c #69493C",
-"_= c #4A7831",
-":= c #388231",
-"<= c #592323",
-"[= c #5A2323",
-"}= c #592322",
-"|= c #5A2322",
-"1= c #552222",
-"2= c #715343",
-"3= c #256119",
-"4= c #5A2223",
-"5= c #5B2322",
-"6= c #5B2323",
-"7= c #66463A",
-"8= c #276218",
-"9= c #3F8B3B",
-"0= c #E4CD9A",
-"a= c #5A2222",
-"b= c #5B2222",
-"c= c #745544",
-"d= c #357D2C",
-"e= c #408B3A",
-"f= c #5C2323",
-"g= c #5C2424",
-"h= c #5B2223",
-"i= c #481D1D",
-"j= c #6A493C",
-"k= c #347A29",
-"l= c #408B3B",
-"m= c #5C2324",
-"n= c #5C2423",
-"o= c #5D2323",
-"p= c #5D2423",
-"q= c #5D2324",
-"r= c #5B2423",
-"s= c #572121",
-"t= c #3E8B3A",
-"u= c #408C3B",
-"v= c #5D2424",
-"w= c #5E2423",
-"x= c #532020",
-"y= c #27671C",
-"z= c #266519",
-"A= c #5F2525",
-"B= c #5F2424",
-"C= c #5F2524",
-"D= c #5F2425",
-"E= c #602525",
-"F= c #5E2424",
-"G= c #5E2324",
-"H= c #602524",
-"I= c #E5CD9B",
-"J= c #2E7224",
-"K= c #612626",
-"L= c #612526",
-"M= c #622626",
-"N= c #612525",
-"O= c #602526",
-"P= c #542222",
-"Q= c #CFB58A",
-"R= c #2C7122",
-"S= c #632626",
-"T= c #642727",
-"U= c #632627",
-"V= c #642627",
-"W= c #642626",
-"X= c #632726",
-"Y= c #642726",
-"Z= c #A08365",
-"`= c #2B7020",
-" - c #652827",
-".- c #652828",
-"+- c #662827",
-"@- c #652727",
-"#- c #652627",
-"$- c #632727",
-"%- c #572322",
-"&- c #765746",
-"*- c #397F2F",
-"=- c #3D8635",
-"-- c #408A3A",
-";- c #642828",
-">- c #652728",
-",- c #662929",
-"'- c #672929",
-")- c #672928",
-"!- c #682929",
-"~- c #542120",
-"{- c #56332D",
-"]- c #266C1D",
-"^- c #682A2A",
-"/- c #6A2B2B",
-"(- c #692A2A",
-"_- c #682829",
-":- c #672828",
-"<- c #662828",
-"[- c #542221",
-"}- c #276B1B",
-"|- c #27661C",
-"1- c #3F8B39",
-"2- c #682A29",
-"3- c #692B2B",
-"4- c #6B2B2B",
-"5- c #6A2C2B",
-"6- c #6B2C2C",
-"7- c #6B2C2B",
-"8- c #6A2A2A",
-"9- c #5E2425",
-"0- c #246A1A",
-"a- c #2F6822",
-"b- c #3A8132",
-"c- c #6C2D2D",
-"d- c #6C2D2E",
-"e- c #6D2D2D",
-"f- c #6D2E2D",
-"g- c #6C2D2C",
-"h- c #6C2C2C",
-"i- c #662728",
-"j- c #236618",
-"k- c #3B8435",
-"l- c #6D2E2F",
-"m- c #6D2E2E",
-"n- c #6F2F2F",
-"o- c #6E2F2F",
-"p- c #702F30",
-"q- c #703030",
-"r- c #6F302F",
-"s- c #6F2F30",
-"t- c #70302F",
-"u- c #6E2F2E",
-"v- c #6E2E2E",
-"w- c #6B2D2C",
-"x- c #6D2F2F",
-"y- c #6E302F",
-"z- c #6F3031",
-"A- c #713131",
-"B- c #713132",
-"C- c #723231",
-"D- c #723132",
-"E- c #723232",
-"F- c #733232",
-"G- c #733132",
-"H- c #713130",
-"I- c #723131",
-"J- c #5E2524",
-"K- c #5E2525",
-"L- c #4C1E1E",
-"M- c #728549",
-"N- c #497F3E",
-"O- c #538446",
-"P- c #378131",
-"Q- c #6E3030",
-"R- c #703131",
-"S- c #703232",
-"T- c #723233",
-"U- c #743333",
-"V- c #753333",
-"W- c #753434",
-"X- c #753435",
-"Y- c #763434",
-"Z- c #743232",
-"`- c #4D1E1F",
-" ; c #548546",
-".; c #723333",
-"+; c #733333",
-"@; c #763534",
-"#; c #773535",
-"$; c #773635",
-"%; c #783535",
-"&; c #773435",
-"*; c #692A29",
-"=; c #662829",
-"-; c #50201F",
-";; c #E3CC9A",
-">; c #763535",
-",; c #783636",
-"'; c #793636",
-"); c #783737",
-"!; c #793838",
-"~; c #7A3838",
-"{; c #793737",
-"]; c #7A3737",
-"^; c #7A3738",
-"/; c #793637",
-"(; c #783635",
-"_; c #753334",
-":; c #662928",
-"<; c #642728",
-"[; c #5D2524",
-"}; c #357D2E",
-"|; c #773636",
-"1; c #793939",
-"2; c #7A3839",
-"3; c #7C3A3A",
-"4; c #7D3A3B",
-"5; c #7E3B3B",
-"6; c #7D3A3A",
-"7; c #7B3939",
-"8; c #7B3839",
-"9; c #793736",
-"0; c #783736",
-"a; c #733131",
-"b; c #6E2E2F",
-"c; c #642827",
-"d; c #367C2E",
-"e; c #7A3939",
-"f; c #7B3B3A",
-"g; c #7C3B3A",
-"h; c #7D3B3B",
-"i; c #7D3B3C",
-"j; c #7F3C3D",
-"k; c #803D3D",
-"l; c #7F3C3C",
-"m; c #7F3C3B",
-"n; c #7E3A3B",
-"o; c #7B3938",
-"p; c #6D2F2E",
-"q; c #6B2D2D",
-"r; c #672A2A",
-"s; c #4C2020",
-"t; c #491D1E",
-"u; c #2A691E",
-"v; c #337B2B",
-"w; c #7B3A3A",
-"x; c #7F3D3D",
-"y; c #803D3E",
-"z; c #813E3E",
-"A; c #823F3F",
-"B; c #833F40",
-"C; c #823E3F",
-"D; c #823E3E",
-"E; c #7A3837",
-"F; c #602625",
-"G; c #5C2524",
-"H; c #501F20",
-"I; c #7E3C3C",
-"J; c #803E3E",
-"K; c #834040",
-"L; c #844141",
-"M; c #854242",
-"N; c #864242",
-"O; c #864241",
-"P; c #854241",
-"Q; c #854142",
-"R; c #843F3F",
-"S; c #803C3C",
-"T; c #7C3A39",
-"U; c #783837",
-"V; c #6C2E2E",
-"W; c #67292A",
-"X; c #632728",
-"Y; c #327A29",
-"Z; c #7F3E3E",
-"`; c #813F3F",
-" > c #874343",
-".> c #874344",
-"+> c #884444",
-"@> c #894544",
-"#> c #894444",
-"$> c #894545",
-"%> c #894445",
-"&> c #884443",
-"*> c #874242",
-"=> c #833F3F",
-"-> c #7B3A39",
-";> c #6C2E2F",
-">> c #6A2C2C",
-",> c #682A2B",
-"'> c #5D2425",
-")> c #337626",
-"!> c #568649",
-"~> c #2F7827",
-"{> c #824040",
-"]> c #874443",
-"^> c #894646",
-"/> c #8A4646",
-"(> c #8B4747",
-"_> c #8B4646",
-":> c #8C4646",
-"<> c #874342",
-"[> c #844041",
-"}> c #763635",
-"|> c #743334",
-"1> c #5F2626",
-"2> c #2E6B1E",
-"3> c #317827",
-"4> c #844242",
-"5> c #864444",
-"6> c #884545",
-"7> c #8A4747",
-"8> c #8D4847",
-"9> c #8D4848",
-"0> c #8D4948",
-"a> c #8D4949",
-"b> c #8C4647",
-"c> c #864343",
-"d> c #864342",
-"e> c #763636",
-"f> c #713232",
-"g> c #692C2B",
-"h> c #66292A",
-"i> c #642928",
-"j> c #602626",
-"k> c #286319",
-"l> c #398331",
-"m> c #2F7625",
-"n> c #874444",
-"o> c #884645",
-"p> c #8A4746",
-"q> c #8B4848",
-"r> c #8C4949",
-"s> c #8E4A49",
-"t> c #8F4B4B",
-"u> c #904B4B",
-"v> c #904B4C",
-"w> c #904B4A",
-"x> c #8F4A4A",
-"y> c #8C4746",
-"z> c #854342",
-"A> c #743434",
-"B> c #692C2C",
-"C> c #672A2B",
-"D> c #2F6A23",
-"E> c #884546",
-"F> c #8E4A4B",
-"G> c #8F4C4C",
-"H> c #914C4C",
-"I> c #924C4C",
-"J> c #914C4B",
-"K> c #8E4A4A",
-"L> c #763536",
-"M> c #733433",
-"N> c #6F3030",
-"O> c #6C2F2E",
-"P> c #682B2B",
-"Q> c #622726",
-"R> c #5B2424",
-"S> c #327828",
-"T> c #2E7523",
-"U> c #8A4847",
-"V> c #8B4849",
-"W> c #8D494A",
-"X> c #904C4C",
-"Y> c #914D4D",
-"Z> c #924E4E",
-"`> c #934E4E",
-" , c #944E4E",
-"., c #944E4F",
-"+, c #934D4E",
-"@, c #904A4A",
-"#, c #8D4747",
-"$, c #7C3B3B",
-"%, c #773637",
-"&, c #743535",
-"*, c #6F3131",
-"=, c #6A2C2D",
-"-, c #652929",
-";, c #622727",
-">, c #5B2324",
-",, c #317627",
-"', c #8B4949",
-"), c #8E4B4B",
-"!, c #904D4D",
-"~, c #924E4F",
-"{, c #934F4E",
-"], c #944F4F",
-"^, c #954F4F",
-"/, c #955050",
-"(, c #95504F",
-"_, c #924D4E",
-":, c #8B4748",
-"<, c #7A3A3A",
-"[, c #773737",
-"}, c #6C2F2F",
-"|, c #6B2E2E",
-"1, c #672B2A",
-"2, c #582221",
-"3, c #307524",
-"4, c #2B7220",
-"5, c #8D4A4A",
-"6, c #8F4C4B",
-"7, c #914F4E",
-"8, c #93504F",
-"9, c #945150",
-"0, c #945151",
-"a, c #965151",
-"b, c #965152",
-"c, c #965251",
-"d, c #965252",
-"e, c #924D4D",
-"f, c #8B4847",
-"g, c #894645",
-"h, c #7B3B3B",
-"i, c #783939",
-"j, c #733334",
-"k, c #632828",
-"l, c #5A2324",
-"m, c #2D7123",
-"n, c #2A651F",
-"o, c #914E4E",
-"p, c #975454",
-"q, c #975352",
-"r, c #975353",
-"s, c #985353",
-"t, c #975253",
-"u, c #975252",
-"v, c #975251",
-"w, c #955150",
-"x, c #945050",
-"y, c #934F4F",
-"z, c #8C4848",
-"A, c #884445",
-"B, c #823F40",
-"C, c #793839",
-"D, c #763736",
-"E, c #753535",
-"F, c #692D2D",
-"G, c #904E4E",
-"H, c #914F4F",
-"I, c #945251",
-"J, c #975554",
-"K, c #985554",
-"L, c #995555",
-"M, c #995655",
-"N, c #985454",
-"O, c #935050",
-"P, c #924F4E",
-"Q, c #884646",
-"R, c #854343",
-"S, c #824142",
-"T, c #803F3F",
-"U, c #7D3C3C",
-"V, c #773736",
-"W, c #713333",
-"X, c #6E3131",
-"Y, c #6A2E2D",
-"Z, c #662A2A",
-"`, c #642929",
-" ' c #2B6F1F",
-".' c #28651D",
-"+' c #91504E",
-"@' c #995856",
-"#' c #9B5A57",
-"$' c #9B5C58",
-"%' c #9C5C59",
-"&' c #9C5A58",
-"*' c #9A5756",
-"=' c #9A5655",
-"-' c #94504F",
-";' c #914E4D",
-">' c #834141",
-",' c #7A3B3B",
-"'' c #773838",
-")' c #6D3030",
-"!' c #612727",
-"~' c #5A2424",
-"{' c #296E1D",
-"]' c #37722A",
-"^' c #935251",
-"/' c #995956",
-"(' c #9F5F5B",
-"_' c #9F605C",
-":' c #A0605C",
-"<' c #9E5F5A",
-"[' c #9E5C5A",
-"}' c #9B5856",
-"|' c #9A5555",
-"1' c #894647",
-"2' c #834242",
-"3' c #753637",
-"4' c #733434",
-"5' c #6B2F2F",
-"6' c #682C2C",
-"7' c #672B2B",
-"8' c #5A2423",
-"9' c #276A1B",
-"0' c #2C6B20",
-"a' c #4A803F",
-"b' c #935452",
-"c' c #985A56",
-"d' c #9D5E5A",
-"e' c #A0625D",
-"f' c #A36560",
-"g' c #A36660",
-"h' c #A2635E",
-"i' c #A05F5C",
-"j' c #9A5857",
-"k' c #995654",
-"l' c #965353",
-"m' c #955151",
-"n' c #924F4F",
-"o' c #8C4A49",
-"p' c #894747",
-"q' c #874545",
-"r' c #7D3E3D",
-"s' c #703231",
-"t' c #642829",
-"u' c #612627",
-"v' c #27691A",
-"w' c #2B691F",
-"x' c #9B5D59",
-"y' c #A0635D",
-"z' c #A36761",
-"A' c #A66A63",
-"B' c #A76B64",
-"C' c #A56762",
-"D' c #A2635F",
-"E' c #A05E5B",
-"F' c #9B5A58",
-"G' c #955152",
-"H' c #814040",
-"I' c #7E3E3E",
-"J' c #723434",
-"K' c #703132",
-"L' c #6B2F2E",
-"M' c #662B2B",
-"N' c #622828",
-"O' c #5E2626",
-"P' c #256A18",
-"Q' c #9D605B",
-"R' c #A96E66",
-"S' c #A96F66",
-"T' c #A86C64",
-"U' c #A1615E",
-"V' c #9D5C59",
-"W' c #9A5757",
-"X' c #8D4B4B",
-"Y' c #894748",
-"Z' c #864545",
-"`' c #7D3E3E",
-" ) c #753636",
-".) c #713434",
-"+) c #6F3231",
-"@) c #6D2F30",
-"#) c #6A2E2E",
-"$) c #226616",
-"%) c #467C3A",
-"&) c #9F615C",
-"*) c #A46862",
-"=) c #A86D65",
-"-) c #AA7067",
-";) c #AB7168",
-">) c #AA7068",
-",) c #A66963",
-"') c #9D5D5A",
-")) c #9A5957",
-"!) c #8A4949",
-"~) c #854545",
-"{) c #824242",
-"]) c #7C3D3D",
-"^) c #753536",
-"/) c #682B2C",
-"() c #632928",
-"_) c #226517",
-":) c #398233",
-"<) c #4D7932",
-"[) c #9E625D",
-"}) c #A46962",
-"|) c #A86E66",
-"1) c #AB7068",
-"2) c #AB7269",
-"3) c #A2645F",
-"4) c #9E5E5B",
-"5) c #975453",
-"6) c #955353",
-"7) c #955252",
-"8) c #8F4D4D",
-"9) c #8C4A4A",
-"0) c #8A4848",
-"a) c #854444",
-"b) c #804040",
-"c) c #743636",
-"d) c #713433",
-"e) c #672C2C",
-"f) c #5E2625",
-"g) c #9D615C",
-"h) c #A76C64",
-"i) c #A96F67",
-"j) c #AA6F67",
-"k) c #A76D65",
-"l) c #A0625E",
-"m) c #9B5C59",
-"n) c #985756",
-"o) c #965553",
-"p) c #925050",
-"q) c #904F4F",
-"r) c #8E4C4C",
-"s) c #864646",
-"t) c #854445",
-"u) c #793B3B",
-"v) c #763838",
-"w) c #743534",
-"x) c #713334",
-"y) c #6E3231",
-"z) c #692D2C",
-"A) c #652A2B",
-"B) c #622929",
-"C) c #592423",
-"D) c #526F32",
-"E) c #357B2D",
-"F) c #A0645E",
-"G) c #A76C65",
-"H) c #A86C65",
-"I) c #9F5F5C",
-"J) c #975655",
-"K) c #925151",
-"L) c #8E4D4D",
-"M) c #8C4B4B",
-"N) c #8B4A4A",
-"O) c #884747",
-"P) c #844444",
-"Q) c #814141",
-"R) c #7E3F3F",
-"S) c #7B3C3C",
-"T) c #783A3A",
-"U) c #753737",
-"V) c #6F3232",
-"W) c #6B2E2F",
-"X) c #682D2C",
-"Y) c #5D2526",
-"Z) c #707B46",
-"`) c #9D5F5A",
-" ! c #A46861",
-".! c #A46761",
-"+! c #A16660",
-"@! c #9F625D",
-"#! c #985755",
-"$! c #945252",
-"%! c #935151",
-"&! c #915050",
-"*! c #8E4E4E",
-"=! c #8D4C4C",
-"-! c #8A4849",
-";! c #874747",
-">! c #834343",
-",! c #7C3E3E",
-"'! c #763939",
-")! c #723435",
-"!! c #682D2D",
-"~! c #652A2A",
-"{! c #602727",
-"]! c #5D2626",
-"^! c #5D2525",
-"/! c #985A57",
-"(! c #9D615B",
-"_! c #9F615D",
-":! c #9E615D",
-"<! c #9D5F5B",
-"[! c #9A5C58",
-"}! c #975855",
-"|! c #945453",
-"1! c #925251",
-"2! c #8F4E4E",
-"3! c #8E4D4C",
-"4! c #8C4B4A",
-"5! c #864645",
-"6! c #7B3C3B",
-"7! c #733635",
-"8! c #703333",
-"9! c #6A2D2D",
-"0! c #672D2D",
-"a! c #622928",
-"b! c #5D2625",
-"c! c #5C2625",
-"d! c #A6986C",
-"e! c #316A24",
-"f! c #935351",
-"g! c #955754",
-"h! c #975956",
-"i! c #985957",
-"j! c #955554",
-"k! c #8C4B4C",
-"l! c #894848",
-"m! c #7A3B3C",
-"n! c #783B3B",
-"o! c #753736",
-"p! c #6F3333",
-"q! c #6A2E2F",
-"r! c #672C2D",
-"s! c #662B2C",
-"t! c #642B2B",
-"u! c #612828",
-"v! c #5B2524",
-"w! c #8D4E4D",
-"x! c #90504F",
-"y! c #925250",
-"z! c #925351",
-"A! c #8D4D4D",
-"B! c #8C4C4B",
-"C! c #8A4A4A",
-"D! c #804242",
-"E! c #7B3D3D",
-"F! c #783B3A",
-"G! c #6A2F2F",
-"H! c #63292A",
-"I! c #A5986C",
-"J! c #447A38",
-"K! c #8E985C",
-"L! c #8C4D4C",
-"M! c #8E4F4E",
-"N! c #8E4F4D",
-"O! c #8E4E4D",
-"P! c #8A4A49",
-"Q! c #884848",
-"R! c #864747",
-"S! c #7F4040",
-"T! c #7C3E3D",
-"U! c #793A3B",
-"V! c #773A39",
-"W! c #733535",
-"X! c #6F3332",
-"Y! c #6D3130",
-"Z! c #692D2E",
-"`! c #672C2B",
-" ~ c #642A2A",
-".~ c #5F2727",
-"+~ c #5C2525",
-"@~ c #884949",
-"#~ c #8B4B4B",
-"$~ c #894949",
-"%~ c #864647",
-"&~ c #834444",
-"*~ c #814242",
-"=~ c #804141",
-"-~ c #7C3D3E",
-";~ c #793C3B",
-">~ c #793A3A",
-",~ c #763839",
-"'~ c #6E3232",
-")~ c #6C3030",
-"!~ c #692F2F",
-"~~ c #652B2B",
-"{~ c #5C2526",
-"]~ c #5A2524",
-"^~ c #D7C091",
-"/~ c #864847",
-"(~ c #874748",
-"_~ c #884948",
-":~ c #884849",
-"<~ c #894948",
-"[~ c #89494A",
-"}~ c #874646",
-"|~ c #864746",
-"1~ c #844544",
-"2~ c #824342",
-"3~ c #814142",
-"4~ c #7F4141",
-"5~ c #783A3B",
-"6~ c #773939",
-"7~ c #743737",
-"8~ c #713435",
-"9~ c #6A3030",
-"0~ c #5B2525",
-"a~ c #592424",
-"b~ c #844646",
-"c~ c #874848",
-"d~ c #874949",
-"e~ c #854647",
-"f~ c #854646",
-"g~ c #834544",
-"h~ c #824343",
-"i~ c #814342",
-"j~ c #7E403F",
-"k~ c #7A3C3C",
-"l~ c #713535",
-"m~ c #6B302F",
-"n~ c #692E2E",
-"o~ c #652B2C",
-"p~ c #572323",
-"q~ c #39802F",
-"r~ c #824443",
-"s~ c #834545",
-"t~ c #844645",
-"u~ c #824344",
-"v~ c #773A3A",
-"w~ c #6E3132",
-"x~ c #692F30",
-"y~ c #622829",
-"z~ c #5E2727",
-"A~ c #5B2526",
-"B~ c #2C7322",
-"C~ c #7F4241",
-"D~ c #7D3F3F",
-"E~ c #7C3E3F",
-"F~ c #793C3C",
-"G~ c #753838",
-"H~ c #753837",
-"I~ c #723635",
-"J~ c #6D3132",
-"K~ c #6C3130",
-"L~ c #69302F",
-"M~ c #612829",
-"N~ c #602828",
-"O~ c #326D23",
-"P~ c #286E1C",
-"Q~ c #7D3F40",
-"R~ c #7E4040",
-"S~ c #7C3F3F",
-"T~ c #763A3A",
-"U~ c #743837",
-"V~ c #733636",
-"W~ c #703534",
-"X~ c #6F3434",
-"Y~ c #6D3333",
-"Z~ c #6B3030",
-"`~ c #662C2C",
-" { c #612928",
-".{ c #5E2627",
-"+{ c #B9B07B",
-"@{ c #7A3D3D",
-"#{ c #7B3E3E",
-"${ c #7B3D3E",
-"%{ c #793D3C",
-"&{ c #773B3B",
-"*{ c #76393A",
-"={ c #753938",
-"-{ c #713536",
-";{ c #703535",
-">{ c #6E3333",
-",{ c #6D3232",
-"'{ c #6B3130",
-"){ c #662D2D",
-"!{ c #5D2727",
-"~{ c #5A2525",
-"{{ c #582424",
-"]{ c #773A3B",
-"^{ c #783C3C",
-"/{ c #773C3B",
-"({ c #773B3A",
-"_{ c #753939",
-":{ c #733838",
-"<{ c #723737",
-"[{ c #703435",
-"}{ c #6C3132",
-"|{ c #682E2E",
-"1{ c #672E2E",
-"2{ c #632A2B",
-"3{ c #632A2A",
-"4{ c #5F2828",
-"5{ c #5C2626",
-"6{ c #562223",
-"7{ c #29651D",
-"8{ c #743939",
-"9{ c #743839",
-"0{ c #733737",
-"a{ c #723837",
-"b{ c #723736",
-"c{ c #6C3232",
-"d{ c #662E2E",
-"e{ c #632B2A",
-"f{ c #5C2627",
-"g{ c #6F3535",
-"h{ c #713636",
-"i{ c #713637",
-"j{ c #703635",
-"k{ c #6B3131",
-"l{ c #682F2F",
-"m{ c #652C2B",
-"n{ c #622A2A",
-"o{ c #5A2425",
-"p{ c #2A661E",
-"q{ c #6E3434",
-"r{ c #6E3433",
-"s{ c #6B3031",
-"t{ c #652C2C",
-"u{ c #632C2C",
-"v{ c #612929",
-"w{ c #5E2828",
-"x{ c #5C2727",
-"y{ c #5B2626",
-"z{ c #582324",
-"A{ c #6B3132",
-"B{ c #6C3231",
-"C{ c #6B3232",
-"D{ c #6A3130",
-"E{ c #682E2F",
-"F{ c #672E2F",
-"G{ c #652D2C",
-"H{ c #632B2B",
-"I{ c #602929",
-"J{ c #5D2828",
-"K{ c #592324",
-"L{ c #562323",
-"M{ c #3D1B1A",
-"N{ c #2E6823",
-"O{ c #683030",
-"P{ c #682F30",
-"Q{ c #68302F",
-"R{ c #672F2F",
-"S{ c #672D2E",
-"T{ c #652C2D",
-"U{ c #642C2C",
-"V{ c #61292A",
-"W{ c #5A2526",
-"X{ c #572423",
-"Y{ c #3E7530",
-"Z{ c #9D9B65",
-"`{ c #642D2D",
-" ] c #652E2D",
-".] c #652E2E",
-"+] c #642E2D",
-"@] c #642C2D",
-"#] c #612A2A",
-"$] c #5F2929",
-"%] c #572324",
-"&] c #572424",
-"*] c #481E1F",
-"=] c #366D29",
-"-] c #622B2B",
-";] c #622B2C",
-">] c #632C2B",
-",] c #622B2A",
-"'] c #5D2728",
-")] c #5A2625",
-"!] c #592525",
-"~] c #562423",
-"{] c #5F2A2A",
-"]] c #602A2A",
-"^] c #602A29",
-"/] c #60292A",
-"(] c #5E2928",
-"_] c #5E2929",
-":] c #5B2627",
-"<] c #5D2829",
-"[] c #5D2929",
-"}] c #5E2827",
-"|] c #5A2726",
-"1] c #5A2727",
-"2] c #552323",
-"3] c #327525",
-"4] c #2F7725",
-"5] c #5A2626",
-"6] c #5A2627",
-"7] c #592625",
-"8] c #592626",
-"9] c #592524",
-"0] c #592425",
-"a] c #562322",
-"b] c #A5976B",
-"c] c #3E7732",
-"d] c #2B701F",
-"e] c #582425",
-"f] c #562324",
-"g] c #226314",
-"h] c #26691A",
-"i] c #562424",
-"j] c #552322",
-"k] c #266719",
-"l] c #552223",
-"m] c #532221",
-"n] c #3E7632",
-"o] c #532222",
-"p] c #391A1B",
-"q] c #2E6B21",
-"r] c #C5A981",
-"s] c #522122",
-"t] c #522222",
-"u] c #532122",
-"v] c #29631C",
-"w] c #307726",
-"x] c #6D493D",
-"y] c #614439",
-"z] c #DBC193",
-"A] c #46211F",
-"B] c #391C1B",
-"C] c #9A7F63",
-"D] c #2A671E",
-"E] c #256818",
-"F] c #AE9170",
-"G] c #4E312A",
-"H] c #516E31",
-"I] c #2D6822",
-"J] c #C0AB7E",
-"K] c #8D6F57",
-"L] c #4D1F1E",
-"M] c #765645",
-"N] c #58372E",
-"O] c #4C201F",
-"P] c #E8D09D",
-"Q] c #3D1C1C",
-"R] c #361918",
-"S] c #BBA07B",
-"T] c #472824",
-"U] c #326820",
-"V] c #8C6E57",
-"W] c #CCB1A1",
-"X] c #DFC696",
-"Y] c #412220",
-"Z] c #371D1B",
-"`] c #D8C091",
-" ^ c #6F5041",
-".^ c #C1A6A1",
-"+^ c #B0958D",
-"@^ c #4A2C28",
-"#^ c #361C1B",
-"$^ c #4F2F29",
-"%^ c #5B4337",
-"&^ c #4A7E3E",
-"*^ c #947878",
-"=^ c #3C221F",
-"-^ c #407834",
-";^ c #DAC192",
-">^ c #BEA2A1",
-",^ c #9D827F",
-"'^ c #4A2F29",
-")^ c #6A5141",
-"!^ c #A38A6B",
-"~^ c #37722B",
-"{^ c #A08567",
-"]^ c #967979",
-"^^ c #BDA1A1",
-"/^ c #31671F",
-"(^ c #B69D78",
-"_^ c #5B3D33",
-":^ c #977979",
-"<^ c #316D25",
-"[^ c #432522",
-"}^ c #40221F",
-"|^ c #CDB489",
-"1^ c #977C60",
-"2^ c #402220",
-"3^ c #411D1D",
-"4^ c #C2A7A1",
-"5^ c #C5A9A1",
-"6^ c #C9AEA1",
-"7^ c #CBB0A1",
-"8^ c #CEB3A2",
-"9^ c #D2B7A2",
-"0^ c #D1B7A2",
-"a^ c #D1B6A2",
-"b^ c #CDB3A1",
-"c^ c #D4B9A2",
-"d^ c #CFB5A2",
-"e^ c #CEB3A1",
-"f^ c #316D22",
-"g^ c #94795F",
-"h^ c #442522",
-"i^ c #C4A9A1",
-"j^ c #DAC0A2",
-"k^ c #E5CCA3",
-"l^ c #EDD5A3",
-"m^ c #EFD7A3",
-"n^ c #E9D0A3",
-"o^ c #DFC6A3",
-"p^ c #D3B8A2",
-"q^ c #CDB2A1",
-"r^ c #2C6F20",
-"s^ c #987D61",
-"t^ c #553830",
-"u^ c #3C1E1D",
-"v^ c #C3A8A1",
-"w^ c #CFB4A2",
-"x^ c #E2C9A3",
-"y^ c #EED6A3",
-"z^ c #E6CDA3",
-"A^ c #D8BEA2",
-"B^ c #D0B5A2",
-"C^ c #CCB288",
-"D^ c #9D8265",
-"E^ c #95795F",
-"F^ c #BAA07A",
-"G^ c #C8ADA1",
-"H^ c #EAD1A3",
-"I^ c #D9C0A2",
-"J^ c #527031",
-"K^ c #E7CFA3",
-"L^ c #E3CAA3",
-"M^ c #246718",
-"N^ c #DCC3A2",
-"O^ c #EBD2A3",
-"P^ c #E7CEA3",
-"Q^ c #E2C8A3",
-"R^ c #DBC1A2",
-"S^ c #39722C",
-"T^ c #8B8758",
-"U^ c #256718",
-"V^ c #2D6F21",
-"W^ c #967879",
-"X^ c #3F7530",
-"Y^ c #317626",
-"Z^ c #927777",
-"`^ c #376F2B",
-" / c #447937",
-"./ c #317525",
-"+/ c #316C22",
-"@/ c #2A641C",
-"#/ c #326A25",
-"$/ c #528243",
-"%/ c #326E25",
-"&/ c #2B6620",
-"*/ c #3B732F",
-"=/ c #346F25",
-"-/ c #477B3A",
-";/ c #4C7F3E",
-">/ c #3C752F",
-",/ c #2C681E",
-"'/ c #2B651E",
-")/ c #4A7D3C",
-"!/ c #4A7F3D",
-"~/ c #346C26",
-"{/ c #568447",
-"]/ c #558345",
-"^/ c #356E29",
-"// c #2D6A20",
-"(/ c #518041",
-"_/ c #346F26",
-":/ c #3F7733",
-"</ c #417835",
-"[/ c #467B37",
-"}/ c #4D7E3F",
-"|/ c #447A37",
-"1/ c #326E26",
-"2/ c #336E26",
-"3/ c #447B37",
-"4/ c #558246",
-"5/ c #568147",
-"6/ c #497D3B",
-"7/ c #2F6B1F",
-"8/ c #4E7E40",
-"9/ c #4E7E3F",
-"0/ c #558247",
-"a/ c #4F8041",
-"b/ c #3E7630",
-"c/ c #367127",
-" ",
-" ",
-" . + + + @ # $ % & * = - ; ",
-" > , ' ) . . . . . . + + ! ~ { { ] { ^ / ^ ( _ : < ' [ } ",
-" | 1 2 # 3 ] / ] / 4 + . . . . . . . . . . + + 5 6 ^ ] / ] ] { ^ / / { ] ^ { 3 # 7 1 8 ",
-" 9 0 a # b ] / ] { { { { ^ ] ^ c + + . . . . . . . . . . . . . + + + d e { / / / { ] { { { { { { { { ^ { { f g h 0 i ",
-" j k l ] { { / ] { ] ] ] ] ^ ] ] { ] ] m + + . . . . . . . . . . . . . . . + + + + n { { ^ ] { / ^ ] { ] ] / ] ^ { { ] ^ { { ^ ^ l k o ",
-" p * q ( { { { { / { { { ] { ^ { ] { { { ] ] ] { r + + + . . . . . . . . . . . . . . . . . + + + + s ^ { / { ^ ^ ] ^ / / { / ^ ^ ] / { { ^ { { { ] { f t u v ",
-" w x y ] ^ ^ { { { ] ] ] ^ { / { { { { { / { ] / ^ / ^ z + + + . . . . . . . . . . . . . . . . . . + + + + A { ] ] ] { ^ ] ^ { / { { ^ { { { ] / ] / ^ / ] { { B C D E F ",
-" G k H { { / { { ] { ^ { ^ { { ] { ] { { / ] ^ ] ^ { { { { ^ ^ I + + + . . . . . . . . . . . . . . . . . . . + + + + + + e ^ J { / ] ^ ^ ] ^ { { { { { / { ] { { ^ ] { { ^ K L M C C N O G ",
-" w P ^ ] ^ ^ ] ^ { { ] ^ ^ ] ^ / / ^ ^ / { ^ ] ^ { { ] { { / ] / J _ Q + + + . . . . . . . . . . . . . . . . . . . . . + + + + + + + R J ^ { _ ] ^ / ] { ^ { / { { { { ] ^ / { ] ] ^ ] ^ ] S T U V C C W X ",
-" Y Z ^ { ^ { / ] { ^ ^ { ] ] { { { ] { ^ / { ^ { ^ { ^ ^ { / ` _ J _ _ _ _ .+ + + . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + S _ _ _ _ J ^ _ ^ J / ^ ] { ^ { ] / ^ ] ^ / { ^ ^ ] { { S T ..C V V +.@. ",
-" 1 #.{ { ] ^ ] ] ] { / { { { { { ] / ^ / { ] ] ] / ^ { ] ] _ _ ^ _ _ _ _ l $._ %.&.+ + + . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + *._ _ _ ^ _ ^ { ^ =.{ / ^ / ] { { ^ ^ { { { ] / { { { / ] { -.;.>.V >.V ,.'. ",
-" 0 ).{ ] / ^ ^ { { { { ] { ^ { / ^ / ^ { ^ { / ] ] { { { ^ _ ^ _ _ _ _ _ _ _ !.~._ {.%.] + + + . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + ]._ %.l %.#._ _ _ ^ ^ J ` / { { ] ] { ] { { ] { { / { { / { ^ S L ^.C C C C /.0 ",
-" (._.] ] ] ^ ^ ] { { { ] ] / / { ^ { ^ ] ] { ^ ^ ] { ] _ =.{ J _ ^ _ $._ %.!._ l {.%._ %.{.!.` + + + . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + :.l l !.!.l _ _ _ _ ^ _ ^ ^ ` { ^ ` ] ] ] { { ^ { { ] ] ^ ] ^ { { <.[.V >.C >.C }.|. ",
-" 1.] ] / { { ] ] { / ] ^ ^ ] ] { { { ^ / ] { { ^ { / ] ` ^ ^ ^ _ $.l _ _ $.{.{.{.{.!.~.!.!.{.{.2.3.+ + + . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + Q ~.~.%.{.!.~.~._ %._ $._ J _ _ / _ ^ { { / ] / ] ] / { / / ^ ] ] ] L ^.V 4.C C V 4.5. ",
-" (.6./ ] { / / / { / / { ] ] ] ^ ] { { / / ] { { ] { ] ^ ^ =.J ^ _ l _ $.$.l #.!.!.!.{.!.2.7.{.{.2.2.2.2.+ + + . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + 8.!.{.{.{.{.!.%.#._ _ l _ _ _ _ _ ^ / { ] ^ / / ^ { ] / { { ^ { ^ { { 9.C >.V C C V C 0.a. ",
-" b.=./ ] { { ^ ^ { ^ ] ^ { / ^ { { / ] / ] { / ] / ^ { { =.^ _ _ _ _ _ _ {.l !.%.%.{.!.2.!.2.2.2.2.2.c.2.c.c.+ + + . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + d.2.{.!.!.2.{.!.{.~.l _ $._ _ _ _ ^ _ J ^ ^ ] { { / { { ] { { ] ^ ^ { S U V V >.V C V 4.B e. ",
-" f.y / / / ^ ] { ] { ] ] ^ / / / ] ^ { / { ] ] ] ] ^ _ ] J J _ _ #._ $.~.{.{.%.{.!.{.g.!.7.{.c.2.2.2.c.h.c.c.i.j.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + k.l.2.c.{.{.2.!.{.#.$.$.!.l _ %._ J _ ^ =.J ^ / { ^ { ] { { { ^ ] ^ ^ ] m.[.C >.C C >.C V n.o. ",
-" p.] ^ ] ] / { { / { ] / ^ { ] { { { { ^ { ] ] ] { ^ { ] _ ^ _ _ _ _ #.%.l {.{.!.!.7.3.{.{.c.c.2.2.i.h.j.h.h.h.i.i.h.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + q.r.2.2.!.2.2.2.{.!.{.{.%.%.l _ _ %._ _ _ _ / { ^ { ] ] ] / { { { { ^ / / ;.C C >.C 4.>.C 4.C s. ",
-" t.u.{ ] ] { { { ^ ] { ^ / ] { ] ^ ] ] ] ] { ] { ] ] ^ ^ =._ _ _ _ #.~.!.{.~.!.{.{.{.2.2.2.c.c.c.c.c.h.h.h.c.c.v.h.w.h.i.x.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + y.j.2.2.c.c.c.{.{.{.{.7.{.{.~.!.#.l _ _ _ _ _ J ^ { { / { { / { ^ / { / { s [.V V C V V V >.>.C z.A. ",
-" B.t ] ^ ^ { ^ ] ] { ] ^ { ] ^ ] { { ^ ] { { ^ ] ^ ] { { _ _ _ %._ %.{.%.%.!.!.%.{.{.{.2.3.2.r.C.c.r.c.h.j.i.w.h.D.i.i.i.x.x.D.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + E.c.2.c.c.c.c.2.2.2.2.{.7.{.!.~.{.#.!._ _ _ _ _ / { { { ^ { ] ] ] { { / ] F.G.C C >.C V C >.V C 4.H.I. ",
-" J.t ] { ^ ^ ^ / / / / { / ] ^ ] / ] ] ] { ^ { { ^ / { / _ ^ _ _ $.!.%._ ~.{.2.!.c.{.c.2.c.c.2.c.h.h.h.h.i.i.K.i.v.v.w.w.D.D.D.D.D.+ + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + L.i.c.i.h.c.r.2.c.{.3.!.c.2.{.{.%.{.!._ _ _ ^ _ ^ ` { ] ^ { ^ ] { ] ] ] / / M.C V >.C 4.C C 4.C C C H.J. ",
-" N.{ { / { / { ^ { ] { { { ^ { ^ { ^ ] / { { / { ^ ^ { J ^ _ _ _ _ $.#.!.{.{.{.2.!.{.c.c.2.2.c.c.c.i.c.h.x.x.D.D.D.w.w.D.D.O.D.P.D.+ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + Q.h.h.h.i.j.h.j.c.2.2.c.2.2.{.{.{.!.%.%.!._ _ _ _ ] _ / { ] { ] { ] ] ^ { / R.S.V 4.C C 4.C C V 4.>.>.T. ",
-" U.] ] ^ { ^ { / ^ ] ] / ^ { ] ] / { { ^ / / ] ] ^ { _ ^ _ ^ $.$.$.$.{.{.!.!.{.{.c.c.c.c.c.h.c.c.c.h.i.h.w.V.D.w.D.D.D.D.D.D.D.W.O.D.X.+ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + Y.i.i.i.i.h.i.h.c.C.2.c.l.7.!.2.!.{.#.!.~._ _ _ _ _ { / ^ ^ ^ { { { ] { { / y ;.>.>.C 4.>.4.V C V 4.C >.Z. ",
-" `.{ { ] ^ ] / ^ ^ ] { / ] { { { { ] { ] / { { { / { ^ _ =.^ ^ _ _ $.#.!.{.~.{.2.7.7.2.h.c.i.j.i.h.i.h.w.x.v.K.w.D.D.D.D.D.D.W.P.O. + +W..++ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + ++h.i.w.x.i.w.h.h.c.c.2.c.2.7.l.7.%.!.#.!.!.l _ _ _ ^ ^ / ] ] / ] { ] / / { ^ L C C C 4.C V C C C >.>.>.>.@+ ",
-" #+] { ^ / { ^ ] { ^ / ] ] { { / { / ^ ] { { ^ { ] / ^ { J J _ _ %.!.{.!.{.!.2.2.2.l.2.c.c.j.c.i.h.h.i.V.v.D.D.D.D.D.D.D.X.W.X.X. +X..+$+X.X..++ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + %+D.w.V.i.D.h.h.c.j.c.r.2.c.2.{.{.{.{.{.{.%.!.$._ _ _ { _ J { ^ { { ^ ^ ] / / T >.V 4.C V C C C 4.V V 4.C C &+ ",
-" *+=+{ ^ ] { { ] { / ^ / { ] { / ] ] ] ^ ^ ^ / ] ^ { { ] ^ ^ _ $.%._ %._ {.{.!.{.2.l.2.C.c.i.c.i.i.w.i.i.w.x.D.D.D.O.D. +D.X.X.W.X..+$+$+.+.+.+-+.++ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + ;+D.x.x.D.x.i.x.h.i.h.c.j.2.c.2.2.!.!.{.{.!.{.%.$._ _ ^ ` ` { ^ { / { ] ^ ] ^ T C V C C C C V 4.C V V >.C V W >+ ",
-" ,+] / / ] ^ ^ { { / / ] ^ / { / ^ { { { { / { { ^ ] ` ^ ^ ^ $.%.l !.!.!.{.{.2.2.2.2.c.c.h.v.i.h.i.i.i.V.D.D.D.D.D.W..+D.X. +W.X..+.+-+.+.+.+-+'+)+'++ + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + D.O.D.D.D.D.i.w.i.w.i.c.h.j.c.2.2.7.{.{.!.!.!.!.#._ _ _ ] _ / { ^ { { { { / / K ^.>.V V >.C C V V V 4.4.>.>.V !+ ",
-" ~+b ^ ] ^ ^ / ] / ] { ] ^ ] { ] ] { { { ^ ^ ] ^ ] ] J ] _ =._ _ l _ {.{.{.{.7.7.c.2.c.r.c.h.i.i.w.w.i.i.w.D.W.P.W.{+O.X..+ +.+.+-+.+-+$+-+-+-+'+'+'+]+^++ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + /+X.P.D.P.D.D.x.V.V.x.h.h.h.h.2.2.c.2.c.2.2.!.#.{.%.%._ _ { =.^ { ] ] { ] ^ ] { K ^.C C C C >.>.C >.>.V V C 4.V V (+ ",
-" _+/ { ] ] ] { / { { { ^ { / ^ { ] { ] ] ] / ^ ] { ] ] _ _ ^ _ ~.%.%.!.{.!.{.{.2.2.c.j.h.c.h.h.i.D.i.v.x.D.D.X.D.W.O.X..+.+X.-+X..+'+'+'+-+:+-+]+<+]+'+]++ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + V.X.X.O.W.D.D.D.w.h.v.v.i.i.i.i.c.c.c.2.3.{.{.~.!._ $.%._ _ ^ ^ { / ] ^ / ] ^ ^ y ^.V C 4.>.V C 4.C >.C C V C C >.z. ",
-" [+( / ] ^ ] { { / { { ] / / { / { ] ] ] ^ ^ { { ] ^ ^ _ ^ _ _ _ %.!.!.!.!.!.l.{.2.c.c.h.c.i.i.i.w.w.w.D.D.O.D.X.D. +W.}+.+.+.+|+|+1+-+'+-+]+'+'+]+]+]+<+<+2++ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + %+ + +W.W.D.D.D.D.D.w.i.D.h.v.j.h.j.c.c.{.2.2.!.!.{._ _ l l _ J ] / ^ / ^ ] { { ^ 3 S.C C C C V >.C C C C C V V 4.C 3+[+ ",
-" t { ] { ^ ] ^ ] ^ ^ ] ] / { ] { ^ / ^ { / ] { ^ / { / ] ] _ _ _ %.%.{.!.{.{.2.c.c.c.j.c.h.h.w.w.i.i.D.D.D.D.W.X.W.W.W.-+X.$+-+-+-+-+:+-+]+:+]+<+'+<+2+2+]+]+4++ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + 5+X..+.+O.{+O.O.D.D.D.D.K.K.i.h.v.c.h.c.2.2.2.!.{.!.~.%.$._ _ _ _ J ^ / ] ^ ^ / ] S [.C C >.V >.4.C V V C C 4.C C V C H. ",
-" j y { / ^ ^ ] { ] ] { ] ] { { ] { ] ^ { ] { { { / { { =.J _ _ _ %.%.%.{.2.2.{.c.c.2.c.h.h.i.h.h.w.D.x.D.O..+D.D..+.+X..+-+1+|+.+'+'+'+:+<+]+]+]+6+6+<+2+2+2+2+7+8++ + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + 9+-+.+X.X..+ +O..+W.P.D.D.D.D.v.w.c.h.h.c.c.2.l.{.!.!.%.{.l _ _ _ / { =.^ { { ] ^ ] 0+a+C C C C C 4.>.V C >.>.C >.>.>.V b+o ",
-" c+/ ^ ] { ] { / / ^ ^ { { { / ^ ] ^ ^ { { ] / ] / { ] { ^ J _ _ _ #.!.d+{.2.7.c.c.c.i.h.h.i.w.D.w.w.D.D.D.D.W.X.X..+$+-+$+-+'+-+'+'+]+]+<+<+2+2+e+7+7+f+g+7+7+7+7+h++ + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + i+-+-+'+.+.+X.X.W.D.P.D.D.V.v.D.h.w.c.h.h.h.c.c.2.2.{.{.{.!.l l _ _ J ^ ^ ^ ^ ^ / { K >.V C C >.>.>.4.4.V 4.C C V V >.>.C j+ ",
-" k+{ ] ^ / ] { { ] { { / / { { ^ ] { ] ] { { ] ] ] ^ { { J _ _ _ #.#.l !.!.2.!.{.2.h.c.c.h.h.i.K.x.D.D.W.W.W. +.+X.W.-+l+-+-+-+'+)+'+m+]+6+<+]+2+2+2+7+g+7+7+7+n+n+7+o++ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + m+'+-+'+-+.+.+X..+.+ +D.D.D.V.x.w.w.h.h.h.2.c.c.2.2.7.%.%.%.$.%._ _ _ ` { / ] { ] { s C V >.C C 4.V V C >.V >.C V C 4.4.4.V p+ ",
-" `.^ { / { { { ^ / / ^ ^ { { ] ^ { ^ ] ] ^ { ^ ^ { ^ ] { _ ^ _ _ ~.%.{.{.2.2.2.{.c.j.h.h.h.h.w.w.x.D.O.W.X.W.X..+.+X..+1+-+'+'+<+]+]+]+]+f+<+]+<+7+7+7+7+n+7+7+q+r+r+s+q++ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + t+'+'+-+'+X.-+$+.+X. +.+W.W.D.D.w.K.D.i.j.c.h.2.c.2.3.!.!.!.~.!.%._ _ _ J ^ { ] { ^ ] u+V C >.V C V C C 4.C 4.V C C >.C C C V v+ ",
-" w+{ / ] / ] / ^ ^ { ] / ^ { ] ] ] / ^ ^ ^ ^ ] { { / { { _ / _ _ %.!.!.{.{.2.{.l.2.2.h.h.i.x.i.D.D.D.D..+W.W..+.+-+.+'+'+-+-+<+]+]+'+6+]+]+2+7+f+7+7+7+n+q+x+x+r+o+y+q+q+z++ + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + D.]+m+'+'+1+.+$+$+$+X..+X.D.D.D.D.D.D.i.h.v.i.c.2.c.l.{.{.{.{.!.l _ _ ^ { ^ ^ ^ { { ] A+C V V C C >.C V C >.C C C C 4.C C V C B+ ",
-" p+F.^ { { { ^ ] ] { ^ { ] ] / { ] ^ { { ] ] / { { ] { ^ ^ ^ J _ $.$.{.!.!.{.c.2.C.c.j.h.v.i.v.i.V.D.D.D.D.X.X..+.+.+'+-+'+'+'+'+]+<+]+<+<+7+g+7+7+7+7+y+r+y+s+n+q+C+s+s+D+C+E++ + + + + + + + . . . . . F+F+F+F+F+G+G+G+G+. . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + H+'+:+-+'+-+-+.+-+.+-+.+O.X.W.D.D.D.D.D.h.w.i.h.h.2.c.{.2.{.{.{.!.~._ _ J _ _ { ] ] ] / ;.>.C C C C >.V C C V V 4.V 4.V >.V >.V n.I+ ",
-" F ^ ] { { { / { / { { ] ] ] { ] ] ] { { / ^ ] { ^ ] ] ^ / _ _ _ _ %.!.{.2.2.2.{.C.j.i.h.i.i.w.D.D.D.P.D.W.O..+X.X.X.'+'+-+:+]+]+2+6+]+f+2+7+7+7+x+7+s+q+n+s+q+s+J+J+s+D+s+C+K+L++ + + + + + + + . . . F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+M+. . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + N+6+<+<+:+)+-+'+'+.+.+X..+X.W.O.D.D.D.D.i.i.i.i.c.c.c.2.g.{.!.!.%.$.$._ _ ^ { { ^ ^ { { O+C C C >.C 4.V >.V C 4.V C >.4.>.4.4.C 4.P+ ",
-" a { / { ^ ^ ] { ^ ^ ] { { { ] { { ^ ] ] ^ ] ^ ^ ^ { ] ^ J / _ !._ #.!.%.{.!.l.{.c.h.h.i.w.w.w.D.D.D.{+P.{+ +.+.+X.-+-+'+<+'+]+<+2+2+2+e+7+2+7+7+r+7+o+7+s+s+s+q+q+s+Q+s+C+C+D+D++ + + + + + + + + . . F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+. . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + 2+6+<+]+]+<+'+-+'+-+.+.+.+X.O.X.W.W.D.D.w.h.i.h.j.c.c.c.2.{.{.!.{.l $._ _ _ J ^ ] { { y [.V C 4.4.>.C >.C >.C C 4.V C C C V >.C 4.O ",
-" R+^ ] { / ] { ^ ] / ] ^ / { / { ] ] ] { { { ] { { / { ] ^ _ ^ _ #._ ~.~.{.3.2.2.j.c.h.w.h.w.D.D.D.D.D.D.W.X. +.+-+-+'+-+]+<+<+]+]+6+7+g+7+7+7+7+r+o+s+s+q+q+s+K+D+D+D+D+D+C+D+S+J++ + + + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + T+7+2+]+]+]+]+m+:+'+'+-+-+.+.+.+O.W.D.D.D.K.D.x.i.h.h.2.c.2.2.2.{.!.!._ $.^ { J / / { / U+>.C C 4.C >.>.>.C C C C C C C C C C C V C V+ ",
-" ; ( ] ^ ^ { ] ^ { ^ ^ { ^ ] ^ { { ^ / { ] { ] { { / ^ { _ =._ _ _ !._ {.7.{.c.2.2.j.i.i.h.h.D.w.x.W.W.W.X. +X.$+-+$+'+'+:+<+'+6+2+<+7+7+2+7+n+n+y+s+s+q+C+s+s+K+s+D+D+D+C+S+S+S+W+X+Y++ + + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + ]+7+7+2+2+<+:+:+Z+'+'+-+-+.+.+.+O.X.W..+D.D.i.v.w.i.h.2.2.c.2.!.{.!.!.%._ _ ` J / / ] ^ A+V C C C C C V V 4.>.4.>.C C 4.V >.C C C 4.`+ @ ",
-" .@] / ] / ^ ^ ^ ] { ^ / ^ / / ] { ^ { { / { ] ] { { ^ { { =._ _ _ _ _ {.{.{.2.2.c.h.c.i.w.K.i.D.D.D.D.{+X.X..+-+$+-+]+-+-+6+]+<+<+<+7+7+7+7+x+o+y+s+s+q+K+K+K+D+D++@C+D+D+S+X++@@@X+S+#@+ + + + + + + G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + $@7+e+6+7+2+g+6+'+'+:+'+-+-+-+W..+X.X.W.D.D.x.D.v.v.h.c.r.j.7.2.2.{.!.#._ _ _ ^ ^ ^ { { / ;.4.V V V C C >.C C C 4.>.C >.V C C 4.4.V >.V %@ ",
-" &@^ ] { / ^ ^ ] ^ { { { ] ] / ^ ] ^ ] ] / ] ] ] ] { { ] { ^ _ _ _ $.%.%.{.!.2.2.2.c.j.h.w.D.D.i.D.P.D. +{+X..+-+$+-+'+]+'+<+2+2+e+7+2+7+7+y+y+7+x+s+s+s+C+C+D+D+C+C+D+S+@@*@@@@@@@@@=@-@;@+ + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + >@7+7+6+g+2+<+<+:+:+'+'+'+-+-+X.X..+D. +D.W.D.x.D.i.i.h.,@c.2.2.l.!.{.{.#._ _ ^ { ] { { y S.C >.V C >.>.C V C C V >.>.C 4.V C C C C >.V '@ ",
-" )@{ ^ ] ^ { / { { ] ^ { { { / / ^ ^ { ] / { { { ] { ] / ^ J ^ _ $._ {.~.!.2.2.2.c.j.h.h.v.i.w.w.D.P.P.W..+X.-+-+.+'+:+]+]+:+<+]+f+7+7+7+y+n+y+y+s+C+K+q+K+C+C+D+D+D+D+X+S+@@S+@@@@-@=@=@=@+ + + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + !@n+7+7+7+7+2+<+g+<+]+<+-+-+'+.+.+X.W.O.P.D.D.x.D.x.i.~@h.C.2.2.{.{.!.{.~.%.%._ J ^ =.] ] e V C >.C C C C 4.V C 4.4.4.V C >.V C 4.V C C >.{@ ",
-" ]@/ { ^ { ] { ] ] { ^ ] ] { ] / ] { / ] ] / { ] ^ ] ] ] { ^ ^ ^ ~.$._ ~.!.!.c.2.c.c.h.i.i.h.x.D.W.O.D..+X..+X.-+'+'+'+]+<+<+2+g+2+7+7+n+7+q+s+s+q+s+C+C+K+D+C++@S+X+S+@@W+X+@@@@=@^@=@=@/@(@+ + + + + + + + G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+. _@:@+ + + + + + + + + + + + + + + + + + + + + + + + + + + <@n+n+x+7+7+7+f+]+2+2+]+]+'+'+'+'+.+.+W.W.O.D.D.D.D.i.i.h.h.2.2.{.l.!.~.%.$.l ^ ^ _ / { ] [@C V C V V C C >.V C C V >.C >.C V V V V V C >.}@ ",
-" _+/ { { / ] { ^ { { { ^ { ^ { / { { ] ] ] ] ^ { / / ] ] ^ J { _ _ l {.#.!.2.c.2.c.j.c.h.v.w.D.D.D.W.X.X.X.$+'+'+]+'+<+<+]+]+6+e+7+2+7+x+n+r+q+s+K+D+D+C+C+D+S+D+S+X+X+-@W+@@=@=@=@/@=@|@/@|@N++ + + + + + + G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+1@2@3@+ + + + + + + + + + + + + + + + + + + + + + + + + G+4@y+s+n+7+7+7+7+<+]+6+<+Z+]+-+-+X..+X.X.O.D.D.D.V.w.v.v.h.j.h.c.2.2.2.!.~.!.%._ _ =.^ ^ ] ..>.V 4.>.V C C 4.V 4.>.C C 4.C >.C V >.C V V V z. ",
-" w+/ ^ / { ^ ] ] / ^ { ] ] { ] ] { ^ { ] { ^ { { { { { { _ ^ ^ _ %.%.%.%.7.{.c.2.h.j.i.i.i.D.D.D.D.{+X..+X.$+.+-+]+<+'+5@<+7+2+7+7+7+q+y+r+n+q+C+s+s+D+D+D+S+X+S+X+@@@@-@=@=@=@=@=@=@6@/@7@7@6@8@+ + + + + + G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+9@0@+ + + + + + + + + + + + + + + + + + + + + + + + + a@q+s+y+s+7+7+7+<+g+<+<+b@'+'+'+'+|+X.X.P.X.P.D.D.i.v.i.w.h.r.C.c.2.!.!.!._ %.%._ ^ J ] { K C >.V >.V V >.C C V C C 4.4.>.4.V V V V V >.4.C c@ ",
-" d@^ ^ { / ] ] ^ / ] { ^ { { ] / { / ^ { ] { { / ^ ^ ^ / { ^ ^ _ _ %.{.{.{.{.2.2.c.c.h.w.w.i.w.D.D.X.X..+.+.+.+-+'+'+'+<+e+2+2+7+7+n+y+n+y+q+s+D+D+D+D+D+e@S+D+X+W+S+@@=@@@=@=@^@/@=@=@|@7@f@f@g@h@+ + + + + + G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+i@j@+ + + + + + + + + + + + + + + + + + + + + + + G+k@q+y+y+o+7+7+n+7+g+2+]+<+]+]+]+'+-+$+.+W.X.P.X.D.D.K.x.h.j.j.r.c.2.c.!.%.{.%.%._ { { ] ^ L >.4.>.>.V 4.>.V V 4.C V C V C 4.>.V >.C C >.V C W ",
-" l@{ ^ { ^ ^ { ] ] { / ] ^ ] { ^ ] ] / { ^ { ^ ] { ] ^ { ^ _ _ _ _ $.{.{.2.{.c.2.r.i.i.h.x.x.D.D.O. +.+.+-+.+-+-+'+:+]+]+6+e+<+g+7+o+n+y+y+q+q+K+D+D+C+D+S+X+X+X+S+@@=@W+=@=@=@f@/@6@|@f@f@f@g@f@f@+ + + + + + G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+m@n@+ + + + + + + + + + + + + + + + + + + + + + + o@C+s+q+s+n+7+y+7+7+7+e+<+<+'+]+-+-+'+-+-+.+{+ +O.D.D.K.i.i.h.h.2.2.c.l.{.{.!.!._ _ _ { J { O+>.V C >.>.4.C 4.C C C C C C V C C 4.V V V >.C C p@ ",
-" q@] { ^ { ^ ^ { ] ] ^ { { ] { ^ { ] { { { / { ] ] ] ^ ^ ] ] ^ _ l l l ~.7.3.c.i.c.j.h.i.i.D.D.D.D.D.X..+-+-+'+:+'+]+]+2+2+2+7+2+n+7+y+q+y+s+s+s+K+D+S++@X+X+X+S+W+=@@@=@r@=@/@f@|@f@f@f@s@g@t@f@t@(@+ + + + + + G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+u@M++ + + + + + + + + + + + + + + + + + + + + + + v@s+C+q+s+n+7+y+7+7+e+7+7+]+<+:+'+'+$+-+.+X.X.P.D.D.D.w.v.i.i.h.j.c.c.!.2.%.!.%._ _ _ { ] -.C C 4.V C V C 4.C 4.V 4.4.C >.C C V V V >.C C C 4.w@ ",
-" d@] { / { { { ] ^ ] { ] { ] ^ ] { { { { ^ { { / ^ ] { / { ` _ ^ _ _ l {.{.{.c.c.h.i.h.h.v.x.x.P.{+.+W..+-+-+'+-+:+'+:+<+6+e+7+7+n+7+y+r+q+q+C+D+C+D+D+S+X+X+@@@@x@=@@@/@/@=@|@/@/@f@|@f@s@g@g@t@y@t@z@+ + + + + + G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+A@B@C@+ + + + + + + + + + + + + + + + + + + + + + + q+C+J+s+s+o+q+n+y+7+2+2+g+]+]+]+'+'+'+-+.+$+X.X.O.O.D.V.w.i.h.h.r.c.2.{.7.!.!._ $.^ =.{ { ;.V V >.V C V >.4.4.>.C V 4.C V C V >.C >.>.>.C >.>.W ",
-" : { { { ] ^ { ] ^ { ^ ] { { ^ { / { ^ { ] / / { ] { ] { / J ] _ _ %.~.!.2.2.{.c.C.c.w.K.v.D.D.O.X.W.W..+.+.+-+'+'+]+6+2+]+]+7+n+7+q+y+q+J+s+D+C+C+D++@W+S+@@X+@@@@/@=@^@/@7@f@f@f@f@f@f@D@t@t@t@E@F@G@H@+ + + + + + G+G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+I@J@+ + + + + + + + + + + + + + + + + + + + + + 8@C+K+C+K+s+s+x+y+7+7+7+7+6+<+]+]+'+'+-+-+.+X. +D.D.D.D.w.i.i.h.c.i.c.2.3.!.%.!.l %._ ^ _ S ^.V 4.>.C 4.C C V C 4.>.>.4.C 4.4.C 4.V V V C 4.V C K@ ",
-" u.{ ^ { / ^ { ^ / / ] ^ { { ^ ^ { ] ^ { { ] { ] ] ] ] { ] _ ^ _ _ l !.%.!.2.2.2.c.c.h.h.i.x.D.D.X.X.X..+.+-+-+Z+m+]+6+7+f+2+7+7+x+q+q+s+C+s+C+D+C+D+D+@@@@W+@@=@=@=@=@=@f@=@f@f@f@s@f@s@L@t@E@t@F@M@M@F@+ + + + + + + G+G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+N@n@+ + + + + + + + + + + + + + + + + + + + + + O@D+C+K+s+K+q+q+s+y+7+7+2+2+<+2+:+'+-+-+-+.+$+O.X..+W.w.w.D.i.v.h.2.C.2.7.!.!.$._ _ _ _ ^ T V C C C C >.C C C C 4.>.>.V >.C C 4.V V >.4.V V 4.C z. ",
-" P@/ / { ] / { ^ ^ { ] ] { ] { ] / ] { ^ { / / ] { ] ] { ^ ^ { J _ $.!.%.{.{.{.2.c.h.i.h.w.V.w. +D.X.X.-+.+-+-+'+'+<+]+6+7+7+7+y+q+7+s+s+s+Q+C+D+D+S+X+S+X+@@=@=@@@/@7@/@|@f@f@s@t@g@f@t@s@y@t@E@Q@F@Q@Q@M@+ + + + + + + G+G+G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+u@M++ + + + + + + + + + + + + + + + + + + + + ;@D++@D+C+C+s+q+q+s+r+7+n+7+g+2+<+<+'+'+'+.+'+.+ + +D.D.D.x.w.h.j.h.r.c.l.{.{.%.~.%._ _ { ^ +.V 4.C 4.C V C V >.C 4.V C C V V >.C C >.4.C C C V V R@ ",
-" S@{ { ^ { / { ^ { / { { { { / / / / ] { { { { ^ ] { { ^ ^ ] { ^ _ _ ~.~.~.{.c.c.h.h.h.i.D.w.x.D.O. +O..+X.-+'+-+'+'+<+e+7+g+7+7+o+q+s+s+J+D+K+D+S+X+S+T@X+@@=@=@=@^@r@f@f@f@f@f@f@t@t@t@t@G@E@U@M@Q@V@W@W@X@+ + + + + + + G+G+G+G+G+G+G+G+G+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+A@B@C@+ + + + + + + + + + + + + + + + + + + + + Y@T@C+D+C+K+K+s+s+q+q+7+n+7+6+2+:+]+]+'+'+$+X.$+ +D.P.D.x.w.i.h.i.h.r.2.{.2.!.#._ l _ _ J s V C V C C V 4.C V >.V V V V V 4.C V C 4.V C >.>.C C V !+ ",
-" Z@{ ] ] ] ^ ] { { ] / / / / { ^ ] ] { ^ / { ] { / ^ ^ { ] ] { _ _ %._ %.{.!.2.2.2.j.h.h.i.K.D.O.D.D. +X.|+.+'+'+:+'+<+g+7+g+7+7+x+y+q+q+D+K+D+C+S++@X+S+=@@@@@@@/@6@^@^@|@g@s@t@t@t@D@y@t@y@Q@F@F@V@Q@W@W@`@ #+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+.#G+G+G+G+G+G+G++#@#+ + + + + + + + + + + + + + + + + + + + + @@X+D+D+C+C+C+q+q+q+q+n+7+<+2+2+e+<+'+-+-+-+.+X. +W.O.D.w.D.x.i.c.c.c.2.2.{.!.#.!.l _ ^ J G.C C C V C V V V >.V 4.V >.V >.>.C V 4.>.C C >.4.>.V V Y ",
-" ##^ ] ^ { { ] { { { ] ] { { ] { ^ ] { ^ / { { ] ^ { ^ { ^ ] ^ _ ^ $.!.#.{.2.2.3.j.2.h.v.i.V.D.W.D.W.X..+.+.+-+-+]+<+]+2+<+7+7+7+s+r+r+s+D+s+D+D+S++@W+x@=@=@@@=@/@^@|@^@f@s@t@s@g@t@t@t@F@Q@E@Q@Q@Q@Q@W@$#W@$#%#+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&#+ + + + + + + + + + + + + + + + + + + + + *#W+T@+@D++@D+C+q+q+s+n+n+7+7+f+<+2+<+]+:+-+-+$+.+ +O.D.D.D.w.K.i.h.c.2.l.2.{.!.{.!._ J =.F.C V V C V V C 4.V C V >.C C C C V >.V V V 4.C 4.C C >.4.## ",
-" =#/ { { { / ] / { ] { ] { { ^ / { { { { ] ^ ] { { { { { { { ^ { _ _ l %.~.{.7.2.c.h.i.w.D.v.D.D.X.O.{+.+X.-+-+-+<+<+2+g+7+7+7+7+q+r+s+s+C+D+D+C++@T@@@=@=@@@=@r@6@f@|@|@f@f@f@t@D@t@t@t@U@Q@Q@Q@Q@Q@Q@$#`@-#-#`@+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+;#C@+ + + + + + + + + + + + + + + + + + + + >#@@S++@D+D+D+D+C+J+s+s+n+7+7+7+7+<+2+]+:+]+'+.+$+X.X.X.O.W.D.x.w.w.i.h.c.c.c.!.~.{._ _ _ { ,#C 4.>.V 4.>.C 4.C C >.C >.4.>.C 4.V >.C 4.V C >.V C >.V '# ",
-" y / { / { { { ^ ^ { ^ ^ ] ^ { ] ^ ] { / ] { ] / { ] ] ] { { ^ J _ $.$.!.{.{.c.c.2.c.i.v.x.D.D.W..+X..+X.-+-+:+]+<+]+2+<+7+7+q+n+o+q+q+s+D+D+D+X+X+@@@@@@=@/@/@=@|@f@|@f@s@t@g@y@t@y@F@Q@Q@F@Q@Q@Q@W@W@$#`@)#)#W@+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++#@#+ + + + + + + + + + + + + + + + + + + + X@X+@@X+D++@D+D+C+s+q+r+s+y+7+7+6+2+<+'+'+'+'+'+.+ +W.W.W.P.x.i.h.h.h.h.2.g.2.{.{.~.#._ _ F.V C 4.V 4.V C C C >.C C 4.>.4.C C C >.V >.>.V >.>.C V V b+ ",
-" ).^ ] ^ ] { ] / ] / ] { / ^ ] { { { ^ ^ { ^ { ] / ] / ^ / { { J _ _ ~.!.!.{.{.c.h.c.w.w.D.x.D.D.D.X.W.-+$+-+'+<+]+]+<+2+7+7+n+q+r+s+s+C+C+C+D+S+X+@@S+@@=@/@6@/@|@f@g@f@t@t@t@t@t@y@F@F@M@Q@W@W@$#W@$#)#`@)#-#)#!#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~#G+G+G+G+G+G+G+{#+ + + + + + + + + + + + + + + + + + + + E.@@@@@@W+D+D+D+C+C+s+s+7+s+7+7+2+2+6+2+<+'+-+-+-+-+.+.+D.{+D.w.D.x.c.i.c.2.3.{.%.!.#.l _ J L C C 4.>.4.V C V C V V >.V C V C >.V 4.>.V 4.C C 4.>.>.>./. ",
-" ]#/ / { / / ^ ^ ] { { ] { ] { ] ] ^ / { ^ ^ ^ { { { ] / { { =._ _ _ {.~.{.{.{.2.c.h.h.v.h.h.D.O.D..+.+.+-+'+'+<+]+<+2+7+7+7+q+y+q+s+C+J+D+C+D+S+@@@@@@W+@@/@/@r@/@f@f@s@D@t@t@y@y@E@Q@Q@W@W@Q@W@$#$#)#`@^#)#/#/#(#_#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~#G+G+G+G+:#+ + + + + + + + + + + + + + + + + + + + =@@@X+x@S+D+D+X+C+s+C+s+y+n+n+y+2+g+g+]+<+]+'+'+|+-+W.W.X.D.D.w.i.i.c.h.2.c.l.{.{.%.%._ ^ y 4.V 4.V C V V C V C C C C V C C V C C C 4.V V V C 4.4.C V <# ",
-" [#{ ] { / ] { ] ] ^ { { { { { { ] { ^ / ] ] ] ] { { { ] { / ^ ] { _ l {.{.{.7.2.c.c.i.i.i.V.D.W.D.X.-+.+'+-+]+:+]+<+<+7+7+7+s+r+s+s+s+J+C+D+S+@@W+X+S+@@r@r@r@r@f@|@g@t@t@t@t@F@y@U@E@Q@Q@$#`@W@$#`@$#)#$#)#/#/#/#}#|#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+:@+ + + + + + + + + + + + + + + + + + + 1#=@=@=@=@X+X+S+S+D+C+q+J+y+s+q+x+7+7+]+]+]+:+'+-+-+.+X.W.X.D.D.i.h.h.h.c.r.c.l.{.!.!._ _ _ T ^.C V V 4.C C >.C V >.4.V 4.C 4.C V C C C >.C 4.V C V C >.[# ",
-" 2#/ / { ^ / ^ ] { ] ^ / { { / ] / { ] ^ ^ { ] { / ] ] { { { ^ { _ _ _ l {.2.{.c.j.c.h.i.K.v.D.D.O. +X.X..+-+-+:+]+<+<+<+7+7+n+n+r+s+s+C+C+S+D+X+W+W+S+=@=@/@/@=@f@f@f@t@g@y@t@F@Q@Q@Q@W@Q@W@$#$#W@-#)#/#)#/#)#/#3#4#5#+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+M++ + + + + + + + + + + + + + + + + + + + =@/@=@=@W+S+W+X++@D+K+D+s+y+7+7+7+e+2+e+]+]+<+-+-+-+.+.+D.D.D.D.w.D.i.c.c.c.l.!.{.~.l %._ ] >.>.4.>.V 4.>.4.V V V >.4.V C C 4.V V 4.4.V C C V C C V >.C 2# ",
-" ] { { ] / ^ ] ] { / { ^ ] / ] ^ ] ^ ] ] { / ] { { { { ^ { { { _ _ %.~.$.!.{.2.2.h.j.w.h.V.D.D.P.O.W..+$+$+'+'+]+]+7+f+g+7+7+q+q+q+s+s+D++@+@X+X+x@W+@@=@6@6@/@|@|@f@s@t@t@y@y@t@Q@Q@Q@Q@W@$#6#)#`@-#)#)#/#4#3#4#4#7#W@+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+8#:@+ + + + + + + + + + + + + + + + + 9#=@=@=@=@x@X+D+S+D+D+K+K+q+o+r+7+7+g+2+7+]+<+'+'+-+.+$+X.X.D.D.V.x.h.i.j.c.2.l.7.{.!.!._ _ 9.>.4.V V C >.V >.V V V V C C C 4.V 4.V C V V 4.4.V C >.4.C C ",
-" _+{ ^ ] { ^ { { ] { { { { ] ] { ] { ] { { / / / ] ] { { / { =.^ _ l %._ !.!.{.2.h.h.c.i.D.D.D.D.W..+.+$+-+-+]+]+]+f+f+2+7+n+y+y+y+K+Q+C+D+S+X+W+=@=@=@r@/@f@|@f@f@f@t@t@t@E@M@F@Q@W@Q@`@$#$#)#)#)#)#/#/#/#4#/#4#0#7#a#b#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~#G+G+G+G+G+G+c#d#:@+ + + + + + + + + + + + + + + + ;@^@=@/@=@@@=@X+X+X+D+D+D+s+J+y+n+7+7+7+7+<+<+'+'+-+-+.+.+P.D.W.D.D.i.w.i.j.h.2.{.{.!.$.~._ y ^.V C V C 4.C >.V C V V >.V V V 4.C C V C C V >.4.V V >.>.C e# ",
-" b.{ { ^ ] / { { { ^ { { ^ ] { { ] ^ ^ { { ] ] ] ^ / ^ { { ^ { ^ ^ _ _ _ #.{.2.2.2.h.c.w.h.D.D.D.{+P.-+X.$+-+'+'+<+<+7+7+7+n+n+y+s+s+K+D+D+D+X+X+@@=@@@/@/@f@^@f@f@s@y@t@U@t@Q@M@Q@W@$#$#`@6#`@`@`@/#/#/#4#4#4#a#0#0#7#f#g#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+;#h#:@+ + + + + + + + + + + + + + + + i#r@r@=@/@=@W+X+D+S++@D+D+s+s+s+7+7+7+7+7+<+]+'+]+-+|+.+.+W.W.D.D.x.i.w.j.c.c.2.2.2.!.~._ _ j#V V V C 4.C 4.V >.V V >.C V V V V >.C C 4.C 4.4.V V 4.C C 4.b. ",
-" k#{ / / { { { / ] / / { { { { ^ ] / ^ ] ^ { ] { ] { { { { ] { { _ ^ _ $.l {.7.c.c.c.c.h.D.V.D.D.D.O.X.$+-+'+]+]+2+6+f+f+7+n+s+s+q+s+J+C++@D+S+W+-@X+@@/@=@/@f@s@f@t@s@t@y@E@U@Q@Q@Q@$#$#l#$#`@)#/#/#4#4#4#3#3#7#7#7#f#f#f#m#+ + + + + + + + G+n#G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+;#o#+ + + + + + + + + + + + + + + + H@/@f@f@=@/@=@@@S+*@D+D+D+D+s+s+r+n+7+7+f+g+7+]+'+-+'+-+$+X.X.D.D.x.w.i.w.h.r.c.2.{.{.!._ %.F.^.>.4.4.4.C >.4.4.C 4.C >.C C C C C V >.V C >.>.C 4.V 4.C C V p# ",
-" # ] { ] / ] { { ^ ] { ] { ] ] { { { ] { ^ ] ] { ] ] { / ^ { ^ _ _ _ %.$.!.!.l.c.c.h.h.v.i.D.D.O.X.X..+-+-+'+:+]+2+g+2+7+7+7+s+s+s+C+D+C+D+X+W+W+=@=@r@f@^@f@f@q#t@t@t@G@F@Q@Q@Q@r#$#`@W@`@-#`@)#/#)#/#3#4#7#f#s#f#f#f#t#u#+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+v#j@+ + + + + + + + + + + + + + + + -@f@f@|@r@=@W+X+@@W+S+S+C+C+q+s+s+n+n+7+7+<+6+6+]+'+l+'+-+X.X.W.D.x.V.h.h.c.c.c.c.7.!.!.%._ G.4.>.>.C >.>.4.C >.C >.C C V V >.V V V 4.V C V V 4.C V >.>.V w# ",
-" x#] ^ ^ / ] / { ] { ^ ] / { { ^ ] ^ ^ / ^ / / / { ^ { / ^ ^ / ] ^ _ l _ ~.!.!.{.c.j.j.v.h.x.D.O.W.X.X.-+$+-+'+<+<+7+7+7+7+7+q+q+q+C+D+D+D+S+@@@@=@=@=@=@/@^@f@s@s@y@y@t@E@G@F@W@W@$#W@$#)#)#)#/#/#4#4#5#a#3#5#f#f#f#f#y#t#z#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+M++ + + + + + + + + + + + + + + + A#|@f@f@/@/@=@X+=@X+X+D+D+K+K+s+q+r+n+7+7+<+g+]+'+'+-+-+.+X.W.X.O.D.D.V.h.j.2.c.c.7.~.{.l %.K ^.>.C >.V V C V C >.>.C C >.>.>.V 4.C 4.V C C C C >.C V 4.V 4.B# ",
-" C#^ / { { { { { { ^ ^ ] { ] ^ { ^ { { ^ { { { ^ ] ] / { ] { { { ^ _ _ ~.!.%.7.3.c.h.h.i.K.x.D.D.W. +X.$+.+'+'+<+]+]+7+7+7+y+y+q+C+q+C+D+D+S+@@S+=@/@6@^@|@f@|@s@f@s@y@t@E@Q@Q@Q@r#l#`@`@)#-#/#)#D#4#4#a#7#7#f#f#f#y#f#E#y#E#F#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++#+ + + + + + + + + + + + + + + + + t@|@r@^@6@=@=@@@W+@@D+X+D+K+C+s+s+s+y+7+2+g+2+:+:+]+'+-+1+W.D.O.D.x.v.i.i.h.c.2.2.!.{._ _ _ +.4.C V C C 4.4.>.>.>.C >.C >.>.>.>.>.V V >.V V V C V V C C V C G# ",
-" #./ { ^ ] { ^ ] { ^ / ^ ] { / ^ { { ^ { ^ { { ^ ] ] { { ^ ^ { ^ _ _ !.l {.{.!.c.2.j.j.w.h.i.D.D.D..+X.1+-+m+]+<+6+6+g+7+7+q+y+q+s+C+D+D+W+@@@@@@=@=@=@^@f@|@t@t@s@y@t@Q@M@Q@W@H#W@`@6#`@)#/#/#}#4#3#5#7#f#7#f#f#I#E#u#I#J#u#K#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + L#s@|@|@|@f@=@=@W+@@S+D+D+D+C+q+q+y+r+7+n+7+g+<+:+'+-+'+1+-+.+ +D.D.D.x.h.i.c.2.{.2.{.!.!._ u+C >.4.V V C >.4.C C C V C V V C V >.V >.V V C V C V C 4.C V >.,. ",
-" M#] { ] / { ] { ^ { { / / { ] ^ { ^ { { ] { ] { ] { { ^ ] ] { ^ ^ _ l !.l !.c.2.c.c.h.i.w.D.i.D..+{+X.-+'+'+m+]+]+]+2+7+y+x+r+s+s+Q+C+S+X+S+S+=@@@=@=@6@f@f@|@s@t@E@U@G@Q@Q@Q@r#W@W@$#`@`@)#4#D#4#3#3#f#3#f#y#t#y#y#u#E#N#u#O#P#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + |#t@g@f@/@f@|@=@=@=@W+X+X+D+D+s+s+s+7+7+7+7+7+2+6+<+'+:+-+.+.+X.X.W.D.i.x.i.c.c.c.c.2.{.$._ ] ^.>.B V >.4.4.>.V C V >.V C C C C 4.V 4.>.C 4.V C V C >.4.V C C Q# ",
-" / / ] { ^ ^ / { { { ] ] / ^ / { ^ / { ] { ] { { { / / ] { ^ { ] J _ _ !.{.{.2.2.,@h.h.w.v.D.D.W..+W.-+-+'+-+<+2+6+7+2+7+7+q+q+J+s+D+D+X+W+@@=@x@r@=@=@|@R#R#S#t@F@M@F@F@Q@Q@W@W@)#-#-#`@/#4#4#5#3#7#7#f#f#T#f#E#E#u#N#N#u#U#U#+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + i#f@g@s@f@f@/@V#=@=@W+X+D++@C+Q+C+s+x+s+7+7+6+e+]+]+-+-+-+.+X.X.W.D.D.v.D.w.i.r.c.c.2.{.$.%.j#^.W#C 4.C V >.C C C C C 4.C V 4.V C >.V C >.V C C V V C C >.V C ",
-" P / ] { { { ] { { ] { { ] ^ { ] ^ { ^ / ] ^ ^ ] ] { ^ { { ^ ] =.^ _ _ $._ 7.2.2.c.i.c.i.v.w.D.W.W.X..+-+-+:+<+<+6+2+7+7+y+q+q+q+C+D++@S+S+W+X+=@=@r@7@f@f@s@t@s@y@U@y@Q@Q@Q@Q@H#`@$#)#/#/#/#3#5#7#5#5#f#f#f#y#E#u#u#u#N#N#U#U#X#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~#G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + Y#t@g@f@f@|@=@|@=@=@@@@@W+S+D+D+Z#s+q+o+7+x+e+7+2+<+<+'+-+-+.+X.O.W.D.w.i.K.i.h.c.c.{.{.%._ b ^.B C >.V C C 4.V V C 4.C 4.V V >.V >.C V C V >.>.V >.4.4.>.>.4.W ",
-" `#^ { { { ] / { { { ] { { { ] { ^ ^ ] { ^ ] ] { { ] { { { / ^ / =._ _ %.~.{.!.2.2.c.h.h.x.D.D.W.D.X. +.+'+'+]+]+]+g+<+7+7+n+q+s+C+D+D+S+@@@@-@-@=@r@6@|@R#g@t@y@E@y@F@Q@W@W@`@$#`@`@)#/#)#/#4#3#7#4#7#f#f#y#E#t#u#u#u#U# $.$+$@$#$+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + f@y@g@g@f@^@^@/@=@x@S+@@W++@+@C+s+q+q+r+y+7+7+2+2+<+'+]+'+-+ + +O.D.D.D.w.i.c.h.2.c.2.!.%.~.+.$$$$>.C C C C V V V 4.C >.>.>.C C C C >.V V C C C C 4.V C C C V `# ",
-" %$] { { ] ] ] { { ] { ^ { { ] ] ^ { { / / ] { ] { { / ] / { { ^ J _ _ l {.{.!.{.h.i.i.w.w.w.D.D.P..+X.'+-+'+<+2+7+g+7+7+q+s+s+C+C+D+D+S+X+@@W+=@/@6@|@|@g@f@s@y@E@E@Q@Q@W@l#W@-#`@)#/#4#4#3#4#3#5#f#f#f#T#E#I#E#J#U#U#U#U# $ $&$*$+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+=$=$=$-$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + ;$t@t@s@s@f@r@^@=@>$W+x@@@S+S+C+K+C+s+s+x+7+7+7+f+<+<+-+-+-+.+X.{+D.P.D.i.h.i.r.j.2.!.{.l {.e ^.^.C >.>.>.>.C C C 4.>.C >.V 4.C C 4.C 4.4.4.4.>.C C V >.C V >.,$ ",
-" '$^ ] ] ^ / ^ / { ] ] { ] { ^ ^ ^ { ] ] ] { ^ { ] ] { { ] ] ^ ] ^ _ $.%.l !.2.l.c.h.c.h.D.V.D.D.O..+-+$+-+]+'+b@<+g+7+7+7+r+s+s+s+s+D+S+@@=@@@=@=@/@/@^@|@g@s@t@t@y@U@Q@W@`@$#l#-#)#/#/#/#4#3#3#7#7#f#)$I#y#u#N#N#U#U# $U#!$@$.$~$+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+{$]$-$=$=$=$A@^$=$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + E@t@t@|@f@/@f@=@r@@@S+W+*@S++@D+J+s+q+s+7+7+7+<+]+]+<+-+-+-+$+X.W.D.D.D.i.i.c.c.c.c.!.{.~.] ^.$$>.C V 4.V 4.C V C V C V V 4.V V >.4.>.>.>.C 4.V >.C 4.4.V C V /$ ",
-" ] / ^ ^ / { { { ] / { ] ] / ] ^ { { ^ { ^ ] { ^ { ] { { { / ] ^ _ $.l ~.!.{.l.c.c.h.c.h.w.D.D.D.X.X.X..+-+:+]+]+<+2+7+n+y+s+s+D+D+D+D+X+@@($@@/@r@7@f@f@s@s@t@E@E@Q@Q@$#$#W@-#)#/#/#/#4#3#3#a#7#f#y#f#y#u#E#N#u#U#U#.$+$+$~$~$~$_$+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+:${$<$[$}$:$}$-$[$=$A@=$=$]$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + |$E@y@t@s@f@f@/@=@=@@@X+@@X++@C+D+s+q+y+q+y+7+2+6+]+6+]+-+-+.+.+W. +D.D.h.x.v.h.h.l.{.{.{.%.1$^.$$^.C C C C C >.V V C C C V V 4.>.C 4.C >.4.>.V C >.C 4.C V >.>. ",
-" 2$^ { { ^ ^ { { ] ] ] { ] ^ ] ] / { { ] ] ] ^ { ^ ] ^ / { ] { =.^ _ %.l _ {.{.2.c.c.h.v.D.D.D.W.D.X.$+-+'+-+'+<+]+e+7+y+7+s+q+D+C+e@D+D+X+X+x@@@/@r@/@|@f@t@t@U@t@M@Q@Q@$#W@W@$#)#)#4#3#5#0#3#f#f#f#E#y#u#E#u#O#O#U# $.$~$&$~$~$3$4$+ + + + + + + + + G+G+=$]$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+5$5$<$5$5${$}$:${$[$[$-$=$:$=$=$=$-$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + ;@E@t@t@s@f@g@f@/@^@=@=@X+S+S+S+D+D+s+s+r+q+7+7+e+6+]+'+'+-+.+X.W.X.P.W.D.v.x.i.r.2.c.{.{.{.K ^.^.$$C V >.>.C C >.C >.V C V V >.C C >.C C V C C >.>.>.V >.>.C V 6$ ",
-" =#] { / ^ { ^ / / { ^ { ] { { { { { ] { / / / ] ^ ] { ] ^ ] / { ] ^ _ _ ~.!.7.{.2.h.h.h.w.w.D.W.W.X..+X.-+m+'+6+6+]+2+7+y+s+y+s+Z#C+D+D+S+W+-@r@r@6@|@f@s@t@D@G@F@F@Q@Q@W@$#l#)#`@)#/#4#4#3#3#7#f#f#f#E#u#u#N#U#U#U#U#+$!$~$~$7$3$8$9$+ + + + + + + + + =$G+=$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+0$a$a$a$a$5$a$b$5$5$c$c$5$d$}${$=$:$-$=$=$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + e$E@t@f@t@R#f@r@/@=@=@=@X+S+S+e@C+D+s+q+n+7+7+2+e+<+2+]+'+-+.+.+.+.+X.D.i.v.h.j.c.2.2.{.{.=...^.^.V C C C V C >.>.>.C 4.V V >.C 4.4.V C >.C >.4.C 4.C >.V C 4.4.'# ",
-" f$] { ^ ^ ] { { / ^ ^ ] { { / ] ^ { / ] { ] / ] ] ^ { { ^ ] { ] / _ _ #.{.g${.c.2.h.c.w.w.x.D.W. +W.X.'+-+-+<+6+7+2+7+7+q+q+s+C+C+D++@T@-@X+=@=@|@|@f@t@f@s@t@t@G@Q@W@Q@W@`@-#-#/#/#4#4#7#0#3#f#T#)$E#u#u#J#u#U#U#U#!$~$~$~$3$h$7$3$i$+ + + + + + + + =$=$-$]$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+j$k$k$k$k$a$l$0$a$a$a$a$5$a$5$5$5$<$[$}$A@:$[$-$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + H@Q@E@t@t@s@q#f@/@/@/@@@-@S+W+D+C+D+C+s+n+n+7+7+g+7+<+<+:+'+-+-+.+.+X.D.V.D.w.i.j.c.7.2.{.~.9.^.>.C 4.4.C V >.C C C >.V C 4.V V V >.C >.>.>.C C V V C C V >.>.>.m$ ",
-" n$^ { ] { { ^ { ] { / ] { { { ] ] ] ] ] { { ^ ] { / ] { ] ^ ] ^ { / ^ _ !.%.{.3.c.h.h.h.i.i.D.D.W..+-+-+'+'+]+:+7+2+g+7+q+q+s+C+J+D+S+X+@@@@=@=@r@f@f@f@|@f@t@E@E@E@W@W@Q@$#$#^#)#/#4#5#s#7#7#f#T#y#t#u#O#u#U#U# $@$&$@$~$7$7$_$_$3$o$+ + + + + + + + + [$}${$c$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+p$q$r$s$s$j$p$k$s$a$q$a$l$l$a$a$5$a$5$}$}$}$A@[$-$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G+n#G+G+G++ + + + + + + + + + + + + + + + |@M@M@t@s@s@f@f@f@=@=@@@@@W+D++@C+D+s+s+s+7+7+2+6+2+]+'+]+-+1+$+W.O.W.D.D.w.h.i.h.c.{.{.{.t$^.^.^.4.>.C V C >.4.4.4.C C >.C >.V C V C >.>.C V C V >.V >.>.C C C n$ ",
-" l@{ ^ { / { ^ { ] { { / { { ^ ^ { ] ^ ^ ^ ^ ] ] ] ] { { { ] ^ / / _ _ _ %.{.{.2.2.c.h.h.V.D.D.X. +.+.+'+-+'+]+<+2+2+7+7+7+q+s+C+D+D+S+W+@@-@/@/@/@^@s@g@g@y@t@M@Q@M@W@W@`@-#)#)#D#D#3#4#3#f#f#f#E#E#u#u#O#U# $ $@$!$~$7$~$7$7$3$_$u$.$+ + + + + + + + + {$}$5$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+v$w$w$x$w$p$p$r$w$s$p$s$k$j$k$a$k$a$a$a$b$a$5$}$}$[$}$-$=$=$=$G+G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + y$Q@F@y@t@t@s@g@f@f@=@r@=@@@W+S++@e@s+s+q+q+7+7+7+2+<+<+'+-+$+X.-+X.X.D.D.i.i.c.c.c.2.7.{._ ..a+^.>.C V 4.C C V V C >.C C C C V 4.C C >.C C >.V C 4.V V V C V >.w@ ",
-" z$] ] / ^ ] ^ ] ] { { { ] ] { { { { { ] / ^ { ^ / ^ / { { { ^ ^ ^ / _ l %.{.{.!.c.c.c.c.i.w.D.W.P. +.+.+'+'+:+]+<+7+7+7+n+s+s+s+C+D+D+S+X+@@=@=@/@|@f@f@t@t@t@M@y@W@Q@`@W@$#)#/#/#}#}#4#5#7#7#I#)$u#u#O#O#N#U#U#+$+$~$~$7$~$_$3$3$o$A$B$+ + + + + + + + 5$5$5$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C$C$C$v$C$v$r$w$v$D$E$E$w$w$j$k$j$j$k$k$a$l$a$a$5$c$:$[$[$=$A@=$=$G+G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + Q@Q@F@E@t@f@f@|@|@6@/@=@=@S+W++@C+C+C+s+r+y+n+7+g+7+]+]+'+-+-+X.X. +D.D.w.v.i.h.j.l.2.{.!.G...>.B C C V V C >.C C 4.C C C 4.C >.V >.>.C C V >.C C V >.V C C V 4.z$ ",
-" d@/ ] { { ^ ] { / { { ] { { / ^ { { ] ^ { ] ] { ^ ] ] / ] { ] { { _ _ l %.!.!.{.c.i.v.i.i.x.D.D..+ +-+-+-+]+]+]+<+7+7+y+q+s+s+D+C+C+X+@@W+@@r@/@7@|@f@t@s@t@y@F@Q@W@W@Q@`@-#/#)#/#/#3#4#0#f#f#T#y#u#E#u#U#U#U#+$~$~$~$7$_$3$3$3$F$F$F$G$+ + + + + + + + 5$a$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C$H$C$C$C$C$I$C$C$v$v$v$v$w$D$w$p$E$k$k$j$k$a$a$a$a$5$5${$:$[$=$-$=$G+G+G+G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + J$Q@E@t@t@t@t@f@|@|@/@/@=@-@X+X+X+C+s+s+y+q+y+7+7+<+f+]+]+m+-+X..+.+D.D.D.x.i.h.c.c.2.{.{.K M ^.>.>.V V C >.C C V 4.C 4.C C C V C C 4.C C V >.>.>.C >.V 4.C V C W ",
-" 2#{ ] / / ] { ] { / { { ] { / { ^ / ] ] ] ^ ] ] ^ ] { ] ] ] ] ] { _ _ _ !.{.{.c.c.c.h.i.D.D.D.O.P. +.+.+-+:+<+<+7+2+7+x+y+y+s+J+s++@W+X+W+@@=@6@^@f@f@f@g@t@F@t@Q@W@W@$#`@-#/#)#/#/#4#3#f#f#f#f#E#E#u#O#U#U#U# $&$~$~$7$3$3$A$_$_$A$F$K$L$+ + + + + + + a$a$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+M$N$O$P$H$O$O$O$C$C$C$v$C$v$v$v$v$Q$p$r$q$s$s$q$k$l$a$c$5$d$5$}$:$:$A@R$=$G+G+G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + S$W@Q@U@t@y@t@g@|@|@7@/@=@=@S++@D+D+C+D+C+n+q+7+7+2+<+'+]+:+'+.+X.X. +D.D.w.v.i.h.h.c.2.{.T$[.a+^.B 4.C >.C V V >.C V >.C V C V 4.C C V >.V >.C C C C 4.V C C 4.>.2# ",
-" U$] ] { / ] { / ^ ] ^ { { ] / { / ] { ] ^ { { ^ ] ^ { ^ { ^ { / { { _ _ #.!.2.7.c.c.i.i.V.D.D.{+W.-+.+-+-+-+6+g+<+7+7+o+y+s+q+D+D+S+S+W+@@=@=@6@/@f@|@t@s@y@y@Q@W@W@$#W@$#$#^#4#/#4#7#a#f#y#y#f#u#V$O#N#U#.$@$@$&$7$_$7$3$o$A$F$A$W$W$X$m#+ + + + + + + a$k$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Y$P$M$Z$M$M$M$P$O$M$I$C$C$H$C$C$v$v$v$r$w$r$p$r$k$j$k$a$a$5$a$5$d${$[$:$=$G+]$G+G+G+G+G+G+G++ + + + + + + + + + + + + + + + `$W@Q@E@E@E@t@g@s@|@f@|@=@=@S+W+@@S+C+s+C+s+x+q+7+7+2+6+<+'+]+-+.+.+D.W.D.D.w.i.i.2.c.2.{.{.j#^.^.W#>.W#>.4.V C V V C >.C V C >.>.V C >.V >.>.V V V C C V V >.C >.0. ",
-" { ^ ] ^ { { / ^ / { / ] { ^ / ] ] ] ] { ^ { / { { { / ] / ] ] / J _ _ _ !.!.{.c.2.h.i.v.i.D.X.X. +.+$+$+'+'+]+2+7+2+n+n+s+J+D+D+D+X+@@@@=@=@/@|@|@f@f@s@t@y@y@Q@W@W@l#l#`@)#/#4#/#3#7#7#f#f#E#E#E#U#O#U#.$U#.$~$7$7$3$3$3$A$F$A$F$W$W$ %+ + + + + + + + s$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+.%+%@%+%+%#%+%Y$N$Y$+%O$M$H$C$I$O$C$C$v$v$v$Q$w$v$p$k$q$j$a$a$a$a$5$}$[$:$]$=$=$G+G+G+G+G+G+G++ + + + + + + + + + + + + + + |#Q@Q@Q@Q@y@t@t@g@|@f@^@/@=@@@=@S+S+X+D+s+s+s+s+7+7+7+f+<+]+]+.+.+X.W.W.D.D.w.i.v.h.2.c.7.{.U+O+......^.$$$$$$4.C C C C C V C C V >.C V C >.C >.>.V C C C C C V C >. ",
-" $%{ ^ ^ { { ] { ^ ^ { ] ^ { / ] { { ^ ^ { / / ] ] ] ] { { { ^ { ^ ^ _ !.{.~.!.{.c.c.i.w.w.i.D.D. +.+1+-+'+'+'+2+e+7+7+y+s+r+J+K+D+D++@X+=@@@=@6@|@f@f@s@t@G@F@Q@Q@W@$#`@-#-#/#4#4#3#3#f#7#t#f#E#%%E#N#U# $@$@$~$h$7$3$3$_$&%A$A$K$W$K$ %*%+ + + + + + + s$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+=%@%-%;%@%@%Y$>%Y$Y$#%+%Y$N$Y$Z$M$O$C$C$,%v$v$C$Q$w$r$p$q$k$k$l$a$a$5$[$}${$[$-$=$=$G+G+G+G+G++ + + + + + + + + + + + + + + + l#Q@W@M@M@t@y@t@t@f@f@^@/@=@@@@@X+X+C+C+q+s+s+y+7+7+7+]+<+<+'+'+.+ +.+W.D.D.w.h.h.c.2.{.!.b '%......$$W#$$$$W#C $$>.4.V >.V C 4.V C C V C C C C 4.C V C C V 4.C C )% ",
-" { / { ] ] ] ^ ] { ] ] / ^ ^ { / { ^ { { ] ^ { { { { ^ / ^ ^ { ] ^ _ _ ~.$.{.2.7.c.c.h.w.D.x.D.X.D..+.+'+]+:+]+2+2+7+7+r+q+s+s+C+X+S+S+@@=@=@/@/@f@f@s@t@t@F@M@Q@W@W@)#$#`@)#D#/#7#7#5#f#f#y#E#u#E#U#U#U#!$&$~$~$7$7$_$_$_$A$!%W$F$W$ %X$~%+ + + + + + p$Q$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+{%]%-%{%{%{%-%-%@%@%@%@%.%Y$@%+%+%+%N$O$M$P$C$C$C$C$v$v$w$p$s$j$q$a$a$5$5$c$5$}$[$=$=$=$G+G+G+G++ + + + + + + + + + + + + + + + l#Q@Q@Q@U@E@G@t@f@f@|@r@=@=@@@W+X+X+D+C+J+s+r+r+7+7+7+6+<+:+'+'+-+.+ +W. +x.V.w.h.c.c.{.!.=.^%....../%$$W#W#$$^.W#$$$$C >.C V >.V 4.V C >.C >.>.>.C V V 4.C V V C >. ",
-" b.^ / { { { ] ^ { ] ^ ] / ] ] ] { { { ] { / ^ / { ] ] { ] ] ] ] ] _ _ $.l ~.d+2.c.h.i.i.V.D.D.W..+ +-+.+-+]+<+<+6+7+7+7+n+s+q+K+C++@S+@@X+@@/@/@f@|@f@s@y@M@y@Q@Q@W@$#$#-#/#/#/#4#7#5#f#f#E#u#E#E#O#O#U#.$~$@$7$~$_$_$3$A$_$(%K$ %W$X$ %_%:%+ + + + + + v$v$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+<%]%[%[%}%[%{%-%[%-%-%-%=%@%@%@%|%+%Z$#%+%M$#%I$M$C$C$C$C$Q$w$r$r$q$j$k$a$a$a$}$d$[$-$-$=$-$G+~#G++ + + + + + + + + + + + + + + 1%W@$#Q@Q@y@Q@t@t@f@|@|@|@^@=@=@@@W+S+C+C+C+q+y+o+7+7+]+<+]+]+'+-+-+X.X.W.D.V.i.h.h.r.2.{.2.~ 2%O+..^.B B W#B B ^.^.$$W#W#B V 4.>.C C 4.C V 4.4.4.C C >.V 4.>.C C C b. ",
-" 3%{ / / ] ] / ^ ] { { { ] { { { { ^ { ^ / / ] ] ] { / ^ { { { { { { _ _ !.{.!.2.2.c.i.h.w.D.D.O.W..+-+'+-+:+<+<+2+7+7+y+s+s+C+C+S+X+W+-@W+=@=@|@|@s@t@t@t@y@Q@M@W@Q@W@$#`@)#/#4#4#0#f#f#)$)$y#u#O#U# $@$.$~$~$h$~$3$3$_$A$W$W$K$ %X$X$_%4%5%+ + + + + + v$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+6%6%7%<%}%<%}%8%[%}%}%[%=%-%-%-%@%@%@%@%Y$+%+%+%N$O$O$H$C$C$v$v$w$E$E$q$q$k$a$5$c$d$[${$=$=$G+G+G++ + + + + + + + + + + + + + + 9%`@W@Q@Q@F@E@y@t@f@R#|@r@r@=@=@x@W+D+D+D+C+s+q+n+y+7+e+2+<+:+:+-+-+.+X.O.D.D.V.h.h.r.r.2.{.K M ..../%^.W#W#W#W#B B W#W#W#B $$C 4.>.4.V >.4.V C C V >.4.4.V C C V 4.0% ",
-" 2#] { ] { ] { { { { ] { { { { / ^ ] ^ ] { ^ { { { ^ ^ ] { ] ^ ] ^ =._ _ !.#.{.2.c.C.c.h.h.w.D.P.D.X.X.-+'+)+6+2+f+e+n+r+x+s+K+D+D+S++@@@W+=@r@|@=@f@s@s@t@E@Q@a%Q@Q@l#$#)#/#/#4#3#5#0#f#f#y#E#E#E#b% $@$.$~$~$~$7$3$A$A$A$F$W$!%W$c%X$_%4%_%d%+ + + + + C$M$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+e%7%f%g%6%e%7%f%8%8%6%f%8%[%]%-%}%-%=%h%@%@%@%+%Y$#%P$N$O$C$C$v$v$v$w$r$k$j$s$l$a$a$}$:${$]$=$G+n#+ + + + + + + + + + + + + + + L$$#$#Q@W@M@y@E@t@t@g@q#/@|@=@@@X+X+S+S+D+D+s+J+n+y+7+e+f+<+'+'+'+-+$+W.X.{+V.D.v.i.c.2.c.l.i%,#,#......^.^.W#W#$$$$$$W#W#^.^.W#$$C >.C C 4.4.>.C >.C V V >.>.4.C V C j% ",
-" a / { { { / { ] / ^ { { ] ] / ^ ] ] { { { ] { { ] ] ^ { { ] ] { J ^ _ _ %.{.{.2.c.h.h.h.v.D.D.D.W.-+.+'+:+]+<+6+6+7+n+q+s+C+K+C+D+D+D+@@@@=@/@|@f@|@s@t@y@F@M@W@Q@W@$#`@/#)#3#4#5#3#f#f#t#u#u#E#O#U# $~$.$~$~$_$_$A$A$A$W$F$F$K$X$X$_%k%4%4%l%+ + + + + H$M$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+m%n%e%m%e%m%e%e%7%e%e%e%f%8%<%]%}%[%]%o%=%-%-%@%@%+%@%#%N$Z$O$I$C$H$v$v$w$r$p$k$j$a$a$5$<$[$}$}$]$=$+ + + + + + + + + + + + + + + ;@)#$#r#l#Q@Q@t@E@y@L@s@f@|@r@@@x@@@W+S+D+C+D+q+r+y+7+7+g+]+6+]+'+-+-+X.X.D.D.D.i.i.c.c.2.l.{.2%^%..p%..^.B $$B $$^.^.$$B $$W#$$^.W#C V C >.C >.>.V >.C >.C >.>.4.>.C q% ",
-" ] ^ ^ { / ^ ] ] { ^ { ] { { ^ { { ^ { / { { { / ] { / ^ ^ ] ] { ^ _ _ l {.!.l.2.h.r.i.K.V.D.D.O..+X.-+-+:+]+]+7+6+x+n+q+q+C+D+D+X+S+S+W+=@^@7@f@f@g@t@y@t@Q@W@W@W@W@`@^#)#)#/#7#7#0#f#y#y#u#u#O#U#U#U#!$7$~$~$7$_$A$A$F$F$W$W$ %X$X$4%4%r%r%s%+ + + + + O$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+m%t%m%m%m%m%n%m%e%e%e%e%g%e%g%7%7%6%8%f%]%[%-%<%@%-%@%@%+%#%#%+%N$N$C$C$x$D$v$E$w$k$a$l$a$u%c$[$=$]$+ + + + + + + + + + + + + + + + -#$#`@Q@Q@Q@y@F@y@t@s@g@f@7@r@V#X+=@S++@D+K+s+q+q+y+7+7+2+]+]+]+-+$+X.X.X.D.D.h.w.c.h.c.2.!.M.2%....v%^.$$$$B W#$$W#^.W#$$^.W#W#$$$$V >.C C C V C C V V 4.>.4.>.4.C C ",
-" w%] { ^ { ^ { ^ ] ^ / ^ / { { { { ] ] { ] ] ^ ] { { { ^ ] ^ { { =.^ _ _ %.%.{.c.2.2.r.x%i.w.D.D.X..+.+-+'+Z+'+6+<+7+7+r+y+q+K+C+S+X+W+@@=@=@=@/@f@t@s@t@t@Q@Q@W@Q@l#$#`@^#4#4#/#4#7#7#T#I#E#N#u#u#U#U#+$&$~$y%7$z%_$F$A$F$!%X$X$_%_%A%A%r%r%B%+ + + + + + #%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C%D%D%E%F%G%m%H%m%m%m%m%n%e%e%e%e%e%7%8%7%6%[%]%=%]%-%@%@%@%#%Y$M$M$N$C$I$v$v$p$w$r$w$k$a$5$a$}$c$A@:$+ + + + + + + + + + + + + + + a%$#$#$#Q@W@E@Q@t@L@s@g@f@/@|@>$=@@@X+D+S+C+s+q+s+n+n+7+7+f+'+m+-+-+-+X.W.D.D.D.v.h.j.c.c.{.U+'%....p%..W#W#$$^.B W#$$^.W#$$W#$$^.$$^.B >.C V C C C >.C C >.>.C C 4.4.I% ",
-" J%^ { ] ^ { { / ] { ^ { / { ^ / { { ] ] { ] ^ ^ { ] { ] { { ^ ] ^ ^ _ %.$.#.{.c.2.2.h.h.w.D.D.O.W. +.+'+:+:+b@e+2+7+x+r+y+J+C+C+D++@@@x@=@=@=@|@f@t@f@t@F@F@Q@W@$#W@)#-#D#)#4#3#7#f#y#I#I#u#N#U#U#@$.$ $~$~$3$_$A$_$F$F$W$X$X$X$X$4%K%K%r%L%r%+ + + + + |%@%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C%M%G%N%F%M%O%G%F%G%E%E%E%m%E%H%m%e%e%e%e%e%7%6%8%<%[%[%{%-%@%@%@%+%+%M$M$O$H$C$v$v$E$w$j$s$0$a$5$<$:$:$+ + + + + + + + + + + + + + + P%/#-#$#$#Q@W@F@y@t@t@f@f@f@7@=@@@x@@@W+D++@C+q+s+n+o+7+2+2+]+'+'+'+.+-+D.X.D.D.i.w.i.c.2.!.] ,#......^.v%^.^.^.$$^.$$$$^.B $$W#B ^.$$B V C C >.4.C 4.>.4.C V V >.C 4.Q% ",
-" { ] / ^ ] { / ^ ] ^ { { ^ / { ] ^ { / / ] { ] ^ ^ ] { { ] ^ ] ^ ^ / ^ ~.l !.2.c.c.c.h.i.D.D.D.O..+X.$+-+]+2+]+6+e+7+x+q+q+q+D++@+@D+@@=@=@=@^@/@f@t@t@t@F@Q@W@W@$#l#`@)#/#4#5#0#f#f#T#y#E#O#E#U#U# $&$@$~$7$3$_$A$A$W$F$!%K$X$_%_%4%r%r%r%R%S%+ + + + + .%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+C%T%C%T%T%C%T%M%N%O%C%N%F%D%F%E%m%m%H%n%e%e%e%7%f%6%f%6%{%{%-%-%@%@%+%@%+%Y$M$I$C$v$v$r$r$E$s$k$0$a$5$}$+ + + + + + + + + + + + + + + U%^#$#6#W@W@Q@Q@E@t@s@s@f@^@=@=@=@=@@@S+S++@C+C+q+s+y+7+<+2+<+]+'+-+X..+O.W.W.x.D.v.h.h.C.c._ '%'%2%..^.B B ^.$$W#^.W#$$$$W#^.W#$$$$W#W#B ^.V >.C V C 4.4.4.V C V V C V ",
-" [+{ ^ ] { ^ / ^ { { ^ ] ^ ] ^ ] ^ { ] ^ / { { ^ ^ ^ / / { ^ / ] { / ^ _ !.!.7.{.2.c.c.i.i.h.D.W.X..+-+$+)+]+]+2+]+2+n+y+s+J+C+C++@T@@@W+=@=@6@f@f@s@s@t@E@M@E@V%$#W@-#)#/#W%5#3#7#f#f#y#I#N#U#O#U#.$&$~$~$~$3$A$A$F$F$F$F$X$_%X$4%k%4%r%r%r%X%Y%+ + + + + {%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+T%Z%`% &T%T%T%T%T%T%T%T%C%O%O%F%G%D%G%G%E%m%m%e%e%e%7%7%7%7%<%[%-%h%-%@%@%+%P$P$N$C$v$v$v$w$r$s$j$a$a$5$+ + + + + + + + + + + + + + + Y#)#.&)#`@W@r#Q@F@F@E@t@s@f@|@/@=@@@=@W++@D+C+D+s+q+n+x+7+g+<+]+:+-+-+.+X.X.W.D.x.D.h.h.c.2.7.+&..2%..../%$$$$^.W#$$W#W#W#W#W#$$$$$$W#W#$$B 4.C >.4.V C V 4.C C C V C V [+ ",
-" w+^ { { { ] / ] / ^ ] { ] ] ] ] ^ ] ] { / { { ^ / ] ^ ^ ] ^ { { ^ J ^ _ !.{.!.2.2.2.i.i.v.w.D.{+X.X..+'+'+]+]+7+e+7+7+y+s+s+C+D+D+@@@@=@@@/@^@|@f@R#s@t@t@Q@Q@`@$#6#`@-#/#W%}#3#5#f#y#I#E#O#U#N#U# $~$@$h$3$3$3$u$F$F$F$X$X$X$_%A%4%A%r%r%@&#&$&+ + + + + [%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+%&&&`% &*&`%`%`%`%Z%`%=&T%-&C%T%O%D%F%C%E%E%m%t%m%n%e%e%e%7%8%<%o%{%-%-%@%@%Z$O$N$N$H$I$v$x$w$w$E$k$s$5$5$+ + + + + + + + + + + + + + h@/#)#-#`@$#Q@W@y@F@t@t@t@f@f@/@=@=@@@X+D+S+C+C+s+s+s+7+7+7+]+'+'+'+-+1+X.W. +D.D.w.i.h.h.2.2.U+'%2%......B W#$$$$$$$$^.$$W#W#^.$$^.^.W#^.^.$$$$4.4.V V >.4.>.>.>.C V C m$ ",
-" ] { { / ] { { { { { ^ / { ] { ] { { / ^ ^ { / / ^ / / ^ { ^ { ] ] =._ $.%.!.{.{.c.i.h.D.x.D.P.W.W..+X.'+)+'+]+2+7+n+n+s+q+C+C+D+S+*@@@=@=@/@f@f@f@t@t@E@U@W@Q@$#`@`@-#)#/#4#5#7#f#y#u#E#u#N#U#U# $&$@$~$h$_$A$_$F$F$!% %X$X$_%;&K%K%r%B%B%>&,&'&+ + + + <%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+)&%&)&!&%&&&%&&& &~&*&*&`%`%T%T%T%C%C%C%M%M%F%G%m%n%n%e%e%7%7%6%[%}%<%<%-%@%@%|%Y$+%H$O$I$v$v$p$q$s$q$k$a$+ + + + + + + + + + + + + + + /#/#`@-#`@W@Q@Q@y@t@t@t@f@f@^@r@/@=@X+W++@+@K+q+q+y+o+7+7+f+]+]+]+-+$+.+.+.+D.D.w.i.i.h.c.{.{&]&+.......$$$$$$^.W#W#^.$$^.W#W#W#^.B $$$$^.^.B ^.V C >.C V C V >.>.C >.>. ",
-" ^&^ ^ { { { { ] / ] { ] { { / ] / { { { / { { ] ] { ] / ^ ] ] { { _ / _ %.l {.c.2.r.h.h.v.w.D.W.X.X..+-+-+<+:+2+2+7+7+n+q+s+D+D+C+W+X+x@=@=@|@f@|@f@f@t@U@U@W@l#`@`@)#)#/#3#3#a#a#f#y#T#y#u#U#U# $!$~$~$7$8$_$_$_$F$F$/&*%X$X$4%A%4%r%r%@&,&,&(&*$+ + + + 8%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+_&_&&&_&_&&&&&)&)&&&%&%&)&*&~&~&T%T%T%T%C%M%M%F%G%G%m%m%:&m%e%g%f%7%}%[%{%{%-%@%|%#%N$M$I$C$C$v$w$p$r$l$k$+ + + + + + + + + + + + + + + 4$4#-#/#6#$#W@Q@F@E@y@t@g@f@f@=@=@=@-@@@D++@+@D+C+s+q+7+7+7+]+]+]+:+.+.+ +O.W.D.V.h.i.h.c.c.` 1$<&'%..^.$$^.^.W#W#W#$$W#^.B ^.^.W#$$$$$$$$B B C C >.V 4.C V V C C C V C %@ ",
-" [&/ { { ^ ^ { ^ ^ { { { ] ^ ^ { ^ { ^ { { ] / { { ] { { ] { { / { ^ _ _ _ !.2.{.c.j.h.i.x.w.D.D..+X..+-+]+:+'+]+7+7+x+s+q+q+s+D+D++@X+@@=@=@6@/@f@s@y@F@F@F@W@l#l#-#)#/#/#4#7#3#f#f#E#E#u#u#U#U#U#@$~$7$3$8$_$A$!%F$K$ %X$4%4%_%A%B%B%B%R%X%,&}&s%+ + + <%7%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+|&_&|&|&|&1&_&_&2&3&&&!&!&&&)&`%!&`%Z%T%`%T%T%T%C%N%M%H%t%m%m%e%e%e%6%f%[%[%o%-%@%+%>%+%O$O$C$v$v$v$r$q$k$+ + + + + + + + + + + + + + + b#/#)#)#$#`@`@Q@M@y@t@t@s@f@f@|@/@=@@@@@X+D+C+D+C+q+n+y+7+6+6+]+:+]+-+1+X.O.O.D.D.h.i.c.i.c.!.]&2%M ......^.$$$$$$B $$W#B W#^.W#B W#W#$$W#$$$$W#C C >.>.V V C C C >.>.V 4& ",
-" f ^ { / { ^ / { ^ ^ / { ] { { ^ ^ / ^ ] { / { ] ^ ] / ] { ^ ] ] / ^ _ $.l !.{.2.2.h.h.i.i.D.W.O.X.-+l+-+'+'+<+2+g+7+y+s+s+s+D+D+S+X+@@=@=@=@^@f@g@t@t@t@F@Q@Q@$#$#-#-#/#4#3#3#f#f#u#)$u#u#N#U# $~$&$~$3$_$z%_$A$F$!%W$X$_%X$4%_%A%r%@&B%,&@&5&}&+ + + + e%8%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+6&7&|&|&|&|&|&|&|&_&|&|&_&2&&&8&3&&&%&`% &`%`%`%=&C%O%M%G%G%m%n%m%m%e%7%7%7%[%}%-%-%@%@%@%#%+%O$H$v$v$p$w$r$+ + + + + + + + + + + + + + + y$/#/#$#`@$#W@W@Q@U@y@t@f@g@|@f@r@=@=@X+S+S+C+C+C+s+n+q+7+2+g+<+6+]+'+X..+W. +W.D.w.i.h.h.c.{.+&1$1$2%2%....$$p%W#^.$$$$W#$$W#^.W#^.^.W#$$B ^.^.W#V C C V >.C V C 4.C C `+ ",
-" { ^ / { { ] { / { ] { { { ] / ] { / / / ] / ] ^ ^ ] ] / ^ ^ { { { / _ _ !.{.l.{.2.i.h.x.x.w.D..+.+-+'+-+:+]+7+<+7+r+s+q+s+D+D+9&X+X+@@=@=@7@f@s@s@S#t@y@Q@Q@l#`@`@`@^#4#3#4#7#f#f#T#)$E#O#U#U#&$&$~$~$~$3$_$F$F$W$0&a&X$_%4%r%A%r%r%@&R%,&5&}&b&+ + + + g%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+c&d&d&e&f&c&6&c&c&|&c&c&g&|&|&|&_&_&!&&&_&!&)&`%`%T%T%T%T%C%C%C%E%G%m%e%e%e%7%8%7%]%=%-%-%@%#%Z$P$O$O$C$Q$r$w$j$+ + + + + + + + + + + + + + h&}#4#)#`@$#r#W@F@Q@y@F@s@f@s@|@/@/@=@@@@@T@D+D+C+C+q+q+x+7+2+2+]+'+]+.+-+X.D.D.x.x.x.c.c.2.c.t$1$2%2%2%......v%^.B W#$$$$$$B $$$$$$^.$$W#^.$$$$W#W#C V 4.4.C >.V C V C C ",
-" F ^ ^ { ] { ^ { ] { ^ { { ] ^ { / ] ] / { { ] ] / ] { ] { { ] ^ ^ / ^ _ _ ~.{.l.2.2.h.h.h.D.D.W.P..+-+1+'+'+<+2+2+7+n+q+s+C+D+C+D+X+@@=@V#6@f@/@f@t@t@G@t@a%W@`@-#)#-#/#}#3#3#3#f#E#)$E#u#O#U#U#@$@$~$7$7$8$A$A$F$W$K$ %_%4%4%r%r%r%@&@&X%(&,&}&i&+ + + e%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+j&j&f&j&e&f&j&6&6&7&6&7&7&|&|&g&|&|&|&2&_&)&8&_&~&%&`%*&T%T%C%C%F%O%F%m%n%m%e%8%7%8%[%-%o%-%|%+%#%P$O$O$C$v$x$r$+ + + + + + + + + + + + + + + 4#D#/#)#`@W@W@Q@E@t@t@t@t@f@f@7@^@/@=@X+S++@S+D+C+s+q+n+7+2+g+<+]+'+$+-+$+X.O.P.w.x.i.h.2.7.b 1$^%'%2%2%/%v%....^.B W#B B ^.B $$$$W#$$^.B ^.W#$$$$V >.>.>.C >.>.V V 4.4.Y ",
-" : / ^ { ] / / ] ^ ] { ] ] / ^ / ^ { { ^ { { ^ { { { ] ] { ^ ^ { ] _ J $.%.{.!.{.c.c.h.i.v.V.D.D.X..+|+-+<+'+2+6+<+x+y+q+q+s+C+D+D+W+X+=@=@^@^@s@s@s@t@E@E@Q@W@W@`@-#/#)#/#5#3#0#f#f#u#u#O#u#U#!$&$~$~$7$_$3$A$!%K$ %X$X$_%_%4%A%r%B%R%B%,&X%}&}&k&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+l&l&l&l&l&l&m&f&j&j&l&n&f&e&e&n&6&7&|&c&|&|&_&_&&&&&)&)&*&`%`%T%T%C%C%C%D%G%m%n%e%e%8%<%<%o%-%@%@%.%+%M$O$O$C$D$w$+ + + + + + + + + + + + + + + 7#/#/#/#$#l#$#Q@Q@F@F@y@t@g@f@|@^@/@=@=@W+S+C+C+C+q+q+n+7+6+g+6+'+'+-+.+-+X.X.D.x.K.i.h.j.c.] 1$1$o&2%2%2%../%p%/%$$$$$$W#^.$$$$^.W#^.W#$$$$$$^.^.V V C >.4.V C >.V C 4.K@ ",
-" S ] / { { { { / { { { ] / ] { ^ ] ^ ^ { { ^ { { { ] { ] ^ ] { ^ / ^ _ _ %.%.2.2.2.c.h.v.D.D.D.D.X.$+.+-+]+'+]+2+7+7+n+y+s+K+e@+@+@W+x@=@/@/@|@s@t@f@t@G@F@Q@$#$#`@-#)#/#4#3#f#f#)$E#u#O#U#U# $U#&$~$7$_$_$A$F$F$!%W$X$X$_%4%r%A%r%B%X%}&}&}&}&p&q&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+l&l&r&r&r&s&r&r&l&l&t&l&t&n&j&j&e&j&7&d&c&c&|&g&_&_&_&&&&&%&)&`%T%T%C%C%M%F%E%E%m%e%7%8%8%8%<%{%@%@%@%Z$Y$N$C$C$Q$+ + + + + + + + + + + + + + + u&4#/#)#$#v&`@W@W@Q@M@t@L@f@f@f@/@6@=@@@W+S+D++@C+q+s+n+7+2+7+g+<+)+-+.+.+.+O.D.D.D.x.h.i.c.%.1$<&'%o&2%../%/%p%/%p%p%^.$$$$$$$$$$$$^.^.^.W#$$$$$$W#>.V C >.>.V V C 4.C D ",
-" { ] { ^ / { / ] ] ^ / ] ] ^ ^ ] ^ { ] ] { ] { / ] { ^ { { / ] ^ { ^ _ #.!.!.2.3.c.j.c.w.D.w. +X.X.1+-+-+<+]+<+6+7+n+n+s+q+J+D+D+W+X+W+@@/@|@f@f@g@t@E@y@F@Q@W@$#`@)#/#4#4#4#7#f#)$I#E#u#U#U#.$@$~$~$_$_$o$_$F$F$F$X$X$_%_%4%4%r%B%,&X%}&}&}&}&w&x&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+y&z&z&r&z&z&s&s&z&r&l&r&l&r&l&m&t&j&j&e&j&6&c&c&|&|&_&|&2&&&!&`%%&`%Z%C%C%C%G%E%n%n%m%e%e%7%}%]%=%-%@%@%+%N$O$C$v$+ + + + + + + + + + + + + + + #$4#4#/#)#)#$#`@W@Q@E@t@y@t@g@|@|@=@=@=@=@X++@C+D+q+s+q+x+7+7+7+]+m+-+X..+X.X.O.D.i.i.h.c.C.%.]&<&<&2%2%2%/%/%/%v%....p%$$B W#W#$$$$^.^.W#^.^.$$^.$$$$C 4.V C 4.>.C C V C ",
-" A&] / ^ ] ^ ] { { ] { / { { ] / ] { ] { ] ^ ^ ] / / / ] { ] ] ^ { ] _ _ l _ {.2.{.C.h.j.i.w.D.W.O.X..+-+'+]+<+7+g+7+y+q+s+C+D+D+X+D+X+=@=@^@/@g@f@f@t@t@Q@W@W@W@l#)#)#4#/#4#f#f#f#I#)$V$O#U#.$@$@$~$~$_$3$A$_$F$K$X$ %_%_%_%r%r%B%X%,&B&(&}&}&C&p&D&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+y&E&F&G&F&z&y&H&z&z&y&z&s&r&I&r&r&r&f&j&j&j&j&6&c&c&c&|&J&|&!&_&%&&&T%T%T%M%C%E%D%F%m%e%e%e%8%8%[%[%h%@%+%Y$O$N$C$+ + + + + + + + + + + + + + + K&3#/#/#)#-#`@H#`@Q@Q@Q@t@t@f@|@|@/@=@W+x@W+D+D+D+C+s+s+r+7+2+6+]+'+'+'+.+.+.+W.O.x.i.i.i.c.2.L&<&o&2%2%/%/%../%/%..v%p%^.^.^.$$B $$$$B W#W#^.W#W#W#^.C C >.4.4.C C C >.C M& ",
-" [&{ { { ] ^ / / ] ] ^ ^ ^ ^ { / / ] { { { { ] ] / ] { { { / { ] ^ { ^ %.l {.{.7.2.c.c.i.h.D.O.D. +X.-+.+:+]+g+2+7+7+y+q+q+C+D+S+*@W+@@=@^@6@f@f@t@t@M@F@F@Q@W@W@-#`@4#}#3#4#7#f#y#E#E#N#N#U#U#@$&$7$7$3$3$A$F$!%/&K$X$_%A%r%r%r%B%B%@&N&}&w&b&p&p&O&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+P&P&G&Q&P&F&P&F&P&G&F&R&y&z&H&z&z&r&S&l&r&l&f&l&f&e&c&c&c&c&|&_&3&)&&&!&~&`%T%T%C%G%F%G%m%e%e%7%8%6%<%-%-%@%@%Z$N$I$C$+ + + + + + + + + + + + + + T&3#3#4#D#)#)#$#Q@W@Q@M@F@t@g@g@|@=@=@@@=@X++@D+C+C+s+r+q+r+2+]+6+]+:+-+1+.+.+O.P.x.D.i.i.j.2.U+]&]&]&o&2%U&/%/%../%/%..$$B B ^.^.^.B ^.$$$$^.B $$W#$$$$V V 4.V >.C >.C V V& ",
-" _ ] { / / { { { { ] { { / { / / ] { ] ] { / ] ^ ] ] ^ { { { { ^ ^ ^ _ _ #.%.2.2.2.i.c.w.x.x.D.X. +$+-+'+-+2+]+2+7+7+q+s+C+C+D+S+S+W+@@@@=@|@|@f@s@y@E@Q@M@Q@W@W@`@-#)#/#3#0#7#f#E#E#E#U#O# $!$~$~$7$3$_$o$A$F$F$X$c%X$_%A%A%r%@&B%B&,&}&}&W&X&p&Y&+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Z&Z&Z&Z&Z&P&Z&R&Z&G&Z&P&P&F&R&F&F&z&r&r&s&S&l&l&t&l&j&f&n&|&|&|&|&3&_&%&&&`%`%T%T%C%F%C%m%m%m%e%e%7%[%<%{%-%@%#%+%Y$H$+ + + + + + + + + + + + + + + 4#3#4#/#)#`@W@Q@W@M@Q@t@t@t@f@f@f@|@r@X+X+X+D+C+C+Z#s+r+7+7+7+]+]+'+-+-+-+X.W.D.D.v.i.c.2.c.U+1$<&1$2%2%2%/%../%p%v%../%$$$$W#$$$$^.W#$$W#$$$$^.B $$V C V 4.C >.C 4.C 4.B ",
-" { ^ / { ] ] { { ^ ] { { ] ^ ^ ] ^ { ^ ^ { ] { ^ ] { { { / / { / ] ^ ^ _ _ {.!.l.c.h.h.h.w.D.D.O..+-+.+'+'+'+<+2+7+n+o+s+J+s++@S+W+X+@@=@^@^@f@s@t@t@t@Q@M@$#$#v&`@-#D#3#4#7#f#f#t#E#O#U#U#.$!$@$~$h$7$_$u$!%K$ %X$X$_%k%r%r%r%`&B&@&,&}&b&}&p&p&p&+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+ * * * * * *Z&Z&Z& *Z&Z&Z&.*Z&P&G&H&H&z&E&z&s&r&l&l&l&t&n&d&f&|&g&|&_&_&2&%&~& &=&T%C%F%D%E%n%m%e%7%f%]%[%=%@%@%@%N$M$+ + + + + + + + + + + + + + + 7#5#4#)#/#/#`@W@Q@F@Q@t@t@t@R#|@^@/@=@@@@@S+D+C+D+C+s+q+n+7+g+f+'+]+'+'+.+.+W.D.D.w.w.h.c.2.( +*o&o&^%2%2%/%/%..v%v%p%../%W#$$$$^.^.B W#W#$$$$B W#B $$4.V >.C C C C 4.4.C ",
-" @*] / ] { { ^ ^ ] ] ^ { { { ] / { { ^ ] ^ ] / ] { { / { { ^ / { ] { ^ _ $.{.{.{.{.2.h.j.x.w.D.O..+X.-+-+m+<+]+2+2+7+x+q+q+s+K+D+S+T@W+@@=@/@/@f@g@t@y@M@Q@Q@l#l#-#-#)#)#4#5#a#f#)$E#I#u#U# $U#~$~$7$8$7$o$u$F$W$X$X$_%_%A%K%r%@&B%@&,&B&}&C&p&p&p&W$+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+#*$*%*%*&*%*$*#*$* * * *$* * *Z&Z&Z&P&P&R&R&R&H&r&r&r&l&l&j&j&7&n&c&**|&_&_&2&%&*&`%T%T%C%O%O%E%m%t%e%e%8%}%{%{%-%@%Y$Y$+ + + + + + + + + + + + + + + =*3#4#/#/#-#)#$#l#Q@F@U@y@g@f@f@f@r@=@=@S+X+@@S+D+Z#s+q+q+7+2+2+6+]+'+-+-+X.O.O.D.i.h.i.i.r.=.-*]&]&2%2%..../%/%..v%p%/%..$$B ^.$$B ^.^.W#W#^.^.$$$$B C C C V C C C C C 4.;* ",
-" >*^ ] { { { ^ ] { / ^ { ^ ] ] { ^ ] { ^ ] { { ] { ^ { ] / { { ] ^ _ _ _ ~.%.{.2.2.c.j.i.h.D.P.X.W.,*.+'+]+'+<+6+7+r+y+s+q+s+D+D+D+X+x@=@=@f@f@g@g@y@F@U@F@Q@$#W@$#)#/#3#'*4#5#f#f#u#E#u#U# $.$!$~$7$8$3$A$A$W$!%W$_%X$_%r%r%r%B%B&@&}&,&}&C&b&p&Y&)*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+%*!*#*&*%*%*~*%*&*~*#*&*~*&* *$* * *.*Z&.*P&z&P&z&s&z&r&s&r&l&e&j&f&7&6&|&_&_&!&&&)&~&T%T%{*C%G%G%m%m%e%7%f%<%[%-%@%@%Y$]*+ + + + + + + + + + + + + + ^*3#4#/#)#)#-#$#$#Q@E@E@E@t@f@|@f@r@/@=@@@@@X+D+D+C+q+y+7+n+7+]+]+]+m+-+-+X.W.D.O.x.w.i.h.h./*+*-*]&'%2%U&U&/%/%....p%v%v%B $$$$^.$$^.$$^.$$W#$$^.^.$$V >.C 4.V >.4.>.4.V (* ",
-" _*{ ] ] { ] { ^ ] { ] / { / ^ { ^ ] { { ] ^ { { ] { ^ { ^ { { ^ { / ^ _ l {.{.2.c.c.c.i.w.v.D.W.X.-+-+'+'+]+]+<+7+7+7+y+C+C+D+e@X+W+@@=@=@/@|@f@t@t@y@E@F@W@$#$#$#)#/#4#4#3#0#y#f#t#u#U#U#@$U#@$~$h$y%o$u$F$W$W$X$c%4%_%A%A%B%B%X%X%}&b&p&w&p&:*<*[*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+}*}*!*}*|*|*1*|*%*1*!*%*#*#*$* *2* * *3*Z&Z&Z&Q&G&F&R&z&s&s&r&r&j&e&j&n&c&c&|&|&&&&&!&`%T%T%C%C%G%H%m%m%e%7%7%<%-%-%@%+%4*+ + + + + + + + + + + + + + 5*f#5#4#4#)#)#$#W@Q@F@E@t@y@f@s@f@=@/@=@@@X+W+D+D+D+C+r+o+7+7+7+2+]+'+-+.+.+.+O.D.V.x.i.c.c.!.+*1$1$<&'%2%....../%/%../%v%p%..$$^.$$B ^.W#W#^.W#$$B B W#V >.C 4.C V V C C 6* ",
-" P { { { { ] { ^ / / ^ { { { { { / / { ] { ] ^ ^ ] ] ^ ^ / { ] { { J { _ {.!.{.2.2.c.c.h.D.D.O.X.X.-+.+'+)+:+<+7+7+7+q+s+s+K+D+D+@@=@=@=@=@|@f@|@g@t@G@F@Q@W@$#$#`@)#/#/#4#a#f#)$u#I#J#U#U# $+$~$~$7$3$3$&%W$W$W$X$X$_%K%r%r%B%@&X%5&}&}&X&C&p&:*Y&x&+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+7*}*7*7*7*7*7*7*}*7*|*|*}*1*!*%*%*~*2*&*#* * * *Z&.*Q&R&F&G&y&r&l&l&l&e&f&c&c&|&|&|&&&2& &*&`%T%C%C%G%H%t%m%e%e%6%[%{%-%@%8*+ + + + + + + + + + + + + + ;@3#5#3#/#)#`@$#V%r#Q@Q@t@t@s@g@f@=@=@=@=@x@D+S+D+D+J+s+s+7+7+2+]+<+'+-+-+.+.+X.O.D.D.v.i.r.c.+&]&1$2%2%..2%../%/%v%..p%..v%W#W#$$W#^.W#$$W#$$^.B $$$$$$$$V C C V V C C >.W ",
-" ] { ^ ] { { { { { { { { / ^ { / ] { { { { { ^ ^ ] ^ { { ] ] ^ / { / _ $.%.!.{.{.2.i.h.i.K.D.O.X.X.X.-+-+]+<+6+7+7+x+y+q+C+s++@D+W+@@@@=@r@/@f@9*s@y@F@F@W@$#W@)#^#/#4#4#7#0#y#E#I#u#u#O#U#~$~$~$7$7$8$o$A$F$K$ %X$_%4%r%r%K%B%X%@&X%0*W&b&w&p&<*Y&a*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+b*c*b*d*e*b*f*b*b*b*g*7*7*7*7*7*}*}*1*~*%* * * * * *Z&P&Q&P&z&H&s&r&r&l&l&j&n&c&h*|&2&!&!&%& &`%T%T%N%F%G%H%m%7%7%]%]%<%-%i*+ + + + + + + + + + + + + + + 7#3#4#D#)#-#v&$#`@F@E@F@t@s@s@|@|@f@/@X+@@S+D+C+K+s+q+7+n+7+2+2+'+'+'+$+.+.+X. +w.D.i.h.c.c.L&]&]&'%<&2%/%../%....p%..v%..p%W#$$^.B ^.^.$$^.^.^.$$$$^.>.C C C 4.>.C C V V ",
-" { ] ^ ^ { { { ^ ] ^ { { ^ / { ] / { ^ { ] ] { { ] ] { { ] ] { ] J ^ J _ %.!.!.c.2.c.h.i.D.D.D. +X..+|+-+:+:+2+7+7+7+s+s+Z#D+D+X+W+@@-@^@=@f@f@g@t@t@F@Q@Q@$#W@)#-#D#4#4#4#a#y#y#f#E#N#U#U#~$@$~$3$7$A$A$A$F$W$K$X$k%4%K%r%`&X%X%,&}&}&w&w&p&Y&<*Y&j*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+k*l*f*b*l*m*n*l*b*l*b*b*b*b*7*7*7*}*7*}*}*%*~*&*#*o* * *Z&R&P&z&z&y&r&r&l&l&n&c&c&**_&2&&&&&*&`%Z%T%C%C%D%m%p*e%f%6%}%{%-%q*+ + + + + + + + + + + + + + + -#7#5#3#/#)#)#`@W@Q@Q@E@t@t@g@s@=@/@=@x@W+W+D+D+K+C+s+7+q+7+7+7+]+'+'+-+X..+ +D.D.D.h.h.j.c.M.]&o&]&2%2%2%..../%..../%/%p%$$$$B $$$$W#^.B ^.^.W#W#^.$$4.C 4.>.C V >.C >.V ",
-" ] { ] { { ] { ^ { ^ { { { { { ^ / ] { { ] { { ^ ^ { { / { ] ^ ] J { _ %.#.{.!.2.2.c.w.i.D.D.D.X.X.|+-+'+:+]+7+7+7+q+r+s+C+D+S+W+X+=@=@/@^@f@s@g@t@y@E@Q@Q@`@$#`@)#)#4#4#4#f#y#y#u#%%O# $U#@$&$~$7$3$_$F$F$W$W$X$X$_%k%4%r%B%B%X%}&}&C&r*p&p&Y&s*s*t*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+u*l*u*n*v*n*w*l*x*m*n*k*m*k*b*b*7*7*7*7*}*1*%*#*%*~* *2* * *Z&R&G&E&H&r&r&l&l&j&f&6&c&y*|&_&_&~&`%`%T%C%G%E%E%p*e%7%}%]%<%z*+ + + + + + + + + + + + + + + A*3#4#4#D#)#)#`@W@Q@F@t@t@t@s@f@f@=@=@@@S+W+D+D+C+K+s+n+q+7+7+<+2+'+'+-+$+.+P.D.D.D.h.h.h.c.B*1$]&]&2%2%..../%........v%../%$$B ^.$$B $$$$W#W#$$B ^.W#B 4.V C C C V C C C ",
-" C*{ { { / / ^ ^ { ^ { ] { / { ] ] ^ ^ ^ { { ] ] ^ ^ { ] ] ] ] ] { { _ 3%_ !.!.2.3.2.h.h.w.D.D.D.D..+.+-+'+]+2+2+<+q+x+q+q+K+s+S+S+@@@@>$r@r@f@f@f@t@E@M@F@W@W@`@-#)#/#4#5#5#3#f#y#E#O#u#U#U#@$~$~$7$3$A$F$F$W$X$X$X$4%D*r%r%B%R%5&X%}&C&r*C&p&Y&E*F*t*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+w*w*w*G*w*w*w*u*w*v*w*v*x*w*l*n*l*m*l*f*b*b*7*7*}*|*%*~*#* * *Z&.*P&P&R&H&s&r&l&l&t&d&6&|&|&|&&&)&!&`%T%C%C%F%G%n%n%e%7%8%]%H*+ + + + + + + + + + + + + + + I*7#4#/#/#)#`@-#l#W@Q@F@M@t@f@q#f@^@=@@@W+@@S+S+C+s+s+s+y+7+7+<+<+]+'+-+.+.+ + +D.x.w.w.h.2.t$J*]&1$'%2%......../%....v%/%..$$$$$$^.$$W#^.$$W#W#W#$$B B >.C C C C V V C >.K* ",
-" L*{ ] { ^ { { { { ] ] ^ ^ / ^ { { { ] { ] ^ ] / / ^ ^ ] ] ] { ^ ] J _ _ _ $.{.{.c.c.i.i.K.D.D.D.W.-+$+-+'+6+<+2+7+7+y+r+C+C+C+D+X+@@@@/@=@/@f@g@t@y@G@Q@V@Q@`@-#)#/#D#3#3#4#f#f#f#E#N#u#U#@$~$7$8$7$_$_$A$K$X$W$X$4%_%A%K%B%@&@&,&}&}&}&W&M*Y&Y&N*N*O*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G*G*G*G*G*G*G*G*w*G*G*G*w*w*w*v*x*u*u*n*l*f*b*b*7*7*}*!*}*!*&*2* *Z&Z&G&P&y&E&r&r&r&l&f&6&c&7&|&_&&&)&`%Z%T%C%C%M%m%n%e%e%f%<%<%+ + + + + + + + + + + + + + + L$0#4#/#/#)#)#`@`@r#Q@M@t@t@L@f@|@=@=@@@X+=@X+D+D+C+s+q+n+7+7+2+]+]+]+-+|+$+W.P.D.D.D.h.c.h.S 1$1$o&o&2%....../%....p%....p%B $$^.^.$$W#^.$$$$W#^.B B B V C V >.4.C C C V L* ",
-" P*{ { { { / { ] { ] { ^ { { / { ] / { { ^ ] { ^ { { { ] { ^ { ^ / ^ ^ _ !.%.2.!.2.c.i.i.v.v.D.{+D..+X.'+-+]+6+2+g+7+n+r+C+K+C+X+@@S+=@=@=@f@|@R#t@y@E@Q@Q@W@$#-#`@/#4#3#4#f#f#E#u#u#O#U#U#+$&$~$7$_$o$_$F$F$W$X$*%_%4%A%r%B%B%X%,&,&b&}&b&:*Y&:*E*Q*R*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+S*T*G*U*S*S*S*S*S*G*T*G*S*G*G*w*w*w*w*x*v*x*l*b*b*e*b*7*}*|*~*}*~* * *Z&Z&F&z&E&r&l&l&l&t&f&c&c&_&_&&&&&`%T%T%M%F%G%H%e%m%f%}%[%V*+ + + + + + + + + + + + + + W*7#4#4#W%)#)#)#l#W@W@Q@M@t@t@s@f@|@=@=@@@S+S+D+D+s+C+q+q+r+7+g+<+<+-+-+-+X.O.X.D.D.V.h.h.j.H J*1$o&2%2%../%../%/%/%/%/%p%p%..$$^.$$W#$$$$B ^.W#^.^.B C C V >.C V C V C C X* ",
-" _*{ { ] { ] ^ ] ^ ] { ^ { ^ ] / { / ^ { ] ^ { ^ ] / { ] { { { { ^ ^ _ _ %.{.2.2.2.i.c.i.w.D.D. +.+W.X.'+]+:+]+<+7+o+y+s+s+K+D+D+S+X+@@=@6@r@|@s@s@t@F@M@Q@W@$#$#`@/#/#3#s#f#f#u#y#u#u# $.$~$~$~$y%7$A$3$F$W$K$a&X$4%4%K%4%B%#&,&5&}&}&w&w&:*Y&Y*s*Q*Z*+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+`*S*`*S* =`*`*.= =.=`*+= =S*S*S*+=G*G*G*G*u*u*v*x*x*k*b*b*7*7*}*}*}* *&* * *Z&P&R&H&S&l&l&m&j&d&6&|&_&8&_&&& &T%T%C%O%t%m%e%f%7%}%@=+ + + + + + + + + + + + + + + 3#a#4#3#/#)#$#$#W@Q@G@y@E@g@s@g@/@/@=@-@@@S+D+D+C+C+q+s+7+7+7+<+'+]+'+$+.+X.P.W.D.D.v.c.c./*-*1$<&'%2%/%..../%../%/%/%..p%^.^.B $$$$W#$$$$W#$$W#B W#^.>.>.4.C >.V V >.>.#= ",
-" _.^ { ^ / { ] / { { { ^ ] ] ] / { ^ ] { ] { ^ ] ] { { { ] ] / { / { ^ _ $.{.!.l.2.C.i.h.w.D.D.D.W..+.+]+]+6+f+<+7+7+q+q+C+C+S++@S+@@=@/@|@^@|@f@D@t@U@M@Q@Q@$#$#/#/#4#4#a#0#y#f#E#E#u#U#U#U#~$7$~$_$A$A$W$F$ %W$_%_%A%4%B%B%@&X%X%b&X&C&w&Y&:*N*s*N*$=+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++=`*%=&=`*`*&=%=.=.=%=.=%=`*.= = =S*S*G*G*G*G*w*w*m*n*l*b*b*7*7*}*1*%* *o* *Z&Q&G&G&z&r&r&l&j&n&c&7&|&1&3&&&!&T%T%C%N%D%t%H%e%8%7%*=+ + + + + + + + + + + + + + + a%7#4#/#/#/#l#$#W@W@Q@t@y@t@f@g@f@/@=@=@@@X+X+D+D+C+s+o+n+7+2+7+<+]+-+$+.+ +X.D.D.x.v.c.r.` +*1$1$2%o&2%../%..../%....../%W#^.$$^.$$B ^.B $$^.$$W#W#W#>.C C 4.C >.C >.4.6$ ",
-" P ] ^ { / { { { ^ / ] { ] ] { ] { { { ^ ] { / ] ] ^ { { ] { ] ^ ^ J =._ %.!.{.2.c.j.j.i.D.w.D.W.X.$+-+'+<+<+]+g+7+y+q+q+s+D+D++@X+X+@@/@^@|@s@s@t@F@F@F@W@Q@`@$#)#)#}#4#3#7#f#I#u#E#N#b%+$.$~$~$8$7$&%F$F$W$W$X$4%4%r%L%B%B%X%B&,&}&b&p&p&:*Y&Y&Q*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+.===&=&=&=&=-=&=&=&=&===%=%=%=.=%=%=.=S*T*U*G*G*w*w*w*l*l*b*f*c*}*7*!*&*&*&* * *R&F&F&r&r&r&l&l&n&c&7&**|&)&)&%&T%T%C%N%F%m%m%g%7%;=+ + + + + + + + + + + + + + + >=7#3#4#/#)#v&l#H#Q@Q@M@U@g@s@f@f@/@=@=@@@W+X+D+C+s+q+y+r+7+g+]+'+-+m+.+X.X..+D.D.x.h.h.j.` +&]&,#,#o&2%/%/%/%v%/%v%p%....B W#^.^.$$W#B ^.$$W#$$$$$$$$4.4.4.4.4.C C 4.C W ",
-" {.] { ] { ] / ] ^ { ^ ] ^ { ] { / ] ] { ^ / { ^ { / ^ { / ^ / ^ ] { ^ $.%.{.{.3.c.h.j.i.v.D.D.W. +X.'+'+:+2+]+g+7+7+q+s+D+s+D+D+W+=@=@=@|@f@|@g@s@E@F@Q@W@$#$#`@)#/#}#3#a#f#f#y#E#E#u# $U#U#&$7$7$3$_$A$W$/&X$_%_%4%K%r%B%B%@&}&}&}&C&p&p&<*E*Y&Q*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+-=&=-=-=-=-=,='=-=-=,=-=&=)=&=&=)=%=`* =S*S*T*S*S*G*G*w*x*n*b*b*7*7*7*1*#*%*~* * *.*Q&R&z&z&r&m&j&n&7&c&_&3&&&!&~&`%T%C%C%G%m%e%7%!=+ + + + + + + + + + + + + + + A#f#4#4#)#-#)#$#`@Q@F@y@y@t@g@R#f@/@=@=@W+X+D+D+D+J+s+x+x+7+2+2+2+]+-+.+.+W.W.W.D.w.i.i.h.=.1$+*<&^%2%2%....../%v%../%p%W#B B B W#W#W#^.B W#$$W#$$^.C V C C V C V >.C C ~= ",
-" / / ] / { ] ] ] { ] { ^ { / / { { { ^ ] { ] ^ / ^ / ^ ] { ] { ^ ] _ ^ _ !.!.{.3.c.h.j.i.K.D.W.W..+$+1+)+'+<+]+7+7+7+n+C+q+D+C+S+X+-@@@=@7@f@|@s@y@U@G@Q@Q@$#)#)#/#)#3#4#7#f#f#u#u#E#O#U# $&$~$3$7$A$A$F$F$W$X$X$_%A%K%{=r%@&,&(&}&}&p&p&p&Y&E*F*N*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+-=-=]=]=]=]=,=,='=^=/=]=]=-=,=-=-=-=&=)=== =%=S* =T*G*G*G*w*w*w*n*b*7*7*7*}*}*#*o*$*Z&Q&R&y&y&r&l&j&f&6&c&|&_&_&!&%& &T%C%C%G%m%m%g%(=+ + + + + + + + + + + + + + + _=0#5#4#4#)#)#$#$#H#F@U@t@y@s@f@f@^@/@=@=@X+X+D+D+D+s+s+r+7+7+<+6+]+'+-+X..+P.D.D.w.w.h.h.!.+*1$]&o&2%2%../%......p%../%p%W#B $$^.$$^.^.$$$$^.B W#B >.>.>.>.>.C 4.C 4.C 4. ",
-" y { { ^ ] ] ] ] ^ { { { { ] / ] ^ { { ^ / ] { ] ^ ] / ] ] { { { / _ _ l !.{.7.2.c.h.h.D.v.D.W.D..+-+X.'+]+2+2+g+7+n+s+J+K+K+D+X+@@@@=@=@/@|@q#t@t@y@U@Q@W@`@l#)#-#/#7#s#f#f#f#)$u#E#O#U#!$!$:=8$h$3$A$F$F$/&W$X$_%A%4%r%r%R%B&,&,&X&p&p&p&E*Y&N*N*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+]=<=/=]=[=}=/=[=]=}=<=|=]=]=/=}=-=-=-=&=&=&=)=%=%=`*1=S*G*G*w*w*n*m*f*b*7*7*|*#*~*2*Z&Z&P&F&R&y&l&r&l&j&j&6&|&_&&&!& &=&T%C%C%D%H%e%2=+ + + + + + + + + + + + + + + + 7#5#4#}#)#-#v&$#Q@Q@Q@F@t@g@g@f@6@r@=@W+@@W+S+K+K+s+q+x+7+7+g+<+:+-+-+.+X..+D.D.i.h.c.c.%.+*+*1$'%o&2%........p%....p%$$^.B ^.^.W#$$$$W#^.W#B ^.B V >.C C C >.C 4.V V 3= ",
-" f / { { ^ ] ^ ] { ^ { { { ^ ^ { ] { { ] { { { { / / ^ ] ] { ] ] / ` _ %.!.{.!.c.2.c.i.i.v.D.W.O.X..+-+'+-+<+2+7+7+n+s+J+Z#D+D+D+W+@@@@/@^@f@g@t@y@t@M@a%Q@W@)#)#/#4#3#7#a#f#y#I#u#u#u#U#&$@$~$h$3$3$o$F$F$W$ %X$4%;&A%r%r%>&@&5&}&}&X&p&:*E*E*E*N*Q*+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+<=<=[=[=4=5=4=[=|=6=[=[=4=[=4=]=<=]=]='=-=-=-=)=%=)=%=S*S*G*G*w*w*l*l*g*b*7*7*}*|*#* * *Q&P&G&z&r&l&l&f&7&6&|&|&2&_&`%`%`%C%N%G%m%m%7=+ + + + + + + + + + + + + + + + 3#f#4#4#)#$#$#W@Q@M@E@y@t@s@s@f@7@=@=@@@X+X++@D+C+C+q+y+7+7+2+2+'+'+'+.+.+W.O.D.v.w.w.i.!.+&]&]&]&2%2%../%p%..p%v%v%$$$$W#W#^.^.$$$$$$W#^.B B $$W#4.V V C V C C V V C 8= ",
-" y { / ] { { ] / ^ ^ { / ^ { { ^ / ^ ] ^ { ] { { ^ ^ ] ] { ] { { J ^ _ l ~.~.l.c.c.j.i.i.D.D.D.X..+.+.+m+]+6+6+7+7+7+q+s+s+D+X+X+X+@@=@^@|@f@g@g@t@G@E@M@Q@W@`@)#)#4#4#7#3#f#f#I#E#u#U#U# $~$~$_$_$_$_$F$F$/& %X$_%k%4%r%r%X%X%,&}&r*b&p&Y&:*Y&E*Q*9=0=+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+a=6=5=6=b=6=6=6=6=6=6=6=6=4=6=b=4=[=<=[=<=,=]=]=-=-=&=&=%=`*+=S*G*G*w*u*m*b*k*7*7*|*!*~* *Z&P&P&P&H&z&l&l&m&n&7&**|&_&&&`%`%Z%C%O%n%m%c=+ + + + + + + + + + + + + + + + d=0#4#4#/#)#`@W@l#F@y@G@t@s@g@|@f@=@r@@@X+@@D+D+s+s+s+y+7+e+g+<+:+]+'+-+W.W.D.D.v.x.x%r.%.+&+*1$'%'%2%2%../%....v%..^.W#^.^.B W#$$$$^.^.$$^.$$W#V V >.V >.4.4.C V C C n. ",
-" ^ ^ ] ^ / ] ^ ] ^ ] ^ ] / ] / / { { { / ] ^ ] { / ] { ] ^ ] { ] ] ^ _ _ !.!.!.c.h.r.h.h.x.D.W.W.X.$+-+'+'+]+f+7+y+7+s+s+K+D+D+S+X+x@=@r@^@|@f@f@y@t@M@M@W@r#W@)#/#/#4#3#f#f#E#y#u#u#O#.$@$~$~$y%3$_$o$F$F$K$X$X$_%A%A%B%X%@&N&N&X&b&W&:*<*Y&E*s*Q*e=0=+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+6=f=f=f=f=g=f=f=f=f=f=f=f=f=6=6=b=[=h=[=|=]=/=-=]=]=-=&=)= =`*.=G*G*G*w*u*l*l*b*7*7*1*&*#* *Z&Z&P&z&r&S&l&i=e&j&d&|&|&)&%& &*&C%C%G%D%j=+ + + + + + + + + + + + + + + + M@5#4#4#)#/#`@`@W@Q@M@U@E@f@f@f@=@r@=@@@@@+@D+C+C+q+q+y+x+7+]+<+]+]+-+.+-+O.D.D.D.v.c.c.%.+*1$o&^%^%2%/%..p%p%v%p%p%$$W#B $$^.$$B ^.$$^.$$^.$$^.4.4.C C V C >.>.4.4.C C ",
-" ] { ] { { ] { { / / { ^ ^ { ] { ] ^ { { ] ] ] { { ^ { / / ^ ] / { ] _ $.l !.2.{.j.h.~@i.x.D.D..+X.|+'+m+'+2+7+7+n+o+s+s+K+C+D++@S+=@=@=@=@f@R#t@k=t@E@Q@W@W@$#.&/#4#4#7#f#f#I#E#E#O#O#U#&$~$&$7$3$A$&%F$K$W$_%_%4%A%A%r%@&R%B&(&}&w&C&p&Y&E*Y&Q*Q*l=+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+f=m=f=n=o=o=o=f=p=o=q=n=p=f=n=n=r=6=6=6=6=[=|=/=}=/=-=-=-===s=%=1=S*S*G*w*n*g*l*e*7*}*~*#*&* *Z&Z&F&H&z&r&l&j&e&d&|&_&&&2&%&`%T%C%N%E%H%+ + + + + + + + + + + + + + + + u&3#4#/#)#)#)#$#W@F@U@Q@t@g@f@f@f@6@=@S+X+X+D+e@C+C+q+y+n+7+6+6+]+-+'+.+W.W.D.D.w.i.h.h.!.J*1$1$o&2%2%2%..p%/%p%/%^.W#$$^.^.$$$$W#$$W#^.$$W#$$W#^.V V C V >.V C V C 4.C ",
-" ] { { / ^ / ] ^ ^ ^ / ] ^ ] ] { / ^ ] ^ { ^ ] ] ^ ] ^ { ^ ^ { { ] _ _ _ %.!.{.c.2.h.c.w.w.D.D.O..+.+-+'+'+]+e+7+7+q+q+C+C+D++@S+X+@@=@6@|@f@f@t@t@G@Q@Q@H#`@-#)#/#D#3#0#a#f#E#E#u#u#b%U#@$~$~$h$_$A$A$F$K$X$X$k%4%r%B%B%B%@&,&,&}&b&w&p&p&E*s*t=Q*u=+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+q=p=q=o=v=v=w=w=v=q=q=v=o=q=q=o=n=f=f=6=f=6=[=[=]=a=]=-=-=&=%=%=.=1=S*G*w*w*x=n*g*f*7*}*!*~* * *Z&R&G&s&s&r&m&j&6&|&|&J&)&)&~&T%C%N%F%m%+ + + + + + + + + + + + + + + + S+4#3#4#)#)#$#$#Q@Q@y@t@t@t@|@R#r@r@=@=@X+T@D+D+Z#s+s+7+7+7+6+]+]+:+-+.+X.X.D.D.D.i.i.2.%.y=1$o&1$'%2%2%z=..../%p%B W#B $$$$W#W#B B W#$$B W#$$^.V C >.C C 4.>.V V V C 4. ",
-" { { ] ] ^ ] ^ / ] ^ ^ ^ / { { / / ] ^ / { ^ / ^ { { { ] { ] ] { / { ^ _ l {.{.2.j.j.w.x.D.P. + +X.$+-+]+<+]+g+g+7+n+r+s+C+D+C+@@@@@@=@=@f@|@f@s@y@t@F@Q@W@$#l#`@/#)#4#5#7#f#)$y#E#U#N# $~$~$~$8$8$A$o$F$ % %_%X$A%k%r%r%R%B%,&}&}&r*p&:*Y*Y&N*N*Q*9=+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+o=o=w=A=B=C=D=E=A=A=A=A=C=F=G=w=o=p=p=p=m=p=f=6=6=5=6=4=a=/='=-=&= =.=S*S*G*u*w*x*b*b*7*7*}*|*%*o*Z&Z&y&y&H&r&l&l&f&7&**|&&&2&)&`%T%C%G%H%+ + + + + + + + + + + + + + + + 1%3#4#4#/#-#l#$#Q@M@U@E@y@g@g@|@^@r@/@@@@@*@D+C+s+s+s+n+7+7+7+6+<+'+'+-+.+X.W.D.w.K.h.h.c.+&1$1$2%2%2%../%/%p%/%B $$W#B ^.$$B $$W#$$B $$W#W#W#C V C 4.V V C 4.4.>.4.V C ",
-" y { ] ^ ^ { { { { ] ] { / ] ^ { ] ] / ] ^ { { { / { ] ] { ^ ^ ^ ^ J _ $.~.!.!.c.C.j.h.x.D.D.W..+.+.+'+]+:+<+7+2+n+n+y+s+C++@S+D+x@=@=@/@/@f@s@t@y@E@M@W@l#`@`@-#)#)#3#3#f#f#)$u#%%U#O#U# $!$7$~$3$A$o$F$W$W$ %_%k%4%B%r%@&@&,&}&}&X&p&p&E*E*E*N*Q*Q*+ + + + `%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+A=C=E=E=A=E=E=E=E=E=E=E=E=H=A=A=E=C=w=w=v=n=f=n=f=6=[=[=<=]=/=-=&=&=)= =S*+=G*w*u*m*g*e*7*7*!*&*$*$*Z&Z&R&z&r&r&l&e&6&6&|&_&)&&&*&T%T%E%F%I=+ + + + + + + + + + + + + + + J=f#4#4#)#`@$#`@Q@M@Q@t@y@g@s@|@/@/@=@=@@@S+S+D+C+K+y+q+7+2+g+<+'+m+-+$+X.W.D.O.D.V.h.c.c.J*+&]&2%]&2%2%../%p%$$W#W#B ^.W#$$^.$$W#^.B B $$B W#C C >.C 4.C >.C C 4.V C n. ",
-" f { { ] { { { { ^ ] { ^ ] ^ ] ] ^ ^ { / { { { { ] { ^ { ] { ] / ^ J _ ~.%.!.l.2.c.c.h.K.x.{+W.W.X.'+-+'+]+<+<+7+7+s+q+C+q+C+D+@@@@@@=@^@|@f@f@t@F@M@F@Q@W@W@`@$#)#/#4#7#0#7#f#y#u#O#U#U#!$~$~$~$7$3$F$F$X$W$X$4%4%A%r%B%`&@&,&}&b&b&p&p&:*Y&E*N*Q*u=+ + + + G%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+K=K=L=K=K=K=M=M=M=M=M=M=M=N=O=E=E=H=A=A=w=w=o=g=m=6=6=6=4=]=}=]=-=-=&=.=`*S*P=G*w*x*m*k*b*7*}*&*#*#* *Z&F&E&z&r&t&j&6&7&g&_&3&&&`%T%T%C%N%Q=+ + + + + + + + + + + + + + + R=5#4#3#)#^#$#$#W@Q@M@U@t@g@s@f@|@/@=@W+@@S+S++@q+q+y+7+7+7+6+2+:+]+-+$+$+W.W.D.D.x.h.j.c.+*]&<&<&'%'%2%..v%v%^.W#$$B $$W#$$W#^.^.$$W#$$W#B V C C C 4.C C 4.V C >.V C V ",
-" y { { ] ] { ^ ] ^ { { ] { / { ] ] { ^ ] { ^ { { ] { { ] ] { ] ^ { =._ _ ~.{.{.c.2.,@h.i.x.D.O.W.X.'+-+]+<+<+<+7+7+q+s+s+Q+D++@S+X+($=@=@^@f@f@f@t@t@F@Q@W@$#)#)#)#/#3#0#0#f#f#I#u#O#u#U#!$~$~$h$3$_$u$A$W$K$X$X$k%4%L%B%@&X%5&}&}&b&w&p&:*Y&N*Q*N*e=+ + + + 6%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+K=K=M=S=S=T=U=V=W=X=W=V=Y=S=U=M=M=N=E=N=E=A=A=B=v=p=q=f=f=5=5=}=a=^='=&=%=%=S*S*+=G*u*u*b*f*b*7*|*}*~* *Z&R&F&z&r&l&t&f&c&g&|&_&&&!&`%Z%C%O%Z=+ + + + + + + + + + + + + + + `=4#3#/#)#)#`@W@W@Q@Q@y@t@s@g@f@^@^@=@X+X+S+D+C+C+s+n+q+7+7+g+2+]+'+-+-+.+X..+D.D.v.i.h.!.+*1$]&^%2%2%2%/%/%p%B B $$^.W#W#W#W#$$^.B W#W#^.W#V V >.C C 4.C 4.4.>.>.C V b+ ",
-" ^ { / ] ] ] { { / ] { ^ ] { { / { { { ^ ] ^ { / ^ ] ] / { ] { / { ^ _ %.{.!.7.{.c.j.i.i.V.D.W.X..+-+'+:+]+<+2+7+7+s+r+s+s+D+D+@@@@@@@@=@f@f@s@s@t@F@F@Q@W@$#`@`@)#}#5#f#f#f#f#E#E#N#N#@$ $.$7$7$3$_$F$!%!% %X$_%_%_%K%r%B%@&X%5&X&}&C&M*p&Y&E*Q*Q*l=+ + + 2*>%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+S=X=U=W= -.-+-@-.-@-W=#-T=T=Y=V=S=$-S=M=E=N=E=E=D=F=v=o=q=6=6=4=a=a=]=%--=)=.=`*S*G*w*u*n*x*f*7*}*}*$* * *Z&P&y&z&l&t&e&c&c&|&2&3&)&*&`%T%C%&-+ + + + + + + + + + + + + + + d%3#3#4#/#`@$#`@W@Q@F@t@y@g@g@f@f@6@>$W+@@D+D++@s+q+q+o+7+7+2+<+'+-+-+-+X.W. +D.D.v.v.h.!.+*]&]&]&'%2%../%$$$$$$B ^.$$W#$$W#$$$$$$^.^.$$B >.>.4.>.C 4.C V C V V >.C V >. ",
-" Z ] { / ] { ^ ] { / / ^ { ] { ] { ^ ] { { ] ] { { { ] / ^ { { { / ^ _ %.%.!.!.2.j.h.w.w.w.D.W.W..+l+X.'+:+<+]+7+7+y+r+q+C+D+X+S+-@@@=@|@f@f@f@s@t@E@Q@Q@Q@Q@$#)#4#3#3#4#0#f#I#t#u#N#*-.$+$&$~$7$_$o$A$F$K$X$X$X$A%K%A%B%=-B&@&}&}&w&b&p&:*Y&E*N*Q*--+ + + 3&E$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+;->-.-,-'-)-'-'-)-'-'-'-)-!-'->-@-W=T=V=X=M=N=E=E=B=D=p=g=f=f=5=4=a=]=^=-=&=&=.=S*S*G*~-x*l*b*7*7*#*!* * *Z&P&y&y&r&l&l&f&6&c&_&_&&&*&T%{*M%{-+ + + + + + + + + + + + + + + ]-4#4#/#/#`@$#l#Q@Q@E@G@y@t@s@f@=@/@=@=@@@S+D+C+J+s+q+q+7+7+7+<+'+-+'+-+.+ +{+D.w.i.h.C.%.+*+*1$]&]&2%..v%$$^.^.B W#B W#^.B W#B W#$$^.^.$$V V C >.C >.>.V V >.C C V 4.+. ",
-" P { ^ / ] / { / { ^ { / ] ] ^ { / / ] / ^ ] { ] ] { ] ^ { { ^ ^ ^ _ _ %.%.{.g.2.h.2.h.v.h.D.D.W.W.-+.+-+]+6+g+7+7+7+q+s+s+C+D+W+X+@@r@=@6@f@s@t@t@y@Q@Q@H#$#$#)#)#)#4#7#3#f#t#t#u#N#N# $~$&$~$7$_$_$_$F$F$W$X$X$k%A%r%L%B%X%,&}&}&p&C&p&<*Y&E*Q*Q*@&+ + + 8%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+,-'-!-^-^-^-/-/-/-/-/-(-!-!-!-_-:-<-.-Y=V=Y=X=N=E=E=C=C=q=o=f=6=6=[=]=<=^=-===&=%=+=[-w*w*n*b*b*7*}*|*#* * *P&P&E&s&l&l&j&c&|&|&_&)&!&*&T%T%C%+ + + + + + + + + + + + + + + }-3#/#/#)#)#-#l#$#F@M@t@t@t@f@f@/@=@=@-@@@X++@C+J+s+q+y+7+7+]+<+m+'+-+|+ +.+W.D.w.i.h.j.!.|-]&1$]&o&..^.p%$$W#B B $$$$$$B $$$$$$B W#B W#^.C V V C C >.V C >.4.4.C >.V W ",
-" 2${ ] ^ { { { ] ] ] / / { ^ ] ^ / { ] ^ { ] { { ] ^ / ^ ^ { { / ] _ _ l ~.{.!.{.2.h.h.h.D.D.W.O..+$+'+)+]+]+<+7+7+n+s+q+K+D++@X+X+=@=@=@7@f@f@g@t@F@M@F@Q@W@`@`@^#3#4#5#f#7#)$)$I#O#N#U#U#@$~$7$_$3$o$F$F$ % %X$_%A%K%B%B%X%@&}&b&p&p&M*Y&Y&Y&1-Q*,&+ + + E$G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+2-3-3-/-4-5-/-6-6-6-6-6-4-4-7-(-8-!-'-'-+-.-W=W=X=O=E=E=B=9-o=f=6=6=[=]='=-=&=%=.=S*[-G*G*x*m*g*7*}*1*%*2*Z&.*P&H&H&r&l&e&e&****|&!&)&*&`%T%M%+ + + + + + + + + + + + + + + 0-4#3#3#)#$#$#$#W@F@Q@y@y@f@s@|@f@=@=@@@X+X+S+D+C+s+q+q+7+e+g+]+'+'+-+.+.+.+{+D.D.v.h.c.!.+*-*<&'%..../%..$$$$W#^.$$W#^.B B $$B $$W#$$$$$$V C >.>.V V V V 4.4.>.>.C C a- ",
-" _*^ { / ] ] { / { { { { { / ] { { ^ ^ ^ ^ ^ ^ { { { / { { / ^ { J _ _ l !.!.{.2.r.h.i.i.x.D.D.X..+X.-+'+]+<+g+2+7+7+x+s+C+D+D+X+S+=@/@=@/@f@g@t@t@t@F@Q@$#$#)#)#)#4#7#7#7#f#y#t#u#u#U#U#U#&$~$h$b-_$o$F$!%K$X$X$4%4%A%r%@&X%,&,&,&}&C&p&p&:*E*Y&1-4%+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+7-6-c-c-d-c-d-e-e-f-e-e-d-g-h-6-6-/-(-(-!-<-i-V=U=S=M=E=D=A=9-f=f=6=[=[=a=/=-=-=.=1=S*G*G*u*l*n*c*7*}*|* *$*Z&R&P&z&r&l&l&f&6&c&_&_&!& &`%C%O%+ + + + + + + + + + + + + + + j-4#/#4#)#)#$#r#W@Q@U@t@t@g@s@f@=@/@=@@@X+X+X+C+s+q+n+q+x+g+6+<+'+-+-+.+-+.+{+D.w.i.h.j.d+]&+*]&M M ..^.$$$$$$^.$$^.$$^.B $$$$$$B W#$$C C C >.>.>.V V 4.>.C C >.C C >.#= ",
-" 1 ^ ] ^ / ] { ] ] { { ] ] ] { ^ ] / ] { / ^ ] ^ / { / ] { ] / ] ] _ ^ ~.l !.!.2.2.r.c.x.x.D.D.{+W.$+'+'+]+2+2+7+7+r+q+s+Q+D+S+S+X+W+=@/@=@|@g@t@t@t@M@Q@W@$#W@-#/#/#/#4#7#f#f#E#E#N#U#U#.$&$7$~$3$_$_$F$F$ %X$X$k-A%A%B%B%@&X%}&,&b&r*C&p&<*E*N*Q**%+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+c-l-m-n-o-n-p-q-r-s-t-r-n-u-o-v-w-g-6-4-(-^-!-+- -Y=U=K=E=A=D=9-p=f=5=[=4=]=-=&=%=.=.=T*G*v*v*f*b*7*}*}*&*&*Z&Z&z&z&r&l&l&j&n&g&|&_&8&*&=&T%T%+ + + + + + + + + + + + + + + $=7#4#4#)#)#`@W@Q@Q@M@t@t@s@f@f@/@=@=@=@S+X+D+D+s+C+y+x+7+7+6+2+]+-+-+.+X.P.D.D.D.w.h.,@$.1$1$,#O+2%..W#p%^.$$B W#^.$$B W#W#B W#B W#V C C >.C V V V V 4.4.C 4.V >.V >.X* ",
-" L*^ ] ] / { ] ^ { ] / { { / ] / { { ^ { { { { ] { { ] ] / { { ] =.{ _ ~._ l {.2.c.i.h.i.V.D.D.W..+.+-+-+]+]+7+7+7+y+q+s+K+D+D+W+W+@@=@=@^@|@f@f@t@G@F@W@W@l#l#)#^#4#4#7#7#f#T#)$u#N#u# $@$&$7$~$7$7$o$F$F$!% %X$_%D*A%A%r%@&,&5&}&W&C&p&p&:*N*E*t=*%+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+m-x-y-z-A-B-C-D-E-F-G-F-H-I-A-A-n-u-o-c-h-6-8-^-)-@-.-W=S=S=E=D=J-K-n=5=[=a=]=]=&===%=.=T*G*G*u*n*g*7*7*1*}* * *Z&L-y&y&r&t&f&6&c&|&_&)&)&*&T%T%+ + + + + + + + + + + + + + + M-7#3#D#/#-#)#W@Q@F@G@t@s@t@f@|@^@=@=@=@S++@e@s+C+q+y+7+7+7+g+:+<+'+-+.+.+W..+D.D.w.h.c.=.,#,#,#......p%^.B $$B B $$^.$$^.W#^.W#$$$$$$>.C 4.>.C >.C V >.4.C C V 4.V >.N- ",
-" O-] ^ ] / ] ] ] / { { / ^ { / / { { { ] { / ^ ] ] { { ] / ^ ^ ] / ^ ^ _ !.{.{.c.2.h.h.h.D.D.D.X.X.-+'+'+'+]+e+<+7+n+7+q+D+D+D+D+@@=@=@=@|@f@f@t@g@y@Q@Q@$#H#-#$#)#)#}#3#f#f#T#I#f#%%O#U# $U#@$7$y%o$A$A$!%F$W$ %4%K%A%A%B%@&@&,&,&}&p&p&:*E*:*s*N*P-+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Q-R-S-E-T-U-U-V-W-X-Y-Y-U-Z-Z-I-I-A-R-n-u-e-w-6-(-^-'-i-S=U=M=A=J-K-F=6=6=[=4=]=-=&=&= =T*S*G*w*x*n*g*7*}*&*2* *`-Z&H&y&S&l&j&7&c&|&_&2&)&~&T%C%F%+ + + + + + + + + + + + + + m#7#D#/#)#/#W@$#Q@F@y@t@t@t@|@f@/@r@=@X+S++@D+K+C+s+o+q+7+<+g+]+'+'+-+-+ +X.D.D.D.h.i.r.=.1$'%..'%2%..$$W#$$$$W#$$W#$$^.$$$$$$W#$$4.V V V >.C >.4.V V V C V C V V >.V ; ",
-" ] ^ { { ] ^ { ] ] { ^ { ] ] ] ] ] ^ / ^ { ^ ] ] ] { ] ^ { ^ ] ] ^ _ #.#.{.{.2.c.j.c.i.i.x.D.O. +.+l+-+<+'+<+7+7+7+r+s+q+C+D+S+X+x@=@^@/@/@|@t@y@Q@U@F@Q@Q@$#$#/#/#/#7#3#f#f#t#E#u#N#O#.$.$~$7$7$3$_$A$A$F$X$X$X$k%4%4%B%@&,&}&,&}&b&p&M*Y*:*N*Q*P-+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+.;T-+;U-Y-Y-@;#;$;$;%;%;%;#;&;V-U-Z-I-A-s-o-m-6-6-(-*;=; - -M=K=A=K-v=m=6=h=<=/=-=-=)=`*+=S*G*w*x*l*b*7*-;1*%*2*Z&Z&G&E&S&r&l&f&7&c&|&_&%&%&`%C%C%+ + + + + + + + + + + + + + ;;3#4#D#)#)#$#l#W@Q@t@y@t@g@f@f@6@=@@@@@W+D++@D+C+r+y+y+7+7+6+6+'+-+.+.+X.D.D.V.D.w.j.2./ '%]&'%..2%^.^.$$$$$$$$B W#B W#B $$W#^.C C V C C >.4.C C 4.C 4.C 4.C V C V V ",
-" { { { { ^ { ] / ^ { { ^ { { / ] / ] { ] / { / ] { ^ ^ ] / ^ ^ / =.^ _ _ !.!.2.2.h.i.h.x.D.D..+W.$+'+-+'+6+<+7+7+n+s+q+s+C+D+S+X+@@@@=@/@f@R#f@t@t@y@E@Q@l#l#-#^#/#4#/#7#0#f#f#u#u#u#U#U#.$&$7$~$_$A$A$A$K$!%_%_%4%_%4%B%@&R%B&,&b&b&W&:*p&Y*E*s*J#+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+U-W->;,;';,;);!;~;{;];~;^;';/;(;%;&;_;U-I-H-n-l-c-6-/-!-:;<;U=M=L=B=K-[;f=6=[=<=}=-===&=%=+=G*w*l*n*f*b*7*1*&* * *Z&F&H&z&l&m&j&f&|&|&_&)&!&`%T%C%+ + + + + + + + + + + + + + + 4#4#4#)#)#`@Q@Q@Q@F@t@g@s@s@f@r@/@@@@@*@S+D+D+s+s+r+x+7+2+]+<+'+-+$+.+X.O.D.D.i.h.c.c.( +&,#^%O+M v%B $$B B $$^.$$^.W#$$W#$$>.V V V 4.C 4.C V 4.C >.>.V >.V C C V >. ",
-" ] / ] { ] / ^ { { / ^ ^ ^ { ^ ] ^ / { { / ^ ^ / / ^ ^ { { / { { J _ l ~.!.!.{.l.j.h.i.V.D.D.D.W..+-+-+]+<+<+2+7+n+o+r+s+D+D+S+T@X+=@=@=@|@f@f@t@E@y@M@Q@H#`@)#)#/#4#3#5#7#f#I#u#E#J#O#+$U#@$~$_$3$_$A$F$W$X$ %_%X$A%A%r%@&@&@&}&}&b&p&:*:*Y&Y&E*};+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+>;|;{;1;2;3;4;5;5;5;6;5;5;7;7;8;9;0;%;W-V-a;A-r-b;c-6-3-^-<-c;S=M=E=D=v=v=6=[=a=}=-=&=)=%=+=U*u*w*l*f*e*7*}*}*&* *Q&P&z&r&r&l&j&e&c&|&|&!&`% &T%O%+ + + + + + + + + + + + + + + 4#/#/#`@v&l#W@Q@E@t@t@t@s@f@^@|@r@=@@@S++@+@C+C+s+q+y+7+<+<+'+-+'+'+ +X.W.X.D.w.w.h.2.( U ,#'%^%....p%W#$$W#$$$$$$^.^.$$^.^.V C >.4.C 4.C C C V C C >.>.4.>.>.C C 4. ",
-" P ] ^ ^ ^ / ^ { ] { ] ] / ] { { { { { / ] ^ ] ] ^ ] { ^ { ^ { { _ _ l $.%.{.c.c.2.h.i.i.w.W.X.X..+.+'+:+:+2+2+7+7+q+q+s+s+D++@X+@@-@=@=@/@f@g@t@F@G@Q@Q@r#`@l#/#)#4#d;f#7#f#y#u#E#u#*- $U#~$~$7$3$o$A$F$F$F$X$*%_%4%A%B%@&@&,&}&}&X&p&w&p&E*Y&1-};+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+);e;f;g;h;i;j;k;k;k;k;l;l;m;n;5;3;o;';,;%;U-E-A-r-p;q;6-3-r;;-<;M=K=C=9-v=6=[=[=a=}=-=&=.=+=S*G*u*u*f*g*7*1*}*&*s;Z&R&G&H&r&t;j&n&7&|&_&%&`%`%T%M%D%+ + + + + + + + + + + + + + 4#4#/#-#)#l#Q@Q@Q@y@y@t@s@f@6@7@=@=@=@X+X+D+D+C+q+7+7+2+2+]+]+'+'+$+$+X.X.D.D.i.i.h.c.u;1$,#2%......^.W#$$$$W#$$$$^.$$$$W#4.V >.4.4.V >.V >.V 4.C C >.V >.V C >.V W ",
-" _*] ^ ] { ^ ] { / { { { { ] ] / { { ] ] ] ] ^ { { ^ { ^ { ^ ] / _ ^ $.~.{.{.2.c.2.r.h.w.w.W.P.O..+'+'+'+]+2+2+g+n+y+s+s+K+D++@X+W+@@=@^@|@|@f@g@s@M@Q@Q@Q@l#v&`@-#/#4#3#0#7#E#f#u#E#N#U# $!$~$7$7$_$o$A$F$W$W$X$k-4%A%r%B%@&@&N&B&X&}&p&p&:*Y&E*v;+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+w;3;i;x;y;z;z;A;A;B;A;A;C;D;l;l;5;h;3;E;,;%;W-U-I-o-m-q;6-^-r;<;$-M=F;D=J-G;h=|=a=-='=&=)=T*1=G*w*u*x*b*b*H;|*~* *Z&P&E&r&s&r&f&n&c&|&_&2&&&~&T%O%C%+ + + + + + + + + + + + + + /#3#/#-#`@$#Q@Q@M@t@t@s@g@f@|@=@=@=@W+X+S+D+C+D+q+q+q+2+2+<+:+]+'+l+$+.+X.D.x.v.i.h.c.U+1$^%M ......^.B B $$$$$$B W#W#^.4.C V 4.>.>.C >.C C >.V C V 4.4.C 4.>.4.V #= ",
-" >*/ ^ { { ] { { ] / { { ^ ^ { { ^ ^ / { { ^ ] ] ] ^ { / { { { / { _ _ %.{.7.{.2.c.c.h.x.x.D.P.X..+.+-+:+]+]+e+7+x+r+y+s+C+D+S+X+=@X+/@r@6@|@f@t@y@E@E@F@Q@$#`@`@)#4#4#3#3#f#f#y#E#u#u#U#.$.$~$7$~$o$u$F$W$W$ %X$_%A%4%A%r%B%@&@&5&,&w&C&p&:*<*E*4$+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+I;J;z;z;K;L;L;M;M;N;N;O;P;Q;R;D;z;S;5;T;8;U;|;W-+;A-o-V;q;5-W;'-X;M=M=J-9-v=g=6=<=]=,=&=&=.=S*G*v*w*m*g*7*}*1*~* * *P&E&H&S&r&f&e&d&|&_&3&%&`%`%T%C%E%+ + + + + + + + + + + + + 3#)#-#)#$#`@W@F@F@F@t@f@f@f@/@^@=@@@W++@D+D+C+q+q+o+7+]+<+]+]+m+-+-+ +D.W.W.D.h.h.h.c.e 1$,#,#2%../%$$$$$$W#$$$$W#$$4.>.V V >.C C >.>.C C V V V 4.4.C V V V V V 4.j ",
-" ;*/ ] ] { { { { ^ { { { { ^ / ] { ^ / ^ ] { / ] / / / { { { ] / ] ^ _ $.{.!.{.c.c.c.c.i.x.D.W.W.-+.+1+]+:+2+2+g+n+q+n+J+s+D++@S+@@($@@=@=@f@g@g@s@E@Q@Q@Q@l#`@`@/#)#/#4#0#f#I#f#I#V$O#u#.$+$&$7$3$_$_$o$W$W$K$X$_%_%D*r%r%B%X%@&,&}&b&C&b&p&Y&Y&Y;+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Z;`;L;M; >.>+>@>#>$>%>+>&> >*>N;=>D;k;5;5;->);|;W-E-A-o-;>>>,>'-T=$-K=K=J-'>g=6=<=]=-=-=%=.=.=S*~-u*m*k*b*}*#*#*#*Z&Z&P&z&S&r&j&f&6&|&|&_&%&%& &T%C%D%+ + + + + + + + + + + + + /#D#/#`@l#l#Q@Q@U@y@t@f@s@f@r@|@=@W+@@+@)>D+C+s+y+n+7+7+<+]+m+-+'+|+X.D.D.w.x.i.i.h.c.J*1$'%M ....B ^.$$W#B $$$$>.4.>.C >.>.C 4.V 4.V C 4.C V V C 4.>.C C V V 4.4.!> ",
-" ] { { ] / ^ ] ] { ^ ] { / { { ] ] ] ] ] ^ { ^ { / { ^ / / ] { { ^ _ _ {.!.7.2.h.c.h.w.V.w.D.O. +.+.+'+]+<+]+6+7+y+q+q+C+K+C+X+X+@@=@/@/@^@|@s@t@t@E@G@W@W@$#-#/#)#4#}#4#f#f#)$I#u#U#O# $ $~$~$h$3$A$o$F$W$0&K$_%4%A%r%A%B%B%@&,&}&}&b&p&p&:*Y*~>+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+{>L;M;]>$>^>/>(>(>_>_>:>_>_>@><><>[>A;k;l;h;7;{;}>|>B-q-o-q;5-r;W;$-U=K=1>[;g=n=[=}=]=&=&=`*S*T*G*w*m*k*b*7*|*&* *Z&P&P&z&E&l&l&j&c&g&|&3&&&!&T%C%M%G%+ + + + + + + + + + + + + 3#/#`@)#W@H#Q@Q@Q@F@t@g@f@f@^@=@=@X+S+D+D+s+C+s+n+7+7+7+]+]+<+]+-+-+.+X.X.D.D.i.h.h.c.M.'%,#^%M ......^.W#^.V >.V V V C C C C V >.>.C V V >.>.V C C V C C V C 4.C ",
-" 2>{ ^ ^ ^ ^ { / { { { { { / / ] { ] ^ ] { ^ / ] / ] { { ] { { / ^ _ ~._ !.2.2.c.h.h.i.x.D.D.W..+.+1+)+:+]+f+7+2+r+o+s+J+Q+C+D+S+=@@@=@^@^@f@s@t@t@y@E@Q@W@W@$#)#/#4#4#7#f#f#)$y#u#E#O#U#+$U#~$7$7$A$A$A$W$F$X$_%_%4%4%A%`&@&@&,&X%}&}&b&w&:*Y*3>+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+4>5>6>7>7>(>8>9>0>a>a>a>9>b>_>/>@>c>d>A;k;l;h;e;);e>+;f>x-x-q;g>h>i>$-K=j>F=G;g=[=]=]=-=&= =S*G*G*w*x*x*k*7*}*#*~*3*Q&P&F&z&l&l&e&d&c&|&_&&&`%=&T%C%F%+ + + + + + + + + + + + + V@/#`@$#l#W@Q@Q@Q@y@t@|@|@|@6@=@=@=@S+D+D+s+J+s+y+n+7+7+]+]+:+-+-+.+X.W.D.x.D.v.v.C.c.1$,#^%M O+..^.B ^.$$V C >.>.C V V >.V >.>.V >.C >.V C V V V C V C C C V V k> ",
-" [&^ ] / { ^ / { ] { { ^ ] / ^ { ^ ] { ] / ] ] ^ ] ^ ^ { ] ] { / ^ _ _ {.!.!.2.c.c.j.w.w.V.D.W.X..+.+-+]+]+6+7+2+7+q+q+J+C+D+D+D+@@x@=@=@/@f@f@t@t@E@Q@Q@$#W@$#`@/#/#/#5#a#f#y#y#f#u#O#u#U#&$~$7$7$l>o$A$F$W$/&X$_%4%4%A%B%R%B%X%N&}&X&w&p&p&:*m>+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+n>o>p>q>r>s>s>t>t>u>v>w>x>s>9>y>_>$> >z>A;k;5;3;!;e>A>.;R-x-q;B>C>,-$-$-j>v=g=g=|=}=,=-=&=`*`*[-G*w*u*b*7*7*|*1* * *Z&F&F&E&l&m&f&c&|&g&_&)&&&T%C%C%F%+ + + + + + + + + + + + + t@)#$#)#$#r#Q@Q@F@E@t@f@f@f@|@=@@@=@W+X++@D+q+s+o+7+7+f+<+<+]+m+X.-+ +O.D.D.x.h.h.c.%.1$'%2%O++...B C V C V C C V V C V C V C >.4.C V V >.V 4.C 4.4.C >.>.V V V D> ",
-" 0 ^ ] ^ { ^ ] ] { { ^ ^ ] { ^ { ] ] ] ] { ] { ] { { ^ ] ^ ^ { ^ ^ _ _ $.{.{.2.2.c.i.v.i.w.D.D. +$+.+-+]+<+]+<+7+7+x+n+C+D+C+D+S+X+@@=@=@6@f@|@t@t@t@M@Q@r#r#-#)#)#)#4#7#5#f#f#y#E#u#O#O#U#+$!$~$~$3$_$F$A$W$/& %X$_%_%K%A%r%B%#&B&}&b&b&X&p&<*5%+ + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+E>7>r>r>F>G>H>H>I>I>I>I>J>w>x>K>9>/>6> >M;A;k;h;e;);L>M>A-N>O>w-P>,-$-Q>j>A=g=g=R>}=]=-=-=.=`*U*G*w*n*g*7*7*1*~*$* *Z&Z&R&H&r&l&f&n&**|&_&_&`%`%C%C%E%+ + + + + + + + + + + + + S>/#$#`@$#$#W@F@M@y@t@q#|@f@=@=@=@S++@D+D+C+s+y+q+7+7+<+<+]+'+-+-+.+X.D.D.D.D.i.h.c.=.1$o&+...^.^.$$V C >.C V >.V V V V 4.C C C C >.V 4.C 4.>.4.C V >.V >.V V C 0 ",
-" { { ] ^ / { { / ] ] { ] { { ] ] { ] { { ] { ] / / { { ^ / { ] ^ J l _ %.!.7.2.c.h.i.i.v.D. +.+.+-+'+'+<+2+7+e+7+q+q+s+C++@D+*@T@x@=@/@^@|@f@f@t@t@y@F@W@W@$#-#)#)#4#7#3#7#f#)$y#E#O#O# $ $~$~$~$7$3$A$F$F$X$W$K$_%4%4%K%r%`&X%X%(&,&b&b&W&:*T>+ + }*G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+U>V>W>G>X>Y>Z>`>`> ,., ,+,H>H>@,K>#,/>6>c>[>`;j;$,e;%,&,.;*,O>=,3-,--,;,K=j>v=g=>,[=<=-=)=%=+=T*U*w*m*m*b*7*}*#*&* *.*R&E&s&r&l&j&d&c&|&_&&&&&T%C%C%E%+ + + + + + + + + + + + + ,,)#)#l#r#Q@F@M@U@s@s@g@f@/@=@@@@@@@D+e@C+K+s+s+o+7+7+2+]+<+]+|+-+X..+D.D.K.h.c.2.2.( ,#M M O+^.C ^.V V >.V C >.V C >.C V C C C V V C 4.C C C >.C C C C C V >.4. ",
-" y ] ] { { { ] { { { ^ ] { ] { / / ] ] { ^ { ^ ^ ^ { { { { ] { { =._ _ {.{.2.2.C.i.i.w.x.D. +O..+.+1+]+:+<+<+7+7+7+y+q+C+D+D+D+@@@@=@/@^@|@f@t@t@y@Q@U@Q@W@W@)#)#)#}#4#7#3#f#)$)$u#N#N# $@$~$~$7$3$3$A$u$A$W$X$c%_%_%_%K%B%r%@&@&N&(&X&b&w&p&^*+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+',),G>!,Z>~,{,],^,^,/,(,/,],_,X>@,W>:,^>n>M;A;`;h;<,[,L>.;R-},|,3-1,-,X=;,j>K-g=g=4=]=-=2,%=+=G*G*w*x*l*e*7*1*#* * *L-R&y&r&r&l&m&j&g&|&_&%&*&=&T%M%M%+ + + + + + + + + + + + + 3,/#$#l#Q@Q@M@F@t@s@s@|@|@=@/@@@@@S+X+D+D+C+q+y+x+7+2+<+2+<+m+'+.+ + +{+D.D.w.c.i.h.F.+.O++...^.>.>.V C 4.V V V C 4.C 4.V C C C V C 4.V C >.C V V C >.>.4.C V 3= ",
-" : ] { ^ { { / ] ^ ] ^ { { { / / { { { { ] { ] { { ] / / { ^ { ] ^ _ l !.!.!.3.2.j.h.i.i.D.W..+X..+-+-+]+<+6+2+7+7+y+s+K+D+D+S+S+X+@@@@/@^@f@f@f@t@F@F@Q@Q@V%W@)#)#)#/#4#a#7#f#)$E#E#O#N#U#@$~$~$8$3$3$A$A$!%F$X$X$_%_%K%K%r%@&@&@&N&}&}&r*p&4,+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+5,6,!,7,8,9,0,a,b,c,d,a,/,/,],e,X>x>a>f,g,c>L;`;l;h,i,}>j,R-N>},B>P>-,k,Q>j>K-v=R>l,^=-===%= =S*G*w*v*g*g*7*7*~*&*$*Z&Z&H&s&r&t&m&6&7&|&2&&&`%T%T%C%D%+ + + + + + + + + + + + + m,)#`@Q@W@Q@Q@M@t@g@s@f@|@/@=@W+@@X+D+D+K+q+s+s+y+7+g+2+]+'+'+-+X.X.X.D.D.D.i.v.C.2.U++.M M ^.^.B >.V >.V >.V C C C >.C 4.>.V >.C 4.C V >.C C V C >.V >.4.>.>.n, ",
-" F ^ { / { ^ { { ] ^ { { / { ] ^ / ^ { { { / ] / { ] ] { ] { / ^ / ^ %.l !.{.2.c.i.w.h.x.D.{+W.X.X.-+'+]+<+]+2+7+7+y+o+s+s+D+D+S+X+@@=@/@6@f@f@t@y@E@M@Q@Q@W@$#)#)#)#/#}#a#a#f#u#E#u#E#U#U#.$@$@$~$3$3$3$&%F$W$W$_%_%_%K%r%r%`&@&@&}&,&}&X&p&9%+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+),o,8,9,d,p,q,r,q,s,t,u,v,w,x,y,Y>G>5,z,^>A,4>B,Z;h;C,D,E,f>Q-;>F,P>-,k,M=1>1>g=g=R>]=-=&=&=%=T*G*w*v*k*e*7*}*}*$* *Z&R&z&E&r&l&j&e&c&|&_&_&!&`%T%O%N%+ + + + + + + + + + + + + Y+$#$#$#W@Q@F@E@t@t@f@f@r@/@>$=@@@@@S+S+D+C+s+x+7+7+<+<+<+'+'+|+.+X.D.D.w.D.v.h.c.2.j#+.M ^.[.^.W#V C C >.V V >.C 4.>.>.4.C C 4.C C 4.C V C >.C C >.C >.C 4.C Y ",
-" { ] ^ ] ^ ^ ] ] ] ] { ] { { { ] ] ] ^ { { { { ^ ^ ^ { { ^ { ] J _ _ %.~.2.7.c.2.c.h.x.D.W.X.X..+X.'+m+'+]+2+g+y+7+s+s+C+D+D++@X+W+=@=@^@f@f@f@s@t@F@F@Q@l#$#v&)#/#4#4#a#f#f#y#T#u#E#N#O#U#U#@$h$~$_$_$3$F$W$K$K$_%_%k%K%K%B%`&X%X%(&}&}&b&i$+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G,H,I,J,K,L,M,M,K,N,s,s,u,u,/,O,P,X>x>5,7>Q,R,S,T,U,<,V,E,W,X,},Y,P>Z,`,K=j>1>g=r=R>]=,===)=+=S*G*v*n*m*7*7*}*|*#* *Z&Z&F&z&r&l&f&e&6&|&_&&&*&T%T%C%F%+ + + + + + + + + + + + + '$#`@l#M@F@F@t@t@s@f@f@f@^@@@X+@@W+S+C+s+s+s+x+y+e+e+<+<+-+-+.+.+W.X.D.V.i.w.h.2.c..',#+.M ^.^.>.>.>.4.C C V C 4.C V >.4.4.V V V 4.>.V C C V C C C V C C >.C ",
-" f { ^ { { ] { ] ^ ] ^ / { ^ / { / ^ ^ ] ] { ^ / ^ { ] / ] { { { _ _ _ !.{.{.c.,@c.i.i.w.D.W. +X..+'+]+<+<+2+7+7+x+q+s+D+D++@S+W+=@($/@6@=@f@g@f@y@t@F@Q@W@`@`@`@)#/#/#4#0#7#f#T#E#u#N#U#U#@$~$~$~$7$3$A$A$F$F$X$X$_%4%r%r%r%r%B%B&X%}&0*b&h@+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G++'I,J,@'#'$'%'&'*'='K,s,s,d,c,-'y,;'G>5,q>^>n>>'T,I;,'''E,.;*,)'V;B>Z,`,!'1>1>g=>,~'-=-=&=&=.=T*G*v*m*b*b*|*}*}*#*Z&Z&G&E&H&l&t&e&c&c&|&3&&&)&`%C%C%D%+ + + + + + + + + + + + + {'-#$#r#Q@M@F@y@s@9*f@7@|@/@@@=@X+D+D+C+C+C+y+7+y+2+7+2+:+'+-+.+X.W.X.D.x.x.h.r.c.!.U M ....^.^.4.V C V C >.C C >.4.>.C 4.V >.>.C 4.V V 4.C V >.V >.C C V 4.3+ ",
-" ]'{ ] ] / / ] ] { / { { / ^ / { ^ { ] { / ] ] ] ^ / { { ^ { ^ / ^ ^ %.!.{.2.2.j.r.i.w.w.D.W.{+.+1+'+'+'+]+<+g+7+y+y+s+s+D+S++@S+W+X+r@=@f@|@f@g@t@F@Q@Q@W@$#$#)#)#4#4#5#3#f#f#I#E#u#u#N#U# $@$~$7$7$l>A$A$F$F$W$K$*%_%4%A%r%r%r%@&@&X%(&X&+ + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+^'J,/'%'('_':'<'['}'|'N,s,r,b,x,8,Z>G>5,',1'5>2'`;I;,'''3'4'R-x-5'6'7';-!'j>1>g=R>8',=&===%=T*G*w*w*m*b*7*}*1*&*&* *Z&P&H&S&l&m&j&c&6&|&&&!& &~&T%O%G%+ + + + + + + + + + + + + 9'l#Q@r#F@U@t@t@t@f@f@f@=@@@@@S+X+D+D+Q+C+q+s+7+7+]+]+<+]+-+.+.+X.W.D.D.D.w.h.C.c.0'+.+.M ..^.B C >.C V >.C C C V V V C C V V V V V V C V 4.4.>.C V 4.>.C >.D> ",
-" a'/ { ^ { ] { / / { ] ^ { ] { ] { / ] ] ] { { { ] ^ { { ^ ^ ] { J _ _ %.{.2.{.c.j.~@x.x.x.D.W.{+-+-+-+m+<+]+2+7+7+q+r+s+D+D+S+S+S+=@@@=@r@f@g@s@t@t@F@F@Q@$#`@`@)#/#/#3#4#f#7#f#)$u#u#U#U#.$@$@$~$_$3$o$3$A$A$K$ %c%_%4%A%A%B%B%B%R%5&,&W$+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+b'c'd'e'f'f'g'h'i'%'j'k'N,r,l'm'8,n'G>),o'p'q'4>`;r'h,''e>4's'x-|,6'7't'u'K=1>>,R>~']=&=)=%=S*U*u*u*m*b*7*7*}*&* *Z&R&P&y&S&l&m&f&n&h*|&2&&&)&`%T%C%E%+ + + + + + + + + + + + + v'`@W@Q@M@Q@E@t@g@q#f@^@r@@@=@@@X+S+C+s+s+q+q+7+7+<+]+<+'+-+'+.+X.X.W.D.D.h.h.c.2.w'+...M ..^.4.V C V >.>.>.C 4.C V C V C V V 4.>.C 4.V V >.4.C >.4.V V C C %@ ",
-" / ] ] ] { ] ] { ] ] { / / { { { ] { / ] { ] ] ^ { ^ / ] { ] ] ^ _ _ %.%.{.2.c.i.i.h.w.i.D.D.X..+-+-+-+:+6+2+e+y+7+y+s+C+K+X+*@S+W+W+/@=@r@f@s@s@t@y@M@Q@Q@H#`@.&)#/#4#7#3#7#y#E#u#E#O#O#U#@$@$~$~$7$3$_$A$F$F$!%X$c%X$_%_%A%B%@&@&@&X%d=+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+x'y'z'A'B'B'C'D'E'F'='N,p,l'G'y,n'G>),r>^>q'4>H'I'$,''e>J'K'x-L'6'M't'N'j>O'R>6=l,-=-=)=%=+=G*w*w*m*b*7*7*%*#* *Z&Z&P&H&r&l&l&e&6&c&|&_&!&*&`%C%C%n%+ + + + + + + + + + + + + P'`@$#Q@F@y@t@t@f@|@/@=@=@=@X+W+D++@C+s+C+s+y+7+2+g+<+'+-+'+.+.+X.W.P.V.x.h.j.j.2.S +...^.^.^.^.W#C C >.V >.C C C C C 4.C C C >.C C C C >.4.C 4.V 4.C >.V >. ",
-" w+] ] ^ / / / ^ { / { ] ] { { ^ ] { ] ^ { ^ { / ] ^ / { ^ ] ^ { _ _ l %.{.3.c.2.h.v.w.D.D.{+O..+X.-+'+]+]+2+7+n+7+s+q+s+C+D+D+S+S+=@/@6@6@f@t@t@y@y@F@E@Q@l#`@6#)#/#)#'*7#7#f#f#t#E#%%u# $ $@$~$~$~$_$7$A$F$F$ %W$X$X$k-k%A%r%@&@&R%X%>=+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Q'g'B'R'S'R'T'C'U'V'W'p,r,l'm'n'H,!,X'',Y'Z'2'H'`'h,'' ).)+)@)#)6'M'`,!'j>O'r=r=l,,=&=)=.=S*G*v*n*n*g*7*}*|*~* * *P&H&z&I&l&l&7&7&|&_&_&~&*&T%T%C%F%+ + + + + + + + + + + + + $)W@Q@Q@t@F@t@t@f@f@f@=@/@-@X++@X+C+C+q+q+x+x+7+2+2+'+]+-+-+-+.+.+P.D.D.K.v.h.c.2.e M O+^.^.^.W#C C C V C V V >.V C C C C C C C >.V >.4.V V >.4.C V C 4.V m$ ",
-" %){ { / ] { / { ^ { { ^ ] { ] { { / ^ ] { { / { / ^ { ^ ^ / { { J _ {.$.{.{.2.j.c.i.h.D.D.O.X.X.X.-+:+]+<+]+7+7+n+7+s+C+C+D+D+X+X+W+=@=@^@r@f@g@y@y@M@Q@Q@W@l#l#)#-#/#3#7#3#f#y#f#u#u#N#u# $~$~$&$~$7$8$o$F$A$F$X$*%X$X$A%4%r%r%r%R%@&'&+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&)*)=)-);)>)R',)D'')))J,l'l'0,n'H,!,X'!)p'~){)H']),'''^)W,+)x-#)/)M'()!'1>O'R>[=[=-=&=.= =G*G*w*x*g*f*7*7*}*~* * *P&G&y&r&t;e&n&7&|&_&&&)&*&T%C%N%m%+ + + + + + + + + + + + + _)$#W@M@F@y@t@s@|@|@^@/@/@x@W+S+S+C+D+Z#q+s+r+7+2+<+<+'+-+l+.+.+X. +D.w.x.i.h.2.7.+&+.a+^.^.^.W#C V C V C C >.C V 4.C >.4.>.4.V C V 4.V >.>.>.V V C C 4.C [+ ",
-" { { / ] ] { ^ { { { ^ { ] / / ] / { { { ] { / ^ { ^ ^ / { { / ^ _ _ $.!.2.{.c.j.h.h.x.D.P.D.O..+-+'+-+<+<+<+<+7+s+r+J+K+C++@+@X+X+=@=@/@f@s@f@t@E@y@Q@Q@Q@$#W@-#)#4#3#4#5#7#7#I#E#u#%%O#U#@$U#&$~$~$_$o$:)F$F$W$K$_%X$_%4%r%B%L%`&R%<)+ + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+[)})|)1)2)1)R',)3)4)@'5)6)7)0,n'o,8)9)0)p'a){)b)]),'''c)d)X,@)#)e)Z,k,!'1>f)~'[=<=&===`* =[-G*w*n*f*e*7*|*&* * *Z&P&E&r&l&l&f&6&7&|&_&&&)&Z%T%C%E%E%+ + + + + + + + + + + + + _)Q@W@F@F@t@g@t@f@|@^@=@@@@@@@D++@D+J+q+n+y+7+7+7+6+]+]+-+-+.+X.D.D.i.v.h.i.c.c._ ,#+.^.a+^.4.V C C C 4.C C 4.V C C 4.V C V C >.V V V C >.>.>.4.V >.C C 4. ",
-" : ] ] { ^ ] / / ] { { { ^ { ] ] { { ] ^ / / ^ / / { { ^ ] / { ^ _ %.%.{.{.2.2.c.h.w.w.x.D.P.W.X.-+-+'+]+]+]+7+7+n+n+s+q+C+D+D+S+@@-@/@/@|@f@t@g@t@G@U@Q@W@$#l#`@`@/#/#3#3#0#7#f#y#I#u#N#U# $!$@$&$~$y%3$3$A$F$F$K$K$ %4%_%A%k%B%B%B%+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+g)z'h)i)1)j)k)*)l)m)n)o)7)0,p)q)G,r)9)0)s)t){)T,])u)v)w)x)y)},z)C>A)B)!'O'K-l,C)<=)=&= =+=G*G*w*m*b*7*}*~*~*$*2*Z&P&H&s&l&l&n&6&6&y*_&&& &`%T%C%D%D%+ + + + + + + + + + + + + D)Q@Q@F@E@t@f@f@f@=@/@=@X+=@@@S++@D+C+q+s+n+7+2+g+<+]+'+.+.+,*X.P.D.D.V.i.i.c.2.` +.M O+^.C ^.4.>.C C C >.V C V 4.C V >.C C V C C 4.V C C C C >.V C V V Q% ",
-" w%{ ] ^ ^ ] ^ ^ ^ ] { ] { { / { / / ] { ^ { / ] ^ / ] / ] / { ^ J %._ !.{.7.l.2.i.i.v.i.D.W.D.W.X..+-+'+2+6+<+7+y+s+r+C+C+C++@D+W+x@=@=@^@|@g@f@t@t@F@M@Q@r#W@`@E))#/#/#4#3#f#f#t#y#u#u#N#U#U#U#@$~$7$h$7$3$F$F$W$F$K$X$X$4%4%4%r%B%+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+x'F)})G)|)H)A'g'I)F'J)I,0,K)n'G,L)M)N)O)s)P)Q)R)S)T)U)4'V)Q-W)X)Z,-,N'1>O'Y)[=[=<=&=%=+=+=G*v*u*k*b*b*}*#*&*2* *Z&P&y&r&l&l&j&f&|&_&_&!&*&=&T%M%D%H%+ + + + + + + + + + + + + Z)Q@M@Q@y@s@s@s@|@^@r@@@@@@@X+D+C+J+s+s+x+7+7+g+7+]+:+:+'+.+.+X.D.D.i.i.j.i.h.2.F.M M a+^.^.>.4.C C C V V >.C 4.V C >.4.C V C >.4.C >.4.>.C C >.C >.4.V w% ",
-" ] { ] { / ] { ] ^ { ] ^ { ^ { ] ^ ] ] ^ { { { ] { ^ ] ] / ^ / { _ _ !.!.2.!.2.2.h.v.V.D.D. +X..+.+'+'+]+<+e+7+n+n+y+q+C+C+D+X+S+-@@@/@|@/@f@g@s@t@t@F@M@Q@$#W@$#)#)#}#4#3#7#7#I#y#y#V$u#O#U#!$@$~$7$_$3$o$A$F$(%!%K$K$_%_%4%4%A%3$+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+c'`)F)z' !.!+!@!m)#!$!0,%!&!G,*!=!9)-!;!~)>!b),!u)'! ))!V))'W)!!~!`,{!1>]!^!8'<=<=&=.=T*G*G*u*l*f*b*7*7*!*&* * *P&E&E&r&l&l&n&6&7&_&8&!&`%T%C%C%G%m%+ + + + + + + + + + + + + Z)F@y@y@y@t@f@|@=@6@=@=@W+@@W+D+C+K+J+7+y+7+2+2+]+:+'+-+-+.+X.O.D.x.D.i.i.c.r.{.u++.+.^.^.>.>.C V C C C >.>.4.>.>.4.4.V >.C 4.V V >.4.>.V >.4.>.4.C V V ",
-" ]'{ / { { ] / { { ^ ^ ] ^ { { { { ] ^ ] ^ { / / ^ ^ ^ ^ ^ { ^ _ ^ _ %.%.{.l.c.c.c.w.w.D.D.D..+-+-+-+-+]+2+g+7+x+s+n+r+K+K+C+D+X+S+=@@@=@^@f@|@f@t@t@F@Q@W@W@$#)#$#/#/#/#4#a#f#f#T#y#u#E#u#U#+$ $+$~$h$7$A$_$A$F$W$!%W$X$_%4%4%A%4$+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+/!x'(!_!:!<![!}!|!1!K)&!q)2!3!4!!);!5!P){)R)6!u)v)7!8!X,},9!0!~!a!!'1>b!c!<=^=&= =%=S*G*w*x*x*b*7*-;}*#*~*o*Z&R&H&I&s&m&j&n&|&|&2&_&`%`%*&O%F%E%n%+ + + + + + + + + + + + + d!F@U@E@t@f@g@7@f@r@=@@@W+S++@D+C+s+y+y+7+7+7+<+<+'+'+-+-+.+ +P.D.x.x.i.j.c.c.{.U +.M ^.^.^.>.4.>.C 4.4.C V V V C 4.4.V 4.C >.V C C C >.V C C C C 4.C e! ",
-" j%] ^ ] { ] { { { { / { / ^ { / { ] { ^ { ] / ] { ] ^ { { ^ { ^ _ _ ~._ {.{.c.2.h.h.w.D.D.W.D. +X.-+'+:+<+<+2+2+o+o+q+s+q++@D+S+@@@@@@r@=@f@f@f@t@t@F@U@F@W@`@`@)#-#/#/#4#3#s#f#f#)$u#V$O#N#O#@$ $@$~$h$_$_$o$o$A$K$K$X$X$X$_%4%b#+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+f!g!h!/!i!}!j!f!&!&!H,q)L)r)k!!)l!s)~)>!b)`'m!n!o!J'p!X,q!r!s!t!u!{!O'c!v!<=<=&=`*+=1=G*x=x=k*k*7*}*|*%* *Z&Z&R&y&r&r&m&j&6&c&_&2&_&*& &T%T%O%E%m%+ + + + + + + + + + + + + d!E@F@t@t@s@|@f@^@=@=@@@S++@D+e@C+s+s+q+7+7+2+]+'+:+-+'+-+.+X.D.D.x.i.i.c.c.c._ +.M ^.[.^.V V C C 4.V C V >.C C >.4.>.C >.V V V C C C V V >.4.>.C >.V 2# ",
-" 3%^ { ] { ] { ] { ] / ] ^ / ^ ] ^ ^ ] / ^ ^ { ] / ] ] { ^ { ^ ^ ^ _ _ {.{.2.2.c.h.w.D.D.D.D..+$+$+'+<+:+<+<+e+7+7+s+q+C+C+C+D+X+@@=@=@=@/@|@f@f@t@y@Q@Q@Q@Q@W@-#`@/#/#/#4#3#7#7#y#y#I#O#U#U#U# $~$~$7$7$8$3$o$F$K$W$X$_%c%_%A% #+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+w!x!y!b'b'z!K)x!2!2!2!A!=!B!C!l!s)~)>!D!R)E!F!v)c)W,V))'G!0!A)H!!'{!Y)Y)~'<=^=`*.=T*S*G*u*v*b*7*7*}*%*2* *Z&P&R&y&r&l&l&e&d&|&_&&&%&~&=&C%C%G%n%e%+ + + + + + + + + + + + + I!E@t@t@t@9*f@|@6@=@@@@@*@D+C+s+C+q+r+q+7+2+e+<+<+-+'+$+X.X..+D.D.i.h.v.c.C.c.3 M [.^.^.C V V 4.C V C >.V 4.V V V V >.V C C C 4.4.C V 4.C 4.>.C C >.0% ",
-" J!] / { ^ { { { { { { { ^ ^ ^ { { / { / ] ^ ] ] ^ { { ] { ^ { ^ _ _ {.{.{.l.c.c.h.i.w.D.D..+W.-+.+-+'+]+]+f+g+7+7+y+y+C+C+D++@X+X+X+@@r@=@f@q#q#s@y@M@Q@Q@Q@W@`@`@)#/#4#4#3#7#f#f#f#u#E#O#N#O# $ $~$~$3$7$3$_$F$F$F$!%!%W$X$_%K!+ + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+N)L!w!M!N!O!L)L)A!=!k!B!P!Q!R!s)P){)S!T!U!V!U)W!X!Y!G!Z!`! ~B).~.~c!+~<=<=%-%=T*S*G*w*v*n*b*c*}*|*~*$* *Z&P&G&S&r&l&t&j&c&|&_&)&&&`%T%C%M%F%n%m%+ + + + + + + + + + + + + + F@t@f@9*f@7@6@|@=@@@@@X+S+D+D+C+s+7+y+7+g+6+]+'+]+-+.+X.X.X.D.x.w.i.h.2.c.c.S O+[.^.^.^.C >.C C >.>.C C 4.4.>.C C C V C C C C C V >.C V V 4.C V V b. ",
-" ^ { ] ] ^ / ] { ^ / { { { ] ] ] { { / ] ^ { ] { ^ { ] { { { { ^ _ !.~.!.2.2.2.h.w.h.K.D.D.X..+.+-+-+:+]+6+f+2+7+x+n+s+K+D+D+D+X+W+=@=@/@^@f@s@g@s@y@F@M@F@l#W@`@`@`@)#4#4#7#f#f#f#u#u#E#N#N#U#U#U#&$7$~$3$3$_$A$F$F$W$/&X$_%+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+@~C!C!C!#~#~#~#~#~#~C!$~;!%~s)&~*~=~-~;~>~,~W!8!'~)~!~e)~~`,{!.~O'{~]~<=^=== =+=G*u*v*m*b*7*7*-;~*~* * *Q&P&z&z&r&l&e&d&6&**_&!&!&*&T%M%M%D%m%e%+ + + + + + + + + + + + + ^~y@s@s@f@f@|@=@=@@@@@X+S+X+D+D+s+n+7+x+7+2+6+]+'+-+'+.+.+X.D.D.D.x.i.h.c.c.c.J*......^.>.C C >.>.>.C C C 4.>.>.V 4.V 4.C C >.4.V V 4.V >.V >.C 4.V ",
-" $%] { ^ / ] / / { ^ { { { / ] { ] ^ ^ ] { ] / { / ] / { ^ ] J =._ _ !.!.{.c.2.h.h.x.w.x.W.X.W.X..+-+'+'+<+<+7+7+7+s+s+C+K+D+9&+@X+W+=@=@6@|@|@t@f@t@F@E@Q@W@Q@`@)#)#/#)#4#3#7#a#f#)$)$u#U#u# $U#!$!$~$~$h$_$3$o$F$A$W$!%X$X$+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+/~(~_~:~<~[~C!$~$~Q!}~s)|~1~2~3~4~-~u)5~6~7~8~'~'~9~F,s! ~B).~.~^!0~a~^=,=%=S*S*w*w*w*m*b*7*}*|*~* *3*.*G&H&z&r&r&j&e&6&g&|&3&&&~&Z%T%C%D%D%m%e%+ + + + + + + + + + + + + + t@g@g@f@|@6@r@@@@@X+*@X+D+K+K+q+o+q+7+7+<+6+:+Z+'+-+.+X.D.W.D.w.v.i.h.j.c.2.M +.[.^.>.V C C >.V C V V C C C >.V >.V C C V V C V V V >.V 4.>.V 4.)% ",
-" / ^ ] ] ^ { ^ { { { ^ / ] / { { ] { ^ { { { { ] { { ] ] / { _ _ l !.{.2.2.j.j.h.h.w.w.D.W.D.-+.+-+'+'+]+6+]+7+7+7+q+q+D+K+e@X+S+-@=@=@r@/@|@s@t@t@t@M@Q@Q@Q@l#$#$#/#)#}#4#3#5#f#f#f#I#u#N#U#U# $&$~$~$~$7$_$o$_$A$F$F$K$J#+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&~b~s)/~c~d~R!(~e~R!f~g~h~i~=~j~-~k~T)6~7~l~p!y)m~n~0!o~B)N'.~]!+~~'<=p~%= =T*G*G*w*l*b*b*7*1*1*%* *Z&P&P&E&z&r&l&t&f&7&|&|&_&%&~&T%C%C%D%H%m%g%+ + + + + + + + + + + + + + t@f@q#|@|@=@=@=@x@X+D+D+C+D+s+y+7+7+7+6+]+<+]+'+|+.+$+W.D.D.D.x.i.j.,@c.2.` ..[.^.^.>.C C 4.C >.C V C 4.V C C C V V C C 4.V V V C C 4.>.>.V V V ",
-" U$] ] ] { { ] { ] ] { ] ^ ^ { ] ^ ] ] ^ / { / / ] / ^ ] / { ] _ !._ !.{.2.{.2.i.j.x.w.D.D.{+.+-+.+-+]+]+2+2+7+7+r+s+s+Z#D+D+D+S+S+X+@@/@f@|@|@q#t@t@t@M@M@W@Q@`@`@$#)#/#4#7#3#f#7#E#y#u#u#u#N#q~ $~$&$~$7$8$8$_$o$u$A$F$u&+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+r~&~s~s~b~t~b~g~u~r~h~*~4~`'T!k~v~'!7~l~p!w~5'x~0!t!y~a!.~z~A~0~~'^=p~S*S*G*w*w*n*n*b*7*H;}*#*$*Z&Z&P&E&H&s&l&l&e&f&c&|&_&&&%&`%T%T%M%t%m%m%e%+ + + + + + + + + + + + + + s@t@|@f@6@r@=@x@@@X++@C+C+K+s+y+x+7+7+6+2+5@<+'+'+-+ +{+D.D.w.w.h.h.c.2.2.U+^.O+^.^.C C C C C >.C C C V >.4.>.V V C 4.C >.C 4.>.C C V V 4.C 4.H. ",
-" 2#] / { / / ] ] { { { ] ] { ] { { ] { ] / { ] { / ] ^ { / / ^ _ _ _ %.~.{.c.c.h.h.h.h.D.D.W.X.$+.+-+'+Z+<+e+2+7+x+y+q+C+q+D+C+X+W+X+=@=@/@^@|@|@t@D@y@F@Q@Q@Q@l#`@)#)#)#/#4#5#s#f#f#t#)$u#u#N#O#U# $~$~$~$~$3$_$o$u$u$F$B~+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+4~D!*~*~i~h~h~h~=~C~S!D~E~k~F~'!G~H~I~8!J~K~L~0!~~t!M~N~z~]!0~a~a~'=.=S*[-w*u*n*l*b*b*7*}*~*&* * *Z&R&E&r&r&l&e&6&d&|&|&)&!&*&`%C%C%D%E%p*e%7%+ + + + + + + + + + + + + + t@q#f@/@=@=@@@@@@@D++@D+C+s+s+s+q+7+7+]+]+:+m+'+l+X. +D.O.D.w.w.h.j.c.7.g.j#+.^.^.>.W#V >.C C 4.V >.C V >.C 4.C V C V V >.C V 4.C V C 4.V V 4.2# ",
-" O~^ ^ ] ^ { { ] { { ^ / ] ] { ^ ^ ] ] ] { ^ { ] ^ ^ ] ^ { ^ _ _ _ _ !.!.{.2.2.h.h.K.V.D.W.X. +-+'+'+'+<+<+6+7+n+y+y+C+q+C+D++@X+X+=@=@=@|@^@f@s@g@t@t@F@Q@W@r#`@l#)#/#W%)#4#s#3#7#f#E#y#u#N#U#u#U# $@$~$~$~$3$_$3$F$A$P~+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+D~D~Q~S!S!R~R~R~D~S~E!E!F~T~'!U~V~W~X~Y~Z~!~0!`~t! {u!.~.{0~0~C)^=&=S*S*G*w*w*l*f*b*7*}*}*%*&*$*Z&R&H&z&r&r&l&f&c&7&|&2&3&%& &`%O%G%F%m%m%e%f%+ + + + + + + + + + + + + + t@|@|@/@/@=@@@W+X+S+D+K+s+s+r+y+7+2+<+6+]+Z+'+$+.+X..+{+D.V.V.x%i.2.c.2.=.+...[.^.C ^.>.V C C V C C 4.>.V V 4.V 4.C 4.C V V C C 4.V C >.>.V W ",
-" z$^ ] { ] { { ^ ] / ] ] ^ ^ / { / { / ^ ] ^ ^ ] ] / / ] ] ] { _ _ _ {.{.{.2.2.c.c.h.i.x.D.{+X.$+1+.+'+]+<+6+2+7+y+q+q+s+K+D+S+X+S+W+($r@r@f@|@f@g@t@F@U@Q@Q@W@$#W@)#-#/#/#4#d;7#7#f#y#)$f#u#U#u#U#U#&$~$~$~$h$3$_$_$A$+{+ + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+@{E!#{${#{#{@{E!%{&{v~*{={V~-{;{>{,{'{!~){`~t!H!N~z~!{A~~{a~{{p~`*S*G*w*v*x*l*b*7*7*1*|*&*$*Z&Z&P&z&z&l&l&j&j&d&c&|&&&!&*&`%T%C%C%F%m%e%e%<%+ + + + + + + + + + + + + + f@f@^@r@=@=@X+W++@X+D+s+J+s+q+n+7+7+]+]+'+<+-+$+-+X.D.P.D.D.i.i.h.2.2.7.F.O+M ^.C ^.V V >.4.>.C 4.C >.>.4.>.>.>.4.C V C C 4.>.>.V C V C >.C z$ ",
-" l@] ^ { / ] ] ] / { { ^ ^ ] { ] { ] { { ^ / ] { ^ ] ] ] { ] J _ l #.!.7.c.c.h.i.v.v.V.D.W.{+W.-+-+'+'+<+]+]+7+7+y+q+s+s+D+D+S++@X+-@=@=@6@|@f@g@t@s@t@y@F@Q@Q@$#W@)#)#)#/#4#4#5#s#a#T#f#E#u#E#N#O#.$U#+$~$7$7$8$_$_$+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+T~&{]{^{&{/{({]{6~_{G~:{<{[{X~>{}{Z~|{1{`~2{3{u!4{!{5{0~8'a~%=6{S*G*w*w*m*k*g*b*7*}*}*~* *Z&Z&G&H&s&r&l&l&j&c&|&|&2&2&!&`%T%M%N%C%H%H%e%7%8%+ + + + + + + + + + + + + + |@|@/@r@@@@@X+W++@D+Q+C+C+y+r+7+7+g+e+<+'+'+-+'+X.X.O.D.x.w.K.h.c.2.{.!.u+a+S.^.4.C V C >.V >.C C C V C C V >.>.C C V 4.C 4.C >.4.V V >.>.7{ ",
-" n${ { { { / { { ] { ^ ^ ] { / { { ] { ] / ] ^ { ] ^ ] ] ^ _ { _ _ l $.!.l.2.c.r.c.h.V.D.D.X.P.X.-+-+-+'+<+g+f+7+7+s+s+s+K+D++@S+@@S+=@=@=@^@^@f@f@t@t@y@M@F@W@W@$#-#)#`@/#4#'*5#7#7#y#I#t#u#%%N#N#U#.$+$!$&$~$7$8$3$+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+:{_{8{_{_{9{9{0{a{b{;{X~p!Y~c{Z~9~1{d{`~e{3{N~4{!{f{~{8'{{p~6{T*G*w*w*n*n*g*7*7*7*1*&*$*Z&Z&P&G&F&z&r&r&f&j&6&|&_&_&&&&&`%T%M%F%G%H%p*7%7%]%+ + + + + + + + + + + + + + |@7@f@=@=@S+@@S+D++@C+s+s+r+7+7+2+<+]+]+:+-+-+$+ +X.W.D.w.D.i.c.C.{.{.!.G.[.^.>.B 4.C C C C 4.C 4.V 4.C C V V >.V V C V C V C V C C V V 4.n$ ",
-" w+{ ^ ] { { ] ^ ] / ] ^ { ] ] ] { ] { ] ] { ^ { ] { ] ] { { _ _ %.!.{.2.2.2.c.i.h.w.D.D.D. +.+-+-+:+]+]+]+e+7+7+q+y+s+s+D+D+D+S+W+=@@@=@=@/@|@f@t@t@t@y@F@W@Q@W@$#`@)#)#)#4#4#f#4#f#f#T#E#u#E#N#u#U#U#+$~$&$7$7$f#+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+g{h{h{h{i{j{j{;{p!p!Y~c{k{9~l{d{m{t!H!n{N~4{!{]!o{~'{{{{%=S*G*G*w*n*m*f*7*7*7*}*1*#*Z& *Z&P&E&S&r&l&t&f&n&g&|&|&&& &`%T%T%O%M%H%:&e%7%6%[%+ + + + + + + + + + + + + + ^@=@/@@@@@X+X+9&C+s+C+s+x+n+7+2+2+<+'+'+'+1+X.X.P.O.P.x.x.v.i.h.2.c.2./ a+^.^.^.^.>.4.>.4.V C V 4.C V C >.>.>.C C C >.C V >.C C >.C >.V p{ ",
-" =#{ ] { { / { / ] / ] { { / ^ ^ / / ^ { ^ ^ { ] { { { ] ^ ] _ ^ l _ %.{.2.2.2.i.v.V.D.D.D.X.{+-+$+-+]+]+<+e+2+7+n+y+s+q+C+D+D+*@+@X+@@=@=@/@7@f@f@t@y@E@F@M@W@Q@r#$#-#/#/#4#4#4#a#7#7#f#f#I#E#N#N#N# $U#@$~$~$~$J$+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+q{r{X~X~>{>{>{c{c{c{s{!~!~1{){t{u{n{v{4{w{x{y{y{a~{{z{%=+=S*w*w*u*n*f*b*7*7*|*}* *$*Z&Z&Z&G&E&r&r&t&e&d&7&**_&3&2&*& &T%C%F%E%H%e%g%f%<%-%+ + + + + + + + + + + + + + =@/@r@@@X+@@S+D+C+q+s+s+o+n+7+g+g+]+]+m+'+-+$+.+W.D.D.D.x.v.j.r.c.2.!.U+..^.>.^.V C V C 4.C >.C V C V C V >.V V V >.C V C C >.C >.V C >.'# ",
-" _.] { ] ^ { / { { ^ ^ ^ { { / / ] ] ] ^ ^ { ] ^ ] { { { / ^ ^ _ %.l !.{.c.,@j.h.i.i.x.O.D.D.X.-+.+'+'+<+<+<+2+y+7+x+s+s+C+C+D+S+X+@@=@=@/@/@/@f@f@t@t@F@t@F@Q@Q@W@`@-#)#-#/#4#4#4#5#f#f#E#E#I#O#O#U#U#!$ $@$&$^*+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+k{A{B{C{C{C{C{D{x~E{E{F{`~G{H{3{I{v{w{J{]!y{y{K{z{z{L{1=G*v*u*v*n*b*7*b*7*-;}*~* *3*.*P&H&y&r&s&t&l&e&c&7&|&_&_&)&~&*&{*C%F%D%e%e%M{f%[%-%+ + + + + + + + + + + + + + /@=@@@@@@@S+D+C+D+D+y+q+q+x+7+<+]+]+'+'+'+.+.+X. +W.w.h.i.h.c.c.{.{.!.,#O+^.>.^.C 4.C V C V C C C C 4.C >.4.C C >.V V >.C C >.C >.C >.N{ ",
-" ^ { ] / ] / ] { { ] { ] ] { { ] ] { / / ] / ] { ^ / ^ { ^ { _ _ _ #.g$l.2.i.i.h.x.x.D.O.W. +$+-+'+:+<+5@<+<+7+x+y+r+s+C+C+S+D+D+@@W+@@=@^@|@f@f@t@y@t@E@Q@F@Q@Q@$#W@)#)#)#)#4#7#5#7#7#f#u#t#u#u#N#N#O#U#@$ $g#+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+O{l{P{Q{O{R{R{F{S{t{T{U{u{3{V{I{I{w{J{5{W{W{C)z{X{%=1=w*G*w*n*m*g*g*e*H;7*&*%* * *Z&R&G&H&H&r&r&j&f&f&c&|&_&&&&&)&`%T%C%F%G%m%e%7%8%<%[%-%+ + + + + + + + + + + + + + /@@@S+S+W+S+D+C+C+s+n+q+s+7+g+2+<+:+'+-+$+X.W.X.D.D.w.v.i.h.i.c.{.{.=.O+[.^.$$C 4.4.C >.4.V V C C >.C 4.C C V C C V >.C C V V V >.V V ",
-" Y{{ / / { ] ^ { { ^ ^ ^ { ^ / { ] { ^ ] { / { { { { { ] ] J _ _ _ #.%.{.c.2.j.h.h.D.x.D.P.X.X.$+-+'+]+<+<+f+7+7+o+r+s+q+s+D+D+S+S+X+=@^@|@f@f@|@f@g@t@G@y@M@Q@W@Q@$#`@`@`@4#/#}#5#f#7#f#f#u#u#E#u#E#U#U# $+$Z{+ + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+`{ ].]+] ].]u{@]U{3{n{n{#]I{$]J{J{!{y{W{W{z{%]&]p~G*w*w*u*x*m*l*f*7*}*}*%*~*2*$*Z&Z&R&H&y&r&*]l&m&c&7&**|&_&&&%&*&`%T%C%G%n%H%e%7%6%]%[%+ + + + + + + + + + + + + + + =@=@W+X+T@D+D+Q+q+s+q+y+7+g+g+6+]+]+'+-+1+.+{+O.D.D.x.h.i.2.c.c.2.!.-.^.^.^.C C >.C C >.V C V C 4.C V 4.>.C >.V C 4.C V V V >.V C >.=] ",
-" 3 / ] / { { { { { ] { ] { ^ ] / ^ { ^ ^ / { ] ^ { ] { { { _ _ #.%.!.2.2.2.c.c.i.i.D.w.D..+X.-+-+'+'+<+]+]+6+e+7+y+s+q+s+C+D+S+W+X+=@=@/@6@|@|@|@f@t@t@t@y@Q@Q@Q@W@l#$#)#)#)#4#3#3#s#0#7#y#y#E#E#J#u#U#U#U#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+-];]H{H{-]>],]#]#]#]$]I{$]']J{!{y{)]!]<=^=%]~]L{G*w*w*l*n*n*f*f*7*}*|*#*~* * *Z&Q&Z&H&S&r&l&l&j&f&7&|&|&|&2&&& &`%C%C%D%F%n%m%e%f%[%[%-%+ + + + + + + + + + + + + + + =@=@@@S+D+D+C+s+q+q+r+7+7+<+7+<+'+'+'+.+$+W.D.W.D.i.i.h.h.,@2.2.{.!.+&^.^.>.>.>.4.4.C V >.V V >.4.>.V 4.V V V 4.C >.V C C V C C C ,$ ",
-" `#^ ^ { ] / ] { / ^ / ^ ^ { { ] { ^ { { { / ^ / { { ] ] ^ ^ ^ ~.%.!.{.2.2.c.C.h.i.i.D.D.X.D.X.-+.+'+]+:+<+g+7+7+7+y+q+J+C+C+C+S+@@X+x@=@=@=@^@f@f@t@t@t@t@y@Q@W@W@Q@$#`@.&)#/#/#4#4#5#7#f#f#y#E#E#u#u#O#*-+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+{]]]^]]]/]/]]](]_](]_]J{f{!{:]W{W{!]%]p~L{L{P=w*w*x*x*g*b*b*d*7*}*}*!*~* *Z& *Z&F&R&y&r&r&t&j&e&6&c&|&_&3&)&*&`%T%T%M%F%H%e%e%7%[%<%-%-%+ + + + + + + + + + + + + + + @@=@*@T@D+D+s+s+y+s+n+7+7+2+]+'+:+'+1+.+W.X.X.D.D.V.x.h.j.c.2.{.!._ a+^.C C 4.V C >.C >.C C V 4.>.V 4.4.>.C C C C V V >.C C C C 4.= ",
-" =+] { ] ^ ] ] ] { ^ ^ ] ] ] { { { ^ ] ] { { ] ] ] { / { / ^ _ $.!.!.~.{.c.2.c.i.x.i.D.W.X..+.+-+1+-+<+<+]+]+7+7+n+q+q+s+K+D+S+S+@@@@@@=@=@|@f@|@f@g@s@t@U@G@Q@$#Q@W@-#`@)#)#/#4#5#5#7#3#f#y#I#y#u#E#u#-#+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+']']<][][][][]}]x{!{x{|]1]!]W{a~X{%]L{~]2]G*w*w*n*n*l*g*e*b*H;}*}*|*~* * *Z&Q&G&y&z&s&r&m&t&e&f&c&|&_&_&!&%& &`%T%O%E%G%H%e%7%8%]%[%{%@%+ + + + + + + + + + + + + + + x@S+D++@D+C+J+q+r+x+7+7+7+2+<+'+'+'+-+-+X.X.X.D.D.i.w.i.2.c.c.!.!.K a+>.^.>.V V C V V C >.4.>.4.C 4.V 4.>.4.>.V C >.V C 4.C C 4.W ",
-" { { { ^ { { ] / { { { / ^ ] { ^ { { { / { ] { { / ] ^ { ^ _ ~.%.!.!.7.2.h.,@h.w.i.D.D.D.O.X.X.'+-+<+'+6+<+2+7+7+q+s+3]C+J+D+D+X+W+=@=@r@r@7@^@f@f@t@D@y@t@y@Q@Q@Q@W@$#`@-#/#/#/#4#5#4#f#7#f#)$u#E#u#4]+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+5]:]6]5]:]6]5]5]|]5]7]8]9]0]&]~]p~L{a]P=w*w*m*x*k*l*b*b*7*1*-;#*#*%* * *Z&Q&P&P&y&r&r&l&l&j&7&6&|&_&_&&&%&`%~&T%C%E%m%H%e%e%7%]%[%-%-%@%+ + + + + + + + + + + + + + b]X+S+9&D+D+C+q+y+n+n+7+2+6+'+'+]+-+.+.+.+.+O.D.D.i.h.i.i.2.g.g.{.~.;.^.^.^.C C V C >.V C C 4.>.V C V 4.C >.V C C V 4.>.V V >.>.V ",
-" c]{ ] ] ] { { { ] { / ^ ] ] { { ] / ^ ] { / { ] { { { { / _ _ _ {.{.!.7.2.r.j.i.i.w.D.D.W.X.W.-+-+'+'+]+<+6+g+7+y+o+q+C+s+D+D++@S+X+@@=@=@=@|@f@f@f@t@y@t@E@M@Q@r#l#$#`@)#)#)#)#3#5#s#7#3#f#f#)$)$u#d]+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+!]~{!]W{~{W{0]a~0]a~&]e]f]L{L{L{L{P=w*v*x*m*l*f*f*7*7*7*}*|*%*&*~* *$*Z&P&P&H&y&r&l&l&t&m&6&c&c&_&2&&&!&`% &T%C%M%D%t%n%e%7%6%]%[%-%.%+ + + + + + + + + + + + + + + g]S+S++@s+D+s+q+7+7+7+7+7+6+5@'+:+.+.+.+X.O.P.w.V.i.h.c.h.c.2.2.{.=.^.[.>.>.V >.C V 4.C C >.C C C V C V V 4.V C C C V 4.C 4.>.C Q# ",
-" #.^ { { { ^ { ^ / { ] ] { { ] { ] { ] ] ] ^ ^ ^ / { { ^ J { l _ !.{.2.7.c.c.i.D.w.D.W.W.W..+.+.+-+-+'+2+<+2+7+7+y+n+q+J+C+s+D+X+X+@@X+V#=@=@f@|@f@t@t@t@E@t@Q@Q@W@W@$#$#`@)#)#}#4#4#5#3#a#f#y#I#T#h]+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&]&]&]&]&]&]i]&]&]&]L{L{2]2]j]P=P=x*x*l*n*g*g*e*b*7*}*H;|*%*~*%* *Z&.*G&F&z&r&I&r&r&j&t&j&7&|&|&_&_&!&~&T% &C%N%C%G%m%e%7%7%f%=%-%-%Z$+ + + + + + + + + + + + + + + k]S+D+D+C+Z#r+s+q+7+2+]+]+:+'+m+'+X.X..+D.{+D.w.v.i.h.i.2.2.2.{.!.T ^.^.W#C V C V V C C >.C C >.>.V V C V C 4.>.C >.C 4.C V V a+ ",
-" C#{ ] ^ / ^ ] / ] / / { ] { { ] / ] { / ^ { ] ] { ] ] / / _ _ _ $.!.{.2.2.j.c.v.w.D.D.D.{+.+W.-+-+'+]+<+2+<+7+2+7+r+s+q+C+C+C+S+S+X+-@=@=@=@7@f@f@f@t@t@t@E@F@Q@Q@W@`@`@$#)#)#)#)#/#4#4#7#3#f#f#E#O&+ + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+~]i]~]i]2]l]2]2]2]2]2]P=[-U*m]l*x*l*g*b*b*f*g*7*}*1*!*~*%*%* * *Z&Z&P&P&y&z&z&S&r&m&j&f&7&c&g&_&_&)&!&`%Z%C%O%O%D%m%e%7%e%7%]%=%@%@%+ + + + + + + + + + + + + + + + /*+@D+C+s+q+n+r+x+7+6+6+6+:+m+-+'+.+W.W.D.D.D.D.i.i.c.c.2.2.7.!.l ~=^.^.C V V C C >.>.C C C C C C V >.>.>.V C V C V C C V C C G# ",
-" n]^ ^ / { ] { ^ / / { / { / { ] ] ] ^ ^ ] { ] ^ { { ] ] ^ _ _ %.!.~.!.2.2.c.i.w.v.x.D.D.D. +X.1+-+-+]+]+<+2+7+7+7+o+x+s+K+C+S+D+X+S+X+X+/@^@|@|@f@s@s@y@t@t@F@F@a%l#Q@$#)#-#/#)#/#4#4#4#7#0#7#7#+ + + + + + + + + G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+w*G*U*o]w*o]U*o]o]o]o]w*m*m*m*f*b*b*b*7*7*7*-;}*1*|*#*&* * *2*Z&L-R&F&y&S&r&l&l&l&e&d&c&**|&_&_&%&!&*&T%T%M%M%E%t%m%e%8%7%[%[%p]|%#%+ + + + + + + + + + + + + + + + L#+@C+s+q+r+x+o+7+7+7+2+<+'+'+1+-+.+.+{+P.D.D.i.h.h.c.c.2.2.~.~.( ^.^.>.>.C V C >.4.>.C >.>.>.>.V V >.>.C V C C 4.>.C V V V B# ",
-" q]{ / ] ^ { { / ] { ^ ] { { ^ ] { ^ { / { / { ^ { / ] _ _ _ _ %.!.{.3.2.c.h.h.x.v.V.D.X. + +$+$+'+-+:+<+]+7+7+7+7+s+q+s+K+D+D++@X+@@@@@@=@=@7@^@f@g@f@t@t@t@F@Q@Q@Q@W@$#-#-#)#)#/#/#/#7#4#a#)#+ + + + + + + + r]G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+s]x*t]u]t]s]o]t]s]b*k*b*b*k*7*b*7*7*7*|*H;H;|*%*&*&*&*2* *Z&Z&G&P&z&E&H&r&r&m&l&j&7&6&c&|&_&)&)&`%&& &T%C%O%F%F%m%e%e%8%8%<%-%@%+%Y$+ + + + + + + + + + + + + + + + D+C+C+C+s+o+n+7+7+6+<+2+<+m+1+-+X..+ +O.D.x.V.v.h.h.c.{.{.!.l %.j#^.V >.4.V C C >.4.C C C 4.>.V V 4.C C C V V C C V V V 4.v] ",
-" p#] ] { { / ] / ^ ^ ] { / ] ^ { ^ { ] ^ ^ { { { { { ^ { / ^ l !._ ~.!.7.c.r.h.h.w.x.D.W.X..+.+.+-+'+'+:+<+<+7+7+x+y+s+J+s+D+D+D+S+X+X+@@=@/@/@|@f@|@g@t@y@t@E@F@M@Q@W@$#$#l#`@)#/#)#/#3#3#7#w]+ + + + + + + + x]G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+b*b*7*b*b*f*b*b*b*b*c*7*f*b*7*|*}*}*}*}*%*|*%*#*~* *2*Z&Z&Z&P&R&z&z&r&r&l&r&i=j&n&7&g&|&_&3&_&&& &=&T%C%G%C%E%m%m%M{7%6%-%{%@%@%#%y]+ + + + + + + + + + + + + + + + K+s+C+s+n+x+7+7+7+<+<+]+'+'+'+.+.+X.D.P.x.V.h.v.j.j.c.{.{.%.~.=.^.^.>.$$4.C C 4.>.V V C C V C 4.4.V 4.4.C V 4.C V 4.4.V >.k# ",
-" b.{ ^ ] { { ] { ^ { { ^ ^ / { ^ ] / ] { / ^ { ^ ^ { { ] _ _ _ !.{.!.7.c.c.h.j.i.D.D.D.P.W.O.X.$+|+'+'+2+]+g+e+7+7+7+q+s+s+D+C++@X+W+S+x@=@=@7@7@/@f@g@g@s@t@F@E@F@F@Q@W@$#$#)#`@-#/#/#4#4#U%+ + + + + + + z]A]G+G+G+G+G+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+7*7*7*7*7*7*7*7*7*7*}*}*7*|*1*1*~*1*1*&*&* *&*2* *Z&Z&.*G&P&E&H&E&S&r&l&l&j&f&n&6&d&|&1&_&%&)&`%T%Z%C%C%M%E%m%e%e%7%8%]%[%-%|%#%Z$B]C]+ + + + + + + + + + + + + + ^~D+C+C+q+y+x+7+2+<+]+'+]+'+-+-+.+X.W.D.D.D.v.i.h.,@2.l.{.!.%.l D]^.^.4.4.>.V C >.>.V V C C C >.C V C C 4.C C C >.C V V C b. ",
-" $ ] ] { ] { ] ] ] / { { ] ] { ] { ] ] ^ { / ^ { ] { { { _ ^ _ ~.{.{.2.l.2.h.h.h.w.w.D.D.W.X.$+-+-+'+'+<+]+]+e+7+n+s+q+s+s+K++@+@S+W+W+@@=@/@^@/@r@g@t@t@t@t@F@F@Q@Q@Q@$#$#$#6#)#^#/#)#D#E]+ + + + + + + F]`%G+G+G+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+}*|*|*!*}*}*}*|*|*}*}*}*}*|*~*&*#*%*~*&*2* *Z&Z&Z&Z&P&P&H&z&z&I&S&r&t&m&e&7&f&****|&J&&&)&&&`%T%T%C%M%M%G%E%e%e%8%8%[%-%-%@%.%Y$M$P$G]+ + + + + + + + + + + + + + H]K+q+q+s+7+y+<+6+2+<+]+-+'+1+.+X.{+D.D.D.i.h.i.c.i.c.2.{.{.!.#.+.^.>.C C C >.4.C C C V C V V C C 4.>.C 4.C V V V C 4.V I] ",
-" { ^ ] { ^ ] { ] { ] ^ { { { ^ / { { ^ { ^ ^ ] / / ] { J _ _ l $.{.2.2.c.j.j.i.x.w.w.D.P.X..+.+'+-+-+'+<+2+2+7+n+x+o+s+s+Z#D+D++@D+W+x@X+=@/@=@/@f@|@s@g@g@t@t@U@Q@Q@Q@Q@$#W@$#`@/#)#/#J]+ + + + + + + K]T%G+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+&*#*~*#*#*1*&*~*#*}*~*1*&*~*~*$*&* * * *$*Z&L]Z&Z&G&P&F&E&z&z&S&l&r&l&l&f&7&d&c&|&|&_&2&!&)&`%*&T%C%C%G%F%m%H%e%M{7%}%-%-%@%@%+%Z$H$I$P$+ + + + + + + + + + + + + + + q+s+s+q+7+7+g+<+6+:+<+'+.+$+X. +X.P.x.D.w.v.r.i.c.2.{.{.~.%.K >.^.C V C C >.C V 4.C >.C C V V 4.V C V V 4.C 4.V >.C V ",
-" 2#{ / { ^ ] { { { / ^ / { / / { { ^ ] { ] { ^ / ] { ] { J _ _ _ l {.7.7.2.c.h.h.K.K.D.W.W.W..+.+$+-+'+]+]+2+7+7+7+n+s+s+C+s+C+S+S++@@@-@-@=@=@r@^@|@f@s@t@t@y@U@E@M@Q@W@W@Q@$#W@`@-#/#+ + + + + + + + M]T%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+ *2*~*~*o* *2*2*~*&* * * * *2* *$*Z& *Z&Z&G&G&R&P&R&P&H&H&r&r&r&l&m&j&e&7&c&c&|&_&_&&&%&!&`%=&T%T%D%E%F%H%m%e%7%}%f%<%-%-%+%.%Y$O$C$C$Q$+ + + + + + + + + + + + + + + + s+n+x+7+7+<+6+]+-+-+1+.+X..+O.W.D.w.x.h.j.r.c.2.l.{.l !.l G.>.4.4.4.C 4.C C C V C C C >.V V V >.>.V V V V 4.>.>.C 2# ",
-" [#{ ^ { / ^ ] ] ] / { ^ { / ] ] { ^ / ] / ] ^ { ^ { =.^ _ _ %.l {.{.2.c.c.c.v.h.K.D.D.X. + +.+X.-+'+'+]+2+2+<+7+y+x+s+q+C+D+D+e@X+S+@@=@X+=@r@r@/@f@R#s@g@g@t@y@F@M@Q@Q@r#r#$#`@`@y@+ + + + + + + + N]N%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+Z&$*Z&Z&O] *Z& *2* * *Z&Z&Z&Z&Q&P&Z&.*.*P&P&R&H&z&y&H&r&r&r&m&l&m&j&7&6&c&|&|&2&2&_&)&*&*&T%T%C%F%O%H%E%H%e%7%}%}%[%-%@%@%+%+%M$O$C$C$v$+ + + + + + + + + + + + + + + + + 7+7+e+<+]+:+-+]+1+-+X..+O.W.D.D.x.h.i.c.C.2.{.{.%.{.l F.^.$$C V C 4.C 4.V C >.C C V C V C >.V C V V C C C V C [# ",
-" ]#^ { ^ / { ^ { ] { ^ / { { ] { ^ ] ^ { ] ^ / { ^ / { J _ $.#.%.%.2.c.C.h.i.h.h.v.x.D.W.W.W..+-+'+Z+]+]+]+2+6+7+7+o+q+s+s+C++@D++@S+X+@@=@=@=@/@|@f@f@g@g@s@t@t@F@Q@F@F@Q@H#W@W@4@+ + + + + + + P]t%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+P&L-Q&Z&Z&Z&Z&Z&.*Z&Z&Z&Z&Z&Z&Z&Z&P&F&R&P&y&z&H&r&z&I&l&l&l&m&e&j&j&6&d&g&|&_&2&!&!&)&`%T%T%T%O%C%F%E%m%Q]e%7%7%}%<%=%@%@%.%#%M$C$C$R]v$r$+ + + + + + + + + + + + + + + + + + 2+2+]+<+'+'+-+.+.+.+X.D.D.v.x.i.h.h.2.c.2.{.!.%.$._ j#>.>.>.C V C 4.C >.V >.C >.C C >.C V >.>.C >.C C V C <# ",
-" )./ ^ ] { ] { ] { ^ ] ] ^ { / { ] { { { ] ] { ] { { =._ _ _ l l !.2.7.c.h.i.h.i.D.D.D.{+X.X.X..+'+-+]+6+2+7+7+7+n+q+s+s+s+s+C++@S+D+@@=@=@@@=@/@f@|@f@f@s@g@t@t@E@y@E@Q@Q@W@Q@i++ + + + + + + S]m%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+y&P&R&P&F&G&P&Z&Z&G&G&L-P&F&F&P&G&F&E&y&E&H&S&z&r&S&l&r&l&l&j&e&e&n&6&|&**_&_&_&_&&&~& &=&T%T%O%M%F%m%n%m%e%g%7%<%<%T]@%@%+%+%O$I$I$C$v$w$E$+ + + + + + + + + + + + + + + + + + 2+<+]+]+]+-+1+X..+ +W.D.D.D.i.w.i.i.c.2.{.7.%.%._ ] B B C C >.>.4.C >.C C 4.>.C V V >.V V >.C 4.C V >.C /. ",
-" y { ] ] ] { ^ { / ] { { { { { ] / { { / { / { ] / / { _ _ l !.~.2.2.2.c.j.h.h.x.D.D.D.D.X.X..+1+'+'+'+6+]+7+7+7+7+y+q+J+C+K+C+9&D+X+X+S+=@=@/@r@|@/@f@f@g@s@y@t@t@F@U@Q@W@$#U]+ + + + + + + V]F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+H&H&H&H&R&y&y&z&F&y&H&E&H&E&F&y&z&H&H&H&r&S&S&l&r&l&l&l&l&t&e&f&c&c&**|&_&_&_&2&&&)&`%*&`%T%C%C%N%D%H%H%e%e%e%7%W]W]W]X]Y]+%M$+%O$C$v$Q$v$w$w$Z]+ + + + + + + + + + + + + + + + + <+]+'+)+-+-+.+.+.+D.P.D.D.x.i.i.h.C.c.2.2.{.l _ _ M.>.C C C V C 4.V V C >.>.V >.4.V V 4.>.V V V 4.V C b+ ",
-" =#/ { { { ^ { { { / { ] / ] / { ] { ^ ^ ] ] { { ^ / ^ { _ _ ~.%.!.2.{.2.h.h.w.x.D.w.D.W.D..+X.$+$+-+'+'+<+2+g+7+7+7+q+r+s+C+s+D+C+X+D+W+@@X+@@=@6@=@|@g@f@f@g@t@t@E@y@E@E@Q@`]+ + + + + + + ^F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+r&r&S&r&r&S&r&z&z&z&s&E&z&y&E&r&z&s&r&r&r&r&l&l&l&l&l&l&f&j&f&7&6&**|&|&|&|&3&&&)&!&`%`%T%M%C%M%G%G%m%m%e%e%M{W]W].^.^.^.^+^@^M$O$C$v$v$x$E$j$k$#^+ + + + + + + + + + + + + + + + + ]+]+m+'+'+-+X. +P.W.D.D.v.K.h.j.c.2.{.2.!.#._ _ ] 4.C C 4.V 4.V C V C >.C >.C C 4.V 4.C C >.C >.V C C '# ",
-" ##/ { ^ { ^ ^ ] ^ { ^ ] { ] { { { ^ { { { / { / { { ^ _ _ _ _ {.{.{.c.c.c.i.i.v.i.D.D.D..+.+.+.+-+]+<+6+6+<+g+7+7+7+o+r+s+s+C+D+D+S+@@X+@@=@@@=@^@/@f@f@f@f@t@t@t@t@t@F@Q@+ + + + + + + + $^F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+t&m&l&r&r&r&l&l&l&S&S&r&r&r&l&r&l&l&r&l&m&l&l&j&l&e&j&f&6&j&7&**h*c&|&_&_&_&!&&&%&`%*&Z%T%T%{*F%D%G%m%:&m%e%W]W]W]W].^.^.^.^.^W]W]W]W]v$w$w$k$a$a$%^+ + + + + + + + + + + + + + + + + + '+'+'+-+.+.+P.{+W.x.x.v.v.i.h.2.2.2.!.{.%._ _ T >.C V C C >.C C 4.C >.V C C 4.C 4.V V 4.V >.4.C 4.&^ ",
-" Z@/ { ] { ^ { ^ ^ ^ ] / { { { ^ ^ { ] ] { ] ^ ^ ] ^ ^ _ _ $.!.!.{.l.c.2.j.h.h.h.D.D.W.W..+X.X..+'+'+'+]+]+6+7+7+7+r+q+y+s+C+s+C+C++@X+X+@@X+@@@@/@r@=@f@f@g@f@s@s@E@t@S>+ + + + + + + + ]%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+j&j&j&t&t&m&t&t&l&l&l&l&l&l&l&m&t&j&m&l&j&l&e&e&j&j&f&d&7&|&c&h*|&**_&_&_&&&)&!&%&*&`%T%T%C%C%E%G%G%H%m%e%W]W]W]W]W].^.^.^.^.^.^.^W]W]W]W]*^s$a$a$=^&#+ + + + + + + + + + + + + + + + + + '+'+'+$+X.O.W.D.D.w.K.h.h.i.h.2.7.%.%.%.~._ ] >.>.C >.V 4.V V C >.C C V C C C 4.V V C C 4.C C C -^ ",
-" '$^ ] { ] { { / ] / { ] / { ^ { ] ] { / ^ ] ^ / ^ / ^ _ $._ _ ~.7.!.c.c.i.h.i.x.i.D.W.O.X..+.+.+'+'+<+:+2+7+7+7+7+7+7+s+s+s+C+C+9&X+@@W+W+@@=@/@=@|@^@|@f@|@f@t@s@t@R=+ + + + + + + ;^-%F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+c&n&6&j&n&7&f&f&n&n&f&t&f&j&m&f&j&f&j&e&f&7&e&c&d&c&g&6&|&|&|&|&|&_&_&_&3&%&*&%&`%T%=&T%T%M%M%E%D%G%m%e%W]W]W]W]W]W].^.^.^.^.^.^>^>^>^W]W]W]W],^'^)^!^+ + + + + + + + + + + + + + + + + + + + .+.+.+X. +D.D.x.i.i.i.i.h.2.{.{.{.#.l #.=.T C >.C V >.C 4.C C 4.C >.V C V C 4.>.C V C C C V !+ ",
-" ~^] / { ^ { { ^ ] ] ] { / { ^ ] { ^ ] ^ ] / { ] ] { _ _ _ %.!.2.7.l.2.c.c.h.i.i.D.D.D.D.X.X..+'+.+<+]+<+2+g+<+7+7+y+s+7+s+s+K+D+D+D+X+W+@@@@=@=@=@7@/@f@f@t@f@g@g@K&+ + + + + + I={^=%G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+|&|&|&c&|&**|&c&j&c&6&n&7&j&j&e&6&f&c&c&6&d&6&c&c&g&c&|&c&g&|&|&|&2&&&!&%&)&)&`%`%`%T%T%T%C%O%F%E%H%n%]^W]W]W]W]W]W]W].^.^.^.^.^>^>^>^^^>^.^W]W]W].^W]W]+ + + + + + + + + + + + + + + + + + + + + .+.+W.O.D.D.D.i.i.v.c.i.2.2.{.d+{.!.%._ ] 4.>.V C >.C C V V V >.4.V C V >.4.>.V V C C C 4.O ",
-" u.{ ] ] ^ ] ^ ^ ] { { { ^ / ] ] ^ { ] / / { ] / ` J J _ _ !.$.7.2.2.2.h.h.w.i.V.D.D.D.X..+X.-+-+-+'+]+<+6+2+<+7+7+n+o+s+q+J+q+C+D+D+X+X+@@@@=@=@=@/@6@^@f@f@f@t@/^+ + + + + + (^_^@%G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+_&2&_&J&|&|&|&g&|&**|&|&|&6&g&c&7&c&c&**g&6&c&**|&|&|&|&|&|&J&2&_&3&2&&&&&)&`%=&`% &T%C%{*C%F%G%G%H%:^W]W]W]W]W]W]W]W]W]W].^.^>^>^>^>^>^.^>^.^.^W]>^.^W]W]+ + + + + + + + + + + + + + + + + + + + + $+X.D.W.D.w.D.h.c.h.c.c.2.l.!.!.!._ _ =.G.>.>.>.>.4.4.>.>.V V >.>.>.C V C C V >.4.C V C z. ",
-" <^] { ] { { ] ] / ^ { { { ] ] { ^ ^ / { ^ { ] ] { { ^ _ _ !.{.{.2.c.2.c.h.h.w.x.w.O.P.X.W..+-+'+'+'+]+]+]+2+2+2+7+7+7+q+s+s+s+D+D+D+S+X+@@X+@@@@=@=@|@|@/@f@|@+ + + + + + + {^[^}^G+G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+%&&&!&_&&&3&_&2&_&3&|&_&|&_&|&_&|&|&_&|&|&|&_&_&|&|&J&_&|&_&_&2&&&&&!&&&!&~& &T%`%=&T%T%C%C%C%F%G%n%H%W]W]W]W]W]W]W]W].^.^.^W]W]>^>^>^>^>^.^W].^.^>^>^>^.^.^W]W]+ + + + + + + + + + + + + + + + + + + + .+P.D.D.D.D.V.h.h.j.c.2.2.2.~.{.l _ _ f >.>.>.4.>.>.C V >.4.C >.C 4.C C V C >.C >.>.V n, ",
-" d@^ ] { ] { { ] ] / / ^ ] { ^ ^ / { ] ^ { { { ^ { _ _ _ #.%.!.2.2.2.c.c.h.i.i.D.w.D.W.X.X.X.-+'+-+'+'+'+2+2+<+7+7+y+7+q+s+q+s+C+D+e@X+W+W+=@@@=@>$r@r@|@7@f@+ + + + + + + |^{^1^2^G+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+`%~&`%%&`%%&)&)&!&!&&&2&_&_&_&_&_&_&3&2&_&_&_&_&2&_&&&3&&&)&!&`%`%)&)&`%`%3^T%T%T%M%T%M%M%D%D%E%n%W]W]W]W]W].^.^.^.^.^4^5^6^7^8^9^0^a^b^c^d^e^W]W].^.^.^.^.^.^W]+ + + + + + + + + + + + + + + + + + + + P.O.D.D.w.w.h.h.h.c.c.2.{.!.#._ _ _ _ j#V V V C V V C 4.>.>.>.V V 4.4.V C C 4.V 4.4.W ",
-" f^/ { { ] / { ] ^ { { ] ^ ^ / ^ / ] ] { { { { ^ ^ _ _ l #.{.%.!.{.2.r.c.h.h.V.D.V.P.W.W.O.X.X.-+'+:+-+'+<+6+g+2+7+n+s+r+s+q+s+K+D+D+S+S++@@@=@@@@@=@=@6@s++ + + + + + + + + + g^h^G+F+F+F+F+F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+T%Z%*&`%~&`%*&!&)&)&)&)&)&&&%&)&&&3&%&&&!&)&!&!&&&!&)&!&)&%&`%*&`%Z%T%T%T%T%T%T%C%C%C%E%E%E%m%:^]^W]W]W].^.^.^.^.^i^7^j^k^l^+ + + + + + m^n^o^p^q^W].^.^.^.^.^W]W]W]+ + + + + + + + + + + + + + + + + + O.D.D.V.h.h.i.c.2.2.{.7.{.{.l _ _ ^ K V C C V V 4.V V V V 4.C C C 4.4.V >.C C V V p@ ",
-" l@{ ] ] ] ^ { { ^ { / / ^ { { { ^ ^ ] ] / / ] { ^ _ _ _ %.!.{.7.2.c.r.c.c.h.h.V.w.D.W.O.X..+-+l+-+-+'+]+]+2+2+<+7+n+n+r+s+s+s+C+K+D++@X+X+W+S+x@@@=@=@r^+ + + + + + + + + + + s^t^u^@%F+F+F+F+F+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+`%`%`%`%~&&&`%)&!&`%`%`%%&!&!&`%`%T%`%T%`%`%T%T%T%T%O%O%C%C%D%G%H%m%m%m%]^]^W]W]W]W].^.^.^v^w^x^y^W*+ + + + + + + + + + W*m^z^A^B^W].^W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + x.w.v.h.c.c.c.2.{.2.~.l _ _ _ { =.O+V V V V C 4.V V C V C V C >.C >.>.V >.C 4.p@ ",
-" O~{ / { ^ ^ { ] ] ^ ] ] { ] { ^ ^ { ] ] ] { { ] { ^ _ %.{.!.%.{.c.2.c.h.h.i.h.D.D.D.W.W. +.+-+-+-+'+'+6+<+2+2+7+7+7+y+s+s+q+s+J+C+D+X+S+X+X+@@@@x@@@E]+ + + + + + + + + + + + C^D^g^E^F^F+F+F+F+F+8%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+T%T%T%*&`%T%=&T%`%=&=& &T%`%Z%T%C%C%T%T%C%O%C%N%F%E%F%H%t%H%e%e%]^W]W]W]W]W].^.^.^G^j^y^W*+ + + + + + + + + + + + + + + + H^I^e^W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + w.V.v.h.j.c.c.c.{.{.%.!._ _ _ / T V V C 4.>.C C C C C C C V C V >.C >.C V >.W ",
-" x { ] ^ / ] { / { ^ ^ ^ / ] { { { { ] ] { ] ^ ^ _ _ _ %.l !.{.2.2.2.c.c.i.w.x.D.x.D.P.X.O..+-+-+-+'+'+<+]+g+<+2+7+7+x+7+q+s+C+C+D+C+9&+@D+S+@@S+=@J^+ + + + + + + + + ;@+ + + + + + W]W]W]W]W]W]W][%G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+T%T%T%T%T%C%-&T%T%T%T%C%C%C%M%C%N%N%O%E%D%E%E%D%m%n%Q]m%W]W]W]W]W]W]W]W]W]W]i^d^K^W*+ + + + + + + + + + + + + + + + + + + + L^0^W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + w.h.i.i.c.2.l.{.{.!.l %._ _ J S ^.C V V 4.C C 4.C V V >.C >.V V >.V V C C B+ ",
-" _+^ ] / { { { ] { ^ ^ { ^ ] { ] { / ] { ] / { ^ ` _ $._ %.#.{.!.2.2.r.i.h.h.x.x.D.D.D.X..+X.l+'+-+'+]+:+2+<+2+2+7+7+q+y+r+n+J+K+C+D+D++@X++@S+@@+ + + + + + M^5+@@|@f@i++ + + + + W]W]W]W]W]W]W]W]W]G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+M%C%M%O%N%M%C%C%C%C%D%G%O%G%F%G%F%D%n%n%n%m%H%e%:^]^]^W]W]W]W]W]W]W]W]W]W]9^N^y^W*+ + + + + + + + + + + + + + + + + + + + + + m^O^K^P^k^Q^R^W]W]W]W]W]+ + + + + + + + + + + + i.h.r.c.c.2.{.{.!.$._ _ ^ ] _ G.V C V C C C V >.>.V >.V 4.4.C V >.>.C 4.z. ",
-" S^] ] { { { ] { { / { ^ ] / ^ { ] / ] ^ ] ^ { J J _ _ %.~.{.!.{.c.c.c.h.h.K.K.w.D.D.D.X.X..+-+-+'+'+'+-+2+6+e+2+2+7+x+q+o+y+q+C+D+C+D++@D++@X++ T^U^V^@@=@^@/@/@6@^@f@O@+ + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G%G%G%F%E%E%C%G%E%D%D%D%F%G%D%E%D%E%n%:^:^:^:^]^]^W^W]W]W]W]W]W]W]W]W]W]9^+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W*y^W]W]W]W]W]+ + + + + + + + + + + + h.c.2.2.c.!.!.{.%._ _ ^ / U+C C C C >.V C V >.>.C 4.V V >.V C V >.V }@ ",
-" X^/ ] ] ^ ^ ] { ] { ] ] { { / { { { ^ ^ ^ ] ^ / J _ _ _ $.!.2.7.c.2.c.c.v.i.i.D.D.D.P.D. +-+.+X.-+-+'+:+]+2+2+2+7+7+x+7+n+r+s+s+C+s+D+D++@X+X+X+@@@@W+x@@@=@/@=@|@7@7@Y^+ + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]Z^G+G+G+G+G+m%E%t%H%m%m%m%m%n%D%H%H%m%m%m%:^]^]^W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]B^+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W]W]W]W]W]+ + + + + + + + + + + c.c.2.2.{.!.!._ _ _ _ _ ] M 4.4.4.V V C 4.C V 4.>.V >.>.C C >.C C `^ ",
-" /{ ^ { { ^ / ] ^ ^ { ^ { ] { { ^ ] { ^ { / { ^ _ _ _ #.%.~.2.2.2.c.h.h.w.h.v.D.D.D.W.P..+W.-+X.-+'+-+m+<+]+<+6+<+7+7+7+n+x+s+./s+s+C+K+D+X+X++@X+X+@@@@=@=@=@=@=@/@/@+ + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]j^+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W]W]+ + + + + + + + + + + + + l.2.{.~.~._ %.^ _ ^ / j#V C 4.>.C C >.4.4.>.C C >.>.V 4.4.C C '@ ",
-" .@{ / ^ { { / { ^ { ^ ] ] ^ { ^ { ^ { / ] { ` J _ _ _ !.$.%.{.2.{.2.c.j.h.v.x.w.x.D.W.W..+.+$+.+'+'+'+]+]+:+2+g+<+7+7+y+7+n+q+s+s+C+D+Q+C+D+D++@X+W+X+x@=@=@=@@@=@|@+ + + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7.!.!.~.l l _ ^ _ / K V V V C >.>.C >.V C >.V V V C C V V V a' ",
-" J.f ^ / ^ / ^ ] { ^ / { / ^ ] { ^ ] ] / ^ { ^ ^ { ^ _ %.{.%.{.{.{.C.j.c.h.h.h.D.D.W.D.O.X.W..+.+.+$+-+'+]+]+2+7+e+2+7+7+7+s+q+y+s+s+s+D+D+D+D+D+D+S+X+W+S+x@=@@@=@=@+ + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {.%.$.%._ _ _ ` ^ / ..V C >.V 4.V V 4.C C C C V C V V C V G# ",
-" +/] { { ^ ] { ^ ] / ] { ^ / ] / ^ ] { { ] ] J _ _ l {.#.$.{.c.2.c.c.h.i.w.v.i.D.D.D.W.W.O..+$+$+1+'+'+:+]+]+<+]+7+e+7+7+7+q+q+q+s+C+C+s+D+D+D+S++@D+W+X+x@=@@@=@@@+ + + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {.!._ _ _ _ ] { j#V C V 4.V 4.V >.C C >.C >.C V 4.>.@/ ",
-" a { ^ / { { ] ] ^ ^ ] / ] { { { { { ^ / ^ ^ ] ^ _ !.l $.{.2.{.2.2.c.c.c.i.D.w.D.D.D. +X.X. +.+-+-+'+m+:+]+]+2+7+<+e+7+7+7+7+q+s+q+q+C+K+C+K+D+C+D+X+*@S+W+W+X+=@W++ + + + + + + + W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ~._ _ ^ ^ ] / s C V V >.4.>.>.V >.V >.V V V 4.V >.#/ ",
-" F / { ] ] { ^ ] ^ { { ^ / / ] ] / ] ] { ^ J { _ _ $.%.l !.7.{.l.2.c.h.i.h.w.w.i.D.D.P.{+ +W.X.X.$+1+'+<+'+'+]+<+2+]+7+7+7+7+7+y+n+q+s+J+s+K+s+C+D+X+D+S+T@S+S+@@@@x@+ + + + + + + + + + + + W]W]W]W]W]W]W]W]W]W]+ W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %._ ^ _ J ^ y S.V >.>.V V C >.4.C >.C V C V C >.Y ",
-" $/F.{ { { { ] / ] { { { / ] { { / ] ^ { / { J _ _ _ ~.l {.!.2.2.2.c.c.i.i.v.x.w.x.D.D.X.X..+.+X.-+-+-+-+]+<+<+2+]+2+<+7+7+7+7+r+o+q+q+s+C+C+D+D+D+9&D+D++@W+X+S+W+@@+ + + + + + + + + + + + + + + + + + + + + + + + W]W]W]W]W]W]+ W]W]W]W]W]W]W]+ W]W]W]W]W]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^ J { { / { G.C >.V 4.>.C C C >.V C C >.V C ,$I+ ",
-" %// ] { / ] { / ] { { { { { ^ { ] { ] ] ^ _ _ _ _ !.~.%.{.l.2.2.,@c.i.i.i.i.D.D.D.D.W.X.X.X.$+.+-+.+-+-+:+<+<+6+2+7+7+7+7+7+q+n+n+r+s+J+q+C+K+D+D+D+C+D++@X+@@@@@@W+@@+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _ ^ J { / { L >.V C C C V >.V C >.V V V V 4.&/ ",
-" `.] / / ] ^ { / { ^ ] { { { / ] ] ] ^ ] ^ ^ J _ _ #.l %.{.{.2.2.2.2.j.h.i.V.x.i.D.D.D.W. +X.X..+$+-+'+m+]+'+]+]+f+<+<+7+2+7+7+x+7+7+s+s+s+s+C+q+K+D+D+D+D+D+D+S+T@+@S++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _ ^ _ ] ^ ^ s V V C V C V >.>.V C C 4.C 4.4.*/ ",
-" k+^ ] { { { ] { ] { { { { ] { / { { { / { { J _ _ !.!.~.!.!.!.7.2.2.h.v.v.v.K.V.D.D.W.D.O. +.+.+1+$+-+-+-+'+]+<+<+]+e+g+<+7+7+7+n+o+n+s+s+q+q+C+K+s+C+C+D+D+C++@S+S+@@+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + J J ] _ ^ { F.a+C >.C V V V V >.V V V C C C p+ ",
-" 2 ] / { ] / ^ ] ] ] { { { ] { { ^ ^ ^ { ^ ^ _ _ %.!.$.{.2.2.l.2.2.,@h.c.w.h.w.D.w.D.P.X.X..+ +X..+'+'+'+]+]+<+'+<+6+2+7+g+7+7+7+y+7+r+y+s+s+q+s+J+C+D+s+D+D+D+D+D+X+T@+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + j.r.2.c.l.2.!.!._ $.%.$._ _ ^ ] ] ^ ] +.V V C 4.V C C >.C V C C C j+ ",
-" j S ^ ] ^ ^ ] / { ] { { ] { ] ] { / { / ^ / _ _ _ $.{.{.{.{.l.c.c.c.c.h.i.i.w.w.D.D.D.O.O.O.X.W.$+.+$+-+'+-+'+<+]+<+]+g+6+7+7+7+n+n+7+r+o+r+q+s+s+s+q+C+s+C+D+K++@D+D++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .+{+P. +D.D.D.K.D.i.i.c.c.c.r.c.{.{.{.{.%.!._ _ _ _ J { ] { / G.V 4.C C C C 4.C C >.>.C 3=j ",
-" =/{ ^ ^ ^ / ] ^ ^ { { { { / { / ] { / / J _ _ _ {.l !.~.{.2.c.c.h.h.h.i.i.w.D.D.x.D.D.O.W. + +.+.+.+.+'+-+<+'+'+<+<+2+2+g+2+7+7+7+n+7+n+n+n+r+q+q+q+s+J+J+C+D+D+D+C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W.X.W.P.D.x.w.D.V.h.v.i.c.c.c.2.2.{.7.%.%.%.$._ _ / ^ { ] { { L >.>.C V C C V V V >.C C c@ ",
-" -/( / { { ^ { ^ ] { ] { { ] { { ^ ^ { J { / _ _ %.%.!.g${.{.{.2.c.h.h.v.h.h.i.D.V.D.D.W.W.P..+.+-+.+.+-+'+'+<+]+<+]+]+]+f+<+7+2+7+7+7+y+o+q+q+q+q+s+s+q+C+q+q+C+C+J+C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X.D.D.D.D.i.v.w.h.j.2.c.c.2.c.7.{.!.~.!._ _ _ _ / { { ] { { T C V C V C >.4.C 4.>.C `+[+ ",
-" u./ / { { ] / { ^ ] / / ^ { ^ ] / ] ` { ^ _ _ _ _ %.!.{.l.{.2.c.h.i.h.i.V.x.h.D.D.D.D.P.W.X.W..+-+$+'+.+-+'+'+'+<+<+6+<+<+<+<+7+7+2+7+n+r+n+o+y+y+y+o+q+r+q+s+s+q+C+C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X.D.P.D.w.D.i.w.v.j.i.i.c.2.2.{.7.!.!.{.%._ _ _ ^ ^ / { / / / s C V >.V V 4.>.>.C C V z. ",
-" ;/] ] { ^ { { ] ] { { { { { ] / { / ^ { J _ _ _ ~.!.!.!.!.{.2.c.c.i.h.i.h.i.h.w.D.D.O.D.W..+X.X.X.-+$+-+.+-+m+'+'+'+<+'+]+<+e+<+2+2+7+7+7+7+n+n+y+r+o+s+s+s+s+y+C+s+s+s++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X.X.P.W.{+D.D.w.x.h.h.i.h.h.2.2.2.{.2.!.#.%.l _ _ _ ^ ^ { { { ] ] R.4.C V 4.C 4.C >.4.V `+[ ",
-" >/^ { ^ { / ] ^ { { ] { { { ] { ^ ] _ J _ _ _ ~.%.!.{.%.{.2.c.c.2.c.i.c.v.h.w.w.w.D.P.{+P. +.+.+X.-+.+-+1+-+)+'+'+]+]+b@]+]+2+2+2+f+e+2+7+7+n+n+n+y+7+o+r+s+q+q+n+r+q+s+s++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .+.+P.W.O.D.D.D.D.D.w.i.i.h.c.h.r.c.2.{.7.!.{.!.!._ _ J { =./ { { { ^ ,/^.C C >.C V 4.>.V C !+ ",
-" *+d@] ^ ] ^ ] ] ^ ] { { / ^ ] { ] / { ^ ^ _ _ _ {.%.~.{.!.c.l.2.h.c.h.i.~@v.h.v.x.w.D.D.O.X.W..+.+-+$+.+.+-+'+-+'+'+]+'+:+]+]+2+<+2+f+2+7+2+7+7+7+7+7+y+n+x+7+s+y+y+q+q+y+q+q++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X.W.X.W.W.D.D.D.w.w.h.w.h.h.,@c.c.2.{.{.7.!.~.{._ l _ _ J { ^ / { { ] y [.C >.C C C C >.C '/>+ ",
-" )/] ^ { ] ] / { ] { { { / / / { ] ] ] ^ J _ l l !.~.{.{.!.2.2.2.i.c.c.h.v.i.i.w.w.w.D.D.W.W. +W. +X..+.+.+-+-+'+-+Z+]+'+'+<+'+<+]+6+<+e+g+e+e+7+g+7+7+7+7+y+7+n+7+n+n+x+s+q+s++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .+.+W..+ +D.D.W.D.D.D.K.V.D.i.i.c.h.h.c.2.c.2.7.!.~.!.!.!.#._ _ _ _ ^ ^ ] ^ { ] 3 ^.C V >.V >.V >.V !/ ",
-" `.{ ^ { { { ^ { ] ^ ] ] ] { / { ] =.^ _ _ _ l %.%.{.{.{.{.2.c.c.c.i.h.v.i.K.x.h.w.w.D.D.W.W.P. +.+.+$+-+-+-+-+-+-+-+m+'+'+'+<+<+<+<+6+2+7+<+2+e+<+7+7+7+7+7+7+7+7+n+7+y+7+7+q+y+y+x+r++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -+X..+X.X..+X.X.X.W.W.D.w.D.w.i.i.i.h.c.j.c.j.c.l.{.2.{.!.{.%._ _ _ _ =.^ ^ ^ ^ ] { ^ S [.>.V C C 4.V V @+ ",
-" U.] { ^ / { ] { / { / { { { / ] / { ^ J _ _ _ !.!.{.{.{.{.c.c.c.h.c.c.c.i.i.i.V.x.D.D.D.D.{+D..+ +X..+$+-+.+.+-+'+'+]+:+'+'+m+<+]+]+]+2+]+]+g+<+f+e+<+2+f+7+7+e+7+7+7+7+2+7+7+7+7+7+7+7+7+7+7+7+7+7++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + -+.+1+.+.+ +.+W.W.{+O.P.P.D.D.w.x.i.K.h.h.v.i.h.c.c.c.c.7.!.%.{.%.~.!.l _ ^ J { { ] ] { ^ ] K ^.C C C >.>.V ~/ ",
-" N.] ] ] / ^ / { { / { / { { ^ { _ { ^ _ _ _ _ ~.{.!.{.!.l.!.c.c.h.c.i.h.h.h.h.w.w.D.D.D.P.O.D.D.W..+.+-+$+.+-+.+'+-+-+'+m+]+m+]+:+'+'+6+<+]+6+<+<+<+g+2+2+2+<+2+g+2+g+2+2+e+7+7+g+7+2+<+e+7+2+7+6+f+2+2+<+]+<+g+2+<+<+6+]+]+]+<+'+'+]+'+'+'+-+-+'+-+.+X.1+.+.+.+X. +{+{+ +D.D.D.D.x.w.i.x.v.w.h.h.c.c.c.c.2.7.2.{.{.{.~.$.%.$._ J ^ ` { ^ / ] { / ] R.a+C V 4.V >.}. ",
-" {/t { ^ ] { { ^ / ^ / / ] ] { { ^ { _ _ _ _ l %.!.!.!.2.{.{.2.2.2.h.i.h.~@i.h.w.w.D.K.D.D.D..+X.O.D..+.+ + +$+X..+-+$+-+-+-+-+-+'+-+'+<+'+]+'+'+]+6+]+<+<+<+]+6+<+g+<+2+f+<+2+]+g+6+e+g+]+2+6+<+2+6+]+]+2+<+]+:+'+6+]+]+]+'+:+'+-+'+]+'+-+-+1+.+.+.+.+.+-+X..+W.W.D.W.D.D.D.V.D.h.w.h.w.~@h.i.h.c.r.!.2.!.{.2.!.{.{.~.l _ ^ { / { / ] ^ ] { { { m.>.C >.V 4.H.{/ ",
-" ]/t / ] { ] ] ] ] { ^ { / / ] { J ^ _ _ _ l #.%.%.{.2.{.2.c.c.c.c.h.c.i.i.i.i.i.D.v.w.K.D.D.D.X.D.O.W.X..+.+X..+.+.+X.-+-+-+'+'+'+-+'+'+]+:+-+m+'+]+Z+]+'+'+'+]+:+]+]+<+]+]+:+<+'+<+]+b@'+:+]+<+]+'+]+:+:+'+]+]+-+m+]+'+'+'+-+-+-+1+.+-+.+-+X.W. +X.W.D.O.D.P.W.D.D.V.D.x.V.i.i.i.h.c.2.c.c.2.2.7.2.%.!.{.{.l %._ _ ^ { J ] ^ { { ^ { ] ^ M.>.C V >.H.I. ",
-" t.u.^ { / { ^ ] / ] { { ^ { { =.^ ^ J _ _ {.~.!.l !.{.!.{.2.c.2.i.h.h.h.c.i.h.i.h.V.D.D.w.D.W.D.D.P.X.O.X.X.W.X..+.+.+-+.+'+-+'+-+'+-+'+-+-+'+]+'+]+m+'+:+'+:+m+'+'+:+]+'+]+'+-+'+]+]+'+-+'+'+-+]+'+'+'+-+-+-+-+'+-+-+.+.+-+X.$+X..+X. +.+.+X.O.X.W.W.D.D.D.w.x.K.D.v.i.v.i.c.j.h.2.c.7.2.{.{.{.!.{.{._ _ _ ` ^ ^ ^ ] { { { ] { / / L >.V 4.z.A. ",
-" p.{ { ] { { ] ^ { ^ { / { ] { _ _ _ _ _ !._ !.!.!.{.!.7.{.c.c.c.c.h.j.j.i.h.h.w.w.V.V.D.w.D.D.D.D.O..+W.X.W.W..+X.X..+.+X.$+-+-+.+$+|+-+'+.+-+'+'+-+-+'+'+-+'+-+'+-+'+-+'+'+-+'+-+-+'+'+-+|+-+$+-+1+.+.+.+X..+$+.+$+W..+.+D.W.{+P.O.D.D.W.D.D.D.D.w.D.i.w.h.i.i.c.h.c.c.2.l.2.2.{.2.{.$.!.{._ %._ _ ^ { ^ ^ { ] ^ ] ] { ^ y ,#>.C s. ",
-" f.S { { / { ^ { ] ^ ] ] ] { ] J _ _ _ _ $.~._ ~.d+{.!.{.2.2.2.C.c.i.h.c.i.i.h.i.i.h.i.D.D.D.D.D.D.O.W. +O.W.X.X.W.W..+X.$+W.$+.+.+.+$+.+X..+.+'+$+-+.+'+-+-+1+.+'+'+'+.+-+'+-+-+.+.+X.$+X.X..+.+-+.+.+X.W.X..+X..+.+{+X.D.D.D.D.D.D.w.w.h.D.i.h.h.i.h.c.,@c.c.2.c.c.c.7.{.!.!.!.!.l l _ _ _ _ / { ] { ] { ^ { ] ] ^ K [.b+^/ ",
-" e.//] / { ^ ] { ^ { / { ] _ / J { _ _ %._ ~.{.!.~.~.{.{.2.c.c.c.c.c.c.c.c.h.h.h.h.D.w.x.x.D.w.D.D.W.D.D.O.W.W.O.W.X.D. + +X.X..+X.X.X.X.X..+.+X..+-+X.-+X.X.-+-+.+X..+.+X..+.+W.X..+X..+ +X.X.O.X.W.P.W.P.D.D.W.D.D.D.D.x.K.x.D.K.i.x.h.i.c.j.h.h.c.,@c.c.c.l.7.2.{.{.~.$.%.%.%.$.^ _ ^ ^ { { / { { ^ ] ^ { { M.^.e. ",
-" (/_// ] ] ^ { ] ^ ^ { ^ ] ^ J =._ _ l _ _ _ {.{.%.!.{.2.{.2.c.2.,@j.c.c.j.h.i.w.h.i.i.V.w.i.D.D.w.D.D.W.D.D.D.{+P.W.W.P.W.W.W.W.W.X. +X.X.X.{+X..+W.X..+.+W.W..+W..+ +W..+W.P.D.X.{+X..+D.W.D.W.D.W.D.D.D.D.D.x.w.D.D.i.w.h.w.i.i.c.j.c.j.2.h.2.{.{.{.g.!.{.$.#.!._ _ _ _ _ _ ^ { J { ^ ^ ^ ] { / { / S 4&a. ",
-" M#] ^ { / ] / { / / { ] ^ ^ _ _ _ _ $._ ~.!.%.!.{.{.2.!.2.c.2.2.2.c.c.c.h.h.h.i.i.h.i.v.x.v.w.i.D.i.V.D.D.D.D.D.D.O.O.P.W.P.W.W.D.X.W.O.X.W.O.P.X.D.W.D.X.X.O.W.O.{+D.W.W.D.{+D.O.D.D.D.D.D.D.D.D.w.i.D.h.w.i.v.w.i.i.h.h.c.c.c.h.c.{.{.2.7.2.{.!.!.!.l l l _ _ _ J { ^ J ^ ] ^ ] / ] ] ^ { { :/ ",
-" - _+] / / ^ { ^ ^ ] { / { ] ^ _ _ _ _ !.%.!.!.!.!.~.{.!.{.l.{.7.c.r.2.c.c.r.c.v.h.i.i.v.x.w.i.i.i.h.x.i.V.D.x.D.x.D.D.D.D.D.D.D.D. +D.X.O. +O.W.D.D.O.W.D.D.D.D.D.D.D.D.D.D.V.i.D.i.w.v.V.x.D.i.K.v.w.i.i.i.h.h.r.2.2.c.2.2.2.c.{.2.2.{.{.!._ ~.!._ _ _ =.^ _ J { / { { ] / / ^ ] ^ 2$(. ",
-" 0 ).] ] { { ] ] / ^ / ^ / ^ =._ _ _ _ _ l %.%.{.~.{.{.!.{.7.2.c.2.2.h.2.c.c.2.i.h.i.h.i.v.w.i.x.i.w.h.V.w.w.x.w.w.D.w.D.i.D.w.D.D.D.x.D.D.D.D.D.x.V.D.i.D.D.V.i.w.i.h.x.w.h.K.x.h.i.h.v.j.h.i.c.C.j.j.c.c.c.l.c.3.2.7.{.2.7.!.~.!.{.~.~.l _ ^ _ ^ / ^ ^ { { ^ / ] ^ ^ ^ ).0 ",
-" 1 #./ { { { ] / / ^ J =.^ J { _ _ _ _ %.l %.{.!.!.7.2.l.c.{.l.c.2.c.r.c.c.2.j.h.h.c.h.c.h.h.v.h.i.h.h.i.v.h.x.v.x.i.x.v.D.D.w.w.D.x.D.w.K.w.w.D.i.w.i.K.v.v.h.i.v.i.w.h.w.i.h.i.h.i.j.c.c.c.2.c.c.2.2.c.7.{.2.{.~.!.{.!.l _ #._ _ _ _ ^ J =./ / / ] ] { { { g </ ",
-" Y Z ] ^ { { / / { ] ^ / ` _ _ _ %._ %.#._ %.{.{.!.{.7.{.!.2.2.c.2.c.c.c.c.j.r.h.c.j.h.j.i.i.h.c.c.i.i.h.i.h.i.v.h.i.i.x.v.i.i.h.i.w.i.i.h.i.h.i.h.i.h.h.h.i.i.c.h.h.2.i.2.i.c.r.2.7.2.7.2.{.2.l.!.{.{.%.{.%.!.#._ $._ _ ^ _ ^ _ ^ { { ] { { / ^ q]Y ",
-" X O~/ ] ] / ] / ^ / _ ^ _ { _ _ l _ $.!.!.{.#.l {.{.!.2.{.{.!.{.7.2.2.c.c.2.h.c.2.c.,@c.c.c.h.c.j.i.c.c.c.i.h.j.h.c.h.h.c.j.h.c.w.i.h.h.h.c.c.h.i.c.h.2.c.c.i.2.c.{.c.2.2.2.2.{.2.7.!.{.{.{.%.~.!.%.$.!.$._ _ _ ^ ^ =.{ / ] ] ] ] { O~[/ ",
-" G a H { ] ] { ] / { _ ^ _ _ _ _ %._ !.!._ $.%.{.!.{.{.2.{.{.g.7.{.{.2.2.2.2.2.c.2.2.c.c.c.2.c.h.h.c.c.r.C.c.h.h.h.c.C.r.c.h.j.c.2.c.c.2.c.2.2.c.c.{.2.c.2.2.c.{.!.7.{.!.7.!.%.{.!.%.l %._ ~.l $._ _ _ _ / ] ^ ] / ^ ] ( a }/ ",
-" |/1/S { / ] ] { J J ^ _ _ _ _ %.!.%._ !.!.%.l %.!.{.{.!.{.!.{.2.{.2.!.l.2.c.{.2.2.c.c.2.2.c.c.c.2.2.2.c.2.2.2.2.c.c.2.c.2.{.2.c.l.l.{.c.c.7.{.!.{.{.{.%.{.~.~.%.%.$.!.~.$.$._ $._ _ _ { J J J ^ ] { { S 2/3/ ",
-" 4/* t ( { ] ^ { / =./ ^ _ _ _ _ l $.$.$.!.l {.!.!.{.!.!.{.7.{.{.{.{.{.2.{.{.g.{.2.2.{.2.2.{.2.c.{.{.7.2.{.2.2.2.{.2.{.{.!.{.2.7.~.{.g${.{.%.~.%.$.%.!.%._ _ $.~._ _ _ _ J J _ _ _ ^ ^ ^ b t * 5/ ",
-" 6/k 7/{ / ^ =.] J _ ^ / _ _ $._ _ _ _ l _ _ ~.!.!.l !.!.{.~.!.{.{.7.%.{.~.{.~.7.!.g${.!.{.%.~.2.{.{.!.{.!.{.!.!.!.{.{.!.~.!.%.~.$.$.$._ %._ _ _ _ ^ _ _ _ _ _ { ] ^ { #.k 6/ ",
-" i 0 h # ] ` ] ` J ^ J ^ _ _ _ _ _ l $.l _ _ !._ _ l %.~._ #.!.!.l %.{.!.#.~.%.{.!.!.l %.{.~.!.!.~.{.{._ $.%._ %.l {.l %._ l _ _ _ _ _ _ _ J ` _ J b q]h 0 i ",
-" 8/1 2 q]3 =._ ^ _ _ _ ^ _ _ _ _ %._ $.l _ _ #.!.%._ _ $.#.l ~._ !.$.~.$.!.~.!.!.{.%.~.!.!._ _ l _ l _ _ _ _ _ ^ _ ^ / ^ ^ { c.]'1 9/ ",
-" 0/[ ' < %/!.` ^ ^ ^ J ^ _ _ _ _ _ _ _ %.l _ $._ l $._ _ l l l _ _ _ _ _ _ _ _ _ _ ^ _ _ _ ^ ^ ( %.: < ' , > ",
-" 0/a/6/* b/< c/%/x%q]^ J ` ] ] _ ^ _ _ _ _ 3 { ` / ^ {.x%%/_.< b/* #+a/> ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/community/spidermonkey/PKGBUILD b/community/spidermonkey/PKGBUILD
deleted file mode 100644
index 5b0f66f55..000000000
--- a/community/spidermonkey/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: PKGBUILD 76943 2010-04-09 06:43:22Z dgriffiths $
-# Contributor: Aaron Griffin <aaron@archlinux.org>
-# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
-
-pkgname=spidermonkey
-pkgver=1.7.0
-pkgrel=3
-pkgdesc="Mozilla's C implementation of JavaScript."
-url="http://www.mozilla.org/js/spidermonkey/"
-arch=('i686' 'x86_64')
-license=('MPL' 'GPL' 'LGPL')
-depends=('nspr')
-options=('!makeflags')
-source=("http://ftp.mozilla.org/pub/mozilla.org/js/js-${pkgver}.tar.gz" \
- 'spidermonkey-1.7-threadsafe.patch' 'spidermonkey-Makefile.patch')
-md5sums=('5571134c3863686b623ebe4e6b1f6fe6'
- 'b2ef9be017b6aa1857354b5223975a4f'
- '161d4c0f2c604d15cba29dab60b1f7a7')
-
-build() {
- cd ${srcdir}/js/src
- patch -p0 < ${srcdir}/spidermonkey-Makefile.patch || return 1
- sed -i 's|include|include/js|' rules.mk || return 1
- # fix for the lib location
- [ "$CARCH" = 'x86_64' ] && (sed -i -e 's|lib64|lib|g' config.mk || return 1)
- # patch Makefile for threadsafe support with native nspr
- patch -p2 -i ${srcdir}/spidermonkey-1.7-threadsafe.patch || return 1
- # FS#16673
- export CFLAGS=${CFLAGS} -DJS_C_STRINGS_ARE_UTF8
- # build - threadsafe
-}
-
-package() {
- cd ${srcdir}/js/src
- make -f Makefile.ref BUILD_OPT=1 JS_THREADSAFE=1 DIST=${pkgdir}/usr all export || return 1
-}
diff --git a/community/spidermonkey/spidermonkey-1.7-threadsafe.patch b/community/spidermonkey/spidermonkey-1.7-threadsafe.patch
deleted file mode 100644
index da6c78d1d..000000000
--- a/community/spidermonkey/spidermonkey-1.7-threadsafe.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- js/src/Makefile.ref.orig 2008-05-28 19:51:32.000000000 -0400
-+++ js/src/Makefile.ref 2008-05-28 19:52:17.000000000 -0400
-@@ -63,11 +63,11 @@
-
- ifdef JS_THREADSAFE
- DEFINES += -DJS_THREADSAFE
--INCLUDES += -I$(DIST)/include/nspr
-+INCLUDES += -I/usr/include/nspr
- ifdef USE_MSVC
- OTHER_LIBS += $(DIST)/lib/libnspr$(NSPR_LIBSUFFIX).lib
- else
--OTHER_LIBS += -L$(DIST)/lib -lnspr$(NSPR_LIBSUFFIX)
-+OTHER_LIBS += -L/usr/$(LIBDIR)/nspr -lnspr${NSPR_LIBSUFFIX}
- endif
- endif
-
diff --git a/community/spidermonkey/spidermonkey-Makefile.patch b/community/spidermonkey/spidermonkey-Makefile.patch
deleted file mode 100644
index abf1f3164..000000000
--- a/community/spidermonkey/spidermonkey-Makefile.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-*** Makefile.ref.orig 2009-02-16 09:56:29.000000000 -0600
---- Makefile.ref 2009-02-16 09:58:59.000000000 -0600
-***************
-*** 169,184 ****
---- 169,185 ----
- jstypes.h \
- jsprvtd.h \
- jspubtd.h \
- jsregexp.h \
- jsscan.h \
- jsscope.h \
- jsscript.h \
- jsstr.h \
-+ jsutil.h \
- jsxdrapi.h \
- jsxml.h \
- $(NULL)
-
- API_HFILES = \
- jsapi.h \
- jsdbgapi.h \
- $(NULL)
diff --git a/core/mdadm/segfault-3.2.1.patch b/core/mdadm/segfault-3.2.1.patch
deleted file mode 100644
index 6042d86c2..000000000
--- a/core/mdadm/segfault-3.2.1.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 4019ad07013a5d8618b867f724d1c4a13c5cb05d Mon Sep 17 00:00:00 2001
-From: Jonathan Liu <net147@gmail.com>
-Date: Tue, 12 Apr 2011 18:28:01 +1000
-Subject: [PATCH] Monitor: avoid NULL dereference with 0.90 metadata
-
-0.90 array do not report the metadata type in /proc/mdstat, so
-we cannot assume that mse->metadata_version is non-NULL.
-
-So add an appropriate check.
-
-This adds an additional check missed by commit
-eb28e119b03fd5149886ed516fa4bb006ad3602e.
-
-Signed-off-by: NeilBrown <neilb@suse.de>
----
- Monitor.c | 3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/Monitor.c b/Monitor.c
-index a3ea724..55aebeb 100644
---- a/Monitor.c
-+++ b/Monitor.c
-@@ -577,7 +577,8 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
- info[i].major = info[i].minor = 0;
- }
-
-- if (strncmp(mse->metadata_version, "external:", 9) == 0 &&
-+ if (mse->metadata_version &&
-+ strncmp(mse->metadata_version, "external:", 9) == 0 &&
- is_subarray(mse->metadata_version+9))
- st->parent_dev =
- devname2devnum(mse->metadata_version+10);
---
-1.7.2.3
-
-From eb28e119b03fd5149886ed516fa4bb006ad3602e Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb@suse.de>
-Date: Tue, 5 Apr 2011 09:16:57 +1000
-Subject: [PATCH] Monitor: avoid NULL dereference with 0.90 metadata
-
-0.90 array do not report the metadata type in /proc/mdstat, so
-we cannot assume that mse->metadata_version is non-NULL.
-
-So add an appropriate check.
-
-Reported-by: Eugene <hdejin@yahoo.com>
-Signed-off-by: NeilBrown <neilb@suse.de>
----
- Monitor.c | 3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/Monitor.c b/Monitor.c
-index 291e465..337785d 100644
---- a/Monitor.c
-+++ b/Monitor.c
-@@ -688,7 +688,8 @@ static int add_new_arrays(struct mdstat_ent *mdstat, struct state **statelist,
- st->devnum = mse->devnum;
- st->percent = -2;
- st->expected_spares = -1;
-- if (strncmp(mse->metadata_version, "external:", 9) == 0 &&
-+ if (mse->metadata_version &&
-+ strncmp(mse->metadata_version, "external:", 9) == 0 &&
- is_subarray(mse->metadata_version+9))
- st->parent_dev =
- devname2devnum(mse->metadata_version+10);
---
-1.7.2.3
-
diff --git a/extra/avahi/avahi-daemon-dbus.patch b/extra/avahi/avahi-daemon-dbus.patch
deleted file mode 100644
index ef7272082..000000000
--- a/extra/avahi/avahi-daemon-dbus.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -aur old/initscript/archlinux/avahi-daemon.in new/initscript/archlinux/avahi-daemon.in
---- old/initscript/archlinux/avahi-daemon.in 2010-06-29 05:30:35.000000000 +0200
-+++ new/initscript/archlinux/avahi-daemon.in 2011-06-07 12:20:03.237701492 +0200
-@@ -33,6 +33,7 @@
-
- case "$1" in
- start)
-+ ck_daemon dbus && /etc/rc.d/dbus start
- stat_busy "Starting $DESC"
- $DAEMON -D > /dev/null 2>&1
- if [ $? -gt 0 ]; then
diff --git a/extra/avahi/avahi.install b/extra/avahi/avahi.install
deleted file mode 100644
index 7c75c3dd4..000000000
--- a/extra/avahi/avahi.install
+++ /dev/null
@@ -1,21 +0,0 @@
-post_install() {
- getent group avahi &>/dev/null || groupadd -r -g 84 avahi >/dev/null
- getent passwd avahi &>/dev/null || useradd -r -u 84 -g avahi -d / -s /bin/false -c avahi avahi >/dev/null
-
- cat <<EOF
-==> The following daemons may be added to DAEMONS in /etc/rc.conf:
-==> avahi-daemon: the mdns responder, you probably want this.
-==> dbus needs to be running when you start it.
-==> avahi-dnsconfd: daemon used for peer-to-peer automatic dns
-==> configuration on dhcp-less networks.
-
-==> To use some of the client applications you will have to install python.
-==> In addition, pygtk is required for the graphical ones and
-==> twisted for avahi-bookmarks.
-EOF
-}
-
-post_remove() {
- getent passwd avahi &>/dev/null && userdel avahi >/dev/null
- getent group avahi &>/dev/null && groupdel avahi >/dev/null
-}
diff --git a/extra/file-roller/PKGBUILD b/extra/file-roller/PKGBUILD
deleted file mode 100644
index 5d7d1c2ec..000000000
--- a/extra/file-roller/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 124730 2011-05-24 07:10:29Z ibiru $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgname=file-roller
-pkgver=3.0.2
-pkgrel=1
-pkgdesc="Archive manipulator for GNOME"
-arch=('i686' 'x86_64')
-license=('GPL')
-depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf' 'nautilus')
-makedepends=('intltool' 'gnome-doc-utils' 'pkg-config' 'nautilus' 'libsm')
-optdepends=('unrar: the RAR uncompression program'
- 'zip: creates PKZIP-compatible .zip files'
- 'unzip: unpacks .zip archives'
- 'p7zip: 7zip compression utility'
- 'xz: managing LZMA and XZ compressed files'
- 'arj: ARJ archiver'
- 'unace: extraction tool for the proprietary ace archive format')
-groups=('gnome-extra')
-options=('!libtool' '!emptydirs')
-install=file-roller.install
-url="http://www.gnome.org"
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('a612f05c44f82328175ddca1b4a1da214d9c305797370b78435f490b250af3d1')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --sysconfdir=/etc \
- --libexecdir=/usr/lib/file-roller \
- --localstatedir=/var --disable-static \
- --disable-scrollkeeper --disable-schemas-compile
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/extra/file-roller/file-roller.install b/extra/file-roller/file-roller.install
deleted file mode 100644
index 10a148241..000000000
--- a/extra/file-roller/file-roller.install
+++ /dev/null
@@ -1,22 +0,0 @@
-pkgname=file-roller
-
-post_install() {
- glib-compile-schemas usr/share/glib-2.0/schemas
- update-desktop-database -q
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-pre_upgrade() {
- if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
- usr/sbin/gconfpkg --uninstall ${pkgname}
- fi
-}
-
-post_upgrade() {
- post_install $1
-}
-
-
-post_remove() {
- post_install $1
-}
diff --git a/extra/qtiplot/gentoo-fix-origin-build-failure.patch b/extra/qtiplot/gentoo-fix-origin-build-failure.patch
deleted file mode 100644
index 931d87009..000000000
--- a/extra/qtiplot/gentoo-fix-origin-build-failure.patch
+++ /dev/null
@@ -1,72 +0,0 @@
---- qtiplot/src/origin/importOPJ.cpp 2010-09-01 11:07:38 +0000
-+++ qtiplot/src/origin/importOPJ.cpp 2010-09-07 10:12:30 +0000
-@@ -473,6 +473,8 @@
- }
- table->setDayFormat(format, j);
- break;
-+ default:
-+ break;
- }
- table->freeMemory();
- }
-@@ -720,7 +722,6 @@
- bkg.setAlpha(0);
- graph->setCanvasBackground(bkg);
-
-- int auto_color = -1;
- int style = 0;
- bool matrixImage = false;
- for(unsigned int c = 0; c < layer.curves.size(); ++c){
-@@ -1461,7 +1462,7 @@
-
- if (boxWhiskersPlot){
- QStringList curveNames;
-- for (unsigned int i = 0; i < graph->curveCount(); i++){
-+ for (int i = 0; i < graph->curveCount(); i++){
- BoxCurve *box = (BoxCurve *)graph->curve(i);
- if (!box || box->type() != Graph::Box)
- continue;
-@@ -1659,7 +1660,6 @@
- for(unsigned int c = 0; c < layer.curves.size(); ++c){
- Origin::GraphCurve& _curve = layer.curves[c];
- QString data(_curve.dataName.c_str());
-- int color = 0;
- double fFontScaleFactor = 2.0;
- switch(_curve.type){
- case Origin::GraphCurve::Line3D:
-@@ -1809,7 +1809,6 @@
- }
-
- QStringList formulas;
-- double start, end;
-
- plot->showColorLegend(false);
- plot->setFramed();
-@@ -1951,8 +1950,8 @@
-
- QList <PieLabel *> pieTexts = p->labelsList();
- QFont font(mw->plotLegendFont);
-- unsigned int lsize = layer.pieTexts.size();
-- for(unsigned int i = 0; i < lsize && i < pieTexts.size(); ++i){
-+ int lsize = layer.pieTexts.size();
-+ for(int i = 0; i < lsize && i < pieTexts.size(); ++i){
- Origin::TextBox text = layer.pieTexts[lsize - i - 1];
- font.setPointSizeF(text.fontSize*fFontScaleFactor);
- QFontMetrics fm(font, graph);
-@@ -2159,12 +2158,12 @@
- line.replace("&lbracket;", "(");
- line.replace("&rbracket;", ")");
-
-- QRegExp fontModifier("\p(\\d)+\\(.*\\)");//remove \p163(...) like tags
-+ QRegExp fontModifier("\\\\p(\\d)+\\(.*\\)");//remove \p163(...) like tags
- int index = line.indexOf(fontModifier);
- while (index >= 0){
- int pos1 = line.indexOf("(", index + 2) + 1;
- int length = fontModifier.matchedLength();
-- line = line.mid(pos1, length - pos1);
-+ line = line.mid(pos1, length - pos1 - 1);
- index = line.indexOf(fontModifier, index + length);
- }
-
-
-
diff --git a/extra/qtiplot/qtiplot-0.9.7.14-system-liborigin.patch b/extra/qtiplot/qtiplot-0.9.7.14-system-liborigin.patch
deleted file mode 100644
index 71ecfd5b0..000000000
--- a/extra/qtiplot/qtiplot-0.9.7.14-system-liborigin.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-=== modified file 'build.conf.example'
---- build.conf.example 2010-04-22 18:57:40 +0000
-+++ build.conf.example 2010-04-22 18:58:06 +0000
-@@ -118,6 +118,14 @@
- EMF_ENGINE_LIBS = $$QTI_ROOT/3rdparty/EmfEngine/libEmfEngine.a
-
- ##########################################################
-+## liborigin - keep commented if you wish to use local copy
-+# http://sourceforge.net/projects/liborigin/
-+##########################################################
-+
-+# LIB_ORIGIN_INCLUDEPATH = /usr/include/liborigin2
-+# LIB_ORIGIN_LIBS = -lorigin2
-+
-+##########################################################
- ## python - only used if python is needed
- ##########################################################
-
-
-=== modified file 'qtiplot/qtiplot.pro'
---- qtiplot/qtiplot.pro 2010-04-22 18:57:40 +0000
-+++ qtiplot/qtiplot.pro 2010-04-22 19:08:57 +0000
-@@ -16,6 +16,7 @@
- INCLUDEPATH += $$QWT_INCLUDEPATH
- INCLUDEPATH += $$QWT3D_INCLUDEPATH
- INCLUDEPATH += $$GSL_INCLUDEPATH
-+INCLUDEPATH += $$LIB_ORIGIN_INCLUDEPATH
-
- # configurable libs
- LIBS += $$MUPARSER_LIBS
-@@ -23,6 +24,7 @@
- LIBS += $$QWT3D_LIBS
- LIBS += $$QTEXENGINE_LIBS
- LIBS += $$GSL_LIBS
-+LIBS += $$LIB_ORIGIN_LIBS
-
- #############################################################################
- ###################### BASIC PROJECT PROPERTIES #############################
-@@ -150,6 +152,10 @@
- SOURCES += ../3rdparty/QTeXEngine/src/QTeXPaintDevice.cpp
- }
-
-+isEmpty(LIB_ORIGIN_LIBS) {
-+ INCLUDEPATH += ../3rdparty/liborigin
-+}
-+
- ###############################################################
- ##################### Scripting: PYTHON + SIP + PyQT ##########
- ###############################################################
-
-=== modified file 'qtiplot/src/origin/origin.pri'
---- qtiplot/src/origin/origin.pri 2010-04-22 17:58:49 +0000
-+++ qtiplot/src/origin/origin.pri 2010-04-22 19:08:15 +0000
-@@ -4,24 +4,28 @@
- INCLUDEPATH += src/origin/
-
- HEADERS += src/origin/importOPJ.h
--HEADERS += ../3rdparty/liborigin/OriginObj.h
--HEADERS += ../3rdparty/liborigin/OriginFile.h
--HEADERS += ../3rdparty/liborigin/OriginParser.h
--HEADERS += ../3rdparty/liborigin/OriginDefaultParser.h
--HEADERS += ../3rdparty/liborigin/Origin600Parser.h
--HEADERS += ../3rdparty/liborigin/Origin610Parser.h
--HEADERS += ../3rdparty/liborigin/Origin700Parser.h
--HEADERS += ../3rdparty/liborigin/Origin750Parser.h
--HEADERS += ../3rdparty/liborigin/Origin800Parser.h
--HEADERS += ../3rdparty/liborigin/Origin810Parser.h
-
- SOURCES += src/origin/importOPJ.cpp
--SOURCES += ../3rdparty/liborigin/OriginFile.cpp
--SOURCES += ../3rdparty/liborigin/OriginParser.cpp
--SOURCES += ../3rdparty/liborigin/OriginDefaultParser.cpp
--SOURCES += ../3rdparty/liborigin/Origin600Parser.cpp
--SOURCES += ../3rdparty/liborigin/Origin610Parser.cpp
--SOURCES += ../3rdparty/liborigin/Origin700Parser.cpp
--SOURCES += ../3rdparty/liborigin/Origin750Parser.cpp
--SOURCES += ../3rdparty/liborigin/Origin800Parser.cpp
--SOURCES += ../3rdparty/liborigin/Origin810Parser.cpp
-+
-+isEmpty(LIB_ORIGIN_LIBS) {
-+ HEADERS += ../3rdparty/liborigin/OriginObj.h
-+ HEADERS += ../3rdparty/liborigin/OriginFile.h
-+ HEADERS += ../3rdparty/liborigin/OriginParser.h
-+ HEADERS += ../3rdparty/liborigin/OriginDefaultParser.h
-+ HEADERS += ../3rdparty/liborigin/Origin600Parser.h
-+ HEADERS += ../3rdparty/liborigin/Origin610Parser.h
-+ HEADERS += ../3rdparty/liborigin/Origin700Parser.h
-+ HEADERS += ../3rdparty/liborigin/Origin750Parser.h
-+ HEADERS += ../3rdparty/liborigin/Origin800Parser.h
-+ HEADERS += ../3rdparty/liborigin/Origin810Parser.h
-+
-+ SOURCES += ../3rdparty/liborigin/OriginFile.cpp
-+ SOURCES += ../3rdparty/liborigin/OriginParser.cpp
-+ SOURCES += ../3rdparty/liborigin/OriginDefaultParser.cpp
-+ SOURCES += ../3rdparty/liborigin/Origin600Parser.cpp
-+ SOURCES += ../3rdparty/liborigin/Origin610Parser.cpp
-+ SOURCES += ../3rdparty/liborigin/Origin700Parser.cpp
-+ SOURCES += ../3rdparty/liborigin/Origin750Parser.cpp
-+ SOURCES += ../3rdparty/liborigin/Origin800Parser.cpp
-+ SOURCES += ../3rdparty/liborigin/Origin810Parser.cpp
-+}
diff --git a/extra/xulrunner/port_gnomevfs_to_gio.patch b/extra/xulrunner/port_gnomevfs_to_gio.patch
deleted file mode 100644
index 797baff42..000000000
--- a/extra/xulrunner/port_gnomevfs_to_gio.patch
+++ /dev/null
@@ -1,1316 +0,0 @@
-diff -r 49a1b2aa43c5 extensions/gio/Makefile.in
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/Makefile.in Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,69 @@
-+# vim:set ts=8 sw=8 sts=8 noet:
-+# ***** BEGIN LICENSE BLOCK *****
-+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+#
-+# The contents of this file are subject to the Mozilla Public License Version
-+# 1.1 (the "License"); you may not use this file except in compliance with
-+# the License. You may obtain a copy of the License at
-+# http://www.mozilla.org/MPL/
-+#
-+# Software distributed under the License is distributed on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+# for the specific language governing rights and limitations under the
-+# License.
-+#
-+# The Original Code is the Mozilla gnome-vfs extension.
-+#
-+# The Initial Developer of the Original Code is IBM Corporation.
-+#
-+# Portions created by IBM Corporation are Copyright (C) 2004
-+# IBM Corporation. All Rights Reserved.
-+#
-+# Contributor(s):
-+# Darin Fisher <darin@meer.net>
-+# Jan Horak <jhorak@redhat.com>
-+#
-+# Alternatively, the contents of this file may be used under the terms of
-+# either the GNU General Public License Version 2 or later (the "GPL"), or
-+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+# in which case the provisions of the GPL or the LGPL are applicable instead
-+# of those above. If you wish to allow use of your version of this file only
-+# under the terms of either the GPL or the LGPL, and not to allow others to
-+# use your version of this file under the terms of the MPL, indicate your
-+# decision by deleting the provisions above and replace them with the notice
-+# and other provisions required by the GPL or the LGPL. If you do not delete
-+# the provisions above, a recipient may use your version of this file under
-+# the terms of any one of the MPL, the GPL or the LGPL.
-+#
-+# ***** END LICENSE BLOCK *****
-+
-+DEPTH = ../..
-+topsrcdir = @top_srcdir@
-+srcdir = @srcdir@
-+VPATH = @srcdir@
-+
-+include $(DEPTH)/config/autoconf.mk
-+
-+MODULE = nkgio
-+LIBRARY_NAME = nkgio
-+SHORT_LIBNAME = nkgio
-+IS_COMPONENT = 1
-+
-+CPPSRCS = \
-+ nsGIOProtocolHandler.cpp \
-+ $(NULL)
-+
-+LOCAL_INCLUDES = $(MOZ_GIO_CFLAGS)
-+
-+EXTRA_DSO_LDOPTS = \
-+ $(XPCOM_GLUE_LDOPTS) \
-+ $(NSPR_LIBS) \
-+ $(MOZ_GIO_LIBS) \
-+ $(NULL)
-+
-+# make sure this component is never statically linked into the main
-+# application. this is necessary since we don't want to force users
-+# to install gio in order to use the rest of mozilla ;-)
-+FORCE_SHARED_LIB= 1
-+
-+include $(topsrcdir)/config/rules.mk
-diff -r 49a1b2aa43c5 extensions/gio/makefiles.sh
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/makefiles.sh Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,41 @@
-+#! /bin/sh
-+# ***** BEGIN LICENSE BLOCK *****
-+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+#
-+# The contents of this file are subject to the Mozilla Public License Version
-+# 1.1 (the "License"); you may not use this file except in compliance with
-+# the License. You may obtain a copy of the License at
-+# http://www.mozilla.org/MPL/
-+#
-+# Software distributed under the License is distributed on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+# for the specific language governing rights and limitations under the
-+# License.
-+#
-+# The Original Code is Mozilla Build System
-+#
-+# The Initial Developer of the Original Code is
-+# Ben Turner <mozilla@songbirdnest.com>
-+#
-+# Portions created by the Initial Developer are Copyright (C) 2007
-+# the Initial Developer. All Rights Reserved.
-+#
-+# Contributor(s):
-+#
-+# Alternatively, the contents of this file may be used under the terms of
-+# either the GNU General Public License Version 2 or later (the "GPL"), or
-+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+# in which case the provisions of the GPL or the LGPL are applicable instead
-+# of those above. If you wish to allow use of your version of this file only
-+# under the terms of either the GPL or the LGPL, and not to allow others to
-+# use your version of this file under the terms of the MPL, indicate your
-+# decision by deleting the provisions above and replace them with the notice
-+# and other provisions required by the GPL or the LGPL. If you do not delete
-+# the provisions above, a recipient may use your version of this file under
-+# the terms of any one of the MPL, the GPL or the LGPL.
-+#
-+# ***** END LICENSE BLOCK *****
-+
-+add_makefiles "
-+ extensions/gio/Makefile
-+"
-diff -r 49a1b2aa43c5 extensions/gio/nsGIOProtocolHandler.cpp
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/extensions/gio/nsGIOProtocolHandler.cpp Tue Jan 11 11:17:52 2011 +0100
-@@ -0,0 +1,1163 @@
-+/* vim:set ts=2 sw=2 et cindent: */
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is the Mozilla gnome-vfs extension.
-+ *
-+ * The Initial Developer of the Original Code is IBM Corporation.
-+ *
-+ * Portions created by IBM Corporation are Copyright (C) 2004
-+ * IBM Corporation. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Darin Fisher <darin@meer.net>
-+ * Jan Horak <jhorak@redhat.com>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either the GNU General Public License Version 2 or later (the "GPL"), or
-+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+/*
-+ * This code is based on original Mozilla gnome-vfs extension. It implements
-+ * input stream provided by GVFS/GIO.
-+*/
-+#include "mozilla/ModuleUtils.h"
-+#include "nsIPrefService.h"
-+#include "nsIPrefBranch2.h"
-+#include "nsIObserver.h"
-+#include "nsThreadUtils.h"
-+#include "nsProxyRelease.h"
-+#include "nsIStringBundle.h"
-+#include "nsIStandardURL.h"
-+#include "nsMimeTypes.h"
-+#include "nsNetUtil.h"
-+#include "mozilla/Monitor.h"
-+#include <gio/gio.h>
-+
-+#define MOZ_GIO_SCHEME "moz-gio"
-+#define MOZ_GIO_SUPPORTED_PROTOCOLS "network.gio.supported-protocols"
-+
-+//-----------------------------------------------------------------------------
-+
-+// NSPR_LOG_MODULES=gio:5
-+#ifdef PR_LOGGING
-+static PRLogModuleInfo *sGIOLog;
-+#define LOG(args) PR_LOG(sGIOLog, PR_LOG_DEBUG, args)
-+#else
-+#define LOG(args)
-+#endif
-+
-+
-+//-----------------------------------------------------------------------------
-+static nsresult
-+MapGIOResult(gint code)
-+{
-+ switch (code)
-+ {
-+ case G_IO_ERROR_NOT_FOUND: return NS_ERROR_FILE_NOT_FOUND; // shows error
-+ case G_IO_ERROR_INVALID_ARGUMENT: return NS_ERROR_INVALID_ARG;
-+ case G_IO_ERROR_NOT_SUPPORTED: return NS_ERROR_NOT_AVAILABLE;
-+ case G_IO_ERROR_NO_SPACE: return NS_ERROR_FILE_NO_DEVICE_SPACE;
-+ case G_IO_ERROR_READ_ONLY: return NS_ERROR_FILE_READ_ONLY;
-+ case G_IO_ERROR_PERMISSION_DENIED: return NS_ERROR_FILE_ACCESS_DENIED; // wrong password/login
-+ case G_IO_ERROR_CLOSED: return NS_BASE_STREAM_CLOSED; // was EOF
-+ case G_IO_ERROR_NOT_DIRECTORY: return NS_ERROR_FILE_NOT_DIRECTORY;
-+ case G_IO_ERROR_PENDING: return NS_ERROR_IN_PROGRESS;
-+ case G_IO_ERROR_EXISTS: return NS_ERROR_FILE_ALREADY_EXISTS;
-+ case G_IO_ERROR_IS_DIRECTORY: return NS_ERROR_FILE_IS_DIRECTORY;
-+ case G_IO_ERROR_NOT_MOUNTED: return NS_ERROR_NOT_CONNECTED; // shows error
-+ case G_IO_ERROR_HOST_NOT_FOUND: return NS_ERROR_UNKNOWN_HOST; // shows error
-+ case G_IO_ERROR_CANCELLED: return NS_ERROR_ABORT;
-+ case G_IO_ERROR_NOT_EMPTY: return NS_ERROR_FILE_DIR_NOT_EMPTY;
-+ case G_IO_ERROR_FILENAME_TOO_LONG: return NS_ERROR_FILE_NAME_TOO_LONG;
-+ case G_IO_ERROR_INVALID_FILENAME: return NS_ERROR_FILE_INVALID_PATH;
-+ case G_IO_ERROR_TIMED_OUT: return NS_ERROR_NET_TIMEOUT; // shows error
-+ case G_IO_ERROR_WOULD_BLOCK: return NS_BASE_STREAM_WOULD_BLOCK;
-+ case G_IO_ERROR_FAILED_HANDLED: return NS_ERROR_ABORT; // Cancel on login dialog
-+
-+/* unhandled:
-+ G_IO_ERROR_NOT_REGULAR_FILE,
-+ G_IO_ERROR_NOT_SYMBOLIC_LINK,
-+ G_IO_ERROR_NOT_MOUNTABLE_FILE,
-+ G_IO_ERROR_TOO_MANY_LINKS,
-+ G_IO_ERROR_ALREADY_MOUNTED,
-+ G_IO_ERROR_CANT_CREATE_BACKUP,
-+ G_IO_ERROR_WRONG_ETAG,
-+ G_IO_ERROR_WOULD_RECURSE,
-+ G_IO_ERROR_BUSY,
-+ G_IO_ERROR_WOULD_MERGE,
-+ G_IO_ERROR_TOO_MANY_OPEN_FILES
-+*/
-+ // Make GCC happy
-+ default:
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ return NS_ERROR_FAILURE;
-+}
-+
-+static nsresult
-+MapGIOResult(GError *result)
-+{
-+ if (!result)
-+ return NS_OK;
-+ else
-+ return MapGIOResult(result->code);
-+}
-+/** Return values for mount operation.
-+ * These enums are used as mount operation return values.
-+ */
-+typedef enum {
-+ MOUNT_OPERATION_IN_PROGRESS, /** \enum operation in progress */
-+ MOUNT_OPERATION_SUCCESS, /** \enum operation successful */
-+ MOUNT_OPERATION_FAILED /** \enum operation not successful */
-+} MountOperationResult;
-+//-----------------------------------------------------------------------------
-+/**
-+ * Sort function compares according to file type (directory/file)
-+ * and alphabethical order
-+ * @param a pointer to GFileInfo object to compare
-+ * @param b pointer to GFileInfo object to compare
-+ * @return -1 when first object should be before the second, 0 when equal,
-+ * +1 when second object should be before the first
-+ */
-+static gint
-+FileInfoComparator(gconstpointer a, gconstpointer b)
-+{
-+ GFileInfo *ia = ( GFileInfo *) a;
-+ GFileInfo *ib = ( GFileInfo *) b;
-+ if (g_file_info_get_file_type(ia) == G_FILE_TYPE_DIRECTORY
-+ && g_file_info_get_file_type(ib) != G_FILE_TYPE_DIRECTORY)
-+ return -1;
-+ if (g_file_info_get_file_type(ib) == G_FILE_TYPE_DIRECTORY
-+ && g_file_info_get_file_type(ia) != G_FILE_TYPE_DIRECTORY)
-+ return 1;
-+
-+ return strcasecmp(g_file_info_get_name(ia), g_file_info_get_name(ib));
-+}
-+
-+/* Declaration of mount callback functions */
-+static void mount_enclosing_volume_finished (GObject *source_object,
-+ GAsyncResult *res,
-+ gpointer user_data);
-+static void mount_operation_ask_password (GMountOperation *mount_op,
-+ const char *message,
-+ const char *default_user,
-+ const char *default_domain,
-+ GAskPasswordFlags flags,
-+ gpointer user_data);
-+//-----------------------------------------------------------------------------
-+
-+class nsGIOInputStream : public nsIInputStream
-+{
-+ public:
-+ NS_DECL_ISUPPORTS
-+ NS_DECL_NSIINPUTSTREAM
-+
-+ nsGIOInputStream(const nsCString &uriSpec)
-+ : mSpec(uriSpec)
-+ , mChannel(nsnull)
-+ , mHandle(nsnull)
-+ , mStream(nsnull)
-+ , mBytesRemaining(PR_UINT32_MAX)
-+ , mStatus(NS_OK)
-+ , mDirList(nsnull)
-+ , mDirListPtr(nsnull)
-+ , mDirBufCursor(0)
-+ , mDirOpen(PR_FALSE)
-+ , mMonitorMountInProgress("GIOInputStream::MountFinished") { }
-+
-+ ~nsGIOInputStream() { Close(); }
-+
-+ void SetChannel(nsIChannel *channel)
-+ {
-+ // We need to hold an owning reference to our channel. This is done
-+ // so we can access the channel's notification callbacks to acquire
-+ // a reference to a nsIAuthPrompt if we need to handle an interactive
-+ // mount operation.
-+ //
-+ // However, the channel can only be accessed on the main thread, so
-+ // we have to be very careful with ownership. Moreover, it doesn't
-+ // support threadsafe addref/release, so proxying is the answer.
-+ //
-+ // Also, it's important to note that this likely creates a reference
-+ // cycle since the channel likely owns this stream. This reference
-+ // cycle is broken in our Close method.
-+
-+ NS_ADDREF(mChannel = channel);
-+ }
-+ void SetMountResult(MountOperationResult result, gint error_code);
-+ private:
-+ nsresult DoOpen();
-+ nsresult DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead);
-+ nsresult SetContentTypeOfChannel(const char *contentType);
-+ nsresult MountVolume();
-+ nsresult DoOpenDirectory();
-+ nsresult DoOpenFile(GFileInfo *info);
-+ nsCString mSpec;
-+ nsIChannel *mChannel; // manually refcounted
-+ GFile *mHandle;
-+ GFileInputStream *mStream;
-+ PRUint64 mBytesRemaining;
-+ nsresult mStatus;
-+ GList *mDirList;
-+ GList *mDirListPtr;
-+ nsCString mDirBuf;
-+ PRUint32 mDirBufCursor;
-+ PRPackedBool mDirOpen;
-+ MountOperationResult mMountRes;
-+ mozilla::Monitor mMonitorMountInProgress;
-+ gint mMountErrorCode;
-+};
-+/**
-+ * Set result of mount operation and notify monitor waiting for results.
-+ * This method is called in main thread as long as it is used only
-+ * in mount_enclosing_volume_finished function.
-+ * @param result Result of mount operation
-+ */
-+void
-+nsGIOInputStream::SetMountResult(MountOperationResult result, gint error_code)
-+{
-+ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
-+ mMountRes = result;
-+ mMountErrorCode = error_code;
-+ mon.Notify();
-+}
-+
-+/**
-+ * Start mount operation and wait in loop until it is finished. This method is
-+ * called from thread which is trying to read from location.
-+ */
-+nsresult
-+nsGIOInputStream::MountVolume() {
-+ GMountOperation* mount_op = g_mount_operation_new();
-+ g_signal_connect (mount_op, "ask-password",
-+ G_CALLBACK (mount_operation_ask_password), mChannel);
-+ mMountRes = MOUNT_OPERATION_IN_PROGRESS;
-+ /* g_file_mount_enclosing_volume uses a dbus request to mount the volume.
-+ Callback mount_enclosing_volume_finished is called in main thread
-+ (not this thread on which this method is called). */
-+ g_file_mount_enclosing_volume(mHandle,
-+ G_MOUNT_MOUNT_NONE,
-+ mount_op,
-+ NULL,
-+ mount_enclosing_volume_finished,
-+ this);
-+ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
-+ /* Waiting for finish of mount operation thread */
-+ while (mMountRes == MOUNT_OPERATION_IN_PROGRESS)
-+ mon.Wait();
-+
-+ g_object_unref(mount_op);
-+
-+ if (mMountRes == MOUNT_OPERATION_FAILED) {
-+ return MapGIOResult(mMountErrorCode);
-+ } else {
-+ return NS_OK;
-+ }
-+}
-+
-+/**
-+ * Create list of infos about objects in opened directory
-+ * Return: NS_OK when list obtained, otherwise error code according
-+ * to failed operation.
-+ */
-+nsresult
-+nsGIOInputStream::DoOpenDirectory()
-+{
-+ GError *error = NULL;
-+
-+ GFileEnumerator *f_enum = g_file_enumerate_children(mHandle,
-+ "standard::*,time::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+ if (!f_enum) {
-+ nsresult rv = MapGIOResult(error);
-+ g_warning("Cannot read from directory: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ // fill list of file infos
-+ GFileInfo *info = g_file_enumerator_next_file(f_enum, NULL, &error);
-+ while (info) {
-+ mDirList = g_list_append(mDirList, info);
-+ info = g_file_enumerator_next_file(f_enum, NULL, &error);
-+ }
-+ g_object_unref(f_enum);
-+ if (error) {
-+ g_warning("Error reading directory content: %s", error->message);
-+ nsresult rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ mDirOpen = PR_TRUE;
-+
-+ // Sort list of file infos by using FileInfoComparator function
-+ mDirList = g_list_sort(mDirList, FileInfoComparator);
-+ mDirListPtr = mDirList;
-+
-+ // Write base URL (make sure it ends with a '/')
-+ mDirBuf.Append("300: ");
-+ mDirBuf.Append(mSpec);
-+ if (mSpec.get()[mSpec.Length() - 1] != '/')
-+ mDirBuf.Append('/');
-+ mDirBuf.Append('\n');
-+
-+ // Write column names
-+ mDirBuf.Append("200: filename content-length last-modified file-type\n");
-+
-+ // Write charset (assume UTF-8)
-+ // XXX is this correct?
-+ mDirBuf.Append("301: UTF-8\n");
-+ SetContentTypeOfChannel(APPLICATION_HTTP_INDEX_FORMAT);
-+ return NS_OK;
-+}
-+
-+/**
-+ * Create file stream and set mime type for channel
-+ * @param info file info used to determine mime type
-+ * @return NS_OK when file stream created successfuly, error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoOpenFile(GFileInfo *info)
-+{
-+ GError *error = NULL;
-+
-+ mStream = g_file_read(mHandle, NULL, &error);
-+ if (!mStream) {
-+ nsresult rv = MapGIOResult(error);
-+ g_warning("Cannot read from file: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+
-+ const char * content_type = g_file_info_get_content_type(info);
-+ if (content_type) {
-+ char *mime_type = g_content_type_get_mime_type(content_type);
-+ if (mime_type) {
-+ if (strcmp(mime_type, APPLICATION_OCTET_STREAM) != 0) {
-+ SetContentTypeOfChannel(mime_type);
-+ }
-+ g_free(mime_type);
-+ }
-+ } else {
-+ g_warning("Missing content type.");
-+ }
-+
-+ mBytesRemaining = g_file_info_get_size(info);
-+ // Update the content length attribute on the channel. We do this
-+ // synchronously without proxying. This hack is not as bad as it looks!
-+ mChannel->SetContentLength(mBytesRemaining);
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Start file open operation, mount volume when needed and according to file type
-+ * create file output stream or read directory content.
-+ * @return NS_OK when file or directory opened successfully, error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoOpen()
-+{
-+ nsresult rv;
-+ GError *error = NULL;
-+
-+ NS_ASSERTION(mHandle == nsnull, "already open");
-+
-+ mHandle = g_file_new_for_uri( mSpec.get() );
-+
-+ GFileInfo *info = g_file_query_info(mHandle,
-+ "standard::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+
-+ if (error) {
-+ if (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_NOT_MOUNTED) {
-+ // location is not yet mounted, try to mount
-+ g_error_free(error);
-+ if (NS_IsMainThread())
-+ return NS_ERROR_NOT_CONNECTED;
-+ error = NULL;
-+ rv = MountVolume();
-+ if (rv != NS_OK) {
-+ return rv;
-+ }
-+ // get info again
-+ info = g_file_query_info(mHandle,
-+ "standard::*",
-+ G_FILE_QUERY_INFO_NONE,
-+ NULL,
-+ &error);
-+ // second try to get file info from remote files after media mount
-+ if (!info) {
-+ g_warning("Unable to get file info: %s", error->message);
-+ rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ } else {
-+ g_warning("Unable to get file info: %s", error->message);
-+ rv = MapGIOResult(error);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ }
-+ // Get file type to handle directories and file differently
-+ GFileType f_type = g_file_info_get_file_type(info);
-+ if (f_type == G_FILE_TYPE_DIRECTORY) {
-+ // directory
-+ rv = DoOpenDirectory();
-+ } else if (f_type != G_FILE_TYPE_UNKNOWN) {
-+ // file
-+ rv = DoOpenFile(info);
-+ } else {
-+ g_warning("Unable to get file type.");
-+ rv = NS_ERROR_FILE_NOT_FOUND;
-+ }
-+ if (info)
-+ g_object_unref(info);
-+ return rv;
-+}
-+
-+/**
-+ * Read content of file or create file list from directory
-+ * @param aBuf read destination buffer
-+ * @param aCount length of destination buffer
-+ * @param aCountRead number of read characters
-+ * @return NS_OK when read successfully, NS_BASE_STREAM_CLOSED when end of file,
-+ * error code otherwise
-+ */
-+nsresult
-+nsGIOInputStream::DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead)
-+{
-+ nsresult rv = NS_ERROR_NOT_AVAILABLE;
-+ if (mStream) {
-+ // file read
-+ GError *error = NULL;
-+ PRUint32 bytes_read = g_input_stream_read(G_INPUT_STREAM(mStream),
-+ aBuf,
-+ aCount,
-+ NULL,
-+ &error);
-+ if (error) {
-+ rv = MapGIOResult(error);
-+ *aCountRead = 0;
-+ g_warning("Cannot read from file: %s", error->message);
-+ g_error_free(error);
-+ return rv;
-+ }
-+ *aCountRead = bytes_read;
-+ mBytesRemaining -= *aCountRead;
-+ return NS_OK;
-+ }
-+ else if (mDirOpen) {
-+ // directory read
-+ while (aCount && rv != NS_BASE_STREAM_CLOSED)
-+ {
-+ // Copy data out of our buffer
-+ PRUint32 bufLen = mDirBuf.Length() - mDirBufCursor;
-+ if (bufLen)
-+ {
-+ PRUint32 n = PR_MIN(bufLen, aCount);
-+ memcpy(aBuf, mDirBuf.get() + mDirBufCursor, n);
-+ *aCountRead += n;
-+ aBuf += n;
-+ aCount -= n;
-+ mDirBufCursor += n;
-+ }
-+
-+ if (!mDirListPtr) // Are we at the end of the directory list?
-+ {
-+ rv = NS_BASE_STREAM_CLOSED;
-+ }
-+ else if (aCount) // Do we need more data?
-+ {
-+ GFileInfo *info = (GFileInfo *) mDirListPtr->data;
-+
-+ // Prune '.' and '..' from directory listing.
-+ const char * fname = g_file_info_get_name(info);
-+ if (fname && fname[0] == '.' &&
-+ (fname[1] == '\0' || (fname[1] == '.' && fname[2] == '\0')))
-+ {
-+ mDirListPtr = mDirListPtr->next;
-+ continue;
-+ }
-+
-+ mDirBuf.Assign("201: ");
-+
-+ // The "filename" field
-+ nsCString escName;
-+ nsCOMPtr<nsINetUtil> nu = do_GetService(NS_NETUTIL_CONTRACTID);
-+ if (nu && fname) {
-+ nu->EscapeString(nsDependentCString(fname),
-+ nsINetUtil::ESCAPE_URL_PATH, escName);
-+
-+ mDirBuf.Append(escName);
-+ mDirBuf.Append(' ');
-+ }
-+
-+ // The "content-length" field
-+ // XXX truncates size from 64-bit to 32-bit
-+ mDirBuf.AppendInt(PRInt32(g_file_info_get_size(info)));
-+ mDirBuf.Append(' ');
-+
-+ // The "last-modified" field
-+ //
-+ // NSPR promises: PRTime is compatible with time_t
-+ // we just need to convert from seconds to microseconds
-+ GTimeVal gtime;
-+ g_file_info_get_modification_time(info, &gtime);
-+
-+ PRExplodedTime tm;
-+ PRTime pt = ((PRTime) gtime.tv_sec) * 1000000;
-+ PR_ExplodeTime(pt, PR_GMTParameters, &tm);
-+ {
-+ char buf[64];
-+ PR_FormatTimeUSEnglish(buf, sizeof(buf),
-+ "%a,%%20%d%%20%b%%20%Y%%20%H:%M:%S%%20GMT ", &tm);
-+ mDirBuf.Append(buf);
-+ }
-+
-+ // The "file-type" field
-+ switch (g_file_info_get_file_type(info))
-+ {
-+ case G_FILE_TYPE_REGULAR:
-+ mDirBuf.Append("FILE ");
-+ break;
-+ case G_FILE_TYPE_DIRECTORY:
-+ mDirBuf.Append("DIRECTORY ");
-+ break;
-+ case G_FILE_TYPE_SYMBOLIC_LINK:
-+ mDirBuf.Append("SYMBOLIC-LINK ");
-+ break;
-+ default:
-+ break;
-+ }
-+ mDirBuf.Append('\n');
-+
-+ mDirBufCursor = 0;
-+ mDirListPtr = mDirListPtr->next;
-+ }
-+ }
-+ }
-+ return rv;
-+}
-+
-+/**
-+ * This class is used to implement SetContentTypeOfChannel.
-+ */
-+class nsGIOSetContentTypeEvent : public nsRunnable
-+{
-+ public:
-+ nsGIOSetContentTypeEvent(nsIChannel *channel, const char *contentType)
-+ : mChannel(channel), mContentType(contentType)
-+ {
-+ // stash channel reference in mChannel. no AddRef here! see note
-+ // in SetContentTypeOfchannel.
-+ }
-+
-+ NS_IMETHOD Run()
-+ {
-+ mChannel->SetContentType(mContentType);
-+ return NS_OK;
-+ }
-+
-+ private:
-+ nsIChannel *mChannel;
-+ nsCString mContentType;
-+};
-+
-+nsresult
-+nsGIOInputStream::SetContentTypeOfChannel(const char *contentType)
-+{
-+ // We need to proxy this call over to the main thread. We post an
-+ // asynchronous event in this case so that we don't delay reading data, and
-+ // we know that this is safe to do since the channel's reference will be
-+ // released asynchronously as well. We trust the ordering of the main
-+ // thread's event queue to protect us against memory corruption.
-+
-+ nsresult rv;
-+ nsCOMPtr<nsIRunnable> ev =
-+ new nsGIOSetContentTypeEvent(mChannel, contentType);
-+ if (!ev)
-+ {
-+ rv = NS_ERROR_OUT_OF_MEMORY;
-+ }
-+ else
-+ {
-+ rv = NS_DispatchToMainThread(ev);
-+ }
-+ return rv;
-+}
-+
-+NS_IMPL_THREADSAFE_ISUPPORTS1(nsGIOInputStream, nsIInputStream)
-+
-+/**
-+ * Free all used memory and close stream.
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Close()
-+{
-+ if (mStream)
-+ {
-+ g_object_unref(mStream);
-+ mStream = nsnull;
-+ }
-+
-+ if (mHandle)
-+ {
-+ g_object_unref(mHandle);
-+ mHandle = nsnull;
-+ }
-+
-+ if (mDirList)
-+ {
-+ // Destroy the list of GIOFileInfo objects...
-+ g_list_foreach(mDirList, (GFunc) g_object_unref, nsnull);
-+ g_list_free(mDirList);
-+ mDirList = nsnull;
-+ mDirListPtr = nsnull;
-+ }
-+
-+ if (mChannel)
-+ {
-+ nsresult rv = NS_OK;
-+
-+ nsCOMPtr<nsIThread> thread = do_GetMainThread();
-+ if (thread)
-+ rv = NS_ProxyRelease(thread, mChannel);
-+
-+ NS_ASSERTION(thread && NS_SUCCEEDED(rv), "leaking channel reference");
-+ mChannel = nsnull;
-+ }
-+
-+ mSpec.Truncate(); // free memory
-+
-+ // Prevent future reads from re-opening the handle.
-+ if (NS_SUCCEEDED(mStatus))
-+ mStatus = NS_BASE_STREAM_CLOSED;
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Return number of remaining bytes available on input
-+ * @param aResult remaining bytes
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Available(PRUint32 *aResult)
-+{
-+ if (NS_FAILED(mStatus))
-+ return mStatus;
-+
-+ /* When remaining bytes are bigger than max PRUint32 value an aResult must
-+ be set to PRUint32 maximum */
-+ if (mBytesRemaining > PR_UINT32_MAX)
-+ *aResult = PR_UINT32_MAX;
-+ else
-+ *aResult = mBytesRemaining;
-+
-+ return NS_OK;
-+}
-+
-+/**
-+ * Trying to read from stream. When location is not available it tries to mount it.
-+ * @param aBuf buffer to put read data
-+ * @param aCount length of aBuf
-+ * @param aCountRead number of bytes actually read
-+ */
-+NS_IMETHODIMP
-+nsGIOInputStream::Read(char *aBuf,
-+ PRUint32 aCount,
-+ PRUint32 *aCountRead)
-+{
-+ *aCountRead = 0;
-+ // Check if file is already opened, otherwise open it
-+ if (!mStream && !mDirOpen && mStatus == NS_OK) {
-+ mStatus = DoOpen();
-+ if (NS_FAILED(mStatus)) {
-+ return mStatus;
-+ }
-+ }
-+
-+ mStatus = DoRead(aBuf, aCount, aCountRead);
-+ // Check if all data has been read
-+ if (mStatus == NS_BASE_STREAM_CLOSED)
-+ return NS_OK;
-+
-+ // Check whenever any error appears while reading
-+ return mStatus;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOInputStream::ReadSegments(nsWriteSegmentFun aWriter,
-+ void *aClosure,
-+ PRUint32 aCount,
-+ PRUint32 *aResult)
-+{
-+ // There is no way to implement this using GnomeVFS, but fortunately
-+ // that doesn't matter. Because we are a blocking input stream, Necko
-+ // isn't going to call our ReadSegments method.
-+ NS_NOTREACHED("nsGIOInputStream::ReadSegments");
-+ return NS_ERROR_NOT_IMPLEMENTED;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOInputStream::IsNonBlocking(PRBool *aResult)
-+{
-+ *aResult = PR_FALSE;
-+ return NS_OK;
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+/**
-+ * Called when finishing mount operation. Result of operation is set in
-+ * nsGIOInputStream. This function is called in main thread as an async request
-+ * typically from dbus.
-+ * @param source_object GFile object which requested the mount
-+ * @param res result object
-+ * @param user_data pointer to nsGIOInputStream
-+ */
-+static void
-+mount_enclosing_volume_finished (GObject *source_object,
-+ GAsyncResult *res,
-+ gpointer user_data)
-+{
-+ GError *error = NULL;
-+
-+ nsGIOInputStream* istream = static_cast<nsGIOInputStream*>(user_data);
-+
-+ g_file_mount_enclosing_volume_finish(G_FILE (source_object), res, &error);
-+
-+ if (error) {
-+ g_warning("Mount failed: %s %d", error->message, error->code);
-+ istream->SetMountResult(MOUNT_OPERATION_FAILED, error->code);
-+ g_error_free(error);
-+ } else {
-+ istream->SetMountResult(MOUNT_OPERATION_SUCCESS, 0);
-+ }
-+}
-+
-+/**
-+ * This function is called when username or password are requested from user.
-+ * This function is called in main thread as async request from dbus.
-+ * @param mount_op mount operation
-+ * @param message message to show to user
-+ * @param default_user preffered user
-+ * @param default_domain domain name
-+ * @param flags what type of information is required
-+ * @param user_data nsIChannel
-+ */
-+static void
-+mount_operation_ask_password (GMountOperation *mount_op,
-+ const char *message,
-+ const char *default_user,
-+ const char *default_domain,
-+ GAskPasswordFlags flags,
-+ gpointer user_data)
-+{
-+ nsIChannel *channel = (nsIChannel *) user_data;
-+ if (!channel) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // We can't handle request for domain
-+ if (flags & G_ASK_PASSWORD_NEED_DOMAIN) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+
-+ nsCOMPtr<nsIAuthPrompt> prompt;
-+ NS_QueryNotificationCallbacks(channel, prompt);
-+
-+ // If no auth prompt, then give up. We could failover to using the
-+ // WindowWatcher service, but that might defeat a consumer's purposeful
-+ // attempt to disable authentication (for whatever reason).
-+ if (!prompt) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Parse out the host and port...
-+ nsCOMPtr<nsIURI> uri;
-+ channel->GetURI(getter_AddRefs(uri));
-+ if (!uri) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+
-+ nsCAutoString scheme, hostPort;
-+ uri->GetScheme(scheme);
-+ uri->GetHostPort(hostPort);
-+
-+ // It doesn't make sense for either of these strings to be empty. What kind
-+ // of funky URI is this?
-+ if (scheme.IsEmpty() || hostPort.IsEmpty()) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Construct the single signon key. Altering the value of this key will
-+ // cause people's remembered passwords to be forgotten. Think carefully
-+ // before changing the way this key is constructed.
-+ nsAutoString key, realm;
-+
-+ NS_ConvertUTF8toUTF16 dispHost(scheme);
-+ dispHost.Append(NS_LITERAL_STRING("://"));
-+ dispHost.Append(NS_ConvertUTF8toUTF16(hostPort));
-+
-+ key = dispHost;
-+ if (*default_domain != '\0')
-+ {
-+ // We assume the realm string is ASCII. That might be a bogus assumption,
-+ // but we have no idea what encoding GnomeVFS is using, so for now we'll
-+ // limit ourselves to ISO-Latin-1. XXX What is a better solution?
-+ realm.Append('"');
-+ realm.Append(NS_ConvertASCIItoUTF16(default_domain));
-+ realm.Append('"');
-+ key.Append(' ');
-+ key.Append(realm);
-+ }
-+ // Construct the message string...
-+ //
-+ // We use Necko's string bundle here. This code really should be encapsulated
-+ // behind some Necko API, after all this code is based closely on the code in
-+ // nsHttpChannel.cpp.
-+ nsCOMPtr<nsIStringBundleService> bundleSvc =
-+ do_GetService(NS_STRINGBUNDLE_CONTRACTID);
-+ if (!bundleSvc) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ nsCOMPtr<nsIStringBundle> bundle;
-+ bundleSvc->CreateBundle("chrome://global/locale/commonDialogs.properties",
-+ getter_AddRefs(bundle));
-+ if (!bundle) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ nsAutoString nsmessage;
-+
-+ if (flags & G_ASK_PASSWORD_NEED_PASSWORD) {
-+ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
-+ if (!realm.IsEmpty()) {
-+ const PRUnichar *strings[] = { realm.get(), dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterLoginForRealm").get(),
-+ strings, 2, getter_Copies(nsmessage));
-+ } else {
-+ const PRUnichar *strings[] = { dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterUserPasswordFor").get(),
-+ strings, 1, getter_Copies(nsmessage));
-+ }
-+ } else {
-+ NS_ConvertUTF8toUTF16 userName(default_user);
-+ const PRUnichar *strings[] = { userName.get(), dispHost.get() };
-+ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterPasswordFor").get(),
-+ strings, 2, getter_Copies(nsmessage));
-+ }
-+ } else {
-+ g_warning("Unknown mount operation request (flags: %x)", flags);
-+ }
-+
-+ if (nsmessage.IsEmpty()) {
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ // Prompt the user...
-+ nsresult rv;
-+ PRBool retval = PR_FALSE;
-+ PRUnichar *user = nsnull, *pass = nsnull;
-+ if (default_user) {
-+ // user will be freed by PromptUsernameAndPassword
-+ user = ToNewUnicode(NS_ConvertUTF8toUTF16(default_user));
-+ }
-+ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
-+ rv = prompt->PromptUsernameAndPassword(nsnull, nsmessage.get(),
-+ key.get(),
-+ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
-+ &user, &pass, &retval);
-+ } else {
-+ rv = prompt->PromptPassword(nsnull, nsmessage.get(),
-+ key.get(),
-+ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
-+ &pass, &retval);
-+ }
-+ if (NS_FAILED(rv) || !retval) { // was || user == '\0' || pass == '\0'
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
-+ return;
-+ }
-+ /* GIO should accept UTF8 */
-+ g_mount_operation_set_username(mount_op, NS_ConvertUTF16toUTF8(user).get());
-+ g_mount_operation_set_password(mount_op, NS_ConvertUTF16toUTF8(pass).get());
-+ nsMemory::Free(user);
-+ nsMemory::Free(pass);
-+ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_HANDLED);
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+class nsGIOProtocolHandler : public nsIProtocolHandler
-+ , public nsIObserver
-+{
-+ public:
-+ NS_DECL_ISUPPORTS
-+ NS_DECL_NSIPROTOCOLHANDLER
-+ NS_DECL_NSIOBSERVER
-+
-+ nsresult Init();
-+
-+ private:
-+ void InitSupportedProtocolsPref(nsIPrefBranch *prefs);
-+ PRBool IsSupportedProtocol(const nsCString &spec);
-+
-+ nsCString mSupportedProtocols;
-+};
-+
-+NS_IMPL_ISUPPORTS2(nsGIOProtocolHandler, nsIProtocolHandler, nsIObserver)
-+
-+nsresult
-+nsGIOProtocolHandler::Init()
-+{
-+#ifdef PR_LOGGING
-+ sGIOLog = PR_NewLogModule("gio");
-+#endif
-+
-+ nsCOMPtr<nsIPrefBranch2> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
-+ if (prefs)
-+ {
-+ InitSupportedProtocolsPref(prefs);
-+ prefs->AddObserver(MOZ_GIO_SUPPORTED_PROTOCOLS, this, PR_FALSE);
-+ }
-+
-+ return NS_OK;
-+}
-+
-+void
-+nsGIOProtocolHandler::InitSupportedProtocolsPref(nsIPrefBranch *prefs)
-+{
-+ // Get user preferences to determine which protocol is supported.
-+ // Gvfs/GIO has a set of supported protocols like obex, network, archive,
-+ // computer, dav, cdda, gphoto2, trash, etc. Some of these seems to be
-+ // irrelevant to process by browser. By default accept only smb and sftp
-+ // protocols so far.
-+ nsresult rv = prefs->GetCharPref(MOZ_GIO_SUPPORTED_PROTOCOLS,
-+ getter_Copies(mSupportedProtocols));
-+ if (NS_SUCCEEDED(rv)) {
-+ mSupportedProtocols.StripWhitespace();
-+ ToLowerCase(mSupportedProtocols);
-+ }
-+ else
-+ mSupportedProtocols.Assign("smb:,sftp:"); // use defaults
-+
-+ LOG(("gio: supported protocols \"%s\"\n", mSupportedProtocols.get()));
-+}
-+
-+PRBool
-+nsGIOProtocolHandler::IsSupportedProtocol(const nsCString &aSpec)
-+{
-+ const char *specString = aSpec.get();
-+ const char *colon = strchr(specString, ':');
-+ if (!colon)
-+ return PR_FALSE;
-+
-+ PRUint32 length = colon - specString + 1;
-+
-+ // <scheme> + ':'
-+ nsCString scheme(specString, length);
-+
-+ char *found = PL_strcasestr(mSupportedProtocols.get(), scheme.get());
-+ if (!found)
-+ return PR_FALSE;
-+
-+ if (found[length] != ',' && found[length] != '\0')
-+ return PR_FALSE;
-+
-+ return PR_TRUE;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetScheme(nsACString &aScheme)
-+{
-+ aScheme.Assign(MOZ_GIO_SCHEME);
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetDefaultPort(PRInt32 *aDefaultPort)
-+{
-+ *aDefaultPort = -1;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::GetProtocolFlags(PRUint32 *aProtocolFlags)
-+{
-+ // Is URI_STD true of all GnomeVFS URI types?
-+ *aProtocolFlags = URI_STD | URI_DANGEROUS_TO_LOAD;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::NewURI(const nsACString &aSpec,
-+ const char *aOriginCharset,
-+ nsIURI *aBaseURI,
-+ nsIURI **aResult)
-+{
-+ const nsCString flatSpec(aSpec);
-+ LOG(("gio: NewURI [spec=%s]\n", flatSpec.get()));
-+
-+ if (!aBaseURI)
-+ {
-+ // XXX Is it good to support all GIO protocols?
-+ if (!IsSupportedProtocol(flatSpec))
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+
-+ PRInt32 colon_location = flatSpec.FindChar(':');
-+ if (colon_location <= 0)
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+
-+ // Verify that GIO supports this URI scheme.
-+ PRBool uri_scheme_supported = PR_FALSE;
-+
-+ GVfs *gvfs = g_vfs_get_default();
-+
-+ if (!gvfs) {
-+ g_warning("Cannot get GVfs object.");
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+ }
-+
-+ const gchar* const * uri_schemes = g_vfs_get_supported_uri_schemes(gvfs);
-+
-+ while (*uri_schemes != NULL) {
-+ // While flatSpec ends with ':' the uri_scheme does not. Therefore do not
-+ // compare last character.
-+ if (StringHead(flatSpec, colon_location).Equals(*uri_schemes)) {
-+ uri_scheme_supported = PR_TRUE;
-+ break;
-+ }
-+ uri_schemes++;
-+ }
-+
-+ if (!uri_scheme_supported) {
-+ return NS_ERROR_UNKNOWN_PROTOCOL;
-+ }
-+ }
-+
-+ nsresult rv;
-+ nsCOMPtr<nsIStandardURL> url =
-+ do_CreateInstance(NS_STANDARDURL_CONTRACTID, &rv);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ rv = url->Init(nsIStandardURL::URLTYPE_STANDARD, -1, flatSpec,
-+ aOriginCharset, aBaseURI);
-+ if (NS_SUCCEEDED(rv))
-+ rv = CallQueryInterface(url, aResult);
-+ return rv;
-+
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::NewChannel(nsIURI *aURI, nsIChannel **aResult)
-+{
-+ NS_ENSURE_ARG_POINTER(aURI);
-+ nsresult rv;
-+
-+ nsCAutoString spec;
-+ rv = aURI->GetSpec(spec);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ nsRefPtr<nsGIOInputStream> stream = new nsGIOInputStream(spec);
-+ if (!stream)
-+ {
-+ rv = NS_ERROR_OUT_OF_MEMORY;
-+ }
-+ else
-+ {
-+ // start out assuming an unknown content-type. we'll set the content-type
-+ // to something better once we open the URI.
-+ rv = NS_NewInputStreamChannel(aResult,
-+ aURI,
-+ stream,
-+ NS_LITERAL_CSTRING(UNKNOWN_CONTENT_TYPE));
-+ if (NS_SUCCEEDED(rv))
-+ stream->SetChannel(*aResult);
-+ }
-+ return rv;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::AllowPort(PRInt32 aPort,
-+ const char *aScheme,
-+ PRBool *aResult)
-+{
-+ // Don't override anything.
-+ *aResult = PR_FALSE;
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsGIOProtocolHandler::Observe(nsISupports *aSubject,
-+ const char *aTopic,
-+ const PRUnichar *aData)
-+{
-+ if (strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID) == 0) {
-+ nsCOMPtr<nsIPrefBranch> prefs = do_QueryInterface(aSubject);
-+ InitSupportedProtocolsPref(prefs);
-+ }
-+ return NS_OK;
-+}
-+
-+//-----------------------------------------------------------------------------
-+
-+#define NS_GIOPROTOCOLHANDLER_CID \
-+{ /* ee706783-3af8-4d19-9e84-e2ebfe213480 */ \
-+ 0xee706783, \
-+ 0x3af8, \
-+ 0x4d19, \
-+ {0x9e, 0x84, 0xe2, 0xeb, 0xfe, 0x21, 0x34, 0x80} \
-+}
-+
-+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGIOProtocolHandler, Init)
-+NS_DEFINE_NAMED_CID(NS_GIOPROTOCOLHANDLER_CID);
-+
-+static const mozilla::Module::CIDEntry kVFSCIDs[] = {
-+ { &kNS_GIOPROTOCOLHANDLER_CID, false, NULL, nsGIOProtocolHandlerConstructor },
-+ { NULL }
-+};
-+
-+static const mozilla::Module::ContractIDEntry kVFSContracts[] = {
-+ { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX MOZ_GIO_SCHEME, &kNS_GIOPROTOCOLHANDLER_CID },
-+ { NULL }
-+};
-+
-+static const mozilla::Module kVFSModule = {
-+ mozilla::Module::kVersion,
-+ kVFSCIDs,
-+ kVFSContracts
-+};
-+
-+NSMODULE_DEFN(nsGIOModule) = &kVFSModule;
-diff -r 49a1b2aa43c5 netwerk/base/src/nsIOService.cpp
---- a/netwerk/base/src/nsIOService.cpp Tue Dec 21 12:42:59 2010 +0100
-+++ b/netwerk/base/src/nsIOService.cpp Tue Jan 11 11:17:52 2011 +0100
-@@ -454,6 +454,27 @@
- }
-
- #ifdef MOZ_X11
-+ // check to see whether GVFS can handle this URI scheme. if it can
-+ // create a nsIURI for the "scheme:", then we assume it has support for
-+ // the requested protocol. otherwise, we failover to using the default
-+ // protocol handler.
-+
-+ rv = CallGetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX"moz-gio",
-+ result);
-+ if (NS_SUCCEEDED(rv)) {
-+ nsCAutoString spec(scheme);
-+ spec.Append(':');
-+
-+ nsIURI *uri;
-+ rv = (*result)->NewURI(spec, nsnull, nsnull, &uri);
-+ if (NS_SUCCEEDED(rv)) {
-+ NS_RELEASE(uri);
-+ return rv;
-+ }
-+
-+ NS_RELEASE(*result);
-+ }
-+
- // check to see whether GnomeVFS can handle this URI scheme. if it can
- // create a nsIURI for the "scheme:", then we assume it has support for
- // the requested protocol. otherwise, we failover to using the default
diff --git a/extra/xulrunner/xulrunner-omnijar.patch b/extra/xulrunner/xulrunner-omnijar.patch
deleted file mode 100644
index 66ec5206c..000000000
--- a/extra/xulrunner/xulrunner-omnijar.patch
+++ /dev/null
@@ -1,1737 +0,0 @@
-# HG changeset patch
-# Parent a7dea879b4b445a23186f438900562155bb39e99
-Bug 620931 part 1 - Use chrome manifest to register resource://gre-resources/
-
-diff --git a/layout/style/jar.mn b/layout/style/jar.mn
---- a/layout/style/jar.mn
-+++ b/layout/style/jar.mn
-@@ -1,8 +1,10 @@
- toolkit.jar:
- * res/ua.css (ua.css)
- res/html.css (html.css)
- res/quirk.css (quirk.css)
- res/viewsource.css (viewsource.css)
- * res/forms.css (forms.css)
- res/arrow.gif (arrow.gif)
- res/arrowd.gif (arrowd.gif)
-+
-+% resource gre-resources %res/
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -75,17 +75,16 @@ static nsResProtocolHandler *gResHandler
- //
- // this enables PR_LOG_ALWAYS level information and places all output in
- // the file log.txt
- //
- static PRLogModuleInfo *gResLog;
- #endif
-
- #define kGRE NS_LITERAL_CSTRING("gre")
--#define kGRE_RESOURCES NS_LITERAL_CSTRING("gre-resources")
-
- //----------------------------------------------------------------------------
- // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
- //----------------------------------------------------------------------------
-
- nsresult
- nsResURL::EnsureFile()
- {
-@@ -197,28 +196,16 @@ nsResProtocolHandler::Init()
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
- // make resource://gre/ point to the GRE directory
- //
- rv = AddSpecialDir(NS_GRE_DIR, kGRE);
- NS_ENSURE_SUCCESS(rv, rv);
-
-- // make resource://gre-resources/ point to gre toolkit[.jar]/res
-- nsCOMPtr<nsIURI> greURI;
-- nsCOMPtr<nsIURI> greResURI;
-- GetSubstitution(kGRE, getter_AddRefs(greURI));
--#ifdef MOZ_CHROME_FILE_FORMAT_JAR
-- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "jar:chrome/toolkit.jar!/res/");
--#else
-- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "chrome/toolkit/res/");
--#endif
-- rv = mIOService->NewURI(strGRE_RES_URL, nsnull, greURI,
-- getter_AddRefs(greResURI));
-- SetSubstitution(kGRE_RESOURCES, greResURI);
- //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
- // but once I finish multiple chrome registration I'm not sure that it is needed
-
- // XXX dveditz: resource://pchrome/ defeats profile directory salting
- // if web content can load it. Tread carefully.
-
- return rv;
- }
-@@ -242,22 +229,16 @@ nsResProtocolHandler::Init(nsIFile *aOmn
- // these entries should be kept in sync with the normal Init function
-
- // resource:/// points to jar:omni.jar!/
- SetSubstitution(EmptyCString(), uri);
-
- // resource://gre/ points to jar:omni.jar!/
- SetSubstitution(kGRE, uri);
-
-- urlStr += "chrome/toolkit/res/";
-- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- // resource://gre-resources/ points to jar:omni.jar!/chrome/toolkit/res/
-- SetSubstitution(kGRE_RESOURCES, uri);
- return NS_OK;
- }
- #endif
-
- #ifdef MOZ_IPC
- static PLDHashOperator
- EnumerateSubstitution(const nsACString& aKey,
- nsIURI* aURI,
-# HG changeset patch
-# Parent 3038cccba1a071d6b418e15442d0f2d9f3dcb11d
-Bug 620931 part 2 - When building --with-libxul-sdk, use the right preferences directory
-
-diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
---- a/browser/locales/Makefile.in
-+++ b/browser/locales/Makefile.in
-@@ -183,17 +183,17 @@ install:: $(addsuffix .xml,$(SEARCH_PLUG
- $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/searchplugins
-
-
- libs-%:
- $(NSINSTALL) -D $(DIST)/install
- @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
- @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-- @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
-+ @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
- @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
-
-
- repackage-win32-installer: WIN32_INSTALLER_OUT="$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe"
- repackage-win32-installer: $(WIN32_INSTALLER_IN) $(SUBMAKEFILES)
- @echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
- $(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY) export
- $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen l10ngen/setup.exe l10ngen/7zSD.sfx
-diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk
---- a/toolkit/mozapps/installer/packager.mk
-+++ b/toolkit/mozapps/installer/packager.mk
-@@ -307,17 +307,17 @@ OMNIJAR_FILES = \
- res \
- defaults \
- greprefs.js \
- jsloader \
- $(NULL)
-
- NON_OMNIJAR_FILES += \
- chrome/icons/\* \
-- defaults/pref/channel-prefs.js \
-+ $(PREF_DIR)/channel-prefs.js \
- res/cursors/\* \
- res/MainMenu.nib/\* \
- $(NULL)
-
- PACK_OMNIJAR = \
- rm -f omni.jar components/binary.manifest && \
- grep -h '^binary-component' components/*.manifest > binary.manifest ; \
- sed -e 's/^binary-component/\#binary-component/' components/components.manifest > components.manifest && \
-# HG changeset patch
-# Parent cd8df8030f7ad7530692bd7c4391a8009df56a02
-Bug 620931 part 3 - Allow GRE and XUL application to use omni.jar independently
-
-We now store two independent locations for an omni.jar, allowing GRE/XRE and
-XUL application to each have their own omni.jar. And since xulrunner setups
-are very independent from the XUL applications, we implement support for both
-omni.jar and non omni.jar cases in the same runtime, with the side effect of
-allowing to switch from one to the other manually without rebuilding the
-binaries.
-
-We let the mozilla::Omnijar API handle both cases, so that callers don't need
-too much work to support them.
-
-We also make the preferences service load the same set of preferences in all
-the various cases (unified vs. separate, omni.jar vs. no omni.jar).
-
-The child process launcher for IPC is modified to pass the base directories
-needed for the mozilla::Omnijar API initialization in the child process.
-
-Finally, the startupcache file name canonicalization is modified to separate
-APP and GRE resources.
-
-diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
---- a/ipc/glue/GeckoChildProcessHost.cpp
-+++ b/ipc/glue/GeckoChildProcessHost.cpp
-@@ -440,26 +440,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
- // other end of the socketpair() from us
-
- std::vector<std::string> childArgv;
-
- childArgv.push_back(exePath.value());
-
- childArgv.insert(childArgv.end(), aExtraOpts.begin(), aExtraOpts.end());
-
--#ifdef MOZ_OMNIJAR
- // Make sure the child process can find the omnijar
- // See XRE_InitCommandLine in nsAppRunner.cpp
-- nsCAutoString omnijarPath;
-- if (mozilla::OmnijarPath()) {
-- mozilla::OmnijarPath()->GetNativePath(omnijarPath);
-- childArgv.push_back("-omnijar");
-- childArgv.push_back(omnijarPath.get());
-+ nsCAutoString path;
-+ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
-+ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
-+ childArgv.push_back("-grebase");
-+ childArgv.push_back(path.get());
- }
--#endif
-+ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
-+ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
-+ childArgv.push_back("-appbase");
-+ childArgv.push_back(path.get());
-+ }
-
- childArgv.push_back(pidstring);
-
- #if defined(MOZ_CRASHREPORTER)
- # if defined(OS_LINUX)
- int childCrashFd, childCrashRemapFd;
- if (!CrashReporter::CreateNotificationPipeForChild(
- &childCrashFd, &childCrashRemapFd))
-@@ -552,26 +555,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
- for (std::vector<std::string>::iterator it = aExtraOpts.begin();
- it != aExtraOpts.end();
- ++it) {
- cmdLine.AppendLooseValue(UTF8ToWide(*it));
- }
-
- cmdLine.AppendLooseValue(std::wstring(mGroupId.get()));
-
--#ifdef MOZ_OMNIJAR
- // Make sure the child process can find the omnijar
- // See XRE_InitCommandLine in nsAppRunner.cpp
-- nsAutoString omnijarPath;
-- if (mozilla::OmnijarPath()) {
-- mozilla::OmnijarPath()->GetPath(omnijarPath);
-- cmdLine.AppendLooseValue(UTF8ToWide("-omnijar"));
-- cmdLine.AppendLooseValue(omnijarPath.get());
-+ nsAutoString path;
-+ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
-+ if (file && NS_SUCCEEDED(file->GetPath(path))) {
-+ cmdLine.AppendLooseValue(UTF8ToWide("-grebase"));
-+ cmdLine.AppendLooseValue(path.get());
- }
--#endif
-+ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
-+ if (file && NS_SUCCEEDED(file->GetPath(path))) {
-+ cmdLine.AppendLooseValue(UTF8ToWide("-appbase"));
-+ cmdLine.AppendLooseValue(path.get());
-+ }
-
- cmdLine.AppendLooseValue(UTF8ToWide(pidstring));
-
- #if defined(MOZ_CRASHREPORTER)
- cmdLine.AppendLooseValue(
- UTF8ToWide(CrashReporter::GetChildNotificationPipe()));
- #endif
-
-diff --git a/js/src/xpconnect/loader/mozJSComponentLoader.cpp b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
---- a/js/src/xpconnect/loader/mozJSComponentLoader.cpp
-+++ b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
-@@ -81,16 +81,17 @@
- #include "nsIConsoleService.h"
- #include "nsIStorageStream.h"
- #include "nsIStringStream.h"
- #include "prmem.h"
- #if defined(XP_WIN)
- #include "nsILocalFileWin.h"
- #endif
- #include "xpcprivate.h"
-+#include "nsIResProtocolHandler.h"
-
- #ifdef MOZ_ENABLE_LIBXUL
- #include "mozilla/scache/StartupCache.h"
- #include "mozilla/scache/StartupCacheUtils.h"
- #endif
- #include "mozilla/Omnijar.h"
-
- #include "jsdbgapi.h"
-@@ -621,34 +622,21 @@ mozJSComponentLoader::LoadModule(nsILoca
-
- const mozilla::Module*
- mozJSComponentLoader::LoadModuleFromJAR(nsILocalFile *aJarFile,
- const nsACString &aComponentPath)
- {
- #if !defined(XPCONNECT_STANDALONE)
- nsresult rv;
-
-- nsCAutoString fullSpec;
--
--#ifdef MOZ_OMNIJAR
-- PRBool equal;
-- rv = aJarFile->Equals(mozilla::OmnijarPath(), &equal);
-- if (NS_SUCCEEDED(rv) && equal) {
-- fullSpec = "resource://gre/";
-- } else {
--#endif
-- nsCAutoString fileSpec;
-- NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
-- fullSpec = "jar:";
-- fullSpec += fileSpec;
-- fullSpec += "!/";
--#ifdef MOZ_OMNIJAR
-- }
--#endif
--
-+ nsCAutoString fullSpec, fileSpec;
-+ NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
-+ fullSpec = "jar:";
-+ fullSpec += fileSpec;
-+ fullSpec += "!/";
- fullSpec += aComponentPath;
-
- nsCOMPtr<nsIURI> uri;
- rv = NS_NewURI(getter_AddRefs(uri), fullSpec);
- if (NS_FAILED(rv))
- return NULL;
-
- nsAutoString hashstring;
-@@ -833,57 +821,138 @@ class JSScriptHolder
- JSScriptHolder(JSContext *cx, JSScript *script)
- : mCx(cx), mScript(script) {}
- ~JSScriptHolder() { ::JS_DestroyScript(mCx, mScript); }
- private:
- JSContext *mCx;
- JSScript *mScript;
- };
-
-+static const char baseName[2][5] = { "gre/", "app/" };
-+
-+static inline PRBool
-+canonicalizeBase(nsCAutoString &spec, nsACString &out, mozilla::Omnijar::Type aType)
-+{
-+ nsCAutoString base;
-+ nsresult rv = mozilla::Omnijar::GetURIString(aType, base);
-+
-+ if (NS_FAILED(rv) || !base.Length())
-+ return PR_FALSE;
-+
-+ if (base.Compare(spec.get(), PR_FALSE, base.Length()))
-+ return PR_FALSE;
-+
-+ out.Append("/resource/");
-+ out.Append(baseName[aType]);
-+ out.Append(Substring(spec, base.Length()));
-+ return PR_TRUE;
-+}
- /**
- * PathifyURI transforms mozilla .js uris into useful zip paths
- * to make it makes it easier to manipulate startup cache entries
- * using standard zip tools.
- * Transformations applied:
-- * * jsloader/<scheme> prefix is used to group mozJSComponentLoader cache entries in
-+ * * jsloader/ prefix is used to group mozJSComponentLoader cache entries in
- * a top-level zip directory.
-- * * In MOZ_OMNIJAR case resource:/// and resource://gre/ URIs refer to the same path
-- * so treat both of them as resource://gre/
-+ * * resource:// URIs are resolved to their corresponding file/jar URI to
-+ * canonicalize resources URIs other than gre and app.
-+ * * Paths under GRE or APP directory have their base path replaced with
-+ * resource/gre or resource/app to avoid depending on install location.
-+ * * jar:file:///path/to/file.jar!/sub/path urls are replaced with
-+ * /path/to/file.jar/sub/path
- * * .bin suffix is added to the end of the path to indicate that jsloader/ entries
- * are binary representations of JS source.
- * For example:
-- * resource://gre/modules/XPCOMUtils.jsm becomes
-- * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
-+ * resource://gre/modules/XPCOMUtils.jsm or
-+ * file://$GRE_DIR/modules/XPCOMUtils.jsm or
-+ * jar:file://$GRE_DIR/omni.jar!/modules/XPCOMUtils.jsm become
-+ * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
-+ * file://$PROFILE_DIR/extensions/{uuid}/components/component.js becomes
-+ * jsloader/$PROFILE_DIR/extensions/%7Buuid%7D/components/component.js.bin
-+ * jar:file://$PROFILE_DIR/extensions/some.xpi!/components/component.js becomes
-+ * jsloader/$PROFILE_DIR/extensions/some.xpi/components/component.js.bin
- */
- static nsresult
- PathifyURI(nsIURI *in, nsACString &out)
- {
-- out = "jsloader/";
-- nsCAutoString scheme;
-- nsresult rv = in->GetScheme(scheme);
-- NS_ENSURE_SUCCESS(rv, rv);
-- out.Append(scheme);
-- nsCAutoString host;
-- // OK for GetHost to fail since it's not implemented sometimes
-- in->GetHost(host);
--#ifdef MOZ_OMNIJAR
-- if (scheme.Equals("resource") && host.Length() == 0){
-- host = "gre";
-- }
--#endif
-- if (host.Length()) {
-- out.Append("/");
-- out.Append(host);
-- }
-- nsCAutoString path;
-- rv = in->GetPath(path);
-- NS_ENSURE_SUCCESS(rv, rv);
-- out.Append(path);
-- out.Append(".bin");
-- return NS_OK;
-+ PRBool equals;
-+ nsresult rv;
-+ nsCOMPtr<nsIURI> uri = in;
-+ nsCAutoString spec;
-+
-+ out = "jsloader";
-+
-+ // Resolve resource:// URIs. At the end of this if/else block, we
-+ // have both spec and uri variables identifying the same URI.
-+ if (NS_SUCCEEDED(in->SchemeIs("resource", &equals)) && equals) {
-+ nsCOMPtr<nsIIOService> ioService = do_GetIOService(&rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIProtocolHandler> ph;
-+ rv = ioService->GetProtocolHandler("resource", getter_AddRefs(ph));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIResProtocolHandler> irph(do_QueryInterface(ph, &rv));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = irph->ResolveURI(in, spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = ioService->NewURI(spec, nsnull, nsnull, getter_AddRefs(uri));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ } else {
-+ rv = in->GetSpec(spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ }
-+
-+ if (!canonicalizeBase(spec, out, mozilla::Omnijar::GRE) &&
-+ !canonicalizeBase(spec, out, mozilla::Omnijar::APP)) {
-+ if (NS_SUCCEEDED(uri->SchemeIs("file", &equals)) && equals) {
-+ nsCOMPtr<nsIFileURL> baseFileURL;
-+ baseFileURL = do_QueryInterface(uri, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCAutoString path;
-+ rv = baseFileURL->GetPath(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ out.Append(path);
-+ } else if (NS_SUCCEEDED(uri->SchemeIs("jar", &equals)) && equals) {
-+ nsCOMPtr<nsIJARURI> jarURI = do_QueryInterface(uri, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIURI> jarFileURI;
-+ rv = jarURI->GetJARFile(getter_AddRefs(jarFileURI));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCOMPtr<nsIFileURL> jarFileURL;
-+ jarFileURL = do_QueryInterface(jarFileURI, &rv);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCAutoString path;
-+ rv = jarFileURL->GetPath(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ out.Append(path);
-+
-+ rv = jarURI->GetJAREntry(path);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ out.Append("/");
-+ out.Append(path);
-+ } else { // Very unlikely
-+ nsCAutoString spec;
-+ rv = uri->GetSpec(spec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ out.Append("/");
-+ out.Append(spec);
-+ }
-+ }
-+
-+ out.Append(".bin");
-+ return NS_OK;
- }
-
- /* static */
- #ifdef MOZ_ENABLE_LIBXUL
- nsresult
- mozJSComponentLoader::ReadScript(StartupCache* cache, nsIURI *uri,
- JSContext *cx, JSScript **script)
- {
-diff --git a/modules/libjar/nsJAR.cpp b/modules/libjar/nsJAR.cpp
---- a/modules/libjar/nsJAR.cpp
-+++ b/modules/libjar/nsJAR.cpp
-@@ -171,26 +171,23 @@ nsJAR::Open(nsIFile* zipFile)
- if (mLock) return NS_ERROR_FAILURE; // Already open!
-
- mZipFile = zipFile;
- mOuterZipEntry.Truncate();
-
- mLock = PR_NewLock();
- NS_ENSURE_TRUE(mLock, NS_ERROR_OUT_OF_MEMORY);
-
--#ifdef MOZ_OMNIJAR
- // The omnijar is special, it is opened early on and closed late
- // this avoids reopening it
-- PRBool equals;
-- nsresult rv = zipFile->Equals(mozilla::OmnijarPath(), &equals);
-- if (NS_SUCCEEDED(rv) && equals) {
-- mZip = mozilla::OmnijarReader();
-+ nsZipArchive *zip = mozilla::Omnijar::GetReader(zipFile);
-+ if (zip) {
-+ mZip = zip;
- return NS_OK;
- }
--#endif
- return mZip->OpenArchive(zipFile);
- }
-
- NS_IMETHODIMP
- nsJAR::OpenInner(nsIZipReader *aZipReader, const char *aZipEntry)
- {
- NS_ENSURE_ARG_POINTER(aZipReader);
- NS_ENSURE_ARG_POINTER(aZipEntry);
-@@ -234,23 +231,22 @@ nsJAR::Close()
- mLock = nsnull;
- }
-
- mParsedManifest = PR_FALSE;
- mManifestData.Reset();
- mGlobalStatus = JAR_MANIFEST_NOT_PARSED;
- mTotalItemsInManifest = 0;
-
--#ifdef MOZ_OMNIJAR
-- if (mZip == mozilla::OmnijarReader()) {
-+ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
-+ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP))) {
- mZip.forget();
- mZip = new nsZipArchive();
- return NS_OK;
- }
--#endif
- return mZip->CloseArchive();
- }
-
- NS_IMETHODIMP
- nsJAR::Test(const char *aEntryName)
- {
- return mZip->Test(aEntryName);
- }
-@@ -391,22 +387,21 @@ nsJAR::GetInputStreamWithSpec(const nsAC
- NS_IMETHODIMP
- nsJAR::GetCertificatePrincipal(const char* aFilename, nsIPrincipal** aPrincipal)
- {
- //-- Parameter check
- if (!aPrincipal)
- return NS_ERROR_NULL_POINTER;
- *aPrincipal = nsnull;
-
--#ifdef MOZ_OMNIJAR
- // Don't check signatures in the omnijar - this is only
- // interesting for extensions/XPIs.
-- if (mZip == mozilla::OmnijarReader())
-+ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
-+ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)))
- return NS_OK;
--#endif
-
- //-- Parse the manifest
- nsresult rv = ParseManifest();
- if (NS_FAILED(rv)) return rv;
- if (mGlobalStatus == JAR_NO_MANIFEST)
- return NS_OK;
-
- PRInt16 requestedStatus;
-diff --git a/modules/libpref/src/nsPrefService.cpp b/modules/libpref/src/nsPrefService.cpp
---- a/modules/libpref/src/nsPrefService.cpp
-+++ b/modules/libpref/src/nsPrefService.cpp
-@@ -67,20 +67,18 @@
-
- #include "prefapi.h"
- #include "prefread.h"
- #include "prefapi_private_data.h"
- #include "PrefTuple.h"
-
- #include "nsITimelineService.h"
-
--#ifdef MOZ_OMNIJAR
- #include "mozilla/Omnijar.h"
- #include "nsZipArchive.h"
--#endif
-
- // Definitions
- #define INITIAL_PREF_FILES 10
- static NS_DEFINE_CID(kZipReaderCID, NS_ZIPREADER_CID);
-
- // Prototypes
- static nsresult openPrefFile(nsIFile* aFile);
- static nsresult pref_InitInitialObjects(void);
-@@ -793,124 +791,144 @@ static nsresult pref_LoadPrefsInDirList(
- pref_LoadPrefsInDir(dir, nsnull, 0);
- }
- }
- }
- }
- return NS_OK;
- }
-
--//----------------------------------------------------------------------------------------
--// Initialize default preference JavaScript buffers from
--// appropriate TEXT resources
--//----------------------------------------------------------------------------------------
--static nsresult pref_InitDefaults()
--{
-- nsCOMPtr<nsIFile> greprefsFile;
-- nsresult rv;
--
-- rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- rv = openPrefFile(greprefsFile);
-- if (NS_FAILED(rv)) {
-- NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
-- }
--
-- return NS_OK;
--}
--
--#ifdef MOZ_OMNIJAR
- static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
- {
- nsZipItemPtr<char> manifest(jarReader, name, true);
- NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
-
- PrefParseState ps;
- PREF_InitParseState(&ps, PREF_ReaderCallback, NULL);
- nsresult rv = PREF_ParseBuf(&ps, manifest, manifest.Length());
- PREF_FinalizeParseState(&ps);
-
- return rv;
- }
-
--static nsresult pref_InitAppDefaultsFromOmnijar()
--{
-- nsresult rv;
--
-- nsZipArchive* jarReader = mozilla::OmnijarReader();
-- if (!jarReader)
-- return pref_InitDefaults();
--
-- rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsZipFind *findPtr;
-- rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsAutoPtr<nsZipFind> find(findPtr);
--
-- nsTArray<nsCString> prefEntries;
-- const char *entryName;
-- PRUint16 entryNameLen;
-- while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-- prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-- }
--
-- prefEntries.Sort();
-- for (PRUint32 i = prefEntries.Length(); i--; ) {
-- rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
-- if (NS_FAILED(rv))
-- NS_WARNING("Error parsing preferences.");
-- }
--
-- return NS_OK;
--}
--#endif
--
-+//----------------------------------------------------------------------------------------
-+// Initialize default preference JavaScript buffers from
-+// appropriate TEXT resources
-+//----------------------------------------------------------------------------------------
- static nsresult pref_InitInitialObjects()
- {
- nsresult rv;
-
-- // first we parse the GRE default prefs. This also works if we're not using a GRE,
--#ifdef MOZ_OMNIJAR
-- rv = pref_InitAppDefaultsFromOmnijar();
--#else
-- rv = pref_InitDefaults();
--#endif
-- NS_ENSURE_SUCCESS(rv, rv);
-+ // In omni.jar case, we load the following prefs:
-+ // - jar:$gre/omni.jar!/greprefs.js
-+ // - jar:$gre/omni.jar!/defaults/pref/*.js
-+ // In non omni.jar case, we load:
-+ // - $gre/greprefs.js
-+ //
-+ // When $app == $gre, we additionally load, in all cases:
-+ // - $gre/defaults/pref/*.js
-+ // This is kept for bug 591866 (channel-prefs.js should not be in omni.jar).
-+ // We load all files instead of channel-prefs.js only to have the same
-+ // behaviour as $app != $gre.
-+ //
-+ // When $app != $gre, we additionally load, in omni.jar case:
-+ // - jar:$app/omni.jar!/defaults/preferences/*.js
-+ // - $app/defaults/preferences/*.js
-+ // and in non omni.jar case:
-+ // - $app/defaults/preferences/*.js
-
-- nsCOMPtr<nsIFile> defaultPrefDir;
-- // now parse the "application" default preferences
-- rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
-- NS_ENSURE_SUCCESS(rv, rv);
-+ nsZipFind *findPtr;
-+ nsAutoPtr<nsZipFind> find;
-+ nsTArray<nsCString> prefEntries;
-+ const char *entryName;
-+ PRUint16 entryNameLen;
-
-- /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
-- static const char* specialFiles[] = {
-+ nsZipArchive* jarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
-+ if (jarReader) {
-+ // Load jar:$gre/omni.jar!/greprefs.js
-+ rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ // Load jar:$gre/omni.jar!/defaults/pref/*.js
-+ rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ find = findPtr;
-+ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-+ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-+ }
-+
-+ prefEntries.Sort();
-+ for (PRUint32 i = prefEntries.Length(); i--; ) {
-+ rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing preferences.");
-+ }
-+ } else {
-+ // Load $gre/greprefs.js
-+ nsCOMPtr<nsIFile> greprefsFile;
-+ rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = openPrefFile(greprefsFile);
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
-+ }
-+
-+ if (!mozilla::Omnijar::HasOmnijar(mozilla::Omnijar::APP)) {
-+ // Load $gre/defaults/pref/*.js
-+ nsCOMPtr<nsIFile> defaultPrefDir;
-+
-+ rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
-+ static const char* specialFiles[] = {
- #if defined(XP_MAC) || defined(XP_MACOSX)
- "macprefs.js"
- #elif defined(XP_WIN)
- "winpref.js"
- #elif defined(XP_UNIX)
- "unix.js"
--#if defined(_AIX)
-+#if defined(VMS)
-+ , "openvms.js"
-+#elif defined(_AIX)
- , "aix.js"
- #endif
- #elif defined(XP_OS2)
- "os2pref.js"
-+#elif defined(XP_BEOS)
-+ "beos.js"
- #endif
-- };
-+ };
-
-- rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
-- if (NS_FAILED(rv)) {
-- NS_WARNING("Error parsing application default preferences.");
-+ rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing application default preferences.");
-+ }
-+
-+ // Load jar:$app/omni.jar!/defaults/preferences/*.js
-+ nsZipArchive *appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
-+ if (appJarReader) {
-+ rv = appJarReader->FindInit("defaults/preferences/*.js$", &findPtr);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ find = findPtr;
-+ prefEntries.Clear();
-+ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
-+ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
-+ }
-+ prefEntries.Sort();
-+ for (PRUint32 i = prefEntries.Length(); i--; ) {
-+ rv = pref_ReadPrefFromJar(appJarReader, prefEntries[i].get());
-+ if (NS_FAILED(rv))
-+ NS_WARNING("Error parsing preferences.");
-+ }
- }
-
- rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST);
- NS_ENSURE_SUCCESS(rv, rv);
-
- NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID,
- nsnull, NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID);
-
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -152,97 +152,62 @@ nsResProtocolHandler::nsResProtocolHandl
- }
-
- nsResProtocolHandler::~nsResProtocolHandler()
- {
- gResHandler = nsnull;
- }
-
- nsresult
--nsResProtocolHandler::AddSpecialDir(const char* aSpecialDir, const nsACString& aSubstitution)
--{
-- nsCOMPtr<nsIFile> file;
-- nsresult rv = NS_GetSpecialDirectory(aSpecialDir, getter_AddRefs(file));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- nsCOMPtr<nsIURI> uri;
-- rv = mIOService->NewFileURI(file, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- return SetSubstitution(aSubstitution, uri);
--}
--
--nsresult
- nsResProtocolHandler::Init()
- {
- if (!mSubstitutions.Init(32))
- return NS_ERROR_UNEXPECTED;
-
- nsresult rv;
-
- mIOService = do_GetIOService(&rv);
- NS_ENSURE_SUCCESS(rv, rv);
-
--#ifdef MOZ_OMNIJAR
-- nsCOMPtr<nsIFile> omniJar(mozilla::OmnijarPath());
-- if (omniJar)
-- return Init(omniJar);
--#endif
--
-- // these entries should be kept in sync with the omnijar Init function
-+ nsCAutoString appURI, greURI;
-+ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::APP, appURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::GRE, greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-
- //
-- // make resource:/// point to the application directory
-+ // make resource:/// point to the application directory or omnijar
- //
-- rv = AddSpecialDir(NS_OS_CURRENT_PROCESS_DIR, EmptyCString());
-+ nsCOMPtr<nsIURI> uri;
-+ rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ rv = SetSubstitution(EmptyCString(), uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
- // make resource://gre/ point to the GRE directory
- //
-- rv = AddSpecialDir(NS_GRE_DIR, kGRE);
-+ if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
-+ rv = NS_NewURI(getter_AddRefs(uri), greURI);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ }
-+
-+ rv = SetSubstitution(kGRE, uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
- // but once I finish multiple chrome registration I'm not sure that it is needed
-
- // XXX dveditz: resource://pchrome/ defeats profile directory salting
- // if web content can load it. Tread carefully.
-
- return rv;
- }
-
--#ifdef MOZ_OMNIJAR
--nsresult
--nsResProtocolHandler::Init(nsIFile *aOmniJar)
--{
-- nsresult rv;
-- nsCOMPtr<nsIURI> uri;
-- nsCAutoString omniJarSpec;
-- NS_GetURLSpecFromActualFile(aOmniJar, omniJarSpec, mIOService);
--
-- nsCAutoString urlStr("jar:");
-- urlStr += omniJarSpec;
-- urlStr += "!/";
--
-- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
-- NS_ENSURE_SUCCESS(rv, rv);
--
-- // these entries should be kept in sync with the normal Init function
--
-- // resource:/// points to jar:omni.jar!/
-- SetSubstitution(EmptyCString(), uri);
--
-- // resource://gre/ points to jar:omni.jar!/
-- SetSubstitution(kGRE, uri);
--
-- return NS_OK;
--}
--#endif
--
- #ifdef MOZ_IPC
- static PLDHashOperator
- EnumerateSubstitution(const nsACString& aKey,
- nsIURI* aURI,
- void* aArg)
- {
- nsTArray<ResourceMapping>* resources =
- static_cast<nsTArray<ResourceMapping>*>(aArg);
-diff --git a/startupcache/StartupCache.cpp b/startupcache/StartupCache.cpp
---- a/startupcache/StartupCache.cpp
-+++ b/startupcache/StartupCache.cpp
-@@ -237,27 +237,36 @@ StartupCache::GetBuffer(const char* id,
- nsZipItemPtr<char> zipItem(mArchive, id, true);
- if (zipItem) {
- *outbuf = zipItem.Forget();
- *length = zipItem.Length();
- return NS_OK;
- }
- }
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarReader()) {
-+ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)) {
- // no need to checksum omnijarred entries
-- nsZipItemPtr<char> zipItem(mozilla::OmnijarReader(), id);
-+ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::APP), id);
- if (zipItem) {
- *outbuf = zipItem.Forget();
- *length = zipItem.Length();
- return NS_OK;
- }
- }
--#endif
-+
-+ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) {
-+ // no need to checksum omnijarred entries
-+ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE), id);
-+ if (zipItem) {
-+ *outbuf = zipItem.Forget();
-+ *length = zipItem.Length();
-+ return NS_OK;
-+ }
-+ }
-+
- return NS_ERROR_NOT_AVAILABLE;
- }
-
- // Makes a copy of the buffer, client retains ownership of inbuf.
- nsresult
- StartupCache::PutBuffer(const char* id, const char* inbuf, PRUint32 len)
- {
- WaitOnWriteThread();
-diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
---- a/toolkit/xre/nsAppRunner.cpp
-+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3897,35 +3897,45 @@ XRE_InitCommandLine(int aArgc, char* aAr
- CommandLine::Init(aArgc, canonArgs);
-
- for (int i = 0; i < aArgc; ++i)
- free(canonArgs[i]);
- delete[] canonArgs;
- #endif
- #endif
-
--#ifdef MOZ_OMNIJAR
-- const char *omnijarPath = nsnull;
-- ArgResult ar = CheckArg("omnijar", PR_FALSE, &omnijarPath);
-+ const char *path = nsnull;
-+ ArgResult ar = CheckArg("grebase", PR_FALSE, &path);
- if (ar == ARG_BAD) {
-- PR_fprintf(PR_STDERR, "Error: argument -omnijar requires an omnijar path\n");
-+ PR_fprintf(PR_STDERR, "Error: argument -grebase requires a path argument\n");
- return NS_ERROR_FAILURE;
- }
-
-- if (!omnijarPath)
-+ if (!path)
- return rv;
-
-- nsCOMPtr<nsILocalFile> omnijar;
-- rv = NS_NewNativeLocalFile(nsDependentCString(omnijarPath), PR_TRUE,
-- getter_AddRefs(omnijar));
-- if (NS_SUCCEEDED(rv))
-- mozilla::SetOmnijar(omnijar);
--#endif
--
-- return rv;
-+ nsCOMPtr<nsILocalFile> greBase;
-+ rv = XRE_GetFileFromPath(path, getter_AddRefs(greBase));
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ ar = CheckArg("appbase", PR_FALSE, &path);
-+ if (ar == ARG_BAD) {
-+ PR_fprintf(PR_STDERR, "Error: argument -appbase requires a path argument\n");
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ nsCOMPtr<nsILocalFile> appBase;
-+ if (path) {
-+ rv = XRE_GetFileFromPath(path, getter_AddRefs(appBase));
-+ if (NS_FAILED(rv))
-+ return rv;
-+ }
-+
-+ return mozilla::Omnijar::SetBase(greBase, appBase);
- }
-
- nsresult
- XRE_DeinitCommandLine()
- {
- nsresult rv = NS_OK;
-
- #if defined(MOZ_IPC)
-diff --git a/toolkit/xre/nsEmbedFunctions.cpp b/toolkit/xre/nsEmbedFunctions.cpp
---- a/toolkit/xre/nsEmbedFunctions.cpp
-+++ b/toolkit/xre/nsEmbedFunctions.cpp
-@@ -512,19 +512,17 @@ XRE_InitChildProcess(int aArgc,
- }
-
- // Run the UI event loop on the main thread.
- uiMessageLoop.MessageLoop::Run();
-
- // Allow ProcessChild to clean up after itself before going out of
- // scope and being deleted
- process->CleanUp();
--#ifdef MOZ_OMNIJAR
-- mozilla::SetOmnijar(nsnull);
--#endif
-+ mozilla::Omnijar::SetBase(nsnull, nsnull);
- }
- }
-
- NS_LogTerm();
- return XRE_DeinitCommandLine();
- }
-
- MessageLoop*
-diff --git a/xpcom/build/Makefile.in b/xpcom/build/Makefile.in
---- a/xpcom/build/Makefile.in
-+++ b/xpcom/build/Makefile.in
-@@ -64,28 +64,25 @@ CSRCS = \
- $(NULL)
-
- CPPSRCS = \
- $(XPCOM_GLUE_SRC_LCPPSRCS) \
- $(XPCOM_GLUENS_SRC_LCPPSRCS) \
- nsXPComInit.cpp \
- nsXPCOMStrings.cpp \
- Services.cpp \
-+ Omnijar.cpp \
- $(NULL)
-
- ifndef MOZ_ENABLE_LIBXUL
- ifeq (,$(filter-out WINNT WINCE OS2,$(OS_ARCH)))
- CPPSRCS += dlldeps.cpp
- endif
- endif
-
--ifdef MOZ_OMNIJAR
--CPPSRCS += Omnijar.cpp
--endif
--
- SHARED_LIBRARY_LIBS = \
- $(DEPTH)/chrome/src/$(LIB_PREFIX)chrome_s.$(LIB_SUFFIX) \
- ../ds/$(LIB_PREFIX)xpcomds_s.$(LIB_SUFFIX) \
- ../io/$(LIB_PREFIX)xpcomio_s.$(LIB_SUFFIX) \
- ../components/$(LIB_PREFIX)xpcomcomponents_s.$(LIB_SUFFIX) \
- ../threads/$(LIB_PREFIX)xpcomthreads_s.$(LIB_SUFFIX) \
- ../proxy/src/$(LIB_PREFIX)xpcomproxy_s.$(LIB_SUFFIX) \
- ../base/$(LIB_PREFIX)xpcombase_s.$(LIB_SUFFIX) \
-diff --git a/xpcom/build/Omnijar.cpp b/xpcom/build/Omnijar.cpp
---- a/xpcom/build/Omnijar.cpp
-+++ b/xpcom/build/Omnijar.cpp
-@@ -16,16 +16,17 @@
- *
- * The Initial Developer of the Original Code is
- * Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Michael Wu <mwu@mozilla.com>
-+ * Mike Hommey <mh@glandium.org>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
-@@ -33,69 +34,175 @@
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- #include "Omnijar.h"
-
--#include "nsILocalFile.h"
--#include "nsXULAppAPI.h"
-+#include "nsIFile.h"
- #include "nsZipArchive.h"
-+#include "nsNetUtil.h"
-
--static nsILocalFile* sOmnijarPath = nsnull;
--static nsZipArchive* sOmnijarReader = nsnull;
-+namespace mozilla {
-
--static void
--SetupReader()
-+nsIFile *Omnijar::sPath[2] = { nsnull, nsnull };
-+PRBool Omnijar::sIsOmnijar[2] = { PR_FALSE, PR_FALSE };
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+nsZipArchive *Omnijar::sReader[2] = { nsnull, nsnull };
-+#endif
-+
-+static already_AddRefed<nsIFile>
-+ComputePath(nsIFile *aPath, PRBool &aIsOmnijar)
- {
-- if (!sOmnijarPath) {
-- return;
-+ PRBool isDir;
-+ aIsOmnijar = PR_FALSE;
-+ if (!aPath || NS_FAILED(aPath->IsDirectory(&isDir)) || !isDir)
-+ return nsnull;
-+
-+ nsCOMPtr<nsIFile> path;
-+#ifdef MOZ_ENABLE_LIBXUL
-+ // Search for omni.jar in the given directory
-+ if (!isDir || NS_FAILED(aPath->Clone(getter_AddRefs(path))))
-+ return nsnull;
-+
-+ if (NS_FAILED(path->AppendNative(NS_LITERAL_CSTRING("omni.jar"))))
-+ return nsnull;
-+
-+ if (NS_FAILED(path->Exists(&aIsOmnijar)))
-+ return nsnull;
-+#endif
-+
-+ if (!aIsOmnijar && NS_FAILED(aPath->Clone(getter_AddRefs(path))))
-+ return nsnull;
-+
-+ return path.forget();
-+}
-+
-+nsresult
-+Omnijar::SetBase(nsIFile *aGrePath, nsIFile *aAppPath)
-+{
-+ NS_ABORT_IF_FALSE(aGrePath || !aAppPath, "Omnijar::SetBase(NULL, something) call forbidden");
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+ if (sReader[GRE]) {
-+ sReader[GRE]->CloseArchive();
-+ delete sReader[GRE];
-+ }
-+ if (sReader[APP]) {
-+ sReader[APP]->CloseArchive();
-+ delete sReader[APP];
-+ }
-+ sReader[APP] = sReader[GRE] = nsnull;
-+#endif
-+
-+ nsresult rv;
-+ PRBool equals;
-+ if (aAppPath) {
-+ rv = aAppPath->Equals(aGrePath, &equals);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ } else {
-+ equals = PR_TRUE;
- }
-
-- nsZipArchive* zipReader = new nsZipArchive();
-- if (!zipReader) {
-- NS_IF_RELEASE(sOmnijarPath);
-- return;
-+ nsCOMPtr<nsIFile> grePath = ComputePath(aGrePath, sIsOmnijar[GRE]);
-+ nsCOMPtr<nsIFile> appPath = ComputePath(equals ? nsnull : aAppPath, sIsOmnijar[APP]);
-+
-+ NS_IF_RELEASE(sPath[GRE]);
-+ sPath[GRE] = grePath;
-+ NS_IF_ADDREF(sPath[GRE]);
-+
-+ NS_IF_RELEASE(sPath[APP]);
-+ sPath[APP] = appPath;
-+ NS_IF_ADDREF(sPath[APP]);
-+
-+ return NS_OK;
-+}
-+
-+already_AddRefed<nsIFile>
-+Omnijar::GetBase(Type aType)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ if (!sIsOmnijar[aType]) {
-+ NS_IF_ADDREF(sPath[aType]);
-+ return sPath[aType];
- }
-
-- if (NS_FAILED(zipReader->OpenArchive(sOmnijarPath))) {
-+ nsCOMPtr<nsIFile> file, path;
-+ if (NS_FAILED(sPath[aType]->Clone(getter_AddRefs(file))))
-+ return nsnull;
-+
-+ if (NS_FAILED(file->GetParent(getter_AddRefs(path))))
-+ return nsnull;
-+ return path.forget();
-+}
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+nsZipArchive *
-+Omnijar::GetReader(Type aType)
-+{
-+ if (!sIsOmnijar[aType])
-+ return nsnull;
-+
-+ if (sReader[aType])
-+ return sReader[aType];
-+
-+ nsZipArchive* zipReader = new nsZipArchive();
-+ if (!zipReader)
-+ return nsnull;
-+
-+ if (NS_FAILED(zipReader->OpenArchive(sPath[aType]))) {
- delete zipReader;
-- NS_IF_RELEASE(sOmnijarPath);
-- return;
-+ return nsnull;
- }
-
-- sOmnijarReader = zipReader;
-+ return (sReader[aType] = zipReader);
- }
-
--nsILocalFile*
--mozilla::OmnijarPath()
-+nsZipArchive *
-+Omnijar::GetReader(nsIFile *aPath)
- {
-- if (!sOmnijarReader)
-- SetupReader();
-+ PRBool equals;
-+ nsresult rv;
-
-- return sOmnijarPath;
-+ if (sIsOmnijar[GRE]) {
-+ rv = sPath[GRE]->Equals(aPath, &equals);
-+ if (NS_SUCCEEDED(rv) && equals)
-+ return GetReader(GRE);
-+ }
-+ if (sIsOmnijar[APP]) {
-+ rv = sPath[APP]->Equals(aPath, &equals);
-+ if (NS_SUCCEEDED(rv) && equals)
-+ return GetReader(APP);
-+ }
-+ return nsnull;
-+}
-+#endif
-+
-+nsresult
-+Omnijar::GetURIString(Type aType, nsCString &result)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ result = "";
-+
-+ if ((aType == APP) && (!sPath[APP]))
-+ return NS_OK;
-+
-+ nsCAutoString omniJarSpec;
-+ nsresult rv = NS_GetURLSpecFromActualFile(sPath[aType], omniJarSpec);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ if (sIsOmnijar[aType]) {
-+ result = "jar:";
-+ result += omniJarSpec;
-+ result += "!";
-+ } else {
-+ result = omniJarSpec;
-+ }
-+ result += "/";
-+ return NS_OK;
- }
-
--nsZipArchive*
--mozilla::OmnijarReader()
--{
-- if (!sOmnijarReader)
-- SetupReader();
--
-- return sOmnijarReader;
--}
--
--void
--mozilla::SetOmnijar(nsILocalFile* aPath)
--{
-- NS_IF_RELEASE(sOmnijarPath);
-- if (sOmnijarReader) {
-- sOmnijarReader->CloseArchive();
-- delete sOmnijarReader;
-- sOmnijarReader = nsnull;
-- }
--
-- sOmnijarPath = aPath;
-- NS_IF_ADDREF(sOmnijarPath);
--}
--
-+} /* namespace mozilla */
-diff --git a/xpcom/build/Omnijar.h b/xpcom/build/Omnijar.h
---- a/xpcom/build/Omnijar.h
-+++ b/xpcom/build/Omnijar.h
-@@ -16,16 +16,17 @@
- *
- * The Initial Developer of the Original Code is
- * Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2010
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Michael Wu <mwu@mozilla.com>
-+ * Mike Hommey <mh@glandium.org>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
-@@ -34,29 +35,137 @@
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
- #ifndef mozilla_Omnijar_h
- #define mozilla_Omnijar_h
-
--class nsILocalFile;
-+#include "nscore.h"
-+#include "nsTArray.h"
-+#include "nsCOMPtr.h"
-+#include "nsString.h"
-+
-+class nsIFile;
- class nsZipArchive;
--
--#ifdef MOZ_OMNIJAR
-+class nsIURI;
-
- namespace mozilla {
-
-+#ifdef MOZ_ENABLE_LIBXUL
-+#define OMNIJAR_EXPORT
-+#else
-+#define OMNIJAR_EXPORT NS_EXPORT
-+#endif
-+
-+class OMNIJAR_EXPORT Omnijar {
-+private:
- /**
-- * This returns the path to the omnijar.
-- * If the omnijar isn't available, this function will return null.
-- * Callers should fallback to flat packaging if null.
-+ * Store an nsIFile for either a base directory when there is no omni.jar,
-+ * or omni.jar itself. We can store two paths here, one for GRE
-+ * (corresponding to resource://gre/) and one for APP
-+ * (corresponding to resource:/// and resource://app/), but only
-+ * store one when both point to the same location (unified).
- */
--nsILocalFile *OmnijarPath();
--nsZipArchive *OmnijarReader();
--void SetOmnijar(nsILocalFile* aPath);
-+static nsIFile *sPath[2];
-+/**
-+ * Store whether the corresponding sPath is an omni.jar or a directory
-+ */
-+static PRBool sIsOmnijar[2];
-+
-+#ifdef MOZ_ENABLE_LIBXUL
-+/**
-+ * Cached nsZipArchives for the corresponding sPath
-+ */
-+static nsZipArchive *sReader[2];
-+#endif
-+
-+public:
-+enum Type {
-+ GRE = 0,
-+ APP = 1
-+};
-+
-+/**
-+ * Returns whether SetBase has been called at least once with
-+ * a valid nsIFile
-+ */
-+static PRBool
-+IsInitialized()
-+{
-+ // GRE path is always set after initialization.
-+ return sPath[0] != nsnull;
-+}
-+
-+/**
-+ * Sets the base directories for GRE and APP. APP base directory
-+ * may be nsnull, in case the APP and GRE directories are the same.
-+ */
-+static nsresult SetBase(nsIFile *aGrePath, nsIFile *aAppPath);
-+
-+/**
-+ * Returns an nsIFile pointing to the omni.jar file for GRE or APP.
-+ * Returns nsnull when there is no corresponding omni.jar.
-+ * Also returns nsnull for APP in the unified case.
-+ */
-+static already_AddRefed<nsIFile>
-+GetPath(Type aType)
-+{
-+ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
-+
-+ if (sIsOmnijar[aType]) {
-+ NS_IF_ADDREF(sPath[aType]);
-+ return sPath[aType];
-+ }
-+ return nsnull;
-+}
-+
-+/**
-+ * Returns whether GRE or APP use an omni.jar. Returns PR_False when
-+ * using an omni.jar in the unified case.
-+ */
-+static PRBool
-+HasOmnijar(Type aType)
-+{
-+ return sIsOmnijar[aType];
-+}
-+
-+/**
-+ * Returns the base directory for GRE or APP. In the unified case,
-+ * returns nsnull for APP.
-+ */
-+static already_AddRefed<nsIFile> GetBase(Type aType);
-+
-+/**
-+ * Returns a nsZipArchive pointer for the omni.jar file for GRE or
-+ * APP. Returns nsnull in the same cases GetPath() would.
-+ */
-+#ifdef MOZ_ENABLE_LIBXUL
-+static nsZipArchive *GetReader(Type aType);
-+#else
-+static nsZipArchive *GetReader(Type aType) { return nsnull; }
-+#endif
-+
-+/**
-+ * Returns a nsZipArchive pointer for the given path IAOI the given
-+ * path is the omni.jar for either GRE or APP.
-+ */
-+#ifdef MOZ_ENABLE_LIBXUL
-+static nsZipArchive *GetReader(nsIFile *aPath);
-+#else
-+static nsZipArchive *GetReader(nsIFile *aPath) { return nsnull; }
-+#endif
-+
-+/**
-+ * Returns the URI string corresponding to the omni.jar or directory
-+ * for GRE or APP. i.e. jar:/path/to/omni.jar!/ for omni.jar and
-+ * /path/to/base/dir/ otherwise. Returns an empty string for APP in
-+ * the unified case.
-+ * The returned URI is guaranteed to end with a slash.
-+ */
-+static nsresult GetURIString(Type aType, nsCString &result);
-+
-+}; /* class Omnijar */
-
- } /* namespace mozilla */
-
--#endif /* MOZ_OMNIJAR */
--
- #endif /* mozilla_Omnijar_h */
-diff --git a/xpcom/build/nsXPComInit.cpp b/xpcom/build/nsXPComInit.cpp
---- a/xpcom/build/nsXPComInit.cpp
-+++ b/xpcom/build/nsXPComInit.cpp
-@@ -462,35 +462,35 @@ NS_InitXPCOM2(nsIServiceManager* *result
- nsDirectoryService::gService->Set(NS_XPCOM_LIBRARY_FILE, xpcomLib);
- }
-
- if (appFileLocationProvider) {
- rv = nsDirectoryService::gService->RegisterProvider(appFileLocationProvider);
- if (NS_FAILED(rv)) return rv;
- }
-
--#ifdef MOZ_OMNIJAR
- NS_TIME_FUNCTION_MARK("Next: Omnijar init");
-
-- if (!mozilla::OmnijarPath()) {
-- nsCOMPtr<nsILocalFile> omnijar;
-+ if (!mozilla::Omnijar::IsInitialized()) {
-+ nsCOMPtr<nsILocalFile> greDir, appDir;
- nsCOMPtr<nsIFile> file;
-
-- rv = NS_ERROR_FAILURE;
- nsDirectoryService::gService->Get(NS_GRE_DIR,
- NS_GET_IID(nsIFile),
- getter_AddRefs(file));
-- if (file)
-- rv = file->Append(NS_LITERAL_STRING("omni.jar"));
-- if (NS_SUCCEEDED(rv))
-- omnijar = do_QueryInterface(file);
-- if (NS_SUCCEEDED(rv))
-- mozilla::SetOmnijar(omnijar);
-+ greDir = do_QueryInterface(file);
-+
-+ nsDirectoryService::gService->Get(NS_XPCOM_CURRENT_PROCESS_DIR,
-+ NS_GET_IID(nsIFile),
-+ getter_AddRefs(file));
-+ appDir = do_QueryInterface(file);
-+
-+ rv = mozilla::Omnijar::SetBase(greDir, appDir);
-+ NS_ENSURE_SUCCESS(rv, rv);
- }
--#endif
-
- #ifdef MOZ_IPC
- if ((sCommandLineWasInitialized = !CommandLine::IsInitialized())) {
- NS_TIME_FUNCTION_MARK("Next: IPC command line init");
-
- #ifdef OS_WIN
- CommandLine::Init(0, nsnull);
- #else
-@@ -769,18 +769,16 @@ ShutdownXPCOM(nsIServiceManager* servMgr
- sCommandLineWasInitialized = false;
- }
- if (sExitManager) {
- delete sExitManager;
- sExitManager = nsnull;
- }
- #endif
-
--#ifdef MOZ_OMNIJAR
-- mozilla::SetOmnijar(nsnull);
--#endif
-+ mozilla::Omnijar::SetBase(nsnull, nsnull);
-
- NS_LogTerm();
-
- return NS_OK;
- }
-
- } // namespace mozilla
-diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp
---- a/xpcom/components/nsComponentManager.cpp
-+++ b/xpcom/components/nsComponentManager.cpp
-@@ -175,18 +175,16 @@ NS_DEFINE_CID(kCategoryManagerCID, NS_CA
- #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) \
- NS_TIME_FUNCTION_MIN_FMT(5, "%s (line %d) (contractid: %s)", MOZ_FUNCTION_NAME, \
- __LINE__, (cid))
- #else
- #define COMPMGR_TIME_FUNCTION_CID(cid) do {} while (0)
- #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) do {} while (0)
- #endif
-
--#define kOMNIJAR_PREFIX NS_LITERAL_CSTRING("resource:///")
--
- nsresult
- nsGetServiceFromCategory::operator()(const nsIID& aIID, void** aInstancePtr) const
- {
- nsresult rv;
- nsXPIDLCString value;
- nsCOMPtr<nsICategoryManager> catman;
- nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager;
- if (!compMgr) {
-@@ -390,47 +388,44 @@ nsresult nsComponentManagerImpl::Init()
-
- nsCategoryManager::GetSingleton()->SuppressNotifications(true);
-
- RegisterModule(&kXPCOMModule, NULL);
-
- for (PRUint32 i = 0; i < sStaticModules->Length(); ++i)
- RegisterModule((*sStaticModules)[i], NULL);
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarPath()) {
-- nsCOMPtr<nsIZipReader> omnijarReader = new nsJAR();
-- rv = omnijarReader->Open(mozilla::OmnijarPath());
-- if (NS_SUCCEEDED(rv))
-- RegisterJarManifest(omnijarReader, "chrome.manifest", false);
-+ nsCOMPtr<nsIFile> appOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::APP);
-+ if (appOmnijar) {
-+ cl = sModuleLocations->InsertElementAt(1); // Insert after greDir
-+ cl->type = NS_COMPONENT_LOCATION;
-+ cl->location = do_QueryInterface(appOmnijar);
-+ cl->jar = true;
- }
--#endif
-+ nsCOMPtr<nsIFile> greOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::GRE);
-+ if (greOmnijar) {
-+ cl = sModuleLocations->InsertElementAt(0);
-+ cl->type = NS_COMPONENT_LOCATION;
-+ cl->location = do_QueryInterface(greOmnijar);
-+ cl->jar = true;
-+ }
-
- for (PRUint32 i = 0; i < sModuleLocations->Length(); ++i) {
- ComponentLocation& l = sModuleLocations->ElementAt(i);
- if (!l.jar) {
- RegisterManifestFile(l.type, l.location, false);
- continue;
- }
-
- nsCOMPtr<nsIZipReader> reader = do_CreateInstance(kZipReaderCID, &rv);
- rv = reader->Open(l.location);
- if (NS_SUCCEEDED(rv))
- RegisterJarManifest(reader, "chrome.manifest", false);
- }
-
--#ifdef MOZ_OMNIJAR
-- if (mozilla::OmnijarPath()) {
-- cl = sModuleLocations->InsertElementAt(0);
-- cl->type = NS_COMPONENT_LOCATION;
-- cl->location = mozilla::OmnijarPath();
-- cl->jar = true;
-- }
--#endif
--
- nsCategoryManager::GetSingleton()->SuppressNotifications(false);
-
- mStatus = NORMAL;
-
- return NS_OK;
- }
-
- void
-# HG changeset patch
-# Parent ff1b810f78226d7f4010909d3cde05a57fdcf20c
-Bug 620931 part 4 - Fix resource://app/ to always point to the same as resource:///
-
-diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
---- a/netwerk/protocol/res/nsResProtocolHandler.cpp
-+++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
-@@ -74,16 +74,17 @@ static nsResProtocolHandler *gResHandler
- // set NSPR_LOG_FILE=log.txt
- //
- // this enables PR_LOG_ALWAYS level information and places all output in
- // the file log.txt
- //
- static PRLogModuleInfo *gResLog;
- #endif
-
-+#define kAPP NS_LITERAL_CSTRING("app")
- #define kGRE NS_LITERAL_CSTRING("gre")
-
- //----------------------------------------------------------------------------
- // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
- //----------------------------------------------------------------------------
-
- nsresult
- nsResURL::EnsureFile()
-@@ -179,16 +180,22 @@ nsResProtocolHandler::Init()
- nsCOMPtr<nsIURI> uri;
- rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
- NS_ENSURE_SUCCESS(rv, rv);
-
- rv = SetSubstitution(EmptyCString(), uri);
- NS_ENSURE_SUCCESS(rv, rv);
-
- //
-+ // make resource://app/ point to the application directory or omnijar
-+ //
-+ rv = SetSubstitution(kAPP, uri);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ //
- // make resource://gre/ point to the GRE directory
- //
- if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
- rv = NS_NewURI(getter_AddRefs(uri), greURI);
- NS_ENSURE_SUCCESS(rv, rv);
- }
-
- rv = SetSubstitution(kGRE, uri);
-diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
---- a/toolkit/xre/nsXREDirProvider.cpp
-+++ b/toolkit/xre/nsXREDirProvider.cpp
-@@ -300,19 +300,16 @@ nsXREDirProvider::GetFile(const char* aP
- }
- }
- else if (!strcmp(aProperty, XRE_EXECUTABLE_FILE) && gArgv[0]) {
- nsCOMPtr<nsILocalFile> lf;
- rv = XRE_GetBinaryPath(gArgv[0], getter_AddRefs(lf));
- if (NS_SUCCEEDED(rv))
- file = lf;
- }
-- else if (!strcmp(aProperty, "resource:app")) {
-- rv = GetAppDir()->Clone(getter_AddRefs(file));
-- }
-
- else if (!strcmp(aProperty, NS_APP_PROFILE_DIR_STARTUP) && mProfileDir) {
- return mProfileDir->Clone(aFile);
- }
- else if (!strcmp(aProperty, NS_APP_PROFILE_LOCAL_DIR_STARTUP)) {
- if (mProfileLocalDir)
- return mProfileLocalDir->Clone(aFile);
-
-# HG changeset patch
-# Parent 7d2228db71a299afca60babff632a967d2d6c456
-Bug 620931 part 5 - Enable omni.jar by default on xulrunner
-
-diff --git a/xulrunner/confvars.sh b/xulrunner/confvars.sh
---- a/xulrunner/confvars.sh
-+++ b/xulrunner/confvars.sh
-@@ -36,15 +36,16 @@
- #
- # ***** END LICENSE BLOCK *****
-
- MOZ_APP_NAME=xulrunner
- MOZ_APP_DISPLAYNAME=XULRunner
- MOZ_UPDATER=1
- MOZ_XULRUNNER=1
- MOZ_ENABLE_LIBXUL=1
-+MOZ_CHROME_FILE_FORMAT=omni
- MOZ_STATIC_BUILD_UNSUPPORTED=1
- MOZ_APP_VERSION=$MOZILLA_VERSION
- if test "$MOZ_STORAGE"; then
- MOZ_PLACES=1
- fi
- MOZ_EXTENSIONS_DEFAULT=" gnomevfs"
- MOZ_URL_CLASSIFIER=1
diff --git a/extra/xulrunner/xulrunner-version.patch b/extra/xulrunner/xulrunner-version.patch
deleted file mode 100644
index 8e81b23ea..000000000
--- a/extra/xulrunner/xulrunner-version.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
---- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
-+++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 01:58:19.663360705 -0800
-@@ -44,6 +44,8 @@
-
- include $(DEPTH)/config/autoconf.mk
-
-+MOZ_APP_VERSION="2.0"
-+
- NO_PKG_FILES = \
- xulrunner-config \
- regchrome* \
diff --git a/multilib-testing/gcc-multilib/PKGBUILD b/multilib-testing/gcc-multilib/PKGBUILD
deleted file mode 100644
index d3125e7b8..000000000
--- a/multilib-testing/gcc-multilib/PKGBUILD
+++ /dev/null
@@ -1,303 +0,0 @@
-# $Id: PKGBUILD 51469 2011-07-09 18:11:54Z heftig $
-# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
-# Contributor: Allan McRae <allan@archlinux.org>
-
-# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
-# NOTE: libtool requires rebuilt with each new gcc version
-
-pkgbase='gcc-multilib'
-pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
-pkgver=4.6.1
-pkgrel=2
-#_snapshot=4.6-20110603
-_libstdcppmanver=20110201 # Note: check source directory name when updating this
-pkgdesc="The GNU Compiler Collection for multilib"
-arch=('x86_64')
-license=('GPL' 'LGPL' 'FDL' 'custom')
-url="http://gcc.gnu.org"
-makedepends=('binutils-multilib>=2.21.1' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib'
- 'lib32-glibc>=2.14')
-checkdepends=('dejagnu')
-options=('!libtool' '!emptydirs')
-source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
- #ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
- gcc_pure64.patch
- gcc-hash-style-both.patch)
-md5sums=('c57a9170c677bf795bdc04ed796ca491'
- '1e9fd2eaf0ee47ea64e82c48998f1999'
- '22cec272f9cc2801d3cd348feaca888b'
- '4df25b623799b148a0703eaeec8fdf3f')
-
-if [ -n "${_snapshot}" ]; then
- _basedir="${srcdir}/gcc-${_snapshot}"
-else
- _basedir="${srcdir}/gcc-${pkgver}"
-fi
-
-build() {
- cd ${_basedir}
-
- # Do not install libiberty
- sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
-
- # Do not run fixincludes
- sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
-
- patch -Np1 -i ${srcdir}/gcc_pure64.patch
- patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
-
- echo ${pkgver} > gcc/BASE-VER
-
- cd ${srcdir}
- mkdir gcc-build && cd gcc-build
-
- ${_basedir}/configure --prefix=/usr \
- --libdir=/usr/lib --libexecdir=/usr/lib \
- --mandir=/usr/share/man --infodir=/usr/share/info \
- --with-bugurl=https://bugs.archlinux.org/ \
- --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
- --enable-shared --enable-threads=posix \
- --with-system-zlib --enable-__cxa_atexit \
- --disable-libunwind-exceptions --enable-clocale=gnu \
- --enable-gnu-unique-object --enable-linker-build-id \
- --with-ppl --enable-cloog-backend=isl \
- --enable-lto --enable-gold --enable-ld=default \
- --enable-plugin --with-plugin-ld=ld.gold \
- --enable-multilib --disable-libstdcxx-pch \
- --enable-checking=release
- make
-}
-
-check() {
- cd gcc-build
-
- # increase stack size to prevent test failures
- # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
- ulimit -s 32768
-
- # do not abort on error as some are "expected"
- make -k check || true
- ${_basedir}/contrib/test_summary
-}
-
-package_gcc-libs-multilib()
-{
- pkgdesc="Runtime libraries shipped by GCC for multilib"
- depends=('glibc>=2.14' "lib32-gcc-libs=$pkgver-$pkgrel")
- provides=("gcc-libs=$pkgver-$pkgrel")
- conflicts=('gcc-libs')
- install=gcc-libs.install
-
- cd gcc-build
- make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
- for lib in libmudflap libgomp libssp libstdc++-v3/src; do
- make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
- done
- make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
- make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
-
- make -j1 DESTDIR=${pkgdir} install-target-libquadmath
- make -j1 DESTDIR=${pkgdir} install-target-libgfortran
- make -j1 DESTDIR=${pkgdir} install-target-libobjc
-
- # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
- rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
-
- # remove stuff in lib32-gcc-libs
- rm -rf ${pkgdir}/usr/lib32
-
- # remove static libraries
- find ${pkgdir} -name *.a -delete
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-libs-multilib/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_lib32-gcc-libs()
-{
- pkgdesc="Runtime libraries shipped by GCC (32-bit)"
- depends=('lib32-glibc>=2.14' "gcc-libs>=$pkgver")
-
- cd gcc-build
- make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
- for lib in libmudflap libgomp libssp libstdc++-v3/src; do
- make -j1 -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
- done
-
- make -j1 DESTDIR=${pkgdir} install-target-libquadmath
- make -j1 DESTDIR=${pkgdir} install-target-libgfortran
- make -j1 DESTDIR=${pkgdir} install-target-libobjc
-
- # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
- rm ${pkgdir}/usr/lib32/libgfortran.spec
-
- # remove stuff in gcc-libs-multilib
- rm -rf ${pkgdir}/usr/lib
- rm -rf ${pkgdir}/usr/share/info
-
- # remove static libraries
- find ${pkgdir} -name *.a -delete
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-multilib()
-{
- pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
- depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.21.1' 'libmpc' 'cloog' 'ppl')
- groups=('multilib-devel')
- provides=("gcc=$pkgver-$pkgrel")
- conflicts=('gcc')
- install=gcc.install
-
- cd gcc-build
-
- # unfortunately it is much, much easier to install the lot and clean-up the mess...
- make -j1 DESTDIR=${pkgdir} install
- rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
- rm $pkgdir/usr/lib{,32}/*.so*
- rm $pkgdir/usr/lib{,32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
- rm $pkgdir/usr/lib{,32}/libgfortran.spec
- rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/}ada{include,lib},finclude,include/objc}
- rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
- rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,{,32/}libgfortranbegin.a}
- rm -r $pkgdir/usr/lib{,32}/go
- rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
- rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
- rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
- rm $pkgdir/usr/share/man/man3/ffi*
-
- # many packages require these symlinks
- install -dm755 ${pkgdir}/lib
- ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
- ln -sf gcc ${pkgdir}/usr/bin/cc
- ln -sf g++ ${pkgdir}/usr/bin/c++
-
- # install gengtype for plugin support
- install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
- install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
-
- # POSIX conformance launcher scripts for c89 and c99
- cat > $pkgdir/usr/bin/c89 <<"EOF"
-#!/bin/sh
-fl="-std=c89"
-for opt; do
- case "$opt" in
- -ansi|-std=c89|-std=iso9899:1990) fl="";;
- -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
- exit 1;;
- esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-
- cat > $pkgdir/usr/bin/c99 <<"EOF"
-#!/bin/sh
-fl="-std=c99"
-for opt; do
- case "$opt" in
- -std=c99|-std=iso9899:1999) fl="";;
- -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
- exit 1;;
- esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-
- chmod 755 $pkgdir/usr/bin/c{8,9}9
-
- # install the libstdc++ man pages
- install -dm755 ${pkgdir}/usr/share/man/man3
- install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-multilib/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-fortran-multilib()
-{
- pkgdesc="Fortran front-end for GCC for multilib"
- depends=("gcc-multilib=$pkgver-$pkgrel")
- provides=("gcc-fortran=$pkgver-$pkgrel")
- conflicts=('gcc-fortran')
- install=gcc-fortran.install
-
- cd gcc-build
- make -j1 DESTDIR=${pkgdir} install-target-libquadmath
- make -j1 DESTDIR=$pkgdir install-target-libgfortran
- make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
- make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
- install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
-
- # remove libraries included in gcc-libs
- rm ${pkgdir}/usr/lib{,32}/lib{gfortran,quadmath}.so*
- rm ${pkgdir}/usr/share/info/libquadmath.info
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-fortran-multilib/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-objc-multilib()
-{
- pkgdesc="Objective-C front-end for GCC for multilib"
- depends=("gcc-multilib=$pkgver-$pkgrel")
- provides=("gcc-objc=$pkgver-$pkgrel")
- conflicts=('gcc-objc')
-
- cd gcc-build
- make -j1 DESTDIR=$pkgdir install-target-libobjc
- install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
- install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
-
- # remove libraries included in gcc-libs
- rm ${pkgdir}/usr/lib{,32}/libobjc.so*
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-objc-multilib/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-ada-multilib()
-{
- pkgdesc="Ada front-end for GCC (GNAT) for multilib"
- depends=("gcc-multilib=$pkgver-$pkgrel")
- provides=("gcc-ada=$pkgver-$pkgrel")
- conflicts=('gcc-ada')
- install=gcc-ada.install
-
- cd gcc-build/gcc
- make -j1 DESTDIR=$pkgdir ada.install-{common,info}
- install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
-
- cd ../$CHOST/32/libada
- make -j1 DESTDIR=${pkgdir} INSTALL="install" \
- INSTALL_DATA="install -m644" install-gnatlib
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-ada-multilib/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-go-multilib()
-{
- pkgdesc="Go front-end for GCC for multilib"
- depends=("gcc-multilib=$pkgver-$pkgrel")
- provides=("gcc-go=$pkgver-$pkgrel")
- conflicts=('gcc-go')
- install=gcc-go.install
-
- cd gcc-build
- make -j1 DESTDIR=$pkgdir install-target-libgo
- make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
- install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
-}
diff --git a/multilib-testing/gcc-multilib/gcc-ada.install b/multilib-testing/gcc-multilib/gcc-ada.install
deleted file mode 100644
index df0553a4f..000000000
--- a/multilib-testing/gcc-multilib/gcc-ada.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/multilib-testing/gcc-multilib/gcc-fortran.install b/multilib-testing/gcc-multilib/gcc-fortran.install
deleted file mode 100644
index b15d89a97..000000000
--- a/multilib-testing/gcc-multilib/gcc-fortran.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-file="gfortran.info"
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
-}
diff --git a/multilib-testing/gcc-multilib/gcc-go.install b/multilib-testing/gcc-multilib/gcc-go.install
deleted file mode 100644
index 7dc50dee5..000000000
--- a/multilib-testing/gcc-multilib/gcc-go.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(gccgo.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/multilib-testing/gcc-multilib/gcc-hash-style-both.patch b/multilib-testing/gcc-multilib/gcc-hash-style-both.patch
deleted file mode 100644
index 8b59f4535..000000000
--- a/multilib-testing/gcc-multilib/gcc-hash-style-both.patch
+++ /dev/null
@@ -1,122 +0,0 @@
---- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
-@@ -41,7 +41,7 @@
-
- #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
-
--#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
-+#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
- %{O*:-O3} %{!O*:-O1} \
- %{shared:-shared} \
- %{!shared: \
---- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
-+++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
-@@ -78,7 +78,7 @@
- %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
-
- #undef LINK_SPEC
--#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
-+#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{!static: \
---- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
-+++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -104,7 +104,7 @@
- { "dynamic_linker", LINUX_DYNAMIC_LINKER }
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
-+#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
---- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -64,7 +64,7 @@
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
-
- #undef LINK_SPEC
--#define LINK_SPEC "\
-+#define LINK_SPEC "--hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{!static: \
---- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
-+++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
-@@ -389,11 +389,11 @@
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
-
-
--#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
-
--#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
-
---- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
-+++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
-@@ -830,7 +830,7 @@
- #define LINUX_DYNAMIC_LINKER \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
-
--#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
-
---- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -77,7 +77,7 @@
-
- #undef LINK_SPEC
- #define LINK_SPEC \
-- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
-+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{static:-static} \
---- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
-+++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
-@@ -113,7 +113,7 @@
- { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
- { "link_arch", LINK_ARCH_SPEC },
-
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-@@ -121,7 +121,7 @@
- %{static:-static}} \
- "
-
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-@@ -193,7 +193,7 @@
- #else /* !SPARC_BI_ARCH */
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
---- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
-+++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -74,7 +74,7 @@
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
- %{!mno-relax:%{!r:-relax}} \
- %{!shared: \
- %{!static: \
diff --git a/multilib-testing/gcc-multilib/gcc-libs.install b/multilib-testing/gcc-multilib/gcc-libs.install
deleted file mode 100644
index 23553b8f0..000000000
--- a/multilib-testing/gcc-multilib/gcc-libs.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-filelist=(libgomp.info libquadmath.info)
-
-post_upgrade() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/multilib-testing/gcc-multilib/gcc.install b/multilib-testing/gcc-multilib/gcc.install
deleted file mode 100644
index 3407a5e1f..000000000
--- a/multilib-testing/gcc-multilib/gcc.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/multilib-testing/gcc-multilib/gcc_pure64.patch b/multilib-testing/gcc-multilib/gcc_pure64.patch
deleted file mode 100644
index 8c6b08171..000000000
--- a/multilib-testing/gcc-multilib/gcc_pure64.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
---- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
-@@ -49,7 +49,7 @@
- done. */
-
- #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
-
- #undef LINK_SPEC
- #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
---- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
-@@ -6,7 +6,7 @@
-
- MULTILIB_OPTIONS = m64/m32
- MULTILIB_DIRNAMES = 64 32
--MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
-+MULTILIB_OSDIRNAMES = ../lib ../lib32
-
- LIBGCC = stmp-multilib
- INSTALL_LIBGCC = install-multilib
diff --git a/multilib-testing/lib32-mesa/nouveau-fix-header.patch b/multilib-testing/lib32-mesa/nouveau-fix-header.patch
deleted file mode 100644
index 38aa996f1..000000000
--- a/multilib-testing/lib32-mesa/nouveau-fix-header.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 5c102dd94f435e97507213fbd128e50dd15f5f54 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs@redhat.com>
-Date: Mon, 20 Dec 2010 03:39:36 +0000
-Subject: nouveau: fix includes for latest libdrm
-
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
-diff --git a/src/gallium/drivers/nouveau/nouveau_winsys.h b/src/gallium/drivers/nouveau/nouveau_winsys.h
-index ab480ca..747b084 100644
---- a/src/gallium/drivers/nouveau/nouveau_winsys.h
-+++ b/src/gallium/drivers/nouveau/nouveau_winsys.h
-@@ -10,7 +10,7 @@
- #include "nouveau/nouveau_grobj.h"
- #include "nouveau/nouveau_notifier.h"
- #include "nouveau/nouveau_resource.h"
--#include "nouveau/nouveau_pushbuf.h"
-+#include "nouveau/nv04_pushbuf.h"
-
- #ifndef NV04_PFIFO_MAX_PACKET_LEN
- #define NV04_PFIFO_MAX_PACKET_LEN 2047
-diff --git a/src/gallium/drivers/nv50/nv50_surface.c b/src/gallium/drivers/nv50/nv50_surface.c
-index ce48022..a99df76 100644
---- a/src/gallium/drivers/nv50/nv50_surface.c
-+++ b/src/gallium/drivers/nv50/nv50_surface.c
-@@ -22,7 +22,7 @@
-
- #define __NOUVEAU_PUSH_H__
- #include <stdint.h>
--#include "nouveau/nouveau_pushbuf.h"
-+#include "nouveau/nv04_pushbuf.h"
- #include "nv50_context.h"
- #include "nv50_resource.h"
- #include "pipe/p_defines.h"
-diff --git a/src/gallium/drivers/nvfx/nv04_2d.c b/src/gallium/drivers/nvfx/nv04_2d.c
-index e0e65e7..e2fadd3 100644
---- a/src/gallium/drivers/nvfx/nv04_2d.c
-+++ b/src/gallium/drivers/nvfx/nv04_2d.c
-@@ -34,11 +34,11 @@
- #include <stdio.h>
- #include <stdint.h>
- #include <nouveau/nouveau_device.h>
--#include <nouveau/nouveau_pushbuf.h>
- #include <nouveau/nouveau_channel.h>
- #include <nouveau/nouveau_bo.h>
- #include <nouveau/nouveau_notifier.h>
- #include <nouveau/nouveau_grobj.h>
-+#include <nouveau/nv04_pushbuf.h>
- #include "nv04_2d.h"
-
- #include "nouveau/nv_object.xml.h"
-diff --git a/src/gallium/drivers/nvfx/nvfx_vbo.c b/src/gallium/drivers/nvfx/nvfx_vbo.c
-index 597664e..339b317 100644
---- a/src/gallium/drivers/nvfx/nvfx_vbo.c
-+++ b/src/gallium/drivers/nvfx/nvfx_vbo.c
-@@ -9,8 +9,7 @@
- #include "nvfx_resource.h"
-
- #include "nouveau/nouveau_channel.h"
--
--#include "nouveau/nouveau_pushbuf.h"
-+#include "nouveau/nv04_pushbuf.h"
-
- static inline unsigned
- util_guess_unique_indices_count(unsigned mode, unsigned indices)
-diff --git a/src/mesa/drivers/dri/nouveau/nouveau_driver.h b/src/mesa/drivers/dri/nouveau/nouveau_driver.h
-index 8036b18..c5ac128 100644
---- a/src/mesa/drivers/dri/nouveau/nouveau_driver.h
-+++ b/src/mesa/drivers/dri/nouveau/nouveau_driver.h
-@@ -38,7 +38,6 @@
- #include <assert.h>
-
- #include "nouveau_device.h"
--#include "nouveau_pushbuf.h"
- #include "nouveau_grobj.h"
- #include "nouveau_channel.h"
- #include "nouveau_bo.h"
-@@ -46,6 +45,7 @@
- #include "nouveau_screen.h"
- #include "nouveau_state.h"
- #include "nouveau_surface.h"
-+#include "nv04_pushbuf.h"
-
- #define DRIVER_DATE "20091015"
- #define DRIVER_AUTHOR "Nouveau"
---
-cgit v0.8.3-6-g21f6
diff --git a/testing/avahi/PKGBUILD b/testing/avahi/PKGBUILD
deleted file mode 100644
index 812aeeaa0..000000000
--- a/testing/avahi/PKGBUILD
+++ /dev/null
@@ -1,75 +0,0 @@
-# $Id: PKGBUILD 128481 2011-06-24 03:51:45Z bisson $
-# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
-
-pkgname=avahi
-pkgver=0.6.30
-pkgrel=4
-pkgdesc='A multicast/unicast DNS-SD framework'
-arch=('i686' 'x86_64')
-url='http://www.avahi.org/'
-license=('LGPL')
-depends=('expat' 'libdaemon' 'glib2' 'dbus' 'libcap' 'gdbm')
-optdepends=('gtk3: avahi-discover-standalone, bshell, bssh, bvnc'
- 'gtk2: gtk2 bindings'
- 'qt3: qt3 bindings'
- 'qt: qt bindings'
- 'pygtk: avahi-bookmarks, avahi-discover'
- 'twisted: avahi-bookmarks'
- 'mono: mono bindings'
- 'dbus-python: avahi-discover'
- 'nss-mdns: NSS support for mDNS')
-makedepends=('qt' 'qt3' 'pygtk' 'mono' 'intltool' 'dbus-python'
- 'gtk-sharp-2' 'gobject-introspection' 'gtk3')
-backup=(etc/avahi/avahi-daemon.conf etc/avahi/services/{sftp-,}ssh.service)
-install=install
-conflicts=('howl' 'mdnsresponder')
-provides=('howl' 'mdnsresponder')
-replaces=('howl' 'mdnsresponder')
-options=('!libtool')
-source=("http://www.avahi.org/download/avahi-${pkgver}.tar.gz"
- 'gnome-nettool.png'
- 'rc.d.patch')
-sha1sums=('5b77443537600a00770e4c77e3c443eeb5861d06'
- 'cf56387c88aed246b9f435efc182ef44de4d52f3'
- '625ad7c131c0c1c383caeddef18fc7a32d8f3ab9')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- sed -i 's/netdev/network/g' avahi-daemon/avahi-dbus.conf
- patch -p1 -i "../rc.d.patch"
-
- # pygtk requires python2; make it explicit in case other python are installed: FS#21865
- PYTHON=python2 \
- PKG_CONFIG_PATH=/opt/qt/lib/pkgconfig \
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --disable-static \
- --disable-monodoc \
- --disable-doxygen-doc \
- --disable-xmltoman \
- --enable-compat-libdns_sd \
- --enable-compat-howl \
- --with-distro=archlinux \
- --with-avahi-priv-access-group=network \
- --with-autoipd-user=avahi \
- --with-autoipd-group=avahi \
- --with-systemdsystemunitdir=/lib/systemd/system # See FS#20999
-
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- install -D -m 644 ../gnome-nettool.png "${pkgdir}"/usr/share/pixmaps/gnome-nettool.png
-
- cd "${pkgdir}"
- sed -i '1c #!/usr/bin/python2' usr/bin/avahi-{bookmarks,discover}
- # howl and mdnsresponder compatability
- (cd usr/include; ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h; ln -s avahi-compat-howl howl)
- (cd usr/lib/pkgconfig; ln -s avahi-compat-howl.pc howl.pc)
-}
diff --git a/testing/avahi/gnome-nettool.png b/testing/avahi/gnome-nettool.png
deleted file mode 100644
index 227d0678a..000000000
--- a/testing/avahi/gnome-nettool.png
+++ /dev/null
Binary files differ
diff --git a/testing/avahi/install b/testing/avahi/install
deleted file mode 100644
index 7c75c3dd4..000000000
--- a/testing/avahi/install
+++ /dev/null
@@ -1,21 +0,0 @@
-post_install() {
- getent group avahi &>/dev/null || groupadd -r -g 84 avahi >/dev/null
- getent passwd avahi &>/dev/null || useradd -r -u 84 -g avahi -d / -s /bin/false -c avahi avahi >/dev/null
-
- cat <<EOF
-==> The following daemons may be added to DAEMONS in /etc/rc.conf:
-==> avahi-daemon: the mdns responder, you probably want this.
-==> dbus needs to be running when you start it.
-==> avahi-dnsconfd: daemon used for peer-to-peer automatic dns
-==> configuration on dhcp-less networks.
-
-==> To use some of the client applications you will have to install python.
-==> In addition, pygtk is required for the graphical ones and
-==> twisted for avahi-bookmarks.
-EOF
-}
-
-post_remove() {
- getent passwd avahi &>/dev/null && userdel avahi >/dev/null
- getent group avahi &>/dev/null && groupdel avahi >/dev/null
-}
diff --git a/testing/avahi/rc.d.patch b/testing/avahi/rc.d.patch
deleted file mode 100644
index fd735734b..000000000
--- a/testing/avahi/rc.d.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -aur old/initscript/archlinux/avahi-daemon.in new/initscript/archlinux/avahi-daemon.in
---- old/initscript/archlinux/avahi-daemon.in 2011-06-24 03:07:00.916170590 +0200
-+++ new/initscript/archlinux/avahi-daemon.in 2011-06-24 03:16:32.220596377 +0200
-@@ -33,6 +33,7 @@
-
- case "$1" in
- start)
-+ ck_daemon dbus && { echo -n "Start dbus first." >&2; stat_die; }
- stat_busy "Starting $DESC"
- $DAEMON -D > /dev/null 2>&1
- if [ $? -gt 0 ]; then
diff --git a/testing/cryptsetup/PKGBUILD b/testing/cryptsetup/PKGBUILD
deleted file mode 100644
index a2a11ec9e..000000000
--- a/testing/cryptsetup/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: PKGBUILD 129976 2011-06-30 17:57:50Z thomas $
-# Maintainer: Thomas Bächler <thomas@archlinux.org>
-pkgname=cryptsetup
-pkgver=1.3.1
-pkgrel=2
-pkgdesc="Userspace setup tool for transparent encryption of block devices using the Linux 2.6 cryptoapi"
-arch=(i686 x86_64)
-license=('GPL')
-url="http://code.google.com/p/cryptsetup/"
-groups=('base')
-depends=('device-mapper>=2.02.85-2' 'libgcrypt' 'popt')
-conflicts=('mkinitcpio<0.7')
-options=('!libtool' '!emptydirs')
-source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2
- encrypt_hook
- encrypt_install)
-sha256sums=('7ceb18a0c91fa1546077b41b93463dd2ec9d7f83e6fd93757fb84cc608206a6a'
- 'b8269d358363eb8d67d1ffa1469068e454a89154636283bcc3edc6486b7fff4e'
- 'd4380195351b70abf8fcb3cd19461879c55a7a07e4915d1f0365b295b112a573')
-
-build() {
- cd $srcdir/$pkgname-${pkgver}
- ./configure --prefix=/usr --disable-static --sbindir=/sbin --libdir=/lib
- make
-}
-
-package() {
- cd $srcdir/$pkgname-${pkgver}
- make DESTDIR=$pkgdir install
- # install hook
- install -D -m644 $srcdir/encrypt_hook $pkgdir/lib/initcpio/hooks/encrypt
- install -D -m644 $srcdir/encrypt_install $pkgdir/lib/initcpio/install/encrypt
- # Fix pkgconfig location
- install -d -m755 $pkgdir/usr/lib
- mv $pkgdir/lib/pkgconfig $pkgdir/usr/lib/
-}
diff --git a/testing/cryptsetup/encrypt_hook b/testing/cryptsetup/encrypt_hook
deleted file mode 100644
index 54aaa2236..000000000
--- a/testing/cryptsetup/encrypt_hook
+++ /dev/null
@@ -1,132 +0,0 @@
-# vim: set ft=sh:
-# TODO this one needs some work to work with lots of different
-# encryption schemes
-run_hook ()
-{
- /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1
- if [ -e "/sys/class/misc/device-mapper" ]; then
- if [ ! -e "/dev/mapper/control" ]; then
- mkdir /dev/mapper
- mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
- fi
- [ "${quiet}" = "y" ] && CSQUIET=">/dev/null"
-
- # Get keyfile if specified
- ckeyfile="/crypto_keyfile.bin"
- if [ "x${cryptkey}" != "x" ]; then
- ckdev="$(echo "${cryptkey}" | cut -d: -f1)"
- ckarg1="$(echo "${cryptkey}" | cut -d: -f2)"
- ckarg2="$(echo "${cryptkey}" | cut -d: -f3)"
- if poll_device "${ckdev}" ${rootdelay}; then
- case ${ckarg1} in
- *[!0-9]*)
- # Use a file on the device
- # ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path
- mkdir /ckey
- mount -r -t ${ckarg1} ${ckdev} /ckey
- dd if=/ckey/${ckarg2} of=${ckeyfile} >/dev/null 2>&1
- umount /ckey
- ;;
- *)
- # Read raw data from the block device
- # ckarg1 is numeric: ckarg1=offset, ckarg2=length
- dd if=${ckdev} of=${ckeyfile} bs=1 skip=${ckarg1} count=${ckarg2} >/dev/null 2>&1
- ;;
- esac
- fi
- [ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase."
- fi
-
- if [ -n "${cryptdevice}" ]; then
- DEPRECATED_CRYPT=0
- cryptdev="$(echo "${cryptdevice}" | cut -d: -f1)"
- cryptname="$(echo "${cryptdevice}" | cut -d: -f2)"
- else
- DEPRECATED_CRYPT=1
- cryptdev="${root}"
- cryptname="root"
- fi
-
- warn_deprecated() {
- echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
- echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
- }
-
- if poll_device "${cryptdev}" ${rootdelay}; then
- if /sbin/cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then
- [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
- dopassphrase=1
- # If keyfile exists, try to use that
- if [ -f ${ckeyfile} ]; then
- if eval /sbin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then
- dopassphrase=0
- else
- echo "Invalid keyfile. Reverting to passphrase."
- fi
- fi
- # Ask for a passphrase
- if [ ${dopassphrase} -gt 0 ]; then
- echo ""
- echo "A password is required to access the ${cryptname} volume:"
-
- #loop until we get a real password
- while ! eval /sbin/cryptsetup luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; do
- sleep 2;
- done
- fi
- if [ -e "/dev/mapper/${cryptname}" ]; then
- if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
- export root="/dev/mapper/root"
- fi
- else
- err "Password succeeded, but ${cryptname} creation failed, aborting..."
- exit 1
- fi
- elif [ -n "${crypto}" ]; then
- [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
- msg "Non-LUKS encrypted device found..."
- if [ $# -ne 5 ]; then
- err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip"
- err "Non-LUKS decryption not attempted..."
- return 1
- fi
- exe="/sbin/cryptsetup create ${cryptname} ${cryptdev}"
- tmp=$(echo "${crypto}" | cut -d: -f1)
- [ -n "${tmp}" ] && exe="${exe} --hash \"${tmp}\""
- tmp=$(echo "${crypto}" | cut -d: -f2)
- [ -n "${tmp}" ] && exe="${exe} --cipher \"${tmp}\""
- tmp=$(echo "${crypto}" | cut -d: -f3)
- [ -n "${tmp}" ] && exe="${exe} --key-size \"${tmp}\""
- tmp=$(echo "${crypto}" | cut -d: -f4)
- [ -n "${tmp}" ] && exe="${exe} --offset \"${tmp}\""
- tmp=$(echo "${crypto}" | cut -d: -f5)
- [ -n "${tmp}" ] && exe="${exe} --skip \"${tmp}\""
- if [ -f ${ckeyfile} ]; then
- exe="${exe} --key-file ${ckeyfile}"
- else
- exe="${exe} --verify-passphrase"
- echo ""
- echo "A password is required to access the ${cryptname} volume:"
- fi
- eval "${exe} ${CSQUIET}"
-
- if [ $? -ne 0 ]; then
- err "Non-LUKS device decryption failed. verify format: "
- err " crypto=hash:cipher:keysize:offset:skip"
- exit 1
- fi
- if [ -e "/dev/mapper/${cryptname}" ]; then
- if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
- export root="/dev/mapper/root"
- fi
- else
- err "Password succeeded, but ${cryptname} creation failed, aborting..."
- exit 1
- fi
- else
- err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified."
- fi
- fi
- rm -f ${ckeyfile}
- fi
-}
diff --git a/testing/cryptsetup/encrypt_install b/testing/cryptsetup/encrypt_install
deleted file mode 100644
index 13174ec06..000000000
--- a/testing/cryptsetup/encrypt_install
+++ /dev/null
@@ -1,26 +0,0 @@
-# vim: set ft=sh:
-
-build()
-{
- if [ -z "${CRYPTO_MODULES}" ]; then
- MODULES=" dm-crypt $(all_modules "/crypto/") "
- else
- MODULES=" dm-crypt ${CRYPTO_MODULES} "
- fi
- FILES=""
- SCRIPT="encrypt"
- [ -f "/sbin/cryptsetup" ] && add_binary "/sbin/cryptsetup" "/sbin/cryptsetup"
- [ -f "/usr/sbin/cryptsetup" ] && add_binary "/usr/sbin/cryptsetup" "/sbin/cryptsetup"
- add_binary "/sbin/dmsetup"
- add_file "/lib/udev/rules.d/10-dm.rules"
- add_file "/lib/udev/rules.d/13-dm-disk.rules"
- add_file "/lib/udev/rules.d/95-dm-notify.rules"
- add_file "/lib/initcpio/udev/11-dm-initramfs.rules" "/lib/udev/rules.d/11-dm-initramfs.rules"
-}
-
-help ()
-{
-cat<<HELPEOF
- This hook allows for an encrypted root device.
-HELPEOF
-}
diff --git a/testing/dmraid/PKGBUILD b/testing/dmraid/PKGBUILD
deleted file mode 100644
index 5af91a2ec..000000000
--- a/testing/dmraid/PKGBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# $Id: PKGBUILD 129977 2011-06-30 18:03:08Z thomas $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-#Contributor: Urs Wolfer <uwolfer @ fwo.ch>
-
-pkgname=dmraid
-pkgver=1.0.0.rc16.3
-pkgrel=2
-pkgdesc="Device mapper RAID interface"
-url="http://people.redhat.com/~heinzm/sw/dmraid/"
-conflicts=('mkinitcpio<0.7')
-depends=('device-mapper>=2.0.54')
-arch=('i686' 'x86_64')
-license=('GPL')
-source=(#ftp://ftp.archlinux.org/other/dmraid/$pkgname-$pkgver.tar.bz2
- http://people.redhat.com/~heinzm/sw/dmraid/src/$pkgname-1.0.0.rc16-3.tar.bz2
- dmraid_install
- dmraid_hook)
-install=dmraid.install
-md5sums=('819338fcef98e8e25819f0516722beeb'
- 'bf6c61a11dbbb40d5152835075c9f438'
- '2a1ef82fb32f065ee560dceef736475e')
-
-build() {
- cd "$srcdir"/$pkgname/1.0.0.rc16-3/$pkgname
- ./configure --enable-led --enable-intel_led
- make
-}
-
-package() {
- cd "$srcdir"/$pkgname/1.0.0.rc16-3/$pkgname
- make DESTDIR="$pkgdir" prefix=/ libdir=/lib mandir=/usr/share/man includedir=/usr/include install
- mkdir -p "$pkgdir"/var/lock/dmraid
- chmod 1777 "$pkgdir"/var/lock/
- install -D -m644 "$srcdir"/dmraid_install "$pkgdir"/lib/initcpio/install/dmraid
- install -D -m644 "$srcdir"/dmraid_hook "$pkgdir"/lib/initcpio/hooks/dmraid
- # fix permissions
- chmod 644 "$pkgdir"/lib/libdmraid.a
- chmod 644 "$pkgdir"/usr/include/dmraid/*
-}
diff --git a/testing/dmraid/dmraid.install b/testing/dmraid/dmraid.install
deleted file mode 100644
index 64899e785..000000000
--- a/testing/dmraid/dmraid.install
+++ /dev/null
@@ -1,14 +0,0 @@
-post_upgrade() {
- if [ "$(vercmp $2 1.0.0.rc15)" -lt 0 ]; then
- # important upgrade notice
- echo ">>>"
- echo ">>> IMPORTANT DMRAID UPGRADE NOTICE"
- echo ">>> -------------------------------"
- echo ">>> Version 1.0.0.rc15 and greater introduce a new name scheme:"
- echo ">>> You need to add an additional 'p' in front of your number."
- echo ">>> e.g. <yourname><number> --> <yourname>p<number>"
- echo ">>> firsthd1 --> firsthdp1"
- echo ">>> Please change your bootloader and fstab accordingly."
- echo ">>>"
- fi
-}
diff --git a/testing/dmraid/dmraid_hook b/testing/dmraid/dmraid_hook
deleted file mode 100644
index 6219a718a..000000000
--- a/testing/dmraid/dmraid_hook
+++ /dev/null
@@ -1,19 +0,0 @@
-# vim: set ft=sh:
-run_hook ()
-{
- /sbin/modprobe -q dm-mod >/dev/null 2>&1
- /sbin/modprobe -q dm-mirror >/dev/null 2>&1
- if [ -e "/sys/class/misc/device-mapper" ]; then
- if [ ! -e "/dev/mapper/control" ]; then
- mkdir /dev/mapper
- mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
- fi
- msg ":: Activating dmraid arrays..."
- # prevent any event monitoring calls with -I
- if [ "${quiet}" = "y" ]; then
- /sbin/dmraid -ay -I -Z >/dev/null
- else
- /sbin/dmraid -ay -I -Z
- fi
- fi
-}
diff --git a/testing/dmraid/dmraid_install b/testing/dmraid/dmraid_install
deleted file mode 100644
index eeb9e0893..000000000
--- a/testing/dmraid/dmraid_install
+++ /dev/null
@@ -1,19 +0,0 @@
-# vim: set ft=sh:
-
-build()
-{
- MODULES=" dm-mod dm-mirror "
- BINARIES="/sbin/dmraid /sbin/dmsetup"
- FILES=""
- SCRIPT="dmraid"
- add_file "/lib/udev/rules.d/10-dm.rules"
- add_file "/lib/udev/rules.d/13-dm-disk.rules"
- add_file "/lib/udev/rules.d/95-dm-notify.rules"
-}
-
-help ()
-{
-cat<<HELPEOF
- This hook loads the necessary modules for a dmraid root device.
-HELPEOF
-}
diff --git a/testing/gcc/PKGBUILD b/testing/gcc/PKGBUILD
deleted file mode 100644
index ecba694b3..000000000
--- a/testing/gcc/PKGBUILD
+++ /dev/null
@@ -1,254 +0,0 @@
-# $Id: PKGBUILD 130912 2011-07-09 03:10:41Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
-
-# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
-# NOTE: libtool requires rebuilt with each new gcc version
-
-pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
-pkgver=4.6.1
-pkgrel=2
-#_snapshot=4.6-20110603
-_libstdcppmanver=20110201 # Note: check source directory name when updating this
-pkgdesc="The GNU Compiler Collection"
-arch=('i686' 'x86_64')
-license=('GPL' 'LGPL' 'FDL' 'custom')
-url="http://gcc.gnu.org"
-makedepends=('binutils>=2.21-9' 'libmpc' 'cloog' 'ppl' 'gcc-ada')
-checkdepends=('dejagnu')
-options=('!libtool' '!emptydirs')
-source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
- #ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
- gcc_pure64.patch
- gcc-hash-style-both.patch)
-md5sums=('c57a9170c677bf795bdc04ed796ca491'
- '1e9fd2eaf0ee47ea64e82c48998f1999'
- '4030ee1c08dd1e843c0225b772360e76'
- '4df25b623799b148a0703eaeec8fdf3f')
-
-if [ -n "${_snapshot}" ]; then
- _basedir="${srcdir}/gcc-${_snapshot}"
-else
- _basedir="${srcdir}/gcc-${pkgver}"
-fi
-
-build() {
- cd ${_basedir}
-
- # Do not install libiberty
- sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
-
- # Do not run fixincludes
- sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
-
- if [ "${CARCH}" = "x86_64" ]; then
- patch -Np1 -i ${srcdir}/gcc_pure64.patch
- fi
- patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
-
- echo ${pkgver} > gcc/BASE-VER
-
- cd ${srcdir}
- mkdir gcc-build && cd gcc-build
-
- ${_basedir}/configure --prefix=/usr \
- --libdir=/usr/lib --libexecdir=/usr/lib \
- --mandir=/usr/share/man --infodir=/usr/share/info \
- --with-bugurl=https://bugs.archlinux.org/ \
- --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
- --enable-shared --enable-threads=posix \
- --with-system-zlib --enable-__cxa_atexit \
- --disable-libunwind-exceptions --enable-clocale=gnu \
- --enable-gnu-unique-object --enable-linker-build-id \
- --with-ppl --enable-cloog-backend=isl \
- --enable-lto --enable-gold --enable-ld=default \
- --enable-plugin --with-plugin-ld=ld.gold \
- --disable-multilib --disable-libstdcxx-pch \
- --enable-checking=release
- make
-}
-
-check() {
- cd gcc-build
-
- # increase stack size to prevent test failures
- # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
- ulimit -s 32768
-
- # do not abort on error as some are "expected"
- make -k check || true
- ${_basedir}/contrib/test_summary
-}
-
-package_gcc-libs()
-{
- pkgdesc="Runtime libraries shipped by GCC"
- groups=('base')
- depends=('glibc>=2.14')
- install=gcc-libs.install
-
- cd gcc-build
- make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
- for lib in libmudflap libgomp libssp libstdc++-v3/src; do
- make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
- done
- make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
- make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
-
- make -j1 DESTDIR=${pkgdir} install-target-libquadmath
- make -j1 DESTDIR=${pkgdir} install-target-libgfortran
- make -j1 DESTDIR=${pkgdir} install-target-libobjc
-
- # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
- rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
-
- # remove static libraries
- find ${pkgdir} -name *.a -delete
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc()
-{
- pkgdesc="The GNU Compiler Collection - C and C++ frontends"
- depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.21.1' 'libmpc' 'cloog' 'ppl')
- groups=('base-devel')
- install=gcc.install
-
- cd gcc-build
-
- # unfortunately it is much, much easier to install the lot and clean-up the mess...
- make -j1 DESTDIR=${pkgdir} install
- rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
- rm $pkgdir/usr/lib/*.so*
- rm $pkgdir/usr/lib/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
- rm $pkgdir/usr/lib/libgfortran.spec
- rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}
- rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
- rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,libgfortranbegin.a}
- rm -r $pkgdir/usr/lib/go
- rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
- rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
- rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
- rm $pkgdir/usr/share/man/man3/ffi*
-
- # many packages require these symlinks
- install -dm755 ${pkgdir}/lib
- ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
- ln -sf gcc ${pkgdir}/usr/bin/cc
- ln -sf g++ ${pkgdir}/usr/bin/c++
-
- # install gengtype for plugin support
- install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
- install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/
-
- # POSIX conformance launcher scripts for c89 and c99
- cat > $pkgdir/usr/bin/c89 <<"EOF"
-#!/bin/sh
-fl="-std=c89"
-for opt; do
- case "$opt" in
- -ansi|-std=c89|-std=iso9899:1990) fl="";;
- -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
- exit 1;;
- esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-
- cat > $pkgdir/usr/bin/c99 <<"EOF"
-#!/bin/sh
-fl="-std=c99"
-for opt; do
- case "$opt" in
- -std=c99|-std=iso9899:1999) fl="";;
- -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
- exit 1;;
- esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-
- chmod 755 $pkgdir/usr/bin/c{8,9}9
-
- # install the libstdc++ man pages
- install -dm755 ${pkgdir}/usr/share/man/man3
- install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-fortran()
-{
- pkgdesc="Fortran front-end for GCC"
- depends=("gcc=$pkgver-$pkgrel")
- install=gcc-fortran.install
-
- cd gcc-build
- make -j1 DESTDIR=${pkgdir} install-target-libquadmath
- make -j1 DESTDIR=$pkgdir install-target-libgfortran
- make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
- make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
- install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
-
- # remove libraries included in gcc-libs
- rm ${pkgdir}/usr/lib/lib{gfortran,quadmath}.so*
- rm ${pkgdir}/usr/share/info/libquadmath.info
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-objc()
-{
- pkgdesc="Objective-C front-end for GCC"
- depends=("gcc=$pkgver-$pkgrel")
-
- cd gcc-build
- make -j1 DESTDIR=$pkgdir install-target-libobjc
- install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
- install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
-
- # remove libraries included in gcc-libs
- rm ${pkgdir}/usr/lib/libobjc.so*
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-ada()
-{
- pkgdesc="Ada front-end for GCC (GNAT)"
- depends=("gcc=$pkgver-$pkgrel")
- install=gcc-ada.install
-
- cd gcc-build/gcc
- make -j1 DESTDIR=$pkgdir ada.install-{common,info}
- install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION
-}
-
-package_gcc-go()
-{
- pkgdesc="Go front-end for GCC"
- depends=("gcc=$pkgver-$pkgrel")
- install=gcc-go.install
-
- cd gcc-build
- make -j1 DESTDIR=$pkgdir install-target-libgo
- make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
- install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1
-
- # Install Runtime Library Exception
- install -Dm644 ${_basedir}/COPYING.RUNTIME \
- ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
-}
diff --git a/testing/gcc/gcc-ada.install b/testing/gcc/gcc-ada.install
deleted file mode 100644
index df0553a4f..000000000
--- a/testing/gcc/gcc-ada.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/gcc/gcc-fortran.install b/testing/gcc/gcc-fortran.install
deleted file mode 100644
index b15d89a97..000000000
--- a/testing/gcc/gcc-fortran.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-file="gfortran.info"
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
-}
diff --git a/testing/gcc/gcc-go.install b/testing/gcc/gcc-go.install
deleted file mode 100644
index 7dc50dee5..000000000
--- a/testing/gcc/gcc-go.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(gccgo.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/gcc/gcc-hash-style-both.patch b/testing/gcc/gcc-hash-style-both.patch
deleted file mode 100644
index 8b59f4535..000000000
--- a/testing/gcc/gcc-hash-style-both.patch
+++ /dev/null
@@ -1,122 +0,0 @@
---- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
-@@ -41,7 +41,7 @@
-
- #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
-
--#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
-+#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
- %{O*:-O3} %{!O*:-O1} \
- %{shared:-shared} \
- %{!shared: \
---- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
-+++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
-@@ -78,7 +78,7 @@
- %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
-
- #undef LINK_SPEC
--#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
-+#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{!static: \
---- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
-+++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -104,7 +104,7 @@
- { "dynamic_linker", LINUX_DYNAMIC_LINKER }
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
-+#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
---- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -64,7 +64,7 @@
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
-
- #undef LINK_SPEC
--#define LINK_SPEC "\
-+#define LINK_SPEC "--hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{!static: \
---- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
-+++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
-@@ -389,11 +389,11 @@
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
-
-
--#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
-
--#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
-
---- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
-+++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
-@@ -830,7 +830,7 @@
- #define LINUX_DYNAMIC_LINKER \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
-
--#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
-
---- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
-+++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -77,7 +77,7 @@
-
- #undef LINK_SPEC
- #define LINK_SPEC \
-- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
-+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
- %{shared:-shared} \
- %{!shared: \
- %{static:-static} \
---- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
-+++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
-@@ -113,7 +113,7 @@
- { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
- { "link_arch", LINK_ARCH_SPEC },
-
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-@@ -121,7 +121,7 @@
- %{static:-static}} \
- "
-
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-@@ -193,7 +193,7 @@
- #else /* !SPARC_BI_ARCH */
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
---- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
-+++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
-@@ -74,7 +74,7 @@
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
- %{!mno-relax:%{!r:-relax}} \
- %{!shared: \
- %{!static: \
diff --git a/testing/gcc/gcc-libs.install b/testing/gcc/gcc-libs.install
deleted file mode 100644
index 23553b8f0..000000000
--- a/testing/gcc/gcc-libs.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-filelist=(libgomp.info libquadmath.info)
-
-post_upgrade() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/gcc/gcc.install b/testing/gcc/gcc.install
deleted file mode 100644
index 3407a5e1f..000000000
--- a/testing/gcc/gcc.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=usr/share/info
-filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/testing/gcc/gcc_pure64.patch b/testing/gcc/gcc_pure64.patch
deleted file mode 100644
index 8c0baf8e2..000000000
--- a/testing/gcc/gcc_pure64.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
---- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
-@@ -49,8 +49,8 @@
- When the -shared link option is used a final link is not being
- done. */
-
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
-+#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
-
- #undef LINK_SPEC
- #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
---- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
-@@ -6,7 +6,7 @@
-
- MULTILIB_OPTIONS = m64/m32
- MULTILIB_DIRNAMES = 64 32
--MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
-+MULTILIB_OSDIRNAMES = ../lib ../lib32
-
- LIBGCC = stmp-multilib
- INSTALL_LIBGCC = install-multilib
diff --git a/testing/gimp-devel/PKGBUILD b/testing/gimp-devel/PKGBUILD
deleted file mode 100644
index a7667f16d..000000000
--- a/testing/gimp-devel/PKGBUILD
+++ /dev/null
@@ -1,58 +0,0 @@
-# $Id: PKGBUILD 130357 2011-07-05 18:03:52Z eric $
-# Maintainer: Eric Bélanger <eric@archlinux.org>
-
-pkgname=gimp-devel
-pkgver=2.7.2
-pkgrel=2
-pkgdesc="GNU Image Manipulation Program (Development Version)"
-arch=('i686' 'x86_64')
-url="http://www.gimp.org/"
-license=('GPL3' 'LGPL3')
-depends=('pygtk' 'lcms' 'libxpm' 'libwmf' 'librsvg' 'libmng' 'dbus-glib' \
- 'jasper' 'libexif' 'gegl' 'desktop-file-utils' 'hicolor-icon-theme')
-makedepends=('intltool' 'libwebkit' 'poppler-glib' 'alsa-lib' 'iso-codes' 'curl')
-optdepends=('gutenprint: for sophisticated printing only as gimp has built-in cups print support'
- 'libwebkit: for the help browser or web-page plug-ins'
- 'poppler-glib: for pdf support'
- 'alsa-lib: for MIDI event controller module'
- 'curl: for URI support')
-options=('!libtool' '!makeflags')
-conflicts=('gimp')
-provides=("gimp=${pkgver}")
-install=gimp-devel.install
-source=(ftp://ftp.gimp.org/pub/gimp/v${pkgver%.*}/gimp-${pkgver}.tar.bz2 linux.gpl
- uri-backend-libcurl.patch)
-md5sums=('6996138ab70b0bfebfe9f563284e5f78'
- 'bb27bc214261d36484093e857f015f38'
- 'b3f8faa246e5794b0d63583059f54698')
-sha1sums=('4690420961d110f99448c32fe61aae7d4869a863'
- '110ce9798173b19a662d086ed7b882b4729f06cf'
- '8a87adc11ee13d5fce79ea4226f04e682a2af97d')
-
-build() {
- cd "${srcdir}/gimp-${pkgver}"
- patch -p1 < ../uri-backend-libcurl.patch
- PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
- --enable-mp --enable-gimp-console --enable-gimp-remote \
- --enable-python --with-gif-compression=lzw --with-libcurl \
- --without-aa --without-hal --without-gvfs
- make
-}
-
-package() {
- cd "${srcdir}/gimp-${pkgver}"
- make DESTDIR="${pkgdir}" install
- sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/lib/gimp/2.0/plug-ins/*.py
- install -D -m644 "${srcdir}/linux.gpl" "${pkgdir}/usr/share/gimp/2.0/palettes/Linux.gpl"
-
- ln -sf gimp-console-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp-console.1.gz"
- ln -sf gimp-remote-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp-remote.1.gz"
- ln -sf gimprc-${pkgver%.*}.5.gz "${pkgdir}/usr/share/man/man5/gimprc.5.gz"
- ln -sf gimptool-2.0.1.gz "${pkgdir}/usr/share/man/man1/gimptool.1.gz"
- ln -s gimp-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp.1.gz"
-
- ln -s gimp-${pkgver%.*} "${pkgdir}/usr/bin/gimp"
- ln -s gimp-console-${pkgver%.*} "${pkgdir}/usr/bin/gimp-console"
- ln -s gimp-remote-${pkgver%.*} "${pkgdir}/usr/bin/gimp-remote"
- ln -s gimptool-2.0 "${pkgdir}/usr/bin/gimptool"
-}
diff --git a/testing/gimp-devel/gimp-devel.install b/testing/gimp-devel/gimp-devel.install
deleted file mode 100644
index c317fbaca..000000000
--- a/testing/gimp-devel/gimp-devel.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/testing/gimp-devel/linux.gpl b/testing/gimp-devel/linux.gpl
deleted file mode 100644
index 0a73d8979..000000000
--- a/testing/gimp-devel/linux.gpl
+++ /dev/null
@@ -1,19 +0,0 @@
-GIMP Palette
-Name: linux
-#
- 0 0 0
- 0 0 170
- 0 170 0
- 0 170 170
-170 0 0
-170 0 170
-170 85 0
-170 170 170
- 85 85 85
- 85 85 255
- 85 255 85
- 85 255 255
-255 85 85
-255 85 255
-255 255 85
-255 255 255
diff --git a/testing/gimp-devel/uri-backend-libcurl.patch b/testing/gimp-devel/uri-backend-libcurl.patch
deleted file mode 100644
index d3217a292..000000000
--- a/testing/gimp-devel/uri-backend-libcurl.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -aur gimp-2.6.11/plug-ins/file-uri/uri-backend-libcurl.c gimp-2.6.11.patched/plug-ins/file-uri/uri-backend-libcurl.c
---- gimp-2.6.11/plug-ins/file-uri/uri-backend-libcurl.c 2010-07-03 00:51:59.000000000 +0200
-+++ gimp-2.6.11.patched/plug-ins/file-uri/uri-backend-libcurl.c 2011-06-23 19:15:30.000000000 +0200
-@@ -24,7 +23,6 @@
- #include <errno.h>
-
- #include <curl/curl.h>
--#include <curl/types.h>
- #include <curl/easy.h>
-
- #include <glib/gstdio.h>
-@@ -63,7 +61,7 @@
-
- vinfo = curl_version_info (CURLVERSION_NOW);
-
-- protocols = g_string_new ("http:,ftp:");
-+ protocols = g_string_new ("http:,ftp:,gopher:");
-
- if (vinfo->features & CURL_VERSION_SSL)
- {
-@@ -153,7 +151,7 @@
- FILE *out_file;
- CURL *curl_handle;
- CURLcode result;
-- gint response_code;
-+ glong response_code;
-
- gimp_progress_init (_("Connecting to server"));
-
-@@ -195,12 +193,12 @@
-
- curl_easy_getinfo (curl_handle, CURLINFO_RESPONSE_CODE, &response_code);
-
-- if (response_code != 200)
-+ if (response_code != 200 && response_code != 226 && response_code != 0)
- {
- fclose (out_file);
- g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
- _("Opening '%s' for reading resulted in HTTP "
-- "response code: %d"),
-+ "response code: %ld"),
- uri, response_code);
- curl_easy_cleanup (curl_handle);
- return FALSE;
diff --git a/testing/gimp/PKGBUILD b/testing/gimp/PKGBUILD
deleted file mode 100644
index a04de0a07..000000000
--- a/testing/gimp/PKGBUILD
+++ /dev/null
@@ -1,51 +0,0 @@
-# $Id: PKGBUILD 130354 2011-07-05 17:55:54Z eric $
-# Maintainer: tobias <tobias@archlinux.org>
-
-pkgname=gimp
-pkgver=2.6.11
-pkgrel=6
-pkgdesc="GNU Image Manipulation Program"
-arch=('i686' 'x86_64')
-url="http://www.gimp.org/"
-license=('GPL' 'LGPL')
-depends=('pygtk' 'lcms' 'libxpm' 'libwmf' 'libxmu' 'librsvg' 'libmng' 'dbus-glib' \
- 'libexif' 'gegl' 'desktop-file-utils' 'hicolor-icon-theme')
-makedepends=('intltool' 'libwebkit' 'poppler-glib' 'alsa-lib' 'iso-codes' 'curl')
-optdepends=('gutenprint: for sophisticated printing only as gimp has built-in cups print support'
- 'libwebkit: for the help browser'
- 'poppler-glib: for pdf support'
- 'alsa-lib: for MIDI event controller module'
- 'curl: for URI support')
-options=('!libtool' '!makeflags')
-conflicts=('gimp-devel')
-install=gimp.install
-source=(ftp://ftp.gimp.org/pub/gimp/v${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 linux.gpl
- uri-backend-libcurl.patch)
-md5sums=('bb2939fe13e54fc7255cef5d097bb5dd'
- 'bb27bc214261d36484093e857f015f38'
- 'e894f4b2ffa92c71448fdd350e9b78c6')
-sha1sums=('2f9d596e727bdbf304fa78257c1731d9faf3934c'
- '110ce9798173b19a662d086ed7b882b4729f06cf'
- 'a65b0ee6cd1b4345065b7b98c07f2fed15f844f4')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- patch -p1 < ../uri-backend-libcurl.patch
- PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
- --enable-mp --enable-gimp-console --enable-gimp-remote \
- --enable-python --with-gif-compression=lzw --with-libcurl \
- --without-aa --without-hal --without-gvfs --without-gnomevfs
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/lib/gimp/2.0/plug-ins/*.py
- install -D -m644 "${srcdir}/linux.gpl" "${pkgdir}/usr/share/gimp/2.0/palettes/Linux.gpl"
-
- rm "${pkgdir}/usr/share/man/man1/gimp-console.1"
- ln -s gimp-console-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp-console.1.gz"
- ln -s gimptool-2.0 "${pkgdir}/usr/bin/gimptool"
- ln -sf gimptool-2.0.1.gz "${pkgdir}/usr/share/man/man1/gimptool.1.gz"
-}
diff --git a/testing/gimp/gimp.install b/testing/gimp/gimp.install
deleted file mode 100644
index c317fbaca..000000000
--- a/testing/gimp/gimp.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/testing/gimp/linux.gpl b/testing/gimp/linux.gpl
deleted file mode 100644
index 0a73d8979..000000000
--- a/testing/gimp/linux.gpl
+++ /dev/null
@@ -1,19 +0,0 @@
-GIMP Palette
-Name: linux
-#
- 0 0 0
- 0 0 170
- 0 170 0
- 0 170 170
-170 0 0
-170 0 170
-170 85 0
-170 170 170
- 85 85 85
- 85 85 255
- 85 255 85
- 85 255 255
-255 85 85
-255 85 255
-255 255 85
-255 255 255
diff --git a/testing/gimp/uri-backend-libcurl.patch b/testing/gimp/uri-backend-libcurl.patch
deleted file mode 100644
index 85da2fc7f..000000000
--- a/testing/gimp/uri-backend-libcurl.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-diff -aur gimp-2.6.11/plug-ins/file-uri/uri-backend-libcurl.c gimp-2.6.11.patched/plug-ins/file-uri/uri-backend-libcurl.c
---- gimp-2.6.11/plug-ins/file-uri/uri-backend-libcurl.c 2010-07-03 00:51:59.000000000 +0200
-+++ gimp-2.6.11.patched/plug-ins/file-uri/uri-backend-libcurl.c 2011-06-23 19:15:30.000000000 +0200
-@@ -4,9 +4,9 @@
- * libcurl backend for the URI plug-in
- * Copyright (C) 2006 Mukund Sivaraman <muks@mukund.org>
- *
-- * This program is free software; you can redistribute it and/or modify
-+ * 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
-+ * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -15,8 +15,7 @@
- * 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.
-+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
- #include "config.h"
-@@ -24,7 +23,6 @@
- #include <errno.h>
-
- #include <curl/curl.h>
--#include <curl/types.h>
- #include <curl/easy.h>
-
- #include <glib/gstdio.h>
-@@ -63,7 +61,7 @@
-
- vinfo = curl_version_info (CURLVERSION_NOW);
-
-- protocols = g_string_new ("http:,ftp:");
-+ protocols = g_string_new ("http:,ftp:,gopher:");
-
- if (vinfo->features & CURL_VERSION_SSL)
- {
-@@ -153,7 +151,7 @@
- FILE *out_file;
- CURL *curl_handle;
- CURLcode result;
-- gint response_code;
-+ glong response_code;
-
- gimp_progress_init (_("Connecting to server"));
-
-@@ -195,12 +193,12 @@
-
- curl_easy_getinfo (curl_handle, CURLINFO_RESPONSE_CODE, &response_code);
-
-- if (response_code != 200)
-+ if (response_code != 200 && response_code != 226 && response_code != 0)
- {
- fclose (out_file);
- g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
- _("Opening '%s' for reading resulted in HTTP "
-- "response code: %d"),
-+ "response code: %ld"),
- uri, response_code);
- curl_easy_cleanup (curl_handle);
- return FALSE;
-@@ -224,3 +222,10 @@
-
- return FALSE;
- }
-+
-+gchar *
-+uri_backend_map_image (const gchar *uri,
-+ GimpRunMode run_mode)
-+{
-+ return NULL;
-+}
diff --git a/testing/gjs/PKGBUILD b/testing/gjs/PKGBUILD
deleted file mode 100644
index 3ce7f9db8..000000000
--- a/testing/gjs/PKGBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# $Id: PKGBUILD 130216 2011-07-04 12:55:31Z ibiru $
-# Maintainer: Ionut Biru <ibiru@archlinux.org>
-pkgname=gjs
-pkgver=0.7.14
-pkgrel=2
-pkgdesc="Javascript Bindings for GNOME"
-arch=('i686' 'x86_64')
-url="http://live.gnome.org/Gjs"
-license=('GPL')
-depends=('cairo' 'dbus-glib' 'gobject-introspection' 'js')
-options=('!libtool')
-source=(http://download.gnome.org/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2
- gjs-0.7.14-js185-backport.patch)
-sha256sums=('3af6f449a505c419d4a0e5938737da8d1b9b09b33710cc1ac1edee2eaa86e348'
- 'b1fd3b8aa5978c5b60bfe39ce4298e67b9baa190d9cbf1a0ebe47af356197335')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- sed -i 's|python|python2|' scripts/make-tests
- patch -Np1 -i "${srcdir}/gjs-0.7.14-js185-backport.patch"
- autoreconf -fi
- ./configure --prefix=/usr --disable-static
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
diff --git a/testing/gjs/gjs-0.7.14-js185-backport.patch b/testing/gjs/gjs-0.7.14-js185-backport.patch
deleted file mode 100644
index b8b2082a3..000000000
--- a/testing/gjs/gjs-0.7.14-js185-backport.patch
+++ /dev/null
@@ -1,436 +0,0 @@
-From cef9c0835bfd8be105ff8905083d6b51d9010b8f Mon Sep 17 00:00:00 2001
-From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
-Date: Fri, 1 Apr 2011 21:04:57 +0200
-Subject: [PATCH 1/4] Conditionally adapt to JS_DestroyScript removal
-
-Upstream changed the behaviour of several things about JSScripts in
-http://hg.mozilla.org/mozilla-central/rev/c919a7271ac1
-
-We now have to use a JSObject instead of a JSScript in certain circumstances,
-and we no longer have to call JS_DestroyScript which no longer exists
-
-https://bugzilla.gnome.org/show_bug.cgi?id=646471
-
-Conflicts:
-
- configure.ac
----
- configure.ac | 1 +
- modules/console.c | 6 ++++++
- 2 files changed, 7 insertions(+), 0 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 715f2c3..f81704b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -160,6 +160,7 @@ AC_CHECK_LIB([mozjs], [JS_GetFunctionName], AC_DEFINE([HAVE_JS_GETFUNCTIONNAME],
- AC_CHECK_LIB([mozjs], [JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [1], [Define if we still have JS_GetStringChars]),, [$JS_LIBS])
- AC_CHECK_LIB([mozjs], [JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),, [$JS_LIBS])
- AC_CHECK_LIB([mozjs], [JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),, [$JS_LIBS])
-+AC_CHECK_LIB([mozjs], [JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),, [$JS_LIBS])
-
- AC_MSG_CHECKING([for mozilla-js >= 2 ])
- if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 2`; then
-diff --git a/modules/console.c b/modules/console.c
-index 49f891b..e6945be 100644
---- a/modules/console.c
-+++ b/modules/console.c
-@@ -161,7 +161,11 @@ gjs_console_interact(JSContext *context,
- {
- JSObject *object = JS_THIS_OBJECT(context, vp);
- gboolean eof = FALSE;
-+#ifdef HAVE_JS_DESTROYSCRIPT
- JSScript *script = NULL;
-+#else
-+ JSObject *script = NULL;
-+#endif
- jsval result;
- JSString *str;
- GString *buffer = NULL;
-@@ -219,8 +223,10 @@ gjs_console_interact(JSContext *context,
- }
-
- next:
-+#ifdef HAVE_JS_DESTROYSCRIPT
- if (script)
- JS_DestroyScript(context, script);
-+#endif
- g_string_free(buffer, TRUE);
- } while (!eof);
-
---
-1.7.5.4
-
-
-From 3c8396821c78e362c8b3a89a27dcf4d32e25ee05 Mon Sep 17 00:00:00 2001
-From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
-Date: Fri, 29 Apr 2011 01:01:03 +0200
-Subject: [PATCH 2/4] conditonally adapt to JS_BufferIsCompilableUnit changes
-
-Upstream added an argument to JS_BufferIsCompilableUnit in commit
-http://hg.mozilla.org/mozilla-central/rev/a773890b676f
-We now have to tell if the bytes are utf8 or not.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=646471
----
- configure.ac | 1 +
- modules/console.c | 4 ++++
- 2 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f81704b..270bc46 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -161,6 +161,7 @@ AC_CHECK_LIB([mozjs], [JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [
- AC_CHECK_LIB([mozjs], [JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),, [$JS_LIBS])
- AC_CHECK_LIB([mozjs], [JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),, [$JS_LIBS])
- AC_CHECK_LIB([mozjs], [JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),, [$JS_LIBS])
-+AC_CHECK_LIB([mozjs], [JS_DecodeUTF8], AC_DEFINE([HAVE_JS_DECODEUTF8], [1], [Define if we have JS_DecodeUTF8]),, [$JS_LIBS])
-
- AC_MSG_CHECKING([for mozilla-js >= 2 ])
- if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 2`; then
-diff --git a/modules/console.c b/modules/console.c
-index e6945be..8e20db3 100644
---- a/modules/console.c
-+++ b/modules/console.c
-@@ -196,7 +196,11 @@ gjs_console_interact(JSContext *context,
- g_string_append(buffer, temp_buf);
- g_free(temp_buf);
- lineno++;
-+#ifdef HAVE_JS_DECODEUTF8
-+ } while (!JS_BufferIsCompilableUnit(context, JS_TRUE, object, buffer->str, buffer->len));
-+#else
- } while (!JS_BufferIsCompilableUnit(context, object, buffer->str, buffer->len));
-+#endif
-
- script = JS_CompileScript(context, object, buffer->str, buffer->len, "typein",
- startline);
---
-1.7.5.4
-
-
-From 00dd38de7ac8e82ac35c40909707fa91665c3102 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Thu, 5 May 2011 12:49:09 -0400
-Subject: [PATCH 3/4] JS_CLASS_TRACE is a preprocessor macro, can't use
- AC_CHECK_LIB
-
-Conflicts:
-
- configure.ac
----
- configure.ac | 24 ++++++++++++++++++++++++
- 1 files changed, 24 insertions(+), 0 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 270bc46..d259471 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -230,6 +230,30 @@ if test "$have_jslocale_to_unicode_const" = yes; then
- AC_DEFINE([JS_LOCALETOUNICODE_NEEDS_CONST_CHAR], [1], [Define if JSLocaleToUnicode takes a const char* for its src])
- fi
-
-+save_CFLAGS="$CFLAGS"
-+CFLAGS="$CFLAGS $JS_CFLAGS"
-+AC_MSG_CHECKING([for JS_CLASS_TRACE macro])
-+AC_COMPILE_IFELSE(
-+ [AC_LANG_PROGRAM(
-+ [[
-+ #include <jsapi.h>
-+ #ifndef JS_CLASS_TRACE
-+ #error "No JS_CLASS_TRACE"
-+ #endif
-+ ]],
-+ [[(void) 0;]]
-+ )],
-+ [have_js_class_trace=yes],
-+ [have_js_class_trace=no])
-+
-+if test "x$have_js_class_trace" = xyes; then
-+ AC_MSG_RESULT([yes])
-+ AC_DEFINE([HAVE_JS_CLASS_TRACE], [1], [Define if we still have JS_CLASS_TRACE])
-+else
-+ AC_MSG_RESULT([no])
-+fi
-+CFLAGS="$save_CFLAGS"
-+
- common_packages="gobject-2.0 >= gobject_required_version $JS_PACKAGE"
- gjs_packages="gmodule-2.0 gthread-2.0 $common_packages"
- gjs_gi_packages="gobject-introspection-1.0 >= 0.10.1 $common_packages"
---
-1.7.5.4
-
-
-From 5553cdd691ffddae3e3ffa5cc75e6575a237d0b7 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Wed, 4 May 2011 14:14:18 -0400
-Subject: [PATCH 4/4] Support compilation with standalone mozjs185 release
-
-Adjust the detection logic so that we look for mozjs-185.pc first. If
-we have this, we can skip all kinds of insanity.
-
-See https://bugzilla.mozilla.org/show_bug.cgi?id=628723
-for the discussion about creating this release.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=646369
-
-Conflicts:
-
- configure.ac
----
- configure.ac | 218 ++++++++++++++++++++++++++++++++--------------------------
- 1 files changed, 121 insertions(+), 97 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d259471..cb54ffc 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -91,124 +91,148 @@ m4_define(gobject_required_version, 2.18.0)
- AC_CHECK_HEADERS([malloc.h])
- AC_CHECK_FUNCS(mallinfo)
-
--# Look for Spidermonkey. If js-config exists, use that;
--# otherwise we try some pkgconfig files from various distributions.
-+# First, try separate mozjs185 release
-+AC_MSG_CHECKING([for standalone mozjs])
-+PKG_CHECK_EXISTS([mozjs185], JS_PACKAGE=mozjs185,)
-+if test x$JS_PACKAGE != x; then
-+ FIREFOX_JS_LIBDIR=`$PKG_CONFIG --variable=libdir $JS_PACKAGE`
-+ MOZJS_IS_STANDALONE=yes
-+ MOZJS_LIB=mozjs185
-+ AC_MSG_RESULT([yes])
-+ PKG_CHECK_MODULES(JS, $JS_PACKAGE)
-+else
-+ AC_MSG_RESULT([no])
-+ MOZJS_LIB=mozjs
-+fi
-+
-+# If we didn't find mozjs185 (the standalone spidermonkey); look for
-+# one from Firefox/XULRunner. If js-config exists, use that; otherwise
-+# we try some pkgconfig files from various distributions.
-
- AC_ARG_VAR([JS_CONFIG], [The js-config program to use])
--if test "$ac_cv_env_JS_CONFIG_set" != "set"; then
-+if test x$JS_PACKAGE = x && test "$ac_cv_env_JS_CONFIG_set" != "set"; then
- AC_PATH_PROG([JS_CONFIG], [js-config], [])
- fi
-
--if test -n "$JS_CONFIG"; then
-- JS_CFLAGS="$($JS_CONFIG --cflags)"
-- JS_LIBS="$($JS_CONFIG --libs)"
-- FIREFOX_JS_LIBDIR="$($JS_CONFIG --libdir)"
-- JS_PACKAGE=
--
-- # js-config gives almost usable CFLAGS, we must define one of XP_BEOS,
-- # XP_OS2, XP_WIN or XP_UNIX
-- JS_CFLAGS="$JS_CFLAGS -DXP_UNIX"
--else
-- ## spidermonkey .pc file name varies across distributions and Gecko version
-- ##
-- ## mozilla-js: Gecko 1.9, all distributions
-- ## xulrunner-js: Gecko 1.8 (and earlier?) Debian/Ubuntu
-- ## firefox-js: ???
-- ##
-- ## Checking for mozilla-js first will hopefully get us the newest version
-- ## of spidermonkey.
-- PKG_CHECK_EXISTS([mozilla-js], [JS_PACKAGE=mozilla-js],
-- [PKG_CHECK_EXISTS([xulrunner-js], [JS_PACKAGE=xulrunner-js], [JS_PACKAGE=firefox-js])])
--
-- PKG_CHECK_MODULES(JS, $JS_PACKAGE)
--
-- ## some flavors of Firefox .pc only set sdkdir, not libdir
-- FIREFOX_JS_SDKDIR=`$PKG_CONFIG --variable=sdkdir $JS_PACKAGE`
-- FIREFOX_JS_LIBDIR=`$PKG_CONFIG --variable=libdir $JS_PACKAGE`
-+if test x$JS_PACKAGE = x; then
-+ if test -n "$JS_CONFIG"; then
-+ JS_CFLAGS="$($JS_CONFIG --cflags)"
-+ JS_LIBS="$($JS_CONFIG --libs)"
-+ FIREFOX_JS_LIBDIR="$($JS_CONFIG --libdir)"
-+ JS_PACKAGE=
-+
-+ # js-config gives almost usable CFLAGS, we must define one of XP_BEOS,
-+ # XP_OS2, XP_WIN or XP_UNIX
-+ JS_CFLAGS="$JS_CFLAGS -DXP_UNIX"
-+ else
-+ ## spidermonkey .pc file name varies across distributions and Gecko version
-+ ##
-+ ## mozilla-js: Gecko 1.9, all distributions
-+ ## xulrunner-js: Gecko 1.8 (and earlier?) Debian/Ubuntu
-+ ## firefox-js: ???
-+ ##
-+ ## Checking for mozilla-js first will hopefully get us the newest version
-+ ## of spidermonkey.
-+ if test x$JS_PACKAGE = x; then
-+ PKG_CHECK_EXISTS([mozilla-js], [JS_PACKAGE=mozilla-js],)
-+
-+ fi
-+ if test x$JS_PACKAGE = x; then
-+ PKG_CHECK_EXISTS([xulrunner-js], [JS_PACKAGE=xulrunner-js])
-+ fi
-+ if test x$JS_PACKAGE = x; then
-+ PKG_CHECK_EXISTS([firefox-js], [JS_PACKAGE=firefox-js])
-+ fi
-+ if test x$JS_PACKAGE = x; then
-+ AC_MSG_ERROR([Unable to find spidermonkey package])
-+ fi
-+
-+ PKG_CHECK_MODULES(JS, $JS_PACKAGE)
-+
-+ ## some flavors of Firefox .pc only set sdkdir, not libdir
-+ FIREFOX_JS_SDKDIR=`$PKG_CONFIG --variable=sdkdir $JS_PACKAGE`
-+ FIREFOX_JS_LIBDIR=`$PKG_CONFIG --variable=libdir $JS_PACKAGE`
-+
-+ ## Ubuntu does not set libdir in mozilla-js.pc
-+ if test x"$FIREFOX_JS_LIBDIR" = x ; then
-+ ## Ubuntu returns xulrunner-devel as the sdkdir, but for the
-+ ## libdir we want the runtime location on the target system,
-+ ## so can't use -devel.
-+ ## The library is in the non-devel directory also.
-+ ## Don't ask me why it's in two places.
-+ FIREFOX_JS_LIBDIR=`echo "$FIREFOX_JS_SDKDIR" | sed -e 's/-devel//g'`
-+
-+ if ! test -d "$FIREFOX_JS_LIBDIR" ; then
-+ FIREFOX_JS_LIBDIR=
-+ fi
-+ fi
-+ fi
-
-- ## Ubuntu does not set libdir in mozilla-js.pc
- if test x"$FIREFOX_JS_LIBDIR" = x ; then
-- ## Ubuntu returns xulrunner-devel as the sdkdir, but for the
-- ## libdir we want the runtime location on the target system,
-- ## so can't use -devel.
-- ## The library is in the non-devel directory also.
-- ## Don't ask me why it's in two places.
-- FIREFOX_JS_LIBDIR=`echo "$FIREFOX_JS_SDKDIR" | sed -e 's/-devel//g'`
--
-- if ! test -d "$FIREFOX_JS_LIBDIR" ; then
-- FIREFOX_JS_LIBDIR=
-- fi
-+ AC_MSG_ERROR([Could not figure out where Firefox JavaScript library lives])
- fi
--fi
-
--if test x"$FIREFOX_JS_LIBDIR" = x ; then
-- AC_MSG_ERROR([Could not figure out where Firefox JavaScript library lives])
-+ ## workaround for Ubuntu Hardy bug where mozilla-js.pc gives CFLAGS
-+ ## -I.../stable while jsapi.h is in .../unstable
-+ AC_MSG_CHECKING([if SpiderMonkey needs extra compiler flags])
-+ save_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS $JS_CFLAGS"
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jsapi.h>]])],
-+ [js_extra_cflags_needed=no],
-+ [js_extra_cflags_needed=yes])
-+ CFLAGS="$save_CFLAGS"
-+ AC_MSG_RESULT([$js_extra_cflags_needed])
-+
-+ JS_EXTRA_CFLAGS=
-+ if test "$js_extra_cflags_needed" = yes; then
-+ try_cflags="-I`$PKG_CONFIG --variable=includedir $JS_PACKAGE`/unstable"
-+ AC_MSG_CHECKING([if $try_cflags works])
-+ save_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS $JS_CFLAGS $try_cflags"
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jsapi.h>]])],
-+ [AC_MSG_RESULT([yes])
-+ JS_EXTRA_CFLAGS="$try_cflags"],
-+ [AC_MSG_RESULT([no])])
-+ CFLAGS="$save_CFLAGS"
-+
-+ if test x"$JS_EXTRA_CFLAGS" = x; then
-+ AC_MSG_ERROR([Unable to determine extra compiler flags needed])
-+ fi
-+ fi
-+ AC_SUBST([JS_EXTRA_CFLAGS])
-+
-+ AC_MSG_CHECKING([for mozilla-js >= 1.9.2 ])
-+ if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 1.9.2`; then
-+ AC_MSG_RESULT([yes])
-+ else
-+ AC_MSG_ERROR([$JS_PACKAGE >= 1.9.2 is required])
-+ fi
- fi
-
- AC_SUBST(JS_PACKAGE)
- AC_SUBST(FIREFOX_JS_LIBDIR)
-
--AC_MSG_CHECKING([for mozilla-js >= 1.9.2 ])
--if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 1.9.2`; then
-- AC_MSG_RESULT([yes])
--else
-- AC_MSG_ERROR([$JS_PACKAGE >= 1.9.2 is required])
--fi
--
--AC_CHECK_LIB([mozjs], [JS_GetStringBytes], AC_DEFINE([HAVE_JS_GETSTRINGBYTES], [1], [Define if we still have JS_GetStringBytes]),, [$JS_LIBS])
--AC_CHECK_LIB([mozjs], [JS_GetFunctionName], AC_DEFINE([HAVE_JS_GETFUNCTIONNAME], [1], [Define if we still have JS_GetFunctionName]),, [$JS_LIBS])
--AC_CHECK_LIB([mozjs], [JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [1], [Define if we still have JS_GetStringChars]),, [$JS_LIBS])
--AC_CHECK_LIB([mozjs], [JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),, [$JS_LIBS])
--AC_CHECK_LIB([mozjs], [JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),, [$JS_LIBS])
--AC_CHECK_LIB([mozjs], [JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),, [$JS_LIBS])
--AC_CHECK_LIB([mozjs], [JS_DecodeUTF8], AC_DEFINE([HAVE_JS_DECODEUTF8], [1], [Define if we have JS_DecodeUTF8]),, [$JS_LIBS])
--
--AC_MSG_CHECKING([for mozilla-js >= 2 ])
--if `$PKG_CONFIG --exists $JS_PACKAGE '>=' 2`; then
-- AC_MSG_RESULT([yes])
-- AC_DEFINE(HAVE_MOZJS_2, [1], [Define if mozilla-js is at least 2])
-- AC_CHECK_LIB([mozjs], [JS_FreezeObject], AC_DEFINE([HAVE_JS_FREEZEOBJECT], [1], [Define if we have JS_FreezeObject]),
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_GetStringBytes], AC_DEFINE([HAVE_JS_GETSTRINGBYTES], [1], [Define if we still have JS_GetStringBytes]),, [$JS_LIBS])
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_GetFunctionName], AC_DEFINE([HAVE_JS_GETFUNCTIONNAME], [1], [Define if we still have JS_GetFunctionName]),, [$JS_LIBS])
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_GetStringChars], AC_DEFINE([HAVE_JS_GETSTRINGCHARS], [1], [Define if we still have JS_GetStringChars]),, [$JS_LIBS])
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_StrictPropertyStub], AC_DEFINE([HAVE_JS_STRICTPROPERTYSTUB], [1], [Define if we have JS_StrictPropertyStub]),, [$JS_LIBS])
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_GetGlobalForScopeChain], AC_DEFINE([HAVE_JS_GETGLOBALFORSCOPECHAIN], [1], [Define if we have JS_GetGlobalForScopeChain]),, [$JS_LIBS])
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_CLASS_TRACE], AC_DEFINE([HAVE_JS_CLASS_TRACE], [1], [Define if we still have JS_CLASS_TRACE]),, [$JS_LIBS])
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_DestroyScript], AC_DEFINE([HAVE_JS_DESTROYSCRIPT], [1], [Define if we still have JS_DestroyScript]),, [$JS_LIBS])
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_DecodeUTF8], AC_DEFINE([HAVE_JS_DECODEUTF8], [1], [Define if we have JS_DecodeUTF8]),, [$JS_LIBS])
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_FreezeObject], AC_DEFINE([HAVE_JS_FREEZEOBJECT], [1], [Define if we have JS_FreezeObject]),
- , [$JS_LIBS])
-- AC_CHECK_LIB([mozjs], [JS_IsScriptFrame], AC_DEFINE([HAVE_JS_ISSCRIPTFRAME], [1], [Define if we have JS_IsScriptFrame]),
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_IsScriptFrame], AC_DEFINE([HAVE_JS_ISSCRIPTFRAME], [1], [Define if we have JS_IsScriptFrame]),
- , [$JS_LIBS])
-- AC_CHECK_LIB([mozjs], [JS_EndPC], AC_DEFINE([HAVE_JS_ENDPC], [1], [Define if we have JS_EndPC]),
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_EndPC], AC_DEFINE([HAVE_JS_ENDPC], [1], [Define if we have JS_EndPC]),
- , [$JS_LIBS])
-- AC_CHECK_LIB([mozjs], [JS_NewCompartmentAndGlobalObject],
-+AC_CHECK_LIB([$MOZJS_LIB], [JS_NewCompartmentAndGlobalObject],
- AC_DEFINE([HAVE_JS_NEWCOMPARTMENTANDGLOBALOBJECT], [1], [Define if we have JS_NewCompartmentAndGlobalObject]),
- , [$JS_LIBS])
-
--else
-- AC_MSG_RESULT([no])
--fi
--
--## workaround for Ubuntu Hardy bug where mozilla-js.pc gives CFLAGS
--## -I.../stable while jsapi.h is in .../unstable
--AC_MSG_CHECKING([if SpiderMonkey needs extra compiler flags])
--save_CFLAGS="$CFLAGS"
--CFLAGS="$CFLAGS $JS_CFLAGS"
--AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jsapi.h>]])],
-- [js_extra_cflags_needed=no],
-- [js_extra_cflags_needed=yes])
--CFLAGS="$save_CFLAGS"
--AC_MSG_RESULT([$js_extra_cflags_needed])
--
--JS_EXTRA_CFLAGS=
--if test "$js_extra_cflags_needed" = yes; then
-- try_cflags="-I`$PKG_CONFIG --variable=includedir $JS_PACKAGE`/unstable"
-- AC_MSG_CHECKING([if $try_cflags works])
-- save_CFLAGS="$CFLAGS"
-- CFLAGS="$CFLAGS $JS_CFLAGS $try_cflags"
-- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jsapi.h>]])],
-- [AC_MSG_RESULT([yes])
-- JS_EXTRA_CFLAGS="$try_cflags"],
-- [AC_MSG_RESULT([no])])
-- CFLAGS="$save_CFLAGS"
--
-- if test x"$JS_EXTRA_CFLAGS" = x; then
-- AC_MSG_ERROR([Unable to determine extra compiler flags needed])
-- fi
-+if test x$MOZJS_IS_STANDALONE = xyes || `$PKG_CONFIG --exists $JS_PACKAGE '>=' 2`; then
-+ AC_DEFINE(HAVE_MOZJS_2, [1], [Define if mozilla-js is at least 2])
- fi
--AC_SUBST([JS_EXTRA_CFLAGS])
-
- AC_MSG_CHECKING([whether JSLocaleToUnicode takes a const char*])
- save_CFLAGS="$CFLAGS"
---
-1.7.5.4
-
diff --git a/testing/gnome-shell/PKGBUILD b/testing/gnome-shell/PKGBUILD
deleted file mode 100644
index b10afff70..000000000
--- a/testing/gnome-shell/PKGBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# $Id: PKGBUILD 130217 2011-07-04 12:56:15Z ibiru $
-# Maintainer: Ionut Biru <ibiru@archlinux.org>
-# Contributor: Flamelab <panosfilip@gmail.com
-
-pkgname=gnome-shell
-pkgver=3.0.2
-pkgrel=2
-pkgdesc="The next generation GNOME Shell"
-arch=('i686' 'x86_64')
-url="http://live.gnome.org/GnomeShell"
-license=('GPL2')
-depends=('mutter' 'gconf' 'dconf' 'gjs' 'gnome-menus' 'gnome-desktop' 'libcroco' 'libcanberra' 'libpulse' 'telepathy-glib' 'polkit-gnome'
- 'gobject-introspection' 'evolution-data-server' 'gnome-bluetooth' 'gstreamer0.10' 'telepathy-logger')
-makedepends=('intltool' 'gnome-doc-utils')
-optdepends=('network-manager-applet: shell integration for networkmanager'
- 'gnome-power-manager: shell integration for power management')
-options=('!libtool' '!emptydirs')
-install=gnome-shell.install
-groups=(gnome)
-source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2
- arch.patch
- bluetoothstatus-always-update-devices.patch
- shell-recorder-missing-XFree.patch)
-sha256sums=('a44963877da895d9b9f1ea98617067c5e88a5c4b414c6ccf0fcbfacdeac7db95'
- 'a35d5e5f9f781728070aecae3bfe329f49dadcd50ca2984e0fbdd2219825a0db'
- 'f592752875085fceebdb27e65802e09c07edd7be57eec0da3edfcad5052be2ae'
- '070edd5e720c063be41c158f39b7ef62a0d4a7f547ca0d23216104d5428ff971')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- patch -Np1 -i "${srcdir}/arch.patch"
- patch -Np1 -i "${srcdir}/bluetoothstatus-always-update-devices.patch"
- patch -Np1 -i "${srcdir}/shell-recorder-missing-XFree.patch"
-
- ./configure --prefix=/usr --sysconfdir=/etc \
- --libexecdir=/usr/lib/gnome-shell \
- --localstatedir=/var --disable-static \
- --disable-schemas-compile
- make
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
-
- install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
- gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-shell ${pkgdir}/etc/gconf/schemas/*.schemas
- rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
-}
diff --git a/testing/gnome-shell/arch.patch b/testing/gnome-shell/arch.patch
deleted file mode 100644
index 67baefdcb..000000000
--- a/testing/gnome-shell/arch.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur gnome-shell.orig/data/org.gnome.shell.gschema.xml.in gnome-shell/data/org.gnome.shell.gschema.xml.in
---- gnome-shell.orig/data/org.gnome.shell.gschema.xml.in 2011-04-06 08:47:58.638600793 -0700
-+++ gnome-shell/data/org.gnome.shell.gschema.xml.in 2011-04-06 08:49:17.035274675 -0700
-@@ -30,7 +30,7 @@
- </_description>
- </key>
- <key name="favorite-apps" type="as">
-- <default>[ 'mozilla-firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'openoffice.org-writer.desktop', 'nautilus.desktop' ]</default>
-+ <default>[ 'firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'writer.desktop', 'nautilus.desktop' ]</default>
- <_summary>List of desktop file IDs for favorite applications</_summary>
- <_description>
- The applications corresponding to these identifiers
diff --git a/testing/gnome-shell/bluetoothstatus-always-update-devices.patch b/testing/gnome-shell/bluetoothstatus-always-update-devices.patch
deleted file mode 100644
index 0272169f5..000000000
--- a/testing/gnome-shell/bluetoothstatus-always-update-devices.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 76fce94b66be7bdebbedcc3bce62898da51da15a Mon Sep 17 00:00:00 2001
-From: Giovanni Campagna <gcampagna@src.gnome.org>
-Date: Wed, 13 Apr 2011 17:08:45 +0000
-Subject: BluetoothStatus: always update devices
-
-Previously, we skipped rebuilding device items in case the device
-had already been seen, but this caused the connected switch not to
-be updated. Now it has been refactored to update in case the device
-changes, and to create only when the device is completely new.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=647565
----
-diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js
-index 070016a..cee2f90 100644
---- a/js/ui/status/bluetooth.js
-+++ b/js/ui/status/bluetooth.js
-@@ -127,13 +127,6 @@ Indicator.prototype = {
- }
- },
-
-- _deviceCompare: function(d1, d2) {
-- return d1.device_path == d2.device_path &&
-- d1.bdaddr == d2.bdaddr &&
-- d1.can_connect == d2.can_connect &&
-- d1.capabilities == d2.capabilities;
-- },
--
- _updateDevices: function() {
- let devices = this._applet.get_devices();
-
-@@ -142,12 +135,8 @@ Indicator.prototype = {
- let item = this._deviceItems[i];
- let destroy = true;
- for (let j = 0; j < devices.length; j++) {
-- // we need to deep compare because BluetoothSimpleDevice is a boxed type
-- // (but we take advantage of that, because _skip will disappear the next
-- // time get_devices() is called)
-- if (this._deviceCompare(item._device, devices[j])) {
-- item.label.text = devices[j].alias;
-- devices[j]._skip = true;
-+ if (item._device.device_path == devices[j].device_path) {
-+ this._updateDeviceItem(item, devices[j]);
- destroy = false;
- break;
- }
-@@ -162,7 +151,7 @@ Indicator.prototype = {
- this._hasDevices = newlist.length > 0;
- for (let i = 0; i < devices.length; i++) {
- let d = devices[i];
-- if (d._skip)
-+ if (d._item)
- continue;
- let item = this._createDeviceItem(d);
- if (item) {
-@@ -177,17 +166,55 @@ Indicator.prototype = {
- this._deviceSep.actor.hide();
- },
-
-+ _updateDeviceItem: function(item, device) {
-+ if (!device.can_connect && device.capabilities == GnomeBluetoothApplet.Capabilities.NONE) {
-+ item.destroy();
-+ return;
-+ }
-+
-+ let prevDevice = item._device;
-+ let prevCapabilities = prevDevice.capabilities;
-+ let prevCanConnect = prevDevice.can_connect;
-+
-+ // adopt the new device object
-+ item._device = device;
-+ device._item = item;
-+
-+ // update properties
-+ item.label.text = device.alias;
-+
-+ if (prevCapabilities != device.capabilities ||
-+ prevCanConnect != device.can_connect) {
-+ // need to rebuild the submenu
-+ item.menu.removeAll();
-+ this._buildDeviceSubMenu(item, device);
-+ }
-+
-+ // update connected property
-+ if (device.can_connect)
-+ item._connectedMenuitem.setToggleState(device.connected);
-+ },
-+
- _createDeviceItem: function(device) {
- if (!device.can_connect && device.capabilities == GnomeBluetoothApplet.Capabilities.NONE)
- return null;
- let item = new PopupMenu.PopupSubMenuMenuItem(device.alias);
-+
-+ // adopt the device object, and add a back link
- item._device = device;
-+ device._item = item;
-
-+ this._buildDeviceSubMenu(item, device);
-+
-+ return item;
-+ },
-+
-+ _buildDeviceSubMenu: function(item, device) {
- if (device.can_connect) {
- item._connected = device.connected;
-- let menuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected);
-+ item._connectedMenuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected);
-
-- menuitem.connect('toggled', Lang.bind(this, function() {
-+ item._connectedMenuitem.connect('toggled', Lang.bind(this, function() {
- if (item._connected > ConnectionState.CONNECTED) {
- // operation already in progress, revert
- menuitem.setToggleState(menuitem.state);
-@@ -217,7 +244,7 @@ Indicator.prototype = {
- }
- }));
-
-- item.menu.addMenuItem(menuitem);
-+ item.menu.addMenuItem(item._connectedMenuitem);
- }
-
- if (device.capabilities & GnomeBluetoothApplet.Capabilities.OBEX_PUSH) {
-@@ -263,8 +290,6 @@ Indicator.prototype = {
- default:
- break;
- }
--
-- return item;
- },
-
- _updateFullMenu: function() {
---
-cgit v0.9
diff --git a/testing/gnome-shell/gnome-shell.install b/testing/gnome-shell/gnome-shell.install
deleted file mode 100644
index a07105c24..000000000
--- a/testing/gnome-shell/gnome-shell.install
+++ /dev/null
@@ -1,22 +0,0 @@
-pkgname=gnome-shell
-
-post_install() {
- glib-compile-schemas usr/share/glib-2.0/schemas
- usr/sbin/gconfpkg --install ${pkgname}
-}
-
-pre_upgrade() {
- pre_remove $1
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- usr/sbin/gconfpkg --uninstall ${pkgname}
-}
-
-post_remove() {
- glib-compile-schemas usr/share/glib-2.0/schemas
-}
diff --git a/testing/gnome-shell/shell-recorder-missing-XFree.patch b/testing/gnome-shell/shell-recorder-missing-XFree.patch
deleted file mode 100644
index a7329166f..000000000
--- a/testing/gnome-shell/shell-recorder-missing-XFree.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 88df18345069c295e68d319606a11b7727b2bd4b Mon Sep 17 00:00:00 2001
-From: Maxim Ermilov <zaspire@rambler.ru>
-Date: Tue, 24 May 2011 22:46:47 +0000
-Subject: shell-recorder: missing XFree
-
-https://bugzilla.gnome.org/show_bug.cgi?id=650934
----
-diff --git a/src/shell-recorder.c b/src/shell-recorder.c
-index 6555187..d297923 100644
---- a/src/shell-recorder.c
-+++ b/src/shell-recorder.c
-@@ -412,6 +412,8 @@ recorder_fetch_cursor_image (ShellRecorder *recorder)
- *(guint32 *)(data + i * stride + 4 * j) = cursor_image->pixels[i * cursor_image->width + j];
-
- cairo_surface_mark_dirty (recorder->cursor_image);
-+
-+ XFree (cursor_image);
- }
-
- /* Overlay the cursor image on the frame. We draw the cursor image
---
-cgit v0.9
diff --git a/testing/js/PKGBUILD b/testing/js/PKGBUILD
deleted file mode 100644
index 97b384792..000000000
--- a/testing/js/PKGBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# $Id: PKGBUILD 130213 2011-07-04 12:50:49Z ibiru $
-# Maintainer: Ionut Biru <ibiru@archlinux.org>
-pkgname=js
-pkgver=1.8.5
-pkgrel=1
-pkgdesc="JavaScript interpreter and libraries"
-arch=(i686 x86_64)
-url="https://developer.mozilla.org/En/SpiderMonkey/1.8.5"
-license=('GPL2')
-depends=('nspr' 'gcc-libs')
-makedepends=('python2' 'zip')
-replaces=('spidermonkey')
-conflicts=('spidermonkey')
-source=(http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
- js185-destdir.patch)
-md5sums=('a4574365938222adca0a6bd33329cb32'
- '364834a8391888642c53d78c3a949d94')
-build() {
- cd "$srcdir/$pkgname-$pkgver/js/src"
- patch -Np0 -i $srcdir/js185-destdir.patch
- ./configure --prefix=/usr --with-system-nspr \
- --enable-threadsafe
-
- make
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver/js/src"
- make DESTDIR="$pkgdir" install
-
- install -m 0755 shell/js ${pkgdir}/usr/bin
-
- #cleanup
- rm -f "${pkgdir}/usr/lib/libmozjs185-1.0.a"
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/testing/js/js185-destdir.patch b/testing/js/js185-destdir.patch
deleted file mode 100644
index 87b7b53b3..000000000
--- a/testing/js/js185-destdir.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-#https://bugzilla.mozilla.org/show_bug.cgi?id=628723
-
---- Makefile.in.old 2011-04-10 04:21:19.918608008 -0700
-+++ Makefile.in 2011-04-10 04:21:58.088607992 -0700
-@@ -888,8 +888,8 @@
- ifeq (,$(HOST_BIN_SUFFIX))
- mv -f $(SHLIB_ANY_VER) $(SHLIB_EXACT_VER)
- @[ ! -h $(SHLIB_ABI_VER) ] || rm -f $(SHLIB_ABI_VER)
-- ln -s $(SHLIB_EXACT_VER) $(SHLIB_ABI_VER)
-- ln -s $(SHLIB_ABI_VER) $(SHLIB_ANY_VER)
-+ ln -s $(notdir $(SHLIB_EXACT_VER)) $(SHLIB_ABI_VER)
-+ ln -s $(notdir $(SHLIB_ABI_VER)) $(SHLIB_ANY_VER)
- endif
- endif
- ifneq (,$(IMPORT_LIBRARY))
diff --git a/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff b/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff
deleted file mode 100644
index e75499e8e..000000000
--- a/testing/lvm2/Be-quiet-on-removing-cache-on-read-only-fs.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Do not issue an error message when unable to remove .cache on read-only fs.
-===================================================================
-RCS file: /cvs/lvm2/LVM2/lib/filters/filter-persistent.c,v
-retrieving revision 1.49
-retrieving revision 1.50
-diff -u -r1.49 -r1.50
---- LVM2/lib/filters/filter-persistent.c 2011/04/22 12:05:33 1.49
-+++ LVM2/lib/filters/filter-persistent.c 2011/05/12 12:42:48 1.50
-@@ -108,7 +108,7 @@
- log_very_verbose("Obtaining device list from "
- "udev. Removing obolete %s.",
- pf->file);
-- if (unlink(pf->file) < 0)
-+ if (unlink(pf->file) < 0 && errno != EROFS)
- log_sys_error("unlink", pf->file);
- }
- return 1;
diff --git a/testing/mdadm/PKGBUILD b/testing/mdadm/PKGBUILD
deleted file mode 100644
index 0f9d96fc8..000000000
--- a/testing/mdadm/PKGBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# $Id: PKGBUILD 129978 2011-06-30 18:05:23Z thomas $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Contributor: Judd Vinet <jvinet@zeroflux.org>
-pkgname=mdadm
-pkgver=3.2.2
-pkgrel=2
-pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID"
-arch=(i686 x86_64)
-license=('GPL')
-url="http://www.cse.unsw.edu.au/~neilb/source/mdadm/"
-groups=('base')
-conflicts=('mkinitcpio<0.7')
-depends=('glibc')
-backup=('etc/mdadm.conf')
-source=(ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/mdadm-$pkgver.tar.bz2
- mdadm
- mdadm.conf
- mdadm_install
- mdadm_hook
- disable-werror.patch)
-install=mdadm.install
-replaces=('raidtools')
-md5sums=('12ee2fbf3beddb60601fb7a4c4905651'
- '6df172c8f77b280018cf87eb3d313f29'
- '00cbed931db4f15b6ce49e3e7d433966'
- '4bb000166fb13e82ceaa2422fdfaac7e'
- '36f7cc564ed3267888d90208e0eb7adc'
- '4ad87b74a4bc9a34621280abe0e0c3e4')
-
-build() {
- cd $srcdir/$pkgname-$pkgver
- patch -Np0 -i ../disable-werror.patch
- make CXFLAGS="$CFLAGS"
-}
-
-package() {
- cd $srcdir/$pkgname-$pkgver
- make INSTALL=/bin/install DESTDIR=$pkgdir install
- install -D -m644 ../mdadm.conf $pkgdir/etc/mdadm.conf
- install -D -m755 ../mdadm $pkgdir/etc/rc.d/mdadm
- install -D -m644 ../mdadm_install $pkgdir/lib/initcpio/install/mdadm
- install -D -m644 ../mdadm_hook $pkgdir/lib/initcpio/hooks/mdadm
- # symlink for backward compatibility
- ln -sf /lib/initcpio/hooks/mdadm $pkgdir/lib/initcpio/hooks/raid
-}
diff --git a/testing/mdadm/disable-werror.patch b/testing/mdadm/disable-werror.patch
deleted file mode 100644
index 50a33f19d..000000000
--- a/testing/mdadm/disable-werror.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- Makefile.old 2011-06-17 09:38:03.269238332 +0200
-+++ Makefile 2011-06-17 09:38:14.122398837 +0200
-@@ -42,7 +42,7 @@
-
- CC = $(CROSS_COMPILE)gcc
- CXFLAGS = -ggdb
--CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter
-+CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter
- ifdef WARN_UNUSED
- CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O
- endif
diff --git a/testing/mdadm/mdadm b/testing/mdadm/mdadm
deleted file mode 100755
index e196f3642..000000000
--- a/testing/mdadm/mdadm
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /sbin/mdadm`
-case "$1" in
- start)
- stat_busy "Starting mdadm RAID Monitor"
- if [ -z "$PID" ]; then
- /sbin/mdadm --monitor --scan -i /var/run/mdadm.pid -f
- fi
- if [ ! -z "$PID" -o $? -gt 0 ]; then
- stat_fail
- else
- add_daemon mdadm
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping mdadm RAID Monitor"
- [ ! -z "$PID" ] && kill $PID &>/dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon mdadm
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
-esac
diff --git a/testing/mdadm/mdadm.conf b/testing/mdadm/mdadm.conf
deleted file mode 100644
index 57bd4c683..000000000
--- a/testing/mdadm/mdadm.conf
+++ /dev/null
@@ -1,67 +0,0 @@
-# mdadm configuration file
-#
-# mdadm will function properly without the use of a configuration file,
-# but this file is useful for keeping track of arrays and member disks.
-# In general, a mdadm.conf file is created, and updated, after arrays
-# are created. This is the opposite behavior of /etc/raidtab which is
-# created prior to array construction.
-#
-#
-# the config file takes two types of lines:
-#
-# DEVICE lines specify a list of devices of where to look for
-# potential member disks
-#
-# ARRAY lines specify information about how to identify arrays so
-# so that they can be activated
-#
-
-
-# You can have more than one device line and use wild cards. The first
-# example includes SCSI the first partition of SCSI disks /dev/sdb,
-# /dev/sdc, /dev/sdd, /dev/sdj, /dev/sdk, and /dev/sdl. The second
-# line looks for array slices on IDE disks.
-#
-#DEVICE /dev/sd[bcdjkl]1
-#DEVICE /dev/hda1 /dev/hdb1
-#
-# The designation "partitions" will scan all partitions found in
-# /proc/partitions
-DEVICE partitions
-
-
-# ARRAY lines specify an array to assemble and a method of identification.
-# Arrays can currently be identified by using a UUID, superblock minor number,
-# or a listing of devices.
-#
-# super-minor is usually the minor number of the metadevice
-# UUID is the Universally Unique Identifier for the array
-# Each can be obtained using
-#
-# mdadm -D <md>
-#
-# To capture the UUIDs for all your RAID arrays to this file, run these:
-# to get a list of running arrays:
-# # mdadm -D --scan >>/etc/mdadm.conf
-# to get a list from superblocks:
-# # mdadm -E --scan >>/etc/mdadm.conf
-#
-#ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371
-#ARRAY /dev/md1 super-minor=1
-#ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1
-#
-# ARRAY lines can also specify a "spare-group" for each array. mdadm --monitor
-# will then move a spare between arrays in a spare-group if one array has a
-# failed drive but no spare
-#ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df spare-group=group1
-#ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977 spare-group=group1
-#
-
-
-# When used in --follow (aka --monitor) mode, mdadm needs a
-# mail address and/or a program. To start mdadm's monitor mode, add
-# "mdadm" to your DAEMONS array in /etc/rc.conf
-#
-# If the lines are not found, mdadm will exit quietly
-#MAILADDR root@mydomain.tld
-#PROGRAM /usr/sbin/handle-mdadm-events
diff --git a/testing/mdadm/mdadm.install b/testing/mdadm/mdadm.install
deleted file mode 100644
index e8404c260..000000000
--- a/testing/mdadm/mdadm.install
+++ /dev/null
@@ -1,10 +0,0 @@
-# arg 1: the new package version
-# arg 2: the old package version
-
-post_upgrade() {
- if [ "$(vercmp $2 2.6.8-2)" -lt 0 -a "$(grep raid_partitions /etc/mkinitcpio.conf)" ]; then
- echo "Attention mdadm update:"
- echo "raid_partitions hook has been replaced by the more powerfull mdadm hook."
- echo "Please update your /etc/mkinitcpio.conf accordingly."
- fi
-}
diff --git a/testing/mdadm/mdadm_hook b/testing/mdadm/mdadm_hook
deleted file mode 100755
index 1d217a5a8..000000000
--- a/testing/mdadm/mdadm_hook
+++ /dev/null
@@ -1,42 +0,0 @@
-# vim: set ft=sh:
-run_hook ()
-{
- input="$(cat /proc/cmdline)"
- mdconfig="/etc/mdadm.conf"
- # for partitionable raid, we need to load md_mod first!
- modprobe md_mod 2>/dev/null
- # If md is specified on commandline, create config file from those parameters.
- if [ "$(echo $input | grep "md=")" ]; then
- #Create initial mdadm.conf
- # scan all devices in /proc/partitions
- echo DEVICE partitions > $mdconfig
- for i in $input; do
- case $i in
- # raid
- md=[0-9]*,/*)
- device="$(echo "$i" | sed -e 's|,/.*||g' -e 's|=||g')"
- array="$(echo $i | cut -d, -f2-)"
- echo "ARRAY /dev/$device devices=$array" >> $mdconfig
- ;;
- # partitionable raid
- md=d[0-9]*,/*)
- device="$(echo "$i" | sed -e 's|,/.*||g' -e 's|=|_|g')"
- array="$(echo $i | cut -d, -f2-)"
- echo "ARRAY /dev/$device devices=$array" >> $mdconfig
- ;;
- # raid UUID
- md=[0-9]*,[0-9,a-z]*)
- device="$(echo "$i" | sed -e 's|,.*||g' -e 's|=||g')"
- array="$(echo $i | cut -d, -f2-)"
- echo "ARRAY /dev/$device UUID=$array" >> $mdconfig
- ;;
- # partitionable raid UUID
- md=d[0-9]*,[0-9,a-z]*)
- device="$(echo "$i" | sed -e 's|,.*||g' -e 's|=|_|g')"
- array="$(echo $i | cut -d, -f2-)"
- echo "ARRAY /dev/$device UUID=$array" >> $mdconfig
- ;;
- esac
- done
- fi
-}
diff --git a/testing/mdadm/mdadm_install b/testing/mdadm/mdadm_install
deleted file mode 100644
index f351cb292..000000000
--- a/testing/mdadm/mdadm_install
+++ /dev/null
@@ -1,46 +0,0 @@
-# vim: set ft=sh:
-
-build()
-{
- MODULES=" $(checked_modules "drivers/md/*" | grep -v "dm-") "
- BINARIES=""
- FILES=""
- SCRIPT="mdadm"
- # check if a custom mdadm.conf exists
- if grep -q ^ARRAY /etc/mdadm.conf; then
- echo "Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays."
- add_file "/etc/mdadm.conf"
- fi
- add_binary "/sbin/mdadm"
- add_file "/lib/udev/rules.d/64-md-raid.rules"
-}
-
-help ()
-{
-cat<<HELPEOF
- This hook loads the necessary modules for any raid root device,
- and assembles the raid device when run.
-
- If arrays are defined in /etc/mdadm.conf, the file will be used instead
- of command line assembling.
-
- Command Line Setup:
- - for raid arrays with persistent superblocks:
- md=<md device no.>,dev0,dev1,...,devn
- md=<md device no.>,uuid
- - for partitionable raid arrays with persistent superblocks:
- md=d<md device no.>,dev0,dev1,...,devn
- md=d<md device no.>,uuid
-
- Parameters:
- - <md device no.> = the number of the md device:
- 0 means md0, 1 means md1, ...
- - <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1
- or 0900878d:f95f6057:c39a36e9:55efa60a
- Examples:
- - md=d0,/dev/sda3,/dev/sda4 md=d1,/dev/hda1,/dev/hdb1
- This will setup 2 md partitionable arrays.
- - md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1
- This will setup 2 md arrays with persistent superblocks.
-HELPEOF
-}
diff --git a/testing/pixman/PKGBUILD b/testing/pixman/PKGBUILD
deleted file mode 100644
index f02a11779..000000000
--- a/testing/pixman/PKGBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id: PKGBUILD 130771 2011-07-07 22:43:35Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Contributor: Alexander Baldeck <alexander@archlinux.org>
-
-pkgname=pixman
-pkgver=0.22.2
-pkgrel=1
-pkgdesc="Pixman library"
-arch=(i686 x86_64)
-url="http://xorg.freedesktop.org"
-license=('custom')
-depends=('glibc')
-options=('!libtool')
-source=(http://xorg.freedesktop.org/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('ad2b828ce4280472f5933d8bb5f0f4d583aed7f3')
-
-build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --disable-static
- make
-}
-
-check() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make check
-}
-
-package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
- install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
- install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-}
diff --git a/testing/poppler/PKGBUILD b/testing/poppler/PKGBUILD
deleted file mode 100644
index 758a6b582..000000000
--- a/testing/poppler/PKGBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# $Id: PKGBUILD 130693 2011-07-07 17:38:24Z andyrtr $
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-
-pkgbase=poppler
-pkgname=('poppler' 'poppler-glib' 'poppler-qt')
-pkgver=0.16.7
-pkgrel=1
-arch=(i686 x86_64)
-license=('GPL')
-makedepends=('libjpeg' 'gcc-libs' 'cairo' 'libxml2' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection')
-options=('!libtool')
-url="http://poppler.freedesktop.org/"
-source=(http://poppler.freedesktop.org/${pkgbase}-${pkgver}.tar.gz)
-md5sums=('3afa28e3c8c4f06b0fbca3c91e06394e')
-
-build() {
- cd "${srcdir}/${pkgbase}-${pkgver}"
- sed -i -e '/AC_PATH_XTRA/d' configure.ac
- autoreconf
- ./configure --prefix=/usr --sysconfdir=/etc \
- --localstatedir=/var --disable-static \
- --enable-cairo-output \
- --enable-xpdf-headers \
- --enable-libjpeg --enable-zlib \
- --enable-poppler-qt4 \
- --enable-poppler-glib
- make
-}
-
-package_poppler() {
- pkgdesc="PDF rendering library based on xpdf 3.0"
- depends=('libjpeg' 'gcc-libs' 'cairo' 'libxml2' 'fontconfig' 'openjpeg' 'lcms' 'poppler-data')
- conflicts=("poppler-qt3<${pkgver}")
-
- cd "${srcdir}/${pkgbase}-${pkgver}"
- sed -e 's/^glib_subdir =.*/glib_subdir =/' \
- -e 's/^qt4_subdir =.*/qt4_subdir =/' -i Makefile
- make DESTDIR="${pkgdir}" install
-
- rm -f "${pkgdir}"/usr/lib/pkgconfig/poppler-{glib,qt4}.pc
-}
-
-package_poppler-glib() {
- pkgdesc="Poppler glib bindings"
- depends=("poppler=${pkgver}" 'gtk2')
-
- cd "${srcdir}/${pkgbase}-${pkgver}/poppler"
- make DESTDIR="${pkgdir}" install-libLTLIBRARIES
- cd "${srcdir}/${pkgbase}-${pkgver}/glib"
- make DESTDIR="${pkgdir}" install
- install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
- install -m644 ../poppler-glib.pc "${pkgdir}/usr/lib/pkgconfig/"
- rm -f "${pkgdir}"/usr/lib/libpoppler.*
-}
-
-package_poppler-qt() {
- pkgdesc="Poppler Qt bindings"
- depends=("poppler=${pkgver}" 'qt')
-
- cd "${srcdir}/${pkgbase}-${pkgver}/poppler"
- make DESTDIR="${pkgdir}" install-libLTLIBRARIES
- cd "${srcdir}/${pkgbase}-${pkgver}/qt4"
- make DESTDIR="${pkgdir}" install
- install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
- install -m644 ../poppler-qt4.pc "${pkgdir}/usr/lib/pkgconfig/"
- rm -f "${pkgdir}"/usr/lib/libpoppler.*
-}
diff --git a/testing/v86d/PKGBUILD b/testing/v86d/PKGBUILD
deleted file mode 100644
index 5e3bb7af1..000000000
--- a/testing/v86d/PKGBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id: PKGBUILD 129979 2011-06-30 18:07:08Z thomas $
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-
-pkgname=v86d
-pkgver=0.1.10
-pkgrel=2
-pkgdesc="userspace helper for uvesafb that runs x86 code in an emulated environment"
-arch=('i686' 'x86_64')
-url="http://dev.gentoo.org/~spock/projects/uvesafb/"
-license=('GPL2')
-depends=('glibc')
-conflicts=('mkinitcpio<0.7')
-backup=('etc/modprobe.d/uvesafb.conf')
-options=('!makeflags')
-source=(http://dev.gentoo.org/~spock/projects/uvesafb/archive/v86d-$pkgver.tar.bz2
- v86d
- v86d_hook
- modprobe.uvesafb)
-md5sums=('51c792ba7b874ad8c43f0d3da4cfabe0'
- '2748ca01397e5c4435f87692f7d042a8'
- '813958b8f6c75a7063e4858f31509694'
- '2d7cc8dc6a41916a13869212d0191147')
-
-build() {
- cd "$srcdir/v86d-$pkgver"
- ./configure --with-x86emu
- # we only need /usr/include/video/uvesafb.h
- make KDIR=/usr
-}
-
-package() {
- cd "$srcdir/v86d-$pkgver"
- make DESTDIR="$pkgdir" install
-
- install -D -m644 "$srcdir/v86d" "$pkgdir/lib/initcpio/install/v86d"
- install -D -m644 "$srcdir/v86d_hook" "$pkgdir/lib/initcpio/hooks/v86d"
- install -D -m644 "$srcdir/modprobe.uvesafb" "$pkgdir/etc/modprobe.d/uvesafb.conf"
-}
diff --git a/testing/v86d/modprobe.uvesafb b/testing/v86d/modprobe.uvesafb
deleted file mode 100644
index 5e46e1088..000000000
--- a/testing/v86d/modprobe.uvesafb
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# This file sets the parameters for uvesafb module.
-# The following format should be used:
-# options uvesafb mode=<xres>x<yres>[-<bpp>][@<refresh>] scroll=<ywrap|ypan|redraw> ...
-#
-# For more details see:
-# http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt
-#
-
-options uvesafb mode_option=1024x768-32 scroll=ywrap
diff --git a/testing/v86d/v86d b/testing/v86d/v86d
deleted file mode 100644
index 2065b8e64..000000000
--- a/testing/v86d/v86d
+++ /dev/null
@@ -1,12 +0,0 @@
-build() {
- add_binary "/sbin/v86d"
- add_file "/etc/modprobe.d/uvesafb.conf"
- MODULES="uvesafb"
- SCRIPT="v86d"
-}
-
-help() {
- echo "This hook sets up v86d, the userspace helper for uvesafb."
-}
-
-# vim: set ft=sh ts=4 sw=4 expandtab:
diff --git a/testing/v86d/v86d_hook b/testing/v86d/v86d_hook
deleted file mode 100644
index e5dff01c1..000000000
--- a/testing/v86d/v86d_hook
+++ /dev/null
@@ -1,4 +0,0 @@
-run_hook()
-{
- /sbin/modprobe uvesafb
-} \ No newline at end of file