aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/alsa/alsa-state.bb16
-rw-r--r--packages/alsa/alsa-state/asoundrc12
-rw-r--r--packages/angstrom/angstrom-feed-configs.bb11
-rw-r--r--packages/angstrom/angstrom-version.bb3
-rw-r--r--packages/base-files/base-files_3.0.14.bb6
-rw-r--r--packages/dbus/dbus-1.0.2/dbus-1.init2
-rw-r--r--packages/dbus/dbus_1.0.2.bb2
-rw-r--r--packages/e17/e-wm_0.16.999.041.bb48
-rw-r--r--packages/e17/exhibit_cvs.bb2
-rw-r--r--packages/ezx/ezxd/.mtn2git_empty (renamed from packages/ezx/opentapi/.mtn2git_empty)0
-rw-r--r--packages/ezx/ezxd/ezxd.init (renamed from packages/ezx/opentapi/opentapi.init)14
-rw-r--r--packages/ezx/ezxd_svn.bb35
-rw-r--r--packages/ezx/opentapi_svn.bb28
-rw-r--r--packages/fakeroot/fakeroot-native_1.7.1.bb3
-rw-r--r--packages/fakeroot/fakeroot_1.7.1.bb5
-rw-r--r--packages/ffmpeg/ffmpeg_svn.bb2
-rw-r--r--packages/fxload/.mtn2git_empty (renamed from packages/netbase/netbase/a780/.mtn2git_empty)0
-rw-r--r--packages/fxload/files/.mtn2git_empty (renamed from packages/netbase/netbase/e680/.mtn2git_empty)0
-rw-r--r--packages/fxload/files/usbheader.patch15
-rw-r--r--packages/fxload/fxload_0.0.20020411.bb19
-rw-r--r--packages/gcc/gcc-4.2.1/204-uclibc-locale-wchar_fix.patch48
-rw-r--r--packages/gcc/gcc-4.2.1/205-uclibc-locale-update.patch347
-rw-r--r--packages/gcc/gcc-cross_4.2.1.bb2
-rw-r--r--packages/gcc/gcc_4.2.1.bb4
-rw-r--r--packages/glibc/eglibc-initial_svn.bb1
-rw-r--r--packages/glibc/eglibc-intermediate_svn.bb1
-rw-r--r--packages/glibc/eglibc_svn.bb2
-rw-r--r--packages/gnome/gnome-desktop_2.18.3.bb2
-rw-r--r--packages/gnome/gnome-panel_2.18.1.bb6
-rw-r--r--packages/gnome/libwnck_2.13.5.bb1
-rw-r--r--packages/gpephone/gpe-applauncher_0.10.bb12
-rw-r--r--packages/gpephone/libidn_0.5.19.bb1
-rw-r--r--packages/gpicview/.mtn2git_empty0
-rw-r--r--packages/gpicview/gpicview_0.1.5.bb10
-rw-r--r--packages/gsm/files/default8
-rw-r--r--packages/gsm/files/gsmd10
-rw-r--r--packages/gsm/libgsmd_svn.bb2
-rw-r--r--packages/gtk+/gdk-pixbuf-csource-native_2.10.14.bb25
-rw-r--r--packages/gtk+/gdk-pixbuf-csource/.mtn2git_empty0
-rw-r--r--packages/gtk+/gdk-pixbuf-csource/reduce-dependencies.patch149
-rw-r--r--packages/gtk-webcore/midori/.mtn2git_empty0
-rw-r--r--packages/gtk-webcore/midori/midori.desktop8
-rw-r--r--packages/gtk-webcore/midori_0.0.2.bb11
-rw-r--r--packages/gtk-webcore/midori_0.0.3.bb11
-rw-r--r--packages/gtk-webcore/midori_0.0.4.bb11
-rw-r--r--packages/gtk-webcore/midori_0.0.5.bb11
-rw-r--r--packages/gtk-webcore/midori_0.0.6.bb18
-rw-r--r--packages/images/angstrom-minimal-image-with-mtd-utils.bb2
-rw-r--r--packages/images/liveramdisk-image.bb28
-rw-r--r--packages/initrdscripts/initramfs-jffs2/jffs2boot.sh2
-rw-r--r--packages/initrdscripts/initramfs-jffs2_0.1.bb2
-rw-r--r--packages/libnotify/libnotify_0.4.2.bb13
-rw-r--r--packages/libnotify/libnotify_0.4.3.bb13
-rw-r--r--packages/libnotify/libnotify_0.4.4.bb13
-rw-r--r--packages/libowl/libowl_svn.bb2
-rw-r--r--packages/libxosd/libxosd_svn.bb2
-rw-r--r--packages/linux/linux-2.6.20/at91sam9260ek/.mtn2git_empty0
-rw-r--r--packages/linux/linux-2.6.20/at91sam9260ek/defconfig1209
-rw-r--r--packages/linux/linux-2.6.20/at91sam9261ek/.mtn2git_empty0
-rw-r--r--packages/linux/linux-2.6.20/at91sam9261ek/defconfig1242
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/.mtn2git_empty0
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/.mtn2git_empty0
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-gpio-interrupt-debounce.diff87
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c-bus.diff220
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff110
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-leds.diff181
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-maverick-uniqid.patch38
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-serial-clocks.diff42
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-serial-uartbaud.diff66
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-timer-accuracy.diff59
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/series12
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-machine-id-fix.patch17
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-nfbit-fix.patch18
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch41
-rw-r--r--packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-watchdog.patch430
-rw-r--r--packages/linux/linux-2.6.22.6/.mtn2git_empty0
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/.mtn2git_empty0
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ep93xx-gpio-interrupt-debounce.diff87
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ep93xx-i2c-bus.diff220
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ep93xx-i2c.diff110
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ep93xx-leds.diff181
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ep93xx-maverick-uniqid.patch38
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff42
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-uartbaud.diff66
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ep93xx-timer-accuracy.diff59
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/series12
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ts72xx-machine-id-fix.patch17
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ts72xx-nfbit-fix.patch15
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ts72xx-use-cpld-reset.patch41
-rw-r--r--packages/linux/linux-2.6.22.6/ts72xx/ts72xx-watchdog.patch430
-rw-r--r--packages/linux/linux-ezx-2.6.21/a1200/.mtn2git_empty0
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/a1200/defconfig (renamed from packages/linux/linux-ezx-2.6.21/patches/defconfig-a1200)584
-rw-r--r--packages/linux/linux-ezx-2.6.21/a780/.mtn2git_empty0
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/a780/defconfig (renamed from packages/linux/linux-ezx-2.6.21/patches/defconfig-a780)471
-rw-r--r--packages/linux/linux-ezx-2.6.21/e680/.mtn2git_empty0
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/e680/defconfig (renamed from packages/linux/linux-ezx-2.6.21/patches/defconfig-e680)473
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch82
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a1200-mci.patch27
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/a1200-pcap.patch83
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch22
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/a780-emu.patch38
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a780-flip.patch10
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a780-kbd.patch22
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a780-leds.patch41
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a780-mci.patch27
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/a780-pcap.patch90
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a780-ts.patch19
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/a780-vibrator.patch83
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/asoc-fix-loopback.patch14
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/asoc-pxa-ssp.patch14
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/defconfig-e21092
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/e680-emu.patch38
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/e680-kbd.patch22
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/e680-leds.patch287
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/e680-locksw.patch10
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/e680-mci.patch27
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/e680-pcap.patch90
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/e680-ts.patch19
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/ezx-asoc.patch1302
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/ezx-backlight.patch28
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/ezx-bp.patch36
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/ezx-core.patch220
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/ezx-emu.patch132
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch342
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/ezx-mtd-map.patch24
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/ezx-pcap.patch1398
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch22
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/i2c-core-fix-a1200.patch15
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/index.html60
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/mtdfix.patch41
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/pcap-ts.patch143
-rw-r--r--packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch35
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/patches/series12
-rw-r--r--packages/linux/linux-ezx-2.6.21/rokre2/.mtn2git_empty0
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/rokre2/defconfig1582
-rw-r--r--packages/linux/linux-ezx-2.6.21/rokre6/.mtn2git_empty0
-rwxr-xr-xpackages/linux/linux-ezx-2.6.21/rokre6/defconfig (renamed from packages/linux/linux-ezx-2.6.21/patches/defconfig-e6)582
-rw-r--r--packages/linux/linux-ezx_2.6.21.bb89
-rw-r--r--packages/linux/linux-handhelds-2.6/asus620/defconfig124
-rw-r--r--packages/linux/linux-handhelds-2.6/asus730/defconfig183
-rw-r--r--packages/linux/linux-handhelds-2.6/aximx50/defconfig136
-rw-r--r--packages/linux/linux-handhelds-2.6/eteng500/defconfig136
-rw-r--r--packages/linux/linux-handhelds-2.6/h1910/defconfig134
-rw-r--r--packages/linux/linux-handhelds-2.6/h3600/defconfig112
-rw-r--r--packages/linux/linux-handhelds-2.6/h3800/defconfig112
-rw-r--r--packages/linux/linux-handhelds-2.6/h3900/defconfig97
-rw-r--r--packages/linux/linux-handhelds-2.6/h4000/defconfig83
-rw-r--r--packages/linux/linux-handhelds-2.6/h5000/defconfig67
-rw-r--r--packages/linux/linux-handhelds-2.6/htcalpine/defconfig117
-rw-r--r--packages/linux/linux-handhelds-2.6/htcapache/defconfig115
-rw-r--r--packages/linux/linux-handhelds-2.6/htcbeetles/.mtn2git_empty0
-rw-r--r--packages/linux/linux-handhelds-2.6/htcbeetles/defconfig1257
-rw-r--r--packages/linux/linux-handhelds-2.6/htcblueangel/defconfig103
-rw-r--r--packages/linux/linux-handhelds-2.6/htchimalaya/defconfig124
-rw-r--r--packages/linux/linux-handhelds-2.6/htcsable/defconfig126
-rw-r--r--packages/linux/linux-handhelds-2.6/htcuniversal/defconfig117
-rw-r--r--packages/linux/linux-handhelds-2.6/htcwallaby/defconfig137
-rw-r--r--packages/linux/linux-handhelds-2.6/hx4700/defconfig66
-rw-r--r--packages/linux/linux-handhelds-2.6/looxc550/defconfig117
-rw-r--r--packages/linux/linux-handhelds-2.6/magician/defconfig108
-rw-r--r--packages/linux/linux-handhelds-2.6/rx1950/defconfig117
-rw-r--r--packages/linux/linux-handhelds-2.6/rx3000/defconfig96
-rw-r--r--packages/linux/linux-handhelds-2.6_2.6.21-hh15.bb11
-rw-r--r--packages/linux/linux-handhelds-2.6_2.6.21-hh16.bb11
-rw-r--r--packages/linux/linux-openmoko-devel_svn.bb11
-rw-r--r--packages/linux/linux-openmoko.inc3
-rw-r--r--packages/linux/linux-openmoko_2.6.21.6.bb10
-rw-r--r--packages/linux/linux-openmoko_2.6.22.5.bb8
-rw-r--r--packages/linux/linux-rp-2.6.22/defconfig-akita1
-rw-r--r--packages/linux/linux-rp-2.6.22/defconfig-c7x02
-rw-r--r--packages/linux/linux-rp_2.6.22.bb2
-rw-r--r--packages/linux/linux.inc50
-rw-r--r--packages/linux/linux/ts72xx/.mtn2git_empty0
-rw-r--r--packages/linux/linux/ts72xx/defconfig1184
-rw-r--r--packages/linux/linux_2.6.14.bb4
-rw-r--r--packages/linux/linux_2.6.20.bb12
-rw-r--r--packages/linux/linux_2.6.21+2.6.22-rc1.bb2
-rw-r--r--packages/linux/linux_2.6.21.bb3
-rw-r--r--packages/linux/linux_2.6.22+2.6.23-rc3.bb2
-rw-r--r--packages/linux/linux_2.6.22+2.6.23-rc5.bb32
-rw-r--r--packages/linux/linux_2.6.22.6.bb28
-rw-r--r--packages/linux/linux_2.6.22.bb2
-rw-r--r--packages/madwifi/madwifi-ng_r2702-20070903.bb1
-rw-r--r--packages/matchbox-keyboard/files/matchbox-keyboard-applet.patch92
-rw-r--r--packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb7
-rw-r--r--packages/matchbox-keyboard/matchbox-keyboard_svn.bb10
-rw-r--r--packages/matchbox-keyboard/mboxkbd-layouts-gui_git.bb2
-rw-r--r--packages/matchbox-panel/matchbox-panel_svn.bb2
-rw-r--r--packages/matchbox-themes-extra/matchbox-theme-sato_svn.bb4
-rw-r--r--packages/matchbox2/matchbox-desktop-2_svn.bb2
-rw-r--r--packages/matchbox2/matchbox-panel-2_svn.bb2
-rw-r--r--packages/meta/meta-sdk-gpe.bb13
-rw-r--r--packages/meta/meta-sdk-sbox-gpe.bb7
-rw-r--r--packages/meta/meta-sdk-sbox.bb7
-rw-r--r--packages/meta/meta-sdk.bb12
-rw-r--r--packages/netbase/netbase/a780/interfaces44
-rw-r--r--packages/netbase/netbase/e680/interfaces44
-rw-r--r--packages/netbase/netbase_4.21.bb2
-rw-r--r--packages/nonworking/gnuboy/qtopiagnuboy_1.0.3.bb2
-rw-r--r--packages/nonworking/zethereal/zethereal_1.0.0.bb2
-rw-r--r--packages/notification-daemon/notification-daemon_0.3.6.bb23
-rw-r--r--packages/notification-daemon/notification-daemon_0.3.7.bb (renamed from packages/notification-daemon/notification-daemon_0.3.5.bb)18
-rw-r--r--packages/openmoko2/neod_svn.bb11
-rw-r--r--packages/openmoko2/openmoko-common2_svn.bb2
-rw-r--r--packages/openmoko2/openmoko-dates2_svn.bb12
-rw-r--r--packages/openmoko2/openmoko-session2.bb2
-rwxr-xr-xpackages/openmoko2/openmoko-session2/etc/matchbox/session2
-rw-r--r--packages/openmoko2/openmoko-terminal2_svn.bb4
-rw-r--r--packages/opie-reader/uqtreader_cvs.bb2
-rw-r--r--packages/pango/pango.inc2
-rw-r--r--packages/pimlico/contacts-0.7/.mtn2git_empty0
-rw-r--r--packages/pimlico/contacts-0.7/contacts-owl-window-menu.patch52
-rw-r--r--packages/pimlico/contacts_0.7.bb9
-rw-r--r--packages/pimlico/contacts_svn.bb8
-rw-r--r--packages/pimlico/dates.inc4
-rw-r--r--packages/pimlico/dates_0.4.4.bb7
-rw-r--r--packages/pimlico/dates_svn.bb6
-rw-r--r--packages/pimlico/files/contacts-owl-window-menu.patch52
-rw-r--r--packages/pimlico/files/dates-owl-window-menu.patch72
-rw-r--r--packages/pimlico/files/tasks-owl.diff74
-rw-r--r--packages/pimlico/tasks-0.10/.mtn2git_empty0
-rw-r--r--packages/pimlico/tasks-0.10/delete-crash.diff71
-rw-r--r--packages/pimlico/tasks.inc2
-rw-r--r--packages/pimlico/tasks_0.10.bb8
-rw-r--r--packages/pimlico/tasks_svn.bb6
-rw-r--r--packages/psplash/files/openmoko/psplash-hand-img.h8657
-rw-r--r--packages/psplash/psplash_svn.bb5
-rw-r--r--packages/putty/putty_svn.bb2
-rw-r--r--packages/puzzles/oh-puzzles_svn.bb2
-rw-r--r--packages/qt/qt-x11-free-common.inc2
-rw-r--r--packages/qt/qt-x11-free-native_3.3.5.bb2
-rw-r--r--packages/qt/qt4-x11-free_4.1.2.bb2
-rw-r--r--packages/qt/qt4-x11-free_4.3.0.bb2
-rw-r--r--packages/qte/qte-mt-static_2.3.10.bb2
-rw-r--r--packages/settings-daemon/settings-daemon_svn.bb3
-rw-r--r--packages/snes9x/snes9x-sdl-qpe_1.39.bb2
-rw-r--r--packages/sphyrna/sphyrna_svn.bb2
-rw-r--r--packages/starling/starling_0.2.bb2
-rw-r--r--packages/taglib/taglib_1.4.bb2
-rw-r--r--packages/taglib/taglibc_1.4.bb2
-rw-r--r--packages/tasks/task-boot.bb2
-rw-r--r--packages/tasks/task-openmoko-debug.bb31
-rw-r--r--packages/tasks/task-openmoko-feed.bb16
-rw-r--r--packages/tasks/task-openmoko.bb5
-rw-r--r--packages/tcpdump/tcpdump_3.9.7.bb (renamed from packages/tcpdump/tcpdump_3.9.3.bb)3
-rw-r--r--packages/tinymail/libtinymail_svn.bb2
-rw-r--r--packages/uboot/uboot-openmoko_1.2.0+gitf34024d4a328e6edd906456da98d2c537155c4f7+svn2943.bb (renamed from packages/uboot/uboot-openmoko_1.2.0+git8993e54b6f397973794f3d6f47d3b3c0c98dd4f6+svn20070819.bb)12
-rw-r--r--packages/uboot/uboot-openmoko_svn.bb8
-rw-r--r--packages/uclibc/bfin-uclibc_svn.bb34
-rw-r--r--packages/uclibc/elf2flt_svn.bb15
-rw-r--r--packages/uicmoc/uicmoc-native_2.3.10.bb2
-rw-r--r--packages/uicmoc/uicmoc3-native_3.3.5.bb2
-rw-r--r--packages/webkit/webkit-gtk_svn.bb4
-rw-r--r--packages/xchat/xchat_2.6.1.bb13
-rw-r--r--packages/xchat/xchat_2.8.4.bb18
-rw-r--r--packages/xoo/xoo_svn.bb2
-rw-r--r--packages/xorg-app/bdftopcf_1.0.1.bb7
-rw-r--r--packages/xorg-app/iceauth_1.0.2.bb7
-rw-r--r--packages/xorg-app/ico_1.0.2.bb6
-rw-r--r--packages/xorg-app/xbacklight_1.1.bb6
-rw-r--r--packages/xorg-app/xdm_1.1.6.bb2
-rw-r--r--packages/xorg-app/xinit_1.0.5.bb6
-rw-r--r--packages/xorg-app/xprop_1.0.3.bb7
-rw-r--r--packages/xorg-app/xset_1.0.3.bb11
-rw-r--r--packages/xorg-driver/xf86-input-keyboard_1.2.2.bb7
-rw-r--r--packages/xorg-lib/libxcursor_1.1.9.bb8
-rw-r--r--packages/xorg-lib/libxfont_1.3.1.bb11
-rw-r--r--packages/xorg-lib/libxi_1.1.3.bb7
-rw-r--r--packages/xorg-lib/libxrandr_1.2.2.bb8
-rw-r--r--packages/xorg-lib/libxrender_0.9.4.bb8
-rw-r--r--packages/xorg-lib/libxxf86dga_1.0.2.bb7
-rw-r--r--packages/xorg-lib/pixman-0.9.5/.mtn2git_empty0
-rw-r--r--packages/xorg-lib/pixman-0.9.5/dont-copy-unused-bits-to-alpha-channel.patch29
-rw-r--r--packages/xorg-lib/pixman_0.9.5.bb6
-rw-r--r--packages/xorg-proto/inputproto_1.4.2.1.bb3
-rw-r--r--packages/xorg-proto/renderproto_0.9.3.bb4
-rw-r--r--packages/xorg-proto/xf86dgaproto_2.0.3.bb5
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.1.0/.mtn2git_empty0
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.1.0/enable-epson.patch11
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.1.0/enable-tslib.patch (renamed from packages/xorg-xserver/xserver-kdrive/enable-tslib.patch)0
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.1.0/optional-xkb.patch54
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch307
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.4/.mtn2git_empty0
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.4/disable-xf86-dga-xorgcfg.patch39
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.4/enable-tslib.patch24
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.4/enable-xcalibrate.patch77
-rw-r--r--packages/xorg-xserver/xserver-kdrive-1.4/w100-autofoo.patch54
-rw-r--r--packages/xorg-xserver/xserver-kdrive-common.inc7
-rw-r--r--packages/xorg-xserver/xserver-kdrive-git/.mtn2git_empty0
-rw-r--r--packages/xorg-xserver/xserver-kdrive-git/enable-epson.patch17
-rw-r--r--packages/xorg-xserver/xserver-kdrive-git/enable-tslib.patch26
-rw-r--r--packages/xorg-xserver/xserver-kdrive-git/enable-xcalibrate.patch68
-rw-r--r--packages/xorg-xserver/xserver-kdrive-git/w100-autofoo.patch54
-rw-r--r--packages/xorg-xserver/xserver-kdrive-git/w100-post-1.4-buildfix.patch12
-rw-r--r--packages/xorg-xserver/xserver-kdrive-git/xephyr-post-1.4-buildfix.patch11
-rw-r--r--packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb8
-rw-r--r--packages/xorg-xserver/xserver-kdrive/build-fix-panoramix.patch18
-rw-r--r--packages/xorg-xserver/xserver-kdrive/devfs.patch47
-rw-r--r--packages/xorg-xserver/xserver-kdrive/enable-epson.patch16
-rw-r--r--packages/xorg-xserver/xserver-kdrive/faster-rotated.patch241
-rw-r--r--packages/xorg-xserver/xserver-kdrive/fbdev-evdev.patch19
-rw-r--r--packages/xorg-xserver/xserver-kdrive/fix_default_mode.patch (renamed from packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch)0
-rw-r--r--packages/xorg-xserver/xserver-kdrive/optional-xkb.patch32
-rw-r--r--packages/xorg-xserver/xserver-kdrive/tslib-default-device.patch15
-rw-r--r--packages/xorg-xserver/xserver-kdrive/w100-autofoo.patch54
-rw-r--r--packages/xorg-xserver/xserver-kdrive/w100-new-input-world-order.patch28
-rw-r--r--packages/xorg-xserver/xserver-kdrive/w100.patch55
-rw-r--r--packages/xorg-xserver/xserver-kdrive/xcalibrate-new-input-world-order.patch159
-rw-r--r--packages/xorg-xserver/xserver-kdrive/xcalibrate_coords.patch122
-rw-r--r--packages/xorg-xserver/xserver-kdrive_1.2.0.bb6
-rw-r--r--packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb8
-rw-r--r--packages/xorg-xserver/xserver-kdrive_1.4.bb28
-rw-r--r--packages/xorg-xserver/xserver-kdrive_git.bb61
-rw-r--r--packages/xournal/xournal_0.4.0.1.bb17
-rw-r--r--packages/yaffs2/.mtn2git_empty0
-rw-r--r--packages/yaffs2/files/.mtn2git_empty0
-rw-r--r--packages/yaffs2/files/mkyaffs2image.patch345
-rw-r--r--packages/yaffs2/files/yaffs2-unioob.patch216
-rw-r--r--packages/yaffs2/yaffs2-utils-native_cvs.bb15
-rw-r--r--packages/yaffs2/yaffs2-utils_cvs.bb27
320 files changed, 21877 insertions, 11139 deletions
diff --git a/packages/alsa/alsa-state.bb b/packages/alsa/alsa-state.bb
index 00669e48de..55541872fa 100644
--- a/packages/alsa/alsa-state.bb
+++ b/packages/alsa/alsa-state.bb
@@ -1,20 +1,19 @@
-#! /bin/sh
-#
# Copyright Matthias Hentges <devel@hentges.net> (c) 2007
# License: MIT (see http://www.opensource.org/licenses/mit-license.php
# for a copy of the license)
#
# Filename: alsa-state.bb
-# Date: 20070308 (YMD)
DESCRIPTION = "Default ALSA configuration"
LICENSE = "GPL"
RRECOMMENDS_alsa-state = "alsa-states"
-PV = "0.0.4"
-PR = "r3"
+PV = "0.1.0"
+PR = "r0"
-SRC_URI = "file://asound.state \
- file://alsa-state "
+SRC_URI = " \
+ file://asoundrc \
+ file://asound.state \
+ file://alsa-state "
SRC_URI_append_fic-gta01 = " \
file://capturehandset.state \
@@ -33,11 +32,12 @@ do_install() {
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/alsa-state ${D}${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/asoundrc ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/*.state ${D}${sysconfdir}
}
PACKAGES += "alsa-states"
-FILES_${PN} = "${sysconfdir}/init.d"
+FILES_${PN} = "${sysconfdir}/init.d ${sysconfdir}/asoundrc"
FILES_alsa-states = "${sysconfdir}/*.state"
PACKAGE_ARCH_${PN} = "all"
PACKAGE_ARCH_alsa-states = "${MACHINE}"
diff --git a/packages/alsa/alsa-state/asoundrc b/packages/alsa/alsa-state/asoundrc
new file mode 100644
index 0000000000..bc038e3e73
--- /dev/null
+++ b/packages/alsa/alsa-state/asoundrc
@@ -0,0 +1,12 @@
+#
+# simple dmix configuration
+#
+pcm.dsp0 {
+ type plug
+ slave.pcm "dmix"
+}
+
+ctl.mixer0 {
+ type hw
+ card 0
+}
diff --git a/packages/angstrom/angstrom-feed-configs.bb b/packages/angstrom/angstrom-feed-configs.bb
index 7645ee61ec..6730b6a044 100644
--- a/packages/angstrom/angstrom-feed-configs.bb
+++ b/packages/angstrom/angstrom-feed-configs.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Configuration files for online package repositories aka feeds"
-PR = "0"
+PR = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
FEED_BASEPATH ?= "unstable/feed/"
@@ -21,3 +21,12 @@ do_install () {
install -m 0644 ${S}/${sysconfdir}/ipkg/* ${D}${sysconfdir}/ipkg/
}
+CONFFILES_${PN} += "${sysconfdir}/ipkg/base-feed.conf \
+ ${sysconfdir}/ipkg/debug-feed.conf \
+ ${sysconfdir}/ipkg/perl-feed.conf \
+ ${sysconfdir}/ipkg/python-feed.conf \
+ ${sysconfdir}/ipkg/gstreamer-feed.conf \
+ ${sysconfdir}/ipkg/${MACHINE_ARCH}-feed.conf \
+ ${sysconfdir}/ipkg/noarch-feed.conf \
+ "
+
diff --git a/packages/angstrom/angstrom-version.bb b/packages/angstrom/angstrom-version.bb
index 2488255b53..32f3f01635 100644
--- a/packages/angstrom/angstrom-version.bb
+++ b/packages/angstrom/angstrom-version.bb
@@ -1,9 +1,10 @@
PV = "${DISTRO_VERSION}"
+PR = "r1"
PACKAGES = "${PN}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-do_compile() {
+do_install() {
mkdir -p ${D}${sysconfdir}
echo "Angstrom ${DISTRO_VERSION}" > ${D}${sysconfdir}/angstrom-version
diff --git a/packages/base-files/base-files_3.0.14.bb b/packages/base-files/base-files_3.0.14.bb
index ac12f5e08a..0d3a411095 100644
--- a/packages/base-files/base-files_3.0.14.bb
+++ b/packages/base-files/base-files_3.0.14.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Miscellaneous files for the base system."
SECTION = "base"
PRIORITY = "required"
-PR = "r71"
+PR = "r72"
LICENSE = "GPL"
SRC_URI = " \
@@ -24,8 +24,6 @@ SRC_URI = " \
file://licenses/Artistic "
S = "${WORKDIR}"
-SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
-
docdir_append = "/${P}"
dirs1777 = "/tmp ${localstatedir}/volatile/lock ${localstatedir}/volatile/tmp"
dirs2775 = "/home ${prefix}/src ${localstatedir}/local"
@@ -152,6 +150,8 @@ FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses"
PACKAGE_ARCH_mnci = "mnci"
PACKAGE_ARCH_rt3000 = "rt3000"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
# Unslung distribution specific packaging
PACKAGES_unslung = "${PN}-unslung"
diff --git a/packages/dbus/dbus-1.0.2/dbus-1.init b/packages/dbus/dbus-1.0.2/dbus-1.init
index 38e7574ad5..46e321860d 100644
--- a/packages/dbus/dbus-1.0.2/dbus-1.init
+++ b/packages/dbus/dbus-1.0.2/dbus-1.init
@@ -62,7 +62,7 @@ start_it_up()
shut_it_down()
{
if [ -d $EVENTDIR ]; then
- run-parts --reverse --arg=stop $EVENTDIR
+ run-parts --arg=stop $EVENTDIR
fi
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
diff --git a/packages/dbus/dbus_1.0.2.bb b/packages/dbus/dbus_1.0.2.bb
index a660eb1586..0c97e30406 100644
--- a/packages/dbus/dbus_1.0.2.bb
+++ b/packages/dbus/dbus_1.0.2.bb
@@ -2,4 +2,4 @@ require dbus.inc
SRC_URI += " file://fix-waitpid.patch;patch=1"
-PR = "r2"
+PR = "r3"
diff --git a/packages/e17/e-wm_0.16.999.041.bb b/packages/e17/e-wm_0.16.999.041.bb
new file mode 100644
index 0000000000..4e6457cc2e
--- /dev/null
+++ b/packages/e17/e-wm_0.16.999.041.bb
@@ -0,0 +1,48 @@
+DESCRIPTION = "E17 - the Enlightenment Window Mananger"
+DEPENDS = "eet evas ecore edje efreet"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit e update-alternatives
+
+SRC_URI = "http://download.enlightenment.org/snapshots/2007-08-26/enlightenment-${PV}.tar.gz \
+ file://fix-configure.patch;patch=1 \
+ file://set-autoscroll-defaults.patch;patch=1 \
+ file://Xsession.d/98enlightenment \
+ file://applications.menu \
+ "
+
+S = "${WORKDIR}/enlightenment-${PV}"
+
+PROFILE = "LOWRES_PDA"
+PROFILE_c7x0 = "HIRES_PDA"
+PROFILE_tosa = "HIRES_PDA"
+PROFILE_spitz = "HIRES_PDA"
+PROFILE_akita = "HIRES_PDA"
+
+EXTRA_OECONF = "--with-profile=${PROFILE} \
+ --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \
+ --x-includes=${STAGING_INCDIR}/X11 \
+ --x-libraries=${STAGING_LIBDIR}"
+
+FILES_${PN} = "${bindir}/* ${libdir}/enlightenment/modules/*/*.edj ${libdir}/enlightenment/modules/*/*.desktop ${libdir}/enlightenment/modules/*/*/*.so ${libdir}/enlightenment/preload/*.so ${datadir} ${sysconfdir} ${libdir}/enlightenment/modules/cpufreq/*/freqset"
+FILES_${PN}-dev += "${libdir}/enlightenment/modules/*/*/*.a ${libdir}/enlightenment/modules/*/*/*.la ${libdir}/enlightenment/preload/*.a ${libdir}/enlightenment/preload/*.la"
+FILES_${PN}-dbg += "${libdir}/enlightenment/modules/*/*/.debug/ ${libdir}/enlightenment/preload/.debug/"
+
+do_compile_prepend() {
+ find ${S} -name Makefile | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:'
+ find ${S} -name Makefile | xargs sed -i 's:/usr/X11R6/include:${STAGING_INCDIR}:'
+}
+
+do_install_append() {
+ install -d ${D}/${sysconfdir}/X11/Xsession.d
+ install -m 755 ${WORKDIR}/Xsession.d/98enlightenment ${D}/${sysconfdir}/X11/Xsession.d
+
+ install -d ${D}/${sysconfdir}/xdg/menus
+ install -m 644 ${WORKDIR}/applications.menu ${D}/${sysconfdir}/xdg/menus/
+}
+
+ALTERNATIVE_PATH = "${bindir}/enlightenment_start"
+ALTERNATIVE_NAME = "x-window-manager"
+ALTERNATIVE_LINK = "${bindir}/x-window-manager"
+ALTERNATIVE_PRIORITY = "16"
diff --git a/packages/e17/exhibit_cvs.bb b/packages/e17/exhibit_cvs.bb
index 4433287353..ccf93ded9f 100644
--- a/packages/e17/exhibit_cvs.bb
+++ b/packages/e17/exhibit_cvs.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Exhibit is the ETK picture viewer"
-DEPENDS = "evas ecore edje etk epsilon engrave"
+DEPENDS = "evas ecore epsilon edje eet etk efreet"
LICENSE = "MIT"
PV = "0.0.0+cvs${SRCDATE}"
PR = "r0"
diff --git a/packages/ezx/opentapi/.mtn2git_empty b/packages/ezx/ezxd/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/ezx/opentapi/.mtn2git_empty
+++ b/packages/ezx/ezxd/.mtn2git_empty
diff --git a/packages/ezx/opentapi/opentapi.init b/packages/ezx/ezxd/ezxd.init
index 0b41418e00..dccd293af1 100644
--- a/packages/ezx/opentapi/opentapi.init
+++ b/packages/ezx/ezxd/ezxd.init
@@ -1,22 +1,22 @@
#! /bin/sh
# -*- coding: utf-8 -*-
-# init.d script for opentapi
+# init.d script for ezxd
set -e
-DAEMON=/usr/bin/opentapi
-NAME=opentapi
-PIDDIR=/var/run/opentapi
+DAEMON=/usr/bin/ezxd
+NAME=ezxd
+PIDDIR=/var/run/ezxd
PIDFILE=$PIDDIR/pid
-DESC="OpenTAPI server"
+DESC="ezxd server"
test -x $DAEMON || exit 0
# Source defaults file; edit that file to configure this script.
ENABLED=1
PARAMS=""
-if [ -e /etc/default/opentapi ]; then
- . /etc/default/opentapi
+if [ -e /etc/default/ezxd ]; then
+ . /etc/default/ezxd
fi
test "$ENABLED" != "0" || exit 0
diff --git a/packages/ezx/ezxd_svn.bb b/packages/ezx/ezxd_svn.bb
new file mode 100644
index 0000000000..56bc1c05bf
--- /dev/null
+++ b/packages/ezx/ezxd_svn.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Open implementation of motorola's tapisrv, replaces opentapi"
+LICENSE = "GPLv2"
+SECTION = "devel"
+AUTHOR = "Daniel Ribeiro"
+
+PV = "0.0+svnr${SRCREV}"
+PR = "r0"
+
+SRC_URI = "svn://svn.openezx.org/trunk/src/userspace/;module=ezxd;proto=http \
+ file://ezxd.init \
+ "
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "ezxd"
+INITSCRIPT_PARAMS = "start 00 S ."
+
+S = "${WORKDIR}/${PN}"
+
+do_configure() {
+ sed -i -e s:CROSS:CC:g Makefile
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ezxd ${D}${bindir}
+
+ install -d ${D}${libdir}/ezxd
+ install -m 755 *.so ${D}${libdir}/ezxd
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0600 ezxd.conf ${D}${sysconfdir}/
+ install -m 0755 ${WORKDIR}/ezxd.init ${D}${sysconfdir}/init.d/ezxd
+}
+
diff --git a/packages/ezx/opentapi_svn.bb b/packages/ezx/opentapi_svn.bb
deleted file mode 100644
index 7426dfe853..0000000000
--- a/packages/ezx/opentapi_svn.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESCRIPTION = "Open implementation of motorola's tapisrv"
-LICENSE = "GPLv2"
-SECTION = "devel"
-AUTHOR = "Daniel Willmann"
-
-PV = "0.0+svnr${SRCREV}"
-PR = "r3"
-
-SRC_URI = "svn://svn.openezx.org/trunk/src/userspace/;module=opentapi;proto=http \
- file://opentapi.init \
- "
-
-inherit update-rc.d
-
-INITSCRIPT_NAME = "opentapi"
-INITSCRIPT_PARAMS = "start 00 S ."
-
-
-S = "${WORKDIR}/${PN}"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 755 opentapi ${D}${bindir}
-
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/opentapi.init ${D}${sysconfdir}/init.d/opentapi
-}
-
diff --git a/packages/fakeroot/fakeroot-native_1.7.1.bb b/packages/fakeroot/fakeroot-native_1.7.1.bb
index 6f2969e181..8b3d2a1590 100644
--- a/packages/fakeroot/fakeroot-native_1.7.1.bb
+++ b/packages/fakeroot/fakeroot-native_1.7.1.bb
@@ -3,8 +3,7 @@ require fakeroot_${PV}.bb
inherit native
RDEPENDS="util-linux-native"
-SRC_URI += "file://fix-prefix.patch;patch=1 \
- file://work-with-older-libtool.patch;patch=1"
+SRC_URI += "file://fix-prefix.patch;patch=1 "
S = "${WORKDIR}/fakeroot-${PV}"
EXTRA_OECONF = " --program-prefix="
diff --git a/packages/fakeroot/fakeroot_1.7.1.bb b/packages/fakeroot/fakeroot_1.7.1.bb
index 486bf93a46..803b5f3ff4 100644
--- a/packages/fakeroot/fakeroot_1.7.1.bb
+++ b/packages/fakeroot/fakeroot_1.7.1.bb
@@ -3,9 +3,10 @@ SECTION = "base"
LICENSE = "GPL"
# fakeroot needs getopt which is provided by the util-linux package
RDEPENDS = "util-linux"
-PR = "r1"
+PR = "r2"
-SRC_URI = "ftp://ftp.debian.org/debian/pool/main/f/fakeroot/fakeroot_${PV}.tar.gz"
+SRC_URI = "ftp://ftp.debian.org/debian/pool/main/f/fakeroot/fakeroot_${PV}.tar.gz \
+ file://work-with-older-libtool.patch;patch=1"
inherit autotools
diff --git a/packages/ffmpeg/ffmpeg_svn.bb b/packages/ffmpeg/ffmpeg_svn.bb
index 051363474e..5276a8fef6 100644
--- a/packages/ffmpeg/ffmpeg_svn.bb
+++ b/packages/ffmpeg/ffmpeg_svn.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "libogg zlib libvorbis faac liba52 lame"
-PV = "0.4.9+svn${SRCDATE}"
+PV = "0.4.9+svnr${SRCREV}"
PR = "r1"
DEFAULT_PREFERENCE = "-1"
diff --git a/packages/netbase/netbase/a780/.mtn2git_empty b/packages/fxload/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/netbase/netbase/a780/.mtn2git_empty
+++ b/packages/fxload/.mtn2git_empty
diff --git a/packages/netbase/netbase/e680/.mtn2git_empty b/packages/fxload/files/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/netbase/netbase/e680/.mtn2git_empty
+++ b/packages/fxload/files/.mtn2git_empty
diff --git a/packages/fxload/files/usbheader.patch b/packages/fxload/files/usbheader.patch
new file mode 100644
index 0000000000..db205e9ab5
--- /dev/null
+++ b/packages/fxload/files/usbheader.patch
@@ -0,0 +1,15 @@
+--- fxload-0.0.20020411.orig/ezusb.c
++++ fxload-0.0.20020411/ezusb.c
+@@ -29,7 +29,11 @@
+ # include <sys/ioctl.h>
+
+ # include <linux/version.h>
+-# include <linux/usb.h>
++#if (LINUX_VERSION_CODE >= 132630)
++# include <linux/usb/ch9.h>
++#else
++# include <linux/usb_ch9.h>
++#endif
+ # include <linux/usbdevice_fs.h>
+
+ # include "ezusb.h"
diff --git a/packages/fxload/fxload_0.0.20020411.bb b/packages/fxload/fxload_0.0.20020411.bb
new file mode 100644
index 0000000000..2bebded964
--- /dev/null
+++ b/packages/fxload/fxload_0.0.20020411.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "fxload loads firmware into the ezusb chips"
+AUTHOR = "Stephen Williams, David Brownell"
+HOMEPAGE = "http://linux-hotplug.sourceforge.net/"
+SECTION = "admin"
+LICENSE = "GPL"
+DEPENDS = "linux-libc-headers"
+PR = "r1"
+
+SRC_URI = "http://dfn.dl.sourceforge.net/sourceforge/linux-hotplug/fxload-2002_04_11.tar.gz \
+ file://usbheader.patch;patch=1"
+
+S = "${WORKDIR}/fxload-2002_04_11"
+
+FILES_${PN} = "${base_sbindir}/fxload"
+
+do_install() {
+ mkdir -p ${D}/sbin/
+ cp ${S}/fxload ${D}/sbin/fxload
+}
diff --git a/packages/gcc/gcc-4.2.1/204-uclibc-locale-wchar_fix.patch b/packages/gcc/gcc-4.2.1/204-uclibc-locale-wchar_fix.patch
new file mode 100644
index 0000000000..160ab35bb3
--- /dev/null
+++ b/packages/gcc/gcc-4.2.1/204-uclibc-locale-wchar_fix.patch
@@ -0,0 +1,48 @@
+--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_wchar~ 2006-03-10 15:32:37 +0100
++++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:37:27 +0100
+@@ -401,7 +401,7 @@
+ # ifdef __UCLIBC_HAS_XLOCALE__
+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
+-# else
++# elif defined __UCLIBC_HAS_LOCALE__
+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
+ # endif
+@@ -556,7 +556,7 @@
+ # ifdef __UCLIBC_HAS_XLOCALE__
+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
+-# else
++# elif defined __UCLIBC_HAS_LOCALE__
+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
+ # endif
+--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_wchar~ 2006-03-10 15:32:37 +0100
++++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:37:27 +0100
+@@ -127,12 +127,25 @@
+ {
+ // Named locale.
+ // NB: In the GNU model wchar_t is always 32 bit wide.
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix this... should be numeric
++#endif
++#ifdef __UCLIBC__
++# ifdef __UCLIBC_HAS_XLOCALE__
++ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
++ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
++# elif defined __UCLIBC_HAS_LOCALE__
++ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
++ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
++# endif
++#else
+ union { char *__s; wchar_t __w; } __u;
+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
+ _M_data->_M_decimal_point = __u.__w;
+
+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
+ _M_data->_M_thousands_sep = __u.__w;
++#endif
+
+ if (_M_data->_M_thousands_sep == L'\0')
+ _M_data->_M_grouping = "";
diff --git a/packages/gcc/gcc-4.2.1/205-uclibc-locale-update.patch b/packages/gcc/gcc-4.2.1/205-uclibc-locale-update.patch
new file mode 100644
index 0000000000..86b2844554
--- /dev/null
+++ b/packages/gcc/gcc-4.2.1/205-uclibc-locale-update.patch
@@ -0,0 +1,347 @@
+--- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc.uclibc200_update~ 2006-03-10 15:32:37 +0100
++++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc 2006-03-10 15:39:14 +0100
+@@ -46,16 +47,13 @@
+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
+ const __c_locale& __cloc)
+ {
+- if (!(__err & ios_base::failbit))
+- {
+- char* __sanity;
+- errno = 0;
+- float __f = __strtof_l(__s, &__sanity, __cloc);
+- if (__sanity != __s && errno != ERANGE)
+- __v = __f;
+- else
+- __err |= ios_base::failbit;
+- }
++ char* __sanity;
++ errno = 0;
++ float __f = __strtof_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __f;
++ else
++ __err |= ios_base::failbit;
+ }
+
+ template<>
+@@ -63,16 +61,13 @@
+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
+ const __c_locale& __cloc)
+ {
+- if (!(__err & ios_base::failbit))
+- {
+- char* __sanity;
+- errno = 0;
+- double __d = __strtod_l(__s, &__sanity, __cloc);
+- if (__sanity != __s && errno != ERANGE)
+- __v = __d;
+- else
+- __err |= ios_base::failbit;
+- }
++ char* __sanity;
++ errno = 0;
++ double __d = __strtod_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __d;
++ else
++ __err |= ios_base::failbit;
+ }
+
+ template<>
+@@ -80,16 +75,13 @@
+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
+ const __c_locale& __cloc)
+ {
+- if (!(__err & ios_base::failbit))
+- {
+- char* __sanity;
+- errno = 0;
+- long double __ld = __strtold_l(__s, &__sanity, __cloc);
+- if (__sanity != __s && errno != ERANGE)
+- __v = __ld;
+- else
+- __err |= ios_base::failbit;
+- }
++ char* __sanity;
++ errno = 0;
++ long double __ld = __strtold_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __ld;
++ else
++ __err |= ios_base::failbit;
+ }
+
+ void
+@@ -110,7 +102,7 @@
+ void
+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
+ {
+- if (_S_get_c_locale() != __cloc)
++ if (__cloc && _S_get_c_locale() != __cloc)
+ __freelocale(__cloc);
+ }
+
+--- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc.uclibc200_update~ 2006-03-10 15:32:37 +0100
++++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2006-03-10 15:39:14 +0100
+@@ -33,9 +33,14 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <features.h>
++#ifdef __UCLIBC_HAS_LOCALE__
+ #define _LIBC
+ #include <locale>
+ #undef _LIBC
++#else
++#include <locale>
++#endif
+ #include <bits/c++locale_internal.h>
+
+ namespace std
+@@ -138,20 +143,34 @@
+ ctype<wchar_t>::
+ do_is(mask __m, wchar_t __c) const
+ {
+- // Highest bitmask in ctype_base == 10, but extra in "C"
+- // library for blank.
++ // The case of __m == ctype_base::space is particularly important,
++ // due to its use in many istream functions. Therefore we deal with
++ // it first, exploiting the knowledge that on GNU systems _M_bit[5]
++ // is the mask corresponding to ctype_base::space. NB: an encoding
++ // change would not affect correctness!
+ bool __ret = false;
+- const size_t __bitmasksize = 11;
+- for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+- if (__m & _M_bit[__bitcur]
+- && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
+- {
+- __ret = true;
+- break;
+- }
++ if (__m == _M_bit[5])
++ __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
++ else
++ {
++ // Highest bitmask in ctype_base == 10, but extra in "C"
++ // library for blank.
++ const size_t __bitmasksize = 11;
++ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
++ if (__m & _M_bit[__bitcur])
++ {
++ if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
++ {
++ __ret = true;
++ break;
++ }
++ else if (__m == _M_bit[__bitcur])
++ break;
++ }
++ }
+ return __ret;
+ }
+-
++
+ const wchar_t*
+ ctype<wchar_t>::
+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
+--- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h.uclibc200_update~ 2006-03-10 15:32:37 +0100
++++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h 2006-03-10 15:39:14 +0100
+@@ -47,18 +47,21 @@
+ template<typename _CharT>
+ messages<_CharT>::messages(size_t __refs)
+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
+- _M_name_messages(_S_get_c_name())
++ _M_name_messages(_S_get_c_name())
+ { }
+
+ template<typename _CharT>
+ messages<_CharT>::messages(__c_locale __cloc, const char* __s,
+ size_t __refs)
+- : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
+- _M_name_messages(__s)
++ : facet(__refs), _M_c_locale_messages(NULL), _M_name_messages(NULL)
+ {
+- char* __tmp = new char[std::strlen(__s) + 1];
+- std::strcpy(__tmp, __s);
++ const size_t __len = std::strlen(__s) + 1;
++ char* __tmp = new char[__len];
++ std::memcpy(__tmp, __s, __len);
+ _M_name_messages = __tmp;
++
++ // Last to avoid leaking memory if new throws.
++ _M_c_locale_messages = _S_clone_c_locale(__cloc);
+ }
+
+ template<typename _CharT>
+--- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_update~ 2006-03-10 15:37:27 +0100
++++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:39:14 +0100
+@@ -33,9 +33,14 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <features.h>
++#ifdef __UCLIBC_HAS_LOCALE__
+ #define _LIBC
+ #include <locale>
+ #undef _LIBC
++#else
++#include <locale>
++#endif
+ #include <bits/c++locale_internal.h>
+
+ #ifdef __UCLIBC_MJN3_ONLY__
+@@ -206,7 +211,7 @@
+ }
+ break;
+ default:
+- ;
++ __ret = pattern();
+ }
+ return __ret;
+ }
+--- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_update~ 2006-03-10 15:37:27 +0100
++++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:39:14 +0100
+@@ -33,9 +33,14 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <features.h>
++#ifdef __UCLIBC_HAS_LOCALE__
+ #define _LIBC
+ #include <locale>
+ #undef _LIBC
++#else
++#include <locale>
++#endif
+ #include <bits/c++locale_internal.h>
+
+ #ifdef __UCLIBC_MJN3_ONLY__
+--- gcc/libstdc++-v3/config/locale/uclibc/time_members.h.uclibc200_update~ 2006-03-10 15:06:17 +0100
++++ gcc/libstdc++-v3/config/locale/uclibc/time_members.h 2006-03-10 15:39:14 +0100
+@@ -37,25 +37,33 @@
+ template<typename _CharT>
+ __timepunct<_CharT>::__timepunct(size_t __refs)
+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
+- _M_name_timepunct(_S_get_c_name())
++ _M_name_timepunct(_S_get_c_name())
+ { _M_initialize_timepunct(); }
+
+ template<typename _CharT>
+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
+- _M_name_timepunct(_S_get_c_name())
++ _M_name_timepunct(_S_get_c_name())
+ { _M_initialize_timepunct(); }
+
+ template<typename _CharT>
+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
+ size_t __refs)
+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
+- _M_name_timepunct(__s)
++ _M_name_timepunct(NULL)
+ {
+- char* __tmp = new char[std::strlen(__s) + 1];
+- std::strcpy(__tmp, __s);
++ const size_t __len = std::strlen(__s) + 1;
++ char* __tmp = new char[__len];
++ std::memcpy(__tmp, __s, __len);
+ _M_name_timepunct = __tmp;
+- _M_initialize_timepunct(__cloc);
++
++ try
++ { _M_initialize_timepunct(__cloc); }
++ catch(...)
++ {
++ delete [] _M_name_timepunct;
++ __throw_exception_again;
++ }
+ }
+
+ template<typename _CharT>
+--- gcc-4.2/libstdc++-v3/config/locale/uclibc/c_locale.h.old 2006-09-28 11:39:00.000000000 +0200
++++ gcc-4.2/libstdc++-v3/config/locale/uclibc/c_locale.h 2006-09-28 12:10:41.000000000 +0200
+@@ -39,21 +39,23 @@
+ #pragma GCC system_header
+
+ #include <cstring> // get std::strlen
+-#include <cstdio> // get std::snprintf or std::sprintf
++#include <cstdio> // get std::vsnprintf or std::vsprintf
+ #include <clocale>
+ #include <langinfo.h> // For codecvt
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning fix this
+ #endif
+-#ifdef __UCLIBC_HAS_LOCALE__
++#ifdef _GLIBCXX_USE_ICONV
+ #include <iconv.h> // For codecvt using iconv, iconv_t
+ #endif
+-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
+-#include <libintl.h> // For messages
++#ifdef HAVE_LIBINTL_H
++#include <libintl.h> // For messages
+ #endif
++#include <cstdarg>
+
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning what is _GLIBCXX_C_LOCALE_GNU for
++// psm: used in os/gnu-linux/ctype_noninline.h
+ #endif
+ #define _GLIBCXX_C_LOCALE_GNU 1
+
+@@ -62,7 +64,7 @@
+ #endif
+ // #define _GLIBCXX_NUM_CATEGORIES 6
+ #define _GLIBCXX_NUM_CATEGORIES 0
+-
++
+ #ifdef __UCLIBC_HAS_XLOCALE__
+ namespace __gnu_cxx
+ {
+@@ -79,22 +81,24 @@
+ typedef int* __c_locale;
+ #endif
+
+- // Convert numeric value of type _Tv to string and return length of
+- // string. If snprintf is available use it, otherwise fall back to
+- // the unsafe sprintf which, in general, can be dangerous and should
++ // Convert numeric value of type double to string and return length of
++ // string. If vsnprintf is available use it, otherwise fall back to
++ // the unsafe vsprintf which, in general, can be dangerous and should
+ // be avoided.
+- template<typename _Tv>
+- int
+- __convert_from_v(char* __out,
+- const int __size __attribute__ ((__unused__)),
+- const char* __fmt,
+-#ifdef __UCLIBC_HAS_XCLOCALE__
+- _Tv __v, const __c_locale& __cloc, int __prec)
++ inline int
++ __convert_from_v(const __c_locale&
++#ifndef __UCLIBC_HAS_XCLOCALE__
++ __cloc __attribute__ ((__unused__))
++#endif
++ ,
++ char* __out,
++ const int __size,
++ const char* __fmt, ...)
+ {
++ va_list __args;
++#ifdef __UCLIBC_HAS_XCLOCALE__
+ __c_locale __old = __gnu_cxx::__uselocale(__cloc);
+ #else
+- _Tv __v, const __c_locale&, int __prec)
+- {
+ # ifdef __UCLIBC_HAS_LOCALE__
+ char* __old = std::setlocale(LC_ALL, NULL);
+ char* __sav = new char[std::strlen(__old) + 1];
+@@ -103,7 +107,9 @@
+ # endif
+ #endif
+
+- const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
++ va_start(__args, __fmt);
++ const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
++ va_end(__args);
+
+ #ifdef __UCLIBC_HAS_XCLOCALE__
+ __gnu_cxx::__uselocale(__old);
diff --git a/packages/gcc/gcc-cross_4.2.1.bb b/packages/gcc/gcc-cross_4.2.1.bb
index b11259676e..a9e4a0ddc2 100644
--- a/packages/gcc/gcc-cross_4.2.1.bb
+++ b/packages/gcc/gcc-cross_4.2.1.bb
@@ -5,7 +5,7 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r3"
+PR = "r4"
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc_4.2.1.bb b/packages/gcc/gcc_4.2.1.bb
index 11599444f8..7c50167345 100644
--- a/packages/gcc/gcc_4.2.1.bb
+++ b/packages/gcc/gcc_4.2.1.bb
@@ -1,4 +1,4 @@
-PR = "r2"
+PR = "r3"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
@@ -13,6 +13,8 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://103-uclibc-conf-noupstream.patch;patch=1 \
file://200-uclibc-locale.patch;patch=1 \
file://203-uclibc-locale-no__x.patch;patch=1 \
+ file://204-uclibc-locale-wchar_fix.patch;patch=1 \
+ file://205-uclibc-locale-update.patch;patch=1 \
file://300-libstdc++-pic.patch;patch=1 \
file://301-missing-execinfo_h.patch;patch=1 \
file://302-c99-snprintf.patch;patch=1 \
diff --git a/packages/glibc/eglibc-initial_svn.bb b/packages/glibc/eglibc-initial_svn.bb
index 02ba4c6273..ae3f0d2b41 100644
--- a/packages/glibc/eglibc-initial_svn.bb
+++ b/packages/glibc/eglibc-initial_svn.bb
@@ -10,6 +10,7 @@ do_configure () {
sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
chmod +x ${S}/configure
unset CFLAGS
+ find ${S} -name "configure" | xargs touch
CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
--without-cvs --disable-sanity-checks \
--with-headers=${CROSS_DIR}/${TARGET_SYS}/include \
diff --git a/packages/glibc/eglibc-intermediate_svn.bb b/packages/glibc/eglibc-intermediate_svn.bb
index c26f649031..5ecbdb6ed8 100644
--- a/packages/glibc/eglibc-intermediate_svn.bb
+++ b/packages/glibc/eglibc-intermediate_svn.bb
@@ -6,6 +6,7 @@ do_install () {
# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
do_configure_prepend() {
+ find ${S} -name "configure" | xargs touch
sed -i s:-Werror:: ${S}/configure
}
diff --git a/packages/glibc/eglibc_svn.bb b/packages/glibc/eglibc_svn.bb
index b47493f4e0..0b69283681 100644
--- a/packages/glibc/eglibc_svn.bb
+++ b/packages/glibc/eglibc_svn.bb
@@ -65,7 +65,7 @@ do_configure () {
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
- find ${WORKDIR} -name "configure" | xargs touch
+ find ${S} -name "configure" | xargs touch
CPPFLAGS="" oe_runconf
}
diff --git a/packages/gnome/gnome-desktop_2.18.3.bb b/packages/gnome/gnome-desktop_2.18.3.bb
index 02beafa044..e341fd31ab 100644
--- a/packages/gnome/gnome-desktop_2.18.3.bb
+++ b/packages/gnome/gnome-desktop_2.18.3.bb
@@ -11,8 +11,6 @@ SRC_URI += "file://scrollkeeper.patch;patch=1 \
EXTRA_OECONF = "--disable-scrollkeeper"
-EXTRA_AUTORECONF = "-I ${STAGING_DIR}/${HOST_SYS}/share/aclocal/gnome2-macros"
-
do_configure_prepend () {
cp ${STAGING_DIR}/${HOST_SYS}/share/gnome-common/data/omf.make ${S}
}
diff --git a/packages/gnome/gnome-panel_2.18.1.bb b/packages/gnome/gnome-panel_2.18.1.bb
index 349951143b..59c6f3e6e0 100644
--- a/packages/gnome/gnome-panel_2.18.1.bb
+++ b/packages/gnome/gnome-panel_2.18.1.bb
@@ -1,8 +1,9 @@
LICENSE = "GPL"
DEPENDS = "libwnck orbit2 gtk+ libgnome libgnomeui gnome-desktop libglade gnome-menus"
-inherit gnome pkgconfig
+PR = "r1"
+inherit gnome pkgconfig
do_configure_prepend() {
sed -i -e s:help:: ${S}/Makefile.am
@@ -12,6 +13,9 @@ do_configure_prepend() {
PACKAGES =+ "libpanel-applet"
FILES_libpanel-applet = "${libdir}/libpanel-applet-2.so.*"
+FILES_${PN} =+ "${datadir}/gnome* \
+ ${datadir}/icons"
+
do_stage() {
autotools_stage_all
}
diff --git a/packages/gnome/libwnck_2.13.5.bb b/packages/gnome/libwnck_2.13.5.bb
index 1830a7540a..5ad3e00cbf 100644
--- a/packages/gnome/libwnck_2.13.5.bb
+++ b/packages/gnome/libwnck_2.13.5.bb
@@ -1,7 +1,6 @@
LICENSE = "LGPL"
DEPENDS = "gtk+"
DESCRIPTION = "Window navigation construction toolkit"
-HOMEPAGE = ""
inherit gnome
diff --git a/packages/gpephone/gpe-applauncher_0.10.bb b/packages/gpephone/gpe-applauncher_0.10.bb
new file mode 100644
index 0000000000..fbc47bd091
--- /dev/null
+++ b/packages/gpephone/gpe-applauncher_0.10.bb
@@ -0,0 +1,12 @@
+LICENSE = "GPL"
+DESCRIPTION = "A cellphone application launcher."
+SECTION = "gpe"
+PRIORITY = "optional"
+PR = "r0"
+
+DEPENDS = "gtk+ libgpewidget libgpephone libgpelaunch dbus-glib libsettings libxsettings-client"
+
+GPE_TARBALL_SUFFIX= "bz2"
+inherit gpephone autotools
+
+FILES_${PN} += '${datadir}/themes'
diff --git a/packages/gpephone/libidn_0.5.19.bb b/packages/gpephone/libidn_0.5.19.bb
index 4254ef466d..322790b8ab 100644
--- a/packages/gpephone/libidn_0.5.19.bb
+++ b/packages/gpephone/libidn_0.5.19.bb
@@ -2,7 +2,6 @@ LICENSE = "LGPL"
DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
SECTION = "libs"
PRIORITY = "optional"
-DEPENDS = "glibc"
PR = "r0"
inherit pkgconfig autotools
diff --git a/packages/gpicview/.mtn2git_empty b/packages/gpicview/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpicview/.mtn2git_empty
diff --git a/packages/gpicview/gpicview_0.1.5.bb b/packages/gpicview/gpicview_0.1.5.bb
new file mode 100644
index 0000000000..14248ec14f
--- /dev/null
+++ b/packages/gpicview/gpicview_0.1.5.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Extremely lightweight and fast with low memory usage"
+LICENSE = "GPL"
+
+DEPENDS = "gtk+"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/lxde/${PN}-${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+
diff --git a/packages/gsm/files/default b/packages/gsm/files/default
index 4b582dd5ac..14c8fc8589 100644
--- a/packages/gsm/files/default
+++ b/packages/gsm/files/default
@@ -6,6 +6,7 @@ case `cpuinfo_id` in
"GTA01"|"GTA02")
GSMD_OPTS="-s 115200 -F"
GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on"
+ GSM_RES="/sys/bus/platform/devices/gta01-pm-gsm.0/reset"
GSM_DEV="/dev/ttySAC0"
;;
"HTC Apache"|"HTC Blueangel")
@@ -28,6 +29,10 @@ case `cpuinfo_id` in
GSMD_OPTS="-s 460800 -F -w 1"
GSM_DEV="/dev/ttyS0"
;;
+ "Motorola Ezx Platform")
+ GSMD_OPTS="-s 115200 -F"
+ GSM_DEV="/dev/mux0"
+ ;;
*)
# Unknown board
@@ -37,6 +42,9 @@ case `cpuinfo_id` in
# If your GSM device needs to be powered up, uncomment and modify the next line
#GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on"
+ # If your GSM device then needs to be reset, uncomment and modify the next line
+ #GSM_RES="/sys/bus/platform/devices/gta01-pm-gsm.0/reset"
+
# This should be in a common /etc/default/serial, together with
# BT_DEV and IR_DEV for devices that have those on a serial port
#GSM_DEV="/dev/ttyS1"
diff --git a/packages/gsm/files/gsmd b/packages/gsm/files/gsmd
index bc7999ea77..0ac4698899 100644
--- a/packages/gsm/files/gsmd
+++ b/packages/gsm/files/gsmd
@@ -13,10 +13,10 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin
case "$1" in
start)
- [ -n $GSM_POW ] && ( echo "0" >$GSM_POW; sleep 1 )
- [ -n $GSM_POW ] && ( echo "1" >$GSM_POW; sleep 1 )
- [ -n $GSM_RES ] && ( echo "1" >$GSM_RES; sleep 1 )
- [ -n $GSM_RES ] && ( echo "0" >$GSM_RES; sleep 2 )
+ [ -n "$GSM_POW" ] && ( echo "0" >$GSM_POW; sleep 1 )
+ [ -n "$GSM_POW" ] && ( echo "1" >$GSM_POW; sleep 1 )
+ [ -n "$GSM_RES" ] && ( echo "1" >$GSM_RES; sleep 1 )
+ [ -n "$GSM_RES" ] && ( echo "0" >$GSM_RES; sleep 2 )
echo -n "Starting GSM daemon: "
start-stop-daemon -S -x /usr/sbin/gsmd -- gsmd -p $GSM_DEV $GSMD_OPTS >/tmp/gsm.log 2>&1 &
@@ -28,7 +28,7 @@ case "$1" in
fi
;;
stop)
- [ -n $GSM_POW ] && echo "0" >$GSM_POW
+ [ -n "$GSM_POW" ] && echo "0" >$GSM_POW
echo -n "Stopping GSM daemon: "
start-stop-daemon -K -x /usr/sbin/gsmd
diff --git a/packages/gsm/libgsmd_svn.bb b/packages/gsm/libgsmd_svn.bb
index 914520ad8a..b312015172 100644
--- a/packages/gsm/libgsmd_svn.bb
+++ b/packages/gsm/libgsmd_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "GPL LGPL"
SECTION = "libs/gsm"
PROVIDES += "gsmd"
PV = "0.1+svnr${SRCREV}"
-PR = "r22"
+PR = "r25"
SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \
file://gsmd \
diff --git a/packages/gtk+/gdk-pixbuf-csource-native_2.10.14.bb b/packages/gtk+/gdk-pixbuf-csource-native_2.10.14.bb
new file mode 100644
index 0000000000..f3b7b0e6c8
--- /dev/null
+++ b/packages/gtk+/gdk-pixbuf-csource-native_2.10.14.bb
@@ -0,0 +1,25 @@
+require gtk+_${PV}.bb
+inherit native
+DEPENDS = ""
+S = "${WORKDIR}/gtk+-${PV}"
+FILESPATH = "${FILE_DIRNAME}/gdk-pixbuf-csource:${FILE_DIRNAME}/gtk+-${PV}:${FILE_DIRNAME}/files"
+SRC_URI += "file://reduce-dependencies.patch;patch=1"
+
+EXTRA_OECONF = "\
+ --without-x \
+ --with-gdktarget=linux-fb \
+ --without-libtiff \
+"
+
+do_compile() {
+ cd gdk-pixbuf && oe_runmake
+}
+
+do_stage() {
+ cd gdk-pixbuf && oe_runmake install
+}
+
+do_install() {
+ :
+}
+
diff --git a/packages/gtk+/gdk-pixbuf-csource/.mtn2git_empty b/packages/gtk+/gdk-pixbuf-csource/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gtk+/gdk-pixbuf-csource/.mtn2git_empty
diff --git a/packages/gtk+/gdk-pixbuf-csource/reduce-dependencies.patch b/packages/gtk+/gdk-pixbuf-csource/reduce-dependencies.patch
new file mode 100644
index 0000000000..c31a3b137a
--- /dev/null
+++ b/packages/gtk+/gdk-pixbuf-csource/reduce-dependencies.patch
@@ -0,0 +1,149 @@
+#
+# strip unnecessary stuff out of configure, we just want
+# to build gdk-pixbuf-csource.
+# -- Michael 'Mickey' Lauer <mlauer@vanille-media.de>
+#
+Index: gtk+-2.10.14/configure.in
+===================================================================
+--- gtk+-2.10.14.orig/configure.in
++++ gtk+-2.10.14/configure.in
+@@ -32,9 +32,6 @@ m4_define([gtk_binary_version], [2.10.0]
+
+ # required versions of other packages
+ m4_define([glib_required_version], [2.12.0])
+-m4_define([pango_required_version], [1.12.0])
+-m4_define([atk_required_version], [1.9.0])
+-m4_define([cairo_required_version], [1.2.0])
+
+
+ AC_INIT([gtk+], [gtk_version],
+@@ -343,10 +340,7 @@ ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+ ## the version requirements since those make the module lists
+ ## annoying to construct
+ PKG_CHECK_MODULES(BASE_DEPENDENCIES,
+- [glib-2.0 >= glib_required_version dnl
+- atk >= atk_required_version dnl
+- pango >= pango_required_version dnl
+- cairo >= cairo_required_version])
++ [glib-2.0 >= glib_required_version])
+
+ if test "$os_win32" != yes; then
+ # libtool option to control which symbols are exported
+@@ -1437,48 +1431,6 @@ else
+ AM_CONDITIONAL(USE_DIRECTFB, false)
+ fi
+
+-
+-# Check for Pango flags
+-
+-if test "x$gdktarget" = "xwin32"; then
+- PANGO_PACKAGES="pangowin32 pangocairo"
+-else
+- PANGO_PACKAGES="pango pangocairo"
+-fi
+-
+-AC_MSG_CHECKING(Pango flags)
+-if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
+- PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
+- PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
+-
+- AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
+-else
+- AC_MSG_ERROR([
+-*** Pango not found. Pango built with Cairo support is required
+-*** to build GTK+. See http://www.pango.org for Pango information.
+-])
+-fi
+-
+-CFLAGS="$CFLAGS $PANGO_CFLAGS"
+-
+-if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
+- :
+-else
+- gtk_save_LIBS="$LIBS"
+- LIBS="$PANGO_LIBS $LIBS"
+- AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
+-*** Can't link to Pango. Pango is required to build
+-*** GTK+. For more information see http://www.pango.org]))
+- LIBS="$gtk_save_LIBS"
+-fi
+-
+-CFLAGS="$saved_cflags"
+-LDFLAGS="$saved_ldflags"
+-
+-GDK_PACKAGES="$PANGO_PACKAGES"
+-if test "x$gdktarget" = "xx11"; then
+- GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
+-fi
+ GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
+ GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
+
+@@ -1487,7 +1439,7 @@ GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags g
+ # into the pkg-config files
+ #
+ if test $enable_explicit_deps != yes ; then
+- GDK_PACKAGES="$PANGO_PACKAGES"
++ GDK_PACKAGES=
+ GDK_EXTRA_LIBS=
+ fi
+
+@@ -1498,39 +1450,10 @@ AC_SUBST(GDK_DEP_LIBS)
+ AC_SUBST(GDK_DEP_CFLAGS)
+
+
+-########################################
+-# Check for Accessibility Toolkit flags
+-########################################
+-
+-ATK_PACKAGES=atk
+-AC_MSG_CHECKING(ATK flags)
+-if $PKG_CONFIG --exists $ATK_PACKAGES ; then
+- ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
+- ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
+-
+- AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
+-else
+- AC_MSG_ERROR([
+-*** Accessibility Toolkit not found. Accessibility Toolkit is required
+-*** to build GTK+.
+-])
+-fi
+-
+-if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
+- :
+-else
+- gtk_save_LIBS="$LIBS"
+- LIBS="$ATK_LIBS $LIBS"
+- AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
+- *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
+- *** to build GTK+]))
+- LIBS="$gtk_save_LIBS"
+-fi
+-
+-GTK_PACKAGES="atk cairo"
++GTK_PACKAGES=
+ GTK_EXTRA_LIBS=
+ GTK_EXTRA_CFLAGS=
+-GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
++GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
+ GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
+
+ if test x"$os_win32" = xyes; then
+@@ -1584,17 +1507,6 @@ AM_CONDITIONAL(HAVE_CUPS, test "x$CUPS_C
+
+ gtk_save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS"
+-
+-AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
+-*** Can't find cairo-pdf.h. You must build Cairo with the pdf
+-*** backend enabled.]))
+-
+-if test "$os_win32" != "yes"; then
+- AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([
+-*** Can't find cairo-ps.h. You must build Cairo with the
+-*** postscript backend enabled.]))
+-fi
+-
+ CPPFLAGS="$gtk_save_cppflags"
+
+
diff --git a/packages/gtk-webcore/midori/.mtn2git_empty b/packages/gtk-webcore/midori/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gtk-webcore/midori/.mtn2git_empty
diff --git a/packages/gtk-webcore/midori/midori.desktop b/packages/gtk-webcore/midori/midori.desktop
new file mode 100644
index 0000000000..683b1a343e
--- /dev/null
+++ b/packages/gtk-webcore/midori/midori.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Midori
+Comment=Webkit based browser
+Exec=midori
+Terminal=false
+Type=Application
+Categories=Application
diff --git a/packages/gtk-webcore/midori_0.0.2.bb b/packages/gtk-webcore/midori_0.0.2.bb
deleted file mode 100644
index 7f5fb6cd74..0000000000
--- a/packages/gtk-webcore/midori_0.0.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Midori is a lightweight web browser."
-LICENSE = "GPLv2"
-
-DEPENDS = "osb-jscore osb-nrcit osb-nrcore libsexy"
-
-inherit autotools pkgconfig
-
-SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz"
-
-
-
diff --git a/packages/gtk-webcore/midori_0.0.3.bb b/packages/gtk-webcore/midori_0.0.3.bb
deleted file mode 100644
index 7f5fb6cd74..0000000000
--- a/packages/gtk-webcore/midori_0.0.3.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Midori is a lightweight web browser."
-LICENSE = "GPLv2"
-
-DEPENDS = "osb-jscore osb-nrcit osb-nrcore libsexy"
-
-inherit autotools pkgconfig
-
-SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz"
-
-
-
diff --git a/packages/gtk-webcore/midori_0.0.4.bb b/packages/gtk-webcore/midori_0.0.4.bb
deleted file mode 100644
index 4f39f7bab3..0000000000
--- a/packages/gtk-webcore/midori_0.0.4.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Midori is a lightweight web browser."
-LICENSE = "GPLv2"
-
-DEPENDS = "webkit-gtk libsexy"
-
-inherit autotools pkgconfig
-
-SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz"
-
-
-
diff --git a/packages/gtk-webcore/midori_0.0.5.bb b/packages/gtk-webcore/midori_0.0.5.bb
deleted file mode 100644
index 4f39f7bab3..0000000000
--- a/packages/gtk-webcore/midori_0.0.5.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Midori is a lightweight web browser."
-LICENSE = "GPLv2"
-
-DEPENDS = "webkit-gtk libsexy"
-
-inherit autotools pkgconfig
-
-SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz"
-
-
-
diff --git a/packages/gtk-webcore/midori_0.0.6.bb b/packages/gtk-webcore/midori_0.0.6.bb
new file mode 100644
index 0000000000..ed0213964f
--- /dev/null
+++ b/packages/gtk-webcore/midori_0.0.6.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Midori is a lightweight web browser."
+LICENSE = "GPLv2"
+
+DEPENDS = "webkit-gtk libsexy"
+
+inherit autotools pkgconfig
+
+SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz \
+ file://midori.desktop"
+
+do_install_append() {
+ if [ -f ${WORKDIR}/midori.desktop ]; then
+ install -d ${D}${datadir}/applications
+ install -m 0644 ${WORKDIR}/midori.desktop ${D}${datadir}/applications
+ fi
+
+}
+
diff --git a/packages/images/angstrom-minimal-image-with-mtd-utils.bb b/packages/images/angstrom-minimal-image-with-mtd-utils.bb
index 740c39126c..4fe33e9282 100644
--- a/packages/images/angstrom-minimal-image-with-mtd-utils.bb
+++ b/packages/images/angstrom-minimal-image-with-mtd-utils.bb
@@ -3,7 +3,7 @@
# to program the NAND flash.
require angstrom-minimal-image.bb
-RDEPENDS += "mtd-utils"
+IMAGE_INSTALL += "mtd-utils"
export IMAGE_BASENAME = "minimalist-image-mtdutils"
diff --git a/packages/images/liveramdisk-image.bb b/packages/images/liveramdisk-image.bb
new file mode 100644
index 0000000000..026ed7b81c
--- /dev/null
+++ b/packages/images/liveramdisk-image.bb
@@ -0,0 +1,28 @@
+# LiveRamdisk image
+# Hwo to build:
+# First build angstrom-x11-image with glibc
+# then switch to ANGSTROM_MODE=uclibc and build this recipe
+# LiveRamdisk concept/implementation by Paul Sokolovsky
+LICENSE = "MIT"
+IMAGE_FSTYPES = "cpio.gz"
+
+#IMAGE_INSTALL = "initramfs-boot busybox kernel-module-uinput uclibc libgcc1"
+IMAGE_INSTALL = "initramfs-jffs2 busybox-static kernel-module-mtdram"
+
+export IMAGE_BASENAME = "liveramdisk"
+export IMAGE_LINGUAS = ""
+
+# Install only ${IMAGE_INSTALL}, not even deps
+PACKAGE_INSTALL_NO_DEPS = "1"
+
+inherit image
+
+IMAGE_PREPROCESS_COMMAND += " copy_jffs2_image; "
+
+copy_jffs2_image() {
+ # We need glibc main image
+ latest_image=`ls -1 -r ${DEPLOY_DIR}/../glibc/images/${MACHINE}/Angstrom-x11-image-glibc-*.rootfs.jffs2|head -n1`
+ [ -n "$latest_image" ] || oefatal "Cannot find jffs2 image in ${DEPLOY_DIR}/../glibc/images/${MACHINE}/"
+ oenote "Using: cp $latest_image ${IMAGE_ROOTFS}/initrd.jffs2"
+ cp $latest_image ${IMAGE_ROOTFS}/initrd.jffs2
+}
diff --git a/packages/initrdscripts/initramfs-jffs2/jffs2boot.sh b/packages/initrdscripts/initramfs-jffs2/jffs2boot.sh
index 81077eeae5..18f4d93273 100644
--- a/packages/initrdscripts/initramfs-jffs2/jffs2boot.sh
+++ b/packages/initrdscripts/initramfs-jffs2/jffs2boot.sh
@@ -4,7 +4,7 @@ echo "Starting initrd boot..."
mkdir /proc
mount -t proc proc /proc
-modprobe mtdram total_size=24576 erase_size=256
+modprobe mtdram total_size=25088 erase_size=256
sleep 1
ID=`grep "mtdram test device" /proc/mtd | cut -d: -f1| cut -b4-`
diff --git a/packages/initrdscripts/initramfs-jffs2_0.1.bb b/packages/initrdscripts/initramfs-jffs2_0.1.bb
index 78034c99c9..3e11465536 100644
--- a/packages/initrdscripts/initramfs-jffs2_0.1.bb
+++ b/packages/initrdscripts/initramfs-jffs2_0.1.bb
@@ -1,5 +1,5 @@
SRC_URI = "file://jffs2boot.sh"
-PR = "r0"
+PR = "r1"
do_install() {
install -m 0755 ${WORKDIR}/jffs2boot.sh ${D}/init
diff --git a/packages/libnotify/libnotify_0.4.2.bb b/packages/libnotify/libnotify_0.4.2.bb
deleted file mode 100644
index f3f3aff334..0000000000
--- a/packages/libnotify/libnotify_0.4.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "sends desktop notifications to a notification daemon"
-HOMEPAGE = "http://www.galago-project.org/"
-LICENSE = "LGPL"
-DEPENDS = "dbus gtk+"
-PR = "r0"
-
-SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${PN}-${PV}.tar.gz"
-
-inherit autotools pkgconfig
-
-do_stage() {
- autotools_stage_all
-}
diff --git a/packages/libnotify/libnotify_0.4.3.bb b/packages/libnotify/libnotify_0.4.3.bb
deleted file mode 100644
index f3f3aff334..0000000000
--- a/packages/libnotify/libnotify_0.4.3.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "sends desktop notifications to a notification daemon"
-HOMEPAGE = "http://www.galago-project.org/"
-LICENSE = "LGPL"
-DEPENDS = "dbus gtk+"
-PR = "r0"
-
-SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${PN}-${PV}.tar.gz"
-
-inherit autotools pkgconfig
-
-do_stage() {
- autotools_stage_all
-}
diff --git a/packages/libnotify/libnotify_0.4.4.bb b/packages/libnotify/libnotify_0.4.4.bb
index f3f3aff334..9152133b4d 100644
--- a/packages/libnotify/libnotify_0.4.4.bb
+++ b/packages/libnotify/libnotify_0.4.4.bb
@@ -1,10 +1,11 @@
-DESCRIPTION = "sends desktop notifications to a notification daemon"
-HOMEPAGE = "http://www.galago-project.org/"
-LICENSE = "LGPL"
-DEPENDS = "dbus gtk+"
-PR = "r0"
+DESCRIPTION = "Send desktop notifications to a notification daemon"
+HOMEPAGE = "http://www.galago-project.org/"
+SECTION = "libs"
+LICENSE = "LGPL"
+DEPENDS = "dbus gtk+"
+PR = "r0"
-SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${PN}-${PV}.tar.gz"
+SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${PN}-${PV}.tar.gz"
inherit autotools pkgconfig
diff --git a/packages/libowl/libowl_svn.bb b/packages/libowl/libowl_svn.bb
index 2126e3d4d0..7abc5e409d 100644
--- a/packages/libowl/libowl_svn.bb
+++ b/packages/libowl/libowl_svn.bb
@@ -12,7 +12,7 @@ HOMEPAGE = "http://www.o-hand.com"
LICENSE = "LGPL"
SECTION = "libs"
PR = "r3"
-PV = "0.0+svn${SRCDATE}"
+PV = "0.0+svnr${SRCREV}"
DEPENDS = "gtk+ glib-2.0"
PACKAGES = ""
diff --git a/packages/libxosd/libxosd_svn.bb b/packages/libxosd/libxosd_svn.bb
index 7dfd05d5d9..bb16f7f09a 100644
--- a/packages/libxosd/libxosd_svn.bb
+++ b/packages/libxosd/libxosd_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "A library for displaying a TV-like on-screen display in X."
SECTION = "libs/x11"
DEPENDS = "virtual/libx11 libxext"
LICENSE = "LGPL"
-PV = "2.2.15+svn${SRCDATE}"
+PV = "2.2.15+svnr${SRCREV}"
PR = "r5"
SRC_URI = "svn://libxosd.svn.sourceforge.net/svnroot/libxosd/source;module=current;proto=https \
diff --git a/packages/linux/linux-2.6.20/at91sam9260ek/.mtn2git_empty b/packages/linux/linux-2.6.20/at91sam9260ek/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-2.6.20/at91sam9260ek/.mtn2git_empty
diff --git a/packages/linux/linux-2.6.20/at91sam9260ek/defconfig b/packages/linux/linux-2.6.20/at91sam9260ek/defconfig
new file mode 100644
index 0000000000..9278e6e857
--- /dev/null
+++ b/packages/linux/linux-2.6.20/at91sam9260ek/defconfig
@@ -0,0 +1,1209 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.20
+# Wed Apr 18 14:53:20 2007
+#
+CONFIG_ARM=y
+# CONFIG_GENERIC_TIME is not set
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+CONFIG_ARCH_AT91=y
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+
+#
+# Atmel AT91 System-on-Chip
+#
+# CONFIG_ARCH_AT91RM9200 is not set
+CONFIG_ARCH_AT91SAM9260=y
+# CONFIG_ARCH_AT91SAM9261 is not set
+# CONFIG_ARCH_AT91SAM9263 is not set
+
+#
+# AT91SAM9260 Variants
+#
+# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set
+
+#
+# AT91SAM9260 / AT91SAM9XE Board Type
+#
+CONFIG_MACH_AT91SAM9260EK=y
+
+#
+# AT91 Board Options
+#
+CONFIG_MTD_AT91_DATAFLASH_CARD=y
+# CONFIG_MTD_NAND_AT91_BUSWIDTH_16 is not set
+
+#
+# AT91 Feature Selections
+#
+# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+# CONFIG_ARM_THUMB is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=100
+# CONFIG_AEABI is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,17105363 root=/dev/ram0 rw"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+# CONFIG_APM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_IEEE80211 is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_DATAFLASH=y
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+CONFIG_MTD_NAND_AT91=y
+# CONFIG_MTD_NAND_NANDSIM is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=4
+CONFIG_BLK_DEV_RAM_SIZE=24576
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+# CONFIG_ATA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+CONFIG_DAVICOM_PHY=y
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_FIXED_PHY is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_MACB=y
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=y
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_ATMEL=y
+CONFIG_SERIAL_ATMEL_CONSOLE=y
+# CONFIG_SERIAL_ATMEL_TTYAT is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_ATMEL=y
+# CONFIG_SPI_BITBANG is not set
+
+#
+# SPI Protocol Masters
+#
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+# CONFIG_HWMON is not set
+# CONFIG_HWMON_VID is not set
+
+#
+# Misc devices
+#
+# CONFIG_TIFM_CORE is not set
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+# CONFIG_USB_DABUSB is not set
+
+#
+# Graphics support
+#
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB=y
+# CONFIG_FB_CFB_FILLRECT is not set
+# CONFIG_FB_CFB_COPYAREA is not set
+# CONFIG_FB_CFB_IMAGEBLIT is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_SEQUENCER=y
+CONFIG_SND_SEQ_DUMMY=y
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+CONFIG_SND_VERBOSE_PRINTK=y
+CONFIG_SND_DEBUG=y
+CONFIG_SND_DEBUG_DETECT=y
+# CONFIG_SND_PCM_XRUN_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# HID Devices
+#
+CONFIG_HID=y
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Input Devices
+#
+# CONFIG_USB_HID is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_ACECAD is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_TOUCHSCREEN is not set
+# CONFIG_USB_YEALINK is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+# CONFIG_USB_ATI_REMOTE2 is not set
+# CONFIG_USB_KEYSPAN_REMOTE is not set
+# CONFIG_USB_APPLETOUCH is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET_MII is not set
+# CONFIG_USB_USBNET is not set
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+CONFIG_USB_GADGET_AT91=y
+CONFIG_USB_AT91=y
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_ETH is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_AT91=y
+# CONFIG_MMC_TIFM_SD is not set
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4DEV_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=y
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+CONFIG_NLS_ISO8859_15=y
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_ERRORS is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_PLIST=y
+CONFIG_IOMAP_COPY=y
diff --git a/packages/linux/linux-2.6.20/at91sam9261ek/.mtn2git_empty b/packages/linux/linux-2.6.20/at91sam9261ek/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-2.6.20/at91sam9261ek/.mtn2git_empty
diff --git a/packages/linux/linux-2.6.20/at91sam9261ek/defconfig b/packages/linux/linux-2.6.20/at91sam9261ek/defconfig
new file mode 100644
index 0000000000..595e67cd83
--- /dev/null
+++ b/packages/linux/linux-2.6.20/at91sam9261ek/defconfig
@@ -0,0 +1,1242 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.20
+# Thu Aug 30 18:18:12 2007
+#
+CONFIG_ARM=y
+# CONFIG_GENERIC_TIME is not set
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+CONFIG_ARCH_AT91=y
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+
+#
+# Atmel AT91 System-on-Chip
+#
+# CONFIG_ARCH_AT91RM9200 is not set
+# CONFIG_ARCH_AT91SAM9260 is not set
+CONFIG_ARCH_AT91SAM9261=y
+# CONFIG_ARCH_AT91SAM9263 is not set
+
+#
+# AT91SAM9261 Board Type
+#
+CONFIG_MACH_AT91SAM9261EK=y
+
+#
+# AT91 Board Options
+#
+CONFIG_MTD_AT91_DATAFLASH_CARD=y
+# CONFIG_MTD_NAND_AT91_BUSWIDTH_16 is not set
+
+#
+# AT91 Feature Selections
+#
+CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+# CONFIG_ARM_THUMB is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=100
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,17105363 root=/dev/ram0 rw"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+# CONFIG_APM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_IEEE80211 is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_DATAFLASH=y
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+CONFIG_MTD_NAND_AT91=y
+# CONFIG_MTD_NAND_NANDSIM is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=4
+CONFIG_BLK_DEV_RAM_SIZE=24576
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+# CONFIG_ATA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+CONFIG_DAVICOM_PHY=y
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_FIXED_PHY is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=y
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_ATMEL=y
+CONFIG_SERIAL_ATMEL_CONSOLE=y
+# CONFIG_SERIAL_ATMEL_TTYAT is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_AT91=y
+CONFIG_I2C_AT91_CLOCKRATE=100000
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_ATMEL=y
+# CONFIG_SPI_BITBANG is not set
+
+#
+# SPI Protocol Masters
+#
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+# CONFIG_HWMON is not set
+# CONFIG_HWMON_VID is not set
+
+#
+# Misc devices
+#
+# CONFIG_TIFM_CORE is not set
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+# CONFIG_USB_DABUSB is not set
+
+#
+# Graphics support
+#
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_ATMEL=y
+CONFIG_FB_INTSRAM=y
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_SEQUENCER=y
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+# CONFIG_SND_AT91_AC97 is not set
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# HID Devices
+#
+CONFIG_HID=y
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Input Devices
+#
+# CONFIG_USB_HID is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_ACECAD is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_TOUCHSCREEN is not set
+# CONFIG_USB_YEALINK is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+# CONFIG_USB_ATI_REMOTE2 is not set
+# CONFIG_USB_KEYSPAN_REMOTE is not set
+# CONFIG_USB_APPLETOUCH is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET_MII is not set
+# CONFIG_USB_USBNET is not set
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+CONFIG_USB_GADGET_AT91=y
+CONFIG_USB_AT91=y
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_ETH is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4DEV_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=y
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=y
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+CONFIG_NLS_ISO8859_15=y
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_ERRORS is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_IOMAP_COPY=y
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/.mtn2git_empty b/packages/linux/linux-2.6.22+2.6.23-rc5/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/.mtn2git_empty
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/.mtn2git_empty b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/.mtn2git_empty
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-gpio-interrupt-debounce.diff b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-gpio-interrupt-debounce.diff
new file mode 100644
index 0000000000..dbd2856e87
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-gpio-interrupt-debounce.diff
@@ -0,0 +1,87 @@
+
+Implement GPIO interrupt debouncing on ep93xx.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c
+===================================================================
+--- linux-2.6.23-rc5.orig/arch/arm/mach-ep93xx/core.c 2007-09-04 02:22:19.000000000 +0200
++++ linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c 2007-09-04 02:28:19.000000000 +0200
+@@ -154,6 +154,7 @@
+ *************************************************************************/
+ static unsigned char gpio_int_unmasked[3];
+ static unsigned char gpio_int_enabled[3];
++static unsigned char gpio_int_debounce[3];
+ static unsigned char gpio_int_type1[3];
+ static unsigned char gpio_int_type2[3];
+
+@@ -161,16 +162,19 @@
+ {
+ if (abf == 0) {
+ __raw_writeb(0, EP93XX_GPIO_A_INT_ENABLE);
++ __raw_writeb(gpio_int_debounce[0], EP93XX_GPIO_A_INT_DEBOUNCE);
+ __raw_writeb(gpio_int_type2[0], EP93XX_GPIO_A_INT_TYPE2);
+ __raw_writeb(gpio_int_type1[0], EP93XX_GPIO_A_INT_TYPE1);
+ __raw_writeb(gpio_int_unmasked[0] & gpio_int_enabled[0], EP93XX_GPIO_A_INT_ENABLE);
+ } else if (abf == 1) {
+ __raw_writeb(0, EP93XX_GPIO_B_INT_ENABLE);
++ __raw_writeb(gpio_int_debounce[1], EP93XX_GPIO_B_INT_DEBOUNCE);
+ __raw_writeb(gpio_int_type2[1], EP93XX_GPIO_B_INT_TYPE2);
+ __raw_writeb(gpio_int_type1[1], EP93XX_GPIO_B_INT_TYPE1);
+ __raw_writeb(gpio_int_unmasked[1] & gpio_int_enabled[1], EP93XX_GPIO_B_INT_ENABLE);
+ } else if (abf == 2) {
+ __raw_writeb(0, EP93XX_GPIO_F_INT_ENABLE);
++ __raw_writeb(gpio_int_debounce[2], EP93XX_GPIO_F_INT_DEBOUNCE);
+ __raw_writeb(gpio_int_type2[2], EP93XX_GPIO_F_INT_TYPE2);
+ __raw_writeb(gpio_int_type1[2], EP93XX_GPIO_F_INT_TYPE1);
+ __raw_writeb(gpio_int_unmasked[2] & gpio_int_enabled[2], EP93XX_GPIO_F_INT_ENABLE);
+@@ -361,6 +365,13 @@
+ } else {
+ gpio_int_enabled[port] &= ~(1 << line);
+ }
++
++ if (type & IRQ_TYPE_DEBOUNCE) {
++ gpio_int_debounce[port] |= 1 << line;
++ } else {
++ gpio_int_debounce[port] &= ~(1 << line);
++ }
++
+ update_gpio_int_params(port);
+
+ return 0;
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ep93xx-regs.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-04 02:22:19.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-04 02:28:19.000000000 +0200
+@@ -78,16 +78,19 @@
+ #define EP93XX_GPIO_F_INT_ACK EP93XX_GPIO_REG(0x54)
+ #define EP93XX_GPIO_F_INT_ENABLE EP93XX_GPIO_REG(0x58)
+ #define EP93XX_GPIO_F_INT_STATUS EP93XX_GPIO_REG(0x5c)
++#define EP93XX_GPIO_F_INT_DEBOUNCE EP93XX_GPIO_REG(0x64)
+ #define EP93XX_GPIO_A_INT_TYPE1 EP93XX_GPIO_REG(0x90)
+ #define EP93XX_GPIO_A_INT_TYPE2 EP93XX_GPIO_REG(0x94)
+ #define EP93XX_GPIO_A_INT_ACK EP93XX_GPIO_REG(0x98)
+ #define EP93XX_GPIO_A_INT_ENABLE EP93XX_GPIO_REG(0x9c)
+ #define EP93XX_GPIO_A_INT_STATUS EP93XX_GPIO_REG(0xa0)
++#define EP93XX_GPIO_A_INT_DEBOUNCE EP93XX_GPIO_REG(0xa8)
+ #define EP93XX_GPIO_B_INT_TYPE1 EP93XX_GPIO_REG(0xac)
+ #define EP93XX_GPIO_B_INT_TYPE2 EP93XX_GPIO_REG(0xb0)
+ #define EP93XX_GPIO_B_INT_ACK EP93XX_GPIO_REG(0xb4)
+ #define EP93XX_GPIO_B_INT_ENABLE EP93XX_GPIO_REG(0xb8)
+ #define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc)
++#define EP93XX_GPIO_B_INT_DEBOUNCE EP93XX_GPIO_REG(0xc4)
+
+ #define EP93XX_AAC_BASE (EP93XX_APB_VIRT_BASE + 0x00080000)
+
+Index: linux-2.6.23-rc5/include/linux/irq.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/linux/irq.h 2007-09-04 02:24:58.000000000 +0200
++++ linux-2.6.23-rc5/include/linux/irq.h 2007-09-04 02:25:01.000000000 +0200
+@@ -44,6 +44,7 @@
+ #define IRQ_TYPE_LEVEL_LOW 0x00000008 /* Level low type */
+ #define IRQ_TYPE_SENSE_MASK 0x0000000f /* Mask of the above */
+ #define IRQ_TYPE_PROBE 0x00000010 /* Probing in progress */
++#define IRQ_TYPE_DEBOUNCE 0x00000020 /* Enable HW debounce */
+
+ /* Internal flags */
+ #define IRQ_INPROGRESS 0x00000100 /* IRQ handler active - do not enter! */
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c-bus.diff b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c-bus.diff
new file mode 100644
index 0000000000..efdbf42a45
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c-bus.diff
@@ -0,0 +1,220 @@
+
+I2C bus driver using ep93xx GPIOs.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.23-rc5/drivers/i2c/busses/Kconfig
+===================================================================
+--- linux-2.6.23-rc5.orig/drivers/i2c/busses/Kconfig 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/drivers/i2c/busses/Kconfig 2007-09-04 02:26:20.000000000 +0200
+@@ -654,4 +654,16 @@
+ This driver can also be built as module. If so, the module
+ will be called i2c-pmcmsp.
+
++config I2C_EP93XX
++ tristate "Cirrus Logic EP93XX GPIO-based I2C interface"
++ depends on I2C && ARCH_EP93XX
++ select I2C_ALGOBIT
++ help
++ Say Y here if you have an Cirrus Logic EP93XX based
++ system and are using GPIO lines for an I2C bus.
++
++ This support is also available as a module. If so, the module
++ will be called i2c-ep93xx.
++
++
+ endmenu
+Index: linux-2.6.23-rc5/drivers/i2c/busses/Makefile
+===================================================================
+--- linux-2.6.23-rc5.orig/drivers/i2c/busses/Makefile 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/drivers/i2c/busses/Makefile 2007-09-04 02:26:20.000000000 +0200
+@@ -52,6 +52,7 @@
+ obj-$(CONFIG_I2C_VOODOO3) += i2c-voodoo3.o
+ obj-$(CONFIG_SCx200_ACB) += scx200_acb.o
+ obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o
++obj-$(CONFIG_I2C_EP93XX) += i2c-ep93xx.o
+
+ ifeq ($(CONFIG_I2C_DEBUG_BUS),y)
+ EXTRA_CFLAGS += -DDEBUG
+Index: linux-2.6.23-rc5/drivers/i2c/busses/i2c-ep93xx.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.23-rc5/drivers/i2c/busses/i2c-ep93xx.c 2007-09-04 02:26:20.000000000 +0200
+@@ -0,0 +1,159 @@
++/*
++ * EP93XX I2C bus driver.
++ * Copyright (C) 2007 Lennert Buytenhek <buytenh@wantstofly.org>
++ *
++ * An I2C bus driver for the Cirrus Logic EP93xx SoC.
++ *
++ * Based on an earlier version by Alessandro Zummo.
++ */
++
++#include <linux/kernel.h>
++#include <linux/platform_device.h>
++#include <linux/module.h>
++#include <linux/i2c.h>
++#include <linux/i2c-algo-bit.h>
++#include <asm/hardware.h>
++#include <asm/arch/gpio.h>
++
++struct ep93xx_i2c_priv {
++ struct ep93xx_i2c_data *data;
++ struct i2c_adapter adapter;
++ struct i2c_algo_bit_data algo_data;
++ int sda;
++ int scl;
++};
++
++
++static void ep93xx_bit_setsda(void *cookie, int val)
++{
++ struct ep93xx_i2c_priv *priv = cookie;
++
++ if (val) {
++ gpio_line_config(priv->data->sda_pin, GPIO_IN);
++ if (priv->scl && !priv->sda && priv->data->stop != NULL)
++ priv->data->stop(priv->data->cookie);
++ priv->sda = 1;
++ } else {
++ if (priv->scl && priv->sda && priv->data->start != NULL)
++ priv->data->start(priv->data->cookie);
++ gpio_line_config(priv->data->sda_pin, GPIO_OUT);
++ gpio_line_set(priv->data->sda_pin, 0);
++ priv->sda = 0;
++ }
++}
++
++static void ep93xx_bit_setscl(void *cookie, int val)
++{
++ struct ep93xx_i2c_priv *priv = cookie;
++
++ if (val) {
++ gpio_line_config(priv->data->scl_pin, GPIO_IN);
++ priv->scl = 1;
++ } else {
++ gpio_line_config(priv->data->scl_pin, GPIO_OUT);
++ gpio_line_set(priv->data->scl_pin, 0);
++ priv->scl = 0;
++ }
++}
++
++static int ep93xx_bit_getsda(void *cookie)
++{
++ struct ep93xx_i2c_priv *priv = cookie;
++
++ if (priv->sda == 0)
++ BUG();
++
++ return gpio_line_get(priv->data->sda_pin);
++}
++
++static int ep93xx_bit_getscl(void *cookie)
++{
++ struct ep93xx_i2c_priv *priv = cookie;
++
++ if (priv->scl == 0)
++ BUG();
++
++ return gpio_line_get(priv->data->scl_pin);
++}
++
++
++static int ep93xx_i2c_probe(struct platform_device *pdev)
++{
++ struct ep93xx_i2c_priv *priv;
++ int err;
++
++ priv = kzalloc(sizeof(struct ep93xx_i2c_priv), GFP_KERNEL);
++ if (priv == NULL)
++ return -ENOMEM;
++
++ priv->data = pdev->dev.platform_data;
++
++ strlcpy(priv->adapter.name, pdev->dev.driver->name, I2C_NAME_SIZE);
++ priv->adapter.algo_data = &priv->algo_data;
++ priv->adapter.class = I2C_CLASS_ALL;
++ priv->adapter.dev.parent = &pdev->dev;
++
++ priv->algo_data.data = priv;
++ priv->algo_data.setsda = ep93xx_bit_setsda;
++ priv->algo_data.setscl = ep93xx_bit_setscl;
++ priv->algo_data.getsda = ep93xx_bit_getsda;
++ priv->algo_data.getscl = ep93xx_bit_getscl;
++ priv->algo_data.udelay = 10;
++ priv->algo_data.timeout = 100;
++
++ priv->sda = 1;
++ gpio_line_config(priv->data->sda_pin, GPIO_IN);
++
++ priv->scl = 1;
++ gpio_line_config(priv->data->scl_pin, GPIO_IN);
++
++ err = i2c_bit_add_bus(&priv->adapter);
++ if (err) {
++ printk(KERN_ERR "ERROR: Could not install %s\n",
++ pdev->dev.bus_id);
++ kfree(priv);
++ return err;
++ }
++
++ platform_set_drvdata(pdev, priv);
++
++ return 0;
++}
++
++static int ep93xx_i2c_remove(struct platform_device *pdev)
++{
++ struct ep93xx_i2c_priv *priv;
++
++ priv = platform_get_drvdata(pdev);
++ i2c_del_adapter(&priv->adapter);
++ platform_set_drvdata(pdev, NULL);
++ kfree(priv);
++
++ return 0;
++}
++
++static struct platform_driver ep93xx_i2c_driver = {
++ .probe = ep93xx_i2c_probe,
++ .remove = ep93xx_i2c_remove,
++ .driver = {
++ .name = "ep93xx-i2c",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init ep93xx_i2c_init(void)
++{
++ return platform_driver_register(&ep93xx_i2c_driver);
++}
++
++static void __exit ep93xx_i2c_exit(void)
++{
++ platform_driver_unregister(&ep93xx_i2c_driver);
++}
++
++module_init(ep93xx_i2c_init);
++module_exit(ep93xx_i2c_exit);
++
++MODULE_AUTHOR("Lennert Buytenhek <buytenh@wantstofly.org>");
++MODULE_DESCRIPTION("GPIO-based I2C adapter for EP93XX systems");
++MODULE_LICENSE("GPL");
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/platform.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/platform.h 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/platform.h 2007-09-04 02:28:19.000000000 +0200
+@@ -16,5 +16,13 @@
+ unsigned char phy_id;
+ };
+
++struct ep93xx_i2c_data {
++ int sda_pin;
++ int scl_pin;
++ void *cookie;
++ void (*start)(void *);
++ void (*stop)(void *);
++};
++
+
+ #endif
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff
new file mode 100644
index 0000000000..bf4622b1db
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff
@@ -0,0 +1,110 @@
+
+Instantiate the ep93xx gpio i2c bus driver in the generic ep93xx
+code.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c
+===================================================================
+--- linux-2.6.23-rc5.orig/arch/arm/mach-ep93xx/core.c 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c 2007-09-04 02:28:12.000000000 +0200
+@@ -509,6 +509,52 @@
+ };
+
+
++static DEFINE_MUTEX(eeclk_eedat_mutex);
++static int i2c_transaction_in_progress;
++
++static void ep93xx_i2c_start_condition(void *cookie)
++{
++ if (!i2c_transaction_in_progress) {
++ mutex_lock(&eeclk_eedat_mutex);
++ i2c_transaction_in_progress = 1;
++ }
++}
++
++static void ep93xx_i2c_stop_condition(void *cookie)
++{
++ if (i2c_transaction_in_progress) {
++ mutex_unlock(&eeclk_eedat_mutex);
++ i2c_transaction_in_progress = 0;
++ } else {
++ printk(KERN_WARNING "ep93xx: i2c stop without start??\n");
++ }
++}
++
++static struct ep93xx_i2c_data ep93xx_i2c_gpio_data = {
++ .sda_pin = EP93XX_GPIO_LINE_EEDAT,
++ .scl_pin = EP93XX_GPIO_LINE_EECLK,
++ .start = ep93xx_i2c_start_condition,
++ .stop = ep93xx_i2c_stop_condition,
++};
++
++static struct platform_device ep93xx_i2c_device = {
++ .name = "ep93xx-i2c",
++ .id = 0,
++ .dev.platform_data = &ep93xx_i2c_gpio_data,
++ .num_resources = 0,
++};
++
++void eeclk_eedat_claim(void)
++{
++ mutex_lock(&eeclk_eedat_mutex);
++}
++
++void eeclk_eedat_release(void)
++{
++ mutex_unlock(&eeclk_eedat_mutex);
++}
++
++
+ void __init ep93xx_init_devices(void)
+ {
+ unsigned int v;
+@@ -521,10 +567,20 @@
+ __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
+ __raw_writel(v, EP93XX_SYSCON_DEVICE_CONFIG);
+
++ /*
++ * When EECLK/EEDAT are in open drain mode (EEDRIVE=0b11),
++ * writing a 1 to their Data Register bits causes subsequent
++ * reads from the Data Direction Register to return 'input',
++ * which confuses gpio_line_config(). So, we use CMOS drive
++ * mode instead.
++ */
++ __raw_writel(0, EP93XX_GPIO_EEDRIVE);
++
+ amba_device_register(&uart1_device, &iomem_resource);
+ amba_device_register(&uart2_device, &iomem_resource);
+ amba_device_register(&uart3_device, &iomem_resource);
+
+ platform_device_register(&ep93xx_rtc_device);
+ platform_device_register(&ep93xx_ohci_device);
++ platform_device_register(&ep93xx_i2c_device);
+ }
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ep93xx-regs.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-04 02:28:10.000000000 +0200
+@@ -91,6 +91,7 @@
+ #define EP93XX_GPIO_B_INT_ENABLE EP93XX_GPIO_REG(0xb8)
+ #define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc)
+ #define EP93XX_GPIO_B_INT_DEBOUNCE EP93XX_GPIO_REG(0xc4)
++#define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8)
+
+ #define EP93XX_AAC_BASE (EP93XX_APB_VIRT_BASE + 0x00080000)
+
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/platform.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/platform.h 2007-09-04 02:26:20.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/platform.h 2007-09-04 02:26:38.000000000 +0200
+@@ -10,6 +10,9 @@
+ void ep93xx_init_devices(void);
+ extern struct sys_timer ep93xx_timer;
+
++void eeclk_eedat_claim(void);
++void eeclk_eedat_release(void);
++
+ struct ep93xx_eth_data
+ {
+ unsigned char dev_addr[6];
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-leds.diff b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-leds.diff
new file mode 100644
index 0000000000..e158593f28
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-leds.diff
@@ -0,0 +1,181 @@
+
+EP93xx leds driver
+
+Signed-off-by: Petr Stetiar <ynezz@true.cz>
+
+Index: linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c
+===================================================================
+--- linux-2.6.23-rc5.orig/arch/arm/mach-ep93xx/core.c 2007-09-04 02:40:19.000000000 +0200
++++ linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c 2007-09-04 02:40:25.000000000 +0200
+@@ -568,6 +568,12 @@
+ }
+
+
++static struct platform_device ep93xx_led_device = {
++ .name = "ep93xx-led",
++ .id = -1,
++};
++
++
+ void __init ep93xx_init_devices(void)
+ {
+ unsigned int v;
+@@ -596,4 +602,5 @@
+ platform_device_register(&ep93xx_rtc_device);
+ platform_device_register(&ep93xx_ohci_device);
+ platform_device_register(&ep93xx_i2c_device);
++ platform_device_register(&ep93xx_led_device);
+ }
+Index: linux-2.6.23-rc5/drivers/leds/Kconfig
+===================================================================
+--- linux-2.6.23-rc5.orig/drivers/leds/Kconfig 2007-09-04 02:40:19.000000000 +0200
++++ linux-2.6.23-rc5/drivers/leds/Kconfig 2007-09-04 02:40:25.000000000 +0200
+@@ -101,6 +101,12 @@
+ outputs. To be useful the particular board must have LEDs
+ and they must be connected to the GPIO lines.
+
++config LEDS_EP93XX
++ tristate "LED Support for Cirrus Logic EP93xx"
++ depends on LEDS_CLASS && ARCH_EP93XX
++ help
++ This option enables support for the Cirrus Logic EP93xx based boards.
++
+ comment "LED Triggers"
+
+ config LEDS_TRIGGERS
+Index: linux-2.6.23-rc5/drivers/leds/Makefile
+===================================================================
+--- linux-2.6.23-rc5.orig/drivers/leds/Makefile 2007-09-04 02:40:19.000000000 +0200
++++ linux-2.6.23-rc5/drivers/leds/Makefile 2007-09-04 02:40:25.000000000 +0200
+@@ -16,6 +16,7 @@
+ obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
+ obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
+ obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
++obj-$(CONFIG_LEDS_EP93XX) += leds-ep93xx.o
+ obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
+
+ # LED Triggers
+Index: linux-2.6.23-rc5/drivers/leds/leds-ep93xx.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.23-rc5/drivers/leds/leds-ep93xx.c 2007-09-04 02:40:25.000000000 +0200
+@@ -0,0 +1,119 @@
++/*
++ * LEDs driver for Cirrus Logic EP93xx
++ *
++ * Author: Petr Stetiar <ynezz@true.cz>
++ *
++ * Based on leds-corgi.c by Richard Purdie
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/leds.h>
++#include <asm/mach-types.h>
++#include <asm/arch/hardware.h>
++#include <asm/arch/gpio.h>
++
++static void ep93xx_green_led_set(struct led_classdev *led_cdev, enum led_brightness value)
++{
++ if (value)
++ gpio_line_set(EP93XX_GPIO_LINE_GRLED, EP93XX_GPIO_HIGH);
++ else
++ gpio_line_set(EP93XX_GPIO_LINE_GRLED, EP93XX_GPIO_LOW);
++}
++
++static void ep93xx_red_led_set(struct led_classdev *led_cdev, enum led_brightness value)
++{
++ if (value)
++ gpio_line_set(EP93XX_GPIO_LINE_RDLED, EP93XX_GPIO_HIGH);
++ else
++ gpio_line_set(EP93XX_GPIO_LINE_RDLED, EP93XX_GPIO_LOW);
++}
++
++
++static struct led_classdev ep93xx_green_led = {
++ .name = "ep93xx:green",
++ .default_trigger = "none",
++ .brightness_set = ep93xx_green_led_set,
++};
++
++static struct led_classdev ep93xx_red_led = {
++ .name = "ep93xx:red",
++ .default_trigger = "heartbeat",
++ .brightness_set = ep93xx_red_led_set,
++};
++
++#ifdef CONFIG_PM
++static int ep93xx_led_suspend(struct platform_device *dev, pm_message_t state)
++{
++ led_classdev_suspend(&ep93xx_green_led);
++ led_classdev_suspend(&ep93xx_red_led);
++ return 0;
++}
++
++static int ep93xx_led_resume(struct platform_device *dev)
++{
++ led_classdev_resume(&ep93xx_red_led);
++ led_classdev_resume(&ep93xx_green_led);
++ return 0;
++}
++#endif
++
++static int ep93xx_led_probe(struct platform_device *pdev)
++{
++ int ret;
++
++ gpio_line_config(EP93XX_GPIO_LINE_GRLED, GPIO_OUT);
++ gpio_line_config(EP93XX_GPIO_LINE_RDLED, GPIO_OUT);
++
++ ret = led_classdev_register(&pdev->dev, &ep93xx_green_led);
++ if (ret < 0)
++ return ret;
++
++ ret = led_classdev_register(&pdev->dev, &ep93xx_red_led);
++ if (ret < 0)
++ led_classdev_unregister(&ep93xx_green_led);
++
++ return ret;
++}
++
++static int ep93xx_led_remove(struct platform_device *pdev)
++{
++ led_classdev_unregister(&ep93xx_green_led);
++ led_classdev_unregister(&ep93xx_red_led);
++ return 0;
++}
++
++static struct platform_driver ep93xx_led_driver = {
++ .probe = ep93xx_led_probe,
++ .remove = ep93xx_led_remove,
++#ifdef CONFIG_PM
++ .suspend = ep93xx_led_suspend,
++ .resume = ep93xx_led_resume,
++#endif
++ .driver = {
++ .name = "ep93xx-led",
++ },
++};
++
++static int __init ep93xx_led_init(void)
++{
++ return platform_driver_register(&ep93xx_led_driver);
++}
++
++static void __exit ep93xx_led_exit(void)
++{
++ platform_driver_unregister(&ep93xx_led_driver);
++}
++
++module_init(ep93xx_led_init);
++module_exit(ep93xx_led_exit);
++
++MODULE_AUTHOR("Petr Stetiar <ynezz@true.cz>");
++MODULE_DESCRIPTION("Cirrus Logic EP93xx LED driver");
++MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-maverick-uniqid.patch b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-maverick-uniqid.patch
new file mode 100644
index 0000000000..0bc8190464
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-maverick-uniqid.patch
@@ -0,0 +1,38 @@
+
+Adds support for SoC's unique ID (Maverick Key) in /proc/cpuinfo
+
+Signed-off-by: Petr Stetiar <ynezz@true.cz>
+
+Index: linux-2.6.23-rc5/arch/arm/kernel/setup.c
+===================================================================
+--- linux-2.6.23-rc5.orig/arch/arm/kernel/setup.c 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/arch/arm/kernel/setup.c 2007-09-04 02:26:49.000000000 +0200
+@@ -964,8 +964,15 @@
+
+ seq_printf(m, "Hardware\t: %s\n", machine_name);
+ seq_printf(m, "Revision\t: %04x\n", system_rev);
++
++#if defined(CONFIG_ARCH_EP93XX)
++#include <asm/arch/ep93xx-regs.h>
++ seq_printf(m, "Serial\t\t: %016x\n",
++ *((unsigned int *)EP93XX_SECURITY_UNIQID));
++#else
+ seq_printf(m, "Serial\t\t: %08x%08x\n",
+ system_serial_high, system_serial_low);
++#endif
+
+ return 0;
+ }
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ep93xx-regs.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-04 02:26:38.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-04 02:26:49.000000000 +0200
+@@ -70,6 +70,8 @@
+ #define EP93XX_I2S_BASE (EP93XX_APB_VIRT_BASE + 0x00020000)
+
+ #define EP93XX_SECURITY_BASE (EP93XX_APB_VIRT_BASE + 0x00030000)
++#define EP93XX_SECURITY_REG(x) (EP93XX_SECURITY_BASE + (x))
++#define EP93XX_SECURITY_UNIQID EP93XX_SECURITY_REG(0x2440)
+
+ #define EP93XX_GPIO_BASE (EP93XX_APB_VIRT_BASE + 0x00040000)
+ #define EP93XX_GPIO_REG(x) (EP93XX_GPIO_BASE + (x))
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-serial-clocks.diff b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-serial-clocks.diff
new file mode 100644
index 0000000000..86b14894b6
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-serial-clocks.diff
@@ -0,0 +1,42 @@
+
+Hackishly enable all UART clocks before uncompressing the kernel,
+so that using ttyAM1 or ttyAM2 as console can work.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/uncompress.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/uncompress.h 2007-09-04 02:26:42.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/uncompress.h 2007-09-04 02:26:47.000000000 +0200
+@@ -78,6 +78,23 @@
+
+
+ /*
++ * We don't have clock management for the UARTs (amba-pl010)
++ * yet, so hackily enable all UART clocks here for now.
++ */
++#define PHYS_SYSCON_DEVICE_CONFIG 0x80930080
++#define PHYS_SYSCON_SWLOCK 0x809300c0
++
++static void enable_all_uart_clocks(void)
++{
++ unsigned int v;
++
++ v = __raw_readl(PHYS_SYSCON_DEVICE_CONFIG);
++ __raw_writel(0xaa, PHYS_SYSCON_SWLOCK);
++ __raw_writel(v | 0x01140000, PHYS_SYSCON_DEVICE_CONFIG);
++}
++
++
++/*
+ * Some bootloaders don't turn on the UARTBAUD bit, which means that
+ * the UARTs will be running off a divided 7.3728 MHz clock instead of
+ * the 14.7456 MHz peripheral clock when linux boots.
+@@ -126,6 +143,7 @@
+ static void arch_decomp_setup(void)
+ {
+ ethernet_reset();
++ enable_all_uart_clocks();
+ fix_uart_base();
+ }
+
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-serial-uartbaud.diff b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-serial-uartbaud.diff
new file mode 100644
index 0000000000..9cfaacd103
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-serial-uartbaud.diff
@@ -0,0 +1,66 @@
+
+Force UARTBAUD on before uncompressing.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/uncompress.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/uncompress.h 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/uncompress.h 2007-09-04 02:28:14.000000000 +0200
+@@ -77,9 +77,56 @@
+ }
+
+
++/*
++ * Some bootloaders don't turn on the UARTBAUD bit, which means that
++ * the UARTs will be running off a divided 7.3728 MHz clock instead of
++ * the 14.7456 MHz peripheral clock when linux boots.
++ *
++ * We detect that condition here and fix it by turning on UARTBAUD, and
++ * then reprogramming the divisors on all enabled UARTs to twice what
++ * they were before we turned UARTBAUD on, to preserve the programmed
++ * baud rate.
++ */
++#define PHYS_SYSCON_CLOCK_CONTROL 0x80930004
++#define SYSCON_CLOCK_UARTBAUD 0x20000000
++#define PHYS_UART1_BASE 0x808c0000
++#define PHYS_UART2_BASE 0x808d0000
++#define PHYS_UART3_BASE 0x808e0000
++
++static void uart_divisor_times_two(unsigned int base)
++{
++ u16 divisor;
++
++ divisor = __raw_readb(base + 0x0c) << 8;
++ divisor |= __raw_readb(base + 0x10);
++ if (divisor) {
++ divisor = (2 * (divisor + 1)) - 1;
++ __raw_writeb(divisor >> 8, base + 0x0c);
++ __raw_writeb(divisor & 0xff, base + 0x10);
++ __raw_writeb(__raw_readb(base + 0x08), base + 0x08);
++ }
++}
++
++static void fix_uart_base(void)
++{
++ unsigned int v;
++
++ v = __raw_readl(PHYS_SYSCON_CLOCK_CONTROL);
++ if ((v & SYSCON_CLOCK_UARTBAUD) == 0) {
++ v |= SYSCON_CLOCK_UARTBAUD;
++ __raw_writel(v, PHYS_SYSCON_CLOCK_CONTROL);
++
++ uart_divisor_times_two(PHYS_UART1_BASE);
++ uart_divisor_times_two(PHYS_UART2_BASE);
++ uart_divisor_times_two(PHYS_UART3_BASE);
++ }
++}
++
++
+ static void arch_decomp_setup(void)
+ {
+ ethernet_reset();
++ fix_uart_base();
+ }
+
+ #define arch_decomp_wdog()
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-timer-accuracy.diff b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-timer-accuracy.diff
new file mode 100644
index 0000000000..8a6de2e7da
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-timer-accuracy.diff
@@ -0,0 +1,59 @@
+
+The ep93xx has a weird timer tick base (983.04 kHz.) This experimental
+patch tries to increase time of day accuracy by keeping the number of
+ticks until the next jiffy in a fractional value representation.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c
+===================================================================
+--- linux-2.6.23-rc5.orig/arch/arm/mach-ep93xx/core.c 2007-09-04 02:26:38.000000000 +0200
++++ linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c 2007-09-04 02:26:48.000000000 +0200
+@@ -94,19 +94,32 @@
+ * track of lost jiffies.
+ */
+ static unsigned int last_jiffy_time;
++static unsigned int next_jiffy_time;
++static unsigned int accumulator;
+
+-#define TIMER4_TICKS_PER_JIFFY ((CLOCK_TICK_RATE + (HZ/2)) / HZ)
++#define TIMER4_TICKS_PER_JIFFY (983040 / HZ)
++#define TIMER4_TICKS_MOD_JIFFY (983040 % HZ)
++
++static int after_eq(unsigned long a, unsigned long b)
++{
++ return ((signed long)(a - b)) >= 0;
++}
+
+ static int ep93xx_timer_interrupt(int irq, void *dev_id)
+ {
+ write_seqlock(&xtime_lock);
+
+ __raw_writel(1, EP93XX_TIMER1_CLEAR);
+- while ((signed long)
+- (__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time)
+- >= TIMER4_TICKS_PER_JIFFY) {
+- last_jiffy_time += TIMER4_TICKS_PER_JIFFY;
++ while (after_eq(__raw_readl(EP93XX_TIMER4_VALUE_LOW), next_jiffy_time)) {
+ timer_tick();
++
++ last_jiffy_time = next_jiffy_time;
++ next_jiffy_time += TIMER4_TICKS_PER_JIFFY;
++ accumulator += TIMER4_TICKS_MOD_JIFFY;
++ if (accumulator >= HZ) {
++ next_jiffy_time++;
++ accumulator -= HZ;
++ }
+ }
+
+ write_sequnlock(&xtime_lock);
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/timex.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/timex.h 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/timex.h 2007-09-04 02:26:48.000000000 +0200
+@@ -2,4 +2,4 @@
+ * linux/include/asm-arm/arch-ep93xx/timex.h
+ */
+
+-#define CLOCK_TICK_RATE 983040
++#define CLOCK_TICK_RATE (1000 * HZ)
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/series b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/series
new file mode 100644
index 0000000000..e5455efd3c
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/series
@@ -0,0 +1,12 @@
+ep93xx-gpio-interrupt-debounce.diff
+ep93xx-i2c-bus.diff
+ep93xx-i2c.diff
+ep93xx-leds.diff
+ep93xx-serial-uartbaud.diff
+ep93xx-serial-clocks.diff
+ep93xx-timer-accuracy.diff
+ep93xx-maverick-uniqid.patch
+ts72xx-machine-id-fix.patch
+ts72xx-nfbit-fix.patch
+ts72xx-watchdog.patch
+ts72xx-use-cpld-reset.patch
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-machine-id-fix.patch b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-machine-id-fix.patch
new file mode 100644
index 0000000000..47a07e64e1
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-machine-id-fix.patch
@@ -0,0 +1,17 @@
+
+Fix wrong machine ID passed from RedBoot
+
+Signed-off-by: Petr Stetiar <ynezz@true.cz>
+
+Index: linux-2.6.23-rc5/arch/arm/kernel/head.S
+===================================================================
+--- linux-2.6.23-rc5.orig/arch/arm/kernel/head.S 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/arch/arm/kernel/head.S 2007-09-04 02:26:57.000000000 +0200
+@@ -86,6 +86,7 @@
+ bl __lookup_processor_type @ r5=procinfo r9=cpuid
+ movs r10, r5 @ invalid processor (r5=0)?
+ beq __error_p @ yes, error 'p'
++ ldr r1, =0x000002a1 @ mach-type = TS-7250
+ bl __lookup_machine_type @ r5=machinfo
+ movs r8, r5 @ invalid machine (r5=0)?
+ beq __error_a @ yes, error 'a'
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-nfbit-fix.patch b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-nfbit-fix.patch
new file mode 100644
index 0000000000..bed3de37e9
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-nfbit-fix.patch
@@ -0,0 +1,18 @@
+
+Force the nF bit on. Usually this is set by the bootrom. If it is not set,
+then the CPU core will run from HCLK instead of FCLK, and performance will
+suffer. If you see BogoMIPS of about 1/4 of your CPU clock, try turning this
+on; your performance should double.
+
+Index: linux-2.6.23-rc5/arch/arm/mm/proc-arm920.S
+===================================================================
+--- linux-2.6.23-rc5.orig/arch/arm/mm/proc-arm920.S 2007-09-04 02:25:36.000000000 +0200
++++ linux-2.6.23-rc5/arch/arm/mm/proc-arm920.S 2007-09-04 02:27:02.000000000 +0200
+@@ -395,6 +395,7 @@
+ mrc p15, 0, r0, c1, c0 @ get control register v4
+ bic r0, r0, r5
+ orr r0, r0, r6
++ orr r0, r0, #0x40000000
+ mov pc, lr
+ .size __arm920_setup, . - __arm920_setup
+
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch
new file mode 100644
index 0000000000..681622a9ae
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch
@@ -0,0 +1,41 @@
+
+Use CPLD watchdog to reset the machine instead of buggy ep93xx one, which
+sometimes get stuck...
+
+Signed-off-by: Petr Stetiar <ynezz@true.cz>
+
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/system.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/system.h 2007-09-04 02:29:35.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/system.h 2007-09-04 02:31:52.000000000 +0200
+@@ -3,6 +3,7 @@
+ */
+
+ #include <asm/hardware.h>
++#include <asm/mach-types.h>
+
+ static inline void arch_idle(void)
+ {
+@@ -15,11 +16,17 @@
+
+ local_irq_disable();
+
+- devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG);
+- __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
+- __raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
+- __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
+- __raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
++ if (machine_is_ts72xx()) {
++ __raw_writeb(0x5, TS72XX_WATCHDOG_FEED_PHYS_BASE);
++ __raw_writeb(0x1, TS72XX_WATCHDOG_CONTROL_PHYS_BASE);
++ } else {
++ devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG);
++ __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
++ __raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
++ __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
++ __raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
++ }
++
+
+ while (1)
+ ;
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-watchdog.patch b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-watchdog.patch
new file mode 100644
index 0000000000..b406d1db77
--- /dev/null
+++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-watchdog.patch
@@ -0,0 +1,430 @@
+
+TS-72xx watchdog driver
+
+Signed-off-by: Matthieu Crapet <mcrapet@gmail.com>
+
+Index: linux-2.6.23-rc5/arch/arm/mach-ep93xx/ts72xx.c
+===================================================================
+--- linux-2.6.23-rc5.orig/arch/arm/mach-ep93xx/ts72xx.c 2007-09-04 02:25:35.000000000 +0200
++++ linux-2.6.23-rc5/arch/arm/mach-ep93xx/ts72xx.c 2007-09-04 02:27:06.000000000 +0200
+@@ -183,6 +183,26 @@
+ .resource = ts72xx_eth_resource,
+ };
+
++static struct resource ts72xx_watchdog_resources[] = {
++ [0] = {
++ .start = TS72XX_WATCHDOG_CONTROL_PHYS_BASE,
++ .end = TS72XX_WATCHDOG_CONTROL_PHYS_BASE + 0x0fff,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = TS72XX_WATCHDOG_FEED_PHYS_BASE,
++ .end = TS72XX_WATCHDOG_FEED_PHYS_BASE + 0x0fff,
++ .flags = IORESOURCE_MEM,
++ },
++};
++
++static struct platform_device ts72xx_watchdog_device = {
++ .name = "ts72xx_wdt",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(ts72xx_watchdog_resources),
++ .resource = ts72xx_watchdog_resources,
++};
++
+ static void __init ts72xx_init_machine(void)
+ {
+ ep93xx_init_devices();
+@@ -193,6 +213,7 @@
+ memcpy(ts72xx_eth_data.dev_addr,
+ (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
+ platform_device_register(&ts72xx_eth_device);
++ platform_device_register(&ts72xx_watchdog_device);
+ }
+
+ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
+Index: linux-2.6.23-rc5/drivers/char/watchdog/Kconfig
+===================================================================
+--- linux-2.6.23-rc5.orig/drivers/char/watchdog/Kconfig 2007-09-04 02:25:35.000000000 +0200
++++ linux-2.6.23-rc5/drivers/char/watchdog/Kconfig 2007-09-04 02:27:06.000000000 +0200
+@@ -247,6 +247,18 @@
+
+ # H8300 Architecture
+
++config TS72XX_WATCHDOG
++ tristate "TS-72xx Watchdog"
++ depends on WATCHDOG && ARCH_EP93XX && MACH_TS72XX
++ help
++ Say Y here if to include support for the CPLD watchdog
++ included on Technologic Systems SBC.
++
++ NOTE: timeout value is given in milliseconds, not in seconds.
++
++ To compile this driver as a module, choose M here: the
++ module will be called ts72xx_wdt.
++
+ # X86 (i386 + ia64 + x86_64) Architecture
+
+ config ACQUIRE_WDT
+Index: linux-2.6.23-rc5/drivers/char/watchdog/Makefile
+===================================================================
+--- linux-2.6.23-rc5.orig/drivers/char/watchdog/Makefile 2007-09-04 02:25:35.000000000 +0200
++++ linux-2.6.23-rc5/drivers/char/watchdog/Makefile 2007-09-04 02:27:06.000000000 +0200
+@@ -36,6 +36,7 @@
+ obj-$(CONFIG_SA1100_WATCHDOG) += sa1100_wdt.o
+ obj-$(CONFIG_MPCORE_WATCHDOG) += mpcore_wdt.o
+ obj-$(CONFIG_EP93XX_WATCHDOG) += ep93xx_wdt.o
++obj-$(CONFIG_TS72XX_WATCHDOG) += ts72xx_wdt.o
+ obj-$(CONFIG_PNX4008_WATCHDOG) += pnx4008_wdt.o
+ obj-$(CONFIG_IOP_WATCHDOG) += iop_wdt.o
+ obj-$(CONFIG_DAVINCI_WATCHDOG) += davinci_wdt.o
+Index: linux-2.6.23-rc5/drivers/char/watchdog/ts72xx_wdt.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.23-rc5/drivers/char/watchdog/ts72xx_wdt.c 2007-09-04 02:27:06.000000000 +0200
+@@ -0,0 +1,332 @@
++/*
++ * TS-72xx Watchdog Driver for Technologic Systems boards.
++ *
++ * Based on ep93xx_wdt.c by Lehtiniemi <rayl@mail.com> &
++ * Alessandro Zummo <a.zummo@towertech.it>
++ * and ib700wdt.c by Charles Howes <chowes@vsol.net>
++ * and mpc83xx_wdt.c by Dave Updegraff <dave@cray.org> &
++ * Kumar Gala <galak@kernel.crashing.org>
++ *
++ * (c) Copyright 2006 Matthieu Crapet <mcrapet@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ *
++ * This driver only deals with native timeout provided by CPLD :
++ * 1/4s, 1/2s, 1s, 2s, 4s and 8s. No external timer is used.
++ * Notice that we must ping before modifying the control register.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/types.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/miscdevice.h>
++#include <linux/platform_device.h>
++#include <linux/init.h>
++#include <linux/watchdog.h>
++#include <asm/io.h>
++#include <asm/uaccess.h>
++#include <asm/system.h>
++#include <asm/mach-types.h>
++
++#define WATCHDOG_VERSION "0.2"
++#define PFX "ts72xx_wdt: "
++
++#define WATCHDOG_TIMEOUT 8000 /* 8 seconds */
++#define WDT_IN_USE 0
++#define WDT_OK_TO_CLOSE 1
++
++static unsigned long ts72xx_wdt_status;
++static unsigned char ts72xx_wdt_cpld_value = 0x7;
++static int nowayout = WATCHDOG_NOWAYOUT;
++static int timeout = WATCHDOG_TIMEOUT;
++
++static int ts72xx_wdt_times[12] = {
++ 6000, 3000, 1500, 750, 275, 0,
++ 8000, 4000, 2000, 1000, 500, 250
++};
++
++static void __iomem *control_register;
++static void __iomem *feed_register;
++
++
++/*
++ * Kernel methods.
++ */
++
++static inline void ts72xx_wdt_ping(void)
++{
++ __raw_writew(0x05, feed_register);
++}
++
++static inline void ts72xx_wdt_enable(void)
++{
++ __raw_writew(0x05, feed_register);
++ __raw_writew(ts72xx_wdt_cpld_value, control_register);
++}
++
++static inline void ts72xx_wdt_disable(void)
++{
++ __raw_writew(0x05, feed_register);
++ __raw_writew(0, control_register);
++}
++
++static inline void ts72xx_parse_timeout(int value)
++{
++ unsigned char cpld_value = 0x7;
++ int i;
++
++ if ((value > 8000) || (value < 250)) {
++ timeout = WATCHDOG_TIMEOUT;
++ printk(KERN_INFO PFX "Timeout value out of range, set to %d\n", timeout);
++ } else {
++ for (i = 0; i < 6; i++) {
++ if (value >= ts72xx_wdt_times[i]) {
++ timeout = ts72xx_wdt_times[i+6];
++
++ if (value != timeout)
++ printk(KERN_INFO PFX "Timeout value rounded to %d\n", timeout);
++
++ if (i >= 3) /* cpld_value can't be 4 */
++ i++;
++
++ cpld_value = 7 - i;
++ break;
++ }
++ }
++ }
++
++ ts72xx_wdt_cpld_value = cpld_value;
++}
++
++static ssize_t ts72xx_wdt_write(struct file *file, const char __user *buf,
++ size_t count, loff_t *ppos)
++{
++ /* Can't seek (pwrite) on this device */
++ if (*ppos != file->f_pos)
++ return -ESPIPE;
++
++ if (count) {
++ if (!nowayout) {
++ size_t i;
++
++ clear_bit(WDT_OK_TO_CLOSE, &ts72xx_wdt_status);
++
++ for (i = 0; i != count; i++) {
++ char c;
++
++ if (get_user(c, buf + i))
++ return -EFAULT;
++
++ if (c == 'V')
++ set_bit(WDT_OK_TO_CLOSE, &ts72xx_wdt_status);
++ else
++ clear_bit(WDT_OK_TO_CLOSE, &ts72xx_wdt_status);
++ }
++ }
++ ts72xx_wdt_ping();
++ }
++
++ return count;
++}
++
++static int ts72xx_wdt_ioctl(struct inode *inode, struct file *file,
++ unsigned int cmd, unsigned long arg)
++{
++ int new_margin;
++ int ret = -ENOIOCTLCMD;
++
++ static struct watchdog_info ident = {
++ .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
++ .firmware_version = 1,
++ .identity = "TS-72xx Watchdog",
++ };
++
++ switch (cmd) {
++ case WDIOC_GETSUPPORT:
++ ret = copy_to_user((struct watchdog_info __user *)arg, &ident,
++ sizeof(ident)) ? -EFAULT : 0;
++ break;
++
++ case WDIOC_GETSTATUS:
++ case WDIOC_GETBOOTSTATUS:
++ ret = put_user(0, (int __user *)arg);
++ break;
++
++ case WDIOC_KEEPALIVE:
++ ts72xx_wdt_ping();
++ ret = 0;
++ break;
++
++ case WDIOC_SETTIMEOUT:
++ if (get_user(new_margin, (int __user *)arg))
++ return -EFAULT;
++
++ ts72xx_parse_timeout(new_margin);
++ ts72xx_wdt_enable();
++ /* Fall */
++
++ case WDIOC_GETTIMEOUT:
++ ret = put_user(timeout, (int __user *)arg);
++ break;
++ }
++
++ return ret;
++}
++
++static int ts72xx_wdt_open(struct inode *inode, struct file *file)
++{
++ if (test_and_set_bit(WDT_IN_USE, &ts72xx_wdt_status))
++ return -EBUSY;
++
++ if (nowayout) {
++ __module_get(THIS_MODULE);
++ }
++
++ ts72xx_wdt_enable();
++ ts72xx_wdt_ping();
++
++ return nonseekable_open(inode, file);
++}
++
++static int ts72xx_wdt_close(struct inode *inode, struct file *file)
++{
++ if (test_bit(WDT_OK_TO_CLOSE, &ts72xx_wdt_status))
++ ts72xx_wdt_disable();
++ else
++ printk(KERN_CRIT PFX "Device file closed unexpectedly. "
++ "Will not stop the WDT!\n");
++
++ clear_bit(WDT_IN_USE, &ts72xx_wdt_status);
++
++ return 0;
++}
++
++/*
++ * Kernel Interfaces
++ */
++
++static struct file_operations ts72xx_wdt_fops = {
++ .owner = THIS_MODULE,
++ .llseek = no_llseek,
++ .write = ts72xx_wdt_write,
++ .ioctl = ts72xx_wdt_ioctl,
++ .open = ts72xx_wdt_open,
++ .release = ts72xx_wdt_close,
++};
++
++static struct miscdevice ts72xx_wdt_miscdev = {
++ .minor = WATCHDOG_MINOR,
++ .name = "watchdog",
++ .fops = &ts72xx_wdt_fops,
++};
++
++static void ts72xx_wdt_shutdown(struct platform_device *dev)
++{
++ ts72xx_wdt_disable();
++}
++
++static int __devinit ts72xx_wdt_probe(struct platform_device *dev)
++{
++ struct resource *r;
++ int ret;
++
++ if (!machine_is_ts72xx())
++ return -ENODEV;
++
++ r = platform_get_resource(dev, IORESOURCE_MEM, 0);
++
++ if (!r) {
++ ret = -ENODEV;
++ goto err_out;
++ }
++
++ control_register = ioremap(r->start, r->end - r->start + 1);
++
++ if (control_register == NULL) {
++ ret = -ENOMEM;
++ goto err_out;
++ }
++
++ r = platform_get_resource(dev, IORESOURCE_MEM, 1);
++
++ if (!r) {
++ ret = -ENODEV;
++ goto err_unmap1;
++ }
++
++ feed_register = ioremap(r->start, r->end - r->start + 1);
++
++ if (feed_register == NULL) {
++ ret = -ENOMEM;
++ goto err_unmap1;
++ }
++
++ ret = misc_register(&ts72xx_wdt_miscdev);
++ if (ret) {
++ printk(KERN_ERR PFX "cannot register miscdev on minor=%d "
++ "(err=%d), ep93xx_watchdog already loaded?!\n", WATCHDOG_MINOR, ret);
++ goto err_unmap2;
++ }
++
++ printk(KERN_INFO PFX "TS-72xx watchdog driver, v%s\n", WATCHDOG_VERSION);
++ ts72xx_parse_timeout(timeout);
++
++ return 0;
++
++err_unmap2:
++ iounmap(feed_register);
++err_unmap1:
++ iounmap(control_register);
++err_out:
++ return ret;
++}
++
++static int __devexit ts72xx_wdt_remove(struct platform_device *dev)
++{
++ misc_deregister(&ts72xx_wdt_miscdev);
++ iounmap(feed_register);
++ iounmap(control_register);
++
++ return 0;
++}
++
++static struct platform_driver ts72xx_wdt_driver = {
++ .probe = ts72xx_wdt_probe,
++ .remove = __devexit_p(ts72xx_wdt_remove),
++ .shutdown = ts72xx_wdt_shutdown,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "ts72xx_wdt",
++ },
++};
++
++static int __init ts72xx_wdt_init(void)
++{
++ return platform_driver_register(&ts72xx_wdt_driver);
++}
++
++static void __exit ts72xx_wdt_exit(void)
++{
++ platform_driver_unregister(&ts72xx_wdt_driver);
++}
++
++module_init(ts72xx_wdt_init);
++module_exit(ts72xx_wdt_exit);
++
++#ifdef CONFIG_WATCHDOG_NOWAYOUT
++module_param(nowayout, int, 0);
++MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)");
++#endif
++
++module_param(timeout, int, 0);
++MODULE_PARM_DESC(timeout,"Watchdog timeout in milliseconds (250..8000, default=" __MODULE_STRING(WATCHDOG_TIMEOUT) ")");
++
++MODULE_AUTHOR("Matthieu Crapet <mcrapet@gmail.com>");
++MODULE_DESCRIPTION("TS-72xx watchdog driver");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
+Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ts72xx.h
+===================================================================
+--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/ts72xx.h 2007-09-04 02:25:35.000000000 +0200
++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ts72xx.h 2007-09-04 02:27:06.000000000 +0200
+@@ -69,6 +69,9 @@
+ #define TS72XX_RTC_DATA_SIZE 0x00001000
+
+
++#define TS72XX_WATCHDOG_CONTROL_PHYS_BASE 0x23800000
++#define TS72XX_WATCHDOG_FEED_PHYS_BASE 0x23c00000
++
+ #ifndef __ASSEMBLY__
+ #include <asm/io.h>
+
diff --git a/packages/linux/linux-2.6.22.6/.mtn2git_empty b/packages/linux/linux-2.6.22.6/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/.mtn2git_empty
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/.mtn2git_empty b/packages/linux/linux-2.6.22.6/ts72xx/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/.mtn2git_empty
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-gpio-interrupt-debounce.diff b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-gpio-interrupt-debounce.diff
new file mode 100644
index 0000000000..27146c30f1
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-gpio-interrupt-debounce.diff
@@ -0,0 +1,87 @@
+
+Implement GPIO interrupt debouncing on ep93xx.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.22/arch/arm/mach-ep93xx/core.c
+===================================================================
+--- linux-2.6.22.orig/arch/arm/mach-ep93xx/core.c
++++ linux-2.6.22/arch/arm/mach-ep93xx/core.c
+@@ -154,6 +154,7 @@ struct sys_timer ep93xx_timer = {
+ *************************************************************************/
+ static unsigned char gpio_int_unmasked[3];
+ static unsigned char gpio_int_enabled[3];
++static unsigned char gpio_int_debounce[3];
+ static unsigned char gpio_int_type1[3];
+ static unsigned char gpio_int_type2[3];
+
+@@ -161,16 +162,19 @@ static void update_gpio_int_params(int a
+ {
+ if (abf == 0) {
+ __raw_writeb(0, EP93XX_GPIO_A_INT_ENABLE);
++ __raw_writeb(gpio_int_debounce[0], EP93XX_GPIO_A_INT_DEBOUNCE);
+ __raw_writeb(gpio_int_type2[0], EP93XX_GPIO_A_INT_TYPE2);
+ __raw_writeb(gpio_int_type1[0], EP93XX_GPIO_A_INT_TYPE1);
+ __raw_writeb(gpio_int_unmasked[0] & gpio_int_enabled[0], EP93XX_GPIO_A_INT_ENABLE);
+ } else if (abf == 1) {
+ __raw_writeb(0, EP93XX_GPIO_B_INT_ENABLE);
++ __raw_writeb(gpio_int_debounce[1], EP93XX_GPIO_B_INT_DEBOUNCE);
+ __raw_writeb(gpio_int_type2[1], EP93XX_GPIO_B_INT_TYPE2);
+ __raw_writeb(gpio_int_type1[1], EP93XX_GPIO_B_INT_TYPE1);
+ __raw_writeb(gpio_int_unmasked[1] & gpio_int_enabled[1], EP93XX_GPIO_B_INT_ENABLE);
+ } else if (abf == 2) {
+ __raw_writeb(0, EP93XX_GPIO_F_INT_ENABLE);
++ __raw_writeb(gpio_int_debounce[2], EP93XX_GPIO_F_INT_DEBOUNCE);
+ __raw_writeb(gpio_int_type2[2], EP93XX_GPIO_F_INT_TYPE2);
+ __raw_writeb(gpio_int_type1[2], EP93XX_GPIO_F_INT_TYPE1);
+ __raw_writeb(gpio_int_unmasked[2] & gpio_int_enabled[2], EP93XX_GPIO_F_INT_ENABLE);
+@@ -361,6 +365,13 @@ static int ep93xx_gpio_irq_type(unsigned
+ } else {
+ gpio_int_enabled[port] &= ~(1 << line);
+ }
++
++ if (type & IRQ_TYPE_DEBOUNCE) {
++ gpio_int_debounce[port] |= 1 << line;
++ } else {
++ gpio_int_debounce[port] &= ~(1 << line);
++ }
++
+ update_gpio_int_params(port);
+
+ return 0;
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/ep93xx-regs.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/ep93xx-regs.h
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/ep93xx-regs.h
+@@ -78,16 +78,19 @@
+ #define EP93XX_GPIO_F_INT_ACK EP93XX_GPIO_REG(0x54)
+ #define EP93XX_GPIO_F_INT_ENABLE EP93XX_GPIO_REG(0x58)
+ #define EP93XX_GPIO_F_INT_STATUS EP93XX_GPIO_REG(0x5c)
++#define EP93XX_GPIO_F_INT_DEBOUNCE EP93XX_GPIO_REG(0x64)
+ #define EP93XX_GPIO_A_INT_TYPE1 EP93XX_GPIO_REG(0x90)
+ #define EP93XX_GPIO_A_INT_TYPE2 EP93XX_GPIO_REG(0x94)
+ #define EP93XX_GPIO_A_INT_ACK EP93XX_GPIO_REG(0x98)
+ #define EP93XX_GPIO_A_INT_ENABLE EP93XX_GPIO_REG(0x9c)
+ #define EP93XX_GPIO_A_INT_STATUS EP93XX_GPIO_REG(0xa0)
++#define EP93XX_GPIO_A_INT_DEBOUNCE EP93XX_GPIO_REG(0xa8)
+ #define EP93XX_GPIO_B_INT_TYPE1 EP93XX_GPIO_REG(0xac)
+ #define EP93XX_GPIO_B_INT_TYPE2 EP93XX_GPIO_REG(0xb0)
+ #define EP93XX_GPIO_B_INT_ACK EP93XX_GPIO_REG(0xb4)
+ #define EP93XX_GPIO_B_INT_ENABLE EP93XX_GPIO_REG(0xb8)
+ #define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc)
++#define EP93XX_GPIO_B_INT_DEBOUNCE EP93XX_GPIO_REG(0xc4)
+
+ #define EP93XX_AAC_BASE (EP93XX_APB_VIRT_BASE + 0x00080000)
+
+Index: linux-2.6.22/include/linux/irq.h
+===================================================================
+--- linux-2.6.22.orig/include/linux/irq.h
++++ linux-2.6.22/include/linux/irq.h
+@@ -44,6 +44,7 @@ typedef void fastcall (*irq_flow_handler
+ #define IRQ_TYPE_LEVEL_LOW 0x00000008 /* Level low type */
+ #define IRQ_TYPE_SENSE_MASK 0x0000000f /* Mask of the above */
+ #define IRQ_TYPE_PROBE 0x00000010 /* Probing in progress */
++#define IRQ_TYPE_DEBOUNCE 0x00000020 /* Enable HW debounce */
+
+ /* Internal flags */
+ #define IRQ_INPROGRESS 0x00000100 /* IRQ handler active - do not enter! */
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-i2c-bus.diff b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-i2c-bus.diff
new file mode 100644
index 0000000000..d3c66940de
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-i2c-bus.diff
@@ -0,0 +1,220 @@
+
+I2C bus driver using ep93xx GPIOs.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.22/drivers/i2c/busses/Kconfig
+===================================================================
+--- linux-2.6.22.orig/drivers/i2c/busses/Kconfig 2007-08-30 00:42:45.000000000 +0200
++++ linux-2.6.22/drivers/i2c/busses/Kconfig 2007-08-30 00:42:52.000000000 +0200
+@@ -635,4 +635,16 @@
+ This driver can also be built as a module. If so, the module
+ will be called i2c-pnx.
+
++config I2C_EP93XX
++ tristate "Cirrus Logic EP93XX GPIO-based I2C interface"
++ depends on I2C && ARCH_EP93XX
++ select I2C_ALGOBIT
++ help
++ Say Y here if you have an Cirrus Logic EP93XX based
++ system and are using GPIO lines for an I2C bus.
++
++ This support is also available as a module. If so, the module
++ will be called i2c-ep93xx.
++
++
+ endmenu
+Index: linux-2.6.22/drivers/i2c/busses/Makefile
+===================================================================
+--- linux-2.6.22.orig/drivers/i2c/busses/Makefile 2007-08-30 00:42:45.000000000 +0200
++++ linux-2.6.22/drivers/i2c/busses/Makefile 2007-08-30 00:42:52.000000000 +0200
+@@ -52,6 +52,7 @@
+ obj-$(CONFIG_I2C_VOODOO3) += i2c-voodoo3.o
+ obj-$(CONFIG_SCx200_ACB) += scx200_acb.o
+ obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o
++obj-$(CONFIG_I2C_EP93XX) += i2c-ep93xx.o
+
+ ifeq ($(CONFIG_I2C_DEBUG_BUS),y)
+ EXTRA_CFLAGS += -DDEBUG
+Index: linux-2.6.22/drivers/i2c/busses/i2c-ep93xx.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22/drivers/i2c/busses/i2c-ep93xx.c 2007-08-30 00:42:52.000000000 +0200
+@@ -0,0 +1,159 @@
++/*
++ * EP93XX I2C bus driver.
++ * Copyright (C) 2007 Lennert Buytenhek <buytenh@wantstofly.org>
++ *
++ * An I2C bus driver for the Cirrus Logic EP93xx SoC.
++ *
++ * Based on an earlier version by Alessandro Zummo.
++ */
++
++#include <linux/kernel.h>
++#include <linux/platform_device.h>
++#include <linux/module.h>
++#include <linux/i2c.h>
++#include <linux/i2c-algo-bit.h>
++#include <asm/hardware.h>
++#include <asm/arch/gpio.h>
++
++struct ep93xx_i2c_priv {
++ struct ep93xx_i2c_data *data;
++ struct i2c_adapter adapter;
++ struct i2c_algo_bit_data algo_data;
++ int sda;
++ int scl;
++};
++
++
++static void ep93xx_bit_setsda(void *cookie, int val)
++{
++ struct ep93xx_i2c_priv *priv = cookie;
++
++ if (val) {
++ gpio_line_config(priv->data->sda_pin, GPIO_IN);
++ if (priv->scl && !priv->sda && priv->data->stop != NULL)
++ priv->data->stop(priv->data->cookie);
++ priv->sda = 1;
++ } else {
++ if (priv->scl && priv->sda && priv->data->start != NULL)
++ priv->data->start(priv->data->cookie);
++ gpio_line_config(priv->data->sda_pin, GPIO_OUT);
++ gpio_line_set(priv->data->sda_pin, 0);
++ priv->sda = 0;
++ }
++}
++
++static void ep93xx_bit_setscl(void *cookie, int val)
++{
++ struct ep93xx_i2c_priv *priv = cookie;
++
++ if (val) {
++ gpio_line_config(priv->data->scl_pin, GPIO_IN);
++ priv->scl = 1;
++ } else {
++ gpio_line_config(priv->data->scl_pin, GPIO_OUT);
++ gpio_line_set(priv->data->scl_pin, 0);
++ priv->scl = 0;
++ }
++}
++
++static int ep93xx_bit_getsda(void *cookie)
++{
++ struct ep93xx_i2c_priv *priv = cookie;
++
++ if (priv->sda == 0)
++ BUG();
++
++ return gpio_line_get(priv->data->sda_pin);
++}
++
++static int ep93xx_bit_getscl(void *cookie)
++{
++ struct ep93xx_i2c_priv *priv = cookie;
++
++ if (priv->scl == 0)
++ BUG();
++
++ return gpio_line_get(priv->data->scl_pin);
++}
++
++
++static int ep93xx_i2c_probe(struct platform_device *pdev)
++{
++ struct ep93xx_i2c_priv *priv;
++ int err;
++
++ priv = kzalloc(sizeof(struct ep93xx_i2c_priv), GFP_KERNEL);
++ if (priv == NULL)
++ return -ENOMEM;
++
++ priv->data = pdev->dev.platform_data;
++
++ strlcpy(priv->adapter.name, pdev->dev.driver->name, I2C_NAME_SIZE);
++ priv->adapter.algo_data = &priv->algo_data;
++ priv->adapter.class = I2C_CLASS_ALL;
++ priv->adapter.dev.parent = &pdev->dev;
++
++ priv->algo_data.data = priv;
++ priv->algo_data.setsda = ep93xx_bit_setsda;
++ priv->algo_data.setscl = ep93xx_bit_setscl;
++ priv->algo_data.getsda = ep93xx_bit_getsda;
++ priv->algo_data.getscl = ep93xx_bit_getscl;
++ priv->algo_data.udelay = 10;
++ priv->algo_data.timeout = 100;
++
++ priv->sda = 1;
++ gpio_line_config(priv->data->sda_pin, GPIO_IN);
++
++ priv->scl = 1;
++ gpio_line_config(priv->data->scl_pin, GPIO_IN);
++
++ err = i2c_bit_add_bus(&priv->adapter);
++ if (err) {
++ printk(KERN_ERR "ERROR: Could not install %s\n",
++ pdev->dev.bus_id);
++ kfree(priv);
++ return err;
++ }
++
++ platform_set_drvdata(pdev, priv);
++
++ return 0;
++}
++
++static int ep93xx_i2c_remove(struct platform_device *pdev)
++{
++ struct ep93xx_i2c_priv *priv;
++
++ priv = platform_get_drvdata(pdev);
++ i2c_del_adapter(&priv->adapter);
++ platform_set_drvdata(pdev, NULL);
++ kfree(priv);
++
++ return 0;
++}
++
++static struct platform_driver ep93xx_i2c_driver = {
++ .probe = ep93xx_i2c_probe,
++ .remove = ep93xx_i2c_remove,
++ .driver = {
++ .name = "ep93xx-i2c",
++ .owner = THIS_MODULE,
++ },
++};
++
++static int __init ep93xx_i2c_init(void)
++{
++ return platform_driver_register(&ep93xx_i2c_driver);
++}
++
++static void __exit ep93xx_i2c_exit(void)
++{
++ platform_driver_unregister(&ep93xx_i2c_driver);
++}
++
++module_init(ep93xx_i2c_init);
++module_exit(ep93xx_i2c_exit);
++
++MODULE_AUTHOR("Lennert Buytenhek <buytenh@wantstofly.org>");
++MODULE_DESCRIPTION("GPIO-based I2C adapter for EP93XX systems");
++MODULE_LICENSE("GPL");
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/platform.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/platform.h 2007-08-30 00:42:45.000000000 +0200
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/platform.h 2007-08-30 00:42:52.000000000 +0200
+@@ -16,5 +16,13 @@
+ unsigned char phy_id;
+ };
+
++struct ep93xx_i2c_data {
++ int sda_pin;
++ int scl_pin;
++ void *cookie;
++ void (*start)(void *);
++ void (*stop)(void *);
++};
++
+
+ #endif
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-i2c.diff b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-i2c.diff
new file mode 100644
index 0000000000..b68fb14e2e
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-i2c.diff
@@ -0,0 +1,110 @@
+
+Instantiate the ep93xx gpio i2c bus driver in the generic ep93xx
+code.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.22/arch/arm/mach-ep93xx/core.c
+===================================================================
+--- linux-2.6.22.orig/arch/arm/mach-ep93xx/core.c 2007-08-30 00:42:49.000000000 +0200
++++ linux-2.6.22/arch/arm/mach-ep93xx/core.c 2007-08-30 00:43:00.000000000 +0200
+@@ -509,6 +509,52 @@
+ };
+
+
++static DEFINE_MUTEX(eeclk_eedat_mutex);
++static int i2c_transaction_in_progress;
++
++static void ep93xx_i2c_start_condition(void *cookie)
++{
++ if (!i2c_transaction_in_progress) {
++ mutex_lock(&eeclk_eedat_mutex);
++ i2c_transaction_in_progress = 1;
++ }
++}
++
++static void ep93xx_i2c_stop_condition(void *cookie)
++{
++ if (i2c_transaction_in_progress) {
++ mutex_unlock(&eeclk_eedat_mutex);
++ i2c_transaction_in_progress = 0;
++ } else {
++ printk(KERN_WARNING "ep93xx: i2c stop without start??\n");
++ }
++}
++
++static struct ep93xx_i2c_data ep93xx_i2c_gpio_data = {
++ .sda_pin = EP93XX_GPIO_LINE_EEDAT,
++ .scl_pin = EP93XX_GPIO_LINE_EECLK,
++ .start = ep93xx_i2c_start_condition,
++ .stop = ep93xx_i2c_stop_condition,
++};
++
++static struct platform_device ep93xx_i2c_device = {
++ .name = "ep93xx-i2c",
++ .id = 0,
++ .dev.platform_data = &ep93xx_i2c_gpio_data,
++ .num_resources = 0,
++};
++
++void eeclk_eedat_claim(void)
++{
++ mutex_lock(&eeclk_eedat_mutex);
++}
++
++void eeclk_eedat_release(void)
++{
++ mutex_unlock(&eeclk_eedat_mutex);
++}
++
++
+ void __init ep93xx_init_devices(void)
+ {
+ unsigned int v;
+@@ -521,10 +567,20 @@
+ __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
+ __raw_writel(v, EP93XX_SYSCON_DEVICE_CONFIG);
+
++ /*
++ * When EECLK/EEDAT are in open drain mode (EEDRIVE=0b11),
++ * writing a 1 to their Data Register bits causes subsequent
++ * reads from the Data Direction Register to return 'input',
++ * which confuses gpio_line_config(). So, we use CMOS drive
++ * mode instead.
++ */
++ __raw_writel(0, EP93XX_GPIO_EEDRIVE);
++
+ amba_device_register(&uart1_device, &iomem_resource);
+ amba_device_register(&uart2_device, &iomem_resource);
+ amba_device_register(&uart3_device, &iomem_resource);
+
+ platform_device_register(&ep93xx_rtc_device);
+ platform_device_register(&ep93xx_ohci_device);
++ platform_device_register(&ep93xx_i2c_device);
+ }
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/ep93xx-regs.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-08-30 00:42:49.000000000 +0200
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-08-30 00:43:00.000000000 +0200
+@@ -91,6 +91,7 @@
+ #define EP93XX_GPIO_B_INT_ENABLE EP93XX_GPIO_REG(0xb8)
+ #define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc)
+ #define EP93XX_GPIO_B_INT_DEBOUNCE EP93XX_GPIO_REG(0xc4)
++#define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8)
+
+ #define EP93XX_AAC_BASE (EP93XX_APB_VIRT_BASE + 0x00080000)
+
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/platform.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/platform.h 2007-08-30 00:42:52.000000000 +0200
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/platform.h 2007-08-30 00:43:00.000000000 +0200
+@@ -10,6 +10,9 @@
+ void ep93xx_init_devices(void);
+ extern struct sys_timer ep93xx_timer;
+
++void eeclk_eedat_claim(void);
++void eeclk_eedat_release(void);
++
+ struct ep93xx_eth_data
+ {
+ unsigned char dev_addr[6];
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-leds.diff b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-leds.diff
new file mode 100644
index 0000000000..0d11311d10
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-leds.diff
@@ -0,0 +1,181 @@
+
+EP93xx leds driver
+
+Signed-off-by: Petr Stetiar <ynezz@true.cz>
+
+Index: linux-2.6.22/arch/arm/mach-ep93xx/core.c
+===================================================================
+--- linux-2.6.22.orig/arch/arm/mach-ep93xx/core.c
++++ linux-2.6.22/arch/arm/mach-ep93xx/core.c
+@@ -555,6 +555,12 @@ void eeclk_eedat_release(void)
+ }
+
+
++static struct platform_device ep93xx_led_device = {
++ .name = "ep93xx-led",
++ .id = -1,
++};
++
++
+ void __init ep93xx_init_devices(void)
+ {
+ unsigned int v;
+@@ -583,4 +589,5 @@ void __init ep93xx_init_devices(void)
+ platform_device_register(&ep93xx_rtc_device);
+ platform_device_register(&ep93xx_ohci_device);
+ platform_device_register(&ep93xx_i2c_device);
++ platform_device_register(&ep93xx_led_device);
+ }
+Index: linux-2.6.22/drivers/leds/Kconfig
+===================================================================
+--- linux-2.6.22.orig/drivers/leds/Kconfig
++++ linux-2.6.22/drivers/leds/Kconfig
+@@ -95,6 +95,12 @@ config LEDS_COBALT
+ help
+ This option enables support for the front LED on Cobalt Server
+
++config LEDS_EP93XX
++ tristate "LED Support for Cirrus Logic EP93xx"
++ depends on LEDS_CLASS && ARCH_EP93XX
++ help
++ This option enables support for the Cirrus Logic EP93xx based boards.
++
+ comment "LED Triggers"
+
+ config LEDS_TRIGGERS
+Index: linux-2.6.22/drivers/leds/Makefile
+===================================================================
+--- linux-2.6.22.orig/drivers/leds/Makefile
++++ linux-2.6.22/drivers/leds/Makefile
+@@ -16,6 +16,7 @@ obj-$(CONFIG_LEDS_NET48XX) += leds-net4
+ obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
+ obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
+ obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
++obj-$(CONFIG_LEDS_EP93XX) += leds-ep93xx.o
+
+ # LED Triggers
+ obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
+Index: linux-2.6.22/drivers/leds/leds-ep93xx.c
+===================================================================
+--- /dev/null
++++ linux-2.6.22/drivers/leds/leds-ep93xx.c
+@@ -0,0 +1,119 @@
++/*
++ * LEDs driver for Cirrus Logic EP93xx
++ *
++ * Author: Petr Stetiar <ynezz@true.cz>
++ *
++ * Based on leds-corgi.c by Richard Purdie
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/leds.h>
++#include <asm/mach-types.h>
++#include <asm/arch/hardware.h>
++#include <asm/arch/gpio.h>
++
++static void ep93xx_green_led_set(struct led_classdev *led_cdev, enum led_brightness value)
++{
++ if (value)
++ gpio_line_set(EP93XX_GPIO_LINE_GRLED, EP93XX_GPIO_HIGH);
++ else
++ gpio_line_set(EP93XX_GPIO_LINE_GRLED, EP93XX_GPIO_LOW);
++}
++
++static void ep93xx_red_led_set(struct led_classdev *led_cdev, enum led_brightness value)
++{
++ if (value)
++ gpio_line_set(EP93XX_GPIO_LINE_RDLED, EP93XX_GPIO_HIGH);
++ else
++ gpio_line_set(EP93XX_GPIO_LINE_RDLED, EP93XX_GPIO_LOW);
++}
++
++
++static struct led_classdev ep93xx_green_led = {
++ .name = "ep93xx:green",
++ .default_trigger = "none",
++ .brightness_set = ep93xx_green_led_set,
++};
++
++static struct led_classdev ep93xx_red_led = {
++ .name = "ep93xx:red",
++ .default_trigger = "heartbeat",
++ .brightness_set = ep93xx_red_led_set,
++};
++
++#ifdef CONFIG_PM
++static int ep93xx_led_suspend(struct platform_device *dev, pm_message_t state)
++{
++ led_classdev_suspend(&ep93xx_green_led);
++ led_classdev_suspend(&ep93xx_red_led);
++ return 0;
++}
++
++static int ep93xx_led_resume(struct platform_device *dev)
++{
++ led_classdev_resume(&ep93xx_red_led);
++ led_classdev_resume(&ep93xx_green_led);
++ return 0;
++}
++#endif
++
++static int ep93xx_led_probe(struct platform_device *pdev)
++{
++ int ret;
++
++ gpio_line_config(EP93XX_GPIO_LINE_GRLED, GPIO_OUT);
++ gpio_line_config(EP93XX_GPIO_LINE_RDLED, GPIO_OUT);
++
++ ret = led_classdev_register(&pdev->dev, &ep93xx_green_led);
++ if (ret < 0)
++ return ret;
++
++ ret = led_classdev_register(&pdev->dev, &ep93xx_red_led);
++ if (ret < 0)
++ led_classdev_unregister(&ep93xx_green_led);
++
++ return ret;
++}
++
++static int ep93xx_led_remove(struct platform_device *pdev)
++{
++ led_classdev_unregister(&ep93xx_green_led);
++ led_classdev_unregister(&ep93xx_red_led);
++ return 0;
++}
++
++static struct platform_driver ep93xx_led_driver = {
++ .probe = ep93xx_led_probe,
++ .remove = ep93xx_led_remove,
++#ifdef CONFIG_PM
++ .suspend = ep93xx_led_suspend,
++ .resume = ep93xx_led_resume,
++#endif
++ .driver = {
++ .name = "ep93xx-led",
++ },
++};
++
++static int __init ep93xx_led_init(void)
++{
++ return platform_driver_register(&ep93xx_led_driver);
++}
++
++static void __exit ep93xx_led_exit(void)
++{
++ platform_driver_unregister(&ep93xx_led_driver);
++}
++
++module_init(ep93xx_led_init);
++module_exit(ep93xx_led_exit);
++
++MODULE_AUTHOR("Petr Stetiar <ynezz@true.cz>");
++MODULE_DESCRIPTION("Cirrus Logic EP93xx LED driver");
++MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-maverick-uniqid.patch b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-maverick-uniqid.patch
new file mode 100644
index 0000000000..fb6c8cfe18
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-maverick-uniqid.patch
@@ -0,0 +1,38 @@
+
+Adds support for SoC's unique ID (Maverick Key) in /proc/cpuinfo
+
+Signed-off-by: Petr Stetiar <ynezz@true.cz>
+
+Index: linux-2.6.22/arch/arm/kernel/setup.c
+===================================================================
+--- linux-2.6.22.orig/arch/arm/kernel/setup.c 2007-09-02 23:08:51.000000000 +0200
++++ linux-2.6.22/arch/arm/kernel/setup.c 2007-09-02 23:10:24.000000000 +0200
+@@ -959,8 +959,15 @@
+
+ seq_printf(m, "Hardware\t: %s\n", machine_name);
+ seq_printf(m, "Revision\t: %04x\n", system_rev);
++
++#if defined(CONFIG_ARCH_EP93XX)
++#include <asm/arch/ep93xx-regs.h>
++ seq_printf(m, "Serial\t\t: %016x\n",
++ *((unsigned int *)EP93XX_SECURITY_UNIQID));
++#else
+ seq_printf(m, "Serial\t\t: %08x%08x\n",
+ system_serial_high, system_serial_low);
++#endif
+
+ return 0;
+ }
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/ep93xx-regs.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-02 23:06:45.000000000 +0200
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-02 23:08:34.000000000 +0200
+@@ -70,6 +70,8 @@
+ #define EP93XX_I2S_BASE (EP93XX_APB_VIRT_BASE + 0x00020000)
+
+ #define EP93XX_SECURITY_BASE (EP93XX_APB_VIRT_BASE + 0x00030000)
++#define EP93XX_SECURITY_REG(x) (EP93XX_SECURITY_BASE + (x))
++#define EP93XX_SECURITY_UNIQID EP93XX_SECURITY_REG(0x2440)
+
+ #define EP93XX_GPIO_BASE (EP93XX_APB_VIRT_BASE + 0x00040000)
+ #define EP93XX_GPIO_REG(x) (EP93XX_GPIO_BASE + (x))
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff
new file mode 100644
index 0000000000..9eb2d9de98
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff
@@ -0,0 +1,42 @@
+
+Hackishly enable all UART clocks before uncompressing the kernel,
+so that using ttyAM1 or ttyAM2 as console can work.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/uncompress.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/uncompress.h
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/uncompress.h
+@@ -78,6 +78,23 @@ static void ethernet_reset(void)
+
+
+ /*
++ * We don't have clock management for the UARTs (amba-pl010)
++ * yet, so hackily enable all UART clocks here for now.
++ */
++#define PHYS_SYSCON_DEVICE_CONFIG 0x80930080
++#define PHYS_SYSCON_SWLOCK 0x809300c0
++
++static void enable_all_uart_clocks(void)
++{
++ unsigned int v;
++
++ v = __raw_readl(PHYS_SYSCON_DEVICE_CONFIG);
++ __raw_writel(0xaa, PHYS_SYSCON_SWLOCK);
++ __raw_writel(v | 0x01140000, PHYS_SYSCON_DEVICE_CONFIG);
++}
++
++
++/*
+ * Some bootloaders don't turn on the UARTBAUD bit, which means that
+ * the UARTs will be running off a divided 7.3728 MHz clock instead of
+ * the 14.7456 MHz peripheral clock when linux boots.
+@@ -126,6 +143,7 @@ static void fix_uart_base(void)
+ static void arch_decomp_setup(void)
+ {
+ ethernet_reset();
++ enable_all_uart_clocks();
+ fix_uart_base();
+ }
+
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-uartbaud.diff b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-uartbaud.diff
new file mode 100644
index 0000000000..7183ab626e
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-uartbaud.diff
@@ -0,0 +1,66 @@
+
+Force UARTBAUD on before uncompressing.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/uncompress.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/uncompress.h
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/uncompress.h
+@@ -77,9 +77,56 @@ static void ethernet_reset(void)
+ }
+
+
++/*
++ * Some bootloaders don't turn on the UARTBAUD bit, which means that
++ * the UARTs will be running off a divided 7.3728 MHz clock instead of
++ * the 14.7456 MHz peripheral clock when linux boots.
++ *
++ * We detect that condition here and fix it by turning on UARTBAUD, and
++ * then reprogramming the divisors on all enabled UARTs to twice what
++ * they were before we turned UARTBAUD on, to preserve the programmed
++ * baud rate.
++ */
++#define PHYS_SYSCON_CLOCK_CONTROL 0x80930004
++#define SYSCON_CLOCK_UARTBAUD 0x20000000
++#define PHYS_UART1_BASE 0x808c0000
++#define PHYS_UART2_BASE 0x808d0000
++#define PHYS_UART3_BASE 0x808e0000
++
++static void uart_divisor_times_two(unsigned int base)
++{
++ u16 divisor;
++
++ divisor = __raw_readb(base + 0x0c) << 8;
++ divisor |= __raw_readb(base + 0x10);
++ if (divisor) {
++ divisor = (2 * (divisor + 1)) - 1;
++ __raw_writeb(divisor >> 8, base + 0x0c);
++ __raw_writeb(divisor & 0xff, base + 0x10);
++ __raw_writeb(__raw_readb(base + 0x08), base + 0x08);
++ }
++}
++
++static void fix_uart_base(void)
++{
++ unsigned int v;
++
++ v = __raw_readl(PHYS_SYSCON_CLOCK_CONTROL);
++ if ((v & SYSCON_CLOCK_UARTBAUD) == 0) {
++ v |= SYSCON_CLOCK_UARTBAUD;
++ __raw_writel(v, PHYS_SYSCON_CLOCK_CONTROL);
++
++ uart_divisor_times_two(PHYS_UART1_BASE);
++ uart_divisor_times_two(PHYS_UART2_BASE);
++ uart_divisor_times_two(PHYS_UART3_BASE);
++ }
++}
++
++
+ static void arch_decomp_setup(void)
+ {
+ ethernet_reset();
++ fix_uart_base();
+ }
+
+ #define arch_decomp_wdog()
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-timer-accuracy.diff b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-timer-accuracy.diff
new file mode 100644
index 0000000000..8254153b69
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-timer-accuracy.diff
@@ -0,0 +1,59 @@
+
+The ep93xx has a weird timer tick base (983.04 kHz.) This experimental
+patch tries to increase time of day accuracy by keeping the number of
+ticks until the next jiffy in a fractional value representation.
+
+Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
+
+Index: linux-2.6.22/arch/arm/mach-ep93xx/core.c
+===================================================================
+--- linux-2.6.22.orig/arch/arm/mach-ep93xx/core.c
++++ linux-2.6.22/arch/arm/mach-ep93xx/core.c
+@@ -94,19 +94,32 @@ void __init ep93xx_map_io(void)
+ * track of lost jiffies.
+ */
+ static unsigned int last_jiffy_time;
++static unsigned int next_jiffy_time;
++static unsigned int accumulator;
+
+-#define TIMER4_TICKS_PER_JIFFY ((CLOCK_TICK_RATE + (HZ/2)) / HZ)
++#define TIMER4_TICKS_PER_JIFFY (983040 / HZ)
++#define TIMER4_TICKS_MOD_JIFFY (983040 % HZ)
++
++static int after_eq(unsigned long a, unsigned long b)
++{
++ return ((signed long)(a - b)) >= 0;
++}
+
+ static int ep93xx_timer_interrupt(int irq, void *dev_id)
+ {
+ write_seqlock(&xtime_lock);
+
+ __raw_writel(1, EP93XX_TIMER1_CLEAR);
+- while ((signed long)
+- (__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time)
+- >= TIMER4_TICKS_PER_JIFFY) {
+- last_jiffy_time += TIMER4_TICKS_PER_JIFFY;
++ while (after_eq(__raw_readl(EP93XX_TIMER4_VALUE_LOW), next_jiffy_time)) {
+ timer_tick();
++
++ last_jiffy_time = next_jiffy_time;
++ next_jiffy_time += TIMER4_TICKS_PER_JIFFY;
++ accumulator += TIMER4_TICKS_MOD_JIFFY;
++ if (accumulator >= HZ) {
++ next_jiffy_time++;
++ accumulator -= HZ;
++ }
+ }
+
+ write_sequnlock(&xtime_lock);
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/timex.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/timex.h
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/timex.h
+@@ -2,4 +2,4 @@
+ * linux/include/asm-arm/arch-ep93xx/timex.h
+ */
+
+-#define CLOCK_TICK_RATE 983040
++#define CLOCK_TICK_RATE (1000 * HZ)
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/series b/packages/linux/linux-2.6.22.6/ts72xx/series
new file mode 100644
index 0000000000..e5455efd3c
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/series
@@ -0,0 +1,12 @@
+ep93xx-gpio-interrupt-debounce.diff
+ep93xx-i2c-bus.diff
+ep93xx-i2c.diff
+ep93xx-leds.diff
+ep93xx-serial-uartbaud.diff
+ep93xx-serial-clocks.diff
+ep93xx-timer-accuracy.diff
+ep93xx-maverick-uniqid.patch
+ts72xx-machine-id-fix.patch
+ts72xx-nfbit-fix.patch
+ts72xx-watchdog.patch
+ts72xx-use-cpld-reset.patch
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-machine-id-fix.patch b/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-machine-id-fix.patch
new file mode 100644
index 0000000000..64c38398db
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-machine-id-fix.patch
@@ -0,0 +1,17 @@
+
+Fix wrong machine ID passed from RedBoot
+
+Signed-off-by: Petr Stetiar <ynezz@true.cz>
+
+Index: linux-2.6.22/arch/arm/kernel/head.S
+===================================================================
+--- linux-2.6.22.orig/arch/arm/kernel/head.S 2007-08-30 00:42:45.000000000 +0200
++++ linux-2.6.22/arch/arm/kernel/head.S 2007-08-30 00:43:13.000000000 +0200
+@@ -82,6 +82,7 @@
+ bl __lookup_processor_type @ r5=procinfo r9=cpuid
+ movs r10, r5 @ invalid processor (r5=0)?
+ beq __error_p @ yes, error 'p'
++ ldr r1, =0x000002a1 @ mach-type = TS-7250
+ bl __lookup_machine_type @ r5=machinfo
+ movs r8, r5 @ invalid machine (r5=0)?
+ beq __error_a @ yes, error 'a'
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-nfbit-fix.patch b/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-nfbit-fix.patch
new file mode 100644
index 0000000000..eab73154a8
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-nfbit-fix.patch
@@ -0,0 +1,15 @@
+
+Force the nF bit on. Usually this is set by the bootrom. If it is not set,
+then the CPU core will run from HCLK instead of FCLK, and performance will
+suffer. If you see BogoMIPS of about 1/4 of your CPU clock, try turning this
+on; your performance should double.
+
+--- linux-2.6.21.4/arch/arm/mm/proc-arm920.S 2007-06-07 23:27:31.000000000 +0200
++++ linux-2.6.21.4-arm/arch/arm/mm/proc-arm920.S 2007-06-08 22:59:48.000000000 +0200
+@@ -395,6 +395,7 @@
+ mrc p15, 0, r0, c1, c0 @ get control register v4
+ bic r0, r0, r5
+ orr r0, r0, r6
++ orr r0, r0, #0x40000000
+ mov pc, lr
+ .size __arm920_setup, . - __arm920_setup
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-use-cpld-reset.patch b/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-use-cpld-reset.patch
new file mode 100644
index 0000000000..9744a67653
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-use-cpld-reset.patch
@@ -0,0 +1,41 @@
+
+Use CPLD watchdog to reset the machine instead of buggy ep93xx one, which
+sometimes get stuck...
+
+Signed-off-by: Petr Stetiar <ynezz@true.cz>
+
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/system.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/system.h 2007-08-30 00:53:47.000000000 +0200
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/system.h 2007-08-30 00:54:28.000000000 +0200
+@@ -3,6 +3,7 @@
+ */
+
+ #include <asm/hardware.h>
++#include <asm/mach-types.h>
+
+ static inline void arch_idle(void)
+ {
+@@ -15,11 +16,17 @@
+
+ local_irq_disable();
+
+- devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG);
+- __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
+- __raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
+- __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
+- __raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
++ if (machine_is_ts72xx()) {
++ __raw_writeb(0x5, TS72XX_WATCHDOG_FEED_PHYS_BASE);
++ __raw_writeb(0x1, TS72XX_WATCHDOG_CONTROL_PHYS_BASE);
++ } else {
++ devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG);
++ __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
++ __raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
++ __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
++ __raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
++ }
++
+
+ while (1)
+ ;
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-watchdog.patch b/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-watchdog.patch
new file mode 100644
index 0000000000..aa2cb834f9
--- /dev/null
+++ b/packages/linux/linux-2.6.22.6/ts72xx/ts72xx-watchdog.patch
@@ -0,0 +1,430 @@
+
+TS-72xx watchdog driver
+
+Signed-off-by: Matthieu Crapet <mcrapet@gmail.com>
+
+Index: linux-2.6.22/arch/arm/mach-ep93xx/ts72xx.c
+===================================================================
+--- linux-2.6.22.orig/arch/arm/mach-ep93xx/ts72xx.c 2007-08-30 01:33:00.000000000 +0200
++++ linux-2.6.22/arch/arm/mach-ep93xx/ts72xx.c 2007-08-30 01:33:10.000000000 +0200
+@@ -183,6 +183,26 @@
+ .resource = ts72xx_eth_resource,
+ };
+
++static struct resource ts72xx_watchdog_resources[] = {
++ [0] = {
++ .start = TS72XX_WATCHDOG_CONTROL_PHYS_BASE,
++ .end = TS72XX_WATCHDOG_CONTROL_PHYS_BASE + 0x0fff,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = TS72XX_WATCHDOG_FEED_PHYS_BASE,
++ .end = TS72XX_WATCHDOG_FEED_PHYS_BASE + 0x0fff,
++ .flags = IORESOURCE_MEM,
++ },
++};
++
++static struct platform_device ts72xx_watchdog_device = {
++ .name = "ts72xx_wdt",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(ts72xx_watchdog_resources),
++ .resource = ts72xx_watchdog_resources,
++};
++
+ static void __init ts72xx_init_machine(void)
+ {
+ ep93xx_init_devices();
+@@ -193,6 +213,7 @@
+ memcpy(ts72xx_eth_data.dev_addr,
+ (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
+ platform_device_register(&ts72xx_eth_device);
++ platform_device_register(&ts72xx_watchdog_device);
+ }
+
+ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
+Index: linux-2.6.22/drivers/char/watchdog/Kconfig
+===================================================================
+--- linux-2.6.22.orig/drivers/char/watchdog/Kconfig 2007-08-30 01:33:00.000000000 +0200
++++ linux-2.6.22/drivers/char/watchdog/Kconfig 2007-08-30 01:33:10.000000000 +0200
+@@ -187,6 +187,18 @@
+
+ Say N if you are unsure.
+
++config TS72XX_WATCHDOG
++ tristate "TS-72xx Watchdog"
++ depends on WATCHDOG && ARCH_EP93XX && MACH_TS72XX
++ help
++ Say Y here if to include support for the CPLD watchdog
++ included on Technologic Systems SBC.
++
++ NOTE: timeout value is given in milliseconds, not in seconds.
++
++ To compile this driver as a module, choose M here: the
++ module will be called ts72xx_wdt.
++
+ # X86 (i386 + ia64 + x86_64) Architecture
+
+ config ACQUIRE_WDT
+Index: linux-2.6.22/drivers/char/watchdog/Makefile
+===================================================================
+--- linux-2.6.22.orig/drivers/char/watchdog/Makefile 2007-08-30 01:33:00.000000000 +0200
++++ linux-2.6.22/drivers/char/watchdog/Makefile 2007-08-30 01:33:10.000000000 +0200
+@@ -34,6 +34,7 @@
+ obj-$(CONFIG_SA1100_WATCHDOG) += sa1100_wdt.o
+ obj-$(CONFIG_MPCORE_WATCHDOG) += mpcore_wdt.o
+ obj-$(CONFIG_EP93XX_WATCHDOG) += ep93xx_wdt.o
++obj-$(CONFIG_TS72XX_WATCHDOG) += ts72xx_wdt.o
+ obj-$(CONFIG_PNX4008_WATCHDOG) += pnx4008_wdt.o
+
+ # X86 (i386 + ia64 + x86_64) Architecture
+Index: linux-2.6.22/drivers/char/watchdog/ts72xx_wdt.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22/drivers/char/watchdog/ts72xx_wdt.c 2007-08-30 01:33:10.000000000 +0200
+@@ -0,0 +1,332 @@
++/*
++ * TS-72xx Watchdog Driver for Technologic Systems boards.
++ *
++ * Based on ep93xx_wdt.c by Lehtiniemi <rayl@mail.com> &
++ * Alessandro Zummo <a.zummo@towertech.it>
++ * and ib700wdt.c by Charles Howes <chowes@vsol.net>
++ * and mpc83xx_wdt.c by Dave Updegraff <dave@cray.org> &
++ * Kumar Gala <galak@kernel.crashing.org>
++ *
++ * (c) Copyright 2006 Matthieu Crapet <mcrapet@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ *
++ * This driver only deals with native timeout provided by CPLD :
++ * 1/4s, 1/2s, 1s, 2s, 4s and 8s. No external timer is used.
++ * Notice that we must ping before modifying the control register.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/types.h>
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/miscdevice.h>
++#include <linux/platform_device.h>
++#include <linux/init.h>
++#include <linux/watchdog.h>
++#include <asm/io.h>
++#include <asm/uaccess.h>
++#include <asm/system.h>
++#include <asm/mach-types.h>
++
++#define WATCHDOG_VERSION "0.2"
++#define PFX "ts72xx_wdt: "
++
++#define WATCHDOG_TIMEOUT 8000 /* 8 seconds */
++#define WDT_IN_USE 0
++#define WDT_OK_TO_CLOSE 1
++
++static unsigned long ts72xx_wdt_status;
++static unsigned char ts72xx_wdt_cpld_value = 0x7;
++static int nowayout = WATCHDOG_NOWAYOUT;
++static int timeout = WATCHDOG_TIMEOUT;
++
++static int ts72xx_wdt_times[12] = {
++ 6000, 3000, 1500, 750, 275, 0,
++ 8000, 4000, 2000, 1000, 500, 250
++};
++
++static void __iomem *control_register;
++static void __iomem *feed_register;
++
++
++/*
++ * Kernel methods.
++ */
++
++static inline void ts72xx_wdt_ping(void)
++{
++ __raw_writew(0x05, feed_register);
++}
++
++static inline void ts72xx_wdt_enable(void)
++{
++ __raw_writew(0x05, feed_register);
++ __raw_writew(ts72xx_wdt_cpld_value, control_register);
++}
++
++static inline void ts72xx_wdt_disable(void)
++{
++ __raw_writew(0x05, feed_register);
++ __raw_writew(0, control_register);
++}
++
++static inline void ts72xx_parse_timeout(int value)
++{
++ unsigned char cpld_value = 0x7;
++ int i;
++
++ if ((value > 8000) || (value < 250)) {
++ timeout = WATCHDOG_TIMEOUT;
++ printk(KERN_INFO PFX "Timeout value out of range, set to %d\n", timeout);
++ } else {
++ for (i = 0; i < 6; i++) {
++ if (value >= ts72xx_wdt_times[i]) {
++ timeout = ts72xx_wdt_times[i+6];
++
++ if (value != timeout)
++ printk(KERN_INFO PFX "Timeout value rounded to %d\n", timeout);
++
++ if (i >= 3) /* cpld_value can't be 4 */
++ i++;
++
++ cpld_value = 7 - i;
++ break;
++ }
++ }
++ }
++
++ ts72xx_wdt_cpld_value = cpld_value;
++}
++
++static ssize_t ts72xx_wdt_write(struct file *file, const char __user *buf,
++ size_t count, loff_t *ppos)
++{
++ /* Can't seek (pwrite) on this device */
++ if (*ppos != file->f_pos)
++ return -ESPIPE;
++
++ if (count) {
++ if (!nowayout) {
++ size_t i;
++
++ clear_bit(WDT_OK_TO_CLOSE, &ts72xx_wdt_status);
++
++ for (i = 0; i != count; i++) {
++ char c;
++
++ if (get_user(c, buf + i))
++ return -EFAULT;
++
++ if (c == 'V')
++ set_bit(WDT_OK_TO_CLOSE, &ts72xx_wdt_status);
++ else
++ clear_bit(WDT_OK_TO_CLOSE, &ts72xx_wdt_status);
++ }
++ }
++ ts72xx_wdt_ping();
++ }
++
++ return count;
++}
++
++static int ts72xx_wdt_ioctl(struct inode *inode, struct file *file,
++ unsigned int cmd, unsigned long arg)
++{
++ int new_margin;
++ int ret = -ENOIOCTLCMD;
++
++ static struct watchdog_info ident = {
++ .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
++ .firmware_version = 1,
++ .identity = "TS-72xx Watchdog",
++ };
++
++ switch (cmd) {
++ case WDIOC_GETSUPPORT:
++ ret = copy_to_user((struct watchdog_info __user *)arg, &ident,
++ sizeof(ident)) ? -EFAULT : 0;
++ break;
++
++ case WDIOC_GETSTATUS:
++ case WDIOC_GETBOOTSTATUS:
++ ret = put_user(0, (int __user *)arg);
++ break;
++
++ case WDIOC_KEEPALIVE:
++ ts72xx_wdt_ping();
++ ret = 0;
++ break;
++
++ case WDIOC_SETTIMEOUT:
++ if (get_user(new_margin, (int __user *)arg))
++ return -EFAULT;
++
++ ts72xx_parse_timeout(new_margin);
++ ts72xx_wdt_enable();
++ /* Fall */
++
++ case WDIOC_GETTIMEOUT:
++ ret = put_user(timeout, (int __user *)arg);
++ break;
++ }
++
++ return ret;
++}
++
++static int ts72xx_wdt_open(struct inode *inode, struct file *file)
++{
++ if (test_and_set_bit(WDT_IN_USE, &ts72xx_wdt_status))
++ return -EBUSY;
++
++ if (nowayout) {
++ __module_get(THIS_MODULE);
++ }
++
++ ts72xx_wdt_enable();
++ ts72xx_wdt_ping();
++
++ return nonseekable_open(inode, file);
++}
++
++static int ts72xx_wdt_close(struct inode *inode, struct file *file)
++{
++ if (test_bit(WDT_OK_TO_CLOSE, &ts72xx_wdt_status))
++ ts72xx_wdt_disable();
++ else
++ printk(KERN_CRIT PFX "Device file closed unexpectedly. "
++ "Will not stop the WDT!\n");
++
++ clear_bit(WDT_IN_USE, &ts72xx_wdt_status);
++
++ return 0;
++}
++
++/*
++ * Kernel Interfaces
++ */
++
++static struct file_operations ts72xx_wdt_fops = {
++ .owner = THIS_MODULE,
++ .llseek = no_llseek,
++ .write = ts72xx_wdt_write,
++ .ioctl = ts72xx_wdt_ioctl,
++ .open = ts72xx_wdt_open,
++ .release = ts72xx_wdt_close,
++};
++
++static struct miscdevice ts72xx_wdt_miscdev = {
++ .minor = WATCHDOG_MINOR,
++ .name = "watchdog",
++ .fops = &ts72xx_wdt_fops,
++};
++
++static void ts72xx_wdt_shutdown(struct platform_device *dev)
++{
++ ts72xx_wdt_disable();
++}
++
++static int __devinit ts72xx_wdt_probe(struct platform_device *dev)
++{
++ struct resource *r;
++ int ret;
++
++ if (!machine_is_ts72xx())
++ return -ENODEV;
++
++ r = platform_get_resource(dev, IORESOURCE_MEM, 0);
++
++ if (!r) {
++ ret = -ENODEV;
++ goto err_out;
++ }
++
++ control_register = ioremap(r->start, r->end - r->start + 1);
++
++ if (control_register == NULL) {
++ ret = -ENOMEM;
++ goto err_out;
++ }
++
++ r = platform_get_resource(dev, IORESOURCE_MEM, 1);
++
++ if (!r) {
++ ret = -ENODEV;
++ goto err_unmap1;
++ }
++
++ feed_register = ioremap(r->start, r->end - r->start + 1);
++
++ if (feed_register == NULL) {
++ ret = -ENOMEM;
++ goto err_unmap1;
++ }
++
++ ret = misc_register(&ts72xx_wdt_miscdev);
++ if (ret) {
++ printk(KERN_ERR PFX "cannot register miscdev on minor=%d "
++ "(err=%d), ep93xx_watchdog already loaded?!\n", WATCHDOG_MINOR, ret);
++ goto err_unmap2;
++ }
++
++ printk(KERN_INFO PFX "TS-72xx watchdog driver, v%s\n", WATCHDOG_VERSION);
++ ts72xx_parse_timeout(timeout);
++
++ return 0;
++
++err_unmap2:
++ iounmap(feed_register);
++err_unmap1:
++ iounmap(control_register);
++err_out:
++ return ret;
++}
++
++static int __devexit ts72xx_wdt_remove(struct platform_device *dev)
++{
++ misc_deregister(&ts72xx_wdt_miscdev);
++ iounmap(feed_register);
++ iounmap(control_register);
++
++ return 0;
++}
++
++static struct platform_driver ts72xx_wdt_driver = {
++ .probe = ts72xx_wdt_probe,
++ .remove = __devexit_p(ts72xx_wdt_remove),
++ .shutdown = ts72xx_wdt_shutdown,
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "ts72xx_wdt",
++ },
++};
++
++static int __init ts72xx_wdt_init(void)
++{
++ return platform_driver_register(&ts72xx_wdt_driver);
++}
++
++static void __exit ts72xx_wdt_exit(void)
++{
++ platform_driver_unregister(&ts72xx_wdt_driver);
++}
++
++module_init(ts72xx_wdt_init);
++module_exit(ts72xx_wdt_exit);
++
++#ifdef CONFIG_WATCHDOG_NOWAYOUT
++module_param(nowayout, int, 0);
++MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)");
++#endif
++
++module_param(timeout, int, 0);
++MODULE_PARM_DESC(timeout,"Watchdog timeout in milliseconds (250..8000, default=" __MODULE_STRING(WATCHDOG_TIMEOUT) ")");
++
++MODULE_AUTHOR("Matthieu Crapet <mcrapet@gmail.com>");
++MODULE_DESCRIPTION("TS-72xx watchdog driver");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
+Index: linux-2.6.22/include/asm-arm/arch-ep93xx/ts72xx.h
+===================================================================
+--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/ts72xx.h 2007-08-30 01:33:25.000000000 +0200
++++ linux-2.6.22/include/asm-arm/arch-ep93xx/ts72xx.h 2007-08-30 01:34:14.000000000 +0200
+@@ -68,6 +68,9 @@
+ #define TS72XX_RTC_DATA_PHYS_BASE 0x11700000
+ #define TS72XX_RTC_DATA_SIZE 0x00001000
+
++#define TS72XX_WATCHDOG_CONTROL_PHYS_BASE 0x23800000
++#define TS72XX_WATCHDOG_FEED_PHYS_BASE 0x23c00000
++
+ #ifndef __ASSEMBLY__
+ #include <asm/io.h>
+
diff --git a/packages/linux/linux-ezx-2.6.21/a1200/.mtn2git_empty b/packages/linux/linux-ezx-2.6.21/a1200/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/a1200/.mtn2git_empty
diff --git a/packages/linux/linux-ezx-2.6.21/patches/defconfig-a1200 b/packages/linux/linux-ezx-2.6.21/a1200/defconfig
index 36021906b7..ea7475ced2 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/defconfig-a1200
+++ b/packages/linux/linux-ezx-2.6.21/a1200/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.21.4
-# Wed Jun 13 17:26:12 2007
+# Sun Sep 9 16:54:53 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -36,7 +36,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
#
CONFIG_LOCALVERSION="-ezxdev"
# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_SWAP is not set
+CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
@@ -54,21 +54,20 @@ CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
+# CONFIG_KALLSYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
+# CONFIG_ELF_CORE is not set
+# CONFIG_BASE_FULL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-# CONFIG_SHMEM is not set
+CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
-CONFIG_TINY_SHMEM=y
-CONFIG_BASE_SMALL=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=1
# CONFIG_SLOB is not set
#
@@ -87,7 +86,7 @@ CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
+CONFIG_LSF=y
#
# IO Schedulers
@@ -151,10 +150,13 @@ CONFIG_PXA_EZX=y
# CONFIG_PXA_EZX_E2 is not set
CONFIG_PXA_EZX_A1200=y
# CONFIG_PXA_EZX_E6 is not set
-# CONFIG_EZX_BP is not set
+CONFIG_EZX_BP=y
CONFIG_EZX_PCAP=y
-CONFIG_EZX_MCI_TF=y
-# CONFIG_EZX_EMU is not set
+CONFIG_EZX_EOC=y
+CONFIG_EZX_EMU=y
+CONFIG_EZX_EMU_USB=y
+# CONFIG_EZX_EMU_UART is not set
+# CONFIG_EZX_EMU_NOTHING is not set
CONFIG_PXA27x=y
CONFIG_PXA_SSP=y
@@ -195,7 +197,7 @@ CONFIG_PREEMPT=y
CONFIG_NO_IDLE_HZ=y
CONFIG_HZ=100
CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
+CONFIG_OABI_COMPAT=y
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
@@ -212,11 +214,11 @@ CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZBOOT_ROM_BSS=0
-CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000"
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=tty1 root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5 ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0 debug mem=32M@0xA0000000 mem=16M@0xAC000000"
# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
+CONFIG_KEXEC=y
#
# Floating point emulation
@@ -225,6 +227,8 @@ CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169
#
# At least one emulation must be selected
#
+# CONFIG_FPE_NWFPE is not set
+# CONFIG_FPE_FASTFPE is not set
#
# Userspace binary formats
@@ -254,6 +258,10 @@ CONFIG_NET=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
@@ -263,15 +271,15 @@ CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_TUNNEL=m
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
@@ -280,11 +288,155 @@ CONFIG_SYN_COOKIES=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+# CONFIG_IPV6_ROUTE_INFO is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# CONFIG_IPV6_MIP6 is not set
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK_ENABLED=m
+CONFIG_NF_CONNTRACK_SUPPORT=y
+# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_RAW=m
#
# DCCP Configuration (EXPERIMENTAL)
@@ -316,6 +468,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+CONFIG_NET_CLS_ROUTE=y
#
# Network testing
@@ -323,8 +476,35 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_IEEE80211 is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIUSB is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+CONFIG_IEEE80211_SOFTMAC=m
+# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
+CONFIG_WIRELESS_EXT=y
#
# Device Drivers
@@ -346,7 +526,101 @@ CONFIG_CONNECTOR=m
#
# Memory Technology Devices (MTD)
#
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+# CONFIG_MTD_CFI_I2 is not set
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+CONFIG_MTD_XIP=y
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0x0
+CONFIG_MTD_PHYSMAP_LEN=0x0
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_SHARP_SL is not set
+CONFIG_MTD_EZX=y
+CONFIG_MTD_EZX_A780=y
+# CONFIG_MTD_EZX_A780_ALTERNATE is not set
+# CONFIG_MTD_EZX_E2 is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
#
# Parallel port support
@@ -363,10 +637,13 @@ CONFIG_CONNECTOR=m
#
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
@@ -412,7 +689,7 @@ CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
+CONFIG_TUN=m
#
# PHY device support
@@ -438,7 +715,16 @@ CONFIG_DUMMY=y
#
# Wireless LAN (non-hamradio)
#
-# CONFIG_NET_RADIO is not set
+CONFIG_NET_RADIO=y
+CONFIG_NET_WIRELESS_RTNETLINK=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_ZD1211RW is not set
#
# Wan interfaces
@@ -451,11 +737,11 @@ CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPP_MPPE is not set
-# CONFIG_PPPOE is not set
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
# CONFIG_SLIP is not set
CONFIG_SLHC=m
-# CONFIG_SHAPER is not set
+CONFIG_SHAPER=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
@@ -559,6 +845,8 @@ CONFIG_HW_RANDOM=y
# TPM devices
#
# CONFIG_TCG_TPM is not set
+CONFIG_TS0710_MUX=y
+CONFIG_TS0710_MUX_USB=y
#
# I2C support
@@ -655,7 +943,50 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
#
# Multimedia devices
#
-# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2=y
+
+#
+# Video Capture Adapters
+#
+
+#
+# Video Capture Adapters
+#
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_TUNER_3036 is not set
+
+#
+# V4L USB devices
+#
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_VICAM is not set
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_KONICAWC is not set
+# CONFIG_USB_QUICKCAM_MESSENGER is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_VIDEO_OVCAMCHIP is not set
+# CONFIG_USB_W9968CF is not set
+# CONFIG_USB_OV511 is not set
+# CONFIG_USB_SE401 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_STV680 is not set
+# CONFIG_USB_ZC0301 is not set
+# CONFIG_USB_PWC is not set
+
+#
+# Radio Adapters
+#
+# CONFIG_USB_DSBR is not set
#
# Digital Video Broadcasting Devices
@@ -668,8 +999,8 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-# CONFIG_BACKLIGHT_EZX is not set
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_BACKLIGHT_EZX=y
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
@@ -713,12 +1044,79 @@ CONFIG_FONT_MINI_4x6=y
#
# Logo configuration
#
-# CONFIG_LOGO is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
#
-# CONFIG_SOUND is not set
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+CONFIG_SND_PXA2XX_PCM=m
+CONFIG_SND_PXA2XX_AC97=m
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# SoC audio support
+#
+CONFIG_SND_SOC=y
+
+#
+# SoC Platforms
+#
+
+#
+# SoC Audio for the Atmel AT91
+#
+
+#
+# SoC Audio for the Intel PXA2xx
+#
+CONFIG_SND_PXA2XX_SOC=y
+CONFIG_SND_PXA2XX_SOC_SSP=y
+CONFIG_SND_PXA2XX_SOC_EZX=y
+CONFIG_SND_SOC_PCAP2=y
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
#
# HID Devices
@@ -880,7 +1278,34 @@ CONFIG_MMC_PXA=y
# Real Time Clock
#
CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=m
+CONFIG_RTC_INTF_PROC=m
+CONFIG_RTC_INTF_DEV=m
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_SA1100=m
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_V3020 is not set
#
# File systems
@@ -906,7 +1331,11 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
@@ -918,6 +1347,7 @@ CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
@@ -925,7 +1355,8 @@ CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
-# CONFIG_UDF_FS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
@@ -943,7 +1374,8 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
@@ -958,6 +1390,7 @@ CONFIG_RAMFS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
CONFIG_CRAMFS=m
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
@@ -968,24 +1401,26 @@ CONFIG_CRAMFS=m
#
# Network File Systems
#
-CONFIG_NFS_FS=m
+CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
-# CONFIG_NFS_V4 is not set
+CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
-# CONFIG_NFSD_V4 is not set
+CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
-CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-# CONFIG_RPCSEC_GSS_KRB5 is not set
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
@@ -1086,7 +1521,48 @@ CONFIG_FRAME_POINTER=y
#
# Cryptographic options
#
-# CONFIG_CRYPTO is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
#
# Library routines
@@ -1098,6 +1574,10 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-ezx-2.6.21/a780/.mtn2git_empty b/packages/linux/linux-ezx-2.6.21/a780/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/a780/.mtn2git_empty
diff --git a/packages/linux/linux-ezx-2.6.21/patches/defconfig-a780 b/packages/linux/linux-ezx-2.6.21/a780/defconfig
index bd794af856..9ea8e88266 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/defconfig-a780
+++ b/packages/linux/linux-ezx-2.6.21/a780/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21
-# Sat Jun 2 19:52:36 2007
+# Linux kernel version: 2.6.21.4
+# Sun Sep 9 10:37:45 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -36,7 +36,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
#
CONFIG_LOCALVERSION="-ezxdev"
# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_SWAP is not set
+CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
@@ -54,21 +54,20 @@ CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
+# CONFIG_KALLSYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
+# CONFIG_ELF_CORE is not set
+# CONFIG_BASE_FULL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-# CONFIG_SHMEM is not set
+CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
-CONFIG_TINY_SHMEM=y
-CONFIG_BASE_SMALL=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=1
# CONFIG_SLOB is not set
#
@@ -87,7 +86,7 @@ CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
+CONFIG_LSF=y
#
# IO Schedulers
@@ -153,7 +152,6 @@ CONFIG_PXA_EZX_A780=y
# CONFIG_PXA_EZX_E6 is not set
CONFIG_EZX_BP=y
CONFIG_EZX_PCAP=y
-CONFIG_EZX_MCI_TF=y
CONFIG_EZX_EMU=y
CONFIG_EZX_EMU_USB=y
# CONFIG_EZX_EMU_UART is not set
@@ -198,7 +196,7 @@ CONFIG_PREEMPT=y
CONFIG_NO_IDLE_HZ=y
CONFIG_HZ=100
CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
+CONFIG_OABI_COMPAT=y
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
@@ -215,11 +213,11 @@ CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZBOOT_ROM_BSS=0
-CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000 mem=16M@0xAC000000"
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=tty1 root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5 ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0 debug mem=32M@0xA0000000 mem=16M@0xAC000000"
# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
+CONFIG_KEXEC=y
#
# Floating point emulation
@@ -228,6 +226,8 @@ CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169
#
# At least one emulation must be selected
#
+# CONFIG_FPE_NWFPE is not set
+# CONFIG_FPE_FASTFPE is not set
#
# Userspace binary formats
@@ -257,6 +257,10 @@ CONFIG_NET=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
@@ -266,15 +270,15 @@ CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_TUNNEL=m
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
@@ -283,11 +287,155 @@ CONFIG_SYN_COOKIES=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+# CONFIG_IPV6_ROUTE_INFO is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# CONFIG_IPV6_MIP6 is not set
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK_ENABLED=m
+CONFIG_NF_CONNTRACK_SUPPORT=y
+# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_RAW=m
#
# DCCP Configuration (EXPERIMENTAL)
@@ -319,6 +467,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+CONFIG_NET_CLS_ROUTE=y
#
# Network testing
@@ -326,28 +475,35 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
-CONFIG_BT=y
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=y
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=y
+CONFIG_BT_HIDP=m
#
# Bluetooth device drivers
#
# CONFIG_BT_HCIUSB is not set
-CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
# CONFIG_BT_HCIUART_BCSP is not set
# CONFIG_BT_HCIBCM203X is not set
# CONFIG_BT_HCIBPA10X is not set
# CONFIG_BT_HCIBFUSB is not set
# CONFIG_BT_HCIVHCI is not set
-# CONFIG_IEEE80211 is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+CONFIG_IEEE80211_SOFTMAC=m
+# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
+CONFIG_WIRELESS_EXT=y
#
# Device Drivers
@@ -428,7 +584,7 @@ CONFIG_MTD_XIP=y
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_START=0x0
-CONFIG_MTD_PHYSMAP_LEN=0
+CONFIG_MTD_PHYSMAP_LEN=0x0
CONFIG_MTD_PHYSMAP_BANKWIDTH=2
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_SHARP_SL is not set
@@ -480,10 +636,13 @@ CONFIG_MTD_EZX_A780=y
#
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
@@ -529,7 +688,7 @@ CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
+CONFIG_TUN=m
#
# PHY device support
@@ -555,7 +714,16 @@ CONFIG_DUMMY=y
#
# Wireless LAN (non-hamradio)
#
-# CONFIG_NET_RADIO is not set
+CONFIG_NET_RADIO=y
+CONFIG_NET_WIRELESS_RTNETLINK=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_ZD1211RW is not set
#
# Wan interfaces
@@ -568,11 +736,11 @@ CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPP_MPPE is not set
-# CONFIG_PPPOE is not set
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
# CONFIG_SLIP is not set
CONFIG_SLHC=m
-# CONFIG_SHAPER is not set
+CONFIG_SHAPER=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
@@ -775,7 +943,50 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
#
# Multimedia devices
#
-# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2=y
+
+#
+# Video Capture Adapters
+#
+
+#
+# Video Capture Adapters
+#
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_TUNER_3036 is not set
+
+#
+# V4L USB devices
+#
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_VICAM is not set
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_KONICAWC is not set
+# CONFIG_USB_QUICKCAM_MESSENGER is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_VIDEO_OVCAMCHIP is not set
+# CONFIG_USB_W9968CF is not set
+# CONFIG_USB_OV511 is not set
+# CONFIG_USB_SE401 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_STV680 is not set
+# CONFIG_USB_ZC0301 is not set
+# CONFIG_USB_PWC is not set
+
+#
+# Radio Adapters
+#
+# CONFIG_USB_DSBR is not set
#
# Digital Video Broadcasting Devices
@@ -788,7 +999,7 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_LCD_CLASS_DEVICE=m
CONFIG_BACKLIGHT_EZX=y
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
@@ -833,12 +1044,79 @@ CONFIG_FONT_MINI_4x6=y
#
# Logo configuration
#
-# CONFIG_LOGO is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
#
-# CONFIG_SOUND is not set
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+CONFIG_SND_PXA2XX_PCM=m
+CONFIG_SND_PXA2XX_AC97=m
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# SoC audio support
+#
+CONFIG_SND_SOC=y
+
+#
+# SoC Platforms
+#
+
+#
+# SoC Audio for the Atmel AT91
+#
+
+#
+# SoC Audio for the Intel PXA2xx
+#
+CONFIG_SND_PXA2XX_SOC=y
+CONFIG_SND_PXA2XX_SOC_SSP=y
+CONFIG_SND_PXA2XX_SOC_EZX=y
+CONFIG_SND_SOC_PCAP2=y
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
#
# HID Devices
@@ -1000,7 +1278,34 @@ CONFIG_MMC_PXA=y
# Real Time Clock
#
CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=m
+CONFIG_RTC_INTF_PROC=m
+CONFIG_RTC_INTF_DEV=m
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_SA1100=m
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_V3020 is not set
#
# File systems
@@ -1026,7 +1331,11 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
@@ -1038,6 +1347,7 @@ CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
@@ -1045,7 +1355,8 @@ CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
-# CONFIG_UDF_FS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
@@ -1063,7 +1374,8 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
@@ -1089,24 +1401,26 @@ CONFIG_CRAMFS=m
#
# Network File Systems
#
-CONFIG_NFS_FS=m
+CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
-# CONFIG_NFS_V4 is not set
+CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
-# CONFIG_NFSD_V4 is not set
+CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
-CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-# CONFIG_RPCSEC_GSS_KRB5 is not set
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
@@ -1207,7 +1521,48 @@ CONFIG_FRAME_POINTER=y
#
# Cryptographic options
#
-# CONFIG_CRYPTO is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
#
# Library routines
@@ -1219,6 +1574,10 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-ezx-2.6.21/e680/.mtn2git_empty b/packages/linux/linux-ezx-2.6.21/e680/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/e680/.mtn2git_empty
diff --git a/packages/linux/linux-ezx-2.6.21/patches/defconfig-e680 b/packages/linux/linux-ezx-2.6.21/e680/defconfig
index d180351886..770df7f34c 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/defconfig-e680
+++ b/packages/linux/linux-ezx-2.6.21/e680/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21
-# Sat Jun 2 18:29:02 2007
+# Linux kernel version: 2.6.21.4
+# Sun Sep 9 16:51:47 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -36,7 +36,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
#
CONFIG_LOCALVERSION="-ezxdev"
# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_SWAP is not set
+CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
@@ -54,21 +54,20 @@ CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
+# CONFIG_KALLSYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
+# CONFIG_ELF_CORE is not set
+# CONFIG_BASE_FULL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-# CONFIG_SHMEM is not set
+CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
-CONFIG_TINY_SHMEM=y
-CONFIG_BASE_SMALL=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=1
# CONFIG_SLOB is not set
#
@@ -87,7 +86,7 @@ CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
+CONFIG_LSF=y
#
# IO Schedulers
@@ -153,7 +152,6 @@ CONFIG_PXA_EZX_E680=y
# CONFIG_PXA_EZX_E6 is not set
CONFIG_EZX_BP=y
CONFIG_EZX_PCAP=y
-CONFIG_EZX_MCI_SD=y
CONFIG_EZX_EMU=y
CONFIG_EZX_EMU_USB=y
# CONFIG_EZX_EMU_UART is not set
@@ -198,7 +196,7 @@ CONFIG_PREEMPT=y
CONFIG_NO_IDLE_HZ=y
CONFIG_HZ=100
CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
+CONFIG_OABI_COMPAT=y
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
@@ -215,11 +213,11 @@ CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZBOOT_ROM_BSS=0
-CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000 mem=16M@0xAC000000"
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=tty1 root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5 ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0 debug mem=32M@0xA0000000 mem=16M@0xAC000000"
# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
+CONFIG_KEXEC=y
#
# Floating point emulation
@@ -228,6 +226,8 @@ CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169
#
# At least one emulation must be selected
#
+# CONFIG_FPE_NWFPE is not set
+# CONFIG_FPE_FASTFPE is not set
#
# Userspace binary formats
@@ -257,6 +257,10 @@ CONFIG_NET=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
@@ -266,15 +270,15 @@ CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_TUNNEL=m
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
@@ -283,11 +287,155 @@ CONFIG_SYN_COOKIES=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+# CONFIG_IPV6_ROUTE_INFO is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# CONFIG_IPV6_MIP6 is not set
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK_ENABLED=m
+CONFIG_NF_CONNTRACK_SUPPORT=y
+# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_RAW=m
#
# DCCP Configuration (EXPERIMENTAL)
@@ -319,6 +467,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+CONFIG_NET_CLS_ROUTE=y
#
# Network testing
@@ -326,28 +475,35 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
-CONFIG_BT=y
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=y
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=y
+CONFIG_BT_HIDP=m
#
# Bluetooth device drivers
#
# CONFIG_BT_HCIUSB is not set
-CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
# CONFIG_BT_HCIUART_BCSP is not set
# CONFIG_BT_HCIBCM203X is not set
# CONFIG_BT_HCIBPA10X is not set
# CONFIG_BT_HCIBFUSB is not set
# CONFIG_BT_HCIVHCI is not set
-# CONFIG_IEEE80211 is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+CONFIG_IEEE80211_SOFTMAC=m
+# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
+CONFIG_WIRELESS_EXT=y
#
# Device Drivers
@@ -428,7 +584,7 @@ CONFIG_MTD_XIP=y
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_START=0x0
-CONFIG_MTD_PHYSMAP_LEN=0
+CONFIG_MTD_PHYSMAP_LEN=0x0
CONFIG_MTD_PHYSMAP_BANKWIDTH=2
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_SHARP_SL is not set
@@ -480,10 +636,13 @@ CONFIG_MTD_EZX_A780=y
#
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
@@ -529,7 +688,7 @@ CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
+CONFIG_TUN=m
#
# PHY device support
@@ -555,7 +714,16 @@ CONFIG_DUMMY=y
#
# Wireless LAN (non-hamradio)
#
-# CONFIG_NET_RADIO is not set
+CONFIG_NET_RADIO=y
+CONFIG_NET_WIRELESS_RTNETLINK=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_ZD1211RW is not set
#
# Wan interfaces
@@ -568,11 +736,11 @@ CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPP_MPPE is not set
-# CONFIG_PPPOE is not set
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
# CONFIG_SLIP is not set
CONFIG_SLHC=m
-# CONFIG_SHAPER is not set
+CONFIG_SHAPER=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
@@ -768,14 +936,57 @@ CONFIG_LEDS_CLASS=y
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_E680=y
+# CONFIG_LEDS_E680 is not set
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
#
# Multimedia devices
#
-# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2=y
+
+#
+# Video Capture Adapters
+#
+
+#
+# Video Capture Adapters
+#
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_TUNER_3036 is not set
+
+#
+# V4L USB devices
+#
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_VICAM is not set
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_KONICAWC is not set
+# CONFIG_USB_QUICKCAM_MESSENGER is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_VIDEO_OVCAMCHIP is not set
+# CONFIG_USB_W9968CF is not set
+# CONFIG_USB_OV511 is not set
+# CONFIG_USB_SE401 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_STV680 is not set
+# CONFIG_USB_ZC0301 is not set
+# CONFIG_USB_PWC is not set
+
+#
+# Radio Adapters
+#
+# CONFIG_USB_DSBR is not set
#
# Digital Video Broadcasting Devices
@@ -788,7 +999,7 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_LCD_CLASS_DEVICE=m
CONFIG_BACKLIGHT_EZX=y
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
@@ -833,12 +1044,79 @@ CONFIG_FONT_MINI_4x6=y
#
# Logo configuration
#
-# CONFIG_LOGO is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
#
-# CONFIG_SOUND is not set
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+CONFIG_SND_PXA2XX_PCM=m
+CONFIG_SND_PXA2XX_AC97=m
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# SoC audio support
+#
+CONFIG_SND_SOC=y
+
+#
+# SoC Platforms
+#
+
+#
+# SoC Audio for the Atmel AT91
+#
+
+#
+# SoC Audio for the Intel PXA2xx
+#
+CONFIG_SND_PXA2XX_SOC=y
+CONFIG_SND_PXA2XX_SOC_SSP=y
+CONFIG_SND_PXA2XX_SOC_EZX=y
+CONFIG_SND_SOC_PCAP2=y
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
#
# HID Devices
@@ -1000,7 +1278,34 @@ CONFIG_MMC_PXA=y
# Real Time Clock
#
CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=m
+CONFIG_RTC_INTF_PROC=m
+CONFIG_RTC_INTF_DEV=m
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_SA1100=m
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_V3020 is not set
#
# File systems
@@ -1026,7 +1331,11 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
@@ -1038,6 +1347,7 @@ CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
@@ -1045,7 +1355,8 @@ CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
-# CONFIG_UDF_FS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
@@ -1063,7 +1374,8 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
@@ -1089,24 +1401,26 @@ CONFIG_CRAMFS=m
#
# Network File Systems
#
-CONFIG_NFS_FS=m
+CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
-# CONFIG_NFS_V4 is not set
+CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
-# CONFIG_NFSD_V4 is not set
+CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
-CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-# CONFIG_RPCSEC_GSS_KRB5 is not set
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
@@ -1207,7 +1521,48 @@ CONFIG_FRAME_POINTER=y
#
# Cryptographic options
#
-# CONFIG_CRYPTO is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
#
# Library routines
@@ -1219,6 +1574,10 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch
new file mode 100644
index 0000000000..577aa66303
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch
@@ -0,0 +1,82 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 22:15:52.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-09 13:29:56.000000000 -0300
+@@ -25,6 +25,7 @@
+ #include <asm/arch/mmc.h>
+
+ #include "generic.h"
++#include "ezx-eoc.h"
+
+ extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+ extern void ezx_backlight_power(int);
+@@ -227,11 +228,69 @@
+ .resource = pcap_ts_resources,
+ };
+
++
++/* EOC */
++static const unsigned int tab_init_eoc_reg[][2] =
++{
++ {POWER_IC_REG_EOC_INT_MASK, 0x00000FEF},
++ {POWER_IC_REG_EOC_POWER_CONTROL_0, 0x00000C00},
++ {POWER_IC_REG_EOC_POWER_CONTROL_1, 0x0000000C},
++ {POWER_IC_REG_EOC_CONN_CONTROL, 0x00021044},
++};
++
++static void dump_eoc_registers(void)
++{
++ int i, val = 0;
++
++ printk("========DUMP EOC=========\n");
++ for (i = 0; i < POWER_IC_REG_EOC_NUM; i++) {
++ eoc_reg_read(i, &val);
++ printk("eoc_registers[%d] = 0x%08X\n", i, val);
++ }
++ printk("========END DUMP=========\n");
++}
++
++/*
++ * FIXME: The same about the PCAP driver applies here.
++ * This is the initial state only.
++ * Which bits does the change to USB/UART/AUDIO mode?
++ * I think that this is causing the crash on pxa27x-udc
++ * you are setting the 'port connected' bit, and thats why
++ * you are getting interrupts early.
++ * --WM
++ */
++
++static int __init a1200_eoc_init(void)
++{
++ int i;
++
++ for (i = 0; i < sizeof(tab_init_eoc_reg)/sizeof(unsigned int)/2; i++)
++ {
++ eoc_reg_write(tab_init_eoc_reg[i][0], tab_init_eoc_reg[i][1]);
++ }
++ dump_eoc_registers();
++ return 0;
++}
++
++static struct ezx_eoc_platform_data a1200_eoc_platform_data = {
++ .init = a1200_eoc_init,
++};
++
++struct platform_device a1200_eoc_device = {
++ .name = "ezx-eoc",
++ .id = -1,
++ .dev = {
++ .platform_data = &a1200_eoc_platform_data,
++ },
++};
++
+ static struct platform_device *devices[] __initdata = {
+ &a1200_pcap_device,
+ &pcap_ts_device,
++ &a1200_eoc_device,
+ };
+
++
+ static void __init a1200_init(void)
+ {
+ set_pxa_fb_info(&a1200_fb_info);
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-mci.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-mci.patch
index 0d2640a2e7..042254b115 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a1200-mci.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-mci.patch
@@ -1,20 +1,8 @@
-Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
-===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-02 20:32:31.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-02 20:44:29.000000000 -0300
-@@ -97,6 +97,7 @@
- config PXA_EZX_A1200
- bool "Motorola A1200 GSM Phone"
- select PXA27x
-+ select EZX_MCI_TF
-
- config PXA_EZX_E6
- bool "Motorola E6 GSM Phone"
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 20:32:26.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 20:44:56.000000000 -0300
-@@ -13,11 +13,14 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:51:55.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:54:52.000000000 -0300
+@@ -13,6 +13,8 @@
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/fb.h>
@@ -23,13 +11,14 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
- #include <asm/arch/pxa-regs.h>
+@@ -20,12 +22,102 @@
#include <asm/arch/pxafb.h>
+ #include <asm/arch/ezx.h>
+ #include <asm/arch/ezx-pcap.h>
+#include <asm/arch/mmc.h>
#include "generic.h"
- #include "ezx.h"
-@@ -25,6 +28,95 @@
+
extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
extern void ezx_backlight_power(int);
@@ -125,7 +114,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
static struct pxafb_mode_info mode_a1200 = {
.pixclock = 192308,
.xres = 240,
-@@ -54,6 +146,7 @@
+@@ -118,6 +210,7 @@
static void __init a1200_init(void)
{
set_pxa_fb_info(&a1200_fb_info);
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-pcap.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-pcap.patch
new file mode 100644
index 0000000000..8aa1e46d73
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-pcap.patch
@@ -0,0 +1,83 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:32:32.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:51:55.000000000 -0300
+@@ -19,6 +19,7 @@
+ #include <asm/arch/pxa-regs.h>
+ #include <asm/arch/pxafb.h>
+ #include <asm/arch/ezx.h>
++#include <asm/arch/ezx-pcap.h>
+
+ #include "generic.h"
+
+@@ -48,7 +49,70 @@
+ .pxafb_lcd_power = &ezx_lcd_power,
+ };
+
++/* PCAP */
++static int __init a1200_pcap_init(void)
++{
++ /*
++ * FIXME: this is the PCAP INITIAL STATE.
++ * most of these writes should NOT be done here
++ * * voltage regulators, voltage enablers should be set by the
++ * driver which uses the connected hardware. Otherwise you
++ * drain power unnecessarily.
++ * * interrupt related registers should be set by the irq functions
++ * only. I think that the INT_SEL register selects on which irq
++ * pin the (ap/bp) the irq goes. This should go on ezx-pcap.c, but
++ * only if it actually makes any difference.
++ * * Only power state automatic changes should be done here.
++ * (*LOWPWR, *STBY, LOWPWR*)
++ * * I removed some writes which i consider extremelly wrong. And
++ * which i think will not break anything (they were overwritten
++ * later anyway).
++ *
++ * --WM
++ */
++ ezx_pcap_write(PCAP_REG_INT_SEL, 0x0); /* wrong */
++ ezx_pcap_write(PCAP_REG_SWCTRL, 0x2ee6); /* partially wrong */
++ ezx_pcap_write(PCAP_REG_VREG1, 0x15778e3); /* wrong */
++ ezx_pcap_write(PCAP_REG_VREG2, 0x810234); /* partially wrong */
++ ezx_pcap_write(PCAP_REG_AUXVREG, 0x1024bec); /* wrong */
++ ezx_pcap_write(PCAP_REG_PWR, 0x94108); /* partially wrong */
++ ezx_pcap_write(PCAP_REG_AUXVREG_MASK, 0x214d48); /* wrong */
++ ezx_pcap_write(PCAP_REG_BUSCTRL, 0x2a0); /* wrong */
++ ezx_pcap_write(PCAP_REG_LOWPWR, 0x1d9610c);
++ ezx_pcap_write(PCAP_REG_PERIPH, 0x0); /* wrong */
++ ezx_pcap_write(PCAP_REG_GP, 0x107); /* probably unnecessary */
++
++ return 0;
++}
++
++static struct pcap_platform_data a1200_pcap_platform_data = {
++ .port = 1,
++ .cs = GPIO_SPI_CE,
++ .flags = PCAP_CS_AH | PCAP_MCI_TF,
++ .clk = 1,
++ .init = a1200_pcap_init,
++};
++
++static struct resource a1200_pcap_resources[] = {
++ [0] = {
++ .start = IRQ_GPIO1,
++ .end = IRQ_GPIO1,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++struct platform_device a1200_pcap_device = {
++ .name = "ezx-pcap",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(a1200_pcap_resources),
++ .resource = a1200_pcap_resources,
++ .dev = {
++ .platform_data = &a1200_pcap_platform_data,
++ },
++};
++
+ static struct platform_device *devices[] __initdata = {
++ &a1200_pcap_device,
+ };
+
+ static void __init a1200_init(void)
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch
index a7ca6362b0..a8c8f2ee29 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch
@@ -1,16 +1,16 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 20:32:32.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 20:33:41.000000000 -0300
-@@ -117,6 +117,27 @@
- .exit = a1200_mci_exit,
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:54:52.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:55:10.000000000 -0300
+@@ -203,8 +203,33 @@
+ },
};
+/* PCAP_TS */
+struct resource pcap_ts_resources[] = {
+ [0] = {
-+ .start = EZX_IRQ_ADCDONE2,
-+ .end = EZX_IRQ_ADCDONE2,
++ .start = EZX_IRQ_ADCDONE,
++ .end = EZX_IRQ_ADCDONE,
+ .flags = IORESOURCE_IRQ,
+ },
+ [1] = {
@@ -23,17 +23,15 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
+struct platform_device pcap_ts_device = {
+ .name = "pcap-ts",
+ .id = -1,
++ .dev = {
++ .parent = &a1200_pcap_device.dev,
++ },
+ .num_resources = ARRAY_SIZE(pcap_ts_resources),
+ .resource = pcap_ts_resources,
+};
+
- static struct pxafb_mode_info mode_a1200 = {
- .pixclock = 192308,
- .xres = 240,
-@@ -141,6 +162,7 @@
- };
-
static struct platform_device *devices[] __initdata = {
+ &a1200_pcap_device,
+ &pcap_ts_device,
};
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-emu.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-emu.patch
new file mode 100644
index 0000000000..f6121c6e7f
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/a780-emu.patch
@@ -0,0 +1,38 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:02:13.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:03:16.000000000 -0300
+@@ -211,8 +211,33 @@
+ },
+ };
+
++/* EMU */
++static struct resource a780_emu_resources[] = {
++ [0] = {
++ .start = EZX_IRQ_USB4V,
++ .end = EZX_IRQ_USB4V,
++ .flags = IORESOURCE_IRQ,
++ },
++ [1] = {
++ .start = EZX_IRQ_USB1V,
++ .end = EZX_IRQ_USB1V,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++struct platform_device a780_emu_device = {
++ .name = "ezx-emu",
++ .id = -1,
++ .dev = {
++ .parent = &a780_pcap_device.dev,
++ },
++ .num_resources = ARRAY_SIZE(a780_emu_resources),
++ .resource = a780_emu_resources,
++};
++
+ static struct platform_device *devices[] __initdata = {
+ &a780_pcap_device,
++ &a780_emu_device,
+ };
+
+ static void __init a780_init(void)
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-flip.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-flip.patch
index b93b1b14e4..88f15041db 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a780-flip.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a780-flip.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-06-08 18:38:47.000000000 +0200
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-08 18:38:50.000000000 +0200
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:58:17.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:59:03.000000000 -0300
@@ -17,6 +17,7 @@
#include <linux/mmc/host.h>
#include <linux/irq.h>
@@ -10,8 +10,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
-@@ -214,8 +215,31 @@
- },
+@@ -311,10 +312,33 @@
+ .resource = pcap_ts_resources,
};
+static struct gpio_keys_button a780flip_buttons[] = {
@@ -37,6 +37,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+
+
static struct platform_device *devices[] __initdata = {
+ &a780_pcap_device,
+ &a780_emu_device,
&pcap_ts_device,
+ &a780flip_device,
};
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-kbd.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-kbd.patch
index 902889abe6..d7d114cfed 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a780-kbd.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a780-kbd.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-05-24 00:54:38.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-24 00:56:22.000000000 -0300
-@@ -16,18 +16,21 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:03:16.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:05:18.000000000 -0300
+@@ -16,6 +16,7 @@
#include <linux/fb.h>
#include <linux/mmc/host.h>
#include <linux/irq.h>
@@ -10,13 +10,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
- #include <asm/arch/pxa-regs.h>
- #include <asm/arch/pxafb.h>
+@@ -24,11 +25,13 @@
+ #include <asm/arch/ezx.h>
+ #include <asm/arch/ezx-pcap.h>
#include <asm/arch/mmc.h>
+#include <asm/arch/kbd.h>
#include "generic.h"
- #include "ezx.h"
extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
extern void ezx_backlight_power(int);
@@ -24,8 +24,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
#ifdef CONFIG_EZX_PCAP
extern int ezx_pcap_mmcsd_power(int);
-@@ -141,6 +144,55 @@
- .pxafb_lcd_power = &ezx_lcd_power,
+@@ -235,6 +238,55 @@
+ .resource = a780_emu_resources,
};
+static unsigned char a780_keycode[] = {
@@ -78,9 +78,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+};
+
static struct platform_device *devices[] __initdata = {
- };
-
-@@ -159,6 +211,7 @@
+ &a780_pcap_device,
+ &a780_emu_device,
+@@ -255,6 +307,7 @@
set_pxa_fb_info(&a780_fb_info);
pxa_set_mci_info(&a780_mci_platform_data);
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-leds.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-leds.patch
index 5a9a9383f7..e8336d8855 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a780-leds.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a780-leds.patch
@@ -5,8 +5,8 @@
Index: linux-2.6.21/drivers/leds/Kconfig
===================================================================
---- linux-2.6.21.orig/drivers/leds/Kconfig 2007-06-08 18:33:45.000000000 +0200
-+++ linux-2.6.21/drivers/leds/Kconfig 2007-06-08 18:39:04.000000000 +0200
+--- linux-2.6.21.orig/drivers/leds/Kconfig 2007-08-31 22:27:41.000000000 -0300
++++ linux-2.6.21/drivers/leds/Kconfig 2007-08-31 23:59:27.000000000 -0300
@@ -104,6 +104,13 @@
These triggers allow kernel events to drive the LEDs and can
be configured via sysfs. If unsure, say Y.
@@ -23,8 +23,8 @@ Index: linux-2.6.21/drivers/leds/Kconfig
depends on LEDS_TRIGGERS
Index: linux-2.6.21/drivers/leds/Makefile
===================================================================
---- linux-2.6.21.orig/drivers/leds/Makefile 2007-06-08 18:33:45.000000000 +0200
-+++ linux-2.6.21/drivers/leds/Makefile 2007-06-08 18:39:04.000000000 +0200
+--- linux-2.6.21.orig/drivers/leds/Makefile 2007-08-31 22:27:41.000000000 -0300
++++ linux-2.6.21/drivers/leds/Makefile 2007-08-31 23:59:27.000000000 -0300
@@ -16,6 +16,7 @@
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
@@ -36,7 +36,7 @@ Index: linux-2.6.21/drivers/leds/Makefile
Index: linux-2.6.21/drivers/leds/leds-a780.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/drivers/leds/leds-a780.c 2007-06-08 18:39:04.000000000 +0200
++++ linux-2.6.21/drivers/leds/leds-a780.c 2007-08-31 23:59:27.000000000 -0300
@@ -0,0 +1,122 @@
+/*
+ * EZX Platform LED Driver for the Motorola A780 GSM Phone
@@ -62,22 +62,22 @@ Index: linux-2.6.21/drivers/leds/leds-a780.c
+{
+ if ( value > 31 ) value = 31;
+ printk( KERN_DEBUG "a780led_main_set: %d\n", value );
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL0, value & 0x01);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL1, value & 0x02);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL2, value & 0x04);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL3, value & 0x08);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL4, value & 0x10);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL_CTRL0, value & 0x01);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL_CTRL1, value & 0x02);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL_CTRL2, value & 0x04);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL_CTRL3, value & 0x08);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL_CTRL4, value & 0x10);
+}
+
+static void a780led_aux_set(struct led_classdev *led_cdev, enum led_brightness value)
+{
+ if ( value > 31 ) value = 31;
+ printk( KERN_DEBUG "a780led_aux_set: %d\n", value );
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL0, value & 0x01);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL1, value & 0x02);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL2, value & 0x04);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL3, value & 0x08);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL4, value & 0x10);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL2_CTRL0, value & 0x01);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL2_CTRL1, value & 0x02);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL2_CTRL2, value & 0x04);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL2_CTRL3, value & 0x08);
++ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL2_CTRL4, value & 0x10);
+}
+
+static struct led_classdev a780_main_led = {
@@ -162,18 +162,23 @@ Index: linux-2.6.21/drivers/leds/leds-a780.c
+MODULE_LICENSE("GPL");
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-06-08 18:38:50.000000000 +0200
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-08 18:39:04.000000000 +0200
-@@ -236,10 +236,15 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:59:03.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:59:27.000000000 -0300
+@@ -333,12 +333,20 @@
},
};
+static struct platform_device a780led_device = {
+ .name = "a780-led",
+ .id = -1,
++ .dev = {
++ .parent = &a780_pcap_device.dev,
++ },
+};
static struct platform_device *devices[] __initdata = {
+ &a780_pcap_device,
+ &a780_emu_device,
&pcap_ts_device,
&a780flip_device,
+ &a780led_device,
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-mci.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-mci.patch
index 4877bfffa5..1238c1cf71 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a780-mci.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a780-mci.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-05-24 00:44:14.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-24 00:47:01.000000000 -0300
-@@ -14,11 +14,14 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:01:54.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:02:13.000000000 -0300
+@@ -14,6 +14,8 @@
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/fb.h>
@@ -11,13 +11,14 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
- #include <asm/arch/pxa-regs.h>
+@@ -21,12 +23,102 @@
#include <asm/arch/pxafb.h>
+ #include <asm/arch/ezx.h>
+ #include <asm/arch/ezx-pcap.h>
+#include <asm/arch/mmc.h>
#include "generic.h"
- #include "ezx.h"
-@@ -26,6 +29,95 @@
+
extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
extern void ezx_backlight_power(int);
@@ -113,7 +114,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
static struct pxafb_mode_info mode_a780 = {
.pixclock = 150000,
.xres = 240,
-@@ -66,6 +158,7 @@
+@@ -137,6 +229,7 @@
PSLR = 0x05800f00;
set_pxa_fb_info(&a780_fb_info);
@@ -121,15 +122,3 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
/* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */
pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT);
-Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
-===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-24 00:47:13.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-24 00:48:11.000000000 -0300
-@@ -87,6 +87,7 @@
- config PXA_EZX_A780
- bool "Motorola A780 GSM Phone"
- select PXA27x
-+ select EZX_MCI_TF
-
- config PXA_EZX_E2
- bool "Motorola E2 GSM Phone"
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-pcap.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-pcap.patch
new file mode 100644
index 0000000000..afb5d9c005
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/a780-pcap.patch
@@ -0,0 +1,90 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 22:33:03.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:01:17.000000000 -0300
+@@ -20,6 +20,7 @@
+ #include <asm/arch/pxa-regs.h>
+ #include <asm/arch/pxafb.h>
+ #include <asm/arch/ezx.h>
++#include <asm/arch/ezx-pcap.h>
+
+ #include "generic.h"
+
+@@ -49,7 +50,77 @@
+ .pxafb_lcd_power = &ezx_lcd_power,
+ };
+
++/* PCAP */
++static int __init a780_pcap_init(void)
++{
++ /* initialize PCAP registers */
++ /* set SW1 sleep to keep SW1 1.3v in sync mode */
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW1_MODE10, 0);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW1_MODE11, 0);
++
++ /* SW1 active in sync mode */
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW1_MODE00, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW1_MODE01, 0);
++
++ /* at SW1 -core voltage to 1.30V */
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW10_DVS, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW11_DVS, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW12_DVS, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW13_DVS, 0);
++
++ /* when STANDY2 PIN ACTIVE (high) set V3-- sram V8 -- pll off */
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V3_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V3_LOWPWR, 0);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V8_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V8_LOWPWR, 0);
++
++ /*
++ * when STANDY2 PIN ACTIVE (high) set V4-- lcd only for e680 V6 ---
++ * camera for e680
++ */
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V4_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V4_LOWPWR, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V6_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V6_LOWPWR, 0);
++
++ /* set Vc to low power mode when AP sleep */
++// SSP_PCAP_bit_set(PCAP_BIT_LOWPWR_CTRL_VC_STBY);
++
++ /* set VAUX2 to low power mode when AP sleep */
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_VAUX2_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_VAUX2_LOWPWR, 1);
++
++ return 0;
++}
++
++static struct pcap_platform_data a780_pcap_platform_data = {
++ .port = 1,
++ .cs = GPIO_SPI_CE,
++ .flags = PCAP_MCI_TF,
++ .clk = 1,
++ .init = a780_pcap_init,
++};
++
++static struct resource a780_pcap_resources[] = {
++ [0] = {
++ .start = IRQ_GPIO1,
++ .end = IRQ_GPIO1,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++struct platform_device a780_pcap_device = {
++ .name = "ezx-pcap",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(a780_pcap_resources),
++ .resource = a780_pcap_resources,
++ .dev = {
++ .platform_data = &a780_pcap_platform_data,
++ },
++};
++
+ static struct platform_device *devices[] __initdata = {
++ &a780_pcap_device,
+ };
+
+ static void __init a780_init(void)
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-ts.patch
index a4a476ac59..e7ca3c106a 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a780-ts.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a780-ts.patch
@@ -1,9 +1,9 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-06-02 20:32:48.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-02 20:33:10.000000000 -0300
-@@ -121,6 +121,27 @@
- .exit = a780_mci_exit,
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:05:18.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-08-31 23:06:53.000000000 -0300
+@@ -287,9 +287,34 @@
+ },
};
+/* PCAP_TS */
@@ -23,17 +23,16 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+struct platform_device pcap_ts_device = {
+ .name = "pcap-ts",
+ .id = -1,
++ .dev = {
++ .parent = &a780_pcap_device.dev,
++ },
+ .num_resources = ARRAY_SIZE(pcap_ts_resources),
+ .resource = pcap_ts_resources,
+};
+
- static struct pxafb_mode_info mode_a780 = {
- .pixclock = 150000,
- .xres = 240,
-@@ -194,6 +215,7 @@
- };
-
static struct platform_device *devices[] __initdata = {
+ &a780_pcap_device,
+ &a780_emu_device,
+ &pcap_ts_device,
};
diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-vibrator.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-vibrator.patch
index 7436c40f5f..aa903feea7 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/a780-vibrator.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/a780-vibrator.patch
@@ -1,74 +1,26 @@
Index: linux-2.6.21/drivers/leds/leds-a780.c
===================================================================
---- linux-2.6.21.orig/drivers/leds/leds-a780.c 2007-05-08 15:09:26.000000000 -0300
-+++ linux-2.6.21/drivers/leds/leds-a780.c 2007-05-08 15:19:26.000000000 -0300
-@@ -18,10 +18,13 @@
- #include <linux/leds.h>
- #include <asm/arch/ezx-pcap.h>
-
-+extern void ezx_pcap_vibrator_level(u_int32_t);
-+
- static void a780led_main_set(struct led_classdev *led_cdev, enum led_brightness value)
- {
- if ( value > 31 ) value = 31;
- printk( KERN_DEBUG "a780led_main_set: %d\n", value );
-+#warning FIXME: use read/write operations
- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL0, value & 0x01);
- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL1, value & 0x02);
- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL2, value & 0x04);
-@@ -33,6 +36,7 @@
- {
- if ( value > 31 ) value = 31;
- printk( KERN_DEBUG "a780led_aux_set: %d\n", value );
-+#warning FIXME: use read/write operations
- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL0, value & 0x01);
- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL1, value & 0x02);
- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL2, value & 0x04);
-@@ -40,6 +44,43 @@
- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL4, value & 0x10);
+--- linux-2.6.21.orig/drivers/leds/leds-a780.c 2007-09-01 00:15:03.000000000 -0300
++++ linux-2.6.21/drivers/leds/leds-a780.c 2007-09-01 00:23:39.000000000 -0300
+@@ -40,6 +40,17 @@
+ ezx_pcap_bit_set(PCAP_BIT_PERIPH_BL2_CTRL4, value & 0x10);
}
+static void a780vibrator_set(struct led_classdev *led_cdev, enum led_brightness value)
+{
-+ if ( value > 4 ) value = 4;
++ if (value > 4) value = 4;
+ printk( KERN_DEBUG "a780vibrator_set: %d\n", value );
-+
-+ switch(value)
-+ {
-+ case 0:
-+ /* turn off vibrator */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN, 0);
-+ break;
-+
-+ case 1:
-+ ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL0);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN, 1);
-+ break;
-+
-+ case 2:
-+ ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN, 1);
-+ break;
-+
-+ case 3:
-+ ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL2);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN, 1);
-+ break;
-+
-+ case 4:
-+ ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL3);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN, 1);
-+ break;
-+
-+ default:
-+ break;
-+ }
++ ezx_pcap_vibrator_level(value-1);
++ if (value == 0)
++ ezx_pcap_bit_set(PCAP_BIT_AUXVREG_V_VIB_EN, 0);
++ else
++ ezx_pcap_bit_set(PCAP_BIT_AUXVREG_V_VIB_EN, 1);
+}
+
static struct led_classdev a780_main_led = {
.name = "a780:main",
.default_trigger = "none",
-@@ -52,11 +93,18 @@
+@@ -52,11 +63,18 @@
.brightness_set = a780led_aux_set,
};
@@ -87,7 +39,7 @@ Index: linux-2.6.21/drivers/leds/leds-a780.c
return 0;
}
-@@ -64,6 +112,7 @@
+@@ -64,6 +82,7 @@
{
led_classdev_resume(&a780_main_led);
led_classdev_resume(&a780_aux_led);
@@ -95,7 +47,7 @@ Index: linux-2.6.21/drivers/leds/leds-a780.c
return 0;
}
#endif
-@@ -77,8 +126,16 @@
+@@ -77,8 +96,16 @@
return ret;
ret = led_classdev_register(&pdev->dev, &a780_aux_led);
@@ -113,7 +65,7 @@ Index: linux-2.6.21/drivers/leds/leds-a780.c
return ret;
}
-@@ -87,6 +144,7 @@
+@@ -87,6 +114,7 @@
{
led_classdev_unregister(&a780_main_led);
led_classdev_unregister(&a780_aux_led);
@@ -121,19 +73,18 @@ Index: linux-2.6.21/drivers/leds/leds-a780.c
return 0;
}
-@@ -111,6 +169,8 @@
+@@ -111,6 +139,7 @@
{
a780led_main_set( &a780_main_led, 0 );
a780led_aux_set( &a780_aux_led, 0 );
+ a780vibrator_set( &a780_vibrator, 0 );
-+
platform_driver_unregister(&a780led_driver);
}
Index: linux-2.6.21/drivers/leds/Kconfig
===================================================================
---- linux-2.6.21.orig/drivers/leds/Kconfig 2007-05-08 15:09:26.000000000 -0300
-+++ linux-2.6.21/drivers/leds/Kconfig 2007-05-08 15:09:26.000000000 -0300
+--- linux-2.6.21.orig/drivers/leds/Kconfig 2007-09-01 00:15:03.000000000 -0300
++++ linux-2.6.21/drivers/leds/Kconfig 2007-09-01 00:15:08.000000000 -0300
@@ -105,11 +105,11 @@
be configured via sysfs. If unsure, say Y.
diff --git a/packages/linux/linux-ezx-2.6.21/patches/asoc-fix-loopback.patch b/packages/linux/linux-ezx-2.6.21/patches/asoc-fix-loopback.patch
new file mode 100644
index 0000000000..feea138984
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/asoc-fix-loopback.patch
@@ -0,0 +1,14 @@
+Index: linux-2.6.21/sound/soc/pxa/pxa2xx-pcm.c
+===================================================================
+--- linux-2.6.21.orig/sound/soc/pxa/pxa2xx-pcm.c 2007-09-02 22:30:56.000000000 -0300
++++ linux-2.6.21/sound/soc/pxa/pxa2xx-pcm.c 2007-09-02 22:36:26.000000000 -0300
+@@ -153,7 +153,8 @@
+ static int pxa2xx_pcm_prepare(struct snd_pcm_substream *substream)
+ {
+ struct pxa2xx_runtime_data *prtd = substream->runtime->private_data;
+-
++ /* no dma if on loopback */
++ if (!prtd->params) return 0;
+ DCSR(prtd->dma_ch) &= ~DCSR_RUN;
+ DCSR(prtd->dma_ch) = 0;
+ DCMD(prtd->dma_ch) = 0;
diff --git a/packages/linux/linux-ezx-2.6.21/patches/asoc-pxa-ssp.patch b/packages/linux/linux-ezx-2.6.21/patches/asoc-pxa-ssp.patch
index 1fc8283ca2..dd5b71a512 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/asoc-pxa-ssp.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/asoc-pxa-ssp.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.c 2007-05-14 21:14:38.000000000 -0300
++++ linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.c 2007-09-02 22:50:31.000000000 -0300
@@ -0,0 +1,671 @@
+/*
+ * pxa2xx-ssp.c -- ALSA Soc Audio Layer
@@ -43,7 +43,7 @@ Index: linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.c
+#include "pxa2xx-pcm.h"
+#include "pxa2xx-ssp.h"
+
-+#define PXA_SSP_DEBUG 1
++#define PXA_SSP_DEBUG 0
+
+/*
+ * The following should be defined in pxa-regs.h
@@ -677,7 +677,7 @@ Index: linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.c
Index: linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.h 2007-05-14 21:14:38.000000000 -0300
++++ linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.h 2007-09-02 22:48:59.000000000 -0300
@@ -0,0 +1,42 @@
+/*
+ * linux/sound/arm/pxa2xx-ssp.h
@@ -723,8 +723,8 @@ Index: linux-2.6.21/sound/soc/pxa/pxa2xx-ssp.h
+#endif
Index: linux-2.6.21/sound/soc/pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/sound/soc/pxa/Kconfig 2007-05-14 21:16:22.000000000 -0300
-+++ linux-2.6.21/sound/soc/pxa/Kconfig 2007-05-14 21:17:01.000000000 -0300
+--- linux-2.6.21.orig/sound/soc/pxa/Kconfig 2007-09-02 22:48:51.000000000 -0300
++++ linux-2.6.21/sound/soc/pxa/Kconfig 2007-09-02 22:50:18.000000000 -0300
@@ -20,6 +20,10 @@
config SND_PXA2XX_SOC_I2S
tristate
@@ -738,8 +738,8 @@ Index: linux-2.6.21/sound/soc/pxa/Kconfig
depends on SND_PXA2XX_SOC && PXA_SHARP_C7xx
Index: linux-2.6.21/sound/soc/pxa/Makefile
===================================================================
---- linux-2.6.21.orig/sound/soc/pxa/Makefile 2007-05-14 21:14:52.000000000 -0300
-+++ linux-2.6.21/sound/soc/pxa/Makefile 2007-05-14 21:16:10.000000000 -0300
+--- linux-2.6.21.orig/sound/soc/pxa/Makefile 2007-09-02 22:48:51.000000000 -0300
++++ linux-2.6.21/sound/soc/pxa/Makefile 2007-09-02 22:50:18.000000000 -0300
@@ -2,10 +2,12 @@
snd-soc-pxa2xx-objs := pxa2xx-pcm.o
snd-soc-pxa2xx-ac97-objs := pxa2xx-ac97.o
diff --git a/packages/linux/linux-ezx-2.6.21/patches/defconfig-e2 b/packages/linux/linux-ezx-2.6.21/patches/defconfig-e2
deleted file mode 100755
index be512457d9..0000000000
--- a/packages/linux/linux-ezx-2.6.21/patches/defconfig-e2
+++ /dev/null
@@ -1,1092 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21.4
-# Wed Jun 13 17:29:50 2007
-#
-CONFIG_ARM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_GENERIC_GPIO=y
-CONFIG_GENERIC_TIME=y
-CONFIG_MMU=y
-# CONFIG_NO_IOPORT is not set
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ZONE_DMA=y
-CONFIG_ARCH_MTD_XIP=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION="-ezxdev"
-# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_SWAP is not set
-CONFIG_SYSVIPC=y
-# CONFIG_IPC_NS is not set
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_UTS_NS is not set
-# CONFIG_AUDIT is not set
-# CONFIG_IKCONFIG is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-# CONFIG_BLK_DEV_INITRD is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_EMBEDDED=y
-CONFIG_UID16=y
-# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-# CONFIG_SHMEM is not set
-CONFIG_SLAB=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_RT_MUTEXES=y
-CONFIG_TINY_SHMEM=y
-CONFIG_BASE_SMALL=0
-# CONFIG_SLOB is not set
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Block layer
-#
-CONFIG_BLOCK=y
-# CONFIG_LBD is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_IOSCHED_CFQ is not set
-# CONFIG_DEFAULT_AS is not set
-CONFIG_DEFAULT_DEADLINE=y
-# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="deadline"
-
-#
-# System Type
-#
-# CONFIG_ARCH_AAEC2000 is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_NS9XXX is not set
-# CONFIG_ARCH_PNX4008 is not set
-CONFIG_ARCH_PXA=y
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_OMAP is not set
-
-#
-# Intel PXA2xx Implementations
-#
-# CONFIG_ARCH_LUBBOCK is not set
-# CONFIG_MACH_LOGICPD_PXA270 is not set
-# CONFIG_MACH_MAINSTONE is not set
-# CONFIG_ARCH_PXA_IDP is not set
-# CONFIG_PXA_SHARPSL is not set
-# CONFIG_MACH_TRIZEPS4 is not set
-CONFIG_PXA_EZX=y
-# CONFIG_PXA_EZX_E680 is not set
-# CONFIG_PXA_EZX_A780 is not set
-CONFIG_PXA_EZX_E2=y
-# CONFIG_PXA_EZX_A1200 is not set
-# CONFIG_PXA_EZX_E6 is not set
-# CONFIG_EZX_BP is not set
-CONFIG_EZX_PCAP=y
-# CONFIG_EZX_EMU is not set
-CONFIG_PXA27x=y
-CONFIG_PXA_SSP=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_XSCALE=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_TLB_V4WBI=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_OUTER_CACHE is not set
-CONFIG_IWMMXT=y
-CONFIG_XSCALE_PMU=y
-
-#
-# Bus support
-#
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_PREEMPT=y
-CONFIG_NO_IDLE_HZ=y
-CONFIG_HZ=100
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-# CONFIG_SPARSEMEM_STATIC is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4096
-# CONFIG_RESOURCES_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZBOOT_ROM_BSS=0
-CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000"
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_AOUT=m
-CONFIG_BINFMT_MISC=m
-
-#
-# Power management options
-#
-CONFIG_PM=y
-# CONFIG_PM_LEGACY is not set
-# CONFIG_PM_DEBUG is not set
-# CONFIG_PM_SYSFS_DEPRECATED is not set
-CONFIG_APM_EMULATION=y
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-# CONFIG_NETDEBUG is not set
-CONFIG_PACKET=y
-# CONFIG_PACKET_MMAP is not set
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-# CONFIG_IP_PNP_BOOTP is not set
-# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
-
-#
-# DCCP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_DCCP is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-
-#
-# TIPC Configuration (EXPERIMENTAL)
-#
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_IEEE80211 is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=m
-# CONFIG_SYS_HYPERVISOR is not set
-
-#
-# Connector - unified userspace <-> kernelspace linker
-#
-CONFIG_CONNECTOR=m
-
-#
-# Memory Technology Devices (MTD)
-#
-# CONFIG_MTD is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-# CONFIG_PNPACPI is not set
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-# CONFIG_SCSI is not set
-# CONFIG_SCSI_NETLINK is not set
-
-#
-# Serial ATA (prod) and Parallel ATA (experimental) drivers
-#
-# CONFIG_ATA is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# I2O device support
-#
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-CONFIG_DUMMY=y
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-
-#
-# PHY device support
-#
-
-#
-# Ethernet (10 or 100Mbit)
-#
-# CONFIG_NET_ETHERNET is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-
-#
-# Ethernet (10000 Mbit)
-#
-
-#
-# Token Ring devices
-#
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPP_MPPE is not set
-# CONFIG_PPPOE is not set
-# CONFIG_SLIP is not set
-CONFIG_SLHC=m
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_TSDEV=y
-CONFIG_INPUT_TSDEV_SCREEN_X=240
-CONFIG_INPUT_TSDEV_SCREEN_Y=320
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ATKBD is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_KEYBOARD_PXA=y
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_PXA=y
-CONFIG_SERIAL_PXA_CONSOLE=y
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=8
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_NVRAM is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-
-#
-# I2C Algorithms
-#
-# CONFIG_I2C_ALGOBIT is not set
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-CONFIG_I2C_PXA=m
-# CONFIG_I2C_PXA_SLAVE is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-# CONFIG_SENSORS_EEPROM is not set
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCA9539 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_MAX6875 is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# SPI support
-#
-CONFIG_SPI=y
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_BITBANG is not set
-CONFIG_SPI_PXA2XX=m
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_AT25 is not set
-
-#
-# Dallas's 1-wire bus
-#
-# CONFIG_W1 is not set
-
-#
-# Hardware Monitoring support
-#
-# CONFIG_HWMON is not set
-# CONFIG_HWMON_VID is not set
-
-#
-# Misc devices
-#
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_SM501 is not set
-
-#
-# LED devices
-#
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-# CONFIG_USB_DABUSB is not set
-
-#
-# Graphics support
-#
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-# CONFIG_BACKLIGHT_EZX is not set
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_PXA=y
-CONFIG_FB_PXA_PARAMETERS=y
-# CONFIG_FB_MBX is not set
-# CONFIG_FB_VIRTUAL is not set
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-CONFIG_FONTS=y
-# CONFIG_FONT_8x8 is not set
-# CONFIG_FONT_8x16 is not set
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-CONFIG_FONT_MINI_4x6=y
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-# CONFIG_FONT_10x18 is not set
-
-#
-# Logo configuration
-#
-# CONFIG_LOGO is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# HID Devices
-#
-CONFIG_HID=y
-# CONFIG_HID_DEBUG is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-
-#
-# Miscellaneous USB options
-#
-# CONFIG_USB_DEVICEFS is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_SUSPEND is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_ISP116X_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
-# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_SL811_HCD is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# may also be needed; see USB_STORAGE Help for more information
-#
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Input Devices
-#
-# CONFIG_USB_HID is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-# CONFIG_USB_AIPTEK is not set
-# CONFIG_USB_WACOM is not set
-# CONFIG_USB_ACECAD is not set
-# CONFIG_USB_KBTAB is not set
-# CONFIG_USB_POWERMATE is not set
-# CONFIG_USB_TOUCHSCREEN is not set
-# CONFIG_USB_YEALINK is not set
-# CONFIG_USB_XPAD is not set
-# CONFIG_USB_ATI_REMOTE is not set
-# CONFIG_USB_ATI_REMOTE2 is not set
-# CONFIG_USB_KEYSPAN_REMOTE is not set
-# CONFIG_USB_APPLETOUCH is not set
-# CONFIG_USB_GTCO is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET_MII is not set
-# CONFIG_USB_USBNET is not set
-# CONFIG_USB_MON is not set
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_BERRY_CHARGE is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGET is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_NET2280 is not set
-# CONFIG_USB_GADGET_PXA2XX is not set
-CONFIG_USB_GADGET_PXA27X=y
-CONFIG_USB_PXA27X=y
-# CONFIG_USB_PXA2XX_SMALL is not set
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LH7A40X is not set
-# CONFIG_USB_GADGET_OMAP is not set
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-# CONFIG_USB_GADGET_DUALSPEED is not set
-# CONFIG_USB_ZERO is not set
-CONFIG_USB_ETH=y
-# CONFIG_USB_ETH_RNDIS is not set
-# CONFIG_USB_GADGETFS is not set
-# CONFIG_USB_FILE_STORAGE is not set
-# CONFIG_USB_G_SERIAL is not set
-# CONFIG_USB_MIDI_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_PXA=y
-
-#
-# Real Time Clock
-#
-CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-# CONFIG_EXT4DEV_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-CONFIG_AUTOFS_FS=y
-CONFIG_AUTOFS4_FS=y
-# CONFIG_FUSE_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_CONFIGFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-CONFIG_CRAMFS=m
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-# CONFIG_NFS_V4 is not set
-CONFIG_NFS_DIRECTIO=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-# CONFIG_NFSD_V4 is not set
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_NFS_ACL_SUPPORT=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-CONFIG_CIFS_STATS=y
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-# CONFIG_9P_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-
-#
-# Distributed Lock Manager
-#
-# CONFIG_DLM is not set
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_ENABLE_MUST_CHECK is not set
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_DEBUG_FS is not set
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_DEBUG_USER is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-# CONFIG_CRYPTO is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=m
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e680-emu.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-emu.patch
new file mode 100644
index 0000000000..3645aef040
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/e680-emu.patch
@@ -0,0 +1,38 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-09-06 00:47:32.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-06 00:48:06.000000000 -0300
+@@ -214,8 +214,33 @@
+ },
+ };
+
++/* EMU */
++static struct resource e680_emu_resources[] = {
++ [0] = {
++ .start = EZX_IRQ_USB4V,
++ .end = EZX_IRQ_USB4V,
++ .flags = IORESOURCE_IRQ,
++ },
++ [1] = {
++ .start = EZX_IRQ_USB1V,
++ .end = EZX_IRQ_USB1V,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++struct platform_device e680_emu_device = {
++ .name = "ezx-emu",
++ .id = -1,
++ .dev = {
++ .parent = &e680_pcap_device.dev,
++ },
++ .num_resources = ARRAY_SIZE(e680_emu_resources),
++ .resource = e680_emu_resources,
++};
++
+ static struct platform_device *devices[] __initdata = {
+ &e680_pcap_device,
++ &e680_emu_device,
+ };
+
+ static void __init e680_init(void)
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e680-kbd.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-kbd.patch
index 2a2d9c7a72..ffd8bbb754 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/e680-kbd.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/e680-kbd.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-24 00:54:39.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-24 00:56:30.000000000 -0300
-@@ -15,18 +15,21 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-09-07 11:07:33.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-07 11:10:47.000000000 -0300
+@@ -15,6 +15,7 @@
#include <linux/fb.h>
#include <linux/mmc/host.h>
#include <linux/irq.h>
@@ -10,13 +10,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
- #include <asm/arch/pxa-regs.h>
- #include <asm/arch/pxafb.h>
+@@ -23,11 +24,13 @@
+ #include <asm/arch/ezx.h>
+ #include <asm/arch/ezx-pcap.h>
#include <asm/arch/mmc.h>
+#include <asm/arch/kbd.h>
#include "generic.h"
- #include "ezx.h"
extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
extern void ezx_backlight_power(int);
@@ -24,8 +24,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
#ifdef CONFIG_EZX_PCAP
extern int ezx_pcap_mmcsd_power(int);
-@@ -144,6 +147,58 @@
- .pxafb_lcd_power = &ezx_lcd_power,
+@@ -238,6 +241,58 @@
+ .resource = e680_emu_resources,
};
+static unsigned char e680_keycode[] = {
@@ -81,9 +81,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
+};
+
static struct platform_device *devices[] __initdata = {
- };
-
-@@ -162,6 +217,7 @@
+ &e680_pcap_device,
+ &e680_emu_device,
+@@ -258,6 +313,7 @@
set_pxa_fb_info(&e680_fb_info);
pxa_set_mci_info(&e680_mci_platform_data);
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e680-leds.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-leds.patch
index 82dc93b611..72ba219a44 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/e680-leds.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/e680-leds.patch
@@ -5,8 +5,8 @@
Index: linux-2.6.21/drivers/leds/Kconfig
===================================================================
---- linux-2.6.21.orig/drivers/leds/Kconfig 2007-06-08 18:39:04.000000000 +0200
-+++ linux-2.6.21/drivers/leds/Kconfig 2007-06-08 18:39:12.000000000 +0200
+--- linux-2.6.21.orig/drivers/leds/Kconfig 2007-09-06 00:49:29.000000000 -0300
++++ linux-2.6.21/drivers/leds/Kconfig 2007-09-06 00:51:36.000000000 -0300
@@ -111,6 +111,13 @@
This option enables support for the LEDs on the
Motorola A780 GSM Phone.
@@ -23,8 +23,8 @@ Index: linux-2.6.21/drivers/leds/Kconfig
depends on LEDS_TRIGGERS
Index: linux-2.6.21/drivers/leds/Makefile
===================================================================
---- linux-2.6.21.orig/drivers/leds/Makefile 2007-06-08 18:39:04.000000000 +0200
-+++ linux-2.6.21/drivers/leds/Makefile 2007-06-08 18:39:12.000000000 +0200
+--- linux-2.6.21.orig/drivers/leds/Makefile 2007-09-06 00:49:29.000000000 -0300
++++ linux-2.6.21/drivers/leds/Makefile 2007-09-06 00:49:30.000000000 -0300
@@ -17,6 +17,7 @@
obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
@@ -36,8 +36,8 @@ Index: linux-2.6.21/drivers/leds/Makefile
Index: linux-2.6.21/drivers/leds/leds-e680.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/drivers/leds/leds-e680.c 2007-06-08 18:39:12.000000000 +0200
-@@ -0,0 +1,309 @@
++++ linux-2.6.21/drivers/leds/leds-e680.c 2007-09-06 00:51:22.000000000 -0300
+@@ -0,0 +1,235 @@
+/*
+ * EZX Platform LED Driver for the Motorola E680(i) GSM Phone
+ *
@@ -73,147 +73,100 @@ Index: linux-2.6.21/drivers/leds/leds-e680.c
+extern int ezx_pcap_read(u_int8_t, u_int32_t *);
+extern int ezx_pcap_write(u_int8_t, u_int32_t);
+
-+static enum led_brightness old_red;
-+static enum led_brightness old_green;
-+static enum led_brightness old_blue;
-+
+typedef struct {
-+ unsigned char ind_GPIO_red; /*Indicator Red control GPIO 46: 0 active, 1 disactive*/
-+ unsigned char ind_GPIO_green; /*Indicator Green control GPIO 47: 0 active, 1 disactive*/
-+ unsigned char pcap_LEDR_en; /*pcap LEDR_EN bit value: 1 =Red LED(&Green) sink circuit enabled*/
-+ unsigned char pcap_LEDG_en; /*pcap LEDG_EN bit value:1 =Green(->Blue)LED sink circuit enabled*/
-+ unsigned char pcap_LEDR_CTRL; /* 4bits Sets the timing for the red(&Green) LED sink circuit*/
-+ unsigned char pcap_LEDG_CTRL; /* 4bits Sets the timing for the GREEN (->Blue) LED sink circuit*/
-+ unsigned char pcap_LEDR_I; /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDR*/
-+ unsigned char pcap_LEDG_I; /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDG*/
-+ unsigned char pcap_SKIP_on; /*1=The ON timing sequence defined by LEDx_CTRL is executed on every other cycle*/
++ u_int8_t ind_GPIO_red; /*Indicator Red control GPIO 46: 0 active, 1 inactive */
++ u_int8_t ind_GPIO_green; /*Indicator Green control GPIO 47: 0 inactive, 1 active */
++ u_int8_t pcap_LEDR_en; /*pcap LEDR_EN bit value: 1 =Red LED(&Green) sink circuit enabled*/
++ u_int8_t pcap_LEDG_en; /*pcap LEDG_EN bit value:1 =Green(->Blue)LED sink circuit enabled*/
++ u_int8_t pcap_LEDR_CTRL; /* 4bits Sets the timing for the red(&Green) LED sink circuit*/
++ u_int8_t pcap_LEDG_CTRL; /* 4bits Sets the timing for the GREEN (->Blue) LED sink circuit*/
++ u_int8_t pcap_LEDR_I; /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDR*/
++ u_int8_t pcap_LEDG_I; /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDG*/
++// u_int8_t pcap_SKIP_on; /*1=The ON timing sequence defined by LEDx_CTRL is executed on every other cycle*/
+} PCAP2_LED_REGISTER_VALUE;
+
+const PCAP2_LED_REGISTER_VALUE led_register_value[]=
+{
-+ /* on/off pulsepower timing intensity */
-+ {0x1,0x1, 0x0,0x0, 0x0,0x0, 0x0,0x0,0x0}, /* OFF */
-+ {0x0,0x1, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* RED */
-+ {0x1,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* GREEN */
-+ {0x0,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* ORANGE = RED + GREEN */
-+ {0x1,0x1, 0x0,0x1, 0x0,0xc, 0x0,0x0,0x0}, /* BLUE */
-+ {0x0,0x1, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_RED = RED + BLUE */
-+ {0x1,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_GREEN = GREEN + BLUE */
-+ {0x0,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* WHITE = RED + GREEN + BLUE */
++ {0x1,0x0, 0x0,0x0, 0x0,0x0, 0x1,0x0}, /* 0 OFF */
++
++ {0x0,0x0, 0x1,0x0, 0xf,0x0, 0x1,0x0}, /* 1 RED */
++ {0x1,0x1, 0x1,0x0, 0xf,0x0, 0x1,0x0}, /* 2 GREEN */
++ {0x0,0x1, 0x1,0x0, 0xf,0x0, 0x1,0x0}, /* 3 ORANGE */
++ {0x1,0x0, 0x0,0x1, 0x0,0xf, 0x0,0x0}, /* 4 BLUE */
++ {0x0,0x0, 0x1,0x1, 0xf,0xf, 0x1,0x0}, /* 5 MAGENTA */
++ {0x1,0x1, 0x1,0x1, 0xf,0xf, 0x1,0x0}, /* 6 CYAN */
++ {0x0,0x1, 0x1,0x1, 0xf,0xf, 0x1,0x0}, /* 7 WHITE */
+};
+
-+static void e680led_led_set( enum led_brightness red, enum led_brightness green, enum led_brightness blue )
++static void e680led_set(struct led_classdev *led_cdev, enum led_brightness value)
+{
-+ unsigned int tempValue = 0;
-+ unsigned int value = 0;
-+ unsigned int stateIndex = 0;
-+ unsigned char gpio_red, gpio_green, ledr_en, ledg_en, ledr_ctrl, ledg_ctrl, ledr_i, ledg_i,skip;
-+
-+ printk( KERN_DEBUG "e680led_led_set: red=%d, green=%d, blue=%d", red, green, blue );
-+ stateIndex = ( ( blue << 2 ) | ( green << 1 ) | ( red ) ) & 0x7;
-+ printk( KERN_DEBUG "LED stateIndex is %d", stateIndex );
-+ gpio_red = led_register_value[stateIndex].ind_GPIO_red & 0x1;
-+ gpio_green = led_register_value[stateIndex].ind_GPIO_green & 0x1;
-+ ledr_en = led_register_value[stateIndex].pcap_LEDR_en & 0x1;
-+ ledg_en = led_register_value[stateIndex].pcap_LEDG_en & 0x1;
-+ ledr_ctrl = led_register_value[stateIndex].pcap_LEDR_CTRL & 0xf;
-+ ledg_ctrl = led_register_value[stateIndex].pcap_LEDG_CTRL & 0xf;
-+ ledr_i = led_register_value[stateIndex].pcap_LEDR_I & 0x3;
-+ ledg_i = led_register_value[stateIndex].pcap_LEDG_I & 0x3;
-+ skip = led_register_value[stateIndex].pcap_SKIP_on & 0x1;
-+
-+ /* disable LEDs */
-+ if( ezx_pcap_read(SSP_PCAP_ADJ_PERIPH_REGISTER,&tempValue) != SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_WARNING "LED PCAP Read Failed\n" );
-+ return;
++ unsigned int tempValue;
++ unsigned char gpio_red, gpio_green, ledr_en, ledg_en, ledr_ctrl,
++ ledg_ctrl, ledr_i, ledg_i, skip, t, color;
++ unsigned char t_mask[2] = { 0xc, 0xc };
++
++ skip = 0;
++ if (value & 128) {
++ value &= (~128);
++ skip = 1;
+ }
-+ tempValue &= (~SSP_PCAP_LED_MASK);
-+ if( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) != SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_WARNING "LED PCAP Write Failed (Clear Data)\n" );
-+ return;
++
++ /* 7 colors - simple on */
++ if (value <= 7)
++ color = value;
++ /* 4 colors - 11 timed on */
++ else if (value <= 51) {
++ value -= 7;
++ color = ((value-1)%4)+1;
++ t = ((value-1)/4)+1;
++ t_mask[0] = t;
++ t_mask[1] = t;
++ }
++ /* 3 colors - 22 change color */
++ else if (value <= 84) {
++ value -= 51;
++ color = ((value-1)%3)+5;
++ t = ((value-1)/3)+1;
++ t_mask[1] = t;
++ }
++ else if (value <= 117) {
++ value -= 84;
++ color = ((value-1)%3)+5;
++ t = ((value-1)/3)+1;
++ t_mask[0] = t;
+ }
++ /* 3 colors - alternate with blue */
++ else if (value <= 120) {
++ color = value-113;
++ t_mask[0] = 0xa;
++ t_mask[1] = 0xb;
++ }
++ /* invalid value */
++ else
++ color = 1;
+
-+ /* configure GPIOs as output */
-+ pxa_gpio_mode(IND_CNTL_R_BUL | GPIO_OUT);
-+ pxa_gpio_mode(IND_CNTL_G_BUL | GPIO_OUT);
++ gpio_red = led_register_value[color].ind_GPIO_red;
++ gpio_green = led_register_value[color].ind_GPIO_green;
++ ledr_en = led_register_value[color].pcap_LEDR_en;
++ ledg_en = led_register_value[color].pcap_LEDG_en;
++ ledr_ctrl = led_register_value[color].pcap_LEDR_CTRL & t_mask[0];
++ ledg_ctrl = led_register_value[color].pcap_LEDG_CTRL & t_mask[1];
++ ledr_i = led_register_value[color].pcap_LEDR_I;
++ ledg_i = led_register_value[color].pcap_LEDG_I;
+
-+ //FIXME: Simplify this logic
-+ if ( (gpio_green && gpio_red) )
-+ {
-+ /*Disable Red & Green signal*/
-+ pxa_gpio_set_value(IND_CNTL_R_BUL, 1); /*IND_CNTL_R_BUL Low active*/
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+
-+ pxa_gpio_set_value(IND_CNTL_G_BUL, 0); /*IND_CNTL_G_BUL High active*/
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+
-+ printk( KERN_DEBUG "LED GPIO Green & Red Disable\n");
-+ } else if ( gpio_green && !gpio_red )
-+ {
-+ /*Green Disable, Red Enable*/
-+ pxa_gpio_set_value(IND_CNTL_R_BUL, 0);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+
-+ pxa_gpio_set_value(IND_CNTL_G_BUL, 0);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+
-+ printk( KERN_DEBUG "LED GPIO Green Disable, Red Enable\n");
-+ } else if (gpio_red && !gpio_green )
-+ {
-+ /*Red Disable, Green Enable*/
-+ pxa_gpio_set_value(IND_CNTL_R_BUL, 1);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+
-+ pxa_gpio_set_value(IND_CNTL_G_BUL, 1);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+ printk( KERN_DEBUG "LED GPIO Red Disable, Green Enable");
-+ }else
-+ {
-+ /*Red & Green enable*/
-+ pxa_gpio_set_value(IND_CNTL_R_BUL, 0);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+
-+ pxa_gpio_set_value(IND_CNTL_G_BUL, 1);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+ printk( KERN_DEBUG "LED GPIO Red & Green Enable\n");
-+ }
++ ezx_pcap_read(PCAP_REG_PERIPH,&tempValue);
+
-+ /* Write PCAP LED Peripheral Control Register*/
-+ value = ( ledr_en | (ledg_en <<1) | (ledr_ctrl <<2) | (ledg_ctrl <<6) |
-+ (ledr_i << 10) | (ledg_i <<12) | (skip <<14) ) & 0x7fff;
-+ tempValue |= (value <<SSP_PCAP_LED_SHIFT);
-+
-+ if ( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) == SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_DEBUG "LED PCAP Write Success (0x%x :0x%x)\n",tempValue,value);
-+ old_red = red;
-+ old_green = green;
-+ old_blue = blue;
-+ return;
-+ } else {
-+ printk( KERN_DEBUG "LED PCAP Write Failed (State Change)\n");
-+ return;
-+ }
-+}
++ tempValue &= (~SSP_PCAP_LED_MASK);
+
-+static void e680led_red_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_red_set: %d\n", value );
-+ e680led_led_set( 1 && value, old_green, old_blue );
-+}
++ pxa_gpio_set_value(IND_CNTL_R_BUL, gpio_red);
++ pxa_gpio_set_value(IND_CNTL_G_BUL, gpio_green);
+
-+static void e680led_green_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_green_set: %d\n", value );
-+ e680led_led_set( old_red, 1 && value, old_blue );
-+}
++ /* Write PCAP LED Peripheral Control Register*/
++ tempValue = ((ledr_en | (ledg_en << 1) | (ledr_ctrl << 2) |
++ (ledg_ctrl << 6) | (ledr_i << 10) | (ledg_i << 12) |
++ (skip << 14)) & 0x7fff) << SSP_PCAP_LED_SHIFT;
+
-+static void e680led_blue_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_blue_set: %d\n", value );
-+ e680led_led_set( old_red, old_green, 1 && value );
++ ezx_pcap_write(PCAP_REG_PERIPH,tempValue);
+}
+
+static void e680led_keypad_set(struct led_classdev *led_cdev, enum led_brightness value)
@@ -238,25 +191,13 @@ Index: linux-2.6.21/drivers/leds/leds-e680.c
+#endif
+}
+
-+static struct led_classdev e680_red_led = {
-+ .name = "e680:red",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_red_set,
-+};
-+
-+static struct led_classdev e680_green_led = {
-+ .name = "e680:green",
++static struct led_classdev e680_led = {
++ .name = "e680:led",
+ .default_trigger = "none",
-+ .brightness_set = e680led_green_set,
++ .brightness_set = e680led_set,
+};
+
-+static struct led_classdev e680_blue_led = {
-+ .name = "e680:blue",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_blue_set,
-+};
-+
-+static struct led_classdev e680_keypad_led = {
++static struct led_classdev e680_keypad = {
+ .name = "e680:keypad",
+ .default_trigger = "none",
+ .brightness_set = e680led_keypad_set,
@@ -265,19 +206,15 @@ Index: linux-2.6.21/drivers/leds/leds-e680.c
+#ifdef CONFIG_PM
+static int e680led_suspend(struct platform_device *dev, pm_message_t state)
+{
-+ led_classdev_suspend(&e680_red_led);
-+ led_classdev_suspend(&e680_green_led);
-+ led_classdev_suspend(&e680_blue_led);
-+ led_classdev_suspend(&e680_keypad_led);
++ led_classdev_suspend(&e680_led);
++ led_classdev_suspend(&e680_keypad);
+ return 0;
+}
+
+static int e680led_resume(struct platform_device *dev)
+{
-+ led_classdev_resume(&e680_red_led);
-+ led_classdev_resume(&e680_green_led);
-+ led_classdev_resume(&e680_blue_led);
-+ led_classdev_resume(&e680_keypad_led);
++ led_classdev_resume(&e680_led);
++ led_classdev_resume(&e680_keypad);
+ return 0;
+}
+#endif
@@ -286,35 +223,25 @@ Index: linux-2.6.21/drivers/leds/leds-e680.c
+{
+ int ret;
+
-+ ret = led_classdev_register(&pdev->dev, &e680_red_led);
-+ if (ret < 0)
-+ return ret;
++ /* configure GPIOs as output */
++ pxa_gpio_mode(IND_CNTL_R_BUL | GPIO_OUT);
++ pxa_gpio_mode(IND_CNTL_G_BUL | GPIO_OUT);
+
-+ ret = led_classdev_register(&pdev->dev, &e680_green_led);
++ ret = led_classdev_register(&pdev->dev, &e680_led);
+ if (ret < 0)
-+ led_classdev_unregister(&e680_red_led);
-+
-+ ret = led_classdev_register(&pdev->dev, &e680_blue_led);
-+ if (ret < 0) {
-+ led_classdev_unregister(&e680_red_led);
-+ led_classdev_unregister(&e680_green_led);
-+ }
++ return ret;
+
-+ ret = led_classdev_register(&pdev->dev, &e680_keypad_led);
++ ret = led_classdev_register(&pdev->dev, &e680_keypad);
+ if (ret < 0) {
-+ led_classdev_unregister(&e680_red_led);
-+ led_classdev_unregister(&e680_green_led);
-+ led_classdev_unregister(&e680_blue_led);
++ led_classdev_unregister(&e680_led);
+ }
+ return ret;
+}
+
+static int e680led_remove(struct platform_device *pdev)
+{
-+ led_classdev_unregister(&e680_red_led);
-+ led_classdev_unregister(&e680_green_led);
-+ led_classdev_unregister(&e680_blue_led);
-+ led_classdev_unregister(&e680_keypad_led);
++ led_classdev_unregister(&e680_led);
++ led_classdev_unregister(&e680_keypad);
+ return 0;
+}
+
@@ -337,7 +264,6 @@ Index: linux-2.6.21/drivers/leds/leds-e680.c
+
+static void __exit e680led_exit(void)
+{
-+ e680led_led_set( 0, 0, 0 );
+ platform_driver_unregister(&e680led_driver);
+}
+
@@ -349,18 +275,23 @@ Index: linux-2.6.21/drivers/leds/leds-e680.c
+MODULE_LICENSE("GPL");
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:38:59.000000000 +0200
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:39:12.000000000 +0200
-@@ -242,9 +242,15 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-09-06 00:49:23.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-06 00:49:30.000000000 -0300
+@@ -339,11 +339,20 @@
},
};
+static struct platform_device e680led_device = {
+ .name = "e680-led",
+ .id = -1,
++ .dev = {
++ .parent = &e680_pcap_device.dev,
++ },
+};
+
static struct platform_device *devices[] __initdata = {
+ &e680_pcap_device,
+ &e680_emu_device,
&pcap_ts_device,
&e680locksw_device,
+ &e680led_device,
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e680-locksw.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-locksw.patch
index 36b52a916a..e669a51957 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/e680-locksw.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/e680-locksw.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:38:48.000000000 +0200
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:38:59.000000000 +0200
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-09-06 00:48:32.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-06 00:49:23.000000000 -0300
@@ -16,6 +16,7 @@
#include <linux/mmc/host.h>
#include <linux/irq.h>
@@ -10,8 +10,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
-@@ -220,8 +221,30 @@
- },
+@@ -317,10 +318,32 @@
+ .resource = pcap_ts_resources,
};
+static struct gpio_keys_button e680locksw_buttons[] = {
@@ -36,6 +36,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
+};
+
static struct platform_device *devices[] __initdata = {
+ &e680_pcap_device,
+ &e680_emu_device,
&pcap_ts_device,
+ &e680locksw_device,
};
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e680-mci.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-mci.patch
index b5bb2931f1..7f0826163d 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/e680-mci.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/e680-mci.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-24 00:43:08.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-24 00:48:20.000000000 -0300
-@@ -13,11 +13,14 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-09-07 11:32:30.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-07 11:54:44.000000000 -0300
+@@ -13,6 +13,8 @@
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/fb.h>
@@ -11,13 +11,14 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
- #include <asm/arch/pxa-regs.h>
+@@ -20,12 +22,106 @@
#include <asm/arch/pxafb.h>
+ #include <asm/arch/ezx.h>
+ #include <asm/arch/ezx-pcap.h>
+#include <asm/arch/mmc.h>
#include "generic.h"
- #include "ezx.h"
-@@ -25,6 +28,99 @@
+
extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
extern void ezx_backlight_power(int);
@@ -117,7 +118,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
static struct pxafb_mode_info mode_e680 = {
.pixclock = 150000,
.xres = 240,
-@@ -65,6 +161,7 @@
+@@ -136,6 +232,7 @@
PSLR = 0x05800f00;
set_pxa_fb_info(&e680_fb_info);
@@ -125,15 +126,3 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
/* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */
pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT);
-Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
-===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-24 00:48:28.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-24 00:48:55.000000000 -0300
-@@ -83,6 +83,7 @@
- config PXA_EZX_E680
- bool "Motorola E680 GSM Phone"
- select PXA27x
-+ select EZX_MCI_SD
-
- config PXA_EZX_A780
- bool "Motorola A780 GSM Phone"
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e680-pcap.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-pcap.patch
new file mode 100644
index 0000000000..12ce023749
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/e680-pcap.patch
@@ -0,0 +1,90 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-09-06 00:41:38.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-06 00:44:56.000000000 -0300
+@@ -19,6 +19,7 @@
+ #include <asm/arch/pxa-regs.h>
+ #include <asm/arch/pxafb.h>
+ #include <asm/arch/ezx.h>
++#include <asm/arch/ezx-pcap.h>
+
+ #include "generic.h"
+
+@@ -48,7 +49,77 @@
+ .pxafb_lcd_power = &ezx_lcd_power,
+ };
+
++/* PCAP */
++static int __init e680_pcap_init(void)
++{
++ /* initialize PCAP registers */
++ /* set SW1 sleep to keep SW1 1.3v in sync mode */
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW1_MODE10, 0);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW1_MODE11, 0);
++
++ /* SW1 active in sync mode */
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW1_MODE00, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW1_MODE01, 0);
++
++ /* at SW1 -core voltage to 1.30V */
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW10_DVS, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW11_DVS, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW12_DVS, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_SW13_DVS, 0);
++
++ /* when STANDY2 PIN ACTIVE (high) set V3-- sram V8 -- pll off */
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V3_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V3_LOWPWR, 0);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V8_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V8_LOWPWR, 0);
++
++ /*
++ * when STANDY2 PIN ACTIVE (high) set V4-- lcd only for e680 V6 ---
++ * camera for e680
++ */
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V4_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V4_LOWPWR, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V6_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_VREG2_V6_LOWPWR, 0);
++
++ /* set Vc to low power mode when AP sleep */
++// SSP_PCAP_bit_set( PCAP_BIT_LOWPWR_CTRL_VC_STBY);
++
++ /* set VAUX2 to low power mode when AP sleep */
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_VAUX2_STBY, 1);
++ ezx_pcap_bit_set(PCAP_BIT_LOWPWR_VAUX2_LOWPWR, 1);
++
++ return 0;
++}
++
++static struct pcap_platform_data e680_pcap_platform_data = {
++ .port = 1,
++ .cs = GPIO_SPI_CE,
++ .flags = PCAP_MCI_SD,
++ .clk = 1,
++ .init = e680_pcap_init,
++};
++
++static struct resource e680_pcap_resources[] = {
++ [0] = {
++ .start = IRQ_GPIO1,
++ .end = IRQ_GPIO1,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++struct platform_device e680_pcap_device = {
++ .name = "ezx-pcap",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(e680_pcap_resources),
++ .resource = e680_pcap_resources,
++ .dev = {
++ .platform_data = &e680_pcap_platform_data,
++ },
++};
++
+ static struct platform_device *devices[] __initdata = {
++ &e680_pcap_device,
+ };
+
+ static void __init e680_init(void)
diff --git a/packages/linux/linux-ezx-2.6.21/patches/e680-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-ts.patch
index 52f9ce34b5..109623c68c 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/e680-ts.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/e680-ts.patch
@@ -1,9 +1,9 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-06-02 20:32:49.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-02 20:33:26.000000000 -0300
-@@ -124,6 +124,27 @@
- .exit = e680_mci_exit,
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-09-07 11:10:47.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-07 11:11:01.000000000 -0300
+@@ -293,9 +293,34 @@
+ },
};
+/* PCAP_TS */
@@ -23,17 +23,16 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
+struct platform_device pcap_ts_device = {
+ .name = "pcap-ts",
+ .id = -1,
++ .dev = {
++ .parent = &e680_pcap_device.dev,
++ },
+ .num_resources = ARRAY_SIZE(pcap_ts_resources),
+ .resource = pcap_ts_resources,
+};
+
- static struct pxafb_mode_info mode_e680 = {
- .pixclock = 150000,
- .xres = 240,
-@@ -200,6 +221,7 @@
- };
-
static struct platform_device *devices[] __initdata = {
+ &e680_pcap_device,
+ &e680_emu_device,
+ &pcap_ts_device,
};
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-asoc.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-asoc.patch
new file mode 100644
index 0000000000..1dda2e544c
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-asoc.patch
@@ -0,0 +1,1302 @@
+Index: linux-2.6.21/sound/soc/codecs/pcap2.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/sound/soc/codecs/pcap2.c 2007-09-07 14:28:32.000000000 -0300
+@@ -0,0 +1,796 @@
++/*
++ * pcap2.c - PCAP2 ASIC Audio driver
++ *
++ * Copyright (C) 2007 Daniel Ribeiro <drwyrm@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/module.h>
++#include <linux/delay.h>
++#include <linux/moduleparam.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/pm.h>
++#include <linux/platform_device.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/initval.h>
++#include <asm/arch/pxa-regs.h>
++#include <asm/arch/ezx-pcap.h>
++#include <asm/arch/ezx.h>
++#include <asm/arch/hardware.h>
++
++#include "pcap2.h"
++
++#define AUDIO_NAME "pcap2-codec"
++#define PCAP2_VERSION "0.1"
++
++extern int ezx_pcap_write(u_int8_t, u_int32_t);
++extern int ezx_pcap_read(u_int8_t, u_int32_t *);
++static struct snd_soc_device *pcap2_codec_socdev;
++
++/*
++ * Debug
++ */
++
++//#define PCAP2_DEBUG
++
++#ifdef PCAP2_DEBUG
++#define dbg(format, arg...) \
++ printk(KERN_DEBUG AUDIO_NAME ": " format "\n" , ## arg)
++#else
++#define dbg(format, arg...)
++#endif
++
++#define err(format, arg...) \
++ printk(KERN_ERR AUDIO_NAME ": " format "\n" , ## arg)
++#define info(format, arg...) \
++ printk(KERN_INFO AUDIO_NAME ": " format "\n" , ## arg)
++#define warn(format, arg...) \
++ printk(KERN_WARNING AUDIO_NAME ": " format "\n" , ## arg)
++
++#define dump_registers() pcap2_codec_read(NULL, 13); \
++ pcap2_codec_read(NULL, 12); \
++ pcap2_codec_read(NULL, 11); \
++ pcap2_codec_read(NULL, 26);
++
++
++
++
++/*
++ * ASoC limits register value to 16 bits and pcap uses 32 bit registers
++ * to work around this, we get 16 bits from low, mid or high positions.
++ * ASoC limits register number to 8 bits we use 0x1f for register
++ * number and 0xe0 for register offset. -WM
++ */
++static int pcap2_codec_write(struct snd_soc_codec *codec, unsigned int reg,
++ unsigned int value)
++{
++ unsigned int tmp;
++
++ ezx_pcap_read((reg & 0x1f), &tmp);
++
++ if (reg & SL) {
++ tmp &= 0xffff0000;
++ tmp |= (value & 0xffff);
++ }
++ else if (reg & SM) {
++ tmp &= 0xff0000ff;
++ tmp |= ((value << 8) & 0x00ffff00);
++ }
++ else if (reg & SH) {
++ tmp &= 0xffff;
++ tmp |= ((value << 16) & 0xffff0000);
++ }
++ else
++ tmp = value;
++
++ dbg("codec_write reg=%x, rval=%08x, fval=%08x", reg, tmp, value);
++ ezx_pcap_write((reg & 0x1f), tmp);
++ return 0;
++
++}
++
++static unsigned int pcap2_codec_read(struct snd_soc_codec *codec, unsigned int reg)
++{
++ unsigned int tmp, ret;
++
++ ezx_pcap_read((reg & 0x1f), &tmp);
++ ret = tmp;
++ if (reg & SL)
++ ret = (tmp & 0xffff);
++ else if (reg & SM)
++ ret = ((tmp >> 8) & 0xffff);
++ else if (reg & SH)
++ ret = ((tmp >> 16) & 0xffff);
++
++ dbg("codec_read reg=%x, rval=%08x, fval=%08x", reg, tmp, ret);
++ return(ret);
++
++}
++
++static const char *pcap2_output_select[] = {"2ch", "2->1ch", "2->1ch -3db", "2->1ch -6db"};
++
++static const struct soc_enum pcap2_enum[] = {
++SOC_ENUM_SINGLE((PCAP2_OUTPUT_AMP|SH), 3, 4, pcap2_output_select),
++};
++
++static const struct snd_kcontrol_new pcap2_input_mixer_controls[] = {
++SOC_DAPM_SINGLE("A3 Switch", (PCAP2_INPUT_AMP|SL), 6, 1, 0),
++SOC_DAPM_SINGLE("A5 Switch", (PCAP2_INPUT_AMP|SL), 8, 1, 0),
++};
++
++static const struct snd_kcontrol_new pcap2_output_mixer_controls[] = {
++SOC_DAPM_SINGLE("A1 Switch", (PCAP2_OUTPUT_AMP|SL), 0, 1, 0),
++SOC_DAPM_SINGLE("A2 Switch", (PCAP2_OUTPUT_AMP|SL), 1, 1, 0),
++SOC_DAPM_SINGLE("AR Switch", (PCAP2_OUTPUT_AMP|SL), 5, 1, 0),
++SOC_DAPM_SINGLE("AL Switch", (PCAP2_OUTPUT_AMP|SL), 6, 1, 0),
++};
++
++/* pcap2 codec non DAPM controls */
++static const struct snd_kcontrol_new pcap2_codec_snd_controls[] = {
++SOC_SINGLE("Output gain", (PCAP2_OUTPUT_AMP|SM), 5, 15, 0),
++SOC_SINGLE("Input gain", (PCAP2_INPUT_AMP|SL), 0, 31, 0),
++};
++
++static const struct snd_kcontrol_new pcap2_codec_dm_mux_control[] = {
++ SOC_DAPM_ENUM("Output Mode", pcap2_enum[0]),
++};
++
++/* add non dapm controls */
++static int pcap2_codec_add_controls(struct snd_soc_codec *codec)
++{
++ int err, i;
++
++ for (i = 0; i < ARRAY_SIZE(pcap2_codec_snd_controls); i++) {
++ if ((err = snd_ctl_add(codec->card,
++ snd_soc_cnew(&pcap2_codec_snd_controls[i],codec, NULL))) < 0)
++ return err;
++ }
++
++ return 0;
++}
++
++/* pcap2 codec DAPM controls */
++static const struct snd_soc_dapm_widget pcap2_codec_dapm_widgets[] = {
++ SND_SOC_DAPM_DAC("ST_DAC", "ST_DAC playback", SND_SOC_NOPM, 0, 0),
++ SND_SOC_DAPM_DAC("CDC_DAC", "CDC_DAC playback", SND_SOC_NOPM, 0, 0),
++ SND_SOC_DAPM_ADC("CDC_ADC", "CDC_DAC capture", SND_SOC_NOPM, 0, 0),
++ SND_SOC_DAPM_PGA("PGA_ST", (PCAP2_OUTPUT_AMP|SL), 9, 0, NULL, 0),
++ SND_SOC_DAPM_PGA("PGA_CDC", (PCAP2_OUTPUT_AMP|SL), 8, 0, NULL, 0),
++ SND_SOC_DAPM_PGA("PGA_R", (PCAP2_OUTPUT_AMP|SL), 11, 0, NULL, 0),
++ SND_SOC_DAPM_PGA("PGA_L", (PCAP2_OUTPUT_AMP|SL), 12, 0, NULL, 0),
++ SND_SOC_DAPM_MUX("Downmixer", SND_SOC_NOPM, 0, 0, pcap2_codec_dm_mux_control),
++ SND_SOC_DAPM_PGA("PGA_A1CTRL", (PCAP2_OUTPUT_AMP|SH), 1, 1, NULL, 0),
++ SND_SOC_DAPM_MIXER("Output Mixer", SND_SOC_NOPM, 0, 0, &pcap2_output_mixer_controls[0], ARRAY_SIZE(pcap2_output_mixer_controls)),
++ SND_SOC_DAPM_OUTPUT("A1"), /* Earpiece */
++ SND_SOC_DAPM_OUTPUT("A2"), /* LoudSpeaker */
++ SND_SOC_DAPM_OUTPUT("AR"), /* headset right */
++ SND_SOC_DAPM_OUTPUT("AL"), /* headset left */
++
++ SND_SOC_DAPM_MICBIAS("BIAS1", (PCAP2_INPUT_AMP|SL), 10, 0),
++ SND_SOC_DAPM_MICBIAS("BIAS2", (PCAP2_INPUT_AMP|SL), 11, 0),
++ SND_SOC_DAPM_MIXER("Input Mixer", SND_SOC_NOPM, 0, 0, &pcap2_input_mixer_controls[0], ARRAY_SIZE(pcap2_input_mixer_controls)),
++ SND_SOC_DAPM_INPUT("A3"), /* Headset Mic */
++ SND_SOC_DAPM_INPUT("A5"), /* Builtin Mic */
++};
++
++static const char *audio_map[][3] = {
++ { "A1", NULL, "Output Mixer" },
++ { "A2", NULL, "Output Mixer" },
++ { "AR", NULL, "Output Mixer" },
++ { "AL", NULL, "Output Mixer" },
++
++ { "Output Mixer", "A1 Switch", "PGA_A1CTRL" },
++ { "Output Mixer", "A2 Switch", "Downmixer" },
++ { "Output Mixer", "AR Switch", "PGA_R" },
++ { "Output Mixer", "AL Switch", "PGA_L" },
++
++ { "PGA_A1CTRL", NULL, "Downmixer" },
++
++ { "Downmixer", "2->1ch", "PGA_L" },
++ { "Downmixer", "2->1ch", "PGA_R" },
++ { "Downmixer", "2->1ch -3db", "PGA_L" },
++ { "Downmixer", "2->1ch -3db", "PGA_R" },
++ { "Downmixer", "2->1ch -6db", "PGA_L" },
++ { "Downmixer", "2->1ch -6db", "PGA_R" },
++ { "Downmixer", "2ch", "PGA_R" },
++
++ { "PGA_R", NULL, "PGA_ST" },
++ { "PGA_L", NULL, "PGA_ST" },
++ { "PGA_R", NULL, "PGA_CDC" },
++
++ { "PGA_ST", NULL, "ST_DAC" },
++ { "PGA_CDC", NULL, "CDC_DAC" },
++
++ /* input path */
++ { "BIAS1", NULL, "A3" },
++ { "BIAS2", NULL, "A5" },
++
++ { "Input Mixer", "A3 Switch", "BIAS1" },
++ { "Input Mixer", "A5 Switch", "BIAS2" },
++
++ { "PGA_R", NULL, "Input Mixer" },
++
++ { "PGA_CDC", NULL, "PGA_R" },
++ { "CDC_ADC", NULL, "PGA_CDC" },
++
++ /* terminator */
++ {NULL, NULL, NULL},
++};
++
++static int pcap2_codec_add_widgets(struct snd_soc_codec *codec)
++{
++ int i;
++
++ for(i = 0; i < ARRAY_SIZE(pcap2_codec_dapm_widgets); i++) {
++ snd_soc_dapm_new_control(codec, &pcap2_codec_dapm_widgets[i]);
++ }
++
++ /* set up audio path interconnects */
++ for(i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0],
++ audio_map[i][1], audio_map[i][2]);
++ }
++
++ snd_soc_dapm_new_widgets(codec);
++ return 0;
++}
++
++static int pcap2_codec_dapm_event(struct snd_soc_codec *codec, int event)
++{
++ unsigned int input = pcap2_codec_read(codec, PCAP2_INPUT_AMP);
++
++ input &= ~PCAP2_INPUT_AMP_LOWPWR;
++
++ switch (event) {
++ case SNDRV_CTL_POWER_D0:
++ case SNDRV_CTL_POWER_D1:
++ case SNDRV_CTL_POWER_D2:
++ case SNDRV_CTL_POWER_D3hot: /* Off, with power */
++ dbg("dapm: ON\n");
++ break;
++ case SNDRV_CTL_POWER_D3cold: /* Off, without power */
++ input |= PCAP2_INPUT_AMP_LOWPWR;
++ dbg("dapm: OFF\n");
++ break;
++ }
++ codec->dapm_state = event;
++ pcap2_codec_write(codec, PCAP2_INPUT_AMP, input);
++ return 0;
++}
++
++static int pcap2_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_codec *codec = codec_dai->codec;
++ unsigned int tmp;
++
++ if (codec_dai->id == PCAP2_STEREO_DAI) {
++ tmp = pcap2_codec_read(codec, PCAP2_ST_DAC);
++
++ tmp &= ~PCAP2_ST_DAC_RATE_MASK;
++ switch(params_rate(params)) {
++ case 8000:
++ break;
++ case 11025:
++ tmp |= PCAP2_ST_DAC_RATE_11025;
++ break;
++ case 12000:
++ tmp |= PCAP2_ST_DAC_RATE_12000;
++ break;
++ case 16000:
++ tmp |= PCAP2_ST_DAC_RATE_16000;
++ break;
++ case 22050:
++ tmp |= PCAP2_ST_DAC_RATE_22050;
++ break;
++ case 24000:
++ tmp |= PCAP2_ST_DAC_RATE_24000;
++ break;
++ case 32000:
++ tmp |= PCAP2_ST_DAC_RATE_32000;
++ break;
++ case 44100:
++ tmp |= PCAP2_ST_DAC_RATE_44100;
++ break;
++ case 48000:
++ tmp |= PCAP2_ST_DAC_RATE_48000;
++ break;
++ default:
++ return -EINVAL;
++ }
++ tmp |= PCAP2_ST_DAC_RESET_DF;
++ pcap2_codec_write(codec, PCAP2_ST_DAC, tmp);
++ }
++ else {
++ tmp = pcap2_codec_read(codec, PCAP2_CODEC);
++
++ tmp &= ~PCAP2_CODEC_RATE_MASK;
++ switch(params_rate(params)) {
++ case 8000:
++ break;
++ case 16000:
++ tmp |= PCAP2_CODEC_RATE_16000;
++ break;
++ default:
++ return -EINVAL;
++ }
++ tmp |= PCAP2_CODEC_RESET_DF;
++ pcap2_codec_write(codec, PCAP2_CODEC, tmp);
++ }
++
++ return 0;
++}
++
++static int pcap2_hw_free(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_codec *codec = codec_dai->codec;
++ struct snd_soc_dapm_widget *w;
++ unsigned int tmp;
++
++ if (codec_dai->id == PCAP2_STEREO_DAI) {
++ snd_soc_dapm_set_endpoint(codec, "ST_DAC", 0);
++ tmp = pcap2_codec_read(codec, PCAP2_ST_DAC);
++ tmp &= ~(PCAP2_ST_DAC_EN | PCAP2_ST_DAC_CLK_EN);
++ pcap2_codec_write(codec, PCAP2_ST_DAC, tmp);
++ }
++ else {
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ snd_soc_dapm_set_endpoint(codec, "CDC_DAC", 0);
++ else
++ snd_soc_dapm_set_endpoint(codec, "CDC_ADC", 0);
++ list_for_each_entry(w, &codec->dapm_widgets, list) {
++ if ((!strcmp(w->name, "CDC_DAC") || !strcmp(w->name, "CDC_ADC")) && w->connected)
++ goto in_use;
++ }
++ tmp = pcap2_codec_read(codec, PCAP2_CODEC);
++ tmp &= ~(PCAP2_CODEC_EN | PCAP2_CODEC_CLK_EN);
++ pcap2_codec_write(codec, PCAP2_CODEC, tmp);
++ }
++in_use:
++ snd_soc_dapm_sync_endpoints(codec);
++
++ return 0;
++}
++
++static int pcap2_set_dai_sysclk(struct snd_soc_codec_dai *codec_dai,
++ int clk_id, unsigned int freq, int dir)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++
++ unsigned int tmp;
++ if (codec_dai->id == PCAP2_STEREO_DAI) {
++ /* ST_DAC */
++
++ tmp = pcap2_codec_read(codec, PCAP2_ST_DAC);
++
++ tmp &= ~PCAP2_ST_DAC_CLKSEL_MASK;
++ switch (clk_id) {
++ case PCAP2_CLK_AP:
++ tmp |= PCAP2_ST_DAC_CLKSEL_AP;
++ break;
++ case PCAP2_CLK_BP:
++ break;
++ default:
++ return -ENODEV;
++ }
++
++ tmp &= ~PCAP2_ST_DAC_CLK_MASK;
++ switch (freq) {
++ case 13000000:
++ break;
++/* case 15M36:
++ tmp |= PCAP2_ST_DAC_CLK_15M36;
++ break;
++ case 16M8:
++ tmp |= PCAP2_ST_DAC_CLK_16M8;
++ break;
++ case 19M44:
++ tmp |= PCAP2_ST_DAC_CLK_19M44;
++ break;
++*/ case 26000000:
++ tmp |= PCAP2_ST_DAC_CLK_26M;
++ break;
++/* case EXT_MCLK:
++ tmp |= PCAP2_ST_DAC_CLK_MCLK;
++ break;
++ case FSYNC:
++ tmp |= PCAP2_ST_DAC_CLK_FSYNC;
++ break;
++ case BITCLK:
++ tmp |= PCAP2_ST_DAC_CLK_BITCLK;
++ break;
++*/ default:
++ return -EINVAL;
++ }
++ pcap2_codec_write(codec, PCAP2_ST_DAC, tmp);
++ }
++ else {
++ /* MONO_DAC */
++ tmp = pcap2_codec_read(codec, PCAP2_CODEC);
++
++ tmp &= ~PCAP2_CODEC_CLKSEL_MASK;
++ switch (clk_id) {
++ case PCAP2_CLK_AP:
++ tmp |= PCAP2_CODEC_CLKSEL_AP;
++ break;
++ case PCAP2_CLK_BP:
++ break;
++ default:
++ return -ENODEV;
++ }
++
++ tmp &= ~PCAP2_CODEC_CLK_MASK;
++ switch (freq) {
++ case 13000000:
++ break;
++/* case 15M36:
++ tmp |= PCAP2_CODEC_CLK_15M36;
++ break;
++ case 16M8:
++ tmp |= PCAP2_CODEC_CLK_16M8;
++ break;
++ case 19M44:
++ tmp |= PCAP2_CODEC_CLK_19M44;
++ break;
++*/ case 26000000:
++ tmp |= PCAP2_CODEC_CLK_26M;
++ break;
++ default:
++ return -EINVAL;
++ }
++ pcap2_codec_write(codec, PCAP2_CODEC, tmp);
++ }
++ return 0;
++}
++
++static int pcap2_set_dai_fmt(struct snd_soc_codec_dai *codec_dai,
++ unsigned int fmt)
++{
++ struct snd_soc_codec *codec = codec_dai->codec;
++ unsigned int tmp = 0;
++
++ if (codec_dai->id == PCAP2_STEREO_DAI) {
++ /* ST_DAC */
++
++ /* disable CODEC */
++ pcap2_codec_write(codec, PCAP2_CODEC, 0);
++
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBM_CFM:
++ break;
++ case SND_SOC_DAIFMT_CBS_CFS:
++ tmp |= 0x1;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_I2S:
++ tmp |= 0x4000;
++ break;
++/* case SND_SOC_NET:
++ tmp |= 0x2000;
++ break;
++*/ case SND_SOC_DAIFMT_DSP_B:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
++ case SND_SOC_DAIFMT_IB_IF:
++ break;
++ case SND_SOC_DAIFMT_NB_NF:
++ tmp |= 0x60000;
++ break;
++ case SND_SOC_DAIFMT_IB_NF:
++ tmp |= 0x40000;
++ break;
++ case SND_SOC_DAIFMT_NB_IF:
++ tmp |= 0x20000;
++ break;
++ }
++ /* set dai to AP */
++ tmp |= 0x1000;
++
++ /* set BCLK */
++ tmp |= 0x18000;
++
++ pcap2_codec_write(codec, PCAP2_ST_DAC, tmp);
++ }
++ else {
++ /* MONO_DAC */
++
++ /* disable ST_DAC */
++ pcap2_codec_write(codec, PCAP2_ST_DAC, 0);
++
++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
++ case SND_SOC_DAIFMT_CBM_CFM:
++ break;
++ case SND_SOC_DAIFMT_CBS_CFS:
++ tmp |= 0x2;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
++ case SND_SOC_DAIFMT_DSP_B:
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
++ case SND_SOC_DAIFMT_IB_IF:
++ break;
++ case SND_SOC_DAIFMT_NB_NF:
++ tmp |= 0x600;
++ break;
++ case SND_SOC_DAIFMT_IB_NF:
++ tmp |= 0x400;
++ break;
++ case SND_SOC_DAIFMT_NB_IF:
++ tmp |= 0x200;
++ break;
++ }
++ if (codec_dai->id == PCAP2_MONO_DAI)
++ /* set dai to AP */
++ tmp |= 0x8000;
++
++ tmp |= 0x5; /* IHF / OHF */
++
++ pcap2_codec_write(codec, PCAP2_CODEC, tmp);
++ }
++ return 0;
++}
++
++static int pcap2_prepare(struct snd_pcm_substream *substream)
++{
++
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_codec *codec = codec_dai->codec;
++ unsigned int tmp;
++ /* FIXME enable clock only if codec is master */
++ if (codec_dai->id == PCAP2_STEREO_DAI) {
++ snd_soc_dapm_set_endpoint(codec, "ST_DAC", 1);
++ snd_soc_dapm_set_endpoint(codec, "CDC_DAC", 0);
++ snd_soc_dapm_set_endpoint(codec, "CDC_ADC", 0);
++ tmp = pcap2_codec_read(codec, PCAP2_ST_DAC);
++ tmp |= (PCAP2_ST_DAC_EN | PCAP2_ST_DAC_CLK_EN);
++ pcap2_codec_write(codec, PCAP2_ST_DAC, tmp);
++ }
++ else {
++ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
++ snd_soc_dapm_set_endpoint(codec, "CDC_DAC", 1);
++ else
++ snd_soc_dapm_set_endpoint(codec, "CDC_ADC", 1);
++ snd_soc_dapm_set_endpoint(codec, "ST_DAC", 0);
++ tmp = pcap2_codec_read(codec, PCAP2_CODEC);
++ tmp |= (PCAP2_CODEC_EN | PCAP2_CODEC_CLK_EN);
++ pcap2_codec_write(codec, PCAP2_CODEC, tmp);
++ }
++ snd_soc_dapm_sync_endpoints(codec);
++ mdelay(1);
++#ifdef PCAP2_DEBUG
++ dump_registers();
++#endif
++ return 0;
++}
++
++/*
++ * Define codec DAI.
++ */
++struct snd_soc_codec_dai pcap2_dai[] = {
++{
++ .name = "PCAP2 MONO",
++ .id = 0,
++ .playback = {
++ .stream_name = "CDC_DAC playback",
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000),
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .capture = {
++ .stream_name = "CDC_DAC capture",
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000),
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .ops = {
++ .prepare = pcap2_prepare,
++ .hw_params = pcap2_hw_params,
++ .hw_free = pcap2_hw_free,
++ },
++ .dai_ops = {
++// .digital_mute = pcap2_mute,
++ .set_fmt = pcap2_set_dai_fmt,
++ .set_sysclk = pcap2_set_dai_sysclk,
++ },
++},
++{
++ .name = "PCAP2 STEREO",
++ .id = 1,
++ .playback = {
++ .stream_name = "ST_DAC playback",
++ .channels_min = 1,
++ .channels_max = 2,
++ .rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
++ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
++ SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
++ SNDRV_PCM_RATE_48000),
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .capture = { /* FIXME: PCAP support this?? */
++ .stream_name = "ST_DAC capture",
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
++ SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
++ SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
++ SNDRV_PCM_RATE_48000),
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .ops = {
++ .prepare = pcap2_prepare,
++ .hw_params = pcap2_hw_params,
++ .hw_free = pcap2_hw_free,
++ },
++ .dai_ops = {
++// .digital_mute = pcap2_mute,
++ .set_fmt = pcap2_set_dai_fmt,
++ .set_sysclk = pcap2_set_dai_sysclk,
++ },
++},
++{
++ .name = "PCAP2 BP",
++ .id = 2,
++ .playback = {
++ .stream_name = "BP playback",
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = SNDRV_PCM_RATE_8000,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .ops = {
++ .prepare = pcap2_prepare,
++ .hw_params = pcap2_hw_params,
++ .hw_free = pcap2_hw_free,
++ },
++ .dai_ops = {
++// .digital_mute = pcap2_mute,
++ .set_fmt = pcap2_set_dai_fmt,
++ .set_sysclk = pcap2_set_dai_sysclk,
++ },
++},
++};
++EXPORT_SYMBOL_GPL(pcap2_dai);
++
++static int pcap2_codec_suspend(struct platform_device *pdev, pm_message_t state)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ dbg("pcap2_codec_suspend");
++ pcap2_codec_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++ return 0;
++}
++
++static int pcap2_codec_resume(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++
++ dbg("pcap2_codec_resume");
++ pcap2_codec_dapm_event(codec, SNDRV_CTL_POWER_D3hot);
++ pcap2_codec_dapm_event(codec, codec->suspend_dapm_state);
++ return 0;
++}
++
++/*
++ * initialise the PCAP2 driver
++ * register the mixer and dsp interfaces with the kernel
++ */
++static int pcap2_codec_init(struct snd_soc_device *socdev)
++{
++ struct snd_soc_codec *codec = socdev->codec;
++ int ret = 0;
++
++ dbg("pcap2_codec_init");
++ codec->name = "PCAP2 Audio";
++ codec->owner = THIS_MODULE;
++ codec->read = pcap2_codec_read;
++ codec->write = pcap2_codec_write;
++ codec->dapm_event = pcap2_codec_dapm_event;
++ codec->dai = pcap2_dai;
++ codec->num_dai = ARRAY_SIZE(pcap2_dai);
++
++ /* register pcms */
++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
++ if (ret < 0) {
++ return ret;
++ }
++ /* power on device */
++ pcap2_codec_dapm_event(codec, SNDRV_CTL_POWER_D3hot);
++ /* set the update bits */
++
++ pcap2_codec_add_controls(codec);
++ pcap2_codec_add_widgets(codec);
++ ret = snd_soc_register_card(socdev);
++ if (ret < 0) {
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++ }
++
++ return ret;
++}
++
++static int pcap2_codec_probe(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct pcap2_codec_setup_data *setup;
++ struct snd_soc_codec *codec;
++ int ret = 0;
++ info("PCAP2 Audio Codec %s", PCAP2_VERSION);
++
++ setup = socdev->codec_data;
++ codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);
++ if (codec == NULL)
++ return -ENOMEM;
++
++ socdev->codec = codec;
++ mutex_init(&codec->mutex);
++ INIT_LIST_HEAD(&codec->dapm_widgets);
++ INIT_LIST_HEAD(&codec->dapm_paths);
++
++ pcap2_codec_socdev = socdev;
++
++ ret = pcap2_codec_init(socdev);
++ return ret;
++}
++
++/* power down chip and remove */
++static int pcap2_codec_remove(struct platform_device *pdev)
++{
++ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
++ struct snd_soc_codec *codec = socdev->codec;
++ if (codec->control_data)
++ pcap2_codec_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
++ snd_soc_free_pcms(socdev);
++ snd_soc_dapm_free(socdev);
++
++ kfree(codec);
++
++ return 0;
++}
++
++/* codec device ops */
++struct snd_soc_codec_device soc_codec_dev_pcap2 = {
++ .probe = pcap2_codec_probe,
++ .remove = pcap2_codec_remove,
++ .suspend = pcap2_codec_suspend,
++ .resume = pcap2_codec_resume,
++};
++
++EXPORT_SYMBOL_GPL(soc_codec_dev_pcap2);
++
++MODULE_DESCRIPTION("ASoC PCAP2 codec");
++MODULE_AUTHOR("Daniel Ribeiro");
++MODULE_LICENSE("GPL");
+Index: linux-2.6.21/sound/soc/codecs/pcap2.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/sound/soc/codecs/pcap2.h 2007-09-07 12:13:49.000000000 -0300
+@@ -0,0 +1,81 @@
++/*
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef _PCAP2_H
++#define _PCAP2_H
++
++/* 16 bit reads/writes on pcap registers (ugly workaround) */
++#define SL (1 << 5) /* lower 16 bits */
++#define SM (1 << 6) /* mid 16 bits */
++#define SH (1 << 7) /* higher 16 bits */
++
++/* PCAP2 register space */
++#define PCAP2_CODEC 0x0b
++#define PCAP2_OUTPUT_AMP 0x0c
++#define PCAP2_ST_DAC 0x0d
++#define PCAP2_INPUT_AMP 0x1a
++
++#define PCAP2_MONO_DAI 0
++#define PCAP2_STEREO_DAI 1
++#define PCAP2_BP_DAI 2
++
++#define PCAP2_CLK_BP 0
++#define PCAP2_CLK_AP 1
++
++#define PCAP2_CODEC_EN 0x2000
++#define PCAP2_CODEC_CLK_EN 0x1000
++#define PCAP2_CODEC_RESET_DF 0x800
++#define PCAP2_CODEC_RATE_MASK 0x4000
++#define PCAP2_CODEC_RATE_8000 0x0
++#define PCAP2_CODEC_RATE_16000 0x4000
++#define PCAP2_CODEC_CLKSEL_MASK 0x10000
++#define PCAP2_CODEC_CLKSEL_AP 0x10000
++#define PCAP2_CODEC_CLKSEL_BP 0x0
++#define PCAP2_CODEC_CLK_MASK 0x1c0
++#define PCAP2_CODEC_CLK_13M 0x0
++#define PCAP2_CODEC_CLK_15M36 0x40
++#define PCAP2_CODEC_CLK_16M8 0x80
++#define PCAP2_CODEC_CLK_19M44 0xc0
++#define PCAP2_CODEC_CLK_26M 0x100
++
++#define PCAP2_ST_DAC_EN 0x80
++#define PCAP2_ST_DAC_CLK_EN 0x20
++#define PCAP2_ST_DAC_RESET_DF 0x40
++#define PCAP2_ST_DAC_RATE_MASK 0xf00
++#define PCAP2_ST_DAC_RATE_8000 0x0
++#define PCAP2_ST_DAC_RATE_11025 0x100
++#define PCAP2_ST_DAC_RATE_12000 0x200
++#define PCAP2_ST_DAC_RATE_16000 0x300
++#define PCAP2_ST_DAC_RATE_22050 0x400
++#define PCAP2_ST_DAC_RATE_24000 0x500
++#define PCAP2_ST_DAC_RATE_32000 0x600
++#define PCAP2_ST_DAC_RATE_44100 0x700
++#define PCAP2_ST_DAC_RATE_48000 0x800
++#define PCAP2_ST_DAC_CLKSEL_MASK 0x80000
++#define PCAP2_ST_DAC_CLKSEL_AP 0x80000
++#define PCAP2_ST_DAC_CLKSEL_BP 0x0
++#define PCAP2_ST_DAC_CLK_MASK 0x1c
++#define PCAP2_ST_DAC_CLK_13M 0x0
++#define PCAP2_ST_DAC_CLK_15M36 0x4
++#define PCAP2_ST_DAC_CLK_16M8 0x8
++#define PCAP2_ST_DAC_CLK_19M44 0xc
++#define PCAP2_ST_DAC_CLK_26M 0x10
++#define PCAP2_ST_DAC_CLK_MCLK 0x14
++#define PCAP2_ST_DAC_CLK_FSYNC 0x18
++#define PCAP2_ST_DAC_CLK_BITCLK 0x1c
++
++#define PCAP2_INPUT_AMP_LOWPWR 0x80000
++#define PCAP2_INPUT_AMP_V2EN2 0x200000
++
++#define PCAP2_OUTPUT_AMP_PGAR_EN 0x800
++#define PCAP2_OUTPUT_AMP_PGAL_EN 0x1000
++#define PCAP2_OUTPUT_AMP_CDC_SW 0x100
++#define PCAP2_OUTPUT_AMP_ST_DAC_SW 0x200
++
++extern struct snd_soc_codec_dai pcap2_dai[];
++extern struct snd_soc_codec_device soc_codec_dev_pcap2;
++
++#endif
+Index: linux-2.6.21/sound/soc/pxa/Kconfig
+===================================================================
+--- linux-2.6.21.orig/sound/soc/pxa/Kconfig 2007-09-07 12:13:43.000000000 -0300
++++ linux-2.6.21/sound/soc/pxa/Kconfig 2007-09-07 12:13:49.000000000 -0300
+@@ -60,4 +60,13 @@
+ Say Y if you want to add support for SoC audio on Sharp
+ Zaurus SL-C6000x models (Tosa).
+
++config SND_PXA2XX_SOC_EZX
++ tristate "SoC Audio support for EZX"
++ depends on SND_PXA2XX_SOC && PXA_EZX
++ select SND_PXA2XX_SOC_SSP
++ select SND_SOC_PCAP2
++ help
++ Say Y if you want to add support for SoC audio on
++ Motorola EZX Phones (a780/e680).
++
+ endmenu
+Index: linux-2.6.21/sound/soc/pxa/ezx.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/sound/soc/pxa/ezx.c 2007-09-07 13:12:24.000000000 -0300
+@@ -0,0 +1,349 @@
++/*
++ * ezx.c - Machine specific code for EZX phones
++ *
++ * Copyright (C) 2007 Daniel Ribeiro <drwyrm@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.
++ *
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/timer.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <sound/driver.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++
++#include <asm/mach-types.h>
++#include <asm/arch/pxa-regs.h>
++#include <asm/arch/hardware.h>
++
++#include <asm/arch/ezx-pcap.h>
++
++#include "../codecs/pcap2.h"
++#include "pxa2xx-pcm.h"
++#include "pxa2xx-ssp.h"
++
++#define GPIO_HW_ATTENUATE_A780 96
++
++static struct snd_soc_codec *control_codec;
++
++static void ezx_ext_control(struct snd_soc_codec *codec)
++{
++ if (ezx_pcap_read_bit(pbit(PCAP_REG_PSTAT, PCAP_IRQ_A1)))
++ snd_soc_dapm_set_endpoint(codec, "Headset", 1);
++ else
++ snd_soc_dapm_set_endpoint(codec, "Headset", 0);
++ if (ezx_pcap_read_bit(pbit(PCAP_REG_PSTAT, PCAP_IRQ_MB2)))
++ snd_soc_dapm_set_endpoint(codec, "External Mic", 1);
++ else
++ snd_soc_dapm_set_endpoint(codec, "External Mic", 0);
++
++ snd_soc_dapm_sync_endpoints(codec);
++}
++
++static irqreturn_t jack_irq(int irq, void *data)
++{
++ ezx_ext_control(control_codec);
++ return IRQ_HANDLED;
++}
++
++
++/*
++ * Alsa operations
++ * Only implement the required operations for your platform.
++ * These operations are specific to the machine only.
++ */
++
++ /*
++ * Called by ALSA when a PCM substream is opened, private data can be allocated.
++ */
++static int ezx_machine_startup(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec *codec = rtd->socdev->codec;
++
++ /* check the jack status at stream startup */
++ ezx_ext_control(codec);
++ return 0;
++}
++
++/*
++ * Called by ALSA when the hardware params are set by application. This
++ * function can also be called multiple times and can allocate buffers
++ * (using snd_pcm_lib_* ). It's non-atomic.
++ */
++static int ezx_machine_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ int ret;
++
++ /* set codec DAI configuration */
++ if (codec_dai->id == PCAP2_STEREO_DAI)
++ ret = codec_dai->dai_ops.set_fmt(codec_dai, SND_SOC_DAIFMT_DSP_B |
++ SND_SOC_DAIFMT_IB_NF | SND_SOC_DAIFMT_CBM_CFM);
++ else
++ ret = codec_dai->dai_ops.set_fmt(codec_dai, SND_SOC_DAIFMT_DSP_B |
++ SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM);
++ if(ret < 0)
++ return ret;
++
++ /* Turn on clock output on CLK_PIO */
++ OSCC |= 0x8;
++
++ /* set clock source */
++ ret = codec_dai->dai_ops.set_sysclk(codec_dai, PCAP2_CLK_AP,
++ 13000000, SND_SOC_CLOCK_IN);
++ if(ret < 0)
++ return ret;
++
++ /* set cpu DAI configuration */
++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_B |
++ SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM);
++ if (ret < 0)
++ return ret;
++
++ ret = cpu_dai->dai_ops.set_tristate(cpu_dai, 0);
++ if (ret < 0)
++ return ret;
++
++ ret = cpu_dai->dai_ops.set_sysclk(cpu_dai,PXA2XX_SSP_CLK_EXT,
++ 0, SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ return ret;
++
++ return 0;
++}
++
++/*
++ * Free's resources allocated by hw_params, can be called multiple times
++ */
++static int ezx_machine_hw_free(struct snd_pcm_substream *substream)
++{
++ OSCC &= ~0x8; /* turn off clock output on CLK_PIO */
++
++ return 0;
++}
++
++static int ezx_machine_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++
++ if (codec_dai->id == PCAP2_STEREO_DAI) {
++ /* override pxa2xx-ssp sample size for stereo/network mode */
++ SSCR0_P(cpu_dai->id+1) &= ~(SSCR0_DSS | SSCR0_EDSS);
++ SSCR0_P(cpu_dai->id+1) |= (SSCR0_EDSS | SSCR0_DataSize(16));
++ }
++ return 0;
++}
++
++/* machine Alsa PCM operations */
++static struct snd_soc_ops ezx_ops = {
++ .startup = ezx_machine_startup,
++ .prepare = ezx_machine_prepare,
++ .hw_free = ezx_machine_hw_free,
++ .hw_params = ezx_machine_hw_params,
++};
++
++static int bp_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
++// struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
++ int ret = 0;
++ /* set codec DAI configuration */
++ ret = codec_dai->dai_ops.set_fmt(codec_dai, SND_SOC_DAIFMT_DSP_B |
++ SND_SOC_DAIFMT_IB_IF | SND_SOC_DAIFMT_CBM_CFM);
++ if(ret < 0)
++ return ret;
++
++ /* set clock source */
++ ret = codec_dai->dai_ops.set_sysclk(codec_dai, PCAP2_CLK_BP,
++ 13000000, SND_SOC_CLOCK_IN);
++
++ return ret;
++}
++
++
++
++/* machine dapm widgets */
++static const struct snd_soc_dapm_widget ezx_dapm_widgets[] = {
++ SND_SOC_DAPM_HP("Headset", NULL),
++ SND_SOC_DAPM_SPK("Earpiece", NULL),
++ SND_SOC_DAPM_SPK("Loudspeaker", NULL),
++ SND_SOC_DAPM_MIC("Built-in Mic", NULL),
++ SND_SOC_DAPM_MIC("External Mic", NULL),
++};
++
++/* machine audio map (connections to the codec pins) */
++static const char *audio_map[][3] = {
++ { "Headset", NULL, "AR" },
++ { "Headset", NULL, "AL" },
++ { "Earpiece", NULL, "A1" },
++ { "Loudspeaker", NULL, "A2" },
++
++ { "Built-in Mic", NULL, "A5" },
++ { "External Mic", NULL, "A3" },
++
++ {NULL, NULL, NULL},
++};
++
++/*
++ * Initialise the machine audio subsystem.
++ */
++static int ezx_machine_init(struct snd_soc_codec *codec)
++{
++ int i;
++ /* mark unused codec pins as NC */
++// snd_soc_dapm_set_endpoint(codec, "FIXME", 0);
++ control_codec = codec;
++
++ /* Add ezx specific controls */
++// for (i = 0; i < ARRAY_SIZE(ezx_controls); i++) {
++// if ((err = snd_ctl_add(codec->card, snd_soc_cnew(&ezx_controls[i], codec, NULL))) < 0)
++// return err;
++// }
++
++ /* Add ezx specific widgets */
++ for(i = 0; i < ARRAY_SIZE(ezx_dapm_widgets); i++) {
++ snd_soc_dapm_new_control(codec, &ezx_dapm_widgets[i]);
++ }
++ /* Set up ezx specific audio path interconnects */
++ for(i = 0; audio_map[i][0] != NULL; i++) {
++ snd_soc_dapm_connect_input(codec, audio_map[i][0], audio_map[i][1], audio_map[i][2]);
++ }
++
++ /* synchronise subsystem */
++ snd_soc_dapm_sync_endpoints(codec);
++ return 0;
++}
++
++static struct snd_soc_cpu_dai bp_dai =
++{
++ .name = "Baseband",
++ .id = 0,
++ .type = SND_SOC_DAI_PCM,
++ .playback = {
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = SNDRV_PCM_RATE_8000,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .capture = {
++ .channels_min = 1,
++ .channels_max = 1,
++ .rates = SNDRV_PCM_RATE_8000,
++ .formats = SNDRV_PCM_FMTBIT_S16_LE,
++ },
++ .ops = {
++// .startup = bp_startup,
++// .shutdown = bp_shutdown,
++ .hw_params = bp_hw_params,
++// .hw_free = bp_hw_free,
++ },
++};
++
++/* template digital audio interface glue - connects codec <--> CPU */
++static struct snd_soc_dai_link ezx_dai[] = {
++{
++ .name = "PCAP2 STEREO",
++ .stream_name = "stereo playback",
++ .cpu_dai = &pxa_ssp_dai[PXA2XX_DAI_SSP3],
++ .codec_dai = &pcap2_dai[PCAP2_STEREO_DAI],
++ .init = ezx_machine_init,
++ .ops = &ezx_ops,
++},
++{
++ .name = "PCAP2 MONO",
++ .stream_name = "mono playback",
++ .cpu_dai = &pxa_ssp_dai[PXA2XX_DAI_SSP3],
++ .codec_dai = &pcap2_dai[PCAP2_MONO_DAI],
++// .init = ezx_machine_init, /* the stereo call already registered our controls */
++ .ops = &ezx_ops,
++},
++{
++ .name = "PCAP2 BP",
++ .stream_name = "BP Audio",
++ .cpu_dai = &bp_dai,
++ .codec_dai = &pcap2_dai[PCAP2_BP_DAI],
++},
++};
++
++/* template audio machine driver */
++static struct snd_soc_machine snd_soc_machine_ezx = {
++ .name = "Motorola EZX",
++// .probe
++// .remove
++// .suspend_pre
++// .resume_post
++ .dai_link = ezx_dai,
++ .num_links = ARRAY_SIZE(ezx_dai),
++};
++
++/* template audio subsystem */
++static struct snd_soc_device ezx_snd_devdata = {
++ .machine = &snd_soc_machine_ezx,
++ .platform = &pxa2xx_soc_platform,
++ .codec_dev = &soc_codec_dev_pcap2,
++};
++
++static struct platform_device *ezx_snd_device;
++
++static int __init ezx_init(void)
++{
++ int ret;
++ ezx_snd_device = platform_device_alloc("soc-audio", -1);
++ if (!ezx_snd_device)
++ return -ENOMEM;
++
++ platform_set_drvdata(ezx_snd_device, &ezx_snd_devdata);
++ ezx_snd_devdata.dev = &ezx_snd_device->dev;
++ ret = platform_device_add(ezx_snd_device);
++
++ if (ret)
++ platform_device_put(ezx_snd_device);
++ /* configure gpio for ssp3 */
++ pxa_gpio_mode(GPIO83_SFRM3_MD); /* SFRM */
++ pxa_gpio_mode(GPIO81_STXD3_MD); /* TXD */
++ pxa_gpio_mode(GPIO52_SCLK3_MD); /* SCLK */
++ pxa_gpio_mode(GPIO89_SRXD3_MD); /* RXD */
++
++ /* configure gpio for ssp2 */
++ pxa_gpio_mode(37 | GPIO_IN); /* SFRM */
++ pxa_gpio_mode(38 | GPIO_IN); /* TXD */
++ pxa_gpio_mode(22 | GPIO_IN); /* SCLK */
++ pxa_gpio_mode(88 | GPIO_IN); /* RXD */
++
++ pxa_gpio_mode(GPIO_HW_ATTENUATE_A780 | GPIO_OUT);
++ pxa_gpio_set_value(GPIO_HW_ATTENUATE_A780, 1);
++
++ /* request jack irq */
++ request_irq(EZX_IRQ_HEADJACK, &jack_irq, SA_INTERRUPT, "headphone jack", NULL);
++ request_irq(EZX_IRQ_MIC, &jack_irq, SA_INTERRUPT, "mic jack", NULL);
++
++ return ret;
++}
++
++static void __exit ezx_exit(void)
++{
++ free_irq(EZX_IRQ_HEADJACK, NULL);
++ free_irq(EZX_IRQ_MIC, NULL);
++ platform_device_unregister(ezx_snd_device);
++}
++
++module_init(ezx_init);
++module_exit(ezx_exit);
++
+Index: linux-2.6.21/sound/soc/codecs/Makefile
+===================================================================
+--- linux-2.6.21.orig/sound/soc/codecs/Makefile 2007-09-07 12:13:43.000000000 -0300
++++ linux-2.6.21/sound/soc/codecs/Makefile 2007-09-07 12:13:49.000000000 -0300
+@@ -2,8 +2,10 @@
+ snd-soc-wm8731-objs := wm8731.o
+ snd-soc-wm8750-objs := wm8750.o
+ snd-soc-wm9712-objs := wm9712.o
++snd-soc-pcap2-objs := pcap2.o
+
+ obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o
+ obj-$(CONFIG_SND_SOC_WM8731) += snd-soc-wm8731.o
+ obj-$(CONFIG_SND_SOC_WM8750) += snd-soc-wm8750.o
+ obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o
++obj-$(CONFIG_SND_SOC_PCAP2) += snd-soc-pcap2.o
+Index: linux-2.6.21/sound/soc/codecs/Kconfig
+===================================================================
+--- linux-2.6.21.orig/sound/soc/codecs/Kconfig 2007-09-07 12:13:43.000000000 -0300
++++ linux-2.6.21/sound/soc/codecs/Kconfig 2007-09-07 12:13:49.000000000 -0300
+@@ -13,3 +13,7 @@
+ config SND_SOC_WM9712
+ tristate
+ depends on SND_SOC
++
++config SND_SOC_PCAP2
++ tristate
++ depends on SND_SOC && EZX_PCAP
+Index: linux-2.6.21/sound/soc/pxa/Makefile
+===================================================================
+--- linux-2.6.21.orig/sound/soc/pxa/Makefile 2007-09-07 12:13:43.000000000 -0300
++++ linux-2.6.21/sound/soc/pxa/Makefile 2007-09-07 12:13:49.000000000 -0300
+@@ -14,9 +14,10 @@
+ snd-soc-poodle-objs := poodle.o
+ snd-soc-tosa-objs := tosa.o
+ snd-soc-spitz-objs := spitz.o
++snd-soc-ezx-objs := ezx.o
+
+ obj-$(CONFIG_SND_PXA2XX_SOC_CORGI) += snd-soc-corgi.o
+ obj-$(CONFIG_SND_PXA2XX_SOC_POODLE) += snd-soc-poodle.o
+ obj-$(CONFIG_SND_PXA2XX_SOC_TOSA) += snd-soc-tosa.o
+ obj-$(CONFIG_SND_PXA2XX_SOC_SPITZ) += snd-soc-spitz.o
+-
++obj-$(CONFIG_SND_PXA2XX_SOC_EZX) += snd-soc-ezx.o
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-backlight.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-backlight.patch
index 7054ef549b..c0284e3a1f 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-backlight.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-backlight.patch
@@ -5,8 +5,8 @@
Index: linux-2.6.21/drivers/video/backlight/Kconfig
===================================================================
---- linux-2.6.21.orig/drivers/video/backlight/Kconfig 2007-06-02 20:03:06.000000000 -0300
-+++ linux-2.6.21/drivers/video/backlight/Kconfig 2007-06-02 20:26:49.000000000 -0300
+--- linux-2.6.21.orig/drivers/video/backlight/Kconfig 2007-08-01 19:38:48.000000000 -0300
++++ linux-2.6.21/drivers/video/backlight/Kconfig 2007-08-01 20:00:56.000000000 -0300
@@ -63,3 +63,12 @@
help
If you have a Frontpath ProGear say Y to enable the
@@ -22,8 +22,8 @@ Index: linux-2.6.21/drivers/video/backlight/Kconfig
+
Index: linux-2.6.21/drivers/video/backlight/Makefile
===================================================================
---- linux-2.6.21.orig/drivers/video/backlight/Makefile 2007-06-02 20:03:06.000000000 -0300
-+++ linux-2.6.21/drivers/video/backlight/Makefile 2007-06-02 20:26:49.000000000 -0300
+--- linux-2.6.21.orig/drivers/video/backlight/Makefile 2007-08-01 19:38:48.000000000 -0300
++++ linux-2.6.21/drivers/video/backlight/Makefile 2007-08-01 20:00:56.000000000 -0300
@@ -6,3 +6,4 @@
obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o
@@ -32,7 +32,7 @@ Index: linux-2.6.21/drivers/video/backlight/Makefile
Index: linux-2.6.21/drivers/video/backlight/ezx_bl.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/drivers/video/backlight/ezx_bl.c 2007-06-02 20:26:49.000000000 -0300
++++ linux-2.6.21/drivers/video/backlight/ezx_bl.c 2007-08-01 20:00:56.000000000 -0300
@@ -0,0 +1,142 @@
+/*
+ * Backlight Driver for Motorola A780 and E680(i) GSM Phones.
@@ -178,9 +178,9 @@ Index: linux-2.6.21/drivers/video/backlight/ezx_bl.c
+MODULE_LICENSE("GPL");
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-02 20:19:44.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-02 20:26:49.000000000 -0300
-@@ -67,6 +67,12 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-08-01 19:39:02.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-08-01 20:00:56.000000000 -0300
+@@ -65,6 +65,12 @@
#endif
EXPORT_SYMBOL(ezx_backlight_power);
@@ -190,13 +190,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
+ .id = -1,
+};
+
- /* SSP */
- struct platform_device ezxssp_device = {
- .name = "ezx-ssp",
-@@ -179,6 +185,7 @@
+ /* OHCI Controller */
+ static int ezx_ohci_init(struct device *dev)
+ {
+@@ -121,6 +127,7 @@
+
+ static struct platform_device *devices[] __initdata = {
&ezxbp_device,
- &ezxpcap_device,
- &ezxemu_device,
+ &ezxbacklight_device,
};
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-bp.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-bp.patch
index a0b3b61b12..8e8abcb738 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-bp.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-bp.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-02 14:46:25.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-02 20:03:12.000000000 -0300
-@@ -100,9 +100,41 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-29 01:07:18.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-08-16 15:52:21.000000000 -0300
+@@ -86,8 +86,40 @@
.init = ezx_ohci_init,
};
@@ -39,15 +39,14 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
+
static struct platform_device *devices[] __initdata = {
- &ezxssp_device,
+ &ezxbp_device,
};
static int __init ezx_init(void)
Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-02 14:48:52.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-02 20:03:11.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-29 01:07:18.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-08-16 15:52:20.000000000 -0300
@@ -102,6 +102,9 @@
endchoice
@@ -61,8 +60,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c 2007-06-02 18:26:22.000000000 -0300
-@@ -0,0 +1,249 @@
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c 2007-08-16 15:52:43.000000000 -0300
+@@ -0,0 +1,262 @@
+/*
+ * BP handshake code for Motorola EZX phones
+ *
@@ -110,7 +109,16 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c
+{
+ if (pxa_gpio_get_value(GPIO_BB_WDI2) == 0) {
+ DEBUGP("BP request poweroff!\n");
-+// pm_power_off();
++ /*
++ * It is correct to power off here, the following line is
++ * commented out because e680 lowers WDI2 when BP is in
++ * flash mode, otherwise WDI2 is used to detect low
++ * battery. You can safely uncomment this line if you are
++ * using this kernel with BP in normal mode.
++ */
++#ifndef CONFIG_PXA_EZX_E680
++ pm_power_off();
++#endif
+ }
+}
+
@@ -186,6 +194,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c
+ if (!bp_handshake_passed()) {
+ handshake();
+ if (bp_handshake_passed()) {
++ /* FIXME: (test) try to not disable irq_wdi2 and drain battery */
+ disable_irq(bp->irq_wdi2);
+
+ /* set bp_rdy handle for usb ipc */
@@ -202,7 +211,10 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c
+static irqreturn_t bp_wdi2_handler(int irq, void *dev_id)
+{
+ DEBUGP("BP request poweroff!\n");
-+// pm_power_off();
++ /* same case as check_power_off() */
++#ifndef CONFIG_PXA_EZX_E680
++ pm_power_off();
++#endif
+ return IRQ_HANDLED;
+}
+
@@ -314,8 +326,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c
+
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-02 14:49:50.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-02 20:03:11.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-29 01:07:18.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-08-16 15:52:20.000000000 -0300
@@ -24,6 +24,7 @@
obj-$(CONFIG_PXA_EZX_E2) += ezx-e2.o
obj-$(CONFIG_PXA_EZX_A1200) += ezx-a1200.o
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch
index c0e9435723..653e814fb4 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S
===================================================================
---- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-06-02 14:46:22.000000000 -0300
-+++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-06-02 14:46:25.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-06-28 16:51:44.000000000 -0300
++++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-06-28 16:51:50.000000000 -0300
@@ -53,3 +53,6 @@
str r1, [r0, #0x18]
#endif
@@ -11,8 +11,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S
+#endif
Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-02 14:46:22.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-02 14:48:52.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-28 16:51:44.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-28 20:54:54.000000000 -0300
@@ -37,6 +37,10 @@
bool "Keith und Koep Trizeps4 DIMM-Module"
select PXA27x
@@ -68,13 +68,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
endif
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-02 14:46:22.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-02 14:49:50.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-28 16:51:44.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-28 20:54:54.000000000 -0300
@@ -18,6 +18,12 @@
obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o
obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
obj-$(CONFIG_MACH_TOSA) += tosa.o
-+obj-$(CONFIG_PXA_EZX) += ezx.o ezx_ssp.o
++obj-$(CONFIG_PXA_EZX) += ezx.o
+obj-$(CONFIG_PXA_EZX_A780) += ezx-a780.o
+obj-$(CONFIG_PXA_EZX_E680) += ezx-e680.o
+obj-$(CONFIG_PXA_EZX_E2) += ezx-e2.o
@@ -86,8 +86,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-02 14:46:25.000000000 -0300
-@@ -0,0 +1,135 @@
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-28 20:54:54.000000000 -0300
+@@ -0,0 +1,118 @@
+/*
+ * ezx.c - Common code for EZX platform.
+ *
@@ -108,11 +108,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
+#include <asm/arch/pxafb.h>
+#include <asm/arch/pxa-regs.h>
+#include <asm/arch/ohci.h>
++#include <asm/arch/ezx.h>
+
+#include "generic.h"
-+#include "ezx.h"
-+
-+extern int ezx_ssp_set_machinfo(struct ezxssp_machinfo *);
+
+/* EZX PXA Framebuffer */
+void ezx_lcd_power(int on, struct fb_var_screeninfo *var)
@@ -156,18 +154,6 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
+#endif
+EXPORT_SYMBOL(ezx_backlight_power);
+
-+/* SSP */
-+struct platform_device ezxssp_device = {
-+ .name = "ezx-ssp",
-+ .id = -1,
-+};
-+
-+struct ezxssp_machinfo ezx_ssp_machinfo = {
-+ .port = 1,
-+ .cs_pcap = GPIO_SPI_CE,
-+ .clk_pcap = 1,
-+};
-+
+/* OHCI Controller */
+static int ezx_ohci_init(struct device *dev)
+{
@@ -192,15 +178,12 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
+
+
+static struct platform_device *devices[] __initdata = {
-+ &ezxssp_device,
+};
+
+static int __init ezx_init(void)
+{
+ CKEN = CKEN9_OSTIMER | CKEN22_MEMC;
+
-+ ezx_ssp_set_machinfo(&ezx_ssp_machinfo);
-+
+ pxa_gpio_mode(GPIO_ICL_FFRXD_MD);
+ pxa_gpio_mode(GPIO_ICL_FFTXD_MD);
+ pxa_gpio_mode(GPIO_ICL_FFCTS_MD);
@@ -226,7 +209,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-06-02 14:46:25.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-06-28 16:51:50.000000000 -0300
@@ -0,0 +1,225 @@
+/*
+ * linux/include/asm-arm/arch-pxa/ezx.h
@@ -455,8 +438,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h
+
Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
===================================================================
---- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-02 14:46:22.000000000 -0300
-+++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-02 14:46:25.000000000 -0300
+--- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-28 16:51:44.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-28 18:18:49.000000000 -0300
@@ -849,6 +849,8 @@
#define UP2OCR_HXOE (1 << 17) /* Host Port 2 Transceiver Output Enable */
#define UP2OCR_SEOS (1 << 24) /* Single-Ended Output Select */
@@ -572,8 +555,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h
#define PGSR2 __REG(0x40F00028) /* Power Manager GPIO Sleep State Register for GP[84-64] */
Index: linux-2.6.21/arch/arm/boot/compressed/head.S
===================================================================
---- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-06-02 14:46:22.000000000 -0300
-+++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-06-02 14:46:25.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-06-28 16:51:44.000000000 -0300
++++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-06-28 16:51:50.000000000 -0300
@@ -117,6 +117,9 @@
mov r0, r0
.endr
@@ -586,8 +569,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head.S
.word start @ absolute load/run zImage address
Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h
===================================================================
---- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-06-02 14:46:22.000000000 -0300
-+++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-06-02 14:46:25.000000000 -0300
+--- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-06-28 16:51:44.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-06-28 16:51:50.000000000 -0300
@@ -14,14 +14,14 @@
#define STUART ((volatile unsigned long *)0x40700000)
#define HWUART ((volatile unsigned long *)0x41600000)
@@ -606,155 +589,10 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h
}
/*
-Index: linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c 2007-06-02 14:46:25.000000000 -0300
-@@ -0,0 +1,126 @@
-+/*
-+ * SSP control code for Motorola EZX phones
-+ *
-+ * Copyright (c) 2007 Daniel Ribeiro <drwyrm@gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/slab.h>
-+#include <linux/delay.h>
-+#include <linux/platform_device.h>
-+#include <asm/hardware.h>
-+#include <asm/mach-types.h>
-+
-+#include <asm/arch/ssp.h>
-+#include <asm/arch/pxa-regs.h>
-+
-+#include "ezx.h"
-+
-+static DEFINE_SPINLOCK(ezx_ssp_lock);
-+static struct ssp_dev ezx_ssp_dev;
-+static struct ssp_state ezx_ssp_state;
-+static struct ezxssp_machinfo *ssp_machinfo;
-+
-+/* PCAP */
-+unsigned long ezx_ssp_pcap_putget(ulong data)
-+{
-+ unsigned long flag;
-+ u32 ret = 0;
-+
-+ spin_lock_irqsave(&ezx_ssp_lock, flag);
-+ if (ssp_machinfo->cs_pcap >= 0)
-+ GPCR(ssp_machinfo->cs_pcap) = GPIO_bit(ssp_machinfo->cs_pcap);
-+
-+ ssp_write_word(&ezx_ssp_dev,data);
-+ ssp_read_word(&ezx_ssp_dev, &ret);
-+
-+ if (ssp_machinfo->cs_pcap >= 0)
-+ GPSR(ssp_machinfo->cs_pcap) = GPIO_bit(ssp_machinfo->cs_pcap);
-+ spin_unlock_irqrestore(&ezx_ssp_lock, flag);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(ezx_ssp_pcap_putget);
-+
-+void __init ezx_ssp_set_machinfo(struct ezxssp_machinfo *machinfo)
-+{
-+ ssp_machinfo = machinfo;
-+}
-+
-+static int __init ezx_ssp_probe(struct platform_device *dev)
-+{
-+ int ret;
-+ /* PCAP init */
-+ pxa_gpio_mode(29|GPIO_ALT_FN_3_OUT);
-+ pxa_gpio_mode(GPIO24_SFRM_MD);
-+ pxa_gpio_mode(GPIO25_STXD_MD);
-+ pxa_gpio_mode(GPIO26_SRXD_MD);
-+
-+ /* Chip Select - Disable All */
-+ if (ssp_machinfo->cs_pcap >= 0)
-+ pxa_gpio_mode(ssp_machinfo->cs_pcap | GPIO_OUT | GPIO_DFLT_HIGH);
-+
-+ ret = ssp_init(&ezx_ssp_dev, ssp_machinfo->port, 0);
-+
-+ if (ret)
-+ printk(KERN_ERR "Unable to register SSP handler!\n");
-+ else {
-+ ssp_disable(&ezx_ssp_dev);
-+ ssp_config(&ezx_ssp_dev,
-+ (SSCR0_Motorola | SSCR0_DataSize(16) | SSCR0_EDSS),
-+ (SSCR1_TxTresh(1) | SSCR1_RxTresh(1)),
-+ 0, SSCR0_SerClkDiv(ssp_machinfo->clk_pcap));
-+ ssp_enable(&ezx_ssp_dev);
-+ }
-+
-+ return ret;
-+}
-+
-+static int ezx_ssp_remove(struct platform_device *dev)
-+{
-+ ssp_exit(&ezx_ssp_dev);
-+ return 0;
-+}
-+
-+static int ezx_ssp_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+ ssp_flush(&ezx_ssp_dev);
-+ ssp_save_state(&ezx_ssp_dev,&ezx_ssp_state);
-+
-+ return 0;
-+}
-+
-+static int ezx_ssp_resume(struct platform_device *dev)
-+{
-+ if (ssp_machinfo->cs_pcap >= 0)
-+ GPSR(ssp_machinfo->cs_pcap) = GPIO_bit(ssp_machinfo->cs_pcap);
-+ ssp_restore_state(&ezx_ssp_dev,&ezx_ssp_state);
-+ ssp_enable(&ezx_ssp_dev);
-+
-+ return 0;
-+}
-+
-+static struct platform_driver ezxssp_driver = {
-+ .probe = ezx_ssp_probe,
-+ .remove = ezx_ssp_remove,
-+ .suspend = ezx_ssp_suspend,
-+ .resume = ezx_ssp_resume,
-+ .driver = {
-+ .name = "ezx-ssp",
-+ },
-+};
-+
-+int __init ezx_ssp_init(void)
-+{
-+ return platform_driver_register(&ezxssp_driver);
-+}
-+
-+arch_initcall(ezx_ssp_init);
-Index: linux-2.6.21/arch/arm/mach-pxa/ezx.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.h 2007-06-02 14:46:25.000000000 -0300
-@@ -0,0 +1,9 @@
-+#include <asm/arch/ezx.h>
-+
-+/* SSP */
-+struct ezxssp_machinfo {
-+ int port;
-+ int cs_pcap;
-+ int clk_pcap;
-+};
-+
Index: linux-2.6.21/arch/arm/mm/init.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mm/init.c 2007-06-02 14:46:22.000000000 -0300
-+++ linux-2.6.21/arch/arm/mm/init.c 2007-06-02 14:46:25.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mm/init.c 2007-06-28 16:51:44.000000000 -0300
++++ linux-2.6.21/arch/arm/mm/init.c 2007-06-28 16:51:50.000000000 -0300
@@ -241,6 +241,10 @@
*/
reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT,
@@ -769,7 +607,7 @@ Index: linux-2.6.21/arch/arm/mm/init.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-02 14:46:25.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-28 20:53:01.000000000 -0300
@@ -0,0 +1,88 @@
+/*
+ * ezx-a780.c - Code specific to A780 GSM Phone.
@@ -792,9 +630,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
+#include <asm/mach/arch.h>
+#include <asm/arch/pxa-regs.h>
+#include <asm/arch/pxafb.h>
++#include <asm/arch/ezx.h>
+
+#include "generic.h"
-+#include "ezx.h"
+
+extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+extern void ezx_backlight_power(int);
@@ -862,7 +700,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-06-02 14:46:25.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-06-28 20:54:24.000000000 -0300
@@ -0,0 +1,70 @@
+/*
+ * ezx-e2.c - Code specific to E2 GSM Phone.
@@ -884,9 +722,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c
+#include <asm/mach/arch.h>
+#include <asm/arch/pxa-regs.h>
+#include <asm/arch/pxafb.h>
++#include <asm/arch/ezx.h>
+
+#include "generic.h"
-+#include "ezx.h"
+
+extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+extern void ezx_backlight_power(int);
@@ -937,7 +775,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-02 14:46:25.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-28 20:53:29.000000000 -0300
@@ -0,0 +1,87 @@
+/*
+ * ezx-e680.c - Code specific to E680 GSM Phone.
@@ -959,9 +797,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
+#include <asm/mach/arch.h>
+#include <asm/arch/pxa-regs.h>
+#include <asm/arch/pxafb.h>
++#include <asm/arch/ezx.h>
+
+#include "generic.h"
-+#include "ezx.h"
+
+extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+extern void ezx_backlight_power(int);
@@ -1029,7 +867,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 14:46:25.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-28 20:53:48.000000000 -0300
@@ -0,0 +1,70 @@
+/*
+ * ezx-a1200.c - Code specific to A1200 GSM Phone.
@@ -1051,9 +889,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
+#include <asm/mach/arch.h>
+#include <asm/arch/pxa-regs.h>
+#include <asm/arch/pxafb.h>
++#include <asm/arch/ezx.h>
+
+#include "generic.h"
-+#include "ezx.h"
+
+extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+extern void ezx_backlight_power(int);
@@ -1104,7 +942,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-06-02 14:48:08.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-06-28 20:54:07.000000000 -0300
@@ -0,0 +1,70 @@
+/*
+ * ezx-e6.c - Code specific to E6 GSM Phone.
@@ -1126,9 +964,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c
+#include <asm/mach/arch.h>
+#include <asm/arch/pxa-regs.h>
+#include <asm/arch/pxafb.h>
++#include <asm/arch/ezx.h>
+
+#include "generic.h"
-+#include "ezx.h"
+
+extern void ezx_lcd_power(int, struct fb_var_screeninfo *);
+extern void ezx_backlight_power(int);
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-emu.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-emu.patch
index 94581d4531..01ab60d9ec 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-emu.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-emu.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c 2007-06-02 20:32:34.000000000 -0300
-@@ -0,0 +1,215 @@
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c 2007-09-07 15:27:23.000000000 -0300
+@@ -0,0 +1,219 @@
+/*
+ * EMU Driver for Motorola EZX phones
+ *
@@ -27,6 +27,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+static struct pxa2xx_udc_mach_info ezx_udc_info;
+extern int ezx_pcap_bit_set(u_int32_t, u_int8_t);
+extern int ezx_pcap_read_bit(u_int32_t);
++static int emu_irq_usb4v;
++static int emu_irq_usb1v;
++
+
+#if defined CONFIG_EZX_EMU_USB
+#define emu_switch_to_default() emu_switch_to_usb()
@@ -38,6 +41,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+
+void emu_switch_to_usb(void)
+{
++ printk(KERN_NOTICE "EMU: Switching to USB\n");
+ pxa_gpio_mode(GPIO34_USB_P2_2_MD);
+ pxa_gpio_mode(GPIO35_USB_P2_1_MD);
+ pxa_gpio_mode(GPIO36_USB_P2_4_MD);
@@ -45,18 +49,19 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+ pxa_gpio_mode(GPIO40_USB_P2_5_MD);
+ pxa_gpio_mode(GPIO53_USB_P2_3_MD);
+ UP2OCR = 0x02000000;
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_RS232ENB, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_FSENB, 0);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_EN, 1);
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_RS232ENB, 1);
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_FSENB, 0);
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_VUSB_EN, 1);
+ clr_GPIO(GPIO_EMU_MUX1);
+ clr_GPIO(GPIO_EMU_MUX2);
+}
+
+void emu_switch_to_uart(void)
+{
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_EN,0);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_RS232ENB, 0);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_RS232_DIR, 1);
++ printk(KERN_NOTICE "EMU: Switching to UART\n");
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_VUSB_EN,0);
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_RS232ENB, 0);
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_RS232_DIR, 1);
+ set_GPIO(GPIO39_FFTXD);
+ pxa_gpio_mode(GPIO34_TXENB | GPIO_OUT);
+ set_GPIO(GPIO34_TXENB);
@@ -73,6 +78,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+
+void emu_switch_to_audio(int stereo)
+{
++ printk(KERN_NOTICE "EMU: Switching to audio(%s)\n", (stereo ? "stereo" : "mono"));
+ clr_GPIO(GPIO39_VPOUT);
+ if (stereo) {
+ pxa_gpio_mode(GPIO34_TXENB | GPIO_IN);
@@ -96,8 +102,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+
+void emu_switch_to_nothing(void)
+{
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_EN, 0);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_RS232ENB, 1);
++ printk(KERN_NOTICE "EMU: Switching to disconnected\n");
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_VUSB_EN, 0);
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_RS232ENB, 1);
+ pxa_gpio_mode(GPIO34_TXENB | GPIO_OUT);
+ set_GPIO(GPIO34_TXENB);
+ pxa_gpio_mode(GPIO35_XRXD | GPIO_IN);
@@ -112,11 +119,11 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+{
+ switch (irq) {
+ case EZX_IRQ_USB4V:
-+ if(ezx_pcap_read_bit(SSP_PCAP_ADJ_BIT_PSTAT_USBDET_4V))
++ if(ezx_pcap_read_bit(pbit(PCAP_REG_PSTAT, PCAP_IRQ_USB4V)))
+ emu_switch_to_default();
+ break;
+ case EZX_IRQ_USB1V:
-+ if(!ezx_pcap_read_bit(SSP_PCAP_ADJ_BIT_PSTAT_USBDET_1V))
++ if(!ezx_pcap_read_bit(pbit(PCAP_REG_PSTAT, PCAP_IRQ_USB1V)))
+ emu_switch_to_nothing();
+ break;
+ }
@@ -130,12 +137,23 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+ pxa_gpio_mode(GPIO_EMU_MUX1 | GPIO_OUT);
+ pxa_gpio_mode(GPIO_EMU_MUX2 | GPIO_OUT);
+
-+ request_irq(EZX_IRQ_USB4V, &emu_irq, SA_INTERRUPT, "usb 4v", NULL);
-+ request_irq(EZX_IRQ_USB1V, &emu_irq, SA_INTERRUPT, "usb 1v", NULL);
++ emu_irq_usb4v = platform_get_irq(dev, 0);
++ if(emu_irq_usb4v < 0) {
++ printk(KERN_ERR "Unable to get IRQ for USB4V!\n");
++ return emu_irq_usb4v;
++ }
++ emu_irq_usb1v = platform_get_irq(dev, 1);
++ if(emu_irq_usb1v < 0) {
++ printk(KERN_ERR "Unable to get IRQ for USB1V!\n");
++ return emu_irq_usb1v;
++ }
++
++ request_irq(emu_irq_usb4v, &emu_irq, SA_INTERRUPT, "usb 4v", NULL);
++ request_irq(emu_irq_usb1v, &emu_irq, SA_INTERRUPT, "usb 1v", NULL);
+
+ pxa_set_udc_info(&ezx_udc_info);
+
-+ if(ezx_pcap_read_bit(SSP_PCAP_ADJ_BIT_PSTAT_USBDET_4V))
++ if(ezx_pcap_read_bit(pbit(PCAP_REG_PSTAT, PCAP_IRQ_USB4V)))
+ emu_switch_to_default();
+ else
+ emu_switch_to_nothing();
@@ -145,21 +163,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+
+static int ezx_emu_remove(struct platform_device *dev)
+{
-+ free_irq(EZX_IRQ_USB4V, NULL);
-+ free_irq(EZX_IRQ_USB1V, NULL);
-+
-+ return 0;
-+}
-+
-+static int ezx_emu_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+ emu_switch_to_nothing();
-+ return 0;
-+}
++ free_irq(emu_irq_usb4v, NULL);
++ free_irq(emu_irq_usb1v, NULL);
+
-+static int ezx_emu_resume(struct platform_device *dev)
-+{
-+ emu_switch_to_default();
+ return 0;
+}
+
@@ -170,12 +176,12 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+ switch (cmd) {
+ case PXA2XX_UDC_CMD_DISCONNECT:
+ printk(KERN_NOTICE "USB cmd disconnect\n");
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PU,0);
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_USB_PU,0);
+ udc_connected_status = 0;
+ break;
+ case PXA2XX_UDC_CMD_CONNECT:
+ printk(KERN_NOTICE "USB cmd connect\n");
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PU,1);
++ ezx_pcap_bit_set(PCAP_BIT_BUSCTRL_USB_PU,1);
+ udc_connected_status = 1;
+ break;
+ }
@@ -194,8 +200,6 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+static struct platform_driver ezxemu_driver = {
+ .probe = ezx_emu_probe,
+ .remove = ezx_emu_remove,
-+ .suspend = ezx_emu_suspend,
-+ .resume = ezx_emu_resume,
+ .driver = {
+ .name = "ezx-emu",
+ .owner = THIS_MODULE,
@@ -220,19 +224,11 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c
+MODULE_LICENSE("GPL");
Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-02 20:32:32.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-02 20:32:34.000000000 -0300
-@@ -73,6 +73,7 @@
-
- endchoice
-
-+
- endif
-
- if PXA_EZX
-@@ -117,6 +118,28 @@
- config EZX_MCI_TF
- bool
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-07 11:32:26.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-07 15:34:08.000000000 -0300
+@@ -108,6 +108,28 @@
+ config EZX_PCAP
+ bool "PCAP Support"
+config EZX_EMU
+ bool "Motorola Enchanced Mini Usb"
@@ -259,50 +255,10 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
endif
endmenu
-Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
-===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-02 20:32:28.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-02 20:32:34.000000000 -0300
-@@ -150,11 +150,35 @@
- .resource = ezxpcap_resources,
- };
-
-+/* EMU */
-+static struct resource ezxemu_resources[] = {
-+ [0] = {
-+ .start = EZX_IRQ_USB4V,
-+ .end = EZX_IRQ_USB4V,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+ [1] = {
-+ .start = EZX_IRQ_USB1V,
-+ .end = EZX_IRQ_USB1V,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+struct platform_device ezxemu_device = {
-+ .name = "ezx-emu",
-+ .id = -1,
-+ .dev = {
-+ .parent = &ezxpcap_device.dev,
-+ },
-+ .num_resources = ARRAY_SIZE(ezxemu_resources),
-+ .resource = ezxemu_resources,
-+};
-
- static struct platform_device *devices[] __initdata = {
- &ezxssp_device,
- &ezxbp_device,
- &ezxpcap_device,
-+ &ezxemu_device,
- };
-
- /* PM */
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-02 20:32:28.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-02 20:32:34.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-07 11:32:26.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-07 15:34:08.000000000 -0300
@@ -26,6 +26,7 @@
obj-$(CONFIG_PXA_EZX_E6) += ezx-e6.o
obj-$(CONFIG_EZX_BP) += ezx-bp.o
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch
new file mode 100644
index 0000000000..f21894e904
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch
@@ -0,0 +1,342 @@
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c 2007-09-09 13:33:19.000000000 -0300
+@@ -0,0 +1,270 @@
++/*
++ * EZX EOC Driver for Motorola EZX phones
++ *
++ * Copyright (C) 2007 Alex Zhang <celeber2@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/i2c.h>
++#include <linux/platform_device.h>
++
++#include <asm/arch/hardware.h>
++#include <asm/arch/pxa-regs.h>
++#include <asm/arch/ezx.h>
++
++#include "ezx-eoc.h"
++
++#if 1
++#define EOC_DBG printk
++#else
++#define EOC_DBG(x, args...)
++#endif
++
++#define EOC_REG_ADDR_SIZE 1
++#define EOC_REG_DATA_SIZE 3
++
++struct ezx_eoc_platform_data *pdata;
++static int eoc_func = EOC_FUNC_USB_NET;
++static const char eoc_i2c_driver_name[] = "ezx-eoc";
++
++/* Addresses to scan */
++static unsigned short normal_i2c[] = {
++ 0x17, /* Address for version 2.0 and above */
++ // 0x7C, /* Address for versions prior too 2.0 */
++ I2C_CLIENT_END
++};
++
++/* I2C Magic */
++I2C_CLIENT_INSMOD;
++
++static int ezx_eoc_attach_adapter(struct i2c_adapter *adapter);
++static int ezx_eoc_detect(struct i2c_adapter *adapter, int address, int kind);
++static int ezx_eoc_detach_client(struct i2c_client *client);
++
++static struct i2c_client *eoc_i2c_client = NULL;
++
++static struct i2c_driver eoc_i2c_driver = {
++ .driver = {
++ .name = (char *)eoc_i2c_driver_name,
++ },
++ .id = I2C_DRIVERID_EEPROM,
++ .attach_adapter = ezx_eoc_attach_adapter,
++ .detach_client = ezx_eoc_detach_client,
++};
++
++int eoc_reg_read(int reg, unsigned int *reg_value)
++{
++ unsigned char reg_num = reg;
++ unsigned char value[EOC_REG_DATA_SIZE];
++ int retval;
++
++ struct i2c_msg msgs[2] =
++ {
++ { 0, 0, EOC_REG_ADDR_SIZE, &reg_num },
++ { 0, I2C_M_RD, EOC_REG_DATA_SIZE, value }
++ };
++
++ /* check if we have initialized */ /*not necessary --WM
++ if (eoc_i2c_client == NULL)
++ {
++ EOC_DBG("eoc_reg_read: not initialized\n");
++ return -EINVAL;
++ }
++*/
++ msgs[0].addr = msgs[1].addr = eoc_i2c_client->addr;
++
++ /* transfer message to client */
++ retval = i2c_transfer(eoc_i2c_client->adapter, msgs, 2);
++ if (retval >= 0)
++ {
++ *reg_value = (value[2] << 0);
++ *reg_value |= (value[1] << 8);
++ *reg_value |= (value[0] << 16);
++ }
++ return retval;
++}
++EXPORT_SYMBOL_GPL(eoc_reg_read);
++
++int eoc_reg_write(int reg, unsigned int reg_value)
++{
++ unsigned char value[EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE];
++ int retval;
++
++ /* check if we have initialized */ /*not necessary --WM
++ if (eoc_i2c_client == NULL)
++ {
++ EOC_DBG("eoc_reg_write: not initialized\n");
++ return -EINVAL;
++ }
++*/
++ /* Copy the data into a buffer into the correct format */
++ value[0] = reg;
++ value[1] = (reg_value >> 16) & 0xFF;
++ value[2] = (reg_value >> 8) & 0xFF;
++ value[3] = (reg_value >> 0) & 0xFF;
++
++ /* Write the data to the EOC */
++ retval = i2c_master_send (eoc_i2c_client, value, EOC_REG_ADDR_SIZE + EOC_REG_DATA_SIZE);
++
++ return retval;
++}
++EXPORT_SYMBOL_GPL(eoc_reg_write);
++
++static void eoc_switch_to_usb(void)
++{
++ pxa_gpio_mode(GPIO34_USB_P2_2_MD);
++ pxa_gpio_mode(GPIO35_USB_P2_1_MD);
++ pxa_gpio_mode(GPIO36_USB_P2_4_MD);
++ pxa_gpio_mode(GPIO39_USB_P2_6_MD);
++ pxa_gpio_mode(GPIO40_USB_P2_5_MD);
++ pxa_gpio_mode(GPIO53_USB_P2_3_MD);
++ EOC_DBG("ALEX;*********************************************emu_switch_to_usb;\n");
++}
++
++static void eoc_switch_to_nothing(void)
++{
++ pxa_gpio_mode(GPIO34_TXENB | GPIO_OUT);
++ set_GPIO(GPIO34_TXENB);
++ pxa_gpio_mode(GPIO35_XRXD | GPIO_IN);
++ pxa_gpio_mode(GPIO36_VMOUT | GPIO_IN);
++ pxa_gpio_mode(GPIO39_VPOUT | GPIO_IN);
++ pxa_gpio_mode(GPIO40_VPIN | GPIO_IN);
++ pxa_gpio_mode(GPIO53_VMIN | GPIO_IN);
++}
++
++static void eoc_switch_to_default(void)
++{
++ switch (eoc_func) {
++ case EOC_FUNC_USB_NET:
++ eoc_switch_to_usb();
++ break;
++ case EOC_FUNC_NOTHING:
++ eoc_switch_to_nothing();
++ break;
++ }
++}
++
++
++static int ezx_eoc_attach_adapter(struct i2c_adapter *adapter)
++{
++ return i2c_probe(adapter, &addr_data, ezx_eoc_detect);
++}
++
++/* This function is called by i2c_probe */
++static int ezx_eoc_detect(struct i2c_adapter *adapter, int address, int kind)
++{
++ struct i2c_client *new_client;
++ int err = 0;
++
++ if (!(new_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL)))
++ return -ENOMEM;
++
++ new_client->addr = address;
++ new_client->adapter = adapter;
++ new_client->driver = &eoc_i2c_driver;
++ new_client->flags = 0;
++ strlcpy(new_client->name, eoc_i2c_driver_name, I2C_NAME_SIZE);
++
++ if ((err = i2c_attach_client(new_client))) {
++ kfree(new_client);
++ return err;
++ }
++
++ eoc_i2c_client = new_client;
++
++ if (pdata && pdata->init) {
++ pdata->init();
++ }
++ else
++ return -EINVAL;
++
++ eoc_switch_to_default();
++
++ return 0;
++}
++
++static int ezx_eoc_detach_client(struct i2c_client *client)
++{
++ int err;
++
++ err = i2c_detach_client(client);
++ if (err)
++ return err;
++
++ return 0;
++}
++
++static int __init ezx_eoc_probe(struct platform_device *dev)
++{
++ int ret;
++
++ pdata = dev->dev.platform_data;
++
++ ret = i2c_add_driver(&eoc_i2c_driver);
++ if (ret != 0)
++ return -EINVAL;
++
++ /*
++ * I think we should save platform_data and call init and eoc_switch
++ * from ezx_eoc_detect, after client is setup.
++ * And there is no need for all the "check if initialised" checks if
++ * you assure that you only call read/write after the client is set.
++ * Probably, this was causing the crash on i2c-core too.
++ * --WM
++ */
++
++ /* FIXME: should set udc_info here -WM */
++ return 0;
++}
++
++static int ezx_eoc_remove(struct platform_device *dev)
++{
++ return i2c_del_driver(&eoc_i2c_driver);
++}
++
++static int ezx_eoc_suspend(struct platform_device *dev, pm_message_t state)
++{
++ eoc_switch_to_nothing();
++ return 0;
++}
++
++static int ezx_eoc_resume(struct platform_device *dev)
++{
++ eoc_switch_to_default();
++ return 0;
++}
++
++static struct platform_driver ezx_eoc_driver = {
++ .probe = ezx_eoc_probe,
++ .remove = ezx_eoc_remove,
++ .suspend = ezx_eoc_suspend,
++ .resume = ezx_eoc_resume,
++ .driver = {
++ .name = "ezx-eoc",
++ .owner = THIS_MODULE,
++ },
++};
++
++int __init ezx_eoc_init(void)
++{
++ return platform_driver_register(&ezx_eoc_driver);
++}
++
++void ezx_eoc_exit(void)
++{
++ return platform_driver_unregister(&ezx_eoc_driver);
++}
++
++MODULE_AUTHOR("Alex Zhang <celeber2@gmail.com>");
++MODULE_DESCRIPTION("EZX EOC I2C driver");
++MODULE_LICENSE("GPL");
++
++/* doesnt module_init work?? -WM */
++/*late_initcall(ezx_eoc_init);*/
++module_init(ezx_eoc_init);
++module_exit(ezx_eoc_exit);
+Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h 2007-09-07 22:15:52.000000000 -0300
+@@ -0,0 +1,33 @@
++/*
++ * linux/arch/arm/mach-pxa/ezx-eoc.h
++ *
++ * Copyright (C) Alex Zhang <celeber2@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __EZX_EOC_H__
++#define __EZX_EOC_H__
++
++enum {
++ POWER_IC_REG_EOC_INT_STATUS,
++ POWER_IC_REG_EOC_INT_MASK,
++ POWER_IC_REG_EOC_INT_SENSE,
++ POWER_IC_REG_EOC_POWER_CONTROL_0,
++ POWER_IC_REG_EOC_POWER_CONTROL_1,
++ POWER_IC_REG_EOC_CONN_CONTROL,
++ POWER_IC_REG_EOC_NUM
++};
++
++enum {
++ EOC_FUNC_NOTHING,
++ EOC_FUNC_USB_NET,
++};
++
++struct ezx_eoc_platform_data {
++ int (*init)(void);
++};
++
++#endif /* __EZX_EOC_H__ */
+Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-07 22:15:52.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-07 22:15:52.000000000 -0300
+@@ -108,6 +108,12 @@
+ config EZX_PCAP
+ bool "PCAP Support"
+
++config EZX_EOC
++ tristate "EOC i2c driver of Motorola EZX phones"
++ depends on I2C && EXPERIMENTAL && PXA_EZX_A1200
++ help
++ EOC i2c driver of Motorola EZX phones
++
+ config EZX_EMU
+ bool "Motorola Enchanced Mini Usb"
+ depends on EZX_PCAP
+Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
+===================================================================
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-07 22:15:52.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-07 22:15:52.000000000 -0300
+@@ -27,6 +27,7 @@
+ obj-$(CONFIG_EZX_BP) += ezx-bp.o
+ obj-$(CONFIG_EZX_PCAP) += ezx-pcap.o
+ obj-$(CONFIG_EZX_EMU) += ezx-emu.o
++obj-$(CONFIG_EZX_EOC) += ezx-eoc.o
+
+ # Support for blinky lights
+ led-y := leds.o
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-mtd-map.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-mtd-map.patch
index 7ef42f0ffc..c291f1aadf 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-mtd-map.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-mtd-map.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/drivers/mtd/maps/Kconfig
===================================================================
---- linux-2.6.21.orig/drivers/mtd/maps/Kconfig 2007-04-26 00:08:32.000000000 -0300
-+++ linux-2.6.21/drivers/mtd/maps/Kconfig 2007-04-26 20:49:33.000000000 -0300
-@@ -595,6 +595,28 @@
+--- linux-2.6.21.orig/drivers/mtd/maps/Kconfig 2007-08-31 22:27:53.000000000 -0300
++++ linux-2.6.21/drivers/mtd/maps/Kconfig 2007-08-31 23:04:18.000000000 -0300
+@@ -595,6 +595,34 @@
help
This enables access to the flash chip on the Sharp SL Series of PDAs.
@@ -21,9 +21,15 @@ Index: linux-2.6.21/drivers/mtd/maps/Kconfig
+config MTD_EZX_A780_ALTERNATE
+ bool "A780/E680 Alternate Mapping for BLOB2"
+
++config MTD_EZX_A1200
++ bool "A1200 Original Mapping"
++
+config MTD_EZX_E2
+ bool "E2 Original Mapping"
+
++config MTD_EZX_E6
++ bool "E6 Original Mapping"
++
+endchoice
+
+endif
@@ -33,8 +39,8 @@ Index: linux-2.6.21/drivers/mtd/maps/Kconfig
depends on MTD
Index: linux-2.6.21/drivers/mtd/maps/Makefile
===================================================================
---- linux-2.6.21.orig/drivers/mtd/maps/Makefile 2007-04-26 00:08:32.000000000 -0300
-+++ linux-2.6.21/drivers/mtd/maps/Makefile 2007-04-26 20:30:30.000000000 -0300
+--- linux-2.6.21.orig/drivers/mtd/maps/Makefile 2007-08-31 22:27:53.000000000 -0300
++++ linux-2.6.21/drivers/mtd/maps/Makefile 2007-08-31 23:04:18.000000000 -0300
@@ -72,3 +72,4 @@
obj-$(CONFIG_MTD_OMAP_NOR) += omap_nor.o
obj-$(CONFIG_MTD_MTX1) += mtx-1_flash.o
@@ -43,7 +49,7 @@ Index: linux-2.6.21/drivers/mtd/maps/Makefile
Index: linux-2.6.21/drivers/mtd/maps/ezx-flash.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/drivers/mtd/maps/ezx-flash.c 2007-04-26 20:30:30.000000000 -0300
++++ linux-2.6.21/drivers/mtd/maps/ezx-flash.c 2007-08-21 17:03:43.000000000 -0300
@@ -0,0 +1,227 @@
+/*
+ * $Id: $
@@ -122,7 +128,7 @@ Index: linux-2.6.21/drivers/mtd/maps/ezx-flash.c
+ .size = 0x00020000,
+ .offset = 0x00020000,
+ } , {
-+ .name = "Kernel 1",
++ .name = "Moto Kernel",
+ .size = 0x000e0000, // 896KB
+ .offset = 0x00040000,
+ } , {
@@ -130,11 +136,11 @@ Index: linux-2.6.21/drivers/mtd/maps/ezx-flash.c
+ .size = 0x01760000,
+ .offset = 0x00120000,
+ } , {
-+ .name = "Kernel 2",
++ .name = "OpenEZX Kernel",
+ .size = 0x00180000, // 1.5MB
+ .offset = 0x01880000,
+ } , {
-+ .name = "VFM_Filesystem",
++ .name = "ezxlocal",
+ .size = 0x005a0000,
+ .offset = 0x01a00000,
+ } , {
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-pcap.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-pcap.patch
index 6af6317a6e..604f8eb59b 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-pcap.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-pcap.patch
@@ -1,8 +1,8 @@
Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c 2007-06-07 21:39:37.000000000 -0300
-@@ -0,0 +1,472 @@
++++ linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c 2007-08-31 22:48:16.000000000 -0300
+@@ -0,0 +1,513 @@
+/* Driver for Motorola PCAP2 as present in EZX phones
+ *
+ * This is both a SPI device driver for PCAP itself, as well as
@@ -24,31 +24,60 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+#include <asm/hardware.h>
+#include <asm/mach-types.h>
+
++#include <asm/arch/ezx.h>
+#include <asm/arch/ssp.h>
+#include <asm/arch/pxa-regs.h>
+#include <asm/arch/ezx-pcap.h>
+#include <asm/arch/irqs.h>
+#include <asm/mach/irq.h>
+
-+#include "ezx.h"
-+
+#if 0
+#define DEBUGP(x, args...) printk(x, ## args)
+#else
+#define DEBUGP(x, args...)
+#endif
+
-+extern unsigned long ezx_ssp_pcap_putget(ulong);
++static DEFINE_SPINLOCK(ezx_ssp_lock);
++static struct ssp_dev ezx_ssp_dev;
++static struct ssp_state ezx_ssp_state;
++static struct pcap_platform_data *pcap_data;
++static int pcap_irq;
++
++static unsigned long ezx_ssp_pcap_putget(ulong data)
++{
++ unsigned long flag;
++ u32 ret = 0;
++
++ spin_lock_irqsave(&ezx_ssp_lock, flag);
++ if (pcap_data->cs >= 0) {
++ if (pcap_data->flags & PCAP_CS_AH)
++ GPSR(pcap_data->cs) = GPIO_bit(pcap_data->cs);
++ else
++ GPCR(pcap_data->cs) = GPIO_bit(pcap_data->cs);
++ }
++
++ ssp_write_word(&ezx_ssp_dev,data);
++ ssp_read_word(&ezx_ssp_dev, &ret);
++
++ if (pcap_data->cs >= 0) {
++ if(pcap_data->flags & PCAP_CS_AH)
++ GPCR(pcap_data->cs) = GPIO_bit(pcap_data->cs);
++ else
++ GPSR(pcap_data->cs) = GPIO_bit(pcap_data->cs);
++ }
++
++ spin_unlock_irqrestore(&ezx_ssp_lock, flag);
++
++ return ret;
++}
+
+int ezx_pcap_write(u_int8_t reg_num, u_int32_t value)
+{
-+ value &= SSP_PCAP_REGISTER_VALUE_MASK;
-+ value |= SSP_PCAP_REGISTER_WRITE_OP_BIT
-+ | (reg_num<<SSP_PCAP_REGISTER_ADDRESS_SHIFT);
++ value &= PCAP_REGISTER_VALUE_MASK;
++ value |= PCAP_REGISTER_WRITE_OP_BIT
++ | (reg_num<<PCAP_REGISTER_ADDRESS_SHIFT);
+
-+ local_irq_disable();
+ ezx_ssp_pcap_putget(value);
-+ local_irq_enable();
+
+ DEBUGP("pcap write r%x: 0x%08x\n", reg_num, value);
+ return 0;
@@ -57,12 +86,10 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+
+int ezx_pcap_read(u_int8_t reg_num, u_int32_t *value)
+{
-+ u_int32_t frame = SSP_PCAP_REGISTER_READ_OP_BIT
-+ | (reg_num<<SSP_PCAP_REGISTER_ADDRESS_SHIFT);
++ u_int32_t frame = PCAP_REGISTER_READ_OP_BIT
++ | (reg_num<<PCAP_REGISTER_ADDRESS_SHIFT);
+
-+ local_irq_disable();
+ *value = ezx_ssp_pcap_putget(frame);
-+ local_irq_enable();
+
+ DEBUGP("pcap read r%x: 0x%08x\n", reg_num, *value);
+ return 0;
@@ -73,9 +100,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+{
+ int ret;
+ u_int32_t tmp;
-+ u_int32_t bit = (sspPcapBit & SSP_PCAP_REGISTER_VALUE_MASK);
-+ u_int8_t reg_num = (sspPcapBit & SSP_PCAP_REGISTER_ADDRESS_MASK)
-+ >> SSP_PCAP_REGISTER_ADDRESS_SHIFT;
++ u_int32_t bit = (sspPcapBit & PCAP_REGISTER_VALUE_MASK);
++ u_int8_t reg_num = (sspPcapBit & PCAP_REGISTER_ADDRESS_MASK)
++ >> PCAP_REGISTER_ADDRESS_SHIFT;
+
+ ret = ezx_pcap_read(reg_num, &tmp);
+ if (ret < 0)
@@ -94,14 +121,14 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+{
+ int ret;
+ u_int32_t tmp;
-+ u_int8_t reg_num = (bit & SSP_PCAP_REGISTER_ADDRESS_MASK)
-+ >> SSP_PCAP_REGISTER_ADDRESS_SHIFT;
++ u_int8_t reg_num = (bit & PCAP_REGISTER_ADDRESS_MASK)
++ >> PCAP_REGISTER_ADDRESS_SHIFT;
+
+ ret = ezx_pcap_read(reg_num, &tmp);
+ if (ret < 0)
+ return ret;
+
-+ return tmp & (bit & SSP_PCAP_REGISTER_VALUE_MASK);
++ return tmp & (bit & PCAP_REGISTER_VALUE_MASK);
+}
+EXPORT_SYMBOL_GPL(ezx_pcap_read_bit);
+
@@ -111,11 +138,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+static struct proc_dir_entry *proc_pcap;
+
+char *pcap_registers[] = {
-+ "ISR\t", "MSR\t", "PSTAT\t", NULL, NULL, NULL, "VREG2\t", "VREG\t",
-+ "BATT_DAC", "ADC1\t", "ADC2\t", "AUD_CODEC", "AUD_RX_AMPS",
-+ "AUD_ST_DAC", NULL, NULL, NULL, NULL, NULL, NULL, "BUSCTRL\t",
-+ "PERIPH\t", NULL, NULL, "LOWPWR\t", NULL, "AUD_TX_AMPS", "GP\t",
-+ NULL, NULL, NULL, NULL, NULL
++ "ISR\t", "MSR\t", "PSTAT\t", "INT_SEL\t", "SWCTRL\t", "VREG1\t",
++ "VREG2\t", "VREG\t", "BATT_DAC", "ADC1\t", "ADC2\t", "AUD_CODEC",
++ "RX_AUD_AMPS", "ST_DAC\t", "RTC_TOD\t", "RTC_TODA", "RTC_DAY\t",
++ "RTC_DAYA", "MTRTMR\t", "PWRCTRL\t", "BUSCTRL\t", "PERIPH\t",
++ "AUXVREG_MASK", "VENDOR_REV", "LOWPWR_CTRL", "PERIPH_MASK",
++ "TX_AUD_AMPS", "GP\t",
++ NULL, NULL, NULL, NULL
+};
+
+static int pcap_read_proc(char *page, char **start, off_t off, int count,
@@ -151,82 +180,32 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+{
+ u_int32_t tmp;
+
-+ ezx_pcap_read(SSP_PCAP_ADJ_AUX_VREG_REGISTER, &tmp);
++ ezx_pcap_read(PCAP_REG_AUXVREG, &tmp);
+
-+ tmp &= (~SSP_PCAP_VIBRATOR_VOLTAGE_LEVEL_MASK);
-+ tmp |= value;
++ tmp &= ~PCAP_AUXVREG_V_VIB_MASK;
++ tmp |= ((value << PCAP_AUXVREG_V_VIB_SHIFT) & PCAP_AUXVREG_V_VIB_MASK);
+
-+ ezx_pcap_write(SSP_PCAP_ADJ_AUX_VREG_REGISTER, tmp);
++ ezx_pcap_write(PCAP_REG_AUXVREG, tmp);
+}
+EXPORT_SYMBOL_GPL(ezx_pcap_vibrator_level);
+
-+static int __init pcap_init(void)
-+{
-+ /* initialize registers */
-+#warning FIXME: pcap_init still chip level
-+ /* implement a per board pcap init reg array? */
-+
-+ ezx_pcap_write(SSP_PCAP_ADJ_MSR_REGISTER, PCAP_MASK_ALL_INTERRUPT);
-+ ezx_pcap_write(SSP_PCAP_ADJ_ISR_REGISTER, PCAP_CLEAR_INTERRUPT_REGISTER);
-+
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A1CTRL, 1);
-+// ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL3);
-+
-+ /* set SW1 sleep to keep SW1 1.3v in sync mode */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE10, 0);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE11, 0);
-+ /* SW1 active in sync mode */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE00, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE01, 0);
-+ /* at SW1 -core voltage to 1.30V */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW10_DVS, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW11_DVS, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW12_DVS, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW13_DVS, 0);
-+
-+ /* when STANDY2 PIN ACTIVE (high) set V3-- sram V8 -- pll off */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V3_STBY, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V3_LOWPWR, 0);
-+
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V8_STBY, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V8_LOWPWR, 0);
-+
-+ /* when STANDY2 PIN ACTIVE (high) set V4-- lcd only for e680 V6 ---
-+ * camera for e680 */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V4_STBY, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V4_LOWPWR, 1);
-+
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V6_STBY, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V6_LOWPWR, 0);
-+
-+ /* set Vc to low power mode when AP sleep */
-+ //SSP_PCAP_bit_set( SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VC_STBY);
-+
-+ /* set VAUX2 to voltage 2.775V and low power mode when AP sleep */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_1, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_0, 0);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_STBY, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_LOWPWR, 1);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, 1);
-+
-+// PGSR(GPIO34_TXENB) |= GPIO_bit(GPIO34_TXENB);
-+
-+ return 0;
-+}
+/* MMC/SD specific functions */
+
+void ezx_pcap_mmcsd_voltage(u_int32_t bits)
+{
+ unsigned int tmp;
-+ ezx_pcap_read(SSP_PCAP_ADJ_AUX_VREG_REGISTER, &tmp);
-+#if defined(CONFIG_EZX_MCI_SD)
-+ tmp &= 0xffffff9f; /* zero all vaux2 bits */
-+ tmp |= (bits & 0x3) << 5;
-+#elif defined(CONFIG_EZX_MCI_TF)
-+ tmp &= 0xfffff0ff; /* zero all vaux3 bits */
-+ tmp |= (bits & 0xf) << 8;
-+#endif
-+ ezx_pcap_write(SSP_PCAP_ADJ_AUX_VREG_REGISTER, tmp);
++ ezx_pcap_read(PCAP_REG_AUXVREG, &tmp);
++ if (pcap_data->flags & PCAP_MCI_SD) {
++ tmp &= ~PCAP_AUXVREG_VAUX2_MASK;
++ tmp |= ((bits << PCAP_AUXVREG_VAUX2_SHIFT) &
++ PCAP_AUXVREG_VAUX2_MASK);
++ }
++ else if (pcap_data->flags & PCAP_MCI_TF) {
++ tmp &= ~PCAP_AUXVREG_VAUX3_MASK;
++ tmp |= ((bits << PCAP_AUXVREG_VAUX3_SHIFT) &
++ PCAP_AUXVREG_VAUX3_MASK);
++ }
++ ezx_pcap_write(PCAP_REG_AUXVREG, tmp);
+}
+EXPORT_SYMBOL(ezx_pcap_mmcsd_voltage);
+
@@ -234,11 +213,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+{
+ if (on > 0) on = 1;
+ else on = 0;
-+#if defined(CONFIG_EZX_MCI_SD)
-+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, on);
-+#elif defined(CONFIG_EZX_MCI_TF)
-+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_EN, on);
-+#endif
++
++ if (pcap_data->flags & PCAP_MCI_SD)
++ return ezx_pcap_bit_set(PCAP_BIT_AUXVREG_VAUX2_EN, on);
++ else if (pcap_data->flags & PCAP_MCI_TF)
++ return ezx_pcap_bit_set(PCAP_BIT_AUXVREG_VAUX3_EN, on);
++ else
++ return -ENODEV;
+}
+EXPORT_SYMBOL_GPL(ezx_pcap_mmcsd_power);
+
@@ -248,67 +229,85 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+static unsigned int pcap2irq[] = {
+ [0] = EZX_IRQ_ADCDONE,
+ [1] = EZX_IRQ_TS,
-+ [2] = 0, /* 1HZ */
-+ [3] = 0, /* WH */
-+ [4] = 0, /* WL */
-+ [5] = 0, /* TODA */
++ [2] = EZX_IRQ_1HZ, /* 1HZ */
++ [3] = EZX_IRQ_WH, /* WH */
++ [4] = EZX_IRQ_WL, /* WL */
++ [5] = EZX_IRQ_TODA, /* TODA */
+ [6] = EZX_IRQ_USB4V,
-+ [7] = 0, /* ONOFF */
-+ [8] = 0, /* ONOFF2 */
++ [7] = EZX_IRQ_ONOFF, /* ONOFF */
++ [8] = EZX_IRQ_ONOFF2, /* ONOFF2 */
+ [9] = EZX_IRQ_USB1V,
-+ [10] = 0, /* MOBPORT */
++ [10] = EZX_IRQ_MOBPORT, /* MOBPORT */
+ [11] = EZX_IRQ_MIC,
+ [12] = EZX_IRQ_HEADJACK,
-+ [13] = 0, /* ST */
-+ [14] = 0, /* PC */
-+ [15] = 0, /* WARM */
-+ [16] = 0, /* EOL */
-+ [17] = 0, /* CLK */
-+ [18] = 0, /* SYSRST */
++ [13] = EZX_IRQ_ST, /* ST */
++ [14] = EZX_IRQ_PC, /* PC */
++ [15] = EZX_IRQ_WARM, /* WARM */
++ [16] = EZX_IRQ_EOL, /* EOL */
++ [17] = EZX_IRQ_CLK, /* CLK */
++ [18] = EZX_IRQ_SYSRST, /* SYSRST */
+ [19] = 0,
+ [20] = EZX_IRQ_ADCDONE2,
-+ [21] = 0, /* SOFTRESET */
-+ [22] = 0, /* MNEXB */
++ [21] = EZX_IRQ_SOFTRESET, /* SOFTRESET */
++ [22] = EZX_IRQ_MNEXB, /* MNEXB */
+};
+
+/* Array indexed by IRQ NUMBER, returns PCAP absolute value */
+static unsigned int irq2pcap[] = {
-+ [EZX_IRQ_USB4V] = SSP_PCAP_ADJ_BIT_ISR_USB4VI,
-+ [EZX_IRQ_USB1V] = SSP_PCAP_ADJ_BIT_ISR_USB1VI,
-+ [EZX_IRQ_HEADJACK] = SSP_PCAP_ADJ_BIT_ISR_A1I,
-+ [EZX_IRQ_MIC] = SSP_PCAP_ADJ_BIT_ISR_MB2I,
-+ [EZX_IRQ_ADCDONE] = SSP_PCAP_ADJ_BIT_ISR_ADCDONEI,
-+ [EZX_IRQ_TS] = SSP_PCAP_ADJ_BIT_ISR_TSI,
-+ [EZX_IRQ_ADCDONE2] = SSP_PCAP_ADJ_BIT_ISR_ADCDONE2I,
++ [EZX_IRQ_MNEXB] = PCAP_IRQ_MNEXB,
++ [EZX_IRQ_SOFTRESET] = PCAP_IRQ_SOFTRESET,
++ [EZX_IRQ_SYSRST] = PCAP_IRQ_SYSRST,
++ [EZX_IRQ_CLK] = PCAP_IRQ_CLK,
++ [EZX_IRQ_EOL] = PCAP_IRQ_EOL,
++ [EZX_IRQ_WARM] = PCAP_IRQ_WARM,
++ [EZX_IRQ_PC] = PCAP_IRQ_PC,
++ [EZX_IRQ_ST] = PCAP_IRQ_ST,
++ [EZX_IRQ_MOBPORT] = PCAP_IRQ_MOBPORT,
++ [EZX_IRQ_ONOFF2] = PCAP_IRQ_ONOFF2,
++ [EZX_IRQ_ONOFF] = PCAP_IRQ_ONOFF,
++ [EZX_IRQ_TODA] = PCAP_IRQ_TODA,
++ [EZX_IRQ_WL] = PCAP_IRQ_WL,
++ [EZX_IRQ_WH] = PCAP_IRQ_WH,
++ [EZX_IRQ_1HZ] = PCAP_IRQ_1HZ,
++ [EZX_IRQ_USB4V] = PCAP_IRQ_USB4V,
++ [EZX_IRQ_USB1V] = PCAP_IRQ_USB1V,
++ [EZX_IRQ_HEADJACK] = PCAP_IRQ_A1,
++ [EZX_IRQ_MIC] = PCAP_IRQ_MB2,
++ [EZX_IRQ_TS] = PCAP_IRQ_TS,
++ [EZX_IRQ_ADCDONE] = PCAP_IRQ_ADCDONE,
++ [EZX_IRQ_ADCDONE2] = PCAP_IRQ_ADCDONE2,
+};
+
+static void pcap_ack_irq(unsigned int irq)
+{
+ DEBUGP("pcap_ack_irq: %u\n", irq);
-+ ezx_pcap_write(SSP_PCAP_ADJ_ISR_REGISTER, irq2pcap[irq]);
++ ezx_pcap_write(PCAP_REG_ISR, irq2pcap[irq]);
+}
+
+static void pcap_mask_irq(unsigned int irq)
+{
+ u_int32_t reg;
++ unsigned long flag;
+
++ spin_lock_irqsave(&ezx_ssp_lock, flag);
+ DEBUGP("pcap_mask_irq: %u\n", irq);
-+
-+ /* this needs to be atomic... but we're not on SMP so it is */
-+ ezx_pcap_read(SSP_PCAP_ADJ_MSR_REGISTER, &reg);
++ ezx_pcap_read(PCAP_REG_MSR, &reg);
+ reg |= irq2pcap[irq];
-+ ezx_pcap_write(SSP_PCAP_ADJ_MSR_REGISTER, reg);
++ ezx_pcap_write(PCAP_REG_MSR, reg);
++ spin_unlock_irqrestore(&ezx_ssp_lock, flag);
+}
+
+static void pcap_unmask_irq(unsigned int irq)
+{
+ u_int32_t tmp;
-+ DEBUGP("pcap_unmask_irq: %u\n", irq);
++ unsigned long flag;
+
-+ /* this needs to be atomic... but we're not on SMP so it is */
-+ ezx_pcap_read(SSP_PCAP_ADJ_MSR_REGISTER, &tmp);
++ spin_lock_irqsave(&ezx_ssp_lock, flag);
++ DEBUGP("pcap_unmask_irq: %u\n", irq);
++ ezx_pcap_read(PCAP_REG_MSR, &tmp);
+ tmp &= ~irq2pcap[irq];
-+ ezx_pcap_write(SSP_PCAP_ADJ_MSR_REGISTER, tmp);
++ ezx_pcap_write(PCAP_REG_MSR, tmp);
++ spin_unlock_irqrestore(&ezx_ssp_lock, flag);
+}
+
+static struct irq_chip pcap_chip = {
@@ -320,66 +319,49 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+/* handler for interrupt received from PCAP via GPIO */
+static void pcap_irq_demux_handler(unsigned int irq, struct irq_desc *desc)
+{
++ const unsigned int cpu = smp_processor_id();
+ int i;
-+ const unsigned int cpu = smp_processor_id();
-+ u_int32_t reg, mask;
++ u_int32_t isr, msr;
+
+ spin_lock(&desc->lock);
-+
-+ DEBUGP("pcap_irq_demux_handler(%u,,) entered\n", irq);
-+
-+ desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
-+
-+ if (unlikely(desc->status & IRQ_INPROGRESS)) {
-+ DEBUGP("irq busy, masking it off\n");
-+ desc->status |= (IRQ_PENDING | IRQ_MASKED);
++ desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
++ if (unlikely(desc->status & (IRQ_INPROGRESS | IRQ_DISABLED))) {
++ desc->status |= (IRQ_PENDING | IRQ_MASKED);
+ desc->chip->mask(irq);
+ desc->chip->ack(irq);
+ goto out_unlock;
+ }
-+
-+ kstat_cpu(cpu).irqs[irq]++;
++ kstat_cpu(cpu).irqs[irq]++;
+ desc->chip->ack(irq);
+ desc->status |= IRQ_INPROGRESS;
-+
-+ do {
-+ if (unlikely((desc->status &
-+ (IRQ_PENDING | IRQ_MASKED | IRQ_DISABLED)) ==
-+ (IRQ_PENDING | IRQ_MASKED))) {
-+ DEBUGP("dealing with pending IRQ, unmasking\n");
-+ desc->chip->unmask(irq);
++ do {
++ if (unlikely((desc->status &
++ (IRQ_PENDING | IRQ_MASKED | IRQ_DISABLED)) ==
++ (IRQ_PENDING | IRQ_MASKED))) {
++ desc->chip->unmask(irq);
+ desc->status &= ~IRQ_MASKED;
-+ }
-+
++ }
+ desc->status &= ~IRQ_PENDING;
+
-+ ezx_pcap_read(SSP_PCAP_ADJ_ISR_REGISTER, &reg);
-+ ezx_pcap_read(SSP_PCAP_ADJ_MSR_REGISTER, &mask);
-+ DEBUGP("pcap_irq_demux_handler: ISR=0x%08x MSR=0x%08x\n", reg, mask);
-+
-+ for (i = ARRAY_SIZE(pcap2irq)-1; i >= 0; i--) {
-+ unsigned int pirq = pcap2irq[i];
-+ if (pirq == 0)
-+ continue;
-+
-+ if ((reg & (1 << i)) && !(mask & (1 << i))) {
-+ struct irq_desc *subdesc;
-+ DEBUGP("found irq %u\n", pirq);
-+ subdesc = irq_desc + pirq;
-+
-+ kstat_cpu(cpu).irqs[pirq]++;
-+ subdesc->chip->ack(pirq);
-+
-+ spin_unlock(&desc->lock);
-+ handle_IRQ_event(pirq, subdesc->action);
-+ spin_lock(&desc->lock);
-+ }
-+ }
-+
-+ } while ((desc->status & (IRQ_PENDING | IRQ_DISABLED)) == IRQ_PENDING);
++ ezx_pcap_read(PCAP_REG_ISR, &isr);
++ ezx_pcap_read(PCAP_REG_MSR, &msr);
++ for (i = ARRAY_SIZE(pcap2irq)-1; i >= 0; i--) {
++ unsigned int pirq = pcap2irq[i];
++ struct irq_desc *subdesc;
++ if (pirq == 0 || !(isr & irq2pcap[pirq]))
++ continue;
++ subdesc = irq_desc + pirq;
++ if (msr & irq2pcap[pirq])
++ continue;
++ DEBUGP("found irq %u\n", pirq);
++ spin_unlock(&desc->lock);
++ desc_handle_irq(pirq, subdesc);
++ spin_lock(&desc->lock);
++ }
+
-+ desc->status &= ~IRQ_INPROGRESS;
++ } while ((desc->status & (IRQ_PENDING | IRQ_DISABLED)) == IRQ_PENDING);
+
++ desc->status &= ~IRQ_INPROGRESS;
+out_unlock:
+ spin_unlock(&desc->lock);
+}
@@ -389,49 +371,108 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
+ int irq;
+ DEBUGP("exz_pcap_remove entered\n");
+
-+ set_irq_chained_handler(IRQ_GPIO1, NULL);
++ set_irq_chained_handler(pcap_irq, NULL);
+
-+ for (irq = EZX_IRQ(0); irq <= EZX_IRQ(6); irq++) {
++ for (irq = EZX_IRQ(0); irq <= EZX_IRQ(21); irq++) {
+ set_irq_chip(irq, NULL);
+ set_irq_handler(irq, NULL);
+ set_irq_flags(irq, 0);
+ }
+
++ ssp_exit(&ezx_ssp_dev);
++
+ return 0;
+}
+
+static int __init ezx_pcap_probe(struct platform_device *pdev)
+{
-+ unsigned int irq;
++ unsigned int ret, irq;
+ DEBUGP("ezx_pcap_probe entered\n");
+
-+ pcap_init();
++ pcap_data = pdev->dev.platform_data;
++
++ /* configure ssp port */
++ pxa_gpio_mode(29|GPIO_ALT_FN_3_OUT);
++ pxa_gpio_mode(GPIO24_SFRM_MD);
++ pxa_gpio_mode(GPIO25_STXD_MD);
++ pxa_gpio_mode(GPIO26_SRXD_MD);
++
++ if (pcap_data->cs >= 0) {
++ if (pcap_data->flags & PCAP_CS_AH)
++ pxa_gpio_mode(pcap_data->cs | GPIO_OUT);
++ else
++ pxa_gpio_mode(pcap_data->cs | GPIO_OUT
++ | GPIO_DFLT_HIGH);
++ }
++ pcap_irq = platform_get_irq(pdev, 0);
++ if(pcap_irq < 0) {
++ printk(KERN_ERR "Unable to get IRQ for pcap!\n");
++ return pcap_irq;
++ }
++
++ ret = ssp_init(&ezx_ssp_dev, pcap_data->port, 0);
++ if (ret) {
++ printk(KERN_ERR "Unable to register SSP handler!\n");
++ return ret;
++ }
++
++ ssp_disable(&ezx_ssp_dev);
++ ssp_config(&ezx_ssp_dev,
++ (SSCR0_Motorola | SSCR0_DataSize(16) | SSCR0_EDSS),
++ (SSCR1_TxTresh(1) | SSCR1_RxTresh(1)),
++ 0, SSCR0_SerClkDiv(pcap_data->clk));
++ ssp_enable(&ezx_ssp_dev);
++
++ /* mask/ack all PCAP interrupts */
++ ezx_pcap_write(PCAP_REG_MSR, PCAP_MASK_ALL_INTERRUPT);
++ ezx_pcap_write(PCAP_REG_ISR, PCAP_CLEAR_INTERRUPT_REGISTER);
++
++ if (pcap_data->init)
++ pcap_data->init();
+
-+ set_irq_type(IRQ_GPIO1, IRQT_RISING);
+ /* set up interrupt demultiplexing code for PCAP2 irqs */
-+ for (irq = EZX_IRQ(0); irq <= EZX_IRQ(6); irq++) {
++ set_irq_type(pcap_irq, IRQT_RISING);
++ for (irq = EZX_IRQ(0); irq <= EZX_IRQ(21); irq++) {
+ set_irq_chip(irq, &pcap_chip);
-+ set_irq_handler(irq, handle_edge_irq);
++ set_irq_handler(irq, handle_level_irq);
+ set_irq_flags(irq, IRQF_VALID);
+ }
-+ set_irq_chained_handler(IRQ_GPIO1, pcap_irq_demux_handler);
++ set_irq_chained_handler(pcap_irq, pcap_irq_demux_handler);
++ set_irq_wake(pcap_irq, 1);
+
+ printk("ezx-pcap: ssp driver registered\n");
-+
-+ return 0;
++ return ret;
+}
+
+static int ezx_pcap_suspend(struct platform_device *dev, pm_message_t state)
+{
+ DEBUGP("pcap suspend!\n");
++ ssp_flush(&ezx_ssp_dev);
++ ssp_save_state(&ezx_ssp_dev, &ezx_ssp_state);
++ if (pcap_data->cs >= 0)
++ pxa_gpio_mode(pcap_data->cs | GPIO_IN);
+ return 0;
+}
+
+static int ezx_pcap_resume(struct platform_device *dev)
+{
+ DEBUGP("pcap resume!\n");
-+ /* ack all irqs */
-+ ezx_pcap_write(SSP_PCAP_ADJ_ISR_REGISTER, PCAP_CLEAR_INTERRUPT_REGISTER);
++
++ if (pcap_data->cs >= 0) {
++ if (pcap_data->flags & PCAP_CS_AH) {
++ pxa_gpio_mode(pcap_data->cs | GPIO_OUT);
++ GPCR(pcap_data->cs) = GPIO_bit(pcap_data->cs);
++ }
++ else {
++ pxa_gpio_mode(pcap_data->cs | GPIO_OUT | GPIO_DFLT_HIGH);
++ GPSR(pcap_data->cs) = GPIO_bit(pcap_data->cs);
++ }
++ }
++ ssp_restore_state(&ezx_ssp_dev,&ezx_ssp_state);
++ ssp_enable(&ezx_ssp_dev);
++
++ ezx_pcap_write(PCAP_REG_ISR, PCAP_CLEAR_INTERRUPT_REGISTER);
++
+ return 0;
+}
+
@@ -478,677 +519,268 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c
Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h 2007-06-03 11:14:40.000000000 -0300
-@@ -0,0 +1,665 @@
-+/* (c) Copyright Motorola Beijing 2002 all rights reserved.
-+
-+ Project Name : EZX
-+ Project No. :
-+ Title :
-+ File Name :
-+ Description :
-+
-+ ************** REVISION HISTORY **********************************************
-+ Date Author Reference
-+ ======== ========== ==========================
-+ 2002-07-01 weiqiang lin create
-+*/
-+#ifndef SSP_PCAP_H
-+#define SSP_PCAP_H
-+
-+#define SSP_vibrate_start_command() SSP_PCAP_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN); \
-+ SSP_PCAP_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN)
-+
-+#define SSP_vibrate_stop_command() SSP_PCAP_bit_clean(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN); \
-+ SSP_PCAP_bit_clean(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN)
-+
-+#define SSP_PCAP_REGISTER_VALUE_LENGTH 16
-+
-+#define SSP_PCAP_REGISTER_WRITE_OP_BIT 0x80000000
-+#define SSP_PCAP_REGISTER_READ_OP_BIT 0x00000000
-+
-+#define SSP_PCAP_REGISTER_VALUE_UP_WORD_MASK 0xffff0000
-+#define SSP_PCAP_REGISTER_VALUE_DOWN_WORD_MASK 0x0000ffff
-+
-+#define SSP_PCAP_REGISTER_VALUE_MASK 0x01ffffff
-+#define SSP_PCAP_REGISTER_VALUE_MASK 0x01ffffff
-+#define SSP_PCAP_REGISTER_ADDRESS_MASK 0x7c000000
-+#define SSP_PCAP_REGISTER_ADDRESS_SHIFT 26
-+#define SSP_PCAP_REGISTER_NUMBER 32
-+
-+#define SSP_PCAP_ADC_START_VALUE_SET_MASK 0xfffffc00
-+#define SSP_PCAP_ADC_START_VALUE 0x000001dd
-+
-+
-+#define SSP_PCAP_PHONE_CDC_CLOCK_MASK 0x000001c0
-+#define SSP_PCAP_STEREO_SAMPLE_RATE_MASK 0x00000f00
-+#define SSP_PCAP_STEREO_BCLK_TIME_SLOT_MASK 0x00018000
-+#define SSP_PCAP_STEREO_CLOCK_MASK 0x0000001c
-+#define SSP_PCAP_DIGITAL_AUDIO_MODE_MASK 0x00006000
-+#define SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK 0x000e0000
-+#define SSP_PCAP_MONO_PGA_MASK 0x00180000
-+
-+#define SSP_PCAP_VIBRATOR_VOLTAGE_LEVEL_MASK 0x00300000
-+
-+#define SSP_PCAP_AUDIO_IN_GAIN_MASK 0x0000001f
-+#define SSP_PCAP_AUDIO_IN_GAIN_SHIFT 0
-+#define SSP_PCAP_AUDIO_OUT_GAIN_MASK 0x0001e000
-+#define SSP_PCAP_AUDIO_OUT_GAIN_SHIFT 13
-+
-+
-+#define SSP_PCAP_ADD1_VALUE_MASK 0x000003ff
-+#define SSP_PCAP_ADD1_VALUE_SHIFT 0
-+#define SSP_PCAP_ADD2_VALUE_MASK 0x000ffc00
-+#define SSP_PCAP_ADD2_VALUE_SHIFT 10
-+
-+
-+#define PCAP_AUDIO_IN_GAIN_MAX_VALUE 31
-+#define PCAP_AUDIO_OUT_GAIN_MAX_VALUE 15
-+
-+#define PCAP_CLEAR_INTERRUPT_REGISTER 0x00141fdf
-+#define PCAP_MASK_ALL_INTERRUPT 0x0013ffff
-+
-+#define SSP_PCAP_TS_KEEPER_TIMER 100 /* 1 second */
-+#define START_ADC_DELAY_TIMER 1991 /* 540 us */
++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h 2007-09-04 23:34:19.000000000 -0300
+@@ -0,0 +1,247 @@
++/*
++ * Copyright 2007 Daniel Ribeiro <drwyrm@gmail.com>
++ */
+
-+#define SSP_SEND_PM_ALART_INTERVAL 1000 *HZ/1000 /* 1 second */
-+#define SSP_SEND_MSG_USB_ACCESSORY_INFO_DEBOUNCE 200 *HZ/1000 /* 200ms */
++#ifndef EZX_PCAP_H
++#define EZX_PCAP_H
+
-+struct ssp_interrupt_info
-+{
-+ u32 type;
-+ u32 status;
-+ void* privdata;
++struct pcap_platform_data {
++ int port; /* SSP port */
++ int cs; /* CS gpio */
++ int clk;
++ int flags; /* driver flags */
++ int (*init)(void); /* board specific driver init */
+};
+
-+#ifndef U8
-+#define U8 unsigned char
-+#endif
-+
-+#ifndef U32
-+#define U32 unsigned long
-+#endif
-+
-+#ifndef U16
-+#define U16 unsigned short
-+#endif
-+
-+#ifndef P_U16
-+#define P_U16 U16*
-+#endif
-+
-+#ifndef P_U32
-+#define P_U32 U32*
-+#endif
-+
-+#define SSP_SELECT_BUFFER (volatile unsigned long *)(0xf4000000)
-+
-+#define SSP_SR_RNE 0x00000008
-+#define SSP_PCAP_BASE 0x00001000
-+/************************ STRUCTURES, ENUMS, AND TYPEDEFS **************************/
-+typedef enum accessoryStatus
-+{
-+ ACCESSORY_DEVICE_STATUS_DETACHED = 0,
-+ ACCESSORY_DEVICE_STATUS_ATTACHED ,
-+ ACCESSORY_DEVICE_STATUS_UNKNOW =0x000000ff
-+}ACCESSORY_DEVICE_STATUS;
-+
-+typedef enum accessoryType
-+{
-+ ACCESSORY_DEVICE_NONE = 0,
-+ ACCESSORY_DEVICE_SERIAL_PORT ,
-+ ACCESSORY_DEVICE_USB_PORT ,
-+ ACCESSORY_DEVICE_UNKNOW =0x000000ff
-+}ACCESSORY_TYPE;
-+
-+typedef enum pcapReturnStatus
-+{
-+ SSP_PCAP_SUCCESS = 0,
-+ SSP_PCAP_ERROR_REGISTER = SSP_PCAP_BASE+1,
-+ SSP_PCAP_ERROR_VALUE = SSP_PCAP_BASE+2,
-+
-+ SSP_PCAP_NOT_RUN = SSP_PCAP_BASE+0xff
-+}SSP_PCAP_STATUS;
-+
-+typedef enum pcapPortType
-+{
-+ SSP_PCAP_SERIAL_PORT = 0x00000000,
-+ SSP_PCAP_LOW_USB_PORT = 0x00000001,
-+ SSP_PCAP_HIGH_USB_PORT = 0x00000002,
-+ SSP_PCAP_UNKNOW_PORT = 0x000000ff
-+}SSP_PCAP_PORT_TYPE;
-+
-+typedef enum pcapInitDriverType
-+{
-+ SSP_PCAP_TS_OPEN = 0x00000000,
-+ SSP_PCAP_AUDIO_OPEN = 0x00000001,
-+ SSP_PCAP_UNKNOW_DRIVER_OPEN = 0x000000ff
-+}SSP_PCAP_INIT_DRIVER_TYPE;
-+
-+
-+typedef enum pcapReturnBitStatus
-+{
-+ SSP_PCAP_BIT_ZERO = 0x00000000,
-+ SSP_PCAP_BIT_ONE = 0x00000001,
-+ SSP_PCAP_BIT_ERROR = 0xff000000
-+}SSP_PCAP_BIT_STATUS;
-+
-+typedef enum pcapCDCClkType
-+{
-+ PCAP_CDC_CLK_IN_13M0 = 0x00000000,
-+ PCAP_CDC_CLK_IN_15M36 = 0x00000040,
-+ PCAP_CDC_CLK_IN_16M8 = 0x00000080,
-+ PCAP_CDC_CLK_IN_19M44 = 0x000000c0,
-+ PCAP_CDC_CLK_IN_26M0 = 0x00000100
-+}PHONE_CDC_CLOCK_TYPE;
-+
-+typedef enum pcapST_SR
-+{
-+ PCAP_ST_SAMPLE_RATE_8K = 0x00000000,
-+ PCAP_ST_SAMPLE_RATE_11K = 0x00000100,
-+ PCAP_ST_SAMPLE_RATE_12K = 0x00000200,
-+ PCAP_ST_SAMPLE_RATE_16K = 0x00000300,
-+ PCAP_ST_SAMPLE_RATE_22K = 0x00000400,
-+ PCAP_ST_SAMPLE_RATE_24K = 0x00000500,
-+ PCAP_ST_SAMPLE_RATE_32K = 0x00000600,
-+ PCAP_ST_SAMPLE_RATE_44K = 0x00000700,
-+ PCAP_ST_SAMPLE_RATE_48K = 0x00000800
-+}ST_SAMPLE_RATE_TYPE;
-+
-+typedef enum pcapST_BCLK
-+{
-+ PCAP_ST_BCLK_SLOT_16 = 0x00000000,
-+ PCAP_ST_BCLK_SLOT_8 = 0x00008000,
-+ PCAP_ST_BCLK_SLOT_4 = 0x00010000,
-+ PCAP_ST_BCLK_SLOT_2 = 0x00018000,
-+}ST_BCLK_TIME_SLOT_TYPE;
-+
-+typedef enum pcapST_CLK
-+{
-+ PCAP_ST_CLK_PLL_CLK_IN_13M0 = 0x00000000,
-+ PCAP_ST_CLK_PLL_CLK_IN_15M36 = 0x00000004,
-+ PCAP_ST_CLK_PLL_CLK_IN_16M8 = 0x00000008,
-+ PCAP_ST_CLK_PLL_CLK_IN_19M44 = 0x0000000c,
-+ PCAP_ST_CLK_PLL_CLK_IN_26M0 = 0x00000010,
-+ PCAP_ST_CLK_PLL_CLK_IN_EXT_MCLK = 0x00000014,
-+ PCAP_ST_CLK_PLL_CLK_IN_FSYNC = 0x00000018,
-+ PCAP_ST_CLK_PLL_CLK_IN_BITCLK = 0x0000001c
-+}ST_CLK_TYPE;
-+
-+typedef enum pcapDigitalAudioInterfaceMode
-+{
-+ PCAP_DIGITAL_AUDIO_INTERFACE_NORMAL = 0x00000000,
-+ PCAP_DIGITAL_AUDIO_INTERFACE_NETWORK = 0x00002000,
-+ PCAP_DIGITAL_AUDIO_INTERFACE_I2S = 0x00004000
-+}DIG_AUD_MODE_TYPE;
-+
-+typedef enum pcapMono
-+{
-+ PCAP_MONO_PGA_R_L_STEREO = 0x00000000,
-+ PCAP_MONO_PGA_RL = 0x00080000,
-+ PCAP_MONO_PGA_RL_3DB = 0x00100000,
-+ PCAP_MONO_PGA_RL_6DB = 0x00180000
-+}MONO_TYPE;
-+
-+typedef enum pcapVibratorVoltageLevel
-+{
-+ PCAP_VIBRATOR_VOLTAGE_LEVEL0 = 0x00000000,
-+ PCAP_VIBRATOR_VOLTAGE_LEVEL1 = 0x00100000,
-+ PCAP_VIBRATOR_VOLTAGE_LEVEL2 = 0x00200000,
-+ PCAP_VIBRATOR_VOLTAGE_LEVEL3 = 0x00300000
-+}VibratorVoltageLevel_TYPE;
-+
-+typedef enum pcapTouchScreenMode
-+{
-+ PCAP_TS_POSITION_X_MEASUREMENT = 0x00000000,
-+ PCAP_TS_POSITION_XY_MEASUREMENT = 0x00020000,
-+ PCAP_TS_PRESSURE_MEASUREMENT = 0x00040000,
-+ PCAP_TS_PLATE_X_MEASUREMENT = 0x00060000,
-+ PCAP_TS_PLATE_Y_MEASUREMENT = 0x00080000,
-+ PCAP_TS_STANDBY_MODE = 0x000a0000,
-+ PCAP_TS_NONTS_MODE = 0x000c0000
-+}TOUCH_SCREEN_DETECT_TYPE;
-+
-+typedef enum pcapADJRegister
-+{
-+ SSP_PCAP_ADJ_ISR_REGISTER = 0x00,
-+ SSP_PCAP_ADJ_MSR_REGISTER = 0x01,
-+ SSP_PCAP_ADJ_PSTAT_REGISTER = 0x02,
-+ SSP_PCAP_ADJ_VREG2_REGISTER = 0x06,
-+ SSP_PCAP_ADJ_AUX_VREG_REGISTER = 0x07,
-+ SSP_PCAP_ADJ_BATT_DAC_REGISTER = 0x08,
-+ SSP_PCAP_ADJ_ADC1_REGISTER = 0x09,
-+ SSP_PCAP_ADJ_ADC2_REGISTER = 0x0a,
-+ SSP_PCAP_ADJ_AUD_CODEC_REGISTER = 0x0b,
-+ SSP_PCAP_ADJ_AUD_RX_AMPS_REGISTER = 0x0c,
-+ SSP_PCAP_ADJ_ST_DAC_REGISTER = 0x0d,
-+ SSP_PCAP_ADJ_BUSCTRL_REGISTER = 0x14,
-+ SSP_PCAP_ADJ_PERIPH_REGISTER = 0x15,
-+ SSP_PCAP_ADJ_LOWPWR_CTRL_REGISTER = 0x18,
-+ SSP_PCAP_ADJ_TX_AUD_AMPS_REGISTER = 0x1a,
-+ SSP_PCAP_ADJ_GP_REG_REGISTER = 0x1b
-+}SSP_PCAP_SECONDARY_PROCESSOR_REGISTER;
-+
-+typedef enum pcapADJBit_SetType
-+{
-+ SSP_PCAP_ADJ_BIT_ISR_ADCDONEI = 0x00000001,
-+ SSP_PCAP_ADJ_BIT_ISR_TSI = 0x00000002,
-+ SSP_PCAP_ADJ_BIT_ISR_1HZI = 0x00000004,
-+ SSP_PCAP_ADJ_BIT_ISR_WHI = 0x00000008,
-+ SSP_PCAP_ADJ_BIT_ISR_WLI = 0x00000010,
-+ SSP_PCAP_ADJ_BIT_ISR_TODAI = 0x00000020,
-+ SSP_PCAP_ADJ_BIT_ISR_USB4VI = 0x00000040,
-+ SSP_PCAP_ADJ_BIT_ISR_ONOFFI = 0x00000080,
-+ SSP_PCAP_ADJ_BIT_ISR_ONOFF2I = 0x00000100,
-+ SSP_PCAP_ADJ_BIT_ISR_USB1VI = 0x00000200,
-+ SSP_PCAP_ADJ_BIT_ISR_MOBPORTI = 0x00000400,
-+ SSP_PCAP_ADJ_BIT_ISR_MB2I = 0x00000800,
-+ SSP_PCAP_ADJ_BIT_ISR_A1I = 0x00001000,
-+ SSP_PCAP_ADJ_BIT_ISR_STI = 0x00002000,
-+ SSP_PCAP_ADJ_BIT_ISR_PCI = 0x00004000,
-+ SSP_PCAP_ADJ_BIT_ISR_WARMI = 0x00008000,
-+ SSP_PCAP_ADJ_BIT_ISR_EOLI = 0x00010000,
-+ SSP_PCAP_ADJ_BIT_ISR_CLKI = 0x00020000,
-+ SSP_PCAP_ADJ_BIT_ISR_SYS_RSTI = 0x00040000,
-+ SSP_PCAP_ADJ_BIT_ISR_ADCDONE2I = 0x00100000,
-+ SSP_PCAP_ADJ_BIT_ISR_SOFT_RESETI = 0x00200000,
-+ SSP_PCAP_ADJ_BIT_ISR_MNEXBI = 0x00400000,
-+
-+ SSP_PCAP_ADJ_BIT_MSR_ADCDONEM = 0x04000001,
-+ SSP_PCAP_ADJ_BIT_MSR_TSM = 0x04000002,
-+ SSP_PCAP_ADJ_BIT_MSR_1HZM = 0x04000004,
-+ SSP_PCAP_ADJ_BIT_MSR_WHM = 0x04000008,
-+ SSP_PCAP_ADJ_BIT_MSR_WLM = 0x04000010,
-+ SSP_PCAP_ADJ_BIT_MSR_TODAM = 0x04000020,
-+ SSP_PCAP_ADJ_BIT_MSR_USB4VM = 0x04000040,
-+ SSP_PCAP_ADJ_BIT_MSR_ONOFFM = 0x04000080,
-+ SSP_PCAP_ADJ_BIT_MSR_ONOFF2M = 0x04000100,
-+ SSP_PCAP_ADJ_BIT_MSR_USB1VM = 0x04000200,
-+ SSP_PCAP_ADJ_BIT_MSR_MOBPORTM = 0x04000400,
-+ SSP_PCAP_ADJ_BIT_MSR_MB2M = 0x04000800,
-+ SSP_PCAP_ADJ_BIT_MSR_A1M = 0x04001000,
-+ SSP_PCAP_ADJ_BIT_MSR_STM = 0x04002000,
-+ SSP_PCAP_ADJ_BIT_MSR_PCM = 0x04004000,
-+ SSP_PCAP_ADJ_BIT_MSR_WARMM = 0x04008000,
-+ SSP_PCAP_ADJ_BIT_MSR_EOLM = 0x04010000,
-+ SSP_PCAP_ADJ_BIT_MSR_CLKM = 0x04020000,
-+ SSP_PCAP_ADJ_BIT_MSR_SYS_RSTM = 0x04040000,
-+ SSP_PCAP_ADJ_BIT_MSR_ADCDONE2M = 0x04100000,
-+ SSP_PCAP_ADJ_BIT_MSR_SOFT_RESETM = 0x04200000,
-+ SSP_PCAP_ADJ_BIT_MSR_MNEXBM = 0x04400000,
-+
-+ SSP_PCAP_ADJ_BIT_PSTAT_USBDET_4V = 0x08000040,
-+ SSP_PCAP_ADJ_BIT_PSTAT_ONOFFSNS = 0x08000080,
-+ SSP_PCAP_ADJ_BIT_PSTAT_ONOFFSNS2 = 0x08000100,
-+ SSP_PCAP_ADJ_BIT_PSTAT_USBDET_1V = 0x08000200,
-+ SSP_PCAP_ADJ_BIT_PSTAT_MOBSENSB = 0x08000400,
-+ SSP_PCAP_ADJ_BIT_PSTAT_MB2SNS = 0x08000800,
-+ SSP_PCAP_ADJ_BIT_PSTAT_A1SNS = 0x08001000,
-+ SSP_PCAP_ADJ_BIT_PSTAT_MSTB = 0x08002000,
-+ SSP_PCAP_ADJ_BIT_PSTAT_EOL_STAT = 0x08010000,
-+ SSP_PCAP_ADJ_BIT_PSTAT_CLK_STAT = 0x08020000,
-+ SSP_PCAP_ADJ_BIT_PSTAT_SYS_RST = 0x08040000,
-+ SSP_PCAP_ADJ_BIT_PSTAT_BATTFBSNS = 0x08080000,
-+ SSP_PCAP_ADJ_BIT_PSTAT_BATT_DET_IN_SNS = 0x08200000,
-+ SSP_PCAP_ADJ_BIT_PSTAT_MNEXBSNS = 0x08400000,
-+ SSP_PCAP_ADJ_BIT_PSTAT_WARM_SYS_RST = 0x08800000,
-+
-+ SSP_PCAP_ADJ_BIT_VREG2_V1_STBY = 0x18000001,
-+ SSP_PCAP_ADJ_BIT_VREG2_V2_STBY = 0x18000002,
-+ SSP_PCAP_ADJ_BIT_VREG2_V3_STBY = 0x18000004,
-+ SSP_PCAP_ADJ_BIT_VREG2_V4_STBY = 0x18000008,
-+ SSP_PCAP_ADJ_BIT_VREG2_V5_STBY = 0x18000010,
-+ SSP_PCAP_ADJ_BIT_VREG2_V6_STBY = 0x18000020,
-+ SSP_PCAP_ADJ_BIT_VREG2_V7_STBY = 0x18000040,
-+ SSP_PCAP_ADJ_BIT_VREG2_V8_STBY = 0x18000080,
-+ SSP_PCAP_ADJ_BIT_VREG2_V9_STBY = 0x18000100,
-+ SSP_PCAP_ADJ_BIT_VREG2_V10_STBY = 0x18000200,
-+ SSP_PCAP_ADJ_BIT_VREG2_V1_LOWPWR = 0x18000400,
-+ SSP_PCAP_ADJ_BIT_VREG2_V2_LOWPWR = 0x18000800,
-+ SSP_PCAP_ADJ_BIT_VREG2_V3_LOWPWR = 0x18001000,
-+ SSP_PCAP_ADJ_BIT_VREG2_V4_LOWPWR = 0x18002000,
-+ SSP_PCAP_ADJ_BIT_VREG2_V5_LOWPWR = 0x18004000,
-+ SSP_PCAP_ADJ_BIT_VREG2_V6_LOWPWR = 0x18008000,
-+ SSP_PCAP_ADJ_BIT_VREG2_V7_LOWPWR = 0x18010000,
-+ SSP_PCAP_ADJ_BIT_VREG2_V8_LOWPWR = 0x18020000,
-+ SSP_PCAP_ADJ_BIT_VREG2_V9_LOWPWR = 0x18040000,
-+ SSP_PCAP_ADJ_BIT_VREG2_V10_LOWPWR = 0x18080000,
-+
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_EN = 0x1c000002,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_0 = 0x1c000004,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_1 = 0x1c000008,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN = 0x1c000010,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_0 = 0x1c000020,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_1 = 0x1c000040,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_EN = 0x1c000080,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_0 = 0x1c000100,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_1 = 0x1c000200,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_2 = 0x1c000400,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_3 = 0x1c000800,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX4_EN = 0x1c001000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX4_0 = 0x1c002000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX4_1 = 0x1c004000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VSIM2_EN = 0x1c010000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VSIM_EN = 0x1c020000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VSIM_0 = 0x1c040000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN = 0x1c080000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_0 = 0x1c100000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_1 = 0x1c200000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_STBY = 0x1c400000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_LOWPWR = 0x1c800000,
-+ SSP_PCAP_ADJ_BIT_AUX_VREG_SW3_STBY = 0x1d000000,
-+
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC0 = 0x20000001,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC1 = 0x20000002,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC2 = 0x20000004,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC3 = 0x20000008,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC4 = 0x20000010,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC5 = 0x20000020,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC6 = 0x20000040,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC7 = 0x20000080,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_B_FDBK = 0x20000100,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_EXT_ISENSE = 0x20000200,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_V_COIN0 = 0x20000400,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_V_COIN1 = 0x20000800,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_V_COIN2 = 0x20001000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_V_COIN3 = 0x20002000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_I_COIN = 0x20004000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_COIN_CH_EN = 0x20008000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_EOL_SEL0 = 0x20020000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_EOL_SEL1 = 0x20040000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_EOL_SEL2 = 0x20080000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_EOL_CMP_EN = 0x20100000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_BATT_DET_EN = 0x20200000,
-+ SSP_PCAP_ADJ_BIT_BATT_DAC_THERMBIAS_CTRL = 0x20400000,
-+
-+ SSP_PCAP_ADJ_BIT_ADC1_ADEN = 0x24000001,
-+ SSP_PCAP_ADJ_BIT_ADC1_RAND = 0x24000002,
-+ SSP_PCAP_ADJ_BIT_ADC1_AD_SEL1 = 0x24000004,
-+ SSP_PCAP_ADJ_BIT_ADC1_AD_SEL2 = 0x24000008,
-+ SSP_PCAP_ADJ_BIT_ADC1_ADA10 = 0x24000010,
-+ SSP_PCAP_ADJ_BIT_ADC1_ADA11 = 0x24000020,
-+ SSP_PCAP_ADJ_BIT_ADC1_ADA12 = 0x24000040,
-+ SSP_PCAP_ADJ_BIT_ADC1_ADA20 = 0x24000080,
-+ SSP_PCAP_ADJ_BIT_ADC1_ADA21 = 0x24000100,
-+ SSP_PCAP_ADJ_BIT_ADC1_ADA22 = 0x24000200,
-+ SSP_PCAP_ADJ_BIT_ADC1_ATO0 = 0x24000400,
-+ SSP_PCAP_ADJ_BIT_ADC1_ATO1 = 0x24000800,
-+ SSP_PCAP_ADJ_BIT_ADC1_ATO2 = 0x24001000,
-+ SSP_PCAP_ADJ_BIT_ADC1_ATO3 = 0x24002000,
-+ SSP_PCAP_ADJ_BIT_ADC1_ATOX = 0x24004000,
-+ SSP_PCAP_ADJ_BIT_ADC1_MTR1 = 0x24008000,
-+ SSP_PCAP_ADJ_BIT_ADC1_MTR2 = 0x24010000,
-+ SSP_PCAP_ADJ_BIT_ADC1_TS_M0 = 0x24020000,
-+ SSP_PCAP_ADJ_BIT_ADC1_TS_M1 = 0x24040000,
-+ SSP_PCAP_ADJ_BIT_ADC1_TS_M2 = 0x24080000,
-+ SSP_PCAP_ADJ_BIT_ADC1_TS_REF_LOWPWR = 0x24100000,
-+ SSP_PCAP_ADJ_BIT_ADC1_TS_REFENB = 0x24200000,
-+ SSP_PCAP_ADJ_BIT_ADC1_BATT_I_POLARITY = 0x24400000,
-+ SSP_PCAP_ADJ_BIT_ADC1_BATT_I_ADC = 0x24800000,
-+
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD10 = 0x28000001,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD11 = 0x28000002,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD12 = 0x28000004,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD13 = 0x28000008,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD14 = 0x28000010,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD15 = 0x28000020,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD16 = 0x28000040,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD17 = 0x28000080,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD18 = 0x28000100,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD19 = 0x28000200,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD20 = 0x28000400,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD21 = 0x28000800,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD22 = 0x28001000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD23 = 0x28002000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD24 = 0x28004000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD25 = 0x28008000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD26 = 0x28010000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD27 = 0x28020000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD28 = 0x28040000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADD29 = 0x28080000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADINC1 = 0x28100000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ADINC2 = 0x28200000,
-+ SSP_PCAP_ADJ_BIT_ADC2_ASC = 0x28400000,
-+
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_AUDIHPF = 0x2c000001,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_SMB = 0x2c000002,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_AUDOHPF = 0x2c000004,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CD_TS = 0x2c000008,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_DLM = 0x2c000010,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_ADITH = 0x2c000020,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_CLK0 = 0x2c000040,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_CLK1 = 0x2c000080,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_CLK2 = 0x2c000100,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CLK_INV = 0x2c000200,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_FS_INV = 0x2c000400,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_DF_RESET = 0x2c000800,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_EN = 0x2c001000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_CLK_EN = 0x2c002000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_FS_8K_16K = 0x2c004000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_DIG_AUD_IN = 0x2c008000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CLK_IN_SEL = 0x2c010000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2_MUX = 0x2c020000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG0 = 0x2c040000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG1 = 0x2c080000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG2 = 0x2c100000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG3 = 0x2c200000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG4 = 0x2c400000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG_PRI_ADJ = 0x2c800000,
-+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_PRI_ADJ = 0x2c200000,
-+
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A1_EN = 0x30000001,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A2_EN = 0x30000002,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A4_EN = 0x30000010,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_ARIGHT_EN = 0x30000020,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_ALEFT_EN = 0x30000040,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_CD_BYP = 0x30000080,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_CDC_SW = 0x30000100,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_ST_DAC_SW = 0x30000200,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_PGA_IN_SW = 0x30000400,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_PGA_R_EN = 0x30000800,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_PGA_L_EN = 0x30001000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG0 = 0x30002000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG1 = 0x30004000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG2 = 0x30008000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG3 = 0x30010000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A1CTRL = 0x30020000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_MONO0 = 0x30080000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_MONO1 = 0x30100000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG_PRI_ADJ = 0x30200000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_MONO_PRI_ADJ = 0x30400000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_RX_PRI_ADJ0 = 0x30800000,
-+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_RX_PRI_ADJ1 = 0x31000000,
-+
-+ SSP_PCAP_ADJ_BIT_ST_DAC_SMB_ST_DAC = 0x34000001,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_STDET_EN = 0x34000002,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK0 = 0x34000004,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK1 = 0x34000008,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK2 = 0x34000010,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK_EN = 0x34000020,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_DF_RESET_ST_DAC = 0x34000040,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_DAC_EN = 0x34000080,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_SR0 = 0x34000100,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_SR1 = 0x34000200,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_SR2 = 0x34000400,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_SR3 = 0x34000800,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_DIG_AUD_IN_ST_DAC = 0x34001000,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_DIG_AUD_FS0 = 0x34002000,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_DIG_AUD_FS1 = 0x34004000,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_BCLK0 = 0x34008000,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_BCLK1 = 0x34010000,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK_INV = 0x34020000,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_FS_INV = 0x34040000,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_DAC_CLK_IN_SEL = 0x34080000,
-+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_DAC_PRI_ADJ = 0x35000000,
-+
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_FSENB = 0x50000001,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_SUSPEND = 0x50000002,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PU = 0x50000004,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PD = 0x50000008,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_EN = 0x50000010,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PS = 0x50000020,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_MSTR_EN = 0x50000040,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_VBUS_PD_ENB = 0x50000080,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_CURRLIM = 0x50000100,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_RS232ENB = 0x50000200,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_RS232_DIR = 0x50000400,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_SE0_CONN = 0x50000800,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PDM = 0x50001000,
-+ SSP_PCAP_ADJ_BIT_BUSCTRL_BUS_PRI_ADJ = 0x51000000,
-+
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL0 = 0x54000001,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL1 = 0x54000002,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL2 = 0x54000004,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL3 = 0x54000008,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL4 = 0x54000010,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_EN = 0x54000020,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_EN = 0x54000040,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_CTRL0 = 0x54000080,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_CTRL1 = 0x54000100,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_CTRL2 = 0x54000200,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_CTRL3 = 0x54000400,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_CTRL0 = 0x54000800,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_CTRL1 = 0x54001000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_CTRL2 = 0x54002000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_CTRL3 = 0x54004000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_I0 = 0x54008000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_I1 = 0x54010000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_I0 = 0x54020000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_I1 = 0x54040000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_SKIP = 0x54080000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL0 = 0x54100000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL1 = 0x54200000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL2 = 0x54400000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL3 = 0x54800000,
-+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL4 = 0x55000000,
-+
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_STBY = 0x60000001,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_LOWPWR = 0x60000002,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX3_STBY = 0x60000004,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX3_LOWPWR = 0x60000008,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX4_STBY = 0x60000010,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX4_LOWPWR = 0x60000020,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VSIM_LOWPWR = 0x60000040,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VSIM2_LOWPWR = 0x60000080,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE00 = 0x60000100,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE01 = 0x60000200,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE10 = 0x60000400,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE11 = 0x60000800,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW10_DVS = 0x60001000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW11_DVS = 0x60002000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW12_DVS = 0x60004000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW13_DVS = 0x60008000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW2_MODE00 = 0x60010000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW2_MODE01 = 0x60020000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW2_MODE10 = 0x60040000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW2_MODE11 = 0x60080000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW20_DVS = 0x60100000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW21_DVS = 0x60200000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW22_DVS = 0x60400000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW23_DVS = 0x60800000,
-+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VC_STBY = 0x61000000,
-+
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG0 = 0x68000001,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG1 = 0x68000002,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG2 = 0x68000004,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG3 = 0x68000008,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG4 = 0x68000010,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A3_EN = 0x68000020,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A3_MUX = 0x68000040,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A5_EN = 0x68000080,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A5_MUX = 0x68000100,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_EXT_MIC_MUX = 0x68000200,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_MB_ON2 = 0x68000400,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_MB_ON1 = 0x68000800,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A1ID_TX = 0x68001000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A1_CONFIG = 0x68002000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AHS_CONFIG = 0x68004000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A2_CONFIG = 0x68008000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIO_LOWPWR = 0x68080000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIO_STBY = 0x68100000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_V2_EN_2 = 0x68200000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG_PRI_ADJ = 0x68400000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_TX_PRI_ADJ0 = 0x68800000,
-+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_TX_PRI_ADJ1 = 0x69000000,
-+
-+ SSP_PCAP_ADJ_BIT_SYS_RST_CLR = 0x6c000001,
-+ SSP_PCAP_ADJ_BIT_SYS_RST_MODE0 = 0x6c000002,
-+ SSP_PCAP_ADJ_BIT_SYS_RST_MODE1 = 0x6c000004,
-+ SSP_PCAP_ADJ_BIT_SYS_VFLASH_0 = 0x6c000008,
-+ SSP_PCAP_ADJ_BIT_SYS_VFLASH_1 = 0x6c000010,
-+ SSP_PCAP_ADJ_BIT_SYS_MID_SELECT = 0x6c000020,
-+ SSP_PCAP_ADJ_BIT_SYS_MID_FET = 0x6c000040,
-+ SSP_PCAP_ADJ_BIT_SYS_MAIN_LOW = 0x6c000080,
-+ SSP_PCAP_ADJ_BIT_SYS_BATTFB_DIS = 0x6c000100,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG9 = 0x6c000200,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG10 = 0x6c000400,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG11 = 0x6c000800,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG12 = 0x6c001000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG13 = 0x6c002000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG14 = 0x6c004000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG15 = 0x6c008000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG16 = 0x6c010000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG17 = 0x6c020000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG18 = 0x6c040000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG19 = 0x6c080000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG20 = 0x6c100000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG21 = 0x6c200000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG22 = 0x6c400000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG23 = 0x6c800000,
-+ SSP_PCAP_ADJ_BIT_SYS_GP_REG24 = 0x6d000000
-+
-+}SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE;
-+
-+/************************ FUNCTION PROTOTYPES **************************************/
-+extern void ssp_pcap_init(void);
-+extern void ssp_pcap_release(void);
-+
-+extern void ssp_pcap_open(SSP_PCAP_INIT_DRIVER_TYPE portType);
-+extern void ssp_pcap_close(void);
-+
-+extern void ssp_pcap_intoSleep_callBack(void);
-+extern void ssp_pcap_wakeUp_callBack(void);
-+
-+
-+extern SSP_PCAP_STATUS SSP_PCAP_write_data_to_PCAP(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER ssp_pcap_register,U32 ssp_pcap_register_value);
-+extern SSP_PCAP_STATUS SSP_PCAP_read_data_from_PCAP(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER ssp_pcap_register,P_U32 p_ssp_pcap_register_value);
-+
-+extern SSP_PCAP_STATUS SSP_PCAP_bit_set(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE ssp_pcap_bit ) ;
-+extern SSP_PCAP_STATUS SSP_PCAP_bit_clean(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE ssp_pcap_bit ) ;
-+extern SSP_PCAP_BIT_STATUS SSP_PCAP_get_bit_from_buffer(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE ssp_pcap_bit ) ;
-+extern SSP_PCAP_BIT_STATUS SSP_PCAP_get_bit_from_PCAP(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE ssp_pcap_bit ) ;
-+extern U32 SSP_PCAP_get_register_value_from_buffer(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER ssp_pcap_register ) ;
-+
-+extern SSP_PCAP_STATUS SSP_PCAP_TSI_mode_set(TOUCH_SCREEN_DETECT_TYPE mode_Type );
-+extern SSP_PCAP_STATUS SSP_PCAP_TSI_start_XY_read(void);
-+extern SSP_PCAP_STATUS SSP_PCAP_TSI_get_XY_value(P_U16 p_x,P_U16 p_y);
-+extern SSP_PCAP_STATUS SSP_PCAP_CDC_CLK_set(PHONE_CDC_CLOCK_TYPE clkType);
-+
-+extern SSP_PCAP_STATUS SSP_PCAP_CDC_SR_set(ST_SAMPLE_RATE_TYPE srType);
-+extern SSP_PCAP_STATUS SSP_PCAP_BCLK_set(ST_BCLK_TIME_SLOT_TYPE bclkType);
-+extern SSP_PCAP_STATUS SSP_PCAP_STCLK_set(ST_CLK_TYPE stClkType);
-+extern SSP_PCAP_STATUS SSP_PCAP_DIG_AUD_FS_set(DIG_AUD_MODE_TYPE fsType);
-+extern SSP_PCAP_STATUS SSP_PCAP_AUDIG_set(U32 audioInGain);
-+extern SSP_PCAP_STATUS SSP_PCAP_MONO_set(MONO_TYPE monoType);
-+extern SSP_PCAP_STATUS SSP_PCAP_AUDOG_set(U32 audioOutGain);
-+
-+extern SSP_PCAP_STATUS SSP_PCAP_V_VIB_level_set(VibratorVoltageLevel_TYPE VIBLevelType);
-+extern SSP_PCAP_STATUS SSP_PCAP_configure_USB_UART_transeiver(SSP_PCAP_PORT_TYPE portType);
-+extern SSP_PCAP_BIT_STATUS SSP_PCAP_get_audio_in_status(void);
-+
-+/* for log */
-+extern void pcap_log_add_pure_data(u8* pData,u32 len);
-+extern void pcap_log_add_data(u8* pData,u32 len);
-+
-+/* screen lock on/off handler */
-+extern void ssp_pcap_screenlock_lock(u32 data);
-+extern void ssp_pcap_screenlock_unlock(u32 data);
-+
++/* driver configuration */
++#define PCAP_CS_AH (1 << 0) /* CS pin is active high */
++#define PCAP_MCI_SD (1 << 1) /* SD card slot */
++#define PCAP_MCI_TF (1 << 2) /* TF card slot */
++
++#define PCAP_REGISTER_WRITE_OP_BIT 0x80000000
++#define PCAP_REGISTER_READ_OP_BIT 0x00000000
++
++#define PCAP_REGISTER_VALUE_MASK 0x01ffffff
++#define PCAP_REGISTER_ADDRESS_MASK 0x7c000000
++#define PCAP_REGISTER_ADDRESS_SHIFT 26
++#define PCAP_REGISTER_NUMBER 32
++#define PCAP_CLEAR_INTERRUPT_REGISTER 0x01ffffff
++#define PCAP_MASK_ALL_INTERRUPT 0x01ffffff
++
++
++#define pbit(reg, bit) ((reg << PCAP_REGISTER_ADDRESS_SHIFT) | bit)
++
++/* registers acessible by both pcap ports */
++#define PCAP_REG_ISR 0x0 /* Interrupt Status */
++#define PCAP_REG_MSR 0x1 /* Interrupt Mask */
++#define PCAP_REG_PSTAT 0x2 /* Processor Status */
++#define PCAP_REG_VREG2 0x6 /* Regulator Bank 2 Control */
++#define PCAP_REG_AUXVREG 0x7 /* Auxiliary Regulator Control */
++#define PCAP_REG_BATT 0x8 /* Battery Control */
++#define PCAP_REG_ADC1 0x9 /* AD Control */
++#define PCAP_REG_ADC2 0xa /* AD Result */
++#define PCAP_REG_CODEC 0xb /* Audio Codec Control */
++#define PCAP_REG_RX_AMPS 0xc /* RX Audio Amplifiers Control */
++#define PCAP_REG_ST_DAC 0xd /* Stereo DAC Control */
++#define PCAP_REG_BUSCTRL 0x14 /* Connectivity Control */
++#define PCAP_REG_PERIPH 0x15 /* Peripheral Control */
++#define PCAP_REG_LOWPWR 0x18 /* Regulator Low Power Control */
++#define PCAP_REG_TX_AMPS 0x1a /* TX Audio Amplifiers Control */
++#define PCAP_REG_GP 0x1b /* General Purpose */
++
++/* registers acessible by pcap port 1 only (a1200, e2 & e6) */
++#define PCAP_REG_INT_SEL 0x3 /* Interrupt Select */
++#define PCAP_REG_SWCTRL 0x4 /* Switching Regulator Control */
++#define PCAP_REG_VREG1 0x5 /* Regulator Bank 1 Control */
++#define PCAP_REG_RTC_TOD 0xe /* RTC Time of Day */
++#define PCAP_REG_RTC_TODA 0xf /* RTC Time of Day Alarm */
++#define PCAP_REG_RTC_DAY 0x10 /* RTC Day */
++#define PCAP_REG_RTC_DAYA 0x11 /* RTC Day Alarm */
++#define PCAP_REG_MTRTMR 0x12 /* AD Monitor Timer */
++#define PCAP_REG_PWR 0x13 /* Power Control */
++#define PCAP_REG_AUXVREG_MASK 0x16 /* Auxiliary Regulator Mask */
++#define PCAP_REG_VENDOR_REV 0x17
++#define PCAP_REG_PERIPH_MASK 0x19 /* Peripheral Mask */
++
++/* interrupts - registers 0, 1, 2, 3 */
++#define PCAP_IRQ_ADCDONE (1 << 0) /* AD Conversion Done Port 1 */
++#define PCAP_IRQ_TS (1 << 1) /* Touch Screen */
++#define PCAP_IRQ_1HZ (1 << 2) /* 1HZ Timer */
++#define PCAP_IRQ_WH (1 << 3)
++#define PCAP_IRQ_WL (1 << 4)
++#define PCAP_IRQ_TODA (1 << 5)
++#define PCAP_IRQ_USB4V (1 << 6)
++#define PCAP_IRQ_ONOFF (1 << 7)
++#define PCAP_IRQ_ONOFF2 (1 << 8)
++#define PCAP_IRQ_USB1V (1 << 9)
++#define PCAP_IRQ_MOBPORT (1 << 10)
++#define PCAP_IRQ_MB2 (1 << 11) /* Mic */
++#define PCAP_IRQ_A1 (1 << 12) /* Audio jack */
++#define PCAP_IRQ_ST (1 << 13)
++#define PCAP_IRQ_PC (1 << 14)
++#define PCAP_IRQ_WARM (1 << 15)
++#define PCAP_IRQ_EOL (1 << 16)
++#define PCAP_IRQ_CLK (1 << 17)
++#define PCAP_IRQ_SYSRST (1 << 18)
++#define PCAP_IRQ_ADCDONE2 (1 << 20) /* AD Conversion Done Port 2 */
++#define PCAP_IRQ_SOFTRESET (1 << 21)
++#define PCAP_IRQ_MNEXB (1 << 22)
++
++#define PCAP_BIT_VREG2_V1_STBY pbit(PCAP_REG_VREG2, (1 << 0))
++#define PCAP_BIT_VREG2_V2_STBY pbit(PCAP_REG_VREG2, (1 << 1))
++#define PCAP_BIT_VREG2_V3_STBY pbit(PCAP_REG_VREG2, (1 << 2))
++#define PCAP_BIT_VREG2_V4_STBY pbit(PCAP_REG_VREG2, (1 << 3))
++#define PCAP_BIT_VREG2_V5_STBY pbit(PCAP_REG_VREG2, (1 << 4))
++#define PCAP_BIT_VREG2_V6_STBY pbit(PCAP_REG_VREG2, (1 << 5))
++#define PCAP_BIT_VREG2_V7_STBY pbit(PCAP_REG_VREG2, (1 << 6))
++#define PCAP_BIT_VREG2_V8_STBY pbit(PCAP_REG_VREG2, (1 << 7))
++#define PCAP_BIT_VREG2_V9_STBY pbit(PCAP_REG_VREG2, (1 << 8))
++#define PCAP_BIT_VREG2_V10_STBY pbit(PCAP_REG_VREG2, (1 << 9))
++#define PCAP_BIT_VREG2_V1_LOWPWR pbit(PCAP_REG_VREG2, (1 << 10))
++#define PCAP_BIT_VREG2_V2_LOWPWR pbit(PCAP_REG_VREG2, (1 << 11))
++#define PCAP_BIT_VREG2_V3_LOWPWR pbit(PCAP_REG_VREG2, (1 << 12))
++#define PCAP_BIT_VREG2_V4_LOWPWR pbit(PCAP_REG_VREG2, (1 << 13))
++#define PCAP_BIT_VREG2_V5_LOWPWR pbit(PCAP_REG_VREG2, (1 << 14))
++#define PCAP_BIT_VREG2_V6_LOWPWR pbit(PCAP_REG_VREG2, (1 << 15))
++#define PCAP_BIT_VREG2_V7_LOWPWR pbit(PCAP_REG_VREG2, (1 << 16))
++#define PCAP_BIT_VREG2_V8_LOWPWR pbit(PCAP_REG_VREG2, (1 << 17))
++#define PCAP_BIT_VREG2_V9_LOWPWR pbit(PCAP_REG_VREG2, (1 << 18))
++#define PCAP_BIT_VREG2_V10_LOWPWR pbit(PCAP_REG_VREG2, (1 << 19))
++
++#define PCAP_BIT_AUXVREG_VAUX1_EN pbit(PCAP_REG_AUXVREG, (1 << 1))
++#define PCAP_AUXVREG_VAUX1_MASK 0x0000000c
++#define PCAP_AUXVREG_VAUX1_SHIFT 2
++#define PCAP_BIT_AUXVREG_VAUX2_EN pbit(PCAP_REG_AUXVREG, (1 << 4))
++#define PCAP_AUXVREG_VAUX2_MASK 0x00000060
++#define PCAP_AUXVREG_VAUX2_SHIFT 5
++#define PCAP_BIT_AUXVREG_VAUX3_EN pbit(PCAP_REG_AUXVREG, (1 << 7))
++#define PCAP_AUXVREG_VAUX3_MASK 0x00000f00
++#define PCAP_AUXVREG_VAUX3_SHIFT 8
++#define PCAP_BIT_AUXVREG_VAUX4_EN pbit(PCAP_REG_AUXVREG, (1 << 12))
++#define PCAP_AUXVREG_VAUX4_MASK 0x00006000
++#define PCAP_AUXVREG_VAUX4_SHIFT 13
++#define PCAP_BIT_AUXVREG_VSIM2_EN pbit(PCAP_REG_AUXVREG, (1 << 16))
++#define PCAP_BIT_AUXVREG_VSIM_EN pbit(PCAP_REG_AUXVREG, (1 << 17))
++#define PCAP_BIT_AUXVREG_VSIM_0 pbit(PCAP_REG_AUXVREG, (1 << 18))
++#define PCAP_BIT_AUXVREG_V_VIB_EN pbit(PCAP_REG_AUXVREG, (1 << 19))
++#define PCAP_AUXVREG_V_VIB_MASK 0x00300000
++#define PCAP_AUXVREG_V_VIB_SHIFT 20
++#define PCAP_BIT_AUXVREG_VAUX1_STBY pbit(PCAP_REG_AUXVREG, (1 << 22))
++#define PCAP_BIT_AUXVREG_VAUX1_LOWPWR pbit(PCAP_REG_AUXVREG, (1 << 23))
++#define PCAP_BIT_AUXVREG_SW3_STBY pbit(PCAP_REG_AUXVREG, (1 << 24))
++
++#define PCAP_BATT_DAC_MASK 0x000000ff
++#define PCAP_BATT_DAC_SHIFT 0
++#define PCAP_BIT_BATT_B_FDBK pbit(PCAP_REG_BATT, (1 << 8))
++#define PCAP_BIT_BATT_EXT_ISENSE pbit(PCAP_REG_BATT, (1 << 9))
++#define PCAP_BATT_V_COIN_MASK 0x00003c00
++#define PCAP_BATT_V_COIN_SHIFT 10
++#define PCAP_BIT_BATT_I_COIN pbit(PCAP_REG_BATT, (1 << 14))
++#define PCAP_BIT_BATT_COIN_CH_EN pbit(PCAP_REG_BATT, (1 << 15))
++#define PCAP_BATT_EOL_SEL_MASK 0x000e0000
++#define PCAP_BATT_EOL_SEL_SHIFT 17
++#define PCAP_BIT_BATT_EOL_CMP_EN pbit(PCAP_REG_BATT, (1 << 20))
++#define PCAP_BIT_BATT_BATT_DET_EN pbit(PCAP_REG_BATT, (1 << 21))
++#define PCAP_BIT_BATT_THERMBIAS_CTRL pbit(PCAP_REG_BATT, (1 << 22))
++
++#define PCAP_BIT_ADC1_ADEN pbit(PCAP_REG_ADC1, (1 << 0))
++#define PCAP_BIT_ADC1_RAND pbit(PCAP_REG_ADC1, (1 << 1))
++#define PCAP_BIT_ADC1_AD_SEL1 pbit(PCAP_REG_ADC1, (1 << 2))
++#define PCAP_BIT_ADC1_AD_SEL2 pbit(PCAP_REG_ADC1, (1 << 3))
++#define PCAP_ADC1_ADA1_MASK 0x00000070
++#define PCAP_ADC1_ADA1_SHIFT 4
++#define PCAP_ADC1_ADA2_MASK 0x00000380
++#define PCAP_ADC1_ADA2_SHIFT 7
++#define PCAP_ADC1_ATO_MASK 0x00003c00
++#define PCAP_ADC1_ATO_SHIFT 10
++#define PCAP_BIT_ADC1_ATOX pbit(PCAP_REG_ADC1, (1 << 14))
++#define PCAP_BIT_ADC1_MTR1 pbit(PCAP_REG_ADC1, (1 << 15))
++#define PCAP_BIT_ADC1_MTR2 pbit(PCAP_REG_ADC1, (1 << 16))
++#define PCAP_ADC1_TS_M_MASK 0x000e0000
++#define PCAP_ADC1_TS_M_SHIFT 17
++#define PCAP_BIT_ADC1_TS_REF_LOWPWR pbit(PCAP_REG_ADC1, (1 << 20))
++#define PCAP_BIT_ADC1_TS_REFENB pbit(PCAP_REG_ADC1, (1 << 21))
++#define PCAP_BIT_ADC1_BATT_I_POLARITY pbit(PCAP_REG_ADC1, (1 << 22))
++#define PCAP_BIT_ADC1_BATT_I_ADC pbit(PCAP_REG_ADC1, (1 << 23))
++
++#define PCAP_ADC2_ADD1_MASK 0x000003ff
++#define PCAP_ADC2_ADD1_SHIFT 0
++#define PCAP_ADC2_ADD2_MASK 0x000ffc00
++#define PCAP_ADC2_ADD2_SHIFT 10
++#define PCAP_BIT_ADC2_ADINC1 pbit(PCAP_REG_ADC2, (1 << 20))
++#define PCAP_BIT_ADC2_ADINC2 pbit(PCAP_REG_ADC2, (1 << 21))
++#define PCAP_BIT_ADC2_ASC pbit(PCAP_REG_ADC2, (1 << 22))
++
++#define PCAP_BIT_BUSCTRL_FSENB 0x50000001
++#define PCAP_BIT_BUSCTRL_USB_SUSPEND 0x50000002
++#define PCAP_BIT_BUSCTRL_USB_PU 0x50000004
++#define PCAP_BIT_BUSCTRL_USB_PD 0x50000008
++#define PCAP_BIT_BUSCTRL_VUSB_EN 0x50000010
++#define PCAP_BIT_BUSCTRL_USB_PS 0x50000020
++#define PCAP_BIT_BUSCTRL_VUSB_MSTR_EN 0x50000040
++#define PCAP_BIT_BUSCTRL_VBUS_PD_ENB 0x50000080
++#define PCAP_BIT_BUSCTRL_CURRLIM 0x50000100
++#define PCAP_BIT_BUSCTRL_RS232ENB 0x50000200
++#define PCAP_BIT_BUSCTRL_RS232_DIR 0x50000400
++#define PCAP_BIT_BUSCTRL_SE0_CONN 0x50000800
++#define PCAP_BIT_BUSCTRL_USB_PDM 0x50001000
++#define PCAP_BIT_BUSCTRL_BUS_PRI_ADJ 0x51000000
++
++#define PCAP_BIT_PERIPH_BL_CTRL0 0x54000001
++#define PCAP_BIT_PERIPH_BL_CTRL1 0x54000002
++#define PCAP_BIT_PERIPH_BL_CTRL2 0x54000004
++#define PCAP_BIT_PERIPH_BL_CTRL3 0x54000008
++#define PCAP_BIT_PERIPH_BL_CTRL4 0x54000010
++#define PCAP_BIT_PERIPH_LEDR_EN 0x54000020
++#define PCAP_BIT_PERIPH_LEDG_EN 0x54000040
++#define PCAP_BIT_PERIPH_LEDR_CTRL0 0x54000080
++#define PCAP_BIT_PERIPH_LEDR_CTRL1 0x54000100
++#define PCAP_BIT_PERIPH_LEDR_CTRL2 0x54000200
++#define PCAP_BIT_PERIPH_LEDR_CTRL3 0x54000400
++#define PCAP_BIT_PERIPH_LEDG_CTRL0 0x54000800
++#define PCAP_BIT_PERIPH_LEDG_CTRL1 0x54001000
++#define PCAP_BIT_PERIPH_LEDG_CTRL2 0x54002000
++#define PCAP_BIT_PERIPH_LEDG_CTRL3 0x54004000
++#define PCAP_BIT_PERIPH_LEDR_I0 0x54008000
++#define PCAP_BIT_PERIPH_LEDR_I1 0x54010000
++#define PCAP_BIT_PERIPH_LEDG_I0 0x54020000
++#define PCAP_BIT_PERIPH_LEDG_I1 0x54040000
++#define PCAP_BIT_PERIPH_SKIP 0x54080000
++#define PCAP_BIT_PERIPH_BL2_CTRL0 0x54100000
++#define PCAP_BIT_PERIPH_BL2_CTRL1 0x54200000
++#define PCAP_BIT_PERIPH_BL2_CTRL2 0x54400000
++#define PCAP_BIT_PERIPH_BL2_CTRL3 0x54800000
++#define PCAP_BIT_PERIPH_BL2_CTRL4 0x55000000
++
++#define PCAP_BIT_LOWPWR_VAUX2_STBY 0x60000001
++#define PCAP_BIT_LOWPWR_VAUX2_LOWPWR 0x60000002
++#define PCAP_BIT_LOWPWR_VAUX3_STBY 0x60000004
++#define PCAP_BIT_LOWPWR_VAUX3_LOWPWR 0x60000008
++#define PCAP_BIT_LOWPWR_VAUX4_STBY 0x60000010
++#define PCAP_BIT_LOWPWR_VAUX4_LOWPWR 0x60000020
++#define PCAP_BIT_LOWPWR_VSIM_LOWPWR 0x60000040
++#define PCAP_BIT_LOWPWR_VSIM2_LOWPWR 0x60000080
++#define PCAP_BIT_LOWPWR_SW1_MODE00 0x60000100
++#define PCAP_BIT_LOWPWR_SW1_MODE01 0x60000200
++#define PCAP_BIT_LOWPWR_SW1_MODE10 0x60000400
++#define PCAP_BIT_LOWPWR_SW1_MODE11 0x60000800
++#define PCAP_BIT_LOWPWR_SW10_DVS 0x60001000
++#define PCAP_BIT_LOWPWR_SW11_DVS 0x60002000
++#define PCAP_BIT_LOWPWR_SW12_DVS 0x60004000
++#define PCAP_BIT_LOWPWR_SW13_DVS 0x60008000
++#define PCAP_BIT_LOWPWR_SW2_MODE00 0x60010000
++#define PCAP_BIT_LOWPWR_SW2_MODE01 0x60020000
++#define PCAP_BIT_LOWPWR_SW2_MODE10 0x60040000
++#define PCAP_BIT_LOWPWR_SW2_MODE11 0x60080000
++#define PCAP_BIT_LOWPWR_SW20_DVS 0x60100000
++#define PCAP_BIT_LOWPWR_SW21_DVS 0x60200000
++#define PCAP_BIT_LOWPWR_SW22_DVS 0x60400000
++#define PCAP_BIT_LOWPWR_SW23_DVS 0x60800000
++#define PCAP_BIT_LOWPWR_VC_STBY 0x61000000
++
++extern int ezx_pcap_write(u_int8_t, u_int32_t);
++extern int ezx_pcap_read(u_int8_t, u_int32_t *);
++extern int ezx_pcap_bit_set(u_int32_t, u_int8_t);
++extern int ezx_pcap_bit_get(u_int32_t);
++extern void ezx_pcap_vibrator_level(u_int32_t);
+#endif
Index: linux-2.6.21/include/asm-arm/arch-pxa/irqs.h
===================================================================
---- linux-2.6.21.orig/include/asm-arm/arch-pxa/irqs.h 2007-06-03 02:17:12.000000000 -0300
-+++ linux-2.6.21/include/asm-arm/arch-pxa/irqs.h 2007-06-03 11:14:40.000000000 -0300
+--- linux-2.6.21.orig/include/asm-arm/arch-pxa/irqs.h 2007-08-31 22:28:17.000000000 -0300
++++ linux-2.6.21/include/asm-arm/arch-pxa/irqs.h 2007-08-31 22:34:36.000000000 -0300
+@@ -85,7 +85,7 @@
+ * within sensible limits.
+ */
+ #define IRQ_BOARD_START (IRQ_GPIO(PXA_LAST_GPIO) + 1)
+-#define IRQ_BOARD_END (IRQ_BOARD_START + 16)
++#define IRQ_BOARD_END (IRQ_BOARD_START + 22)
+
+ #define IRQ_SA1111_START (IRQ_BOARD_END)
+ #define IRQ_GPAIN0 (IRQ_BOARD_END + 0)
@@ -176,7 +176,8 @@
#define NR_IRQS (IRQ_LOCOMO_SPI_TEND + 1)
#elif defined(CONFIG_ARCH_LUBBOCK) || \
@@ -1159,7 +791,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/irqs.h
#define NR_IRQS (IRQ_BOARD_END)
#else
#define NR_IRQS (IRQ_BOARD_START)
-@@ -222,3 +223,13 @@
+@@ -222,3 +223,28 @@
#define IRQ_LOCOMO_GPIO_BASE (IRQ_BOARD_START + 1)
#define IRQ_LOCOMO_LT_BASE (IRQ_BOARD_START + 2)
#define IRQ_LOCOMO_SPI_BASE (IRQ_BOARD_START + 3)
@@ -1173,65 +805,39 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/irqs.h
+#define EZX_IRQ_ADCDONE EZX_IRQ(4)
+#define EZX_IRQ_TS EZX_IRQ(5) /* TS touch */
+#define EZX_IRQ_ADCDONE2 EZX_IRQ(6) /* TS x/y ADC ready */
-Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
-===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-03 11:14:40.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-09 14:57:44.000000000 -0300
-@@ -131,11 +131,30 @@
- .resource = ezxbp_resources,
- };
-
-+/* PCAP */
-+static struct resource ezxpcap_resources[] = {
-+ [0] = {
-+ .start = IRQ_GPIO1,
-+ .end = IRQ_GPIO1,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+struct platform_device ezxpcap_device = {
-+ .name = "ezx-pcap",
-+ .id = -1,
-+ .dev = {
-+ .parent = &ezxssp_device.dev,
-+ },
-+ .num_resources = ARRAY_SIZE(ezxpcap_resources),
-+ .resource = ezxpcap_resources,
-+};
-
-
- static struct platform_device *devices[] __initdata = {
- &ezxssp_device,
- &ezxbp_device,
-+ &ezxpcap_device,
- };
-
- /* PM */
++#define EZX_IRQ_WH EZX_IRQ(7)
++#define EZX_IRQ_WL EZX_IRQ(8)
++#define EZX_IRQ_ONOFF EZX_IRQ(9)
++#define EZX_IRQ_ONOFF2 EZX_IRQ(10)
++#define EZX_IRQ_MOBPORT EZX_IRQ(11)
++#define EZX_IRQ_TODA EZX_IRQ(12)
++#define EZX_IRQ_1HZ EZX_IRQ(13)
++#define EZX_IRQ_MNEXB EZX_IRQ(14)
++#define EZX_IRQ_ST EZX_IRQ(15)
++#define EZX_IRQ_PC EZX_IRQ(16)
++#define EZX_IRQ_SYSRST EZX_IRQ(17)
++#define EZX_IRQ_SOFTRESET EZX_IRQ(18)
++#define EZX_IRQ_EOL EZX_IRQ(19)
++#define EZX_IRQ_CLK EZX_IRQ(20)
++#define EZX_IRQ_WARM EZX_IRQ(21)
Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-03 11:14:40.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-09 14:57:46.000000000 -0300
-@@ -105,6 +105,15 @@
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-08-31 22:33:05.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-07 11:06:01.000000000 -0300
+@@ -105,6 +105,9 @@
config EZX_BP
bool "BP Control code for EZX Platform"
+config EZX_PCAP
+ bool "PCAP Support"
+
-+config EZX_MCI_SD
-+ bool
-+
-+config EZX_MCI_TF
-+ bool
-+
endif
endmenu
Index: linux-2.6.21/arch/arm/mach-pxa/Makefile
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-03 11:14:40.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-09 14:57:44.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-08-31 22:33:05.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-07 11:06:01.000000000 -0300
@@ -25,6 +25,7 @@
obj-$(CONFIG_PXA_EZX_A1200) += ezx-a1200.o
obj-$(CONFIG_PXA_EZX_E6) += ezx-e6.o
diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch
index 85b6f5c15d..ff3413f062 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-05-08 16:29:23.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-05-08 16:29:36.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-06-28 19:44:28.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-06-28 19:44:58.000000000 -0300
@@ -22,6 +22,10 @@
#include <asm/arch/pxa-regs.h>
#include <asm/arch/ohci.h>
@@ -29,8 +29,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c
}
Index: linux-2.6.21/arch/arm/mach-pxa/pm.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-05-08 16:29:23.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-05-08 16:29:36.000000000 -0300
+--- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-06-28 19:44:28.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-06-28 19:44:58.000000000 -0300
@@ -24,6 +24,10 @@
#include <asm/arch/lubbock.h>
#include <asm/mach/time.h>
@@ -58,17 +58,17 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pm.c
RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2);
Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
===================================================================
---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-08 16:29:36.000000000 -0300
-+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-08 16:32:56.000000000 -0300
-@@ -18,6 +18,7 @@
- #include <asm/arch/pxafb.h>
+--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-28 19:44:52.000000000 -0300
++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-28 19:44:58.000000000 -0300
+@@ -19,6 +19,7 @@
#include <asm/arch/pxa-regs.h>
#include <asm/arch/ohci.h>
+ #include <asm/arch/ezx.h>
+#include <asm/arch/system.h>
#include "generic.h"
- #include "ezx.h"
-@@ -137,8 +138,69 @@
+
+@@ -122,8 +123,69 @@
&ezxbp_device,
};
@@ -137,4 +137,4 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c
+
CKEN = CKEN9_OSTIMER | CKEN22_MEMC;
- ezx_ssp_set_machinfo(&ezx_ssp_machinfo);
+ pxa_gpio_mode(GPIO_ICL_FFRXD_MD);
diff --git a/packages/linux/linux-ezx-2.6.21/patches/i2c-core-fix-a1200.patch b/packages/linux/linux-ezx-2.6.21/patches/i2c-core-fix-a1200.patch
new file mode 100644
index 0000000000..bd69e38bd7
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/i2c-core-fix-a1200.patch
@@ -0,0 +1,15 @@
+Index: linux-2.6.21/drivers/i2c/i2c-core.c
+===================================================================
+--- linux-2.6.21.orig/drivers/i2c/i2c-core.c 2007-08-20 21:59:45.000000000 +0800
++++ linux-2.6.21/drivers/i2c/i2c-core.c 2007-08-20 22:03:12.000000000 +0800
+@@ -365,8 +365,10 @@
+ list_for_each(item,&adapters) {
+ adapter = list_entry(item, struct i2c_adapter, list);
+ driver->attach_adapter(adapter);
++ goto out; // Alex added for fix the bug otherwise system will be crashed. FIXME
+ }
+ }
++out:
+
+ mutex_unlock(&core_lists);
+ return 0;
diff --git a/packages/linux/linux-ezx-2.6.21/patches/index.html b/packages/linux/linux-ezx-2.6.21/patches/index.html
new file mode 100644
index 0000000000..4d57380e0c
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/index.html
@@ -0,0 +1,60 @@
+<html><head><title>Revision 2047: /trunk/src/kernel-2.6/patches</title></head>
+<body>
+ <h2>Revision 2047: /trunk/src/kernel-2.6/patches</h2>
+ <ul>
+ <li><a href="../">..</a></li>
+ <li><a href="Makefile.OpenEZX">Makefile.OpenEZX</a></li>
+ <li><a href="a1200-mci.patch">a1200-mci.patch</a></li>
+ <li><a href="a1200-pcap.patch">a1200-pcap.patch</a></li>
+ <li><a href="a1200-ts.patch">a1200-ts.patch</a></li>
+ <li><a href="a780-emu.patch">a780-emu.patch</a></li>
+ <li><a href="a780-flip.patch">a780-flip.patch</a></li>
+ <li><a href="a780-kbd.patch">a780-kbd.patch</a></li>
+ <li><a href="a780-leds.patch">a780-leds.patch</a></li>
+ <li><a href="a780-mci.patch">a780-mci.patch</a></li>
+ <li><a href="a780-pcap.patch">a780-pcap.patch</a></li>
+ <li><a href="a780-ts.patch">a780-ts.patch</a></li>
+ <li><a href="a780-vibrator.patch">a780-vibrator.patch</a></li>
+ <li><a href="asoc-pxa-ssp.patch">asoc-pxa-ssp.patch</a></li>
+ <li><a href="defconfig-a1200">defconfig-a1200</a></li>
+ <li><a href="defconfig-a780">defconfig-a780</a></li>
+ <li><a href="defconfig-e2">defconfig-e2</a></li>
+ <li><a href="defconfig-e6">defconfig-e6</a></li>
+ <li><a href="defconfig-e680">defconfig-e680</a></li>
+ <li><a href="dmesg-a780.log">dmesg-a780.log</a></li>
+ <li><a href="e680-emu.patch">e680-emu.patch</a></li>
+ <li><a href="e680-kbd.patch">e680-kbd.patch</a></li>
+ <li><a href="e680-leds.patch">e680-leds.patch</a></li>
+ <li><a href="e680-locksw.patch">e680-locksw.patch</a></li>
+ <li><a href="e680-mci.patch">e680-mci.patch</a></li>
+ <li><a href="e680-pcap.patch">e680-pcap.patch</a></li>
+ <li><a href="e680-ts.patch">e680-ts.patch</a></li>
+ <li><a href="ezx-asoc.patch">ezx-asoc.patch</a></li>
+ <li><a href="ezx-backlight.patch">ezx-backlight.patch</a></li>
+ <li><a href="ezx-bp.patch">ezx-bp.patch</a></li>
+ <li><a href="ezx-core.patch">ezx-core.patch</a></li>
+ <li><a href="ezx-emu.patch">ezx-emu.patch</a></li>
+ <li><a href="ezx-enable-stuart.patch">ezx-enable-stuart.patch</a></li>
+ <li><a href="ezx-mtd-map.patch">ezx-mtd-map.patch</a></li>
+ <li><a href="ezx-pcap.patch">ezx-pcap.patch</a></li>
+ <li><a href="ezx-pm.patch">ezx-pm.patch</a></li>
+ <li><a href="ezx-serial-bug-workaround.patch">ezx-serial-bug-workaround.patch</a></li>
+ <li><a href="mux-fix-init-errorpath.patch">mux-fix-init-errorpath.patch</a></li>
+ <li><a href="mux-fix-makefile.patch">mux-fix-makefile.patch</a></li>
+ <li><a href="mux-fix-tty-driver.patch">mux-fix-tty-driver.patch</a></li>
+ <li><a href="mux-fix.patch">mux-fix.patch</a></li>
+ <li><a href="mux-ifdef-ezx-features.patch">mux-ifdef-ezx-features.patch</a></li>
+ <li><a href="mux-linux-2.6.21-fix.patch">mux-linux-2.6.21-fix.patch</a></li>
+ <li><a href="mux-remove-flipbuffers.patch">mux-remove-flipbuffers.patch</a></li>
+ <li><a href="mux-remove-get_halted_bit.patch">mux-remove-get_halted_bit.patch</a></li>
+ <li><a href="mux-remove-usbh_finished_resume.patch">mux-remove-usbh_finished_resume.patch</a></li>
+ <li><a href="mux_cli.patch">mux_cli.patch</a></li>
+ <li><a href="mux_debug.patch">mux_debug.patch</a></li>
+ <li><a href="patch-2.6.21.4">patch-2.6.21.4</a></li>
+ <li><a href="pcap-ts.patch">pcap-ts.patch</a></li>
+ <li><a href="pxa-kbd.patch">pxa-kbd.patch</a></li>
+ <li><a href="pxa27x-udc-support.2.patch">pxa27x-udc-support.2.patch</a></li>
+ <li><a href="series">series</a></li>
+ </ul>
+ <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a> version 1.1.4 (r13838).</em>
+</body></html> \ No newline at end of file
diff --git a/packages/linux/linux-ezx-2.6.21/patches/mtdfix.patch b/packages/linux/linux-ezx-2.6.21/patches/mtdfix.patch
new file mode 100644
index 0000000000..89a8402681
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/mtdfix.patch
@@ -0,0 +1,41 @@
+--- /tmp/cacheflush.h 2007-09-10 15:22:58.188856413 +0200
++++ linux-2.6.21/include/asm-arm/cacheflush.h 2007-09-10 15:23:14.009757994 +0200
+@@ -418,6 +418,14 @@
+ */
+ #define flush_icache_page(vma,page) do { } while (0)
+
++inline static void flush_ioremap_region(unsigned long phys, void __iomem *virt,
++ unsigned offset, size_t size)
++{
++ const void *start = virt + offset;
++ dmac_inv_range(start, start + size);
++}
++
++
+ #define __cacheid_present(val) (val != read_cpuid(CPUID_ID))
+ #define __cacheid_vivt(val) ((val & (15 << 25)) != (14 << 25))
+ #define __cacheid_vipt(val) ((val & (15 << 25)) == (14 << 25))
+--- /tmp/ezx-flash.c 2007-09-10 15:22:58.192856640 +0200
++++ linux-2.6.21/drivers/mtd/maps/ezx-flash.c 2007-09-10 15:23:24.878377362 +0200
+@@ -21,6 +21,8 @@
+ #include <linux/dma-mapping.h>
+ #include <linux/slab.h>
+
++#include <asm/cacheflush.h>
++
+ #include <linux/mtd/mtd.h>
+ #include <linux/mtd/map.h>
+ #include <linux/mtd/partitions.h>
+@@ -51,11 +53,10 @@
+ "sub pc, pc #4"
+ :"=r"(j));
+ #else
+- consistent_sync((char *)map->cached + from, len, DMA_FROM_DEVICE);
++ flush_ioremap_region(map->phys, map->cached, from, len);
+ #endif
+ }
+
+-
+ struct map_info pxa27x_map = {
+ .name = "PXA27x flash",
+ .size = WINDOW_SIZE,
diff --git a/packages/linux/linux-ezx-2.6.21/patches/pcap-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/pcap-ts.patch
index 28b9c557d3..40ed7f4605 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/pcap-ts.patch
+++ b/packages/linux/linux-ezx-2.6.21/patches/pcap-ts.patch
@@ -1,7 +1,7 @@
Index: linux-2.6.21/drivers/input/touchscreen/Kconfig
===================================================================
---- linux-2.6.21.orig/drivers/input/touchscreen/Kconfig 2007-06-02 20:17:58.000000000 -0300
-+++ linux-2.6.21/drivers/input/touchscreen/Kconfig 2007-06-02 20:18:40.000000000 -0300
+--- linux-2.6.21.orig/drivers/input/touchscreen/Kconfig 2007-08-31 22:27:48.000000000 -0300
++++ linux-2.6.21/drivers/input/touchscreen/Kconfig 2007-08-31 23:06:39.000000000 -0300
@@ -164,4 +164,13 @@
To compile this driver as a module, choose M here: the
module will be called ucb1400_ts.
@@ -19,8 +19,8 @@ Index: linux-2.6.21/drivers/input/touchscreen/Kconfig
Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-06-02 20:19:39.000000000 -0300
-@@ -0,0 +1,372 @@
++++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-08-31 23:57:56.000000000 -0300
+@@ -0,0 +1,331 @@
+/*
+ * pcap_ts.c - Touchscreen driver for Motorola PCAP2 based touchscreen as found
+ * in the EZX phone platform.
@@ -58,23 +58,21 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+#define DEBUGP(x, args ...)
+#endif
+
-+#define PRESSURE 1
-+#define COORDINATE 2
-+#define STANDBY 3
-+
-+extern int ezx_pcap_read(u_int8_t, u_int32_t *);
-+extern int ezx_pcap_write(u_int8_t, u_int32_t);
-+extern int ezx_pcap_bit_set(u_int32_t, u_int8_t);
++#define POSITION_X_MEASUREMENT 0
++#define POSITION_XY_MEASUREMENT 1
++#define PRESSURE_MEASUREMENT 2
++#define PLATE_X_MEASUREMENT 3
++#define PLATE_Y_MEASUREMENT 4
++#define STANDBY_MODE 5
++#define NONTS_MODE 6
+
+struct pcap_ts {
+ int irq_xy;
+ int irq_touch;
+ struct input_dev *input;
+ struct timer_list timer;
-+
+ u_int16_t x, y;
+ u_int16_t pressure;
-+
+ u_int8_t read_state;
+};
+
@@ -91,27 +89,31 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+#define SAMPLE_INTERVAL (HZ/50)
+
+
-+static void pcap_ts_mode(u_int32_t mode)
++static void pcap_ts_mode(struct pcap_ts *pcap_ts, u_int32_t mode)
+{
+ u_int32_t tmp;
+
-+ ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
-+ tmp &= ~SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK;
-+ tmp |= mode;
-+ ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp);
++ pcap_ts->read_state = mode;
++ ezx_pcap_read(PCAP_REG_ADC1, &tmp);
++ tmp &= ~PCAP_ADC1_TS_M_MASK;
++ tmp |= ((mode << PCAP_ADC1_TS_M_SHIFT) & PCAP_ADC1_TS_M_MASK);
++ ezx_pcap_write(PCAP_REG_ADC1, tmp);
+}
+
-+/* issue a XY read command to the ADC of PCAP2. Well get an ADCDONE2 interrupt
++/* issue a XY read command to the ADC of PCAP2. Well get an ADCDONE interrupt
+ * once the result of the conversion is available */
+static void pcap_ts_start_xy_read(struct pcap_ts *pcap_ts)
+{
+ u_int32_t tmp;
+
-+ ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
-+ tmp &= SSP_PCAP_ADC_START_VALUE_SET_MASK;
-+ tmp |= SSP_PCAP_ADC_START_VALUE;
-+ ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ADC2_ASC, 1);
++ ezx_pcap_read(PCAP_REG_ADC1, &tmp);
++ tmp &= ~(PCAP_BIT_ADC1_RAND | PCAP_ADC1_ADA1_MASK |
++ PCAP_ADC1_ADA2_MASK);
++ tmp |= (PCAP_BIT_ADC1_ADEN | PCAP_BIT_ADC1_AD_SEL1 |
++ PCAP_BIT_ADC1_AD_SEL2 | (5 << PCAP_ADC1_ADA1_SHIFT) |
++ (3 << PCAP_ADC1_ADA2_SHIFT));
++ ezx_pcap_write(PCAP_REG_ADC1, tmp);
++ ezx_pcap_bit_set(PCAP_BIT_ADC2_ASC, 1);
+}
+
+/* read the XY result from the ADC of PCAP2 */
@@ -119,17 +121,17 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+{
+ u_int32_t tmp;
+
-+ ezx_pcap_read(SSP_PCAP_ADJ_ADC2_REGISTER, &tmp);
++ ezx_pcap_read(PCAP_REG_ADC2, &tmp);
+
-+ if (pcap_ts->read_state == COORDINATE && !(tmp & 0x00400000)) {
-+ pcap_ts->x = (tmp & SSP_PCAP_ADD1_VALUE_MASK);
-+ pcap_ts->y = (tmp & SSP_PCAP_ADD2_VALUE_MASK)
-+ >>SSP_PCAP_ADD2_VALUE_SHIFT;
++ if (pcap_ts->read_state == POSITION_XY_MEASUREMENT) {
++ pcap_ts->x = (tmp & PCAP_ADC2_ADD1_MASK) >>
++ PCAP_ADC2_ADD1_SHIFT;
++ pcap_ts->y = (tmp & PCAP_ADC2_ADD2_MASK) >>
++ PCAP_ADC2_ADD2_SHIFT;
+ } else {
-+ pcap_ts->pressure = (tmp & SSP_PCAP_ADD2_VALUE_MASK)
-+ >>SSP_PCAP_ADD2_VALUE_SHIFT;
++ pcap_ts->pressure = (tmp & PCAP_ADC2_ADD2_MASK) >>
++ PCAP_ADC2_ADD2_SHIFT;
+ }
-+
+}
+
+/* PCAP2 interrupts us when ADC conversion result is available */
@@ -139,11 +141,10 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+
+ pcap_ts_get_xy_value(pcap_ts);
+ DEBUGP(KERN_DEBUG "%s X=%4d, Y=%4d Z=%4d ",
-+ pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS",
-+ pcap_ts->x, pcap_ts->y, pcap_ts->pressure);
-+
++ pcap_ts->read_state == POSITION_XY_MEASUREMENT ? "COORD" :
++ "PRESS", pcap_ts->x, pcap_ts->y, pcap_ts->pressure);
+ switch (pcap_ts->read_state) {
-+ case PRESSURE:
++ case PRESSURE_MEASUREMENT:
+ if (pcap_ts->pressure >= PRESSURE_MAX ||
+ pcap_ts->pressure <= PRESSURE_MIN ) {
+ /* pen has been released (or cant read pressure - WM)*/
@@ -156,11 +157,10 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+ input_report_abs(pcap_ts->input, ABS_PRESSURE, pcap_ts->pressure);
+ }
+ /* switch state machine into coordinate read mode */
-+ pcap_ts->read_state = COORDINATE;
-+ pcap_ts_mode(PCAP_TS_POSITION_XY_MEASUREMENT);
++ pcap_ts_mode(pcap_ts, POSITION_XY_MEASUREMENT);
+ pcap_ts_start_xy_read(pcap_ts);
+ break;
-+ case COORDINATE:
++ case POSITION_XY_MEASUREMENT:
+ if (pcap_ts->x <= X_AXIS_MIN || pcap_ts->x >= X_AXIS_MAX ||
+ pcap_ts->y <= Y_AXIS_MIN || pcap_ts->y >= Y_AXIS_MAX) {
+ /* pen has been released */
@@ -175,17 +175,15 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+
+ /* ask PCAP2 to interrupt us if touch event happens
+ * again */
-+ pcap_ts->read_state = STANDBY;
-+ pcap_ts_mode(PCAP_TS_STANDBY_MODE);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
++ pcap_ts_mode(pcap_ts, STANDBY_MODE);
++ enable_irq(pcap_ts->irq_touch);
+ } else {
+ DEBUGP("DOWN\n");
+ input_report_abs(pcap_ts->input, ABS_X, pcap_ts->x);
+ input_report_abs(pcap_ts->input, ABS_Y, pcap_ts->y);
+
+ /* switch back to pressure read mode */
-+ pcap_ts->read_state = PRESSURE;
-+ pcap_ts_mode(PCAP_TS_PRESSURE_MEASUREMENT);
++ pcap_ts_mode(pcap_ts, PRESSURE_MEASUREMENT);
+ mod_timer(&pcap_ts->timer, jiffies + SAMPLE_INTERVAL);
+ }
+ input_sync(pcap_ts->input);
@@ -194,7 +192,6 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+ DEBUGP("ERROR\n");
+ break;
+ }
-+
+ return IRQ_HANDLED;
+}
+
@@ -202,17 +199,14 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+static irqreturn_t pcap_ts_irq_touch(int irq, void *dev_id)
+{
+ struct pcap_ts *pcap_ts = dev_id;
-+
+ /* mask Touchscreen interrupt bit, prevents further touch events
+ * from being reported to us until we're finished with reading
+ * both pressure and x/y from ADC */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 1);
++ disable_irq(pcap_ts->irq_touch);
+
+ DEBUGP("touched!!\n");
-+ pcap_ts_mode(PCAP_TS_PRESSURE_MEASUREMENT);
-+ pcap_ts->read_state = PRESSURE;
++ pcap_ts_mode(pcap_ts, PRESSURE_MEASUREMENT);
+ pcap_ts_start_xy_read(pcap_ts);
-+
+ return IRQ_HANDLED;
+}
+
@@ -225,8 +219,6 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+
+static int __init ezxts_probe(struct platform_device *pdev)
+{
-+ int ret;
-+ u_int32_t tmp;
+ struct pcap_ts *pcap_ts;
+ struct input_dev *input_dev;
+ int err = -ENOMEM;
@@ -248,35 +240,8 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+ goto fail;
+ }
+
-+ // Some initialization before done in ssp_pcap_open()
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_TS_REFENB, 0);
-+ // ack interrupts
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ISR_ADCDONE2I, 1);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ISR_TSI, 1);
-+ // unmask interrupts
-+ // ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_MSR_ADCDONE2M, 0);
-+ // set adc bits? FIXME I dont think its necessary - WM
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC2_ADINC1, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC2_ADINC2, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO0, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO1, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO2, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO3, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATOX, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_MTR1, 0);
-+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_MTR2, 0);
-+
-+ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp);
-+ if (ret < 0)
-+ return ret;
-+
-+ tmp &= (~SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK);
-+ tmp |= PCAP_TS_STANDBY_MODE;
-+
-+ ret = ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp);
-+ if (ret < 0)
-+ return ret;
++ ezx_pcap_bit_set(PCAP_BIT_ADC1_TS_REFENB, 0);
++ pcap_ts_mode(pcap_ts, STANDBY_MODE);
+
+ err = request_irq(pcap_ts->irq_xy, pcap_ts_irq_xy, SA_INTERRUPT,
+ "pcap-ts X/Y", pcap_ts);
@@ -301,12 +266,6 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+
+ platform_set_drvdata(pdev, pcap_ts);
+
-+ pcap_ts->read_state = STANDBY;
-+ pcap_ts_mode(PCAP_TS_STANDBY_MODE);
-+
-+ /* enable pressure interrupt */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
-+
+ input_dev->name = "pcap-touchscreen";
+ input_dev->phys = "ezxts/input0";
+ input_dev->id.bustype = BUS_HOST;
@@ -353,15 +312,15 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+
+static int ezxts_suspend(struct platform_device *dev, pm_message_t state)
+{
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ADC1_TS_REF_LOWPWR, 1);
++ ezx_pcap_bit_set(PCAP_BIT_ADC1_TS_REF_LOWPWR, 1);
+ return 0;
+}
+
+static int ezxts_resume(struct platform_device *dev)
+{
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ADC1_TS_REF_LOWPWR, 0);
++ ezx_pcap_bit_set(PCAP_BIT_ADC1_TS_REF_LOWPWR, 0);
+ /* just in case we suspend with TSI masked. */
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0);
++// ezx_pcap_bit_set(PCAP_BIT_MSR_TSM, 0);
+ return 0;
+}
+
@@ -395,8 +354,8 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c
+MODULE_LICENSE("GPL");
Index: linux-2.6.21/drivers/input/touchscreen/Makefile
===================================================================
---- linux-2.6.21.orig/drivers/input/touchscreen/Makefile 2007-06-02 20:17:58.000000000 -0300
-+++ linux-2.6.21/drivers/input/touchscreen/Makefile 2007-06-02 20:18:40.000000000 -0300
+--- linux-2.6.21.orig/drivers/input/touchscreen/Makefile 2007-08-31 22:27:48.000000000 -0300
++++ linux-2.6.21/drivers/input/touchscreen/Makefile 2007-08-31 23:06:39.000000000 -0300
@@ -16,3 +16,4 @@
obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
diff --git a/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch
new file mode 100644
index 0000000000..9ee87ff903
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch
@@ -0,0 +1,35 @@
+Index: linux-2.6.21/drivers/usb/gadget/ether.c
+===================================================================
+--- linux-2.6.21.orig/drivers/usb/gadget/ether.c 2007-08-20 22:05:12.000000000 +0800
++++ linux-2.6.21/drivers/usb/gadget/ether.c 2007-08-20 22:06:25.000000000 +0800
+@@ -2697,10 +2697,16 @@
+ MODULE_LICENSE ("GPL");
+
+
+-static int __init init (void)
++// Alex add FIXME
++int usb_ether_init (void)
+ {
+ return usb_gadget_register_driver (&eth_driver);
+ }
++
++static int __init init (void)
++{
++// return usb_gadget_register_driver (&eth_driver);
++}
+ module_init (init);
+
+ static void __exit cleanup (void)
+Index: linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c
+===================================================================
+--- linux-2.6.21.orig/drivers/usb/gadget/pxa27x_udc.c 2007-08-20 22:07:31.000000000 +0800
++++ linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c 2007-08-20 22:07:47.000000000 +0800
+@@ -2227,6 +2227,8 @@
+ udc_init_ep(udc);
+ udc_reinit(udc);
+
++ usb_ether_init(); // Alex add FIXME
++
+ /* irq setup after old hardware state is cleaned up */
+ retval = request_irq(IRQ_USB, pxa27x_udc_irq,
+ SA_INTERRUPT, driver_name, udc);
diff --git a/packages/linux/linux-ezx-2.6.21/patches/series b/packages/linux/linux-ezx-2.6.21/patches/series
index 5580b74bf8..ecdc30b5fe 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/series
+++ b/packages/linux/linux-ezx-2.6.21/patches/series
@@ -20,10 +20,11 @@ ezx-pm.patch
ezx-pcap.patch
# ezx-pcap TODO:
-# implement a per board init reg array
-# move mmc functions to the ezx-phone.c mmc init
# move vibrator level function to the vibrator driver
+a780-pcap.patch
+e680-pcap.patch
+a1200-pcap.patch
a780-mci.patch
e680-mci.patch
@@ -36,6 +37,9 @@ ezx-emu.patch
# userspace interface for controling emu
# read adc to find which accessory is plugged
+a780-emu.patch
+e680-emu.patch
+
ezx-mtd-map.patch
# ezx-mtd-map TODO:
# at least the original partition should go on the ezx-phone.c file
@@ -89,5 +93,5 @@ mux-linux-2.6.21-fix.patch
# pxa-ohci, ts0710_mux, ts0710_mux_usb, ezx-bp
# incomplete
-#asoc-pxa-ssp.patch
-#ezx-asoc.patch
+asoc-pxa-ssp.patch
+ezx-asoc.patch
diff --git a/packages/linux/linux-ezx-2.6.21/rokre2/.mtn2git_empty b/packages/linux/linux-ezx-2.6.21/rokre2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/rokre2/.mtn2git_empty
diff --git a/packages/linux/linux-ezx-2.6.21/rokre2/defconfig b/packages/linux/linux-ezx-2.6.21/rokre2/defconfig
new file mode 100755
index 0000000000..d4a6e25c00
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/rokre2/defconfig
@@ -0,0 +1,1582 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.21.4
+# Sun Sep 9 16:52:11 2007
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ZONE_DMA=y
+CONFIG_ARCH_MTD_XIP=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION="-ezxdev"
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+# CONFIG_KALLSYMS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+# CONFIG_ELF_CORE is not set
+# CONFIG_BASE_FULL is not set
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=1
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+CONFIG_LSF=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_PNX4008 is not set
+CONFIG_ARCH_PXA=y
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+
+#
+# Intel PXA2xx Implementations
+#
+# CONFIG_ARCH_LUBBOCK is not set
+# CONFIG_MACH_LOGICPD_PXA270 is not set
+# CONFIG_MACH_MAINSTONE is not set
+# CONFIG_ARCH_PXA_IDP is not set
+# CONFIG_PXA_SHARPSL is not set
+# CONFIG_MACH_TRIZEPS4 is not set
+CONFIG_PXA_EZX=y
+# CONFIG_PXA_EZX_E680 is not set
+# CONFIG_PXA_EZX_A780 is not set
+CONFIG_PXA_EZX_E2=y
+# CONFIG_PXA_EZX_A1200 is not set
+# CONFIG_PXA_EZX_E6 is not set
+CONFIG_EZX_BP=y
+CONFIG_EZX_PCAP=y
+CONFIG_EZX_EMU=y
+CONFIG_EZX_EMU_USB=y
+# CONFIG_EZX_EMU_UART is not set
+# CONFIG_EZX_EMU_NOTHING is not set
+CONFIG_PXA27x=y
+CONFIG_PXA_SSP=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_XSCALE=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5T=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+CONFIG_IWMMXT=y
+CONFIG_XSCALE_PMU=y
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_PREEMPT=y
+CONFIG_NO_IDLE_HZ=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=tty1 root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5 ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0 debug mem=32M@0xA0000000 mem=16M@0xAC000000"
+# CONFIG_XIP_KERNEL is not set
+CONFIG_KEXEC=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_FPE_NWFPE is not set
+# CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=m
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+# CONFIG_PM_DEBUG is not set
+# CONFIG_PM_SYSFS_DEPRECATED is not set
+CONFIG_APM_EMULATION=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=m
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+# CONFIG_IPV6_ROUTE_INFO is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# CONFIG_IPV6_MIP6 is not set
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK_ENABLED=m
+CONFIG_NF_CONNTRACK_SUPPORT=y
+# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+CONFIG_NET_CLS_ROUTE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIUSB is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+CONFIG_IEEE80211_SOFTMAC=m
+# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
+CONFIG_WIRELESS_EXT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+CONFIG_CONNECTOR=m
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+# CONFIG_MTD_CFI_I2 is not set
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+CONFIG_MTD_XIP=y
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0x0
+CONFIG_MTD_PHYSMAP_LEN=0x0
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_SHARP_SL is not set
+CONFIG_MTD_EZX=y
+CONFIG_MTD_EZX_A780=y
+# CONFIG_MTD_EZX_A780_ALTERNATE is not set
+# CONFIG_MTD_EZX_E2 is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNPACPI is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_NETLINK is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+# CONFIG_ATA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# PHY device support
+#
+
+#
+# Ethernet (10 or 100Mbit)
+#
+# CONFIG_NET_ETHERNET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+CONFIG_NET_WIRELESS_RTNETLINK=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_ZD1211RW is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+CONFIG_SHAPER=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_TSDEV=y
+CONFIG_INPUT_TSDEV_SCREEN_X=240
+CONFIG_INPUT_TSDEV_SCREEN_Y=320
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_PXA=y
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+CONFIG_TOUCHSCREEN_PCAP=y
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_PXA=y
+CONFIG_SERIAL_PXA_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=8
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+CONFIG_TS0710_MUX=y
+CONFIG_TS0710_MUX_USB=y
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_PXA=m
+# CONFIG_I2C_PXA_SLAVE is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_BITBANG is not set
+CONFIG_SPI_PXA2XX=m
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_AT25 is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+# CONFIG_HWMON is not set
+# CONFIG_HWMON_VID is not set
+
+#
+# Misc devices
+#
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# LED devices
+#
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+
+#
+# Multimedia devices
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2=y
+
+#
+# Video Capture Adapters
+#
+
+#
+# Video Capture Adapters
+#
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_TUNER_3036 is not set
+
+#
+# V4L USB devices
+#
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_VICAM is not set
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_KONICAWC is not set
+# CONFIG_USB_QUICKCAM_MESSENGER is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_VIDEO_OVCAMCHIP is not set
+# CONFIG_USB_W9968CF is not set
+# CONFIG_USB_OV511 is not set
+# CONFIG_USB_SE401 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_STV680 is not set
+# CONFIG_USB_ZC0301 is not set
+# CONFIG_USB_PWC is not set
+
+#
+# Radio Adapters
+#
+# CONFIG_USB_DSBR is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+# CONFIG_USB_DABUSB is not set
+
+#
+# Graphics support
+#
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_BACKLIGHT_EZX=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_PXA=y
+CONFIG_FB_PXA_PARAMETERS=y
+# CONFIG_FB_MBX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+CONFIG_FONT_MINI_4x6=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+CONFIG_SND_PXA2XX_PCM=m
+CONFIG_SND_PXA2XX_AC97=m
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# SoC audio support
+#
+CONFIG_SND_SOC=y
+
+#
+# SoC Platforms
+#
+
+#
+# SoC Audio for the Atmel AT91
+#
+
+#
+# SoC Audio for the Intel PXA2xx
+#
+CONFIG_SND_PXA2XX_SOC=y
+CONFIG_SND_PXA2XX_SOC_SSP=y
+CONFIG_SND_PXA2XX_SOC_EZX=y
+CONFIG_SND_SOC_PCAP2=y
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+
+#
+# HID Devices
+#
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_SUSPEND is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Input Devices
+#
+# CONFIG_USB_HID is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_ACECAD is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_TOUCHSCREEN is not set
+# CONFIG_USB_YEALINK is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+# CONFIG_USB_ATI_REMOTE2 is not set
+# CONFIG_USB_KEYSPAN_REMOTE is not set
+# CONFIG_USB_APPLETOUCH is not set
+# CONFIG_USB_GTCO is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET_MII is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_MON is not set
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+CONFIG_USB_GADGET_PXA27X=y
+CONFIG_USB_PXA27X=y
+# CONFIG_USB_PXA2XX_SMALL is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=y
+# CONFIG_USB_ETH_RNDIS is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_PXA=y
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=m
+CONFIG_RTC_INTF_PROC=m
+CONFIG_RTC_INTF_DEV=m
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_SA1100=m
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=y
+CONFIG_AUTOFS4_FS=y
+# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+CONFIG_CRAMFS=m
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_DEBUG_USER is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-ezx-2.6.21/rokre6/.mtn2git_empty b/packages/linux/linux-ezx-2.6.21/rokre6/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-ezx-2.6.21/rokre6/.mtn2git_empty
diff --git a/packages/linux/linux-ezx-2.6.21/patches/defconfig-e6 b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig
index 75ee2803d9..8a1f55c252 100755
--- a/packages/linux/linux-ezx-2.6.21/patches/defconfig-e6
+++ b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.21.4
-# Wed Jun 13 17:29:19 2007
+# Sun Sep 9 16:52:39 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -36,7 +36,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
#
CONFIG_LOCALVERSION="-ezxdev"
# CONFIG_LOCALVERSION_AUTO is not set
-# CONFIG_SWAP is not set
+CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
@@ -54,21 +54,20 @@ CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
+# CONFIG_KALLSYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
+# CONFIG_ELF_CORE is not set
+# CONFIG_BASE_FULL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
-# CONFIG_SHMEM is not set
+CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
-CONFIG_TINY_SHMEM=y
-CONFIG_BASE_SMALL=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=1
# CONFIG_SLOB is not set
#
@@ -87,7 +86,7 @@ CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
+CONFIG_LSF=y
#
# IO Schedulers
@@ -151,9 +150,12 @@ CONFIG_PXA_EZX=y
# CONFIG_PXA_EZX_E2 is not set
# CONFIG_PXA_EZX_A1200 is not set
CONFIG_PXA_EZX_E6=y
-# CONFIG_EZX_BP is not set
+CONFIG_EZX_BP=y
CONFIG_EZX_PCAP=y
-# CONFIG_EZX_EMU is not set
+CONFIG_EZX_EMU=y
+CONFIG_EZX_EMU_USB=y
+# CONFIG_EZX_EMU_UART is not set
+# CONFIG_EZX_EMU_NOTHING is not set
CONFIG_PXA27x=y
CONFIG_PXA_SSP=y
@@ -194,7 +196,7 @@ CONFIG_PREEMPT=y
CONFIG_NO_IDLE_HZ=y
CONFIG_HZ=100
CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
+CONFIG_OABI_COMPAT=y
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
@@ -211,11 +213,11 @@ CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZBOOT_ROM_BSS=0
-CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000"
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=tty1 root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5 ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0 debug mem=32M@0xA0000000 mem=16M@0xAC000000"
# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
+CONFIG_KEXEC=y
#
# Floating point emulation
@@ -224,6 +226,8 @@ CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169
#
# At least one emulation must be selected
#
+# CONFIG_FPE_NWFPE is not set
+# CONFIG_FPE_FASTFPE is not set
#
# Userspace binary formats
@@ -253,6 +257,10 @@ CONFIG_NET=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
@@ -262,15 +270,15 @@ CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_TUNNEL=m
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
@@ -279,11 +287,155 @@ CONFIG_SYN_COOKIES=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+# CONFIG_IPV6_ROUTE_INFO is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# CONFIG_IPV6_MIP6 is not set
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK_ENABLED=m
+CONFIG_NF_CONNTRACK_SUPPORT=y
+# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_RAW=m
#
# DCCP Configuration (EXPERIMENTAL)
@@ -315,6 +467,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+CONFIG_NET_CLS_ROUTE=y
#
# Network testing
@@ -322,8 +475,35 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_IEEE80211 is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIUSB is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+CONFIG_IEEE80211_SOFTMAC=m
+# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
+CONFIG_WIRELESS_EXT=y
#
# Device Drivers
@@ -345,7 +525,101 @@ CONFIG_CONNECTOR=m
#
# Memory Technology Devices (MTD)
#
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+# CONFIG_MTD_CFI_I2 is not set
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+CONFIG_MTD_XIP=y
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0x0
+CONFIG_MTD_PHYSMAP_LEN=0x0
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_SHARP_SL is not set
+CONFIG_MTD_EZX=y
+CONFIG_MTD_EZX_A780=y
+# CONFIG_MTD_EZX_A780_ALTERNATE is not set
+# CONFIG_MTD_EZX_E2 is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
#
# Parallel port support
@@ -362,10 +636,13 @@ CONFIG_CONNECTOR=m
#
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
@@ -411,7 +688,7 @@ CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
+CONFIG_TUN=m
#
# PHY device support
@@ -437,7 +714,16 @@ CONFIG_DUMMY=y
#
# Wireless LAN (non-hamradio)
#
-# CONFIG_NET_RADIO is not set
+CONFIG_NET_RADIO=y
+CONFIG_NET_WIRELESS_RTNETLINK=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_HOSTAP is not set
+# CONFIG_ZD1211RW is not set
#
# Wan interfaces
@@ -450,11 +736,11 @@ CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPP_MPPE is not set
-# CONFIG_PPPOE is not set
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
# CONFIG_SLIP is not set
CONFIG_SLHC=m
-# CONFIG_SHAPER is not set
+CONFIG_SHAPER=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
@@ -558,6 +844,8 @@ CONFIG_HW_RANDOM=y
# TPM devices
#
# CONFIG_TCG_TPM is not set
+CONFIG_TS0710_MUX=y
+CONFIG_TS0710_MUX_USB=y
#
# I2C support
@@ -654,7 +942,50 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
#
# Multimedia devices
#
-# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2=y
+
+#
+# Video Capture Adapters
+#
+
+#
+# Video Capture Adapters
+#
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_TUNER_3036 is not set
+
+#
+# V4L USB devices
+#
+# CONFIG_VIDEO_PVRUSB2 is not set
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_USBVISION is not set
+# CONFIG_USB_VICAM is not set
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_KONICAWC is not set
+# CONFIG_USB_QUICKCAM_MESSENGER is not set
+# CONFIG_USB_ET61X251 is not set
+# CONFIG_VIDEO_OVCAMCHIP is not set
+# CONFIG_USB_W9968CF is not set
+# CONFIG_USB_OV511 is not set
+# CONFIG_USB_SE401 is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_STV680 is not set
+# CONFIG_USB_ZC0301 is not set
+# CONFIG_USB_PWC is not set
+
+#
+# Radio Adapters
+#
+# CONFIG_USB_DSBR is not set
#
# Digital Video Broadcasting Devices
@@ -667,8 +998,8 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-# CONFIG_BACKLIGHT_EZX is not set
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_BACKLIGHT_EZX=y
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
@@ -712,12 +1043,79 @@ CONFIG_FONT_MINI_4x6=y
#
# Logo configuration
#
-# CONFIG_LOGO is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
#
# Sound
#
-# CONFIG_SOUND is not set
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DUMMY=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# ALSA ARM devices
+#
+CONFIG_SND_PXA2XX_PCM=m
+CONFIG_SND_PXA2XX_AC97=m
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# SoC audio support
+#
+CONFIG_SND_SOC=y
+
+#
+# SoC Platforms
+#
+
+#
+# SoC Audio for the Atmel AT91
+#
+
+#
+# SoC Audio for the Intel PXA2xx
+#
+CONFIG_SND_PXA2XX_SOC=y
+CONFIG_SND_PXA2XX_SOC_SSP=y
+CONFIG_SND_PXA2XX_SOC_EZX=y
+CONFIG_SND_SOC_PCAP2=y
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
#
# HID Devices
@@ -879,7 +1277,34 @@ CONFIG_MMC_PXA=y
# Real Time Clock
#
CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
+CONFIG_RTC_CLASS=m
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=m
+CONFIG_RTC_INTF_PROC=m
+CONFIG_RTC_INTF_DEV=m
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_SA1100=m
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_V3020 is not set
#
# File systems
@@ -905,7 +1330,11 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
@@ -917,6 +1346,7 @@ CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
@@ -924,7 +1354,8 @@ CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
-# CONFIG_UDF_FS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
@@ -942,7 +1373,8 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
-# CONFIG_TMPFS is not set
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
@@ -957,6 +1389,7 @@ CONFIG_RAMFS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
CONFIG_CRAMFS=m
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
@@ -967,24 +1400,26 @@ CONFIG_CRAMFS=m
#
# Network File Systems
#
-CONFIG_NFS_FS=m
+CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
-# CONFIG_NFS_V4 is not set
+CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
-# CONFIG_NFSD_V4 is not set
+CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
-CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-# CONFIG_RPCSEC_GSS_KRB5 is not set
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
@@ -1085,7 +1520,48 @@ CONFIG_FRAME_POINTER=y
#
# Cryptographic options
#
-# CONFIG_CRYPTO is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
#
# Library routines
@@ -1097,6 +1573,10 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-ezx_2.6.21.bb b/packages/linux/linux-ezx_2.6.21.bb
index 8b111a2c44..892d4f2249 100644
--- a/packages/linux/linux-ezx_2.6.21.bb
+++ b/packages/linux/linux-ezx_2.6.21.bb
@@ -3,29 +3,32 @@ SECTION = "kernel"
AUTHOR = "Harald Welte and the OpenEZX Team <openezx-devel@lists.openezx.org>"
HOMEPAGE = "http://www.openezx.org"
LICENSE = "GPL"
-DEPENDS += "quilt-native"
EZX = "ezxdev"
-PR = "${EZX}-r6"
+PR = "${EZX}-r11"
inherit kernel
-##############################################################
-# source and patches
-#
+require linux.inc
+
SRC_URI = " \
${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://logo_linux_clut224.ppm \
- \
+ \
file://patches/patch-2.6.21.4;patch=1 \
file://patches/ezx-core.patch;patch=1 \
file://patches/ezx-bp.patch;patch=1 \
file://patches/ezx-pm.patch;patch=1 \
file://patches/ezx-pcap.patch;patch=1 \
+ file://patches/a780-pcap.patch;patch=1 \
+ file://patches/e680-pcap.patch;patch=1 \
+ file://patches/a1200-pcap.patch;patch=1 \
file://patches/a780-mci.patch;patch=1 \
file://patches/e680-mci.patch;patch=1 \
file://patches/a1200-mci.patch;patch=1 \
file://patches/pxa27x-udc-support.2.patch;patch=1 \
file://patches/ezx-emu.patch;patch=1 \
+ file://patches/a780-emu.patch;patch=1 \
+ file://patches/e680-emu.patch;patch=1 \
file://patches/ezx-mtd-map.patch;patch=1 \
file://patches/ezx-serial-bug-workaround.patch;patch=1 \
file://patches/pxa-kbd.patch;patch=1 \
@@ -35,6 +38,8 @@ SRC_URI = " \
file://patches/a780-ts.patch;patch=1 \
file://patches/e680-ts.patch;patch=1 \
file://patches/a1200-ts.patch;patch=1 \
+ file://patches/ezx-eoc.patch;patch=1 \
+ file://patches/a1200-eoc.patch;patch=1 \
file://patches/ezx-backlight.patch;patch=1 \
file://patches/a780-flip.patch;patch=1 \
file://patches/e680-locksw.patch;patch=1 \
@@ -50,12 +55,12 @@ SRC_URI = " \
file://patches/mux-fix-makefile.patch;patch=1 \
file://patches/mux-fix-tty-driver.patch;patch=1 \
file://patches/mux-linux-2.6.21-fix.patch;patch=1 \
- file://patches/defconfig-a1200 \
- file://patches/defconfig-a780 \
- file://patches/defconfig-e2 \
- file://patches/defconfig-e6 \
- file://patches/defconfig-e680 \
- \
+ file://patches/asoc-pxa-ssp.patch;patch=1 \
+ file://patches/asoc-fix-loopback.patch;patch=1 \
+ file://patches/ezx-asoc.patch;patch=1 \
+ file://patches/mtdfix.patch;patch=1 \
+ file://defconfig \
+ \
"
S = "${WORKDIR}/linux-${PV}"
@@ -68,19 +73,19 @@ FILES_kernel-image = ""
ALLOW_EMPTY = "1"
COMPATIBLE_HOST = "arm.*-linux"
-COMPATIBLE_MACHINE = '(a780|e680|a1200)'
+COMPATIBLE_MACHINE = '(a780|e680|a1200|rorkre2|rokre6)'
# For now the code for serial console is disabled in compress.c
-#CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 noinitrd"
-CMDLINE_CON = "console=tty1 noinitrd"
+#CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 "
+CMDLINE_CON = "console=tty1 "
CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5"
# uncomment if you want to boot over NFS
-#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3"
+#CMDLINE_ROOT = "root=301 root=/dev/nfs nfsroot=192.168.0.200:/export/ezx-image rootdelay=5 "
# uncomment to enable dyntick
#CMDLINE_OTHER = "dyntick=enable"
CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}'
-CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off"
+CMDLINE_IP = "ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0"
CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG} mem=32M@0xA0000000 mem=16M@0xAC000000"
###############################################################
@@ -89,44 +94,6 @@ CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDL
#module_autoload_pxaficp_ir = "pxaficp_ir"
#module_autoload_snd-pcm-oss = "snd-pcm-oss"
-do_configure() {
- install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
-
- if [ ! -e ${WORKDIR}/patches/defconfig-${MACHINE} ]; then
- die "No default configuration for ${MACHINE} available."
- fi
-
- echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
-
- if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
- echo "CONFIG_AEABI=y" >> ${S}/.config
- echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
- else
- echo "# CONFIG_AEABI is not set" >> ${S}/.config
- echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
- fi
-
- #
- # Logo configuration
- #
- echo "CONFIG_LOGO=y" >> ${S}/.config
- echo "CONFIG_LOGO_LINUX_CLUT224=y" >> ${S}/.config
-
-
- sed -e '/CONFIG_AEABI/d' \
- -e '/CONFIG_OABI_COMPAT=/d' \
- -e '/CONFIG_CMDLINE=/d' \
- -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
- -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
- -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
- -e '/CONFIG_MTDRAM_ABS_POS=/d' \
- -e '/CONFIG_LOGO=/d' \
- -e '/CONFIG_LOGO_LINUX_CLUT224=/d' \
- '${WORKDIR}/patches/defconfig-${MACHINE}' >>'${S}/.config'
-
- yes '' | oe_runmake oldconfig
-}
-
###############################################################
# check the kernel is below the 1024*1024 byte limit for the boot-over usb
#
@@ -139,15 +106,3 @@ do_compile_append() {
fi
}
-###############################################################
-# put into deploy directory
-#
-do_deploy() {
- install -d ${DEPLOY_DIR_IMAGE}
- install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
- tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${PV}-${PR}-${MACHINE}-${DATETIME}.tgz -C ${D} lib
-}
-
-do_deploy[dirs] = "${S}"
-
-addtask deploy before do_package after do_install
diff --git a/packages/linux/linux-handhelds-2.6/asus620/defconfig b/packages/linux/linux-handhelds-2.6/asus620/defconfig
index 898cf0430e..298de888a4 100644
--- a/packages/linux/linux-handhelds-2.6/asus620/defconfig
+++ b/packages/linux/linux-handhelds-2.6/asus620/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:35 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:23 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -171,6 +171,10 @@ CONFIG_A620_TS=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -402,50 +406,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -487,21 +448,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -555,17 +514,15 @@ CONFIG_MTDRAM_ERASE_SIZE=256
#
# NAND Flash Device Drivers
#
-CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_H1900 is not set
-CONFIG_MTD_NAND_IDS=y
-CONFIG_MTD_NAND_DISKONCHIP=y
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_DISKONCHIP=m
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
# CONFIG_MTD_NAND_SHARPSL is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
#
# OneNAND Flash Device Drivers
@@ -586,7 +543,8 @@ CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -714,6 +672,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MOUSE=y
@@ -828,12 +787,24 @@ CONFIG_ADC=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -853,6 +824,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -860,6 +832,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1060,9 +1033,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1152,8 +1125,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1227,16 +1200,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1246,7 +1218,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1258,7 +1230,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1276,9 +1248,9 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_REED_SOLOMON=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
diff --git a/packages/linux/linux-handhelds-2.6/asus730/defconfig b/packages/linux/linux-handhelds-2.6/asus730/defconfig
index 29729e0123..6a20433779 100644
--- a/packages/linux/linux-handhelds-2.6/asus730/defconfig
+++ b/packages/linux/linux-handhelds-2.6/asus730/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:35 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:24 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -167,6 +167,10 @@ CONFIG_MACH_A730=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -408,69 +412,8 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
-CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIDTL1 is not set
-# CONFIG_BT_HCIBT3C is not set
-# CONFIG_BT_HCIBLUECARD is not set
-# CONFIG_BT_HCIBTUART is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
@@ -519,8 +462,14 @@ CONFIG_MTD_BLOCK=y
#
# RAM/ROM/Flash chip drivers
#
-# CONFIG_MTD_CFI is not set
+CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -531,15 +480,24 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set
+# CONFIG_MTD_XIP is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_IPAQ is not set
# CONFIG_MTD_SHARP_SL is not set
# CONFIG_MTD_PLATRAM is not set
@@ -563,14 +521,7 @@ CONFIG_MTDRAM_ERASE_SIZE=256
#
# NAND Flash Device Drivers
#
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_H1900 is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_SHARPSL is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND is not set
#
# OneNAND Flash Device Drivers
@@ -591,7 +542,8 @@ CONFIG_MTD_NAND_IDS=y
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -600,7 +552,29 @@ CONFIG_MTD_NAND_IDS=y
#
# ATA/ATAPI/MFM/RLL support
#
-# CONFIG_IDE is not set
+CONFIG_IDE=y
+CONFIG_IDE_MAX_HWIFS=4
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECS=y
+# CONFIG_BLK_DEV_IDECD is not set
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+# CONFIG_IDE_ARM is not set
+# CONFIG_BLK_DEV_IDEDMA is not set
+# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
@@ -724,6 +698,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
# CONFIG_KEYBOARD_PXA27x is not set
# CONFIG_KEYBOARD_GPIO is not set
@@ -876,12 +851,24 @@ CONFIG_ADC=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -901,6 +888,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -908,6 +896,8 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1033,8 +1023,7 @@ CONFIG_AC97_BUS=m
#
# HID Devices
#
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
#
# USB support
@@ -1154,9 +1143,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1183,7 +1172,18 @@ CONFIG_RAMFS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-# CONFIG_JFFS2_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
@@ -1246,8 +1246,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1321,16 +1321,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1340,7 +1339,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1352,7 +1351,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
diff --git a/packages/linux/linux-handhelds-2.6/aximx50/defconfig b/packages/linux/linux-handhelds-2.6/aximx50/defconfig
index fcbcefeaf7..6e67c1b951 100644
--- a/packages/linux/linux-handhelds-2.6/aximx50/defconfig
+++ b/packages/linux/linux-handhelds-2.6/aximx50/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:36 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:24 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,6 +166,10 @@ CONFIG_ARCH_PXA=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -402,65 +406,8 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
-CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
@@ -485,21 +432,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -574,7 +519,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -702,6 +648,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_PXA27x=y
CONFIG_KEYBOARD_GPIO=y
@@ -719,8 +666,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -827,12 +773,24 @@ CONFIG_ADC_ADS7846_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -852,6 +810,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -859,6 +818,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -944,8 +904,7 @@ CONFIG_SOUND=y
#
# HID Devices
#
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
#
# USB support
@@ -1059,9 +1018,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1151,8 +1110,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1226,16 +1185,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1245,7 +1203,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1257,7 +1215,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1275,8 +1233,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/eteng500/defconfig b/packages/linux/linux-handhelds-2.6/eteng500/defconfig
index 45c2ec3605..2f98f121f1 100644
--- a/packages/linux/linux-handhelds-2.6/eteng500/defconfig
+++ b/packages/linux/linux-handhelds-2.6/eteng500/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:36 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:25 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -395,64 +395,8 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
@@ -477,21 +421,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -544,16 +486,15 @@ CONFIG_MTDRAM_ERASE_SIZE=256
#
# NAND Flash Device Drivers
#
-CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND_IDS=y
-CONFIG_MTD_NAND_S3C2410=y
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_S3C2410=m
# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
CONFIG_MTD_NAND_S3C2410_HWECC=y
CONFIG_MTD_NAND_S3C2410_CLKSTOP=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
#
# OneNAND Flash Device Drivers
@@ -574,7 +515,8 @@ CONFIG_MTD_NAND_S3C2410_CLKSTOP=y
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -702,6 +644,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MOUSE=y
@@ -722,7 +665,6 @@ CONFIG_TOUCHSCREEN_S3C2410=y
# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
CONFIG_TOUCHSCREEN_S3C2410_ALT=y
# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -823,12 +765,24 @@ CONFIG_ADC=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -847,6 +801,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_S3C24XX=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -854,6 +809,7 @@ CONFIG_LEDS_S3C24XX=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -939,8 +895,7 @@ CONFIG_SOUND=y
#
# HID Devices
#
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
#
# USB support
@@ -1053,9 +1008,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1145,8 +1100,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1222,16 +1177,15 @@ CONFIG_DEBUG_S3C2410_UART=0
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1241,7 +1195,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1253,7 +1207,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1271,7 +1225,7 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
diff --git a/packages/linux/linux-handhelds-2.6/h1910/defconfig b/packages/linux/linux-handhelds-2.6/h1910/defconfig
index 4a9bd9806e..f5c86e791a 100644
--- a/packages/linux/linux-handhelds-2.6/h1910/defconfig
+++ b/packages/linux/linux-handhelds-2.6/h1910/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:37 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:25 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -168,6 +168,10 @@ CONFIG_IPAQ_H1900_BUTTONS=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -400,65 +404,8 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
-CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
@@ -483,21 +430,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -572,7 +517,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -700,6 +646,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
# CONFIG_KEYBOARD_ASIC3 is not set
# CONFIG_KEYBOARD_GPIO is not set
@@ -718,7 +665,6 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -855,12 +801,24 @@ CONFIG_ADC=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -881,6 +839,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
# CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -888,6 +847,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1007,8 +967,7 @@ CONFIG_SND_UDA1380=m
#
# HID Devices
#
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
#
# USB support
@@ -1129,9 +1088,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1221,8 +1180,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1296,16 +1255,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1315,7 +1273,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1327,7 +1285,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1345,8 +1303,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/h3600/defconfig b/packages/linux/linux-handhelds-2.6/h3600/defconfig
index 98701e2ab1..136d00d028 100644
--- a/packages/linux/linux-handhelds-2.6/h3600/defconfig
+++ b/packages/linux/linux-handhelds-2.6/h3600/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:38 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:26 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -383,65 +383,8 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-# CONFIG_SA1100_FIR is not set
-CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
@@ -555,7 +498,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -689,6 +633,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_MICRO=y
CONFIG_KEYBOARD_GPIO=y
@@ -711,7 +656,6 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
CONFIG_TOUCHSCREEN_IPAQ_MICRO=y
# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -817,13 +761,25 @@ CONFIG_ADC=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
CONFIG_IPAQ_MICRO=y
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -846,6 +802,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -853,6 +810,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -937,8 +895,7 @@ CONFIG_SOUND=y
#
# HID Devices
#
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
#
# USB support
@@ -1039,9 +996,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1142,8 +1099,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1217,16 +1174,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1236,7 +1192,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1248,7 +1204,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
diff --git a/packages/linux/linux-handhelds-2.6/h3800/defconfig b/packages/linux/linux-handhelds-2.6/h3800/defconfig
index 6193ee260c..a9c5731529 100644
--- a/packages/linux/linux-handhelds-2.6/h3800/defconfig
+++ b/packages/linux/linux-handhelds-2.6/h3800/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:38 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:26 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -381,65 +381,8 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-# CONFIG_SA1100_FIR is not set
-CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
@@ -553,7 +496,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -687,6 +631,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_ASIC2=y
CONFIG_KEYBOARD_GPIO=y
@@ -709,7 +654,6 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
CONFIG_TOUCHSCREEN_ASIC2=y
# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -815,12 +759,24 @@ CONFIG_ADC=y
CONFIG_ADC_ASIC2=y
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
CONFIG_HTC_ASIC2=y
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -843,6 +799,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -850,6 +807,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -934,8 +892,7 @@ CONFIG_SOUND=y
#
# HID Devices
#
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
#
# USB support
@@ -1036,9 +993,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1139,8 +1096,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1214,16 +1171,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1233,7 +1189,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1245,7 +1201,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
diff --git a/packages/linux/linux-handhelds-2.6/h3900/defconfig b/packages/linux/linux-handhelds-2.6/h3900/defconfig
index 93a03a3b1d..86ce0ff51e 100644
--- a/packages/linux/linux-handhelds-2.6/h3900/defconfig
+++ b/packages/linux/linux-handhelds-2.6/h3900/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:39 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:27 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -169,6 +169,10 @@ CONFIG_IPAQ_H3900_BATTERY=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -401,50 +405,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -573,7 +534,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -701,6 +663,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_ASIC2=y
# CONFIG_KEYBOARD_ASIC3 is not set
@@ -721,7 +684,6 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
CONFIG_TOUCHSCREEN_ASIC2=y
# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -864,12 +826,24 @@ CONFIG_ADC=y
CONFIG_ADC_ASIC2=y
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
CONFIG_HTC_ASIC2=y
CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -890,6 +864,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
# CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -897,6 +872,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1135,9 +1111,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1238,8 +1214,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1313,16 +1289,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1332,7 +1307,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1344,7 +1319,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
diff --git a/packages/linux/linux-handhelds-2.6/h4000/defconfig b/packages/linux/linux-handhelds-2.6/h4000/defconfig
index be5a4e8fa7..733205b82f 100644
--- a/packages/linux/linux-handhelds-2.6/h4000/defconfig
+++ b/packages/linux/linux-handhelds-2.6/h4000/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:39 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:27 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -158,11 +158,11 @@ CONFIG_BOARD_IRQ_MAP_BIG=y
# CONFIG_MACH_H3900 is not set
CONFIG_MACH_H4000=y
CONFIG_MACH_H4300=y
-CONFIG_IPAQ_H4000_IRDA=y
+CONFIG_IPAQ_H4000_IRDA=m
CONFIG_IPAQ_H4000_LCD=y
CONFIG_IPAQ_H4000_BACKLIGHT=y
CONFIG_IPAQ_H4000_PCMCIA=y
-CONFIG_IPAQ_H4000_BUTTONS=y
+# CONFIG_IPAQ_H4000_BUTTONS is not set
CONFIG_IPAQ_H4000_LEDS=y
CONFIG_IPAQ_H4000_BT=m
CONFIG_IPAQ_H4300_KBD=y
@@ -175,6 +175,10 @@ CONFIG_IPAQ_H4300_KBD=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -417,14 +421,14 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
+CONFIG_IRDA=m
#
# IrDA protocols
#
-CONFIG_IRLAN=y
+CONFIG_IRLAN=m
# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
+CONFIG_IRCOMM=m
CONFIG_IRDA_ULTRA=y
#
@@ -441,7 +445,7 @@ CONFIG_IRDA_DEBUG=y
#
# SIR device drivers
#
-CONFIG_IRTTY_SIR=y
+CONFIG_IRTTY_SIR=m
#
# Dongle support
@@ -460,7 +464,7 @@ CONFIG_IRTTY_SIR=y
#
# FIR device drivers
#
-CONFIG_PXA_FICP=y
+CONFIG_PXA_FICP=m
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -606,7 +610,8 @@ CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -769,8 +774,9 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
-CONFIG_KEYBOARD_ASIC3=y
+# CONFIG_KEYBOARD_ASIC3 is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MOUSE=y
# CONFIG_MOUSE_PS2 is not set
@@ -786,8 +792,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -936,12 +941,24 @@ CONFIG_ADC_ADS7846_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -962,6 +979,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -969,6 +987,7 @@ CONFIG_LEDS_ASIC3=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1216,9 +1235,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1245,7 +1264,18 @@ CONFIG_RAMFS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-# CONFIG_JFFS2_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
@@ -1308,8 +1338,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1383,16 +1413,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1402,7 +1431,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1414,7 +1443,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
diff --git a/packages/linux/linux-handhelds-2.6/h5000/defconfig b/packages/linux/linux-handhelds-2.6/h5000/defconfig
index 5648da3d69..72c4521ff6 100644
--- a/packages/linux/linux-handhelds-2.6/h5000/defconfig
+++ b/packages/linux/linux-handhelds-2.6/h5000/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:40 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:28 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -164,14 +164,16 @@ CONFIG_ARCH_H5400=y
CONFIG_IPAQ_H5400_BT=m
CONFIG_IPAQ_H5400_LCD=y
CONFIG_IPAQ_H5400_BL=y
-CONFIG_IPAQ_H5400_POWER=y
-CONFIG_IPAQ_H5400_LEDS=y
# CONFIG_MACH_HIMALAYA is not set
# CONFIG_MACH_HTCUNIVERSAL is not set
# CONFIG_MACH_HTCALPINE is not set
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -403,14 +405,14 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
+CONFIG_IRDA=m
#
# IrDA protocols
#
-CONFIG_IRLAN=y
+CONFIG_IRLAN=m
# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
+CONFIG_IRCOMM=m
CONFIG_IRDA_ULTRA=y
#
@@ -427,7 +429,7 @@ CONFIG_IRDA_DEBUG=y
#
# SIR device drivers
#
-CONFIG_IRTTY_SIR=y
+CONFIG_IRTTY_SIR=m
#
# Dongle support
@@ -446,7 +448,7 @@ CONFIG_IRTTY_SIR=y
#
# FIR device drivers
#
-CONFIG_PXA_FICP=y
+CONFIG_PXA_FICP=m
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -593,7 +595,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -721,6 +724,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_GPIODEV_KEYS=y
+# CONFIG_GPIODEV_KEYS2 is not set
CONFIG_GPIODEV_DIAGONAL=y
# CONFIG_KEYBOARD_GPIO is not set
CONFIG_INPUT_MOUSE=y
@@ -737,8 +741,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -860,12 +863,25 @@ CONFIG_ADC=y
CONFIG_ADC_SAMCOP=y
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+# CONFIG_IPAQ_SAMCOP_FSI is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
CONFIG_SOC_SAMCOP=y
# CONFIG_SOC_HAMCOP is not set
@@ -888,6 +904,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_SAMCOP=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -895,6 +912,7 @@ CONFIG_LEDS_SAMCOP=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1095,9 +1113,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1198,8 +1216,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1273,16 +1291,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1292,7 +1309,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1304,7 +1321,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
diff --git a/packages/linux/linux-handhelds-2.6/htcalpine/defconfig b/packages/linux/linux-handhelds-2.6/htcalpine/defconfig
index 5baca8a55f..28589c7315 100644
--- a/packages/linux/linux-handhelds-2.6/htcalpine/defconfig
+++ b/packages/linux/linux-handhelds-2.6/htcalpine/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:41 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:29 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -168,6 +168,10 @@ CONFIG_HTCALPINE_PHONE=m
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -400,50 +404,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -485,21 +446,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -574,7 +533,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -702,6 +662,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
# CONFIG_KEYBOARD_PXA27x is not set
CONFIG_KEYBOARD_GPIO=y
@@ -719,8 +680,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -822,12 +782,24 @@ CONFIG_ADC_ADS7846_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -847,6 +819,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -854,6 +827,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1054,9 +1028,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1146,8 +1120,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1221,16 +1195,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1240,7 +1213,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1252,7 +1225,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1270,8 +1243,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/htcapache/defconfig b/packages/linux/linux-handhelds-2.6/htcapache/defconfig
index 962fc2628c..da4ac6ba8d 100644
--- a/packages/linux/linux-handhelds-2.6/htcapache/defconfig
+++ b/packages/linux/linux-handhelds-2.6/htcapache/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:41 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:30 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,6 +166,10 @@ CONFIG_BOARD_IRQ_MAP_SMALL=y
# CONFIG_MACH_MAGICIAN is not set
CONFIG_MACH_HTCAPACHE=y
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -400,50 +404,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -486,21 +447,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -575,7 +534,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -713,6 +673,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_GPIODEV_KEYS=y
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_PXA27x=y
CONFIG_KEYBOARD_GPIO=y
@@ -731,7 +692,6 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
CONFIG_TOUCHSCREEN_ADC=y
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -868,12 +828,24 @@ CONFIG_ADC=y
CONFIG_ADC_AD7877=y
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
CONFIG_HTC_EGPIO=y
+CONFIG_HTC_BBKEYS=y
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -893,6 +865,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+CONFIG_LEDS_GPIO=y
#
# LED Triggers
@@ -900,6 +873,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1140,9 +1114,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1232,8 +1206,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1307,16 +1281,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1326,7 +1299,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1338,7 +1311,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1356,8 +1329,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/htcbeetles/.mtn2git_empty b/packages/linux/linux-handhelds-2.6/htcbeetles/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-handhelds-2.6/htcbeetles/.mtn2git_empty
diff --git a/packages/linux/linux-handhelds-2.6/htcbeetles/defconfig b/packages/linux/linux-handhelds-2.6/htcbeetles/defconfig
new file mode 100644
index 0000000000..417a2e919c
--- /dev/null
+++ b/packages/linux/linux-handhelds-2.6/htcbeetles/defconfig
@@ -0,0 +1,1257 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:30 2007
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ZONE_DMA=y
+CONFIG_ARCH_MTD_XIP=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+# CONFIG_UID16 is not set
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_PNX4008 is not set
+CONFIG_ARCH_PXA=y
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_BOARD_IRQ_MAP_SMALL is not set
+CONFIG_BOARD_IRQ_MAP_BIG=y
+
+#
+# Intel PXA2xx Implementations
+#
+# CONFIG_ARCH_LUBBOCK is not set
+# CONFIG_MACH_LOGICPD_PXA270 is not set
+# CONFIG_MACH_MAINSTONE is not set
+# CONFIG_ARCH_PXA_IDP is not set
+# CONFIG_TOSHIBA_TMIO_OHCI is not set
+# CONFIG_ARCH_ESERIES is not set
+# CONFIG_MACH_A620 is not set
+# CONFIG_MACH_A716 is not set
+# CONFIG_MACH_A730 is not set
+# CONFIG_ARCH_H1900 is not set
+# CONFIG_ARCH_H2200 is not set
+# CONFIG_MACH_H3900 is not set
+# CONFIG_MACH_H4000 is not set
+# CONFIG_MACH_H4700 is not set
+# CONFIG_MACH_HX2750 is not set
+# CONFIG_ARCH_H5400 is not set
+# CONFIG_MACH_HIMALAYA is not set
+# CONFIG_MACH_HTCUNIVERSAL is not set
+# CONFIG_MACH_HTCALPINE is not set
+# CONFIG_MACH_MAGICIAN is not set
+# CONFIG_MACH_HTCAPACHE is not set
+# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
+CONFIG_MACH_HTCBEETLES=y
+# CONFIG_MACH_HW6900 is not set
+# CONFIG_HTCSABLE_LCD is not set
+# CONFIG_HTCSABLE_BACKLIGHT is not set
+# CONFIG_HTCSABLE_ROM is not set
+# CONFIG_HTCSABLE_BT is not set
+# CONFIG_HTCSABLE_PHONE is not set
+# CONFIG_MACH_HTCATHENA is not set
+# CONFIG_ARCH_AXIMX3 is not set
+# CONFIG_ARCH_AXIMX5 is not set
+# CONFIG_MACH_X30 is not set
+# CONFIG_MACH_X50 is not set
+# CONFIG_ARCH_ROVERP1 is not set
+# CONFIG_ARCH_ROVERP5P is not set
+# CONFIG_MACH_XSCALE_PALMLD is not set
+# CONFIG_MACH_T3XSCALE is not set
+# CONFIG_MACH_RECON is not set
+# CONFIG_MACH_GHI270HG is not set
+# CONFIG_MACH_GHI270 is not set
+# CONFIG_MACH_LOOXC550 is not set
+# CONFIG_PXA_SHARPSL is not set
+# CONFIG_MACH_TRIZEPS4 is not set
+CONFIG_PXA27x=y
+# CONFIG_PXA27x_VOLTAGE is not set
+
+#
+# Linux As Bootloader
+#
+# CONFIG_LAB is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_XSCALE=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5T=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_OUTER_CACHE is not set
+CONFIG_IWMMXT=y
+CONFIG_XSCALE_PMU=y
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_PREEMPT=y
+CONFIG_NO_IDLE_HZ=y
+CONFIG_HZ=100
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="keepinitrd"
+# CONFIG_XIP_KERNEL is not set
+CONFIG_KEXEC=y
+# CONFIG_TXTOFFSET_DELTA is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_DEBUG=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_PXA=y
+CONFIG_PXA25x_ALTERNATE_FREQS=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+# CONFIG_PM_DEBUG is not set
+CONFIG_DPM_DEBUG=y
+CONFIG_PM_SYSFS_DEPRECATED=y
+CONFIG_APM_EMULATION=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+# CONFIG_NETFILTER_NETLINK is not set
+# CONFIG_NF_CONNTRACK_ENABLED is not set
+# CONFIG_NETFILTER_XTABLES is not set
+
+#
+# IP: Netfilter Configuration
+#
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IEEE80211 is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=m
+CONFIG_MTD_DEBUG=y
+CONFIG_MTD_DEBUG_VERBOSE=0
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_SHARP_SL is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=0
+CONFIG_MTDRAM_ERASE_SIZE=256
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNPACPI is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_NETLINK is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+# CONFIG_ATA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+
+#
+# Ethernet (10 or 100Mbit)
+#
+# CONFIG_NET_ETHERNET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+CONFIG_PPP=m
+# CONFIG_PPP_MULTILINK is not set
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=m
+# CONFIG_PPP_SYNC_TTY is not set
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+# CONFIG_PPPOE is not set
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_LED_TRIGGER is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
+# CONFIG_GPIODEV_DIAGONAL is not set
+# CONFIG_KEYBOARD_ASIC3 is not set
+CONFIG_KEYBOARD_PXA27x=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_NAVPOINT is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_INPUT_JOYSTICK is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+CONFIG_TOUCHSCREEN_ADC=y
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=m
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_PXA=y
+CONFIG_SERIAL_PXA_CONSOLE=y
+CONFIG_SERIAL_PXA_COUNT=4
+CONFIG_SERIAL_PXA_IR=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_RS232_SERIAL is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=32
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_SA1100_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_TIHTC is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+# CONFIG_HWMON is not set
+# CONFIG_HWMON_VID is not set
+# CONFIG_POWER_SUPPLY is not set
+
+#
+# L3 serial bus support
+#
+# CONFIG_L3 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia Capabilities Port drivers
+#
+CONFIG_ADC=y
+CONFIG_ADC_ADS7846_SSP=y
+# CONFIG_ADC_TSC2200_SSP is not set
+# CONFIG_ADC_AD7877 is not set
+
+#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_ASIC2 is not set
+CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
+# CONFIG_HTC_ASIC3_DS1WM is not set
+# CONFIG_SOC_SAMCOP is not set
+# CONFIG_SOC_HAMCOP is not set
+# CONFIG_SOC_MQ11XX is not set
+# CONFIG_SOC_T7L66XB is not set
+# CONFIG_SOC_TC6387XB is not set
+# CONFIG_SOC_TC6393XB is not set
+# CONFIG_SOC_TSC2101 is not set
+# CONFIG_SOC_TSC2200 is not set
+
+#
+# LED devices
+#
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+CONFIG_LEDS_TRIGGER_SHARED=y
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_CORGI=y
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_IMAGEON is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_PXA=y
+# CONFIG_FB_PXA_PARAMETERS is not set
+# CONFIG_FB_MBX is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_VSFB is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+CONFIG_FONT_MINI_4x6=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+# CONFIG_SND is not set
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# HID Devices
+#
+CONFIG_HID=m
+# CONFIG_HID_DEBUG is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+CONFIG_USB_GADGET_PXA27X=y
+CONFIG_USB_PXA27X=y
+# CONFIG_USB_PXA27X_DMA is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_MQ11XX is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=y
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_CHAR is not set
+# CONFIG_USB_PXA2XX_GPIO is not set
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_PXA is not set
+# CONFIG_MMC_TMIO is not set
+# CONFIG_MMC_SAMCOP is not set
+# CONFIG_MMC_ASIC3 is not set
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_DEBUG=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_SA1100=y
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4DEV_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOG_BUF_SHIFT=16
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+CONFIG_DEBUG_VM=y
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_ERRORS=y
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+CONFIG_CRYPTO_ECB=m
+# CONFIG_CRYPTO_CBC is not set
+CONFIG_CRYPTO_PCBC=m
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_ARC4=m
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig b/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig
index 61bd7efb11..4822df632c 100644
--- a/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig
+++ b/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:42 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:31 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -178,6 +178,10 @@ CONFIG_MACH_BLUEANGEL_POWER=y
CONFIG_MACH_BLUEANGEL_ROM=y
CONFIG_MACH_BLUEANGEL_DPRAM=y
CONFIG_MACH_BLUEANGEL_PHONE=m
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -421,50 +425,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -610,7 +571,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -773,6 +735,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_ASIC3=y
CONFIG_KEYBOARD_TSC2200=y
@@ -792,8 +755,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
CONFIG_TOUCHSCREEN_TSC2200=y
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -956,12 +918,24 @@ CONFIG_ADC_TSC2200_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -982,6 +956,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -989,6 +964,7 @@ CONFIG_LEDS_ASIC3=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1282,9 +1258,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1385,8 +1361,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1460,16 +1436,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1479,7 +1454,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1491,7 +1466,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1509,8 +1484,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/htchimalaya/defconfig b/packages/linux/linux-handhelds-2.6/htchimalaya/defconfig
index fbca916965..9c9b94abb8 100644
--- a/packages/linux/linux-handhelds-2.6/htchimalaya/defconfig
+++ b/packages/linux/linux-handhelds-2.6/htchimalaya/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:42 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:31 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -163,16 +163,22 @@ CONFIG_BOARD_IRQ_MAP_BIG=y
CONFIG_MACH_HIMALAYA=y
# CONFIG_MACH_HIMALAYA_ASIC3 is not set
# CONFIG_MACH_HIMALAYA_ROM is not set
+# CONFIG_HIMALAYA_LEDS is not set
# CONFIG_MACH_HTCUNIVERSAL is not set
# CONFIG_MACH_HTCALPINE is not set
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
# CONFIG_ARCH_AXIMX3 is not set
# CONFIG_ARCH_AXIMX5 is not set
+# CONFIG_MACH_X30 is not set
# CONFIG_MACH_X50 is not set
# CONFIG_ARCH_ROVERP1 is not set
# CONFIG_ARCH_ROVERP5P is not set
@@ -400,50 +406,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -485,21 +448,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -574,7 +535,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -702,7 +664,9 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
+# CONFIG_KEYBOARD_ASIC3 is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MOUSE=y
# CONFIG_MOUSE_PS2 is not set
@@ -718,8 +682,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -821,12 +784,24 @@ CONFIG_ADC_ADS7846_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
-# CONFIG_HTC_ASIC3 is not set
+CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -846,6 +821,8 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -853,6 +830,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -990,6 +968,7 @@ CONFIG_MMC_BLOCK=y
# CONFIG_MMC_PXA is not set
# CONFIG_MMC_TMIO is not set
# CONFIG_MMC_SAMCOP is not set
+# CONFIG_MMC_ASIC3 is not set
#
# Real Time Clock
@@ -1052,9 +1031,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1144,8 +1123,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1219,16 +1198,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1238,7 +1216,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1250,7 +1228,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1268,8 +1246,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/htcsable/defconfig b/packages/linux/linux-handhelds-2.6/htcsable/defconfig
index 897c9d88d9..234d4d5f17 100644
--- a/packages/linux/linux-handhelds-2.6/htcsable/defconfig
+++ b/packages/linux/linux-handhelds-2.6/htcsable/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:43 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:32 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,10 +166,17 @@ CONFIG_BOARD_IRQ_MAP_BIG=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
CONFIG_MACH_HW6900=y
CONFIG_HTCSABLE_LCD=y
CONFIG_HTCSABLE_BACKLIGHT=y
+# CONFIG_HTCSABLE_ROM is not set
+# CONFIG_HTCSABLE_BT is not set
+# CONFIG_HTCSABLE_PHONE is not set
# CONFIG_MACH_HTCATHENA is not set
# CONFIG_ARCH_AXIMX3 is not set
# CONFIG_ARCH_AXIMX5 is not set
@@ -401,50 +408,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -487,21 +451,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -511,9 +473,9 @@ CONFIG_MTD_BLOCK=y
#
# RAM/ROM/Flash chip drivers
#
-CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI=m
# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
@@ -584,7 +546,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -723,6 +686,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
# CONFIG_KEYBOARD_ASIC3 is not set
CONFIG_KEYBOARD_PXA27x=y
@@ -741,8 +705,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -879,12 +842,24 @@ CONFIG_ADC_ADS7846_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -905,6 +880,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
# CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -912,6 +888,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1153,9 +1130,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1182,7 +1159,7 @@ CONFIG_RAMFS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_SUMMARY is not set
@@ -1256,8 +1233,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1331,16 +1308,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1350,7 +1326,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1362,7 +1338,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1380,8 +1356,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig b/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig
index 9441aca7b2..5db549617e 100644
--- a/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig
+++ b/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:43 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:32 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -177,6 +177,10 @@ CONFIG_HTCUNIVERSAL_AK4641=m
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -410,50 +414,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -496,21 +457,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -585,7 +544,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -724,6 +684,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_ASIC3=y
CONFIG_KEYBOARD_PXA27x=y
@@ -742,8 +703,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=m
+CONFIG_TOUCHSCREEN_ADC=m
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -899,12 +859,24 @@ CONFIG_ADC_ADS7846_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
CONFIG_HTC_ASIC3_DS1WM=y
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -925,6 +897,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -932,6 +905,7 @@ CONFIG_LEDS_ASIC3=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1175,9 +1149,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1267,8 +1241,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1342,16 +1316,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1361,7 +1334,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1373,7 +1346,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1391,8 +1364,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig b/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig
index 4e12808e75..37e9398845 100644
--- a/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig
+++ b/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:44 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:32 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -380,65 +380,8 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-# CONFIG_SA1100_FIR is not set
-CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
@@ -463,21 +406,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -487,9 +428,9 @@ CONFIG_MTD_BLOCK=y
#
# RAM/ROM/Flash chip drivers
#
-CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI=m
# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
@@ -515,7 +456,6 @@ CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_SA1100=y
# CONFIG_MTD_IPAQ is not set
# CONFIG_MTD_PLATRAM is not set
@@ -561,7 +501,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -695,6 +636,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MOUSE=y
@@ -715,7 +657,6 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -820,12 +761,24 @@ CONFIG_ADC=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -848,6 +801,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -855,6 +809,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -939,8 +894,7 @@ CONFIG_SOUND=y
#
# HID Devices
#
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
#
# USB support
@@ -1041,9 +995,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1070,7 +1024,7 @@ CONFIG_RAMFS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_SUMMARY is not set
@@ -1144,8 +1098,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1219,16 +1173,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1238,7 +1191,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1250,7 +1203,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1268,8 +1221,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/hx4700/defconfig b/packages/linux/linux-handhelds-2.6/hx4700/defconfig
index ee58777be3..8a894dca12 100644
--- a/packages/linux/linux-handhelds-2.6/hx4700/defconfig
+++ b/packages/linux/linux-handhelds-2.6/hx4700/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:40 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:28 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -173,6 +173,10 @@ CONFIG_HX4700_POWER2=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -416,14 +420,14 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
+CONFIG_IRDA=m
#
# IrDA protocols
#
-CONFIG_IRLAN=y
+CONFIG_IRLAN=m
# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
+CONFIG_IRCOMM=m
CONFIG_IRDA_ULTRA=y
#
@@ -440,7 +444,7 @@ CONFIG_IRDA_DEBUG=y
#
# SIR device drivers
#
-CONFIG_IRTTY_SIR=y
+CONFIG_IRTTY_SIR=m
#
# Dongle support
@@ -461,7 +465,7 @@ CONFIG_IRTTY_SIR=y
#
# CONFIG_USB_IRDA is not set
# CONFIG_SIGMATEL_FIR is not set
-CONFIG_PXA_FICP=y
+CONFIG_PXA_FICP=m
# CONFIG_MCS_FIR is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
@@ -617,7 +621,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
@@ -806,8 +811,9 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
-CONFIG_KEYBOARD_ASIC3=y
+# CONFIG_KEYBOARD_ASIC3 is not set
# CONFIG_KEYBOARD_PXA27x is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MOUSE=y
@@ -824,8 +830,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -989,12 +994,24 @@ CONFIG_ADC_ADS7846_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
CONFIG_HTC_ASIC3_DS1WM=y
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -1015,6 +1032,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -1023,6 +1041,7 @@ CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1382,9 +1401,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1485,8 +1504,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1560,16 +1579,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1579,7 +1597,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1591,7 +1609,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
diff --git a/packages/linux/linux-handhelds-2.6/looxc550/defconfig b/packages/linux/linux-handhelds-2.6/looxc550/defconfig
index f08efc536d..f3ff778f58 100644
--- a/packages/linux/linux-handhelds-2.6/looxc550/defconfig
+++ b/packages/linux/linux-handhelds-2.6/looxc550/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:44 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:33 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,6 +166,10 @@ CONFIG_ARCH_PXA=y
# CONFIG_MACH_MAGICIAN is not set
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -398,50 +402,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_PXA_FICP=y
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -483,21 +444,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -572,7 +531,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -700,6 +660,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
# CONFIG_KEYBOARD_PXA27x is not set
CONFIG_KEYBOARD_GPIO=y
@@ -717,8 +678,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y
+CONFIG_TOUCHSCREEN_ADC=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -825,12 +785,24 @@ CONFIG_ADC_ADS7846_SSP=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -850,6 +822,7 @@ CONFIG_LEDS_CLASS=y
#
# LED drivers
#
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -857,6 +830,7 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1057,9 +1031,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1149,8 +1123,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1224,16 +1198,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1243,7 +1216,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1255,7 +1228,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1273,8 +1246,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/magician/defconfig b/packages/linux/linux-handhelds-2.6/magician/defconfig
index ac9b9e36e9..43454bea1f 100644
--- a/packages/linux/linux-handhelds-2.6/magician/defconfig
+++ b/packages/linux/linux-handhelds-2.6/magician/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:40 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:29 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -170,6 +170,10 @@ CONFIG_MAGICIAN_LCD=y
CONFIG_MAGICIAN_PHONE=m
# CONFIG_MACH_HTCAPACHE is not set
# CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
# CONFIG_MACH_HTCBEETLES is not set
# CONFIG_MACH_HW6900 is not set
# CONFIG_MACH_HTCATHENA is not set
@@ -405,53 +409,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-# CONFIG_USB_IRDA is not set
-# CONFIG_SIGMATEL_FIR is not set
-CONFIG_PXA_FICP=y
-# CONFIG_MCS_FIR is not set
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -599,7 +557,8 @@ CONFIG_MTDRAM_ERASE_SIZE=256
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
@@ -727,7 +686,8 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_GPIODEV_KEYS is not set
+CONFIG_GPIODEV_KEYS=y
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
# CONFIG_KEYBOARD_PXA27x is not set
CONFIG_KEYBOARD_GPIO=y
@@ -745,8 +705,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=m
+CONFIG_TOUCHSCREEN_ADC=m
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -902,6 +861,16 @@ CONFIG_ADC_ADS7846_SSP=m
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
@@ -909,6 +878,7 @@ CONFIG_ADC_ADS7846_SSP=m
# CONFIG_HTC_ASIC3 is not set
CONFIG_HTC_PASIC3=y
CONFIG_HTC_EGPIO=y
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -930,6 +900,7 @@ CONFIG_LEDS_CLASS=y
#
CONFIG_LEDS_MAGICIAN=y
CONFIG_LEDS_PASIC3=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -937,7 +908,7 @@ CONFIG_LEDS_PASIC3=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HWTIMER=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1332,9 +1303,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1435,8 +1406,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1510,16 +1481,15 @@ CONFIG_DEBUG_LL=y
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1529,7 +1499,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1541,7 +1511,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1559,8 +1529,8 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-handhelds-2.6/rx1950/defconfig b/packages/linux/linux-handhelds-2.6/rx1950/defconfig
index 1f6647e94d..3d3c2a4fc7 100644
--- a/packages/linux/linux-handhelds-2.6/rx1950/defconfig
+++ b/packages/linux/linux-handhelds-2.6/rx1950/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:45 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:33 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -397,49 +397,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -481,21 +439,19 @@ CONFIG_FW_LOADER=y
#
# Memory Technology Devices (MTD)
#
-CONFIG_MTD=y
+CONFIG_MTD=m
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=0
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -548,16 +504,15 @@ CONFIG_MTDRAM_ERASE_SIZE=256
#
# NAND Flash Device Drivers
#
-CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND_IDS=y
-CONFIG_MTD_NAND_S3C2410=y
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_S3C2410=m
# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
# CONFIG_MTD_NAND_S3C2410_HWECC is not set
# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
#
# OneNAND Flash Device Drivers
@@ -578,7 +533,8 @@ CONFIG_MTD_NAND_S3C2410=y
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -708,6 +664,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MOUSE=y
@@ -728,7 +685,6 @@ CONFIG_TOUCHSCREEN_S3C2410=y
CONFIG_TOUCHSCREEN_S3C2410_DEBUG=y
CONFIG_TOUCHSCREEN_S3C2410_ALT=y
# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -835,12 +791,24 @@ CONFIG_ADC=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
# CONFIG_HTC_ASIC3_DS1WM is not set
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -859,6 +827,7 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_S3C24XX=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -866,6 +835,7 @@ CONFIG_LEDS_S3C24XX=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1095,9 +1065,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1187,8 +1157,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1264,16 +1234,15 @@ CONFIG_DEBUG_S3C2410_UART=0
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1283,7 +1252,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1295,7 +1264,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1313,7 +1282,7 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
diff --git a/packages/linux/linux-handhelds-2.6/rx3000/defconfig b/packages/linux/linux-handhelds-2.6/rx3000/defconfig
index 56ca6748ab..4cf3a33412 100644
--- a/packages/linux/linux-handhelds-2.6/rx3000/defconfig
+++ b/packages/linux/linux-handhelds-2.6/rx3000/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh11
-# Wed Jul 11 07:31:45 2007
+# Linux kernel version: 2.6.21-hh16
+# Tue Sep 11 19:40:34 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -404,49 +404,7 @@ CONFIG_NETFILTER=y
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=y
-# CONFIG_IRNET is not set
-CONFIG_IRCOMM=y
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
+# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
@@ -586,7 +544,8 @@ CONFIG_MTD_NAND_S3C2410_CLKSTOP=y
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
@@ -725,6 +684,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
# CONFIG_GPIODEV_DIAGONAL is not set
CONFIG_KEYBOARD_ASIC3=y
CONFIG_KEYBOARD_GPIO=y
@@ -746,7 +706,6 @@ CONFIG_TOUCHSCREEN_S3C2410=y
# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
# CONFIG_TOUCHSCREEN_S3C2410_ALT is not set
# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set
# CONFIG_TOUCHSCREEN_UCB1400 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
@@ -901,12 +860,24 @@ CONFIG_ADC=y
# CONFIG_ADC_AD7877 is not set
#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_ASIC2 is not set
CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
CONFIG_HTC_ASIC3_DS1WM=y
# CONFIG_SOC_SAMCOP is not set
# CONFIG_SOC_HAMCOP is not set
@@ -926,6 +897,7 @@ CONFIG_LEDS_CLASS=y
#
# CONFIG_LEDS_S3C24XX is not set
CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
#
# LED Triggers
@@ -933,6 +905,7 @@ CONFIG_LEDS_ASIC3=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
CONFIG_LEDS_TRIGGER_SHARED=y
@@ -1209,9 +1182,9 @@ CONFIG_DNOTIFY=y
#
# DOS/FAT/NT Filesystems
#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
@@ -1301,8 +1274,8 @@ CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
-CONFIG_NLS_CODEPAGE_1250=y
-CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
@@ -1378,16 +1351,15 @@ CONFIG_DEBUG_S3C2410_UART=2
# Cryptographic options
#
CONFIG_CRYPTO=y
-CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI=m
CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MANAGER=m
+# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1397,7 +1369,7 @@ CONFIG_CRYPTO_ECB=m
# CONFIG_CRYPTO_CBC is not set
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
@@ -1409,7 +1381,7 @@ CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -1427,7 +1399,7 @@ CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
diff --git a/packages/linux/linux-handhelds-2.6_2.6.21-hh15.bb b/packages/linux/linux-handhelds-2.6_2.6.21-hh15.bb
new file mode 100644
index 0000000000..b34d4630a0
--- /dev/null
+++ b/packages/linux/linux-handhelds-2.6_2.6.21-hh15.bb
@@ -0,0 +1,11 @@
+SECTION = "kernel"
+DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices."
+LICENSE = "GPL"
+PR = "r0"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \
+ file://defconfig"
+
+require linux-handhelds-2.6.inc
diff --git a/packages/linux/linux-handhelds-2.6_2.6.21-hh16.bb b/packages/linux/linux-handhelds-2.6_2.6.21-hh16.bb
new file mode 100644
index 0000000000..b34d4630a0
--- /dev/null
+++ b/packages/linux/linux-handhelds-2.6_2.6.21-hh16.bb
@@ -0,0 +1,11 @@
+SECTION = "kernel"
+DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices."
+LICENSE = "GPL"
+PR = "r0"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \
+ file://defconfig"
+
+require linux-handhelds-2.6.inc
diff --git a/packages/linux/linux-openmoko-devel_svn.bb b/packages/linux/linux-openmoko-devel_svn.bb
new file mode 100644
index 0000000000..eca9a337ac
--- /dev/null
+++ b/packages/linux/linux-openmoko-devel_svn.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Linux 2.6.x (development) kernel for FIC SmartPhones shipping w/ OpenMoko"
+
+require linux-openmoko.inc
+
+SRC_URI += "svn://svn.openmoko.org/trunk/src/target/kernel;module=patches;proto=http"
+SRC_URI += "file://fix-EVIOCGRAB-semantics-2.6.22.5.patch;patch=1"
+
+VANILLA_VERSION = "2.6.22.5"
+MOKOR = "moko11+svnr${SRCREV}"
+PV = "${VANILLA_VERSION}-${MOKOR}"
+PR = "r0"
diff --git a/packages/linux/linux-openmoko.inc b/packages/linux/linux-openmoko.inc
index ab2f2959d2..d6b464c301 100644
--- a/packages/linux/linux-openmoko.inc
+++ b/packages/linux/linux-openmoko.inc
@@ -1,4 +1,3 @@
-DESCRIPTION = "2.6 Linux Development Kernel for FIC SmartPhones shipping w/ OpenMoko"
SECTION = "kernel"
AUTHOR = "Harald Welte <laforge@openmoko.org>"
HOMEPAGE = "http://www.openmoko.org"
@@ -13,6 +12,8 @@ DEFCONFIG = "defconfig-${VANILLA_VERSION}-${MACHINE}"
##############################################################
# source and patches
#
+SRCREV_FORMAT = "patches"
+
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
file://${DEFCONFIG} \
file://logo_linux_clut224.ppm"
diff --git a/packages/linux/linux-openmoko_2.6.21.6.bb b/packages/linux/linux-openmoko_2.6.21.6.bb
deleted file mode 100644
index 2efc84681a..0000000000
--- a/packages/linux/linux-openmoko_2.6.21.6.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require linux-openmoko.inc
-
-SRC_URI += "svn://svn.openmoko.org/branches/src/target/kernel/2.6.21.x;module=patches;proto=http"
-SRC_URI += "file://fix-EVIOCGRAB-semantics.patch;patch=1"
-
-MOKOR = "moko11"
-PR = "${MOKOR}-r2"
-
-VANILLA_VERSION = "2.6.21.6"
-
diff --git a/packages/linux/linux-openmoko_2.6.22.5.bb b/packages/linux/linux-openmoko_2.6.22.5.bb
index 4f2aa396c3..e4608a7565 100644
--- a/packages/linux/linux-openmoko_2.6.22.5.bb
+++ b/packages/linux/linux-openmoko_2.6.22.5.bb
@@ -1,9 +1,11 @@
+DESCRIPTION = "Linux 2.6.x (stable) kernel for FIC SmartPhones shipping w/ OpenMoko"
+
require linux-openmoko.inc
SRC_URI += "svn://svn.openmoko.org/trunk/src/target/kernel;module=patches;proto=http"
SRC_URI += "file://fix-EVIOCGRAB-semantics-2.6.22.5.patch;patch=1"
-MOKOR = "moko11"
-PR = "${MOKOR}-r2"
-
VANILLA_VERSION = "2.6.22.5"
+MOKOR = "moko11+svnr${SRCREV}"
+PV = "${VANILLA_VERSION}-${MOKOR}"
+PR = "r2"
diff --git a/packages/linux/linux-rp-2.6.22/defconfig-akita b/packages/linux/linux-rp-2.6.22/defconfig-akita
index edeaa414db..dd8cb8558f 100644
--- a/packages/linux/linux-rp-2.6.22/defconfig-akita
+++ b/packages/linux/linux-rp-2.6.22/defconfig-akita
@@ -743,6 +743,7 @@ CONFIG_NET_RADIO=y
#
# Wireless 802.11b ISA/PCI cards support
#
+CONFIG_WLAN_80211=y
CONFIG_HERMES=m
# CONFIG_ATMEL is not set
diff --git a/packages/linux/linux-rp-2.6.22/defconfig-c7x0 b/packages/linux/linux-rp-2.6.22/defconfig-c7x0
index c644187e96..d9b3e2b93f 100644
--- a/packages/linux/linux-rp-2.6.22/defconfig-c7x0
+++ b/packages/linux/linux-rp-2.6.22/defconfig-c7x0
@@ -757,6 +757,7 @@ CONFIG_NET_RADIO=y
#
# Wireless 802.11b ISA/PCI cards support
#
+CONFIG_WLAN_80211=y
CONFIG_HERMES=m
# CONFIG_ATMEL is not set
@@ -772,7 +773,6 @@ CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
CONFIG_HOSTAP_CS=m
-CONFIG_NET_WIRELESS=y
#
# PCMCIA network device support
diff --git a/packages/linux/linux-rp_2.6.22.bb b/packages/linux/linux-rp_2.6.22.bb
index 03eca283b4..b36189d9fb 100644
--- a/packages/linux/linux-rp_2.6.22.bb
+++ b/packages/linux/linux-rp_2.6.22.bb
@@ -1,6 +1,6 @@
require linux-rp.inc
-PR = "r8"
+PR = "r9"
# Handy URLs
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
diff --git a/packages/linux/linux.inc b/packages/linux/linux.inc
index 4a09c92975..a25dc44083 100644
--- a/packages/linux/linux.inc
+++ b/packages/linux/linux.inc
@@ -2,18 +2,23 @@ DESCRIPTION = "Linux Kernel"
SECTION = "kernel"
LICENSE = "GPL"
+inherit kernel
+
# These devices need mkimage to generate a kernel image
-DEPENDS_kb9202 = "u-boot-mkimage-openmoko-native"
-DEPENDS_at32stk1000 = "u-boot-mkimage-openmoko-native"
-DEPENDS_atngw100 = "u-boot-mkimage-openmoko-native"
-DEPENDS_at91sam9263ek = "u-boot-mkimage-openmoko-native"
-DEPENDS_sarge-at91 = "u-boot-mkimage-openmoko-native"
-DEPENDS_gumstix-connex = "u-boot-mkimage-openmoko-native"
-DEPENDS_gumstix-verdex = "u-boot-mkimage-openmoko-native"
+DEPENDS_append_kb9202 = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_at32stk1000 = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_atngw100 = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_at91sam9263ek = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_at91sam9261ek = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_at91sam9260ek = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_sarge-at91 = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_gumstix-connex = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_gumstix-verdex = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_fic-gta01 = " u-boot-mkimage-openmoko-native "
+DEPENDS_append_fic-gta02 = " u-boot-mkimage-openmoko-native "
-inherit kernel
-# Specify the commandline for you device here:
+# Specify the commandline for you device
#boot from mmc
CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=5"
@@ -23,6 +28,12 @@ CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rootfs
do_configure_prepend() {
echo "" > ${S}/.config
+ if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then
+ install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
+ echo "CONFIG_LOGO=y" >> ${S}/.config
+ echo "CONFIG_LOGO_LINUX_CLUT224=y" >> ${S}/.config
+ fi
+
if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
echo "CONFIG_AEABI=y" >> ${S}/.config
echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
@@ -36,6 +47,8 @@ do_configure_prepend() {
sed -e '/CONFIG_AEABI/d' \
-e '/CONFIG_OABI_COMPAT=/d' \
-e '/CONFIG_CMDLINE=/d' \
+ -e '/CONFIG_LOGO=/d' \
+ -e '/CONFIG_LOGO_LINUX_CLUT224=/d' \
< '${WORKDIR}/defconfig' >>'${S}/.config'
yes '' | oe_runmake oldconfig
@@ -61,16 +74,21 @@ do_deploy() {
tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz -C ${D} lib
if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then
- ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin
- rm -f linux.bin.gz
- gzip -9 linux.bin
- uboot-mkimage -A ${ARCH} -O linux -T kernel -C gzip -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
- rm -f linux.bin.gz
- fi
+ if test -e arch/${ARCH}/boot/compressed/vmlinux ; then
+ ${OBJCOPY} -O binary -R .note -R .comment -S arch/${ARCH}/boot/compressed/vmlinux linux.bin
+ uboot-mkimage -A ${ARCH} -O linux -T kernel -C none -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ rm -f linux.bin
+ else
+ ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin
+ rm -f linux.bin.gz
+ gzip -9 linux.bin
+ uboot-mkimage -A ${ARCH} -O linux -T kernel -C gzip -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ rm -f linux.bin.gz
+ fi
+ fi
}
do_deploy[dirs] = "${S}"
-addtask prepatch before do_patch after do_unpack
addtask deploy before do_package after do_install
diff --git a/packages/linux/linux/ts72xx/.mtn2git_empty b/packages/linux/linux/ts72xx/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux/ts72xx/.mtn2git_empty
diff --git a/packages/linux/linux/ts72xx/defconfig b/packages/linux/linux/ts72xx/defconfig
new file mode 100644
index 0000000000..75931d9cb1
--- /dev/null
+++ b/packages/linux/linux/ts72xx/defconfig
@@ -0,0 +1,1184 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.22.6
+# Wed Sep 5 00:08:45 2007
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+# CONFIG_GENERIC_GPIO is not set
+# CONFIG_GENERIC_TIME is not set
+# CONFIG_GENERIC_CLOCKEVENTS is not set
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ZONE_DMA=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+CONFIG_ARCH_EP93XX=y
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+
+#
+# Cirrus EP93xx Implementation Options
+#
+CONFIG_CRUNCH=y
+
+#
+# EP93xx Platforms
+#
+# CONFIG_MACH_ADSSPHERE is not set
+CONFIG_MACH_EDB9302=y
+# CONFIG_MACH_EDB9302A is not set
+# CONFIG_MACH_EDB9312 is not set
+CONFIG_MACH_EDB9315=y
+CONFIG_MACH_EDB9315A=y
+CONFIG_MACH_GESBC9312=y
+# CONFIG_MACH_MICRO9 is not set
+# CONFIG_MACH_MICRO9H is not set
+# CONFIG_MACH_MICRO9M is not set
+# CONFIG_MACH_MICRO9L is not set
+CONFIG_MACH_TS72XX=y
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM920T=y
+CONFIG_CPU_32v4T=y
+CONFIG_CPU_ABRT_EV4T=y
+CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_OUTER_CACHE is not set
+CONFIG_ARM_VIC=y
+
+#
+# Bus support
+#
+CONFIG_ARM_AMBA=y
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_TICK_ONESHOT is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=100
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=ttyAM0,115200 ip=192.168.1.3:192.168.1.2:192.168.1.2:255.255.255.0 root=/dev/nfs nfsroot=192.168.1.2:/media/data/devel/om2007.2/ts72xx/tmp/deploy/glibc/images/ts72xx/nfs_root"
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+CONFIG_FPE_NWFPE_XP=y
+# CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+CONFIG_INET6_XFRM_MODE_TRANSPORT=y
+CONFIG_INET6_XFRM_MODE_TUNNEL=y
+CONFIG_INET6_XFRM_MODE_BEET=y
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_REDBOOT_PARTS=y
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_GEOMETRY is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+CONFIG_MTD_ROM=y
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_START=0x0
+CONFIG_MTD_PHYSMAP_LEN=0x0
+CONFIG_MTD_PHYSMAP_BANKWIDTH=1
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_VERIFY_WRITE=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+CONFIG_MTD_NAND_TS7250=y
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNPACPI is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_ATA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_PHYLIB is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_EP93XX_ETH=y
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET_MII is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+# CONFIG_INPUT is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_AMBA_PL010=y
+CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
+# CONFIG_SERIAL_AMBA_PL011 is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_EP93XX_WATCHDOG is not set
+CONFIG_TS72XX_WATCHDOG=y
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=y
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_TINY_USB is not set
+# CONFIG_I2C_EP93XX is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+CONFIG_I2C_DEBUG_CORE=y
+CONFIG_I2C_DEBUG_ALGO=y
+CONFIG_I2C_DEBUG_BUS=y
+CONFIG_I2C_DEBUG_CHIP=y
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+# CONFIG_HWMON is not set
+
+#
+# Misc devices
+#
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# LED devices
+#
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_EP93XX=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_DAB is not set
+
+#
+# Graphics support
+#
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+CONFIG_USB_DYNAMIC_MINORS=y
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=y
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_DPCM is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USB_MON is not set
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_CONSOLE=y
+# CONFIG_USB_SERIAL_GENERIC is not set
+# CONFIG_USB_SERIAL_AIRCABLE is not set
+# CONFIG_USB_SERIAL_AIRPRIME is not set
+# CONFIG_USB_SERIAL_ARK3116 is not set
+# CONFIG_USB_SERIAL_BELKIN is not set
+# CONFIG_USB_SERIAL_WHITEHEAT is not set
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
+# CONFIG_USB_SERIAL_CP2101 is not set
+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
+# CONFIG_USB_SERIAL_EMPEG is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+# CONFIG_USB_SERIAL_FUNSOFT is not set
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+# CONFIG_USB_SERIAL_EDGEPORT is not set
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+# CONFIG_USB_SERIAL_GARMIN is not set
+# CONFIG_USB_SERIAL_IPW is not set
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+# CONFIG_USB_SERIAL_MCT_U232 is not set
+# CONFIG_USB_SERIAL_MOS7720 is not set
+# CONFIG_USB_SERIAL_MOS7840 is not set
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+# CONFIG_USB_SERIAL_HP4X is not set
+# CONFIG_USB_SERIAL_SAFE is not set
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
+# CONFIG_USB_SERIAL_TI is not set
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+# CONFIG_USB_SERIAL_XIRCOM is not set
+# CONFIG_USB_SERIAL_OPTION is not set
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+# CONFIG_MMC is not set
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+CONFIG_RTC_DRV_M48T86=y
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_EP93XX=y
+# CONFIG_RTC_DRV_PL031 is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_FS_XATTR is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_BIND34 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+CONFIG_DEBUG_SLAB=y
+# CONFIG_DEBUG_SLAB_LEAK is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_ERRORS=y
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/packages/linux/linux_2.6.14.bb b/packages/linux/linux_2.6.14.bb
index 85febb45d9..d625d15ebe 100644
--- a/packages/linux/linux_2.6.14.bb
+++ b/packages/linux/linux_2.6.14.bb
@@ -1,14 +1,10 @@
DESCRIPTION = "Linux Kernel"
SECTION = "kernel"
LICENSE = "GPL"
-PR = "r0"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://defconfig"
-SRC_URI_append_progear = " \
- file://progear_bl-r6.patch;patch=1 \
- "
SRC_URI_append_acern30 = "\
http://lechat.rtp-net.org/ipaq/patches/2.6.14-3/v2.6.14-gitcurrent.patch;patch=1 \
http://lechat.rtp-net.org/ipaq/patches/2.6.14-3/full.patch;patch=1 \
diff --git a/packages/linux/linux_2.6.20.bb b/packages/linux/linux_2.6.20.bb
index 13b83925b5..81033e09ee 100644
--- a/packages/linux/linux_2.6.20.bb
+++ b/packages/linux/linux_2.6.20.bb
@@ -1,8 +1,10 @@
require linux.inc
DEFAULT_PREFERENCE_at91sam9263ek = "20"
+DEFAULT_PREFERENCE_at91sam9261ek = "20"
+DEFAULT_PREFERENCE_at91sam9260ek = "20"
-PR = "r7"
+PR = "r8"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://defconfig"
@@ -16,5 +18,13 @@ SRC_URI_append_at91sam9263ek = " \
http://maxim.org.za/AT91RM9200/2.6/${PV}-at91.patch.gz;patch=1 \
http://www.at91.com/repFichier/Project-217/linux-${PV}-at91-exp.diff.bz2;patch=1 \
"
+SRC_URI_append_at91sam9261ek = " \
+ http://maxim.org.za/AT91RM9200/2.6/${PV}-at91.patch.gz;patch=1 \
+ http://www.at91.com/repFichier/Project-217/linux-${PV}-at91-exp.diff.bz2;patch=1 \
+ "
+SRC_URI_append_at91sam9260ek = " \
+ http://maxim.org.za/AT91RM9200/2.6/${PV}-at91.patch.gz;patch=1 \
+ http://www.at91.com/repFichier/Project-217/linux-${PV}-at91-exp.diff.bz2;patch=1 \
+ "
diff --git a/packages/linux/linux_2.6.21+2.6.22-rc1.bb b/packages/linux/linux_2.6.21+2.6.22-rc1.bb
index faca5a88ec..35b2efe74a 100644
--- a/packages/linux/linux_2.6.21+2.6.22-rc1.bb
+++ b/packages/linux/linux_2.6.21+2.6.22-rc1.bb
@@ -6,7 +6,7 @@ DEFAULT_PREFERENCE_at91sam9263ek = "-1"
KERNEL_VERSION = "2.6.22-rc1"
KERNEL_RELEASE = "2.6.22-rc1"
-PR = "r1"
+PR = "r2"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2 \
${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/testing/patch-2.6.22-rc1.bz2;patch=1 \
diff --git a/packages/linux/linux_2.6.21.bb b/packages/linux/linux_2.6.21.bb
index 15d2241563..2bfbee8184 100644
--- a/packages/linux/linux_2.6.21.bb
+++ b/packages/linux/linux_2.6.21.bb
@@ -4,7 +4,7 @@ DEFAULT_PREFERENCE_at91sam9263ek = "-1"
DEFAULT_PREFERENCE_gumstix-connex = "1"
DEFAULT_PREFERENCE_gumstix-verdex = "1"
-PR = "r7"
+PR = "r9"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://defconfig \
@@ -63,7 +63,6 @@ GUMSTIX_PATCHES = "\
file://mmc-card-detect.patch;patch=1 \
file://misalignment-handling.patch;patch=1 \
file://compile-fix-pxa_cpufreq.patch;patch=1 \
- file://ramfs-mode-support.patch;patch=1 \
file://pxafb-definition.patch;patch=1 \
file://270-usb-gadget-udc.patch;patch=1 \
file://gumstix-pxa270-usb-host.patch;patch=1 \
diff --git a/packages/linux/linux_2.6.22+2.6.23-rc3.bb b/packages/linux/linux_2.6.22+2.6.23-rc3.bb
index 5671173672..618b6bf44a 100644
--- a/packages/linux/linux_2.6.22+2.6.23-rc3.bb
+++ b/packages/linux/linux_2.6.22+2.6.23-rc3.bb
@@ -8,7 +8,7 @@ BASE_KERNEL_VERSION = "2.6.22"
KERNEL_VERSION = "2.6.23-rc3"
KERNEL_RELEASE = "2.6.23-rc3"
-PR = "r0"
+PR = "r1"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${BASE_KERNEL_VERSION}.tar.bz2 \
${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/testing/patch-${KERNEL_VERSION}.bz2;patch=1 \
diff --git a/packages/linux/linux_2.6.22+2.6.23-rc5.bb b/packages/linux/linux_2.6.22+2.6.23-rc5.bb
new file mode 100644
index 0000000000..3165c39a11
--- /dev/null
+++ b/packages/linux/linux_2.6.22+2.6.23-rc5.bb
@@ -0,0 +1,32 @@
+require linux.inc
+
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_ts72xx = "-1"
+
+PR = "r1"
+
+BASE_KERNEL_VERSION = "2.6.22"
+KERNEL_VERSION = "2.6.23-rc5"
+KERNEL_RELEASE = "2.6.23-rc5"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${BASE_KERNEL_VERSION}.tar.bz2 \
+ ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/testing/patch-${KERNEL_VERSION}.bz2;patch=1 \
+ file://defconfig \
+ "
+
+SRC_URI_append_ts72xx = "\
+ file://ep93xx-gpio-interrupt-debounce.diff;patch=1 \
+ file://ep93xx-i2c-bus.diff;patch=1 \
+ file://ep93xx-i2c.diff;patch=1 \
+ file://ep93xx-leds.diff;patch=1 \
+ file://ep93xx-serial-uartbaud.diff;patch=1 \
+ file://ep93xx-serial-clocks.diff;patch=1 \
+ file://ep93xx-timer-accuracy.diff;patch=1 \
+ file://ep93xx-maverick-uniqid.patch;patch=1 \
+ file://ts72xx-nfbit-fix.patch;patch=1 \
+ file://ts72xx-machine-id-fix.patch;patch=1 \
+ file://ts72xx-watchdog.patch;patch=1 \
+ file://ts72xx-use-cpld-reset.patch;patch=1 \
+ "
+
+S = "${WORKDIR}/linux-2.6.22"
diff --git a/packages/linux/linux_2.6.22.6.bb b/packages/linux/linux_2.6.22.6.bb
new file mode 100644
index 0000000000..dfe1e2e8b1
--- /dev/null
+++ b/packages/linux/linux_2.6.22.6.bb
@@ -0,0 +1,28 @@
+require linux.inc
+
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_ts72xx = "1"
+
+PR = "r1"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2 \
+ ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-${PV}.bz2;patch=1 \
+ file://defconfig \
+ "
+
+SRC_URI_append_ts72xx = "\
+ file://ep93xx-gpio-interrupt-debounce.diff;patch=1 \
+ file://ep93xx-i2c-bus.diff;patch=1 \
+ file://ep93xx-i2c.diff;patch=1 \
+ file://ep93xx-leds.diff;patch=1 \
+ file://ep93xx-serial-uartbaud.diff;patch=1 \
+ file://ep93xx-serial-clocks.diff;patch=1 \
+ file://ep93xx-timer-accuracy.diff;patch=1 \
+ file://ep93xx-maverick-uniqid.patch;patch=1 \
+ file://ts72xx-nfbit-fix.patch;patch=1 \
+ file://ts72xx-machine-id-fix.patch;patch=1 \
+ file://ts72xx-watchdog.patch;patch=1 \
+ file://ts72xx-use-cpld-reset.patch;patch=1 \
+ "
+
+S = "${WORKDIR}/linux-2.6.22"
diff --git a/packages/linux/linux_2.6.22.bb b/packages/linux/linux_2.6.22.bb
index 8674d63af2..64b57d3076 100644
--- a/packages/linux/linux_2.6.22.bb
+++ b/packages/linux/linux_2.6.22.bb
@@ -4,7 +4,7 @@ require linux.inc
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_avr32 = "1"
-PR = "r2"
+PR = "r3"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2 \
file://defconfig \
diff --git a/packages/madwifi/madwifi-ng_r2702-20070903.bb b/packages/madwifi/madwifi-ng_r2702-20070903.bb
index cf614c96ae..43a491bd1f 100644
--- a/packages/madwifi/madwifi-ng_r2702-20070903.bb
+++ b/packages/madwifi/madwifi-ng_r2702-20070903.bb
@@ -3,6 +3,7 @@
# Don't use this unless you know what you're doing -- this version does
# *NOT* build on BE kernels.
DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_alix = "1"
# Disable stripping of kernel modules, since this action strips too
# much out, and the resulting module won't load.
diff --git a/packages/matchbox-keyboard/files/matchbox-keyboard-applet.patch b/packages/matchbox-keyboard/files/matchbox-keyboard-applet.patch
new file mode 100644
index 0000000000..29dc9c0ab6
--- /dev/null
+++ b/packages/matchbox-keyboard/files/matchbox-keyboard-applet.patch
@@ -0,0 +1,92 @@
+Index: applet/applet.c
+===================================================================
+--- applet/applet.c (revision 1633)
++++ applet/applet.c (working copy)
+@@ -1,30 +1,76 @@
++/*
++ * keyboard - Tray applet to toggle matchbox-keyboard's gtk-im
++ *
++ * Copyright 2007, Openedhand Ltd.
++ * Author Stefan Schmidt <stefan@openmoko.org>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; version 2 of the license.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ */
++
+ #include <gtk/gtk.h>
++#include <gtk/gtkeventbox.h>
+ #include <matchbox-panel/mb-panel.h>
+ #include <matchbox-panel/mb-panel-scaling-image.h>
+ #include <gtk-im/im-protocol.h>
+
++typedef struct {
++ GtkWidget *event_box;
++ gboolean show;
++} KeyboardApplet;
++
+ static void
+-on_toggled (GtkToggleButton *button)
++on_toggled (GtkWidget *event_box, GdkEventButton *event, KeyboardApplet *applet)
+ {
+- protocol_send_event (gtk_toggle_button_get_active (button) ?
+- INVOKE_KBD_SHOW : INVOKE_KBD_HIDE);
++
++ protocol_send_event (applet->show ? INVOKE_KBD_SHOW : INVOKE_KBD_HIDE);
++
++ if (applet->show)
++ applet->show = FALSE;
++ else
++ applet->show = TRUE;
+ }
+
++static void
++keyboard_applet_free (KeyboardApplet *applet)
++{
++ g_slice_free (KeyboardApplet, applet);
++}
++
+ G_MODULE_EXPORT GtkWidget *
+ mb_panel_applet_create (const char *id, GtkOrientation orientation)
+ {
+- GtkWidget *button, *image;
++ KeyboardApplet *applet;
++ MBPanelScalingImage *image;
++ //GtkImage *image;
+
+- button = gtk_toggle_button_new ();
+- gtk_widget_set_name (button, "MatchboxPanelKeyboard");
+- gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
++ /* Create applet data structure */
++ applet = g_slice_new (KeyboardApplet);
+
++ applet->event_box = gtk_event_box_new ();
++ gtk_event_box_set_visible_window (applet->event_box, FALSE);
++
++ gtk_widget_set_name (applet->event_box, "MatchboxPanelKeyboard");
++
+ image = mb_panel_scaling_image_new (orientation, "matchbox-keyboard");
+- gtk_container_add (GTK_CONTAINER (button), image);
+
+- g_signal_connect (button, "toggled", G_CALLBACK (on_toggled), NULL);
++ gtk_container_add (GTK_CONTAINER (applet->event_box), image);
+
+- gtk_widget_show_all (button);
++ g_object_weak_ref (G_OBJECT (applet->event_box),
++ (GWeakNotify) keyboard_applet_free, applet);
+
+- return button;
++ /* Toggle the on release event */
++ g_signal_connect (applet->event_box, "button-release-event",
++ G_CALLBACK (on_toggled), applet);
++
++ gtk_widget_show_all (applet->event_box);
++
++ return applet->event_box;
+ }
diff --git a/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb b/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb
index 0ecb5e947d..b7ef698938 100644
--- a/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb
+++ b/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb
@@ -5,11 +5,12 @@ RCONFLICTS = matchbox-keyboard
RPROVIDES_${PN} = matchbox-keyboard
#DEFAULT_PREFERENCE = "-1"
SECTION = "x11"
-PV = "0.0+svn${SRCDATE}"
-PR = "r2"
+PV = "0.0+svnr${SRCREV}"
+PR = "r4"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-keyboard;proto=http \
- file://80matchboxkeyboard"
+ file://matchbox-keyboard-applet.patch;patch=1;pnum=0 \
+ file://80matchboxkeyboard"
SRC_URI_append_fic-gta01 = " file://fic-gta01-font-size.patch;patch=1"
diff --git a/packages/matchbox-keyboard/matchbox-keyboard_svn.bb b/packages/matchbox-keyboard/matchbox-keyboard_svn.bb
index ba002869c7..27ea4aea1d 100644
--- a/packages/matchbox-keyboard/matchbox-keyboard_svn.bb
+++ b/packages/matchbox-keyboard/matchbox-keyboard_svn.bb
@@ -4,14 +4,14 @@ DEPENDS = "libfakekey expat libxft"
RCONFLICTS = matchbox-keyboard-inputmethod
RPROVIDES_${PN} = matchbox-keyboard-inputmethod
SECTION = "x11"
-PV = "0.0+svn${SRCDATE}"
+PV = "0.0+svnr${SRCREV}"
PR="r6"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http \
file://smallscreen-fontsize.patch;patch=1 \
- file://2-Add-new-modifier--layout--Used-to-cycle-thru-all-available-layouts.patch;patch=1 \
- file://3-Changes-to-improve-layout-rendering--especially-after-adding-support-for.patch;patch=1 \
- file://4-Add-rendering-debug-logging.patch;patch=1 \
+# file://2-Add-new-modifier--layout--Used-to-cycle-thru-all-available-layouts.patch;patch=1 \
+# file://3-Changes-to-improve-layout-rendering--especially-after-adding-support-for.patch;patch=1 \
+# file://4-Add-rendering-debug-logging.patch;patch=1 \
file://5-Add-support-for-loading-multiple-independent-layouts.patch;patch=1 \
file://6-Add-layout-switch-key-to-all-layouts.patch;patch=1 \
"
@@ -26,5 +26,5 @@ EXTRA_OECONF = "--disable-cairo"
FILES_${PN} = "${bindir}/* \
${datadir}/applications \
${datadir}/pixmaps \
- ${datadir}/matchbox-keyboard"
+ ${datadir}/matchbox-keyboard"
diff --git a/packages/matchbox-keyboard/mboxkbd-layouts-gui_git.bb b/packages/matchbox-keyboard/mboxkbd-layouts-gui_git.bb
index 661f5f9017..2dfba07fc7 100644
--- a/packages/matchbox-keyboard/mboxkbd-layouts-gui_git.bb
+++ b/packages/matchbox-keyboard/mboxkbd-layouts-gui_git.bb
@@ -5,6 +5,8 @@ LICENSE = "GPL"
DEPENDS = "gtk+"
PR = "r3"
+PV = "0.0+git${SRCDATE}"
+
SRC_URI = "git://ossfans.org/home/slapin/git/mk-layouts-gui.git;protocol=git"
S = "${WORKDIR}/git"
diff --git a/packages/matchbox-panel/matchbox-panel_svn.bb b/packages/matchbox-panel/matchbox-panel_svn.bb
index 3ff258fe8f..e7fb3e6439 100644
--- a/packages/matchbox-panel/matchbox-panel_svn.bb
+++ b/packages/matchbox-panel/matchbox-panel_svn.bb
@@ -1,5 +1,5 @@
require matchbox-panel.inc
-PV = "0.9.2+svn${SRCDATE}"
+PV = "0.9.2+svnr${SRCREV}"
DEFAULT_PREFERENCE = "-1"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http"
diff --git a/packages/matchbox-themes-extra/matchbox-theme-sato_svn.bb b/packages/matchbox-themes-extra/matchbox-theme-sato_svn.bb
index 39b035bc7a..4972444211 100644
--- a/packages/matchbox-themes-extra/matchbox-theme-sato_svn.bb
+++ b/packages/matchbox-themes-extra/matchbox-theme-sato_svn.bb
@@ -3,7 +3,9 @@ LICENSE = "GPL"
DEPENDS = "matchbox-wm"
SECTION = "x11/wm"
-PV = "0.1+svn${SRCDATE}"
+DEFAULT_PREFERENCE = "-1"
+
+PV = "0.1+svnr${SRCREV}"
PR = "r0"
PACKAGE_ARCH = "all"
diff --git a/packages/matchbox2/matchbox-desktop-2_svn.bb b/packages/matchbox2/matchbox-desktop-2_svn.bb
index 31a6b9836d..8dc74ef509 100644
--- a/packages/matchbox2/matchbox-desktop-2_svn.bb
+++ b/packages/matchbox2/matchbox-desktop-2_svn.bb
@@ -3,7 +3,7 @@ LICENSE = "GPL"
SECTION = "x11/panels"
DEPENDS = "gtk+ startup-notification"
-PV = "0.1+svn${SRCDATE}"
+PV = "0.1+svnr${SRCREV}"
PR = "r0"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http"
diff --git a/packages/matchbox2/matchbox-panel-2_svn.bb b/packages/matchbox2/matchbox-panel-2_svn.bb
index 44d23e1a55..79fafff202 100644
--- a/packages/matchbox2/matchbox-panel-2_svn.bb
+++ b/packages/matchbox2/matchbox-panel-2_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "matchbox-panel-2 is a lightweight dock (system tray) application
LICENSE = "GPL"
SECTION = "x11/panels"
DEPENDS = "gtk+ apmd startup-notification"
-PV = "0.1+svn${SRCDATE}"
+PV = "0.1+svnr${SRCREV}"
PR = "r8"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http"
diff --git a/packages/meta/meta-sdk-gpe.bb b/packages/meta/meta-sdk-gpe.bb
index 7b5ac70f48..a91f3192c7 100644
--- a/packages/meta/meta-sdk-gpe.bb
+++ b/packages/meta/meta-sdk-gpe.bb
@@ -26,16 +26,11 @@ TARGET_INSTALL = "\
RDEPENDS = "${TARGET_INSTALL} ${HOST_INSTALL}"
-sdk_do_indexes () {
- set -ex
- rootfs_ipk_do_indexes
- sdk_ipk_do_indexes
- set +ex
-}
-
do_populate_sdk() {
- sdk_do_indexes
-
+ set -ex
+ package_update_index_ipk
+ set +ex
+
rm -rf ${SDK_OUTPUT}
mkdir -p ${SDK_OUTPUT}
diff --git a/packages/meta/meta-sdk-sbox-gpe.bb b/packages/meta/meta-sdk-sbox-gpe.bb
index c9b7737af2..28317c03fe 100644
--- a/packages/meta/meta-sdk-sbox-gpe.bb
+++ b/packages/meta/meta-sdk-sbox-gpe.bb
@@ -29,10 +29,9 @@ RDEPENDS = "${TARGET_INSTALL}"
IPKG_TARGET = "ipkg-cl -f ${SDK_DIR}/ipkg-target.conf -o ${SDK_OUTPUT}/${prefix}"
do_populate_sdk() {
-
- set -ex
- rootfs_ipk_do_indexes
- set +ex
+ set -ex
+ package_update_index_ipk
+ set +ex
rm -rf ${SDK_OUTPUT}
mkdir -p ${SDK_OUTPUT}
diff --git a/packages/meta/meta-sdk-sbox.bb b/packages/meta/meta-sdk-sbox.bb
index c0cb27d404..13c9612a74 100644
--- a/packages/meta/meta-sdk-sbox.bb
+++ b/packages/meta/meta-sdk-sbox.bb
@@ -25,10 +25,9 @@ RDEPENDS = "${TARGET_INSTALL}"
IPKG_TARGET = "ipkg-cl -f ${SDK_DIR}/ipkg-target.conf -o ${SDK_OUTPUT}/${prefix}"
do_populate_sdk() {
-
- set -ex
- rootfs_ipk_do_indexes
- set +ex
+ set -ex
+ package_update_index_ipk
+ set +ex
rm -rf ${SDK_OUTPUT}
mkdir -p ${SDK_OUTPUT}
diff --git a/packages/meta/meta-sdk.bb b/packages/meta/meta-sdk.bb
index cc163448ea..47796603db 100644
--- a/packages/meta/meta-sdk.bb
+++ b/packages/meta/meta-sdk.bb
@@ -23,15 +23,11 @@ TARGET_INSTALL = "\
RDEPENDS = "${TARGET_INSTALL} ${HOST_INSTALL}"
-sdk_do_indexes () {
- set -ex
- rootfs_ipk_do_indexes
- sdk_ipk_do_indexes
- set +ex
-}
-
do_populate_sdk() {
- sdk_do_indexes
+ set -ex
+ package_update_index_ipk
+ set +ex
+
echo "Creating host.conf..."
rm -rf ${SDK_OUTPUT}
diff --git a/packages/netbase/netbase/a780/interfaces b/packages/netbase/netbase/a780/interfaces
deleted file mode 100644
index 4e5d85e2c7..0000000000
--- a/packages/netbase/netbase/a780/interfaces
+++ /dev/null
@@ -1,44 +0,0 @@
-# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
-
-# The loopback interface
-auto lo
-iface lo inet loopback
-
-# Wireless interfaces
-iface wlan0 inet dhcp
-wireless_mode managed
-wireless_essid any
-iface atml0 inet dhcp
-
-# Wired or wireless interfaces
-iface eth0 inet dhcp
-iface eth1 inet dhcp
-
-auto usb0
-# Ethernet/RNDIS gadget (g_ether)
-# ... or on host side, usbnet and random hwaddr
-iface usb0 inet static
- address 192.168.1.2
- netmask 255.255.255.0
- network 192.168.1.0
- gateway 192.168.1.10
-
-
-# Zaurus 2.4 Lineo net_fd; obsolete
-iface usbd0 inet static
- address 192.168.129.201
- netmask 255.255.255.0
- network 192.168.129.0
- gateway 192.168.129.200
-
-# iPAQ 2.4 mach-sa1100/usb-eth
-# (192.168.0.202 is the iPAQ's IP, 192.168.0.200 is the host's IP)
-iface usbf inet static
- address 192.168.0.202
- netmask 255.255.255.0
- network 192.168.0.0
- gateway 192.168.0.200
-
-# Bluetooth networking
-iface bnep0 inet dhcp
-
diff --git a/packages/netbase/netbase/e680/interfaces b/packages/netbase/netbase/e680/interfaces
deleted file mode 100644
index 4e5d85e2c7..0000000000
--- a/packages/netbase/netbase/e680/interfaces
+++ /dev/null
@@ -1,44 +0,0 @@
-# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
-
-# The loopback interface
-auto lo
-iface lo inet loopback
-
-# Wireless interfaces
-iface wlan0 inet dhcp
-wireless_mode managed
-wireless_essid any
-iface atml0 inet dhcp
-
-# Wired or wireless interfaces
-iface eth0 inet dhcp
-iface eth1 inet dhcp
-
-auto usb0
-# Ethernet/RNDIS gadget (g_ether)
-# ... or on host side, usbnet and random hwaddr
-iface usb0 inet static
- address 192.168.1.2
- netmask 255.255.255.0
- network 192.168.1.0
- gateway 192.168.1.10
-
-
-# Zaurus 2.4 Lineo net_fd; obsolete
-iface usbd0 inet static
- address 192.168.129.201
- netmask 255.255.255.0
- network 192.168.129.0
- gateway 192.168.129.200
-
-# iPAQ 2.4 mach-sa1100/usb-eth
-# (192.168.0.202 is the iPAQ's IP, 192.168.0.200 is the host's IP)
-iface usbf inet static
- address 192.168.0.202
- netmask 255.255.255.0
- network 192.168.0.0
- gateway 192.168.0.200
-
-# Bluetooth networking
-iface bnep0 inet dhcp
-
diff --git a/packages/netbase/netbase_4.21.bb b/packages/netbase/netbase_4.21.bb
index 4bc77b004b..bfb178d0a0 100644
--- a/packages/netbase/netbase_4.21.bb
+++ b/packages/netbase/netbase_4.21.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "This package provides the necessary \
infrastructure for basic TCP/IP based networking."
SECTION = "base"
LICENSE = "GPL"
-PR = "r22"
+PR = "r23"
inherit update-rc.d
diff --git a/packages/nonworking/gnuboy/qtopiagnuboy_1.0.3.bb b/packages/nonworking/gnuboy/qtopiagnuboy_1.0.3.bb
index d93fc7f217..0c9b49755e 100644
--- a/packages/nonworking/gnuboy/qtopiagnuboy_1.0.3.bb
+++ b/packages/nonworking/gnuboy/qtopiagnuboy_1.0.3.bb
@@ -11,7 +11,7 @@ S = "${WORKDIR}/gnuboy"
FILES = ""
FILES_${PN} = "${palmtopdir}/"
-inherit qmake-base
+inherit qmake_base
qtopiadir = "${S}/gnuboy-${PV}-qtopia2"
diff --git a/packages/nonworking/zethereal/zethereal_1.0.0.bb b/packages/nonworking/zethereal/zethereal_1.0.0.bb
index de4830cb64..74913c1b01 100644
--- a/packages/nonworking/zethereal/zethereal_1.0.0.bb
+++ b/packages/nonworking/zethereal/zethereal_1.0.0.bb
@@ -9,7 +9,7 @@ APPTYPE = "binary"
APPDESKTOP = "${WORKDIR}"
PR = "r0"
-inherit autotools qmake-base
+inherit autotools qmake_base
EXTRA_OECONF = "--disable-ethereal \
--enable-tethereal \
diff --git a/packages/notification-daemon/notification-daemon_0.3.6.bb b/packages/notification-daemon/notification-daemon_0.3.6.bb
index 8ee89ea847..ee0f597550 100644
--- a/packages/notification-daemon/notification-daemon_0.3.6.bb
+++ b/packages/notification-daemon/notification-daemon_0.3.6.bb
@@ -1,16 +1,21 @@
-DESCRIPTION = "a dbus service that listens to desktop notification requests and displays them"
+DESCRIPTION = "A dbus service that listens to desktop notification requests and displays them"
HOMEPAGE = "http://www.galago-project.org/"
+SECTION = "x11"
LICENSE = "GPL"
DEPENDS = "gettext dbus gtk+ libsexy gconf libwnck"
-
-PACKAGES = "${PN}"
-FILES_${PN} = "${libexecdir}/notification-daemon \
- ${datadir}/dbus-1/services/notification-daemon.service \
- ${libdir}/notification-daemon-1.0/engines/libstandard.so \
- ${sysconfdir}/gconf/schemas/notification-daemon.schemas"
+PR = "r1"
SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.gz \
- file://dbus-glib-tool-prefix.patch;patch=1"
-EXTRA_OECONF = "--disable-binreloc"
+ file://dbus-glib-tool-prefix.patch;patch=1"
+
+EXTRA_OECONF = "--disable-binreloc"
inherit autotools pkgconfig
+
+PACKAGES = "${PN}"
+FILES_${PN} = "\
+ ${libexecdir}/notification-daemon \
+ ${datadir}/dbus-1/services \
+ ${libdir}/notification-daemon-1.0/engines/libstandard.so \
+ ${sysconfdir}/gconf/schemas/notification-daemon.schemas \
+"
diff --git a/packages/notification-daemon/notification-daemon_0.3.5.bb b/packages/notification-daemon/notification-daemon_0.3.7.bb
index 791c285aed..43721f5e28 100644
--- a/packages/notification-daemon/notification-daemon_0.3.5.bb
+++ b/packages/notification-daemon/notification-daemon_0.3.7.bb
@@ -1,15 +1,19 @@
-DESCRIPTION = "a dbus service that listens to desktop notification requests and displays them"
+DESCRIPTION = "A dbus service that listens to desktop notification requests and displays them"
HOMEPAGE = "http://www.galago-project.org/"
+SECTION = "x11"
LICENSE = "GPL"
DEPENDS = "gettext dbus gtk+ libsexy gconf libwnck"
-PACKAGES = "${PN}"
-FILES_${PN} = "${libexecdir}/notification-daemon \
- ${datadir}/dbus-1/services/notification-daemon.service \
- ${libdir}/notification-daemon-1.0/engines/libstandard.so \
- ${sysconfdir}/gconf/schemas/notification-daemon.schemas"
-
SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.gz"
+
EXTRA_OECONF = "--disable-binreloc"
inherit autotools pkgconfig
+
+PACKAGES = "${PN}"
+FILES_${PN} = "\
+ ${libexecdir}/notification-daemon \
+ ${datadir}/dbus-1/services/ \
+ ${libdir}/notification-daemon-1.0/engines/libstandard.so \
+ ${sysconfdir}/gconf/schemas/notification-daemon.schemas \
+"
diff --git a/packages/openmoko2/neod_svn.bb b/packages/openmoko2/neod_svn.bb
index 4d6115ae93..b382fc2c88 100644
--- a/packages/openmoko2/neod_svn.bb
+++ b/packages/openmoko2/neod_svn.bb
@@ -5,3 +5,14 @@ PV = "0.1.0+svn${SVNREV}"
PR = "r0"
inherit openmoko2 gconf
+
+EXTRA_OECONF_fic-gta01 = "--with-platform=neo1973"
+EXTRA_OECONF_fic-gta02 = "--with-platform=neo1973"
+EXTRA_OECONF_a780 = "--with-platform=ezx"
+EXTRA_OECONF_a1200 = "--with-platform=ezx"
+EXTRA_OECONF_e680 = "--with-platform=ezx"
+EXTRA_OECONF_rokre2 = "--with-platform=ezx"
+EXTRA_OECONF_rokre6 = "--with-platform=ezx"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
diff --git a/packages/openmoko2/openmoko-common2_svn.bb b/packages/openmoko2/openmoko-common2_svn.bb
index f54a23de18..0cf7f763cb 100644
--- a/packages/openmoko2/openmoko-common2_svn.bb
+++ b/packages/openmoko2/openmoko-common2_svn.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Common files for the OpenMoko distribution"
SECTION = "openmoko/base"
-PV = "0.0+svn${SRCDATE}"
+PV = "0.0+svnr${SRCREV}"
PR = "r3"
inherit openmoko2
diff --git a/packages/openmoko2/openmoko-dates2_svn.bb b/packages/openmoko2/openmoko-dates2_svn.bb
new file mode 100644
index 0000000000..9650a20b0d
--- /dev/null
+++ b/packages/openmoko2/openmoko-dates2_svn.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "The OpenMoko Calendar"
+SECTION = "openmoko/pim"
+DEPENDS = "libmokoui2 libmokojournal2 gtk+ libglade eds-dbus"
+RDEPENDS = "libedata-cal"
+PV = "0.1.0+svn${SVNREV}"
+
+inherit openmoko2
+
+SRC_URI = "svn://svn.o-hand.com/repos/dates/branches;module=jana;proto=http"
+S = "${WORKDIR}/jana/"
+
+EXTRA_OECONF = "--with-frontend=openmoko"
diff --git a/packages/openmoko2/openmoko-session2.bb b/packages/openmoko2/openmoko-session2.bb
index 31d38382df..de2d7cdff6 100644
--- a/packages/openmoko2/openmoko-session2.bb
+++ b/packages/openmoko2/openmoko-session2.bb
@@ -4,7 +4,7 @@ SECTION = "x11"
RDEPENDS = "matchbox-common matchbox-applet-startup-monitor matchbox-panel-2"
RDEPENDS += "openmoko-common2 openmoko-today2 openmoko-dialer2"
RCONFLICTS = "openmoko-session"
-PR = "r30"
+PR = "r31"
SRC_URI = "file://etc"
S = ${WORKDIR}
diff --git a/packages/openmoko2/openmoko-session2/etc/matchbox/session b/packages/openmoko2/openmoko-session2/etc/matchbox/session
index dee3e58051..4f2f8ae110 100755
--- a/packages/openmoko2/openmoko-session2/etc/matchbox/session
+++ b/packages/openmoko2/openmoko-session2/etc/matchbox/session
@@ -9,6 +9,6 @@ openmoko-dialer &
matchbox-window-manager -use_titlebar yes -use_desktop_mode decorated -theme openmoko-standard-2 -use_cursor $SHOWCURSOR $@ &
matchbox-panel-2 --start-applets systray,startup \
- --end-applets openmoko-panel-battery,openmoko-panel-gsm,openmoko-panel-gps,openmoko-panel-usb,openmoko-panel-bt,openmoko-panel-clock --titlebar &
+ --end-applets openmoko-panel-battery,openmoko-panel-gsm,openmoko-panel-gps,openmoko-panel-usb,openmoko-panel-bt,openmoko-panel-clock,keyboard --titlebar &
exec neod
diff --git a/packages/openmoko2/openmoko-terminal2_svn.bb b/packages/openmoko2/openmoko-terminal2_svn.bb
index dc9acfec14..1c27a07d76 100644
--- a/packages/openmoko2/openmoko-terminal2_svn.bb
+++ b/packages/openmoko2/openmoko-terminal2_svn.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "The OpenMoko Command Line Console"
SECTION = "openmoko/applications"
-DEPENDS = "libmokoui2 vte"
+DEPENDS = "vte libmokoui2"
PV = "2.1.0+${SVNREV}"
-PR = "r0"
+PR = "r1"
inherit openmoko2
diff --git a/packages/opie-reader/uqtreader_cvs.bb b/packages/opie-reader/uqtreader_cvs.bb
index 04b03243c4..9fb7af2db5 100644
--- a/packages/opie-reader/uqtreader_cvs.bb
+++ b/packages/opie-reader/uqtreader_cvs.bb
@@ -17,7 +17,7 @@ S = "${WORKDIR}/opie-reader"
export OPIEDIR="${S}/opiedir"
-inherit qmake-base qt4x11
+inherit qmake_base qt4x11
do_configure() {
${OE_QMAKE_QMAKE} -recursive opie-reader.pro UQT_DATADIR="${datadir}/${PN}" UQT_LIBDIR="${libdir}/${PN}"
diff --git a/packages/pango/pango.inc b/packages/pango/pango.inc
index e73fecbfb2..5189d950c1 100644
--- a/packages/pango/pango.inc
+++ b/packages/pango/pango.inc
@@ -8,7 +8,7 @@ EXTRA_AUTORECONF = ""
SECTION = "x11/libs"
-DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libx11 libxft gtk-doc cairo"
+DEPENDS = "glib-2.0 fontconfig freetype zlib virtual/libiconv virtual/libx11 libxft gtk-doc cairo"
PACKAGES_DYNAMIC = "pango-module-*"
diff --git a/packages/pimlico/contacts-0.7/.mtn2git_empty b/packages/pimlico/contacts-0.7/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/pimlico/contacts-0.7/.mtn2git_empty
diff --git a/packages/pimlico/contacts-0.7/contacts-owl-window-menu.patch b/packages/pimlico/contacts-0.7/contacts-owl-window-menu.patch
new file mode 100644
index 0000000000..1fbf1dcc2a
--- /dev/null
+++ b/packages/pimlico/contacts-0.7/contacts-owl-window-menu.patch
@@ -0,0 +1,52 @@
+Index: contacts-0.5/src/contacts-gtk.c
+===================================================================
+--- contacts-0.5.orig/src/contacts-gtk.c 2007-04-20 14:35:36.000000000 +0100
++++ contacts-0.5/src/contacts-gtk.c 2007-07-13 10:47:52.000000000 +0100
+@@ -178,8 +178,8 @@
+ vbox7 = gtk_vbox_new (FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (main_window), vbox7);
+
+- main_menubar = gtk_menu_bar_new ();
+- gtk_box_pack_start (GTK_BOX (vbox7), main_menubar, FALSE, FALSE, 0);
++ main_menubar = gtk_menu_new ();
++ gtk_widget_show (main_menubar);
+
+ contacts_menu = gtk_menu_item_new_with_mnemonic (_("_Contacts"));
+ gtk_container_add (GTK_CONTAINER (main_menubar), contacts_menu);
+Index: contacts-0.5/src/Makefile.am
+===================================================================
+--- contacts-0.5.orig/src/Makefile.am 2007-03-02 11:17:00.000000000 +0000
++++ contacts-0.5/src/Makefile.am 2007-07-13 10:47:52.000000000 +0100
+@@ -28,7 +28,7 @@
+ contacts-@FRONTEND@.c \
+ contacts-@FRONTEND@.h
+
+-contacts_LDADD = $(CONTACTS_LIBS)
++contacts_LDADD = $(CONTACTS_LIBS) -lowl
+ contacts_LDFLAGS = @CONTACTS_LIBS@
+
+ MAINTAINERCLEANFILES = config.h.in Makefile.in
+Index: contacts-0.5/src/contacts-main.c
+===================================================================
+--- contacts-0.5.orig/src/contacts-main.c 2007-04-20 15:46:23.000000000 +0100
++++ contacts-0.5/src/contacts-main.c 2007-07-13 10:53:44.000000000 +0100
+@@ -27,6 +27,8 @@
+ #include <libgnomevfs/gnome-vfs.h>
+ #endif
+
++#include "owlwindowmenu.h"
++
+ #include "bacon-message-connection.h"
+ #include "contacts-defs.h"
+ #include "contacts-utils.h"
+@@ -230,6 +232,10 @@
+ /* fix icon sizes to 16x16 for the moment... */
+ gtk_rc_parse_string ("gtk_icon_sizes=\"gtk-button=16,16:gtk-menu=16,16\"");
+
++ gtk_widget_show_all (data->ui->main_menubar);
++ owl_set_window_menu (GTK_WINDOW (data->ui->main_window),
++ GTK_MENU (data->ui->main_menubar));
++
+ gtk_main ();
+
+ /* Unload the addressbook */
diff --git a/packages/pimlico/contacts_0.7.bb b/packages/pimlico/contacts_0.7.bb
new file mode 100644
index 0000000000..d596d45659
--- /dev/null
+++ b/packages/pimlico/contacts_0.7.bb
@@ -0,0 +1,9 @@
+require contacts.inc
+
+PR = "r1"
+
+SRC_URI = "http://pimlico-project.org/sources/${PN}/${PN}-${PV}.tar.gz \
+ file://stock_contact.png \
+ file://stock_person.png \
+ file://contacts-owl-window-menu.patch;patch=1 \
+ "
diff --git a/packages/pimlico/contacts_svn.bb b/packages/pimlico/contacts_svn.bb
index 5169690781..90a37287d1 100644
--- a/packages/pimlico/contacts_svn.bb
+++ b/packages/pimlico/contacts_svn.bb
@@ -4,13 +4,15 @@ require contacts.inc
#RDEPENDS += "gnome-vfs-plugin-file"
#RRECOMMENDS += "gnome-vfs-plugin-http"
-PV = "0.5+svn${SRCDATE}"
+PV = "0.5+svnr${SRCREV}"
-DEFAULT_PREFERENCE = "-1"
+#DEFAULT_PREFERENCE = "-1"
SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \
file://stock_contact.png \
- file://stock_person.png"
+ file://stock_person.png \
+ file://contacts-owl-window-menu.patch;patch=1 \
+ "
S = "${WORKDIR}/trunk"
diff --git a/packages/pimlico/dates.inc b/packages/pimlico/dates.inc
index d4debfd28d..4c1e771ba8 100644
--- a/packages/pimlico/dates.inc
+++ b/packages/pimlico/dates.inc
@@ -3,12 +3,11 @@ LICENSE = "LGPL"
SECTION = "x11"
DEPENDS = "glib-2.0 gtk+ libglade eds-dbus"
RDEPENDS = "libedata-cal"
-RCONFLICTS_${PN} = "openmoko-dates"
inherit autotools pkgconfig gtk-icon-cache
# EXTRA_OECONF = "--disable-debug"
-EXTRA_OECONF = "--enable-owl=true"
+EXTRA_OECONF = "--enable-owl=true --disable-dnd"
FILES_${PN} += "${datadir}/pixmaps/dates.png"
@@ -17,4 +16,3 @@ do_install_append () {
install -m 0644 ${D}/${datadir}/icons/hicolor/48x48/apps/dates.png ${D}/${datadir}/pixmaps/
}
-PRIVATE_LIBS = "libgtkdatesview.so.0"
diff --git a/packages/pimlico/dates_0.4.4.bb b/packages/pimlico/dates_0.4.4.bb
new file mode 100644
index 0000000000..9e5451f522
--- /dev/null
+++ b/packages/pimlico/dates_0.4.4.bb
@@ -0,0 +1,7 @@
+require dates.inc
+
+PR="r2"
+
+SRC_URI = "http://pimlico-project.org/sources/dates/dates-${PV}.tar.gz \
+ file://dates-owl-window-menu.patch;patch=1 \
+ "
diff --git a/packages/pimlico/dates_svn.bb b/packages/pimlico/dates_svn.bb
index facafe0a2a..d392031abb 100644
--- a/packages/pimlico/dates_svn.bb
+++ b/packages/pimlico/dates_svn.bb
@@ -2,7 +2,9 @@ require dates.inc
DEFAULT_PREFERENCE = "-1"
-PV = "0.4.2+svn${SRCDATE}"
+PV = "0.4.4+svnr${SRCREV}"
S = "${WORKDIR}/trunk"
-SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http"
+SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \
+ file://dates-owl-window-menu.patch;patch=1 \
+ "
diff --git a/packages/pimlico/files/contacts-owl-window-menu.patch b/packages/pimlico/files/contacts-owl-window-menu.patch
new file mode 100644
index 0000000000..ad5e2f04fc
--- /dev/null
+++ b/packages/pimlico/files/contacts-owl-window-menu.patch
@@ -0,0 +1,52 @@
+Index: trunk/src/contacts-gtk.c
+===================================================================
+--- trunk.orig/src/contacts-gtk.c 2007-07-11 22:16:08.000000000 +0100
++++ trunk/src/contacts-gtk.c 2007-07-13 09:02:03.000000000 +0100
+@@ -179,8 +179,8 @@
+ vbox7 = gtk_vbox_new (FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (main_window), vbox7);
+
+- main_menubar = gtk_menu_bar_new ();
+- gtk_box_pack_start (GTK_BOX (vbox7), main_menubar, FALSE, FALSE, 0);
++ main_menubar = gtk_menu_new ();
++ gtk_widget_show (main_menubar);
+
+ contacts_menu = gtk_menu_item_new_with_mnemonic (_("_Contacts"));
+ gtk_container_add (GTK_CONTAINER (main_menubar), contacts_menu);
+Index: trunk/src/Makefile.am
+===================================================================
+--- trunk.orig/src/Makefile.am 2007-04-19 15:41:14.000000000 +0100
++++ trunk/src/Makefile.am 2007-07-13 08:50:58.000000000 +0100
+@@ -28,7 +28,7 @@
+ contacts-@FRONTEND@.c \
+ contacts-@FRONTEND@.h
+
+-contacts_LDADD = $(CONTACTS_LIBS)
++contacts_LDADD = $(CONTACTS_LIBS) -lowl
+ contacts_LDFLAGS = @CONTACTS_LIBS@
+
+ MAINTAINERCLEANFILES = config.h.in Makefile.in
+Index: trunk/src/contacts-main.c
+===================================================================
+--- trunk.orig/src/contacts-main.c 2007-07-11 22:16:08.000000000 +0100
++++ trunk/src/contacts-main.c 2007-07-13 09:02:30.000000000 +0100
+@@ -27,6 +27,8 @@
+ #include <libgnomevfs/gnome-vfs.h>
+ #endif
+
++#include "owlwindowmenu.h"
++
+ #include "bacon-message-connection.h"
+ #include "contacts-defs.h"
+ #include "contacts-utils.h"
+@@ -222,6 +224,10 @@
+ gtk_widget_show_all (widget);
+ }
+
++ gtk_widget_show_all (data->ui->main_menubar);
++ owl_set_window_menu (GTK_WINDOW (data->ui->main_window),
++ GTK_MENU (data->ui->main_menubar));
++
+ gtk_main ();
+
+ /* if we have modified the current contact, but not saved it, do so now */
diff --git a/packages/pimlico/files/dates-owl-window-menu.patch b/packages/pimlico/files/dates-owl-window-menu.patch
new file mode 100644
index 0000000000..d47875dd65
--- /dev/null
+++ b/packages/pimlico/files/dates-owl-window-menu.patch
@@ -0,0 +1,72 @@
+Index: trunk/src/Makefile.am
+===================================================================
+--- trunk.orig/src/Makefile.am 2007-07-11 22:16:15.000000000 +0100
++++ trunk/src/Makefile.am 2007-07-13 08:21:11.000000000 +0100
+@@ -47,7 +47,7 @@
+ libgtkdatesviewinclude_HEADERS = \
+ dates_view.h
+
+-dates_LDADD = $(DATES_LIBS) libgtkdatesview.la
++dates_LDADD = $(DATES_LIBS) libgtkdatesview.la -lowl
+
+ if USE_OWL
+ dates_LDADD += $(top_builddir)/libowl/libowl.la
+Index: trunk/src/dates_gtk.c
+===================================================================
+--- trunk.orig/src/dates_gtk.c 2007-07-11 22:16:15.000000000 +0100
++++ trunk/src/dates_gtk.c 2007-07-13 08:33:48.000000000 +0100
+@@ -32,10 +32,6 @@
+ #endif
+
+ #ifndef DATES_PLATFORM_create_main_window
+-/* the default implementation assumes that menu is GtkMenuBar */
+-#ifdef DATES_MENU_WITHOUT_BAR
+-#error Cannot use default create_main_window () if DATES_MENU_WITHOUT_BAR is defined !!!
+-#endif
+ static GtkWidget *
+ create_main_window (DatesData * d, GtkWidget * toolbar,
+ GtkWidget * menu, GtkAccelGroup * accel_group)
+@@ -57,7 +53,6 @@
+ gtk_container_add (GTK_CONTAINER (d->main_window), main_vbox);
+
+ gtk_widget_show (menu);
+- gtk_box_pack_start (GTK_BOX (main_vbox), menu, FALSE, FALSE, 0);
+
+ gtk_box_pack_end (GTK_BOX (main_vbox), toolbar, FALSE, FALSE, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (toolbar), 3);
+Index: trunk/src/dates_platform.h
+===================================================================
+--- trunk.orig/src/dates_platform.h 2007-07-11 22:16:15.000000000 +0100
++++ trunk/src/dates_platform.h 2007-07-13 08:21:11.000000000 +0100
+@@ -20,7 +20,7 @@
+
+ #include "dates_types.h"
+
+-#ifdef WITH_HILDON
++#if 1
+ #define DATES_MENU_WITHOUT_BAR 1
+ #endif
+
+Index: trunk/src/dates_main.c
+===================================================================
+--- trunk.orig/src/dates_main.c 2007-07-11 22:16:15.000000000 +0100
++++ trunk/src/dates_main.c 2007-07-13 08:36:11.000000000 +0100
+@@ -25,6 +25,8 @@
+ #include <libical/icaltime.h>
+ #include <gconf/gconf-client.h>
+
++#include <gtk/gtkmenuitem.h>
++#include "owlwindowmenu.h"
+ #include "dates_types.h"
+ #include "dates_platform.h"
+ #include "dates_callbacks.h"
+@@ -566,6 +568,9 @@
+ gtk_widget_show (data.main_window);
+ }
+
++ owl_set_window_menu (GTK_WINDOW (data.main_window),
++ GTK_MENU (data.main_menu));
++
+ gtk_main ();
+
+ /* clean up */
diff --git a/packages/pimlico/files/tasks-owl.diff b/packages/pimlico/files/tasks-owl.diff
new file mode 100644
index 0000000000..ea867d890d
--- /dev/null
+++ b/packages/pimlico/files/tasks-owl.diff
@@ -0,0 +1,74 @@
+Index: src/gtk/tasks-ui.xml
+===================================================================
+--- src/gtk/tasks-ui.xml (revision 288)
++++ src/gtk/tasks-ui.xml (working copy)
+@@ -10,10 +10,8 @@
+ <menuitem action="DeleteTask"/>
+ <menuitem action="PurgeTasks"/>
+ <separator/>
++ <menuitem action="About"/>
+ <menuitem action="Quit"/>
+ </menu>
+- <menu action="HelpMenu">
+- <menuitem action="About"/>
+- </menu>
+ </menubar>
+ </ui>
+Index: src/gtk/main.c
+===================================================================
+--- src/gtk/main.c (revision 288)
++++ src/gtk/main.c (working copy)
+@@ -21,6 +21,7 @@
+ #include <libecal/e-cal.h>
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
++#include <owlwindowmenu.h>
+
+ #include <libkoto/ical-util.h>
+ #include <libkoto/koto-category-group.h>
+@@ -462,17 +463,6 @@
+ NULL);
+ }
+
+-/*
+- * Callback from the UI manager with the GtkMenu widget. Pack and add this to
+- * the container.
+- */
+-static void
+-ui_add_widget (GtkUIManager *ui, GtkWidget *widget, GtkContainer *container)
+-{
+- gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0);
+- gtk_widget_show (widget);
+-}
+-
+ /* TODO: split into global actions and actions that require a task to be selected */
+ static const GtkActionEntry actions[] =
+ {
+@@ -563,11 +553,12 @@
+ }
+ /* Bind the accelerators */
+ gtk_window_add_accel_group (GTK_WINDOW (window), gtk_ui_manager_get_accel_group (ui_manager));
+- g_signal_connect (ui_manager, "add-widget", G_CALLBACK (ui_add_widget), top_box);
+
+ /* Do this so that the menu is packed now instead of in the idle loop */
+ gtk_ui_manager_ensure_update (ui_manager);
+-
++ owl_set_window_menu_item (GTK_WINDOW (window),
++ GTK_MENU_ITEM (gtk_ui_manager_get_widget (ui_manager, "/MenuBar/TasksMenu")));
++
+ box = gtk_vbox_new (FALSE, 4);
+ gtk_container_set_border_width (GTK_CONTAINER (box), 4);
+ gtk_container_add (GTK_CONTAINER (top_box), box);
+Index: src/gtk/Makefile.am
+===================================================================
+--- src/gtk/Makefile.am (revision 288)
++++ src/gtk/Makefile.am (working copy)
+@@ -4,7 +4,7 @@
+ bin_PROGRAMS = tasks
+ tasks_CPPFLAGS = -I$(top_srcdir)/
+ tasks_CFLAGS = -Wall $(GTK_CFLAGS) $(ECAL_CFLAGS) $(SEXY_CFLAGS)
+-tasks_LDADD = $(top_builddir)/libkoto/libkoto.a $(GTK_LIBS) $(ECAL_LIBS) $(SEXY_LIBS)
++tasks_LDADD = $(top_builddir)/libkoto/libkoto.a $(GTK_LIBS) $(ECAL_LIBS) $(SEXY_LIBS) -lowl
+
+ tasks_SOURCES = \
+ main.c \
diff --git a/packages/pimlico/tasks-0.10/.mtn2git_empty b/packages/pimlico/tasks-0.10/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/pimlico/tasks-0.10/.mtn2git_empty
diff --git a/packages/pimlico/tasks-0.10/delete-crash.diff b/packages/pimlico/tasks-0.10/delete-crash.diff
new file mode 100644
index 0000000000..0b2ba473d4
--- /dev/null
+++ b/packages/pimlico/tasks-0.10/delete-crash.diff
@@ -0,0 +1,71 @@
+Index: libkoto/koto-utils.c
+===================================================================
+--- libkoto/koto-utils.c (revision 294)
++++ libkoto/koto-utils.c (revision 295)
+@@ -25,6 +25,7 @@
+
+ typedef struct {
+ GtkWindow *window;
++ GtkTreeModel *model;
+ char *title;
+ } WindowData;
+
+@@ -67,19 +68,21 @@
+ /*
+ * Update the window title, generally as the number of tasks has changed.
+ */
+-static void
+-update_title (WindowData *data, GtkTreeModel *model)
++static gboolean
++update_title (gpointer user_data)
+ {
++ WindowData *data = user_data;
+ int count = 0;
+ char *title;
+
+ g_assert (data);
+- g_assert (model);
+
+- gtk_tree_model_foreach (model, count_pending, &count);
++ gtk_tree_model_foreach (data->model, count_pending, &count);
+ title = g_strdup_printf (data->title, count);
+ gtk_window_set_title (data->window, title);
+ g_free (title);
++
++ return FALSE;
+ }
+
+ /*
+@@ -89,7 +92,7 @@
+ static void
+ on_row_inserted (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, WindowData *data)
+ {
+- update_title (data, model);
++ g_idle_add (update_title, data);
+ }
+
+ /*
+@@ -99,7 +102,7 @@
+ static void
+ on_row_deleted (GtkTreeModel *model, GtkTreePath *path, WindowData *data)
+ {
+- update_title (data, model);
++ g_idle_add (update_title, data);
+ }
+
+ /*
+@@ -135,6 +138,7 @@
+
+ data = g_slice_new (WindowData);
+ data->window = window;
++ data->model = model;
+ data->title = g_strdup (title);
+
+ g_object_weak_ref (G_OBJECT (model), on_weak_notify, data);
+@@ -145,5 +149,5 @@
+ "signal::row-deleted", G_CALLBACK (on_row_deleted), data,
+ NULL);
+
+- update_title (data, model);
++ update_title (data);
+ }
diff --git a/packages/pimlico/tasks.inc b/packages/pimlico/tasks.inc
index 797969db62..2bb1c9265a 100644
--- a/packages/pimlico/tasks.inc
+++ b/packages/pimlico/tasks.inc
@@ -1,6 +1,6 @@
DESCRIPTION = "Task list application"
LICENSE = "GPL"
SECTION = "x11"
-DEPENDS = "glib-2.0 libsexy gtk+ eds-dbus"
+DEPENDS = "glib-2.0 gtk+ eds-dbus libowl"
inherit autotools pkgconfig gtk-icon-cache
diff --git a/packages/pimlico/tasks_0.10.bb b/packages/pimlico/tasks_0.10.bb
new file mode 100644
index 0000000000..75e589e740
--- /dev/null
+++ b/packages/pimlico/tasks_0.10.bb
@@ -0,0 +1,8 @@
+require tasks.inc
+
+PR="r2"
+
+SRC_URI = "http://pimlico-project.org/sources/${PN}/${PN}-${PV}.tar.gz \
+ file://tasks-single.diff;patch=1 \
+ file://delete-crash.diff;patch=1;pnum=0 \
+ file://tasks-owl.diff;patch=1;pnum=0"
diff --git a/packages/pimlico/tasks_svn.bb b/packages/pimlico/tasks_svn.bb
index 9d9786cbdd..b3da6ebe20 100644
--- a/packages/pimlico/tasks_svn.bb
+++ b/packages/pimlico/tasks_svn.bb
@@ -2,7 +2,9 @@ require tasks.inc
DEFAULT_PREFERENCE = "-1"
-PV = "0.4+svn${SRCDATE}"
+PV = "0.10+svnr${SRCREV}"
S = "${WORKDIR}/trunk"
-SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http"
+SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \
+ file://tasks-single.diff;patch=1 \
+ file://tasks-owl.diff;patch=1"
diff --git a/packages/psplash/files/openmoko/psplash-hand-img.h b/packages/psplash/files/openmoko/psplash-hand-img.h
index 96dc16c723..26f7f41cb5 100644
--- a/packages/psplash/files/openmoko/psplash-hand-img.h
+++ b/packages/psplash/files/openmoko/psplash-hand-img.h
@@ -1,5377 +1,3292 @@
-/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
+/* GdkPixbuf RGB C-Source image dump 1-byte-run-length-encoded */
-#define HAND_IMG_ROWSTRIDE (1920)
+#define HAND_IMG_ROWSTRIDE (1440)
#define HAND_IMG_WIDTH (480)
#define HAND_IMG_HEIGHT (640)
-#define HAND_IMG_BYTES_PER_PIXEL (4) /* 3:RGB, 4:RGBA */
+#define HAND_IMG_BYTES_PER_PIXEL (3) /* 3:RGB, 4:RGBA */
#define HAND_IMG_RLE_PIXEL_DATA ((uint8*) \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\257\0\0\0\377\204\1\1\0\377\203\2\2\1\377" \
- "\214\3\3\1\377\202\2\2\1\377\203\1\1\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\310\0\0\0\377\3\1\1\0\377\2\2\1\377\3\3\1\377\202\4\3" \
- "\1\377\202\5\4\1\377\203\5\4\2\377\205\6\5\2\377\202\7\6\2\377\204\6" \
- "\5\2\377\203\5\4\2\377\202\5\4\1\377\202\4\3\1\377\202\3\3\1\377\1\2" \
- "\2\1\377\202\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\300" \
- "\0\0\0\377\7\1\1\0\377\3\3\1\377\4\3\1\377\5\4\2\377\6\5\2\377\7\6\2" \
- "\377\10\7\3\377\202\11\10\3\377\202\12\11\3\377\203\13\11\3\377\210\14" \
- "\12\4\377\203\13\11\3\377\1\12\11\3\377\202\11\10\3\377\1\10\7\3\377" \
- "\202\7\6\2\377\4\6\5\2\377\5\4\2\377\5\4\1\377\4\3\1\377\202\3\3\1\377" \
- "\2\2\2\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\272" \
- "\0\0\0\377\12\1\1\0\377\3\3\1\377\5\4\1\377\6\5\2\377\10\7\3\377\12\11" \
- "\3\377\13\11\3\377\15\13\4\377\16\14\4\377\17\15\5\377\202\17\15\4\377" \
- "\1\20\16\4\377\203\21\16\5\377\210\22\17\5\377\202\21\16\5\377\202\20" \
- "\16\4\377\15\17\15\4\377\17\15\5\377\16\14\4\377\15\13\4\377\14\12\4" \
- "\377\13\11\3\377\12\11\3\377\11\10\3\377\10\7\3\377\7\6\2\377\6\5\2\377" \
- "\5\4\2\377\5\4\1\377\202\3\3\1\377\202\1\1\0\377\377\0\0\0\377\377\0" \
- "\0\0\377\377\0\0\0\377\265\0\0\0\377\16\2\2\1\377\4\3\1\377\6\5\2\377" \
- "\10\7\3\377\13\11\3\377\15\13\4\377\17\15\4\377\20\16\4\377\22\17\5\377" \
- "\23\20\5\377\24\21\5\377\25\22\6\377\26\23\6\377\27\24\6\377\203\30\25" \
- "\7\377\210\31\25\7\377\202\30\25\7\377\202\27\24\6\377\24\26\23\6\377" \
- "\25\22\6\377\24\21\5\377\23\20\5\377\22\17\5\377\21\16\5\377\20\16\4" \
- "\377\17\15\4\377\16\14\4\377\15\13\4\377\14\12\4\377\12\11\3\377\11\10" \
- "\3\377\7\6\2\377\6\5\2\377\5\4\1\377\4\3\1\377\3\3\1\377\2\2\1\377\1" \
- "\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\261\0\0\0\377\15\3" \
- "\3\1\377\5\4\1\377\7\6\2\377\12\11\3\377\15\13\4\377\20\16\4\377\22\17" \
- "\5\377\25\22\6\377\27\24\6\377\30\25\7\377\31\25\7\377\33\27\10\377\34" \
- "\30\10\377\202\35\31\10\377\1\36\32\11\377\204\37\33\11\377\204\40\33" \
- "\11\377\203\37\33\11\377\202\36\32\11\377\4\35\31\10\377\34\30\10\377" \
- "\33\27\10\377\32\26\7\377\202\31\25\7\377\20\30\25\7\377\27\24\6\377" \
- "\25\22\6\377\24\21\5\377\22\17\5\377\21\16\5\377\20\16\4\377\17\15\5" \
- "\377\15\13\4\377\13\11\3\377\12\11\3\377\10\7\3\377\6\5\2\377\5\4\2\377" \
- "\4\3\1\377\3\3\1\377\202\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0" \
- "\0\0\377\255\0\0\0\377\15\3\3\1\377\5\4\2\377\10\7\3\377\14\12\4\377" \
- "\17\15\4\377\22\17\5\377\25\22\6\377\30\25\7\377\32\26\7\377\34\30\10" \
- "\377\37\33\11\377!\34\11\377\"\35\12\377\202#\36\12\377\202$\37\13\377" \
- "\202%!\13\377\210&!\13\377\1%!\13\377\202$\37\13\377\203#\36\12\377\27" \
- "\"\35\12\377!\34\11\377\40\33\11\377\37\33\11\377\35\31\10\377\34\30" \
- "\10\377\32\26\7\377\31\25\7\377\30\25\7\377\26\23\6\377\24\21\5\377\23" \
- "\20\5\377\21\16\5\377\17\15\4\377\16\14\4\377\14\12\4\377\12\11\3\377" \
- "\10\7\3\377\6\5\2\377\5\4\1\377\4\3\1\377\2\2\1\377\1\1\0\377\377\0\0" \
- "\0\377\377\0\0\0\377\377\0\0\0\377\251\0\0\0\377\22\1\1\0\377\3\3\1\377" \
- "\5\4\2\377\11\10\3\377\15\13\4\377\20\16\4\377\24\21\5\377\30\25\7\377" \
- "\32\26\7\377\36\32\11\377!\34\11\377#\36\12\377%!\13\377&!\13\377'#\14" \
- "\377($\14\377)%\14\377*%\15\377\203+&\15\377\210,'\15\377\202+&\15\377" \
- "\1*%\15\377\202)%\14\377\2($\14\377'#\14\377\202&!\13\377\26%!\13\377" \
- "$\37\13\377#\36\12\377\"\35\12\377\40\33\11\377\36\32\11\377\34\30\10" \
- "\377\32\26\7\377\31\25\7\377\27\24\6\377\25\22\6\377\23\20\5\377\21\16" \
- "\5\377\17\15\4\377\16\14\4\377\14\12\4\377\12\11\3\377\7\6\2\377\5\4" \
- "\2\377\4\3\1\377\3\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\246\0\0\0\377\21\1\1\0\377\3\3\1\377\5\4\2\377\11\10\3\377" \
- "\16\14\4\377\21\16\5\377\25\22\6\377\31\25\7\377\35\31\10\377!\34\11" \
- "\377#\36\12\377&!\13\377)%\14\377+&\15\377,'\16\377-(\16\377.)\16\377" \
- "\202/*\16\377\2020+\17\377\2121,\17\377\2020+\17\377\1/*\16\377\202." \
- ")\16\377\33-(\16\377,'\16\377,'\15\377+&\15\377)%\14\377($\14\377'#\14" \
- "\377&!\13\377$\37\13\377#\36\12\377\"\35\12\377\40\33\11\377\35\31\10" \
- "\377\33\27\10\377\31\25\7\377\30\25\7\377\25\22\6\377\23\20\5\377\21" \
- "\16\5\377\17\15\4\377\15\13\4\377\13\11\3\377\11\10\3\377\6\5\2\377\5" \
- "\4\1\377\3\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\244\0\0\0\377\20\3\3\1\377\5\4\2\377\11\10\3\377\16\14\4\377\22\17\5" \
- "\377\26\23\6\377\32\26\7\377\37\33\11\377#\36\12\377&!\13\377)%\14\377" \
- ",'\15\377.)\16\3770+\17\3772-\17\3773-\17\377\2024.\20\377\2035/\17\377" \
- "\21260\20\377\2035/\17\377\1""4.\20\377\2023-\17\377\34""2-\17\3771," \
- "\17\3770+\17\377/*\16\377.)\16\377,'\16\377,'\15\377*%\15\377)%\14\377" \
- "'#\14\377&!\13\377$\37\13\377#\36\12\377\40\33\11\377\36\32\11\377\33" \
- "\27\10\377\31\25\7\377\27\24\6\377\25\22\6\377\22\17\5\377\20\16\4\377" \
- "\16\14\4\377\14\12\4\377\11\10\3\377\7\6\2\377\5\4\1\377\3\3\1\377\1" \
- "\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\241\0\0\0\377\16\3" \
- "\3\1\377\5\4\2\377\11\10\3\377\15\13\4\377\21\16\5\377\27\24\6\377\33" \
- "\27\10\377\37\33\11\377#\36\12\377&!\13\377+&\15\377-(\16\3771,\17\377" \
- "4.\20\377\20260\20\377\20371\20\377\20482\20\377\20792\21\377\20582\20" \
- "\377\20271\20\377\20360\20\377\34""5/\17\3774.\20\3773-\17\3772-\17\377" \
- "1,\17\377/*\16\377.)\16\377,'\16\377+&\15\377)%\14\377'#\14\377&!\13" \
- "\377$\37\13\377#\36\12\377\40\33\11\377\35\31\10\377\32\26\7\377\31\25" \
- "\7\377\26\23\6\377\23\20\5\377\21\16\5\377\17\15\5\377\14\12\4\377\12" \
- "\11\3\377\7\6\2\377\5\4\1\377\3\3\1\377\1\1\0\377\377\0\0\0\377\377\0" \
- "\0\0\377\377\0\0\0\377\236\0\0\0\377\17\2\2\1\377\5\4\1\377\10\7\3\377" \
- "\15\13\4\377\21\16\5\377\26\23\6\377\32\26\7\377\37\33\11\377$\37\13" \
- "\377'#\14\377,'\15\377/*\16\3773-\17\37760\20\37771\20\377\23292\21\377" \
- "\20282\20\377\1""71\20\377\20260\20\377\31""5/\17\3774.\20\3772-\17\377" \
- "0+\17\377/*\16\377-(\16\377,'\15\377)%\14\377'#\14\377&!\13\377#\36\12" \
- "\377\"\35\12\377\37\33\11\377\34\30\10\377\31\25\7\377\27\24\6\377\24" \
- "\21\5\377\21\16\5\377\17\15\5\377\14\12\4\377\11\10\3\377\7\6\2\377\5" \
- "\4\1\377\3\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\233\0\0\0\377\33\1\1\0\377\4\3\1\377\7\6\2\377\14\12\4\377\20\16\4\377" \
- "\25\22\6\377\32\26\7\377\37\33\11\377$\37\13\377'#\14\377,'\15\3770+" \
- "\17\3774.\20\377A;\34\377NH,\377YT8\377a[B\377jeM\377zt\\\377\221\214" \
- "q\377\243\236\177\377\251\245\205\377\273\265\223\377\307\302\242\377" \
- "\322\315\252\377\320\312\241\377\320\313\241\377\202\345\340\261\377" \
- "\14\344\337\257\377\344\336\252\377\336\327\241\377\311\300\214\377\305" \
- "\275\204\377\303\273\201\377\254\243j\377\237\227`\377\217\206R\377}" \
- "uF\377^V-\377JC\35\377\20592\21\377\20282\20\377\1""71\20\377\20260\20" \
- "\377\26""4.\20\3772-\17\3771,\17\377/*\16\377,'\16\377+&\15\377)%\14" \
- "\377&!\13\377$\37\13\377#\36\12\377\40\33\11\377\34\30\10\377\31\25\7" \
- "\377\27\24\6\377\24\21\5\377\21\16\5\377\17\15\5\377\14\12\4\377\11\10" \
- "\3\377\6\5\2\377\4\3\1\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\232\0\0\0\377.\3\3\1\377\6\5\2\377\13\11\3\377\17\15\4\377" \
- "\24\21\5\377\31\25\7\377\37\33\11\377#\36\12\37730\31\377LH3\377daL\377" \
- "to\\\377\204\200n\377\211\206s\377\210\205r\377\210\204r\377\226\222" \
- "~\377\222\216z\377\232\226\200\377\211\206r\377\206\201o\377\205\200" \
- "n\377\204\200n\377\203\177l\377\203~k\377\202}k\377\201|j\377\200|i\377" \
- "\212\207q\377\223\217w\377\233\226}\377\247\241\206\377\265\261\222\377" \
- "\300\273\232\377\320\313\246\377\345\340\264\377\344\337\256\377\344" \
- "\336\247\377\344\335\241\377\343\333\232\377\343\332\225\377\332\320" \
- "\215\377\271\260t\377\232\221Z\377wpA\377OH#\377\20492\21\377\2""82\20" \
- "\37771\20\377\20260\20\377\25""4.\20\3772-\17\3770+\17\377.)\16\377," \
- "'\15\377*%\15\377'#\14\377&!\13\377#\36\12\377\40\33\11\377\35\31\10" \
- "\377\31\25\7\377\27\24\6\377\24\21\5\377\21\16\5\377\16\14\4\377\13\11" \
- "\3\377\10\7\3\377\5\4\2\377\3\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0" \
- "\0\377\377\0\0\0\377\227\0\0\0\3773\2\2\1\377\5\4\1\377\11\10\3\377\16" \
- "\14\4\377\23\20\5\377#\37\22\377B\77""1\377`]O\377xuh\377\204\201t\377" \
- "\206\203u\377\210\204t\377\210\205s\377\210\205r\377\210\204r\377\210" \
- "\203r\377\212\206s\377\244\240\210\377\277\272\235\377\277\273\235\377" \
- "\262\256\222\377\235\230\201\377\203\177l\377\203~k\377\202}k\377\201" \
- "|j\377\200|i\377\200{g\377\177{g\377~zf\377}ye\377~ze\377}yd\377|xd\377" \
- "{wc\377{wa\377zua\377\216\211q\377\241\235\200\377\272\264\222\377\324" \
- "\317\250\377\345\340\261\377\344\336\251\377\344\335\240\377\343\333" \
- "\231\377\343\332\225\377\343\332\224\377\323\311\206\377\252\241g\377" \
- "|tD\377JC\35\377\20392\21\377\30""82\20\37771\20\37760\20\3775/\17\377" \
- "3-\17\3771,\17\377/*\16\377,'\16\377+&\15\377($\14\377&!\13\377#\36\12" \
- "\377\40\33\11\377\35\31\10\377\31\25\7\377\26\23\6\377\23\20\5\377\20" \
- "\16\4\377\15\13\4\377\12\11\3\377\7\6\2\377\5\4\1\377\3\3\1\377\1\1\0" \
- "\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\224\0\0\0\377\22\1\1\0" \
- "\377\3\3\1\377\7\6\2\377\27\25\20\377@>7\377caX\377~|t\377\177}s\377" \
- "\201~r\377\203\200s\377\205\202s\377\207\203s\377\210\204s\377\210\204" \
- "r\377\210\203r\377\207\203q\377\250\243\212\377\337\333\270\377\202\346" \
- "\342\275\377\202\346\342\274\377\16\346\341\274\377\331\324\261\377\246" \
- "\243\210\377\200|i\377\200{g\377\177{g\377~zf\377}ye\377~ze\377}yd\377" \
- "|xd\377{wc\377{wa\377zua\377\202yu`\377\21xs^\377xr^\377wr]\377vq\\\377" \
- "\177zb\377\232\225y\377\276\271\225\377\334\327\254\377\344\337\255\377" \
- "\344\335\243\377\343\333\231\377\343\332\225\377\343\332\224\377\343" \
- "\332\223\377\277\267w\377\216\206Q\377QJ#\377\20392\21\377\26""82\20" \
- "\37771\20\37760\20\3774.\20\3772-\17\377/*\16\377-(\16\377+&\15\377(" \
- "$\14\377&!\13\377#\36\12\377\37\33\11\377\34\30\10\377\31\25\7\377\25" \
- "\22\6\377\22\17\5\377\17\15\5\377\14\12\4\377\10\7\3\377\5\4\2\377\3" \
- "\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\223\0\0" \
- "\0\377\25\5\5\4\377.-+\377]\\Y\377wvr\377yxr\377|zr\377~{r\377\177}r" \
- "\377\201~r\377\204\200r\377\206\202r\377\207\203r\377\210\203r\377\207" \
- "\203q\377\206\202p\377\277\273\236\377\346\342\276\377\346\342\275\377" \
- "\346\342\276\377\346\342\275\377\346\341\276\377\204\346\341\275\377" \
- "\13\217\212u\377~zf\377}ye\377~ze\377}yd\377{xc\377{wa\377zw`\377yt_" \
- "\377xt^\377xs_\377\202xr^\377\5wr]\377vq\\\377up[\377uo[\377toZ\377\202" \
- "soY\377\15rnW\377\220\213n\377\266\260\214\377\333\326\252\377\344\336" \
- "\252\377\344\335\240\377\343\333\230\377\343\332\225\377\343\332\224" \
- "\377\343\332\222\377\301\271x\377\207\177K\377H@\33\377\20292\21\377" \
- "\25""82\20\37771\20\37760\20\3775/\17\3772-\17\377/*\16\377-(\16\377" \
- "+&\15\377'#\14\377%!\13\377\"\35\12\377\37\33\11\377\33\27\10\377\30" \
- "\25\7\377\24\21\5\377\20\16\4\377\16\14\4\377\12\11\3\377\7\6\2\377\5" \
- "\4\1\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\220\0\0" \
- "\0\377\25\21\21\21\377BBA\377jji\377ttq\377utp\377wup\377yxq\377|zq\377" \
- "~|q\377\177}p\377\202~q\377\204\200q\377\206\202p\377\207\203p\377\206" \
- "\202p\377\206\201o\377\274\270\234\377\346\342\276\377\346\342\277\377" \
- "\346\342\276\377\346\341\276\377\205\346\342\276\377\20\324\317\257\377" \
- "}ye\377~ze\377}yd\377{xc\377zwa\377yt`\377xs_\377vr^\377uq]\377tp]\377" \
- "tp\\\377up]\377tp\\\377to[\377toZ\377\203soY\377\21rnW\377rmW\377qmV" \
- "\377plU\377okT\377plU\377\224\217q\377\303\275\226\377\344\337\257\377" \
- "\344\335\245\377\343\333\232\377\343\332\225\377\343\332\224\377\343" \
- "\332\223\377\340\327\217\377\252\241e\377f^2\377\20392\21\377\24""82" \
- "\20\37760\20\3775/\17\3772-\17\377/*\16\377,'\16\377*%\15\377'#\14\377" \
- "$\37\13\377!\34\11\377\35\31\10\377\31\25\7\377\26\23\6\377\22\17\5\377" \
- "\17\15\4\377\14\12\4\377\10\7\3\377\5\4\2\377\3\3\1\377\1\1\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\214\0\0\0\377\2\27\27\27\377L" \
- "LL\377\202qqq\377\22rqp\377tsp\377uto\377wuo\377zwo\377|yo\377~{p\377" \
- "\200}o\377\202~o\377\204\200o\377\206\202o\377\206\201o\377\205\200n" \
- "\377\243\237\210\377\346\342\277\377\346\342\300\377\346\342\277\377" \
- "\346\342\300\377\205\346\342\277\377\22\346\342\276\377\266\261\225\377" \
- "}yd\377|xd\377{wa\377yua\377xs_\377vq^\377tp^\377sp\\\377rn[\377qnZ\377" \
- "pmZ\377qnY\377qmY\377qmX\377qmW\377qmV\377\202pmV\377\24pmU\377plU\377" \
- "okT\377oiS\377nhR\377mhQ\377lgP\377lfO\377zuZ\377\255\247\203\377\336" \
- "\330\251\377\344\336\247\377\343\334\234\377\343\333\226\377\343\332" \
- "\224\377\343\332\223\377\343\332\222\377\305\274{\377wo@\377;4\23\377" \
- "\20292\21\377\23""82\20\37760\20\3774.\20\3771,\17\377.)\16\377,'\15" \
- "\377)%\14\377&!\13\377#\36\12\377\37\33\11\377\33\27\10\377\30\25\7\377" \
- "\24\21\5\377\20\16\4\377\15\13\4\377\11\10\3\377\6\5\2\377\4\3\1\377" \
- "\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\211\0\0\0\377\24" \
- "\31\31\31\377RRR\377qqq\377ppp\377ooo\377ppo\377qqn\377srn\377tsn\377" \
- "wun\377ywn\377|yn\377}{n\377\200}n\377\202~n\377\204\200n\377\205\200" \
- "n\377\204\200n\377\212\206r\377\337\333\273\377\210\346\342\300\377\26" \
- "\346\342\277\377\346\342\300\377\235\230\200\377{wc\377zw`\377yt_\377" \
- "ws_\377tp^\377sp\\\377qn[\377olZ\377miY\377lhX\377lhW\377kgW\377kgV\377" \
- "kgU\377lhU\377lhT\377lgU\377lgT\377lgR\377\202mhR\377\23mhQ\377lgP\377" \
- "lfO\377kfO\377jeN\377ieM\377jeM\377ohP\377\236\230v\377\333\325\246\377" \
- "\344\336\250\377\343\334\234\377\343\333\226\377\343\332\224\377\343" \
- "\332\223\377\343\332\222\377\320\307\203\377\177vE\377>7\25\377\2029" \
- "2\21\377\22""71\20\37760\20\3774.\20\3770+\17\377-(\16\377+&\15\377'" \
- "#\14\377$\37\13\377!\34\11\377\35\31\10\377\31\25\7\377\26\23\6\377\21" \
- "\16\5\377\16\14\4\377\12\11\3\377\7\6\2\377\4\3\1\377\2\2\1\377\377\0" \
- "\0\0\377\377\0\0\0\377\377\0\0\0\377\206\0\0\0\377\21\20\20\20\377LL" \
- "L\377qqq\377ppp\377ooo\377nnn\377nnm\377onm\377ppm\377rqm\377tsm\377" \
- "vtl\377ywm\377|ym\377}{m\377\200}m\377\202~m\377\202\203\177l\377\2\203" \
- "~k\377\267\264\230\377\202\346\342\300\377\206\346\342\301\377\15\346" \
- "\342\300\377\346\342\301\377\346\342\300\377\210\203m\377zua\377xt^\377" \
- "vr^\377to\\\377rn[\377olZ\377miY\377jgW\377ifW\377\202hdV\377\11gdU\377" \
- "gcT\377gcS\377gdS\377gdR\377hdQ\377gdP\377hdP\377idO\377\202ieO\377\2" \
- "ieN\377jeN\377\202jeM\377\17idL\377hbK\377gcJ\377gaI\377kfL\377\235\227" \
- "u\377\333\324\245\377\344\335\246\377\343\333\232\377\343\333\226\377" \
- "\343\332\224\377\343\332\223\377\343\332\222\377\316\304\200\377yqA\377" \
- "\20292\21\377\22""82\20\37771\20\3775/\17\3772-\17\377/*\16\377,'\16" \
- "\377)%\14\377&!\13\377#\36\12\377\37\33\11\377\32\26\7\377\27\24\6\377" \
- "\23\20\5\377\17\15\4\377\13\11\3\377\10\7\3\377\5\4\1\377\2\2\1\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\203\0\0\0\377\7\6\6\6\377\77\77" \
- "\77\377mmm\377ppp\377ooo\377nnn\377mmm\377\202lll\377\16mmk\377pnl\377" \
- "rql\377tsl\377vtk\377ywk\377{yk\377}{l\377\177|k\377\202~k\377\203~k" \
- "\377\202}k\377\213\207q\377\340\335\275\377\202\346\342\302\377\1\346" \
- "\342\301\377\204\346\342\302\377\202\346\342\301\377\22\345\342\301\377" \
- "\341\336\275\377yu`\377xs^\377vr]\377to[\377rnZ\377nkY\377lhW\377jgW" \
- "\377gcU\377eaT\377c`S\377b_R\377`]Q\377a^Q\377a^P\377a^O\377\202a_N\377" \
- "\14b_M\377b`M\377c`M\377c_L\377daL\377eaL\377e`K\377faJ\377gcJ\377gc" \
- "I\377gaI\377faH\377\202e`G\377\10d_F\377idJ\377\246\240{\377\340\330" \
- "\247\377\344\335\243\377\343\333\230\377\343\332\225\377\343\332\224" \
- "\377\202\343\332\222\377\2\305\274z\377c[0\377\20292\21\377\22""82\20" \
- "\37760\20\3774.\20\3771,\17\377-(\16\377+&\15\377'#\14\377#\36\12\377" \
- "\40\33\11\377\34\30\10\377\30\25\7\377\24\21\5\377\20\16\4\377\14\12" \
- "\4\377\10\7\3\377\5\4\2\377\3\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0" \
- "\0\377\377\0\0\0\377\3###\377ddd\377ooo\377\202nnn\377\24mmm\377lll\377" \
- "kkk\377jjj\377kkj\377lli\377oni\377qoj\377trj\377vsj\377yvj\377{yj\377" \
- "}{j\377\177{j\377\201}k\377\201|j\377\200|i\377\261\255\223\377\346\342" \
- "\302\377\346\342\303\377\203\346\342\302\377\1\346\342\303\377\205\346" \
- "\342\302\377\15\322\314\257\377xr^\377wr]\377tp\\\377rnZ\377nkX\377k" \
- "gV\377heV\377ebT\377b_R\377`]Q\377^[P\377\\ZO\377\202[XM\377\17[XL\377" \
- "\\XL\377\\YL\377]YL\377]ZL\377^ZK\377^[J\377^[I\377_[I\377`[I\377`\\" \
- "H\377a]H\377b]H\377b^G\377c_F\377\202d_F\377\17d_E\377c^D\377b]D\377" \
- "a[C\377qkO\377\274\266\213\377\345\336\250\377\343\334\235\377\343\333" \
- "\227\377\343\332\225\377\343\332\223\377\343\332\222\377\343\332\221" \
- "\377\254\242f\377MF\40\377\20292\21\377\21""71\20\3775/\17\3772-\17\377" \
- "/*\16\377,'\15\377($\14\377$\37\13\377\"\35\12\377\35\31\10\377\31\25" \
- "\7\377\25\22\6\377\21\16\5\377\15\13\4\377\11\10\3\377\5\4\2\377\3\3" \
- "\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\374\0\0\0\377\4\11\11\11" \
- "\377JJJ\377ooo\377nnn\377\202mmm\377\2lll\377kkk\377\202jjj\377\17jj" \
- "i\377jih\377lkh\377mlg\377poh\377sqi\377vsi\377xuh\377{wi\377~{i\377" \
- "\177{i\377\200|i\377\200{g\377\200{i\377\331\325\266\377\205\346\342" \
- "\303\377\206\346\343\303\377\15\303\300\242\377vq\\\377up[\377soZ\377" \
- "olX\377kgV\377heU\377eaS\377a^Q\377^[O\377[XN\377XVM\377VTL\377\202U" \
- "SK\377\202VSJ\377\4VSI\377VTH\377WTH\377WTG\377\202YVG\377\15ZUF\377" \
- "ZVF\377VR\77\377RM:\377TP:\377UP:\377VQ:\377WR9\377XS:\377YU9\377YT8" \
- "\377ZU9\377`[A\377\202_Z@\377\6\207\201_\377\326\316\236\377\344\335" \
- "\244\377\343\333\232\377\343\333\226\377\343\332\224\377\202\343\332" \
- "\222\377\2\334\321\212\377\201yF\377\20292\21\377\21""82\20\37760\20" \
- "\3774.\20\3770+\17\377,'\16\377)%\14\377&!\13\377#\36\12\377\36\32\11" \
- "\377\32\26\7\377\26\23\6\377\21\16\5\377\16\14\4\377\12\11\3\377\6\5" \
- "\2\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\372\0\0\0\377" \
- "\5###\377fff\377nnn\377mmm\377lll\377\202kkk\377\202jjj\377\1iii\377" \
- "\202hhh\377\17iig\377jjf\377mlg\377png\377sqg\377urf\377xuh\377zwh\377" \
- "}zh\377~{h\377\177{g\377~zf\377\232\226\200\377\346\342\303\377\346\342" \
- "\304\377\211\346\343\304\377$\346\342\304\377\270\263\231\377uo[\377" \
- "soY\377qmW\377mjV\377ieT\377daR\377a^Q\377]ZN\377YVM\377VTL\377SQK\377" \
- "POI\377OMH\377ONH\377OMG\377OMF\377MKC\377DB8\37796+\3771-!\377-*\34" \
- "\377(%\24\377&\"\17\377#\36\12\377%!\13\377'#\14\377)%\14\377,'\15\377" \
- "-(\16\3770+\17\3773-\17\3775/\17\37771\20\37782\20\377\20292\21\377\15" \
- ">7\27\377C<\35\377NG(\377\255\245w\377\345\335\243\377\343\333\233\377" \
- "\343\333\227\377\343\332\225\377\343\332\223\377\343\332\222\377\343" \
- "\332\221\377\271\260p\377QJ#\377\20292\21\377\20""71\20\3775/\17\377" \
- "1,\17\377-(\16\377+&\15\377&!\13\377#\36\12\377\37\33\11\377\32\26\7" \
- "\377\27\24\6\377\22\17\5\377\16\14\4\377\12\11\3\377\6\5\2\377\4\3\1" \
- "\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\367\0\0\0\377\6\3\3\3\377" \
- "===\377nnn\377mmm\377lll\377kkk\377\203jjj\377\22iii\377hhh\377ggg\377" \
- "fff\377ggf\377hge\377jie\377lje\377omf\377rpf\377ure\377wtf\377zwf\377" \
- "}zf\377}ze\377}ye\377~ze\377\272\267\234\377\204\346\343\304\377\202" \
- "\346\343\305\377\1\346\343\304\377\202\346\343\305\377'\346\342\304\377" \
- "\346\342\305\377\346\342\304\377\255\251\216\377soY\377snW\377okV\377" \
- "kgT\377gdS\377b_P\377^[O\377XVL\377USK\377QOI\377MLH\377JJF\377A@<\377" \
- "0/+\377!\37\32\377\24\23\15\377\16\14\4\377\17\15\4\377\21\16\5\377\23" \
- "\20\5\377\25\22\6\377\27\24\6\377\31\25\7\377\34\30\10\377\37\33\11\377" \
- "\"\35\12\377$\37\13\377&!\13\377)%\14\377,'\15\377.)\16\3770+\17\377" \
- "3-\17\37760\20\37771\20\377\20592\21\377\6ph=\377\326\315\217\377\343" \
- "\333\231\377\343\333\227\377\343\333\226\377\343\332\224\377\202\343" \
- "\332\222\377\2\334\321\212\377wo\77\377\20292\21\377\20""71\20\37760" \
- "\20\3772-\17\377/*\16\377+&\15\377'#\14\377#\36\12\377\40\33\11\377\33" \
- "\27\10\377\27\24\6\377\23\20\5\377\17\15\5\377\12\11\3\377\6\5\2\377" \
- "\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\365\0\0\0\377\5\15\15" \
- "\15\377VVV\377mmm\377lll\377kkk\377\202jjj\377\202iii\377\23hhh\377g" \
- "gg\377fff\377eee\377ddd\377eed\377gfc\377ihd\377kjd\377nld\377rod\377" \
- "tpd\377wsd\377zve\377|yd\377}zd\377}yd\377|xd\377\331\326\271\377\214" \
- "\346\343\305\377&\243\236\205\377rnW\377pmV\377mhU\377jfR\377eaQ\377" \
- "`\\N\377ZXL\377VTK\377OLF\377750\377\36\35\31\377\14\13\10\377\4\3\1" \
- "\377\5\4\1\377\5\4\2\377\6\5\2\377\10\7\3\377\12\11\3\377\13\11\3\377" \
- "\15\13\4\377\17\15\4\377\21\16\5\377\23\20\5\377\26\23\6\377\31\25\7" \
- "\377\33\27\10\377\36\32\11\377\"\35\12\377$\37\13\377&!\13\377)%\14\377" \
- ",'\15\377.)\16\3771,\17\3774.\20\37760\20\37782\20\377\20492\21\377\6" \
- "KD\40\377\274\263z\377\344\333\231\377\343\333\230\377\343\333\226\377" \
- "\343\332\224\377\202\343\332\222\377\24\343\331\220\377\252\240c\377" \
- "A9\27\37792\21\37782\20\37760\20\3773-\17\3770+\17\377,'\15\377($\14" \
- "\377$\37\13\377\40\33\11\377\34\30\10\377\30\25\7\377\23\20\5\377\17" \
- "\15\5\377\13\11\3\377\6\5\2\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\363\0\0\0\377\4\33\33\33\377fff\377lll\377kkk\377\202jjj\377" \
- "\1iii\377\202hhh\377\23ggg\377fff\377eee\377ddd\377ccc\377ccb\377dcb" \
- "\377feb\377hgc\377jhb\377mkb\377qnc\377spc\377vrc\377yuc\377{xc\377|" \
- "xd\377{wc\377\215\210s\377\215\346\343\305\377'\231\225|\377qmV\377o" \
- "kT\377kgS\377hdP\377b`N\377\\XJ\377DA3\377*'\33\377\22\20\7\377\11\10" \
- "\3\377\5\4\1\377\1\1\0\377\0\0\0\377\1\1\0\377\2\2\1\377\3\3\1\377\4" \
- "\3\1\377\5\4\1\377\6\5\2\377\10\7\3\377\12\11\3\377\14\12\4\377\16\14" \
- "\4\377\20\16\4\377\22\17\5\377\25\22\6\377\30\25\7\377\33\27\10\377\36" \
- "\32\11\377\"\35\12\377$\37\13\377'#\14\377*%\15\377,'\16\377/*\16\377" \
- "2-\17\3775/\17\37771\20\377\20492\21\377\34>7\25\377\231\220_\377\344" \
- "\333\232\377\343\333\231\377\343\333\227\377\343\332\225\377\343\332" \
- "\223\377\343\332\222\377\343\331\220\377\307\276y\377QJ#\37792\21\377" \
- "82\20\37760\20\3774.\20\3770+\17\377,'\16\377($\14\377$\37\13\377!\34" \
- "\11\377\34\30\10\377\30\25\7\377\23\20\5\377\17\15\5\377\12\11\3\377" \
- "\6\5\2\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\361\0\0\0" \
- "\377\3)))\377jjj\377kkk\377\202jjj\377\3iii\377hhh\377ggg\377\202fff" \
- "\377\4eee\377ddd\377ccc\377bbb\377\202aaa\377\21cb`\377eda\377hga\377" \
- "jia\377mj`\377pmb\377tpb\377ura\377xtb\377zwa\377{wa\377zua\377\246\240" \
- "\211\377\346\343\306\377\346\343\305\377\346\343\306\377\346\343\305" \
- "\377\202\346\343\306\377\1\346\343\305\377\206\346\343\306\377\15\223" \
- "\216v\377okT\377mhR\377jeQ\377\\YC\377A='\377%!\15\377\34\30\10\377\26" \
- "\23\6\377\17\15\4\377\11\10\3\377\5\4\1\377\1\1\0\377\205\0\0\0\377\27" \
- "\1\1\0\377\2\2\1\377\3\3\1\377\5\4\1\377\6\5\2\377\10\7\3\377\13\11\3" \
- "\377\15\13\4\377\17\15\4\377\22\17\5\377\25\22\6\377\31\25\7\377\33\27" \
- "\10\377\37\33\11\377\"\35\12\377%!\13\377'#\14\377+&\15\377-(\16\377" \
- "1,\17\3774.\20\37760\20\37782\20\377\20492\21\377\12yrF\377\340\327\226" \
- "\377\343\333\231\377\343\333\227\377\343\332\225\377\343\332\223\377" \
- "\343\332\222\377\343\332\221\377\334\321\210\377lc5\377\20292\21\377" \
- "\16""60\20\3774.\20\3771,\17\377,'\16\377)%\14\377%!\13\377!\34\11\377" \
- "\34\30\10\377\30\25\7\377\23\20\5\377\17\15\5\377\12\11\3\377\6\5\2\377" \
- "\3\3\1\377\377\0\0\0\377\377\0\0\0\377\360\0\0\0\377\2""333\377kkk\377" \
- "\202jjj\377\4iii\377hhh\377ggg\377fff\377\202eee\377\4ddd\377ccc\377" \
- "bbb\377aaa\377\202```\377\12``_\377aa^\377cb^\377fe`\377jh`\377lj_\377" \
- "pm`\377soa\377tq_\377ws`\377\202yu`\377\2xs^\377\277\274\241\377\204" \
- "\346\343\306\377\210\346\343\307\377\16\346\343\306\377\212\205o\377" \
- "nhR\377YU:\377>9\35\377.)\16\377($\14\377#\36\12\377\34\30\10\377\25" \
- "\22\6\377\17\15\5\377\11\10\3\377\5\4\1\377\1\1\0\377\210\0\0\0\377\25" \
- "\1\1\0\377\3\3\1\377\4\3\1\377\5\4\2\377\10\7\3\377\12\11\3\377\15\13" \
- "\4\377\17\15\4\377\22\17\5\377\26\23\6\377\31\25\7\377\34\30\10\377\37" \
- "\33\11\377#\36\12\377&!\13\377)%\14\377,'\16\377/*\16\3773-\17\37760" \
- "\20\37771\20\377\20492\21\377\12c\\3\377\331\317\221\377\344\333\231" \
- "\377\343\333\230\377\343\332\225\377\343\332\223\377\343\332\222\377" \
- "\343\332\221\377\341\330\214\377\201yE\377\20292\21\377\16""71\20\377" \
- "5/\17\3771,\17\377-(\16\377)%\14\377%!\13\377!\34\11\377\34\30\10\377" \
- "\30\25\7\377\23\20\5\377\16\14\4\377\11\10\3\377\5\4\2\377\3\3\1\377" \
- "\377\0\0\0\377\377\0\0\0\377\356\0\0\0\377\1AAA\377\202jjj\377\6iii\377" \
- "hhh\377ggg\377fff\377eee\377ddd\377\202ccc\377\2bbb\377aaa\377\202``" \
- "`\377\20___\377^^^\377__^\377`_\\\377ba]\377ec^\377if^\377kh^\377ol^" \
- "\377qn_\377tp_\377vr^\377xs_\377xr^\377wr]\377\330\324\271\377\210\346" \
- "\343\307\377\1\346\343\310\377\202\346\343\307\377\17\346\343\310\377" \
- "\346\343\307\377vpU\377A;\33\37760\20\3773-\17\377.)\16\377($\14\377" \
- "#\36\12\377\33\27\10\377\25\22\6\377\17\15\5\377\10\7\3\377\4\3\1\377" \
- "\1\1\0\377\212\0\0\0\377\24\1\1\0\377\2\2\1\377\4\3\1\377\5\4\2\377\10" \
- "\7\3\377\12\11\3\377\15\13\4\377\20\16\4\377\23\20\5\377\27\24\6\377" \
- "\31\25\7\377\35\31\10\377\"\35\12\377$\37\13\377'#\14\377+&\15\377.)" \
- "\16\3772-\17\3775/\17\37771\20\377\20492\21\377\12UN(\377\323\311\214" \
- "\377\344\333\231\377\343\333\230\377\343\333\226\377\343\332\223\377" \
- "\343\332\222\377\343\332\221\377\343\331\216\377\232\220V\377\20292\21" \
- "\377\16""71\20\3775/\17\3772-\17\377-(\16\377)%\14\377%!\13\377!\34\11" \
- "\377\33\27\10\377\27\24\6\377\22\17\5\377\16\14\4\377\11\10\3\377\5\4" \
- "\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\354\0\0\0\377\11@@@\377" \
- "jjj\377iii\377hhh\377ggg\377fff\377eee\377ddd\377ccc\377\202bbb\377\1" \
- "aaa\377\202```\377\21___\377^^^\377]]]\377\\\\\\\377]]\\\377`_\\\377" \
- "a`[\377db\\\377ge\\\377kg[\377nk]\377qn^\377so\\\377vq]\377wr]\377vq" \
- "\\\377~zc\377\203\346\343\307\377\2\346\343\310\377\346\343\307\377\207" \
- "\346\343\310\377\17\346\342\303\377\345\341\274\377WQ/\37792\21\3776" \
- "0\20\3773-\17\377-(\16\377'#\14\377\"\35\12\377\33\27\10\377\25\22\6" \
- "\377\16\14\4\377\10\7\3\377\4\3\1\377\1\1\0\377\214\0\0\0\377\24\1\1" \
- "\0\377\2\2\1\377\4\3\1\377\5\4\2\377\10\7\3\377\13\11\3\377\16\14\4\377" \
- "\21\16\5\377\24\21\5\377\30\25\7\377\33\27\10\377\37\33\11\377#\36\12" \
- "\377&!\13\377*%\15\377-(\16\3771,\17\3774.\20\37760\20\37782\20\377\203" \
- "92\21\377\32NF\"\377\312\302\206\377\344\333\231\377\343\333\230\377" \
- "\343\333\226\377\343\332\223\377\343\332\222\377\343\332\221\377\343" \
- "\331\216\377\250\237a\377;4\23\37792\21\37771\20\3775/\17\3771,\17\377" \
- "-(\16\377)%\14\377$\37\13\377\40\33\11\377\33\27\10\377\27\24\6\377\21" \
- "\16\5\377\15\13\4\377\10\7\3\377\5\4\1\377\2\2\1\377\377\0\0\0\377\377" \
- "\0\0\0\377\351\0\0\0\377\13\1\1\1\377BBB\377iii\377hhh\377ggg\377fff" \
- "\377eee\377ddd\377ccc\377bbb\377aaa\377\203```\377\23___\377^^^\377]" \
- "]]\377\\\\\\\377[[[\377[[Z\377\\[Z\377^]Z\377`_Z\377caZ\377gd[\377jf" \
- "[\377lj[\377pm\\\377so\\\377tp\\\377up[\377uo[\377\221\214v\377\206\346" \
- "\343\310\377\2\346\343\311\377\346\343\310\377\202\346\343\311\377\2" \
- "\346\343\305\377\346\341\276\377\202\346\341\274\377\14XQ0\37792\21\377" \
- "60\20\3773-\17\377-(\16\377'#\14\377\"\35\12\377\33\27\10\377\24\21\5" \
- "\377\16\14\4\377\10\7\3\377\4\3\1\377\217\0\0\0\377\23\1\1\0\377\2\2" \
- "\1\377\4\3\1\377\6\5\2\377\11\10\3\377\14\12\4\377\17\15\4\377\22\17" \
- "\5\377\27\24\6\377\31\25\7\377\36\32\11\377\"\35\12\377%!\13\377)%\14" \
- "\377,'\16\3770+\17\3773-\17\37760\20\37782\20\377\20392\21\377\32JC\36" \
- "\377\312\302\207\377\344\333\231\377\343\333\230\377\343\333\226\377" \
- "\343\332\223\377\343\332\222\377\343\332\221\377\343\331\216\377\254" \
- "\242d\377>7\25\37792\21\37771\20\3775/\17\3771,\17\377,'\16\377($\14" \
- "\377$\37\13\377\37\33\11\377\32\26\7\377\26\23\6\377\21\16\5\377\14\12" \
- "\4\377\7\6\2\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\350" \
- "\0\0\0\377\11>>>\377hhh\377ggg\377fff\377eee\377ddd\377ccc\377bbb\377" \
- "aaa\377\203```\377\30___\377^^^\377]]]\377\\\\\\\377[[[\377ZZZ\377YY" \
- "Y\377YYX\377ZYX\377\\\\X\377`^Y\377b`X\377fcY\377ifY\377ljY\377olZ\377" \
- "rnZ\377soZ\377toZ\377soY\377\244\241\211\377\346\343\310\377\346\343" \
- "\311\377\346\343\310\377\204\346\343\311\377\5\347\343\311\377\347\343" \
- "\307\377\346\342\301\377\346\341\275\377\346\342\275\377\202\346\342" \
- "\276\377\14XQ0\37792\21\37760\20\3773-\17\377-(\16\377'#\14\377\"\35" \
- "\12\377\33\27\10\377\24\21\5\377\16\14\4\377\10\7\3\377\4\3\1\377\212" \
- "\0\0\0\377\202\1\1\0\377\202\2\2\1\377\204\3\3\1\377\21\4\3\1\377\5\4" \
- "\2\377\7\6\2\377\12\11\3\377\16\14\4\377\21\16\5\377\25\22\6\377\31\25" \
- "\7\377\34\30\10\377!\34\11\377$\37\13\377'#\14\377,'\15\377/*\16\377" \
- "3-\17\37760\20\37782\20\377\20392\21\377\32KD\40\377\312\302\207\377" \
- "\344\333\231\377\343\333\230\377\343\333\226\377\343\332\223\377\343" \
- "\332\222\377\343\331\220\377\343\331\216\377\261\250g\377>7\25\37792" \
- "\21\37771\20\3775/\17\3771,\17\377,'\16\377'#\14\377#\36\12\377\37\33" \
- "\11\377\31\25\7\377\25\22\6\377\20\16\4\377\13\11\3\377\6\5\2\377\3\3" \
- "\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\346\0\0\0\377\10""555\377" \
- "ggg\377fff\377eee\377ddd\377ccc\377bbb\377aaa\377\202```\377\1___\377" \
- "\202^^^\377\6]]]\377\\\\\\\377[[[\377ZZZ\377YYY\377XXX\377\202WWW\377" \
- "\11YXV\377[ZV\377_]W\377a_W\377ebX\377heX\377jgX\377nkX\377qmX\377\203" \
- "soY\377\1\271\265\233\377\203\346\343\311\377\204\347\343\312\377\3\346" \
- "\343\305\377\346\342\277\377\346\342\276\377\204\346\342\277\377\14X" \
- "Q0\37792\21\37760\20\3773-\17\377-(\16\377'#\14\377\"\35\12\377\33\27" \
- "\10\377\24\21\5\377\16\14\4\377\10\7\3\377\4\3\1\377\206\0\0\0\377\202" \
- "\1\1\0\377\4\2\2\1\377\3\3\1\377\4\3\1\377\5\4\1\377\203\5\4\2\377\203" \
- "\6\4\2\377\202\7\5\2\377\20\10\6\2\377\12\10\3\377\15\11\3\377\17\13" \
- "\4\377\23\17\5\377\26\21\6\377\31\25\7\377\35\31\10\377!\34\11\377%\40" \
- "\12\377*$\14\377-&\15\3772+\16\3775-\17\37770\17\377:2\20\377\202;3\21" \
- "\377\32:2\21\377LD\40\377\323\312\215\377\344\333\231\377\343\333\230" \
- "\377\343\332\225\377\343\332\223\377\343\332\222\377\343\331\220\377" \
- "\343\331\216\377\254\242b\377;4\23\37792\21\37771\20\3774.\20\3770+\17" \
- "\377,'\15\377'#\14\377#\36\12\377\36\32\11\377\31\25\7\377\24\21\5\377" \
- "\17\15\5\377\12\11\3\377\5\4\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0" \
- "\377\345\0\0\0\377\7+++\377fff\377eee\377ddd\377ccc\377bbb\377aaa\377" \
- "\202```\377\2___\377^^^\377\202]]]\377\6\\\\\\\377[[[\377ZZZ\377YYY\377" \
- "XXX\377WWW\377\202VVV\377\13VVU\377WVT\377ZXU\377][V\377`^U\377daV\377" \
- "gdV\377jgV\377miW\377plV\377rnW\377\202rmW\377\2\305\301\250\377\346" \
- "\343\311\377\203\347\343\312\377\3\347\343\313\377\346\343\310\377\346" \
- "\342\302\377\202\346\342\277\377\202\346\342\300\377\203\346\342\301" \
- "\377\14XQ0\37792\21\37760\20\3773-\17\377-(\16\377'#\14\377\"\35\12\377" \
- "\33\27\10\377\24\21\5\377\16\14\4\377\10\7\3\377\4\3\1\377\204\0\0\0" \
- "\377\12\1\1\0\377\2\2\1\377\3\3\1\377\5\4\1\377\5\4\2\377\10\6\2\377" \
- "\11\7\3\377\13\11\3\377\14\11\3\377\15\11\3\377\202\16\12\3\377\202\15" \
- "\12\3\377\2\14\12\3\377\15\12\4\377\202\14\11\4\377\17\16\12\4\377\17" \
- "\14\4\377\21\15\5\377\23\20\6\377\26\22\6\377\32\26\7\377\36\32\10\377" \
- "\"\35\12\377&\40\13\377+%\14\377.(\16\3772+\17\3775.\20\37781\20\377" \
- ";3\21\377\203;4\21\377\12XQ*\377\333\321\222\377\344\333\231\377\343" \
- "\333\230\377\343\332\225\377\343\332\223\377\343\332\222\377\343\331" \
- "\220\377\343\331\215\377\243\230\\\377\20292\21\377\15""60\20\3774.\20" \
- "\377/*\16\377+&\15\377&!\13\377\"\35\12\377\34\30\10\377\30\25\7\377" \
- "\22\17\5\377\16\14\4\377\11\10\3\377\5\4\1\377\2\2\1\377\377\0\0\0\377" \
- "\377\0\0\0\377\343\0\0\0\377\1\36\36\36\377\202ddd\377\3ccc\377bbb\377" \
- "aaa\377\202```\377\4___\377^^^\377]]]\377\\\\\\\377\202[[[\377\4ZZZ\377" \
- "YYY\377XXX\377WWW\377\202VVV\377\20UUU\377TTT\377UUT\377VUR\377XWT\377" \
- "[YT\377`]T\377c`U\377fcU\377jfU\377lhU\377okV\377pmU\377qmV\377plU\377" \
- "\325\320\270\377\202\347\343\312\377\202\347\343\313\377\1\346\343\306" \
- "\377\202\346\342\300\377\203\346\342\301\377\204\346\342\302\377\14X" \
- "Q1\37792\21\37760\20\3773-\17\377-(\16\377'#\14\377\"\35\12\377\33\27" \
- "\10\377\24\21\5\377\16\14\4\377\10\7\3\377\4\3\1\377\203\0\0\0\377\13" \
- "\2\2\1\377\3\3\1\377\5\3\1\377\10\6\2\377\13\11\3\377\16\12\3\377\17" \
- "\13\4\377\20\15\4\377\21\16\5\377\23\17\5\377\24\17\6\377\202\24\20\6" \
- "\377\1\25\21\6\377\202\24\20\6\377\23\23\17\5\377\22\17\5\377\21\16\5" \
- "\377\21\15\4\377\21\16\5\377\23\17\5\377\24\17\5\377\27\22\6\377\30\23" \
- "\6\377\34\26\7\377\40\32\10\377$\35\11\377(!\13\377+%\14\3770)\16\377" \
- "4,\17\3777/\17\377;2\20\377=4\21\377\202>5\21\377\6=5\21\377ia6\377\340" \
- "\327\227\377\344\333\231\377\343\333\227\377\343\332\225\377\202\343" \
- "\332\222\377\3\343\331\217\377\343\331\215\377\223\212Q\377\20292\21" \
- "\377\15""60\20\3773-\17\377.)\16\377*%\15\377&!\13\377!\34\11\377\33" \
- "\27\10\377\27\24\6\377\21\16\5\377\15\13\4\377\10\7\3\377\4\3\1\377\1" \
- "\1\0\377\377\0\0\0\377\377\0\0\0\377\341\0\0\0\377\5\17\17\17\377___" \
- "\377ccc\377bbb\377aaa\377\202```\377\5___\377^^^\377]]]\377\\\\\\\377" \
- "[[[\377\202ZZZ\377\3YYY\377XXX\377WWW\377\202VVV\377\16UUU\377TTT\377" \
- "SSS\377RRR\377SSR\377UUQ\377WVR\377ZXR\377_\\R\377a^S\377eaS\377idS\377" \
- "kgS\377miT\377\202okT\377\2plU\377\344\341\310\377\203\347\343\313\377" \
- "\1\346\343\304\377\202\346\342\301\377\203\346\342\302\377\202\346\342" \
- "\303\377\1\346\343\303\377\202\346\343\304\377\14ZT3\37792\21\37760\20" \
- "\3773-\17\377-(\16\377'#\14\377\"\35\12\377\33\27\10\377\24\21\5\377" \
- "\16\14\4\377\10\7\3\377\4\3\1\377\202\1\1\0\377\12\4\3\1\377\6\4\1\377" \
- "\12\7\2\377\15\11\3\377\16\13\4\377\21\15\5\377\24\17\6\377\25\21\6\377" \
- "\30\23\6\377\30\24\6\377\202\33\26\7\377\204\35\27\7\377\5\34\26\7\377" \
- "\33\26\6\377\32\24\6\377\31\23\5\377\30\22\6\377\202\26\21\5\377\15\27" \
- "\22\6\377\27\21\5\377\31\23\5\377\33\25\6\377\36\27\7\377\"\33\10\377" \
- "%\36\11\377*\"\13\377-%\14\3773*\16\3775,\16\37790\20\377<3\21\377\204" \
- "\77""5\21\377\30\200xI\377\344\333\233\377\343\333\231\377\343\333\227" \
- "\377\343\332\224\377\343\332\222\377\343\332\221\377\343\331\217\377" \
- "\343\331\214\377xp=\377;3\21\37792\20\37760\20\3772-\17\377-(\16\377" \
- ")%\14\377$\37\13\377\40\33\11\377\32\26\7\377\25\22\6\377\20\16\4\377" \
- "\13\11\3\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\340\0\0" \
- "\0\377\4\4\4\4\377RRR\377bbb\377aaa\377\202```\377\7___\377^^^\377]]" \
- "]\377\\\\\\\377[[[\377ZZZ\377YYY\377\202XXX\377\1WWW\377\202VVV\377\27" \
- "UUU\377TTT\377SSS\377RRR\377QQQ\377PPP\377RQP\377SSO\377VUQ\377YWP\377" \
- "]ZP\377`]Q\377d`Q\377hdR\377jfQ\377mhR\377oiS\377nhR\377yt]\377\347\343" \
- "\313\377\347\343\314\377\346\343\312\377\346\342\303\377\203\346\342" \
- "\302\377\2\346\342\303\377\346\343\303\377\202\346\343\304\377\204\346" \
- "\343\305\377\31b\\<\37792\21\37760\20\3773-\17\377-(\16\377'#\14\377" \
- "\"\35\12\377\33\27\10\377\25\22\6\377\16\14\4\377\10\7\3\377\5\3\1\377" \
- "\5\4\1\377\6\3\1\377\11\7\2\377\15\12\4\377\17\14\4\377\22\17\5\377\26" \
- "\21\6\377\30\24\6\377\33\26\7\377\36\30\7\377\40\32\10\377\"\34\10\377" \
- "#\34\11\377\204$\35\11\377\10$\35\12\377#\34\11\377\"\33\11\377!\32\11" \
- "\377!\31\10\377\37\27\7\377\34\25\7\377\32\23\6\377\202\31\22\6\377\14" \
- "\32\23\6\377\33\24\6\377\35\26\7\377\40\30\10\377\"\33\11\377&\36\12" \
- "\377+\"\14\377/%\15\3773*\17\3777.\17\377;1\21\377\77""4\21\377\202@" \
- "5\21\377\202A6\21\377\30\237\226a\377\344\333\232\377\343\333\231\377" \
- "\343\333\226\377\343\332\224\377\343\332\222\377\343\331\220\377\343" \
- "\331\216\377\340\326\207\377f].\377;4\21\377;2\20\3776/\17\3772,\17\377" \
- ",'\16\377'#\14\377#\36\12\377\36\32\11\377\31\25\7\377\23\20\5\377\17" \
- "\15\5\377\12\11\3\377\5\4\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377" \
- "\337\0\0\0\377\2===\377aaa\377\202```\377\10___\377^^^\377]]]\377\\\\" \
- "\\\377[[[\377ZZZ\377YYY\377XXX\377\202WWW\377\202VVV\377\27UUU\377TT" \
- "T\377SSS\377RRR\377QQQ\377PPP\377OOO\377NNN\377PON\377RQN\377UTO\377" \
- "XVN\377\\YN\377`]Q\377c`P\377gcP\377ieP\377kfQ\377mhQ\377lgP\377\203" \
- "~h\377\347\343\314\377\346\343\310\377\202\346\342\302\377\2\346\342" \
- "\303\377\346\343\303\377\202\346\343\304\377\206\346\343\305\377\34\346" \
- "\343\306\377d^>\37792\21\37760\20\3773-\17\377-(\16\377($\14\377#\36" \
- "\12\377\33\27\10\377\26\22\6\377\20\15\4\377\14\11\3\377\11\7\2\377\11" \
- "\6\3\377\14\11\3\377\20\14\4\377\22\17\5\377\27\22\6\377\32\25\6\377" \
- "\36\30\7\377!\33\10\377\"\33\11\377%\36\11\377'\40\12\377*\"\13\377+" \
- "#\14\377,#\14\377-$\14\377\202-%\14\377\11-$\14\377,#\14\377+!\13\377" \
- "*!\13\377(\37\12\377&\35\11\377$\34\11\377!\31\10\377\40\30\7\377\203" \
- "\36\26\6\377\14\37\27\7\377\40\30\7\377!\31\10\377%\34\11\377*!\12\377" \
- ",#\14\3771'\15\3775*\16\3779.\20\377<2\21\377@5\21\377B7\22\377\202A" \
- "6\22\377\31D;\26\377\301\271\200\377\344\333\232\377\343\333\230\377" \
- "\343\333\226\377\343\332\223\377\343\332\222\377\343\331\220\377\343" \
- "\331\215\377\326\313\177\377OF\36\377=5\21\377:2\21\37770\17\3773,\17" \
- "\377-'\15\377'\"\13\377\"\35\12\377\34\30\10\377\27\24\6\377\22\17\5" \
- "\377\15\13\4\377\10\7\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0" \
- "\0\377\335\0\0\0\377\1$$$\377\202```\377\11___\377^^^\377]]]\377\\\\" \
- "\\\377[[[\377ZZZ\377YYY\377XXX\377WWW\377\203VVV\377\32UUU\377TTT\377" \
- "SSS\377RRR\377QQQ\377PPP\377OOO\377NNN\377MMM\377MML\377NML\377POL\377" \
- "SRL\377VTL\377[XM\377_[O\377a_N\377ebO\377idO\377jfP\377lfO\377kfO\377" \
- "\214\207p\377\346\343\310\377\346\342\302\377\346\343\303\377\202\346" \
- "\343\304\377\205\346\343\305\377\202\346\343\306\377\203\346\343\307" \
- "\377\30lfG\37792\21\37771\20\3773-\17\377.)\16\377)$\14\377#\37\12\377" \
- "\35\31\10\377\27\24\6\377\22\16\5\377\17\14\4\377\16\13\4\377\17\14\4" \
- "\377\21\16\5\377\26\21\6\377\31\24\6\377\36\27\7\377!\32\10\377#\34\11" \
- "\377'\40\13\377+\"\14\377-$\14\377/&\15\3771(\15\377\2024*\16\377\203" \
- "5*\16\377\30""5)\16\3775*\16\3774*\15\3772(\15\377/%\14\377.$\13\377" \
- "+!\13\377)\37\11\377&\34\11\377\"\31\7\377\40\27\7\377\40\30\7\377\40" \
- "\27\6\377\40\30\7\377!\30\7\377#\32\10\377&\35\11\377*\40\12\377.%\14" \
- "\3774*\15\3777,\17\377<0\20\377@3\21\377B6\22\377\203C7\22\377\5WL#\377" \
- "\331\320\222\377\344\333\231\377\343\333\230\377\343\332\225\377\202" \
- "\343\332\222\377\21\343\331\217\377\343\331\214\377\274\263l\377A9\24" \
- "\377>5\21\377;2\20\3776/\17\3772+\17\377,&\15\377(\"\13\377\"\36\11\377" \
- "\32\26\7\377\25\22\6\377\20\16\4\377\13\11\3\377\6\5\2\377\3\3\1\377" \
- "\377\0\0\0\377\377\0\0\0\377\334\0\0\0\377\13\13\13\13\377ZZZ\377___" \
- "\377^^^\377]]]\377\\\\\\\377[[[\377ZZZ\377YYY\377XXX\377WWW\377\202V" \
- "VV\377\202UUU\377\10TTT\377SSS\377RRR\377QQQ\377PPP\377OOO\377NNN\377" \
- "MMM\377\202LLL\377\12LLK\377LLJ\377ONJ\377RQK\377VTL\377YVK\377^ZM\377" \
- "`]L\377daM\377gcM\377\202jeN\377\3jeM\377\204\177b\377\346\343\303\377" \
- "\202\346\343\304\377\203\346\343\305\377\202\346\343\306\377\204\346" \
- "\343\307\377\203\346\343\310\377\12rmO\37792\21\37771\20\3774-\20\377" \
- "0*\16\377+%\14\377$\40\12\377\37\32\11\377\31\26\7\377\26\21\6\377\202" \
- "\23\17\5\377\16\24\17\5\377\30\22\5\377\34\26\6\377!\32\10\377$\34\11" \
- "\377(\40\13\377,#\14\377/%\15\3772(\15\3775*\16\3777,\17\3779.\17\377" \
- ":/\20\377;0\20\377\204=1\20\377\30<0\20\377;.\20\3779-\17\3777+\17\377" \
- "4)\16\3773'\15\3771%\14\377-\"\13\377*\37\12\377'\34\11\377$\31\10\377" \
- "#\30\10\377\"\30\10\377#\30\10\377#\31\10\377&\34\11\377)\36\12\377-" \
- "\"\13\3772&\15\3774)\15\377:.\17\377>3\21\377@5\21\377C7\22\377\202D" \
- "9\22\377\31D7\22\377yn@\377\344\333\233\377\344\333\231\377\343\333\227" \
- "\377\343\332\224\377\343\332\222\377\343\332\221\377\343\331\216\377" \
- "\343\331\212\377\233\220R\377@6\21\377>5\21\377<3\21\3776.\17\3771+\17" \
- "\377,&\15\377&!\13\377!\34\11\377\31\25\7\377\23\20\5\377\16\14\4\377" \
- "\11\10\3\377\5\4\1\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\333\0\0" \
- "\0\377\11FFF\377^^^\377]]]\377\\\\\\\377[[[\377ZZZ\377YYY\377XXX\377" \
- "WWW\377\202VVV\377\2UUU\377TTT\377\202SSS\377\6RRR\377QQQ\377PPP\377" \
- "OOO\377NNN\377MMM\377\202LLL\377\20KKK\377JJJ\377JJI\377KKI\377MLH\377" \
- "QOI\377USJ\377XUJ\377\\XK\377_\\J\377c^K\377gcM\377ieM\377idL\377JD&" \
- "\377\205\177`\377\204\346\343\305\377\202\346\343\306\377\202\346\343" \
- "\307\377\202\346\343\310\377\205\346\343\311\377\32zuX\377:2\21\377:" \
- "1\20\3776/\17\3772+\17\377-&\15\377'\40\13\377\"\34\11\377\36\30\7\377" \
- "\33\26\6\377\31\23\5\377\30\22\5\377\32\24\6\377\37\27\7\377\"\33\11" \
- "\377(\37\12\377+!\13\377/%\14\3774)\15\3776,\17\3778.\17\377<0\20\377" \
- ">2\21\377\77""4\20\377A5\21\377B6\21\377\203C6\21\377'C7\21\377C6\21" \
- "\377A4\21\377@2\20\377\77""1\20\377<.\20\3779,\17\3777*\16\3774(\15\377" \
- "1%\14\377-\"\12\377*\36\11\377(\34\10\377&\32\10\377$\30\10\377%\31\10" \
- "\377'\33\10\377)\35\11\377+\40\12\3770$\14\3774(\15\3779,\17\377</\20" \
- "\377@3\21\377D7\22\377F9\23\377F:\23\377F:\22\377E8\22\377\256\243m\377" \
- "\344\333\232\377\343\333\231\377\343\333\226\377\343\332\223\377\343" \
- "\332\222\377\343\331\220\377\343\331\215\377\343\331\211\377ka0\377\202" \
- "@5\21\377\14;2\21\3776-\16\3771*\16\377+%\14\377%\40\13\377\35\31\10" \
- "\377\27\24\6\377\21\16\5\377\14\12\4\377\7\6\2\377\4\3\1\377\1\1\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\331\0\0\0\377\10(((\377]]]\377\\\\\\\377" \
- "[[[\377ZZZ\377YYY\377XXX\377WWW\377\202VVV\377\3UUU\377TTT\377SSS\377" \
- "\202RRR\377\5QQQ\377PPP\377OOO\377NNN\377MMM\377\202LLL\377\22KKK\377" \
- "JJJ\377III\377HHH\377HHG\377IIG\377LKH\377ONH\377SQH\377VSG\377[WI\377" \
- "^[I\377b]I\377e`K\377gcJ\377JD&\37792\21\377\215\210h\377\202\346\343" \
- "\305\377\1\346\343\306\377\203\346\343\307\377\1\346\343\310\377\203" \
- "\346\343\311\377\204\346\343\312\377\30\346\343\313\377\201|]\377;4\21" \
- "\377:2\21\37770\20\3773+\17\377/'\15\377*#\13\377$\35\11\377!\32\10\377" \
- "\40\31\10\377\37\27\7\377\40\30\7\377!\31\10\377%\34\11\377*!\12\377" \
- ".$\14\3772(\15\3775*\16\377:.\17\377=1\20\377\77""3\21\377C6\21\377D" \
- "7\22\377\202F9\22\377\202H:\23\377\203I;\23\377\31H:\22\377G9\22\377" \
- "F8\22\377E7\21\377B5\20\377\77""2\20\377>1\20\377:.\17\3776*\15\3773" \
- "'\14\377/#\13\377*\37\11\377)\35\10\377'\33\10\377&\33\10\377'\33\10" \
- "\377)\35\10\377)\35\11\377-\"\12\3772'\14\3776*\15\377;.\17\377\77""2" \
- "\17\377B5\21\377F8\22\377\202H;\23\377\31G9\23\377RE\35\377\326\314\217" \
- "\377\344\333\232\377\343\333\230\377\343\332\225\377\343\332\222\377" \
- "\343\332\221\377\343\331\217\377\343\331\214\377\324\310|\377NC\32\377" \
- "A6\22\377@5\22\377;1\21\3775,\16\3771)\15\377*$\14\377\"\35\12\377\32" \
- "\26\7\377\24\21\5\377\17\15\4\377\12\11\3\377\5\4\2\377\2\2\1\377\377" \
- "\0\0\0\377\377\0\0\0\377\330\0\0\0\377\7\12\12\12\377WWW\377[[[\377Z" \
- "ZZ\377YYY\377XXX\377WWW\377\202VVV\377\5UUU\377TTT\377SSS\377RRR\377" \
- "QQQ\377\202PPP\377\3OOO\377NNN\377MMM\377\202LLL\377\5KKK\377JJJ\377" \
- "III\377HHH\377GGG\377\202FFF\377\12HHE\377KJE\377MLF\377QOF\377VSF\377" \
- "YVG\377]ZG\377a]I\377b^H\377GA#\377\20292\21\377\2\225\220q\377\346\343" \
- "\306\377\202\346\343\307\377\202\346\343\310\377\202\346\343\311\377" \
- "\203\346\343\312\377\202\346\343\313\377\203\346\343\314\377\27\216\212" \
- "k\377=5\21\377=4\21\37790\20\3776-\16\3771(\15\377+#\13\377(!\13\377" \
- "&\36\12\377$\34\11\377$\33\11\377%\34\11\377'\35\11\377*\40\12\377/%" \
- "\14\3774*\15\3778,\17\377=0\20\377\77""3\20\377C7\21\377F8\22\377H:\23" \
- "\377I;\23\377\202H:\23\377\202I;\23\377\203J;\23\377\203K<\24\377\27" \
- "J:\23\377I:\23\377F7\22\377D5\21\377@2\20\377>/\20\3779+\16\3775'\15" \
- "\3771$\14\377-\40\12\377)\35\11\377*\34\11\377)\34\10\377*\34\11\377" \
- ")\35\11\377,\40\12\3770#\14\3774'\14\3779,\16\377>0\17\377@3\20\377E" \
- "7\21\377H:\22\377\203I;\23\377\30\200sD\377\344\333\233\377\344\333\231" \
- "\377\343\333\227\377\343\332\224\377\343\332\222\377\343\331\220\377" \
- "\343\331\216\377\343\331\212\377\252\235\\\377C7\22\377A6\22\377\77""4" \
- "\21\377:0\20\3774+\16\3770'\15\377*#\13\377\35\31\10\377\30\25\7\377" \
- "\22\17\5\377\15\13\4\377\10\7\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\327\0\0\0\377\5;;;\377ZZZ\377YYY\377XXX\377WWW\377\202" \
- "VVV\377\6UUU\377TTT\377SSS\377RRR\377QQQ\377PPP\377\202OOO\377\2NNN\377" \
- "MMM\377\202LLL\377\7KKK\377JJJ\377III\377HHH\377GGG\377FFF\377EEE\377" \
- "\202DDD\377\12FFC\377IHD\377LKD\377PND\377TQF\377XUF\377\\YF\377_[G\377" \
- "E\77#\37771\20\377\20292\21\377\2\237\232|\377\346\343\307\377\202\346" \
- "\343\310\377\202\346\343\311\377\202\346\343\312\377\202\346\343\313" \
- "\377\203\346\343\314\377\203\346\343\315\377\12\231\223w\377\77""5\21" \
- "\377>5\21\377;1\20\3777.\17\3773*\16\377/&\15\377,#\14\377+\"\13\377" \
- "+!\12\377\202*!\12\377\16,\"\13\3771%\15\3775*\16\377:.\17\377>1\20\377" \
- "B5\21\377F8\22\377I;\23\377H:\23\377I;\23\377J;\23\377WJ\"\377\200uR" \
- "\377\257\247\207\377\202\307\301\243\377\4\310\302\241\377\274\264\222" \
- "\377\237\226s\377th@\377\203N=\24\377\12L;\23\377I9\22\377F6\21\377C" \
- "3\20\377\77/\20\377;,\16\3776(\15\3772$\14\377.\40\12\377+\36\11\377" \
- "\203)\34\10\377#,\37\11\377/\"\12\3773&\14\3777*\15\377<.\17\377@2\20" \
- "\377D6\21\377G9\22\377I:\23\377J;\23\377I;\23\377H:\23\377\274\262x\377" \
- "\344\333\232\377\343\333\230\377\343\333\226\377\343\332\223\377\343" \
- "\332\222\377\343\331\217\377\343\331\214\377\343\331\210\377od1\377D" \
- "7\22\377C7\22\377\77""4\21\377:/\20\3774*\17\377-%\14\377$\37\12\377" \
- "\33\27\10\377\25\22\6\377\20\16\4\377\13\11\3\377\5\4\2\377\2\2\1\377" \
- "\377\0\0\0\377\377\0\0\0\377\326\0\0\0\377\4\25\25\25\377YYY\377XXX\377" \
- "WWW\377\202VVV\377\10UUU\377TTT\377SSS\377RRR\377QQQ\377PPP\377OOO\377" \
- "NNN\377\202MMM\377\202LLL\377\11KKK\377JJJ\377III\377HHH\377GGG\377F" \
- "FF\377EEE\377DDD\377CCC\377\202BBB\377\12DDA\377GFA\377KJC\377NLB\377" \
- "SPC\377WSD\377[WE\377FA(\3775/\17\37782\20\377\20292\21\377\2\247\241" \
- "\204\377\346\343\310\377\202\346\343\311\377\202\346\343\312\377\1\346" \
- "\343\313\377\203\346\343\314\377\203\346\343\315\377\1\346\343\316\377" \
- "\202\347\343\316\377\32\244\237\203\377A6\21\377@5\22\377>3\21\377:/" \
- "\20\3775*\16\3773)\15\3771'\15\3770%\14\377/%\13\3770%\14\3771%\14\377" \
- "2&\15\3776*\16\377;.\17\377@2\20\377C6\21\377H:\22\377I:\23\377J;\23" \
- "\377K<\24\377\\N(\377\250\240\201\377\344\341\307\377\346\343\311\377" \
- "\346\343\310\377\202\346\343\307\377\1\346\343\306\377\202\346\343\305" \
- "\377\17\346\343\304\377\326\321\261\377\211|X\377N=\24\377O>\24\377N" \
- "=\23\377L;\22\377H8\21\377E5\21\377A1\17\377=-\16\3778)\15\3773$\13\377" \
- "0\40\11\377+\35\10\377\202*\34\10\377\11+\35\10\377-\37\11\3772$\13\377" \
- "6(\15\377;+\16\377\77/\20\377C4\20\377H8\22\377J:\23\377\203K<\24\377" \
- "\30_R&\377\340\330\230\377\344\333\231\377\343\333\227\377\343\332\224" \
- "\377\343\332\222\377\343\332\221\377\343\331\216\377\343\331\212\377" \
- "\316\301v\377K\77\26\377E8\22\377A6\21\377>3\21\3778-\17\3773*\16\377" \
- "+#\13\377\36\32\11\377\31\25\7\377\22\17\5\377\16\14\4\377\10\7\3\377" \
- "\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\325\0\0\0\377\2HHH\377" \
- "WWW\377\202VVV\377\11UUU\377TTT\377SSS\377RRR\377QQQ\377PPP\377OOO\377" \
- "NNN\377MMM\377\203LLL\377\11KKK\377JJJ\377III\377HHH\377GGG\377FFF\377" \
- "EEE\377DDD\377CCC\377\202BBB\377\202AAA\377\12BB\77\377ED@\377IHA\377" \
- "MJ@\377ROB\377VRC\377FC-\3770+\17\3775/\17\37782\20\377\20292\21\377" \
- "\2\251\245\210\377\346\343\311\377\202\346\343\312\377\1\346\343\313" \
- "\377\202\346\343\314\377\203\346\343\315\377\1\346\343\316\377\202\347" \
- "\343\316\377\203\347\344\317\377\1\260\253\220\377\202A6\22\377\6\77" \
- "4\21\377<0\20\3778.\17\3776+\16\3774)\15\3774)\16\377\2024(\15\377\6" \
- "5)\15\3778+\16\377;.\17\377\77""2\20\377E6\21\377H:\23\377\202K<\24\377" \
- "\4L=\24\377\203xU\377\341\337\306\377\346\343\313\377\202\346\343\312" \
- "\377\202\346\343\311\377\3\346\343\310\377\346\343\307\377\346\343\306" \
- "\377\203\346\343\305\377\31\346\343\304\377\311\301\237\377cR(\377Q\77" \
- "\24\377Q>\24\377N<\23\377K9\22\377G5\21\377C1\20\377>,\16\3779(\15\377" \
- "3#\13\3770\40\12\377-\36\11\377,\35\11\377+\34\10\377-\36\10\3771\"\12" \
- "\3775&\14\377;+\15\377=.\17\377B2\17\377E6\21\377H9\22\377L;\23\377\202" \
- "N=\24\377\30L=\24\377\246\232d\377\344\333\233\377\343\333\231\377\343" \
- "\333\226\377\343\332\223\377\343\332\222\377\343\331\217\377\343\331" \
- "\214\377\343\331\211\377\231\216P\377F:\23\377E8\22\377@5\21\377<1\20" \
- "\3777,\17\3771'\15\377#\37\12\377\33\27\10\377\26\23\6\377\20\16\4\377" \
- "\13\11\3\377\6\5\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\324\0\0" \
- "\0\377\1\33\33\33\377\202VVV\377\11UUU\377TTT\377SSS\377RRR\377QQQ\377" \
- "PPP\377OOO\377NNN\377MMM\377\202LLL\377\202KKK\377\10JJJ\377III\377H" \
- "HH\377GGG\377FFF\377EEE\377DDD\377CCC\377\202BBB\377\2AAA\377@@@\377" \
- "\202\77\77\77\377\12AA>\377DB>\377GF\77\377LI\77\377PMA\377GC2\377+&" \
- "\16\3770+\17\3775/\17\37782\20\377\20292\21\377\3\256\252\215\377\346" \
- "\343\312\377\346\343\313\377\202\346\343\314\377\202\346\343\315\377" \
- "\1\346\343\316\377\202\347\343\316\377\205\347\344\317\377\2\347\344" \
- "\320\377\274\270\237\377\202C7\22\377\5@5\21\377>2\21\377<0\20\377;." \
- "\20\377:.\17\377\2029,\17\377\7""9,\16\377:.\17\377=/\17\377@2\20\377" \
- "E6\21\377J:\23\377L<\23\377\202N=\24\377\1\233\220q\377\202\346\343\315" \
- "\377\202\346\343\314\377\2\346\343\313\377\346\343\312\377\202\346\343" \
- "\311\377\1\346\343\310\377\202\346\343\307\377\203\346\343\305\377\3" \
- "\346\343\304\377\330\321\262\377pa7\377\202R\77\24\377\24O=\23\377L9" \
- "\22\377G5\20\377A0\20\377=+\15\3777'\14\3773\"\12\3770\37\11\377.\36" \
- "\11\377-\35\11\377.\36\11\3770\40\12\3775#\13\3779(\15\377=-\17\377A" \
- "1\17\377E4\21\377H7\21\377L;\22\377N=\23\377\202N=\24\377\30ZJ\37\377" \
- "\335\326\225\377\344\333\232\377\343\333\230\377\343\332\225\377\343" \
- "\332\222\377\343\332\221\377\343\331\216\377\343\331\212\377\335\321" \
- "\202\377YK\37\377H;\23\377E8\22\377\77""4\20\377;/\20\3775*\16\377+$" \
- "\13\377\37\33\11\377\31\25\7\377\23\20\5\377\16\14\4\377\10\7\3\377\4" \
- "\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\323\0\0\0\377\12DDD\377" \
- "UUU\377TTT\377SSS\377RRR\377QQQ\377PPP\377OOO\377NNN\377MMM\377\202L" \
- "LL\377\1KKK\377\202JJJ\377\7III\377HHH\377GGG\377FFF\377EEE\377DDD\377" \
- "CCC\377\202BBB\377\4AAA\377@@@\377\77\77\77\377>>>\377\202===\377\12" \
- "\77\77<\377B@<\377FD>\377KH>\377HE8\377'\"\17\377+&\15\3770+\17\3775" \
- "/\17\37782\20\377\20292\21\377\3\264\257\224\377\346\343\313\377\346" \
- "\343\314\377\202\346\343\315\377\2\346\343\316\377\347\343\316\377\204" \
- "\347\344\317\377\204\347\344\320\377\7\347\344\321\377\310\303\255\377" \
- "D9\22\377D7\22\377C7\22\377A4\21\377\77""2\20\377\202\77""1\20\377\2" \
- "=0\20\377=0\17\377\202\77""1\20\377\4B3\20\377E6\21\377I9\22\377M<\23" \
- "\377\202N=\24\377\5\216\202a\377\347\344\317\377\347\343\316\377\346" \
- "\343\316\377\346\343\315\377\202\346\343\314\377\1\346\343\313\377\202" \
- "\346\343\312\377\2\346\343\311\377\346\343\310\377\202\346\343\307\377" \
- "\1\346\343\306\377\202\346\343\305\377\30\346\343\304\377\332\324\264" \
- "\377eS(\377S@\24\377S>\24\377P<\23\377K8\21\377G4\20\377A/\16\377=*\15" \
- "\3778%\13\3773!\12\3770\36\11\377.\35\10\377.\36\10\3770\37\11\3773\"" \
- "\12\3778&\14\377<+\15\377@.\16\377E3\20\377H5\21\377M:\23\377O=\24\377" \
- "\202P>\24\377\30O>\24\377\230\213W\377\344\333\233\377\343\333\231\377" \
- "\343\333\226\377\343\332\223\377\343\332\222\377\343\331\217\377\343" \
- "\331\214\377\343\331\210\377\253\237\\\377I;\23\377H:\23\377D7\22\377" \
- "\77""3\20\3779.\17\3774)\15\377\"\35\12\377\33\27\10\377\26\23\6\377" \
- "\20\16\4\377\13\11\3\377\5\4\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0" \
- "\377\322\0\0\0\377\11\5\5\5\377222\377HHH\377RRR\377QQQ\377PPP\377OO" \
- "O\377NNN\377MMM\377\202LLL\377\3KKK\377JJJ\377III\377\202HHH\377\5GG" \
- "G\377FFF\377EEE\377DDD\377CCC\377\202BBB\377\6AAA\377@@@\377\77\77\77" \
- "\377>>>\377===\377<<<\377\202;;;\377\12>=;\377A@;\377DB<\377GE:\377'" \
- "#\23\377$\37\13\377+&\15\3770+\17\3775/\17\37782\20\377\20292\21\377" \
- "\5\264\257\225\377\346\343\314\377\346\343\315\377\346\343\316\377\347" \
- "\343\316\377\204\347\344\317\377\202\347\344\320\377\204\347\344\321" \
- "\377\10\347\344\322\377\326\323\277\377F:\23\377G9\23\377E8\22\377C6" \
- "\21\377B5\21\377A4\20\377\202A3\20\377\12B3\20\377C4\20\377D5\21\377" \
- "E6\21\377H8\22\377N<\23\377O>\24\377P>\24\377o`;\377\345\342\316\377" \
- "\202\347\344\317\377\202\347\343\316\377\202\346\343\315\377\202\346" \
- "\343\314\377\2\346\343\313\377\346\343\312\377\202\346\343\311\377\202" \
- "\346\343\307\377\1\346\343\306\377\202\346\343\305\377\27\346\343\304" \
- "\377\310\277\236\377YC\30\377VB\25\377S@\24\377P;\23\377L8\21\377G3\20" \
- "\377A.\16\377=)\15\3777$\13\3773\40\12\3770\35\11\3770\35\10\3770\36" \
- "\10\3773!\11\3777$\13\377;(\14\377\77-\16\377D2\17\377G5\20\377L9\22" \
- "\377O=\23\377\203Q\77\24\377\30ZH\34\377\335\326\226\377\344\333\232" \
- "\377\343\333\230\377\343\332\225\377\343\332\222\377\343\332\221\377" \
- "\343\331\216\377\343\331\212\377\343\331\207\377gY(\377I;\23\377H:\22" \
- "\377B5\21\377>1\20\3778+\17\377'!\13\377\37\33\11\377\31\25\7\377\22" \
- "\17\5\377\15\13\4\377\10\7\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\324\0\0\0\377\3\10\10\10\377\35\35\35\377777\377\203LLL\377" \
- "\4KKK\377JJJ\377III\377HHH\377\202GGG\377\4FFF\377EEE\377DDD\377CCC\377" \
- "\202BBB\377\24AAA\377@@@\377\77\77\77\377>>>\377===\377<<<\377;;;\377" \
- ":::\377999\377::9\377<;9\377\77>9\377C@:\377*'\33\377\36\32\11\377$\37" \
- "\13\377+&\15\3770+\17\3775/\17\37782\20\377\20292\21\377\2\264\257\225" \
- "\377\346\343\315\377\202\347\343\316\377\203\347\344\317\377\202\347" \
- "\344\320\377\202\347\344\321\377\203\347\344\322\377\202\347\344\323" \
- "\377\3\343\340\317\377H;\23\377I;\23\377\202G9\22\377\3F7\21\377F7\22" \
- "\377E6\21\377\202F6\21\377\10G7\21\377H7\21\377I9\22\377N;\22\377P>\24" \
- "\377Q\77\24\377R\77\24\377\303\275\245\377\202\347\344\320\377\203\347" \
- "\344\317\377\3\347\343\316\377\346\343\316\377\346\343\315\377\202\346" \
- "\343\314\377\2\346\343\313\377\346\343\312\377\202\346\343\311\377\3" \
- "\346\343\310\377\346\343\307\377\346\343\306\377\202\346\343\305\377" \
- "\30\346\343\304\377\215\177V\377XC\25\377WB\25\377R>\23\377O:\22\377" \
- "K6\20\377G1\17\377\77,\16\377:&\14\3775\"\12\3771\37\11\3770\34\10\377" \
- "1\35\10\3772\37\11\3775\"\13\377:'\14\377\77+\16\377C/\17\377G4\17\377" \
- "K8\21\377N;\22\377R>\24\377S\77\24\377\202R\77\24\377\27\237\223\\\377" \
- "\344\333\233\377\343\333\231\377\343\333\226\377\343\332\223\377\343" \
- "\332\222\377\343\331\217\377\343\331\214\377\343\331\210\377\262\247" \
- "a\377K<\24\377I:\23\377G9\22\377A4\20\377<.\20\377/&\15\377\"\35\12\377" \
- "\33\27\10\377\25\22\6\377\17\15\4\377\12\11\3\377\5\4\2\377\2\2\1\377" \
- "\377\0\0\0\377\377\0\0\0\377\327\0\0\0\377\3\5\5\5\377\33\33\33\3774" \
- "44\377\202HHH\377\2GGG\377FFF\377\202EEE\377\2DDD\377CCC\377\202BBB\377" \
- "\26AAA\377@@@\377\77\77\77\377>>>\377===\377<<<\377;;;\377:::\377999" \
- "\377888\377777\377887\377:97\377=<7\3771/'\377\30\25\7\377\36\32\11\377" \
- "$\37\13\377+&\15\3770+\17\3775/\17\37782\20\377\20292\21\377\2\264\257" \
- "\225\377\347\343\316\377\203\347\344\317\377\202\347\344\320\377\202" \
- "\347\344\321\377\202\347\344\322\377\204\347\344\323\377\202\347\344" \
- "\324\377\4SF!\377I;\23\377H:\22\377H:\23\377\202I9\22\377\203H8\22\377" \
- "\4I9\22\377K9\22\377M<\23\377P=\24\377\202R\77\24\377\2|nI\377\347\344" \
- "\322\377\202\347\344\321\377\202\347\344\320\377\203\347\344\317\377" \
- "\1\347\343\316\377\202\346\343\315\377\3\346\343\314\377\346\343\313" \
- "\377\346\343\312\377\202\346\343\311\377\3\346\343\310\377\346\343\307" \
- "\377\346\343\306\377\202\346\343\305\377\13\326\320\257\377[E\30\377" \
- "YC\25\377WA\24\377R=\23\377N9\21\377H3\17\377C.\16\377=)\14\377:%\13" \
- "\3773\40\11\377\2021\35\10\377\11""2\36\10\3775\"\12\377:&\13\377=*\15" \
- "\377B/\17\377F3\17\377K7\21\377N:\22\377Q=\23\377\202S@\24\377\30T\77" \
- "\24\377`L\37\377\340\330\230\377\344\333\231\377\343\333\227\377\343" \
- "\332\224\377\343\332\222\377\343\331\220\377\343\331\215\377\343\331" \
- "\211\377\343\331\206\377jZ)\377L=\24\377I:\23\377E6\21\377\77""2\20\377" \
- "5*\16\377$\37\13\377\36\32\11\377\30\25\7\377\21\16\5\377\15\13\4\377" \
- "\7\6\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\332\0\0\0\377\3\5\5" \
- "\5\377!!!\377<<<\377\202DDD\377\1CCC\377\202BBB\377\12AAA\377@@@\377" \
- "\77\77\77\377>>>\377===\377<<<\377;;;\377:::\377999\377888\377\20277" \
- "7\377\17""666\377776\377875\377750\377\25\22\11\377\30\25\7\377\36\32" \
- "\11\377$\37\13\377+&\15\3770+\17\3775/\17\37782\20\37792\21\377:2\21" \
- "\377\264\257\227\377\202\347\344\317\377\202\347\344\320\377\202\347" \
- "\344\321\377\202\347\344\322\377\203\347\344\323\377\1\347\344\324\377" \
- "\202\347\345\324\377\202\347\345\325\377\10bV1\377K<\24\377K<\23\377" \
- "K;\23\377J:\23\377J:\22\377K:\22\377L:\22\377\202M;\23\377\7O=\23\377" \
- "Q>\24\377R\77\24\377T\77\24\377S@\24\377\256\246\211\377\347\344\323" \
- "\377\202\347\344\322\377\202\347\344\321\377\1\347\344\320\377\203\347" \
- "\344\317\377\1\347\343\316\377\202\346\343\315\377\3\346\343\314\377" \
- "\346\343\313\377\346\343\312\377\202\346\343\311\377\202\346\343\307" \
- "\3773\346\343\306\377\346\343\305\377\346\343\304\377{i>\377[D\26\377" \
- "YC\25\377V\77\24\377Q9\22\377M6\21\377G0\17\377B+\16\377=&\14\3777\"" \
- "\11\3773\36\10\3771\35\7\3772\36\10\3776\"\11\3779$\12\377=)\14\377C" \
- "-\16\377G1\17\377K6\20\377N:\22\377Q<\23\377T@\25\377VB\25\377UA\25\377" \
- "TA\24\377\256\243k\377\344\333\233\377\343\333\231\377\343\333\226\377" \
- "\343\332\223\377\343\332\222\377\343\331\217\377\343\331\214\377\343" \
- "\331\210\377\263\247`\377N=\24\377L<\23\377I9\22\377C5\21\377\77""1\20" \
- "\377'\"\13\377!\34\11\377\32\26\7\377\24\21\5\377\17\15\5\377\11\10\3" \
- "\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\334\0\0\0\377\2" \
- "\21\21\21\377,,,\377\202AAA\377\11@@@\377\77\77\77\377>>>\377===\377" \
- "<<<\377;;;\377:::\377999\377888\377\202777\377\23""666\377555\377444" \
- "\377554\377764\377\31\27\22\377\21\16\5\377\30\25\7\377\36\32\11\377" \
- "$\37\13\377+&\15\3770+\17\3775/\17\37782\20\377:2\21\377;3\21\377\254" \
- "\250\217\377\347\344\317\377\347\344\320\377\202\347\344\321\377\202" \
- "\347\344\322\377\202\347\344\323\377\1\347\344\324\377\202\347\345\324" \
- "\377\203\347\345\325\377\202\347\345\326\377\20thF\377N=\24\377M<\23" \
- "\377N=\23\377M=\23\377M<\23\377N=\24\377O=\24\377P=\24\377Q>\24\377R" \
- ">\24\377T\77\24\377S@\24\377UA\25\377VB\25\377\335\332\306\377\203\347" \
- "\344\323\377\202\347\344\322\377\1\347\344\321\377\202\347\344\320\377" \
- "\202\347\344\317\377\6\347\343\316\377\346\343\316\377\346\343\315\377" \
- "\346\343\314\377\346\343\313\377\346\343\312\377\202\346\343\311\377" \
- "\202\346\343\307\377\202\346\343\305\377\26\244\230q\377[E\26\377[C\25" \
- "\377YA\24\377T=\23\377O8\22\377J3\17\377E.\16\377>(\14\377:$\12\3776" \
- "\37\11\3772\34\10\3772\35\10\3775\37\11\377:$\13\377='\13\377B,\15\377" \
- "G1\17\377I4\17\377N9\21\377R<\23\377U@\24\377\203WB\25\377\27r`0\377" \
- "\344\334\234\377\344\333\231\377\343\333\227\377\343\332\224\377\343" \
- "\332\222\377\343\331\220\377\343\331\215\377\343\331\211\377\341\327" \
- "\205\377dS#\377N=\24\377L;\23\377H8\22\377A2\20\377/'\15\377#\36\12\377" \
- "\35\31\10\377\27\24\6\377\21\16\5\377\14\12\4\377\6\5\2\377\3\3\1\377" \
- "\377\0\0\0\377\377\0\0\0\377\336\0\0\0\377\11\7\7\7\377###\377;;;\377" \
- "===\377<<<\377;;;\377:::\377999\377888\377\202777\377\24""666\377555" \
- "\377444\377333\377222\377332\377#\"\40\377\13\11\3\377\20\16\4\377\27" \
- "\24\6\377\36\32\11\377$\37\13\377+&\15\3770+\17\3775/\17\37792\20\377" \
- ";3\21\377<4\21\377\253\246\215\377\347\344\320\377\202\347\344\321\377" \
- "\1\347\344\322\377\203\347\344\323\377\1\347\345\324\377\203\347\345" \
- "\325\377\203\347\345\326\377\202\347\345\327\377\6\204xX\377N=\24\377" \
- "O>\24\377O=\23\377P>\24\377P=\24\377\202Q>\24\377\10R>\24\377S>\24\377" \
- "S@\24\377T@\25\377VB\25\377WB\25\377`N#\377\347\345\325\377\202\347\345" \
- "\324\377\203\347\344\323\377\1\347\344\322\377\202\347\344\321\377\1" \
- "\347\344\320\377\202\347\344\317\377\26\347\343\316\377\346\343\316\377" \
- "\346\343\315\377\346\343\314\377\346\343\313\377\346\343\312\377\346" \
- "\343\311\377\346\343\310\377\346\343\307\377\346\343\306\377\346\343" \
- "\305\377\301\266\224\377_E\26\377^E\26\377[B\25\377W>\23\377R9\21\377" \
- "M5\17\377F.\16\377B*\14\377<%\12\3778\40\11\377\2024\35\10\377\12""5" \
- "\37\10\3779#\12\377<%\13\377@+\15\377E0\17\377I3\20\377M7\20\377R;\22" \
- "\377V@\23\377XB\25\377\202XC\25\377\30WB\25\377\306\274\200\377\344\333" \
- "\232\377\343\333\230\377\343\332\225\377\343\332\222\377\343\332\221" \
- "\377\343\331\216\377\343\331\212\377\343\331\207\377\246\227S\377P>\24" \
- "\377N=\23\377I9\22\377E6\21\3776+\17\377&!\13\377\40\33\11\377\31\25" \
- "\7\377\23\20\5\377\16\14\4\377\10\7\3\377\4\3\1\377\1\1\0\377\377\0\0" \
- "\0\377\377\0\0\0\377\337\0\0\0\377\5\4\4\4\377\33\33\33\377666\37799" \
- "9\377888\377\202777\377\26""666\377555\377444\377333\377222\377111\377" \
- "000\377//.\377\12\11\6\377\12\11\3\377\20\16\4\377\27\24\6\377\36\32" \
- "\11\377$\37\13\377*%\15\3770+\17\3776/\17\377;3\20\377<4\21\377>5\21" \
- "\377\253\246\215\377\347\344\321\377\202\347\344\322\377\202\347\344" \
- "\323\377\202\347\345\324\377\202\347\345\325\377\202\347\345\326\377" \
- "\204\347\345\327\377\3\347\345\330\377\223\210k\377P>\24\377\202Q\77" \
- "\24\377\10Q>\24\377R\77\24\377S\77\24\377T\77\24\377T@\25\377UA\25\377" \
- "VA\25\377WB\25\377\202XC\25\377\2t`9\377\347\345\326\377\202\347\345" \
- "\325\377\2\347\345\324\377\347\344\324\377\202\347\344\323\377\1\347" \
- "\344\322\377\202\347\344\321\377\1\347\344\320\377\202\347\344\317\377" \
- "!\347\343\316\377\346\343\316\377\346\343\315\377\346\343\314\377\346" \
- "\343\313\377\346\343\312\377\346\343\311\377\346\343\310\377\346\343" \
- "\307\377\346\343\306\377\311\302\240\377`G\27\377_F\26\377\\C\25\377" \
- "Y@\24\377T;\22\377O6\21\377I0\16\377D,\15\377\77'\14\377:\"\11\3777\37" \
- "\10\3774\34\7\3776\36\10\3779\"\11\377=&\13\377A)\14\377E/\16\377J3\17" \
- "\377N7\21\377Q:\22\377U>\23\377YB\25\377\203YC\25\377\27\223\203N\377" \
- "\344\334\234\377\343\333\231\377\343\333\226\377\343\332\223\377\343" \
- "\332\222\377\343\331\217\377\343\331\214\377\343\331\210\377\335\320" \
- "\177\377YF\32\377Q\77\24\377M<\23\377H7\21\377>1\17\377'#\14\377#\36" \
- "\12\377\33\27\10\377\25\22\6\377\17\15\4\377\12\11\3\377\5\4\2\377\2" \
- "\2\1\377\377\0\0\0\377\377\0\0\0\377\341\0\0\0\377\32\3\3\3\377\32\32" \
- "\32\377333\377666\377555\377444\377333\377222\377111\377000\377///\377" \
- "...\377\30\30\27\377\5\4\2\377\12\11\3\377\20\16\4\377\27\24\6\377\35" \
- "\31\10\377$\37\13\377*%\15\3771+\16\37770\17\377<4\21\377>5\21\377\77" \
- "5\21\377\242\236\203\377\202\347\344\322\377\3\347\344\323\377\347\344" \
- "\324\377\347\345\324\377\202\347\345\325\377\202\347\345\326\377\202" \
- "\347\345\327\377\203\347\345\330\377\202\347\345\331\377\13\243\232\201" \
- "\377Q\77\24\377R\77\24\377S\77\24\377T\77\24\377S@\24\377T@\25\377UA" \
- "\25\377VA\25\377WB\25\377XC\25\377\202YC\25\377\3ZD\25\377xc<\377\347" \
- "\345\327\377\202\347\345\326\377\202\347\345\325\377\1\347\345\324\377" \
- "\202\347\344\323\377\202\347\344\322\377\2\347\344\321\377\347\344\320" \
- "\377\202\347\344\317\377:\347\343\316\377\346\343\316\377\346\343\315" \
- "\377\346\343\314\377\346\343\313\377\346\343\312\377\346\343\311\377" \
- "\346\343\310\377\346\343\307\377\322\313\253\377bH\27\377aG\26\377_D" \
- "\25\377[A\24\377V;\22\377P6\20\377K1\17\377F,\15\377A'\14\377<#\12\377" \
- "9\37\11\3775\35\10\3776\36\10\3779!\11\377=$\13\377A)\14\377E,\15\377" \
- "I1\16\377N6\20\377R:\22\377U=\23\377X@\24\377ZC\25\377[D\26\377[C\26" \
- "\377eO\36\377\340\330\231\377\344\333\232\377\343\333\227\377\343\332" \
- "\224\377\343\332\222\377\343\331\220\377\343\331\215\377\343\331\211" \
- "\377\343\331\206\377\213{\77\377R\77\24\377P=\24\377L:\23\377F6\21\377" \
- "*%\14\377$\37\13\377\36\32\11\377\30\25\7\377\21\16\5\377\14\12\4\377" \
- "\7\6\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\343\0\0\0\377\30\3\3" \
- "\3\377\32\32\32\377111\377222\377111\377000\377///\377...\377---\377" \
- "&&&\377\3\3\2\377\5\4\2\377\12\11\3\377\20\16\4\377\27\24\6\377\35\31" \
- "\10\377$\37\13\377,'\15\3772,\16\37780\20\377>5\21\377@6\21\377@5\21" \
- "\377\232\224z\377\202\347\344\323\377\3\347\344\324\377\347\345\324\377" \
- "\347\345\325\377\202\347\345\326\377\202\347\345\327\377\202\347\345" \
- "\330\377\205\347\345\331\377\7\263\255\225\377S\77\24\377T\77\24\377" \
- "S@\24\377UA\25\377VB\25\377WB\25\377\202XC\25\377\202YC\25\377\4ZD\25" \
- "\377[C\26\377[D\26\377mW-\377\203\347\345\327\377\202\347\345\326\377" \
- "\2\347\345\325\377\347\345\324\377\202\347\344\323\377\202\347\344\322" \
- "\377\2\347\344\321\377\347\344\320\377\202\347\344\317\377\2\347\343" \
- "\316\377\346\343\315\377\202\346\343\314\377\1\346\343\312\377\202\346" \
- "\343\311\3773\346\343\307\377\305\273\232\377dG\26\377dH\26\377aE\25" \
- "\377\\A\24\377X=\22\377S8\20\377N3\17\377I.\15\377D(\14\377\77$\12\377" \
- ";\40\11\3778\36\10\3777\34\10\377:\40\11\377<#\12\377A'\14\377D,\15\377" \
- "I0\16\377M5\20\377R9\21\377V=\22\377Y@\24\377[B\25\377[E\26\377\\D\26" \
- "\377[D\26\377\274\257u\377\344\333\233\377\343\333\231\377\343\332\225" \
- "\377\343\332\222\377\343\332\221\377\343\331\216\377\343\331\212\377" \
- "\343\331\207\377\303\266i\377T\77\24\377R\77\24\377O=\23\377J8\22\377" \
- "1*\16\377&!\13\377!\34\11\377\31\25\7\377\23\20\5\377\16\14\4\377\10" \
- "\7\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\344\0\0\0\377" \
- "\4\6\6\6\377\"\"\"\377///\377...\377\202---\377\22,,,\377\15\15\15\377" \
- "\2\2\1\377\5\4\2\377\12\11\3\377\20\16\4\377\27\24\6\377\35\31\10\377" \
- "$\40\12\377,'\14\3773,\17\37790\20\377>5\21\377@5\21\377A6\22\377\226" \
- "\217t\377\347\344\323\377\347\344\324\377\202\347\345\325\377\1\347\345" \
- "\326\377\203\347\345\327\377\1\347\345\330\377\206\347\345\331\377\6" \
- "\347\346\331\377\304\275\253\377S@\24\377UA\25\377VB\25\377WB\25\377" \
- "\202XC\25\377\202YC\25\377\10ZD\25\377[D\26\377\\D\26\377[E\26\377]E" \
- "\26\377aI\32\377\342\337\320\377\347\345\330\377\202\347\345\327\377" \
- "\202\347\345\326\377\4\347\345\325\377\347\345\324\377\347\344\324\377" \
- "\347\344\323\377\202\347\344\322\377\2\347\344\321\377\347\344\320\377" \
- "\202\347\344\317\377\37\347\343\316\377\346\343\315\377\346\343\314\377" \
- "\346\343\313\377\346\343\312\377\346\343\311\377\346\343\310\377\264" \
- "\247\203\377eJ\27\377dH\27\377bF\26\377]A\25\377X=\23\377T9\21\377O4" \
- "\17\377I.\15\377D*\14\377@&\12\377<!\11\377:\36\10\3779\36\7\377;!\10" \
- "\377>#\12\377A'\13\377E+\15\377I/\16\377N4\20\377Q8\21\377V=\23\377Y" \
- "@\24\377[C\25\377\202^E\26\377\30]E\26\377\216{G\377\344\334\234\377" \
- "\344\333\231\377\343\333\226\377\343\332\223\377\343\332\222\377\343" \
- "\331\217\377\343\331\214\377\343\331\210\377\343\330\204\377kW%\377S" \
- "@\24\377Q>\24\377L9\22\3778-\17\377($\14\377#\36\12\377\34\30\10\377" \
- "\26\23\6\377\17\15\4\377\12\11\3\377\5\4\2\377\2\2\1\377\377\0\0\0\377" \
- "\377\0\0\0\377\346\0\0\0\377\25\16\16\16\377'''\377,,,\377+++\377\"\"" \
- "\"\377\0\0\0\377\2\2\1\377\5\4\1\377\12\11\3\377\17\15\4\377\26\23\6" \
- "\377\36\33\10\377%\40\12\377-&\15\3775-\17\377:1\20\377\77""5\21\377" \
- "A6\22\377C7\22\377\220\207k\377\347\344\324\377\202\347\345\325\377\1" \
- "\347\345\326\377\202\347\345\327\377\202\347\345\330\377\204\347\345" \
- "\331\377\1\347\346\331\377\203\347\346\332\377\2\326\324\304\377VB\25" \
- "\377\202WB\25\377\1XC\25\377\202YC\25\377\12[C\26\377[D\26\377\\D\26" \
- "\377[E\26\377]E\26\377^E\26\377_F\26\377_F\27\377\301\271\242\377\347" \
- "\345\331\377\202\347\345\330\377\202\347\345\327\377\6\347\345\326\377" \
- "\347\345\325\377\347\345\324\377\347\344\324\377\347\344\323\377\347" \
- "\344\322\377\202\347\344\321\377\1\347\344\320\377\202\347\344\317\377" \
- "8\346\343\316\377\346\343\315\377\346\343\314\377\346\343\313\377\346" \
- "\343\312\377\346\343\311\377\224\200V\377gK\27\377eI\27\377bF\26\377" \
- "_C\24\377Z>\22\377V:\21\377P4\20\377K/\16\377F*\14\377B'\13\377>#\12" \
- "\377:\37\11\3779\36\10\377:\40\10\377>$\11\377B&\12\377D*\14\377I.\16" \
- "\377O3\20\377Q7\20\377V;\22\377Z@\24\377[B\25\377_E\26\377_F\27\377_" \
- "E\26\377gP\37\377\342\332\232\377\344\333\232\377\343\333\227\377\343" \
- "\332\224\377\343\332\222\377\343\331\220\377\343\331\215\377\343\331" \
- "\211\377\343\330\204\377\240\220L\377UA\25\377S@\24\377P<\23\377\77""2" \
- "\20\377*%\15\377$\37\13\377\36\32\11\377\30\25\7\377\21\16\5\377\14\12" \
- "\4\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\347\0\0\0\377" \
- "\23\2\2\2\377\25\25\25\377(((\377\15\15\15\377\0\0\0\377\1\1\0\377\5" \
- "\4\1\377\11\10\3\377\17\15\4\377\30\24\6\377\36\32\10\377&\40\13\377" \
- ".'\15\3776-\17\377;1\21\377\77""5\22\377C7\22\377D7\22\377\210~b\377" \
- "\202\347\345\325\377\1\347\345\326\377\202\347\345\327\377\1\347\345" \
- "\330\377\204\347\345\331\377\1\347\346\331\377\202\347\346\332\377\203" \
- "\347\346\333\377\3\345\344\330\377XE\30\377XC\25\377\202YC\25\377\202" \
- "ZC\26\377\11[C\26\377\\D\26\377]E\26\377^E\26\377_F\26\377_F\27\377`" \
- "G\27\377aG\27\377\232\212i\377\202\347\345\331\377\202\347\345\330\377" \
- "\202\347\345\327\377\7\347\345\326\377\347\345\325\377\347\345\324\377" \
- "\347\344\324\377\347\344\323\377\347\344\322\377\347\344\321\377\202" \
- "\347\344\320\377\2\347\344\317\377\347\343\316\377\202\346\343\315\377" \
- "\20\346\343\314\377\346\343\312\377\341\336\302\377oT\"\377hK\27\377" \
- "gJ\27\377cF\26\377`B\24\377[>\22\377W:\21\377Q3\17\377M/\16\377I+\14" \
- "\377C&\13\377A#\11\377=!\10\377\202<\40\10\377$\77#\12\377B'\13\377E" \
- "*\14\377I.\15\377N3\17\377R6\20\377W;\22\377Y>\23\377\\B\24\377_E\26" \
- "\377aG\27\377`G\27\377_F\27\377\304\270}\377\344\333\232\377\343\333" \
- "\230\377\343\332\225\377\343\332\222\377\343\332\221\377\343\331\216" \
- "\377\343\331\211\377\343\331\206\377\311\275n\377WB\25\377UA\25\377S" \
- ">\24\377F6\21\377,'\15\377&!\13\377\40\33\11\377\31\25\7\377\23\20\5" \
- "\377\16\14\4\377\10\7\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0" \
- "\0\377\350\0\0\0\377\1\5\5\5\377\202\0\0\0\377\20\1\1\0\377\5\4\1\377" \
- "\11\10\3\377\21\16\4\377\27\24\6\377\40\34\11\377(!\13\3770(\15\3775" \
- ",\16\377=2\21\377A5\22\377D7\22\377E8\22\377}sT\377\347\345\325\377\347" \
- "\345\326\377\202\347\345\327\377\1\347\345\330\377\204\347\345\331\377" \
- "\202\347\346\332\377\203\347\346\333\377\203\347\346\334\377\4iU,\377" \
- "YC\25\377ZD\25\377ZC\26\377\202ZB\25\377\12\\C\25\377[C\25\377]D\25\377" \
- "^E\26\377`F\26\377aG\27\377bH\27\377cH\27\377iO\40\377\334\331\311\377" \
- "\203\347\345\331\377\1\347\345\330\377\202\347\345\327\377\3\347\345" \
- "\326\377\347\345\325\377\347\345\324\377\202\347\344\323\377\3\347\344" \
- "\322\377\347\344\321\377\347\344\320\377\202\347\344\317\377\5\347\343" \
- "\316\377\346\343\315\377\346\343\314\377\346\343\313\377\263\245\201" \
- "\377\202jL\30\3771hJ\27\377dF\26\377aB\24\377\\=\23\377W9\21\377R4\17" \
- "\377M/\15\377I+\14\377D'\12\377B$\11\377\77\"\10\377>\40\10\377\77!\10" \
- "\377@#\11\377D&\12\377F*\14\377J.\16\377M2\17\377R7\20\377W;\22\377Z" \
- ">\23\377^C\24\377aE\26\377bG\26\377bH\27\377aG\27\377\237\215V\377\344" \
- "\333\233\377\343\333\231\377\343\333\226\377\343\332\223\377\343\332" \
- "\222\377\343\331\217\377\343\331\212\377\343\331\207\377\343\330\202" \
- "\377p]'\377XC\25\377S@\24\377M:\22\377-(\16\377'#\14\377#\36\12\377\33" \
- "\27\10\377\25\22\6\377\17\15\4\377\12\11\3\377\5\4\1\377\1\1\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\353\0\0\0\377\17\1\1\0\377\5\4\1\377\13\11\3" \
- "\377\21\16\5\377\30\24\7\377!\34\11\377)\"\13\3770'\15\3777-\17\377=" \
- "2\21\377B6\22\377E8\22\377F:\23\377shG\377\347\345\326\377\202\347\345" \
- "\327\377\1\347\345\330\377\203\347\345\331\377\2\347\346\331\377\347" \
- "\346\332\377\203\347\346\333\377\203\347\346\334\377\3\314\310\270\377" \
- "\257\246\220\377eQ%\377\202[C\26\377\1[C\25\377\202[B\25\377\13\\B\25" \
- "\377[B\25\377]C\25\377_D\26\377`E\26\377bG\26\377dH\27\377dG\26\377d" \
- "I\27\377\233\211h\377\347\346\331\377\203\347\345\331\377\1\347\345\330" \
- "\377\202\347\345\327\377\3\347\345\326\377\347\345\325\377\347\345\324" \
- "\377\202\347\344\323\377\3\347\344\322\377\347\344\321\377\347\344\320" \
- "\377\202\347\344\317\377\4\346\343\316\377\346\343\315\377\341\335\304" \
- "\377wZ'\377\202lM\30\377\13hI\27\377eF\25\377bC\24\377\\=\22\377W8\20" \
- "\377S4\20\377N/\15\377J+\14\377G(\13\377B#\12\377A\"\11\377\202@\"\11" \
- "\377$A#\11\377C&\12\377G*\14\377M/\16\377P3\16\377T8\20\377Y<\22\377" \
- "[@\23\377^B\25\377aE\25\377cG\26\377dH\27\377cH\27\377\201k7\377\344" \
- "\334\234\377\344\333\231\377\343\333\227\377\343\332\224\377\343\332" \
- "\222\377\343\331\217\377\343\331\214\377\343\331\210\377\343\330\204" \
- "\377\232\210E\377YC\25\377WB\25\377R>\23\377/)\16\377)%\14\377$\37\13" \
- "\377\35\31\10\377\27\24\6\377\21\16\5\377\13\11\3\377\5\4\2\377\2\2\1" \
- "\377\377\0\0\0\377\377\0\0\0\377\353\0\0\0\377\16\1\1\0\377\5\3\1\377" \
- "\13\11\3\377\22\16\5\377\31\25\6\377\"\33\11\377)!\13\3770'\15\3778-" \
- "\17\377\77""3\21\377B6\21\377F:\23\377H;\23\377h[:\377\202\347\345\327" \
- "\377\1\347\345\330\377\203\347\345\331\377\202\347\346\332\377\202\347" \
- "\346\333\377\11\316\311\271\377\260\250\221\377\222\206g\377vf\77\377" \
- "[D\30\377YC\25\377[C\26\377[D\26\377[E\26\377\202[B\25\377\2[B\24\377" \
- "Y@\24\377\202[A\24\377\12\\B\24\377^C\25\377aE\25\377bG\26\377dH\27\377" \
- "eJ\27\377fJ\27\377gK\27\377\302\272\242\377\347\346\331\377\203\347\345" \
- "\331\377\2\347\345\330\377\347\345\327\377\202\347\345\326\377\6\347" \
- "\345\325\377\347\344\324\377\347\344\323\377\347\344\322\377\347\344" \
- "\321\377\347\344\320\377\202\347\344\317\377\3\347\343\316\377\346\343" \
- "\315\377\230\202W\377\202mM\30\377\30kK\27\377iI\26\377eD\25\377aA\23" \
- "\377\\=\22\377W7\20\377T4\17\377O/\16\377L+\14\377H'\13\377D$\12\377" \
- "C#\11\377B\"\11\377B#\11\377C$\12\377F'\13\377J-\15\377N1\16\377S5\20" \
- "\377W:\21\377Z<\22\377^A\23\377`D\25\377cF\26\377\202dH\27\377\30dI\27" \
- "\377fJ\31\377\336\326\227\377\344\333\232\377\343\333\230\377\343\332" \
- "\224\377\343\332\222\377\343\331\220\377\343\331\215\377\343\331\211" \
- "\377\343\330\204\377\302\265f\377[C\26\377YC\25\377U@\24\3776.\17\377" \
- "+&\15\377&!\13\377\37\33\11\377\31\25\7\377\22\17\5\377\15\13\4\377\7" \
- "\6\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\353\0\0\0\377\20\3\2\0" \
- "\377\6\4\1\377\15\12\4\377\23\17\5\377\33\26\6\377\"\33\10\377*!\13\377" \
- "2(\15\3778-\17\377\77""3\21\377D7\22\377H;\23\377I;\23\377^Q+\377\347" \
- "\345\327\377\347\345\330\377\203\347\345\331\377\37\330\327\307\377\271" \
- "\263\234\377\227\214p\377whD\377ZE\31\377VB\25\377WB\25\377XC\25\377" \
- "YC\25\377ZD\25\377[C\26\377\\D\26\377]E\26\377[D\25\377[B\24\377Y@\24" \
- "\377Z@\24\377Z\77\23\377Y\77\23\377Z@\23\377\\@\24\377]C\24\377`C\25" \
- "\377bF\26\377dH\27\377gJ\27\377hJ\27\377hK\27\377pT\"\377\316\307\263" \
- "\377\347\346\331\377\203\347\345\331\377\5\347\345\330\377\347\345\327" \
- "\377\347\345\326\377\347\345\325\377\347\345\324\377\202\347\344\323" \
- "\377\3\347\344\322\377\347\344\321\377\347\344\320\377\202\347\344\317" \
- "\377\1\252\231s\377\202oN\31\3774nM\31\377kJ\27\377hG\26\377eD\25\377" \
- "`@\23\377\\;\21\377X7\21\377S2\16\377O.\15\377L+\14\377H(\12\377F%\12" \
- "\377E%\12\377F&\12\377G'\12\377H(\13\377L,\14\377N/\15\377R3\17\377V" \
- "7\20\377Y:\22\377\\\77\23\377_B\23\377bE\25\377dF\26\377eH\27\377fJ\27" \
- "\377eJ\27\377dH\27\377\303\266y\377\344\333\233\377\343\333\230\377\343" \
- "\332\225\377\343\332\222\377\343\332\221\377\343\331\216\377\343\331" \
- "\211\377\343\331\206\377\341\326\200\377cK\33\377[C\26\377XB\24\377;" \
- "1\21\377,'\16\377&!\13\377!\34\11\377\32\26\7\377\24\21\5\377\16\14\4" \
- "\377\10\7\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\351\0" \
- "\0\0\377\14\1\0\0\377\3\1\0\377\7\4\2\377\16\12\3\377\24\17\5\377\33" \
- "\25\6\377\"\33\11\377+!\13\3772'\15\3778-\17\377\77""3\21\377E8\22\377" \
- "\202I;\23\377\12SD\35\377\347\345\330\377\315\311\267\377\247\240\207" \
- "\377\205yY\377dU.\377R\77\24\377S\77\24\377S@\24\377UA\25\377\202WB\25" \
- "\377\11XC\25\377YC\25\377[C\26\377[D\26\377\\D\26\377[D\26\377[C\25\377" \
- "ZA\24\377Y@\24\377\202X>\23\377\1X=\22\377\202Y>\22\377\7Z>\23\377]A" \
- "\24\377_C\24\377aD\25\377dF\26\377gJ\27\377iK\27\377\202jL\30\377\3r" \
- "V\"\377\305\273\244\377\347\346\331\377\202\347\345\331\377\1\347\345" \
- "\330\377\202\347\345\327\377\11\347\345\326\377\347\345\325\377\347\345" \
- "\324\377\347\344\323\377\347\344\322\377\347\344\321\377\347\344\320" \
- "\377\344\341\313\377\242\213c\377\202qO\30\377\13pN\31\377nM\30\377k" \
- "I\27\377iF\25\377eB\24\377`>\22\377]:\21\377Y6\20\377U2\17\377Q.\15\377" \
- "N,\14\377\203K)\13\377'K*\14\377L+\14\377L,\14\377O/\15\377R3\16\377" \
- "V6\17\377Y9\21\377\\=\22\377_A\24\377aC\25\377cF\26\377eH\26\377gJ\27" \
- "\377hJ\27\377gJ\27\377gK\27\377\251\227^\377\344\333\233\377\343\333" \
- "\231\377\343\333\226\377\343\332\223\377\343\332\221\377\343\331\216" \
- "\377\343\331\212\377\343\331\207\377\343\330\201\377\204o4\377[E\26\377" \
- "ZC\25\377\77""4\20\377-(\16\377($\14\377#\36\12\377\34\30\10\377\25\22" \
- "\6\377\17\15\4\377\12\11\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\350\0\0\0\377\31\1\0\0\377\3\1\0\377\4\2\1\377\10\5\2\377" \
- "\16\11\3\377\24\17\5\377\33\24\6\377\"\32\10\377+!\12\3771&\14\3779-" \
- "\17\377\77""2\20\377E7\21\377I;\23\377K<\24\377L=\24\377VG\40\377N=\24" \
- "\377P>\24\377Q\77\24\377R\77\24\377T\77\24\377TA\24\377UA\25\377WB\25" \
- "\377\202XC\25\377\202YC\25\377\1ZC\25\377\202ZB\25\377\4[B\24\377Y@\24" \
- "\377Y\77\23\377W<\22\377\202V;\22\377\12V;\21\377V:\22\377W;\22\377Y" \
- "=\22\377[>\22\377]\77\23\377_B\24\377cE\26\377gI\27\377jK\30\377\203" \
- "lM\30\377\3lM\27\377\241\215j\377\337\333\314\377\202\347\345\331\377" \
- "\12\347\345\330\377\347\345\327\377\347\345\326\377\347\345\325\377\347" \
- "\345\324\377\347\344\324\377\347\344\323\377\347\344\322\377\315\302" \
- "\246\377\212m>\377\203rP\31\377\17pN\27\377nL\27\377jH\26\377gE\24\377" \
- "dB\23\377`>\21\377]9\21\377X6\20\377U3\16\377S0\15\377P/\15\377O-\14" \
- "\377O,\14\377P.\15\377Q.\15\377\202S1\16\377$U4\17\377W6\20\377Z9\20" \
- "\377]=\22\377`A\23\377bB\24\377eF\25\377fG\26\377hJ\27\377iK\27\377j" \
- "L\30\377hK\27\377hJ\27\377\217yA\377\344\334\234\377\344\333\231\377" \
- "\343\333\226\377\343\332\223\377\343\332\222\377\343\331\217\377\343" \
- "\331\214\377\343\331\207\377\343\330\202\377\251\225N\377^E\26\377\\" \
- "D\26\377D7\21\377/*\16\377)%\14\377$\37\13\377\35\31\10\377\27\24\6\377" \
- "\20\16\4\377\13\11\3\377\5\4\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0" \
- "\377\350\0\0\0\377\17\3\1\0\377\4\2\1\377\5\3\1\377\12\6\2\377\17\12" \
- "\3\377\24\17\5\377\34\24\6\377\"\31\10\377*\40\12\3771%\15\3778+\17\377" \
- "\77""1\20\377D6\21\377I:\23\377L=\24\377\202N=\24\377\14P>\24\377Q\77" \
- "\24\377R\77\24\377T\77\24\377S@\24\377UA\25\377VA\25\377V@\24\377WA\24" \
- "\377XA\24\377XA\25\377X@\24\377\202Y@\24\377\24Y@\23\377X\77\23\377W" \
- "=\23\377V;\22\377T9\21\377S7\20\377R7\20\377S8\20\377U9\20\377V8\21\377" \
- "W9\22\377X:\21\377[=\23\377^\77\23\377aC\25\377fF\26\377jJ\27\377kL\30" \
- "\377mM\30\377nM\30\377\202oN\31\377\13uV\"\377\243\216i\377\310\275\246" \
- "\377\345\343\327\377\347\345\330\377\347\345\327\377\347\345\326\377" \
- "\347\345\325\377\334\330\303\377\273\255\215\377\222wJ\377\204tQ\31\377" \
- "\13sO\31\377pM\27\377mJ\27\377jG\26\377gD\24\377e@\23\377a>\22\377^:" \
- "\21\377\\9\21\377Y6\17\377W4\17\377\202T1\15\377\20U1\16\377U3\16\377" \
- "V4\17\377W5\17\377Y7\17\377[8\20\377]:\21\377_=\22\377a@\23\377cB\24" \
- "\377eD\25\377hH\26\377iJ\27\377kL\27\377kL\30\377kM\30\377\202jL\30\377" \
- "\27|c.\377\344\334\234\377\344\333\231\377\343\333\227\377\343\332\224" \
- "\377\343\332\222\377\343\331\217\377\343\331\214\377\343\331\210\377" \
- "\343\330\204\377\303\264e\377_F\26\377^E\26\377H9\22\3770+\17\377+&\15" \
- "\377%!\13\377\37\33\11\377\30\25\7\377\21\16\5\377\14\12\4\377\6\5\2" \
- "\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\347\0\0\0\377\22\2\1\0\377" \
- "\3\2\0\377\4\3\1\377\7\4\1\377\13\6\2\377\17\12\4\377\24\16\5\377\33" \
- "\23\6\377!\30\7\377)\36\12\3770$\14\3777*\16\377=0\17\377B4\21\377H9" \
- "\22\377L;\23\377N=\24\377P>\24\377\202Q>\24\377\2R>\24\377S>\24\377\202" \
- "R>\24\377\2S\77\23\377S>\23\377\202U>\23\377\33U=\23\377V=\23\377V=\22" \
- "\377U<\23\377V<\22\377U:\22\377T9\21\377T8\20\377Q6\17\377P4\20\377O" \
- "3\17\377P3\16\377R4\20\377R5\17\377T6\20\377V8\20\377X:\21\377]>\22\377" \
- "aA\23\377dD\25\377hH\26\377kK\27\377mM\30\377oN\30\377pO\31\377qO\30" \
- "\377qP\30\377\203rP\31\377\1\206j8\377\202\213n>\377\2\203d1\377uQ\32" \
- "\377\202tQ\31\377\202uR\31\377\36uQ\31\377tQ\31\377rM\30\377pL\27\377" \
- "mI\26\377kG\25\377iE\24\377fB\23\377d\77\22\377a<\21\377_:\20\377^8\20" \
- "\377[6\20\377Z5\20\377Y5\17\377[6\20\377\\9\21\377]:\20\377^:\20\377" \
- "_<\21\377`>\21\377a@\22\377cB\23\377fC\24\377hF\25\377iG\26\377kJ\27" \
- "\377kK\27\377lL\27\377lM\27\377\202lM\30\377\30kM\30\377lO\32\377\342" \
- "\332\232\377\344\333\232\377\343\333\230\377\343\332\224\377\343\332" \
- "\222\377\343\331\220\377\343\331\215\377\343\331\210\377\343\330\204" \
- "\377\336\322{\377bI\31\377_F\27\377M<\23\3771,\17\377,'\15\377&!\13\377" \
- "\40\33\11\377\31\25\7\377\23\20\5\377\15\13\4\377\7\6\2\377\4\3\1\377" \
- "\377\0\0\0\377\377\0\0\0\377\346\0\0\0\377\22\1\0\0\377\3\2\0\377\4\3" \
- "\1\377\6\4\1\377\10\5\1\377\13\7\2\377\17\11\3\377\25\17\5\377\32\23" \
- "\5\377\40\30\7\377(\35\11\377/#\13\3774(\15\377;.\17\377@2\17\377D5\21" \
- "\377H8\22\377L:\22\377\202N<\23\377\14P=\23\377Q<\23\377P<\23\377Q<\23" \
- "\377Q<\22\377R<\22\377R:\22\377Q:\22\377R:\22\377R:\21\377S:\21\377R" \
- "9\21\377\202R8\21\377\5R7\20\377Q5\20\377O4\20\377N3\20\377N1\17\377" \
- "\202M0\16\377\17M/\15\377O1\17\377R3\17\377U5\17\377W6\20\377Z;\21\377" \
- "_>\22\377cB\24\377gE\25\377jI\26\377mK\27\377oN\30\377qO\31\377rP\31" \
- "\377sP\31\377\202tQ\31\377\2uQ\32\377tQ\31\377\204uR\31\377\202vS\32" \
- "\377\16uR\31\377uQ\31\377uQ\30\377tP\30\377rM\27\377qL\27\377oJ\26\377" \
- "mH\25\377kE\24\377iD\23\377fA\23\377d\77\22\377b<\21\377`;\20\377\202" \
- "^9\20\377\22_:\20\377`;\21\377b=\22\377d\77\22\377d@\23\377e@\23\377" \
- "fB\24\377hD\25\377iF\25\377jH\25\377jH\26\377lJ\26\377nK\30\377oN\30" \
- "\377oM\30\377nM\30\377mM\30\377lM\27\377\202lM\30\377\27\330\314\217" \
- "\377\344\333\232\377\343\333\230\377\343\332\225\377\343\332\222\377" \
- "\343\331\220\377\343\331\215\377\343\331\211\377\343\331\206\377\343" \
- "\330~\377|d*\377aG\27\377P=\24\3772-\17\377,'\16\377'#\14\377\"\35\12" \
- "\377\32\26\7\377\24\21\5\377\16\14\4\377\10\7\3\377\4\3\1\377\1\1\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\344\0\0\0\377\26\1\0\0\377\3\1\0\377\4\2" \
- "\1\377\6\4\1\377\10\5\1\377\11\5\1\377\13\6\2\377\20\12\3\377\24\16\4" \
- "\377\32\22\5\377\40\26\7\377&\32\10\377+\40\12\3773'\14\3778+\16\377" \
- "=/\17\377B2\17\377F5\21\377H6\21\377J8\22\377L9\22\377M9\21\377\202M" \
- ":\22\377\10M9\21\377N9\21\377N7\21\377O7\21\377P7\22\377O7\20\377O6\20" \
- "\377O6\21\377\202O5\20\377\10N4\20\377N4\17\377M2\17\377M0\17\377M1\16" \
- "\377K.\15\377J,\14\377J,\15\377\202L-\15\377\16O/\16\377R2\16\377U5\17" \
- "\377Y8\20\377^<\22\377a\77\23\377eB\24\377hF\25\377jG\26\377mK\27\377" \
- "pN\27\377rO\31\377sP\31\377uQ\31\377\202uR\31\377\202vS\32\377\202wR" \
- "\31\377\21wS\31\377wR\30\377xS\30\377wR\30\377wR\31\377vQ\31\377uO\30" \
- "\377sN\30\377rL\27\377qK\27\377oJ\26\377mH\26\377kE\25\377iC\24\377h" \
- "B\23\377gA\23\377e>\21\377\202d>\21\377+f@\22\377gB\23\377hC\23\377i" \
- "D\24\377iE\24\377jF\25\377lH\26\377lI\26\377mJ\27\377nK\27\377oL\27\377" \
- "pN\30\377pN\27\377pO\30\377qO\30\377pO\31\377oN\30\377oN\31\377\205j" \
- "4\377\301\262x\377\344\334\234\377\344\333\233\377\343\333\230\377\343" \
- "\332\225\377\343\332\222\377\343\332\221\377\343\331\215\377\343\331" \
- "\211\377\343\331\206\377\343\330\201\377\221|:\377bH\27\377S@\25\377" \
- "3-\17\377.)\16\377($\14\377#\36\12\377\34\30\10\377\25\22\6\377\17\15" \
- "\4\377\11\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\344" \
- "\0\0\0\377\25\2\1\0\377\4\2\1\377\5\3\1\377\7\4\1\377\11\5\1\377\13\6" \
- "\2\377\15\7\2\377\20\11\3\377\25\15\3\377\31\17\5\377\40\25\6\377$\31" \
- "\7\377)\36\11\3770#\13\3775&\14\377;+\15\377>-\15\377A0\17\377D2\17\377" \
- "F3\20\377G4\17\377\202H5\20\377\5I5\20\377K5\17\377K4\20\377K4\21\377" \
- "K3\20\377\202K2\17\377\33J2\17\377K1\17\377L0\17\377L0\16\377J0\16\377" \
- "K/\16\377L/\16\377K.\15\377J-\15\377J,\15\377I*\14\377H(\13\377I)\13" \
- "\377K+\14\377L,\14\377O.\15\377U2\17\377X7\17\377\\9\20\377`=\21\377" \
- "cA\23\377fC\24\377iF\25\377lI\26\377nJ\27\377pM\27\377rM\30\377\202t" \
- "P\30\377\202vQ\31\377\3wR\30\377xS\31\377xS\32\377\202yS\32\377\35xT" \
- "\32\377xS\32\377wR\30\377wR\31\377vP\30\377uO\30\377tN\27\377sM\27\377" \
- "rK\26\377pI\26\377nG\25\377lE\24\377kD\24\377jC\24\377iB\23\377jC\24" \
- "\377kD\24\377lE\25\377lF\25\377mH\26\377nI\25\377oJ\26\377pL\26\377q" \
- "L\27\377qM\27\377rM\30\377sN\30\377sO\31\377tQ\31\377\202sP\31\377\202" \
- "rP\31\377\33\210l5\377\302\264{\377\344\335\242\377\344\334\240\377\344" \
- "\334\234\377\344\333\233\377\343\333\231\377\343\333\226\377\343\332" \
- "\222\377\343\332\221\377\343\331\216\377\343\331\212\377\343\331\206" \
- "\377\343\330\201\377\251\226N\377dG\26\377U@\25\3774.\20\377/*\16\377" \
- ")%\14\377#\36\12\377\35\31\10\377\26\23\6\377\20\16\4\377\12\11\3\377" \
- "\5\4\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\343\0\0\0\377\25\2\1" \
- "\0\377\3\2\0\377\4\3\1\377\7\4\1\377\11\5\1\377\12\6\2\377\15\7\2\377" \
- "\16\7\2\377\17\10\2\377\24\13\4\377\30\16\5\377\35\22\6\377\"\27\6\377" \
- "(\33\10\377-\37\12\3771$\13\3776&\14\377;)\15\377=+\15\377\77-\16\377" \
- "A/\16\377\202D0\17\377\17E1\17\377G1\17\377G0\17\377F/\17\377F.\16\377" \
- "G.\16\377F.\16\377G-\15\377H.\16\377G-\15\377H-\15\377H,\15\377I,\15" \
- "\377H,\15\377I+\14\377\202H*\14\377\31H)\14\377H(\13\377G'\12\377G&\12" \
- "\377I'\12\377L*\14\377O.\15\377S0\16\377V4\17\377Z7\17\377^:\20\377a" \
- ">\22\377e@\23\377hC\24\377iE\25\377lH\25\377nI\26\377pL\26\377rL\27\377" \
- "tN\27\377uO\30\377vP\31\377wR\30\377xS\32\377yT\31\377\204zT\32\377\13" \
- "yS\31\377yR\30\377xQ\30\377wP\30\377vN\27\377uM\27\377tL\27\377rJ\26" \
- "\377rI\26\377pH\25\377oG\25\377\202nG\25\377\12oG\25\377pI\26\377qJ\26" \
- "\377rL\27\377sM\27\377sN\30\377tN\27\377uO\30\377uP\27\377vQ\30\377\202" \
- "vR\31\377\1vS\32\377\202uR\31\377\36tQ\31\377\224zC\377\307\272\203\377" \
- "\344\335\246\377\344\335\245\377\344\335\242\377\344\334\240\377\344" \
- "\334\235\377\344\333\233\377\343\333\231\377\343\333\226\377\343\332" \
- "\223\377\343\332\221\377\343\331\216\377\343\331\212\377\343\331\207" \
- "\377\343\330\201\377\275\254\\\377dH\27\377XC\25\3775/\17\3770+\17\377" \
- "*%\15\377$\37\13\377\36\32\11\377\30\25\7\377\21\16\5\377\13\11\3\377" \
- "\5\4\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\342\0\0\0\377\32\1\0" \
- "\0\377\3\1\0\377\4\3\1\377\6\4\1\377\10\5\1\377\12\6\2\377\14\7\2\377" \
- "\15\7\2\377\16\10\2\377\21\11\3\377\24\13\3\377\30\16\4\377\33\21\5\377" \
- "!\25\6\377&\31\7\377*\34\10\377.\40\11\3772#\13\3776%\14\377:(\14\377" \
- "<)\14\377=+\16\377\77,\16\377@,\15\377A-\15\377B+\16\377\202B+\15\377" \
- "\3C+\15\377C*\15\377D*\15\377\203D*\14\377\37D)\14\377E)\14\377E(\13" \
- "\377F)\13\377E'\13\377F'\13\377G'\13\377F'\12\377F&\12\377F%\12\377G" \
- "%\12\377J'\12\377L)\13\377N,\14\377R0\15\377U1\16\377X5\17\377]7\20\377" \
- "_;\21\377a=\21\377e@\22\377hB\23\377iD\24\377lF\24\377nH\26\377qJ\26" \
- "\377rM\27\377tN\27\377vP\27\377wQ\31\377yR\30\377\202{T\32\377\202|U" \
- "\31\377\202|T\31\377\10{S\32\377{S\31\377zR\31\377zQ\31\377xP\30\377" \
- "wO\30\377vM\27\377uM\27\377\203sJ\27\377.tK\27\377tL\27\377uM\27\377" \
- "uN\27\377wO\27\377wP\27\377wQ\31\377yR\30\377yS\31\377yT\31\377yS\32" \
- "\377yT\32\377xS\31\377wS\31\377~[\"\377\246\217X\377\324\312\227\377" \
- "\345\336\253\377\344\336\250\377\344\335\246\377\344\335\245\377\344" \
- "\335\243\377\344\334\240\377\344\334\235\377\344\334\234\377\343\333" \
- "\231\377\343\333\226\377\343\332\223\377\343\332\222\377\343\331\216" \
- "\377\343\331\212\377\343\331\207\377\343\330\202\377\317\301k\377fJ\27" \
- "\377ZC\26\37760\20\3771,\17\377+&\15\377%!\13\377\37\33\11\377\31\25" \
- "\7\377\21\16\5\377\14\12\4\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377" \
- "\0\0\0\377\342\0\0\0\377\30\2\1\0\377\4\2\1\377\5\3\1\377\10\5\1\377" \
- "\11\5\1\377\13\6\2\377\15\7\2\377\16\10\2\377\20\11\2\377\22\11\3\377" \
- "\25\13\3\377\26\15\3\377\33\20\5\377\37\23\5\377#\26\6\377(\32\7\377" \
- ",\35\11\3770\37\11\3772\"\12\3775#\12\3778%\13\377:&\14\377<'\14\377" \
- "<'\13\377\202='\14\377\16>'\14\377\77&\13\377\77'\14\377@'\13\377@&\13" \
- "\377A&\13\377A&\12\377B'\13\377B&\13\377D&\12\377C&\12\377C%\13\377E" \
- "&\12\377E%\12\377\202F%\12\377\31G%\11\377H%\12\377I&\12\377J'\12\377" \
- "K(\12\377O+\13\377R.\15\377T/\15\377X3\16\377[5\17\377]8\17\377`:\21" \
- "\377c<\21\377f\77\22\377hA\23\377jC\24\377lE\24\377oH\25\377sK\26\377" \
- "tL\27\377vN\27\377yQ\30\377{R\32\377|T\31\377}U\32\377\206|T\32\377\202" \
- "|S\31\377\4{R\31\377zQ\30\377yO\27\377wO\30\377\202wN\30\377\5xO\30\377" \
- "xP\27\377yQ\31\377zR\31\377{S\31\377\202|T\31\377\202|U\31\377&}V\32" \
- "\377|V\31\377{U\32\377zT\32\377\222t<\377\276\253y\377\341\332\253\377" \
- "\345\337\257\377\345\337\255\377\345\336\253\377\344\336\251\377\344" \
- "\335\246\377\344\335\245\377\344\335\243\377\344\334\240\377\344\334" \
- "\235\377\344\334\234\377\344\333\231\377\343\333\226\377\343\332\223" \
- "\377\343\332\222\377\343\331\217\377\343\331\212\377\343\331\207\377" \
- "\343\330\202\377\336\322y\377gJ\27\377[C\26\37760\20\3771,\17\377,'\15" \
- "\377&!\13\377\40\33\11\377\31\25\7\377\22\17\5\377\14\12\4\377\7\6\2" \
- "\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\341\0\0\0\377\33\2\1\0\377" \
- "\3\2\0\377\4\3\1\377\7\4\1\377\11\5\1\377\12\6\2\377\15\7\2\377\16\7" \
- "\2\377\17\10\2\377\22\11\3\377\24\12\3\377\25\13\3\377\27\15\4\377\32" \
- "\17\4\377\35\21\5\377!\23\5\377&\27\6\377)\32\7\377-\34\10\3770\35\10" \
- "\3772\37\12\3775!\12\3777#\12\3778#\12\377:$\13\377:$\12\377<$\12\377" \
- "\202;#\12\377'<#\12\377=\"\12\377>#\11\377>$\11\377\77$\12\377@#\12\377" \
- "B$\11\377A$\11\377B$\12\377B#\12\377D$\11\377E%\11\377E$\11\377G%\12" \
- "\377I&\12\377J&\12\377J'\12\377K(\12\377M)\13\377O*\13\377R,\14\377S" \
- "-\14\377V0\15\377Z3\16\377\\5\16\377^7\17\377a9\20\377d<\21\377f=\21" \
- "\377h@\22\377lC\23\377oG\24\377rJ\26\377uL\27\377wO\30\377yQ\31\377|" \
- "S\31\377|T\32\377}T\31\377\203~V\31\377\202\177V\32\377\3~T\31\377}T" \
- "\31\377}S\31\377\202|S\31\377\1|R\31\377\202|R\27\377\3|S\31\377}S\31" \
- "\377}T\31\377\202~V\31\377\202~V\33\377)\177W\33\377~V\33\377~V\32\377" \
- "}U\32\377\210d*\377\261\233g\377\327\314\240\377\345\340\264\377\345" \
- "\340\262\377\345\337\261\377\345\337\257\377\345\337\255\377\345\336" \
- "\253\377\344\336\251\377\344\336\247\377\344\335\245\377\344\335\243" \
- "\377\344\334\240\377\344\334\235\377\344\334\234\377\344\333\231\377" \
- "\343\333\227\377\343\332\223\377\343\332\222\377\343\331\217\377\343" \
- "\331\214\377\343\331\207\377\343\330\202\377\343\327}\377rV\36\377ZD" \
- "\25\37760\20\3772-\17\377,'\16\377&!\13\377!\34\11\377\31\25\7\377\23" \
- "\20\5\377\15\13\4\377\7\6\2\377\4\3\1\377\377\0\0\0\377\377\0\0\0\377" \
- "\340\0\0\0\377\37\1\0\0\377\3\1\0\377\4\2\1\377\6\4\1\377\10\5\1\377" \
- "\12\6\2\377\14\7\2\377\15\7\2\377\17\10\2\377\21\11\3\377\23\12\3\377" \
- "\25\13\3\377\26\14\3\377\30\15\4\377\33\16\4\377\35\20\4\377!\21\4\377" \
- "#\24\5\377(\30\6\377*\30\6\377-\32\10\377/\34\10\3771\35\10\3773\36\10" \
- "\3775\37\11\3776\37\11\3777\40\11\3778\40\10\3778\40\11\3779\40\11\377" \
- ";\40\11\377\202;!\10\377\4<!\11\377>\"\11\377\77!\10\377@\"\10\377\202" \
- "B#\11\377$D$\11\377E%\11\377G%\11\377I&\12\377J'\12\377J(\12\377K(\12" \
- "\377L(\12\377N)\13\377O)\13\377P*\13\377Q+\13\377S,\13\377V.\14\377X" \
- "1\15\377[4\16\377]6\17\377_7\17\377b9\20\377e;\21\377g>\21\377kA\23\377" \
- "oF\24\377qH\25\377uL\27\377xN\30\377{R\30\377|S\31\377}T\31\377\177V" \
- "\32\377\200V\31\377\201V\31\377\201W\33\377\201V\31\377\201V\33\377\200" \
- "V\33\377\202\200V\32\377\1\177V\31\377\203~T\32\377\5\177V\31\377\200" \
- "V\33\377\201V\31\377\201W\33\377\202Y\32\377\202\202X\33\377*\201X\33" \
- "\377\200X\32\377\210c(\377\252\220\\\377\313\277\224\377\345\341\271" \
- "\377\345\340\267\377\345\340\266\377\345\340\264\377\345\340\262\377" \
- "\345\337\261\377\345\337\257\377\345\337\255\377\345\336\253\377\344" \
- "\336\251\377\344\336\247\377\344\335\245\377\344\335\243\377\344\334" \
- "\240\377\344\334\236\377\344\334\234\377\344\333\231\377\343\333\227" \
- "\377\343\332\224\377\343\332\222\377\343\331\217\377\343\331\214\377" \
- "\343\331\207\377\343\330\202\377\343\327}\377\201e)\377[C\26\37760\20" \
- "\3772-\17\377,'\16\377'#\14\377!\34\11\377\32\26\7\377\24\21\5\377\16" \
- "\14\4\377\10\7\3\377\4\3\1\377\377\0\0\0\377\377\0\0\0\377\340\0\0\0" \
- "\377*\2\1\0\377\4\2\1\377\5\3\1\377\7\4\1\377\11\5\1\377\13\6\2\377\15" \
- "\7\2\377\16\10\2\377\20\11\2\377\23\12\3\377\25\13\3\377\25\14\3\377" \
- "\30\15\4\377\32\16\4\377\33\17\4\377\36\20\4\377\37\20\5\377#\23\5\377" \
- "%\24\5\377(\26\6\377*\30\6\377-\32\7\3770\32\7\3772\34\7\3772\34\10\377" \
- "4\35\10\3775\35\7\3775\35\10\3777\36\10\3778\36\10\3779\36\10\3779\37" \
- "\7\377;\40\10\377=!\10\377\77!\10\377@\"\11\377B#\12\377D$\12\377F%\12" \
- "\377G'\12\377I(\12\377K)\13\377\202L*\13\377\33N+\13\377P,\14\377P+\14" \
- "\377Q+\13\377R,\13\377R+\13\377S+\13\377T-\14\377V-\14\377X/\15\377Z" \
- "1\15\377\\3\16\377_5\16\377b6\20\377e;\21\377g=\21\377kA\22\377oE\24" \
- "\377sI\25\377vM\26\377yN\27\377|Q\27\377}S\31\377\177V\31\377\200V\33" \
- "\377\201W\32\377\202Y\32\377\202\203Y\32\377\203\203Y\33\377\203\202" \
- "W\32\377\1\203Y\33\377\202\204Y\33\377\1\203Y\33\377\202\204Y\33\377" \
- "\202\203Y\33\377\4\212c*\377\250\215[\377\314\273\221\377\346\342\275" \
- "\377\202\345\341\273\377&\345\341\271\377\345\340\267\377\345\340\266" \
- "\377\345\340\264\377\345\340\262\377\345\337\261\377\345\337\257\377" \
- "\345\337\255\377\345\336\253\377\344\336\251\377\344\336\247\377\344" \
- "\335\245\377\344\335\243\377\344\334\240\377\344\334\236\377\344\334" \
- "\234\377\344\333\231\377\343\333\227\377\343\332\224\377\343\332\222" \
- "\377\343\331\217\377\343\331\214\377\343\331\207\377\343\330\202\377" \
- "\343\327}\377\214r2\377YC\25\37760\20\3773-\17\377-(\16\377'#\14\377" \
- "\"\35\12\377\33\27\10\377\24\21\5\377\16\14\4\377\10\7\3\377\4\3\1\377" \
- "\1\1\0\377\377\0\0\0\377\377\0\0\0\377\306\0\0\0\377\206\1\1\0\377\222" \
- "\0\0\0\3775\1\0\0\377\3\2\0\377\4\3\1\377\6\4\1\377\11\5\1\377\12\6\2" \
- "\377\15\7\2\377\16\7\2\377\17\10\2\377\22\11\3\377\24\12\3\377\25\14" \
- "\3\377\27\15\4\377\31\16\4\377\33\17\4\377\35\20\4\377\36\20\5\377!\21" \
- "\4\377#\22\5\377%\23\5\377(\25\5\377)\27\6\377,\30\6\377.\31\6\377/\32" \
- "\7\3770\32\7\3772\33\7\3774\34\10\3776\34\10\3778\35\10\3779\36\10\377" \
- ":\40\10\377<!\11\377\77#\11\377A#\11\377C%\11\377D%\13\377F&\13\377I" \
- "(\13\377K*\13\377L+\14\377M+\14\377P,\14\377Q-\14\377R.\14\377S/\15\377" \
- "T/\15\377T.\15\377S-\14\377U.\14\377T-\13\377V-\14\377U-\14\377\202X" \
- ".\14\377\17[1\14\377\\1\16\377^3\16\377`5\17\377d:\20\377i=\20\377lA" \
- "\22\377pE\23\377sH\24\377wL\26\377zN\30\377|R\31\377\177S\31\377\201" \
- "V\32\377\202W\32\377\202\204Y\33\377\203\205Y\32\377\204\206Y\32\377" \
- "\1\205Z\33\377\203\206Z\33\377\202\205Z\33\377\7\221j/\377\261\230h\377" \
- "\315\300\232\377\346\342\302\377\346\342\300\377\346\342\277\377\346" \
- "\342\275\377\202\345\341\273\377&\345\341\271\377\345\340\267\377\345" \
- "\340\266\377\345\340\264\377\345\340\262\377\345\337\261\377\345\337" \
- "\257\377\345\337\255\377\345\336\253\377\344\336\251\377\344\336\247" \
- "\377\344\335\245\377\344\335\243\377\344\334\240\377\344\334\236\377" \
- "\344\334\234\377\344\333\231\377\343\333\227\377\343\332\224\377\343" \
- "\332\222\377\343\331\217\377\343\331\214\377\343\331\207\377\343\330" \
- "\202\377\343\327}\377\225|8\377VB\25\37771\20\3773-\17\377-(\16\377(" \
- "$\14\377#\36\12\377\33\27\10\377\25\22\6\377\17\15\5\377\10\7\3\377\5" \
- "\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\303\0\0\0\377\3\1\1\0" \
- "\377\2\2\1\377\3\3\1\377\202\4\3\1\377\203\5\4\1\377\1\4\3\1\377\202" \
- "\3\3\1\377\202\1\1\0\377\216\0\0\0\377/\2\1\0\377\4\2\1\377\5\3\1\377" \
- "\10\5\1\377\11\5\1\377\14\7\2\377\15\7\2\377\17\10\2\377\21\11\3\377" \
- "\23\12\3\377\25\13\3\377\26\14\3\377\30\15\4\377\33\16\4\377\34\17\4" \
- "\377\36\20\4\377!\21\4\377!\22\5\377%\23\5\377(\25\5\377(\26\5\377+\30" \
- "\6\377-\31\6\377/\32\7\3770\32\7\3772\33\7\3775\35\7\3776\36\10\377:" \
- "\40\10\377;!\11\377<\"\11\377\77$\12\377B&\12\377C%\12\377D'\12\377G" \
- "(\14\377J*\14\377L,\14\377M-\14\377P.\15\377R1\16\377S0\16\377T0\16\377" \
- "U1\16\377W2\17\377X3\16\377W2\16\377\202Y2\15\377\26Y1\16\377X0\15\377" \
- "X/\15\377Y/\14\377Y.\14\377[/\15\377\\1\15\377[0\15\377^2\15\377b5\16" \
- "\377e8\16\377i;\20\377mA\21\377pD\24\377tI\25\377xL\26\377|P\30\377~" \
- "S\31\377\201V\32\377\203X\33\377\205Y\32\377\206Y\32\377\205\206[\33" \
- "\377\1\207\\\33\377\205\210\\\34\377\3\237}G\377\270\241u\377\326\313" \
- "\250\377\202\346\343\305\377\5\346\343\303\377\346\342\302\377\346\342" \
- "\300\377\346\342\277\377\346\342\275\377\202\345\341\273\377&\345\341" \
- "\271\377\345\340\267\377\345\340\266\377\345\340\264\377\345\340\262" \
- "\377\345\337\261\377\345\337\257\377\345\337\255\377\345\336\253\377" \
- "\344\336\251\377\344\336\247\377\344\335\245\377\344\335\243\377\344" \
- "\334\240\377\344\334\236\377\344\334\234\377\344\333\231\377\343\333" \
- "\227\377\343\332\224\377\343\332\222\377\343\331\217\377\343\331\214" \
- "\377\343\331\207\377\343\330\202\377\343\327}\377\234\204>\377T\77\24" \
- "\37771\20\3774.\20\377.)\16\377($\14\377#\36\12\377\33\27\10\377\25\22" \
- "\6\377\17\15\5\377\11\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\302\0\0\0\377\5\1\1\0\377\3\3\1\377\5\4\1\377\5\4\2\377\7" \
- "\6\2\377\205\10\7\3\377\5\7\6\2\377\6\5\2\377\5\4\2\377\5\4\1\377\4\3" \
- "\1\377\202\3\3\1\377\202\2\2\1\377\210\1\1\0\3770\2\1\0\377\4\3\0\377" \
- "\5\3\1\377\10\5\1\377\12\6\1\377\14\7\2\377\15\7\2\377\17\11\2\377\21" \
- "\12\2\377\23\12\3\377\26\15\4\377\27\16\4\377\32\17\5\377\35\20\5\377" \
- "\36\21\5\377!\21\4\377\"\22\6\377$\24\5\377&\25\6\377(\26\6\377*\30\6" \
- "\377-\32\6\3770\34\7\3771\33\10\3773\34\10\3776\37\10\3778\40\10\377" \
- ":\"\11\377;\"\11\377>#\12\377@&\12\377C'\13\377D(\13\377G)\14\377I+\14" \
- "\377K-\15\377M-\15\377O/\16\377Q0\16\377T2\17\377V4\17\377V4\16\377Y" \
- "6\17\377Z7\20\377[7\20\377]7\17\377]8\17\377^8\17\377\203]6\17\377\25" \
- "\\4\16\377\\3\16\377\\2\15\377\\1\15\377[0\15\377^1\15\377^2\15\377a" \
- "3\15\377b5\16\377e8\20\377i=\21\377nA\22\377rE\23\377wI\25\377{M\26\377" \
- "~Q\27\377\201U\31\377\204X\32\377\204Y\33\377\207[\33\377\207\\\33\377" \
- "\202\210\\\33\377\204\211\\\34\377\10\212]\34\377\223i-\377\252\214Z" \
- "\377\310\270\222\377\340\332\277\377\346\343\311\377\346\343\310\377" \
- "\346\343\307\377\202\346\343\305\377\5\346\343\303\377\346\342\302\377" \
- "\346\342\300\377\346\342\277\377\346\342\275\377\202\345\341\273\377" \
- "&\345\341\271\377\345\340\267\377\345\340\266\377\345\340\264\377\345" \
- "\340\262\377\345\337\261\377\345\337\257\377\345\337\255\377\345\336" \
- "\253\377\344\336\251\377\344\336\247\377\344\335\245\377\344\335\243" \
- "\377\344\334\240\377\344\334\236\377\344\334\234\377\344\333\231\377" \
- "\343\333\227\377\343\332\224\377\343\332\222\377\343\331\217\377\343" \
- "\331\214\377\343\331\207\377\343\330\202\377\343\327}\377\244\214C\377" \
- "P>\24\37771\20\3774.\20\377.)\16\377)%\14\377#\36\12\377\34\30\10\377" \
- "\26\23\6\377\17\15\4\377\11\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\301\0\0\0\377\6\2\2\1\377\4\3\1\377\6\5\2\377\10\7\3\377" \
- "\12\11\3\377\14\12\4\377\202\15\13\4\377\202\16\14\4\377\10\15\13\4\377" \
- "\14\12\4\377\13\11\3\377\12\11\3\377\11\10\3\377\10\7\3\377\7\6\2\377" \
- "\6\5\2\377\202\5\4\2\377\203\5\4\1\377\205\4\3\1\377G\6\3\1\377\7\4\2" \
- "\377\12\6\2\377\14\7\2\377\15\10\3\377\20\12\3\377\23\13\3\377\24\14" \
- "\3\377\26\15\4\377\30\16\4\377\31\17\5\377\34\21\6\377\36\22\5\377\37" \
- "\23\5\377\"\25\6\377$\26\6\377(\27\6\377)\27\6\377+\31\6\377-\32\7\377" \
- "0\34\10\3772\35\10\3775\36\11\3777\40\11\3779\"\11\377;#\11\377=$\13" \
- "\377\77%\13\377B'\13\377E)\13\377E*\15\377H,\15\377K-\15\377L/\15\377" \
- "N/\16\377P1\16\377T3\17\377U5\17\377W6\20\377Y8\20\377[9\20\377]:\20" \
- "\377_;\21\377`;\21\377a<\21\377b=\21\377b<\21\377c=\21\377c<\21\377b" \
- ":\21\377b9\20\377b8\16\377a5\20\377_5\17\377^4\16\377_3\15\377_2\15\377" \
- "a2\15\377b4\16\377e7\17\377i9\17\377m>\21\377pA\22\377uF\23\377yK\25" \
- "\377|O\27\377\177R\30\377\203V\32\377\205Y\33\377\210[\33\377\211\\\34" \
- "\377\204\212]\34\377\13\217b#\377\246\204P\377\275\247}\377\330\316\261" \
- "\377\346\343\316\377\346\343\315\377\346\343\313\377\346\343\312\377" \
- "\346\343\311\377\346\343\310\377\346\343\306\377\202\346\343\305\377" \
- "\5\346\343\303\377\346\342\302\377\346\342\300\377\346\342\277\377\346" \
- "\341\275\377\202\345\341\273\377&\345\341\271\377\345\340\267\377\345" \
- "\340\266\377\345\340\264\377\345\340\262\377\345\337\261\377\345\337" \
- "\257\377\345\337\255\377\345\336\253\377\344\336\251\377\344\336\247" \
- "\377\344\335\245\377\344\335\243\377\344\334\240\377\344\334\236\377" \
- "\344\334\234\377\344\333\231\377\343\333\227\377\343\332\223\377\343" \
- "\332\222\377\343\331\217\377\343\331\214\377\343\331\207\377\343\330" \
- "\202\377\343\327}\377\246\216B\377L=\24\37771\20\3774.\20\377.)\16\377" \
- ")%\14\377#\36\12\377\34\30\10\377\26\23\6\377\17\15\4\377\11\10\3\377" \
- "\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\300\0\0\0\377\10\3\3" \
- "\1\377\5\4\1\377\7\6\2\377\12\11\3\377\15\13\4\377\17\15\4\377\21\16" \
- "\5\377\22\17\5\377\204\23\20\5\377\10\22\17\5\377\21\16\5\377\20\16\4" \
- "\377\17\15\5\377\16\14\4\377\15\13\4\377\14\12\4\377\13\11\3\377\202" \
- "\12\11\3\377\203\11\10\3\377\203\10\7\3\377-\11\7\3\377\13\11\3\377\15" \
- "\12\4\377\17\13\4\377\21\14\4\377\22\15\5\377\25\16\5\377\26\17\5\377" \
- "\30\20\5\377\33\21\5\377\36\23\6\377\37\24\5\377!\25\6\377#\27\6\377" \
- "%\30\6\377(\31\7\377*\32\10\377-\34\10\3770\35\10\3772\37\11\3773\40" \
- "\11\3777\"\12\3779#\12\377:%\13\377<%\13\377\77&\13\377@(\14\377C*\14" \
- "\377F+\15\377H-\15\377J/\16\377L0\16\377N1\17\377O3\17\377S4\20\377U" \
- "6\17\377W6\20\377X8\21\377[:\21\377];\21\377_=\21\377`>\22\377c@\23\377" \
- "e@\23\377fA\23\377\203hB\23\377\36hA\23\377g\77\22\377g>\21\377g=\21" \
- "\377f<\20\377d:\21\377c7\20\377c7\17\377b4\16\377b4\15\377b4\16\377e" \
- "6\17\377g8\16\377l<\20\377o@\21\377rD\22\377vH\25\377zL\26\377\177Q\30" \
- "\377\203U\32\377\207Y\32\377\211\\\33\377\212]\34\377\213^\34\377\216" \
- "b!\377\243\200L\377\272\242x\377\321\303\245\377\346\342\317\377\347" \
- "\344\320\377\202\347\344\317\377\7\346\343\316\377\346\343\314\377\346" \
- "\343\313\377\346\343\312\377\346\343\311\377\346\343\307\377\346\343" \
- "\306\377\202\346\343\305\377\5\346\342\303\377\346\342\302\377\346\342" \
- "\300\377\346\342\276\377\346\341\275\377\202\345\341\273\377&\345\341" \
- "\271\377\345\340\267\377\345\340\266\377\345\340\264\377\345\340\262" \
- "\377\345\337\261\377\345\337\257\377\345\337\255\377\345\336\253\377" \
- "\344\336\251\377\344\336\247\377\344\335\245\377\344\335\243\377\344" \
- "\334\240\377\344\334\235\377\344\334\234\377\344\333\231\377\343\333" \
- "\227\377\343\332\223\377\343\332\222\377\343\331\217\377\343\331\212" \
- "\377\343\331\207\377\343\330\202\377\343\327}\377\246\217B\377G9\23\377" \
- "71\20\3774.\20\377/*\16\377)%\14\377#\36\12\377\34\30\10\377\26\23\6" \
- "\377\17\15\4\377\11\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0" \
- "\0\0\377\277\0\0\0\377\11\2\2\1\377\5\4\1\377\10\7\3\377\13\11\3\377" \
- "\17\15\5\377\21\16\5\377\24\21\5\377\27\24\6\377\30\25\7\377\205\31\25" \
- "\7\377\10\30\25\7\377\27\24\6\377\25\22\6\377\24\21\5\377\23\20\5\377" \
- "\22\17\5\377\21\16\5\377\20\16\4\377\203\17\15\4\377\202\17\15\5\377" \
- "\202\16\14\4\3770\20\14\4\377\21\15\5\377\23\17\5\377\25\20\5\377\27" \
- "\22\6\377\31\22\6\377\34\23\6\377\35\24\6\377\40\26\7\377!\26\7\377$" \
- "\31\7\377&\33\10\377)\34\10\377*\34\10\377+\35\10\3770\37\11\3770\40" \
- "\11\3773!\12\3775\"\13\3777#\13\377:&\13\377<'\13\377>'\14\377A*\15\377" \
- "C,\15\377E-\15\377G-\15\377I/\16\377L0\17\377M2\17\377P4\20\377R5\20" \
- "\377T7\20\377V9\22\377X9\21\377[;\21\377]<\21\377_>\22\377`>\23\377b" \
- "@\23\377eC\23\377gC\24\377iE\24\377iE\25\377kF\25\377mG\25\377nG\25\377" \
- "mG\25\377\202mE\24\377\7mC\24\377kA\23\377i\77\22\377i=\20\377f:\17\377" \
- "f8\17\377e6\17\377\202e5\16\377\23h8\16\377j9\20\377m>\21\377p@\22\377" \
- "vE\23\377yI\25\377~N\27\377\202S\30\377\205W\31\377\211[\33\377\213^" \
- "\34\377\214^\34\377\223h*\377\345\341\317\377\347\345\324\377\347\344" \
- "\323\377\347\344\322\377\347\344\321\377\347\344\320\377\202\347\344" \
- "\317\3776\346\343\315\377\346\343\314\377\346\343\313\377\346\343\312" \
- "\377\346\343\311\377\346\343\307\377\346\343\306\377\346\343\305\377" \
- "\346\343\304\377\346\342\303\377\346\342\302\377\346\342\300\377\346" \
- "\342\276\377\346\341\275\377\345\341\273\377\345\341\272\377\345\341" \
- "\271\377\345\340\267\377\345\340\266\377\345\340\263\377\345\340\262" \
- "\377\345\337\261\377\345\337\256\377\345\337\255\377\345\336\253\377" \
- "\344\336\251\377\344\335\246\377\344\335\245\377\344\335\243\377\337" \
- "\325\230\377\275\247i\377\344\334\234\377\344\333\231\377\343\333\226" \
- "\377\343\332\223\377\343\332\222\377\343\331\217\377\343\331\212\377" \
- "\343\331\207\377\343\330\202\377\343\327{\377\250\220D\377@6\21\3777" \
- "1\20\3774.\20\377/*\16\377)%\14\377#\36\12\377\34\30\10\377\26\23\6\377" \
- "\17\15\4\377\11\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0" \
- "\377\276\0\0\0\377\13\1\1\0\377\5\4\1\377\7\6\2\377\13\11\3\377\17\15" \
- "\4\377\23\20\5\377\27\24\6\377\31\25\7\377\34\30\10\377\36\32\11\377" \
- "\40\33\11\377\202!\34\11\377\6\40\33\11\377\37\33\11\377\36\32\11\377" \
- "\35\31\10\377\33\27\10\377\32\26\7\377\202\31\25\7\377\1\30\25\7\377" \
- "\202\27\24\6\377\202\26\23\6\377\203\25\22\6\377\6\26\22\6\377\26\23" \
- "\6\377\30\24\6\377\32\25\6\377\35\26\7\377\37\27\7\377\202!\31\7\377" \
- "\77$\32\10\377'\34\11\377)\35\11\377*\36\11\377,\37\12\377.\40\12\377" \
- "1\"\12\3772#\13\3775$\13\3777&\14\377:'\14\377=)\15\377=*\15\377@+\15" \
- "\377D-\16\377E.\16\377F.\16\377I1\16\377K2\17\377N3\20\377P6\17\377R" \
- "7\20\377T9\21\377V:\21\377W:\21\377Z<\22\377\\=\22\377^\77\23\377`A\23" \
- "\377bA\24\377dC\24\377fD\24\377hF\25\377iG\26\377lH\26\377mI\26\377o" \
- "K\26\377qL\26\377sK\27\377sM\27\377sL\27\377rJ\26\377rI\26\377qG\25\377" \
- "pE\24\377nD\23\377l@\21\377j>\21\377h;\20\377h9\17\377g8\16\377h7\15" \
- "\377i8\17\377l:\20\377o\77\21\377tB\22\377xG\24\377{K\25\377\200P\27" \
- "\377\204T\31\377\210X\32\377\213\\\34\377\216_\35\377\202\217_\34\377" \
- ">\342\337\314\377\347\344\324\377\347\344\323\377\347\344\322\377\347" \
- "\344\321\377\347\344\320\377\347\344\317\377\347\343\316\377\346\343" \
- "\315\377\346\343\314\377\346\343\313\377\346\343\312\377\346\343\311" \
- "\377\346\343\307\377\346\343\306\377\346\343\305\377\346\343\304\377" \
- "\346\342\303\377\346\342\301\377\346\342\300\377\346\342\276\377\346" \
- "\341\275\377\345\341\273\377\345\341\272\377\345\341\271\377\345\340" \
- "\267\377\345\340\265\377\345\340\263\377\345\340\262\377\345\337\260" \
- "\377\345\337\256\377\345\337\255\377\345\336\253\377\344\336\250\377" \
- "\344\335\246\377\344\335\245\377\315\276\203\377\214h+\377\245\212L\377" \
- "\344\334\234\377\343\333\231\377\343\333\226\377\343\332\223\377\343" \
- "\332\222\377\343\331\216\377\343\331\212\377\343\331\207\377\343\330" \
- "\201\377\343\327{\377\252\222F\377:2\21\37771\20\3774.\20\377/*\16\377" \
- ")%\14\377#\36\12\377\34\30\10\377\26\23\6\377\17\15\4\377\11\10\3\377" \
- "\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\275\0\0\0\377\13\1\1" \
- "\0\377\3\3\1\377\6\5\2\377\13\11\3\377\17\15\4\377\23\20\5\377\30\25" \
- "\7\377\33\27\10\377\37\33\11\377#\36\12\377$\37\13\377\205&!\13\377\1" \
- "$\37\13\377\202#\36\12\377\4\"\35\12\377\40\33\11\377\37\33\11\377\36" \
- "\32\11\377\202\35\31\10\377\202\34\30\10\377\203\33\27\10\3770\35\31" \
- "\10\377\36\32\11\377!\34\11\377\"\33\11\377#\34\11\377%\35\11\377(\36" \
- "\11\377)\37\11\377+\40\13\377-\"\13\377/#\13\3771%\14\3773%\14\3775'" \
- "\14\3778'\14\377;)\15\377<+\15\377=+\15\377A.\17\377C/\17\377D0\17\377" \
- "G1\16\377H2\17\377L4\17\377N5\20\377O6\21\377Q7\21\377T8\21\377V:\22" \
- "\377X<\22\377Z>\22\377\\\77\23\377]\77\23\377`B\24\377bB\24\377cD\24" \
- "\377eD\25\377hF\26\377jH\26\377kI\26\377mK\27\377pK\27\377pM\27\377s" \
- "M\30\377tO\30\377uO\31\377wQ\30\377xQ\31\377\202xP\30\377\24uM\27\377" \
- "uK\26\377sI\25\377sF\24\377oC\23\377nA\22\377m>\22\377k;\17\377j9\17" \
- "\377h8\17\377l9\17\377o;\20\377q\77\21\377wD\22\377yG\24\377~L\26\377" \
- "\202Q\30\377\205U\32\377\212Y\32\377\216]\33\377\203\217_\34\377>\326" \
- "\312\256\377\347\344\324\377\347\344\323\377\347\344\322\377\347\344" \
- "\321\377\347\344\320\377\347\344\317\377\347\343\316\377\346\343\315" \
- "\377\346\343\314\377\346\343\313\377\346\343\312\377\346\343\310\377" \
- "\346\343\307\377\346\343\306\377\346\343\305\377\346\343\304\377\346" \
- "\342\302\377\346\342\301\377\346\342\300\377\346\342\276\377\346\341" \
- "\274\377\345\341\273\377\345\341\272\377\345\341\270\377\345\340\267" \
- "\377\345\340\265\377\345\340\263\377\345\337\261\377\345\337\260\377" \
- "\345\337\256\377\345\337\255\377\344\336\252\377\344\336\250\377\340" \
- "\327\240\377\262\230\\\377\203Z\35\377\202Y\32\377\256\224U\377\344\333" \
- "\233\377\343\333\231\377\343\333\226\377\343\332\223\377\343\332\221" \
- "\377\343\331\216\377\343\331\212\377\343\331\206\377\343\330\201\377" \
- "\343\327{\377\244\215B\37792\21\37771\20\3774.\20\377/*\16\377)%\14\377" \
- "#\36\12\377\34\30\10\377\26\23\6\377\17\15\4\377\11\10\3\377\5\4\1\377" \
- "\1\1\0\377\377\0\0\0\377\377\0\0\0\377\275\0\0\0\377\14\2\2\1\377\5\4" \
- "\1\377\11\10\3\377\16\14\4\377\22\17\5\377\30\25\7\377\34\30\10\377!" \
- "\34\11\377$\37\13\377'#\14\377+&\15\377,'\15\377\202,'\16\377\6,'\15" \
- "\377+&\15\377*%\15\377)%\14\377($\14\377'#\14\377\202&!\13\377\202$\37" \
- "\13\377\205#\36\12\377K\"\36\12\377#\37\12\377%\40\13\377'\40\13\377" \
- ")!\13\377+\"\13\377-$\14\377.%\14\3771%\15\3772&\15\3773'\15\3776)\15" \
- "\3778+\16\377;+\16\377=-\16\377>-\16\377@.\17\377C0\17\377E1\20\377F" \
- "3\17\377H4\20\377K6\21\377M7\21\377P9\22\377Q9\21\377S:\21\377V<\22\377" \
- "W=\22\377Z>\23\377[@\24\377]A\24\377_A\24\377aD\24\377cD\25\377eF\26" \
- "\377fG\26\377iH\26\377kJ\27\377lJ\26\377mL\27\377pN\27\377rN\30\377t" \
- "P\31\377tP\30\377vQ\30\377xR\31\377yT\31\377{T\32\377|U\31\377}U\32\377" \
- "|T\32\377{R\31\377yN\27\377wM\26\377uI\26\377sF\24\377qB\23\377p@\21" \
- "\377n>\21\377l;\21\377l9\20\377m:\20\377p<\20\377s@\21\377wE\22\377z" \
- "H\25\377\177M\26\377\204R\27\377\210V\31\377\214Z\33\377\215^\33\377" \
- "\220_\34\377\221`\34\377\222a\35\377\310\266\222\377\202\347\344\323" \
- "\377\2\347\344\322\377\347\344\320\377\202\347\344\317\377\7\347\343" \
- "\316\377\346\343\315\377\346\343\314\377\346\343\312\377\346\343\311" \
- "\377\346\343\310\377\346\343\307\377\202\346\343\305\377\23\346\343\304" \
- "\377\346\342\302\377\346\342\301\377\346\342\277\377\346\342\276\377" \
- "\346\341\274\377\345\341\273\377\345\341\272\377\345\341\270\377\345" \
- "\340\267\377\345\340\264\377\345\340\263\377\345\337\261\377\345\337" \
- "\260\377\345\337\256\377\345\336\254\377\344\336\252\377\306\263z\377" \
- "\222j+\377\202\205Z\33\377\31\203Y\33\377\264\232\\\377\344\333\233\377" \
- "\343\333\231\377\343\332\225\377\343\332\222\377\343\332\221\377\343" \
- "\331\216\377\343\331\211\377\343\331\206\377\343\330\201\377\343\327" \
- "{\377\230\201;\37792\21\37771\20\3774.\20\377.)\16\377)%\14\377#\36\12" \
- "\377\34\30\10\377\26\23\6\377\17\15\4\377\11\10\3\377\5\4\1\377\1\1\0" \
- "\377\377\0\0\0\377\377\0\0\0\377\274\0\0\0\377\15\1\1\0\377\3\3\1\377" \
- "\7\6\2\377\14\12\4\377\21\16\5\377\26\23\6\377\33\27\10\377!\34\11\377" \
- "%!\13\377)%\14\377,'\16\3770+\17\3772-\17\377\2023-\17\377\7""2-\17\377" \
- "1,\17\377/*\16\377.)\16\377-(\16\377,'\16\377,'\15\377\202+&\15\377\1" \
- "*%\15\377\203)%\14\377\202($\14\377\1)$\14\377\202+%\15\377D.&\15\377" \
- "0'\15\3771(\15\3775*\16\3774)\16\3777+\17\3779,\17\377;.\17\377=/\20" \
- "\377>/\17\377@1\17\377C2\20\377E3\20\377G5\20\377H5\20\377K7\21\377M" \
- "9\21\377O:\21\377Q:\22\377R;\22\377U=\23\377X\77\23\377Y@\24\377Z@\24" \
- "\377]B\24\377^C\24\377`E\25\377cE\25\377cF\26\377eH\27\377hI\27\377j" \
- "J\27\377kK\27\377mK\30\377oM\30\377pN\30\377rO\30\377sP\31\377uQ\31\377" \
- "vR\31\377xS\31\377zT\31\377zT\32\377|V\31\377}V\32\377~V\32\377\177W" \
- "\33\377\200W\32\377~T\31\377|R\27\377{O\27\377xM\26\377wJ\25\377uF\23" \
- "\377qB\23\377p@\21\377o=\20\377n:\17\377o;\17\377q>\17\377uA\21\377y" \
- "E\23\377|J\25\377\202M\26\377\205R\30\377\211V\32\377\214[\33\377\217" \
- "^\34\377\202\222a\35\377\6\223a\35\377\272\236q\377\347\344\323\377\347" \
- "\344\322\377\347\344\321\377\347\344\320\377\202\347\344\317\377\7\346" \
- "\343\316\377\346\343\315\377\346\343\314\377\346\343\312\377\346\343" \
- "\311\377\346\343\310\377\346\343\307\377\202\346\343\305\377\24\346\343" \
- "\303\377\346\342\302\377\346\342\301\377\346\342\277\377\346\342\275" \
- "\377\346\341\274\377\345\341\273\377\345\341\272\377\345\340\270\377" \
- "\345\340\266\377\345\340\264\377\345\340\263\377\345\337\261\377\345" \
- "\337\260\377\345\337\256\377\323\303\216\377\240{\77\377\210\\\34\377" \
- "\207[\34\377\206Z\33\377\202\205Z\33\377\30\300\254m\377\344\333\233" \
- "\377\343\333\230\377\343\332\225\377\343\332\222\377\343\332\221\377" \
- "\343\331\215\377\343\331\211\377\343\331\206\377\343\330\201\377\343" \
- "\326x\377\214y6\37792\21\37771\20\3774.\20\377.)\16\377($\14\377#\36" \
- "\12\377\34\30\10\377\25\22\6\377\17\15\5\377\11\10\3\377\5\4\1\377\1" \
- "\1\0\377\377\0\0\0\377\377\0\0\0\377\274\0\0\0\377\14\1\1\0\377\5\4\1" \
- "\377\11\10\3\377\17\15\5\377\24\21\5\377\31\25\7\377\37\33\11\377$\37" \
- "\13\377)%\14\377-(\16\3772-\17\37760\20\377\20271\20\377\20360\20\377" \
- "\5""5/\17\3774.\20\3773-\17\3772-\17\3771,\17\377\2020+\17\377\202/*" \
- "\16\377\203.)\16\377\14/)\16\3770)\16\3771+\17\3774+\17\3775,\17\377" \
- "6,\16\3778-\17\3779.\17\377<0\20\377>1\20\377\77""2\17\377@2\17\377\202" \
- "D5\21\377KG6\21\377H7\22\377J8\22\377L9\22\377O:\23\377P;\23\377R=\23" \
- "\377S>\23\377V@\24\377X@\24\377ZA\24\377[B\25\377]C\25\377_D\25\377a" \
- "E\25\377bG\26\377dH\27\377fH\27\377hJ\27\377jK\30\377kL\30\377lM\27\377" \
- "nM\31\377pO\31\377qP\30\377sP\31\377uQ\32\377uR\31\377vS\32\377wS\31" \
- "\377zT\31\377zT\32\377\210f1\377\233\177R\377\254\226p\377\276\255\222" \
- "\377\243\207\\\377\202X\33\377\201V\33\377\177U\31\377~R\30\377|O\27" \
- "\377zL\26\377wI\25\377tD\23\377tB\22\377s@\21\377o<\20\377q<\20\377s" \
- ">\20\377vC\22\377zE\23\377~J\24\377\201N\26\377\207S\31\377\212X\31\377" \
- "\216\\\33\377\221_\34\377\223a\35\377\224b\35\377\225c\35\377\257\213" \
- "U\377\347\344\323\377\347\344\322\377\347\344\321\377\347\344\320\377" \
- "\347\344\317\377\347\343\316\377\346\343\315\377\346\343\314\377\346" \
- "\343\313\377\346\343\312\377\346\343\311\377\346\343\307\377\346\343" \
- "\306\377\202\346\343\305\377\5\346\342\303\377\346\342\302\377\346\342" \
- "\300\377\346\342\277\377\346\342\275\377\202\345\341\273\377\10\345\341" \
- "\271\377\345\340\270\377\345\340\266\377\345\340\264\377\345\340\262" \
- "\377\345\337\261\377\327\314\230\377\252\210L\377\202\213^\34\377\1\212" \
- "]\34\377\202\210\\\34\377\32\207[\33\377\205Z\33\377\317\277\201\377" \
- "\344\333\232\377\343\333\230\377\343\332\225\377\343\332\222\377\343" \
- "\331\220\377\343\331\215\377\343\331\211\377\343\330\204\377\343\330" \
- "~\377\343\326x\377}m0\37792\21\37771\20\3773-\17\377.)\16\377($\14\377" \
- "#\36\12\377\33\27\10\377\25\22\6\377\17\15\5\377\11\10\3\377\5\4\1\377" \
- "\1\1\0\377\377\0\0\0\377\377\0\0\0\377\274\0\0\0\377\14\3\3\1\377\6\5" \
- "\2\377\14\12\4\377\21\16\5\377\27\24\6\377\34\30\10\377#\36\12\377'#" \
- "\14\377,'\16\3771,\17\37760\20\37782\20\377\20492\21\377\20282\20\377" \
- "\1""71\20\377\20360\20\377\2025/\17\377\2044.\20\37703-\17\3775.\17\377" \
- "6/\20\3777/\17\37790\20\377:0\20\377<2\21\377>3\21\377\77""3\20\377A" \
- "4\21\377B5\21\377E7\21\377F8\22\377I9\22\377H9\22\377K9\22\377M;\23\377" \
- "O=\23\377Q=\23\377R>\24\377U@\24\377WA\24\377YB\25\377ZC\25\377[B\25" \
- "\377^E\25\377_E\26\377aG\26\377cH\26\377dH\27\377eH\27\377hJ\27\377i" \
- "K\27\377jL\30\377lM\30\377lM\27\377nM\30\377pO\31\377qP\30\377rP\31\377" \
- "vT\36\377\214o@\377\237\210`\377\256\235|\377\276\257\227\377\322\312" \
- "\271\377\344\341\331\377\350\347\341\377\203\350\347\342\377\35\301\257" \
- "\224\377\202Y\33\377\203Y\33\377\202V\31\377\200S\30\377~Q\27\377{M\27" \
- "\377zJ\25\377yG\24\377wD\22\377sA\21\377s\77\21\377s=\20\377u\77\20\377" \
- "wA\21\377|F\23\377\200K\25\377\203N\26\377\210S\30\377\215Y\32\377\217" \
- "\\\32\377\222_\34\377\225b\35\377\225d\35\377\226d\35\377\243u8\377\347" \
- "\344\323\377\347\344\322\377\347\344\321\377\202\347\344\317\377\17\347" \
- "\343\316\377\346\343\315\377\346\343\314\377\346\343\313\377\346\343" \
- "\312\377\346\343\311\377\346\343\307\377\346\343\306\377\346\343\305" \
- "\377\346\343\304\377\346\342\303\377\346\342\302\377\346\342\300\377" \
- "\346\342\276\377\346\341\275\377\202\345\341\273\377'\345\341\271\377" \
- "\345\340\267\377\345\340\266\377\345\340\264\377\327\312\232\377\260" \
- "\217T\377\220a\36\377\217_\34\377\216_\35\377\214^\34\377\213^\34\377" \
- "\212]\34\377\211\\\34\377\210\\\34\377\207[\33\377\336\324\224\377\344" \
- "\333\232\377\343\333\227\377\343\332\224\377\343\332\222\377\343\331" \
- "\220\377\343\331\214\377\343\331\210\377\343\330\204\377\343\330~\377" \
- "\342\326u\377eY&\37792\21\37771\20\3773-\17\377-(\16\377'#\14\377\"\35" \
- "\12\377\33\27\10\377\25\22\6\377\16\14\4\377\10\7\3\377\4\3\1\377\1\1" \
- "\0\377\377\0\0\0\377\377\0\0\0\377\273\0\0\0\377\14\1\1\0\377\4\3\1\377" \
- "\10\7\3\377\16\14\4\377\23\20\5\377\31\25\7\377\40\33\11\377%!\13\377" \
- "+&\15\377/*\16\3774.\20\37782\20\377\20292\21\377\3\232\221^\377\201" \
- "zM\377F>\33\377\20592\21\377\20382\20\377\20571\20\377\20291\20\377\7" \
- "<3\21\377>4\21\377\77""4\21\377@5\21\377A6\21\377C7\21\377E8\22\377\202" \
- "H:\22\377\35J:\23\377L;\23\377M=\23\377O=\24\377Q>\24\377S\77\24\377" \
- "T@\25\377VA\25\377XC\25\377YC\25\377[D\26\377[E\26\377_E\26\377_F\27" \
- "\377aG\27\377cH\27\377dI\27\377eJ\27\377gJ\27\377hK\27\377jL\30\377}" \
- "b3\377\206nA\377\240\212f\377\253\233{\377\271\254\221\377\320\310\266" \
- "\377\334\331\314\377\347\346\336\377\202\347\346\337\377\203\350\347" \
- "\340\377\205\350\347\341\377\2\324\313\271\377\204Y\33\377\202\205Y\33" \
- "\377\31\202V\31\377\202S\31\377\177O\30\377|K\26\377yI\24\377wE\23\377" \
- "wC\22\377vA\21\377v>\20\377v\77\21\377yC\22\377}F\23\377\201K\25\377" \
- "\206O\26\377\210T\30\377\213X\32\377\220\\\32\377\222_\33\377\226b\35" \
- "\377\230c\36\377\227d\36\377\232f\40\377\345\341\316\377\347\344\321" \
- "\377\347\344\320\377\202\347\344\317\377\7\346\343\316\377\346\343\315" \
- "\377\346\343\314\377\346\343\312\377\346\343\311\377\346\343\310\377" \
- "\346\343\307\377\202\346\343\305\377\14\346\343\304\377\346\342\302\377" \
- "\346\342\301\377\346\342\300\377\346\342\276\377\346\341\274\377\345" \
- "\341\273\377\345\341\272\377\345\341\271\377\345\340\267\377\326\306" \
- "\226\377\255\212M\377\202\222a\35\377\1\220`\34\377\202\217_\34\377\36" \
- "\216_\35\377\216^\35\377\213^\34\377\212]\34\377\211\\\34\377\217f&\377" \
- "\344\334\234\377\344\333\231\377\343\333\227\377\343\332\224\377\343" \
- "\332\222\377\343\331\217\377\343\331\214\377\343\331\210\377\343\330" \
- "\202\377\343\327}\377\342\326u\377PG\35\37792\21\37760\20\3773-\17\377" \
- "-(\16\377'#\14\377\"\35\12\377\32\26\7\377\24\21\5\377\16\14\4\377\10" \
- "\7\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\273\0\0\0\377" \
- "\13\2\2\1\377\5\4\2\377\12\11\3\377\20\16\4\377\26\23\6\377\33\27\10" \
- "\377#\36\12\377'#\14\377,'\16\3772-\17\37760\20\377\20292\21\377\10S" \
- "M%\377\344\333\231\377\344\334\234\377\344\334\236\377\274\264\177\377" \
- "\217\210Z\377ph@\377NG#\377\21092\21\377\14:2\21\377;4\21\377>5\21\377" \
- "\77""5\21\377@5\21\377A6\22\377C7\22\377E8\22\377F:\23\377I;\23\377H" \
- ":\23\377K<\24\377\202N=\24\377\22P>\24\377Q\77\24\377S\77\24\377S@\24" \
- "\377VB\25\377XC\25\377YC\25\377[C\26\377\\D\26\377`G\30\377zf;\377}g" \
- "\77\377\230\210d\377\230\207c\377\263\246\213\377\267\254\217\377\315" \
- "\307\261\377\330\323\301\377\202\347\345\331\377\1\347\346\332\377\202" \
- "\347\346\333\377\1\347\346\334\377\202\347\346\335\377\202\347\346\336" \
- "\377\202\347\346\337\377\1\350\346\337\377\206\350\347\340\377\30\347" \
- "\345\335\377\210_\"\377\206Z\33\377\205Z\33\377\204W\32\377\203U\30\377" \
- "\201R\30\377\177M\26\377}K\25\377zG\24\377yD\22\377wA\21\377v>\21\377" \
- "w\77\21\377{D\22\377~F\23\377\202J\25\377\206O\26\377\213T\30\377\216" \
- "X\31\377\221\\\33\377\225`\34\377\230b\35\377\231e\36\377\202\232e\36" \
- "\377\14\333\317\264\377\347\344\321\377\347\344\320\377\347\344\317\377" \
- "\347\343\316\377\346\343\315\377\346\343\314\377\346\343\313\377\346" \
- "\343\312\377\346\343\311\377\346\343\310\377\346\343\306\377\202\346" \
- "\343\305\377\15\346\343\303\377\346\342\302\377\346\342\301\377\346\342" \
- "\277\377\346\342\275\377\346\341\274\377\345\341\273\377\345\341\272" \
- "\377\314\271\207\377\250\202C\377\225c\35\377\224b\35\377\223a\35\377" \
- "\202\222a\35\377\1\221`\34\377\203\217_\34\377\1\216^\35\377\202\213" \
- "^\34\377\30\237{;\377\344\334\234\377\343\333\231\377\343\333\226\377" \
- "\343\332\223\377\343\332\222\377\343\331\217\377\343\331\212\377\343" \
- "\331\207\377\343\330\202\377\343\327}\377\342\325r\377@8\24\37792\21" \
- "\37760\20\3772-\17\377,'\16\377&!\13\377!\34\11\377\32\26\7\377\23\20" \
- "\5\377\15\13\4\377\7\6\2\377\4\3\1\377\377\0\0\0\377\377\0\0\0\377\273" \
- "\0\0\0\377\14\1\1\0\377\3\3\1\377\7\6\2\377\14\12\4\377\21\16\5\377\30" \
- "\25\7\377\36\32\11\377$\37\13\377*%\15\377/*\16\3774.\20\37771\20\377" \
- "\20292\21\377\16\211\201P\377\344\333\231\377\344\334\234\377\344\334" \
- "\235\377\344\334\240\377\344\335\243\377\344\335\245\377\344\335\246" \
- "\377\344\336\250\377\301\273\214\377\262\254\177\377\240\232p\377\231" \
- "\222j\377~wQ\377\202~wS\377\26_X5\377^W2\377^V3\377`W3\377bX4\377cZ5" \
- "\377eZ5\377g[5\377g[7\377h[6\377j]7\377\202wS\377\212\177[\377\214\177" \
- "\\\377\215\201\\\377\232\217k\377\254\242\202\377\255\242\202\377\256" \
- "\245\205\377\313\304\251\377\313\305\252\377\333\330\300\377\202\347" \
- "\344\321\377\5\347\344\322\377\347\344\323\377\347\345\324\377\347\345" \
- "\325\377\347\345\326\377\202\347\345\327\377\1\347\345\330\377\202\347" \
- "\345\331\377\2\347\346\331\377\347\346\332\377\202\347\346\333\377\202" \
- "\347\346\334\377\202\347\346\335\377\202\347\346\336\377\203\347\346" \
- "\337\377\202\350\346\337\377\202\350\347\340\377\34\350\346\337\377\234" \
- "yE\377\207[\34\377\207Z\33\377\207Y\32\377\204V\31\377\204S\27\377\202" \
- "P\27\377~L\26\377|I\24\377{F\23\377zC\22\377x@\21\377zA\21\377|C\22\377" \
- "\200H\23\377\203K\24\377\210P\27\377\213S\30\377\220X\32\377\224\\\33" \
- "\377\226a\34\377\231c\35\377\232e\36\377\233f\36\377\234f\37\377\320" \
- "\276\234\377\347\344\320\377\202\347\344\317\377\31\347\343\316\377\346" \
- "\343\315\377\346\343\314\377\346\343\313\377\346\343\312\377\346\343" \
- "\311\377\346\343\307\377\346\343\306\377\346\343\305\377\346\343\304" \
- "\377\346\342\303\377\346\342\302\377\346\342\300\377\346\342\277\377" \
- "\346\342\275\377\337\327\260\377\304\252v\377\242s0\377\227d\36\377\230" \
- "c\36\377\230d\36\377\225d\35\377\225c\35\377\224b\35\377\223a\35\377" \
- "\202\222a\35\377\1\220`\34\377\202\217_\34\377\16\216^\35\377\214^\34" \
- "\377\263\226U\377\344\333\233\377\343\333\231\377\343\333\226\377\343" \
- "\332\222\377\343\332\221\377\343\331\216\377\343\331\212\377\343\331" \
- "\207\377\343\330\201\377\343\327{\377\323\305h\377\20292\21\377\12""6" \
- "0\20\3771,\17\377,'\15\377&!\13\377\40\33\11\377\31\25\7\377\22\17\5" \
- "\377\15\13\4\377\7\6\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\273" \
- "\0\0\0\377\14\1\1\0\377\4\3\1\377\10\7\3\377\16\14\4\377\23\20\5\377" \
- "\31\25\7\377!\34\11\377&!\13\377,'\15\3771,\17\37760\20\37782\20\377" \
- "\20292\21\377\23\252\242h\377\343\333\231\377\344\333\233\377\344\334" \
- "\234\377\344\334\240\377\344\335\242\377\344\335\244\377\344\335\246" \
- "\377\344\336\247\377\344\336\252\377\345\336\254\377\345\337\256\377" \
- "\345\337\260\377\345\337\261\377\345\340\262\377\345\340\264\377\345" \
- "\340\266\377\345\340\270\377\345\341\271\377\202\345\341\273\377\17\346" \
- "\341\275\377\346\342\277\377\346\342\300\377\346\342\302\377\346\342" \
- "\303\377\346\343\304\377\346\343\305\377\346\343\306\377\346\343\307" \
- "\377\346\343\310\377\346\343\311\377\346\343\312\377\346\343\314\377" \
- "\346\343\315\377\346\343\316\377\202\347\344\317\377\3\347\344\320\377" \
- "\347\344\321\377\347\344\322\377\202\347\344\323\377\5\347\345\324\377" \
- "\347\345\325\377\347\345\326\377\347\345\327\377\347\345\330\377\203" \
- "\347\345\331\377\2\347\346\331\377\347\346\332\377\202\347\346\333\377" \
- "\202\347\346\334\377\203\347\346\335\377\204\347\346\336\377\204\347" \
- "\346\337\377$\262\230r\377\210\\\34\377\211\\\33\377\210Z\32\377\207" \
- "W\32\377\205T\31\377\203R\27\377\203M\26\377~K\25\377~H\24\377|E\22\377" \
- "|C\21\377{B\21\377~D\22\377\200G\23\377\205L\25\377\212P\27\377\215T" \
- "\30\377\221Y\31\377\225]\33\377\227`\34\377\231d\35\377\234f\36\377\235" \
- "f\37\377\236g\37\377\305\253\200\377\347\344\320\377\347\344\317\377" \
- "\347\343\316\377\346\343\315\377\346\343\314\377\346\343\313\377\346" \
- "\343\312\377\346\343\311\377\346\343\310\377\346\343\307\377\202\346" \
- "\343\305\377\7\346\343\304\377\346\342\302\377\346\342\301\377\346\342" \
- "\300\377\323\302\227\377\266\221V\377\237k%\377\202\233f\36\377\10\232" \
- "e\36\377\231d\36\377\230d\36\377\226c\36\377\226b\35\377\225b\35\377" \
- "\224b\35\377\223a\35\377\202\222a\35\377\1\220`\34\377\202\217_\34\377" \
- "\31\216_\35\377\310\263r\377\344\333\232\377\343\333\230\377\343\332" \
- "\225\377\343\332\222\377\343\332\221\377\343\331\215\377\343\331\211" \
- "\377\343\331\206\377\343\330\201\377\343\326x\377\275\257W\37792\21\377" \
- "82\20\37760\20\3771,\17\377+&\15\377&!\13\377\37\33\11\377\31\25\7\377" \
- "\22\17\5\377\14\12\4\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0" \
- "\377\273\0\0\0\377\13\2\2\1\377\5\4\1\377\11\10\3\377\17\15\5\377\25" \
- "\22\6\377\33\27\10\377\"\35\12\377'#\14\377-(\16\3773-\17\37771\20\377" \
- "\20392\21\377\33\263\254p\377\343\333\230\377\344\333\232\377\344\334" \
- "\234\377\344\334\237\377\344\335\241\377\344\335\243\377\344\335\245" \
- "\377\344\336\247\377\344\336\251\377\345\336\253\377\345\337\255\377" \
- "\345\337\257\377\345\337\261\377\345\340\262\377\345\340\264\377\345" \
- "\340\266\377\345\340\267\377\345\341\271\377\345\341\272\377\345\341" \
- "\273\377\346\341\274\377\346\342\276\377\346\342\300\377\346\342\301" \
- "\377\346\342\302\377\346\343\304\377\202\346\343\305\377\10\346\343\307" \
- "\377\346\343\310\377\346\343\311\377\346\343\312\377\346\343\313\377" \
- "\346\343\314\377\346\343\315\377\347\343\316\377\202\347\344\317\377" \
- "\6\347\344\320\377\347\344\321\377\347\344\322\377\347\344\323\377\347" \
- "\344\324\377\347\345\325\377\202\347\345\326\377\2\347\345\327\377\347" \
- "\345\330\377\203\347\345\331\377\2\347\346\331\377\347\346\332\377\202" \
- "\347\346\333\377\203\347\346\334\377\203\347\346\335\377\206\347\346" \
- "\336\377\27\303\262\225\377\212]\34\377\213]\33\377\212[\32\377\210Y" \
- "\33\377\207V\31\377\206R\27\377\203P\26\377\201M\26\377\200I\24\377~" \
- "G\23\377}D\22\377}C\22\377\200E\22\377\203H\23\377\207L\25\377\212P\26" \
- "\377\216U\30\377\222Y\32\377\226^\33\377\230`\34\377\232d\35\377\236" \
- "f\36\377\202\237h\37\377\1\275\233h\377\202\347\344\317\377\10\347\343" \
- "\316\377\346\343\315\377\346\343\314\377\346\343\313\377\346\343\312" \
- "\377\346\343\311\377\346\343\307\377\346\343\306\377\202\346\343\305" \
- "\377\5\346\343\303\377\337\326\261\377\305\250t\377\252z8\377\237h\37" \
- "\377\202\236g\37\377\13\235f\37\377\234f\37\377\233e\36\377\232d\35\377" \
- "\231d\35\377\227c\35\377\226c\35\377\226b\35\377\225b\35\377\225c\35" \
- "\377\224b\35\377\202\222a\35\377\1\221`\34\377\202\217_\34\377\30\334" \
- "\316\217\377\344\333\232\377\343\333\227\377\343\332\224\377\343\332" \
- "\222\377\343\331\220\377\343\331\215\377\343\331\210\377\343\330\204" \
- "\377\343\330~\377\343\326x\377\237\225J\37792\21\37782\20\3775/\17\377" \
- "0+\17\377+&\15\377$\37\13\377\36\32\11\377\30\25\7\377\21\16\5\377\13" \
- "\11\3\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\273\0\0\0\377" \
- "\13\3\3\1\377\5\4\2\377\12\11\3\377\17\15\4\377\26\23\6\377\34\30\10" \
- "\377#\36\12\377)%\14\377.)\16\3774.\20\37782\20\377\20392\21\377\33\241" \
- "\231b\377\343\333\227\377\344\333\232\377\344\334\234\377\344\334\236" \
- "\377\344\334\240\377\344\335\243\377\344\335\245\377\344\336\247\377" \
- "\344\336\251\377\345\336\253\377\345\337\255\377\345\337\256\377\345" \
- "\337\260\377\345\340\262\377\345\340\263\377\345\340\265\377\345\340" \
- "\267\377\345\341\270\377\345\341\272\377\345\341\273\377\346\341\274" \
- "\377\346\342\275\377\346\342\277\377\346\342\300\377\346\342\302\377" \
- "\346\343\303\377\202\346\343\305\377\3\346\343\306\377\346\343\307\377" \
- "\346\343\311\377\202\346\343\312\377\3\346\343\314\377\346\343\315\377" \
- "\346\343\316\377\202\347\344\317\377\3\347\344\320\377\347\344\321\377" \
- "\347\344\322\377\202\347\344\323\377\3\347\345\324\377\347\345\325\377" \
- "\347\345\326\377\202\347\345\327\377\1\347\345\330\377\204\347\345\331" \
- "\377\202\347\346\332\377\202\347\346\333\377\203\347\346\334\377\207" \
- "\347\346\335\377\1\327\317\275\377\202\213^\34\377\24\214]\33\377\213" \
- "Z\32\377\212X\32\377\206S\30\377\206Q\27\377\204N\26\377\201J\24\377" \
- "\200H\23\377\200E\22\377\177D\22\377\200E\22\377\203I\23\377\210N\25" \
- "\377\213Q\26\377\217U\31\377\224Y\31\377\226^\33\377\231a\34\377\235" \
- "e\35\377\237g\36\377\202\240i\37\377\4\265\213Q\377\347\344\317\377\347" \
- "\343\316\377\346\343\315\377\202\346\343\314\377\12\346\343\312\377\346" \
- "\343\311\377\346\343\310\377\346\343\307\377\346\343\306\377\342\333" \
- "\272\377\314\264\204\377\263\210I\377\242i\37\377\240h\37\377\202\240" \
- "i\37\377\202\237h\37\377\4\236g\36\377\235f\36\377\234d\36\377\231d\35" \
- "\377\202\230c\35\377\"\227c\35\377\226b\35\377\230b\35\377\226b\35\377" \
- "\225c\35\377\224b\35\377\223a\35\377\222a\35\377\221`\34\377\231m*\377" \
- "\344\334\234\377\344\333\231\377\343\333\227\377\343\332\223\377\343" \
- "\332\222\377\343\331\217\377\343\331\214\377\343\331\210\377\343\330" \
- "\202\377\343\327}\377\342\326u\377\205{9\37792\21\37782\20\3775/\17\377" \
- "/*\16\377*%\15\377$\37\13\377\35\31\10\377\27\24\6\377\20\16\4\377\12" \
- "\11\3\377\5\4\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\273\0\0\0\377" \
- "\12\3\3\1\377\6\5\2\377\13\11\3\377\20\16\4\377\27\24\6\377\35\31\10" \
- "\377#\36\12\377)%\14\377/*\16\3775/\17\377\20292\21\377\26JB\35\3779" \
- "2\21\377rk=\377\343\333\227\377\344\333\231\377\344\334\234\377\344\334" \
- "\235\377\344\334\240\377\344\335\242\377\344\335\245\377\344\335\246" \
- "\377\344\336\250\377\344\336\252\377\345\336\254\377\345\337\256\377" \
- "\345\337\260\377\345\337\261\377\345\340\263\377\345\340\264\377\345" \
- "\340\266\377\345\340\270\377\345\341\271\377\202\345\341\273\377\6\346" \
- "\341\275\377\346\342\276\377\346\342\300\377\346\342\301\377\346\342" \
- "\302\377\346\343\304\377\202\346\343\305\377\10\346\343\307\377\346\343" \
- "\310\377\346\343\311\377\346\343\312\377\346\343\313\377\346\343\314" \
- "\377\346\343\315\377\347\343\316\377\202\347\344\317\377\3\347\344\320" \
- "\377\347\344\321\377\347\344\322\377\202\347\344\323\377\3\347\345\324" \
- "\377\347\345\325\377\347\345\326\377\202\347\345\327\377\1\347\345\330" \
- "\377\204\347\345\331\377\2\347\346\331\377\347\346\332\377\204\347\346" \
- "\333\377\207\347\346\334\377&\346\344\332\377\217d%\377\216_\35\377\215" \
- "^\34\377\214[\33\377\212X\31\377\211V\32\377\210S\30\377\206O\26\377" \
- "\204L\25\377\202I\23\377\201F\23\377\201E\22\377\202F\22\377\205J\23" \
- "\377\211M\25\377\215Q\26\377\220V\30\377\224Y\31\377\230]\33\377\232" \
- "a\34\377\237e\36\377\240h\37\377\242i\37\377\241i\37\377\254y7\377\347" \
- "\344\317\377\347\343\316\377\346\343\315\377\346\343\314\377\346\343" \
- "\313\377\346\343\312\377\346\343\311\377\342\333\275\377\317\270\213" \
- "\377\270\217R\377\246m\"\377\244j\37\377\203\243i\37\377\202\241i\37" \
- "\377\6\240h\37\377\237g\36\377\237f\36\377\235d\35\377\233b\35\377\232" \
- "b\35\377\203\230b\35\377\1\230c\35\377\202\230b\35\377\36\226b\35\377" \
- "\225d\35\377\224b\35\377\223a\35\377\222a\35\377\257\214J\377\344\333" \
- "\233\377\343\333\231\377\343\333\226\377\343\332\223\377\343\332\221" \
- "\377\343\331\216\377\343\331\212\377\343\331\207\377\343\330\202\377" \
- "\343\327{\377\342\325r\377e\\'\37792\21\37771\20\3774.\20\377.)\16\377" \
- ")%\14\377#\36\12\377\34\30\10\377\26\23\6\377\17\15\4\377\11\10\3\377" \
- "\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\273\0\0\0\377\12\3\3" \
- "\1\377\6\5\2\377\13\11\3\377\21\16\5\377\27\24\6\377\35\31\10\377$\37" \
- "\13\377*%\15\3770+\17\37760\20\377\20292\21\377\36F>\32\377MF!\377@8" \
- "\26\377\323\311\211\377\343\333\231\377\344\333\233\377\344\334\234\377" \
- "\344\334\237\377\344\335\241\377\344\335\244\377\344\335\246\377\344" \
- "\336\247\377\344\336\251\377\345\336\253\377\345\337\255\377\345\337" \
- "\257\377\345\337\261\377\345\340\262\377\345\340\264\377\345\340\266" \
- "\377\345\340\267\377\345\341\271\377\345\341\272\377\345\341\273\377" \
- "\346\341\274\377\346\342\276\377\346\342\277\377\346\342\301\377\346" \
- "\342\302\377\346\343\303\377\202\346\343\305\377\12\346\343\306\377\346" \
- "\343\307\377\346\343\310\377\346\343\311\377\346\343\312\377\346\343" \
- "\314\377\346\343\315\377\346\343\316\377\347\343\316\377\347\344\317" \
- "\377\202\347\344\320\377\7\347\344\321\377\347\344\322\377\347\344\323" \
- "\377\347\344\324\377\347\345\324\377\347\345\325\377\347\345\326\377" \
- "\202\347\345\327\377\202\347\345\330\377\204\347\345\331\377\203\347" \
- "\346\332\377\211\347\346\333\377!\246\202P\377\217_\34\377\216^\34\377" \
- "\215\\\33\377\215[\32\377\214X\32\377\212U\30\377\210Q\27\377\207N\26" \
- "\377\206L\25\377\204H\23\377\203F\22\377\204G\22\377\210J\24\377\212" \
- "M\25\377\216Q\27\377\222U\30\377\225Z\32\377\231_\32\377\235b\34\377" \
- "\240f\36\377\241g\37\377\243i\37\377\244j\37\377\245l\"\377\345\341\311" \
- "\377\346\343\315\377\346\343\314\377\346\343\313\377\340\331\274\377" \
- "\316\266\212\377\271\215R\377\247m#\377\203\246l\40\377\202\246k\37\377" \
- "\10\245j\37\377\244j\37\377\243h\37\377\241h\36\377\240g\36\377\240f" \
- "\36\377\236d\36\377\235b\34\377\203\232a\34\377#\231a\35\377\230b\35" \
- "\377\231b\35\377\230c\35\377\230b\35\377\226c\35\377\226d\36\377\225" \
- "d\35\377\224b\35\377\223a\35\377\310\262p\377\344\333\232\377\343\333" \
- "\230\377\343\332\225\377\343\332\222\377\343\332\221\377\343\331\215" \
- "\377\343\331\211\377\343\331\206\377\343\330\201\377\343\327{\377\342" \
- "\325r\377C<\26\37792\21\37760\20\3773-\17\377-(\16\377'#\14\377\"\35" \
- "\12\377\33\27\10\377\24\21\5\377\17\15\5\377\11\10\3\377\5\4\1\377\1" \
- "\1\0\377\377\0\0\0\377\377\0\0\0\377\273\0\0\0\377\12\3\3\1\377\6\5\2" \
- "\377\13\11\3\377\21\16\5\377\27\24\6\377\36\32\11\377$\37\13\377+&\15" \
- "\3770+\17\37760\20\377\20392\21\377\36f^2\37792\21\377ld8\377\343\333" \
- "\230\377\344\333\232\377\344\334\234\377\344\334\236\377\344\334\240" \
- "\377\344\335\243\377\344\335\245\377\344\336\247\377\344\336\251\377" \
- "\345\336\253\377\345\337\255\377\345\337\256\377\345\337\260\377\345" \
- "\337\261\377\345\340\263\377\345\340\264\377\345\340\266\377\345\341" \
- "\270\377\345\341\272\377\345\341\273\377\346\341\274\377\346\342\275" \
- "\377\346\342\277\377\346\342\300\377\346\342\301\377\346\342\302\377" \
- "\346\343\304\377\202\346\343\305\377\10\346\343\307\377\346\343\310\377" \
- "\346\343\311\377\346\343\312\377\346\343\313\377\346\343\314\377\346" \
- "\343\315\377\346\343\316\377\202\347\344\317\377\1\347\344\320\377\202" \
- "\347\344\321\377\6\347\344\322\377\347\344\323\377\347\344\324\377\347" \
- "\345\324\377\347\345\325\377\347\345\326\377\203\347\345\327\377\1\347" \
- "\345\330\377\205\347\345\331\377\1\347\346\331\377\204\347\346\332\377" \
- "\205\347\346\333\377\2\272\242{\377\217_\34\377\202\216^\34\377\31\216" \
- "\\\33\377\213X\32\377\213V\30\377\212S\30\377\210P\26\377\207M\25\377" \
- "\206J\24\377\205G\22\377\206H\23\377\207K\24\377\214N\25\377\217Q\26" \
- "\377\223U\27\377\227Z\31\377\232_\33\377\236c\34\377\240e\35\377\243" \
- "h\36\377\245j\37\377\246k\37\377\246l\40\377\336\325\267\377\333\315" \
- "\254\377\306\247v\377\266\210F\377\207\250l\40\377\10\247l\40\377\246" \
- "k\40\377\245j\37\377\245i\37\377\243h\36\377\241f\35\377\240d\35\377" \
- "\237c\34\377\202\234a\34\377\2\233`\34\377\232`\33\377\202\232a\34\377" \
- "\5\231a\34\377\230b\35\377\231b\35\377\230c\35\377\230d\35\377\202\230" \
- "d\36\377\16\225d\35\377\225d\37\377\337\323\222\377\344\333\231\377\343" \
- "\333\227\377\343\332\224\377\343\332\222\377\343\331\220\377\343\331" \
- "\214\377\343\331\210\377\343\330\204\377\343\330~\377\343\326x\377\311" \
- "\276a\377\20292\21\377\13""60\20\3772-\17\377,'\16\377&!\13\377!\34\11" \
- "\377\31\25\7\377\23\20\5\377\16\14\4\377\10\7\3\377\4\3\1\377\1\1\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\273\0\0\0\377\13\3\3\1\377\6\5\2\377\13" \
- "\11\3\377\20\16\4\377\27\24\6\377\35\31\10\377$\37\13\377*%\15\3770+" \
- "\17\3775/\17\37782\20\377\20292\21\377\1rk<\377\20292\21\377\33\203|" \
- "L\377\344\333\231\377\344\334\234\377\344\334\235\377\344\334\240\377" \
- "\344\335\243\377\344\335\245\377\344\335\246\377\344\336\250\377\344" \
- "\336\252\377\345\336\254\377\345\337\256\377\345\337\260\377\345\337" \
- "\261\377\345\340\262\377\345\340\264\377\345\340\266\377\345\340\267" \
- "\377\345\341\271\377\345\341\272\377\345\341\273\377\346\341\274\377" \
- "\346\342\276\377\346\342\277\377\346\342\301\377\346\342\302\377\346" \
- "\343\303\377\202\346\343\305\377\11\346\343\306\377\346\343\307\377\346" \
- "\343\310\377\346\343\311\377\346\343\312\377\346\343\313\377\346\343" \
- "\314\377\346\343\315\377\347\343\316\377\202\347\344\317\377\2\347\344" \
- "\320\377\347\344\321\377\202\347\344\322\377\4\347\344\323\377\347\344" \
- "\324\377\347\345\324\377\347\345\325\377\202\347\345\326\377\202\347" \
- "\345\327\377\202\347\345\330\377\207\347\345\331\377\202\347\346\331" \
- "\377\203\347\346\332\377\34\347\346\331\377\320\303\246\377\220`\34\377" \
- "\221`\35\377\221_\34\377\217]\33\377\217Z\32\377\216X\31\377\214T\27" \
- "\377\212Q\27\377\212N\25\377\211L\25\377\210I\23\377\207I\23\377\211" \
- "J\23\377\215N\25\377\221R\26\377\224U\30\377\230Z\31\377\233^\33\377" \
- "\237c\34\377\241f\35\377\245i\37\377\246l\40\377\247k\40\377\250l\40" \
- "\377\254s*\377\250m\40\377\210\251m\40\377\11\250l\37\377\250j\37\377" \
- "\246i\37\377\245h\36\377\244g\36\377\242e\35\377\241d\35\377\240b\35" \
- "\377\236a\33\377\202\234_\33\377\202\233_\33\377\202\232`\33\377!\232" \
- "a\34\377\231a\34\377\231b\35\377\231d\35\377\230d\35\377\231d\36\377" \
- "\227d\36\377\230d\36\377\247\177:\377\344\333\233\377\343\333\231\377" \
- "\343\333\226\377\343\332\223\377\343\332\222\377\343\331\217\377\343" \
- "\331\214\377\343\331\207\377\343\330\202\377\343\327}\377\342\326u\377" \
- "\242\226H\37792\21\37782\20\37760\20\3770+\17\377+&\15\377&!\13\377\37" \
- "\33\11\377\31\25\7\377\22\17\5\377\14\12\4\377\7\6\2\377\3\3\1\377\377" \
- "\0\0\0\377\377\0\0\0\377\274\0\0\0\377\13\2\2\1\377\5\4\2\377\12\11\3" \
- "\377\20\16\4\377\26\23\6\377\35\31\10\377#\36\12\377)%\14\377/*\16\377" \
- "4.\20\37782\20\377\20292\21\377\2wo\77\377C<\31\377\20292\21\377\33y" \
- "rE\377\336\325\227\377\344\334\234\377\344\334\237\377\344\335\241\377" \
- "\344\335\244\377\344\335\246\377\344\336\247\377\344\336\251\377\345" \
- "\336\253\377\345\337\255\377\345\337\257\377\345\337\261\377\345\340" \
- "\262\377\345\340\263\377\345\340\265\377\345\340\267\377\345\341\270" \
- "\377\345\341\272\377\345\341\273\377\346\341\274\377\346\342\275\377" \
- "\346\342\277\377\346\342\300\377\346\342\301\377\346\342\302\377\346" \
- "\343\304\377\202\346\343\305\377\3\346\343\306\377\346\343\307\377\346" \
- "\343\311\377\202\346\343\312\377\1\346\343\314\377\202\346\343\315\377" \
- "\1\347\343\316\377\202\347\344\317\377\2\347\344\320\377\347\344\321" \
- "\377\202\347\344\322\377\202\347\344\323\377\1\347\345\324\377\202\347" \
- "\345\325\377\1\347\345\326\377\203\347\345\327\377\202\347\345\330\377" \
- "\213\347\345\331\377\27\341\335\317\377\222b\40\377\222a\35\377\222a" \
- "\34\377\221]\33\377\220[\32\377\220Y\32\377\216V\30\377\214R\27\377\213" \
- "P\26\377\212M\25\377\211J\24\377\210I\23\377\213K\23\377\216N\25\377" \
- "\221S\27\377\224V\30\377\230Y\30\377\234]\33\377\237a\34\377\242e\35" \
- "\377\244g\36\377\250l\40\377\204\251m\40\377\202\253n\40\3776\252n!\377" \
- "\252m!\377\252m\40\377\252l\40\377\251k\40\377\250j\37\377\251j\36\377" \
- "\250i\36\377\247h\36\377\245f\35\377\245e\35\377\243d\35\377\241b\34" \
- "\377\236`\33\377\235^\33\377\235]\32\377\233]\31\377\233^\33\377\232" \
- "^\32\377\233`\33\377\232`\34\377\232a\34\377\233b\34\377\232c\35\377" \
- "\233c\35\377\233e\36\377\232e\36\377\231e\36\377\227d\36\377\303\251" \
- "e\377\344\333\232\377\343\333\230\377\343\332\225\377\343\332\222\377" \
- "\343\332\221\377\343\331\216\377\343\331\212\377\343\331\206\377\343" \
- "\330\201\377\343\327{\377\342\325r\377yn1\37792\21\37782\20\3775/\17" \
- "\377/*\16\377*%\15\377$\37\13\377\36\32\11\377\27\24\6\377\21\16\5\377" \
- "\13\11\3\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\274\0\0" \
- "\0\377\13\1\1\0\377\5\4\1\377\11\10\3\377\17\15\4\377\25\22\6\377\33" \
- "\27\10\377#\36\12\377($\14\377.)\16\3773-\17\37771\20\377\20292\21\377" \
- "\2OH\"\377wp@\377\20392\21\377&SM&\377\276\266~\377\344\334\236\377\344" \
- "\334\240\377\344\335\243\377\344\335\245\377\344\335\246\377\344\336" \
- "\250\377\345\336\253\377\345\337\255\377\345\337\256\377\345\337\260" \
- "\377\345\337\261\377\345\340\263\377\345\340\264\377\345\340\266\377" \
- "\345\340\267\377\345\341\271\377\345\341\272\377\345\341\273\377\346" \
- "\341\274\377\346\342\276\377\346\342\277\377\346\342\301\377\346\342" \
- "\302\377\346\342\303\377\346\343\304\377\346\343\305\377\346\343\306" \
- "\377\346\343\307\377\346\343\310\377\346\343\311\377\346\343\312\377" \
- "\346\343\313\377\346\343\314\377\346\343\315\377\346\343\316\377\347" \
- "\343\316\377\202\347\344\317\377\2\347\344\320\377\347\344\321\377\202" \
- "\347\344\322\377\202\347\344\323\377\202\347\345\324\377\1\347\345\325" \
- "\377\202\347\345\326\377\203\347\345\327\377\204\347\345\330\377\210" \
- "\347\345\331\377\30\243yA\377\224b\35\377\224a\34\377\224`\34\377\223" \
- "]\33\377\221Z\31\377\220X\31\377\216U\30\377\216Q\27\377\214O\26\377" \
- "\213L\24\377\213K\23\377\214L\24\377\217N\25\377\222Q\25\377\226U\27" \
- "\377\231Z\30\377\234]\32\377\237`\33\377\243d\35\377\245h\36\377\250" \
- "j\37\377\251l\40\377\253n\40\377\202\252n!\377\10\252m\40\377\253m\40" \
- "\377\252l\40\377\253m\40\377\252l\37\377\252k\37\377\252j\37\377\250" \
- "h\36\377\202\247g\36\377\15\246f\35\377\245d\35\377\244c\33\377\242`" \
- "\33\377\240_\32\377\237]\33\377\235\\\32\377\233[\32\377\233\\\32\377" \
- "\234\\\31\377\234]\33\377\233^\33\377\233`\33\377\202\234b\34\377\37" \
- "\234c\35\377\234d\35\377\234e\36\377\234f\37\377\233f\36\377\232f\40" \
- "\377\337\323\222\377\344\333\231\377\343\333\227\377\343\332\224\377" \
- "\343\332\222\377\343\331\220\377\343\331\215\377\343\331\211\377\343" \
- "\330\204\377\343\330~\377\343\326x\377\342\325n\377OG\34\37792\21\377" \
- "71\20\3774.\20\377.)\16\377)%\14\377#\36\12\377\34\30\10\377\26\23\6" \
- "\377\17\15\4\377\12\11\3\377\5\4\2\377\1\1\0\377\377\0\0\0\377\377\0" \
- "\0\0\377\274\0\0\0\377\13\1\1\0\377\4\3\1\377\10\7\3\377\16\14\4\377" \
- "\24\21\5\377\32\26\7\377\"\35\12\377'#\14\377,'\16\3772-\17\37760\20" \
- "\377\20392\21\377\1\241\231`\377\20592\21\377\31nf<\377\307\276\207\377" \
- "\344\335\242\377\344\335\244\377\344\335\246\377\344\336\247\377\344" \
- "\336\251\377\345\336\253\377\345\337\255\377\345\337\257\377\345\337" \
- "\261\377\345\340\262\377\345\340\263\377\345\340\265\377\345\340\267" \
- "\377\345\341\270\377\345\341\272\377\345\341\273\377\346\341\274\377" \
- "\346\341\275\377\346\342\276\377\346\342\300\377\346\342\301\377\346" \
- "\342\302\377\346\343\303\377\202\346\343\305\377\12\346\343\306\377\346" \
- "\343\307\377\346\343\310\377\346\343\311\377\346\343\312\377\346\343" \
- "\313\377\346\343\314\377\346\343\315\377\346\343\316\377\347\343\316" \
- "\377\202\347\344\317\377\1\347\344\320\377\202\347\344\321\377\1\347" \
- "\344\322\377\202\347\344\323\377\2\347\344\324\377\347\345\324\377\202" \
- "\347\345\325\377\202\347\345\326\377\205\347\345\327\377\210\347\345" \
- "\330\377\30\266\230j\377\224b\35\377\225b\35\377\225`\35\377\225^\34" \
- "\377\223\\\32\377\222X\30\377\221V\30\377\217S\27\377\216P\26\377\216" \
- "N\25\377\216L\24\377\216M\24\377\220N\25\377\223Q\26\377\227T\27\377" \
- "\232Y\31\377\235]\32\377\240a\34\377\243c\35\377\245e\35\377\250i\37" \
- "\377\251k\37\377\252l\40\377\202\254m\40\377\2\254l\40\377\254m\37\377" \
- "\202\253k\37\377\202\253j\36\377\12\251i\36\377\251g\35\377\250f\35\377" \
- "\247d\34\377\247d\35\377\245b\34\377\243a\33\377\241_\33\377\240]\32" \
- "\377\236[\31\377\202\234Z\30\377\31\234Z\32\377\234[\32\377\234\\\32" \
- "\377\234^\33\377\234_\33\377\234a\34\377\235b\34\377\235d\34\377\235" \
- "e\35\377\236f\36\377\234f\37\377\233f\36\377\260\211E\377\344\333\233" \
- "\377\343\333\231\377\343\333\226\377\343\332\223\377\343\332\222\377" \
- "\343\331\217\377\343\331\214\377\343\331\210\377\343\330\202\377\343" \
- "\327}\377\342\326u\377\315\301`\377\20292\21\377\13""60\20\3772-\17\377" \
- ",'\16\377'#\14\377\"\35\12\377\32\26\7\377\24\21\5\377\17\15\5\377\11" \
- "\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\275\0\0\0\377" \
- "\13\3\3\1\377\7\6\2\377\15\13\4\377\22\17\5\377\31\25\7\377\40\33\11" \
- "\377&!\13\377+&\15\3770+\17\37760\20\37782\20\377\20292\21\377\2\234" \
- "\222Y\377MF!\377\20692\21\377\30c\\5\377\250\241p\377\340\331\241\377" \
- "\344\336\247\377\344\336\251\377\345\336\253\377\345\337\255\377\345" \
- "\337\256\377\345\337\260\377\345\337\261\377\345\340\263\377\345\340" \
- "\264\377\345\340\266\377\345\340\267\377\345\341\271\377\345\341\272" \
- "\377\345\341\273\377\346\341\274\377\346\342\276\377\346\342\277\377" \
- "\346\342\300\377\346\342\302\377\346\342\303\377\346\343\304\377\202" \
- "\346\343\305\377\12\346\343\306\377\346\343\307\377\346\343\310\377\346" \
- "\343\311\377\346\343\312\377\346\343\313\377\346\343\314\377\346\343" \
- "\315\377\346\343\316\377\347\343\316\377\202\347\344\317\377\1\347\344" \
- "\320\377\202\347\344\321\377\202\347\344\322\377\202\347\344\323\377" \
- "\2\347\344\324\377\347\345\324\377\203\347\345\325\377\203\347\345\326" \
- "\377\211\347\345\327\377\36\311\266\224\377\225d\35\377\226d\36\377\226" \
- "b\35\377\226`\34\377\226]\33\377\224Z\33\377\222W\30\377\222U\30\377" \
- "\221R\26\377\220O\26\377\217M\24\377\220N\24\377\221N\24\377\224Q\26" \
- "\377\227T\27\377\233X\27\377\235[\31\377\240^\32\377\243b\34\377\245" \
- "d\35\377\247g\35\377\251i\36\377\253k\36\377\253k\37\377\254j\37\377" \
- "\253k\36\377\254j\37\377\253i\37\377\253i\36\377\202\252g\36\3771\251" \
- "f\35\377\250e\35\377\250d\34\377\246b\33\377\246a\32\377\244`\32\377" \
- "\243^\31\377\241\\\32\377\237Z\31\377\235Y\31\377\235X\31\377\234X\30" \
- "\377\234Y\30\377\235Z\32\377\234\\\32\377\235]\32\377\236`\32\377\236" \
- "a\34\377\236c\34\377\237d\35\377\237f\36\377\237g\36\377\236g\37\377" \
- "\234f\37\377\314\265s\377\344\333\232\377\343\333\230\377\343\332\225" \
- "\377\343\332\222\377\343\332\221\377\343\331\216\377\343\331\212\377" \
- "\343\331\206\377\343\330\201\377\343\327{\377\342\325r\377\234\220C\377" \
- "92\21\37782\20\37760\20\3771,\17\377,'\15\377&!\13\377\40\33\11\377\31" \
- "\25\7\377\23\20\5\377\15\13\4\377\7\6\2\377\4\3\1\377\377\0\0\0\377\377" \
- "\0\0\0\377\276\0\0\0\377\13\3\3\1\377\6\5\2\377\13\11\3\377\21\16\5\377" \
- "\30\25\7\377\36\32\11\377$\37\13\377*%\15\377/*\16\3775/\17\37782\20" \
- "\377\20292\21\377\2lc5\377\216\205P\377\21092\21\377\16A9\30\377phA\377" \
- "\250\241s\377\326\320\235\377\345\336\253\377\345\337\255\377\345\337" \
- "\257\377\345\337\261\377\345\340\262\377\345\340\263\377\345\340\265" \
- "\377\345\340\267\377\345\341\270\377\345\341\271\377\202\345\341\273" \
- "\377\7\346\341\275\377\346\342\276\377\346\342\277\377\346\342\301\377" \
- "\346\342\302\377\346\342\303\377\346\343\304\377\202\346\343\305\377" \
- "\202\346\343\307\377\202\346\343\311\377\6\346\343\312\377\346\343\313" \
- "\377\346\343\314\377\346\343\315\377\346\343\316\377\347\343\316\377" \
- "\202\347\344\317\377\202\347\344\320\377\202\347\344\321\377\1\347\344" \
- "\322\377\203\347\344\323\377\1\347\344\324\377\202\347\345\324\377\203" \
- "\347\345\325\377\211\347\345\326\377Q\335\326\300\377\226d\35\377\230" \
- "d\36\377\227c\35\377\227`\34\377\227^\34\377\225\\\32\377\224Y\31\377" \
- "\223W\27\377\222T\27\377\221Q\26\377\221O\25\377\221N\24\377\222O\25" \
- "\377\225Q\26\377\230S\27\377\233W\30\377\236Z\31\377\237]\32\377\243" \
- "`\33\377\245c\34\377\247d\34\377\251g\35\377\251h\35\377\252g\36\377" \
- "\253h\36\377\254h\36\377\253h\36\377\254h\35\377\253g\35\377\253f\35" \
- "\377\252e\34\377\251c\34\377\251b\33\377\250a\33\377\246`\33\377\245" \
- "_\32\377\244]\32\377\243\\\31\377\242Z\31\377\240Y\30\377\236X\27\377" \
- "\235V\30\377\234W\30\377\235Y\30\377\234Z\30\377\234[\32\377\235^\32" \
- "\377\236_\33\377\237b\34\377\240d\35\377\240e\36\377\240h\37\377\240" \
- "i\37\377\237h\37\377\243p)\377\341\330\227\377\344\333\231\377\343\333" \
- "\227\377\343\332\224\377\343\332\222\377\343\331\217\377\343\331\214" \
- "\377\343\331\210\377\343\330\204\377\343\330~\377\343\326x\377\342\325" \
- "n\377ja(\37792\21\37782\20\3775/\17\377/*\16\377*%\15\377$\37\13\377" \
- "\36\32\11\377\30\25\7\377\21\16\5\377\14\12\4\377\6\5\2\377\3\3\1\377" \
- "\377\0\0\0\377\377\0\0\0\377\276\0\0\0\377\13\2\2\1\377\5\4\2\377\12" \
- "\11\3\377\17\15\4\377\26\23\6\377\34\30\10\377#\36\12\377($\14\377-(" \
- "\16\3773-\17\37771\20\377\20292\21\377\3@8\25\377\314\301}\377>7\25\377" \
- "\21192\21\377\30:2\21\377;4\21\377XN)\377\177wN\377\247\237s\377\305" \
- "\275\220\377\345\337\261\377\345\340\262\377\345\340\264\377\345\340" \
- "\266\377\345\340\267\377\345\341\271\377\345\341\272\377\345\341\273" \
- "\377\346\341\274\377\346\342\275\377\346\342\276\377\346\342\300\377" \
- "\346\342\301\377\346\342\302\377\346\343\303\377\346\343\304\377\346" \
- "\343\305\377\346\343\306\377\202\346\343\307\377\202\346\343\311\377" \
- "\3\346\343\312\377\346\343\313\377\346\343\314\377\202\346\343\315\377" \
- "\1\347\343\316\377\203\347\344\317\377\1\347\344\320\377\202\347\344" \
- "\321\377\202\347\344\322\377\204\347\344\323\377\1\347\344\324\377\202" \
- "\347\345\324\377\212\347\345\325\377\32\241s3\377\231d\36\377\230d\35" \
- "\377\230b\35\377\230`\34\377\227^\32\377\226[\32\377\225X\30\377\223" \
- "U\30\377\222R\26\377\223P\25\377\222O\25\377\223O\25\377\226Q\25\377" \
- "\231S\26\377\233U\27\377\235Y\31\377\240\\\32\377\243^\31\377\246a\32" \
- "\377\246b\33\377\250d\34\377\251e\34\377\253f\35\377\253g\35\377\253" \
- "f\34\377\202\254f\34\377\4\254e\34\377\253d\33\377\252b\33\377\252a\32" \
- "\377\202\251`\32\377.\246]\31\377\245]\31\377\244[\30\377\244Z\31\377" \
- "\243X\30\377\237X\27\377\237V\27\377\236W\27\377\236X\27\377\235Y\31" \
- "\377\236[\31\377\236]\31\377\240_\33\377\240b\34\377\241d\35\377\241" \
- "f\35\377\241f\36\377\241i\37\377\240h\37\377\240i\37\377\300\240\\\377" \
- "\344\333\232\377\343\333\230\377\343\332\225\377\343\332\222\377\343" \
- "\332\221\377\343\331\216\377\343\331\212\377\343\331\207\377\343\330" \
- "\202\377\343\327}\377\342\326u\377\325\310d\377>6\23\37792\21\37771\20" \
- "\3773-\17\377-(\16\377($\14\377#\36\12\377\34\30\10\377\26\23\6\377\17" \
- "\15\4\377\12\11\3\377\5\4\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377" \
- "\276\0\0\0\377\13\1\1\0\377\4\3\1\377\10\7\3\377\16\14\4\377\24\21\5" \
- "\377\32\26\7\377!\34\11\377&!\13\377,'\16\3772-\17\37760\20\377\2039" \
- "2\21\377\2\245\234`\377un>\377\21192\21\377\26;3\21\377;4\21\377>5\21" \
- "\377@6\21\377@6\22\377C7\22\377D7\22\377`U-\377}rI\377\213\200W\377\247" \
- "\236u\377\270\260\210\377\310\301\230\377\331\323\254\377\345\341\273" \
- "\377\346\341\274\377\346\342\275\377\346\342\277\377\346\342\300\377" \
- "\346\342\301\377\346\342\302\377\346\343\303\377\202\346\343\305\377" \
- "\3\346\343\306\377\346\343\307\377\346\343\310\377\202\346\343\311\377" \
- "\3\346\343\312\377\346\343\313\377\346\343\314\377\202\346\343\315\377" \
- "\1\347\343\316\377\203\347\344\317\377\4\335\327\277\377\322\310\254" \
- "\377\322\310\255\377\332\323\273\377\203\347\344\322\377\205\347\344" \
- "\323\377\203\347\344\324\377\203\347\345\324\377\203\347\344\324\377" \
- "C\266\224c\377\232e\36\377\233d\35\377\231c\35\377\231a\34\377\231_\33" \
- "\377\227[\31\377\226Z\31\377\225U\30\377\225T\27\377\224Q\26\377\224" \
- "P\25\377\225P\25\377\227P\25\377\231S\26\377\233T\27\377\236X\27\377" \
- "\241Z\30\377\243]\31\377\245_\32\377\246`\33\377\250b\34\377\251c\33" \
- "\377\252c\33\377\253d\33\377\253c\33\377\253d\34\377\253c\33\377\253" \
- "c\34\377\253a\33\377\252a\33\377\252`\33\377\251_\32\377\251]\31\377" \
- "\246\\\31\377\245[\30\377\244Y\30\377\243X\27\377\243W\27\377\241V\26" \
- "\377\237U\27\377\237X\27\377\237Y\30\377\240Z\30\377\240]\32\377\241" \
- "_\32\377\242a\33\377\243d\35\377\243f\35\377\243g\36\377\244h\37\377" \
- "\243i\37\377\241i\37\377\242k!\377\337\322\220\377\344\333\231\377\343" \
- "\333\227\377\343\332\224\377\343\332\222\377\343\331\220\377\343\331" \
- "\215\377\343\331\211\377\343\331\206\377\343\330\201\377\343\327{\377" \
- "\342\325r\377\240\225F\377\20292\21\377\13""60\20\3772-\17\377,'\16\377" \
- "&!\13\377!\34\11\377\32\26\7\377\24\21\5\377\16\14\4\377\11\10\3\377" \
- "\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\277\0\0\0\377\13\3\3" \
- "\1\377\7\6\2\377\15\13\4\377\22\17\5\377\31\25\7\377\37\33\11\377%!\13" \
- "\377+&\15\3770+\17\3775/\17\37782\20\377\20292\21\377\2h`3\377\301\267" \
- "v\377\21192\21\377\13;3\21\377<4\21\377>5\21\377@6\21\377@6\22\377C7" \
- "\22\377D9\22\377F:\23\377H;\23\377H:\23\377K<\24\377\202N=\24\377\15" \
- "P>\24\377R\77\24\377[H\34\377q`7\377sb7\377ub7\377\205sJ\377\222\203" \
- "[\377\223\204[\377\225\205[\377\227\206\\\377\226\206]\377\230\205\\" \
- "\377\202\231\207^\377\16\232\210]\377\233\210_\377\235\211`\377\226\200" \
- "T\377\210m=\377\211n=\377\212m=\377\211k:\377uR\31\377wR\31\377yT\32" \
- "\377zT\32\377|V\31\377\252\220e\377\203\347\344\321\377\204\347\344\322" \
- "\377\212\347\344\323\377\14\311\265\220\377\233f\36\377\234f\36\377\234" \
- "d\35\377\233b\34\377\232`\33\377\232^\33\377\230[\31\377\230X\30\377" \
- "\227T\27\377\226S\27\377\225Q\25\377\202\227P\25\377A\231R\26\377\235" \
- "U\26\377\236W\27\377\240Y\30\377\244[\31\377\245]\31\377\246_\31\377" \
- "\251`\32\377\252a\32\377\252b\32\377\253a\33\377\254c\34\377\254b\32" \
- "\377\254a\32\377\253`\33\377\254`\31\377\253_\31\377\252^\32\377\252" \
- "]\30\377\252\\\30\377\247[\31\377\246Y\30\377\245X\27\377\244V\27\377" \
- "\244W\26\377\242W\27\377\243W\27\377\241Y\30\377\241[\30\377\242]\31" \
- "\377\243_\32\377\244a\34\377\244d\34\377\245e\35\377\245h\36\377\245" \
- "i\37\377\246j\40\377\245j\37\377\243i\37\377\272\222M\377\344\333\233" \
- "\377\343\333\231\377\343\333\226\377\343\332\223\377\343\332\222\377" \
- "\343\331\217\377\343\331\214\377\343\331\210\377\343\330\204\377\343" \
- "\330~\377\343\326x\377\342\325n\377e\\&\37792\21\37782\20\3775/\17\377" \
- "0+\17\377+&\15\377%!\13\377\37\33\11\377\31\25\7\377\22\17\5\377\15\13" \
- "\4\377\7\6\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\300\0\0\0\377" \
- "\13\2\2\1\377\5\4\2\377\13\11\3\377\20\16\4\377\27\24\6\377\35\31\10" \
- "\377#\36\12\377)%\14\377.)\16\3773-\17\37771\20\377\20292\21\377\3;4" \
- "\23\377\323\313\202\377ib6\377\21092\21\377\202;3\21\377\6>5\21\377@" \
- "5\21\377@5\22\377C7\22\377D9\22\377F:\23\377\202I;\23\377\1K<\24\377" \
- "\202N=\24\377\35Q\77\24\377R\77\24\377T\77\24\377UA\25\377WB\25\377Y" \
- "C\25\377ZD\25\377\\D\26\377^E\26\377_F\27\377aG\27\377cH\27\377dI\27" \
- "\377fJ\27\377gJ\27\377iK\27\377kM\30\377lM\30\377mM\30\377oN\30\377q" \
- "P\30\377rP\31\377uQ\32\377uR\31\377wS\31\377yT\32\377zT\32\377}V\32\377" \
- "\212g0\377\203\347\344\320\377\204\347\344\321\377\212\347\344\322\377" \
- "\30\336\326\276\377\233f\36\377\234f\36\377\235e\36\377\235d\35\377\234" \
- "b\34\377\233_\33\377\233]\31\377\231Z\30\377\231W\30\377\230U\27\377" \
- "\230S\26\377\230Q\25\377\231Q\25\377\232R\25\377\236T\26\377\237U\27" \
- "\377\241X\30\377\244Y\27\377\245[\30\377\246\\\31\377\251]\31\377\252" \
- "^\32\377\253`\31\377\203\254`\31\377\1\254_\31\377\202\254^\31\3771\254" \
- "]\31\377\253\\\31\377\253[\30\377\252Z\30\377\252Y\30\377\251Y\27\377" \
- "\246W\27\377\245V\27\377\244V\25\377\244W\27\377\244Y\30\377\244Z\30" \
- "\377\244\\\32\377\244_\32\377\246b\33\377\247d\35\377\246f\35\377\247" \
- "h\35\377\247j\36\377\250k\37\377\247k\40\377\246k\37\377\244j\37\377" \
- "\331\310\206\377\344\333\231\377\343\333\227\377\343\332\224\377\343" \
- "\332\222\377\343\331\220\377\343\331\215\377\343\331\211\377\343\331" \
- "\206\377\343\330\201\377\343\327{\377\342\325r\377\317\302]\377;4\22" \
- "\37792\21\37771\20\3773-\17\377.)\16\377)%\14\377#\36\12\377\35\31\10" \
- "\377\27\24\6\377\20\16\4\377\13\11\3\377\5\4\2\377\2\2\1\377\377\0\0" \
- "\0\377\377\0\0\0\377\300\0\0\0\377\13\1\1\0\377\5\4\1\377\11\10\3\377" \
- "\17\15\5\377\24\21\5\377\32\26\7\377\"\35\12\377'#\14\377,'\16\3772-" \
- "\17\37760\20\377\20392\21\377\2\222\213S\377\273\262r\377\21092\21\377" \
- "+;2\20\377;3\21\377=4\21\377>4\21\377\77""4\21\377A5\21\377B6\21\377" \
- "E8\22\377G9\22\377H;\22\377K;\23\377M<\23\377N=\24\377Q\77\24\377R\77" \
- "\24\377S@\24\377VB\25\377WB\25\377YC\25\377[C\26\377[E\26\377^E\26\377" \
- "_F\27\377aG\27\377dH\27\377dI\27\377fJ\27\377hJ\27\377jL\30\377kM\30" \
- "\377lM\30\377nM\30\377pO\31\377qP\30\377sP\31\377tQ\31\377vS\32\377w" \
- "S\31\377zT\31\377{U\32\377}V\32\377~V\32\377\325\314\260\377\202\347" \
- "\344\317\377\204\347\344\320\377\212\347\344\321\377\30\347\344\320\377" \
- "\247u6\377\236g\37\377\237f\36\377\236d\36\377\236c\35\377\234_\33\377" \
- "\234^\33\377\233[\31\377\232Y\31\377\233W\27\377\232T\26\377\232S\26" \
- "\377\231R\25\377\233Q\25\377\236T\26\377\240V\26\377\242W\27\377\244" \
- "W\27\377\245Y\30\377\247[\31\377\251\\\30\377\253]\30\377\253^\31\377" \
- "\203\254]\31\377\1\254]\32\377\203\254\\\31\377#\254[\31\377\254[\30" \
- "\377\253Z\27\377\252Y\27\377\250Y\27\377\250X\27\377\247W\27\377\246" \
- "X\27\377\246Y\30\377\245[\30\377\246\\\31\377\247_\32\377\250a\33\377" \
- "\250d\34\377\250f\35\377\250g\36\377\250j\37\377\251k\37\377\251m\40" \
- "\377\250l\40\377\246l\40\377\273\221I\377\344\333\233\377\343\333\231" \
- "\377\343\333\226\377\343\332\223\377\343\332\222\377\343\331\217\377" \
- "\343\331\214\377\343\331\210\377\343\330\204\377\343\330~\377\343\326" \
- "x\377\342\325n\377\215\203:\377\20292\21\377\13""60\20\3771,\17\377," \
- "'\16\377&!\13\377\"\35\12\377\32\26\7\377\24\21\5\377\17\15\5\377\11" \
- "\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\300\0\0\0\377" \
- "\14\1\1\0\377\4\3\1\377\7\6\2\377\15\13\4\377\22\17\5\377\31\25\7\377" \
- "\37\33\11\377%!\13\377+&\15\3770+\17\3775/\17\37782\20\377\20292\21\377" \
- "\3QJ\"\377\341\330\214\377ld7\377\20692\21\377,92\20\377:1\20\377:2\20" \
- "\377;2\21\377<2\21\377=3\21\377>3\21\377\77""3\21\377A4\21\377D7\21\377" \
- "G8\21\377H9\22\377I9\22\377L;\22\377O=\24\377Q>\24\377R>\24\377S@\24" \
- "\377V@\24\377XC\25\377YC\25\377[C\25\377]D\25\377_E\26\377`E\26\377b" \
- "G\26\377cG\26\377eI\27\377gJ\27\377hK\30\377kK\30\377kL\30\377mM\30\377" \
- "nM\30\377pN\27\377sP\31\377uQ\31\377uR\31\377xS\31\377zT\32\377|V\31" \
- "\377}V\32\377~V\33\377\265\241z\377\207\347\344\317\377\211\347\344\320" \
- "\377\25\347\344\317\377\273\227d\377\236g\37\377\237h\36\377\237f\36" \
- "\377\237e\35\377\236b\34\377\236_\33\377\235\\\32\377\234Z\30\377\233" \
- "W\30\377\233U\27\377\233T\26\377\235S\25\377\234S\25\377\237S\26\377" \
- "\241U\26\377\243U\26\377\245W\27\377\246X\30\377\247Y\27\377\202\253" \
- "[\30\377\3\254\\\30\377\254\\\31\377\254]\30\377\202\255]\30\377\2\257" \
- "\\\30\377\255\\\30\377\202\255[\30\377\202\254[\27\377\17\254Z\27\377" \
- "\253Z\30\377\253Z\27\377\250Y\27\377\252Z\30\377\252\\\30\377\251^\32" \
- "\377\252_\32\377\252c\32\377\252d\34\377\251e\35\377\251h\35\377\252" \
- "j\36\377\252l\37\377\252l\40\377\202\251m\40\377\33\250m\"\377\335\314" \
- "\213\377\344\333\231\377\343\333\227\377\343\332\224\377\343\332\222" \
- "\377\343\331\220\377\343\331\215\377\343\331\211\377\343\331\207\377" \
- "\343\330\202\377\343\327}\377\342\326u\377\340\322j\377JB\31\37792\21" \
- "\37782\20\3775/\17\377/*\16\377+&\15\377%!\13\377\37\33\11\377\31\25" \
- "\7\377\22\17\5\377\15\13\4\377\7\6\2\377\3\3\1\377\377\0\0\0\377\377" \
- "\0\0\0\377\302\0\0\0\377\13\2\2\1\377\6\5\2\377\13\11\3\377\20\16\4\377" \
- "\27\24\6\377\34\30\10\377#\36\12\377($\14\377-(\16\3773-\17\37771\20" \
- "\377\20392\21\377\3\263\254j\377\303\272x\377;4\23\377\20492\21\377\33" \
- "82\20\37781\20\37791\20\377:1\20\37790\20\377:0\20\377;0\21\377;/\20" \
- "\377<0\20\377</\20\377\77""2\17\377A3\20\377D6\21\377F6\21\377H7\21\377" \
- "K9\22\377M:\22\377O;\22\377Q<\23\377R=\23\377U\77\23\377V@\24\377YA\24" \
- "\377ZA\24\377[B\25\377^C\25\377`D\25\377\202bF\26\377\22dG\26\377fH\27" \
- "\377hI\27\377iI\26\377kJ\27\377lJ\26\377nL\27\377qN\27\377tO\31\377u" \
- "Q\30\377xS\32\377zT\32\377|V\31\377}U\32\377\177W\33\377\231yD\377\346" \
- "\343\315\377\346\343\316\377\202\347\343\316\377\215\347\344\317\377" \
- "\25\314\270\221\377\237h\37\377\240h\36\377\240g\36\377\240e\35\377\240" \
- "c\34\377\236`\33\377\236^\33\377\235[\31\377\235Y\31\377\235V\30\377" \
- "\235U\26\377\236U\26\377\237S\26\377\240T\26\377\242U\26\377\244V\25" \
- "\377\246X\26\377\247W\27\377\252Y\27\377\253Z\30\377\202\254[\31\377" \
- "\2\255\\\30\377\257]\30\377\202\257\\\30\377\204\260\\\30\377\203\257" \
- "\\\30\377\36\254[\27\377\254Z\27\377\254\\\31\377\254]\31\377\254_\31" \
- "\377\253`\33\377\254c\34\377\254d\34\377\254f\34\377\254h\36\377\254" \
- "i\37\377\254l\37\377\254m\40\377\254n!\377\252n!\377\251m\40\377\277" \
- "\230Q\377\344\333\232\377\343\333\230\377\343\333\226\377\343\332\223" \
- "\377\343\332\222\377\343\331\217\377\343\331\214\377\343\331\210\377" \
- "\343\330\204\377\343\330~\377\343\326x\377\342\325n\377\257\243I\377" \
- "\20292\21\377\13""60\20\3773-\17\377-(\16\377($\14\377#\36\12\377\34" \
- "\30\10\377\26\23\6\377\20\16\4\377\13\11\3\377\5\4\2\377\2\2\1\377\377" \
- "\0\0\0\377\377\0\0\0\377\302\0\0\0\377\14\1\1\0\377\5\4\1\377\11\10\3" \
- "\377\17\15\5\377\24\21\5\377\32\26\7\377!\34\11\377&!\13\377,'\15\377" \
- "1,\17\37760\20\37782\20\377\20292\21\377\3i`4\377\343\331\216\377wp@" \
- "\377\20392\21\377\20282\20\377\6""70\20\37781\17\37780\20\37790\20\377" \
- "8/\17\3778.\17\377\2028-\17\377\17""9,\17\377:.\17\377</\17\377\77""1" \
- "\20\377A2\17\377D3\17\377G5\20\377H5\21\377J7\21\377M9\22\377O:\22\377" \
- "R;\22\377R<\23\377U=\23\377W>\23\377\202Y\77\23\377\24\\@\23\377]A\24" \
- "\377`C\24\377aD\24\377bD\25\377dE\25\377fF\25\377hG\26\377jH\26\377l" \
- "J\26\377oK\27\377rM\30\377tP\27\377wR\31\377zT\32\377}V\32\377~V\32\377" \
- "\177W\33\377\202Z\35\377\337\332\277\377\203\346\343\315\377\202\346" \
- "\343\316\377\213\347\343\316\377\26\337\327\276\377\237h\37\377\240h" \
- "\37\377\241g\36\377\241f\35\377\241d\35\377\240b\34\377\240_\33\377\240" \
- "\\\31\377\236Z\31\377\236X\27\377\237V\27\377\237U\27\377\240U\26\377" \
- "\242U\26\377\243V\26\377\245V\27\377\247W\27\377\250Y\27\377\253Z\27" \
- "\377\253Z\30\377\254[\27\377\202\257\\\30\377\2\260\\\30\377\261]\30" \
- "\377\202\262]\27\377\202\263^\30\377\202\262]\27\377-\261]\30\377\260" \
- "\\\30\377\257\\\30\377\260]\30\377\257]\30\377\255_\32\377\255a\32\377" \
- "\255b\32\377\257d\34\377\256f\35\377\256i\35\377\257j\36\377\256l\37" \
- "\377\256m\40\377\256o\40\377\255o!\377\253n!\377\255q%\377\336\317\216" \
- "\377\344\333\231\377\343\333\227\377\343\332\224\377\343\332\222\377" \
- "\343\331\220\377\343\331\215\377\343\331\211\377\343\331\207\377\343" \
- "\330\202\377\343\327}\377\342\326u\377\342\324j\377bY$\37792\21\3778" \
- "2\20\37760\20\3770+\17\377,'\15\377&!\13\377!\34\11\377\31\25\7\377\24" \
- "\21\5\377\17\15\5\377\11\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\303\0\0\0\377\13\3\3\1\377\7\6\2\377\15\13\4\377\22\17\5\377" \
- "\30\25\7\377\36\32\11\377$\37\13\377)%\14\377.)\16\3774.\20\37771\20" \
- "\377\20392\21\377\3\303\272u\377\323\313\203\377F>\32\377\20292\21\377" \
- "\4""82\20\37771\20\37781\20\37770\20\377\2027/\17\377\3""6-\17\3776+" \
- "\16\3775*\16\377\2024)\15\377\7""4(\15\3777*\16\377:+\16\377<-\16\377" \
- "\77.\16\377A/\17\377D1\17\377\202G3\20\377\14I5\20\377M7\20\377O7\21" \
- "\377P8\21\377R9\21\377T:\22\377W;\22\377X=\22\377Y>\23\377[\77\23\377" \
- "]\77\23\377_@\23\377\202aA\23\377\15dB\24\377gE\25\377jG\25\377mI\26" \
- "\377oK\27\377sM\27\377vP\31\377yS\31\377|U\31\377~V\32\377\177W\32\377" \
- "\202X\33\377\302\260\213\377\204\346\343\314\377\215\346\343\315\377" \
- "\13\255\177>\377\242i\37\377\241h\37\377\242g\36\377\242e\35\377\242" \
- "c\34\377\241a\33\377\240]\32\377\240[\32\377\240Z\30\377\237X\27\377" \
- "\202\241V\26\377\12\243V\26\377\245V\27\377\246W\27\377\250X\27\377\253" \
- "Z\27\377\254Z\27\377\254[\27\377\257\\\30\377\260\\\30\377\261]\30\377" \
- "\204\263^\30\377\202\263_\30\377\204\263^\30\377\35\261^\30\377\261^" \
- "\31\377\261a\31\377\261c\32\377\261c\34\377\260e\33\377\260f\34\377\260" \
- "i\35\377\260j\37\377\260l\37\377\260o\40\377\260o!\377\257p!\377\256" \
- "p!\377\254n!\377\311\250b\377\344\333\232\377\343\333\230\377\343\332" \
- "\225\377\343\332\222\377\343\332\221\377\343\331\217\377\343\331\214" \
- "\377\343\331\210\377\343\330\204\377\343\330~\377\343\326x\377\342\325" \
- "n\377\276\261P\377\20292\21\377\13""71\20\3773-\17\377.)\16\377)%\14" \
- "\377$\37\13\377\36\32\11\377\30\25\7\377\21\16\5\377\14\12\4\377\7\6" \
- "\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\304\0\0\0\377\13\2\2\1\377" \
- "\5\4\2\377\12\11\3\377\17\15\4\377\26\23\6\377\33\27\10\377\"\35\12\377" \
- "'#\14\377,'\16\3771,\17\37760\20\377\20392\21\377\3um<\377\343\331\216" \
- "\377\235\225]\377\20292\21\377082\20\37771\20\37781\20\3776/\20\3777" \
- "/\17\3776-\16\3775,\17\3775*\16\3774*\15\3773'\15\3772%\14\3771%\13\377" \
- "1%\14\3774&\14\3776'\14\3778(\14\377<+\15\377=+\16\377@,\17\377C0\17" \
- "\377D0\17\377G1\16\377H2\17\377L4\17\377M5\20\377O5\21\377Q5\20\377R" \
- "7\20\377U9\22\377W9\22\377W:\21\377Z;\22\377\\<\22\377^=\22\377`>\23" \
- "\377bA\23\377fC\24\377jF\25\377mI\26\377rL\27\377tN\27\377wQ\31\377|" \
- "T\31\377}V\32\377\177W\32\377\202X\33\377\240\202N\377\346\343\312\377" \
- "\203\346\343\313\377\215\346\343\314\377\26\301\243p\377\241i\37\377" \
- "\243i\37\377\243h\36\377\243f\36\377\243d\35\377\243a\33\377\242_\33" \
- "\377\241]\32\377\242[\31\377\243X\30\377\243X\27\377\244W\26\377\244" \
- "V\25\377\246X\26\377\250X\27\377\252Y\27\377\253Z\30\377\254[\27\377" \
- "\257\\\30\377\260\\\30\377\262]\27\377\202\263^\30\377\2\263_\30\377" \
- "\265_\31\377\204\266`\31\377-\265_\31\377\263_\30\377\263^\30\377\263" \
- "_\31\377\263a\32\377\262b\33\377\263d\33\377\262f\34\377\262h\35\377" \
- "\262j\35\377\262k\36\377\261m\37\377\261o\40\377\262p\40\377\261p!\377" \
- "\261q\"\377\257p!\377\266\2026\377\343\331\230\377\343\333\231\377\343" \
- "\333\226\377\343\332\223\377\343\332\222\377\343\331\220\377\343\331" \
- "\215\377\343\331\211\377\343\331\206\377\343\330\201\377\343\327}\377" \
- "\342\326u\377\342\324j\377pg*\37792\21\37782\20\37760\20\3771,\17\377" \
- ",'\16\377'#\14\377\"\35\12\377\33\27\10\377\25\22\6\377\17\15\4\377\12" \
- "\11\3\377\5\4\2\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\304\0\0\0\377" \
- "\14\1\1\0\377\4\3\1\377\10\7\3\377\16\14\4\377\23\20\5\377\31\25\7\377" \
- "\37\33\11\377%!\13\377*%\15\377/*\16\3774.\20\37782\20\377\20292\21\377" \
- "5;4\23\377\307\276x\377\341\330\215\377^V-\37792\21\37782\20\37771\20" \
- "\37781\20\3776/\20\3776.\17\3775,\16\3775+\17\3773)\16\3772(\15\3770" \
- "%\14\377/#\13\377.\"\12\377-!\12\377/!\12\3771\"\12\3773#\13\3776%\14" \
- "\3777&\14\377;(\15\377=*\15\377@+\15\377C,\16\377D-\16\377F.\16\377H" \
- "/\17\377K0\16\377M2\16\377N3\17\377P4\20\377R5\17\377T6\20\377W7\21\377" \
- "X7\20\377Y8\20\377]:\21\377_=\22\377cA\23\377gB\24\377jF\25\377oJ\26" \
- "\377sM\27\377vP\27\377zS\31\377}U\32\377\200X\32\377\202Y\32\377\206" \
- "^\"\377\341\335\300\377\206\346\343\312\377\207\346\343\313\377\203\346" \
- "\343\312\377\24\325\306\241\377\243i\37\377\244j\37\377\245i\37\377\244" \
- "h\36\377\245e\35\377\244d\34\377\244a\33\377\244_\31\377\243]\31\377" \
- "\244Z\31\377\243X\27\377\244V\27\377\245V\27\377\247W\27\377\250Y\27" \
- "\377\253Z\30\377\254[\27\377\257\\\30\377\260\\\30\377\202\263^\30\377" \
- "\4\263_\30\377\266`\31\377\267a\31\377\270`\31\377\204\271a\32\377-\270" \
- "`\31\377\267a\31\377\267a\32\377\266b\32\377\266c\32\377\266e\34\377" \
- "\266f\34\377\266i\35\377\266j\36\377\264l\37\377\263m\37\377\264n\40" \
- "\377\263p!\377\262q!\377\262r!\377\261q\"\377\257q!\377\330\303\177\377" \
- "\344\333\231\377\343\333\227\377\343\332\224\377\343\332\222\377\343" \
- "\332\221\377\343\331\216\377\343\331\212\377\343\331\207\377\343\330" \
- "\204\377\343\330~\377\343\326x\377\342\325n\377\303\266S\377;4\22\377" \
- "92\21\37771\20\3774.\20\377/*\16\377*%\15\377%!\13\377\37\33\11\377\31" \
- "\25\7\377\22\17\5\377\15\13\4\377\10\7\3\377\4\3\1\377\1\1\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\305\0\0\0\377\13\3\3\1\377\6\5\2\377\13\11\3" \
- "\377\20\16\4\377\26\23\6\377\34\30\10\377#\36\12\377($\14\377,'\16\377" \
- "2-\17\37760\20\377\20392\21\3775qi9\377\343\331\215\377\307\276{\377" \
- ">7\25\37792\21\37771\20\37781\20\3776/\20\3776.\17\3775,\17\3774*\17" \
- "\3773)\15\3770&\14\377.#\14\377-\"\13\377*\37\11\377*\36\11\377)\34\10" \
- "\377*\34\10\377.\37\11\3770\40\11\3773!\12\3775\"\13\3778$\13\377:%\13" \
- "\377='\14\377\77(\14\377A)\14\377C*\15\377E+\15\377H.\15\377J/\16\377" \
- "M0\16\377M0\15\377O1\16\377Q2\16\377S3\17\377U5\17\377X7\17\377\\9\21" \
- "\377_<\22\377e@\23\377iD\23\377lF\24\377qK\26\377uN\27\377zR\31\377}" \
- "U\31\377\200X\32\377\202Y\32\377\204Y\33\377\304\262\213\377\346\343" \
- "\310\377\206\346\343\311\377\205\346\343\312\377\204\346\343\311\377" \
- "\2\344\341\305\377\246n%\377\202\245j\37\377\25\246i\36\377\245f\35\377" \
- "\245d\35\377\245b\34\377\245`\32\377\244]\32\377\244[\30\377\244Y\30" \
- "\377\245X\27\377\246W\27\377\250X\27\377\253Z\27\377\254Z\27\377\257" \
- "\\\30\377\260\\\30\377\262]\27\377\263^\30\377\265_\31\377\266`\31\377" \
- "\270`\31\377\271a\31\377\206\273b\31\377\11\272c\32\377\271d\32\377\271" \
- "e\32\377\270f\33\377\270g\34\377\267j\34\377\267j\35\377\267m\37\377" \
- "\266n\40\377\202\266p\40\377\23\265r\"\377\264s!\377\263q!\377\262q\"" \
- "\377\304\235U\377\344\333\232\377\343\333\230\377\343\332\225\377\343" \
- "\332\223\377\343\332\222\377\343\331\217\377\343\331\214\377\343\331" \
- "\211\377\343\331\206\377\343\330\201\377\343\327{\377\342\325r\377\342" \
- "\323f\377mb(\377\20292\21\377\13""60\20\3772-\17\377,'\16\377'#\14\377" \
- "#\36\12\377\34\30\10\377\26\23\6\377\20\16\4\377\13\11\3\377\6\5\2\377" \
- "\2\2\1\377\377\0\0\0\377\377\0\0\0\377\306\0\0\0\377\14\1\1\0\377\5\4" \
- "\1\377\11\10\3\377\17\15\5\377\24\21\5\377\31\25\7\377\40\33\11\377&" \
- "!\13\377+&\15\377/*\16\3775/\17\37782\20\377\20292\21\3774;4\23\377\303" \
- "\272s\377\343\331\216\377\225\215V\37792\21\37782\20\37791\20\3776/\20" \
- "\3776.\17\3775,\17\3773*\16\3771'\15\377/%\14\377-\"\13\377+\40\12\377" \
- ")\36\11\377)\34\10\377(\33\10\377'\31\7\377)\31\10\377,\33\10\377.\34" \
- "\10\3772\37\11\3772\40\11\3775!\11\3779\"\12\377;$\12\377<$\12\377>&" \
- "\13\377@&\13\377D)\13\377E*\14\377G+\14\377I,\14\377K-\15\377L-\15\377" \
- "N.\15\377R0\16\377V2\17\377W5\17\377\\9\21\377a<\21\377f@\22\377jD\24" \
- "\377nI\26\377sL\27\377xP\30\377|T\32\377\200W\32\377\202Y\32\377\204" \
- "Y\33\377\244\206R\377\202\346\343\307\377\207\346\343\310\377\1\346\343" \
- "\311\377\206\346\343\310\377\31\346\343\307\377\266\215P\377\246k\37" \
- "\377\246k\40\377\246i\37\377\247h\36\377\246f\35\377\247d\35\377\246" \
- "a\32\377\244^\32\377\245]\31\377\245[\30\377\246Y\30\377\251Y\27\377" \
- "\250Y\27\377\253Z\30\377\255[\30\377\257\\\30\377\262]\27\377\263^\30" \
- "\377\263_\30\377\266`\31\377\271a\32\377\271a\31\377\273b\31\377\202" \
- "\274c\32\377\202\275c\32\377\37\274c\32\377\275d\32\377\274e\32\377\274" \
- "f\33\377\272h\34\377\271i\34\377\271k\35\377\271l\36\377\270m\36\377" \
- "\267n\37\377\270p\40\377\270r!\377\267s!\377\267s\"\377\265t\"\377\263" \
- "r!\377\271\2034\377\341\326\225\377\343\333\231\377\343\333\226\377\343" \
- "\332\224\377\343\332\222\377\343\331\220\377\343\331\215\377\343\331" \
- "\212\377\343\331\207\377\343\330\202\377\343\327}\377\342\326u\377\342" \
- "\325n\377\276\261P\377\20292\21\377\14""82\20\3774.\20\377/*\16\377*" \
- "%\15\377%!\13\377\37\33\11\377\31\25\7\377\23\20\5\377\16\14\4\377\11" \
- "\10\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\307\0\0\0\377" \
- "\13\3\3\1\377\7\6\2\377\14\12\4\377\21\16\5\377\27\24\6\377\35\31\10" \
- "\377#\36\12\377($\14\377-(\16\3772-\17\37760\20\377\20392\21\3774aY." \
- "\377\343\331\214\377\343\331\217\377ib6\37792\21\377;2\20\37791\20\377" \
- "7/\17\3775,\16\3774*\17\3772(\15\377/%\14\377.\"\13\377+\40\12\377)\36" \
- "\11\377(\33\10\377&\31\7\377&\31\6\377&\27\6\377(\27\6\377*\30\6\377" \
- "-\32\7\377/\33\7\3771\35\7\3773\35\10\3776\40\11\3779!\11\377;\"\12\377" \
- "=\"\12\377>#\12\377@%\13\377C&\13\377D'\13\377G(\14\377I)\14\377K+\14" \
- "\377M,\14\377Q-\15\377U1\16\377Y5\17\377^8\20\377b=\21\377hB\23\377m" \
- "F\25\377rJ\26\377wN\30\377|T\32\377\200V\32\377\202Y\33\377\205Z\33\377" \
- "\210_\37\377\340\331\273\377\202\346\343\306\377\215\346\343\307\377" \
- "\22\346\343\306\377\313\260\201\377\246k\37\377\247l\40\377\250j\37\377" \
- "\250i\36\377\250g\36\377\247d\35\377\246b\33\377\246`\33\377\247^\31" \
- "\377\246[\31\377\247[\31\377\252Y\30\377\252Y\27\377\254Z\27\377\257" \
- "\\\30\377\260\\\30\377\202\263^\30\377\7\266`\31\377\270`\31\377\271" \
- "a\31\377\273b\31\377\274c\32\377\276d\32\377\277d\32\377\202\300e\32" \
- "\377\14\300f\33\377\277g\33\377\276g\33\377\276j\34\377\276k\35\377\275" \
- "k\35\377\275m\36\377\273n\37\377\272p\40\377\271q\40\377\271r\40\377" \
- "\271t\"\377\202\270u\"\377\21\266t\"\377\264v$\377\333\305\202\377\344" \
- "\333\231\377\343\333\227\377\343\332\224\377\343\332\222\377\343\332" \
- "\221\377\343\331\216\377\343\331\214\377\343\331\210\377\343\330\204" \
- "\377\343\330~\377\343\327{\377\342\325r\377\342\323f\377`W\"\377\202" \
- "92\21\377\13""60\20\3772-\17\377,'\16\377'#\14\377#\36\12\377\34\30\10" \
- "\377\27\24\6\377\21\16\5\377\13\11\3\377\6\5\2\377\3\3\1\377\377\0\0" \
- "\0\377\377\0\0\0\377\310\0\0\0\377\14\1\1\0\377\5\4\1\377\11\10\3\377" \
- "\17\15\5\377\24\21\5\377\31\25\7\377\40\33\11\377&!\13\377+&\15\377/" \
- "*\16\3774.\20\37771\20\377\20392\21\377\4\257\246e\377\343\331\215\377" \
- "\330\315\207\377MF!\377\202;3\21\377-:1\20\3778/\17\3775+\16\3774*\16" \
- "\3771&\14\377.\"\13\377-\"\12\377)\36\11\377)\34\10\377&\31\7\377%\30" \
- "\6\377&\26\6\377%\25\5\377&\25\6\377)\27\6\377+\30\6\377.\31\6\3771\33" \
- "\7\3772\34\7\3775\35\7\3777\37\10\377:\40\10\377<!\10\377=\"\11\377@" \
- "#\11\377B$\11\377D%\12\377F'\12\377G(\12\377J)\13\377M*\13\377Q.\14\377" \
- "V2\15\377[6\17\377`:\21\377f@\22\377kD\24\377rI\26\377wN\27\377{S\31" \
- "\377\177V\32\377\202Y\33\377\205Z\33\377\206Z\33\377\300\254\202\377" \
- "\205\346\343\305\377\207\346\343\306\377\204\346\343\305\377\31\336\325" \
- "\262\377\246l\40\377\247l\40\377\251l\37\377\251j\36\377\247g\36\377" \
- "\250f\35\377\250c\34\377\250a\33\377\247_\31\377\247]\31\377\250[\30" \
- "\377\252Z\30\377\253Z\27\377\254[\27\377\257\\\30\377\261]\30\377\263" \
- "^\30\377\265_\31\377\267a\31\377\271a\31\377\273b\31\377\274c\32\377" \
- "\276d\32\377\300e\32\377\202\301e\32\377\13\302g\33\377\302h\33\377\302" \
- "i\34\377\300j\34\377\277k\35\377\277m\36\377\277o\37\377\276p\37\377" \
- "\276q\40\377\275q!\377\273t!\377\202\272u!\377\7\271v\"\377\270u\"\377" \
- "\266t\"\377\315\251b\377\344\333\231\377\343\333\230\377\343\332\225" \
- "\377\202\343\332\222\377\11\343\331\217\377\343\331\214\377\343\331\211" \
- "\377\343\331\206\377\343\330\201\377\343\327}\377\342\326u\377\342\324" \
- "j\377\246\231@\377\20292\21\377\14""71\20\3774.\20\377/*\16\377*%\15" \
- "\377%!\13\377\37\33\11\377\31\25\7\377\23\20\5\377\17\15\5\377\11\10" \
- "\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\311\0\0\0\377" \
- "\14\3\3\1\377\7\6\2\377\14\12\4\377\21\16\5\377\27\24\6\377\35\31\10" \
- "\377#\36\12\377'#\14\377,'\16\3771,\17\37760\20\37782\20\377\20292\21" \
- "\3774MF\40\377\334\321\205\377\343\331\216\377\277\267v\377\77""8\25" \
- "\377=5\21\377=4\21\377;1\21\3779/\20\3777,\17\3774)\15\3772%\15\3770" \
- "$\13\377,!\12\377*\36\11\377)\33\10\377'\31\7\377'\27\6\377%\26\6\377" \
- "%\24\6\377&\24\6\377(\25\5\377,\30\5\377.\31\6\3770\32\6\3772\32\6\377" \
- "4\34\7\3777\35\7\377:\36\7\377;\40\10\377=!\10\377\77\"\10\377B#\11\377" \
- "D$\11\377F%\11\377H&\12\377K'\12\377N+\13\377T/\15\377Y3\17\377^8\17" \
- "\377d=\21\377iB\23\377pH\25\377uM\27\377{Q\31\377~T\31\377\202Y\33\377" \
- "\205Z\33\377\206Z\33\377\237}E\377\346\343\304\377\217\346\343\305\377" \
- "\32\346\343\304\377\262\200=\377\250l\40\377\251l\37\377\250j\37\377" \
- "\250h\36\377\250f\35\377\250d\34\377\250b\34\377\251`\32\377\251]\31" \
- "\377\252\\\30\377\253[\30\377\253Z\30\377\255[\30\377\257\\\30\377\262" \
- "]\27\377\263^\30\377\266`\31\377\270`\31\377\273b\31\377\274c\32\377" \
- "\276d\32\377\300e\32\377\301e\32\377\303f\32\377\202\305i\33\377+\305" \
- "k\34\377\304k\35\377\303m\36\377\301n\36\377\300o\37\377\300p\37\377" \
- "\277r\40\377\277s!\377\276t!\377\275u\"\377\273u\"\377\273v\"\377\272" \
- "w#\377\270u\"\377\304\223G\377\344\333\232\377\343\333\230\377\343\333" \
- "\226\377\343\332\223\377\343\332\222\377\343\331\220\377\343\331\215" \
- "\377\343\331\212\377\343\331\207\377\343\330\202\377\343\327}\377\343" \
- "\326x\377\342\325n\377\331\313]\377JB\30\37792\21\37782\20\37760\20\377" \
- "1,\17\377,'\16\377'#\14\377#\36\12\377\34\30\10\377\27\24\6\377\21\16" \
- "\5\377\14\12\4\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\312" \
- "\0\0\0\377\14\1\1\0\377\5\4\1\377\11\10\3\377\17\15\5\377\24\21\5\377" \
- "\31\25\7\377\37\33\11\377%!\13\377*%\15\377.)\16\3774.\20\37771\20\377" \
- "\20392\21\3773\201yD\377\343\331\214\377\343\331\217\377\231\221Y\377" \
- "=5\21\377\77""5\21\377>4\21\377=2\21\377:/\20\3777,\17\3775*\16\3774" \
- "'\15\3771%\13\377/\"\13\377,\37\11\377+\35\10\377)\31\10\377)\30\6\377" \
- "(\26\5\377(\26\6\377(\25\5\377+\27\5\377-\30\6\3770\31\6\3771\31\6\377" \
- "3\33\7\3776\34\7\3779\35\7\377:\37\10\377<\40\10\377>!\10\377A\"\11\377" \
- "C#\11\377E$\11\377H%\12\377J&\12\377L)\12\377S.\15\377W1\16\377^8\17" \
- "\377c<\21\377h@\23\377oF\24\377tK\27\377yP\30\377~S\30\377\201W\32\377" \
- "\205Z\33\377\206Z\33\377\210^\37\377\334\322\257\377\203\346\343\303" \
- "\377\211\346\343\304\377\202\346\343\303\377\202\346\342\303\377\17\304" \
- "\244l\377\250l\40\377\251m\40\377\251j\40\377\251i\37\377\252h\35\377" \
- "\250e\35\377\251c\33\377\251a\32\377\252_\32\377\253]\30\377\253[\30" \
- "\377\254[\31\377\255[\30\377\260\\\30\377\202\263^\30\377'\266`\31\377" \
- "\271a\32\377\273b\31\377\274c\32\377\277d\32\377\301e\32\377\303f\32" \
- "\377\306i\34\377\306j\34\377\310l\36\377\307m\35\377\306n\36\377\305" \
- "o\37\377\304p\37\377\302q\40\377\301s\40\377\301t!\377\277t!\377\277" \
- "w!\377\276w#\377\275w#\377\273v\"\377\272w#\377\277\2066\377\341\325" \
- "\222\377\343\333\231\377\343\333\226\377\343\332\224\377\343\332\222" \
- "\377\343\331\220\377\343\331\216\377\343\331\212\377\343\331\210\377" \
- "\343\330\204\377\343\330~\377\343\327{\377\342\325r\377\342\323f\377" \
- "\204y/\377\20292\21\377\14""71\20\3774.\20\377.)\16\377*%\15\377%!\13" \
- "\377\37\33\11\377\31\25\7\377\23\20\5\377\16\14\4\377\11\10\3\377\5\4" \
- "\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\313\0\0\0\377\14\3\3\1\377" \
- "\7\6\2\377\14\12\4\377\21\16\5\377\26\23\6\377\34\30\10\377\"\35\12\377" \
- "'#\14\377,'\15\3771,\17\3775/\17\37782\20\377\20392\21\3772\273\262m" \
- "\377\343\331\215\377\343\331\217\377|sB\377\77""5\21\377@5\21\377\77" \
- "4\21\377>3\21\377<0\20\377:-\17\3778+\16\3775(\15\3773&\14\3770#\13\377" \
- "0\40\11\377.\36\11\377-\34\10\377+\31\7\377+\30\7\377*\27\6\377,\30\5" \
- "\377-\30\6\3770\31\6\3771\31\6\3773\33\7\3776\34\7\3779\35\7\377:\37" \
- "\10\377<\40\10\377>!\10\377A\"\11\377C#\11\377E$\11\377H%\12\377J&\12" \
- "\377L)\12\377Q,\14\377U0\15\377\\6\17\377a;\21\377g\77\22\377mE\24\377" \
- "sJ\26\377xO\27\377|S\31\377\201V\33\377\205Z\33\377\206Z\33\377\210\\" \
- "\34\377\270\237p\377\220\346\342\302\377E\327\310\236\377\250l\40\377" \
- "\251m\40\377\251l\40\377\252j\37\377\252h\36\377\252f\35\377\252d\34" \
- "\377\252c\32\377\252`\33\377\253^\31\377\254]\31\377\254\\\31\377\255" \
- "[\30\377\260\\\30\377\263^\30\377\263_\30\377\266`\31\377\271a\32\377" \
- "\273b\31\377\275c\32\377\300e\32\377\302g\32\377\305i\33\377\306j\34" \
- "\377\311m\35\377\311o\36\377\311p\37\377\307q\37\377\306q\37\377\306" \
- "s\37\377\304t\40\377\301t\40\377\302u\"\377\300v\"\377\277w\"\377\277" \
- "x$\377\275w#\377\273v\"\377\274{*\377\337\315\211\377\343\333\231\377" \
- "\343\333\227\377\343\332\224\377\343\332\222\377\343\332\221\377\343" \
- "\331\216\377\343\331\214\377\343\331\210\377\343\331\206\377\343\330" \
- "\201\377\343\327{\377\342\326u\377\342\324j\377\276\260K\377;4\22\377" \
- "92\21\37782\20\3775/\17\3770+\17\377,'\15\377'#\14\377\"\35\12\377\34" \
- "\30\10\377\26\23\6\377\20\16\4\377\14\12\4\377\6\5\2\377\3\3\1\377\377" \
- "\0\0\0\377\377\0\0\0\377\314\0\0\0\377\14\1\1\0\377\5\4\1\377\11\10\3" \
- "\377\16\14\4\377\23\20\5\377\31\25\7\377\37\33\11\377$\37\13\377)%\14" \
- "\377-(\16\3773-\17\37760\20\377\20392\21\377\24QJ\"\377\336\325\206\377" \
- "\343\331\215\377\341\330\216\377qg8\377@5\21\377@5\22\377@5\21\377\77" \
- "3\20\377=0\20\377<.\17\3779,\16\3777)\15\3775&\14\3773$\13\3772\"\12" \
- "\3770\40\11\3770\35\10\377.\34\10\377.\31\7\377\202.\31\6\377\35""0\31" \
- "\6\3771\31\6\3773\33\7\3776\34\7\3779\35\7\377:\37\10\377<\40\10\377" \
- ">!\10\377A\"\11\377C#\11\377E$\11\377H%\12\377J&\12\377K(\12\377P+\14" \
- "\377T.\15\377[4\16\377_8\21\377f>\21\377lC\23\377rI\26\377wM\27\377{" \
- "R\27\377\200V\32\377\204Y\33\377\206Z\33\377\210\\\34\377\226n1\377\345" \
- "\340\276\377\214\346\342\301\377\204\346\342\300\3776\256y3\377\251m" \
- "\40\377\252l\40\377\252k\37\377\253j\36\377\252g\36\377\252e\34\377\253" \
- "c\33\377\253a\33\377\254_\31\377\254]\31\377\254\\\31\377\255[\30\377" \
- "\260\\\30\377\263^\30\377\263_\30\377\267a\31\377\271a\32\377\273b\31" \
- "\377\275c\32\377\300f\33\377\303h\33\377\305j\34\377\310l\36\377\312" \
- "o\36\377\313q\37\377\312r\40\377\307s\37\377\307t!\377\307u\40\377\305" \
- "u!\377\302w!\377\302w#\377\301x#\377\300x\"\377\277y$\377\275w#\377\275" \
- "x%\377\332\302|\377\343\333\231\377\343\333\227\377\343\332\224\377\343" \
- "\332\222\377\343\332\221\377\343\331\217\377\343\331\214\377\343\331" \
- "\211\377\343\331\206\377\343\330\202\377\343\327}\377\342\326u\377\342" \
- "\325n\377\335\317`\377UK\33\377\20292\21\377\14""60\20\3773-\17\377-" \
- "(\16\377)%\14\377$\37\13\377\37\33\11\377\31\25\7\377\23\20\5\377\16" \
- "\14\4\377\11\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\315\0\0\0\377\14\3\3\1\377\6\5\2\377\13\11\3\377\20\16\4\377\26\23\6" \
- "\377\33\27\10\377!\34\11\377&!\13\377+&\15\377/*\16\3774.\20\37771\20" \
- "\377\20392\21\3772\207~G\377\343\331\212\377\343\331\216\377\337\325" \
- "\214\377e[.\377A6\22\377C7\22\377A6\21\377A4\21\377\77""2\17\377=0\17" \
- "\377;-\17\3779+\16\3778(\14\3776%\14\3775$\13\3772\40\11\3772\37\11\377" \
- "1\35\10\3771\34\7\3770\33\7\3771\32\7\3771\31\6\3773\33\7\3776\34\7\377" \
- "9\35\7\377:\37\10\377<\40\10\377>!\10\377A\"\11\377C#\11\377E$\11\377" \
- "H%\12\377J&\12\377K(\12\377O*\13\377S-\14\377Z3\16\377^7\17\377d<\21" \
- "\377jA\22\377qG\25\377uK\27\377{Q\27\377~T\32\377\204Y\33\377\206Z\33" \
- "\377\210\\\34\377\212]\34\377\317\276\223\377\205\346\342\277\377\202" \
- "\346\342\300\377\207\346\342\277\377\202\346\342\276\377\16\301\235b" \
- "\377\251m\40\377\252m\40\377\253l\40\377\254j\37\377\253i\36\377\253" \
- "f\35\377\253d\33\377\253c\34\377\254`\32\377\254^\31\377\254\\\31\377" \
- "\257\\\30\377\260\\\30\377\202\263^\30\377\31\266`\31\377\271a\32\377" \
- "\273b\31\377\275d\32\377\300g\33\377\303i\34\377\305l\34\377\307n\35" \
- "\377\311q\37\377\312r\40\377\311s\40\377\310u!\377\307u!\377\306v!\377" \
- "\305w\"\377\303x\"\377\302y$\377\302y#\377\301y#\377\277y$\377\276x$" \
- "\377\330\273t\377\344\333\231\377\343\333\227\377\343\332\225\377\202" \
- "\343\332\222\377\12\343\331\217\377\343\331\215\377\343\331\211\377\343" \
- "\331\207\377\343\330\202\377\343\330~\377\343\326x\377\342\325n\377\342" \
- "\323f\377\206z/\377\20292\21\377\14""71\20\3774.\20\377/*\16\377+&\15" \
- "\377&!\13\377!\34\11\377\33\27\10\377\26\23\6\377\20\16\4\377\13\11\3" \
- "\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\316\0\0\0\377\15" \
- "\1\1\0\377\4\3\1\377\10\7\3\377\15\13\4\377\22\17\5\377\30\25\7\377\35" \
- "\31\10\377#\36\12\377'#\14\377,'\16\3771,\17\37760\20\37782\20\377\202" \
- "92\21\377\7;4\23\377\266\254h\377\343\331\212\377\343\331\216\377\332" \
- "\317\211\377]R)\377C7\22\377\202D7\22\377)C6\21\377@3\20\377>0\17\377" \
- "=/\17\377<,\16\377;*\15\3779(\14\3778$\13\3775\"\13\3775!\12\3774\40" \
- "\10\3773\36\10\3773\35\10\3773\33\7\3774\34\7\3776\34\7\3779\35\7\377" \
- ":\37\10\377<\40\10\377>!\10\377A\"\11\377C#\11\377E$\11\377G%\12\377" \
- "J&\12\377K(\12\377O*\13\377S-\14\377X2\15\377^7\17\377c;\20\377i\77\22" \
- "\377oF\24\377tJ\26\377yO\30\377~S\31\377\202W\32\377\205Z\33\377\210" \
- "\\\34\377\211\\\34\377\251\211R\377\202\346\342\275\377\211\346\342\276" \
- "\377\202\346\342\275\377\202\346\341\275\377)\346\341\274\377\327\302" \
- "\224\377\251m\40\377\252m!\377\252l\40\377\253k\37\377\253i\37\377\254" \
- "g\35\377\254f\34\377\253c\33\377\254a\32\377\254_\31\377\254]\32\377" \
- "\257]\30\377\257\\\30\377\262]\27\377\263^\30\377\266`\31\377\270a\31" \
- "\377\274c\32\377\275e\32\377\300h\34\377\302j\35\377\305m\35\377\307" \
- "o\36\377\307r\37\377\310t\40\377\310u!\377\307v!\377\307w\"\377\306x" \
- "\"\377\306y#\377\305y#\377\303{#\377\302z$\377\301y#\377\276x#\377\325" \
- "\264k\377\344\333\231\377\343\333\227\377\343\332\225\377\202\343\332" \
- "\222\377\12\343\331\220\377\343\331\215\377\343\331\212\377\343\331\207" \
- "\377\343\330\204\377\343\330~\377\343\327{\377\342\325r\377\342\323f" \
- "\377\263\247G\377\20292\21\377\15""82\20\37760\20\3771,\17\377,'\16\377" \
- "'#\14\377#\36\12\377\35\31\10\377\30\25\7\377\22\17\5\377\15\13\4\377" \
- "\10\7\3\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\317\0\0\0" \
- "\377\14\2\2\1\377\5\4\2\377\12\11\3\377\17\15\4\377\24\21\5\377\31\25" \
- "\7\377\37\33\11\377$\37\13\377)%\14\377.)\16\3773-\17\37760\20\377\203" \
- "92\21\3772JA\32\377\320\305{\377\343\331\214\377\343\331\216\377\324" \
- "\312\204\377ZN$\377E8\22\377F9\23\377F8\22\377D6\21\377C4\21\377A2\17" \
- "\377\77/\16\377\77-\16\377=,\16\377;(\14\377:'\14\377:&\13\3779%\12\377" \
- "8\"\12\3777\40\11\3776\36\10\3777\37\10\3778\35\10\377:\36\7\3779\36" \
- "\10\377<\40\10\377>!\10\377A\"\11\377C#\11\377D$\11\377G%\12\377J&\12" \
- "\377K(\12\377N)\13\377R,\14\377V/\15\377\\5\16\377a9\20\377h>\21\377" \
- "nD\24\377rI\25\377xM\27\377|R\31\377\201V\32\377\206Y\32\377\207[\34" \
- "\377\211\\\34\377\215a\40\377\336\325\256\377\214\346\341\274\377\203" \
- "\345\341\273\377\36\344\337\271\377\257v-\377\253n\40\377\253m\40\377" \
- "\254m\37\377\254j\37\377\253h\36\377\254f\34\377\254d\34\377\254b\34" \
- "\377\254`\31\377\254]\31\377\255]\30\377\257]\30\377\261]\30\377\263" \
- "^\30\377\266a\31\377\270c\32\377\274e\33\377\275h\33\377\300j\34\377" \
- "\302l\35\377\304o\36\377\306q\37\377\307t\40\377\307t!\377\307v\"\377" \
- "\307w\"\377\307x\"\377\306z#\377\202\305z#\377\24\303{$\377\301z#\377" \
- "\300y$\377\323\257e\377\344\333\231\377\343\333\227\377\343\332\225\377" \
- "\343\332\223\377\343\332\222\377\343\331\220\377\343\331\215\377\343" \
- "\331\212\377\343\331\210\377\343\330\204\377\343\330\201\377\343\327" \
- "{\377\342\326u\377\342\324j\377\323\304T\377IA\27\377\20292\21\377\14" \
- "60\20\3773-\17\377.)\16\377)%\14\377$\37\13\377\37\33\11\377\31\25\7" \
- "\377\24\21\5\377\17\15\4\377\12\11\3\377\5\4\2\377\2\2\1\377\377\0\0" \
- "\0\377\377\0\0\0\377\320\0\0\0\377\15\1\1\0\377\3\3\1\377\7\6\2\377\14" \
- "\12\4\377\21\16\5\377\26\23\6\377\33\27\10\377\"\35\12\377&!\13\377+" \
- "&\15\377/*\16\3774.\20\37771\20\377\20292\21\3772;3\21\377_V(\377\340" \
- "\325\205\377\343\331\214\377\343\331\216\377\325\313\205\377cV*\377G" \
- "9\23\377H:\23\377H:\22\377G8\22\377E6\21\377D4\20\377C2\20\377@.\17\377" \
- "\77-\16\377\77+\16\377=)\14\377<'\13\377<%\13\377;%\12\377;#\11\377:" \
- "\"\11\377;\40\11\377:\40\10\377:\37\11\377<\40\10\377>!\10\377A\"\11" \
- "\377B\"\11\377D$\11\377G%\12\377J&\12\377K(\12\377N)\13\377Q+\13\377" \
- "U.\14\377[3\17\377_8\17\377f=\21\377kA\23\377qH\25\377vM\26\377{P\31" \
- "\377\200V\31\377\204Y\33\377\207[\34\377\211\\\34\377\213^\34\377\270" \
- "\235i\377\215\345\341\273\377\203\345\341\272\377\33\302\236_\377\253" \
- "n\40\377\253m\40\377\254l\40\377\254l\37\377\254j\36\377\255g\35\377" \
- "\254e\34\377\254c\34\377\255a\32\377\254^\31\377\255^\32\377\260]\30" \
- "\377\261]\31\377\263`\31\377\266b\31\377\270d\32\377\272f\34\377\276" \
- "i\34\377\277k\35\377\300m\36\377\303p\36\377\305r\37\377\306t\40\377" \
- "\307v\"\377\306w\"\377\306y\"\377\202\306z#\377\25\305{#\377\303{$\377" \
- "\302z$\377\301y#\377\326\263i\377\343\333\231\377\343\333\227\377\343" \
- "\332\225\377\343\332\223\377\343\332\222\377\343\331\220\377\343\331" \
- "\216\377\343\331\212\377\343\331\210\377\343\330\204\377\343\330\201" \
- "\377\343\327{\377\342\326u\377\342\324j\377\335\317`\377bX\40\377\202" \
- "92\21\377\15""71\20\3774.\20\377/*\16\377+&\15\377&!\13\377\"\35\12\377" \
- "\33\27\10\377\26\23\6\377\21\16\5\377\14\12\4\377\7\6\2\377\3\3\1\377" \
- "\1\1\0\377\377\0\0\0\377\377\0\0\0\377\321\0\0\0\377A\1\1\0\377\5\4\1" \
- "\377\11\10\3\377\16\14\4\377\23\20\5\377\31\25\7\377\35\31\10\377#\36" \
- "\12\377'#\14\377,'\15\3771,\17\3775/\17\37782\20\37792\21\377;3\21\377" \
- "=5\21\377~s\77\377\343\331\211\377\343\331\214\377\343\331\216\377\333" \
- "\321\211\377k^1\377I;\23\377H:\23\377I:\23\377H8\22\377H7\21\377G6\21" \
- "\377E3\21\377D1\17\377C/\17\377A-\16\377@+\15\377@)\15\377>(\14\377\77" \
- "&\13\377>%\13\377=#\12\377=#\11\377=\"\12\377>\"\11\377\77\"\10\377@" \
- "\"\11\377B\"\11\377D$\11\377G%\12\377J&\12\377J'\12\377M)\13\377Q+\13" \
- "\377T-\14\377Z2\16\377^7\20\377d;\20\377j\77\22\377pF\24\377uJ\26\377" \
- "zO\27\377~S\31\377\203X\33\377\206[\33\377\211\\\34\377\212]\34\377\223" \
- "i)\377\343\336\266\377\212\345\341\272\377\204\345\341\271\3772\345\341" \
- "\270\377\326\304\223\377\251m\40\377\252n!\377\254m\40\377\254k\37\377" \
- "\254i\37\377\255i\35\377\254f\34\377\254c\34\377\255a\32\377\254_\31" \
- "\377\255_\32\377\260_\31\377\261`\31\377\263b\32\377\266c\32\377\270" \
- "f\33\377\272h\34\377\276j\36\377\277n\36\377\277o\37\377\301q\37\377" \
- "\304t\40\377\305u!\377\305w\"\377\306x#\377\306z#\377\305{#\377\306{" \
- "#\377\303{%\377\303{$\377\302z%\377\327\270n\377\343\333\231\377\343" \
- "\333\227\377\343\332\225\377\343\332\223\377\343\332\222\377\343\331" \
- "\220\377\343\331\216\377\343\331\212\377\343\331\210\377\343\331\206" \
- "\377\343\330\201\377\343\327}\377\342\326u\377\342\325n\377\341\322`" \
- "\377\203w.\377\20292\21\377\15""82\20\3775/\17\3771,\17\377,'\16\377" \
- "'#\14\377#\36\12\377\35\31\10\377\30\25\7\377\23\20\5\377\16\14\4\377" \
- "\11\10\3\377\5\4\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\323\0\0" \
- "\0\377\31\3\3\1\377\6\5\2\377\13\11\3\377\17\15\4\377\24\21\5\377\31" \
- "\25\7\377\37\33\11\377$\37\13\377)%\14\377-(\16\3772-\17\37760\20\377" \
- "82\20\377;3\21\377<4\21\377>5\21\377\242\231X\377\343\331\211\377\343" \
- "\331\214\377\343\331\216\377\337\326\215\377wj8\377I;\23\377K<\24\377" \
- "K;\23\377\202J9\22\377%H6\21\377H5\20\377G3\20\377E1\20\377E0\17\377" \
- "D.\16\377C,\15\377C*\14\377A)\14\377A'\13\377A&\13\377A%\13\377B&\12" \
- "\377B$\11\377B$\12\377C#\11\377D$\11\377G%\12\377I&\12\377J'\12\377M" \
- ")\13\377P*\13\377S,\14\377W0\15\377\\5\17\377c:\20\377h>\22\377nD\24" \
- "\377sI\25\377yM\27\377~R\30\377\202V\31\377\205Z\33\377\210\\\34\377" \
- "\212]\34\377\214^\34\377\306\261~\377\211\345\341\270\377\202\345\340" \
- "\270\377\204\345\340\267\377\32\344\337\264\377\262{2\377\252n!\377\254" \
- "n\40\377\255l\37\377\254j\37\377\254h\36\377\255g\34\377\254e\34\377" \
- "\255c\34\377\256a\32\377\257b\32\377\260`\33\377\262b\32\377\262b\33" \
- "\377\266e\34\377\270g\34\377\271j\35\377\275m\36\377\277n\36\377\300" \
- "q\40\377\301r\40\377\301t\40\377\302w!\377\303x\"\377\305y\"\377\202" \
- "\305z#\377\202\303{$\377\5\303}(\377\332\274u\377\343\333\231\377\343" \
- "\333\227\377\343\332\225\377\202\343\332\222\377\13\343\331\220\377\343" \
- "\331\216\377\343\331\212\377\343\331\210\377\343\331\206\377\343\330" \
- "\201\377\343\327}\377\342\326u\377\342\325n\377\342\323f\377\243\226" \
- ";\377\20292\21\377\15""82\20\37760\20\3772-\17\377-(\16\377)%\14\377" \
- "$\37\13\377\37\33\11\377\31\25\7\377\24\21\5\377\17\15\4\377\12\11\3" \
- "\377\6\5\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377\324\0\0\0\377(\1" \
- "\1\0\377\4\3\1\377\7\6\2\377\14\12\4\377\21\16\5\377\26\23\6\377\33\27" \
- "\10\377!\34\11\377&!\13\377*%\15\377.)\16\3773-\17\37760\20\377;3\21" \
- "\377<4\21\377>5\21\377D:\24\377\267\255g\377\343\331\211\377\343\331" \
- "\214\377\343\331\216\377\340\326\214\377\205yD\377K<\24\377N=\24\377" \
- "N<\23\377M<\23\377M:\22\377K8\21\377K7\21\377I6\20\377H3\17\377H1\17" \
- "\377F/\17\377F.\16\377E,\16\377D+\15\377E+\14\377D*\13\377D(\13\377\202" \
- "E'\13\377\3F&\12\377F%\12\377G%\12\377\202J'\12\377\22M)\13\377O)\13" \
- "\377R,\13\377V.\14\377[4\16\377a9\20\377f=\20\377kA\23\377qG\24\377w" \
- "L\26\377{P\27\377\200U\30\377\205Y\32\377\210\\\33\377\212]\34\377\213" \
- "^\34\377\234u7\377\345\340\266\377\207\345\340\267\377\205\345\340\266" \
- "\377\202\345\340\265\377\12\345\340\264\377\305\242d\377\253n\40\377" \
- "\253m\40\377\254m\40\377\254l\37\377\254j\36\377\254h\35\377\254f\34" \
- "\377\256e\34\377\202\255c\33\377\16\260d\33\377\261d\33\377\263e\33\377" \
- "\267h\34\377\270i\35\377\272l\36\377\273n\37\377\276p\37\377\277s\40" \
- "\377\300u!\377\302u\"\377\302w#\377\302x#\377\303z$\377\202\303{$\377" \
- "\6\302z$\377\305\202/\377\335\306\200\377\343\333\230\377\343\333\226" \
- "\377\343\332\224\377\202\343\332\222\377\14\343\331\220\377\343\331\216" \
- "\377\343\331\212\377\343\331\210\377\343\331\206\377\343\330\201\377" \
- "\343\327}\377\343\326x\377\342\325n\377\342\323f\377\264\247B\377>6\23" \
- "\377\20292\21\377\15""60\20\3773-\17\377.)\16\377*%\15\377&!\13\377!" \
- "\34\11\377\33\27\10\377\26\23\6\377\21\16\5\377\14\12\4\377\7\6\2\377" \
- "\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\325\0\0\0\377,\2\2\1" \
- "\377\5\4\1\377\10\7\3\377\15\13\4\377\22\17\5\377\30\25\7\377\34\30\10" \
- "\377\"\35\12\377&!\13\377+&\15\3770+\17\3774.\20\37791\20\377<4\21\377" \
- ">5\21\377@6\21\377F<\26\377\300\266m\377\343\331\211\377\343\331\214" \
- "\377\343\331\216\377\343\331\220\377\251\234`\377RB\30\377N=\24\377O" \
- "=\23\377P=\24\377O<\23\377O:\23\377M:\22\377M8\21\377L6\20\377K4\21\377" \
- "K3\20\377I1\20\377I/\16\377I-\15\377G-\15\377H,\15\377I+\14\377G)\13" \
- "\377I*\14\377J)\13\377J(\13\377\202K)\13\377\22M)\12\377P*\13\377R,\13" \
- "\377U-\14\377Z1\16\377^6\17\377d;\21\377i\77\22\377oE\24\377uI\25\377" \
- "zO\30\377\177S\31\377\204X\32\377\207[\33\377\212]\34\377\213^\34\377" \
- "\216_\35\377\313\272\207\377\202\345\340\264\377\202\345\340\265\377" \
- "\207\345\340\264\377\204\345\340\263\377\11\333\312\227\377\251m\40\377" \
- "\252n!\377\254m\40\377\254k\37\377\254j\37\377\254h\36\377\255h\35\377" \
- "\255g\34\377\202\257f\34\377\15\260f\34\377\261f\34\377\264g\34\377\266" \
- "j\35\377\267k\36\377\270m\36\377\273o\37\377\276r\40\377\277t!\377\300" \
- "u\"\377\300v\"\377\302y#\377\302{#\377\202\302z$\377\6\301z#\377\310" \
- "\215<\377\341\322\216\377\343\333\230\377\343\333\226\377\343\332\224" \
- "\377\202\343\332\222\377\14\343\331\217\377\343\331\215\377\343\331\212" \
- "\377\343\331\210\377\343\331\206\377\343\330\201\377\343\327}\377\343" \
- "\326x\377\342\325n\377\342\323f\377\303\265N\377B;\24\377\20292\21\377" \
- "\15""71\20\3774.\20\377/*\16\377+&\15\377&!\13\377\"\35\12\377\34\30" \
- "\10\377\30\25\7\377\22\17\5\377\16\14\4\377\10\7\3\377\5\4\1\377\1\1" \
- "\0\377\377\0\0\0\377\377\0\0\0\377\327\0\0\0\377.\3\3\1\377\5\4\2\377" \
- "\12\11\3\377\17\15\5\377\24\21\5\377\31\25\7\377\36\32\11\377#\36\12" \
- "\377'#\14\377,'\15\3770+\17\3776/\17\377:2\21\377>5\21\377@6\21\377@" \
- "6\22\377M@\30\377\306\275r\377\343\331\210\377\343\331\212\377\343\331" \
- "\216\377\343\331\220\377\305\272x\377`O#\377P>\24\377Q\77\24\377R>\24" \
- "\377R=\24\377Q<\23\377Q;\22\377Q:\22\377O8\22\377P8\21\377O6\20\377N" \
- "4\20\377M2\16\377M1\17\377L0\16\377L.\16\377L.\15\377M.\15\377M-\15\377" \
- "L,\14\377M+\14\377N,\14\377P,\13\377\202R,\14\377\17T-\14\377Y0\15\377" \
- "]4\17\377b9\20\377h=\21\377mC\23\377sH\25\377wM\27\377|Q\30\377\202V" \
- "\31\377\205Z\33\377\210\\\33\377\213^\34\377\216^\35\377\243~@\377\210" \
- "\345\340\263\377\205\345\340\262\377\203\345\337\261\377\10\266\204=" \
- "\377\252n!\377\253m\40\377\254m\37\377\254l\37\377\255k\37\377\255j\36" \
- "\377\256i\35\377\202\257h\35\377\14\260h\35\377\262i\35\377\264j\36\377" \
- "\266l\36\377\270m\37\377\270o\37\377\273q\40\377\275t!\377\276t!\377" \
- "\277w\"\377\300x\"\377\300y#\377\203\301y#\377\23\315\234O\377\342\327" \
- "\225\377\343\333\227\377\343\332\225\377\343\332\223\377\343\332\222" \
- "\377\343\332\221\377\343\331\217\377\343\331\215\377\343\331\212\377" \
- "\343\331\210\377\343\330\204\377\343\330\201\377\343\327}\377\343\326" \
- "x\377\342\325n\377\342\323f\377\311\273Q\377IA\26\377\20292\21\377\15" \
- "71\20\3775/\17\3770+\17\377,'\15\377'#\14\377#\36\12\377\36\32\11\377" \
- "\31\25\7\377\23\20\5\377\17\15\5\377\12\11\3\377\5\4\2\377\3\3\1\377" \
- "\377\0\0\0\377\377\0\0\0\377\330\0\0\0\377\33\1\1\0\377\3\3\1\377\6\5" \
- "\2\377\13\11\3\377\20\16\4\377\25\22\6\377\32\26\7\377\37\33\11\377$" \
- "\37\13\377($\14\377,'\16\3772,\17\37770\17\377=4\21\377@6\21\377@6\22" \
- "\377B7\22\377SF\34\377\314\301u\377\343\331\210\377\343\331\212\377\343" \
- "\331\215\377\343\331\217\377\331\317\207\377{k8\377R\77\24\377S\77\24" \
- "\377\202S@\24\377\14S\77\23\377S=\23\377R<\23\377R:\22\377S:\21\377Q" \
- "7\21\377Q7\20\377Q5\20\377P4\20\377P3\16\377P2\17\377O1\17\377\202P0" \
- "\16\377\25Q/\16\377R/\15\377R0\15\377T/\15\377T.\15\377V/\14\377Y1\16" \
- "\377\\4\17\377b9\20\377g=\21\377kA\23\377qF\24\377wK\26\377{O\27\377" \
- "\200S\30\377\204X\33\377\210[\33\377\213^\34\377\214^\34\377\217_\34" \
- "\377\320\277\214\377\213\345\337\261\377\204\345\337\260\377\25\312\255" \
- "p\377\253n\40\377\252n!\377\254m\40\377\255l\37\377\254l\37\377\256k" \
- "\37\377\256j\36\377\257j\36\377\260j\36\377\261j\36\377\262j\36\377\264" \
- "l\36\377\266n\37\377\267o\40\377\271r\40\377\271r!\377\273t\"\377\275" \
- "w\"\377\276w#\377\277x$\377\202\277y$\377\24\301})\377\327\272q\377\343" \
- "\333\231\377\343\333\227\377\343\332\225\377\343\332\223\377\343\332" \
- "\222\377\343\332\221\377\343\331\217\377\343\331\215\377\343\331\212" \
- "\377\343\331\207\377\343\330\204\377\343\330\201\377\343\327}\377\343" \
- "\326x\377\342\325n\377\342\323f\377\315\276Q\377JB\27\377\20292\21\377" \
- "\16""82\20\3775/\17\3771,\17\377,'\16\377($\14\377$\37\13\377\37\33\11" \
- "\377\31\25\7\377\25\22\6\377\20\16\4\377\13\11\3\377\6\5\2\377\3\3\1" \
- "\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\331\0\0\0\377\77\1\1\0\377" \
- "\4\3\1\377\7\6\2\377\14\12\4\377\21\16\5\377\26\23\6\377\32\26\7\377" \
- "\40\33\11\377$\37\13\377)%\14\377.(\16\3775.\17\377:1\20\377>5\21\377" \
- "@5\21\377B7\22\377D7\22\377ZO\40\377\317\302u\377\343\331\210\377\343" \
- "\331\212\377\343\331\215\377\343\331\217\377\343\332\221\377\245\230" \
- "]\377ZG\33\377TA\24\377VA\25\377WA\25\377WA\24\377V@\24\377V>\23\377" \
- "V=\22\377U<\22\377U;\22\377U9\21\377U:\22\377T8\20\377T7\20\377T6\20" \
- "\377U5\17\377T4\17\377U4\17\377V2\17\377U3\16\377V2\16\377W2\16\377Y" \
- "2\15\377[4\17\377^7\20\377c:\20\377g=\22\377lC\23\377pG\24\377vJ\25\377" \
- "{O\27\377\177S\31\377\203V\31\377\206Z\33\377\212\\\33\377\214^\34\377" \
- "\216_\35\377\245\200A\377\211\345\337\260\377\202\345\337\257\377\203" \
- "\345\337\256\377\23\345\337\255\377\340\327\243\377\252q%\377\252n!\377" \
- "\253m\40\377\254m\40\377\255m\37\377\255k\37\377\256k\37\377\260l\37" \
- "\377\260l\36\377\261l\37\377\263l\37\377\264m\37\377\266o\37\377\267" \
- "q!\377\271r!\377\272t!\377\273v!\377\202\275w\"\377\202\275w#\377\5\307" \
- "\216>\377\337\317\211\377\343\333\230\377\343\333\226\377\343\332\224" \
- "\377\202\343\332\222\377\15\343\331\220\377\343\331\216\377\343\331\214" \
- "\377\343\331\211\377\343\331\207\377\343\330\204\377\343\330\201\377" \
- "\343\327}\377\342\326u\377\342\325n\377\342\323f\377\315\276Q\377OF\30" \
- "\377\20292\21\377\16""82\20\37760\20\3772-\17\377-(\16\377)%\14\377$" \
- "\37\13\377\40\33\11\377\33\27\10\377\26\23\6\377\21\16\5\377\14\12\4" \
- "\377\7\6\2\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\333\0" \
- "\0\0\377\35\2\2\1\377\5\4\1\377\10\7\3\377\15\13\4\377\22\17\5\377\27" \
- "\24\6\377\33\27\10\377!\34\11\377%!\13\377*%\14\3770*\16\3775.\17\377" \
- ";2\21\377@5\21\377B7\22\377C7\22\377E8\22\377UH\35\377\305\271o\377\343" \
- "\331\207\377\343\331\211\377\343\331\214\377\343\331\216\377\343\331" \
- "\220\377\323\311\204\377|k8\377VB\25\377XC\25\377YC\25\377\202YB\25\377" \
- "\202Y@\24\377\36Z\77\23\377Y>\22\377X<\22\377Y<\22\377X;\21\377W:\21" \
- "\377X8\21\377X8\20\377X7\21\377Y6\20\377Y7\17\377Z7\20\377\\7\17\377" \
- "\\6\17\377^7\17\377`9\20\377d<\20\377h>\21\377lC\23\377qG\24\377vJ\26" \
- "\377zO\30\377~S\31\377\203V\31\377\205Y\32\377\211\\\33\377\213^\34\377" \
- "\216^\35\377\217_\34\377\316\275\207\377\207\345\337\256\377\204\345" \
- "\337\255\377\202\345\336\254\377\202\345\336\253\377\10\276\226Q\377" \
- "\251m\40\377\252n!\377\254n\40\377\255m\40\377\255m\37\377\257n\40\377" \
- "\260m\37\377\202\261n\37\377\36\262n\40\377\263o\40\377\265p\40\377\267" \
- "r!\377\270t\"\377\272v#\377\273w#\377\273v#\377\273v\"\377\275{(\377" \
- "\321\254b\377\343\332\226\377\343\333\227\377\343\332\225\377\343\332" \
- "\223\377\343\332\222\377\343\332\221\377\343\331\217\377\343\331\216" \
- "\377\343\331\214\377\343\331\211\377\343\331\207\377\343\330\202\377" \
- "\343\330~\377\343\327{\377\342\326u\377\342\325n\377\342\323f\377\310" \
- "\271P\377ME\27\377\20292\21\377\16""82\20\37760\20\3772-\17\377-(\16" \
- "\377)%\14\377%!\13\377!\34\11\377\33\27\10\377\27\24\6\377\22\17\5\377" \
- "\15\13\4\377\10\7\3\377\5\4\1\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377" \
- "\335\0\0\0\377\40\2\2\1\377\5\4\2\377\11\10\3\377\16\14\4\377\22\17\5" \
- "\377\30\25\7\377\34\30\10\377!\34\11\377&!\13\377-'\15\3772+\17\3778" \
- "/\17\377=3\21\377@5\22\377C7\22\377E8\22\377G9\23\377PB\31\377\275\261" \
- "g\377\343\331\207\377\343\331\210\377\343\331\212\377\343\331\215\377" \
- "\343\331\217\377\343\332\221\377\262\245f\377`N\35\377YC\25\377[C\26" \
- "\377\\D\26\377\\C\25\377[B\25\377\202[A\24\377\34[@\23\377[\77\23\377" \
- "\\\77\23\377\\>\23\377]=\22\377\\<\22\377]<\21\377];\21\377];\22\377" \
- "^:\20\377_;\21\377_:\20\377`:\21\377b;\21\377f=\21\377jA\22\377nD\24" \
- "\377sI\25\377wM\26\377zO\27\377~S\31\377\202V\31\377\204Y\32\377\210" \
- "Z\33\377\213]\33\377\216^\35\377\217_\34\377\240y9\377\206\345\336\254" \
- "\377\205\345\336\253\377\202\344\336\252\377\202\344\336\251\377\17\327" \
- "\304\211\377\251m\40\377\253n\40\377\252n!\377\254n\40\377\256m\40\377" \
- "\256n\40\377\257n\40\377\260o\40\377\261n\40\377\261o\40\377\263p!\377" \
- "\265r\"\377\267s\"\377\270t!\377\202\271u\"\377\6\271v\"\377\307\225" \
- "F\377\337\317\213\377\343\333\227\377\343\333\226\377\343\332\224\377" \
- "\202\343\332\222\377\16\343\332\221\377\343\331\217\377\343\331\215\377" \
- "\343\331\212\377\343\331\210\377\343\331\206\377\343\330\202\377\343" \
- "\330~\377\343\327{\377\342\326u\377\342\325n\377\341\322`\377\302\262" \
- "G\377G\77\25\377\20292\21\377\16""82\20\37760\20\3772-\17\377.)\16\377" \
- "*%\15\377&!\13\377\"\35\12\377\34\30\10\377\30\25\7\377\22\17\5\377\16" \
- "\14\4\377\11\10\3\377\5\4\2\377\3\3\1\377\377\0\0\0\377\377\0\0\0\377" \
- "\337\0\0\0\377\35\3\3\1\377\5\4\2\377\12\11\3\377\17\15\5\377\23\20\5" \
- "\377\30\25\7\377\35\31\10\377\"\35\12\377(\"\13\377-&\15\3774,\17\377" \
- "9/\20\377>4\21\377C7\22\377D9\22\377F:\23\377I;\23\377N\77\26\377\261" \
- "\245^\377\343\331\206\377\343\331\210\377\343\331\212\377\343\331\215" \
- "\377\343\331\216\377\343\331\220\377\332\317\211\377\224\203J\377^G\30" \
- "\377\\D\26\377\202^E\26\377\37_E\26\377_D\25\377_C\24\377`C\25\377`C" \
- "\24\377_B\23\377`B\24\377aA\23\377`@\23\377`>\23\377`\77\22\377b\77\22" \
- "\377b>\22\377c>\22\377d>\21\377e\77\22\377g@\22\377lC\23\377qG\25\377" \
- "sJ\26\377xM\27\377{Q\27\377~S\31\377\202V\31\377\205Y\32\377\207Z\33" \
- "\377\212\\\33\377\214^\34\377\216_\35\377\217_\34\377\307\262x\377\204" \
- "\344\336\252\377\205\344\336\251\377\202\344\336\250\377\203\344\336" \
- "\247\377\15\344\335\246\377\264\2029\377\251m\40\377\252n!\377\254n!" \
- "\377\255n\40\377\256o\40\377\257o!\377\260o!\377\261o!\377\262q\40\377" \
- "\263r!\377\264s!\377\202\266t\"\377\27\267s!\377\275\2033\377\326\271" \
- "s\377\343\333\230\377\343\333\226\377\343\332\225\377\343\332\223\377" \
- "\343\332\222\377\343\332\221\377\343\331\220\377\343\331\216\377\343" \
- "\331\214\377\343\331\211\377\343\331\207\377\343\330\204\377\343\330" \
- "\201\377\343\327}\377\343\326x\377\342\325r\377\342\324j\377\341\322" \
- "`\377\261\244A\377A9\23\377\20292\21\377\16""82\20\37760\20\3772-\17" \
- "\377.)\16\377*%\15\377&!\13\377\"\35\12\377\35\31\10\377\30\25\7\377" \
- "\23\20\5\377\17\15\5\377\12\11\3\377\6\5\2\377\3\3\1\377\377\0\0\0\377" \
- "\377\0\0\0\377\340\0\0\0\377!\1\1\0\377\3\3\1\377\6\5\2\377\12\11\3\377" \
- "\17\15\4\377\24\21\5\377\31\25\7\377\35\31\10\377\"\36\12\377)#\14\377" \
- "/(\15\3775,\16\377:0\20\377@4\21\377C7\22\377F:\23\377H;\23\377H:\23" \
- "\377M>\26\377\241\224Q\377\343\330\204\377\343\331\207\377\343\331\211" \
- "\377\343\331\214\377\343\331\215\377\343\331\217\377\343\332\221\377" \
- "\322\310\201\377\217|E\377]E\26\377_F\26\377aG\27\377aG\26\377\203bF" \
- "\26\377\5bE\25\377cD\25\377dD\25\377dD\24\377dC\25\377\202eC\24\377\24" \
- "fB\24\377gC\23\377hC\23\377hB\24\377jD\24\377nF\24\377rI\26\377tK\27" \
- "\377xN\27\377|Q\27\377}S\31\377\202V\32\377\205Y\32\377\207[\33\377\211" \
- "\\\33\377\213^\34\377\216^\35\377\217_\34\377\231m,\377\340\330\242\377" \
- "\210\344\336\247\377\204\344\335\246\377\202\344\335\245\377\1\316\264" \
- "s\377\202\251m\40\377\20\252n!\377\254n!\377\255o!\377\256o\40\377\256" \
- "p\40\377\260p!\377\262q!\377\262r!\377\263r!\377\263s\"\377\271~-\377" \
- "\320\260h\377\343\332\226\377\343\333\226\377\343\332\225\377\343\332" \
- "\223\377\202\343\332\222\377\17\343\331\220\377\343\331\217\377\343\331" \
- "\215\377\343\331\212\377\343\331\210\377\343\331\206\377\343\330\204" \
- "\377\343\330\201\377\343\327}\377\343\326x\377\342\325r\377\342\324j" \
- "\377\341\322`\377\230\2157\377;4\22\377\20292\21\377\17""82\20\37760" \
- "\20\3772-\17\377.)\16\377*%\15\377&!\13\377\"\35\12\377\35\31\10\377" \
- "\31\25\7\377\24\21\5\377\17\15\4\377\13\11\3\377\6\5\2\377\4\3\1\377" \
- "\1\1\0\377\377\0\0\0\377\377\0\0\0\377\341\0\0\0\377'\1\1\0\377\4\3\1" \
- "\377\7\6\2\377\13\11\3\377\17\15\4\377\24\21\5\377\31\25\7\377\35\31" \
- "\10\377#\37\12\377+$\14\3771)\15\3776-\17\377<1\21\377A5\21\377D7\22" \
- "\377H;\23\377H:\23\377J;\23\377L=\24\377\177p7\377\334\320|\377\343\331" \
- "\206\377\343\331\210\377\343\331\212\377\343\331\214\377\343\331\216" \
- "\377\343\331\220\377\343\332\221\377\313\300{\377\207s<\377`G\27\377" \
- "bH\27\377dG\26\377dH\27\377eI\27\377eI\26\377eH\27\377fG\26\377gH\26" \
- "\377\202hG\26\377\2iF\25\377iG\26\377\202jF\25\377\16lF\24\377mF\25\377" \
- "pI\26\377sJ\26\377uM\27\377yO\27\377|R\31\377~S\32\377\201V\32\377\205" \
- "Y\32\377\206Z\33\377\210\\\33\377\212]\34\377\214^\34\377\202\217_\34" \
- "\377\1\270\233^\377\205\344\335\246\377\204\344\335\245\377\202\344\335" \
- "\244\377\203\344\335\243\377\2\342\332\237\377\255w,\377\202\251m\40" \
- "\377\15\252n!\377\254n!\377\255o!\377\256p!\377\257q!\377\260q\"\377" \
- "\261q\"\377\266z,\377\315\252a\377\342\327\224\377\343\333\226\377\343" \
- "\332\225\377\343\332\224\377\202\343\332\222\377\17\343\332\221\377\343" \
- "\331\217\377\343\331\216\377\343\331\214\377\343\331\211\377\343\331" \
- "\207\377\343\331\206\377\343\330\202\377\343\330~\377\343\327{\377\342" \
- "\326u\377\342\325n\377\342\323f\377\335\316Y\377|q)\377\20392\21\377" \
- "\17""82\20\37760\20\3772-\17\377.)\16\377*%\15\377&!\13\377\"\35\12\377" \
- "\35\31\10\377\31\25\7\377\24\21\5\377\17\15\4\377\13\11\3\377\7\6\2\377" \
- "\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\343\0\0\0\377>\1\1\0" \
- "\377\4\3\1\377\7\6\2\377\13\11\3\377\17\15\4\377\24\21\5\377\31\25\7" \
- "\377\35\31\10\377$\37\13\377+$\14\3771(\15\3777-\17\377=1\21\377@5\21" \
- "\377E8\22\377I;\23\377J;\23\377L=\24\377N=\24\377eU$\377\312\276n\377" \
- "\343\330\204\377\343\331\207\377\343\331\211\377\343\331\212\377\343" \
- "\331\215\377\343\331\216\377\343\331\220\377\343\332\222\377\313\300" \
- "|\377\223~F\377fK\31\377dH\27\377fJ\27\377gJ\27\377hK\30\377iK\27\377" \
- "kK\27\377kJ\27\377kI\27\377kI\26\377mJ\26\377nI\27\377nJ\26\377oJ\26" \
- "\377qJ\26\377rL\27\377tL\27\377wN\30\377zQ\31\377|S\31\377\177V\32\377" \
- "\202W\32\377\204Y\33\377\206[\33\377\210\\\33\377\212]\34\377\213^\34" \
- "\377\216^\35\377\217_\34\377\221c\37\377\332\314\221\377\203\344\335" \
- "\244\377\205\344\335\243\377\202\344\335\242\377\1\344\335\241\377\203" \
- "\344\334\240\377\2\310\252f\377\250l\40\377\202\251m\40\377\12\252n!" \
- "\377\253n!\377\255o!\377\256p!\377\267\2025\377\316\261j\377\342\331" \
- "\225\377\343\333\226\377\343\332\225\377\343\332\223\377\202\343\332" \
- "\222\377\20\343\332\221\377\343\331\220\377\343\331\216\377\343\331\214" \
- "\377\343\331\212\377\343\331\210\377\343\331\206\377\343\330\204\377" \
- "\343\330\201\377\343\327}\377\343\326x\377\342\325r\377\342\324j\377" \
- "\341\322`\377\315\276L\377ZQ\35\377\20392\21\377\17""71\20\3775/\17\377" \
- "2-\17\377-(\16\377*%\15\377&!\13\377\"\35\12\377\35\31\10\377\31\25\7" \
- "\377\24\21\5\377\17\15\4\377\13\11\3\377\7\6\2\377\4\3\1\377\1\1\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\345\0\0\0\377\21\1\1\0\377\4\3\1\377\7\6" \
- "\2\377\13\11\3\377\17\15\4\377\24\21\5\377\31\25\7\377\35\31\10\377#" \
- "\36\12\377-%\14\3772)\16\3778.\17\377>2\21\377B5\21\377F8\22\377I;\23" \
- "\377K<\24\377\202N=\24\377'VD\30\377\257\241Y\377\343\330\202\377\343" \
- "\331\206\377\343\331\207\377\343\331\211\377\343\331\214\377\343\331" \
- "\215\377\343\331\217\377\343\331\220\377\343\332\222\377\327\314\206" \
- "\377\246\224V\377tZ%\377gJ\27\377iK\27\377kM\30\377lM\30\377lL\27\377" \
- "mL\30\377nM\30\377oM\30\377qN\27\377qM\30\377rM\27\377tN\30\377sN\30" \
- "\377vO\30\377xP\30\377{S\31\377}T\31\377\177V\32\377\201W\32\377\204" \
- "Y\33\377\205Z\33\377\210\\\34\377\211\\\34\377\213^\34\377\214^\34\377" \
- "\202\217_\34\377\2\242{8\377\343\333\240\377\204\344\335\241\377\204" \
- "\344\334\240\377\202\344\334\237\377\1\344\334\236\377\202\344\334\235" \
- "\377\3\341\327\227\377\255x,\377\250l\40\377\202\251m\40\377\7\255s%" \
- "\377\275\221G\377\323\274v\377\343\333\227\377\343\333\226\377\343\332" \
- "\224\377\343\332\223\377\202\343\332\222\377\21\343\332\221\377\343\331" \
- "\220\377\343\331\216\377\343\331\215\377\343\331\212\377\343\331\210" \
- "\377\343\331\207\377\343\330\204\377\343\330\202\377\343\330~\377\343" \
- "\327{\377\342\326u\377\342\325n\377\342\324j\377\341\322`\377\254\237" \
- "\77\377E=\25\377\20392\21\377\17""71\20\3775/\17\3771,\17\377-(\16\377" \
- ")%\14\377&!\13\377\"\35\12\377\35\31\10\377\31\25\7\377\24\21\5\377\20" \
- "\16\4\377\13\11\3\377\7\6\2\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\347\0\0\0\377\20\1\1\0\377\4\3\1\377\7\6\2\377\13\11\3\377" \
- "\17\15\4\377\24\21\5\377\31\25\7\377\34\30\10\377!\35\11\377+$\14\377" \
- "5*\16\3778.\17\377>2\21\377C6\21\377G9\22\377J;\23\377\202N=\24\377(" \
- "P>\24\377R\77\24\377\206t8\377\326\312x\377\343\330\202\377\343\331\206" \
- "\377\343\331\210\377\343\331\211\377\343\331\214\377\343\331\215\377" \
- "\343\331\217\377\343\331\220\377\343\332\221\377\343\332\222\377\302" \
- "\263p\377\226\200F\377qT\37\377lM\30\377lM\27\377oN\31\377oN\30\377q" \
- "O\31\377sP\31\377sO\31\377sP\31\377uP\27\377vP\31\377wQ\31\377zR\31\377" \
- "|T\31\377~V\31\377\177V\32\377\202Y\33\377\203Y\33\377\205Z\33\377\207" \
- "[\33\377\210\\\34\377\212]\34\377\213^\34\377\216^\35\377\202\217_\34" \
- "\377\1\272\235[\377\203\344\334\237\377\203\344\334\236\377\202\344\334" \
- "\235\377\205\344\334\234\377\12\344\333\233\377\314\257h\377\247n!\377" \
- "\270\214D\377\316\264m\377\341\326\221\377\343\333\226\377\343\332\225" \
- "\377\343\332\224\377\343\332\223\377\202\343\332\222\377\21\343\332\221" \
- "\377\343\331\220\377\343\331\216\377\343\331\215\377\343\331\212\377" \
- "\343\331\211\377\343\331\207\377\343\331\206\377\343\330\202\377\343" \
- "\330~\377\343\327}\377\343\326x\377\342\325r\377\342\324j\377\342\323" \
- "f\377\331\312X\377yl'\377\20392\21\377\20""82\20\37760\20\3774.\20\377" \
- "0+\17\377,'\16\377)%\14\377%!\13\377!\34\11\377\35\31\10\377\31\25\7" \
- "\377\24\21\5\377\17\15\4\377\13\11\3\377\7\6\2\377\4\3\1\377\1\1\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\351\0\0\0\377=\1\1\0\377\4\3\1\377\7\6\2" \
- "\377\13\11\3\377\17\15\4\377\24\21\5\377\30\25\7\377\34\30\10\377!\34" \
- "\11\377&!\13\3773)\16\3779.\17\377\77""2\21\377C6\21\377G9\22\377J;\23" \
- "\377N=\24\377P>\24\377Q\77\24\377S\77\24\377aL\34\377\261\242Y\377\343" \
- "\330\201\377\343\330\204\377\343\331\206\377\343\331\210\377\343\331" \
- "\211\377\343\331\214\377\343\331\215\377\343\331\216\377\343\331\220" \
- "\377\343\332\221\377\343\332\222\377\341\327\217\377\277\257n\377\234" \
- "\206J\377z[$\377oN\30\377qP\30\377sP\31\377uQ\32\377uQ\30\377vR\31\377" \
- "xS\31\377yT\31\377zT\32\377}U\33\377}U\32\377\200W\32\377\202Y\32\377" \
- "\203Y\33\377\205Z\33\377\206Z\33\377\210\\\34\377\211\\\34\377\213^\34" \
- "\377\214^\34\377\216_\35\377\217_\34\377\221b\36\377\322\277\177\377" \
- "\207\344\334\234\377\1\344\333\233\377\202\344\333\232\377\1\344\333" \
- "\231\377\202\343\333\231\377\6\342\332\226\377\336\322\215\377\343\333" \
- "\226\377\343\332\225\377\343\332\224\377\343\332\223\377\203\343\332" \
- "\222\377\22\343\331\220\377\343\331\217\377\343\331\216\377\343\331\215" \
- "\377\343\331\212\377\343\331\211\377\343\331\207\377\343\331\206\377" \
- "\343\330\202\377\343\330\201\377\343\327}\377\343\327{\377\342\326u\377" \
- "\342\325n\377\342\323f\377\341\322`\377\261\244A\377OF\30\377\20392\21" \
- "\377\20""82\20\37760\20\3773-\17\377/*\16\377,'\15\377($\14\377$\37\13" \
- "\377!\34\11\377\34\30\10\377\30\25\7\377\24\21\5\377\17\15\4\377\13\11" \
- "\3\377\7\6\2\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\353" \
- "\0\0\0\377\"\1\1\0\377\4\3\1\377\7\6\2\377\13\11\3\377\17\15\4\377\23" \
- "\20\5\377\27\24\6\377\33\27\10\377\40\33\11\377#\36\12\377-%\15\3779" \
- "-\17\377\77""2\17\377D6\21\377H9\22\377L;\23\377O>\24\377Q\77\24\377" \
- "R\77\24\377S@\24\377VB\25\377}l2\377\320\304q\377\343\330\201\377\343" \
- "\330\204\377\343\331\206\377\343\331\210\377\343\331\211\377\343\331" \
- "\212\377\343\331\214\377\343\331\216\377\343\331\217\377\343\331\220" \
- "\377\343\332\221\377\202\343\332\222\377\25\322\304\200\377\261\234]" \
- "\377\225{@\377\200`&\377uR\31\377vS\32\377xS\31\377zT\32\377{U\32\377" \
- "}V\32\377~V\32\377\177W\32\377\201X\33\377\202Y\33\377\204Y\33\377\205" \
- "Z\33\377\207[\33\377\210\\\34\377\212]\34\377\213^\34\377\216^\35\377" \
- "\202\217_\34\377\2\233o+\377\337\324\222\377\203\344\333\232\377\202" \
- "\344\333\231\377\202\343\333\231\377\202\343\333\230\377\2\343\333\227" \
- "\377\343\333\226\377\202\343\332\225\377\2\343\332\224\377\343\332\223" \
- "\377\203\343\332\222\377\23\343\332\221\377\343\331\220\377\343\331\217" \
- "\377\343\331\215\377\343\331\214\377\343\331\212\377\343\331\211\377" \
- "\343\331\207\377\343\331\206\377\343\330\202\377\343\330\201\377\343" \
- "\327}\377\343\327{\377\342\326u\377\342\325r\377\342\324j\377\341\322" \
- "`\377\323\304T\377qf$\377\20492\21\377\20""71\20\3775/\17\3772-\17\377" \
- ".)\16\377+&\15\377'#\14\377#\36\12\377\40\33\11\377\33\27\10\377\30\25" \
- "\7\377\23\20\5\377\17\15\4\377\13\11\3\377\7\6\2\377\4\3\1\377\1\1\0" \
- "\377\377\0\0\0\377\377\0\0\0\377\355\0\0\0\377$\1\1\0\377\4\3\1\377\7" \
- "\6\2\377\12\11\3\377\17\15\5\377\22\17\5\377\27\24\6\377\32\26\7\377" \
- "\37\33\11\377#\36\12\377'\"\13\3773*\16\377>1\20\377D5\21\377I9\22\377" \
- "L;\23\377P>\24\377R\77\24\377T\77\24\377UA\25\377WB\25\377_J\31\377\244" \
- "\223L\377\336\322{\377\343\330\201\377\343\330\204\377\343\331\206\377" \
- "\343\331\207\377\343\331\210\377\343\331\212\377\343\331\214\377\343" \
- "\331\215\377\343\331\216\377\343\331\217\377\343\331\220\377\343\332" \
- "\221\377\203\343\332\222\377\22\331\314\205\377\301\257m\377\260\233" \
- "Z\377\241\206I\377\217o2\377\203_#\377}U\32\377~V\33\377\200X\32\377" \
- "\202X\33\377\203Y\33\377\205Z\33\377\206Z\33\377\207[\34\377\211\\\34" \
- "\377\212]\34\377\213^\34\377\216_\35\377\202\217_\34\377\1\255\213G\377" \
- "\202\343\333\230\377\202\343\333\227\377\202\343\333\226\377\202\343" \
- "\332\225\377\202\343\332\224\377\1\343\332\223\377\204\343\332\222\377" \
- "\25\343\332\221\377\343\331\220\377\343\331\217\377\343\331\216\377\343" \
- "\331\215\377\343\331\212\377\343\331\211\377\343\331\210\377\343\331" \
- "\207\377\343\331\206\377\343\330\202\377\343\330\201\377\343\327}\377" \
- "\343\327{\377\342\326u\377\342\325r\377\342\324j\377\342\323f\377\335" \
- "\316Y\377\227\2136\377B;\24\377\20392\21\377\21""82\20\37760\20\3774" \
- ".\20\3770+\17\377-(\16\377*%\15\377&!\13\377#\36\12\377\37\33\11\377" \
- "\32\26\7\377\27\24\6\377\22\17\5\377\17\15\5\377\12\11\3\377\7\6\2\377" \
- "\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\357\0\0\0\377$\1\1\0" \
- "\377\4\3\1\377\6\5\2\377\12\11\3\377\16\14\4\377\21\16\5\377\26\23\6" \
- "\377\31\25\7\377\35\31\10\377\"\35\12\377%!\13\377+%\14\3777,\17\377" \
- "D5\21\377H8\21\377L:\22\377Q>\24\377R\77\24\377TA\24\377WB\25\377XC\25" \
- "\377YC\25\377hR\37\377\254\235R\377\341\326}\377\343\330\201\377\343" \
- "\330\202\377\343\330\204\377\343\331\207\377\343\331\210\377\343\331" \
- "\211\377\343\331\212\377\343\331\214\377\343\331\215\377\343\331\216" \
- "\377\343\331\217\377\202\343\331\220\377\1\343\332\221\377\205\343\332" \
- "\222\377\7\343\332\223\377\320\302~\377\317\300|\377\310\267r\377\275" \
- "\247d\377\276\247d\377\275\247d\377\202\277\247d\377\202\300\250d\377" \
- "\5\306\260l\377\323\302}\377\323\301|\377\342\331\224\377\343\332\225" \
- "\377\203\343\332\224\377\202\343\332\223\377\205\343\332\222\377\2\343" \
- "\332\221\377\343\331\220\377\202\343\331\217\377\23\343\331\216\377\343" \
- "\331\215\377\343\331\214\377\343\331\212\377\343\331\211\377\343\331" \
- "\207\377\343\331\206\377\343\330\204\377\343\330\202\377\343\330~\377" \
- "\343\327}\377\343\327{\377\342\326u\377\342\325r\377\342\325n\377\342" \
- "\323f\377\341\322`\377\254\237\77\377QH\30\377\20492\21\377\21""71\20" \
- "\3775/\17\3772-\17\377/*\16\377,'\15\377($\14\377%!\13\377\"\35\12\377" \
- "\35\31\10\377\31\25\7\377\26\23\6\377\21\16\5\377\16\14\4\377\12\11\3" \
- "\377\6\5\2\377\4\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\361\0" \
- "\0\0\377\"\1\1\0\377\3\3\1\377\5\4\2\377\11\10\3\377\15\13\4\377\20\16" \
- "\4\377\24\21\5\377\31\25\7\377\34\30\10\377\40\33\11\377#\36\12\377&" \
- "!\13\377-&\15\3779.\17\377F6\21\377M:\23\377P=\24\377T\77\24\377VB\25" \
- "\377WB\25\377YC\25\377[C\26\377\\D\26\377pY$\377\264\244W\377\343\327" \
- "}\377\343\330~\377\343\330\202\377\343\330\204\377\343\331\206\377\343" \
- "\331\207\377\343\331\210\377\343\331\211\377\343\331\212\377\202\343" \
- "\331\214\377\2\343\331\215\377\343\331\216\377\202\343\331\217\377\1" \
- "\343\331\220\377\202\343\332\221\377\225\343\332\222\377\1\343\332\221" \
- "\377\202\343\331\220\377\202\343\331\217\377\4\343\331\216\377\343\331" \
- "\215\377\343\331\214\377\343\331\212\377\202\343\331\211\377\17\343\331" \
- "\210\377\343\331\206\377\343\330\204\377\343\330\202\377\343\330\201" \
- "\377\343\330~\377\343\327}\377\343\326x\377\342\326u\377\342\325r\377" \
- "\342\324j\377\342\323f\377\341\322`\377\254\237\77\377ZQ\35\377\2049" \
- "2\21\377\22""82\20\37760\20\3774.\20\3771,\17\377-(\16\377+&\15\377'" \
- "#\14\377$\37\13\377!\34\11\377\34\30\10\377\31\25\7\377\25\22\6\377\21" \
- "\16\5\377\15\13\4\377\11\10\3\377\5\4\2\377\3\3\1\377\1\1\0\377\377\0" \
- "\0\0\377\377\0\0\0\377\363\0\0\0\377\40\1\1\0\377\3\3\1\377\5\4\2\377" \
- "\10\7\3\377\14\12\4\377\17\15\4\377\23\20\5\377\27\24\6\377\32\26\7\377" \
- "\37\33\11\377#\36\12\377&!\13\377)%\14\377-'\15\3779.\20\377H8\21\377" \
- "P=\23\377R>\24\377VA\25\377XC\25\377ZD\25\377[D\26\377]E\26\377_F\26" \
- "\377w`(\377\263\243U\377\341\325z\377\343\330~\377\343\330\201\377\343" \
- "\330\202\377\343\330\204\377\343\331\206\377\202\343\331\207\377\3\343" \
- "\331\210\377\343\331\211\377\343\331\212\377\202\343\331\214\377\202" \
- "\343\331\215\377\202\343\331\216\377\202\343\331\217\377\205\343\331" \
- "\220\377\205\343\332\221\377\204\343\331\220\377\203\343\331\217\377" \
- "\202\343\331\216\377\202\343\331\215\377\1\343\331\214\377\202\343\331" \
- "\212\377\22\343\331\211\377\343\331\210\377\343\331\207\377\343\331\206" \
- "\377\343\330\204\377\343\330\202\377\343\330\201\377\343\330~\377\343" \
- "\327}\377\343\327{\377\343\326x\377\342\326u\377\342\325n\377\342\324" \
- "j\377\342\323f\377\337\317Z\377\250\233>\377ZQ\35\377\20492\21\377\23" \
- "82\20\37760\20\3775/\17\3772-\17\377/*\16\377,'\15\377)%\14\377&!\13" \
- "\377#\36\12\377\37\33\11\377\32\26\7\377\27\24\6\377\23\20\5\377\17\15" \
- "\4\377\14\12\4\377\10\7\3\377\5\4\2\377\3\3\1\377\1\1\0\377\377\0\0\0" \
- "\377\377\0\0\0\377\366\0\0\0\377\34\2\2\1\377\5\4\1\377\7\6\2\377\13" \
- "\11\3\377\16\14\4\377\21\16\5\377\25\22\6\377\31\25\7\377\35\31\10\377" \
- "!\34\11\377$\37\13\377'#\14\377*%\15\377,'\16\3777.\17\377F7\22\377R" \
- "=\24\377WA\25\377YC\25\377[C\26\377[E\26\377_E\26\377_F\27\377aG\27\377" \
- "pW\40\377\251\226J\377\330\313s\377\343\327}\377\202\343\330~\377\4\343" \
- "\330\201\377\343\330\202\377\343\330\204\377\343\331\206\377\202\343" \
- "\331\207\377\1\343\331\210\377\202\343\331\211\377\202\343\331\212\377" \
- "\203\343\331\214\377\215\343\331\215\377\202\343\331\214\377\203\343" \
- "\331\212\377\1\343\331\211\377\202\343\331\210\377\1\343\331\207\377" \
- "\202\343\331\206\377\17\343\330\204\377\343\330\202\377\343\330\201\377" \
- "\343\330~\377\343\327}\377\343\327{\377\343\326x\377\342\326u\377\342" \
- "\325r\377\342\325n\377\342\324j\377\341\322`\377\325\306U\377\224\210" \
- "6\377JB\27\377\20492\21\377\23""82\20\37771\20\37760\20\3773-\17\377" \
- "0+\17\377-(\16\377+&\15\377'#\14\377$\37\13\377!\34\11\377\35\31\10\377" \
- "\31\25\7\377\26\23\6\377\21\16\5\377\17\15\5\377\13\11\3\377\7\6\2\377" \
- "\5\4\1\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\371\0\0\0\377\40\1\1" \
- "\0\377\4\3\1\377\6\5\2\377\11\10\3\377\15\13\4\377\20\16\4\377\24\21" \
- "\5\377\30\25\7\377\33\27\10\377\37\33\11\377#\36\12\377%!\13\377($\14" \
- "\377+&\15\377-(\16\3773,\17\377\77""4\20\377M<\23\377YC\25\377[C\26\377" \
- "]E\26\377_F\26\377aG\27\377bH\27\377dG\26\377gM\30\377\221z6\377\277" \
- "\257[\377\343\326x\377\343\327{\377\343\327}\377\343\330~\377\202\343" \
- "\330\201\377\1\343\330\202\377\202\343\330\204\377\202\343\331\206\377" \
- "\202\343\331\207\377\203\343\331\210\377\213\343\331\211\377\203\343" \
- "\331\210\377\202\343\331\207\377\202\343\331\206\377\202\343\330\204" \
- "\377\2\343\330\202\377\343\330\201\377\202\343\330~\377\14\343\327}\377" \
- "\343\327{\377\343\326x\377\342\326u\377\342\325r\377\342\325n\377\342" \
- "\324j\377\342\323f\377\341\322`\377\257\243F\377pf$\377>6\23\377\204" \
- "92\21\377\24""82\20\37771\20\37760\20\3773-\17\3771,\17\377.)\16\377" \
- "+&\15\377($\14\377&!\13\377#\36\12\377\37\33\11\377\33\27\10\377\30\25" \
- "\7\377\24\21\5\377\20\16\4\377\15\13\4\377\11\10\3\377\6\5\2\377\4\3" \
- "\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\373\0\0\0\377\36\1\1\0\377" \
- "\3\3\1\377\5\4\2\377\10\7\3\377\13\11\3\377\17\15\5\377\22\17\5\377\26" \
- "\23\6\377\31\25\7\377\34\30\10\377\40\33\11\377#\36\12\377&!\13\377)" \
- "%\14\377,'\15\377.)\16\3771,\17\3775.\17\377D7\22\377Q>\24\377]E\26\377" \
- "_F\27\377aG\27\377dH\27\377dI\27\377fJ\27\377gJ\27\377sV\36\377\236\210" \
- "\77\377\305\264^\377\202\343\326x\377\2\343\327{\377\343\327}\377\202" \
- "\343\330~\377\202\343\330\201\377\203\343\330\202\377\204\343\330\204" \
- "\377\207\343\331\206\377\204\343\330\204\377\203\343\330\202\377\202" \
- "\343\330\201\377\1\343\330~\377\202\343\327}\377\2\343\327{\377\343\326" \
- "x\377\202\342\326u\377\10\342\325r\377\342\325n\377\342\324j\377\342" \
- "\323f\377\341\322`\377\263\247G\377\200v.\377IA\27\377\20592\21\377\25" \
- "82\20\37771\20\37760\20\3773-\17\3771,\17\377.)\16\377,'\15\377)%\14" \
- "\377&!\13\377#\36\12\377\40\33\11\377\34\30\10\377\31\25\7\377\26\23" \
- "\6\377\22\17\5\377\17\15\4\377\14\12\4\377\10\7\3\377\5\4\2\377\3\3\1" \
- "\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\376\0\0\0\377!\2\2\1\377\4" \
- "\3\1\377\6\5\2\377\12\11\3\377\15\13\4\377\20\16\4\377\23\20\5\377\27" \
- "\24\6\377\32\26\7\377\35\31\10\377!\34\11\377$\37\13\377&!\13\377)%\14" \
- "\377,'\15\377.)\16\3771,\17\3773-\17\3776/\17\377A6\21\377N=\23\377Y" \
- "C\25\377dG\26\377dH\27\377gK\27\377hJ\27\377jL\30\377kM\30\377vX\37\377" \
- "\231\2008\377\273\250U\377\331\313n\377\342\326u\377\202\343\326x\377" \
- "\202\343\327{\377\203\343\327}\377\205\343\330~\377\203\343\330\201\377" \
- "\205\343\330~\377\203\343\327}\377\202\343\327{\377\202\343\326x\377" \
- "\1\342\326u\377\202\342\325r\377\2\342\325n\377\342\324j\377\202\342" \
- "\323f\377\4\321\303Y\377\246\231@\377tj(\377G\77\26\377\20692\21\377" \
- "\25""82\20\37760\20\3775/\17\3773-\17\3771,\17\377.)\16\377,'\15\377" \
- ")%\14\377&!\13\377$\37\13\377!\34\11\377\36\32\11\377\32\26\7\377\27" \
- "\24\6\377\24\21\5\377\20\16\4\377\15\13\4\377\12\11\3\377\7\6\2\377\5" \
- "\4\1\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\202\0\0" \
- "\0\377$\1\1\0\377\3\3\1\377\5\4\2\377\10\7\3\377\13\11\3\377\17\15\5" \
- "\377\21\16\5\377\24\21\5\377\30\25\7\377\33\27\10\377\36\32\11\377\"" \
- "\35\12\377$\37\13\377&!\13\377)%\14\377,'\15\377.)\16\3770+\17\3773-" \
- "\17\3775/\17\37760\20\37791\20\377C7\22\377O>\24\377XC\25\377aG\27\377" \
- "jL\30\377lM\30\377lM\27\377nM\30\377pO\31\377\204f%\377\240\206<\377" \
- "\273\246O\377\321\301d\377\342\325r\377\203\342\326u\377\214\343\326" \
- "x\377\203\342\326u\377\203\342\325r\377\1\342\325n\377\202\342\324j\377" \
- "\202\342\323f\377\4\303\266S\377\240\224\77\377{p,\377SK\33\377\2079" \
- "2\21\377\27""82\20\37771\20\37760\20\3775/\17\3773-\17\3770+\17\377." \
- ")\16\377,'\15\377)%\14\377'#\14\377$\37\13\377\"\35\12\377\36\32\11\377" \
- "\33\27\10\377\30\25\7\377\25\22\6\377\21\16\5\377\17\15\5\377\13\11\3" \
- "\377\10\7\3\377\5\4\2\377\3\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0" \
- "\377\377\0\0\0\377\205\0\0\0\377(\2\2\1\377\4\3\1\377\6\5\2\377\11\10" \
- "\3\377\14\12\4\377\17\15\4\377\22\17\5\377\25\22\6\377\31\25\7\377\33" \
- "\27\10\377\37\33\11\377\"\35\12\377$\37\13\377&!\13\377)%\14\377+&\15" \
- "\377-(\16\377/*\16\3772-\17\3774.\20\3775/\17\37760\20\37771\20\3778" \
- "2\20\377;3\21\377C7\22\377K<\24\377P>\24\377YC\25\377aG\27\377gK\27\377" \
- "iK\27\377tQ\31\377vS\32\377\215l(\377\237\2048\377\257\230E\377\271\241" \
- "I\377\315\272[\377\320\277_\377\210\342\325n\377\204\342\324j\377\7\342" \
- "\323f\377\303\267W\377\276\261P\377\235\222B\377\215\2016\377tj*\377" \
- "ZR\36\377\21192\21\377\31""82\20\37771\20\37760\20\3775/\17\3774.\20" \
- "\3772-\17\377/*\16\377-(\16\377+&\15\377)%\14\377&!\13\377$\37\13\377" \
- "\"\35\12\377\37\33\11\377\33\27\10\377\31\25\7\377\25\22\6\377\22\17" \
- "\5\377\17\15\4\377\15\13\4\377\11\10\3\377\6\5\2\377\5\4\1\377\2\2\1" \
- "\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\207\0\0\0\377" \
- "\32\1\1\0\377\3\3\1\377\5\4\1\377\7\6\2\377\12\11\3\377\15\13\4\377\17" \
- "\15\4\377\22\17\5\377\25\22\6\377\31\25\7\377\33\27\10\377\36\32\11\377" \
- "\"\35\12\377$\37\13\377&!\13\377($\14\377+&\15\377,'\16\377.)\16\377" \
- "0+\17\3772-\17\3774.\20\3775/\17\37760\20\37771\20\37782\20\377\2119" \
- "2\21\377\1D9\22\377\202F:\23\377\1C7\22\377\20292\21\377\1IB\31\377\203" \
- "ZR!\377\204ZR\40\377\1@8\24\377\21592\21\377\20282\20\377\31""71\20\377" \
- "60\20\3775/\17\3774.\20\3772-\17\3770+\17\377.)\16\377,'\16\377+&\15" \
- "\377($\14\377&!\13\377$\37\13\377\"\35\12\377\37\33\11\377\33\27\10\377" \
- "\31\25\7\377\26\23\6\377\23\20\5\377\20\16\4\377\15\13\4\377\12\11\3" \
- "\377\7\6\2\377\5\4\2\377\3\3\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0" \
- "\377\377\0\0\0\377\213\0\0\0\377\30\2\2\1\377\4\3\1\377\5\4\2\377\10" \
- "\7\3\377\13\11\3\377\15\13\4\377\20\16\4\377\22\17\5\377\25\22\6\377" \
- "\30\25\7\377\32\26\7\377\35\31\10\377!\34\11\377#\36\12\377%!\13\377" \
- "'#\14\377)%\14\377+&\15\377,'\16\377.)\16\3770+\17\3772-\17\3774.\20" \
- "\3775/\17\377\20260\20\377\1""71\20\377\20282\20\377\23492\21\377\202" \
- "82\20\377\1""71\20\377\20260\20\377\30""5/\17\3773-\17\3772-\17\3770" \
- "+\17\377.)\16\377,'\16\377+&\15\377)%\14\377'#\14\377%!\13\377#\36\12" \
- "\377!\34\11\377\36\32\11\377\33\27\10\377\31\25\7\377\26\23\6\377\23" \
- "\20\5\377\20\16\4\377\16\14\4\377\13\11\3\377\10\7\3\377\5\4\2\377\4" \
- "\3\1\377\2\2\1\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\216\0\0" \
- "\0\377\33\1\1\0\377\2\2\1\377\4\3\1\377\5\4\2\377\10\7\3\377\13\11\3" \
- "\377\15\13\4\377\17\15\4\377\22\17\5\377\25\22\6\377\30\25\7\377\31\25" \
- "\7\377\34\30\10\377\37\33\11\377\"\35\12\377$\37\13\377&!\13\377'#\14" \
- "\377)%\14\377+&\15\377,'\16\377.)\16\377/*\16\3771,\17\3772-\17\3774" \
- ".\20\3775/\17\377\20360\20\377\20271\20\377\20382\20\377\21692\21\377" \
- "\20382\20\377\20271\20\377\20360\20\377\33""5/\17\3774.\20\3772-\17\377" \
- "1,\17\377/*\16\377.)\16\377,'\16\377+&\15\377)%\14\377'#\14\377&!\13" \
- "\377$\37\13\377\"\35\12\377\37\33\11\377\34\30\10\377\31\25\7\377\30" \
- "\25\7\377\25\22\6\377\22\17\5\377\20\16\4\377\16\14\4\377\13\11\3\377" \
- "\10\7\3\377\6\5\2\377\4\3\1\377\2\2\1\377\1\1\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\221\0\0\0\377\32\1\1\0\377\2\2\1\377\4\3\1\377" \
- "\5\4\2\377\10\7\3\377\13\11\3\377\15\13\4\377\17\15\4\377\21\16\5\377" \
- "\24\21\5\377\27\24\6\377\31\25\7\377\33\27\10\377\35\31\10\377\40\33" \
- "\11\377\"\35\12\377$\37\13\377&!\13\377'#\14\377)%\14\377*%\15\377,'" \
- "\15\377,'\16\377.)\16\377/*\16\3770+\17\377\2022-\17\377\2""3-\17\377" \
- "4.\20\377\2025/\17\377\22060\20\377\2025/\17\377\36""4.\20\3773-\17\377" \
- "2-\17\3771,\17\3770+\17\377/*\16\377.)\16\377,'\16\377,'\15\377*%\15" \
- "\377)%\14\377'#\14\377&!\13\377$\37\13\377\"\35\12\377\40\33\11\377\35" \
- "\31\10\377\33\27\10\377\31\25\7\377\27\24\6\377\24\21\5\377\21\16\5\377" \
- "\17\15\4\377\15\13\4\377\13\11\3\377\10\7\3\377\6\5\2\377\4\3\1\377\2" \
- "\2\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\225\0\0" \
- "\0\377\33\1\1\0\377\2\2\1\377\4\3\1\377\5\4\2\377\10\7\3\377\12\11\3" \
- "\377\14\12\4\377\17\15\5\377\20\16\4\377\22\17\5\377\25\22\6\377\27\24" \
- "\6\377\31\25\7\377\33\27\10\377\35\31\10\377\37\33\11\377\"\35\12\377" \
- "#\36\12\377%!\13\377&!\13\377'#\14\377)%\14\377*%\15\377+&\15\377,'\15" \
- "\377-(\16\377.)\16\377\202/*\16\377\1""0+\17\377\2021,\17\377\2032-\17" \
- "\377\2063-\17\377\2032-\17\377\2021,\17\377\36""0+\17\377/*\16\377.)" \
- "\16\377-(\16\377,'\16\377,'\15\377+&\15\377*%\15\377)%\14\377'#\14\377" \
- "&!\13\377$\37\13\377#\36\12\377\"\35\12\377\37\33\11\377\35\31\10\377" \
- "\33\27\10\377\31\25\7\377\27\24\6\377\25\22\6\377\22\17\5\377\20\16\4" \
- "\377\17\15\5\377\14\12\4\377\12\11\3\377\10\7\3\377\5\4\2\377\4\3\1\377" \
- "\2\2\1\377\1\1\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\231\0" \
- "\0\0\377\25\1\1\0\377\2\2\1\377\4\3\1\377\5\4\2\377\7\6\2\377\11\10\3" \
- "\377\13\11\3\377\15\13\4\377\17\15\4\377\21\16\5\377\23\20\5\377\25\22" \
- "\6\377\27\24\6\377\31\25\7\377\32\26\7\377\34\30\10\377\36\32\11\377" \
- "\40\33\11\377\"\35\12\377#\36\12\377$\37\13\377\202&!\13\377\4'#\14\377" \
- "($\14\377)%\14\377*%\15\377\202+&\15\377\1,'\15\377\203,'\16\377\206" \
- "-(\16\377\203,'\16\377\1,'\15\377\202+&\15\377\33*%\15\377)%\14\377(" \
- "$\14\377'#\14\377&!\13\377%!\13\377$\37\13\377#\36\12\377\"\35\12\377" \
- "\40\33\11\377\36\32\11\377\34\30\10\377\32\26\7\377\31\25\7\377\27\24" \
- "\6\377\25\22\6\377\23\20\5\377\21\16\5\377\17\15\4\377\15\13\4\377\13" \
- "\11\3\377\11\10\3\377\7\6\2\377\5\4\2\377\4\3\1\377\2\2\1\377\1\1\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\235\0\0\0\377\26\1\1\0\377" \
- "\2\2\1\377\3\3\1\377\5\4\1\377\6\5\2\377\10\7\3\377\12\11\3\377\14\12" \
- "\4\377\16\14\4\377\17\15\4\377\21\16\5\377\22\17\5\377\24\21\5\377\26" \
- "\23\6\377\30\25\7\377\31\25\7\377\33\27\10\377\34\30\10\377\36\32\11" \
- "\377\37\33\11\377!\34\11\377\"\35\12\377\202#\36\12\377\202$\37\13\377" \
- "\1%!\13\377\204&!\13\377\206'#\14\377\204&!\13\377\1%!\13\377\202$\37" \
- "\13\377\202#\36\12\377\26\"\35\12\377\40\33\11\377\37\33\11\377\35\31" \
- "\10\377\34\30\10\377\32\26\7\377\31\25\7\377\30\25\7\377\26\23\6\377" \
- "\24\21\5\377\22\17\5\377\21\16\5\377\17\15\4\377\16\14\4\377\14\12\4" \
- "\377\12\11\3\377\10\7\3\377\6\5\2\377\5\4\1\377\3\3\1\377\2\2\1\377\1" \
- "\1\0\377\377\0\0\0\377\377\0\0\0\377\312\0\0\0\377\206\1\1\1\377\321" \
- "\0\0\0\377\20\1\1\0\377\2\2\1\377\4\3\1\377\5\4\1\377\6\5\2\377\10\7" \
- "\3\377\12\11\3\377\13\11\3\377\15\13\4\377\17\15\5\377\20\16\4\377\21" \
- "\16\5\377\23\20\5\377\24\21\5\377\26\23\6\377\27\24\6\377\202\31\25\7" \
- "\377\6\32\26\7\377\33\27\10\377\34\30\10\377\35\31\10\377\36\32\11\377" \
- "\37\33\11\377\202\40\33\11\377\203!\34\11\377\204\"\35\12\377\203!\34" \
- "\11\377\202\40\33\11\377\6\37\33\11\377\36\32\11\377\35\31\10\377\34" \
- "\30\10\377\33\27\10\377\32\26\7\377\202\31\25\7\377\20\27\24\6\377\26" \
- "\23\6\377\24\21\5\377\23\20\5\377\21\16\5\377\20\16\4\377\17\15\5\377" \
- "\15\13\4\377\13\11\3\377\12\11\3\377\10\7\3\377\6\5\2\377\5\4\1\377\4" \
- "\3\1\377\2\2\1\377\1\1\0\377\226\0\0\0\377\206\1\1\1\377\266\0\0\0\377" \
- "\206\1\1\1\377\377\0\0\0\377\354\0\0\0\377\211\1\1\1\377\204\2\2\2\377" \
- "\210\1\1\1\377\210\0\0\0\377\227\1\1\1\377\214\0\0\0\377\223\1\1\1\377" \
- "\207\0\0\0\377\207\1\1\1\377\202\2\2\1\377\16\4\4\2\377\5\4\2\377\6\5" \
- "\2\377\7\6\3\377\10\7\3\377\12\11\4\377\13\12\4\377\15\13\5\377\16\14" \
- "\5\377\20\16\6\377\20\16\5\377\22\17\6\377\23\20\6\377\24\21\6\377\202" \
- "\25\22\6\377\3\26\23\6\377\27\24\6\377\30\25\7\377\203\31\25\7\377\1" \
- "\32\26\10\377\210\33\27\10\377\204\32\26\10\377\23\31\26\10\377\30\25" \
- "\7\377\27\24\7\377\26\23\7\377\25\22\6\377\24\21\6\377\23\20\6\377\22" \
- "\17\6\377\20\16\5\377\20\16\6\377\16\14\5\377\15\13\5\377\13\12\4\377" \
- "\12\11\4\377\10\7\3\377\7\6\3\377\6\5\2\377\5\4\2\377\4\4\2\377\202\2" \
- "\2\1\377\204\1\1\1\377\214\0\0\0\377\211\1\1\1\377\204\2\2\2\377\210" \
- "\1\1\1\377\205\0\0\0\377\215\1\1\1\377\206\0\0\0\377\230\1\1\1\377\204" \
- "\2\2\2\377\211\1\1\1\377\377\0\0\0\377\340\0\0\0\377\205\1\1\1\377\204" \
- "\2\2\2\377\214\3\3\3\377\204\2\2\2\377\211\1\1\1\377\205\2\2\2\377\213" \
- "\3\3\3\377\205\2\2\2\377\205\1\1\1\377\204\0\0\0\377\205\1\1\1\377\204" \
- "\2\2\2\377\211\3\3\3\377\205\2\2\2\377\210\1\1\1\377\205\2\2\2\377\204" \
- "\3\3\3\377\202\4\4\3\377\202\6\6\4\377\12\10\7\4\377\10\7\5\377\11\10" \
- "\5\377\12\11\5\377\13\12\5\377\14\13\5\377\15\13\5\377\16\14\6\377\17" \
- "\15\6\377\17\15\5\377\202\20\16\5\377\1\21\17\5\377\202\22\17\6\377\1" \
- "\23\20\6\377\202\24\21\6\377\1\25\22\7\377\204\26\23\7\377\202\27\24" \
- "\10\377\203\26\23\10\377\1\25\22\10\377\202\24\21\10\377\15\23\21\7\377" \
- "\22\20\7\377\22\20\10\377\21\17\7\377\20\16\7\377\17\15\7\377\16\14\6" \
- "\377\15\14\6\377\14\13\6\377\12\11\5\377\11\10\5\377\10\7\5\377\10\7" \
- "\4\377\202\6\6\4\377\202\4\4\3\377\1\3\3\3\377\206\2\2\2\377\204\1\1" \
- "\1\377\204\0\0\0\377\204\1\1\1\377\204\2\2\2\377\215\3\3\3\377\226\2" \
- "\2\2\377\206\1\1\1\377\206\2\2\2\377\202\3\3\3\377\212\2\2\2\377\216" \
- "\3\3\3\377\204\2\2\2\377\205\1\1\1\377\377\0\0\0\377\332\0\0\0\377\203" \
- "\1\1\1\377\202\2\2\2\377\205\3\3\3\377\216\4\4\4\377\220\3\3\3\377\215" \
- "\4\4\4\377\206\3\3\3\377\202\2\2\2\377\206\1\1\1\377\202\2\2\2\377\206" \
- "\3\3\3\377\212\4\4\4\377\220\3\3\3\377\211\4\4\4\377\5\5\5\4\377\6\6" \
- "\5\377\7\7\5\377\10\7\5\377\11\10\5\377\202\10\7\5\377\4\11\10\5\377" \
- "\12\11\5\377\13\12\6\377\14\13\6\377\202\15\14\6\377\1\16\14\6\377\202" \
- "\17\15\7\377\203\20\16\7\377\203\21\17\7\377\203\22\20\10\377\203\21" \
- "\17\10\377\202\20\16\10\377\1\17\15\7\377\202\16\15\7\377\5\15\14\7\377" \
- "\14\13\7\377\13\12\6\377\12\11\6\377\11\10\6\377\202\11\10\5\377\4\10" \
- "\7\5\377\7\7\5\377\6\6\5\377\5\5\4\377\207\4\4\4\377\205\3\3\3\377\204" \
- "\2\2\2\377\203\1\1\1\377\203\2\2\2\377\205\3\3\3\377\216\4\4\4\377\241" \
- "\3\3\3\377\233\4\4\4\377\205\3\3\3\377\202\2\2\2\377\203\1\1\1\377\377" \
- "\0\0\0\377\326\0\0\0\377\202\1\1\1\377\202\2\2\2\377\203\3\3\3\377\203" \
- "\4\4\4\377\204\5\5\5\377\212\6\6\6\377\205\5\5\5\377\213\4\4\4\377\205" \
- "\5\5\5\377\207\6\6\6\377\206\5\5\5\377\203\4\4\4\377\212\3\3\3\377\203" \
- "\4\4\4\377\207\5\5\5\377\1\6\6\6\377\230\5\5\5\377\210\6\6\6\377\202" \
- "\5\5\5\377\202\6\6\5\377\2\7\7\6\377\10\10\6\377\202\10\7\5\377\202\11" \
- "\10\5\377\1\11\10\6\377\202\12\11\6\377\203\13\12\6\377\1\14\13\7\377" \
- "\212\15\14\10\377\202\14\13\10\377\1\13\12\10\377\202\13\12\7\377\202" \
- "\12\11\7\377\2\11\11\7\377\10\10\7\377\202\7\7\6\377\210\6\6\6\377\205" \
- "\5\5\5\377\204\4\4\4\377\210\3\3\3\377\204\4\4\4\377\204\5\5\5\377\212" \
- "\6\6\6\377\251\5\5\5\377\223\6\6\6\377\204\5\5\5\377\203\4\4\4\377\203" \
- "\3\3\3\377\202\2\2\2\377\202\1\1\1\377\377\0\0\0\377\322\0\0\0\377\202" \
- "\1\1\1\377\202\2\2\2\377\202\3\3\3\377\202\4\4\4\377\202\5\5\5\377\203" \
- "\6\6\6\377\203\7\7\7\377\212\10\10\10\377\206\7\7\7\377\213\6\6\6\377" \
- "\203\7\7\7\377\211\10\10\10\377\203\7\7\7\377\203\6\6\6\377\215\5\5\5" \
- "\377\203\6\6\6\377\205\7\7\7\377\204\10\10\10\377\225\7\7\7\377\212\10" \
- "\10\10\377\205\7\7\7\377\1\6\6\6\377\202\7\7\6\377\202\10\10\7\377\204" \
- "\11\11\7\377\202\12\11\7\377\205\13\12\10\377\203\14\13\11\377\204\13" \
- "\13\11\377\202\12\12\11\377\202\11\11\10\377\215\10\10\10\377\204\7\7" \
- "\7\377\203\6\6\6\377\213\5\5\5\377\204\6\6\6\377\203\7\7\7\377\215\10" \
- "\10\10\377\214\7\7\7\377\205\6\6\6\377\223\7\7\7\377\225\10\10\10\377" \
- "\203\7\7\7\377\203\6\6\6\377\202\5\5\5\377\202\4\4\4\377\202\3\3\3\377" \
- "\202\2\2\2\377\202\1\1\1\377\377\0\0\0\377\316\0\0\0\377\202\1\1\1\377" \
- "\202\2\2\2\377\202\3\3\3\377\1\4\4\4\377\202\5\5\5\377\202\6\6\6\377" \
- "\202\7\7\7\377\202\10\10\10\377\203\11\11\11\377\212\12\12\12\377\224" \
- "\11\11\11\377\211\12\12\12\377\203\11\11\11\377\205\10\10\10\377\211" \
- "\7\7\7\377\205\10\10\10\377\205\11\11\11\377\203\12\12\12\377\226\11" \
- "\11\11\377\212\12\12\12\377\221\11\11\11\377\204\12\12\11\377\230\12" \
- "\12\12\377\204\11\11\11\377\222\10\10\10\377\203\11\11\11\377\222\12" \
- "\12\12\377\210\11\11\11\377\202\10\10\10\377\224\11\11\11\377\226\12" \
- "\12\12\377\203\11\11\11\377\202\10\10\10\377\202\7\7\7\377\202\6\6\6" \
- "\377\202\5\5\5\377\1\4\4\4\377\202\3\3\3\377\202\2\2\2\377\202\1\1\1" \
- "\377\377\0\0\0\377\313\0\0\0\377\202\1\1\1\377\1\2\2\2\377\202\3\3\3" \
- "\377\1\4\4\4\377\202\5\5\5\377\1\6\6\6\377\202\7\7\7\377\1\10\10\10\377" \
- "\202\11\11\11\377\202\12\12\12\377\203\13\13\13\377\212\14\14\14\377" \
- "\225\13\13\13\377\210\14\14\14\377\203\13\13\13\377\224\12\12\12\377" \
- "\204\13\13\13\377\204\14\14\14\377\225\13\13\13\377\212\14\14\14\377" \
- "\225\13\13\13\377\204\14\14\14\377\221\15\15\15\377\204\14\14\14\377" \
- "\203\13\13\13\377\221\12\12\12\377\204\13\13\13\377\225\14\14\14\377" \
- "\233\13\13\13\377\204\14\14\14\377\214\15\15\15\377\206\14\14\14\377" \
- "\203\13\13\13\377\202\12\12\12\377\202\11\11\11\377\1\10\10\10\377\202" \
- "\7\7\7\377\1\6\6\6\377\202\5\5\5\377\1\4\4\4\377\202\3\3\3\377\1\2\2" \
- "\2\377\202\1\1\1\377\377\0\0\0\377\310\0\0\0\377\202\1\1\1\377\1\2\2" \
- "\2\377\202\3\3\3\377\202\4\4\4\377\4\5\5\5\377\6\6\6\377\7\7\7\377\10" \
- "\10\10\377\202\11\11\11\377\1\12\12\12\377\202\13\13\13\377\202\14\14" \
- "\14\377\203\15\15\15\377\203\16\16\16\377\204\17\17\17\377\214\16\16" \
- "\16\377\212\15\15\15\377\213\16\16\16\377\204\15\15\15\377\217\14\14" \
- "\14\377\206\15\15\15\377\235\16\16\16\377\205\17\17\17\377\231\16\16" \
- "\16\377\207\17\17\17\377\206\20\20\20\377\210\17\17\17\377\202\16\16" \
- "\16\377\207\15\15\15\377\204\14\14\14\377\214\15\15\15\377\204\16\16" \
- "\16\377\203\17\17\17\377\204\16\16\16\377\206\17\17\17\377\207\16\16" \
- "\16\377\211\15\15\15\377\212\16\16\16\377\204\15\15\15\377\204\16\16" \
- "\16\377\221\17\17\17\377\203\16\16\16\377\203\15\15\15\377\202\14\14" \
- "\14\377\202\13\13\13\377\2\12\12\12\377\11\11\11\377\202\10\10\10\377" \
- "\3\7\7\7\377\6\6\6\377\5\5\5\377\202\4\4\4\377\202\3\3\3\377\1\2\2\2" \
- "\377\202\1\1\1\377\377\0\0\0\377\305\0\0\0\377\202\1\1\1\377\1\2\2\2" \
- "\377\202\3\3\3\377\5\4\4\4\377\5\5\5\377\6\6\6\377\7\7\7\377\10\10\10" \
- "\377\202\11\11\11\377\3\12\12\12\377\13\13\13\377\14\14\14\377\202\15" \
- "\15\15\377\1\16\16\16\377\202\17\17\17\377\204\20\20\20\377\206\21\21" \
- "\21\377\230\20\20\20\377\206\21\21\21\377\204\20\20\20\377\224\17\17" \
- "\17\377\235\20\20\20\377\211\21\21\21\377\227\20\20\20\377\205\21\21" \
- "\21\377\215\22\22\22\377\205\21\21\21\377\204\20\20\20\377\216\17\17" \
- "\17\377\210\20\20\20\377\224\21\21\21\377\216\20\20\20\377\203\21\21" \
- "\21\377\212\20\20\20\377\206\21\21\21\377\207\22\22\22\377\207\21\21" \
- "\21\377\204\20\20\20\377\202\17\17\17\377\1\16\16\16\377\202\15\15\15" \
- "\377\3\14\14\14\377\13\13\13\377\12\12\12\377\202\11\11\11\377\5\10\10" \
- "\10\377\7\7\7\377\6\6\6\377\5\5\5\377\4\4\4\377\202\3\3\3\377\1\2\2\2" \
- "\377\202\1\1\1\377\377\0\0\0\377\303\0\0\0\377\202\1\1\1\377\2\2\2\2" \
- "\377\3\3\3\377\202\4\4\4\377\13\5\5\5\377\6\6\6\377\7\7\7\377\10\10\10" \
- "\377\11\11\11\377\12\12\12\377\13\13\13\377\14\14\14\377\15\15\15\377" \
- "\16\16\16\377\17\17\17\377\202\20\20\20\377\202\21\21\21\377\202\22\22" \
- "\22\377\247\23\23\23\377\205\22\22\22\377\217\21\21\21\377\210\22\22" \
- "\22\377\233\23\23\23\377\204\24\24\24\377\232\23\23\23\377\224\24\24" \
- "\24\377\203\23\23\23\377\230\22\22\22\377\206\23\23\23\377\215\24\24" \
- "\24\377\204\23\23\23\377\210\22\22\22\377\223\23\23\23\377\220\24\24" \
- "\24\377\204\23\23\23\377\202\22\22\22\377\202\21\21\21\377\202\20\20" \
- "\20\377\13\17\17\17\377\16\16\16\377\15\15\15\377\14\14\14\377\13\13" \
- "\13\377\12\12\12\377\11\11\11\377\10\10\10\377\7\7\7\377\6\6\6\377\5" \
- "\5\5\377\202\4\4\4\377\2\3\3\3\377\2\2\2\377\202\1\1\1\377\377\0\0\0" \
- "\377\301\0\0\0\377\202\1\1\1\377\20\2\2\2\377\3\3\3\377\4\4\4\377\5\5" \
- "\5\377\6\6\6\377\7\7\7\377\10\10\10\377\11\11\11\377\12\12\12\377\13" \
- "\13\13\377\14\14\14\377\15\15\15\377\16\16\16\377\17\17\17\377\20\20" \
- "\20\377\21\21\21\377\202\22\22\22\377\1\23\23\23\377\202\24\24\24\377" \
- "\204\25\25\25\377\205\26\26\26\377\231\25\25\25\377\204\26\26\26\377" \
- "\204\25\25\25\377\227\24\24\24\377\214\25\25\25\377\206\26\26\26\377" \
- "\211\25\25\25\377\211\26\26\26\377\226\25\25\25\377\204\26\26\26\377" \
- "\220\27\27\27\377\203\26\26\26\377\204\25\25\25\377\222\24\24\24\377" \
- "\207\25\25\25\377\222\26\26\26\377\215\25\25\25\377\205\26\26\26\377" \
- "\211\25\25\25\377\203\26\26\26\377\215\27\27\27\377\203\26\26\26\377" \
- "\204\25\25\25\377\202\24\24\24\377\1\23\23\23\377\202\22\22\22\377\20" \
- "\21\21\21\377\20\20\20\377\17\17\17\377\16\16\16\377\15\15\15\377\14" \
- "\14\14\377\13\13\13\377\12\12\12\377\11\11\11\377\10\10\10\377\7\7\7" \
- "\377\6\6\6\377\5\5\5\377\4\4\4\377\3\3\3\377\2\2\2\377\202\1\1\1\377" \
- "\377\0\0\0\377\277\0\0\0\377\202\1\1\1\377\22\2\2\2\377\3\3\3\377\4\4" \
- "\4\377\5\5\5\377\6\6\6\377\7\7\7\377\10\10\10\377\11\11\11\377\12\12" \
- "\12\377\14\14\14\377\15\15\15\377\16\16\16\377\17\17\17\377\20\20\20" \
- "\377\21\21\21\377\22\22\22\377\23\23\23\377\24\24\24\377\202\25\25\25" \
- "\377\1\26\26\26\377\202\27\27\27\377\203\30\30\30\377\220\31\31\31\377" \
- "\216\30\30\30\377\204\31\31\31\377\203\30\30\30\377\232\27\27\27\377" \
- "\207\30\30\30\377\236\31\31\31\377\220\30\30\30\377\212\31\31\31\377" \
- "\212\32\32\32\377\206\31\31\31\377\203\30\30\30\377\225\27\27\27\377" \
- "\205\30\30\30\377\223\31\31\31\377\213\30\30\30\377\207\31\31\31\377" \
- "\207\30\30\30\377\207\31\31\31\377\206\32\32\32\377\207\31\31\31\377" \
- "\203\30\30\30\377\202\27\27\27\377\1\26\26\26\377\202\25\25\25\377\22" \
- "\24\24\24\377\23\23\23\377\22\22\22\377\21\21\21\377\20\20\20\377\17" \
- "\17\17\377\16\16\16\377\15\15\15\377\14\14\14\377\12\12\12\377\11\11" \
- "\11\377\10\10\10\377\7\7\7\377\6\6\6\377\5\5\5\377\4\4\4\377\3\3\3\377" \
- "\2\2\2\377\202\1\1\1\377\377\0\0\0\377\276\0\0\0\377\26\1\1\1\377\2\2" \
- "\2\377\3\3\3\377\4\4\4\377\5\5\5\377\6\6\6\377\7\7\7\377\10\10\10\377" \
- "\12\12\12\377\13\13\13\377\14\14\14\377\15\15\15\377\17\17\17\377\20" \
- "\20\20\377\21\21\21\377\22\22\22\377\23\23\23\377\24\24\24\377\25\25" \
- "\25\377\26\26\26\377\27\27\27\377\30\30\30\377\202\31\31\31\377\203\32" \
- "\32\32\377\244\33\33\33\377\210\32\32\32\377\207\31\31\31\377\221\32" \
- "\32\32\377\270\33\33\33\377\221\34\34\34\377\203\33\33\33\377\232\32" \
- "\32\32\377\207\33\33\33\377\212\34\34\34\377\205\33\33\33\377\210\32" \
- "\32\32\377\223\33\33\33\377\217\34\34\34\377\203\33\33\33\377\203\32" \
- "\32\32\377\202\31\31\31\377\26\30\30\30\377\27\27\27\377\26\26\26\377" \
- "\25\25\25\377\24\24\24\377\23\23\23\377\22\22\22\377\21\21\21\377\20" \
- "\20\20\377\17\17\17\377\15\15\15\377\14\14\14\377\13\13\13\377\12\12" \
- "\12\377\10\10\10\377\7\7\7\377\6\6\6\377\5\5\5\377\4\4\4\377\3\3\3\377" \
- "\2\2\2\377\1\1\1\377\377\0\0\0\377\275\0\0\0\377\24\1\1\1\377\2\2\2\377" \
- "\3\3\3\377\4\4\4\377\5\5\5\377\6\6\6\377\7\7\7\377\11\11\11\377\12\12" \
- "\12\377\13\13\13\377\15\15\15\377\16\16\16\377\17\17\17\377\20\20\20" \
- "\377\22\22\22\377\23\23\23\377\24\24\24\377\25\25\25\377\26\26\26\377" \
- "\30\30\30\377\202\31\31\31\377\2\32\32\32\377\33\33\33\377\202\34\34" \
- "\34\377\202\35\35\35\377\244\36\36\36\377\204\35\35\35\377\227\34\34" \
- "\34\377\205\35\35\35\377\270\36\36\36\377\221\37\37\37\377\203\36\36" \
- "\36\377\204\35\35\35\377\212\34\34\34\377\215\35\35\35\377\207\36\36" \
- "\36\377\211\37\37\37\377\205\36\36\36\377\211\35\35\35\377\223\36\36" \
- "\36\377\215\37\37\37\377\204\36\36\36\377\202\35\35\35\377\202\34\34" \
- "\34\377\2\33\33\33\377\32\32\32\377\202\31\31\31\377\24\30\30\30\377" \
- "\26\26\26\377\25\25\25\377\24\24\24\377\23\23\23\377\22\22\22\377\20" \
- "\20\20\377\17\17\17\377\16\16\16\377\15\15\15\377\13\13\13\377\12\12" \
- "\12\377\11\11\11\377\7\7\7\377\6\6\6\377\5\5\5\377\4\4\4\377\3\3\3\377" \
- "\2\2\2\377\1\1\1\377\377\0\0\0\377\273\0\0\0\377\202\1\1\1\377\202\3" \
- "\3\3\377\24\4\4\4\377\6\6\6\377\7\7\7\377\10\10\10\377\12\12\12\377\13" \
- "\13\13\377\15\15\15\377\16\16\16\377\20\20\20\377\21\21\21\377\22\22" \
- "\22\377\24\24\24\377\25\25\25\377\26\26\26\377\30\30\30\377\31\31\31" \
- "\377\32\32\32\377\33\33\33\377\34\34\34\377\35\35\35\377\202\36\36\36" \
- "\377\202\37\37\37\377\205\40\40\40\377\217!!!\377\215\40\40\40\377\202" \
- "!!!\377\205\40\40\40\377\231\37\37\37\377\206\40\40\40\377\267!!!\377" \
- "\217\"\"\"\377\203!!!\377\205\40\40\40\377\214\37\37\37\377\215\40\40" \
- "\40\377\221!!!\377\214\40\40\40\377\210!!!\377\206\40\40\40\377\205!" \
- "!!\377\213\"\"\"\377\204!!!\377\202\40\40\40\377\202\37\37\37\377\202" \
- "\36\36\36\377\24\35\35\35\377\34\34\34\377\33\33\33\377\32\32\32\377" \
- "\31\31\31\377\30\30\30\377\26\26\26\377\25\25\25\377\24\24\24\377\22" \
- "\22\22\377\21\21\21\377\20\20\20\377\16\16\16\377\15\15\15\377\13\13" \
- "\13\377\12\12\12\377\10\10\10\377\7\7\7\377\6\6\6\377\4\4\4\377\202\3" \
- "\3\3\377\202\1\1\1\377\377\0\0\0\377\272\0\0\0\377\32\1\1\1\377\2\2\2" \
- "\377\3\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\10\10\10\377\12\12\12\377" \
- "\13\13\13\377\15\15\15\377\16\16\16\377\20\20\20\377\21\21\21\377\23" \
- "\23\23\377\24\24\24\377\25\25\25\377\27\27\27\377\31\31\31\377\32\32" \
- "\32\377\33\33\33\377\34\34\34\377\35\35\35\377\36\36\36\377\37\37\37" \
- "\377\40\40\40\377!!!\377\202\"\"\"\377\250###\377\231\"\"\"\377\236#" \
- "##\377\1$$$\377\233###\377\204$$$\377\215%%%\377\203$$$\377\205###\377" \
- "\217\"\"\"\377\215###\377\216$$$\377\220###\377\1$$$\377\214###\377\204" \
- "$$$\377\211%%%\377\204$$$\377\203###\377\202\"\"\"\377\32!!!\377\40\40" \
- "\40\377\37\37\37\377\36\36\36\377\35\35\35\377\34\34\34\377\33\33\33" \
- "\377\32\32\32\377\31\31\31\377\27\27\27\377\25\25\25\377\24\24\24\377" \
- "\23\23\23\377\21\21\21\377\20\20\20\377\16\16\16\377\15\15\15\377\13" \
- "\13\13\377\12\12\12\377\10\10\10\377\7\7\7\377\5\5\5\377\4\4\4\377\3" \
- "\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\271\0\0\0\377\31\1\1\1\377" \
- "\2\2\2\377\3\3\3\377\4\4\4\377\5\5\5\377\6\6\6\377\10\10\10\377\11\11" \
- "\11\377\13\13\13\377\15\15\15\377\16\16\16\377\20\20\20\377\21\21\21" \
- "\377\23\23\23\377\24\24\24\377\26\26\26\377\30\30\30\377\31\31\31\377" \
- "\32\32\32\377\34\34\34\377\35\35\35\377\37\37\37\377\40\40\40\377!!!" \
- "\377\"\"\"\377\202###\377\1$$$\377\202%%%\377\245&&&\377\235%%%\377\270" \
- "&&&\377\206'''\377\211(((\377\205'''\377\203&&&\377\227%%%\377\210&&" \
- "&\377\215'''\377\205&&&\377\203%%%\377\226&&&\377\205'''\377\203(((\377" \
- "\210'''\377\202&&&\377\202%%%\377\1$$$\377\202###\377\31\"\"\"\377!!" \
- "!\377\40\40\40\377\37\37\37\377\35\35\35\377\34\34\34\377\32\32\32\377" \
- "\31\31\31\377\30\30\30\377\26\26\26\377\24\24\24\377\23\23\23\377\21" \
- "\21\21\377\20\20\20\377\16\16\16\377\15\15\15\377\13\13\13\377\11\11" \
- "\11\377\10\10\10\377\6\6\6\377\5\5\5\377\4\4\4\377\3\3\3\377\2\2\2\377" \
- "\1\1\1\377\377\0\0\0\377\267\0\0\0\377\202\1\1\1\377\202\3\3\3\377\25" \
- "\5\5\5\377\6\6\6\377\7\7\7\377\11\11\11\377\13\13\13\377\14\14\14\377" \
- "\16\16\16\377\20\20\20\377\21\21\21\377\23\23\23\377\25\25\25\377\26" \
- "\26\26\377\30\30\30\377\32\32\32\377\33\33\33\377\35\35\35\377\36\36" \
- "\36\377\40\40\40\377!!!\377\"\"\"\377###\377\202%%%\377\2&&&\377'''\377" \
- "\203(((\377\242)))\377\207(((\377\217'''\377\213(((\377\267)))\377\205" \
- "***\377\210+++\377\206***\377\202)))\377\233(((\377\205)))\377\214**" \
- "*\377\203)))\377\212(((\377\222)))\377\217***\377\202)))\377\203(((\377" \
- "\2'''\377&&&\377\202%%%\377\27###\377\"\"\"\377!!!\377\40\40\40\377\36" \
- "\36\36\377\35\35\35\377\33\33\33\377\32\32\32\377\30\30\30\377\26\26" \
- "\26\377\25\25\25\377\23\23\23\377\21\21\21\377\20\20\20\377\16\16\16" \
- "\377\14\14\14\377\13\13\13\377\11\11\11\377\7\7\7\377\6\6\6\377\5\5\5" \
- "\377\3\3\3\377\2\2\2\377\202\1\1\1\377\377\0\0\0\377\266\0\0\0\377\34" \
- "\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\10\10\10" \
- "\377\12\12\12\377\14\14\14\377\15\15\15\377\20\20\20\377\21\21\21\377" \
- "\23\23\23\377\24\24\24\377\26\26\26\377\30\30\30\377\32\32\32\377\33" \
- "\33\33\377\35\35\35\377\37\37\37\377\40\40\40\377\"\"\"\377###\377%%" \
- "%\377&&&\377'''\377(((\377)))\377\202***\377\207+++\377\211,,,\377\232" \
- "+++\377\223***\377\213+++\377\235,,,\377\222+++\377\206,,,\377\220--" \
- "-\377\203,,,\377\210+++\377\206***\377\220+++\377\207,,,\377\204---\377" \
- "\206,,,\377\215+++\377\206,,,\377\210+++\377\203,,,\377\215---\377\203" \
- ",,,\377\202+++\377\202***\377\34)))\377(((\377'''\377&&&\377%%%\377#" \
- "##\377\"\"\"\377\40\40\40\377\37\37\37\377\35\35\35\377\33\33\33\377" \
- "\32\32\32\377\30\30\30\377\26\26\26\377\24\24\24\377\23\23\23\377\21" \
- "\21\21\377\20\20\20\377\15\15\15\377\14\14\14\377\12\12\12\377\10\10" \
- "\10\377\7\7\7\377\5\5\5\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377" \
- "\0\0\0\377\266\0\0\0\377\1\1\1\1\377\202\3\3\3\377\27\5\5\5\377\6\6\6" \
- "\377\10\10\10\377\11\11\11\377\13\13\13\377\15\15\15\377\17\17\17\377" \
- "\21\21\21\377\22\22\22\377\24\24\24\377\26\26\26\377\30\30\30\377\32" \
- "\32\32\377\34\34\34\377\36\36\36\377\37\37\37\377!!!\377###\377$$$\377" \
- "&&&\377'''\377(((\377***\377\202+++\377\2,,,\377---\377\247...\377\233" \
- "---\377\231...\377\207///\377\230...\377\205///\377\214000\377\204//" \
- "/\377\204...\377\224---\377\210...\377\217///\377\217...\377\203///\377" \
- "\213...\377\205///\377\207000\377\205///\377\203...\377\2---\377,,,\377" \
- "\202+++\377\27***\377(((\377'''\377&&&\377$$$\377###\377!!!\377\37\37" \
- "\37\377\36\36\36\377\34\34\34\377\32\32\32\377\30\30\30\377\26\26\26" \
- "\377\24\24\24\377\22\22\22\377\21\21\21\377\17\17\17\377\15\15\15\377" \
- "\13\13\13\377\11\11\11\377\10\10\10\377\6\6\6\377\5\5\5\377\202\3\3\3" \
- "\377\1\1\1\1\377\377\0\0\0\377\265\0\0\0\377\36\1\1\1\377\2\2\2\377\3" \
- "\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\11\11\11\377\12\12\12\377\14\14" \
- "\14\377\16\16\16\377\20\20\20\377\22\22\22\377\24\24\24\377\26\26\26" \
- "\377\30\30\30\377\32\32\32\377\33\33\33\377\36\36\36\377\37\37\37\377" \
- "!!!\377###\377%%%\377&&&\377(((\377***\377+++\377,,,\377---\377...\377" \
- "///\377\202000\377\244111\377\206000\377\220///\377\211000\377\27111" \
- "1\377\221222\377\203111\377\210000\377\204///\377\217000\377\211111\377" \
- "\203222\377\210111\377\212000\377\223111\377\215222\377\204111\377\202" \
- "000\377\36///\377...\377---\377,,,\377+++\377***\377(((\377&&&\377%%" \
- "%\377###\377!!!\377\37\37\37\377\36\36\36\377\33\33\33\377\32\32\32\377" \
- "\30\30\30\377\26\26\26\377\24\24\24\377\22\22\22\377\20\20\20\377\16" \
- "\16\16\377\14\14\14\377\12\12\12\377\11\11\11\377\7\7\7\377\5\5\5\377" \
- "\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\264\0\0\0\377" \
- "!\1\1\1\377\2\2\2\377\3\3\3\377\5\5\5\377\6\6\6\377\10\10\10\377\12\12" \
- "\12\377\13\13\13\377\15\15\15\377\17\17\17\377\21\21\21\377\23\23\23" \
- "\377\25\25\25\377\27\27\27\377\31\31\31\377\33\33\33\377\35\35\35\377" \
- "\37\37\37\377!!!\377###\377%%%\377'''\377)))\377***\377,,,\377---\377" \
- "///\377000\377LLL\377}}}\377\220\220\220\377\255\255\255\377\306\306" \
- "\306\377\205\326\326\326\377\5\267\267\267\377\256\256\256\377\205\205" \
- "\205\377ppp\377BBB\377\211444\377\203333\377\202444\377\1aaa\377\214" \
- "\205\205\205\377\3\204\204\204\377xxx\377TTT\377\223222\377\4JJJ\377" \
- "ggg\377\205\205\205\377\225\225\225\377\202\255\255\255\377\202\256\256" \
- "\256\377\4\242\242\242\377\205\205\205\377|||\377XXX\377\215444\377\2" \
- ";;;\377ttt\377\216\205\205\205\377\2rrr\377UUU\377\215444\377\2""999" \
- "\377iii\377\206\205\205\205\377\221\206\206\206\377\205\205\205\205\377" \
- "\3\204\204\204\377eee\377CCC\377\222222\377\5YYY\377\205\205\205\377" \
- "\232\232\232\377\255\255\255\377\317\317\317\377\205\326\326\326\377" \
- "\5\256\256\256\377\242\242\242\377\205\205\205\377fff\377666\377\211" \
- "444\377\202333\377\1\200\200\200\377\205\205\205\205\377\2UUU\377333" \
- "\377\212444\377\1EEE\377\207\205\205\205\377\1EEE\377\207555\377\5AA" \
- "A\377ppp\377\206\206\206\377\256\256\256\377\270\270\270\377\205\326" \
- "\326\326\377\40\305\305\305\377\255\255\255\377\220\220\220\377|||\377" \
- "KKK\377///\377---\377,,,\377***\377)))\377'''\377%%%\377###\377!!!\377" \
- "\37\37\37\377\35\35\35\377\33\33\33\377\31\31\31\377\27\27\27\377\25" \
- "\25\25\377\23\23\23\377\21\21\21\377\17\17\17\377\15\15\15\377\13\13" \
- "\13\377\12\12\12\377\10\10\10\377\6\6\6\377\5\5\5\377\3\3\3\377\2\2\2" \
- "\377\1\1\1\377\377\0\0\0\377\263\0\0\0\377\202\1\1\1\377\33\3\3\3\377" \
- "\4\4\4\377\5\5\5\377\7\7\7\377\11\11\11\377\12\12\12\377\14\14\14\377" \
- "\16\16\16\377\20\20\20\377\22\22\22\377\24\24\24\377\27\27\27\377\31" \
- "\31\31\377\33\33\33\377\35\35\35\377\37\37\37\377!!!\377###\377%%%\377" \
- "'''\377)))\377+++\377---\377...\377<<<\377\222\222\222\377\342\342\342" \
- "\377\217\377\377\377\377\2\311\311\311\377{{{\377\212666\377\2^^^\377" \
- "\336\336\336\377\220\377\377\377\377\4\361\361\361\377\256\256\256\377" \
- "TTT\377555\377\211444\377\203555\377\3YYY\377\247\247\247\377\354\354" \
- "\354\377\214\377\377\377\377\3\363\363\363\377\304\304\304\377sss\377" \
- "\211666\377\2}}}\377\366\366\366\377\221\377\377\377\377\3\356\356\356" \
- "\377\245\245\245\377RRR\377\211666\377\2xxx\377\354\354\354\377\240\377" \
- "\377\377\377\3\327\327\327\377\217\217\217\377\77\77\77\377\214555\377" \
- "\3RRR\377\251\251\251\377\356\356\356\377\216\377\377\377\377\3\370\370" \
- "\370\377\270\270\270\377aaa\377\203777\377\206666\377\1\363\363\363\377" \
- "\205\377\377\377\377\1\211\211\211\377\212666\377\2===\377\324\324\324" \
- "\377\206\377\377\377\377\1\240\240\240\377\206777\377\2~~~\377\311\311" \
- "\311\377\217\377\377\377\377\32\342\342\342\377\221\221\221\377:::\377" \
- "---\377+++\377)))\377'''\377%%%\377###\377!!!\377\37\37\37\377\35\35" \
- "\35\377\33\33\33\377\31\31\31\377\27\27\27\377\24\24\24\377\22\22\22" \
- "\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12\12\377\11\11\11\377" \
- "\7\7\7\377\5\5\5\377\4\4\4\377\3\3\3\377\202\1\1\1\377\377\0\0\0\377" \
- "\262\0\0\0\377\33\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\6\6\6\377\10" \
- "\10\10\377\11\11\11\377\13\13\13\377\15\15\15\377\20\20\20\377\21\21" \
- "\21\377\24\24\24\377\25\25\25\377\30\30\30\377\32\32\32\377\34\34\34" \
- "\377\36\36\36\377\40\40\40\377###\377%%%\377'''\377)))\377+++\377---" \
- "\377///\377www\377\361\361\361\377\223\377\377\377\377\2\332\332\332" \
- "\377VVV\377\207888\377\2FFF\377\357\357\357\377\224\377\377\377\377\2" \
- "\246\246\246\377>>>\377\211777\377\2CCC\377\266\266\266\377\222\377\377" \
- "\377\377\2\323\323\323\377RRR\377\206888\377\2[[[\377\372\372\372\377" \
- "\224\377\377\377\377\2\370\370\370\377\212\212\212\377\207888\377\2b" \
- "bb\377\375\375\375\377\243\377\377\377\377\2\352\352\352\377aaa\377\211" \
- "777\377\3""999\377\241\241\241\377\372\372\372\377\223\377\377\377\377" \
- "\2\276\276\276\377BBB\377\203999\377\204888\377\1\363\363\363\377\205" \
- "\377\377\377\377\1\212\212\212\377\211888\377\2===\377\313\313\313\377" \
- "\206\377\377\377\377\1\262\262\262\377\205999\377\2WWW\377\332\332\332" \
- "\377\223\377\377\377\377\32\360\360\360\377vvv\377---\377+++\377)))\377" \
- "'''\377%%%\377###\377\40\40\40\377\36\36\36\377\34\34\34\377\32\32\32" \
- "\377\30\30\30\377\25\25\25\377\24\24\24\377\21\21\21\377\20\20\20\377" \
- "\15\15\15\377\13\13\13\377\11\11\11\377\10\10\10\377\6\6\6\377\4\4\4" \
- "\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\262\0\0\0\377\31\1\1" \
- "\1\377\2\2\2\377\3\3\3\377\5\5\5\377\6\6\6\377\10\10\10\377\12\12\12" \
- "\377\14\14\14\377\16\16\16\377\20\20\20\377\22\22\22\377\24\24\24\377" \
- "\27\27\27\377\31\31\31\377\33\33\33\377\36\36\36\377\40\40\40\377\"\"" \
- "\"\377$$$\377'''\377)))\377+++\377---\377///\377\231\231\231\377\226" \
- "\377\377\377\377\2\366\366\366\377ddd\377\206:::\377\1\224\224\224\377" \
- "\226\377\377\377\377\2\316\316\316\377EEE\377\207999\377\2NNN\377\341" \
- "\341\341\377\224\377\377\377\377\2\361\361\361\377]]]\377\205:::\377" \
- "\1\240\240\240\377\227\377\377\377\377\1\224\224\224\377\206:::\377\1" \
- "\271\271\271\377\245\377\377\377\377\2\363\363\363\377UUU\377\207999" \
- "\377\2>>>\377\311\311\311\377\226\377\377\377\377\2\341\341\341\377J" \
- "JJ\377\206:::\377\1\363\363\363\377\205\377\377\377\377\1\213\213\213" \
- "\377\211:::\377\1\271\271\271\377\206\377\377\377\377\2\276\276\276\377" \
- "<<<\377\204;;;\377\2eee\377\366\366\366\377\226\377\377\377\377\30\226" \
- "\226\226\377---\377+++\377)))\377'''\377$$$\377\"\"\"\377\40\40\40\377" \
- "\36\36\36\377\33\33\33\377\31\31\31\377\27\27\27\377\24\24\24\377\22" \
- "\22\22\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12\12\377\10\10" \
- "\10\377\6\6\6\377\5\5\5\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377" \
- "\262\0\0\0\377\30\1\1\1\377\3\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\11" \
- "\11\11\377\13\13\13\377\15\15\15\377\17\17\17\377\21\21\21\377\23\23" \
- "\23\377\25\25\25\377\30\30\30\377\32\32\32\377\34\34\34\377\37\37\37" \
- "\377!!!\377###\377&&&\377(((\377+++\377---\377///\377zzz\377\230\377" \
- "\377\377\377\2\357\357\357\377QQQ\377\205<<<\377\1\274\274\274\377\227" \
- "\377\377\377\377\1\303\303\303\377\206:::\377\2\77\77\77\377\334\334" \
- "\334\377\226\377\377\377\377\2\352\352\352\377JJJ\377\204<<<\377\1\272" \
- "\272\272\377\230\377\377\377\377\1jjj\377\205<<<\377\1\341\341\341\377" \
- "\246\377\377\377\377\1\325\325\325\377\207;;;\377\1\263\263\263\377\230" \
- "\377\377\377\377\2\324\324\324\377\77\77\77\377\202===\377\203<<<\377" \
- "\1\364\364\364\377\205\377\377\377\377\1\214\214\214\377\210<<<\377\1" \
- "\254\254\254\377\206\377\377\377\377\2\312\312\312\377BBB\377\204===" \
- "\377\2TTT\377\357\357\357\377\230\377\377\377\377\27vvv\377---\377++" \
- "+\377(((\377&&&\377###\377!!!\377\37\37\37\377\34\34\34\377\32\32\32" \
- "\377\30\30\30\377\25\25\25\377\23\23\23\377\21\21\21\377\17\17\17\377" \
- "\15\15\15\377\13\13\13\377\11\11\11\377\7\7\7\377\5\5\5\377\4\4\4\377" \
- "\3\3\3\377\1\1\1\377\377\0\0\0\377\261\0\0\0\377\31\1\1\1\377\2\2\2\377" \
- "\3\3\3\377\4\4\4\377\6\6\6\377\10\10\10\377\11\11\11\377\13\13\13\377" \
- "\15\15\15\377\20\20\20\377\22\22\22\377\24\24\24\377\26\26\26\377\31" \
- "\31\31\377\33\33\33\377\36\36\36\377\40\40\40\377###\377%%%\377'''\377" \
- "***\377,,,\377...\377\77\77\77\377\361\361\361\377\207\377\377\377\377" \
- "\3\355\355\355\377\251\251\251\377\212\212\212\377\204eee\377\4lll\377" \
- "\214\214\214\377\277\277\277\377\372\372\372\377\207\377\377\377\377" \
- "\2\306\306\306\377===\377\204>>>\377\1\306\306\306\377\206\377\377\377" \
- "\377\1\267\267\267\377\206\214\214\214\377\3\216\216\216\377\262\262" \
- "\262\377\341\341\341\377\210\377\377\377\377\1\201\201\201\377\205<<" \
- "<\377\1\241\241\241\377\207\377\377\377\377\3\366\366\366\377\300\300" \
- "\300\377\231\231\231\377\204\214\214\214\377\2\247\247\247\377\324\324" \
- "\324\377\210\377\377\377\377\1\251\251\251\377\204>>>\377\1\273\273\273" \
- "\377\205\377\377\377\377\2\375\375\375\377\247\247\247\377\207\214\214" \
- "\214\377\3\245\245\245\377\275\275\275\377\355\355\355\377\207\377\377" \
- "\377\377\1\326\326\326\377\205>>>\377\1\361\361\361\377\205\377\377\377" \
- "\377\2\364\364\364\377\240\240\240\377\211\214\214\214\377\1\320\320" \
- "\320\377\205\377\377\377\377\1\353\353\353\377\206\214\214\214\377\3" \
- "\227\227\227\377\273\273\273\377\364\364\364\377\207\377\377\377\377" \
- "\2qqq\377===\377\202<<<\377\202===\377\1kkk\377\210\377\377\377\377\3" \
- "\335\335\335\377\236\236\236\377\201\201\201\377\204eee\377\3www\377" \
- "\225\225\225\377\317\317\317\377\210\377\377\377\377\1\220\220\220\377" \
- "\205>>>\377\1\364\364\364\377\205\377\377\377\377\1\215\215\215\377\207" \
- ">>>\377\1\231\231\231\377\206\377\377\377\377\2\326\326\326\377FFF\377" \
- "\205\77\77\77\377\1\307\307\307\377\207\377\377\377\377\4\372\372\372" \
- "\377\302\302\302\377\216\216\216\377nnn\377\204eee\377\3\207\207\207" \
- "\377\251\251\251\377\357\357\357\377\207\377\377\377\377\30\360\360\360" \
- "\377===\377,,,\377***\377'''\377%%%\377###\377\40\40\40\377\36\36\36" \
- "\377\33\33\33\377\31\31\31\377\26\26\26\377\24\24\24\377\22\22\22\377" \
- "\20\20\20\377\15\15\15\377\13\13\13\377\11\11\11\377\10\10\10\377\6\6" \
- "\6\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\260\0\0" \
- "\0\377\30\1\1\1\377\2\2\2\377\3\3\3\377\5\5\5\377\6\6\6\377\10\10\10" \
- "\377\12\12\12\377\14\14\14\377\16\16\16\377\20\20\20\377\22\22\22\377" \
- "\25\25\25\377\27\27\27\377\32\32\32\377\34\34\34\377\37\37\37\377!!!" \
- "\377###\377&&&\377(((\377+++\377---\377000\377\232\232\232\377\206\377" \
- "\377\377\377\3\375\375\375\377\231\231\231\377DDD\377\211@@@\377\2VV" \
- "V\377\313\313\313\377\207\377\377\377\377\1ccc\377\204\77\77\77\377\1" \
- "\307\307\307\377\205\377\377\377\377\2\313\313\313\377@@@\377\205AAA" \
- "\377\204@@@\377\2zzz\377\355\355\355\377\206\377\377\377\377\2\346\346" \
- "\346\377@@@\377\203>>>\377\2GGG\377\364\364\364\377\206\377\377\377\377" \
- "\2\273\273\273\377KKK\377\202@@@\377\203AAA\377\203@@@\377\2ddd\377\331" \
- "\331\331\377\206\377\377\377\377\2\366\366\366\377FFF\377\203\77\77\77" \
- "\377\1\273\273\273\377\205\377\377\377\377\2\320\320\320\377@@@\377\206" \
- "AAA\377\203@@@\377\2GGG\377\254\254\254\377\207\377\377\377\377\1aaa" \
- "\377\204\77\77\77\377\1\364\364\364\377\205\377\377\377\377\2\243\243" \
- "\243\377@@@\377\211AAA\377\1\261\261\261\377\205\377\377\377\377\1\335" \
- "\335\335\377\204AAA\377\204@@@\377\2KKK\377\313\313\313\377\206\377\377" \
- "\377\377\1\271\271\271\377\205>>>\377\1\317\317\317\377\206\377\377\377" \
- "\377\2\355\355\355\377zzz\377\212@@@\377\2kkk\377\344\344\344\377\206" \
- "\377\377\377\377\2\357\357\357\377DDD\377\204@@@\377\1\364\364\364\377" \
- "\205\377\377\377\377\1\217\217\217\377\206\77\77\77\377\1\212\212\212" \
- "\377\206\377\377\377\377\2\335\335\335\377KKK\377\205@@@\377\1ddd\377" \
- "\207\377\377\377\377\2\305\305\305\377RRR\377\211@@@\377\2DDD\377\234" \
- "\234\234\377\207\377\377\377\377\27\231\231\231\377---\377+++\377(((" \
- "\377&&&\377###\377!!!\377\37\37\37\377\34\34\34\377\32\32\32\377\27\27" \
- "\27\377\25\25\25\377\22\22\22\377\20\20\20\377\16\16\16\377\14\14\14" \
- "\377\12\12\12\377\10\10\10\377\6\6\6\377\5\5\5\377\3\3\3\377\2\2\2\377" \
- "\1\1\1\377\377\0\0\0\377\260\0\0\0\377\30\1\1\1\377\2\2\2\377\3\3\3\377" \
- "\5\5\5\377\7\7\7\377\11\11\11\377\12\12\12\377\15\15\15\377\17\17\17" \
- "\377\21\21\21\377\23\23\23\377\25\25\25\377\30\30\30\377\32\32\32\377" \
- "\35\35\35\377\40\40\40\377\"\"\"\377%%%\377'''\377***\377,,,\377///\377" \
- "333\377\354\354\354\377\206\377\377\377\377\1\201\201\201\377\214AAA" \
- "\377\2BBB\377\302\302\302\377\206\377\377\377\377\1\267\267\267\377\204" \
- "@@@\377\1\307\307\307\377\205\377\377\377\377\1\274\274\274\377\210B" \
- "BB\377\203AAA\377\2WWW\377\362\362\362\377\206\377\377\377\377\1sss\377" \
- "\203\77\77\77\377\1\203\203\203\377\206\377\377\377\377\1\300\300\300" \
- "\377\202AAA\377\207BBB\377\202AAA\377\2JJJ\377\342\342\342\377\206\377" \
- "\377\377\377\1xxx\377\203@@@\377\1\274\274\274\377\205\377\377\377\377" \
- "\1\307\307\307\377\211BBB\377\203AAA\377\1\276\276\276\377\206\377\377" \
- "\377\377\1\223\223\223\377\204@@@\377\1\364\364\364\377\205\377\377\377" \
- "\377\1\233\233\233\377\212BBB\377\1\261\261\261\377\205\377\377\377\377" \
- "\1\336\336\336\377\207BBB\377\202AAA\377\2LLL\377\353\353\353\377\205" \
- "\377\377\377\377\1\350\350\350\377\204\77\77\77\377\1___\377\206\377" \
- "\377\377\377\2\364\364\364\377]]]\377\214AAA\377\2QQQ\377\346\346\346" \
- "\377\206\377\377\377\377\1\202\202\202\377\204AAA\377\1\364\364\364\377" \
- "\205\377\377\377\377\1\217\217\217\377\203AAA\377\202@@@\377\2zzz\377" \
- "\375\375\375\377\205\377\377\377\377\4\344\344\344\377SSS\377AAA\377" \
- "BBB\377\204AAA\377\1\261\261\261\377\206\377\377\377\377\1\276\276\276" \
- "\377\214AAA\377\2@@@\377\212\212\212\377\206\377\377\377\377\27\354\354" \
- "\354\377111\377,,,\377***\377'''\377%%%\377\"\"\"\377\40\40\40\377\35" \
- "\35\35\377\32\32\32\377\30\30\30\377\25\25\25\377\23\23\23\377\21\21" \
- "\21\377\17\17\17\377\15\15\15\377\12\12\12\377\11\11\11\377\7\7\7\377" \
- "\5\5\5\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\260\0\0\0\377" \
- "\27\1\1\1\377\2\2\2\377\4\4\4\377\5\5\5\377\7\7\7\377\11\11\11\377\13" \
- "\13\13\377\15\15\15\377\20\20\20\377\21\21\21\377\24\24\24\377\26\26" \
- "\26\377\31\31\31\377\33\33\33\377\36\36\36\377\40\40\40\377###\377&&" \
- "&\377(((\377+++\377---\377000\377bbb\377\206\377\377\377\377\2\300\300" \
- "\300\377AAA\377\213BBB\377\202AAA\377\2LLL\377\362\362\362\377\205\377" \
- "\377\377\377\2\362\362\362\377CCC\377\203AAA\377\1\307\307\307\377\205" \
- "\377\377\377\377\1\274\274\274\377\214BBB\377\1\211\211\211\377\206\377" \
- "\377\377\377\1\252\252\252\377\203@@@\377\1\260\260\260\377\205\377\377" \
- "\377\377\2\373\373\373\377RRR\377\214BBB\377\1zzz\377\206\377\377\377" \
- "\377\1\237\237\237\377\203AAA\377\1\274\274\274\377\205\377\377\377\377" \
- "\1\307\307\307\377\214BBB\377\1fff\377\206\377\377\377\377\1\263\263" \
- "\263\377\204AAA\377\1\364\364\364\377\205\377\377\377\377\1\233\233\233" \
- "\377\212BBB\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336\377" \
- "\212BBB\377\1\246\246\246\377\206\377\377\377\377\1GGG\377\203@@@\377" \
- "\1\232\232\232\377\206\377\377\377\377\2\224\224\224\377AAA\377\213B" \
- "BB\377\202AAA\377\1ppp\377\206\377\377\377\377\1\274\274\274\377\204" \
- "BBB\377\1\364\364\364\377\205\377\377\377\377\2\220\220\220\377BBB\377" \
- "\203AAA\377\2nnn\377\370\370\370\377\205\377\377\377\377\2\353\353\353" \
- "\377]]]\377\207BBB\377\1\351\351\351\377\205\377\377\377\377\2\362\362" \
- "\362\377JJJ\377\214BBB\377\3AAA\377@@@\377\302\302\302\377\206\377\377" \
- "\377\377\26aaa\377---\377+++\377(((\377&&&\377###\377\40\40\40\377\36" \
- "\36\36\377\33\33\33\377\31\31\31\377\26\26\26\377\24\24\24\377\21\21" \
- "\21\377\17\17\17\377\15\15\15\377\13\13\13\377\11\11\11\377\7\7\7\377" \
- "\5\5\5\377\4\4\4\377\2\2\2\377\1\1\1\377\377\0\0\0\377\260\0\0\0\377" \
- "\27\1\1\1\377\3\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\11\11\11\377\13" \
- "\13\13\377\15\15\15\377\20\20\20\377\22\22\22\377\24\24\24\377\27\27" \
- "\27\377\31\31\31\377\34\34\34\377\37\37\37\377!!!\377$$$\377'''\377)" \
- "))\377,,,\377...\377111\377\224\224\224\377\206\377\377\377\377\1www" \
- "\377\217BBB\377\1\250\250\250\377\206\377\377\377\377\1___\377\203BB" \
- "B\377\1\307\307\307\377\205\377\377\377\377\1\274\274\274\377\214BBB" \
- "\377\2III\377\366\366\366\377\205\377\377\377\377\1\320\320\320\377\203" \
- "AAA\377\1\322\322\322\377\205\377\377\377\377\1\314\314\314\377\215B" \
- "BB\377\2DDD\377\370\370\370\377\205\377\377\377\377\1\266\266\266\377" \
- "\203BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377\215" \
- "BBB\377\1\353\353\353\377\205\377\377\377\377\1\305\305\305\377\204B" \
- "BB\377\1\364\364\364\377\205\377\377\377\377\1\233\233\233\377\212BB" \
- "B\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336\377\212BBB" \
- "\377\1|||\377\206\377\377\377\377\1ZZZ\377\203AAA\377\1\314\314\314\377" \
- "\205\377\377\377\377\2\373\373\373\377III\377\217BBB\377\1\325\325\325" \
- "\377\205\377\377\377\377\1\355\355\355\377\204BBB\377\1\364\364\364\377" \
- "\205\377\377\377\377\1\220\220\220\377\203BBB\377\2ccc\377\364\364\364" \
- "\377\205\377\377\377\377\2\362\362\362\377ccc\377\207BBB\377\1___\377" \
- "\206\377\377\377\377\1\261\261\261\377\216BBB\377\2AAA\377hhh\377\206" \
- "\377\377\377\377\26\222\222\222\377...\377,,,\377)))\377&&&\377$$$\377" \
- "!!!\377\37\37\37\377\34\34\34\377\31\31\31\377\27\27\27\377\24\24\24" \
- "\377\22\22\22\377\20\20\20\377\15\15\15\377\13\13\13\377\11\11\11\377" \
- "\7\7\7\377\5\5\5\377\4\4\4\377\3\3\3\377\1\1\1\377\377\0\0\0\377\260" \
- "\0\0\0\377\27\1\1\1\377\3\3\3\377\4\4\4\377\6\6\6\377\10\10\10\377\12" \
- "\12\12\377\14\14\14\377\16\16\16\377\20\20\20\377\22\22\22\377\25\25" \
- "\25\377\27\27\27\377\32\32\32\377\34\34\34\377\37\37\37\377\"\"\"\377" \
- "%%%\377'''\377***\377---\377///\377222\377\272\272\272\377\205\377\377" \
- "\377\377\2\370\370\370\377III\377\217BBB\377\1jjj\377\206\377\377\377" \
- "\377\1\205\205\205\377\203BBB\377\1\307\307\307\377\205\377\377\377\377" \
- "\1\274\274\274\377\215BBB\377\1\323\323\323\377\205\377\377\377\377\1" \
- "\347\347\347\377\203BBB\377\1\351\351\351\377\205\377\377\377\377\1\266" \
- "\266\266\377\216BBB\377\1\347\347\347\377\205\377\377\377\377\1\301\301" \
- "\301\377\203BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307" \
- "\377\215BBB\377\1\314\314\314\377\205\377\377\377\377\1\307\307\307\377" \
- "\204BBB\377\1\364\364\364\377\205\377\377\377\377\1\233\233\233\377\212" \
- "BBB\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336\377\212B" \
- "BB\377\1nnn\377\206\377\377\377\377\1ccc\377\203BBB\377\1\357\357\357" \
- "\377\205\377\377\377\377\1\323\323\323\377\220BBB\377\1\235\235\235\377" \
- "\206\377\377\377\377\1TTT\377\203BBB\377\1\364\364\364\377\205\377\377" \
- "\377\377\1\220\220\220\377\202BBB\377\2VVV\377\353\353\353\377\205\377" \
- "\377\377\377\2\370\370\370\377jjj\377\210BBB\377\1\205\205\205\377\206" \
- "\377\377\377\377\1~~~\377\217BBB\377\2AAA\377\357\357\357\377\205\377" \
- "\377\377\377\26\271\271\271\377///\377---\377***\377'''\377%%%\377\"" \
- "\"\"\377\37\37\37\377\34\34\34\377\32\32\32\377\27\27\27\377\25\25\25" \
- "\377\22\22\22\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12\12\377" \
- "\10\10\10\377\6\6\6\377\4\4\4\377\3\3\3\377\1\1\1\377\377\0\0\0\377\257" \
- "\0\0\0\377\30\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\6\6\6\377\10\10" \
- "\10\377\12\12\12\377\14\14\14\377\16\16\16\377\20\20\20\377\23\23\23" \
- "\377\25\25\25\377\30\30\30\377\32\32\32\377\35\35\35\377\40\40\40\377" \
- "###\377%%%\377(((\377+++\377---\377000\377222\377\327\327\327\377\205" \
- "\377\377\377\377\1\331\331\331\377\220BBB\377\1KKK\377\206\377\377\377" \
- "\377\1\237\237\237\377\203BBB\377\1\307\307\307\377\205\377\377\377\377" \
- "\1\274\274\274\377\215BBB\377\1\270\270\270\377\205\377\377\377\377\2" \
- "\375\375\375\377FFF\377\202BBB\377\1\373\373\373\377\205\377\377\377" \
- "\377\1\246\246\246\377\215BBB\377\2VVV\377\370\370\370\377\205\377\377" \
- "\377\377\1\312\312\312\377\203BBB\377\1\274\274\274\377\205\377\377\377" \
- "\377\1\307\307\307\377\215BBB\377\1\277\277\277\377\205\377\377\377\377" \
- "\1\307\307\307\377\204BBB\377\1\364\364\364\377\205\377\377\377\377\1" \
- "\233\233\233\377\212BBB\377\1\261\261\261\377\205\377\377\377\377\1\336" \
- "\336\336\377\212BBB\377\1nnn\377\206\377\377\377\377\1ccc\377\202BBB" \
- "\377\1KKK\377\206\377\377\377\377\1\250\250\250\377\220BBB\377\1zzz\377" \
- "\206\377\377\377\377\1nnn\377\203BBB\377\1\364\364\364\377\205\377\377" \
- "\377\377\1\220\220\220\377\202BBB\377\1\320\320\320\377\205\377\377\377" \
- "\377\2\373\373\373\377sss\377\211BBB\377\1\235\235\235\377\206\377\377" \
- "\377\377\1VVV\377\217BBB\377\2AAA\377\313\313\313\377\205\377\377\377" \
- "\377\27\326\326\326\377000\377---\377+++\377(((\377%%%\377\"\"\"\377" \
- "\40\40\40\377\35\35\35\377\32\32\32\377\30\30\30\377\25\25\25\377\23" \
- "\23\23\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12\12\377\10\10" \
- "\10\377\6\6\6\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377" \
- "\256\0\0\0\377\30\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\6\6\6\377\10" \
- "\10\10\377\12\12\12\377\14\14\14\377\16\16\16\377\21\21\21\377\23\23" \
- "\23\377\25\25\25\377\30\30\30\377\33\33\33\377\35\35\35\377\40\40\40" \
- "\377###\377&&&\377(((\377+++\377...\377000\377333\377\354\354\354\377" \
- "\205\377\377\377\377\1\303\303\303\377\221BBB\377\1\370\370\370\377\205" \
- "\377\377\377\377\1\263\263\263\377\203BBB\377\1\307\307\307\377\205\377" \
- "\377\377\377\1\274\274\274\377\215BBB\377\1\250\250\250\377\206\377\377" \
- "\377\377\3MMM\377BBB\377DDD\377\206\377\377\377\377\1\355\355\355\377" \
- "\215\331\331\331\377\1\370\370\370\377\206\377\377\377\377\1\307\307" \
- "\307\377\203BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307" \
- "\377\215BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377" \
- "\204BBB\377\1\364\364\364\377\205\377\377\377\377\1\233\233\233\377\212" \
- "BBB\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336\377\212B" \
- "BB\377\1nnn\377\206\377\377\377\377\1ccc\377\202BBB\377\1___\377\206" \
- "\377\377\377\377\1\226\226\226\377\220BBB\377\1jjj\377\206\377\377\377" \
- "\377\1\202\202\202\377\203BBB\377\1\364\364\364\377\205\377\377\377\377" \
- "\3\220\220\220\377BBB\377www\377\206\377\377\377\377\1\211\211\211\377" \
- "\212BBB\377\1\257\257\257\377\205\377\377\377\377\2\375\375\375\377D" \
- "DD\377\217BBB\377\2AAA\377\276\276\276\377\205\377\377\377\377\27\354" \
- "\354\354\377000\377...\377+++\377(((\377&&&\377###\377\40\40\40\377\35" \
- "\35\35\377\33\33\33\377\30\30\30\377\25\25\25\377\23\23\23\377\21\21" \
- "\21\377\16\16\16\377\14\14\14\377\12\12\12\377\10\10\10\377\6\6\6\377" \
- "\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\256\0\0\0\377" \
- "\30\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\6\6\6\377\10\10\10\377\12" \
- "\12\12\377\14\14\14\377\17\17\17\377\21\21\21\377\23\23\23\377\26\26" \
- "\26\377\31\31\31\377\33\33\33\377\36\36\36\377\40\40\40\377###\377&&" \
- "&\377)))\377+++\377...\377111\377444\377\370\370\370\377\205\377\377" \
- "\377\377\1\263\263\263\377\221BBB\377\1\353\353\353\377\205\377\377\377" \
- "\377\1\274\274\274\377\203BBB\377\1\307\307\307\377\205\377\377\377\377" \
- "\1\274\274\274\377\215BBB\377\1\237\237\237\377\206\377\377\377\377\3" \
- "RRR\377BBB\377MMM\377\233\377\377\377\377\1\257\257\257\377\203BBB\377" \
- "\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377\215BBB\377\1" \
- "\274\274\274\377\205\377\377\377\377\1\307\307\307\377\204BBB\377\1\364" \
- "\364\364\377\205\377\377\377\377\1\233\233\233\377\212BBB\377\1\261\261" \
- "\261\377\205\377\377\377\377\1\336\336\336\377\212BBB\377\1nnn\377\206" \
- "\377\377\377\377\1ccc\377\202BBB\377\1jjj\377\206\377\377\377\377\1\207" \
- "\207\207\377\220BBB\377\1aaa\377\206\377\377\377\377\1\216\216\216\377" \
- "\203BBB\377\1\364\364\364\377\205\377\377\377\377\3\220\220\220\377B" \
- "BB\377\257\257\257\377\205\377\377\377\377\1\331\331\331\377\213BBB\377" \
- "\1\274\274\274\377\205\377\377\377\377\1\357\357\357\377\220BBB\377\2" \
- "AAA\377\260\260\260\377\205\377\377\377\377\27\370\370\370\377111\377" \
- "...\377+++\377)))\377&&&\377###\377\40\40\40\377\36\36\36\377\33\33\33" \
- "\377\31\31\31\377\26\26\26\377\23\23\23\377\21\21\21\377\17\17\17\377" \
- "\14\14\14\377\12\12\12\377\10\10\10\377\6\6\6\377\4\4\4\377\3\3\3\377" \
- "\2\2\2\377\1\1\1\377\377\0\0\0\377\256\0\0\0\377\27\1\1\1\377\2\2\2\377" \
- "\3\3\3\377\4\4\4\377\6\6\6\377\10\10\10\377\12\12\12\377\15\15\15\377" \
- "\17\17\17\377\21\21\21\377\24\24\24\377\26\26\26\377\31\31\31\377\33" \
- "\33\33\377\36\36\36\377\40\40\40\377###\377&&&\377)))\377+++\377...\377" \
- "111\377444\377\206\377\377\377\377\1\261\261\261\377\221BBB\377\1\351" \
- "\351\351\377\205\377\377\377\377\1\307\307\307\377\203BBB\377\1\307\307" \
- "\307\377\205\377\377\377\377\1\274\274\274\377\215BBB\377\1\233\233\233" \
- "\377\206\377\377\377\377\3XXX\377BBB\377MMM\377\233\377\377\377\377\1" \
- "zzz\377\203BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307" \
- "\377\215BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377" \
- "\204BBB\377\1\364\364\364\377\205\377\377\377\377\1\233\233\233\377\212" \
- "BBB\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336\377\212B" \
- "BB\377\1nnn\377\206\377\377\377\377\1ccc\377\202BBB\377\1nnn\377\206" \
- "\377\377\377\377\1\205\205\205\377\220BBB\377\1XXX\377\206\377\377\377" \
- "\377\1\220\220\220\377\203BBB\377\1\364\364\364\377\205\377\377\377\377" \
- "\3\220\220\220\377BBB\377\277\277\277\377\205\377\377\377\377\1\312\312" \
- "\312\377\213BBB\377\1\305\305\305\377\205\377\377\377\377\1\351\351\351" \
- "\377\220BBB\377\2AAA\377\261\261\261\377\206\377\377\377\377\26""111" \
- "\377...\377+++\377)))\377&&&\377###\377\40\40\40\377\36\36\36\377\33" \
- "\33\33\377\31\31\31\377\26\26\26\377\23\23\23\377\21\21\21\377\17\17" \
- "\17\377\15\15\15\377\12\12\12\377\10\10\10\377\6\6\6\377\4\4\4\377\3" \
- "\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\256\0\0\0\377\27\1\1\1\377" \
- "\2\2\2\377\3\3\3\377\4\4\4\377\6\6\6\377\10\10\10\377\12\12\12\377\15" \
- "\15\15\377\17\17\17\377\21\21\21\377\24\24\24\377\26\26\26\377\31\31" \
- "\31\377\33\33\33\377\36\36\36\377!!!\377###\377&&&\377)))\377,,,\377" \
- "...\377111\377444\377\206\377\377\377\377\1\261\261\261\377\221BBB\377" \
- "\1\351\351\351\377\205\377\377\377\377\1\301\301\301\377\203BBB\377\1" \
- "\307\307\307\377\205\377\377\377\377\1\274\274\274\377\215BBB\377\1\233" \
- "\233\233\377\206\377\377\377\377\3OOO\377BBB\377MMM\377\232\377\377\377" \
- "\377\2\316\316\316\377DDD\377\203BBB\377\1\274\274\274\377\205\377\377" \
- "\377\377\1\307\307\307\377\215BBB\377\1\274\274\274\377\205\377\377\377" \
- "\377\1\307\307\307\377\204BBB\377\1\364\364\364\377\205\377\377\377\377" \
- "\1\233\233\233\377\212BBB\377\1\261\261\261\377\205\377\377\377\377\1" \
- "\336\336\336\377\212BBB\377\1nnn\377\206\377\377\377\377\1ccc\377\202" \
- "BBB\377\1nnn\377\206\377\377\377\377\1\205\205\205\377\220BBB\377\1_" \
- "__\377\206\377\377\377\377\1\220\220\220\377\203BBB\377\1\364\364\364" \
- "\377\205\377\377\377\377\3\220\220\220\377BBB\377\255\255\255\377\205" \
- "\377\377\377\377\2\366\366\366\377OOO\377\212BBB\377\1\307\307\307\377" \
- "\205\377\377\377\377\1\351\351\351\377\220BBB\377\2AAA\377\261\261\261" \
- "\377\205\377\377\377\377\27\375\375\375\377111\377...\377+++\377)))\377" \
- "&&&\377###\377\40\40\40\377\36\36\36\377\33\33\33\377\31\31\31\377\26" \
- "\26\26\377\24\24\24\377\21\21\21\377\17\17\17\377\15\15\15\377\12\12" \
- "\12\377\10\10\10\377\6\6\6\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377" \
- "\377\0\0\0\377\256\0\0\0\377\30\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377" \
- "\6\6\6\377\10\10\10\377\12\12\12\377\15\15\15\377\17\17\17\377\21\21" \
- "\21\377\24\24\24\377\26\26\26\377\31\31\31\377\33\33\33\377\36\36\36" \
- "\377\40\40\40\377###\377&&&\377)))\377+++\377...\377111\377444\377\370" \
- "\370\370\377\205\377\377\377\377\1\263\263\263\377\221BBB\377\1\362\362" \
- "\362\377\205\377\377\377\377\1\274\274\274\377\203BBB\377\1\307\307\307" \
- "\377\205\377\377\377\377\1\274\274\274\377\215BBB\377\1\244\244\244\377" \
- "\206\377\377\377\377\3MMM\377BBB\377MMM\377\230\377\377\377\377\3\370" \
- "\370\370\377\270\270\270\377KKK\377\204BBB\377\1\274\274\274\377\205" \
- "\377\377\377\377\1\307\307\307\377\215BBB\377\1\274\274\274\377\205\377" \
- "\377\377\377\1\307\307\307\377\204BBB\377\1\364\364\364\377\205\377\377" \
- "\377\377\1\233\233\233\377\212BBB\377\1\261\261\261\377\205\377\377\377" \
- "\377\1\336\336\336\377\212BBB\377\1nnn\377\206\377\377\377\377\1ccc\377" \
- "\202BBB\377\1lll\377\206\377\377\377\377\1\205\205\205\377\220BBB\377" \
- "\1ccc\377\206\377\377\377\377\1\213\213\213\377\203BBB\377\1\364\364" \
- "\364\377\205\377\377\377\377\3\220\220\220\377BBB\377sss\377\206\377" \
- "\377\377\377\1\307\307\307\377\212BBB\377\1\274\274\274\377\205\377\377" \
- "\377\377\1\364\364\364\377\220BBB\377\2AAA\377\260\260\260\377\205\377" \
- "\377\377\377\27\363\363\363\377111\377...\377+++\377)))\377&&&\377##" \
- "#\377\40\40\40\377\36\36\36\377\33\33\33\377\31\31\31\377\26\26\26\377" \
- "\23\23\23\377\21\21\21\377\17\17\17\377\15\15\15\377\12\12\12\377\10" \
- "\10\10\377\6\6\6\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0" \
- "\0\377\256\0\0\0\377\30\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\6\6\6" \
- "\377\10\10\10\377\12\12\12\377\14\14\14\377\17\17\17\377\21\21\21\377" \
- "\23\23\23\377\26\26\26\377\31\31\31\377\33\33\33\377\36\36\36\377\40" \
- "\40\40\377###\377&&&\377)))\377+++\377...\377111\377444\377\356\356\356" \
- "\377\205\377\377\377\377\1\303\303\303\377\221BBB\377\1\373\373\373\377" \
- "\205\377\377\377\377\1\255\255\255\377\203BBB\377\1\307\307\307\377\205" \
- "\377\377\377\377\1\274\274\274\377\215BBB\377\1\255\255\255\377\206\377" \
- "\377\377\377\1FFF\377\202BBB\377\206\377\377\377\377\1\246\246\246\377" \
- "\230BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377\215" \
- "BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377\204B" \
- "BB\377\1\364\364\364\377\205\377\377\377\377\1\233\233\233\377\212BB" \
- "B\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336\377\212BBB" \
- "\377\1nnn\377\206\377\377\377\377\1ccc\377\202BBB\377\1aaa\377\206\377" \
- "\377\377\377\1\224\224\224\377\220BBB\377\1nnn\377\206\377\377\377\377" \
- "\1~~~\377\203BBB\377\1\364\364\364\377\205\377\377\377\377\1\220\220" \
- "\220\377\202BBB\377\1\323\323\323\377\206\377\377\377\377\1\255\255\255" \
- "\377\211BBB\377\1\263\263\263\377\205\377\377\377\377\2\375\375\375\377" \
- "DDD\377\217BBB\377\2AAA\377\300\300\300\377\205\377\377\377\377\27\347" \
- "\347\347\377111\377...\377+++\377(((\377&&&\377###\377\40\40\40\377\36" \
- "\36\36\377\33\33\33\377\31\31\31\377\26\26\26\377\23\23\23\377\21\21" \
- "\21\377\17\17\17\377\14\14\14\377\12\12\12\377\10\10\10\377\6\6\6\377" \
- "\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\256\0\0\0\377" \
- "\30\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\6\6\6\377\10\10\10\377\12" \
- "\12\12\377\14\14\14\377\16\16\16\377\21\21\21\377\23\23\23\377\25\25" \
- "\25\377\30\30\30\377\33\33\33\377\35\35\35\377\40\40\40\377###\377&&" \
- "&\377(((\377+++\377...\377000\377333\377\331\331\331\377\205\377\377" \
- "\377\377\1\331\331\331\377\220BBB\377\1TTT\377\206\377\377\377\377\1" \
- "\231\231\231\377\203BBB\377\1\307\307\307\377\205\377\377\377\377\1\274" \
- "\274\274\377\215BBB\377\1\301\301\301\377\205\377\377\377\377\1\357\357" \
- "\357\377\203BBB\377\1\373\373\373\377\205\377\377\377\377\1\257\257\257" \
- "\377\230BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377" \
- "\215BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377\204" \
- "BBB\377\1\364\364\364\377\205\377\377\377\377\1\233\233\233\377\212B" \
- "BB\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336\377\212BB" \
- "B\377\1nnn\377\206\377\377\377\377\1ccc\377\202BBB\377\1MMM\377\206\377" \
- "\377\377\377\1\253\253\253\377\220BBB\377\1\202\202\202\377\206\377\377" \
- "\377\377\1jjj\377\203BBB\377\1\364\364\364\377\205\377\377\377\377\1" \
- "\220\220\220\377\202BBB\377\2VVV\377\355\355\355\377\206\377\377\377" \
- "\377\1\244\244\244\377\210BBB\377\1\242\242\242\377\206\377\377\377\377" \
- "\1VVV\377\217BBB\377\2AAA\377\327\327\327\377\205\377\377\377\377\27" \
- "\317\317\317\377000\377...\377+++\377(((\377%%%\377###\377\40\40\40\377" \
- "\35\35\35\377\33\33\33\377\30\30\30\377\25\25\25\377\23\23\23\377\21" \
- "\21\21\377\16\16\16\377\14\14\14\377\12\12\12\377\10\10\10\377\6\6\6" \
- "\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\256\0\0\0" \
- "\377\30\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\6\6\6\377\10\10\10\377" \
- "\12\12\12\377\14\14\14\377\16\16\16\377\20\20\20\377\23\23\23\377\25" \
- "\25\25\377\30\30\30\377\32\32\32\377\35\35\35\377\40\40\40\377###\377" \
- "%%%\377(((\377+++\377---\377000\377222\377\274\274\274\377\205\377\377" \
- "\377\377\2\370\370\370\377III\377\217BBB\377\1\200\200\200\377\206\377" \
- "\377\377\377\1~~~\377\203BBB\377\1\307\307\307\377\205\377\377\377\377" \
- "\1\274\274\274\377\215BBB\377\1\336\336\336\377\205\377\377\377\377\1" \
- "\331\331\331\377\203BBB\377\1\351\351\351\377\205\377\377\377\377\1\301" \
- "\301\301\377\230BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307" \
- "\307\377\215BBB\377\1\274\274\274\377\205\377\377\377\377\1\307\307\307" \
- "\377\204BBB\377\1\364\364\364\377\205\377\377\377\377\1\233\233\233\377" \
- "\212BBB\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336\377\212" \
- "BBB\377\1nnn\377\206\377\377\377\377\1ccc\377\203BBB\377\1\357\357\357" \
- "\377\205\377\377\377\377\1\323\323\323\377\220BBB\377\1\261\261\261\377" \
- "\206\377\377\377\377\1MMM\377\203BBB\377\1\364\364\364\377\205\377\377" \
- "\377\377\1\220\220\220\377\203BBB\377\2ccc\377\362\362\362\377\206\377" \
- "\377\377\377\1\231\231\231\377\207BBB\377\1\207\207\207\377\206\377\377" \
- "\377\377\1\205\205\205\377\217BBB\377\2HHH\377\370\370\370\377\205\377" \
- "\377\377\377\27\262\262\262\377000\377---\377+++\377(((\377%%%\377\"" \
- "\"\"\377\40\40\40\377\35\35\35\377\32\32\32\377\30\30\30\377\25\25\25" \
- "\377\23\23\23\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12\12\377" \
- "\10\10\10\377\6\6\6\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0" \
- "\0\0\377\257\0\0\0\377\27\1\1\1\377\3\3\3\377\4\4\4\377\6\6\6\377\10" \
- "\10\10\377\12\12\12\377\14\14\14\377\16\16\16\377\20\20\20\377\22\22" \
- "\22\377\25\25\25\377\27\27\27\377\32\32\32\377\34\34\34\377\37\37\37" \
- "\377\"\"\"\377%%%\377'''\377***\377---\377///\377222\377\231\231\231" \
- "\377\206\377\377\377\377\1|||\377\217BBB\377\1\274\274\274\377\206\377" \
- "\377\377\377\1VVV\377\203BBB\377\1\307\307\307\377\205\377\377\377\377" \
- "\1\274\274\274\377\214BBB\377\2OOO\377\375\375\375\377\205\377\377\377" \
- "\377\1\301\301\301\377\203BBB\377\1\327\327\327\377\205\377\377\377\377" \
- "\1\327\327\327\377\230BBB\377\1\274\274\274\377\205\377\377\377\377\1" \
- "\307\307\307\377\215BBB\377\1\274\274\274\377\205\377\377\377\377\1\307" \
- "\307\307\377\204BBB\377\1\364\364\364\377\205\377\377\377\377\1\233\233" \
- "\233\377\212BBB\377\1\261\261\261\377\205\377\377\377\377\1\336\336\336" \
- "\377\212BBB\377\1nnn\377\206\377\377\377\377\1ccc\377\203BBB\377\1\316" \
- "\316\316\377\205\377\377\377\377\2\375\375\375\377RRR\377\216BBB\377" \
- "\2DDD\377\351\351\351\377\205\377\377\377\377\1\344\344\344\377\204B" \
- "BB\377\1\364\364\364\377\205\377\377\377\377\1\220\220\220\377\204BB" \
- "B\377\2jjj\377\366\366\366\377\206\377\377\377\377\1\220\220\220\377" \
- "\206BBB\377\1aaa\377\206\377\377\377\377\1\274\274\274\377\217BBB\377" \
- "\1{{{\377\206\377\377\377\377\26\213\213\213\377///\377---\377***\377" \
- "'''\377$$$\377\"\"\"\377\37\37\37\377\34\34\34\377\32\32\32\377\27\27" \
- "\27\377\25\25\25\377\22\22\22\377\20\20\20\377\16\16\16\377\13\13\13" \
- "\377\11\11\11\377\10\10\10\377\6\6\6\377\4\4\4\377\3\3\3\377\1\1\1\377" \
- "\377\0\0\0\377\260\0\0\0\377\27\1\1\1\377\3\3\3\377\4\4\4\377\5\5\5\377" \
- "\7\7\7\377\11\11\11\377\13\13\13\377\15\15\15\377\20\20\20\377\22\22" \
- "\22\377\24\24\24\377\27\27\27\377\31\31\31\377\34\34\34\377\37\37\37" \
- "\377!!!\377$$$\377&&&\377)))\377,,,\377...\377111\377ddd\377\206\377" \
- "\377\377\377\2\327\327\327\377DDD\377\215BBB\377\2___\377\373\373\373" \
- "\377\205\377\377\377\377\1\351\351\351\377\204BBB\377\1\307\307\307\377" \
- "\205\377\377\377\377\1\274\274\274\377\214BBB\377\1\242\242\242\377\206" \
- "\377\377\377\377\1\230\230\230\377\203AAA\377\1\267\267\267\377\205\377" \
- "\377\377\377\2\375\375\375\377RRR\377\227BBB\377\1\274\274\274\377\205" \
- "\377\377\377\377\1\307\307\307\377\203BBB\377\206AAA\377\204BBB\377\1" \
- "\274\274\274\377\205\377\377\377\377\1\307\307\307\377\204BBB\377\1\364" \
- "\364\364\377\205\377\377\377\377\1\233\233\233\377\212BBB\377\1\261\261" \
- "\261\377\205\377\377\377\377\1\336\336\336\377\212BBB\377\1nnn\377\206" \
- "\377\377\377\377\1ccc\377\203BBB\377\1\233\233\233\377\206\377\377\377" \
- "\377\1\250\250\250\377\216BBB\377\1\211\211\211\377\206\377\377\377\377" \
- "\1\261\261\261\377\204BBB\377\1\364\364\364\377\205\377\377\377\377\1" \
- "\220\220\220\377\205BBB\377\2sss\377\370\370\370\377\206\377\377\377" \
- "\377\1\207\207\207\377\205BBB\377\2DDD\377\362\362\362\377\205\377\377" \
- "\377\377\2\373\373\373\377ZZZ\377\215BBB\377\2CCC\377\333\333\333\377" \
- "\206\377\377\377\377\26UUU\377...\377+++\377)))\377&&&\377$$$\377!!!" \
- "\377\36\36\36\377\34\34\34\377\31\31\31\377\27\27\27\377\24\24\24\377" \
- "\22\22\22\377\20\20\20\377\15\15\15\377\13\13\13\377\11\11\11\377\7\7" \
- "\7\377\5\5\5\377\4\4\4\377\3\3\3\377\1\1\1\377\377\0\0\0\377\260\0\0" \
- "\0\377\30\1\1\1\377\3\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\11\11\11" \
- "\377\13\13\13\377\15\15\15\377\17\17\17\377\21\21\21\377\24\24\24\377" \
- "\26\26\26\377\31\31\31\377\33\33\33\377\36\36\36\377\40\40\40\377###" \
- "\377&&&\377(((\377+++\377---\377000\377444\377\354\354\354\377\206\377" \
- "\377\377\377\2\250\250\250\377AAA\377\213BBB\377\2NNN\377\335\335\335" \
- "\377\206\377\377\377\377\1\250\250\250\377\204BBB\377\1\307\307\307\377" \
- "\205\377\377\377\377\1\274\274\274\377\213BBB\377\2nnn\377\373\373\373" \
- "\377\206\377\377\377\377\1bbb\377\203@@@\377\1\217\217\217\377\206\377" \
- "\377\377\377\1\253\253\253\377\227BBB\377\1\274\274\274\377\205\377\377" \
- "\377\377\1\307\307\307\377\215AAA\377\1\274\274\274\377\205\377\377\377" \
- "\377\1\307\307\307\377\204BBB\377\1\364\364\364\377\205\377\377\377\377" \
- "\1\233\233\233\377\212BBB\377\1\261\261\261\377\205\377\377\377\377\1" \
- "\336\336\336\377\204BBB\377\202AAA\377\204BBB\377\1nnn\377\206\377\377" \
- "\377\377\1ccc\377\202BBB\377\2AAA\377^^^\377\206\377\377\377\377\3\375" \
- "\375\375\377yyy\377AAA\377\211BBB\377\202AAA\377\2ggg\377\366\366\366" \
- "\377\206\377\377\377\377\1www\377\204BBB\377\1\364\364\364\377\205\377" \
- "\377\377\377\1\220\220\220\377\206AAA\377\2{{{\377\373\373\373\377\205" \
- "\377\377\377\377\2\375\375\375\377~~~\377\205BBB\377\1\263\263\263\377" \
- "\206\377\377\377\377\2\331\331\331\377KKK\377\212BBB\377\202AAA\377\1" \
- "\263\263\263\377\206\377\377\377\377\27\340\340\340\377000\377---\377" \
- "+++\377(((\377&&&\377###\377\40\40\40\377\36\36\36\377\33\33\33\377\31" \
- "\31\31\377\26\26\26\377\24\24\24\377\21\21\21\377\17\17\17\377\15\15" \
- "\15\377\13\13\13\377\11\11\11\377\7\7\7\377\5\5\5\377\4\4\4\377\2\2\2" \
- "\377\1\1\1\377\377\0\0\0\377\260\0\0\0\377\30\1\1\1\377\2\2\2\377\3\3" \
- "\3\377\5\5\5\377\7\7\7\377\11\11\11\377\12\12\12\377\15\15\15\377\17" \
- "\17\17\377\21\21\21\377\23\23\23\377\25\25\25\377\30\30\30\377\32\32" \
- "\32\377\35\35\35\377\37\37\37\377\"\"\"\377%%%\377'''\377***\377,,,\377" \
- "///\377111\377\226\226\226\377\207\377\377\377\377\2\274\274\274\377" \
- "QQQ\377\211AAA\377\2nnn\377\344\344\344\377\206\377\377\377\377\2\375" \
- "\375\375\377]]]\377\204BBB\377\1\307\307\307\377\205\377\377\377\377" \
- "\1\274\274\274\377\211BBB\377\3EEE\377\224\224\224\377\370\370\370\377" \
- "\206\377\377\377\377\1\324\324\324\377\204\77\77\77\377\2VVV\377\375" \
- "\375\375\377\206\377\377\377\377\2\243\243\243\377HHH\377\225BBB\377" \
- "\1\274\274\274\377\205\377\377\377\377\1\307\307\307\377\215@@@\377\1" \
- "\274\274\274\377\205\377\377\377\377\1\307\307\307\377\204BBB\377\1\364" \
- "\364\364\377\205\377\377\377\377\1\232\232\232\377\212AAA\377\1\261\261" \
- "\261\377\205\377\377\377\377\1\335\335\335\377\212AAA\377\1nnn\377\206" \
- "\377\377\377\377\1ccc\377\204AAA\377\1\320\320\320\377\206\377\377\377" \
- "\377\3\373\373\373\377\230\230\230\377EEE\377\211AAA\377\2\211\211\211" \
- "\377\366\366\366\377\206\377\377\377\377\2\346\346\346\377CCC\377\204" \
- "AAA\377\1\364\364\364\377\205\377\377\377\377\1\217\217\217\377\207@" \
- "@@\377\2\203\203\203\377\375\375\375\377\205\377\377\377\377\2\373\373" \
- "\373\377www\377\202BBB\377\202AAA\377\1eee\377\207\377\377\377\377\2" \
- "\335\335\335\377ggg\377\211AAA\377\2SSS\377\302\302\302\377\207\377\377" \
- "\377\377\27\213\213\213\377///\377,,,\377***\377'''\377%%%\377\"\"\"" \
- "\377\37\37\37\377\35\35\35\377\32\32\32\377\30\30\30\377\25\25\25\377" \
- "\23\23\23\377\21\21\21\377\17\17\17\377\15\15\15\377\12\12\12\377\10" \
- "\10\10\377\6\6\6\377\5\5\5\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0" \
- "\0\377\260\0\0\0\377\31\1\1\1\377\2\2\2\377\3\3\3\377\5\5\5\377\6\6\6" \
- "\377\10\10\10\377\12\12\12\377\14\14\14\377\16\16\16\377\20\20\20\377" \
- "\22\22\22\377\25\25\25\377\27\27\27\377\32\32\32\377\34\34\34\377\37" \
- "\37\37\377!!!\377###\377&&&\377(((\377+++\377---\377000\377<<<\377\352" \
- "\352\352\377\207\377\377\377\377\4\366\366\366\377\300\300\300\377\223" \
- "\223\223\377qqq\377\203fff\377\3}}}\377\236\236\236\377\322\322\322\377" \
- "\210\377\377\377\377\1\267\267\267\377\205BBB\377\1\307\307\307\377\205" \
- "\377\377\377\377\1\344\344\344\377\210\263\263\263\377\2\300\300\300" \
- "\377\362\362\362\377\210\377\377\377\377\1www\377\205>>>\377\1\302\302" \
- "\302\377\207\377\377\377\377\2\364\364\364\377\302\302\302\377\217\263" \
- "\263\263\377\1\236\236\236\377\204@@@\377\1\274\274\274\377\205\377\377" \
- "\377\377\1\307\307\307\377\215\77\77\77\377\1\273\273\273\377\205\377" \
- "\377\377\377\1\307\307\307\377\204@@@\377\1\364\364\364\377\205\377\377" \
- "\377\377\1\232\232\232\377\212@@@\377\1\260\260\260\377\205\377\377\377" \
- "\377\1\335\335\335\377\212@@@\377\1mmm\377\206\377\377\377\377\1bbb\377" \
- "\203@@@\377\3\77\77\77\377hhh\377\375\375\375\377\207\377\377\377\377" \
- "\4\355\355\355\377\265\265\265\377\214\214\214\377hhh\377\203fff\377" \
- "\3\206\206\206\377\247\247\247\377\346\346\346\377\210\377\377\377\377" \
- "\1\203\203\203\377\202\77\77\77\377\203@@@\377\1\364\364\364\377\205" \
- "\377\377\377\377\1\216\216\216\377\210\77\77\77\377\1\214\214\214\377" \
- "\206\377\377\377\377\2\370\370\370\377mmm\377\204@@@\377\1\274\274\274" \
- "\377\210\377\377\377\377\3\322\322\322\377\236\236\236\377}}}\377\203" \
- "fff\377\4qqq\377\223\223\223\377\302\302\302\377\370\370\370\377\207" \
- "\377\377\377\377\30\351\351\351\377777\377---\377+++\377(((\377&&&\377" \
- "###\377!!!\377\36\36\36\377\34\34\34\377\31\31\31\377\27\27\27\377\25" \
- "\25\25\377\22\22\22\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12" \
- "\12\377\10\10\10\377\6\6\6\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377" \
- "\377\0\0\0\377\260\0\0\0\377\32\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377" \
- "\6\6\6\377\10\10\10\377\11\11\11\377\13\13\13\377\15\15\15\377\20\20" \
- "\20\377\22\22\22\377\24\24\24\377\26\26\26\377\31\31\31\377\33\33\33" \
- "\377\36\36\36\377\40\40\40\377\"\"\"\377%%%\377'''\377***\377,,,\377" \
- "...\377000\377nnn\377\375\375\375\377\227\377\377\377\377\2\351\351\351" \
- "\377NNN\377\202AAA\377\203BBB\377\1\307\307\307\377\227\377\377\377\377" \
- "\1\266\266\266\377\206===\377\2XXX\377\372\372\372\377\227\377\377\377" \
- "\377\1\335\335\335\377\204\77\77\77\377\1\273\273\273\377\205\377\377" \
- "\377\377\1\306\306\306\377\203>>>\377\206===\377\204>>>\377\1\273\273" \
- "\273\377\205\377\377\377\377\1\307\307\307\377\204\77\77\77\377\1\364" \
- "\364\364\377\205\377\377\377\377\1\231\231\231\377\212\77\77\77\377\1" \
- "\260\260\260\377\205\377\377\377\377\1\335\335\335\377\212\77\77\77\377" \
- "\1lll\377\206\377\377\377\377\1```\377\205>>>\377\1\242\242\242\377\230" \
- "\377\377\377\377\1\306\306\306\377\206>>>\377\1\364\364\364\377\205\377" \
- "\377\377\377\1\215\215\215\377\211>>>\377\1\224\224\224\377\206\377\377" \
- "\377\377\2\364\364\364\377hhh\377\203\77\77\77\377\2QQQ\377\353\353\353" \
- "\377\227\377\377\377\377\31\375\375\375\377hhh\377...\377,,,\377***\377" \
- "'''\377%%%\377\"\"\"\377\40\40\40\377\35\35\35\377\33\33\33\377\31\31" \
- "\31\377\26\26\26\377\24\24\24\377\22\22\22\377\20\20\20\377\15\15\15" \
- "\377\13\13\13\377\11\11\11\377\10\10\10\377\6\6\6\377\4\4\4\377\3\3\3" \
- "\377\2\2\2\377\1\1\1\377\377\0\0\0\377\261\0\0\0\377\32\1\1\1\377\3\3" \
- "\3\377\4\4\4\377\5\5\5\377\7\7\7\377\11\11\11\377\13\13\13\377\15\15" \
- "\15\377\17\17\17\377\21\21\21\377\23\23\23\377\25\25\25\377\30\30\30" \
- "\377\32\32\32\377\34\34\34\377\37\37\37\377!!!\377###\377&&&\377(((\377" \
- "***\377---\377///\377111\377\202\202\202\377\375\375\375\377\225\377" \
- "\377\377\377\3\355\355\355\377bbb\377@@@\377\204AAA\377\2BBB\377\307" \
- "\307\307\377\226\377\377\377\377\2\305\305\305\377@@@\377\207;;;\377" \
- "\1\200\200\200\377\227\377\377\377\377\1\335\335\335\377\204===\377\1" \
- "\273\273\273\377\205\377\377\377\377\1\306\306\306\377\215<<<\377\1\272" \
- "\272\272\377\205\377\377\377\377\1\306\306\306\377\204===\377\1\364\364" \
- "\364\377\205\377\377\377\377\1\230\230\230\377\211===\377\2<<<\377\257" \
- "\257\257\377\205\377\377\377\377\1\335\335\335\377\212===\377\1jjj\377" \
- "\206\377\377\377\377\1^^^\377\206<<<\377\1\263\263\263\377\226\377\377" \
- "\377\377\2\321\321\321\377GGG\377\206<<<\377\1\364\364\364\377\205\377" \
- "\377\377\377\1\214\214\214\377\212<<<\377\1\237\237\237\377\206\377\377" \
- "\377\377\2\357\357\357\377___\377\203===\377\2___\377\352\352\352\377" \
- "\225\377\377\377\377\31\375\375\375\377\201\201\201\377///\377,,,\377" \
- "***\377(((\377&&&\377###\377!!!\377\37\37\37\377\34\34\34\377\32\32\32" \
- "\377\30\30\30\377\25\25\25\377\23\23\23\377\21\21\21\377\17\17\17\377" \
- "\15\15\15\377\13\13\13\377\11\11\11\377\7\7\7\377\5\5\5\377\4\4\4\377" \
- "\3\3\3\377\1\1\1\377\377\0\0\0\377\262\0\0\0\377\33\1\1\1\377\2\2\2\377" \
- "\3\3\3\377\5\5\5\377\6\6\6\377\10\10\10\377\12\12\12\377\14\14\14\377" \
- "\16\16\16\377\20\20\20\377\22\22\22\377\24\24\24\377\27\27\27\377\31" \
- "\31\31\377\33\33\33\377\35\35\35\377\40\40\40\377\"\"\"\377$$$\377&&" \
- "&\377(((\377+++\377---\377///\377111\377bbb\377\340\340\340\377\223\377" \
- "\377\377\377\3\304\304\304\377QQQ\377\77\77\77\377\203@@@\377\203AAA" \
- "\377\1\307\307\307\377\224\377\377\377\377\3\372\372\372\377\242\242" \
- "\242\377;;;\377\211999\377\2zzz\377\366\366\366\377\225\377\377\377\377" \
- "\2\335\335\335\377<<<\377\203;;;\377\1\271\271\271\377\205\377\377\377" \
- "\377\1\305\305\305\377\215:::\377\1\271\271\271\377\205\377\377\377\377" \
- "\1\305\305\305\377\204;;;\377\1\363\363\363\377\205\377\377\377\377\2" \
- "\227\227\227\377:::\377\206;;;\377\203:::\377\1\256\256\256\377\205\377" \
- "\377\377\377\1\334\334\334\377\202:::\377\205;;;\377\203:::\377\1hhh" \
- "\377\206\377\377\377\377\1]]]\377\207:::\377\2\213\213\213\377\363\363" \
- "\363\377\222\377\377\377\377\3\372\372\372\377\242\242\242\377\77\77" \
- "\77\377\207:::\377\1\363\363\363\377\205\377\377\377\377\1\213\213\213" \
- "\377\213:::\377\1\251\251\251\377\206\377\377\377\377\2\354\354\354\377" \
- "WWW\377\203;;;\377\2MMM\377\301\301\301\377\223\377\377\377\377\32\340" \
- "\340\340\377aaa\377///\377---\377+++\377(((\377&&&\377$$$\377\"\"\"\377" \
- "\40\40\40\377\35\35\35\377\33\33\33\377\31\31\31\377\27\27\27\377\24" \
- "\24\24\377\22\22\22\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12" \
- "\12\377\10\10\10\377\6\6\6\377\5\5\5\377\3\3\3\377\2\2\2\377\1\1\1\377" \
- "\377\0\0\0\377\262\0\0\0\377\35\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377" \
- "\6\6\6\377\10\10\10\377\11\11\11\377\13\13\13\377\15\15\15\377\17\17" \
- "\17\377\21\21\21\377\24\24\24\377\25\25\25\377\30\30\30\377\32\32\32" \
- "\377\34\34\34\377\36\36\36\377\40\40\40\377###\377%%%\377'''\377)))\377" \
- "+++\377---\377///\377000\377444\377{{{\377\306\306\306\377\216\377\377" \
- "\377\377\4\364\364\364\377\266\266\266\377hhh\377===\377\202>>>\377\202" \
- "\77\77\77\377\203@@@\377\2AAA\377\307\307\307\377\222\377\377\377\377" \
- "\3\350\350\350\377\246\246\246\377TTT\377\214777\377\3JJJ\377\246\246" \
- "\246\377\354\354\354\377\223\377\377\377\377\1\334\334\334\377\20499" \
- "9\377\1\271\271\271\377\205\377\377\377\377\1\304\304\304\377\215888" \
- "\377\1\271\271\271\377\205\377\377\377\377\1\305\305\305\377\204999\377" \
- "\1\363\363\363\377\205\377\377\377\377\1\226\226\226\377\210999\377\202" \
- "888\377\1\255\255\255\377\205\377\377\377\377\2\334\334\334\377888\377" \
- "\210999\377\2""888\377ggg\377\206\377\377\377\377\1[[[\377\203888\377" \
- "\205999\377\3EEE\377\226\226\226\377\332\332\332\377\216\377\377\377" \
- "\377\3\350\350\350\377\237\237\237\377PPP\377\203999\377\206888\377\1" \
- "\363\363\363\377\205\377\377\377\377\1\212\212\212\377\214888\377\1\264" \
- "\264\264\377\206\377\377\377\377\2\350\350\350\377NNN\377\204999\377" \
- "\3eee\377\264\264\264\377\363\363\363\377\216\377\377\377\377\34\305" \
- "\305\305\377zzz\377222\377...\377---\377+++\377)))\377'''\377%%%\377" \
- "###\377\40\40\40\377\36\36\36\377\34\34\34\377\32\32\32\377\30\30\30" \
- "\377\25\25\25\377\23\23\23\377\21\21\21\377\17\17\17\377\15\15\15\377" \
- "\13\13\13\377\11\11\11\377\10\10\10\377\6\6\6\377\4\4\4\377\3\3\3\377" \
- "\2\2\2\377\1\1\1\377\377\0\0\0\377\262\0\0\0\377\202\1\1\1\377!\3\3\3" \
- "\377\4\4\4\377\5\5\5\377\7\7\7\377\11\11\11\377\12\12\12\377\14\14\14" \
- "\377\16\16\16\377\20\20\20\377\22\22\22\377\24\24\24\377\26\26\26\377" \
- "\31\31\31\377\33\33\33\377\35\35\35\377\37\37\37\377!!!\377###\377%%" \
- "%\377'''\377)))\377+++\377,,,\377...\377///\377111\377222\377:::\377" \
- "ddd\377\206\206\206\377\236\236\236\377\257\257\257\377\261\261\261\377" \
- "\202\327\327\327\377\1\316\316\316\377\202\257\257\257\377\4\222\222" \
- "\222\377\201\201\201\377]]]\377:::\377\202;;;\377\1<<<\377\202===\377" \
- "\202>>>\377\202\77\77\77\377\202@@@\377\1\307\307\307\377\205\377\377" \
- "\377\377\1\327\327\327\377\203\214\214\214\377\202\213\213\213\377\1" \
- "\212\212\212\377\203\211\211\211\377\4\210\210\210\377ddd\377MMM\377" \
- "777\377\203666\377\216555\377\2TTT\377nnn\377\203\206\206\206\377\216" \
- "\207\207\207\377\1yyy\377\203777\377\2""666\377jjj\377\205\206\206\206" \
- "\377\1ooo\377\215666\377\1jjj\377\205\206\206\206\377\1ooo\377\20477" \
- "7\377\1\202\202\202\377\203\207\207\207\377\202\206\206\206\377\2\\\\" \
- "\\\377666\377\206777\377\203666\377\1eee\377\205\206\206\206\377\1xx" \
- "x\377\203666\377\204777\377\203666\377\1III\377\206\206\206\206\377\1" \
- "DDD\377\207666\377\203777\377\7""666\377GGG\377ooo\377\206\206\206\377" \
- "\250\250\250\377\257\257\257\377\275\275\275\377\202\327\327\327\377" \
- "\1\302\302\302\377\202\257\257\257\377\5\206\206\206\377vvv\377NNN\377" \
- "666\377777\377\211666\377\2""555\377\201\201\201\377\205\206\206\206" \
- "\377\2VVV\377555\377\213666\377\2""888\377\202\202\202\377\206\206\206" \
- "\206\377\1mmm\377\207777\377\3ZZZ\377\202\202\202\377\223\223\223\377" \
- "\202\257\257\257\377\1\315\315\315\377\202\327\327\327\377\40\261\261" \
- "\261\377\256\256\256\377\236\236\236\377\205\205\205\377ccc\377999\377" \
- "111\377///\377...\377,,,\377+++\377)))\377'''\377%%%\377###\377!!!\377" \
- "\37\37\37\377\34\34\34\377\32\32\32\377\31\31\31\377\26\26\26\377\24" \
- "\24\24\377\22\22\22\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12" \
- "\12\377\11\11\11\377\7\7\7\377\5\5\5\377\4\4\4\377\3\3\3\377\202\1\1" \
- "\1\377\377\0\0\0\377\263\0\0\0\377\36\1\1\1\377\2\2\2\377\3\3\3\377\5" \
- "\5\5\377\6\6\6\377\10\10\10\377\12\12\12\377\13\13\13\377\15\15\15\377" \
- "\17\17\17\377\21\21\21\377\23\23\23\377\25\25\25\377\27\27\27\377\31" \
- "\31\31\377\33\33\33\377\35\35\35\377\37\37\37\377!!!\377###\377%%%\377" \
- "'''\377(((\377***\377+++\377---\377...\377///\377000\377111\377\2022" \
- "22\377\1""333\377\202444\377\202555\377\202666\377\1""777\377\202888" \
- "\377\202999\377\202:::\377\2;;;\377<<<\377\202===\377\1>>>\377\202\77" \
- "\77\77\377\2@@@\377\307\307\307\377\205\377\377\377\377\1\274\274\274" \
- "\377\202\77\77\77\377\10>>>\377===\377<<<\377;;;\377:::\377999\37788" \
- "8\377777\377\202666\377\202555\377\202444\377\1""333\377\216222\377\202" \
- "333\377\204444\377\217555\377\205444\377\224333\377\253444\377\20733" \
- "3\377\243444\377\202333\377\207222\377\203333\377\207444\377\207333\377" \
- "\204444\377\213555\377\204444\377\1""333\377\202222\377\36""111\3770" \
- "00\377///\377...\377---\377+++\377***\377(((\377'''\377%%%\377###\377" \
- "!!!\377\37\37\37\377\35\35\35\377\33\33\33\377\31\31\31\377\27\27\27" \
- "\377\25\25\25\377\23\23\23\377\21\21\21\377\17\17\17\377\15\15\15\377" \
- "\13\13\13\377\11\11\11\377\10\10\10\377\6\6\6\377\5\5\5\377\3\3\3\377" \
- "\2\2\2\377\1\1\1\377\377\0\0\0\377\264\0\0\0\377\35\1\1\1\377\2\2\2\377" \
- "\3\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\11\11\11\377\12\12\12\377\14" \
- "\14\14\377\16\16\16\377\20\20\20\377\22\22\22\377\24\24\24\377\25\25" \
- "\25\377\30\30\30\377\31\31\31\377\33\33\33\377\35\35\35\377\37\37\37" \
- "\377!!!\377###\377%%%\377&&&\377(((\377)))\377+++\377,,,\377---\377." \
- "..\377\202///\377\202000\377\202111\377\2""222\377333\377\202444\377" \
- "\1""555\377\202666\377\1""777\377\202888\377\1""999\377\202:::\377\2" \
- ";;;\377<<<\377\202===\377\3>>>\377\77\77\77\377\307\307\307\377\205\377" \
- "\377\377\377\12\273\273\273\377>>>\377===\377<<<\377;;;\377:::\37799" \
- "9\377888\377777\377666\377\202555\377\2""444\377333\377\202222\377\202" \
- "111\377\221000\377\203111\377\217222\377\205111\377\224000\377\25311" \
- "1\377\207000\377\243111\377\214000\377\207111\377\207000\377\204111\377" \
- "\214222\377\203111\377\202000\377\202///\377\35...\377---\377,,,\377" \
- "+++\377)))\377(((\377&&&\377%%%\377###\377!!!\377\37\37\37\377\35\35" \
- "\35\377\33\33\33\377\31\31\31\377\30\30\30\377\25\25\25\377\24\24\24" \
- "\377\22\22\22\377\20\20\20\377\16\16\16\377\14\14\14\377\12\12\12\377" \
- "\11\11\11\377\7\7\7\377\5\5\5\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1" \
- "\377\377\0\0\0\377\265\0\0\0\377\1\1\1\1\377\202\3\3\3\377\27\5\5\5\377" \
- "\6\6\6\377\10\10\10\377\11\11\11\377\13\13\13\377\15\15\15\377\17\17" \
- "\17\377\20\20\20\377\22\22\22\377\24\24\24\377\26\26\26\377\30\30\30" \
- "\377\32\32\32\377\33\33\33\377\35\35\35\377\37\37\37\377!!!\377###\377" \
- "$$$\377%%%\377'''\377(((\377)))\377\202+++\377\1,,,\377\202---\377\1" \
- "...\377\202///\377\1""000\377\202111\377\2""222\377333\377\202444\377" \
- "\2""555\377666\377\202777\377\2""888\377999\377\202:::\377\5;;;\377<" \
- "<<\377===\377>>>\377\307\307\307\377\205\377\377\377\377\11\273\273\273" \
- "\377===\377<<<\377;;;\377:::\377999\377888\377777\377555\377\202444\377" \
- "\1""222\377\202111\377\1""000\377\202///\377\202...\377\215---\377\205" \
- "...\377\205///\377\211000\377\203///\377\235...\377\221///\377\214.." \
- ".\377\206///\377\214...\377\216///\377\204...\377\215///\377\203...\377" \
- "\210---\377\223...\377\204///\377\207000\377\205///\377\202...\377\202" \
- "---\377\1,,,\377\202+++\377\32)))\377(((\377'''\377%%%\377$$$\377\"\"" \
- "\"\377!!!\377\37\37\37\377\35\35\35\377\33\33\33\377\32\32\32\377\30" \
- "\30\30\377\26\26\26\377\24\24\24\377\22\22\22\377\20\20\20\377\17\17" \
- "\17\377\15\15\15\377\13\13\13\377\11\11\11\377\10\10\10\377\6\6\6\377" \
- "\5\5\5\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\266\0\0\0\377" \
- "\34\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\10\10" \
- "\10\377\12\12\12\377\14\14\14\377\15\15\15\377\17\17\17\377\21\21\21" \
- "\377\23\23\23\377\24\24\24\377\26\26\26\377\30\30\30\377\32\32\32\377" \
- "\33\33\33\377\35\35\35\377\37\37\37\377\40\40\40\377\"\"\"\377###\377" \
- "%%%\377&&&\377'''\377(((\377)))\377\202***\377\202+++\377\1,,,\377\202" \
- "---\377\2...\377///\377\202000\377\4""111\377222\377333\377444\377\202" \
- "555\377\3""666\377777\377888\377\202999\377\4:::\377;;;\377<<<\377\306" \
- "\306\306\377\205\377\377\377\377\14\272\272\272\377;;;\377:::\377999" \
- "\377888\377777\377666\377555\377444\377222\377111\377000\377\202///\377" \
- "\1...\377\202---\377\1,,,\377\204+++\377\204***\377\212+++\377\203,," \
- ",\377\216---\377\202,,,\377\234+++\377\222,,,\377\212+++\377\207,,,\377" \
- "\214+++\377\216,,,\377\203+++\377\216,,,\377\236+++\377\202,,,\377\214" \
- "---\377\202,,,\377\203+++\377\202***\377\34)))\377(((\377'''\377&&&\377" \
- "$$$\377###\377\"\"\"\377\40\40\40\377\37\37\37\377\35\35\35\377\33\33" \
- "\33\377\32\32\32\377\30\30\30\377\26\26\26\377\24\24\24\377\23\23\23" \
- "\377\21\21\21\377\17\17\17\377\15\15\15\377\14\14\14\377\12\12\12\377" \
- "\10\10\10\377\7\7\7\377\5\5\5\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1" \
- "\377\377\0\0\0\377\267\0\0\0\377\33\1\1\1\377\2\2\2\377\3\3\3\377\5\5" \
- "\5\377\6\6\6\377\7\7\7\377\11\11\11\377\12\12\12\377\14\14\14\377\16" \
- "\16\16\377\20\20\20\377\21\21\21\377\23\23\23\377\24\24\24\377\26\26" \
- "\26\377\30\30\30\377\31\31\31\377\33\33\33\377\34\34\34\377\36\36\36" \
- "\377\37\37\37\377!!!\377\"\"\"\377###\377$$$\377%%%\377&&&\377\202''" \
- "'\377\2(((\377)))\377\202***\377\2+++\377,,,\377\202---\377\3...\377" \
- "///\377000\377\202111\377\1""222\377\202444\377\3""555\377666\377777" \
- "\377\202888\377\3""999\377:::\377\305\305\305\377\205\377\377\377\377" \
- "\16\271\271\271\377999\377888\377777\377666\377555\377444\377222\377" \
- "111\377000\377///\377...\377---\377,,,\377\202+++\377\202***\377\202" \
- ")))\377\217(((\377\202)))\377\210***\377\203+++\377\205***\377\241))" \
- ")\377\215***\377\217)))\377\202***\377\206)))\377\205(((\377\204)))\377" \
- "\212***\377\211)))\377\211***\377\204)))\377\214(((\377\211)))\377\203" \
- "(((\377\205)))\377\216***\377\202)))\377\202(((\377\202'''\377\33&&&" \
- "\377%%%\377$$$\377###\377\"\"\"\377!!!\377\37\37\37\377\36\36\36\377" \
- "\34\34\34\377\33\33\33\377\31\31\31\377\30\30\30\377\26\26\26\377\24" \
- "\24\24\377\23\23\23\377\21\21\21\377\20\20\20\377\16\16\16\377\14\14" \
- "\14\377\12\12\12\377\11\11\11\377\7\7\7\377\6\6\6\377\4\4\4\377\3\3\3" \
- "\377\2\2\2\377\1\1\1\377\377\0\0\0\377\270\0\0\0\377\31\1\1\1\377\2\2" \
- "\2\377\3\3\3\377\4\4\4\377\5\5\5\377\6\6\6\377\10\10\10\377\11\11\11" \
- "\377\13\13\13\377\15\15\15\377\16\16\16\377\20\20\20\377\21\21\21\377" \
- "\23\23\23\377\24\24\24\377\26\26\26\377\27\27\27\377\31\31\31\377\32" \
- "\32\32\377\34\34\34\377\35\35\35\377\36\36\36\377\40\40\40\377!!!\377" \
- "\"\"\"\377\202###\377\1$$$\377\202%%%\377\2&&&\377'''\377\202(((\377" \
- "\5)))\377***\377+++\377,,,\377---\377\202...\377\3///\377000\377111\377" \
- "\202222\377\1""444\377\202555\377\1""666\377\202777\377\1\304\304\304" \
- "\377\205\377\377\377\377\17\270\270\270\377777\377666\377555\377444\377" \
- "222\377111\377000\377///\377...\377---\377,,,\377+++\377***\377)))\377" \
- "\202(((\377\202'''\377\202&&&\377\214%%%\377\204&&&\377\207'''\377\205" \
- "(((\377\205'''\377\237&&&\377\216'''\377\216&&&\377\204'''\377\216&&" \
- "&\377\213'''\377\207&&&\377\213'''\377\204&&&\377\211%%%\377\223&&&\377" \
- "\205'''\377\203(((\377\206'''\377\203&&&\377\202%%%\377\1$$$\377\202" \
- "###\377\31\"\"\"\377!!!\377\40\40\40\377\36\36\36\377\35\35\35\377\34" \
- "\34\34\377\32\32\32\377\31\31\31\377\27\27\27\377\26\26\26\377\24\24" \
- "\24\377\23\23\23\377\21\21\21\377\20\20\20\377\16\16\16\377\14\14\14" \
- "\377\13\13\13\377\11\11\11\377\10\10\10\377\6\6\6\377\5\5\5\377\4\4\4" \
- "\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\271\0\0\0\377\31\1\1" \
- "\1\377\2\2\2\377\3\3\3\377\4\4\4\377\5\5\5\377\7\7\7\377\10\10\10\377" \
- "\12\12\12\377\13\13\13\377\15\15\15\377\16\16\16\377\20\20\20\377\21" \
- "\21\21\377\22\22\22\377\24\24\24\377\25\25\25\377\27\27\27\377\30\30" \
- "\30\377\31\31\31\377\33\33\33\377\34\34\34\377\35\35\35\377\36\36\36" \
- "\377\37\37\37\377\40\40\40\377\202!!!\377\1\"\"\"\377\202###\377\4$$" \
- "$\377%%%\377&&&\377'''\377\202(((\377\202***\377\4+++\377,,,\377---\377" \
- "...\377\202///\377\4""000\377111\377222\377333\377\202444\377\2""555" \
- "\377\304\304\304\377\205\377\377\377\377\1\270\270\270\377\202444\377" \
- "\6""222\377111\377000\377///\377...\377---\377\202+++\377\1***\377\202" \
- "(((\377\2'''\377&&&\377\202%%%\377\1$$$\377\203###\377\211\"\"\"\377" \
- "\206###\377\203$$$\377\214%%%\377\202$$$\377\236###\377\220$$$\377\215" \
- "###\377\204$$$\377\216###\377\214$$$\377\206###\377\213$$$\377\206##" \
- "#\377\204\"\"\"\377\226###\377\202$$$\377\211%%%\377\203$$$\377\204#" \
- "##\377\1\"\"\"\377\202!!!\377\31\40\40\40\377\37\37\37\377\36\36\36\377" \
- "\35\35\35\377\34\34\34\377\33\33\33\377\31\31\31\377\30\30\30\377\27" \
- "\27\27\377\25\25\25\377\24\24\24\377\22\22\22\377\21\21\21\377\20\20" \
- "\20\377\16\16\16\377\15\15\15\377\13\13\13\377\12\12\12\377\10\10\10" \
- "\377\7\7\7\377\5\5\5\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377" \
- "\0\0\0\377\272\0\0\0\377\202\1\1\1\377\202\3\3\3\377\22\4\4\4\377\6\6" \
- "\6\377\7\7\7\377\10\10\10\377\12\12\12\377\13\13\13\377\15\15\15\377" \
- "\16\16\16\377\20\20\20\377\21\21\21\377\22\22\22\377\24\24\24\377\25" \
- "\25\25\377\26\26\26\377\27\27\27\377\31\31\31\377\32\32\32\377\33\33" \
- "\33\377\202\34\34\34\377\2\35\35\35\377\36\36\36\377\202\37\37\37\377" \
- "\1\40\40\40\377\202!!!\377\202###\377\7$$$\377%%%\377&&&\377'''\377(" \
- "((\377)))\377***\377\202+++\377\3,,,\377---\377...\377\202///\377\1""0" \
- "00\377\202111\377\2""222\377\303\303\303\377\205\377\377\377\377\1\267" \
- "\267\267\377\202111\377\14""000\377///\377...\377---\377+++\377***\377" \
- ")))\377(((\377'''\377&&&\377%%%\377$$$\377\202###\377\1\"\"\"\377\202" \
- "!!!\377\202\40\40\40\377\210\37\37\37\377\206\40\40\40\377\204!!!\377" \
- "\214\"\"\"\377\203!!!\377\233\40\40\40\377\224!!!\377\210\40\40\40\377" \
- "\211!!!\377\212\40\40\40\377\220!!!\377\202\40\40\40\377\217!!!\377\204" \
- "\40\40\40\377\204\37\37\37\377\207\40\40\40\377\202!!!\377\213\40\40" \
- "\40\377\204!!!\377\212\"\"\"\377\203!!!\377\203\40\40\40\377\202\37\37" \
- "\37\377\2\36\36\36\377\35\35\35\377\202\34\34\34\377\24\33\33\33\377" \
- "\32\32\32\377\31\31\31\377\27\27\27\377\26\26\26\377\25\25\25\377\24" \
- "\24\24\377\22\22\22\377\21\21\21\377\20\20\20\377\16\16\16\377\15\15" \
- "\15\377\13\13\13\377\12\12\12\377\10\10\10\377\7\7\7\377\6\6\6\377\4" \
- "\4\4\377\3\3\3\377\2\2\2\377\202\1\1\1\377\377\0\0\0\377\273\0\0\0\377" \
- "\24\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\5\5\5\377\6\6\6\377\7\7\7" \
- "\377\10\10\10\377\12\12\12\377\13\13\13\377\14\14\14\377\16\16\16\377" \
- "\17\17\17\377\20\20\20\377\22\22\22\377\23\23\23\377\24\24\24\377\25" \
- "\25\25\377\26\26\26\377\27\27\27\377\202\31\31\31\377\1\32\32\32\377" \
- "\202\33\33\33\377\202\34\34\34\377\6\35\35\35\377\36\36\36\377\37\37" \
- "\37\377\40\40\40\377!!!\377\"\"\"\377\202###\377\7$$$\377%%%\377&&&\377" \
- "'''\377(((\377)))\377***\377\202+++\377\2,,,\377---\377\202...\377\202" \
- "///\377\1\207\207\207\377\205\254\254\254\377\14\200\200\200\377///\377" \
- "...\377---\377,,,\377+++\377***\377)))\377(((\377'''\377&&&\377%%%\377" \
- "\202###\377\3\"\"\"\377!!!\377\40\40\40\377\202\37\37\37\377\202\36\36" \
- "\36\377\202\35\35\35\377\207\34\34\34\377\205\35\35\35\377\203\36\36" \
- "\36\377\217\37\37\37\377\306\36\36\36\377\203\35\35\35\377\210\36\36" \
- "\36\377\204\37\37\37\377\231\36\36\36\377\204\35\35\35\377\1\34\34\34" \
- "\377\206\35\35\35\377\223\36\36\36\377\214\37\37\37\377\204\36\36\36" \
- "\377\1\35\35\35\377\202\34\34\34\377\202\33\33\33\377\1\32\32\32\377" \
- "\202\31\31\31\377\20\27\27\27\377\26\26\26\377\25\25\25\377\24\24\24" \
- "\377\23\23\23\377\21\21\21\377\20\20\20\377\17\17\17\377\15\15\15\377" \
- "\14\14\14\377\13\13\13\377\12\12\12\377\10\10\10\377\7\7\7\377\6\6\6" \
- "\377\5\5\5\377\202\3\3\3\377\2\2\2\2\377\1\1\1\377\377\0\0\0\377\275" \
- "\0\0\0\377\26\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\5\5\5\377\6\6\6" \
- "\377\7\7\7\377\10\10\10\377\12\12\12\377\13\13\13\377\14\14\14\377\15" \
- "\15\15\377\17\17\17\377\20\20\20\377\21\21\21\377\22\22\22\377\23\23" \
- "\23\377\24\24\24\377\25\25\25\377\26\26\26\377\27\27\27\377\30\30\30" \
- "\377\203\31\31\31\377\202\32\32\32\377\12\33\33\33\377\34\34\34\377\35" \
- "\35\35\377\36\36\36\377\37\37\37\377\40\40\40\377!!!\377\"\"\"\377##" \
- "#\377$$$\377\202%%%\377\4&&&\377'''\377(((\377)))\377\202***\377\1++" \
- "+\377\213,,,\377\202+++\377\13***\377)))\377'''\377&&&\377%%%\377$$$" \
- "\377###\377\"\"\"\377!!!\377\40\40\40\377\37\37\37\377\202\36\36\36\377" \
- "\2\35\35\35\377\34\34\34\377\202\33\33\33\377\215\32\32\32\377\204\33" \
- "\33\33\377\220\34\34\34\377\242\33\33\33\377\210\34\34\34\377\245\33" \
- "\33\33\377\207\34\34\34\377\214\33\33\33\377\206\34\34\34\377\205\33" \
- "\33\33\377\213\32\32\32\377\222\33\33\33\377\216\34\34\34\377\203\33" \
- "\33\33\377\202\32\32\32\377\203\31\31\31\377\26\30\30\30\377\27\27\27" \
- "\377\26\26\26\377\25\25\25\377\24\24\24\377\23\23\23\377\22\22\22\377" \
- "\21\21\21\377\20\20\20\377\17\17\17\377\15\15\15\377\14\14\14\377\13" \
- "\13\13\377\11\11\11\377\10\10\10\377\7\7\7\377\6\6\6\377\5\5\5\377\4" \
- "\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377\0\0\0\377\277\0\0\0\377\22" \
- "\1\1\1\377\2\2\2\377\3\3\3\377\4\4\4\377\5\5\5\377\6\6\6\377\7\7\7\377" \
- "\10\10\10\377\11\11\11\377\12\12\12\377\13\13\13\377\15\15\15\377\16" \
- "\16\16\377\17\17\17\377\20\20\20\377\21\21\21\377\22\22\22\377\23\23" \
- "\23\377\202\24\24\24\377\1\25\25\25\377\202\26\26\26\377\202\27\27\27" \
- "\377\2\30\30\30\377\31\31\31\377\202\32\32\32\377\12\33\33\33\377\34" \
- "\34\34\377\35\35\35\377\36\36\36\377\37\37\37\377\40\40\40\377!!!\377" \
- "\"\"\"\377###\377$$$\377\202%%%\377\2&&&\377'''\377\202(((\377\1)))\377" \
- "\211***\377\202)))\377\11(((\377'''\377&&&\377%%%\377$$$\377###\377!" \
- "!!\377\40\40\40\377\37\37\37\377\202\36\36\36\377\202\34\34\34\377\2" \
- "\33\33\33\377\32\32\32\377\202\31\31\31\377\202\30\30\30\377\213\27\27" \
- "\27\377\202\30\30\30\377\207\31\31\31\377\210\32\32\32\377\205\31\31" \
- "\31\377\232\30\30\30\377\224\31\31\31\377\212\30\30\30\377\210\31\31" \
- "\31\377\212\30\30\30\377\220\31\31\31\377\1\30\30\30\377\220\31\31\31" \
- "\377\203\30\30\30\377\207\27\27\27\377\222\30\30\30\377\206\31\31\31" \
- "\377\205\32\32\32\377\207\31\31\31\377\202\30\30\30\377\202\27\27\27" \
- "\377\202\26\26\26\377\1\25\25\25\377\202\24\24\24\377\22\23\23\23\377" \
- "\22\22\22\377\21\21\21\377\20\20\20\377\17\17\17\377\16\16\16\377\15" \
- "\15\15\377\13\13\13\377\12\12\12\377\11\11\11\377\10\10\10\377\7\7\7" \
- "\377\6\6\6\377\5\5\5\377\4\4\4\377\3\3\3\377\2\2\2\377\1\1\1\377\377" \
- "\0\0\0\377\300\0\0\0\377\202\1\1\1\377\3\2\2\2\377\3\3\3\377\4\4\4\377" \
- "\202\5\5\5\377\12\6\6\6\377\10\10\10\377\11\11\11\377\12\12\12\377\13" \
- "\13\13\377\14\14\14\377\15\15\15\377\16\16\16\377\17\17\17\377\20\20" \
- "\20\377\202\21\21\21\377\2\22\22\22\377\23\23\23\377\203\24\24\24\377" \
- "\202\25\25\25\377\6\26\26\26\377\27\27\27\377\30\30\30\377\31\31\31\377" \
- "\32\32\32\377\33\33\33\377\202\34\34\34\377\202\36\36\36\377\4\37\37" \
- "\37\377\40\40\40\377!!!\377\"\"\"\377\202###\377\2$$$\377%%%\377\202" \
- "&&&\377\212'''\377\1&&&\377\202%%%\377\202###\377\12!!!\377\40\40\40" \
- "\377\37\37\37\377\36\36\36\377\35\35\35\377\34\34\34\377\33\33\33\377" \
- "\32\32\32\377\31\31\31\377\30\30\30\377\202\27\27\27\377\1\26\26\26\377" \
- "\202\25\25\25\377\212\24\24\24\377\204\25\25\25\377\203\26\26\26\377" \
- "\216\27\27\27\377\202\26\26\26\377\232\25\25\25\377\224\26\26\26\377" \
- "\212\25\25\25\377\207\26\26\26\377\213\25\25\25\377\220\26\26\26\377" \
- "\202\25\25\25\377\217\26\26\26\377\203\25\25\25\377\206\24\24\24\377" \
- "\224\25\25\25\377\202\26\26\26\377\213\27\27\27\377\204\26\26\26\377" \
- "\203\25\25\25\377\203\24\24\24\377\2\23\23\23\377\22\22\22\377\202\21" \
- "\21\21\377\12\20\20\20\377\17\17\17\377\16\16\16\377\15\15\15\377\14" \
- "\14\14\377\13\13\13\377\12\12\12\377\11\11\11\377\10\10\10\377\6\6\6" \
- "\377\202\5\5\5\377\3\4\4\4\377\3\3\3\377\2\2\2\377\202\1\1\1\377\377" \
- "\0\0\0\377\301\0\0\0\377\202\1\1\1\377\1\2\2\2\377\202\3\3\3\377\13\4" \
- "\4\4\377\5\5\5\377\6\6\6\377\7\7\7\377\10\10\10\377\11\11\11\377\12\12" \
- "\12\377\13\13\13\377\14\14\14\377\15\15\15\377\16\16\16\377\202\17\17" \
- "\17\377\202\20\20\20\377\1\21\21\21\377\203\22\22\22\377\1\23\23\23\377" \
- "\202\24\24\24\377\7\25\25\25\377\26\26\26\377\27\27\27\377\30\30\30\377" \
- "\31\31\31\377\32\32\32\377\33\33\33\377\202\34\34\34\377\202\36\36\36" \
- "\377\3\37\37\37\377\40\40\40\377!!!\377\202\"\"\"\377\202###\377\212" \
- "$$$\377\202###\377\12\"\"\"\377!!!\377\40\40\40\377\37\37\37\377\36\36" \
- "\36\377\34\34\34\377\33\33\33\377\32\32\32\377\31\31\31\377\30\30\30" \
- "\377\202\27\27\27\377\202\25\25\25\377\1\24\24\24\377\202\23\23\23\377" \
- "\215\22\22\22\377\202\23\23\23\377\223\24\24\24\377\204\23\23\23\377" \
- "\207\22\22\22\377\204\23\23\23\377\207\22\22\22\377\205\23\23\23\377" \
- "\221\24\24\24\377\216\23\23\23\377\204\24\24\24\377\205\23\23\23\377" \
- "\205\22\22\22\377\205\23\23\23\377\212\24\24\24\377\210\23\23\23\377" \
- "\211\24\24\24\377\205\23\23\23\377\212\22\22\22\377\211\23\23\23\377" \
- "\205\22\22\22\377\203\23\23\23\377\220\24\24\24\377\203\23\23\23\377" \
- "\203\22\22\22\377\1\21\21\21\377\202\20\20\20\377\202\17\17\17\377\13" \
- "\16\16\16\377\15\15\15\377\14\14\14\377\13\13\13\377\12\12\12\377\11" \
- "\11\11\377\10\10\10\377\7\7\7\377\6\6\6\377\5\5\5\377\4\4\4\377\202\3" \
- "\3\3\377\1\2\2\2\377\202\1\1\1\377\377\0\0\0\377\303\0\0\0\377\202\1" \
- "\1\1\377\1\2\2\2\377\202\3\3\3\377\4\4\4\4\377\5\5\5\377\6\6\6\377\7" \
- "\7\7\377\202\10\10\10\377\4\11\11\11\377\12\12\12\377\13\13\13\377\14" \
- "\14\14\377\202\15\15\15\377\202\16\16\16\377\1\17\17\17\377\204\20\20" \
- "\20\377\3\21\21\21\377\22\22\22\377\23\23\23\377\202\24\24\24\377\7\25" \
- "\25\25\377\26\26\26\377\27\27\27\377\30\30\30\377\31\31\31\377\32\32" \
- "\32\377\33\33\33\377\202\34\34\34\377\3\35\35\35\377\36\36\36\377\37" \
- "\37\37\377\202\40\40\40\377\207!!!\377\202\"\"\"\377\203!!!\377\12\40" \
- "\40\40\377\37\37\37\377\36\36\36\377\35\35\35\377\34\34\34\377\33\33" \
- "\33\377\32\32\32\377\31\31\31\377\30\30\30\377\27\27\27\377\202\25\25" \
- "\25\377\3\24\24\24\377\23\23\23\377\22\22\22\377\202\21\21\21\377\202" \
- "\20\20\20\377\210\17\17\17\377\205\20\20\20\377\206\21\21\21\377\212" \
- "\22\22\22\377\205\21\21\21\377\230\20\20\20\377\225\21\21\21\377\212" \
- "\20\20\20\377\207\21\21\21\377\214\20\20\20\377\237\21\21\21\377\206" \
- "\20\20\20\377\202\17\17\17\377\225\20\20\20\377\205\21\21\21\377\207" \
- "\22\22\22\377\206\21\21\21\377\205\20\20\20\377\1\17\17\17\377\202\16" \
- "\16\16\377\202\15\15\15\377\4\14\14\14\377\13\13\13\377\12\12\12\377" \
- "\11\11\11\377\202\10\10\10\377\4\7\7\7\377\6\6\6\377\5\5\5\377\4\4\4" \
- "\377\202\3\3\3\377\1\2\2\2\377\202\1\1\1\377\377\0\0\0\377\306\0\0\0" \
- "\377\1\1\1\1\377\202\2\2\2\377\1\3\3\3\377\202\4\4\4\377\3\5\5\5\377" \
- "\6\6\6\377\7\7\7\377\202\10\10\10\377\1\11\11\11\377\202\12\12\12\377" \
- "\202\13\13\13\377\1\14\14\14\377\203\15\15\15\377\202\16\16\16\377\1" \
- "\17\17\17\377\202\20\20\20\377\4\21\21\21\377\22\22\22\377\23\23\23\377" \
- "\24\24\24\377\202\25\25\25\377\202\27\27\27\377\3\30\30\30\377\31\31" \
- "\31\377\32\32\32\377\202\33\33\33\377\2\34\34\34\377\35\35\35\377\202" \
- "\36\36\36\377\212\37\37\37\377\2\36\36\36\377\35\35\35\377\202\34\34" \
- "\34\377\12\33\33\33\377\32\32\32\377\31\31\31\377\30\30\30\377\26\26" \
- "\26\377\25\25\25\377\24\24\24\377\23\23\23\377\22\22\22\377\21\21\21" \
- "\377\202\20\20\20\377\2\17\17\17\377\16\16\16\377\215\15\15\15\377\203" \
- "\16\16\16\377\223\17\17\17\377\202\16\16\16\377\226\15\15\15\377\202" \
- "\16\16\16\377\205\17\17\17\377\221\16\16\16\377\206\15\15\15\377\214" \
- "\16\16\16\377\206\15\15\15\377\245\16\16\16\377\231\15\15\15\377\202" \
- "\16\16\16\377\220\17\17\17\377\204\16\16\16\377\203\15\15\15\377\1\14" \
- "\14\14\377\202\13\13\13\377\202\12\12\12\377\1\11\11\11\377\202\10\10" \
- "\10\377\3\7\7\7\377\6\6\6\377\5\5\5\377\202\4\4\4\377\1\3\3\3\377\202" \
- "\2\2\2\377\1\1\1\1\377\377\0\0\0\377\311\0\0\0\377\202\1\1\1\377\1\2" \
- "\2\2\377\202\3\3\3\377\202\4\4\4\377\1\5\5\5\377\202\6\6\6\377\2\7\7" \
- "\7\377\10\10\10\377\202\11\11\11\377\203\12\12\12\377\203\13\13\13\377" \
- "\202\14\14\14\377\3\15\15\15\377\16\16\16\377\17\17\17\377\202\20\20" \
- "\20\377\4\21\21\21\377\22\22\22\377\23\23\23\377\24\24\24\377\202\25" \
- "\25\25\377\3\26\26\26\377\27\27\27\377\30\30\30\377\202\31\31\31\377" \
- "\1\32\32\32\377\202\33\33\33\377\212\34\34\34\377\202\33\33\33\377\1" \
- "\32\32\32\377\202\31\31\31\377\14\27\27\27\377\26\26\26\377\25\25\25" \
- "\377\24\24\24\377\23\23\23\377\22\22\22\377\21\21\21\377\20\20\20\377" \
- "\17\17\17\377\16\16\16\377\15\15\15\377\14\14\14\377\202\13\13\13\377" \
- "\212\12\12\12\377\203\13\13\13\377\204\14\14\14\377\220\15\15\15\377" \
- "\203\14\14\14\377\226\13\13\13\377\227\14\14\14\377\211\13\13\13\377" \
- "\210\14\14\14\377\213\13\13\13\377\236\14\14\14\377\207\13\13\13\377" \
- "\204\12\12\12\377\222\13\13\13\377\204\14\14\14\377\214\15\15\15\377" \
- "\205\14\14\14\377\203\13\13\13\377\203\12\12\12\377\202\11\11\11\377" \
- "\2\10\10\10\377\7\7\7\377\202\6\6\6\377\1\5\5\5\377\202\4\4\4\377\202" \
- "\3\3\3\377\1\2\2\2\377\202\1\1\1\377\377\0\0\0\377\313\0\0\0\377\202" \
- "\1\1\1\377\202\2\2\2\377\202\3\3\3\377\202\4\4\4\377\202\5\5\5\377\1" \
- "\6\6\6\377\202\7\7\7\377\202\10\10\10\377\204\11\11\11\377\203\12\12" \
- "\12\377\5\13\13\13\377\14\14\14\377\15\15\15\377\16\16\16\377\17\17\17" \
- "\377\202\20\20\20\377\4\21\21\21\377\22\22\22\377\23\23\23\377\24\24" \
- "\24\377\202\25\25\25\377\3\26\26\26\377\27\27\27\377\30\30\30\377\203" \
- "\31\31\31\377\210\32\32\32\377\203\31\31\31\377\7\30\30\30\377\27\27" \
- "\27\377\26\26\26\377\25\25\25\377\24\24\24\377\23\23\23\377\22\22\22" \
- "\377\202\20\20\20\377\4\16\16\16\377\15\15\15\377\14\14\14\377\13\13" \
- "\13\377\202\12\12\12\377\1\11\11\11\377\213\10\10\10\377\203\11\11\11" \
- "\377\227\12\12\12\377\226\11\11\11\377\213\12\12\12\377\204\11\11\11" \
- "\377\206\12\12\12\377\214\11\11\11\377\205\12\12\12\377\222\11\11\11" \
- "\377\224\12\12\12\377\214\11\11\11\377\204\10\10\10\377\223\11\11\11" \
- "\377\224\12\12\12\377\204\11\11\11\377\202\10\10\10\377\202\7\7\7\377" \
- "\1\6\6\6\377\202\5\5\5\377\202\4\4\4\377\202\3\3\3\377\202\2\2\2\377" \
- "\202\1\1\1\377\377\0\0\0\377\316\0\0\0\377\202\1\1\1\377\202\2\2\2\377" \
- "\202\3\3\3\377\202\4\4\4\377\203\5\5\5\377\202\6\6\6\377\204\7\7\7\377" \
- "\203\10\10\10\377\1\11\11\11\377\202\12\12\12\377\6\13\13\13\377\14\14" \
- "\14\377\15\15\15\377\16\16\16\377\17\17\17\377\20\20\20\377\202\21\21" \
- "\21\377\2\22\22\22\377\23\23\23\377\202\24\24\24\377\1\25\25\25\377\202" \
- "\26\26\26\377\202\27\27\27\377\207\30\30\30\377\202\27\27\27\377\2\26" \
- "\26\26\377\25\25\25\377\202\24\24\24\377\2\22\22\22\377\21\21\21\377" \
- "\202\20\20\20\377\10\16\16\16\377\15\15\15\377\14\14\14\377\13\13\13" \
- "\377\12\12\12\377\11\11\11\377\10\10\10\377\7\7\7\377\202\6\6\6\377\206" \
- "\5\5\5\377\204\6\6\6\377\203\7\7\7\377\227\10\10\10\377\203\7\7\7\377" \
- "\220\6\6\6\377\203\7\7\7\377\211\10\10\10\377\221\7\7\7\377\202\6\6\6" \
- "\377\220\7\7\7\377\202\6\6\6\377\221\7\7\7\377\210\10\10\10\377\220\7" \
- "\7\7\377\224\6\6\6\377\204\7\7\7\377\224\10\10\10\377\204\7\7\7\377\202" \
- "\6\6\6\377\203\5\5\5\377\202\4\4\4\377\202\3\3\3\377\202\2\2\2\377\202" \
- "\1\1\1\377\377\0\0\0\377\322\0\0\0\377\202\1\1\1\377\202\2\2\2\377\203" \
- "\3\3\3\377\203\4\4\4\377\205\5\5\5\377\204\6\6\6\377\4\7\7\7\377\10\10" \
- "\10\377\11\11\11\377\12\12\12\377\202\13\13\13\377\202\15\15\15\377\2" \
- "\16\16\16\377\17\17\17\377\202\20\20\20\377\3\21\21\21\377\22\22\22\377" \
- "\23\23\23\377\203\24\24\24\377\202\25\25\25\377\204\26\26\26\377\203" \
- "\25\25\25\377\202\24\24\24\377\15\23\23\23\377\22\22\22\377\21\21\21" \
- "\377\20\20\20\377\17\17\17\377\16\16\16\377\15\15\15\377\14\14\14\377" \
- "\13\13\13\377\12\12\12\377\11\11\11\377\10\10\10\377\6\6\6\377\202\5" \
- "\5\5\377\1\4\4\4\377\206\3\3\3\377\204\4\4\4\377\205\5\5\5\377\225\6" \
- "\6\6\377\205\5\5\5\377\216\4\4\4\377\205\5\5\5\377\207\6\6\6\377\267" \
- "\5\5\5\377\210\6\6\6\377\225\5\5\5\377\215\4\4\4\377\207\5\5\5\377\223" \
- "\6\6\6\377\205\5\5\5\377\203\4\4\4\377\203\3\3\3\377\202\2\2\2\377\202" \
- "\1\1\1\377\377\0\0\0\377\326\0\0\0\377\203\1\1\1\377\203\2\2\2\377\204" \
- "\3\3\3\377\207\4\4\4\377\3\5\5\5\377\6\6\6\377\7\7\7\377\202\10\10\10" \
- "\377\4\11\11\11\377\12\12\12\377\13\13\13\377\14\14\14\377\202\15\15" \
- "\15\377\2\16\16\16\377\17\17\17\377\202\20\20\20\377\1\21\21\21\377\202" \
- "\22\22\22\377\1\23\23\23\377\206\24\24\24\377\1\23\23\23\377\202\22\22" \
- "\22\377\1\21\21\21\377\202\20\20\20\377\15\17\17\17\377\16\16\16\377" \
- "\15\15\15\377\14\14\14\377\13\13\13\377\12\12\12\377\11\11\11\377\10" \
- "\10\10\377\7\7\7\377\6\6\6\377\5\5\5\377\4\4\4\377\3\3\3\377\202\2\2" \
- "\2\377\202\1\1\1\377\203\2\2\2\377\206\3\3\3\377\233\4\4\4\377\222\3" \
- "\3\3\377\215\4\4\4\377\261\3\3\3\377\215\4\4\4\377\243\3\3\3\377\232" \
- "\4\4\4\377\204\3\3\3\377\203\2\2\2\377\203\1\1\1\377\377\0\0\0\377\333" \
- "\0\0\0\377\204\1\1\1\377\204\2\2\2\377\207\3\3\3\377\1\4\4\4\377\202" \
- "\5\5\5\377\3\6\6\6\377\7\7\7\377\10\10\10\377\202\11\11\11\377\3\12\12" \
- "\12\377\13\13\13\377\14\14\14\377\202\15\15\15\377\2\16\16\16\377\17" \
- "\17\17\377\202\20\20\20\377\202\21\21\21\377\204\22\22\22\377\202\21" \
- "\21\21\377\202\20\20\20\377\2\17\17\17\377\16\16\16\377\202\15\15\15" \
- "\377\13\14\14\14\377\13\13\13\377\12\12\12\377\11\11\11\377\10\10\10" \
- "\377\7\7\7\377\6\6\6\377\5\5\5\377\4\4\4\377\3\3\3\377\2\2\2\377\202" \
- "\1\1\1\377\203\0\0\0\377\205\1\1\1\377\205\2\2\2\377\231\3\3\3\377\206" \
- "\2\2\2\377\210\1\1\1\377\206\2\2\2\377\213\3\3\3\377\252\2\2\2\377\203" \
- "\1\1\1\377\206\2\2\2\377\213\3\3\3\377\205\2\2\2\377\205\1\1\1\377\215" \
- "\2\2\2\377\210\1\1\1\377\205\2\2\2\377\203\3\3\3\377\205\2\2\2\377\221" \
- "\3\3\3\377\204\2\2\2\377\204\1\1\1\377\377\0\0\0\377\342\0\0\0\377\212" \
- "\1\1\1\377\202\2\2\2\377\202\3\3\3\377\2\4\4\4\377\5\5\5\377\202\6\6" \
- "\6\377\4\7\7\7\377\10\10\10\377\11\11\11\377\12\12\12\377\202\13\13\13" \
- "\377\3\14\14\14\377\15\15\15\377\16\16\16\377\202\17\17\17\377\206\20" \
- "\20\20\377\202\17\17\17\377\1\16\16\16\377\202\15\15\15\377\11\14\14" \
- "\14\377\13\13\13\377\12\12\12\377\11\11\11\377\10\10\10\377\7\7\7\377" \
- "\6\6\6\377\5\5\5\377\4\4\4\377\202\3\3\3\377\2\2\2\2\377\1\1\1\377\211" \
- "\0\0\0\377\246\1\1\1\377\206\0\0\0\377\231\1\1\1\377\202\0\0\0\377\240" \
- "\1\1\1\377\205\0\0\0\377\225\1\1\1\377\205\0\0\0\377\215\1\1\1\377\207" \
- "\0\0\0\377\243\1\1\1\377\377\0\0\0\377\356\0\0\0\377\205\1\1\1\377\1" \
- "\2\2\2\377\202\3\3\3\377\1\4\4\4\377\202\5\5\5\377\5\6\6\6\377\7\7\7" \
- "\377\10\10\10\377\11\11\11\377\12\12\12\377\202\13\13\13\377\1\14\14" \
- "\14\377\203\15\15\15\377\204\16\16\16\377\203\15\15\15\377\1\14\14\14" \
- "\377\202\13\13\13\377\5\12\12\12\377\11\11\11\377\10\10\10\377\7\7\7" \
- "\377\6\6\6\377\202\5\5\5\377\3\4\4\4\377\3\3\3\377\2\2\2\377\202\1\1" \
- "\1\377\377\0\0\0\377\203\1\1\1\377\271\0\0\0\377\204\1\1\1\377\377\0" \
- "\0\0\377\373\0\0\0\377\1\1\1\1\377\202\2\2\2\377\1\3\3\3\377\202\4\4" \
- "\4\377\3\5\5\5\377\6\6\6\377\7\7\7\377\202\10\10\10\377\1\11\11\11\377" \
- "\202\12\12\12\377\202\13\13\13\377\206\14\14\14\377\202\13\13\13\377" \
- "\202\12\12\12\377\1\11\11\11\377\202\10\10\10\377\3\7\7\7\377\6\6\6\377" \
- "\5\5\5\377\202\4\4\4\377\1\3\3\3\377\202\2\2\2\377\1\1\1\1\377\377\0" \
- "\0\0\377\377\0\0\0\377\377\0\0\0\377\276\0\0\0\377\202\1\1\1\377\1\2" \
- "\2\2\377\202\3\3\3\377\1\4\4\4\377\202\5\5\5\377\2\6\6\6\377\7\7\7\377" \
- "\202\10\10\10\377\202\11\11\11\377\210\12\12\12\377\202\11\11\11\377" \
- "\202\10\10\10\377\2\7\7\7\377\6\6\6\377\202\5\5\5\377\1\4\4\4\377\202" \
- "\3\3\3\377\1\2\2\2\377\202\1\1\1\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\300\0\0\0\377\202\1\1\1\377\1\2\2\2\377\202\3\3\3\377\202" \
- "\4\4\4\377\202\5\5\5\377\1\6\6\6\377\202\7\7\7\377\212\10\10\10\377\1" \
- "\7\7\7\377\202\6\6\6\377\202\5\5\5\377\202\4\4\4\377\202\3\3\3\377\1" \
- "\2\2\2\377\202\1\1\1\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\302" \
- "\0\0\0\377\202\1\1\1\377\202\2\2\2\377\202\3\3\3\377\202\4\4\4\377\203" \
- "\5\5\5\377\204\6\6\6\377\202\7\7\7\377\204\6\6\6\377\203\5\5\5\377\202" \
- "\4\4\4\377\202\3\3\3\377\202\2\2\2\377\202\1\1\1\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\304\0\0\0\377\203\1\1\1\377\202\2\2\2\377\203" \
- "\3\3\3\377\203\4\4\4\377\210\5\5\5\377\203\4\4\4\377\203\3\3\3\377\202" \
- "\2\2\2\377\203\1\1\1\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\307" \
- "\0\0\0\377\203\1\1\1\377\203\2\2\2\377\205\3\3\3\377\204\4\4\4\377\205" \
- "\3\3\3\377\203\2\2\2\377\203\1\1\1\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\313\0\0\0\377\205\1\1\1\377\204\2\2\2\377\204\3\3\3\377\204" \
- "\2\2\2\377\205\1\1\1\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\320" \
- "\0\0\0\377\220\1\1\1\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377" \
- "\0\0\0\377\252\0\0\0\377\3\26\24\21\377-(\"\377($\37\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377\377\0\0\0\377" \
- "\321\0\0\0\377\377\1\0\0\377\377\1\0\0\377\377\1\0\0\377\343\1\0\0\377" \
- "\377\3\1\0\377\377\3\1\0\377\377\3\1\0\377\343\3\1\0\377\377\5\2\0\377" \
- "\377\5\2\0\377\377\5\2\0\377\343\5\2\0\377\377\7\3\0\377\377\7\3\0\377" \
- "\377\7\3\0\377\343\7\3\0\377\377\11\4\0\377\377\11\4\0\377\377\11\4\0" \
- "\377\343\11\4\0\377\377\13\5\0\377\377\13\5\0\377\377\13\5\0\377\343" \
- "\13\5\0\377\377\14\6\0\377\377\14\6\0\377\377\14\6\0\377\343\14\6\0\377" \
- "\377\16\7\0\377\377\16\7\0\377\377\16\7\0\377\343\16\7\0\377\377\20\10" \
- "\0\377\377\20\10\0\377\377\20\10\0\377\343\20\10\0\377\377\22\11\0\377" \
- "\377\22\11\0\377\377\22\11\0\377\343\22\11\0\377\377\24\12\0\377\377" \
- "\24\12\0\377\377\24\12\0\377\343\24\12\0\377\377\25\12\0\377\377\25\12" \
- "\0\377\377\25\12\0\377\343\25\12\0\377\377\27\13\0\377\377\27\13\0\377" \
- "\377\27\13\0\377\343\27\13\0\377\377\31\14\0\377\377\31\14\0\377\377" \
- "\31\14\0\377\343\31\14\0\377\377\33\15\0\377\377\33\15\0\377\377\33\15" \
- "\0\377\343\33\15\0\377\377\35\16\0\377\377\35\16\0\377\377\35\16\0\377" \
- "\343\35\16\0\377\377\36\17\0\377\377\36\17\0\377\377\36\17\0\377\343" \
- "\36\17\0\377\377\40\20\0\377\377\40\20\0\377\377\40\20\0\377\343\40\20" \
- "\0\377\377\"\21\0\377\377\"\21\0\377\377\"\21\0\377\343\"\21\0\377\377" \
- "$\22\0\377\377$\22\0\377\377$\22\0\377\343$\22\0\377\377&\23\0\377\377" \
- "&\23\0\377\377&\23\0\377\343&\23\0\377\377'\23\0\377\377'\23\0\377\377" \
- "'\23\0\377\343'\23\0\377\377)\24\0\377\377)\24\0\377\377)\24\0\377\343" \
- ")\24\0\377\377+\25\0\377\377+\25\0\377\377+\25\0\377\343+\25\0\377\377" \
- "-\26\0\377\377-\26\0\377\377-\26\0\377\343-\26\0\377\377/\27\0\377\377" \
- "/\27\0\377\377/\27\0\377\343/\27\0\377\3770\30\0\377\3770\30\0\377\377" \
- "0\30\0\377\3430\30\0\377\3772\31\0\377\3772\31\0\377\3772\31\0\377\343" \
- "2\31\0\377\3774\32\0\377\3774\32\0\377\3774\32\0\377\3434\32\0\377\377" \
- "6\33\0\377\3776\33\0\377\3776\33\0\377\3436\33\0\377\3778\34\0\377\377" \
- "8\34\0\377\3778\34\0\377\3438\34\0\377\377:\35\0\377\377:\35\0\377\377" \
- ":\35\0\377\343:\35\0\377\377;\35\0\377\377;\35\0\377\377;\35\0\377\343" \
- ";\35\0\377\377=\36\0\377\377=\36\0\377\377=\36\0\377\343=\36\0\377\377" \
- "\77\37\0\377\377\77\37\0\377\377\77\37\0\377\343\77\37\0\377\377A\40" \
- "\0\377\377A\40\0\377\377A\40\0\377\343A\40\0\377\377C!\0\377\377C!\0" \
- "\377\377C!\0\377\343C!\0\377\377D\"\0\377\377D\"\0\377\377D\"\0\377\343" \
- "D\"\0\377\377F#\0\377\377F#\0\377\377F#\0\377\343F#\0\377\377H$\0\377" \
- "\377H$\0\377\377H$\0\377\343H$\0\377\377J%\0\377\377J%\0\377\377J%\0" \
- "\377\343J%\0\377\377L&\0\377\377L&\0\377\377L&\0\377\343L&\0\377\377" \
- "M&\0\377\377M&\0\377\377M&\0\377\343M&\0\377\377O'\0\377\377O'\0\377" \
- "\377O'\0\377\343O'\0\377\377Q(\0\377\377Q(\0\377\377Q(\0\377\343Q(\0" \
- "\377\377S)\0\377\377S)\0\377\377S)\0\377\343S)\0\377\377U*\0\377\377" \
- "U*\0\377\377U*\0\377\343U*\0\377\377V+\0\377\377V+\0\377\377V+\0\377" \
- "\343V+\0\377\377X,\0\377\377X,\0\377\377X,\0\377\343X,\0\377\377Z-\0" \
- "\377\377Z-\0\377\377Z-\0\377\343Z-\0\377\377\\.\0\377\377\\.\0\377\377" \
- "\\.\0\377\343\\.\0\377\377^/\0\377\377^/\0\377\377^/\0\377\343^/\0\377" \
- "\377_/\0\377\377_/\0\377\377_/\0\377\343_/\0\377\377a0\0\377\377a0\0" \
- "\377\377a0\0\377\343a0\0\377\377c1\0\377\377c1\0\377\377c1\0\377\343" \
- "c1\0\377\377e2\0\377\377e2\0\377\377e2\0\377\343e2\0\377\377g3\0\377" \
- "\377g3\0\377\377g3\0\377\343g3\0\377\377i4\0\377\377i4\0\377\377i4\0" \
- "\377\343i4\0\377\377j5\0\377\377j5\0\377\377j5\0\377\343j5\0\377\377" \
- "l6\0\377\377l6\0\377\377l6\0\377\343l6\0\377\377n7\0\377\377n7\0\377" \
- "\377n7\0\377\343n7\0\377\377p8\0\377\377p8\0\377\377p8\0\377\343p8\0" \
- "\377\377r9\0\377\377r9\0\377\377r9\0\377\343r9\0\377\377s9\0\377\377" \
- "s9\0\377\377s9\0\377\343s9\0\377\377u:\0\377\377u:\0\377\377u:\0\377" \
- "\343u:\0\377\377w;\0\377\377w;\0\377\377w;\0\377\343w;\0\377\377y<\0" \
- "\377\377y<\0\377\377y<\0\377\343y<\0\377\377{=\0\377\377{=\0\377\377" \
- "{=\0\377\343{=\0\377\377|>\0\377\377|>\0\377\377|>\0\377\343|>\0\377" \
- "\377~\77\0\377\377~\77\0\377\377~\77\0\377\343~\77\0\377\377\200@\0\377" \
- "\377\200@\0\377\377\200@\0\377\343\200@\0\377\377\202A\0\377\377\202" \
- "A\0\377\377\202A\0\377\343\202A\0\377\377\204B\0\377\377\204B\0\377\377" \
- "\204B\0\377\343\204B\0\377\377\205B\0\377\377\205B\0\377\377\205B\0\377" \
- "\343\205B\0\377\377\207C\0\377\377\207C\0\377\377\207C\0\377\343\207" \
- "C\0\377\377\211D\0\377\377\211D\0\377\377\211D\0\377\343\211D\0\377\377" \
- "\213E\0\377\377\213E\0\377\377\213E\0\377\343\213E\0\377\377\215F\0\377" \
- "\377\215F\0\377\377\215F\0\377\343\215F\0\377\377\217G\0\377\377\217" \
- "G\0\377\377\217G\0\377\343\217G\0\377\377\220H\0\377\377\220H\0\377\377" \
- "\220H\0\377\343\220H\0\377\377\222I\0\377\377\222I\0\377\377\222I\0\377" \
- "\343\222I\0\377\377\224J\0\377\377\224J\0\377\377\224J\0\377\343\224" \
- "J\0\377\377\226K\0\377\377\226K\0\377\377\226K\0\377\343\226K\0\377\377" \
- "\230L\0\377\377\230L\0\377\377\230L\0\377\343\230L\0\377\377\231L\0\377" \
- "\377\231L\0\377\377\231L\0\377\343\231L\0\377\377\233M\0\377\377\233" \
- "M\0\377\377\233M\0\377\343\233M\0\377\377\235N\0\377\377\235N\0\377\377" \
- "\235N\0\377\343\235N\0\377\377\237O\0\377\377\237O\0\377\377\237O\0\377" \
- "\343\237O\0\377\377\241P\0\377\377\241P\0\377\377\241P\0\377\343\241" \
- "P\0\377\377\242Q\0\377\377\242Q\0\377\377\242Q\0\377\343\242Q\0\377\377" \
- "\244R\0\377\377\244R\0\377\377\244R\0\377\343\244R\0\377\377\246S\0\377" \
- "\377\246S\0\377\377\246S\0\377\343\246S\0\377\377\250T\0\377\377\250" \
- "T\0\377\377\250T\0\377\343\250T\0\377\377\252U\0\377\377\252U\0\377\377" \
- "\252U\0\377\343\252U\0\377\377\253U\0\377\377\253U\0\377\377\253U\0\377" \
- "\343\253U\0\377\377\255V\0\377\377\255V\0\377\377\255V\0\377\343\255" \
- "V\0\377\377\257W\0\377\377\257W\0\377\377\257W\0\377\343\257W\0\377\377" \
- "\261X\0\377\377\261X\0\377\377\261X\0\377\343\261X\0\377\377\263Y\0\377" \
- "\377\263Y\0\377\377\263Y\0\377\343\263Y\0\377\377\264Z\0\377\377\264" \
- "Z\0\377\377\264Z\0\377\343\264Z\0\377\377\266[\0\377\377\266[\0\377\377" \
- "\266[\0\377\343\266[\0\377\377\270\\\0\377\377\270\\\0\377\377\270\\" \
- "\0\377\343\270\\\0\377\377\272]\0\377\377\272]\0\377\377\272]\0\377\343" \
- "\272]\0\377\377\274^\0\377\377\274^\0\377\377\274^\0\377\343\274^\0\377" \
- "\377\276_\0\377\377\276_\0\377\377\276_\0\377\343\276_\0\377\377\277" \
- "_\0\377\377\277_\0\377\377\277_\0\377\343\277_\0\377\377\301`\0\377\377" \
- "\301`\0\377\377\301`\0\377\343\301`\0\377\353\303a\0\377\3\274]\0\377" \
- "\233M\0\377\252T\0\377\347\303a\0\377\3\252T\0\377\213E\0\377\270[\0" \
- "\377\377\303a\0\377\224\303a\0\377\3\274]\0\377\233M\0\377\252T\0\377" \
- "\276\303a\0\377\3\277_\0\377\233M\0\377\250S\0\377\203\303a\0\377\3\277" \
- "_\0\377\233M\0\377\250S\0\377\212\303a\0\377\2\237O\0\377\240O\0\377" \
- "\237\303a\0\377\233\305b\0\377\10\266Z\0\377j5\0\3778\34\0\377!\20\0" \
- "\377%\22\0\377A\40\0\377|=\0\377\301`\0\377\252\305b\0\377\1\301`\0\377" \
- "\202R)\0\377\2U*\0\377\301`\0\377\206\305b\0\377\1o7\0\377\202R)\0\377" \
- "\1\243Q\0\377\217\305b\0\377\3\237O\0\377\0\0\0\377I$\0\377\233\305b" \
- "\0\377\7\232L\0\377_/\0\3776\32\0\377\"\21\0\377*\25\0\377N'\0\377\234" \
- "M\0\377\207\305b\0\377\6\276^\0\377i4\0\3771\30\0\377$\22\0\377<\35\0" \
- "\377\204B\0\377\207\305b\0\377\6\276^\0\377i4\0\3771\30\0\377$\22\0\377" \
- "<\35\0\377\204B\0\377\204\305b\0\377\1\234M\0\377\211R)\0\377\1\303a" \
- "\0\377\211\305b\0\377\7\232L\0\377_/\0\3776\32\0\377\"\21\0\377*\25\0" \
- "\377N'\0\377\234M\0\377\214\305b\0\377\3k5\0\377\0\0\0\377\234N\0\377" \
- "\216\305b\0\377\4\230K\0\377R)\0\377S)\0\377\276^\0\377\266\305b\0\377" \
- "\3\304a\0\377\273]\0\377\277_\0\377\215\305b\0\377\10\230K\0\377O'\0" \
- "\377+\25\0\377!\20\0\377*\25\0\377D\"\0\377m6\0\377\250S\0\377\263\305" \
- "b\0\377\3\237O\0\377\0\0\0\377I$\0\377\226\305b\0\377\3\304a\0\377\273" \
- "]\0\377\277_\0\377\213\305b\0\377\1\301`\0\377\205R)\0\377\3X,\0\377" \
- "o7\0\377\245R\0\377\221\305b\0\377\3\257W\0\377\0\0\0\377=\36\0\377\203" \
- "\305b\0\377\3\257W\0\377\0\0\0\377=\36\0\377\212\305b\0\377\2\16\7\0" \
- "\377\27\13\0\377\237\305b\0\377\232\307c\0\377\12\212E\0\377\15\6\0\377" \
- "\0\0\0\377\12\5\0\377)\24\0\377$\22\0\377\3\1\0\377\0\0\0\377\40\20\0" \
- "\377\251T\0\377\251\307c\0\377\1\300_\0\377\203\0\0\0\377\1\211D\0\377" \
- "\205\307c\0\377\2\270[\0\377\4\2\0\377\202\0\0\0\377\1\213E\0\377\217" \
- "\307c\0\377\3\241P\0\377\0\0\0\377J$\0\377\232\307c\0\377\1t9\0\377\202" \
- "\0\0\0\377\3\11\4\0\377\37\17\0\377\21\10\0\377\202\0\0\0\377\1h4\0\377" \
- "\205\307c\0\377\10\274]\0\377$\22\0\377\0\0\0\377\26\13\0\3770\30\0\377" \
- "\12\5\0\377\0\0\0\377U*\0\377\205\307c\0\377\10\274]\0\377$\22\0\377" \
- "\0\0\0\377\26\13\0\3770\30\0\377\12\5\0\377\0\0\0\377U*\0\377\203\307" \
- "c\0\377\1\177\77\0\377\210\0\0\0\377\2\21\10\0\377\306b\0\377\210\307" \
- "c\0\377\1t9\0\377\202\0\0\0\377\3\11\4\0\377\37\17\0\377\21\10\0\377" \
- "\202\0\0\0\377\1h4\0\377\213\307c\0\377\3l5\0\377\0\0\0\377\236N\0\377" \
- "\216\307c\0\377\1<\35\0\377\202\0\0\0\377\1~>\0\377\266\307c\0\377\3" \
- "\252U\0\377\0\0\0\377C!\0\377\214\307c\0\377\1\\-\0\377\202\0\0\0\377" \
- "\6\32\15\0\377.\26\0\377#\21\0\377\4\2\0\377\0\0\0\377:\35\0\377\263" \
- "\307c\0\377\3\241P\0\377\0\0\0\377J$\0\377\226\307c\0\377\3\252U\0\377" \
- "\0\0\0\377C!\0\377\213\307c\0\377\1\300_\0\377\210\0\0\0\377\2S)\0\377" \
- "\306b\0\377\217\307c\0\377\3\261X\0\377\0\0\0\377=\36\0\377\203\307c" \
- "\0\377\3\261X\0\377\0\0\0\377=\36\0\377\212\307c\0\377\2\16\7\0\377\30" \
- "\14\0\377\237\307c\0\377\231\310d\0\377\1\226K\0\377\202\3\1\0\377\2" \
- "o7\0\377\302a\0\377\202\310d\0\377\5\271\\\0\377K%\0\377\0\0\0\377\24" \
- "\12\0\377\270\\\0\377\250\310d\0\377\5\301`\0\377\0\0\0\377\17\7\0\377" \
- "\7\3\0\377>\37\0\377\205\310d\0\377\5r9\0\377\0\0\0\377\27\13\0\377\0" \
- "\0\0\377\214F\0\377\217\310d\0\377\3\242Q\0\377\0\0\0\377J%\0\377\232" \
- "\310d\0\377\4s9\0\377F#\0\377\227K\0\377\305b\0\377\202\310d\0\377\4" \
- "\207C\0\377\6\3\0\377\0\0\0\377\234N\0\377\204\310d\0\377\11O'\0\377" \
- "\0\0\0\377P(\0\377\305b\0\377\310d\0\377\270\\\0\377$\22\0\377\0\0\0" \
- "\377\213E\0\377\204\310d\0\377\11O'\0\377\0\0\0\377P(\0\377\305b\0\377" \
- "\310d\0\377\270\\\0\377$\22\0\377\0\0\0\377\213E\0\377\202\310d\0\377" \
- "\1\302a\0\377\206\270\\\0\377\3T*\0\377\0\0\0\377\\.\0\377\211\310d\0" \
- "\377\4s9\0\377F#\0\377\227K\0\377\305b\0\377\202\310d\0\377\4\207C\0" \
- "\377\6\3\0\377\0\0\0\377\234N\0\377\212\310d\0\377\3m6\0\377\0\0\0\377" \
- "\237O\0\377\215\310d\0\377\5\265Z\0\377\3\1\0\377\34\16\0\377\1\0\0\377" \
- "2\31\0\377\266\310d\0\377\3\253U\0\377\0\0\0\377D\"\0\377\213\310d\0" \
- "\377\4\221H\0\377\0\0\0\377\24\12\0\377\236O\0\377\203\310d\0\377\3\300" \
- "`\0\377\206C\0\377i4\0\377\263\310d\0\377\3\242Q\0\377\0\0\0\377J%\0" \
- "\377\226\310d\0\377\3\253U\0\377\0\0\0\377D\"\0\377\213\310d\0\377\3" \
- "\301`\0\377\0\0\0\377\13\5\0\377\203\276_\0\377\5\265Z\0\377\203A\0\377" \
- "\17\7\0\377\0\0\0\377\177\77\0\377\217\310d\0\377\3\306c\0\377\270\\" \
- "\0\377\275^\0\377\203\310d\0\377\3\262Y\0\377\0\0\0\377=\36\0\377\212" \
- "\310d\0\377\2\16\7\0\377\30\14\0\377\237\310d\0\377\230\312e\0\377\4" \
- "\306c\0\377\30\14\0\377\0\0\0\377y<\0\377\206\312e\0\377\3F#\0\377\0" \
- "\0\0\377G#\0\377\207\312e\0\377\4\310d\0\377\257W\0\377\252U\0\377\306" \
- "c\0\377\210\312e\0\377\3\263Y\0\377\245R\0\377\267[\0\377\212\312e\0" \
- "\377\4\311d\0\377\255V\0\377\247S\0\377\303a\0\377\204\312e\0\377\6\303" \
- "a\0\377\0\0\0\377\30\14\0\377H$\0\377\3\1\0\377\272]\0\377\204\312e\0" \
- "\377\5'\23\0\377\27\13\0\377J%\0\377\0\0\0\377\215F\0\377\206\312e\0" \
- "\377\4\306c\0\377\254V\0\377\247S\0\377\301`\0\377\205\312e\0\377\3\243" \
- "Q\0\377\0\0\0\377K%\0\377\213\312e\0\377\4\306c\0\377\254V\0\377\247" \
- "S\0\377\301`\0\377\213\312e\0\377\1\307c\0\377\206\312e\0\377\3^/\0\377" \
- "\0\0\0\377\\.\0\377\203\312e\0\377\4\272]\0\377\3\1\0\377\17\7\0\377" \
- "\303a\0\377\203\312e\0\377\3\231L\0\377\0\0\0\3770\30\0\377\203\312e" \
- "\0\377\4\272]\0\377\3\1\0\377\17\7\0\377\303a\0\377\203\312e\0\377\3" \
- "\231L\0\377\0\0\0\3770\30\0\377\210\312e\0\377\4\307c\0\377\24\12\0\377" \
- "\0\0\0\377\253U\0\377\211\312e\0\377\1\307c\0\377\206\312e\0\377\3^/" \
- "\0\377\0\0\0\377\\.\0\377\212\312e\0\377\3n7\0\377\0\0\0\377\240P\0\377" \
- "\215\312e\0\377\6m6\0\377\0\0\0\377u:\0\3774\32\0\377\0\0\0\377\257W" \
- "\0\377\224\312e\0\377\3\275^\0\377\247S\0\377\267[\0\377\225\312e\0\377" \
- "\5\307c\0\377\255V\0\377\243Q\0\377\257W\0\377\306c\0\377\204\312e\0" \
- "\377\3\255V\0\377\0\0\0\377D\"\0\377\213\312e\0\377\3Q(\0\377\0\0\0\377" \
- "v;\0\377\216\312e\0\377\4\311d\0\377\255V\0\377\247S\0\377\303a\0\377" \
- "\207\312e\0\377\4\265Z\0\377\244R\0\377\255V\0\377\307c\0\377\211\312" \
- "e\0\377\4\310d\0\377\257W\0\377\252U\0\377\306c\0\377\207\312e\0\377" \
- "\5\307c\0\377\255V\0\377\243Q\0\377\257W\0\377\306c\0\377\204\312e\0" \
- "\377\10\243Q\0\377\0\0\0\377K%\0\377\312e\0\377\311d\0\377\255V\0\377" \
- "\247S\0\377\303a\0\377\207\312e\0\377\4\306c\0\377\254V\0\377\247S\0" \
- "\377\301`\0\377\206\312e\0\377\3\255V\0\377\0\0\0\377D\"\0\377\213\312" \
- "e\0\377\3\303a\0\377\0\0\0\377\13\5\0\377\205\312e\0\377\3v;\0\377\0" \
- "\0\0\377G#\0\377\225\312e\0\377\3\263Y\0\377\0\0\0\377>\37\0\377\205" \
- "\312e\0\377\3\276_\0\377\247S\0\377\267[\0\377\202\312e\0\377\2\17\7" \
- "\0\377\30\14\0\377\237\312e\0\377\230\314f\0\377\3\205B\0\377\0\0\0\377" \
- "&\23\0\377\207\314f\0\377\4\271\\\0\377\4\2\0\377\2\1\0\377\266[\0\377" \
- "\202\314f\0\377\5\250T\0\377\14\6\0\377T*\0\377\212E\0\377\30\14\0\377" \
- "\202\0\0\0\377\2\16\7\0\377x<\0\377\205\314f\0\377\2~\77\0\377\32\15" \
- "\0\377\203\0\0\0\377\2+\25\0\377\241P\0\377\204\314f\0\377\5\250T\0\377" \
- "\14\6\0\377T*\0\377\230L\0\377\34\16\0\377\202\0\0\0\377\2\10\4\0\377" \
- "k5\0\377\203\314f\0\377\6\305b\0\377\0\0\0\377\30\14\0\377\226K\0\377" \
- "\0\0\0\377s9\0\377\203\314f\0\377\6\250T\0\377\0\0\0\377c1\0\377L&\0" \
- "\377\0\0\0\377\217G\0\377\204\314f\0\377\3\310d\0\377a0\0\377\14\6\0" \
- "\377\202\0\0\0\377\3\4\2\0\377G#\0\377\272]\0\377\203\314f\0\377\3\245" \
- "R\0\377\0\0\0\377L&\0\377\204\314f\0\377\10d2\0\377\14\6\0\377D\"\0\377" \
- "\304b\0\377\314f\0\377\310d\0\377a0\0\377\14\6\0\377\202\0\0\0\377\3" \
- "\4\2\0\377G#\0\377\272]\0\377\220\314f\0\377\3\200@\0\377\0\0\0\377O" \
- "'\0\377\203\314f\0\377\3\204B\0\377\0\0\0\377L&\0\377\205\314f\0\377" \
- "\3\22\11\0\377\1\0\0\377\277_\0\377\202\314f\0\377\3\204B\0\377\0\0\0" \
- "\377L&\0\377\205\314f\0\377\3\22\11\0\377\1\0\0\377\277_\0\377\207\314" \
- "f\0\377\3\220H\0\377\0\0\0\377/\27\0\377\221\314f\0\377\3\200@\0\377" \
- "\0\0\0\377O'\0\377\212\314f\0\377\3o7\0\377\0\0\0\377\242Q\0\377\215" \
- "\314f\0\377\6\40\20\0\377\4\2\0\377\275^\0\377\200@\0\377\0\0\0\377d" \
- "2\0\377\204\314f\0\377\3\223I\0\377\14\6\0\377l6\0\377\205\314f\0\377" \
- "\2\30\14\0\377'\23\0\377\204\314f\0\377\3\300`\0\377G#\0\377\2\1\0\377" \
- "\202\0\0\0\377\4""0\30\0\377\255V\0\377\33\15\0\377$\22\0\377\203\314" \
- "f\0\377\3\223I\0\377\14\6\0\377l6\0\377\205\314f\0\377\2\30\14\0\377" \
- "'\23\0\377\202\314f\0\377\3\313e\0\377f3\0\377\14\6\0\377\203\0\0\0\377" \
- "\2\6\3\0\377H$\0\377\202\314f\0\377\4r9\0\377\12\5\0\377\0\0\0\377\4" \
- "\2\0\377\203\14\6\0\377\1\207C\0\377\207\314f\0\377\3D\"\0\377\0\0\0" \
- "\377\206C\0\377\212\314f\0\377\5\250T\0\377\14\6\0\377T*\0\377\230L\0" \
- "\377\34\16\0\377\202\0\0\0\377\2\10\4\0\377k5\0\377\204\314f\0\377\2" \
- "O'\0\377\22\11\0\377\203\0\0\0\377\3\13\5\0\377`0\0\377\310d\0\377\203" \
- "\314f\0\377\5\250T\0\377\14\6\0\377T*\0\377\212E\0\377\30\14\0\377\202" \
- "\0\0\0\377\2\16\7\0\377x<\0\377\204\314f\0\377\3\313e\0\377f3\0\377\14" \
- "\6\0\377\203\0\0\0\377\2\6\3\0\377H$\0\377\203\314f\0\377\5\245R\0\377" \
- "\0\0\0\377L&\0\377\230L\0\377\34\16\0\377\202\0\0\0\377\2\10\4\0\377" \
- "k5\0\377\204\314f\0\377\3\310d\0\377a0\0\377\14\6\0\377\202\0\0\0\377" \
- "\3\4\2\0\377G#\0\377\272]\0\377\203\314f\0\377\4r9\0\377\12\5\0\377\0" \
- "\0\0\377\4\2\0\377\203\14\6\0\377\1\207C\0\377\207\314f\0\377\3\305b" \
- "\0\377\0\0\0\377\14\6\0\377\205\314f\0\377\3\213E\0\377\0\0\0\377D\"" \
- "\0\377\202\314f\0\377\3\223I\0\377\14\6\0\377l6\0\377\205\314f\0\377" \
- "\2\30\14\0\377'\23\0\377\203\314f\0\377\3\267[\0\377\14\6\0\377H$\0\377" \
- "\203\314f\0\377\3\265Z\0\377\0\0\0\377\77\37\0\377\203\314f\0\377\3\304" \
- "b\0\377N'\0\377\4\2\0\377\202\0\0\0\377\4""1\30\0\377\257W\0\377\17\7" \
- "\0\377\30\14\0\377\237\314f\0\377\230\316g\0\377\3L&\0\377\0\0\0\377" \
- "m6\0\377\210\316g\0\377\3""8\34\0\377\0\0\0\377\202A\0\377\202\316g\0" \
- "\377\12\247S\0\377\0\0\0\377!\20\0\377\4\2\0\377W+\0\377\212E\0\377t" \
- ":\0\377\25\12\0\377\0\0\0\377z=\0\377\203\316g\0\377\11c1\0\377\0\0\0" \
- "\377\37\17\0\377p8\0\377\206C\0\377d2\0\377\13\5\0\377\10\4\0\377\250" \
- "T\0\377\203\316g\0\377\12\247S\0\377\0\0\0\377&\23\0\377\11\4\0\377P" \
- "(\0\377~\77\0\377k5\0\377\20\10\0\377\0\0\0\377\207C\0\377\202\316g\0" \
- "\377\6\307c\0\377\0\0\0\377\31\14\0\377\315f\0\377\31\14\0\377&\23\0" \
- "\377\203\316g\0\377\6[-\0\377\0\0\0\377\261X\0\377L&\0\377\0\0\0\377" \
- "\220H\0\377\204\316g\0\377\11E\"\0\377\0\0\0\377&\23\0\377x<\0\377\200" \
- "@\0\377=\36\0\377\0\0\0\377\37\17\0\377\303a\0\377\202\316g\0\377\3\247" \
- "S\0\377\0\0\0\377L&\0\377\202\316g\0\377\5\311d\0\377L&\0\377\0\0\0\377" \
- "L&\0\377\311d\0\377\202\316g\0\377\11E\"\0\377\0\0\0\377&\23\0\377x<" \
- "\0\377\200@\0\377=\36\0\377\0\0\0\377\37\17\0\377\303a\0\377\217\316" \
- "g\0\377\3X,\0\377\0\0\0\377p8\0\377\203\316g\0\377\3`0\0\377\0\0\0\377" \
- "s9\0\377\205\316g\0\377\3""8\34\0\377\0\0\0\377\237O\0\377\202\316g\0" \
- "\377\3`0\0\377\0\0\0\377s9\0\377\205\316g\0\377\3""8\34\0\377\0\0\0\377" \
- "\237O\0\377\207\316g\0\377\3A\40\0\377\0\0\0\377\177\77\0\377\221\316" \
- "g\0\377\3X,\0\377\0\0\0\377p8\0\377\212\316g\0\377\3p8\0\377\0\0\0\377" \
- "\243Q\0\377\214\316g\0\377\10\240P\0\377\0\0\0\377A\40\0\377\316g\0\377" \
- "\304b\0\377\10\4\0\377\30\14\0\377\314f\0\377\203\316g\0\377\3\220H\0" \
- "\377\0\0\0\377f3\0\377\205\316g\0\377\2\14\6\0\377\34\16\0\377\203\316" \
- "g\0\377\12\314f\0\3772\31\0\377\0\0\0\3776\33\0\377\202A\0\377\204B\0" \
- "\377:\35\0\377\31\14\0\377\12\5\0\377\31\14\0\377\203\316g\0\377\3\220" \
- "H\0\377\0\0\0\377f3\0\377\205\316g\0\377\2\14\6\0\377\34\16\0\377\202" \
- "\316g\0\377\10p8\0\377\0\0\0\377,\26\0\377{=\0\377\216G\0\377\201@\0" \
- "\377X,\0\3771\30\0\377\202\316g\0\377\4\242Q\0\377`0\0\377\0\0\0\377" \
- "&\23\0\377\203p8\0\377\1\254V\0\377\207\316g\0\377\4c1\0\377\0\0\0\377" \
- "1\30\0\377\277_\0\377\211\316g\0\377\12\247S\0\377\0\0\0\377&\23\0\377" \
- "\11\4\0\377P(\0\377~\77\0\377k5\0\377\20\10\0\377\0\0\0\377\207C\0\377" \
- "\203\316g\0\377\10\14\6\0\377N'\0\377y<\0\377\206C\0\377u:\0\377*\25" \
- "\0\377\0\0\0\377S)\0\377\203\316g\0\377\12\247S\0\377\0\0\0\377!\20\0" \
- "\377\4\2\0\377W+\0\377\212E\0\377t:\0\377\25\12\0\377\0\0\0\377z=\0\377" \
- "\203\316g\0\377\10p8\0\377\0\0\0\377,\26\0\377{=\0\377\216G\0\377\201" \
- "@\0\377X,\0\3771\30\0\377\203\316g\0\377\12\247S\0\377\0\0\0\377&\23" \
- "\0\377\11\4\0\377P(\0\377~\77\0\377k5\0\377\20\10\0\377\0\0\0\377\207" \
- "C\0\377\203\316g\0\377\11E\"\0\377\0\0\0\377&\23\0\377x<\0\377\200@\0" \
- "\377=\36\0\377\0\0\0\377\37\17\0\377\303a\0\377\202\316g\0\377\4\242" \
- "Q\0\377`0\0\377\0\0\0\377&\23\0\377\203p8\0\377\1\254V\0\377\207\316" \
- "g\0\377\3\307c\0\377\0\0\0\377\14\6\0\377\204\316g\0\377\4\314f\0\377" \
- "C!\0\377\0\0\0\377v;\0\377\202\316g\0\377\3\220H\0\377\0\0\0\377f3\0" \
- "\377\205\316g\0\377\2\14\6\0\377\34\16\0\377\203\316g\0\377\3\267[\0" \
- "\377\0\0\0\377\77\37\0\377\203\316g\0\377\3\267[\0\377\0\0\0\377\77\37" \
- "\0\377\203\316g\0\377\11=\36\0\377\0\0\0\3772\31\0\377\202A\0\377\203" \
- "A\0\3775\32\0\377\31\14\0\377\12\5\0\377\31\14\0\377\237\316g\0\377\230" \
- "\320h\0\377\3+\25\0\377\0\0\0\377\224J\0\377\210\320h\0\377\3_/\0\377" \
- "\0\0\0\377`0\0\377\202\320h\0\377\1\250T\0\377\202\0\0\0\377\1v;\0\377" \
- "\203\320h\0\377\1\265Z\0\377\202\12\5\0\377\6\305b\0\377\320h\0\377\246" \
- "S\0\377\0\0\0\377,\26\0\377\310d\0\377\203\320h\0\377\3\245R\0\377\2" \
- "\1\0\3776\33\0\377\203\320h\0\377\1\250T\0\377\202\0\0\0\377\1\213E\0" \
- "\377\203\320h\0\377\3\240P\0\377\0\0\0\3775\32\0\377\202\320h\0\377\17" \
- "\311d\0\377\0\0\0\377\31\14\0\377\320h\0\377e2\0\377\0\0\0\377\252U\0" \
- "\377\320h\0\377\314f\0\377\21\10\0\3770\30\0\377\320h\0\377M&\0\377\0" \
- "\0\0\377\222I\0\377\203\320h\0\377\4\225J\0\377\0\0\0\377(\24\0\377\311" \
- "d\0\377\203\320h\0\377\3M&\0\377\0\0\0\377b1\0\377\202\320h\0\377\10" \
- "\250T\0\377\0\0\0\377M&\0\377\320h\0\377\304b\0\3777\33\0\377\0\0\0\377" \
- "e2\0\377\203\320h\0\377\4\225J\0\377\0\0\0\377(\24\0\377\311d\0\377\203" \
- "\320h\0\377\3M&\0\377\0\0\0\377b1\0\377\216\320h\0\377\1\262Y\0\377\202" \
- "\10\4\0\377\1\273]\0\377\203\320h\0\377\3K%\0\377\0\0\0\377\211D\0\377" \
- "\205\320h\0\377\3M&\0\377\0\0\0\377\212E\0\377\202\320h\0\377\3K%\0\377" \
- "\0\0\0\377\211D\0\377\205\320h\0\377\3M&\0\377\0\0\0\377\212E\0\377\206" \
- "\320h\0\377\4\276_\0\377\4\2\0\377\12\5\0\377\307c\0\377\220\320h\0\377" \
- "\1\262Y\0\377\202\10\4\0\377\1\273]\0\377\212\320h\0\377\3q8\0\377\0" \
- "\0\0\377\245R\0\377\214\320h\0\377\3R)\0\377\0\0\0\377\217G\0\377\202" \
- "\320h\0\377\3K%\0\377\0\0\0\377\227K\0\377\203\320h\0\377\3\222I\0\377" \
- "\0\0\0\377g3\0\377\205\320h\0\377\2\14\6\0\377\34\16\0\377\203\320h\0" \
- "\377\4\211D\0\377\0\0\0\377<\36\0\377\317g\0\377\202\320h\0\377\4\317" \
- "g\0\377B!\0\377\0\0\0\377\31\14\0\377\203\320h\0\377\3\222I\0\377\0\0" \
- "\0\377g3\0\377\205\320h\0\377\2\14\6\0\377\34\16\0\377\202\320h\0\377" \
- "\3,\26\0\377\7\3\0\377\307c\0\377\204\320h\0\377\1\317g\0\377\203\320" \
- "h\0\377\3\262Y\0\377\0\0\0\377F#\0\377\213\320h\0\377\10\271\\\0\377" \
- "\20\10\0\377\0\0\0\377\7\3\0\377<\36\0\377i4\0\377\224J\0\377\306c\0" \
- "\377\205\320h\0\377\1\250T\0\377\202\0\0\0\377\1\213E\0\377\203\320h" \
- "\0\377\3\240P\0\377\0\0\0\3775\32\0\377\203\320h\0\377\1\305b\0\377\204" \
- "\320h\0\377\4\314f\0\3771\30\0\377\2\1\0\377\272]\0\377\202\320h\0\377" \
- "\1\250T\0\377\202\0\0\0\377\1v;\0\377\203\320h\0\377\1\265Z\0\377\202" \
- "\12\5\0\377\1\305b\0\377\202\320h\0\377\3,\26\0\377\7\3\0\377\307c\0" \
- "\377\204\320h\0\377\1\317g\0\377\203\320h\0\377\1\250T\0\377\202\0\0" \
- "\0\377\1\213E\0\377\203\320h\0\377\3\240P\0\377\0\0\0\3775\32\0\377\202" \
- "\320h\0\377\4\225J\0\377\0\0\0\377(\24\0\377\311d\0\377\203\320h\0\377" \
- "\3M&\0\377\0\0\0\377b1\0\377\203\320h\0\377\3\262Y\0\377\0\0\0\377F#" \
- "\0\377\213\320h\0\377\3\311d\0\377\0\0\0\377\4\2\0\377\203Z-\0\377\5" \
- "Q(\0\377\37\17\0\377\0\0\0\377K%\0\377\313e\0\377\202\320h\0\377\3\222" \
- "I\0\377\0\0\0\377g3\0\377\205\320h\0\377\2\14\6\0\377\34\16\0\377\203" \
- "\320h\0\377\3\271\\\0\377\0\0\0\377@\40\0\377\203\320h\0\377\3\271\\" \
- "\0\377\0\0\0\377@\40\0\377\202\320h\0\377\4\222I\0\377\0\0\0\3774\32" \
- "\0\377\315f\0\377\202\320h\0\377\4\315f\0\3777\33\0\377\0\0\0\377\31" \
- "\14\0\377\237\320h\0\377\230\321h\0\377\3\35\16\0\377\0\0\0\377\243Q" \
- "\0\377\210\321h\0\377\3m6\0\377\0\0\0\377R)\0\377\202\321h\0\377\4\251" \
- "T\0\377\0\0\0\377\21\10\0\377\316f\0\377\204\321h\0\377\7Y,\0\377\0\0" \
- "\0\377\210C\0\377\321h\0\377U*\0\377\0\0\0\377\231L\0\377\205\321h\0" \
- "\377\3;\35\0\377\1\0\0\377\304a\0\377\202\321h\0\377\3\251T\0\377\0\0" \
- "\0\377%\22\0\377\205\321h\0\377\2\24\12\0\377\17\7\0\377\202\321h\0\377" \
- "\17\312d\0\377\0\0\0\377\31\14\0\377\321h\0\377\264Y\0\377\0\0\0\377" \
- "[-\0\377\321h\0\377\221H\0\377\0\0\0\377\177\77\0\377\321h\0\377M&\0" \
- "\377\0\0\0\377\222I\0\377\203\321h\0\377\3K%\0\377\0\0\0\377\217G\0\377" \
- "\204\321h\0\377\3\273]\0\377\1\0\0\377\30\14\0\377\202\321h\0\377\7\251" \
- "T\0\377\0\0\0\377M&\0\377\273]\0\377&\23\0\377\2\1\0\377~>\0\377\204" \
- "\321h\0\377\3K%\0\377\0\0\0\377\217G\0\377\204\321h\0\377\3\273]\0\377" \
- "\1\0\0\377\30\14\0\377\215\321h\0\377\4\305b\0\377$\22\0\377\0\0\0\377" \
- "}>\0\377\204\321h\0\377\3D!\0\377\0\0\0\377\221H\0\377\205\321h\0\377" \
- "\3V*\0\377\0\0\0\377\202@\0\377\202\321h\0\377\3D!\0\377\0\0\0\377\221" \
- "H\0\377\205\321h\0\377\3V*\0\377\0\0\0\377\202@\0\377\206\321h\0\377" \
- "\3q8\0\377\0\0\0\377Q(\0\377\220\321h\0\377\4\305b\0\377$\22\0\377\0" \
- "\0\0\377}>\0\377\213\321h\0\377\3q8\0\377\0\0\0\377\246R\0\377\213\321" \
- "h\0\377\4\310c\0\377\13\5\0\377\20\10\0\377\314e\0\377\202\321h\0\377" \
- "\3\231L\0\377\0\0\0\377H#\0\377\203\321h\0\377\3\222I\0\377\0\0\0\377" \
- "h3\0\377\205\321h\0\377\2\14\6\0\377\34\16\0\377\203\321h\0\377\3D\"" \
- "\0\377\0\0\0\377\241P\0\377\204\321h\0\377\3\250S\0\377\0\0\0\377\31" \
- "\14\0\377\203\321h\0\377\3\222I\0\377\0\0\0\377h3\0\377\205\321h\0\377" \
- "\2\14\6\0\377\34\16\0\377\202\321h\0\377\3*\25\0\377\3\1\0\377\270[\0" \
- "\377\210\321h\0\377\3\263Y\0\377\0\0\0\377G#\0\377\214\321h\0\377\3\265" \
- "Z\0\377D!\0\377\4\2\0\377\203\0\0\0\377\3\7\3\0\377V*\0\377\306b\0\377" \
- "\203\321h\0\377\3\251T\0\377\0\0\0\377%\22\0\377\205\321h\0\377\2\24" \
- "\12\0\377\17\7\0\377\211\321h\0\377\3{=\0\377\0\0\0\377\214E\0\377\202" \
- "\321h\0\377\4\251T\0\377\0\0\0\377\21\10\0\377\316f\0\377\204\321h\0" \
- "\377\3Y,\0\377\0\0\0\377\210C\0\377\202\321h\0\377\3*\25\0\377\3\1\0" \
- "\377\270[\0\377\210\321h\0\377\3\251T\0\377\0\0\0\377%\22\0\377\205\321" \
- "h\0\377\2\24\12\0\377\17\7\0\377\202\321h\0\377\3K%\0\377\0\0\0\377\217" \
- "G\0\377\204\321h\0\377\3\273]\0\377\1\0\0\377\30\14\0\377\203\321h\0" \
- "\377\3\263Y\0\377\0\0\0\377G#\0\377\213\321h\0\377\1\312d\0\377\207\0" \
- "\0\0\377\2\37\17\0\377\205B\0\377\203\321h\0\377\3\222I\0\377\0\0\0\377" \
- "h3\0\377\205\321h\0\377\2\14\6\0\377\34\16\0\377\203\321h\0\377\3\272" \
- "\\\0\377\0\0\0\377@\40\0\377\203\321h\0\377\3\272\\\0\377\0\0\0\377@" \
- "\40\0\377\202\321h\0\377\3K%\0\377\0\0\0\377\232M\0\377\204\321h\0\377" \
- "\3\237O\0\377\0\0\0\377\31\14\0\377\237\321h\0\377\230\323i\0\377\3$" \
- "\22\0\377\0\0\0\377\236O\0\377\210\323i\0\377\3h3\0\377\0\0\0\377[-\0" \
- "\377\202\323i\0\377\3\253U\0\377\0\0\0\377>\36\0\377\205\323i\0\377\10" \
- "\212D\0\377\0\0\0\377b1\0\377\323i\0\377*\25\0\377\0\0\0\377n6\0\377" \
- "v:\0\377\202u:\0\377\5t:\0\377s9\0\377/\27\0\377\0\0\0\377\252T\0\377" \
- "\202\323i\0\377\3\253U\0\377\0\0\0\377J%\0\377\205\323i\0\377\2&\22\0" \
- "\377\4\2\0\377\202\323i\0\377\3\314e\0\377\0\0\0\377\31\14\0\377\202" \
- "\323i\0\377\12""3\31\0\377\22\11\0\377\317g\0\377B\40\0\377\10\4\0\377" \
- "\310c\0\377\323i\0\377N'\0\377\0\0\0\377\224I\0\377\203\323i\0\377\3" \
- "&\22\0\377\0\0\0\377\302`\0\377\205\323i\0\377\12\36\17\0\377\0\0\0\377" \
- "\305b\0\377\323i\0\377\253U\0\377\0\0\0\3770\30\0\377\27\13\0\377\11" \
- "\4\0\377\225J\0\377\205\323i\0\377\3&\22\0\377\0\0\0\377\302`\0\377\205" \
- "\323i\0\377\3\36\17\0\377\0\0\0\377\305b\0\377\213\323i\0\377\4\313e" \
- "\0\3774\31\0\377\0\0\0\377_/\0\377\205\323i\0\377\3H$\0\377\0\0\0\377" \
- "\217G\0\377\205\323i\0\377\3R)\0\377\0\0\0\377\210C\0\377\202\323i\0" \
- "\377\3H$\0\377\0\0\0\377\217G\0\377\205\323i\0\377\3R)\0\377\0\0\0\377" \
- "\210C\0\377\206\323i\0\377\3!\20\0\377\0\0\0\377\243Q\0\377\217\323i" \
- "\0\377\4\313e\0\3774\31\0\377\0\0\0\377_/\0\377\214\323i\0\377\3s9\0" \
- "\377\0\0\0\377\247S\0\377\213\323i\0\377\3\206B\0\377\0\0\0\377Z,\0\377" \
- "\203\323i\0\377\4\321h\0\377\27\13\0\377\6\3\0\377\305b\0\377\202\323" \
- "i\0\377\3\224I\0\377\0\0\0\377i4\0\377\205\323i\0\377\2\14\6\0\377\34" \
- "\16\0\377\203\323i\0\377\3\"\21\0\377\0\0\0\377\316f\0\377\204\323i\0" \
- "\377\3\321h\0\377\4\2\0\377\31\14\0\377\203\323i\0\377\3\224I\0\377\0" \
- "\0\0\377i4\0\377\205\323i\0\377\2\14\6\0\377\34\16\0\377\202\323i\0\377" \
- "\6o7\0\377\0\0\0\377\15\6\0\377S)\0\377\211D\0\377\273]\0\377\205\323" \
- "i\0\377\3\265Z\0\377\0\0\0\377G#\0\377\216\323i\0\377\4\306b\0\377\225" \
- "J\0\377j5\0\3774\31\0\377\202\0\0\0\377\2-\26\0\377\317g\0\377\202\323" \
- "i\0\377\3\253U\0\377\0\0\0\377J%\0\377\205\323i\0\377\2&\22\0\377\4\2" \
- "\0\377\203\323i\0\377\4\303a\0\377h3\0\3771\30\0\377\32\15\0\377\202" \
- "\23\11\0\377\3\14\6\0\377\0\0\0\377z<\0\377\202\323i\0\377\3\253U\0\377" \
- "\0\0\0\377>\36\0\377\205\323i\0\377\3\212D\0\377\0\0\0\377b1\0\377\202" \
- "\323i\0\377\6o7\0\377\0\0\0\377\15\6\0\377S)\0\377\211D\0\377\273]\0" \
- "\377\205\323i\0\377\3\253U\0\377\0\0\0\377J%\0\377\205\323i\0\377\2&" \
- "\22\0\377\4\2\0\377\202\323i\0\377\3&\22\0\377\0\0\0\377\302`\0\377\205" \
- "\323i\0\377\3\36\17\0\377\0\0\0\377\305b\0\377\202\323i\0\377\3\265Z" \
- "\0\377\0\0\0\377G#\0\377\213\323i\0\377\3\314e\0\377\0\0\0\377\14\6\0" \
- "\377\203\314e\0\377\5\307c\0\377\243Q\0\3774\32\0\377\0\0\0\377i4\0\377" \
- "\202\323i\0\377\3\224I\0\377\0\0\0\377i4\0\377\205\323i\0\377\2\14\6" \
- "\0\377\34\16\0\377\203\323i\0\377\3\273]\0\377\0\0\0\377A\40\0\377\203" \
- "\323i\0\377\3\273]\0\377\0\0\0\377A\40\0\377\202\323i\0\377\3%\22\0\377" \
- "\0\0\0\377\313e\0\377\204\323i\0\377\3\316f\0\377\2\1\0\377\31\14\0\377" \
- "\237\323i\0\377\230\325j\0\377\3;\35\0\377\0\0\0\377\204B\0\377\210\325" \
- "j\0\377\3N'\0\377\0\0\0\377r8\0\377\202\325j\0\377\3\254V\0\377\0\0\0" \
- "\377L&\0\377\205\325j\0\377\6\231L\0\377\0\0\0\377V+\0\377\325j\0\377" \
- "\32\15\0\377\0\0\0\377\210\11\4\0\377\1\245R\0\377\202\325j\0\377\3\254" \
- "V\0\377\0\0\0\377O'\0\377\205\325j\0\377\2'\23\0\377\2\1\0\377\202\325" \
- "j\0\377\3\316f\0\377\0\0\0\377\31\14\0\377\202\325j\0\377\5\203A\0\377" \
- "\0\0\0\377\202@\0\377\4\2\0\377L&\0\377\202\325j\0\377\3O'\0\377\0\0" \
- "\0\377\225J\0\377\203\325j\0\377\3\31\14\0\377\0\0\0\377\322h\0\377\205" \
- "\325j\0\377\12-\26\0\377\0\0\0\377\273]\0\377\325j\0\377\254V\0\377\0" \
- "\0\0\377\14\6\0\377\0\0\0\377*\25\0\377\311d\0\377\205\325j\0\377\3\31" \
- "\14\0\377\0\0\0\377\322h\0\377\205\325j\0\377\3-\26\0\377\0\0\0\377\273" \
- "]\0\377\212\325j\0\377\4\316f\0\3779\34\0\377\0\0\0\377W+\0\377\206\325" \
- "j\0\377\3V+\0\377\0\0\0\377\202@\0\377\205\325j\0\377\3E\"\0\377\0\0" \
- "\0\377\230K\0\377\202\325j\0\377\3V+\0\377\0\0\0\377\202@\0\377\205\325" \
- "j\0\377\3E\"\0\377\0\0\0\377\230K\0\377\205\325j\0\377\3\245R\0\377\0" \
- "\0\0\377\"\21\0\377\217\325j\0\377\4\316f\0\3779\34\0\377\0\0\0\377W" \
- "+\0\377\215\325j\0\377\3t9\0\377\0\0\0\377\251T\0\377\213\325j\0\377" \
- "\3""5\32\0\377\0\0\0\377`0\0\377\204\204B\0\377\3""5\32\0\377\0\0\0\377" \
- "|=\0\377\202\325j\0\377\3\225J\0\377\0\0\0\377j4\0\377\205\325j\0\377" \
- "\2\14\6\0\377\35\16\0\377\203\325j\0\377\2\31\14\0\377\6\3\0\377\206" \
- "\325j\0\377\2\15\6\0\377\31\14\0\377\203\325j\0\377\3\225J\0\377\0\0" \
- "\0\377j4\0\377\205\325j\0\377\2\14\6\0\377\35\16\0\377\202\325j\0\377" \
- "\3\323i\0\377u:\0\377\32\15\0\377\203\0\0\0\377\2""2\30\0\377\251T\0" \
- "\377\203\325j\0\377\3\266[\0\377\0\0\0\377H$\0\377\222\325j\0\377\4\246" \
- "R\0\377\13\5\0\377\0\0\0\377\216G\0\377\202\325j\0\377\3\254V\0\377\0" \
- "\0\0\377O'\0\377\205\325j\0\377\2'\23\0\377\2\1\0\377\202\325j\0\377" \
- "\12\275^\0\377\26\13\0\377\0\0\0\3773\31\0\377[-\0\377g3\0\377j4\0\377" \
- "C!\0\377\0\0\0\377w;\0\377\202\325j\0\377\3\254V\0\377\0\0\0\377L&\0" \
- "\377\205\325j\0\377\3\231L\0\377\0\0\0\377V+\0\377\202\325j\0\377\3\323" \
- "i\0\377u:\0\377\32\15\0\377\203\0\0\0\377\2""2\30\0\377\251T\0\377\203" \
- "\325j\0\377\3\254V\0\377\0\0\0\377O'\0\377\205\325j\0\377\2'\23\0\377" \
- "\2\1\0\377\202\325j\0\377\3\31\14\0\377\0\0\0\377\322h\0\377\205\325" \
- "j\0\377\3-\26\0\377\0\0\0\377\273]\0\377\202\325j\0\377\3\266[\0\377" \
- "\0\0\0\377H$\0\377\213\325j\0\377\3\316f\0\377\0\0\0\377\14\6\0\377\205" \
- "\325j\0\377\10\311d\0\377\11\4\0\377\4\2\0\377\303a\0\377\325j\0\377" \
- "\225J\0\377\0\0\0\377j4\0\377\205\325j\0\377\2\14\6\0\377\35\16\0\377" \
- "\203\325j\0\377\3\275^\0\377\0\0\0\377A\40\0\377\203\325j\0\377\3\275" \
- "^\0\377\0\0\0\377A\40\0\377\202\325j\0\377\2\31\14\0\377\6\3\0\377\206" \
- "\325j\0\377\2\14\6\0\377\31\14\0\377\237\325j\0\377\230\327k\0\377\3" \
- "m6\0\377\0\0\0\377M&\0\377\207\327k\0\377\4\325j\0\377\30\14\0\377\0" \
- "\0\0\377\244Q\0\377\202\327k\0\377\3\256V\0\377\0\0\0\377A\40\0\377\205" \
- "\327k\0\377\7\216F\0\377\0\0\0\377a0\0\377\327k\0\377%\22\0\377\0\0\0" \
- "\377\314e\0\377\212\327k\0\377\3\256V\0\377\0\0\0\377P'\0\377\205\327" \
- "k\0\377\2'\23\0\377\2\1\0\377\202\327k\0\377\3\320g\0\377\0\0\0\377\32" \
- "\15\0\377\202\327k\0\377\1\314e\0\377\202\11\4\0\377\2\0\0\0\377\236" \
- "N\0\377\202\327k\0\377\3P'\0\377\0\0\0\377\226K\0\377\203\327k\0\377" \
- "\3%\22\0\377\0\0\0\377\310c\0\377\205\327k\0\377\13!\20\0\377\0\0\0\377" \
- "\307c\0\377\327k\0\377\256V\0\377\0\0\0\377P'\0\377k5\0\377\0\0\0\377" \
- ",\26\0\377\310c\0\377\204\327k\0\377\3%\22\0\377\0\0\0\377\310c\0\377" \
- "\205\327k\0\377\3!\20\0\377\0\0\0\377\307c\0\377\211\327k\0\377\5\321" \
- "h\0\377<\36\0\377\0\0\0\377S)\0\377\326j\0\377\206\327k\0\377\3x<\0\377" \
- "\0\0\0\377e2\0\377\205\327k\0\377\3'\23\0\377\0\0\0\377\271\\\0\377\202" \
- "\327k\0\377\3x<\0\377\0\0\0\377e2\0\377\205\327k\0\377\3'\23\0\377\0" \
- "\0\0\377\271\\\0\377\205\327k\0\377\3S)\0\377\0\0\0\377v:\0\377\216\327" \
- "k\0\377\5\321h\0\377<\36\0\377\0\0\0\377S)\0\377\326j\0\377\215\327k" \
- "\0\377\3u:\0\377\0\0\0\377\253U\0\377\212\327k\0\377\1\272\\\0\377\211" \
- "\0\0\0\377\1+\25\0\377\202\327k\0\377\3\227K\0\377\0\0\0\377k5\0\377" \
- "\205\327k\0\377\2\10\4\0\377\35\16\0\377\203\327k\0\377\3(\24\0\377\0" \
- "\0\0\377\315f\0\377\204\327k\0\377\3\321h\0\377\2\1\0\377\32\15\0\377" \
- "\203\327k\0\377\3\227K\0\377\0\0\0\377k5\0\377\205\327k\0\377\2\10\4" \
- "\0\377\35\16\0\377\205\327k\0\377\6\270[\0\377\203A\0\377\77\37\0\377" \
- "\0\0\0\377\12\5\0\377\300_\0\377\202\327k\0\377\3\270[\0\377\0\0\0\377" \
- "I$\0\377\223\327k\0\377\3[-\0\377\0\0\0\377b1\0\377\202\327k\0\377\3" \
- "\256V\0\377\0\0\0\377P'\0\377\205\327k\0\377\2'\23\0\377\2\1\0\377\202" \
- "\327k\0\377\3[-\0\377\0\0\0\377\207C\0\377\204\327k\0\377\3\177\77\0" \
- "\377\0\0\0\377x<\0\377\202\327k\0\377\3\256V\0\377\0\0\0\377A\40\0\377" \
- "\205\327k\0\377\3\216F\0\377\0\0\0\377a0\0\377\205\327k\0\377\6\270[" \
- "\0\377\203A\0\377\77\37\0\377\0\0\0\377\12\5\0\377\300_\0\377\202\327" \
- "k\0\377\3\256V\0\377\0\0\0\377P'\0\377\205\327k\0\377\2'\23\0\377\2\1" \
- "\0\377\202\327k\0\377\3%\22\0\377\0\0\0\377\310c\0\377\205\327k\0\377" \
- "\3!\20\0\377\0\0\0\377\307c\0\377\202\327k\0\377\3\270[\0\377\0\0\0\377" \
- "I$\0\377\213\327k\0\377\3\320g\0\377\0\0\0\377\14\6\0\377\206\327k\0" \
- "\377\7)\24\0\377\0\0\0\377\233M\0\377\327k\0\377\227K\0\377\0\0\0\377" \
- "k5\0\377\205\327k\0\377\2\10\4\0\377\35\16\0\377\203\327k\0\377\3\277" \
- "_\0\377\0\0\0\377B!\0\377\203\327k\0\377\3\277_\0\377\0\0\0\377B!\0\377" \
- "\202\327k\0\377\3$\22\0\377\0\0\0\377\321h\0\377\204\327k\0\377\3\324" \
- "i\0\377\3\1\0\377\32\15\0\377\237\327k\0\377\230\331l\0\377\4\274^\0" \
- "\377\1\0\0\377\6\3\0\377\274^\0\377\206\331l\0\377\4\215F\0\377\0\0\0" \
- "\377\37\17\0\377\330k\0\377\202\331l\0\377\4\260W\0\377\0\0\0\377\26" \
- "\13\0\377\330k\0\377\204\331l\0\377\7b1\0\377\0\0\0\377\210C\0\377\331" \
- "l\0\377O'\0\377\0\0\0\377\226J\0\377\212\331l\0\377\3\260W\0\377\0\0" \
- "\0\377P(\0\377\205\331l\0\377\2'\23\0\377\2\1\0\377\202\331l\0\377\3" \
- "\322h\0\377\0\0\0\377\32\15\0\377\203\331l\0\377\4P(\0\377\0\0\0\377" \
- "\31\14\0\377\330k\0\377\202\331l\0\377\3P(\0\377\0\0\0\377\230K\0\377" \
- "\203\331l\0\377\3J%\0\377\0\0\0\377\232M\0\377\204\331l\0\377\3\310c" \
- "\0\377\3\1\0\377\25\12\0\377\202\331l\0\377\10\260W\0\377\0\0\0\377P" \
- "(\0\377\331l\0\377u:\0\377\0\0\0\377'\23\0\377\307c\0\377\203\331l\0" \
- "\377\3J%\0\377\0\0\0\377\232M\0\377\204\331l\0\377\3\310c\0\377\3\1\0" \
- "\377\25\12\0\377\211\331l\0\377\5\323i\0\377\77\37\0\377\0\0\0\377O'" \
- "\0\377\327k\0\377\207\331l\0\377\3\255V\0\377\0\0\0\377-\26\0\377\204" \
- "\331l\0\377\4\307c\0\377\2\1\0\377\26\13\0\377\330k\0\377\202\331l\0" \
- "\377\3\255V\0\377\0\0\0\377-\26\0\377\204\331l\0\377\4\307c\0\377\2\1" \
- "\0\377\26\13\0\377\330k\0\377\204\331l\0\377\4\317g\0\377\12\5\0\377" \
- "\4\2\0\377\306b\0\377\215\331l\0\377\5\323i\0\377\77\37\0\377\0\0\0\377" \
- "O'\0\377\327k\0\377\216\331l\0\377\3v:\0\377\0\0\0\377\254U\0\377\212" \
- "\331l\0\377\3j4\0\377\0\0\0\377Z,\0\377\206\237O\0\377\7*\25\0\377\0" \
- "\0\0\377\262X\0\377\331l\0\377\243Q\0\377\0\0\0\377\\.\0\377\204\331" \
- "l\0\377\3\300_\0\377\0\0\0\377\35\16\0\377\203\331l\0\377\3R)\0\377\0" \
- "\0\0\377\231L\0\377\204\331l\0\377\3\237O\0\377\0\0\0\377\32\15\0\377" \
- "\203\331l\0\377\3\243Q\0\377\0\0\0\377\\.\0\377\204\331l\0\377\3\300" \
- "_\0\377\0\0\0\377\35\16\0\377\210\331l\0\377\3\\.\0\377\0\0\0\377\205" \
- "B\0\377\202\331l\0\377\3\274^\0\377\0\0\0\377I$\0\377\223\331l\0\377" \
- "\3e2\0\377\0\0\0\377f2\0\377\202\331l\0\377\3\260W\0\377\0\0\0\377P(" \
- "\0\377\205\331l\0\377\2'\23\0\377\2\1\0\377\202\331l\0\377\3""2\30\0" \
- "\377\0\0\0\377\323i\0\377\204\331l\0\377\3R)\0\377\0\0\0\377y<\0\377" \
- "\202\331l\0\377\4\260W\0\377\0\0\0\377\26\13\0\377\330k\0\377\204\331" \
- "l\0\377\3b1\0\377\0\0\0\377\210C\0\377\210\331l\0\377\3\\.\0\377\0\0" \
- "\0\377\205B\0\377\202\331l\0\377\3\260W\0\377\0\0\0\377P(\0\377\205\331" \
- "l\0\377\2'\23\0\377\2\1\0\377\202\331l\0\377\3J%\0\377\0\0\0\377\232" \
- "M\0\377\204\331l\0\377\3\310c\0\377\3\1\0\377\25\12\0\377\203\331l\0" \
- "\377\3\274^\0\377\0\0\0\377I$\0\377\213\331l\0\377\3\322h\0\377\0\0\0" \
- "\377\14\6\0\377\206\331l\0\377\7\30\14\0\377\0\0\0\377\241P\0\377\331" \
- "l\0\377\243Q\0\377\0\0\0\377\\.\0\377\204\331l\0\377\3\300_\0\377\0\0" \
- "\0\377\35\16\0\377\203\331l\0\377\3\301`\0\377\0\0\0\377C!\0\377\203" \
- "\331l\0\377\3\301`\0\377\0\0\0\377C!\0\377\202\331l\0\377\3I$\0\377\0" \
- "\0\0\377\247S\0\377\204\331l\0\377\3\254U\0\377\0\0\0\377\32\15\0\377" \
- "\237\331l\0\377\231\332m\0\377\4^/\0\377\0\0\0\377*\25\0\377\310d\0\377" \
- "\204\332m\0\377\4\256W\0\377\16\7\0\377\0\0\0\377\226K\0\377\203\332" \
- "m\0\377\1\260X\0\377\202\0\0\0\377\1\211D\0\377\203\332m\0\377\11\310" \
- "d\0\377\20\10\0\377\6\3\0\377\311d\0\377\332m\0\377\243Q\0\377\0\0\0" \
- "\377'\23\0\377\317g\0\377\205\332m\0\377\1\313e\0\377\203\332m\0\377" \
- "\3\260X\0\377\0\0\0\377Q(\0\377\205\332m\0\377\2(\24\0\377\2\1\0\377" \
- "\202\332m\0\377\3\323i\0\377\0\0\0\377\32\15\0\377\203\332m\0\377\3\310" \
- "d\0\377\255V\0\377\274^\0\377\203\332m\0\377\3Q(\0\377\0\0\0\377\231" \
- "L\0\377\203\332m\0\377\4\224J\0\377\0\0\0\3775\32\0\377\327k\0\377\203" \
- "\332m\0\377\3b1\0\377\0\0\0\377_/\0\377\202\332m\0\377\3\260X\0\377\0" \
- "\0\0\377Q(\0\377\202\332m\0\377\4}>\0\377\0\0\0\377#\21\0\377\304b\0" \
- "\377\202\332m\0\377\4\224J\0\377\0\0\0\3775\32\0\377\327k\0\377\203\332" \
- "m\0\377\3b1\0\377\0\0\0\377_/\0\377\210\332m\0\377\5\325j\0\377B!\0\377" \
- "\0\0\0\377K%\0\377\327k\0\377\211\332m\0\377\3%\22\0\377\0\0\0\377\242" \
- "Q\0\377\203\332m\0\377\3d2\0\377\0\0\0\377f3\0\377\204\332m\0\377\3%" \
- "\22\0\377\0\0\0\377\242Q\0\377\203\332m\0\377\3d2\0\377\0\0\0\377f3\0" \
- "\377\205\332m\0\377\3\207C\0\377\0\0\0\377E\"\0\377\210\332m\0\377\3" \
- "\177\77\0\377o7\0\377\304b\0\377\202\332m\0\377\5\325j\0\377B!\0\377" \
- "\0\0\0\377K%\0\377\327k\0\377\217\332m\0\377\3v;\0\377\0\0\0\377\255" \
- "V\0\377\211\332m\0\377\4\330l\0\377\31\14\0\377\0\0\0\377\276_\0\377" \
- "\206\332m\0\377\10}>\0\377\0\0\0\377_/\0\377\332m\0\377\307c\0\377\0" \
- "\0\0\377!\20\0\377\327k\0\377\203\332m\0\377\3Y,\0\377\0\0\0\377\35\16" \
- "\0\377\203\332m\0\377\4\244R\0\377\0\0\0\377'\23\0\377\316g\0\377\202" \
- "\332m\0\377\4\320h\0\377,\26\0\377\0\0\0\377\32\15\0\377\203\332m\0\377" \
- "\4\307c\0\377\0\0\0\377!\20\0\377\327k\0\377\203\332m\0\377\3Y,\0\377" \
- "\0\0\0\377\35\16\0\377\202\332m\0\377\1\313e\0\377\205\332m\0\377\3n" \
- "7\0\377\0\0\0\377\211D\0\377\202\332m\0\377\3\315f\0\377\0\0\0\3772\31" \
- "\0\377\213\332m\0\377\2\223I\0\377\274^\0\377\205\332m\0\377\4\314f\0" \
- "\377\34\16\0\377\0\0\0\377\223I\0\377\202\332m\0\377\3\260X\0\377\0\0" \
- "\0\377Q(\0\377\205\332m\0\377\2(\24\0\377\2\1\0\377\202\332m\0\377\3" \
- ";\35\0\377\0\0\0\377\266[\0\377\203\332m\0\377\4\266[\0\377\7\3\0\377" \
- "\0\0\0\377z=\0\377\202\332m\0\377\1\260X\0\377\202\0\0\0\377\1\211D\0" \
- "\377\203\332m\0\377\4\310d\0\377\20\10\0\377\6\3\0\377\311d\0\377\202" \
- "\332m\0\377\1\313e\0\377\205\332m\0\377\3n7\0\377\0\0\0\377\211D\0\377" \
- "\202\332m\0\377\3\260X\0\377\0\0\0\377Q(\0\377\205\332m\0\377\2(\24\0" \
- "\377\2\1\0\377\202\332m\0\377\4\224J\0\377\0\0\0\3775\32\0\377\327k\0" \
- "\377\203\332m\0\377\3b1\0\377\0\0\0\377_/\0\377\203\332m\0\377\3\315" \
- "f\0\377\0\0\0\3772\31\0\377\213\332m\0\377\3\323i\0\377\0\0\0\377\14" \
- "\6\0\377\205\332m\0\377\11\202A\0\377\0\0\0\377\11\4\0\377\316g\0\377" \
- "\332m\0\377\307c\0\377\0\0\0\377!\20\0\377\327k\0\377\203\332m\0\377" \
- "\3Y,\0\377\0\0\0\377\35\16\0\377\203\332m\0\377\3\302a\0\377\0\0\0\377" \
- "C!\0\377\203\332m\0\377\3\302a\0\377\0\0\0\377C!\0\377\202\332m\0\377" \
- "\3\221H\0\377\0\0\0\377B!\0\377\204\332m\0\377\3F#\0\377\0\0\0\377\32" \
- "\15\0\377\237\332m\0\377\231\334n\0\377\13\325j\0\377<\36\0\377\0\0\0" \
- "\377\21\10\0\377f3\0\377\217G\0\377\212E\0\377T*\0\377\4\2\0\377\0\0" \
- "\0\377m6\0\377\204\334n\0\377\12\262Y\0\377\0\0\0\377\37\17\0\377\10" \
- "\4\0\377p8\0\377\245R\0\377\216G\0\377\"\21\0\377\0\0\0\377s9\0\377\203" \
- "\334n\0\377\11].\0\377\0\0\0\377\37\17\0\377|>\0\377\242Q\0\377\240P" \
- "\0\377\202A\0\377D\"\0\377)\24\0\377\203\334n\0\377\3\262Y\0\377\0\0" \
- "\0\377Q(\0\377\205\334n\0\377\2(\24\0\377\2\1\0\377\202\334n\0\377\3" \
- "\325j\0\377\0\0\0\377\32\15\0\377\211\334n\0\377\3Q(\0\377\0\0\0\377" \
- "\232M\0\377\203\334n\0\377\12\333m\0\377=\36\0\377\0\0\0\3779\34\0\377" \
- "\226K\0\377\236O\0\377W+\0\377\0\0\0\377\31\14\0\377\314f\0\377\202\334" \
- "n\0\377\3\262Y\0\377\0\0\0\377Q(\0\377\203\334n\0\377\17\207C\0\377\1" \
- "\0\0\377\37\17\0\377\302a\0\377\334n\0\377\333m\0\377=\36\0\377\0\0\0" \
- "\3779\34\0\377\226K\0\377\236O\0\377W+\0\377\0\0\0\377\31\14\0\377\314" \
- "f\0\377\210\334n\0\377\4s9\0\377\0\0\0\377\2\1\0\377G#\0\377\205K%\0" \
- "\377\1t:\0\377\204\334n\0\377\11\243Q\0\377\3\1\0\377\14\6\0\377w;\0" \
- "\377\226K\0\377Z-\0\377\0\0\0\377\33\15\0\377\315f\0\377\204\334n\0\377" \
- "\11\243Q\0\377\3\1\0\377\14\6\0\377w;\0\377\226K\0\377Z-\0\377\0\0\0" \
- "\377\33\15\0\377\315f\0\377\205\334n\0\377\3""2\31\0\377\0\0\0\377\233" \
- "M\0\377\210\334n\0\377\3\36\17\0\377\0\0\0\377\257W\0\377\202\334n\0" \
- "\377\4s9\0\377\0\0\0\377\2\1\0\377G#\0\377\205K%\0\377\1t:\0\377\212" \
- "\334n\0\377\3w;\0\377\0\0\0\377\257W\0\377\211\334n\0\377\3\237O\0\377" \
- "\0\0\0\3772\31\0\377\207\334n\0\377\16\311d\0\377\3\1\0\377\21\10\0\377" \
- "\327k\0\377\334n\0\377B!\0\377\0\0\0\377@\40\0\377\223I\0\377\220H\0" \
- "\377G#\0\377\36\17\0\377\10\4\0\377\36\17\0\377\204\334n\0\377\11W+\0" \
- "\377\0\0\0\377\31\14\0\377_/\0\377a0\0\377\33\15\0\3776\33\0\377\16\7" \
- "\0\377\34\16\0\377\204\334n\0\377\11B!\0\377\0\0\0\377@\40\0\377\223" \
- "I\0\377\220H\0\377G#\0\377\36\17\0\377\10\4\0\377\36\17\0\377\202\334" \
- "n\0\377\11\30\14\0\377K%\0\377\210D\0\377\245R\0\377\244R\0\377r9\0\377" \
- "\10\4\0\377\17\7\0\377\312e\0\377\203\334n\0\377\6,\26\0\377\0\0\0\377" \
- "L&\0\377l6\0\377m6\0\377\264Z\0\377\207\334n\0\377\13Q(\0\377\1\0\0\377" \
- "8\34\0\377q8\0\377\217G\0\377\221H\0\377n7\0\377\31\14\0\377\0\0\0\377" \
- "2\31\0\377\331l\0\377\202\334n\0\377\3\262Y\0\377\0\0\0\377Q(\0\377\205" \
- "\334n\0\377\2(\24\0\377\2\1\0\377\202\334n\0\377\12\203A\0\377\0\0\0" \
- "\377!\20\0\377\220H\0\377\247S\0\377{=\0\377\22\11\0\377!\20\0\377\0" \
- "\0\0\377{=\0\377\202\334n\0\377\12\262Y\0\377\0\0\0\377\37\17\0\377\10" \
- "\4\0\377p8\0\377\245R\0\377\216G\0\377\"\21\0\377\0\0\0\377s9\0\377\203" \
- "\334n\0\377\11\30\14\0\377K%\0\377\210D\0\377\245R\0\377\244R\0\377r" \
- "9\0\377\10\4\0\377\17\7\0\377\312e\0\377\202\334n\0\377\3\262Y\0\377" \
- "\0\0\0\377Q(\0\377\205\334n\0\377\2(\24\0\377\2\1\0\377\202\334n\0\377" \
- "\12\333m\0\377=\36\0\377\0\0\0\3779\34\0\377\226K\0\377\236O\0\377W+" \
- "\0\377\0\0\0\377\31\14\0\377\314f\0\377\204\334n\0\377\6,\26\0\377\0" \
- "\0\0\377L&\0\377l6\0\377m6\0\377\264Z\0\377\207\334n\0\377\3\325j\0\377" \
- "\0\0\0\377\4\2\0\377\203Q(\0\377\2L&\0\377'\23\0\377\202\0\0\0\377\1" \
- "\204B\0\377\203\334n\0\377\11B!\0\377\0\0\0\377@\40\0\377\223I\0\377" \
- "\220H\0\377G#\0\377\36\17\0\377\10\4\0\377\36\17\0\377\203\334n\0\377" \
- "\3\303a\0\377\0\0\0\377D\"\0\377\203\334n\0\377\3\303a\0\377\0\0\0\377" \
- "D\"\0\377\202\334n\0\377\4\332m\0\3773\31\0\377\0\0\0\377F#\0\377\202" \
- "\235N\0\377\4I$\0\377\27\13\0\377\11\4\0\377\32\15\0\377\237\334n\0\377" \
- "\232\336o\0\377\3\332m\0\377y<\0\377\26\13\0\377\204\0\0\0\377\2)\24" \
- "\0\377\231L\0\377\205\336o\0\377\5\264Z\0\377\0\0\0\377R)\0\377\211D" \
- "\0\377\14\6\0\377\202\0\0\0\377\2\6\3\0\377o7\0\377\205\336o\0\377\2" \
- "\200@\0\377\26\13\0\377\204\0\0\0\377\2\26\13\0\377p8\0\377\203\336o" \
- "\0\377\3\264Z\0\377\0\0\0\377R)\0\377\205\336o\0\377\2(\24\0\377\2\1" \
- "\0\377\202\336o\0\377\3\327k\0\377\0\0\0\377\32\15\0\377\211\336o\0\377" \
- "\3R)\0\377\0\0\0\377\233M\0\377\204\336o\0\377\3\325j\0\377W+\0\377\4" \
- "\2\0\377\203\0\0\0\377\2;\35\0\377\302a\0\377\203\336o\0\377\3\264Z\0" \
- "\377\0\0\0\377R)\0\377\204\336o\0\377\10\220H\0\377\3\1\0\377\32\15\0" \
- "\377\300`\0\377\336o\0\377\325j\0\377W+\0\377\4\2\0\377\203\0\0\0\377" \
- "\2;\35\0\377\302a\0\377\211\336o\0\377\1g3\0\377\210\0\0\0\377\1=\36" \
- "\0\377\205\336o\0\377\2\232M\0\377\30\14\0\377\203\0\0\0\377\2""4\32" \
- "\0\377\277_\0\377\206\336o\0\377\2\232M\0\377\30\14\0\377\203\0\0\0\377" \
- "\2""4\32\0\377\277_\0\377\205\336o\0\377\4\274^\0\377\0\0\0\377\26\13" \
- "\0\377\333m\0\377\210\336o\0\377\3\36\17\0\377\0\0\0\377\260X\0\377\202" \
- "\336o\0\377\1g3\0\377\210\0\0\0\377\1=\36\0\377\212\336o\0\377\3y<\0" \
- "\377\0\0\0\377\260X\0\377\211\336o\0\377\3L&\0\377\0\0\0\377\202A\0\377" \
- "\210\336o\0\377\6\77\37\0\377\0\0\0\377\225J\0\377\336o\0\377\311d\0" \
- "\3773\31\0\377\203\0\0\0\377\4/\27\0\377\300`\0\377\15\6\0\377\36\17" \
- "\0\377\204\336o\0\377\11\334n\0\377y<\0\377!\20\0\377\5\2\0\377\27\13" \
- "\0\377`0\0\377\323i\0\377\10\4\0\377'\23\0\377\204\336o\0\377\2\311d" \
- "\0\3773\31\0\377\203\0\0\0\377\4/\27\0\377\300`\0\377\15\6\0\377\36\17" \
- "\0\377\202\336o\0\377\2I$\0\377\7\3\0\377\204\0\0\0\377\2/\27\0\377\264" \
- "Z\0\377\204\336o\0\377\3\274^\0\377A\40\0\377\16\7\0\377\202\0\0\0\377" \
- "\1\215F\0\377\207\336o\0\377\3\236O\0\377>\37\0\377\11\4\0\377\204\0" \
- "\0\0\377\3\14\6\0\377_/\0\377\322i\0\377\203\336o\0\377\3\264Z\0\377" \
- "\0\0\0\377R)\0\377\205\336o\0\377\2(\24\0\377\2\1\0\377\202\336o\0\377" \
- "\3\335n\0\377`0\0\377\2\1\0\377\202\0\0\0\377\5\6\3\0\377d2\0\377\214" \
- "F\0\377\0\0\0\377|>\0\377\202\336o\0\377\5\264Z\0\377\0\0\0\377R)\0\377" \
- "\211D\0\377\14\6\0\377\202\0\0\0\377\2\6\3\0\377o7\0\377\204\336o\0\377" \
- "\2I$\0\377\7\3\0\377\204\0\0\0\377\2/\27\0\377\264Z\0\377\203\336o\0" \
- "\377\3\264Z\0\377\0\0\0\377R)\0\377\205\336o\0\377\2(\24\0\377\2\1\0" \
- "\377\203\336o\0\377\3\325j\0\377W+\0\377\4\2\0\377\203\0\0\0\377\2;\35" \
- "\0\377\302a\0\377\205\336o\0\377\3\274^\0\377A\40\0\377\16\7\0\377\202" \
- "\0\0\0\377\1\215F\0\377\207\336o\0\377\1\327k\0\377\205\0\0\0\377\4\3" \
- "\1\0\377\26\13\0\377H$\0\377\250T\0\377\204\336o\0\377\2\311d\0\3773" \
- "\31\0\377\203\0\0\0\377\4/\27\0\377\300`\0\377\15\6\0\377\36\17\0\377" \
- "\203\336o\0\377\3\305b\0\377\0\0\0\377D\"\0\377\203\336o\0\377\3\305" \
- "b\0\377\0\0\0\377D\"\0\377\203\336o\0\377\2\316g\0\377B!\0\377\203\0" \
- "\0\0\377\4#\21\0\377\265Z\0\377\20\10\0\377\32\15\0\377\237\336o\0\377" \
- "\234\340p\0\377\5\337o\0\377\274^\0\377\245R\0\377\250T\0\377\307c\0" \
- "\377\207\340p\0\377\10\265Z\0\377\0\0\0\377S)\0\377\340p\0\377\330l\0" \
- "\377\257W\0\377\252U\0\377\322i\0\377\207\340p\0\377\5\337o\0\377\274" \
- "^\0\377\246S\0\377\251T\0\377\303a\0\377\246\340p\0\377\4\322i\0\377" \
- "\255V\0\377\247S\0\377\310d\0\377\223\340p\0\377\4\322i\0\377\255V\0" \
- "\377\247S\0\377\310d\0\377\233\340p\0\377\4\336o\0\377\266[\0\377\247" \
- "S\0\377\303a\0\377\211\340p\0\377\4\336o\0\377\266[\0\377\247S\0\377" \
- "\303a\0\377\254\340p\0\377\3z=\0\377\0\0\0\377\262Y\0\377\232\340p\0" \
- "\377\3\274^\0\377\246S\0\377\275^\0\377\216\340p\0\377\3\301`\0\377\0" \
- "\0\0\377F#\0\377\206\340p\0\377\3\274^\0\377\246S\0\377\275^\0\377\207" \
- "\340p\0\377\5\334n\0\377\273]\0\377\246S\0\377\250T\0\377\306c\0\377" \
- "\225\340p\0\377\2\334n\0\377\274^\0\377\202\246S\0\377\2\272]\0\377\334" \
- "n\0\377\223\340p\0\377\4\315f\0\377\247S\0\377\255V\0\377\324j\0\377" \
- "\206\340p\0\377\10\265Z\0\377\0\0\0\377S)\0\377\340p\0\377\330l\0\377" \
- "\257W\0\377\252U\0\377\322i\0\377\206\340p\0\377\5\334n\0\377\273]\0" \
- "\377\246S\0\377\250T\0\377\306c\0\377\224\340p\0\377\4\322i\0\377\255" \
- "V\0\377\247S\0\377\310d\0\377\244\340p\0\377\3\274^\0\377\246S\0\377" \
- "\275^\0\377\225\340p\0\377\3\304b\0\377\246S\0\377\271\\\0\377\243\340" \
- "p\0\377\250\342q\0\377\3\267[\0\377\0\0\0\377T*\0\377\377\342q\0\377" \
- "\253\342q\0\377\3{=\0\377\0\0\0\377\263Y\0\377\245\342q\0\377\1\334n" \
- "\0\377\204\342q\0\377\4\341p\0\377S)\0\377\0\0\0\377\211D\0\377\315\342" \
- "q\0\377\3\267[\0\377\0\0\0\377T*\0\377\377\342q\0\377\213\342q\0\377" \
- "\250\343q\0\377\3\270[\0\377\0\0\0\377T*\0\377\377\343q\0\377\253\343" \
- "q\0\377\3{=\0\377\0\0\0\377\264Y\0\377\245\343q\0\377\11b1\0\377E\"\0" \
- "\377\201@\0\377\224J\0\377\202A\0\3777\33\0\377\0\0\0\377*\25\0\377\334" \
- "m\0\377\315\343q\0\377\3\270[\0\377\0\0\0\377T*\0\377\377\343q\0\377" \
- "\213\343q\0\377\250\345r\0\377\3\271\\\0\377\0\0\0\377U*\0\377\377\345" \
- "r\0\377\253\345r\0\377\3|>\0\377\0\0\0\377\266Z\0\377\245\345r\0\377" \
- "\2\214E\0\377\30\14\0\377\203\0\0\0\377\3\13\5\0\377Y,\0\377\325j\0\377" \
- "\316\345r\0\377\3\271\\\0\377\0\0\0\377U*\0\377\377\345r\0\377\213\345" \
- "r\0\377\250\347s\0\377\3\340o\0\377\302`\0\377\320g\0\377\377\347s\0" \
- "\377\253\347s\0\377\3\233M\0\377@\40\0\377\305b\0\377\247\347s\0\377" \
- "\4\327k\0\377\306b\0\377\314e\0\377\344q\0\377\320\347s\0\377\3\340o" \
- "\0\377\302`\0\377\320g\0\377\377\347s\0\377\213\347s\0\377\377\351t\0" \
- "\377\377\351t\0\377\377\351t\0\377\343\351t\0\377\377\353u\0\377\377" \
- "\353u\0\377\377\353u\0\377\343\353u\0\377\377\355v\0\377\377\355v\0\377" \
- "\377\355v\0\377\343\355v\0\377")
+ "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0" \
+ "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0" \
+ "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0" \
+ "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\257\0\0\0\204\1\1\0\203" \
+ "\2\2\1\214\3\3\1\202\2\2\1\203\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\310" \
+ "\0\0\0\3\1\1\0\2\2\1\3\3\1\202\4\3\1\202\5\4\1\203\5\4\2\205\6\5\2\202" \
+ "\7\6\2\204\6\5\2\203\5\4\2\202\5\4\1\202\4\3\1\202\3\3\1\1\2\2\1\202" \
+ "\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\300\0\0\0\7\1\1\0\3\3\1\4\3\1\5" \
+ "\4\2\6\5\2\7\6\2\10\7\3\202\11\10\3\202\12\11\3\203\13\11\3\210\14\12" \
+ "\4\203\13\11\3\1\12\11\3\202\11\10\3\1\10\7\3\202\7\6\2\4\6\5\2\5\4\2" \
+ "\5\4\1\4\3\1\202\3\3\1\2\2\2\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\272" \
+ "\0\0\0\12\1\1\0\3\3\1\5\4\1\6\5\2\10\7\3\12\11\3\13\11\3\15\13\4\16\14" \
+ "\4\17\15\5\202\17\15\4\1\20\16\4\203\21\16\5\210\22\17\5\202\21\16\5" \
+ "\202\20\16\4\15\17\15\4\17\15\5\16\14\4\15\13\4\14\12\4\13\11\3\12\11" \
+ "\3\11\10\3\10\7\3\7\6\2\6\5\2\5\4\2\5\4\1\202\3\3\1\202\1\1\0\377\0\0" \
+ "\0\377\0\0\0\377\0\0\0\265\0\0\0\16\2\2\1\4\3\1\6\5\2\10\7\3\13\11\3" \
+ "\15\13\4\17\15\4\20\16\4\22\17\5\23\20\5\24\21\5\25\22\6\26\23\6\27\24" \
+ "\6\203\30\25\7\210\31\25\7\202\30\25\7\202\27\24\6\24\26\23\6\25\22\6" \
+ "\24\21\5\23\20\5\22\17\5\21\16\5\20\16\4\17\15\4\16\14\4\15\13\4\14\12" \
+ "\4\12\11\3\11\10\3\7\6\2\6\5\2\5\4\1\4\3\1\3\3\1\2\2\1\1\1\0\377\0\0" \
+ "\0\377\0\0\0\377\0\0\0\261\0\0\0\15\3\3\1\5\4\1\7\6\2\12\11\3\15\13\4" \
+ "\20\16\4\22\17\5\25\22\6\27\24\6\30\25\7\31\25\7\33\27\10\34\30\10\202" \
+ "\35\31\10\1\36\32\11\204\37\33\11\204\40\33\11\203\37\33\11\202\36\32" \
+ "\11\4\35\31\10\34\30\10\33\27\10\32\26\7\202\31\25\7\20\30\25\7\27\24" \
+ "\6\25\22\6\24\21\5\22\17\5\21\16\5\20\16\4\17\15\5\15\13\4\13\11\3\12" \
+ "\11\3\10\7\3\6\5\2\5\4\2\4\3\1\3\3\1\202\1\1\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\255\0\0\0\15\3\3\1\5\4\2\10\7\3\14\12\4\17\15\4\22\17\5\25\22" \
+ "\6\30\25\7\32\26\7\34\30\10\37\33\11!\34\11\"\35\12\202#\36\12\202$\37" \
+ "\13\202%!\13\210&!\13\1%!\13\202$\37\13\203#\36\12\27\"\35\12!\34\11" \
+ "\40\33\11\37\33\11\35\31\10\34\30\10\32\26\7\31\25\7\30\25\7\26\23\6" \
+ "\24\21\5\23\20\5\21\16\5\17\15\4\16\14\4\14\12\4\12\11\3\10\7\3\6\5\2" \
+ "\5\4\1\4\3\1\2\2\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\251\0\0\0\22\1" \
+ "\1\0\3\3\1\5\4\2\11\10\3\15\13\4\20\16\4\24\21\5\30\25\7\32\26\7\36\32" \
+ "\11!\34\11#\36\12%!\13&!\13'#\14($\14)%\14*%\15\203+&\15\210,'\15\202" \
+ "+&\15\1*%\15\202)%\14\2($\14'#\14\202&!\13\26%!\13$\37\13#\36\12\"\35" \
+ "\12\40\33\11\36\32\11\34\30\10\32\26\7\31\25\7\27\24\6\25\22\6\23\20" \
+ "\5\21\16\5\17\15\4\16\14\4\14\12\4\12\11\3\7\6\2\5\4\2\4\3\1\3\3\1\1" \
+ "\1\0\377\0\0\0\377\0\0\0\377\0\0\0\246\0\0\0\21\1\1\0\3\3\1\5\4\2\11" \
+ "\10\3\16\14\4\21\16\5\25\22\6\31\25\7\35\31\10!\34\11#\36\12&!\13)%\14" \
+ "+&\15,'\16-(\16.)\16\202/*\16\2020+\17\2121,\17\2020+\17\1/*\16\202." \
+ ")\16\33-(\16,'\16,'\15+&\15)%\14($\14'#\14&!\13$\37\13#\36\12\"\35\12" \
+ "\40\33\11\35\31\10\33\27\10\31\25\7\30\25\7\25\22\6\23\20\5\21\16\5\17" \
+ "\15\4\15\13\4\13\11\3\11\10\3\6\5\2\5\4\1\3\3\1\1\1\0\377\0\0\0\377\0" \
+ "\0\0\377\0\0\0\244\0\0\0\20\3\3\1\5\4\2\11\10\3\16\14\4\22\17\5\26\23" \
+ "\6\32\26\7\37\33\11#\36\12&!\13)%\14,'\15.)\16""0+\17""2-\17""3-\17\202" \
+ "4.\20\2035/\17\21260\20\2035/\17\1""4.\20\2023-\17\34""2-\17""1,\17""0" \
+ "+\17/*\16.)\16,'\16,'\15*%\15)%\14'#\14&!\13$\37\13#\36\12\40\33\11\36" \
+ "\32\11\33\27\10\31\25\7\27\24\6\25\22\6\22\17\5\20\16\4\16\14\4\14\12" \
+ "\4\11\10\3\7\6\2\5\4\1\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\241" \
+ "\0\0\0\16\3\3\1\5\4\2\11\10\3\15\13\4\21\16\5\27\24\6\33\27\10\37\33" \
+ "\11#\36\12&!\13+&\15-(\16""1,\17""4.\20\20260\20\20371\20\20482\20\207" \
+ "92\21\20582\20\20271\20\20360\20\34""5/\17""4.\20""3-\17""2-\17""1,\17" \
+ "/*\16.)\16,'\16+&\15)%\14'#\14&!\13$\37\13#\36\12\40\33\11\35\31\10\32" \
+ "\26\7\31\25\7\26\23\6\23\20\5\21\16\5\17\15\5\14\12\4\12\11\3\7\6\2\5" \
+ "\4\1\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\236\0\0\0\17\2\2\1\5\4" \
+ "\1\10\7\3\15\13\4\21\16\5\26\23\6\32\26\7\37\33\11$\37\13'#\14,'\15/" \
+ "*\16""3-\17""60\20""71\20\23292\21\20282\20\1""71\20\20260\20\31""5/" \
+ "\17""4.\20""2-\17""0+\17/*\16-(\16,'\15)%\14'#\14&!\13#\36\12\"\35\12" \
+ "\37\33\11\34\30\10\31\25\7\27\24\6\24\21\5\21\16\5\17\15\5\14\12\4\11" \
+ "\10\3\7\6\2\5\4\1\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\233\0\0\0" \
+ "\33\1\1\0\4\3\1\7\6\2\14\12\4\20\16\4\25\22\6\32\26\7\37\33\11$\37\13" \
+ "'#\14,'\15""0+\17""4.\20A;\34NH,YT8a[BjeMzt\\\221\214q\243\236\177\251" \
+ "\245\205\273\265\223\307\302\242\322\315\252\320\312\241\320\313\241" \
+ "\202\345\340\261\14\344\337\257\344\336\252\336\327\241\311\300\214\305" \
+ "\275\204\303\273\201\254\243j\237\227`\217\206R}uF^V-JC\35\20592\21\202" \
+ "82\20\1""71\20\20260\20\26""4.\20""2-\17""1,\17/*\16,'\16+&\15)%\14&" \
+ "!\13$\37\13#\36\12\40\33\11\34\30\10\31\25\7\27\24\6\24\21\5\21\16\5" \
+ "\17\15\5\14\12\4\11\10\3\6\5\2\4\3\1\2\2\1\377\0\0\0\377\0\0\0\377\0" \
+ "\0\0\232\0\0\0.\3\3\1\6\5\2\13\11\3\17\15\4\24\21\5\31\25\7\37\33\11" \
+ "#\36\12""30\31LH3daLto\\\204\200n\211\206s\210\205r\210\204r\226\222" \
+ "~\222\216z\232\226\200\211\206r\206\201o\205\200n\204\200n\203\177l\203" \
+ "~k\202}k\201|j\200|i\212\207q\223\217w\233\226}\247\241\206\265\261\222" \
+ "\300\273\232\320\313\246\345\340\264\344\337\256\344\336\247\344\335" \
+ "\241\343\333\232\343\332\225\332\320\215\271\260t\232\221ZwpAOH#\204" \
+ "92\21\2""82\20""71\20\20260\20\25""4.\20""2-\17""0+\17.)\16,'\15*%\15" \
+ "'#\14&!\13#\36\12\40\33\11\35\31\10\31\25\7\27\24\6\24\21\5\21\16\5\16" \
+ "\14\4\13\11\3\10\7\3\5\4\2\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0" \
+ "\227\0\0\0""3\2\2\1\5\4\1\11\10\3\16\14\4\23\20\5#\37\22B\77""1`]Oxu" \
+ "h\204\201t\206\203u\210\204t\210\205s\210\205r\210\204r\210\203r\212" \
+ "\206s\244\240\210\277\272\235\277\273\235\262\256\222\235\230\201\203" \
+ "\177l\203~k\202}k\201|j\200|i\200{g\177{g~zf}ye~ze}yd|xd{wc{wazua\216" \
+ "\211q\241\235\200\272\264\222\324\317\250\345\340\261\344\336\251\344" \
+ "\335\240\343\333\231\343\332\225\343\332\224\323\311\206\252\241g|tD" \
+ "JC\35\20392\21\30""82\20""71\20""60\20""5/\17""3-\17""1,\17/*\16,'\16" \
+ "+&\15($\14&!\13#\36\12\40\33\11\35\31\10\31\25\7\26\23\6\23\20\5\20\16" \
+ "\4\15\13\4\12\11\3\7\6\2\5\4\1\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0" \
+ "\0\0\224\0\0\0\22\1\1\0\3\3\1\7\6\2\27\25\20@>7caX~|t\177}s\201~r\203" \
+ "\200s\205\202s\207\203s\210\204s\210\204r\210\203r\207\203q\250\243\212" \
+ "\337\333\270\202\346\342\275\202\346\342\274\16\346\341\274\331\324\261" \
+ "\246\243\210\200|i\200{g\177{g~zf}ye~ze}yd|xd{wc{wazua\202yu`\21xs^x" \
+ "r^wr]vq\\\177zb\232\225y\276\271\225\334\327\254\344\337\255\344\335" \
+ "\243\343\333\231\343\332\225\343\332\224\343\332\223\277\267w\216\206" \
+ "QQJ#\20392\21\26""82\20""71\20""60\20""4.\20""2-\17/*\16-(\16+&\15($" \
+ "\14&!\13#\36\12\37\33\11\34\30\10\31\25\7\25\22\6\22\17\5\17\15\5\14" \
+ "\12\4\10\7\3\5\4\2\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\223\0\0" \
+ "\0\25\5\5\4.-+]\\Ywvryxr|zr~{r\177}r\201~r\204\200r\206\202r\207\203" \
+ "r\210\203r\207\203q\206\202p\277\273\236\346\342\276\346\342\275\346" \
+ "\342\276\346\342\275\346\341\276\204\346\341\275\13\217\212u~zf}ye~z" \
+ "e}yd{xc{wazw`yt_xt^xs_\202xr^\5wr]vq\\up[uo[toZ\202soY\15rnW\220\213" \
+ "n\266\260\214\333\326\252\344\336\252\344\335\240\343\333\230\343\332" \
+ "\225\343\332\224\343\332\222\301\271x\207\177KH@\33\20292\21\25""82\20" \
+ "71\20""60\20""5/\17""2-\17/*\16-(\16+&\15'#\14%!\13\"\35\12\37\33\11" \
+ "\33\27\10\30\25\7\24\21\5\20\16\4\16\14\4\12\11\3\7\6\2\5\4\1\2\2\1\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\220\0\0\0\25\21\21\21BBAjjittqutpwupyxq|z" \
+ "q~|q\177}p\202~q\204\200q\206\202p\207\203p\206\202p\206\201o\274\270" \
+ "\234\346\342\276\346\342\277\346\342\276\346\341\276\205\346\342\276" \
+ "\20\324\317\257}ye~ze}yd{xczwayt`xs_vr^uq]tp]tp\\up]tp\\to[toZ\203so" \
+ "Y\21rnWrmWqmVplUokTplU\224\217q\303\275\226\344\337\257\344\335\245\343" \
+ "\333\232\343\332\225\343\332\224\343\332\223\340\327\217\252\241ef^2" \
+ "\20392\21\24""82\20""60\20""5/\17""2-\17/*\16,'\16*%\15'#\14$\37\13!" \
+ "\34\11\35\31\10\31\25\7\26\23\6\22\17\5\17\15\4\14\12\4\10\7\3\5\4\2" \
+ "\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\214\0\0\0\2\27\27\27LLL\202" \
+ "qqq\22rqptsputowuozwo|yo~{p\200}o\202~o\204\200o\206\202o\206\201o\205" \
+ "\200n\243\237\210\346\342\277\346\342\300\346\342\277\346\342\300\205" \
+ "\346\342\277\22\346\342\276\266\261\225}yd|xd{wayuaxs_vq^tp^sp\\rn[q" \
+ "nZpmZqnYqmYqmXqmWqmV\202pmV\24pmUplUokToiSnhRmhQlgPlfOzuZ\255\247\203" \
+ "\336\330\251\344\336\247\343\334\234\343\333\226\343\332\224\343\332" \
+ "\223\343\332\222\305\274{wo@;4\23\20292\21\23""82\20""60\20""4.\20""1" \
+ ",\17.)\16,'\15)%\14&!\13#\36\12\37\33\11\33\27\10\30\25\7\24\21\5\20" \
+ "\16\4\15\13\4\11\10\3\6\5\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0" \
+ "\211\0\0\0\24\31\31\31RRRqqqpppoooppoqqnsrntsnwunywn|yn}{n\200}n\202" \
+ "~n\204\200n\205\200n\204\200n\212\206r\337\333\273\210\346\342\300\26" \
+ "\346\342\277\346\342\300\235\230\200{wczw`yt_ws_tp^sp\\qn[olZmiYlhXl" \
+ "hWkgWkgVkgUlhUlhTlgUlgTlgR\202mhR\23mhQlgPlfOkfOjeNieMjeMohP\236\230" \
+ "v\333\325\246\344\336\250\343\334\234\343\333\226\343\332\224\343\332" \
+ "\223\343\332\222\320\307\203\177vE>7\25\20292\21\22""71\20""60\20""4" \
+ ".\20""0+\17-(\16+&\15'#\14$\37\13!\34\11\35\31\10\31\25\7\26\23\6\21" \
+ "\16\5\16\14\4\12\11\3\7\6\2\4\3\1\2\2\1\377\0\0\0\377\0\0\0\377\0\0\0" \
+ "\206\0\0\0\21\20\20\20LLLqqqpppooonnnnnmonmppmrqmtsmvtlywm|ym}{m\200" \
+ "}m\202~m\202\203\177l\2\203~k\267\264\230\202\346\342\300\206\346\342" \
+ "\301\15\346\342\300\346\342\301\346\342\300\210\203mzuaxt^vr^to\\rn[" \
+ "olZmiYjgWifW\202hdV\11gdUgcTgcSgdSgdRhdQgdPhdPidO\202ieO\2ieNjeN\202" \
+ "jeM\17idLhbKgcJgaIkfL\235\227u\333\324\245\344\335\246\343\333\232\343" \
+ "\333\226\343\332\224\343\332\223\343\332\222\316\304\200yqA\20292\21" \
+ "\22""82\20""71\20""5/\17""2-\17/*\16,'\16)%\14&!\13#\36\12\37\33\11\32" \
+ "\26\7\27\24\6\23\20\5\17\15\4\13\11\3\10\7\3\5\4\1\2\2\1\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\203\0\0\0\7\6\6\6\77\77\77mmmpppooonnnmmm\202lll\16" \
+ "mmkpnlrqltslvtkywk{yk}{l\177|k\202~k\203~k\202}k\213\207q\340\335\275" \
+ "\202\346\342\302\1\346\342\301\204\346\342\302\202\346\342\301\22\345" \
+ "\342\301\341\336\275yu`xs^vr]to[rnZnkYlhWjgWgcUeaTc`Sb_R`]Qa^Qa^Pa^O" \
+ "\202a_N\14b_Mb`Mc`Mc_LdaLeaLe`KfaJgcJgcIgaIfaH\202e`G\10d_FidJ\246\240" \
+ "{\340\330\247\344\335\243\343\333\230\343\332\225\343\332\224\202\343" \
+ "\332\222\2\305\274zc[0\20292\21\22""82\20""60\20""4.\20""1,\17-(\16+" \
+ "&\15'#\14#\36\12\40\33\11\34\30\10\30\25\7\24\21\5\20\16\4\14\12\4\10" \
+ "\7\3\5\4\2\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\3###dddooo\202n" \
+ "nn\24mmmlllkkkjjjkkjllioniqojtrjvsjyvj{yj}{j\177{j\201}k\201|j\200|i" \
+ "\261\255\223\346\342\302\346\342\303\203\346\342\302\1\346\342\303\205" \
+ "\346\342\302\15\322\314\257xr^wr]tp\\rnZnkXkgVheVebTb_R`]Q^[P\\ZO\202" \
+ "[XM\17[XL\\XL\\YL]YL]ZL^ZK^[J^[I_[I`[I`\\Ha]Hb]Hb^Gc_F\202d_F\17d_Ec" \
+ "^Db]Da[CqkO\274\266\213\345\336\250\343\334\235\343\333\227\343\332\225" \
+ "\343\332\223\343\332\222\343\332\221\254\242fMF\40\20292\21\21""71\20" \
+ "5/\17""2-\17/*\16,'\15($\14$\37\13\"\35\12\35\31\10\31\25\7\25\22\6\21" \
+ "\16\5\15\13\4\11\10\3\5\4\2\3\3\1\1\1\0\377\0\0\0\377\0\0\0\374\0\0\0" \
+ "\4\11\11\11JJJooonnn\202mmm\2lllkkk\202jjj\17jjijihlkhmlgpohsqivsixu" \
+ "h{wi~{i\177{i\200|i\200{g\200{i\331\325\266\205\346\342\303\206\346\343" \
+ "\303\15\303\300\242vq\\up[soZolXkgVheUeaSa^Q^[O[XNXVMVTL\202USK\202V" \
+ "SJ\4VSIVTHWTHWTG\202YVG\15ZUFZVFVR\77RM:TP:UP:VQ:WR9XS:YU9YT8ZU9`[A\202" \
+ "_Z@\6\207\201_\326\316\236\344\335\244\343\333\232\343\333\226\343\332" \
+ "\224\202\343\332\222\2\334\321\212\201yF\20292\21\21""82\20""60\20""4" \
+ ".\20""0+\17,'\16)%\14&!\13#\36\12\36\32\11\32\26\7\26\23\6\21\16\5\16" \
+ "\14\4\12\11\3\6\5\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\372\0\0\0\5###ff" \
+ "fnnnmmmlll\202kkk\202jjj\1iii\202hhh\17iigjjfmlgpngsqgurfxuhzwh}zh~{" \
+ "h\177{g~zf\232\226\200\346\342\303\346\342\304\211\346\343\304$\346\342" \
+ "\304\270\263\231uo[soYqmWmjVieTdaRa^Q]ZNYVMVTLSQKPOIOMHONHOMGOMFMKCD" \
+ "B896+1-!-*\34(%\24&\"\17#\36\12%!\13'#\14)%\14,'\15-(\16""0+\17""3-\17" \
+ "5/\17""71\20""82\20\20292\21\15>7\27C<\35NG(\255\245w\345\335\243\343" \
+ "\333\233\343\333\227\343\332\225\343\332\223\343\332\222\343\332\221" \
+ "\271\260pQJ#\20292\21\20""71\20""5/\17""1,\17-(\16+&\15&!\13#\36\12\37" \
+ "\33\11\32\26\7\27\24\6\22\17\5\16\14\4\12\11\3\6\5\2\4\3\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\367\0\0\0\6\3\3\3===nnnmmmlllkkk\203jjj\22iiihhhggg" \
+ "fffggfhgejieljeomfrpfurewtfzwf}zf}ze}ye~ze\272\267\234\204\346\343\304" \
+ "\202\346\343\305\1\346\343\304\202\346\343\305'\346\342\304\346\342\305" \
+ "\346\342\304\255\251\216soYsnWokVkgTgdSb_P^[OXVLUSKQOIMLHJJFA@<0/+!\37" \
+ "\32\24\23\15\16\14\4\17\15\4\21\16\5\23\20\5\25\22\6\27\24\6\31\25\7" \
+ "\34\30\10\37\33\11\"\35\12$\37\13&!\13)%\14,'\15.)\16""0+\17""3-\17""6" \
+ "0\20""71\20\20592\21\6ph=\326\315\217\343\333\231\343\333\227\343\333" \
+ "\226\343\332\224\202\343\332\222\2\334\321\212wo\77\20292\21\20""71\20" \
+ "60\20""2-\17/*\16+&\15'#\14#\36\12\40\33\11\33\27\10\27\24\6\23\20\5" \
+ "\17\15\5\12\11\3\6\5\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\365\0\0\0\5\15" \
+ "\15\15VVVmmmlllkkk\202jjj\202iii\23hhhgggfffeeedddeedgfcihdkjdnldrod" \
+ "tpdwsdzve|yd}zd}yd|xd\331\326\271\214\346\343\305&\243\236\205rnWpmV" \
+ "mhUjfReaQ`\\NZXLVTKOLF750\36\35\31\14\13\10\4\3\1\5\4\1\5\4\2\6\5\2\10" \
+ "\7\3\12\11\3\13\11\3\15\13\4\17\15\4\21\16\5\23\20\5\26\23\6\31\25\7" \
+ "\33\27\10\36\32\11\"\35\12$\37\13&!\13)%\14,'\15.)\16""1,\17""4.\20""6" \
+ "0\20""82\20\20492\21\6KD\40\274\263z\344\333\231\343\333\230\343\333" \
+ "\226\343\332\224\202\343\332\222\24\343\331\220\252\240cA9\27""92\21" \
+ "82\20""60\20""3-\17""0+\17,'\15($\14$\37\13\40\33\11\34\30\10\30\25\7" \
+ "\23\20\5\17\15\5\13\11\3\6\5\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\363\0" \
+ "\0\0\4\33\33\33ffflllkkk\202jjj\1iii\202hhh\23gggfffeeedddcccccbdcbf" \
+ "ebhgcjhbmkbqncspcvrcyuc{xc|xd{wc\215\210s\215\346\343\305'\231\225|q" \
+ "mVokTkgShdPb`N\\XJDA3*'\33\22\20\7\11\10\3\5\4\1\1\1\0\0\0\0\1\1\0\2" \
+ "\2\1\3\3\1\4\3\1\5\4\1\6\5\2\10\7\3\12\11\3\14\12\4\16\14\4\20\16\4\22" \
+ "\17\5\25\22\6\30\25\7\33\27\10\36\32\11\"\35\12$\37\13'#\14*%\15,'\16" \
+ "/*\16""2-\17""5/\17""71\20\20492\21\34>7\25\231\220_\344\333\232\343" \
+ "\333\231\343\333\227\343\332\225\343\332\223\343\332\222\343\331\220" \
+ "\307\276yQJ#92\21""82\20""60\20""4.\20""0+\17,'\16($\14$\37\13!\34\11" \
+ "\34\30\10\30\25\7\23\20\5\17\15\5\12\11\3\6\5\2\4\3\1\1\1\0\377\0\0\0" \
+ "\377\0\0\0\361\0\0\0\3)))jjjkkk\202jjj\3iiihhhggg\202fff\4eeedddcccb" \
+ "bb\202aaa\21cb`edahgajiamj`pmbtpburaxtbzwa{wazua\246\240\211\346\343" \
+ "\306\346\343\305\346\343\306\346\343\305\202\346\343\306\1\346\343\305" \
+ "\206\346\343\306\15\223\216vokTmhRjeQ\\YCA='%!\15\34\30\10\26\23\6\17" \
+ "\15\4\11\10\3\5\4\1\1\1\0\205\0\0\0\27\1\1\0\2\2\1\3\3\1\5\4\1\6\5\2" \
+ "\10\7\3\13\11\3\15\13\4\17\15\4\22\17\5\25\22\6\31\25\7\33\27\10\37\33" \
+ "\11\"\35\12%!\13'#\14+&\15-(\16""1,\17""4.\20""60\20""82\20\20492\21" \
+ "\12yrF\340\327\226\343\333\231\343\333\227\343\332\225\343\332\223\343" \
+ "\332\222\343\332\221\334\321\210lc5\20292\21\16""60\20""4.\20""1,\17" \
+ ",'\16)%\14%!\13!\34\11\34\30\10\30\25\7\23\20\5\17\15\5\12\11\3\6\5\2" \
+ "\3\3\1\377\0\0\0\377\0\0\0\360\0\0\0\2""333kkk\202jjj\4iiihhhgggfff\202" \
+ "eee\4dddcccbbbaaa\202```\12``_aa^cb^fe`jh`lj_pm`soatq_ws`\202yu`\2xs" \
+ "^\277\274\241\204\346\343\306\210\346\343\307\16\346\343\306\212\205" \
+ "onhRYU:>9\35.)\16($\14#\36\12\34\30\10\25\22\6\17\15\5\11\10\3\5\4\1" \
+ "\1\1\0\210\0\0\0\25\1\1\0\3\3\1\4\3\1\5\4\2\10\7\3\12\11\3\15\13\4\17" \
+ "\15\4\22\17\5\26\23\6\31\25\7\34\30\10\37\33\11#\36\12&!\13)%\14,'\16" \
+ "/*\16""3-\17""60\20""71\20\20492\21\12c\\3\331\317\221\344\333\231\343" \
+ "\333\230\343\332\225\343\332\223\343\332\222\343\332\221\341\330\214" \
+ "\201yE\20292\21\16""71\20""5/\17""1,\17-(\16)%\14%!\13!\34\11\34\30\10" \
+ "\30\25\7\23\20\5\16\14\4\11\10\3\5\4\2\3\3\1\377\0\0\0\377\0\0\0\356" \
+ "\0\0\0\1AAA\202jjj\6iiihhhgggfffeeeddd\202ccc\2bbbaaa\202```\20___^^" \
+ "^__^`_\\ba]ec^if^kh^ol^qn_tp_vr^xs_xr^wr]\330\324\271\210\346\343\307" \
+ "\1\346\343\310\202\346\343\307\17\346\343\310\346\343\307vpUA;\33""6" \
+ "0\20""3-\17.)\16($\14#\36\12\33\27\10\25\22\6\17\15\5\10\7\3\4\3\1\1" \
+ "\1\0\212\0\0\0\24\1\1\0\2\2\1\4\3\1\5\4\2\10\7\3\12\11\3\15\13\4\20\16" \
+ "\4\23\20\5\27\24\6\31\25\7\35\31\10\"\35\12$\37\13'#\14+&\15.)\16""2" \
+ "-\17""5/\17""71\20\20492\21\12UN(\323\311\214\344\333\231\343\333\230" \
+ "\343\333\226\343\332\223\343\332\222\343\332\221\343\331\216\232\220" \
+ "V\20292\21\16""71\20""5/\17""2-\17-(\16)%\14%!\13!\34\11\33\27\10\27" \
+ "\24\6\22\17\5\16\14\4\11\10\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\354\0\0" \
+ "\0\11@@@jjjiiihhhgggfffeeedddccc\202bbb\1aaa\202```\21___^^^]]]\\\\\\" \
+ "]]\\`_\\a`[db\\ge\\kg[nk]qn^so\\vq]wr]vq\\~zc\203\346\343\307\2\346\343" \
+ "\310\346\343\307\207\346\343\310\17\346\342\303\345\341\274WQ/92\21""6" \
+ "0\20""3-\17-(\16'#\14\"\35\12\33\27\10\25\22\6\16\14\4\10\7\3\4\3\1\1" \
+ "\1\0\214\0\0\0\24\1\1\0\2\2\1\4\3\1\5\4\2\10\7\3\13\11\3\16\14\4\21\16" \
+ "\5\24\21\5\30\25\7\33\27\10\37\33\11#\36\12&!\13*%\15-(\16""1,\17""4" \
+ ".\20""60\20""82\20\20392\21\32NF\"\312\302\206\344\333\231\343\333\230" \
+ "\343\333\226\343\332\223\343\332\222\343\332\221\343\331\216\250\237" \
+ "a;4\23""92\21""71\20""5/\17""1,\17-(\16)%\14$\37\13\40\33\11\33\27\10" \
+ "\27\24\6\21\16\5\15\13\4\10\7\3\5\4\1\2\2\1\377\0\0\0\377\0\0\0\351\0" \
+ "\0\0\13\1\1\1BBBiiihhhgggfffeeedddcccbbbaaa\203```\23___^^^]]]\\\\\\" \
+ "[[[[[Z\\[Z^]Z`_ZcaZgd[jf[lj[pm\\so\\tp\\up[uo[\221\214v\206\346\343\310" \
+ "\2\346\343\311\346\343\310\202\346\343\311\2\346\343\305\346\341\276" \
+ "\202\346\341\274\14XQ092\21""60\20""3-\17-(\16'#\14\"\35\12\33\27\10" \
+ "\24\21\5\16\14\4\10\7\3\4\3\1\217\0\0\0\23\1\1\0\2\2\1\4\3\1\6\5\2\11" \
+ "\10\3\14\12\4\17\15\4\22\17\5\27\24\6\31\25\7\36\32\11\"\35\12%!\13)" \
+ "%\14,'\16""0+\17""3-\17""60\20""82\20\20392\21\32JC\36\312\302\207\344" \
+ "\333\231\343\333\230\343\333\226\343\332\223\343\332\222\343\332\221" \
+ "\343\331\216\254\242d>7\25""92\21""71\20""5/\17""1,\17,'\16($\14$\37" \
+ "\13\37\33\11\32\26\7\26\23\6\21\16\5\14\12\4\7\6\2\4\3\1\1\1\0\377\0" \
+ "\0\0\377\0\0\0\350\0\0\0\11>>>hhhgggfffeeedddcccbbbaaa\203```\30___^" \
+ "^^]]]\\\\\\[[[ZZZYYYYYXZYX\\\\X`^Yb`XfcYifYljYolZrnZsoZtoZsoY\244\241" \
+ "\211\346\343\310\346\343\311\346\343\310\204\346\343\311\5\347\343\311" \
+ "\347\343\307\346\342\301\346\341\275\346\342\275\202\346\342\276\14X" \
+ "Q092\21""60\20""3-\17-(\16'#\14\"\35\12\33\27\10\24\21\5\16\14\4\10\7" \
+ "\3\4\3\1\212\0\0\0\202\1\1\0\202\2\2\1\204\3\3\1\21\4\3\1\5\4\2\7\6\2" \
+ "\12\11\3\16\14\4\21\16\5\25\22\6\31\25\7\34\30\10!\34\11$\37\13'#\14" \
+ ",'\15/*\16""3-\17""60\20""82\20\20392\21\32KD\40\312\302\207\344\333" \
+ "\231\343\333\230\343\333\226\343\332\223\343\332\222\343\331\220\343" \
+ "\331\216\261\250g>7\25""92\21""71\20""5/\17""1,\17,'\16'#\14#\36\12\37" \
+ "\33\11\31\25\7\25\22\6\20\16\4\13\11\3\6\5\2\3\3\1\1\1\0\377\0\0\0\377" \
+ "\0\0\0\346\0\0\0\10""555gggfffeeedddcccbbbaaa\202```\1___\202^^^\6]]" \
+ "]\\\\\\[[[ZZZYYYXXX\202WWW\11YXV[ZV_]Wa_WebXheXjgXnkXqmX\203soY\1\271" \
+ "\265\233\203\346\343\311\204\347\343\312\3\346\343\305\346\342\277\346" \
+ "\342\276\204\346\342\277\14XQ092\21""60\20""3-\17-(\16'#\14\"\35\12\33" \
+ "\27\10\24\21\5\16\14\4\10\7\3\4\3\1\206\0\0\0\202\1\1\0\4\2\2\1\3\3\1" \
+ "\4\3\1\5\4\1\203\5\4\2\203\6\4\2\202\7\5\2\20\10\6\2\12\10\3\15\11\3" \
+ "\17\13\4\23\17\5\26\21\6\31\25\7\35\31\10!\34\11%\40\12*$\14-&\15""2" \
+ "+\16""5-\17""70\17:2\20\202;3\21\32:2\21LD\40\323\312\215\344\333\231" \
+ "\343\333\230\343\332\225\343\332\223\343\332\222\343\331\220\343\331" \
+ "\216\254\242b;4\23""92\21""71\20""4.\20""0+\17,'\15'#\14#\36\12\36\32" \
+ "\11\31\25\7\24\21\5\17\15\5\12\11\3\5\4\2\3\3\1\377\0\0\0\377\0\0\0\345" \
+ "\0\0\0\7+++fffeeedddcccbbbaaa\202```\2___^^^\202]]]\6\\\\\\[[[ZZZYYY" \
+ "XXXWWW\202VVV\13VVUWVTZXU][V`^UdaVgdVjgVmiWplVrnW\202rmW\2\305\301\250" \
+ "\346\343\311\203\347\343\312\3\347\343\313\346\343\310\346\342\302\202" \
+ "\346\342\277\202\346\342\300\203\346\342\301\14XQ092\21""60\20""3-\17" \
+ "-(\16'#\14\"\35\12\33\27\10\24\21\5\16\14\4\10\7\3\4\3\1\204\0\0\0\12" \
+ "\1\1\0\2\2\1\3\3\1\5\4\1\5\4\2\10\6\2\11\7\3\13\11\3\14\11\3\15\11\3" \
+ "\202\16\12\3\202\15\12\3\2\14\12\3\15\12\4\202\14\11\4\17\16\12\4\17" \
+ "\14\4\21\15\5\23\20\6\26\22\6\32\26\7\36\32\10\"\35\12&\40\13+%\14.(" \
+ "\16""2+\17""5.\20""81\20;3\21\203;4\21\12XQ*\333\321\222\344\333\231" \
+ "\343\333\230\343\332\225\343\332\223\343\332\222\343\331\220\343\331" \
+ "\215\243\230\\\20292\21\15""60\20""4.\20/*\16+&\15&!\13\"\35\12\34\30" \
+ "\10\30\25\7\22\17\5\16\14\4\11\10\3\5\4\1\2\2\1\377\0\0\0\377\0\0\0\343" \
+ "\0\0\0\1\36\36\36\202ddd\3cccbbbaaa\202```\4___^^^]]]\\\\\\\202[[[\4" \
+ "ZZZYYYXXXWWW\202VVV\20UUUTTTUUTVURXWT[YT`]Tc`UfcUjfUlhUokVpmUqmVplU\325" \
+ "\320\270\202\347\343\312\202\347\343\313\1\346\343\306\202\346\342\300" \
+ "\203\346\342\301\204\346\342\302\14XQ192\21""60\20""3-\17-(\16'#\14\"" \
+ "\35\12\33\27\10\24\21\5\16\14\4\10\7\3\4\3\1\203\0\0\0\13\2\2\1\3\3\1" \
+ "\5\3\1\10\6\2\13\11\3\16\12\3\17\13\4\20\15\4\21\16\5\23\17\5\24\17\6" \
+ "\202\24\20\6\1\25\21\6\202\24\20\6\23\23\17\5\22\17\5\21\16\5\21\15\4" \
+ "\21\16\5\23\17\5\24\17\5\27\22\6\30\23\6\34\26\7\40\32\10$\35\11(!\13" \
+ "+%\14""0)\16""4,\17""7/\17;2\20=4\21\202>5\21\6=5\21ia6\340\327\227\344" \
+ "\333\231\343\333\227\343\332\225\202\343\332\222\3\343\331\217\343\331" \
+ "\215\223\212Q\20292\21\15""60\20""3-\17.)\16*%\15&!\13!\34\11\33\27\10" \
+ "\27\24\6\21\16\5\15\13\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\341\0" \
+ "\0\0\5\17\17\17___cccbbbaaa\202```\5___^^^]]]\\\\\\[[[\202ZZZ\3YYYXX" \
+ "XWWW\202VVV\16UUUTTTSSSRRRSSRUUQWVRZXR_\\Ra^SeaSidSkgSmiT\202okT\2pl" \
+ "U\344\341\310\203\347\343\313\1\346\343\304\202\346\342\301\203\346\342" \
+ "\302\202\346\342\303\1\346\343\303\202\346\343\304\14ZT392\21""60\20" \
+ "3-\17-(\16'#\14\"\35\12\33\27\10\24\21\5\16\14\4\10\7\3\4\3\1\202\1\1" \
+ "\0\12\4\3\1\6\4\1\12\7\2\15\11\3\16\13\4\21\15\5\24\17\6\25\21\6\30\23" \
+ "\6\30\24\6\202\33\26\7\204\35\27\7\5\34\26\7\33\26\6\32\24\6\31\23\5" \
+ "\30\22\6\202\26\21\5\15\27\22\6\27\21\5\31\23\5\33\25\6\36\27\7\"\33" \
+ "\10%\36\11*\"\13-%\14""3*\16""5,\16""90\20<3\21\204\77""5\21\30\200x" \
+ "I\344\333\233\343\333\231\343\333\227\343\332\224\343\332\222\343\332" \
+ "\221\343\331\217\343\331\214xp=;3\21""92\20""60\20""2-\17-(\16)%\14$" \
+ "\37\13\40\33\11\32\26\7\25\22\6\20\16\4\13\11\3\6\5\2\3\3\1\377\0\0\0" \
+ "\377\0\0\0\340\0\0\0\4\4\4\4RRRbbbaaa\202```\7___^^^]]]\\\\\\[[[ZZZY" \
+ "YY\202XXX\1WWW\202VVV\27UUUTTTSSSRRRQQQPPPRQPSSOVUQYWP]ZP`]Qd`QhdRjf" \
+ "QmhRoiSnhRyt]\347\343\313\347\343\314\346\343\312\346\342\303\203\346" \
+ "\342\302\2\346\342\303\346\343\303\202\346\343\304\204\346\343\305\31" \
+ "b\\<92\21""60\20""3-\17-(\16'#\14\"\35\12\33\27\10\25\22\6\16\14\4\10" \
+ "\7\3\5\3\1\5\4\1\6\3\1\11\7\2\15\12\4\17\14\4\22\17\5\26\21\6\30\24\6" \
+ "\33\26\7\36\30\7\40\32\10\"\34\10#\34\11\204$\35\11\10$\35\12#\34\11" \
+ "\"\33\11!\32\11!\31\10\37\27\7\34\25\7\32\23\6\202\31\22\6\14\32\23\6" \
+ "\33\24\6\35\26\7\40\30\10\"\33\11&\36\12+\"\14/%\15""3*\17""7.\17;1\21" \
+ "\77""4\21\202@5\21\202A6\21\30\237\226a\344\333\232\343\333\231\343\333" \
+ "\226\343\332\224\343\332\222\343\331\220\343\331\216\340\326\207f].;" \
+ "4\21;2\20""6/\17""2,\17,'\16'#\14#\36\12\36\32\11\31\25\7\23\20\5\17" \
+ "\15\5\12\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\337\0\0\0\2===aaa\202`" \
+ "``\10___^^^]]]\\\\\\[[[ZZZYYYXXX\202WWW\202VVV\27UUUTTTSSSRRRQQQPPPO" \
+ "OONNNPONRQNUTOXVN\\YN`]Qc`PgcPiePkfQmhQlgP\203~h\347\343\314\346\343" \
+ "\310\202\346\342\302\2\346\342\303\346\343\303\202\346\343\304\206\346" \
+ "\343\305\34\346\343\306d^>92\21""60\20""3-\17-(\16($\14#\36\12\33\27" \
+ "\10\26\22\6\20\15\4\14\11\3\11\7\2\11\6\3\14\11\3\20\14\4\22\17\5\27" \
+ "\22\6\32\25\6\36\30\7!\33\10\"\33\11%\36\11'\40\12*\"\13+#\14,#\14-$" \
+ "\14\202-%\14\11-$\14,#\14+!\13*!\13(\37\12&\35\11$\34\11!\31\10\40\30" \
+ "\7\203\36\26\6\14\37\27\7\40\30\7!\31\10%\34\11*!\12,#\14""1'\15""5*" \
+ "\16""9.\20<2\21@5\21B7\22\202A6\22\31D;\26\301\271\200\344\333\232\343" \
+ "\333\230\343\333\226\343\332\223\343\332\222\343\331\220\343\331\215" \
+ "\326\313\177OF\36=5\21:2\21""70\17""3,\17-'\15'\"\13\"\35\12\34\30\10" \
+ "\27\24\6\22\17\5\15\13\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\335\0" \
+ "\0\0\1$$$\202```\11___^^^]]]\\\\\\[[[ZZZYYYXXXWWW\203VVV\32UUUTTTSSS" \
+ "RRRQQQPPPOOONNNMMMMMLNMLPOLSRLVTL[XM_[Oa_NebOidOjfPlfOkfO\214\207p\346" \
+ "\343\310\346\342\302\346\343\303\202\346\343\304\205\346\343\305\202" \
+ "\346\343\306\203\346\343\307\30lfG92\21""71\20""3-\17.)\16)$\14#\37\12" \
+ "\35\31\10\27\24\6\22\16\5\17\14\4\16\13\4\17\14\4\21\16\5\26\21\6\31" \
+ "\24\6\36\27\7!\32\10#\34\11'\40\13+\"\14-$\14/&\15""1(\15\2024*\16\203" \
+ "5*\16\30""5)\16""5*\16""4*\15""2(\15/%\14.$\13+!\13)\37\11&\34\11\"\31" \
+ "\7\40\27\7\40\30\7\40\27\6\40\30\7!\30\7#\32\10&\35\11*\40\12.%\14""4" \
+ "*\15""7,\17<0\20@3\21B6\22\203C7\22\5WL#\331\320\222\344\333\231\343" \
+ "\333\230\343\332\225\202\343\332\222\21\343\331\217\343\331\214\274\263" \
+ "lA9\24>5\21;2\20""6/\17""2+\17,&\15(\"\13\"\36\11\32\26\7\25\22\6\20" \
+ "\16\4\13\11\3\6\5\2\3\3\1\377\0\0\0\377\0\0\0\334\0\0\0\13\13\13\13Z" \
+ "ZZ___^^^]]]\\\\\\[[[ZZZYYYXXXWWW\202VVV\202UUU\10TTTSSSRRRQQQPPPOOON" \
+ "NNMMM\202LLL\12LLKLLJONJRQKVTLYVK^ZM`]LdaMgcM\202jeN\3jeM\204\177b\346" \
+ "\343\303\202\346\343\304\203\346\343\305\202\346\343\306\204\346\343" \
+ "\307\203\346\343\310\12rmO92\21""71\20""4-\20""0*\16+%\14$\40\12\37\32" \
+ "\11\31\26\7\26\21\6\202\23\17\5\16\24\17\5\30\22\5\34\26\6!\32\10$\34" \
+ "\11(\40\13,#\14/%\15""2(\15""5*\16""7,\17""9.\17:/\20;0\20\204=1\20\30" \
+ "<0\20;.\20""9-\17""7+\17""4)\16""3'\15""1%\14-\"\13*\37\12'\34\11$\31" \
+ "\10#\30\10\"\30\10#\30\10#\31\10&\34\11)\36\12-\"\13""2&\15""4)\15:." \
+ "\17>3\21@5\21C7\22\202D9\22\31D7\22yn@\344\333\233\344\333\231\343\333" \
+ "\227\343\332\224\343\332\222\343\332\221\343\331\216\343\331\212\233" \
+ "\220R@6\21>5\21<3\21""6.\17""1+\17,&\15&!\13!\34\11\31\25\7\23\20\5\16" \
+ "\14\4\11\10\3\5\4\1\2\2\1\377\0\0\0\377\0\0\0\333\0\0\0\11FFF^^^]]]\\" \
+ "\\\\[[[ZZZYYYXXXWWW\202VVV\2UUUTTT\202SSS\6RRRQQQPPPOOONNNMMM\202LLL" \
+ "\20KKKJJJJJIKKIMLHQOIUSJXUJ\\XK_\\Jc^KgcMieMidLJD&\205\177`\204\346\343" \
+ "\305\202\346\343\306\202\346\343\307\202\346\343\310\205\346\343\311" \
+ "\32zuX:2\21:1\20""6/\17""2+\17-&\15'\40\13\"\34\11\36\30\7\33\26\6\31" \
+ "\23\5\30\22\5\32\24\6\37\27\7\"\33\11(\37\12+!\13/%\14""4)\15""6,\17" \
+ "8.\17<0\20>2\21\77""4\20A5\21B6\21\203C6\21'C7\21C6\21A4\21@2\20\77""1" \
+ "\20<.\20""9,\17""7*\16""4(\15""1%\14-\"\12*\36\11(\34\10&\32\10$\30\10" \
+ "%\31\10'\33\10)\35\11+\40\12""0$\14""4(\15""9,\17</\20@3\21D7\22F9\23" \
+ "F:\23F:\22E8\22\256\243m\344\333\232\343\333\231\343\333\226\343\332" \
+ "\223\343\332\222\343\331\220\343\331\215\343\331\211ka0\202@5\21\14;" \
+ "2\21""6-\16""1*\16+%\14%\40\13\35\31\10\27\24\6\21\16\5\14\12\4\7\6\2" \
+ "\4\3\1\1\1\0\377\0\0\0\377\0\0\0\331\0\0\0\10(((]]]\\\\\\[[[ZZZYYYXX" \
+ "XWWW\202VVV\3UUUTTTSSS\202RRR\5QQQPPPOOONNNMMM\202LLL\22KKKJJJIIIHHH" \
+ "HHGIIGLKHONHSQHVSG[WI^[Ib]Ie`KgcJJD&92\21\215\210h\202\346\343\305\1" \
+ "\346\343\306\203\346\343\307\1\346\343\310\203\346\343\311\204\346\343" \
+ "\312\30\346\343\313\201|];4\21:2\21""70\20""3+\17/'\15*#\13$\35\11!\32" \
+ "\10\40\31\10\37\27\7\40\30\7!\31\10%\34\11*!\12.$\14""2(\15""5*\16:." \
+ "\17=1\20\77""3\21C6\21D7\22\202F9\22\202H:\23\203I;\23\31H:\22G9\22F" \
+ "8\22E7\21B5\20\77""2\20>1\20:.\17""6*\15""3'\14/#\13*\37\11)\35\10'\33" \
+ "\10&\33\10'\33\10)\35\10)\35\11-\"\12""2'\14""6*\15;.\17\77""2\17B5\21" \
+ "F8\22\202H;\23\31G9\23RE\35\326\314\217\344\333\232\343\333\230\343\332" \
+ "\225\343\332\222\343\332\221\343\331\217\343\331\214\324\310|NC\32A6" \
+ "\22@5\22;1\21""5,\16""1)\15*$\14\"\35\12\32\26\7\24\21\5\17\15\4\12\11" \
+ "\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\330\0\0\0\7\12\12\12WWW[[[ZZZYYYX" \
+ "XXWWW\202VVV\5UUUTTTSSSRRRQQQ\202PPP\3OOONNNMMM\202LLL\5KKKJJJIIIHHH" \
+ "GGG\202FFF\12HHEKJEMLFQOFVSFYVG]ZGa]Ib^HGA#\20292\21\2\225\220q\346\343" \
+ "\306\202\346\343\307\202\346\343\310\202\346\343\311\203\346\343\312" \
+ "\202\346\343\313\203\346\343\314\27\216\212k=5\21=4\21""90\20""6-\16" \
+ "1(\15+#\13(!\13&\36\12$\34\11$\33\11%\34\11'\35\11*\40\12/%\14""4*\15" \
+ "8,\17=0\20\77""3\20C7\21F8\22H:\23I;\23\202H:\23\202I;\23\203J;\23\203" \
+ "K<\24\27J:\23I:\23F7\22D5\21@2\20>/\20""9+\16""5'\15""1$\14-\40\12)\35" \
+ "\11*\34\11)\34\10*\34\11)\35\11,\40\12""0#\14""4'\14""9,\16>0\17@3\20" \
+ "E7\21H:\22\203I;\23\30\200sD\344\333\233\344\333\231\343\333\227\343" \
+ "\332\224\343\332\222\343\331\220\343\331\216\343\331\212\252\235\\C7" \
+ "\22A6\22\77""4\21:0\20""4+\16""0'\15*#\13\35\31\10\30\25\7\22\17\5\15" \
+ "\13\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\327\0\0\0\5;;;ZZZYYYXXX" \
+ "WWW\202VVV\6UUUTTTSSSRRRQQQPPP\202OOO\2NNNMMM\202LLL\7KKKJJJIIIHHHGG" \
+ "GFFFEEE\202DDD\12FFCIHDLKDPNDTQFXUF\\YF_[GE\77#71\20\20292\21\2\237\232" \
+ "|\346\343\307\202\346\343\310\202\346\343\311\202\346\343\312\202\346" \
+ "\343\313\203\346\343\314\203\346\343\315\12\231\223w\77""5\21>5\21;1" \
+ "\20""7.\17""3*\16/&\15,#\14+\"\13+!\12\202*!\12\16,\"\13""1%\15""5*\16" \
+ ":.\17>1\20B5\21F8\22I;\23H:\23I;\23J;\23WJ\"\200uR\257\247\207\202\307" \
+ "\301\243\4\310\302\241\274\264\222\237\226sth@\203N=\24\12L;\23I9\22" \
+ "F6\21C3\20\77/\20;,\16""6(\15""2$\14.\40\12+\36\11\203)\34\10#,\37\11" \
+ "/\"\12""3&\14""7*\15<.\17@2\20D6\21G9\22I:\23J;\23I;\23H:\23\274\262" \
+ "x\344\333\232\343\333\230\343\333\226\343\332\223\343\332\222\343\331" \
+ "\217\343\331\214\343\331\210od1D7\22C7\22\77""4\21:/\20""4*\17-%\14$" \
+ "\37\12\33\27\10\25\22\6\20\16\4\13\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0" \
+ "\0\326\0\0\0\4\25\25\25YYYXXXWWW\202VVV\10UUUTTTSSSRRRQQQPPPOOONNN\202" \
+ "MMM\202LLL\11KKKJJJIIIHHHGGGFFFEEEDDDCCC\202BBB\12DDAGFAKJCNLBSPCWSD" \
+ "[WEFA(5/\17""82\20\20292\21\2\247\241\204\346\343\310\202\346\343\311" \
+ "\202\346\343\312\1\346\343\313\203\346\343\314\203\346\343\315\1\346" \
+ "\343\316\202\347\343\316\32\244\237\203A6\21@5\22>3\21:/\20""5*\16""3" \
+ ")\15""1'\15""0%\14/%\13""0%\14""1%\14""2&\15""6*\16;.\17@2\20C6\21H:" \
+ "\22I:\23J;\23K<\24\\N(\250\240\201\344\341\307\346\343\311\346\343\310" \
+ "\202\346\343\307\1\346\343\306\202\346\343\305\17\346\343\304\326\321" \
+ "\261\211|XN=\24O>\24N=\23L;\22H8\21E5\21A1\17=-\16""8)\15""3$\13""0\40" \
+ "\11+\35\10\202*\34\10\11+\35\10-\37\11""2$\13""6(\15;+\16\77/\20C4\20" \
+ "H8\22J:\23\203K<\24\30_R&\340\330\230\344\333\231\343\333\227\343\332" \
+ "\224\343\332\222\343\332\221\343\331\216\343\331\212\316\301vK\77\26" \
+ "E8\22A6\21>3\21""8-\17""3*\16+#\13\36\32\11\31\25\7\22\17\5\16\14\4\10" \
+ "\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\325\0\0\0\2HHHWWW\202VVV\11UUUT" \
+ "TTSSSRRRQQQPPPOOONNNMMM\203LLL\11KKKJJJIIIHHHGGGFFFEEEDDDCCC\202BBB\202" \
+ "AAA\12BB\77ED@IHAMJ@ROBVRCFC-0+\17""5/\17""82\20\20292\21\2\251\245\210" \
+ "\346\343\311\202\346\343\312\1\346\343\313\202\346\343\314\203\346\343" \
+ "\315\1\346\343\316\202\347\343\316\203\347\344\317\1\260\253\220\202" \
+ "A6\22\6\77""4\21<0\20""8.\17""6+\16""4)\15""4)\16\2024(\15\6""5)\15""8" \
+ "+\16;.\17\77""2\20E6\21H:\23\202K<\24\4L=\24\203xU\341\337\306\346\343" \
+ "\313\202\346\343\312\202\346\343\311\3\346\343\310\346\343\307\346\343" \
+ "\306\203\346\343\305\31\346\343\304\311\301\237cR(Q\77\24Q>\24N<\23K" \
+ "9\22G5\21C1\20>,\16""9(\15""3#\13""0\40\12-\36\11,\35\11+\34\10-\36\10" \
+ "1\"\12""5&\14;+\15=.\17B2\17E6\21H9\22L;\23\202N=\24\30L=\24\246\232" \
+ "d\344\333\233\343\333\231\343\333\226\343\332\223\343\332\222\343\331" \
+ "\217\343\331\214\343\331\211\231\216PF:\23E8\22@5\21<1\20""7,\17""1'" \
+ "\15#\37\12\33\27\10\26\23\6\20\16\4\13\11\3\6\5\2\2\2\1\377\0\0\0\377" \
+ "\0\0\0\324\0\0\0\1\33\33\33\202VVV\11UUUTTTSSSRRRQQQPPPOOONNNMMM\202" \
+ "LLL\202KKK\10JJJIIIHHHGGGFFFEEEDDDCCC\202BBB\2AAA@@@\202\77\77\77\12" \
+ "AA>DB>GF\77LI\77PMAGC2+&\16""0+\17""5/\17""82\20\20292\21\3\256\252\215" \
+ "\346\343\312\346\343\313\202\346\343\314\202\346\343\315\1\346\343\316" \
+ "\202\347\343\316\205\347\344\317\2\347\344\320\274\270\237\202C7\22\5" \
+ "@5\21>2\21<0\20;.\20:.\17\2029,\17\7""9,\16:.\17=/\17@2\20E6\21J:\23" \
+ "L<\23\202N=\24\1\233\220q\202\346\343\315\202\346\343\314\2\346\343\313" \
+ "\346\343\312\202\346\343\311\1\346\343\310\202\346\343\307\203\346\343" \
+ "\305\3\346\343\304\330\321\262pa7\202R\77\24\24O=\23L9\22G5\20A0\20=" \
+ "+\15""7'\14""3\"\12""0\37\11.\36\11-\35\11.\36\11""0\40\12""5#\13""9" \
+ "(\15=-\17A1\17E4\21H7\21L;\22N=\23\202N=\24\30ZJ\37\335\326\225\344\333" \
+ "\232\343\333\230\343\332\225\343\332\222\343\332\221\343\331\216\343" \
+ "\331\212\335\321\202YK\37H;\23E8\22\77""4\20;/\20""5*\16+$\13\37\33\11" \
+ "\31\25\7\23\20\5\16\14\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\323\0" \
+ "\0\0\12DDDUUUTTTSSSRRRQQQPPPOOONNNMMM\202LLL\1KKK\202JJJ\7IIIHHHGGGF" \
+ "FFEEEDDDCCC\202BBB\4AAA@@@\77\77\77>>>\202===\12\77\77<B@<FD>KH>HE8'" \
+ "\"\17+&\15""0+\17""5/\17""82\20\20292\21\3\264\257\224\346\343\313\346" \
+ "\343\314\202\346\343\315\2\346\343\316\347\343\316\204\347\344\317\204" \
+ "\347\344\320\7\347\344\321\310\303\255D9\22D7\22C7\22A4\21\77""2\20\202" \
+ "\77""1\20\2=0\20=0\17\202\77""1\20\4B3\20E6\21I9\22M<\23\202N=\24\5\216" \
+ "\202a\347\344\317\347\343\316\346\343\316\346\343\315\202\346\343\314" \
+ "\1\346\343\313\202\346\343\312\2\346\343\311\346\343\310\202\346\343" \
+ "\307\1\346\343\306\202\346\343\305\30\346\343\304\332\324\264eS(S@\24" \
+ "S>\24P<\23K8\21G4\20A/\16=*\15""8%\13""3!\12""0\36\11.\35\10.\36\10""0" \
+ "\37\11""3\"\12""8&\14<+\15@.\16E3\20H5\21M:\23O=\24\202P>\24\30O>\24" \
+ "\230\213W\344\333\233\343\333\231\343\333\226\343\332\223\343\332\222" \
+ "\343\331\217\343\331\214\343\331\210\253\237\\I;\23H:\23D7\22\77""3\20" \
+ "9.\17""4)\15\"\35\12\33\27\10\26\23\6\20\16\4\13\11\3\5\4\2\2\2\1\377" \
+ "\0\0\0\377\0\0\0\322\0\0\0\11\5\5\5""222HHHRRRQQQPPPOOONNNMMM\202LLL" \
+ "\3KKKJJJIII\202HHH\5GGGFFFEEEDDDCCC\202BBB\6AAA@@@\77\77\77>>>===<<<" \
+ "\202;;;\12>=;A@;DB<GE:'#\23$\37\13+&\15""0+\17""5/\17""82\20\20292\21" \
+ "\5\264\257\225\346\343\314\346\343\315\346\343\316\347\343\316\204\347" \
+ "\344\317\202\347\344\320\204\347\344\321\10\347\344\322\326\323\277F" \
+ ":\23G9\23E8\22C6\21B5\21A4\20\202A3\20\12B3\20C4\20D5\21E6\21H8\22N<" \
+ "\23O>\24P>\24o`;\345\342\316\202\347\344\317\202\347\343\316\202\346" \
+ "\343\315\202\346\343\314\2\346\343\313\346\343\312\202\346\343\311\202" \
+ "\346\343\307\1\346\343\306\202\346\343\305\27\346\343\304\310\277\236" \
+ "YC\30VB\25S@\24P;\23L8\21G3\20A.\16=)\15""7$\13""3\40\12""0\35\11""0" \
+ "\35\10""0\36\10""3!\11""7$\13;(\14\77-\16D2\17G5\20L9\22O=\23\203Q\77" \
+ "\24\30ZH\34\335\326\226\344\333\232\343\333\230\343\332\225\343\332\222" \
+ "\343\332\221\343\331\216\343\331\212\343\331\207gY(I;\23H:\22B5\21>1" \
+ "\20""8+\17'!\13\37\33\11\31\25\7\22\17\5\15\13\4\10\7\3\4\3\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\324\0\0\0\3\10\10\10\35\35\35""777\203LLL\4KKKJJJII" \
+ "IHHH\202GGG\4FFFEEEDDDCCC\202BBB\24AAA@@@\77\77\77>>>===<<<;;;:::999" \
+ "::9<;9\77>9C@:*'\33\36\32\11$\37\13+&\15""0+\17""5/\17""82\20\20292\21" \
+ "\2\264\257\225\346\343\315\202\347\343\316\203\347\344\317\202\347\344" \
+ "\320\202\347\344\321\203\347\344\322\202\347\344\323\3\343\340\317H;" \
+ "\23I;\23\202G9\22\3F7\21F7\22E6\21\202F6\21\10G7\21H7\21I9\22N;\22P>" \
+ "\24Q\77\24R\77\24\303\275\245\202\347\344\320\203\347\344\317\3\347\343" \
+ "\316\346\343\316\346\343\315\202\346\343\314\2\346\343\313\346\343\312" \
+ "\202\346\343\311\3\346\343\310\346\343\307\346\343\306\202\346\343\305" \
+ "\30\346\343\304\215\177VXC\25WB\25R>\23O:\22K6\20G1\17\77,\16:&\14""5" \
+ "\"\12""1\37\11""0\34\10""1\35\10""2\37\11""5\"\13:'\14\77+\16C/\17G4" \
+ "\17K8\21N;\22R>\24S\77\24\202R\77\24\27\237\223\\\344\333\233\343\333" \
+ "\231\343\333\226\343\332\223\343\332\222\343\331\217\343\331\214\343" \
+ "\331\210\262\247aK<\24I:\23G9\22A4\20<.\20/&\15\"\35\12\33\27\10\25\22" \
+ "\6\17\15\4\12\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\327\0\0\0\3\5\5\5" \
+ "\33\33\33""444\202HHH\2GGGFFF\202EEE\2DDDCCC\202BBB\26AAA@@@\77\77\77" \
+ ">>>===<<<;;;:::999888777887:97=<71/'\30\25\7\36\32\11$\37\13+&\15""0" \
+ "+\17""5/\17""82\20\20292\21\2\264\257\225\347\343\316\203\347\344\317" \
+ "\202\347\344\320\202\347\344\321\202\347\344\322\204\347\344\323\202" \
+ "\347\344\324\4SF!I;\23H:\22H:\23\202I9\22\203H8\22\4I9\22K9\22M<\23P" \
+ "=\24\202R\77\24\2|nI\347\344\322\202\347\344\321\202\347\344\320\203" \
+ "\347\344\317\1\347\343\316\202\346\343\315\3\346\343\314\346\343\313" \
+ "\346\343\312\202\346\343\311\3\346\343\310\346\343\307\346\343\306\202" \
+ "\346\343\305\13\326\320\257[E\30YC\25WA\24R=\23N9\21H3\17C.\16=)\14:" \
+ "%\13""3\40\11\2021\35\10\11""2\36\10""5\"\12:&\13=*\15B/\17F3\17K7\21" \
+ "N:\22Q=\23\202S@\24\30T\77\24`L\37\340\330\230\344\333\231\343\333\227" \
+ "\343\332\224\343\332\222\343\331\220\343\331\215\343\331\211\343\331" \
+ "\206jZ)L=\24I:\23E6\21\77""2\20""5*\16$\37\13\36\32\11\30\25\7\21\16" \
+ "\5\15\13\4\7\6\2\3\3\1\377\0\0\0\377\0\0\0\332\0\0\0\3\5\5\5!!!<<<\202" \
+ "DDD\1CCC\202BBB\12AAA@@@\77\77\77>>>===<<<;;;:::999888\202777\17""66" \
+ "6776875750\25\22\11\30\25\7\36\32\11$\37\13+&\15""0+\17""5/\17""82\20" \
+ "92\21:2\21\264\257\227\202\347\344\317\202\347\344\320\202\347\344\321" \
+ "\202\347\344\322\203\347\344\323\1\347\344\324\202\347\345\324\202\347" \
+ "\345\325\10bV1K<\24K<\23K;\23J:\23J:\22K:\22L:\22\202M;\23\7O=\23Q>\24" \
+ "R\77\24T\77\24S@\24\256\246\211\347\344\323\202\347\344\322\202\347\344" \
+ "\321\1\347\344\320\203\347\344\317\1\347\343\316\202\346\343\315\3\346" \
+ "\343\314\346\343\313\346\343\312\202\346\343\311\202\346\343\3073\346" \
+ "\343\306\346\343\305\346\343\304{i>[D\26YC\25V\77\24Q9\22M6\21G0\17B" \
+ "+\16=&\14""7\"\11""3\36\10""1\35\7""2\36\10""6\"\11""9$\12=)\14C-\16" \
+ "G1\17K6\20N:\22Q<\23T@\25VB\25UA\25TA\24\256\243k\344\333\233\343\333" \
+ "\231\343\333\226\343\332\223\343\332\222\343\331\217\343\331\214\343" \
+ "\331\210\263\247`N=\24L<\23I9\22C5\21\77""1\20'\"\13!\34\11\32\26\7\24" \
+ "\21\5\17\15\5\11\10\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\334\0\0\0\2\21" \
+ "\21\21,,,\202AAA\11@@@\77\77\77>>>===<<<;;;:::999888\202777\23""6665" \
+ "55444554764\31\27\22\21\16\5\30\25\7\36\32\11$\37\13+&\15""0+\17""5/" \
+ "\17""82\20:2\21;3\21\254\250\217\347\344\317\347\344\320\202\347\344" \
+ "\321\202\347\344\322\202\347\344\323\1\347\344\324\202\347\345\324\203" \
+ "\347\345\325\202\347\345\326\20thFN=\24M<\23N=\23M=\23M<\23N=\24O=\24" \
+ "P=\24Q>\24R>\24T\77\24S@\24UA\25VB\25\335\332\306\203\347\344\323\202" \
+ "\347\344\322\1\347\344\321\202\347\344\320\202\347\344\317\6\347\343" \
+ "\316\346\343\316\346\343\315\346\343\314\346\343\313\346\343\312\202" \
+ "\346\343\311\202\346\343\307\202\346\343\305\26\244\230q[E\26[C\25YA" \
+ "\24T=\23O8\22J3\17E.\16>(\14:$\12""6\37\11""2\34\10""2\35\10""5\37\11" \
+ ":$\13='\13B,\15G1\17I4\17N9\21R<\23U@\24\203WB\25\27r`0\344\334\234\344" \
+ "\333\231\343\333\227\343\332\224\343\332\222\343\331\220\343\331\215" \
+ "\343\331\211\341\327\205dS#N=\24L;\23H8\22A2\20/'\15#\36\12\35\31\10" \
+ "\27\24\6\21\16\5\14\12\4\6\5\2\3\3\1\377\0\0\0\377\0\0\0\336\0\0\0\11" \
+ "\7\7\7###;;;===<<<;;;:::999888\202777\24""666555444333222332#\"\40\13" \
+ "\11\3\20\16\4\27\24\6\36\32\11$\37\13+&\15""0+\17""5/\17""92\20;3\21" \
+ "<4\21\253\246\215\347\344\320\202\347\344\321\1\347\344\322\203\347\344" \
+ "\323\1\347\345\324\203\347\345\325\203\347\345\326\202\347\345\327\6" \
+ "\204xXN=\24O>\24O=\23P>\24P=\24\202Q>\24\10R>\24S>\24S@\24T@\25VB\25" \
+ "WB\25`N#\347\345\325\202\347\345\324\203\347\344\323\1\347\344\322\202" \
+ "\347\344\321\1\347\344\320\202\347\344\317\26\347\343\316\346\343\316" \
+ "\346\343\315\346\343\314\346\343\313\346\343\312\346\343\311\346\343" \
+ "\310\346\343\307\346\343\306\346\343\305\301\266\224_E\26^E\26[B\25W" \
+ ">\23R9\21M5\17F.\16B*\14<%\12""8\40\11\2024\35\10\12""5\37\10""9#\12" \
+ "<%\13@+\15E0\17I3\20M7\20R;\22V@\23XB\25\202XC\25\30WB\25\306\274\200" \
+ "\344\333\232\343\333\230\343\332\225\343\332\222\343\332\221\343\331" \
+ "\216\343\331\212\343\331\207\246\227SP>\24N=\23I9\22E6\21""6+\17&!\13" \
+ "\40\33\11\31\25\7\23\20\5\16\14\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0" \
+ "\0\0\337\0\0\0\5\4\4\4\33\33\33""666999888\202777\26""66655544433322" \
+ "2111000//.\12\11\6\12\11\3\20\16\4\27\24\6\36\32\11$\37\13*%\15""0+\17" \
+ "6/\17;3\20<4\21>5\21\253\246\215\347\344\321\202\347\344\322\202\347" \
+ "\344\323\202\347\345\324\202\347\345\325\202\347\345\326\204\347\345" \
+ "\327\3\347\345\330\223\210kP>\24\202Q\77\24\10Q>\24R\77\24S\77\24T\77" \
+ "\24T@\25UA\25VA\25WB\25\202XC\25\2t`9\347\345\326\202\347\345\325\2\347" \
+ "\345\324\347\344\324\202\347\344\323\1\347\344\322\202\347\344\321\1" \
+ "\347\344\320\202\347\344\317!\347\343\316\346\343\316\346\343\315\346" \
+ "\343\314\346\343\313\346\343\312\346\343\311\346\343\310\346\343\307" \
+ "\346\343\306\311\302\240`G\27_F\26\\C\25Y@\24T;\22O6\21I0\16D,\15\77" \
+ "'\14:\"\11""7\37\10""4\34\7""6\36\10""9\"\11=&\13A)\14E/\16J3\17N7\21" \
+ "Q:\22U>\23YB\25\203YC\25\27\223\203N\344\334\234\343\333\231\343\333" \
+ "\226\343\332\223\343\332\222\343\331\217\343\331\214\343\331\210\335" \
+ "\320\177YF\32Q\77\24M<\23H7\21>1\17'#\14#\36\12\33\27\10\25\22\6\17\15" \
+ "\4\12\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\341\0\0\0\32\3\3\3\32\32\32" \
+ "333666555444333222111000///...\30\30\27\5\4\2\12\11\3\20\16\4\27\24\6" \
+ "\35\31\10$\37\13*%\15""1+\16""70\17<4\21>5\21\77""5\21\242\236\203\202" \
+ "\347\344\322\3\347\344\323\347\344\324\347\345\324\202\347\345\325\202" \
+ "\347\345\326\202\347\345\327\203\347\345\330\202\347\345\331\13\243\232" \
+ "\201Q\77\24R\77\24S\77\24T\77\24S@\24T@\25UA\25VA\25WB\25XC\25\202YC" \
+ "\25\3ZD\25xc<\347\345\327\202\347\345\326\202\347\345\325\1\347\345\324" \
+ "\202\347\344\323\202\347\344\322\2\347\344\321\347\344\320\202\347\344" \
+ "\317:\347\343\316\346\343\316\346\343\315\346\343\314\346\343\313\346" \
+ "\343\312\346\343\311\346\343\310\346\343\307\322\313\253bH\27aG\26_D" \
+ "\25[A\24V;\22P6\20K1\17F,\15A'\14<#\12""9\37\11""5\35\10""6\36\10""9" \
+ "!\11=$\13A)\14E,\15I1\16N6\20R:\22U=\23X@\24ZC\25[D\26[C\26eO\36\340" \
+ "\330\231\344\333\232\343\333\227\343\332\224\343\332\222\343\331\220" \
+ "\343\331\215\343\331\211\343\331\206\213{\77R\77\24P=\24L:\23F6\21*%" \
+ "\14$\37\13\36\32\11\30\25\7\21\16\5\14\12\4\7\6\2\3\3\1\377\0\0\0\377" \
+ "\0\0\0\343\0\0\0\30\3\3\3\32\32\32""111222111000///...---&&&\3\3\2\5" \
+ "\4\2\12\11\3\20\16\4\27\24\6\35\31\10$\37\13,'\15""2,\16""80\20>5\21" \
+ "@6\21@5\21\232\224z\202\347\344\323\3\347\344\324\347\345\324\347\345" \
+ "\325\202\347\345\326\202\347\345\327\202\347\345\330\205\347\345\331" \
+ "\7\263\255\225S\77\24T\77\24S@\24UA\25VB\25WB\25\202XC\25\202YC\25\4" \
+ "ZD\25[C\26[D\26mW-\203\347\345\327\202\347\345\326\2\347\345\325\347" \
+ "\345\324\202\347\344\323\202\347\344\322\2\347\344\321\347\344\320\202" \
+ "\347\344\317\2\347\343\316\346\343\315\202\346\343\314\1\346\343\312" \
+ "\202\346\343\3113\346\343\307\305\273\232dG\26dH\26aE\25\\A\24X=\22S" \
+ "8\20N3\17I.\15D(\14\77$\12;\40\11""8\36\10""7\34\10:\40\11<#\12A'\14" \
+ "D,\15I0\16M5\20R9\21V=\22Y@\24[B\25[E\26\\D\26[D\26\274\257u\344\333" \
+ "\233\343\333\231\343\332\225\343\332\222\343\332\221\343\331\216\343" \
+ "\331\212\343\331\207\303\266iT\77\24R\77\24O=\23J8\22""1*\16&!\13!\34" \
+ "\11\31\25\7\23\20\5\16\14\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\344" \
+ "\0\0\0\4\6\6\6\"\"\"///...\202---\22,,,\15\15\15\2\2\1\5\4\2\12\11\3" \
+ "\20\16\4\27\24\6\35\31\10$\40\12,'\14""3,\17""90\20>5\21@5\21A6\22\226" \
+ "\217t\347\344\323\347\344\324\202\347\345\325\1\347\345\326\203\347\345" \
+ "\327\1\347\345\330\206\347\345\331\6\347\346\331\304\275\253S@\24UA\25" \
+ "VB\25WB\25\202XC\25\202YC\25\10ZD\25[D\26\\D\26[E\26]E\26aI\32\342\337" \
+ "\320\347\345\330\202\347\345\327\202\347\345\326\4\347\345\325\347\345" \
+ "\324\347\344\324\347\344\323\202\347\344\322\2\347\344\321\347\344\320" \
+ "\202\347\344\317\37\347\343\316\346\343\315\346\343\314\346\343\313\346" \
+ "\343\312\346\343\311\346\343\310\264\247\203eJ\27dH\27bF\26]A\25X=\23" \
+ "T9\21O4\17I.\15D*\14@&\12<!\11:\36\10""9\36\7;!\10>#\12A'\13E+\15I/\16" \
+ "N4\20Q8\21V=\23Y@\24[C\25\202^E\26\30]E\26\216{G\344\334\234\344\333" \
+ "\231\343\333\226\343\332\223\343\332\222\343\331\217\343\331\214\343" \
+ "\331\210\343\330\204kW%S@\24Q>\24L9\22""8-\17($\14#\36\12\34\30\10\26" \
+ "\23\6\17\15\4\12\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\346\0\0\0\25\16" \
+ "\16\16''',,,+++\"\"\"\0\0\0\2\2\1\5\4\1\12\11\3\17\15\4\26\23\6\36\33" \
+ "\10%\40\12-&\15""5-\17:1\20\77""5\21A6\22C7\22\220\207k\347\344\324\202" \
+ "\347\345\325\1\347\345\326\202\347\345\327\202\347\345\330\204\347\345" \
+ "\331\1\347\346\331\203\347\346\332\2\326\324\304VB\25\202WB\25\1XC\25" \
+ "\202YC\25\12[C\26[D\26\\D\26[E\26]E\26^E\26_F\26_F\27\301\271\242\347" \
+ "\345\331\202\347\345\330\202\347\345\327\6\347\345\326\347\345\325\347" \
+ "\345\324\347\344\324\347\344\323\347\344\322\202\347\344\321\1\347\344" \
+ "\320\202\347\344\3178\346\343\316\346\343\315\346\343\314\346\343\313" \
+ "\346\343\312\346\343\311\224\200VgK\27eI\27bF\26_C\24Z>\22V:\21P4\20" \
+ "K/\16F*\14B'\13>#\12:\37\11""9\36\10:\40\10>$\11B&\12D*\14I.\16O3\20" \
+ "Q7\20V;\22Z@\24[B\25_E\26_F\27_E\26gP\37\342\332\232\344\333\232\343" \
+ "\333\227\343\332\224\343\332\222\343\331\220\343\331\215\343\331\211" \
+ "\343\330\204\240\220LUA\25S@\24P<\23\77""2\20*%\15$\37\13\36\32\11\30" \
+ "\25\7\21\16\5\14\12\4\6\5\2\3\3\1\377\0\0\0\377\0\0\0\347\0\0\0\23\2" \
+ "\2\2\25\25\25(((\15\15\15\0\0\0\1\1\0\5\4\1\11\10\3\17\15\4\30\24\6\36" \
+ "\32\10&\40\13.'\15""6-\17;1\21\77""5\22C7\22D7\22\210~b\202\347\345\325" \
+ "\1\347\345\326\202\347\345\327\1\347\345\330\204\347\345\331\1\347\346" \
+ "\331\202\347\346\332\203\347\346\333\3\345\344\330XE\30XC\25\202YC\25" \
+ "\202ZC\26\11[C\26\\D\26]E\26^E\26_F\26_F\27`G\27aG\27\232\212i\202\347" \
+ "\345\331\202\347\345\330\202\347\345\327\7\347\345\326\347\345\325\347" \
+ "\345\324\347\344\324\347\344\323\347\344\322\347\344\321\202\347\344" \
+ "\320\2\347\344\317\347\343\316\202\346\343\315\20\346\343\314\346\343" \
+ "\312\341\336\302oT\"hK\27gJ\27cF\26`B\24[>\22W:\21Q3\17M/\16I+\14C&\13" \
+ "A#\11=!\10\202<\40\10$\77#\12B'\13E*\14I.\15N3\17R6\20W;\22Y>\23\\B\24" \
+ "_E\26aG\27`G\27_F\27\304\270}\344\333\232\343\333\230\343\332\225\343" \
+ "\332\222\343\332\221\343\331\216\343\331\211\343\331\206\311\275nWB\25" \
+ "UA\25S>\24F6\21,'\15&!\13\40\33\11\31\25\7\23\20\5\16\14\4\10\7\3\4\3" \
+ "\1\1\1\0\377\0\0\0\377\0\0\0\350\0\0\0\1\5\5\5\202\0\0\0\20\1\1\0\5\4" \
+ "\1\11\10\3\21\16\4\27\24\6\40\34\11(!\13""0(\15""5,\16=2\21A5\22D7\22" \
+ "E8\22}sT\347\345\325\347\345\326\202\347\345\327\1\347\345\330\204\347" \
+ "\345\331\202\347\346\332\203\347\346\333\203\347\346\334\4iU,YC\25ZD" \
+ "\25ZC\26\202ZB\25\12\\C\25[C\25]D\25^E\26`F\26aG\27bH\27cH\27iO\40\334" \
+ "\331\311\203\347\345\331\1\347\345\330\202\347\345\327\3\347\345\326" \
+ "\347\345\325\347\345\324\202\347\344\323\3\347\344\322\347\344\321\347" \
+ "\344\320\202\347\344\317\5\347\343\316\346\343\315\346\343\314\346\343" \
+ "\313\263\245\201\202jL\30""1hJ\27dF\26aB\24\\=\23W9\21R4\17M/\15I+\14" \
+ "D'\12B$\11\77\"\10>\40\10\77!\10@#\11D&\12F*\14J.\16M2\17R7\20W;\22Z" \
+ ">\23^C\24aE\26bG\26bH\27aG\27\237\215V\344\333\233\343\333\231\343\333" \
+ "\226\343\332\223\343\332\222\343\331\217\343\331\212\343\331\207\343" \
+ "\330\202p]'XC\25S@\24M:\22-(\16'#\14#\36\12\33\27\10\25\22\6\17\15\4" \
+ "\12\11\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\353\0\0\0\17\1\1\0\5\4\1\13" \
+ "\11\3\21\16\5\30\24\7!\34\11)\"\13""0'\15""7-\17=2\21B6\22E8\22F:\23" \
+ "shG\347\345\326\202\347\345\327\1\347\345\330\203\347\345\331\2\347\346" \
+ "\331\347\346\332\203\347\346\333\203\347\346\334\3\314\310\270\257\246" \
+ "\220eQ%\202[C\26\1[C\25\202[B\25\13\\B\25[B\25]C\25_D\26`E\26bG\26dH" \
+ "\27dG\26dI\27\233\211h\347\346\331\203\347\345\331\1\347\345\330\202" \
+ "\347\345\327\3\347\345\326\347\345\325\347\345\324\202\347\344\323\3" \
+ "\347\344\322\347\344\321\347\344\320\202\347\344\317\4\346\343\316\346" \
+ "\343\315\341\335\304wZ'\202lM\30\13hI\27eF\25bC\24\\=\22W8\20S4\20N/" \
+ "\15J+\14G(\13B#\12A\"\11\202@\"\11$A#\11C&\12G*\14M/\16P3\16T8\20Y<\22" \
+ "[@\23^B\25aE\25cG\26dH\27cH\27\201k7\344\334\234\344\333\231\343\333" \
+ "\227\343\332\224\343\332\222\343\331\217\343\331\214\343\331\210\343" \
+ "\330\204\232\210EYC\25WB\25R>\23/)\16)%\14$\37\13\35\31\10\27\24\6\21" \
+ "\16\5\13\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\353\0\0\0\16\1\1\0\5\3" \
+ "\1\13\11\3\22\16\5\31\25\6\"\33\11)!\13""0'\15""8-\17\77""3\21B6\21F" \
+ ":\23H;\23h[:\202\347\345\327\1\347\345\330\203\347\345\331\202\347\346" \
+ "\332\202\347\346\333\11\316\311\271\260\250\221\222\206gvf\77[D\30YC" \
+ "\25[C\26[D\26[E\26\202[B\25\2[B\24Y@\24\202[A\24\12\\B\24^C\25aE\25b" \
+ "G\26dH\27eJ\27fJ\27gK\27\302\272\242\347\346\331\203\347\345\331\2\347" \
+ "\345\330\347\345\327\202\347\345\326\6\347\345\325\347\344\324\347\344" \
+ "\323\347\344\322\347\344\321\347\344\320\202\347\344\317\3\347\343\316" \
+ "\346\343\315\230\202W\202mM\30\30kK\27iI\26eD\25aA\23\\=\22W7\20T4\17" \
+ "O/\16L+\14H'\13D$\12C#\11B\"\11B#\11C$\12F'\13J-\15N1\16S5\20W:\21Z<" \
+ "\22^A\23`D\25cF\26\202dH\27\30dI\27fJ\31\336\326\227\344\333\232\343" \
+ "\333\230\343\332\224\343\332\222\343\331\220\343\331\215\343\331\211" \
+ "\343\330\204\302\265f[C\26YC\25U@\24""6.\17+&\15&!\13\37\33\11\31\25" \
+ "\7\22\17\5\15\13\4\7\6\2\3\3\1\377\0\0\0\377\0\0\0\353\0\0\0\20\3\2\0" \
+ "\6\4\1\15\12\4\23\17\5\33\26\6\"\33\10*!\13""2(\15""8-\17\77""3\21D7" \
+ "\22H;\23I;\23^Q+\347\345\327\347\345\330\203\347\345\331\37\330\327\307" \
+ "\271\263\234\227\214pwhDZE\31VB\25WB\25XC\25YC\25ZD\25[C\26\\D\26]E\26" \
+ "[D\25[B\24Y@\24Z@\24Z\77\23Y\77\23Z@\23\\@\24]C\24`C\25bF\26dH\27gJ\27" \
+ "hJ\27hK\27pT\"\316\307\263\347\346\331\203\347\345\331\5\347\345\330" \
+ "\347\345\327\347\345\326\347\345\325\347\345\324\202\347\344\323\3\347" \
+ "\344\322\347\344\321\347\344\320\202\347\344\317\1\252\231s\202oN\31" \
+ "4nM\31kJ\27hG\26eD\25`@\23\\;\21X7\21S2\16O.\15L+\14H(\12F%\12E%\12F" \
+ "&\12G'\12H(\13L,\14N/\15R3\17V7\20Y:\22\\\77\23_B\23bE\25dF\26eH\27f" \
+ "J\27eJ\27dH\27\303\266y\344\333\233\343\333\230\343\332\225\343\332\222" \
+ "\343\332\221\343\331\216\343\331\211\343\331\206\341\326\200cK\33[C\26" \
+ "XB\24;1\21,'\16&!\13!\34\11\32\26\7\24\21\5\16\14\4\10\7\3\4\3\1\1\1" \
+ "\0\377\0\0\0\377\0\0\0\351\0\0\0\14\1\0\0\3\1\0\7\4\2\16\12\3\24\17\5" \
+ "\33\25\6\"\33\11+!\13""2'\15""8-\17\77""3\21E8\22\202I;\23\12SD\35\347" \
+ "\345\330\315\311\267\247\240\207\205yYdU.R\77\24S\77\24S@\24UA\25\202" \
+ "WB\25\11XC\25YC\25[C\26[D\26\\D\26[D\26[C\25ZA\24Y@\24\202X>\23\1X=\22" \
+ "\202Y>\22\7Z>\23]A\24_C\24aD\25dF\26gJ\27iK\27\202jL\30\3rV\"\305\273" \
+ "\244\347\346\331\202\347\345\331\1\347\345\330\202\347\345\327\11\347" \
+ "\345\326\347\345\325\347\345\324\347\344\323\347\344\322\347\344\321" \
+ "\347\344\320\344\341\313\242\213c\202qO\30\13pN\31nM\30kI\27iF\25eB\24" \
+ "`>\22]:\21Y6\20U2\17Q.\15N,\14\203K)\13'K*\14L+\14L,\14O/\15R3\16V6\17" \
+ "Y9\21\\=\22_A\24aC\25cF\26eH\26gJ\27hJ\27gJ\27gK\27\251\227^\344\333" \
+ "\233\343\333\231\343\333\226\343\332\223\343\332\221\343\331\216\343" \
+ "\331\212\343\331\207\343\330\201\204o4[E\26ZC\25\77""4\20-(\16($\14#" \
+ "\36\12\34\30\10\25\22\6\17\15\4\12\11\3\5\4\1\1\1\0\377\0\0\0\377\0\0" \
+ "\0\350\0\0\0\31\1\0\0\3\1\0\4\2\1\10\5\2\16\11\3\24\17\5\33\24\6\"\32" \
+ "\10+!\12""1&\14""9-\17\77""2\20E7\21I;\23K<\24L=\24VG\40N=\24P>\24Q\77" \
+ "\24R\77\24T\77\24TA\24UA\25WB\25\202XC\25\202YC\25\1ZC\25\202ZB\25\4" \
+ "[B\24Y@\24Y\77\23W<\22\202V;\22\12V;\21V:\22W;\22Y=\22[>\22]\77\23_B" \
+ "\24cE\26gI\27jK\30\203lM\30\3lM\27\241\215j\337\333\314\202\347\345\331" \
+ "\12\347\345\330\347\345\327\347\345\326\347\345\325\347\345\324\347\344" \
+ "\324\347\344\323\347\344\322\315\302\246\212m>\203rP\31\17pN\27nL\27" \
+ "jH\26gE\24dB\23`>\21]9\21X6\20U3\16S0\15P/\15O-\14O,\14P.\15Q.\15\202" \
+ "S1\16$U4\17W6\20Z9\20]=\22`A\23bB\24eF\25fG\26hJ\27iK\27jL\30hK\27hJ" \
+ "\27\217yA\344\334\234\344\333\231\343\333\226\343\332\223\343\332\222" \
+ "\343\331\217\343\331\214\343\331\207\343\330\202\251\225N^E\26\\D\26" \
+ "D7\21/*\16)%\14$\37\13\35\31\10\27\24\6\20\16\4\13\11\3\5\4\2\2\2\1\377" \
+ "\0\0\0\377\0\0\0\350\0\0\0\17\3\1\0\4\2\1\5\3\1\12\6\2\17\12\3\24\17" \
+ "\5\34\24\6\"\31\10*\40\12""1%\15""8+\17\77""1\20D6\21I:\23L=\24\202N" \
+ "=\24\14P>\24Q\77\24R\77\24T\77\24S@\24UA\25VA\25V@\24WA\24XA\24XA\25" \
+ "X@\24\202Y@\24\24Y@\23X\77\23W=\23V;\22T9\21S7\20R7\20S8\20U9\20V8\21" \
+ "W9\22X:\21[=\23^\77\23aC\25fF\26jJ\27kL\30mM\30nM\30\202oN\31\13uV\"" \
+ "\243\216i\310\275\246\345\343\327\347\345\330\347\345\327\347\345\326" \
+ "\347\345\325\334\330\303\273\255\215\222wJ\204tQ\31\13sO\31pM\27mJ\27" \
+ "jG\26gD\24e@\23a>\22^:\21\\9\21Y6\17W4\17\202T1\15\20U1\16U3\16V4\17" \
+ "W5\17Y7\17[8\20]:\21_=\22a@\23cB\24eD\25hH\26iJ\27kL\27kL\30kM\30\202" \
+ "jL\30\27|c.\344\334\234\344\333\231\343\333\227\343\332\224\343\332\222" \
+ "\343\331\217\343\331\214\343\331\210\343\330\204\303\264e_F\26^E\26H" \
+ "9\22""0+\17+&\15%!\13\37\33\11\30\25\7\21\16\5\14\12\4\6\5\2\3\3\1\377" \
+ "\0\0\0\377\0\0\0\347\0\0\0\22\2\1\0\3\2\0\4\3\1\7\4\1\13\6\2\17\12\4" \
+ "\24\16\5\33\23\6!\30\7)\36\12""0$\14""7*\16=0\17B4\21H9\22L;\23N=\24" \
+ "P>\24\202Q>\24\2R>\24S>\24\202R>\24\2S\77\23S>\23\202U>\23\33U=\23V=" \
+ "\23V=\22U<\23V<\22U:\22T9\21T8\20Q6\17P4\20O3\17P3\16R4\20R5\17T6\20" \
+ "V8\20X:\21]>\22aA\23dD\25hH\26kK\27mM\30oN\30pO\31qO\30qP\30\203rP\31" \
+ "\1\206j8\202\213n>\2\203d1uQ\32\202tQ\31\202uR\31\36uQ\31tQ\31rM\30p" \
+ "L\27mI\26kG\25iE\24fB\23d\77\22a<\21_:\20^8\20[6\20Z5\20Y5\17[6\20\\" \
+ "9\21]:\20^:\20_<\21`>\21a@\22cB\23fC\24hF\25iG\26kJ\27kK\27lL\27lM\27" \
+ "\202lM\30\30kM\30lO\32\342\332\232\344\333\232\343\333\230\343\332\224" \
+ "\343\332\222\343\331\220\343\331\215\343\331\210\343\330\204\336\322" \
+ "{bI\31_F\27M<\23""1,\17,'\15&!\13\40\33\11\31\25\7\23\20\5\15\13\4\7" \
+ "\6\2\4\3\1\377\0\0\0\377\0\0\0\346\0\0\0\22\1\0\0\3\2\0\4\3\1\6\4\1\10" \
+ "\5\1\13\7\2\17\11\3\25\17\5\32\23\5\40\30\7(\35\11/#\13""4(\15;.\17@" \
+ "2\17D5\21H8\22L:\22\202N<\23\14P=\23Q<\23P<\23Q<\23Q<\22R<\22R:\22Q:" \
+ "\22R:\22R:\21S:\21R9\21\202R8\21\5R7\20Q5\20O4\20N3\20N1\17\202M0\16" \
+ "\17M/\15O1\17R3\17U5\17W6\20Z;\21_>\22cB\24gE\25jI\26mK\27oN\30qO\31" \
+ "rP\31sP\31\202tQ\31\2uQ\32tQ\31\204uR\31\202vS\32\16uR\31uQ\31uQ\30t" \
+ "P\30rM\27qL\27oJ\26mH\25kE\24iD\23fA\23d\77\22b<\21`;\20\202^9\20\22" \
+ "_:\20`;\21b=\22d\77\22d@\23e@\23fB\24hD\25iF\25jH\25jH\26lJ\26nK\30o" \
+ "N\30oM\30nM\30mM\30lM\27\202lM\30\27\330\314\217\344\333\232\343\333" \
+ "\230\343\332\225\343\332\222\343\331\220\343\331\215\343\331\211\343" \
+ "\331\206\343\330~|d*aG\27P=\24""2-\17,'\16'#\14\"\35\12\32\26\7\24\21" \
+ "\5\16\14\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\344\0\0\0\26\1\0\0" \
+ "\3\1\0\4\2\1\6\4\1\10\5\1\11\5\1\13\6\2\20\12\3\24\16\4\32\22\5\40\26" \
+ "\7&\32\10+\40\12""3'\14""8+\16=/\17B2\17F5\21H6\21J8\22L9\22M9\21\202" \
+ "M:\22\10M9\21N9\21N7\21O7\21P7\22O7\20O6\20O6\21\202O5\20\10N4\20N4\17" \
+ "M2\17M0\17M1\16K.\15J,\14J,\15\202L-\15\16O/\16R2\16U5\17Y8\20^<\22a" \
+ "\77\23eB\24hF\25jG\26mK\27pN\27rO\31sP\31uQ\31\202uR\31\202vS\32\202" \
+ "wR\31\21wS\31wR\30xS\30wR\30wR\31vQ\31uO\30sN\30rL\27qK\27oJ\26mH\26" \
+ "kE\25iC\24hB\23gA\23e>\21\202d>\21+f@\22gB\23hC\23iD\24iE\24jF\25lH\26" \
+ "lI\26mJ\27nK\27oL\27pN\30pN\27pO\30qO\30pO\31oN\30oN\31\205j4\301\262" \
+ "x\344\334\234\344\333\233\343\333\230\343\332\225\343\332\222\343\332" \
+ "\221\343\331\215\343\331\211\343\331\206\343\330\201\221|:bH\27S@\25" \
+ "3-\17.)\16($\14#\36\12\34\30\10\25\22\6\17\15\4\11\10\3\5\4\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\344\0\0\0\25\2\1\0\4\2\1\5\3\1\7\4\1\11\5\1\13\6\2\15" \
+ "\7\2\20\11\3\25\15\3\31\17\5\40\25\6$\31\7)\36\11""0#\13""5&\14;+\15" \
+ ">-\15A0\17D2\17F3\20G4\17\202H5\20\5I5\20K5\17K4\20K4\21K3\20\202K2\17" \
+ "\33J2\17K1\17L0\17L0\16J0\16K/\16L/\16K.\15J-\15J,\15I*\14H(\13I)\13" \
+ "K+\14L,\14O.\15U2\17X7\17\\9\20`=\21cA\23fC\24iF\25lI\26nJ\27pM\27rM" \
+ "\30\202tP\30\202vQ\31\3wR\30xS\31xS\32\202yS\32\35xT\32xS\32wR\30wR\31" \
+ "vP\30uO\30tN\27sM\27rK\26pI\26nG\25lE\24kD\24jC\24iB\23jC\24kD\24lE\25" \
+ "lF\25mH\26nI\25oJ\26pL\26qL\27qM\27rM\30sN\30sO\31tQ\31\202sP\31\202" \
+ "rP\31\33\210l5\302\264{\344\335\242\344\334\240\344\334\234\344\333\233" \
+ "\343\333\231\343\333\226\343\332\222\343\332\221\343\331\216\343\331" \
+ "\212\343\331\206\343\330\201\251\226NdG\26U@\25""4.\20/*\16)%\14#\36" \
+ "\12\35\31\10\26\23\6\20\16\4\12\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0" \
+ "\343\0\0\0\25\2\1\0\3\2\0\4\3\1\7\4\1\11\5\1\12\6\2\15\7\2\16\7\2\17" \
+ "\10\2\24\13\4\30\16\5\35\22\6\"\27\6(\33\10-\37\12""1$\13""6&\14;)\15" \
+ "=+\15\77-\16A/\16\202D0\17\17E1\17G1\17G0\17F/\17F.\16G.\16F.\16G-\15" \
+ "H.\16G-\15H-\15H,\15I,\15H,\15I+\14\202H*\14\31H)\14H(\13G'\12G&\12I" \
+ "'\12L*\14O.\15S0\16V4\17Z7\17^:\20a>\22e@\23hC\24iE\25lH\25nI\26pL\26" \
+ "rL\27tN\27uO\30vP\31wR\30xS\32yT\31\204zT\32\13yS\31yR\30xQ\30wP\30v" \
+ "N\27uM\27tL\27rJ\26rI\26pH\25oG\25\202nG\25\12oG\25pI\26qJ\26rL\27sM" \
+ "\27sN\30tN\27uO\30uP\27vQ\30\202vR\31\1vS\32\202uR\31\36tQ\31\224zC\307" \
+ "\272\203\344\335\246\344\335\245\344\335\242\344\334\240\344\334\235" \
+ "\344\333\233\343\333\231\343\333\226\343\332\223\343\332\221\343\331" \
+ "\216\343\331\212\343\331\207\343\330\201\275\254\\dH\27XC\25""5/\17""0" \
+ "+\17*%\15$\37\13\36\32\11\30\25\7\21\16\5\13\11\3\5\4\2\2\2\1\377\0\0" \
+ "\0\377\0\0\0\342\0\0\0\32\1\0\0\3\1\0\4\3\1\6\4\1\10\5\1\12\6\2\14\7" \
+ "\2\15\7\2\16\10\2\21\11\3\24\13\3\30\16\4\33\21\5!\25\6&\31\7*\34\10" \
+ ".\40\11""2#\13""6%\14:(\14<)\14=+\16\77,\16@,\15A-\15B+\16\202B+\15\3" \
+ "C+\15C*\15D*\15\203D*\14\37D)\14E)\14E(\13F)\13E'\13F'\13G'\13F'\12F" \
+ "&\12F%\12G%\12J'\12L)\13N,\14R0\15U1\16X5\17]7\20_;\21a=\21e@\22hB\23" \
+ "iD\24lF\24nH\26qJ\26rM\27tN\27vP\27wQ\31yR\30\202{T\32\202|U\31\202|" \
+ "T\31\10{S\32{S\31zR\31zQ\31xP\30wO\30vM\27uM\27\203sJ\27.tK\27tL\27u" \
+ "M\27uN\27wO\27wP\27wQ\31yR\30yS\31yT\31yS\32yT\32xS\31wS\31~[\"\246\217" \
+ "X\324\312\227\345\336\253\344\336\250\344\335\246\344\335\245\344\335" \
+ "\243\344\334\240\344\334\235\344\334\234\343\333\231\343\333\226\343" \
+ "\332\223\343\332\222\343\331\216\343\331\212\343\331\207\343\330\202" \
+ "\317\301kfJ\27ZC\26""60\20""1,\17+&\15%!\13\37\33\11\31\25\7\21\16\5" \
+ "\14\12\4\6\5\2\3\3\1\377\0\0\0\377\0\0\0\342\0\0\0\30\2\1\0\4\2\1\5\3" \
+ "\1\10\5\1\11\5\1\13\6\2\15\7\2\16\10\2\20\11\2\22\11\3\25\13\3\26\15" \
+ "\3\33\20\5\37\23\5#\26\6(\32\7,\35\11""0\37\11""2\"\12""5#\12""8%\13" \
+ ":&\14<'\14<'\13\202='\14\16>'\14\77&\13\77'\14@'\13@&\13A&\13A&\12B'" \
+ "\13B&\13D&\12C&\12C%\13E&\12E%\12\202F%\12\31G%\11H%\12I&\12J'\12K(\12" \
+ "O+\13R.\15T/\15X3\16[5\17]8\17`:\21c<\21f\77\22hA\23jC\24lE\24oH\25s" \
+ "K\26tL\27vN\27yQ\30{R\32|T\31}U\32\206|T\32\202|S\31\4{R\31zQ\30yO\27" \
+ "wO\30\202wN\30\5xO\30xP\27yQ\31zR\31{S\31\202|T\31\202|U\31&}V\32|V\31" \
+ "{U\32zT\32\222t<\276\253y\341\332\253\345\337\257\345\337\255\345\336" \
+ "\253\344\336\251\344\335\246\344\335\245\344\335\243\344\334\240\344" \
+ "\334\235\344\334\234\344\333\231\343\333\226\343\332\223\343\332\222" \
+ "\343\331\217\343\331\212\343\331\207\343\330\202\336\322ygJ\27[C\26""6" \
+ "0\20""1,\17,'\15&!\13\40\33\11\31\25\7\22\17\5\14\12\4\7\6\2\3\3\1\377" \
+ "\0\0\0\377\0\0\0\341\0\0\0\33\2\1\0\3\2\0\4\3\1\7\4\1\11\5\1\12\6\2\15" \
+ "\7\2\16\7\2\17\10\2\22\11\3\24\12\3\25\13\3\27\15\4\32\17\4\35\21\5!" \
+ "\23\5&\27\6)\32\7-\34\10""0\35\10""2\37\12""5!\12""7#\12""8#\12:$\13" \
+ ":$\12<$\12\202;#\12'<#\12=\"\12>#\11>$\11\77$\12@#\12B$\11A$\11B$\12" \
+ "B#\12D$\11E%\11E$\11G%\12I&\12J&\12J'\12K(\12M)\13O*\13R,\14S-\14V0\15" \
+ "Z3\16\\5\16^7\17a9\20d<\21f=\21h@\22lC\23oG\24rJ\26uL\27wO\30yQ\31|S" \
+ "\31|T\32}T\31\203~V\31\202\177V\32\3~T\31}T\31}S\31\202|S\31\1|R\31\202" \
+ "|R\27\3|S\31}S\31}T\31\202~V\31\202~V\33)\177W\33~V\33~V\32}U\32\210" \
+ "d*\261\233g\327\314\240\345\340\264\345\340\262\345\337\261\345\337\257" \
+ "\345\337\255\345\336\253\344\336\251\344\336\247\344\335\245\344\335" \
+ "\243\344\334\240\344\334\235\344\334\234\344\333\231\343\333\227\343" \
+ "\332\223\343\332\222\343\331\217\343\331\214\343\331\207\343\330\202" \
+ "\343\327}rV\36ZD\25""60\20""2-\17,'\16&!\13!\34\11\31\25\7\23\20\5\15" \
+ "\13\4\7\6\2\4\3\1\377\0\0\0\377\0\0\0\340\0\0\0\37\1\0\0\3\1\0\4\2\1" \
+ "\6\4\1\10\5\1\12\6\2\14\7\2\15\7\2\17\10\2\21\11\3\23\12\3\25\13\3\26" \
+ "\14\3\30\15\4\33\16\4\35\20\4!\21\4#\24\5(\30\6*\30\6-\32\10/\34\10""1" \
+ "\35\10""3\36\10""5\37\11""6\37\11""7\40\11""8\40\10""8\40\11""9\40\11" \
+ ";\40\11\202;!\10\4<!\11>\"\11\77!\10@\"\10\202B#\11$D$\11E%\11G%\11I" \
+ "&\12J'\12J(\12K(\12L(\12N)\13O)\13P*\13Q+\13S,\13V.\14X1\15[4\16]6\17" \
+ "_7\17b9\20e;\21g>\21kA\23oF\24qH\25uL\27xN\30{R\30|S\31}T\31\177V\32" \
+ "\200V\31\201V\31\201W\33\201V\31\201V\33\200V\33\202\200V\32\1\177V\31" \
+ "\203~T\32\5\177V\31\200V\33\201V\31\201W\33\202Y\32\202\202X\33*\201" \
+ "X\33\200X\32\210c(\252\220\\\313\277\224\345\341\271\345\340\267\345" \
+ "\340\266\345\340\264\345\340\262\345\337\261\345\337\257\345\337\255" \
+ "\345\336\253\344\336\251\344\336\247\344\335\245\344\335\243\344\334" \
+ "\240\344\334\236\344\334\234\344\333\231\343\333\227\343\332\224\343" \
+ "\332\222\343\331\217\343\331\214\343\331\207\343\330\202\343\327}\201" \
+ "e)[C\26""60\20""2-\17,'\16'#\14!\34\11\32\26\7\24\21\5\16\14\4\10\7\3" \
+ "\4\3\1\377\0\0\0\377\0\0\0\340\0\0\0*\2\1\0\4\2\1\5\3\1\7\4\1\11\5\1" \
+ "\13\6\2\15\7\2\16\10\2\20\11\2\23\12\3\25\13\3\25\14\3\30\15\4\32\16" \
+ "\4\33\17\4\36\20\4\37\20\5#\23\5%\24\5(\26\6*\30\6-\32\7""0\32\7""2\34" \
+ "\7""2\34\10""4\35\10""5\35\7""5\35\10""7\36\10""8\36\10""9\36\10""9\37" \
+ "\7;\40\10=!\10\77!\10@\"\11B#\12D$\12F%\12G'\12I(\12K)\13\202L*\13\33" \
+ "N+\13P,\14P+\14Q+\13R,\13R+\13S+\13T-\14V-\14X/\15Z1\15\\3\16_5\16b6" \
+ "\20e;\21g=\21kA\22oE\24sI\25vM\26yN\27|Q\27}S\31\177V\31\200V\33\201" \
+ "W\32\202Y\32\202\203Y\32\203\203Y\33\203\202W\32\1\203Y\33\202\204Y\33" \
+ "\1\203Y\33\202\204Y\33\202\203Y\33\4\212c*\250\215[\314\273\221\346\342" \
+ "\275\202\345\341\273&\345\341\271\345\340\267\345\340\266\345\340\264" \
+ "\345\340\262\345\337\261\345\337\257\345\337\255\345\336\253\344\336" \
+ "\251\344\336\247\344\335\245\344\335\243\344\334\240\344\334\236\344" \
+ "\334\234\344\333\231\343\333\227\343\332\224\343\332\222\343\331\217" \
+ "\343\331\214\343\331\207\343\330\202\343\327}\214r2YC\25""60\20""3-\17" \
+ "-(\16'#\14\"\35\12\33\27\10\24\21\5\16\14\4\10\7\3\4\3\1\1\1\0\377\0" \
+ "\0\0\377\0\0\0\306\0\0\0\206\1\1\0\222\0\0\0""5\1\0\0\3\2\0\4\3\1\6\4" \
+ "\1\11\5\1\12\6\2\15\7\2\16\7\2\17\10\2\22\11\3\24\12\3\25\14\3\27\15" \
+ "\4\31\16\4\33\17\4\35\20\4\36\20\5!\21\4#\22\5%\23\5(\25\5)\27\6,\30" \
+ "\6.\31\6/\32\7""0\32\7""2\33\7""4\34\10""6\34\10""8\35\10""9\36\10:\40" \
+ "\10<!\11\77#\11A#\11C%\11D%\13F&\13I(\13K*\13L+\14M+\14P,\14Q-\14R.\14" \
+ "S/\15T/\15T.\15S-\14U.\14T-\13V-\14U-\14\202X.\14\17[1\14\\1\16^3\16" \
+ "`5\17d:\20i=\20lA\22pE\23sH\24wL\26zN\30|R\31\177S\31\201V\32\202W\32" \
+ "\202\204Y\33\203\205Y\32\204\206Y\32\1\205Z\33\203\206Z\33\202\205Z\33" \
+ "\7\221j/\261\230h\315\300\232\346\342\302\346\342\300\346\342\277\346" \
+ "\342\275\202\345\341\273&\345\341\271\345\340\267\345\340\266\345\340" \
+ "\264\345\340\262\345\337\261\345\337\257\345\337\255\345\336\253\344" \
+ "\336\251\344\336\247\344\335\245\344\335\243\344\334\240\344\334\236" \
+ "\344\334\234\344\333\231\343\333\227\343\332\224\343\332\222\343\331" \
+ "\217\343\331\214\343\331\207\343\330\202\343\327}\225|8VB\25""71\20""3" \
+ "-\17-(\16($\14#\36\12\33\27\10\25\22\6\17\15\5\10\7\3\5\4\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\303\0\0\0\3\1\1\0\2\2\1\3\3\1\202\4\3\1\203\5\4\1\1" \
+ "\4\3\1\202\3\3\1\202\1\1\0\216\0\0\0/\2\1\0\4\2\1\5\3\1\10\5\1\11\5\1" \
+ "\14\7\2\15\7\2\17\10\2\21\11\3\23\12\3\25\13\3\26\14\3\30\15\4\33\16" \
+ "\4\34\17\4\36\20\4!\21\4!\22\5%\23\5(\25\5(\26\5+\30\6-\31\6/\32\7""0" \
+ "\32\7""2\33\7""5\35\7""6\36\10:\40\10;!\11<\"\11\77$\12B&\12C%\12D'\12" \
+ "G(\14J*\14L,\14M-\14P.\15R1\16S0\16T0\16U1\16W2\17X3\16W2\16\202Y2\15" \
+ "\26Y1\16X0\15X/\15Y/\14Y.\14[/\15\\1\15[0\15^2\15b5\16e8\16i;\20mA\21" \
+ "pD\24tI\25xL\26|P\30~S\31\201V\32\203X\33\205Y\32\206Y\32\205\206[\33" \
+ "\1\207\\\33\205\210\\\34\3\237}G\270\241u\326\313\250\202\346\343\305" \
+ "\5\346\343\303\346\342\302\346\342\300\346\342\277\346\342\275\202\345" \
+ "\341\273&\345\341\271\345\340\267\345\340\266\345\340\264\345\340\262" \
+ "\345\337\261\345\337\257\345\337\255\345\336\253\344\336\251\344\336" \
+ "\247\344\335\245\344\335\243\344\334\240\344\334\236\344\334\234\344" \
+ "\333\231\343\333\227\343\332\224\343\332\222\343\331\217\343\331\214" \
+ "\343\331\207\343\330\202\343\327}\234\204>T\77\24""71\20""4.\20.)\16" \
+ "($\14#\36\12\33\27\10\25\22\6\17\15\5\11\10\3\5\4\1\1\1\0\377\0\0\0\377" \
+ "\0\0\0\302\0\0\0\5\1\1\0\3\3\1\5\4\1\5\4\2\7\6\2\205\10\7\3\5\7\6\2\6" \
+ "\5\2\5\4\2\5\4\1\4\3\1\202\3\3\1\202\2\2\1\210\1\1\0""0\2\1\0\4\3\0\5" \
+ "\3\1\10\5\1\12\6\1\14\7\2\15\7\2\17\11\2\21\12\2\23\12\3\26\15\4\27\16" \
+ "\4\32\17\5\35\20\5\36\21\5!\21\4\"\22\6$\24\5&\25\6(\26\6*\30\6-\32\6" \
+ "0\34\7""1\33\10""3\34\10""6\37\10""8\40\10:\"\11;\"\11>#\12@&\12C'\13" \
+ "D(\13G)\14I+\14K-\15M-\15O/\16Q0\16T2\17V4\17V4\16Y6\17Z7\20[7\20]7\17" \
+ "]8\17^8\17\203]6\17\25\\4\16\\3\16\\2\15\\1\15[0\15^1\15^2\15a3\15b5" \
+ "\16e8\20i=\21nA\22rE\23wI\25{M\26~Q\27\201U\31\204X\32\204Y\33\207[\33" \
+ "\207\\\33\202\210\\\33\204\211\\\34\10\212]\34\223i-\252\214Z\310\270" \
+ "\222\340\332\277\346\343\311\346\343\310\346\343\307\202\346\343\305" \
+ "\5\346\343\303\346\342\302\346\342\300\346\342\277\346\342\275\202\345" \
+ "\341\273&\345\341\271\345\340\267\345\340\266\345\340\264\345\340\262" \
+ "\345\337\261\345\337\257\345\337\255\345\336\253\344\336\251\344\336" \
+ "\247\344\335\245\344\335\243\344\334\240\344\334\236\344\334\234\344" \
+ "\333\231\343\333\227\343\332\224\343\332\222\343\331\217\343\331\214" \
+ "\343\331\207\343\330\202\343\327}\244\214CP>\24""71\20""4.\20.)\16)%" \
+ "\14#\36\12\34\30\10\26\23\6\17\15\4\11\10\3\5\4\1\1\1\0\377\0\0\0\377" \
+ "\0\0\0\301\0\0\0\6\2\2\1\4\3\1\6\5\2\10\7\3\12\11\3\14\12\4\202\15\13" \
+ "\4\202\16\14\4\10\15\13\4\14\12\4\13\11\3\12\11\3\11\10\3\10\7\3\7\6" \
+ "\2\6\5\2\202\5\4\2\203\5\4\1\205\4\3\1G\6\3\1\7\4\2\12\6\2\14\7\2\15" \
+ "\10\3\20\12\3\23\13\3\24\14\3\26\15\4\30\16\4\31\17\5\34\21\6\36\22\5" \
+ "\37\23\5\"\25\6$\26\6(\27\6)\27\6+\31\6-\32\7""0\34\10""2\35\10""5\36" \
+ "\11""7\40\11""9\"\11;#\11=$\13\77%\13B'\13E)\13E*\15H,\15K-\15L/\15N" \
+ "/\16P1\16T3\17U5\17W6\20Y8\20[9\20]:\20_;\21`;\21a<\21b=\21b<\21c=\21" \
+ "c<\21b:\21b9\20b8\16a5\20_5\17^4\16_3\15_2\15a2\15b4\16e7\17i9\17m>\21" \
+ "pA\22uF\23yK\25|O\27\177R\30\203V\32\205Y\33\210[\33\211\\\34\204\212" \
+ "]\34\13\217b#\246\204P\275\247}\330\316\261\346\343\316\346\343\315\346" \
+ "\343\313\346\343\312\346\343\311\346\343\310\346\343\306\202\346\343" \
+ "\305\5\346\343\303\346\342\302\346\342\300\346\342\277\346\341\275\202" \
+ "\345\341\273&\345\341\271\345\340\267\345\340\266\345\340\264\345\340" \
+ "\262\345\337\261\345\337\257\345\337\255\345\336\253\344\336\251\344" \
+ "\336\247\344\335\245\344\335\243\344\334\240\344\334\236\344\334\234" \
+ "\344\333\231\343\333\227\343\332\223\343\332\222\343\331\217\343\331" \
+ "\214\343\331\207\343\330\202\343\327}\246\216BL=\24""71\20""4.\20.)\16" \
+ ")%\14#\36\12\34\30\10\26\23\6\17\15\4\11\10\3\5\4\1\1\1\0\377\0\0\0\377" \
+ "\0\0\0\300\0\0\0\10\3\3\1\5\4\1\7\6\2\12\11\3\15\13\4\17\15\4\21\16\5" \
+ "\22\17\5\204\23\20\5\10\22\17\5\21\16\5\20\16\4\17\15\5\16\14\4\15\13" \
+ "\4\14\12\4\13\11\3\202\12\11\3\203\11\10\3\203\10\7\3-\11\7\3\13\11\3" \
+ "\15\12\4\17\13\4\21\14\4\22\15\5\25\16\5\26\17\5\30\20\5\33\21\5\36\23" \
+ "\6\37\24\5!\25\6#\27\6%\30\6(\31\7*\32\10-\34\10""0\35\10""2\37\11""3" \
+ "\40\11""7\"\12""9#\12:%\13<%\13\77&\13@(\14C*\14F+\15H-\15J/\16L0\16" \
+ "N1\17O3\17S4\20U6\17W6\20X8\21[:\21];\21_=\21`>\22c@\23e@\23fA\23\203" \
+ "hB\23\36hA\23g\77\22g>\21g=\21f<\20d:\21c7\20c7\17b4\16b4\15b4\16e6\17" \
+ "g8\16l<\20o@\21rD\22vH\25zL\26\177Q\30\203U\32\207Y\32\211\\\33\212]" \
+ "\34\213^\34\216b!\243\200L\272\242x\321\303\245\346\342\317\347\344\320" \
+ "\202\347\344\317\7\346\343\316\346\343\314\346\343\313\346\343\312\346" \
+ "\343\311\346\343\307\346\343\306\202\346\343\305\5\346\342\303\346\342" \
+ "\302\346\342\300\346\342\276\346\341\275\202\345\341\273&\345\341\271" \
+ "\345\340\267\345\340\266\345\340\264\345\340\262\345\337\261\345\337" \
+ "\257\345\337\255\345\336\253\344\336\251\344\336\247\344\335\245\344" \
+ "\335\243\344\334\240\344\334\235\344\334\234\344\333\231\343\333\227" \
+ "\343\332\223\343\332\222\343\331\217\343\331\212\343\331\207\343\330" \
+ "\202\343\327}\246\217BG9\23""71\20""4.\20/*\16)%\14#\36\12\34\30\10\26" \
+ "\23\6\17\15\4\11\10\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\277\0\0\0\11\2" \
+ "\2\1\5\4\1\10\7\3\13\11\3\17\15\5\21\16\5\24\21\5\27\24\6\30\25\7\205" \
+ "\31\25\7\10\30\25\7\27\24\6\25\22\6\24\21\5\23\20\5\22\17\5\21\16\5\20" \
+ "\16\4\203\17\15\4\202\17\15\5\202\16\14\4""0\20\14\4\21\15\5\23\17\5" \
+ "\25\20\5\27\22\6\31\22\6\34\23\6\35\24\6\40\26\7!\26\7$\31\7&\33\10)" \
+ "\34\10*\34\10+\35\10""0\37\11""0\40\11""3!\12""5\"\13""7#\13:&\13<'\13" \
+ ">'\14A*\15C,\15E-\15G-\15I/\16L0\17M2\17P4\20R5\20T7\20V9\22X9\21[;\21" \
+ "]<\21_>\22`>\23b@\23eC\23gC\24iE\24iE\25kF\25mG\25nG\25mG\25\202mE\24" \
+ "\7mC\24kA\23i\77\22i=\20f:\17f8\17e6\17\202e5\16\23h8\16j9\20m>\21p@" \
+ "\22vE\23yI\25~N\27\202S\30\205W\31\211[\33\213^\34\214^\34\223h*\345" \
+ "\341\317\347\345\324\347\344\323\347\344\322\347\344\321\347\344\320" \
+ "\202\347\344\3176\346\343\315\346\343\314\346\343\313\346\343\312\346" \
+ "\343\311\346\343\307\346\343\306\346\343\305\346\343\304\346\342\303" \
+ "\346\342\302\346\342\300\346\342\276\346\341\275\345\341\273\345\341" \
+ "\272\345\341\271\345\340\267\345\340\266\345\340\263\345\340\262\345" \
+ "\337\261\345\337\256\345\337\255\345\336\253\344\336\251\344\335\246" \
+ "\344\335\245\344\335\243\337\325\230\275\247i\344\334\234\344\333\231" \
+ "\343\333\226\343\332\223\343\332\222\343\331\217\343\331\212\343\331" \
+ "\207\343\330\202\343\327{\250\220D@6\21""71\20""4.\20/*\16)%\14#\36\12" \
+ "\34\30\10\26\23\6\17\15\4\11\10\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\276" \
+ "\0\0\0\13\1\1\0\5\4\1\7\6\2\13\11\3\17\15\4\23\20\5\27\24\6\31\25\7\34" \
+ "\30\10\36\32\11\40\33\11\202!\34\11\6\40\33\11\37\33\11\36\32\11\35\31" \
+ "\10\33\27\10\32\26\7\202\31\25\7\1\30\25\7\202\27\24\6\202\26\23\6\203" \
+ "\25\22\6\6\26\22\6\26\23\6\30\24\6\32\25\6\35\26\7\37\27\7\202!\31\7" \
+ "\77$\32\10'\34\11)\35\11*\36\11,\37\12.\40\12""1\"\12""2#\13""5$\13""7" \
+ "&\14:'\14=)\15=*\15@+\15D-\16E.\16F.\16I1\16K2\17N3\20P6\17R7\20T9\21" \
+ "V:\21W:\21Z<\22\\=\22^\77\23`A\23bA\24dC\24fD\24hF\25iG\26lH\26mI\26" \
+ "oK\26qL\26sK\27sM\27sL\27rJ\26rI\26qG\25pE\24nD\23l@\21j>\21h;\20h9\17" \
+ "g8\16h7\15i8\17l:\20o\77\21tB\22xG\24{K\25\200P\27\204T\31\210X\32\213" \
+ "\\\34\216_\35\202\217_\34>\342\337\314\347\344\324\347\344\323\347\344" \
+ "\322\347\344\321\347\344\320\347\344\317\347\343\316\346\343\315\346" \
+ "\343\314\346\343\313\346\343\312\346\343\311\346\343\307\346\343\306" \
+ "\346\343\305\346\343\304\346\342\303\346\342\301\346\342\300\346\342" \
+ "\276\346\341\275\345\341\273\345\341\272\345\341\271\345\340\267\345" \
+ "\340\265\345\340\263\345\340\262\345\337\260\345\337\256\345\337\255" \
+ "\345\336\253\344\336\250\344\335\246\344\335\245\315\276\203\214h+\245" \
+ "\212L\344\334\234\343\333\231\343\333\226\343\332\223\343\332\222\343" \
+ "\331\216\343\331\212\343\331\207\343\330\201\343\327{\252\222F:2\21""7" \
+ "1\20""4.\20/*\16)%\14#\36\12\34\30\10\26\23\6\17\15\4\11\10\3\5\4\1\1" \
+ "\1\0\377\0\0\0\377\0\0\0\275\0\0\0\13\1\1\0\3\3\1\6\5\2\13\11\3\17\15" \
+ "\4\23\20\5\30\25\7\33\27\10\37\33\11#\36\12$\37\13\205&!\13\1$\37\13" \
+ "\202#\36\12\4\"\35\12\40\33\11\37\33\11\36\32\11\202\35\31\10\202\34" \
+ "\30\10\203\33\27\10""0\35\31\10\36\32\11!\34\11\"\33\11#\34\11%\35\11" \
+ "(\36\11)\37\11+\40\13-\"\13/#\13""1%\14""3%\14""5'\14""8'\14;)\15<+\15" \
+ "=+\15A.\17C/\17D0\17G1\16H2\17L4\17N5\20O6\21Q7\21T8\21V:\22X<\22Z>\22" \
+ "\\\77\23]\77\23`B\24bB\24cD\24eD\25hF\26jH\26kI\26mK\27pK\27pM\27sM\30" \
+ "tO\30uO\31wQ\30xQ\31\202xP\30\24uM\27uK\26sI\25sF\24oC\23nA\22m>\22k" \
+ ";\17j9\17h8\17l9\17o;\20q\77\21wD\22yG\24~L\26\202Q\30\205U\32\212Y\32" \
+ "\216]\33\203\217_\34>\326\312\256\347\344\324\347\344\323\347\344\322" \
+ "\347\344\321\347\344\320\347\344\317\347\343\316\346\343\315\346\343" \
+ "\314\346\343\313\346\343\312\346\343\310\346\343\307\346\343\306\346" \
+ "\343\305\346\343\304\346\342\302\346\342\301\346\342\300\346\342\276" \
+ "\346\341\274\345\341\273\345\341\272\345\341\270\345\340\267\345\340" \
+ "\265\345\340\263\345\337\261\345\337\260\345\337\256\345\337\255\344" \
+ "\336\252\344\336\250\340\327\240\262\230\\\203Z\35\202Y\32\256\224U\344" \
+ "\333\233\343\333\231\343\333\226\343\332\223\343\332\221\343\331\216" \
+ "\343\331\212\343\331\206\343\330\201\343\327{\244\215B92\21""71\20""4" \
+ ".\20/*\16)%\14#\36\12\34\30\10\26\23\6\17\15\4\11\10\3\5\4\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\275\0\0\0\14\2\2\1\5\4\1\11\10\3\16\14\4\22\17\5\30" \
+ "\25\7\34\30\10!\34\11$\37\13'#\14+&\15,'\15\202,'\16\6,'\15+&\15*%\15" \
+ ")%\14($\14'#\14\202&!\13\202$\37\13\205#\36\12K\"\36\12#\37\12%\40\13" \
+ "'\40\13)!\13+\"\13-$\14.%\14""1%\15""2&\15""3'\15""6)\15""8+\16;+\16" \
+ "=-\16>-\16@.\17C0\17E1\20F3\17H4\20K6\21M7\21P9\22Q9\21S:\21V<\22W=\22" \
+ "Z>\23[@\24]A\24_A\24aD\24cD\25eF\26fG\26iH\26kJ\27lJ\26mL\27pN\27rN\30" \
+ "tP\31tP\30vQ\30xR\31yT\31{T\32|U\31}U\32|T\32{R\31yN\27wM\26uI\26sF\24" \
+ "qB\23p@\21n>\21l;\21l9\20m:\20p<\20s@\21wE\22zH\25\177M\26\204R\27\210" \
+ "V\31\214Z\33\215^\33\220_\34\221`\34\222a\35\310\266\222\202\347\344" \
+ "\323\2\347\344\322\347\344\320\202\347\344\317\7\347\343\316\346\343" \
+ "\315\346\343\314\346\343\312\346\343\311\346\343\310\346\343\307\202" \
+ "\346\343\305\23\346\343\304\346\342\302\346\342\301\346\342\277\346\342" \
+ "\276\346\341\274\345\341\273\345\341\272\345\341\270\345\340\267\345" \
+ "\340\264\345\340\263\345\337\261\345\337\260\345\337\256\345\336\254" \
+ "\344\336\252\306\263z\222j+\202\205Z\33\31\203Y\33\264\232\\\344\333" \
+ "\233\343\333\231\343\332\225\343\332\222\343\332\221\343\331\216\343" \
+ "\331\211\343\331\206\343\330\201\343\327{\230\201;92\21""71\20""4.\20" \
+ ".)\16)%\14#\36\12\34\30\10\26\23\6\17\15\4\11\10\3\5\4\1\1\1\0\377\0" \
+ "\0\0\377\0\0\0\274\0\0\0\15\1\1\0\3\3\1\7\6\2\14\12\4\21\16\5\26\23\6" \
+ "\33\27\10!\34\11%!\13)%\14,'\16""0+\17""2-\17\2023-\17\7""2-\17""1,\17" \
+ "/*\16.)\16-(\16,'\16,'\15\202+&\15\1*%\15\203)%\14\202($\14\1)$\14\202" \
+ "+%\15D.&\15""0'\15""1(\15""5*\16""4)\16""7+\17""9,\17;.\17=/\20>/\17" \
+ "@1\17C2\20E3\20G5\20H5\20K7\21M9\21O:\21Q:\22R;\22U=\23X\77\23Y@\24Z" \
+ "@\24]B\24^C\24`E\25cE\25cF\26eH\27hI\27jJ\27kK\27mK\30oM\30pN\30rO\30" \
+ "sP\31uQ\31vR\31xS\31zT\31zT\32|V\31}V\32~V\32\177W\33\200W\32~T\31|R" \
+ "\27{O\27xM\26wJ\25uF\23qB\23p@\21o=\20n:\17o;\17q>\17uA\21yE\23|J\25" \
+ "\202M\26\205R\30\211V\32\214[\33\217^\34\202\222a\35\6\223a\35\272\236" \
+ "q\347\344\323\347\344\322\347\344\321\347\344\320\202\347\344\317\7\346" \
+ "\343\316\346\343\315\346\343\314\346\343\312\346\343\311\346\343\310" \
+ "\346\343\307\202\346\343\305\24\346\343\303\346\342\302\346\342\301\346" \
+ "\342\277\346\342\275\346\341\274\345\341\273\345\341\272\345\340\270" \
+ "\345\340\266\345\340\264\345\340\263\345\337\261\345\337\260\345\337" \
+ "\256\323\303\216\240{\77\210\\\34\207[\34\206Z\33\202\205Z\33\30\300" \
+ "\254m\344\333\233\343\333\230\343\332\225\343\332\222\343\332\221\343" \
+ "\331\215\343\331\211\343\331\206\343\330\201\343\326x\214y692\21""71" \
+ "\20""4.\20.)\16($\14#\36\12\34\30\10\25\22\6\17\15\5\11\10\3\5\4\1\1" \
+ "\1\0\377\0\0\0\377\0\0\0\274\0\0\0\14\1\1\0\5\4\1\11\10\3\17\15\5\24" \
+ "\21\5\31\25\7\37\33\11$\37\13)%\14-(\16""2-\17""60\20\20271\20\20360" \
+ "\20\5""5/\17""4.\20""3-\17""2-\17""1,\17\2020+\17\202/*\16\203.)\16\14" \
+ "/)\16""0)\16""1+\17""4+\17""5,\17""6,\16""8-\17""9.\17<0\20>1\20\77""2" \
+ "\17@2\17\202D5\21KG6\21H7\22J8\22L9\22O:\23P;\23R=\23S>\23V@\24X@\24" \
+ "ZA\24[B\25]C\25_D\25aE\25bG\26dH\27fH\27hJ\27jK\30kL\30lM\27nM\31pO\31" \
+ "qP\30sP\31uQ\32uR\31vS\32wS\31zT\31zT\32\210f1\233\177R\254\226p\276" \
+ "\255\222\243\207\\\202X\33\201V\33\177U\31~R\30|O\27zL\26wI\25tD\23t" \
+ "B\22s@\21o<\20q<\20s>\20vC\22zE\23~J\24\201N\26\207S\31\212X\31\216\\" \
+ "\33\221_\34\223a\35\224b\35\225c\35\257\213U\347\344\323\347\344\322" \
+ "\347\344\321\347\344\320\347\344\317\347\343\316\346\343\315\346\343" \
+ "\314\346\343\313\346\343\312\346\343\311\346\343\307\346\343\306\202" \
+ "\346\343\305\5\346\342\303\346\342\302\346\342\300\346\342\277\346\342" \
+ "\275\202\345\341\273\10\345\341\271\345\340\270\345\340\266\345\340\264" \
+ "\345\340\262\345\337\261\327\314\230\252\210L\202\213^\34\1\212]\34\202" \
+ "\210\\\34\32\207[\33\205Z\33\317\277\201\344\333\232\343\333\230\343" \
+ "\332\225\343\332\222\343\331\220\343\331\215\343\331\211\343\330\204" \
+ "\343\330~\343\326x}m092\21""71\20""3-\17.)\16($\14#\36\12\33\27\10\25" \
+ "\22\6\17\15\5\11\10\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\274\0\0\0\14\3" \
+ "\3\1\6\5\2\14\12\4\21\16\5\27\24\6\34\30\10#\36\12'#\14,'\16""1,\17""6" \
+ "0\20""82\20\20492\21\20282\20\1""71\20\20360\20\2025/\17\2044.\20""0" \
+ "3-\17""5.\17""6/\20""7/\17""90\20:0\20<2\21>3\21\77""3\20A4\21B5\21E" \
+ "7\21F8\22I9\22H9\22K9\22M;\23O=\23Q=\23R>\24U@\24WA\24YB\25ZC\25[B\25" \
+ "^E\25_E\26aG\26cH\26dH\27eH\27hJ\27iK\27jL\30lM\30lM\27nM\30pO\31qP\30" \
+ "rP\31vT\36\214o@\237\210`\256\235|\276\257\227\322\312\271\344\341\331" \
+ "\350\347\341\203\350\347\342\35\301\257\224\202Y\33\203Y\33\202V\31\200" \
+ "S\30~Q\27{M\27zJ\25yG\24wD\22sA\21s\77\21s=\20u\77\20wA\21|F\23\200K" \
+ "\25\203N\26\210S\30\215Y\32\217\\\32\222_\34\225b\35\225d\35\226d\35" \
+ "\243u8\347\344\323\347\344\322\347\344\321\202\347\344\317\17\347\343" \
+ "\316\346\343\315\346\343\314\346\343\313\346\343\312\346\343\311\346" \
+ "\343\307\346\343\306\346\343\305\346\343\304\346\342\303\346\342\302" \
+ "\346\342\300\346\342\276\346\341\275\202\345\341\273'\345\341\271\345" \
+ "\340\267\345\340\266\345\340\264\327\312\232\260\217T\220a\36\217_\34" \
+ "\216_\35\214^\34\213^\34\212]\34\211\\\34\210\\\34\207[\33\336\324\224" \
+ "\344\333\232\343\333\227\343\332\224\343\332\222\343\331\220\343\331" \
+ "\214\343\331\210\343\330\204\343\330~\342\326ueY&92\21""71\20""3-\17" \
+ "-(\16'#\14\"\35\12\33\27\10\25\22\6\16\14\4\10\7\3\4\3\1\1\1\0\377\0" \
+ "\0\0\377\0\0\0\273\0\0\0\14\1\1\0\4\3\1\10\7\3\16\14\4\23\20\5\31\25" \
+ "\7\40\33\11%!\13+&\15/*\16""4.\20""82\20\20292\21\3\232\221^\201zMF>" \
+ "\33\20592\21\20382\20\20571\20\20291\20\7<3\21>4\21\77""4\21@5\21A6\21" \
+ "C7\21E8\22\202H:\22\35J:\23L;\23M=\23O=\24Q>\24S\77\24T@\25VA\25XC\25" \
+ "YC\25[D\26[E\26_E\26_F\27aG\27cH\27dI\27eJ\27gJ\27hK\27jL\30}b3\206n" \
+ "A\240\212f\253\233{\271\254\221\320\310\266\334\331\314\347\346\336\202" \
+ "\347\346\337\203\350\347\340\205\350\347\341\2\324\313\271\204Y\33\202" \
+ "\205Y\33\31\202V\31\202S\31\177O\30|K\26yI\24wE\23wC\22vA\21v>\20v\77" \
+ "\21yC\22}F\23\201K\25\206O\26\210T\30\213X\32\220\\\32\222_\33\226b\35" \
+ "\230c\36\227d\36\232f\40\345\341\316\347\344\321\347\344\320\202\347" \
+ "\344\317\7\346\343\316\346\343\315\346\343\314\346\343\312\346\343\311" \
+ "\346\343\310\346\343\307\202\346\343\305\14\346\343\304\346\342\302\346" \
+ "\342\301\346\342\300\346\342\276\346\341\274\345\341\273\345\341\272" \
+ "\345\341\271\345\340\267\326\306\226\255\212M\202\222a\35\1\220`\34\202" \
+ "\217_\34\36\216_\35\216^\35\213^\34\212]\34\211\\\34\217f&\344\334\234" \
+ "\344\333\231\343\333\227\343\332\224\343\332\222\343\331\217\343\331" \
+ "\214\343\331\210\343\330\202\343\327}\342\326uPG\35""92\21""60\20""3" \
+ "-\17-(\16'#\14\"\35\12\32\26\7\24\21\5\16\14\4\10\7\3\4\3\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\273\0\0\0\13\2\2\1\5\4\2\12\11\3\20\16\4\26\23\6\33" \
+ "\27\10#\36\12'#\14,'\16""2-\17""60\20\20292\21\10SM%\344\333\231\344" \
+ "\334\234\344\334\236\274\264\177\217\210Zph@NG#\21092\21\14:2\21;4\21" \
+ ">5\21\77""5\21@5\21A6\22C7\22E8\22F:\23I;\23H:\23K<\24\202N=\24\22P>" \
+ "\24Q\77\24S\77\24S@\24VB\25XC\25YC\25[C\26\\D\26`G\30zf;}g\77\230\210" \
+ "d\230\207c\263\246\213\267\254\217\315\307\261\330\323\301\202\347\345" \
+ "\331\1\347\346\332\202\347\346\333\1\347\346\334\202\347\346\335\202" \
+ "\347\346\336\202\347\346\337\1\350\346\337\206\350\347\340\30\347\345" \
+ "\335\210_\"\206Z\33\205Z\33\204W\32\203U\30\201R\30\177M\26}K\25zG\24" \
+ "yD\22wA\21v>\21w\77\21{D\22~F\23\202J\25\206O\26\213T\30\216X\31\221" \
+ "\\\33\225`\34\230b\35\231e\36\202\232e\36\14\333\317\264\347\344\321" \
+ "\347\344\320\347\344\317\347\343\316\346\343\315\346\343\314\346\343" \
+ "\313\346\343\312\346\343\311\346\343\310\346\343\306\202\346\343\305" \
+ "\15\346\343\303\346\342\302\346\342\301\346\342\277\346\342\275\346\341" \
+ "\274\345\341\273\345\341\272\314\271\207\250\202C\225c\35\224b\35\223" \
+ "a\35\202\222a\35\1\221`\34\203\217_\34\1\216^\35\202\213^\34\30\237{" \
+ ";\344\334\234\343\333\231\343\333\226\343\332\223\343\332\222\343\331" \
+ "\217\343\331\212\343\331\207\343\330\202\343\327}\342\325r@8\24""92\21" \
+ "60\20""2-\17,'\16&!\13!\34\11\32\26\7\23\20\5\15\13\4\7\6\2\4\3\1\377" \
+ "\0\0\0\377\0\0\0\273\0\0\0\14\1\1\0\3\3\1\7\6\2\14\12\4\21\16\5\30\25" \
+ "\7\36\32\11$\37\13*%\15/*\16""4.\20""71\20\20292\21\16\211\201P\344\333" \
+ "\231\344\334\234\344\334\235\344\334\240\344\335\243\344\335\245\344" \
+ "\335\246\344\336\250\301\273\214\262\254\177\240\232p\231\222j~wQ\202" \
+ "~wS\26_X5^W2^V3`W3bX4cZ5eZ5g[5g[7h[6j]7\202wS\212\177[\214\177\\\215" \
+ "\201\\\232\217k\254\242\202\255\242\202\256\245\205\313\304\251\313\305" \
+ "\252\333\330\300\202\347\344\321\5\347\344\322\347\344\323\347\345\324" \
+ "\347\345\325\347\345\326\202\347\345\327\1\347\345\330\202\347\345\331" \
+ "\2\347\346\331\347\346\332\202\347\346\333\202\347\346\334\202\347\346" \
+ "\335\202\347\346\336\203\347\346\337\202\350\346\337\202\350\347\340" \
+ "\34\350\346\337\234yE\207[\34\207Z\33\207Y\32\204V\31\204S\27\202P\27" \
+ "~L\26|I\24{F\23zC\22x@\21zA\21|C\22\200H\23\203K\24\210P\27\213S\30\220" \
+ "X\32\224\\\33\226a\34\231c\35\232e\36\233f\36\234f\37\320\276\234\347" \
+ "\344\320\202\347\344\317\31\347\343\316\346\343\315\346\343\314\346\343" \
+ "\313\346\343\312\346\343\311\346\343\307\346\343\306\346\343\305\346" \
+ "\343\304\346\342\303\346\342\302\346\342\300\346\342\277\346\342\275" \
+ "\337\327\260\304\252v\242s0\227d\36\230c\36\230d\36\225d\35\225c\35\224" \
+ "b\35\223a\35\202\222a\35\1\220`\34\202\217_\34\16\216^\35\214^\34\263" \
+ "\226U\344\333\233\343\333\231\343\333\226\343\332\222\343\332\221\343" \
+ "\331\216\343\331\212\343\331\207\343\330\201\343\327{\323\305h\20292" \
+ "\21\12""60\20""1,\17,'\15&!\13\40\33\11\31\25\7\22\17\5\15\13\4\7\6\2" \
+ "\3\3\1\377\0\0\0\377\0\0\0\273\0\0\0\14\1\1\0\4\3\1\10\7\3\16\14\4\23" \
+ "\20\5\31\25\7!\34\11&!\13,'\15""1,\17""60\20""82\20\20292\21\23\252\242" \
+ "h\343\333\231\344\333\233\344\334\234\344\334\240\344\335\242\344\335" \
+ "\244\344\335\246\344\336\247\344\336\252\345\336\254\345\337\256\345" \
+ "\337\260\345\337\261\345\340\262\345\340\264\345\340\266\345\340\270" \
+ "\345\341\271\202\345\341\273\17\346\341\275\346\342\277\346\342\300\346" \
+ "\342\302\346\342\303\346\343\304\346\343\305\346\343\306\346\343\307" \
+ "\346\343\310\346\343\311\346\343\312\346\343\314\346\343\315\346\343" \
+ "\316\202\347\344\317\3\347\344\320\347\344\321\347\344\322\202\347\344" \
+ "\323\5\347\345\324\347\345\325\347\345\326\347\345\327\347\345\330\203" \
+ "\347\345\331\2\347\346\331\347\346\332\202\347\346\333\202\347\346\334" \
+ "\203\347\346\335\204\347\346\336\204\347\346\337$\262\230r\210\\\34\211" \
+ "\\\33\210Z\32\207W\32\205T\31\203R\27\203M\26~K\25~H\24|E\22|C\21{B\21" \
+ "~D\22\200G\23\205L\25\212P\27\215T\30\221Y\31\225]\33\227`\34\231d\35" \
+ "\234f\36\235f\37\236g\37\305\253\200\347\344\320\347\344\317\347\343" \
+ "\316\346\343\315\346\343\314\346\343\313\346\343\312\346\343\311\346" \
+ "\343\310\346\343\307\202\346\343\305\7\346\343\304\346\342\302\346\342" \
+ "\301\346\342\300\323\302\227\266\221V\237k%\202\233f\36\10\232e\36\231" \
+ "d\36\230d\36\226c\36\226b\35\225b\35\224b\35\223a\35\202\222a\35\1\220" \
+ "`\34\202\217_\34\31\216_\35\310\263r\344\333\232\343\333\230\343\332" \
+ "\225\343\332\222\343\332\221\343\331\215\343\331\211\343\331\206\343" \
+ "\330\201\343\326x\275\257W92\21""82\20""60\20""1,\17+&\15&!\13\37\33" \
+ "\11\31\25\7\22\17\5\14\12\4\6\5\2\3\3\1\377\0\0\0\377\0\0\0\273\0\0\0" \
+ "\13\2\2\1\5\4\1\11\10\3\17\15\5\25\22\6\33\27\10\"\35\12'#\14-(\16""3" \
+ "-\17""71\20\20392\21\33\263\254p\343\333\230\344\333\232\344\334\234" \
+ "\344\334\237\344\335\241\344\335\243\344\335\245\344\336\247\344\336" \
+ "\251\345\336\253\345\337\255\345\337\257\345\337\261\345\340\262\345" \
+ "\340\264\345\340\266\345\340\267\345\341\271\345\341\272\345\341\273" \
+ "\346\341\274\346\342\276\346\342\300\346\342\301\346\342\302\346\343" \
+ "\304\202\346\343\305\10\346\343\307\346\343\310\346\343\311\346\343\312" \
+ "\346\343\313\346\343\314\346\343\315\347\343\316\202\347\344\317\6\347" \
+ "\344\320\347\344\321\347\344\322\347\344\323\347\344\324\347\345\325" \
+ "\202\347\345\326\2\347\345\327\347\345\330\203\347\345\331\2\347\346" \
+ "\331\347\346\332\202\347\346\333\203\347\346\334\203\347\346\335\206" \
+ "\347\346\336\27\303\262\225\212]\34\213]\33\212[\32\210Y\33\207V\31\206" \
+ "R\27\203P\26\201M\26\200I\24~G\23}D\22}C\22\200E\22\203H\23\207L\25\212" \
+ "P\26\216U\30\222Y\32\226^\33\230`\34\232d\35\236f\36\202\237h\37\1\275" \
+ "\233h\202\347\344\317\10\347\343\316\346\343\315\346\343\314\346\343" \
+ "\313\346\343\312\346\343\311\346\343\307\346\343\306\202\346\343\305" \
+ "\5\346\343\303\337\326\261\305\250t\252z8\237h\37\202\236g\37\13\235" \
+ "f\37\234f\37\233e\36\232d\35\231d\35\227c\35\226c\35\226b\35\225b\35" \
+ "\225c\35\224b\35\202\222a\35\1\221`\34\202\217_\34\30\334\316\217\344" \
+ "\333\232\343\333\227\343\332\224\343\332\222\343\331\220\343\331\215" \
+ "\343\331\210\343\330\204\343\330~\343\326x\237\225J92\21""82\20""5/\17" \
+ "0+\17+&\15$\37\13\36\32\11\30\25\7\21\16\5\13\11\3\6\5\2\3\3\1\377\0" \
+ "\0\0\377\0\0\0\273\0\0\0\13\3\3\1\5\4\2\12\11\3\17\15\4\26\23\6\34\30" \
+ "\10#\36\12)%\14.)\16""4.\20""82\20\20392\21\33\241\231b\343\333\227\344" \
+ "\333\232\344\334\234\344\334\236\344\334\240\344\335\243\344\335\245" \
+ "\344\336\247\344\336\251\345\336\253\345\337\255\345\337\256\345\337" \
+ "\260\345\340\262\345\340\263\345\340\265\345\340\267\345\341\270\345" \
+ "\341\272\345\341\273\346\341\274\346\342\275\346\342\277\346\342\300" \
+ "\346\342\302\346\343\303\202\346\343\305\3\346\343\306\346\343\307\346" \
+ "\343\311\202\346\343\312\3\346\343\314\346\343\315\346\343\316\202\347" \
+ "\344\317\3\347\344\320\347\344\321\347\344\322\202\347\344\323\3\347" \
+ "\345\324\347\345\325\347\345\326\202\347\345\327\1\347\345\330\204\347" \
+ "\345\331\202\347\346\332\202\347\346\333\203\347\346\334\207\347\346" \
+ "\335\1\327\317\275\202\213^\34\24\214]\33\213Z\32\212X\32\206S\30\206" \
+ "Q\27\204N\26\201J\24\200H\23\200E\22\177D\22\200E\22\203I\23\210N\25" \
+ "\213Q\26\217U\31\224Y\31\226^\33\231a\34\235e\35\237g\36\202\240i\37" \
+ "\4\265\213Q\347\344\317\347\343\316\346\343\315\202\346\343\314\12\346" \
+ "\343\312\346\343\311\346\343\310\346\343\307\346\343\306\342\333\272" \
+ "\314\264\204\263\210I\242i\37\240h\37\202\240i\37\202\237h\37\4\236g" \
+ "\36\235f\36\234d\36\231d\35\202\230c\35\"\227c\35\226b\35\230b\35\226" \
+ "b\35\225c\35\224b\35\223a\35\222a\35\221`\34\231m*\344\334\234\344\333" \
+ "\231\343\333\227\343\332\223\343\332\222\343\331\217\343\331\214\343" \
+ "\331\210\343\330\202\343\327}\342\326u\205{992\21""82\20""5/\17/*\16" \
+ "*%\15$\37\13\35\31\10\27\24\6\20\16\4\12\11\3\5\4\2\2\2\1\377\0\0\0\377" \
+ "\0\0\0\273\0\0\0\12\3\3\1\6\5\2\13\11\3\20\16\4\27\24\6\35\31\10#\36" \
+ "\12)%\14/*\16""5/\17\20292\21\26JB\35""92\21rk=\343\333\227\344\333\231" \
+ "\344\334\234\344\334\235\344\334\240\344\335\242\344\335\245\344\335" \
+ "\246\344\336\250\344\336\252\345\336\254\345\337\256\345\337\260\345" \
+ "\337\261\345\340\263\345\340\264\345\340\266\345\340\270\345\341\271" \
+ "\202\345\341\273\6\346\341\275\346\342\276\346\342\300\346\342\301\346" \
+ "\342\302\346\343\304\202\346\343\305\10\346\343\307\346\343\310\346\343" \
+ "\311\346\343\312\346\343\313\346\343\314\346\343\315\347\343\316\202" \
+ "\347\344\317\3\347\344\320\347\344\321\347\344\322\202\347\344\323\3" \
+ "\347\345\324\347\345\325\347\345\326\202\347\345\327\1\347\345\330\204" \
+ "\347\345\331\2\347\346\331\347\346\332\204\347\346\333\207\347\346\334" \
+ "&\346\344\332\217d%\216_\35\215^\34\214[\33\212X\31\211V\32\210S\30\206" \
+ "O\26\204L\25\202I\23\201F\23\201E\22\202F\22\205J\23\211M\25\215Q\26" \
+ "\220V\30\224Y\31\230]\33\232a\34\237e\36\240h\37\242i\37\241i\37\254" \
+ "y7\347\344\317\347\343\316\346\343\315\346\343\314\346\343\313\346\343" \
+ "\312\346\343\311\342\333\275\317\270\213\270\217R\246m\"\244j\37\203" \
+ "\243i\37\202\241i\37\6\240h\37\237g\36\237f\36\235d\35\233b\35\232b\35" \
+ "\203\230b\35\1\230c\35\202\230b\35\36\226b\35\225d\35\224b\35\223a\35" \
+ "\222a\35\257\214J\344\333\233\343\333\231\343\333\226\343\332\223\343" \
+ "\332\221\343\331\216\343\331\212\343\331\207\343\330\202\343\327{\342" \
+ "\325re\\'92\21""71\20""4.\20.)\16)%\14#\36\12\34\30\10\26\23\6\17\15" \
+ "\4\11\10\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\273\0\0\0\12\3\3\1\6\5\2\13" \
+ "\11\3\21\16\5\27\24\6\35\31\10$\37\13*%\15""0+\17""60\20\20292\21\36" \
+ "F>\32MF!@8\26\323\311\211\343\333\231\344\333\233\344\334\234\344\334" \
+ "\237\344\335\241\344\335\244\344\335\246\344\336\247\344\336\251\345" \
+ "\336\253\345\337\255\345\337\257\345\337\261\345\340\262\345\340\264" \
+ "\345\340\266\345\340\267\345\341\271\345\341\272\345\341\273\346\341" \
+ "\274\346\342\276\346\342\277\346\342\301\346\342\302\346\343\303\202" \
+ "\346\343\305\12\346\343\306\346\343\307\346\343\310\346\343\311\346\343" \
+ "\312\346\343\314\346\343\315\346\343\316\347\343\316\347\344\317\202" \
+ "\347\344\320\7\347\344\321\347\344\322\347\344\323\347\344\324\347\345" \
+ "\324\347\345\325\347\345\326\202\347\345\327\202\347\345\330\204\347" \
+ "\345\331\203\347\346\332\211\347\346\333!\246\202P\217_\34\216^\34\215" \
+ "\\\33\215[\32\214X\32\212U\30\210Q\27\207N\26\206L\25\204H\23\203F\22" \
+ "\204G\22\210J\24\212M\25\216Q\27\222U\30\225Z\32\231_\32\235b\34\240" \
+ "f\36\241g\37\243i\37\244j\37\245l\"\345\341\311\346\343\315\346\343\314" \
+ "\346\343\313\340\331\274\316\266\212\271\215R\247m#\203\246l\40\202\246" \
+ "k\37\10\245j\37\244j\37\243h\37\241h\36\240g\36\240f\36\236d\36\235b" \
+ "\34\203\232a\34#\231a\35\230b\35\231b\35\230c\35\230b\35\226c\35\226" \
+ "d\36\225d\35\224b\35\223a\35\310\262p\344\333\232\343\333\230\343\332" \
+ "\225\343\332\222\343\332\221\343\331\215\343\331\211\343\331\206\343" \
+ "\330\201\343\327{\342\325rC<\26""92\21""60\20""3-\17-(\16'#\14\"\35\12" \
+ "\33\27\10\24\21\5\17\15\5\11\10\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\273" \
+ "\0\0\0\12\3\3\1\6\5\2\13\11\3\21\16\5\27\24\6\36\32\11$\37\13+&\15""0" \
+ "+\17""60\20\20392\21\36f^292\21ld8\343\333\230\344\333\232\344\334\234" \
+ "\344\334\236\344\334\240\344\335\243\344\335\245\344\336\247\344\336" \
+ "\251\345\336\253\345\337\255\345\337\256\345\337\260\345\337\261\345" \
+ "\340\263\345\340\264\345\340\266\345\341\270\345\341\272\345\341\273" \
+ "\346\341\274\346\342\275\346\342\277\346\342\300\346\342\301\346\342" \
+ "\302\346\343\304\202\346\343\305\10\346\343\307\346\343\310\346\343\311" \
+ "\346\343\312\346\343\313\346\343\314\346\343\315\346\343\316\202\347" \
+ "\344\317\1\347\344\320\202\347\344\321\6\347\344\322\347\344\323\347" \
+ "\344\324\347\345\324\347\345\325\347\345\326\203\347\345\327\1\347\345" \
+ "\330\205\347\345\331\1\347\346\331\204\347\346\332\205\347\346\333\2" \
+ "\272\242{\217_\34\202\216^\34\31\216\\\33\213X\32\213V\30\212S\30\210" \
+ "P\26\207M\25\206J\24\205G\22\206H\23\207K\24\214N\25\217Q\26\223U\27" \
+ "\227Z\31\232_\33\236c\34\240e\35\243h\36\245j\37\246k\37\246l\40\336" \
+ "\325\267\333\315\254\306\247v\266\210F\207\250l\40\10\247l\40\246k\40" \
+ "\245j\37\245i\37\243h\36\241f\35\240d\35\237c\34\202\234a\34\2\233`\34" \
+ "\232`\33\202\232a\34\5\231a\34\230b\35\231b\35\230c\35\230d\35\202\230" \
+ "d\36\16\225d\35\225d\37\337\323\222\344\333\231\343\333\227\343\332\224" \
+ "\343\332\222\343\331\220\343\331\214\343\331\210\343\330\204\343\330" \
+ "~\343\326x\311\276a\20292\21\13""60\20""2-\17,'\16&!\13!\34\11\31\25" \
+ "\7\23\20\5\16\14\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\273\0\0\0\13" \
+ "\3\3\1\6\5\2\13\11\3\20\16\4\27\24\6\35\31\10$\37\13*%\15""0+\17""5/" \
+ "\17""82\20\20292\21\1rk<\20292\21\33\203|L\344\333\231\344\334\234\344" \
+ "\334\235\344\334\240\344\335\243\344\335\245\344\335\246\344\336\250" \
+ "\344\336\252\345\336\254\345\337\256\345\337\260\345\337\261\345\340" \
+ "\262\345\340\264\345\340\266\345\340\267\345\341\271\345\341\272\345" \
+ "\341\273\346\341\274\346\342\276\346\342\277\346\342\301\346\342\302" \
+ "\346\343\303\202\346\343\305\11\346\343\306\346\343\307\346\343\310\346" \
+ "\343\311\346\343\312\346\343\313\346\343\314\346\343\315\347\343\316" \
+ "\202\347\344\317\2\347\344\320\347\344\321\202\347\344\322\4\347\344" \
+ "\323\347\344\324\347\345\324\347\345\325\202\347\345\326\202\347\345" \
+ "\327\202\347\345\330\207\347\345\331\202\347\346\331\203\347\346\332" \
+ "\34\347\346\331\320\303\246\220`\34\221`\35\221_\34\217]\33\217Z\32\216" \
+ "X\31\214T\27\212Q\27\212N\25\211L\25\210I\23\207I\23\211J\23\215N\25" \
+ "\221R\26\224U\30\230Z\31\233^\33\237c\34\241f\35\245i\37\246l\40\247" \
+ "k\40\250l\40\254s*\250m\40\210\251m\40\11\250l\37\250j\37\246i\37\245" \
+ "h\36\244g\36\242e\35\241d\35\240b\35\236a\33\202\234_\33\202\233_\33" \
+ "\202\232`\33!\232a\34\231a\34\231b\35\231d\35\230d\35\231d\36\227d\36" \
+ "\230d\36\247\177:\344\333\233\343\333\231\343\333\226\343\332\223\343" \
+ "\332\222\343\331\217\343\331\214\343\331\207\343\330\202\343\327}\342" \
+ "\326u\242\226H92\21""82\20""60\20""0+\17+&\15&!\13\37\33\11\31\25\7\22" \
+ "\17\5\14\12\4\7\6\2\3\3\1\377\0\0\0\377\0\0\0\274\0\0\0\13\2\2\1\5\4" \
+ "\2\12\11\3\20\16\4\26\23\6\35\31\10#\36\12)%\14/*\16""4.\20""82\20\202" \
+ "92\21\2wo\77C<\31\20292\21\33yrE\336\325\227\344\334\234\344\334\237" \
+ "\344\335\241\344\335\244\344\335\246\344\336\247\344\336\251\345\336" \
+ "\253\345\337\255\345\337\257\345\337\261\345\340\262\345\340\263\345" \
+ "\340\265\345\340\267\345\341\270\345\341\272\345\341\273\346\341\274" \
+ "\346\342\275\346\342\277\346\342\300\346\342\301\346\342\302\346\343" \
+ "\304\202\346\343\305\3\346\343\306\346\343\307\346\343\311\202\346\343" \
+ "\312\1\346\343\314\202\346\343\315\1\347\343\316\202\347\344\317\2\347" \
+ "\344\320\347\344\321\202\347\344\322\202\347\344\323\1\347\345\324\202" \
+ "\347\345\325\1\347\345\326\203\347\345\327\202\347\345\330\213\347\345" \
+ "\331\27\341\335\317\222b\40\222a\35\222a\34\221]\33\220[\32\220Y\32\216" \
+ "V\30\214R\27\213P\26\212M\25\211J\24\210I\23\213K\23\216N\25\221S\27" \
+ "\224V\30\230Y\30\234]\33\237a\34\242e\35\244g\36\250l\40\204\251m\40" \
+ "\202\253n\40""6\252n!\252m!\252m\40\252l\40\251k\40\250j\37\251j\36\250" \
+ "i\36\247h\36\245f\35\245e\35\243d\35\241b\34\236`\33\235^\33\235]\32" \
+ "\233]\31\233^\33\232^\32\233`\33\232`\34\232a\34\233b\34\232c\35\233" \
+ "c\35\233e\36\232e\36\231e\36\227d\36\303\251e\344\333\232\343\333\230" \
+ "\343\332\225\343\332\222\343\332\221\343\331\216\343\331\212\343\331" \
+ "\206\343\330\201\343\327{\342\325ryn192\21""82\20""5/\17/*\16*%\15$\37" \
+ "\13\36\32\11\27\24\6\21\16\5\13\11\3\6\5\2\3\3\1\377\0\0\0\377\0\0\0" \
+ "\274\0\0\0\13\1\1\0\5\4\1\11\10\3\17\15\4\25\22\6\33\27\10#\36\12($\14" \
+ ".)\16""3-\17""71\20\20292\21\2OH\"wp@\20392\21&SM&\276\266~\344\334\236" \
+ "\344\334\240\344\335\243\344\335\245\344\335\246\344\336\250\345\336" \
+ "\253\345\337\255\345\337\256\345\337\260\345\337\261\345\340\263\345" \
+ "\340\264\345\340\266\345\340\267\345\341\271\345\341\272\345\341\273" \
+ "\346\341\274\346\342\276\346\342\277\346\342\301\346\342\302\346\342" \
+ "\303\346\343\304\346\343\305\346\343\306\346\343\307\346\343\310\346" \
+ "\343\311\346\343\312\346\343\313\346\343\314\346\343\315\346\343\316" \
+ "\347\343\316\202\347\344\317\2\347\344\320\347\344\321\202\347\344\322" \
+ "\202\347\344\323\202\347\345\324\1\347\345\325\202\347\345\326\203\347" \
+ "\345\327\204\347\345\330\210\347\345\331\30\243yA\224b\35\224a\34\224" \
+ "`\34\223]\33\221Z\31\220X\31\216U\30\216Q\27\214O\26\213L\24\213K\23" \
+ "\214L\24\217N\25\222Q\25\226U\27\231Z\30\234]\32\237`\33\243d\35\245" \
+ "h\36\250j\37\251l\40\253n\40\202\252n!\10\252m\40\253m\40\252l\40\253" \
+ "m\40\252l\37\252k\37\252j\37\250h\36\202\247g\36\15\246f\35\245d\35\244" \
+ "c\33\242`\33\240_\32\237]\33\235\\\32\233[\32\233\\\32\234\\\31\234]" \
+ "\33\233^\33\233`\33\202\234b\34\37\234c\35\234d\35\234e\36\234f\37\233" \
+ "f\36\232f\40\337\323\222\344\333\231\343\333\227\343\332\224\343\332" \
+ "\222\343\331\220\343\331\215\343\331\211\343\330\204\343\330~\343\326" \
+ "x\342\325nOG\34""92\21""71\20""4.\20.)\16)%\14#\36\12\34\30\10\26\23" \
+ "\6\17\15\4\12\11\3\5\4\2\1\1\0\377\0\0\0\377\0\0\0\274\0\0\0\13\1\1\0" \
+ "\4\3\1\10\7\3\16\14\4\24\21\5\32\26\7\"\35\12'#\14,'\16""2-\17""60\20" \
+ "\20392\21\1\241\231`\20592\21\31nf<\307\276\207\344\335\242\344\335\244" \
+ "\344\335\246\344\336\247\344\336\251\345\336\253\345\337\255\345\337" \
+ "\257\345\337\261\345\340\262\345\340\263\345\340\265\345\340\267\345" \
+ "\341\270\345\341\272\345\341\273\346\341\274\346\341\275\346\342\276" \
+ "\346\342\300\346\342\301\346\342\302\346\343\303\202\346\343\305\12\346" \
+ "\343\306\346\343\307\346\343\310\346\343\311\346\343\312\346\343\313" \
+ "\346\343\314\346\343\315\346\343\316\347\343\316\202\347\344\317\1\347" \
+ "\344\320\202\347\344\321\1\347\344\322\202\347\344\323\2\347\344\324" \
+ "\347\345\324\202\347\345\325\202\347\345\326\205\347\345\327\210\347" \
+ "\345\330\30\266\230j\224b\35\225b\35\225`\35\225^\34\223\\\32\222X\30" \
+ "\221V\30\217S\27\216P\26\216N\25\216L\24\216M\24\220N\25\223Q\26\227" \
+ "T\27\232Y\31\235]\32\240a\34\243c\35\245e\35\250i\37\251k\37\252l\40" \
+ "\202\254m\40\2\254l\40\254m\37\202\253k\37\202\253j\36\12\251i\36\251" \
+ "g\35\250f\35\247d\34\247d\35\245b\34\243a\33\241_\33\240]\32\236[\31" \
+ "\202\234Z\30\31\234Z\32\234[\32\234\\\32\234^\33\234_\33\234a\34\235" \
+ "b\34\235d\34\235e\35\236f\36\234f\37\233f\36\260\211E\344\333\233\343" \
+ "\333\231\343\333\226\343\332\223\343\332\222\343\331\217\343\331\214" \
+ "\343\331\210\343\330\202\343\327}\342\326u\315\301`\20292\21\13""60\20" \
+ "2-\17,'\16'#\14\"\35\12\32\26\7\24\21\5\17\15\5\11\10\3\5\4\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\275\0\0\0\13\3\3\1\7\6\2\15\13\4\22\17\5\31\25\7\40" \
+ "\33\11&!\13+&\15""0+\17""60\20""82\20\20292\21\2\234\222YMF!\20692\21" \
+ "\30c\\5\250\241p\340\331\241\344\336\247\344\336\251\345\336\253\345" \
+ "\337\255\345\337\256\345\337\260\345\337\261\345\340\263\345\340\264" \
+ "\345\340\266\345\340\267\345\341\271\345\341\272\345\341\273\346\341" \
+ "\274\346\342\276\346\342\277\346\342\300\346\342\302\346\342\303\346" \
+ "\343\304\202\346\343\305\12\346\343\306\346\343\307\346\343\310\346\343" \
+ "\311\346\343\312\346\343\313\346\343\314\346\343\315\346\343\316\347" \
+ "\343\316\202\347\344\317\1\347\344\320\202\347\344\321\202\347\344\322" \
+ "\202\347\344\323\2\347\344\324\347\345\324\203\347\345\325\203\347\345" \
+ "\326\211\347\345\327\36\311\266\224\225d\35\226d\36\226b\35\226`\34\226" \
+ "]\33\224Z\33\222W\30\222U\30\221R\26\220O\26\217M\24\220N\24\221N\24" \
+ "\224Q\26\227T\27\233X\27\235[\31\240^\32\243b\34\245d\35\247g\35\251" \
+ "i\36\253k\36\253k\37\254j\37\253k\36\254j\37\253i\37\253i\36\202\252" \
+ "g\36""1\251f\35\250e\35\250d\34\246b\33\246a\32\244`\32\243^\31\241\\" \
+ "\32\237Z\31\235Y\31\235X\31\234X\30\234Y\30\235Z\32\234\\\32\235]\32" \
+ "\236`\32\236a\34\236c\34\237d\35\237f\36\237g\36\236g\37\234f\37\314" \
+ "\265s\344\333\232\343\333\230\343\332\225\343\332\222\343\332\221\343" \
+ "\331\216\343\331\212\343\331\206\343\330\201\343\327{\342\325r\234\220" \
+ "C92\21""82\20""60\20""1,\17,'\15&!\13\40\33\11\31\25\7\23\20\5\15\13" \
+ "\4\7\6\2\4\3\1\377\0\0\0\377\0\0\0\276\0\0\0\13\3\3\1\6\5\2\13\11\3\21" \
+ "\16\5\30\25\7\36\32\11$\37\13*%\15/*\16""5/\17""82\20\20292\21\2lc5\216" \
+ "\205P\21092\21\16A9\30phA\250\241s\326\320\235\345\336\253\345\337\255" \
+ "\345\337\257\345\337\261\345\340\262\345\340\263\345\340\265\345\340" \
+ "\267\345\341\270\345\341\271\202\345\341\273\7\346\341\275\346\342\276" \
+ "\346\342\277\346\342\301\346\342\302\346\342\303\346\343\304\202\346" \
+ "\343\305\202\346\343\307\202\346\343\311\6\346\343\312\346\343\313\346" \
+ "\343\314\346\343\315\346\343\316\347\343\316\202\347\344\317\202\347" \
+ "\344\320\202\347\344\321\1\347\344\322\203\347\344\323\1\347\344\324" \
+ "\202\347\345\324\203\347\345\325\211\347\345\326Q\335\326\300\226d\35" \
+ "\230d\36\227c\35\227`\34\227^\34\225\\\32\224Y\31\223W\27\222T\27\221" \
+ "Q\26\221O\25\221N\24\222O\25\225Q\26\230S\27\233W\30\236Z\31\237]\32" \
+ "\243`\33\245c\34\247d\34\251g\35\251h\35\252g\36\253h\36\254h\36\253" \
+ "h\36\254h\35\253g\35\253f\35\252e\34\251c\34\251b\33\250a\33\246`\33" \
+ "\245_\32\244]\32\243\\\31\242Z\31\240Y\30\236X\27\235V\30\234W\30\235" \
+ "Y\30\234Z\30\234[\32\235^\32\236_\33\237b\34\240d\35\240e\36\240h\37" \
+ "\240i\37\237h\37\243p)\341\330\227\344\333\231\343\333\227\343\332\224" \
+ "\343\332\222\343\331\217\343\331\214\343\331\210\343\330\204\343\330" \
+ "~\343\326x\342\325nja(92\21""82\20""5/\17/*\16*%\15$\37\13\36\32\11\30" \
+ "\25\7\21\16\5\14\12\4\6\5\2\3\3\1\377\0\0\0\377\0\0\0\276\0\0\0\13\2" \
+ "\2\1\5\4\2\12\11\3\17\15\4\26\23\6\34\30\10#\36\12($\14-(\16""3-\17""7" \
+ "1\20\20292\21\3@8\25\314\301}>7\25\21192\21\30:2\21;4\21XN)\177wN\247" \
+ "\237s\305\275\220\345\337\261\345\340\262\345\340\264\345\340\266\345" \
+ "\340\267\345\341\271\345\341\272\345\341\273\346\341\274\346\342\275" \
+ "\346\342\276\346\342\300\346\342\301\346\342\302\346\343\303\346\343" \
+ "\304\346\343\305\346\343\306\202\346\343\307\202\346\343\311\3\346\343" \
+ "\312\346\343\313\346\343\314\202\346\343\315\1\347\343\316\203\347\344" \
+ "\317\1\347\344\320\202\347\344\321\202\347\344\322\204\347\344\323\1" \
+ "\347\344\324\202\347\345\324\212\347\345\325\32\241s3\231d\36\230d\35" \
+ "\230b\35\230`\34\227^\32\226[\32\225X\30\223U\30\222R\26\223P\25\222" \
+ "O\25\223O\25\226Q\25\231S\26\233U\27\235Y\31\240\\\32\243^\31\246a\32" \
+ "\246b\33\250d\34\251e\34\253f\35\253g\35\253f\34\202\254f\34\4\254e\34" \
+ "\253d\33\252b\33\252a\32\202\251`\32.\246]\31\245]\31\244[\30\244Z\31" \
+ "\243X\30\237X\27\237V\27\236W\27\236X\27\235Y\31\236[\31\236]\31\240" \
+ "_\33\240b\34\241d\35\241f\35\241f\36\241i\37\240h\37\240i\37\300\240" \
+ "\\\344\333\232\343\333\230\343\332\225\343\332\222\343\332\221\343\331" \
+ "\216\343\331\212\343\331\207\343\330\202\343\327}\342\326u\325\310d>" \
+ "6\23""92\21""71\20""3-\17-(\16($\14#\36\12\34\30\10\26\23\6\17\15\4\12" \
+ "\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\276\0\0\0\13\1\1\0\4\3\1\10\7\3" \
+ "\16\14\4\24\21\5\32\26\7!\34\11&!\13,'\16""2-\17""60\20\20392\21\2\245" \
+ "\234`un>\21192\21\26;3\21;4\21>5\21@6\21@6\22C7\22D7\22`U-}rI\213\200" \
+ "W\247\236u\270\260\210\310\301\230\331\323\254\345\341\273\346\341\274" \
+ "\346\342\275\346\342\277\346\342\300\346\342\301\346\342\302\346\343" \
+ "\303\202\346\343\305\3\346\343\306\346\343\307\346\343\310\202\346\343" \
+ "\311\3\346\343\312\346\343\313\346\343\314\202\346\343\315\1\347\343" \
+ "\316\203\347\344\317\4\335\327\277\322\310\254\322\310\255\332\323\273" \
+ "\203\347\344\322\205\347\344\323\203\347\344\324\203\347\345\324\203" \
+ "\347\344\324C\266\224c\232e\36\233d\35\231c\35\231a\34\231_\33\227[\31" \
+ "\226Z\31\225U\30\225T\27\224Q\26\224P\25\225P\25\227P\25\231S\26\233" \
+ "T\27\236X\27\241Z\30\243]\31\245_\32\246`\33\250b\34\251c\33\252c\33" \
+ "\253d\33\253c\33\253d\34\253c\33\253c\34\253a\33\252a\33\252`\33\251" \
+ "_\32\251]\31\246\\\31\245[\30\244Y\30\243X\27\243W\27\241V\26\237U\27" \
+ "\237X\27\237Y\30\240Z\30\240]\32\241_\32\242a\33\243d\35\243f\35\243" \
+ "g\36\244h\37\243i\37\241i\37\242k!\337\322\220\344\333\231\343\333\227" \
+ "\343\332\224\343\332\222\343\331\220\343\331\215\343\331\211\343\331" \
+ "\206\343\330\201\343\327{\342\325r\240\225F\20292\21\13""60\20""2-\17" \
+ ",'\16&!\13!\34\11\32\26\7\24\21\5\16\14\4\11\10\3\4\3\1\1\1\0\377\0\0" \
+ "\0\377\0\0\0\277\0\0\0\13\3\3\1\7\6\2\15\13\4\22\17\5\31\25\7\37\33\11" \
+ "%!\13+&\15""0+\17""5/\17""82\20\20292\21\2h`3\301\267v\21192\21\13;3" \
+ "\21<4\21>5\21@6\21@6\22C7\22D9\22F:\23H;\23H:\23K<\24\202N=\24\15P>\24" \
+ "R\77\24[H\34q`7sb7ub7\205sJ\222\203[\223\204[\225\205[\227\206\\\226" \
+ "\206]\230\205\\\202\231\207^\16\232\210]\233\210_\235\211`\226\200T\210" \
+ "m=\211n=\212m=\211k:uR\31wR\31yT\32zT\32|V\31\252\220e\203\347\344\321" \
+ "\204\347\344\322\212\347\344\323\14\311\265\220\233f\36\234f\36\234d" \
+ "\35\233b\34\232`\33\232^\33\230[\31\230X\30\227T\27\226S\27\225Q\25\202" \
+ "\227P\25A\231R\26\235U\26\236W\27\240Y\30\244[\31\245]\31\246_\31\251" \
+ "`\32\252a\32\252b\32\253a\33\254c\34\254b\32\254a\32\253`\33\254`\31" \
+ "\253_\31\252^\32\252]\30\252\\\30\247[\31\246Y\30\245X\27\244V\27\244" \
+ "W\26\242W\27\243W\27\241Y\30\241[\30\242]\31\243_\32\244a\34\244d\34" \
+ "\245e\35\245h\36\245i\37\246j\40\245j\37\243i\37\272\222M\344\333\233" \
+ "\343\333\231\343\333\226\343\332\223\343\332\222\343\331\217\343\331" \
+ "\214\343\331\210\343\330\204\343\330~\343\326x\342\325ne\\&92\21""82" \
+ "\20""5/\17""0+\17+&\15%!\13\37\33\11\31\25\7\22\17\5\15\13\4\7\6\2\3" \
+ "\3\1\377\0\0\0\377\0\0\0\300\0\0\0\13\2\2\1\5\4\2\13\11\3\20\16\4\27" \
+ "\24\6\35\31\10#\36\12)%\14.)\16""3-\17""71\20\20292\21\3;4\23\323\313" \
+ "\202ib6\21092\21\202;3\21\6>5\21@5\21@5\22C7\22D9\22F:\23\202I;\23\1" \
+ "K<\24\202N=\24\35Q\77\24R\77\24T\77\24UA\25WB\25YC\25ZD\25\\D\26^E\26" \
+ "_F\27aG\27cH\27dI\27fJ\27gJ\27iK\27kM\30lM\30mM\30oN\30qP\30rP\31uQ\32" \
+ "uR\31wS\31yT\32zT\32}V\32\212g0\203\347\344\320\204\347\344\321\212\347" \
+ "\344\322\30\336\326\276\233f\36\234f\36\235e\36\235d\35\234b\34\233_" \
+ "\33\233]\31\231Z\30\231W\30\230U\27\230S\26\230Q\25\231Q\25\232R\25\236" \
+ "T\26\237U\27\241X\30\244Y\27\245[\30\246\\\31\251]\31\252^\32\253`\31" \
+ "\203\254`\31\1\254_\31\202\254^\31""1\254]\31\253\\\31\253[\30\252Z\30" \
+ "\252Y\30\251Y\27\246W\27\245V\27\244V\25\244W\27\244Y\30\244Z\30\244" \
+ "\\\32\244_\32\246b\33\247d\35\246f\35\247h\35\247j\36\250k\37\247k\40" \
+ "\246k\37\244j\37\331\310\206\344\333\231\343\333\227\343\332\224\343" \
+ "\332\222\343\331\220\343\331\215\343\331\211\343\331\206\343\330\201" \
+ "\343\327{\342\325r\317\302];4\22""92\21""71\20""3-\17.)\16)%\14#\36\12" \
+ "\35\31\10\27\24\6\20\16\4\13\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\300" \
+ "\0\0\0\13\1\1\0\5\4\1\11\10\3\17\15\5\24\21\5\32\26\7\"\35\12'#\14,'" \
+ "\16""2-\17""60\20\20392\21\2\222\213S\273\262r\21092\21+;2\20;3\21=4" \
+ "\21>4\21\77""4\21A5\21B6\21E8\22G9\22H;\22K;\23M<\23N=\24Q\77\24R\77" \
+ "\24S@\24VB\25WB\25YC\25[C\26[E\26^E\26_F\27aG\27dH\27dI\27fJ\27hJ\27" \
+ "jL\30kM\30lM\30nM\30pO\31qP\30sP\31tQ\31vS\32wS\31zT\31{U\32}V\32~V\32" \
+ "\325\314\260\202\347\344\317\204\347\344\320\212\347\344\321\30\347\344" \
+ "\320\247u6\236g\37\237f\36\236d\36\236c\35\234_\33\234^\33\233[\31\232" \
+ "Y\31\233W\27\232T\26\232S\26\231R\25\233Q\25\236T\26\240V\26\242W\27" \
+ "\244W\27\245Y\30\247[\31\251\\\30\253]\30\253^\31\203\254]\31\1\254]" \
+ "\32\203\254\\\31#\254[\31\254[\30\253Z\27\252Y\27\250Y\27\250X\27\247" \
+ "W\27\246X\27\246Y\30\245[\30\246\\\31\247_\32\250a\33\250d\34\250f\35" \
+ "\250g\36\250j\37\251k\37\251m\40\250l\40\246l\40\273\221I\344\333\233" \
+ "\343\333\231\343\333\226\343\332\223\343\332\222\343\331\217\343\331" \
+ "\214\343\331\210\343\330\204\343\330~\343\326x\342\325n\215\203:\202" \
+ "92\21\13""60\20""1,\17,'\16&!\13\"\35\12\32\26\7\24\21\5\17\15\5\11\10" \
+ "\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\300\0\0\0\14\1\1\0\4\3\1\7\6\2\15" \
+ "\13\4\22\17\5\31\25\7\37\33\11%!\13+&\15""0+\17""5/\17""82\20\20292\21" \
+ "\3QJ\"\341\330\214ld7\20692\21,92\20:1\20:2\20;2\21<2\21=3\21>3\21\77" \
+ "3\21A4\21D7\21G8\21H9\22I9\22L;\22O=\24Q>\24R>\24S@\24V@\24XC\25YC\25" \
+ "[C\25]D\25_E\26`E\26bG\26cG\26eI\27gJ\27hK\30kK\30kL\30mM\30nM\30pN\27" \
+ "sP\31uQ\31uR\31xS\31zT\32|V\31}V\32~V\33\265\241z\207\347\344\317\211" \
+ "\347\344\320\25\347\344\317\273\227d\236g\37\237h\36\237f\36\237e\35" \
+ "\236b\34\236_\33\235\\\32\234Z\30\233W\30\233U\27\233T\26\235S\25\234" \
+ "S\25\237S\26\241U\26\243U\26\245W\27\246X\30\247Y\27\202\253[\30\3\254" \
+ "\\\30\254\\\31\254]\30\202\255]\30\2\257\\\30\255\\\30\202\255[\30\202" \
+ "\254[\27\17\254Z\27\253Z\30\253Z\27\250Y\27\252Z\30\252\\\30\251^\32" \
+ "\252_\32\252c\32\252d\34\251e\35\251h\35\252j\36\252l\37\252l\40\202" \
+ "\251m\40\33\250m\"\335\314\213\344\333\231\343\333\227\343\332\224\343" \
+ "\332\222\343\331\220\343\331\215\343\331\211\343\331\207\343\330\202" \
+ "\343\327}\342\326u\340\322jJB\31""92\21""82\20""5/\17/*\16+&\15%!\13" \
+ "\37\33\11\31\25\7\22\17\5\15\13\4\7\6\2\3\3\1\377\0\0\0\377\0\0\0\302" \
+ "\0\0\0\13\2\2\1\6\5\2\13\11\3\20\16\4\27\24\6\34\30\10#\36\12($\14-(" \
+ "\16""3-\17""71\20\20392\21\3\263\254j\303\272x;4\23\20492\21\33""82\20" \
+ "81\20""91\20:1\20""90\20:0\20;0\21;/\20<0\20</\20\77""2\17A3\20D6\21" \
+ "F6\21H7\21K9\22M:\22O;\22Q<\23R=\23U\77\23V@\24YA\24ZA\24[B\25^C\25`" \
+ "D\25\202bF\26\22dG\26fH\27hI\27iI\26kJ\27lJ\26nL\27qN\27tO\31uQ\30xS" \
+ "\32zT\32|V\31}U\32\177W\33\231yD\346\343\315\346\343\316\202\347\343" \
+ "\316\215\347\344\317\25\314\270\221\237h\37\240h\36\240g\36\240e\35\240" \
+ "c\34\236`\33\236^\33\235[\31\235Y\31\235V\30\235U\26\236U\26\237S\26" \
+ "\240T\26\242U\26\244V\25\246X\26\247W\27\252Y\27\253Z\30\202\254[\31" \
+ "\2\255\\\30\257]\30\202\257\\\30\204\260\\\30\203\257\\\30\36\254[\27" \
+ "\254Z\27\254\\\31\254]\31\254_\31\253`\33\254c\34\254d\34\254f\34\254" \
+ "h\36\254i\37\254l\37\254m\40\254n!\252n!\251m\40\277\230Q\344\333\232" \
+ "\343\333\230\343\333\226\343\332\223\343\332\222\343\331\217\343\331" \
+ "\214\343\331\210\343\330\204\343\330~\343\326x\342\325n\257\243I\202" \
+ "92\21\13""60\20""3-\17-(\16($\14#\36\12\34\30\10\26\23\6\20\16\4\13\11" \
+ "\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\302\0\0\0\14\1\1\0\5\4\1\11\10\3\17" \
+ "\15\5\24\21\5\32\26\7!\34\11&!\13,'\15""1,\17""60\20""82\20\20292\21" \
+ "\3i`4\343\331\216wp@\20392\21\20282\20\6""70\20""81\17""80\20""90\20" \
+ "8/\17""8.\17\2028-\17\17""9,\17:.\17</\17\77""1\20A2\17D3\17G5\20H5\21" \
+ "J7\21M9\22O:\22R;\22R<\23U=\23W>\23\202Y\77\23\24\\@\23]A\24`C\24aD\24" \
+ "bD\25dE\25fF\25hG\26jH\26lJ\26oK\27rM\30tP\27wR\31zT\32}V\32~V\32\177" \
+ "W\33\202Z\35\337\332\277\203\346\343\315\202\346\343\316\213\347\343" \
+ "\316\26\337\327\276\237h\37\240h\37\241g\36\241f\35\241d\35\240b\34\240" \
+ "_\33\240\\\31\236Z\31\236X\27\237V\27\237U\27\240U\26\242U\26\243V\26" \
+ "\245V\27\247W\27\250Y\27\253Z\27\253Z\30\254[\27\202\257\\\30\2\260\\" \
+ "\30\261]\30\202\262]\27\202\263^\30\202\262]\27-\261]\30\260\\\30\257" \
+ "\\\30\260]\30\257]\30\255_\32\255a\32\255b\32\257d\34\256f\35\256i\35" \
+ "\257j\36\256l\37\256m\40\256o\40\255o!\253n!\255q%\336\317\216\344\333" \
+ "\231\343\333\227\343\332\224\343\332\222\343\331\220\343\331\215\343" \
+ "\331\211\343\331\207\343\330\202\343\327}\342\326u\342\324jbY$92\21""8" \
+ "2\20""60\20""0+\17,'\15&!\13!\34\11\31\25\7\24\21\5\17\15\5\11\10\3\5" \
+ "\4\1\1\1\0\377\0\0\0\377\0\0\0\303\0\0\0\13\3\3\1\7\6\2\15\13\4\22\17" \
+ "\5\30\25\7\36\32\11$\37\13)%\14.)\16""4.\20""71\20\20392\21\3\303\272" \
+ "u\323\313\203F>\32\20292\21\4""82\20""71\20""81\20""70\20\2027/\17\3" \
+ "6-\17""6+\16""5*\16\2024)\15\7""4(\15""7*\16:+\16<-\16\77.\16A/\17D1" \
+ "\17\202G3\20\14I5\20M7\20O7\21P8\21R9\21T:\22W;\22X=\22Y>\23[\77\23]" \
+ "\77\23_@\23\202aA\23\15dB\24gE\25jG\25mI\26oK\27sM\27vP\31yS\31|U\31" \
+ "~V\32\177W\32\202X\33\302\260\213\204\346\343\314\215\346\343\315\13" \
+ "\255\177>\242i\37\241h\37\242g\36\242e\35\242c\34\241a\33\240]\32\240" \
+ "[\32\240Z\30\237X\27\202\241V\26\12\243V\26\245V\27\246W\27\250X\27\253" \
+ "Z\27\254Z\27\254[\27\257\\\30\260\\\30\261]\30\204\263^\30\202\263_\30" \
+ "\204\263^\30\35\261^\30\261^\31\261a\31\261c\32\261c\34\260e\33\260f" \
+ "\34\260i\35\260j\37\260l\37\260o\40\260o!\257p!\256p!\254n!\311\250b" \
+ "\344\333\232\343\333\230\343\332\225\343\332\222\343\332\221\343\331" \
+ "\217\343\331\214\343\331\210\343\330\204\343\330~\343\326x\342\325n\276" \
+ "\261P\20292\21\13""71\20""3-\17.)\16)%\14$\37\13\36\32\11\30\25\7\21" \
+ "\16\5\14\12\4\7\6\2\3\3\1\377\0\0\0\377\0\0\0\304\0\0\0\13\2\2\1\5\4" \
+ "\2\12\11\3\17\15\4\26\23\6\33\27\10\"\35\12'#\14,'\16""1,\17""60\20\203" \
+ "92\21\3um<\343\331\216\235\225]\20292\21""082\20""71\20""81\20""6/\20" \
+ "7/\17""6-\16""5,\17""5*\16""4*\15""3'\15""2%\14""1%\13""1%\14""4&\14" \
+ "6'\14""8(\14<+\15=+\16@,\17C0\17D0\17G1\16H2\17L4\17M5\20O5\21Q5\20R" \
+ "7\20U9\22W9\22W:\21Z;\22\\<\22^=\22`>\23bA\23fC\24jF\25mI\26rL\27tN\27" \
+ "wQ\31|T\31}V\32\177W\32\202X\33\240\202N\346\343\312\203\346\343\313" \
+ "\215\346\343\314\26\301\243p\241i\37\243i\37\243h\36\243f\36\243d\35" \
+ "\243a\33\242_\33\241]\32\242[\31\243X\30\243X\27\244W\26\244V\25\246" \
+ "X\26\250X\27\252Y\27\253Z\30\254[\27\257\\\30\260\\\30\262]\27\202\263" \
+ "^\30\2\263_\30\265_\31\204\266`\31-\265_\31\263_\30\263^\30\263_\31\263" \
+ "a\32\262b\33\263d\33\262f\34\262h\35\262j\35\262k\36\261m\37\261o\40" \
+ "\262p\40\261p!\261q\"\257p!\266\2026\343\331\230\343\333\231\343\333" \
+ "\226\343\332\223\343\332\222\343\331\220\343\331\215\343\331\211\343" \
+ "\331\206\343\330\201\343\327}\342\326u\342\324jpg*92\21""82\20""60\20" \
+ "1,\17,'\16'#\14\"\35\12\33\27\10\25\22\6\17\15\4\12\11\3\5\4\2\2\2\1" \
+ "\377\0\0\0\377\0\0\0\304\0\0\0\14\1\1\0\4\3\1\10\7\3\16\14\4\23\20\5" \
+ "\31\25\7\37\33\11%!\13*%\15/*\16""4.\20""82\20\20292\21""5;4\23\307\276" \
+ "x\341\330\215^V-92\21""82\20""71\20""81\20""6/\20""6.\17""5,\16""5+\17" \
+ "3)\16""2(\15""0%\14/#\13.\"\12-!\12/!\12""1\"\12""3#\13""6%\14""7&\14" \
+ ";(\15=*\15@+\15C,\16D-\16F.\16H/\17K0\16M2\16N3\17P4\20R5\17T6\20W7\21" \
+ "X7\20Y8\20]:\21_=\22cA\23gB\24jF\25oJ\26sM\27vP\27zS\31}U\32\200X\32" \
+ "\202Y\32\206^\"\341\335\300\206\346\343\312\207\346\343\313\203\346\343" \
+ "\312\24\325\306\241\243i\37\244j\37\245i\37\244h\36\245e\35\244d\34\244" \
+ "a\33\244_\31\243]\31\244Z\31\243X\27\244V\27\245V\27\247W\27\250Y\27" \
+ "\253Z\30\254[\27\257\\\30\260\\\30\202\263^\30\4\263_\30\266`\31\267" \
+ "a\31\270`\31\204\271a\32-\270`\31\267a\31\267a\32\266b\32\266c\32\266" \
+ "e\34\266f\34\266i\35\266j\36\264l\37\263m\37\264n\40\263p!\262q!\262" \
+ "r!\261q\"\257q!\330\303\177\344\333\231\343\333\227\343\332\224\343\332" \
+ "\222\343\332\221\343\331\216\343\331\212\343\331\207\343\330\204\343" \
+ "\330~\343\326x\342\325n\303\266S;4\22""92\21""71\20""4.\20/*\16*%\15" \
+ "%!\13\37\33\11\31\25\7\22\17\5\15\13\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377" \
+ "\0\0\0\305\0\0\0\13\3\3\1\6\5\2\13\11\3\20\16\4\26\23\6\34\30\10#\36" \
+ "\12($\14,'\16""2-\17""60\20\20392\21""5qi9\343\331\215\307\276{>7\25" \
+ "92\21""71\20""81\20""6/\20""6.\17""5,\17""4*\17""3)\15""0&\14.#\14-\"" \
+ "\13*\37\11*\36\11)\34\10*\34\10.\37\11""0\40\11""3!\12""5\"\13""8$\13" \
+ ":%\13='\14\77(\14A)\14C*\15E+\15H.\15J/\16M0\16M0\15O1\16Q2\16S3\17U" \
+ "5\17X7\17\\9\21_<\22e@\23iD\23lF\24qK\26uN\27zR\31}U\31\200X\32\202Y" \
+ "\32\204Y\33\304\262\213\346\343\310\206\346\343\311\205\346\343\312\204" \
+ "\346\343\311\2\344\341\305\246n%\202\245j\37\25\246i\36\245f\35\245d" \
+ "\35\245b\34\245`\32\244]\32\244[\30\244Y\30\245X\27\246W\27\250X\27\253" \
+ "Z\27\254Z\27\257\\\30\260\\\30\262]\27\263^\30\265_\31\266`\31\270`\31" \
+ "\271a\31\206\273b\31\11\272c\32\271d\32\271e\32\270f\33\270g\34\267j" \
+ "\34\267j\35\267m\37\266n\40\202\266p\40\23\265r\"\264s!\263q!\262q\"" \
+ "\304\235U\344\333\232\343\333\230\343\332\225\343\332\223\343\332\222" \
+ "\343\331\217\343\331\214\343\331\211\343\331\206\343\330\201\343\327" \
+ "{\342\325r\342\323fmb(\20292\21\13""60\20""2-\17,'\16'#\14#\36\12\34" \
+ "\30\10\26\23\6\20\16\4\13\11\3\6\5\2\2\2\1\377\0\0\0\377\0\0\0\306\0" \
+ "\0\0\14\1\1\0\5\4\1\11\10\3\17\15\5\24\21\5\31\25\7\40\33\11&!\13+&\15" \
+ "/*\16""5/\17""82\20\20292\21""4;4\23\303\272s\343\331\216\225\215V92" \
+ "\21""82\20""91\20""6/\20""6.\17""5,\17""3*\16""1'\15/%\14-\"\13+\40\12" \
+ ")\36\11)\34\10(\33\10'\31\7)\31\10,\33\10.\34\10""2\37\11""2\40\11""5" \
+ "!\11""9\"\12;$\12<$\12>&\13@&\13D)\13E*\14G+\14I,\14K-\15L-\15N.\15R" \
+ "0\16V2\17W5\17\\9\21a<\21f@\22jD\24nI\26sL\27xP\30|T\32\200W\32\202Y" \
+ "\32\204Y\33\244\206R\202\346\343\307\207\346\343\310\1\346\343\311\206" \
+ "\346\343\310\31\346\343\307\266\215P\246k\37\246k\40\246i\37\247h\36" \
+ "\246f\35\247d\35\246a\32\244^\32\245]\31\245[\30\246Y\30\251Y\27\250" \
+ "Y\27\253Z\30\255[\30\257\\\30\262]\27\263^\30\263_\30\266`\31\271a\32" \
+ "\271a\31\273b\31\202\274c\32\202\275c\32\37\274c\32\275d\32\274e\32\274" \
+ "f\33\272h\34\271i\34\271k\35\271l\36\270m\36\267n\37\270p\40\270r!\267" \
+ "s!\267s\"\265t\"\263r!\271\2034\341\326\225\343\333\231\343\333\226\343" \
+ "\332\224\343\332\222\343\331\220\343\331\215\343\331\212\343\331\207" \
+ "\343\330\202\343\327}\342\326u\342\325n\276\261P\20292\21\14""82\20""4" \
+ ".\20/*\16*%\15%!\13\37\33\11\31\25\7\23\20\5\16\14\4\11\10\3\4\3\1\1" \
+ "\1\0\377\0\0\0\377\0\0\0\307\0\0\0\13\3\3\1\7\6\2\14\12\4\21\16\5\27" \
+ "\24\6\35\31\10#\36\12($\14-(\16""2-\17""60\20\20392\21""4aY.\343\331" \
+ "\214\343\331\217ib692\21;2\20""91\20""7/\17""5,\16""4*\17""2(\15/%\14" \
+ ".\"\13+\40\12)\36\11(\33\10&\31\7&\31\6&\27\6(\27\6*\30\6-\32\7/\33\7" \
+ "1\35\7""3\35\10""6\40\11""9!\11;\"\12=\"\12>#\12@%\13C&\13D'\13G(\14" \
+ "I)\14K+\14M,\14Q-\15U1\16Y5\17^8\20b=\21hB\23mF\25rJ\26wN\30|T\32\200" \
+ "V\32\202Y\33\205Z\33\210_\37\340\331\273\202\346\343\306\215\346\343" \
+ "\307\22\346\343\306\313\260\201\246k\37\247l\40\250j\37\250i\36\250g" \
+ "\36\247d\35\246b\33\246`\33\247^\31\246[\31\247[\31\252Y\30\252Y\27\254" \
+ "Z\27\257\\\30\260\\\30\202\263^\30\7\266`\31\270`\31\271a\31\273b\31" \
+ "\274c\32\276d\32\277d\32\202\300e\32\14\300f\33\277g\33\276g\33\276j" \
+ "\34\276k\35\275k\35\275m\36\273n\37\272p\40\271q\40\271r\40\271t\"\202" \
+ "\270u\"\21\266t\"\264v$\333\305\202\344\333\231\343\333\227\343\332\224" \
+ "\343\332\222\343\332\221\343\331\216\343\331\214\343\331\210\343\330" \
+ "\204\343\330~\343\327{\342\325r\342\323f`W\"\20292\21\13""60\20""2-\17" \
+ ",'\16'#\14#\36\12\34\30\10\27\24\6\21\16\5\13\11\3\6\5\2\3\3\1\377\0" \
+ "\0\0\377\0\0\0\310\0\0\0\14\1\1\0\5\4\1\11\10\3\17\15\5\24\21\5\31\25" \
+ "\7\40\33\11&!\13+&\15/*\16""4.\20""71\20\20392\21\4\257\246e\343\331" \
+ "\215\330\315\207MF!\202;3\21-:1\20""8/\17""5+\16""4*\16""1&\14.\"\13" \
+ "-\"\12)\36\11)\34\10&\31\7%\30\6&\26\6%\25\5&\25\6)\27\6+\30\6.\31\6" \
+ "1\33\7""2\34\7""5\35\7""7\37\10:\40\10<!\10=\"\11@#\11B$\11D%\12F'\12" \
+ "G(\12J)\13M*\13Q.\14V2\15[6\17`:\21f@\22kD\24rI\26wN\27{S\31\177V\32" \
+ "\202Y\33\205Z\33\206Z\33\300\254\202\205\346\343\305\207\346\343\306" \
+ "\204\346\343\305\31\336\325\262\246l\40\247l\40\251l\37\251j\36\247g" \
+ "\36\250f\35\250c\34\250a\33\247_\31\247]\31\250[\30\252Z\30\253Z\27\254" \
+ "[\27\257\\\30\261]\30\263^\30\265_\31\267a\31\271a\31\273b\31\274c\32" \
+ "\276d\32\300e\32\202\301e\32\13\302g\33\302h\33\302i\34\300j\34\277k" \
+ "\35\277m\36\277o\37\276p\37\276q\40\275q!\273t!\202\272u!\7\271v\"\270" \
+ "u\"\266t\"\315\251b\344\333\231\343\333\230\343\332\225\202\343\332\222" \
+ "\11\343\331\217\343\331\214\343\331\211\343\331\206\343\330\201\343\327" \
+ "}\342\326u\342\324j\246\231@\20292\21\14""71\20""4.\20/*\16*%\15%!\13" \
+ "\37\33\11\31\25\7\23\20\5\17\15\5\11\10\3\5\4\1\1\1\0\377\0\0\0\377\0" \
+ "\0\0\311\0\0\0\14\3\3\1\7\6\2\14\12\4\21\16\5\27\24\6\35\31\10#\36\12" \
+ "'#\14,'\16""1,\17""60\20""82\20\20292\21""4MF\40\334\321\205\343\331" \
+ "\216\277\267v\77""8\25=5\21=4\21;1\21""9/\20""7,\17""4)\15""2%\15""0" \
+ "$\13,!\12*\36\11)\33\10'\31\7'\27\6%\26\6%\24\6&\24\6(\25\5,\30\5.\31" \
+ "\6""0\32\6""2\32\6""4\34\7""7\35\7:\36\7;\40\10=!\10\77\"\10B#\11D$\11" \
+ "F%\11H&\12K'\12N+\13T/\15Y3\17^8\17d=\21iB\23pH\25uM\27{Q\31~T\31\202" \
+ "Y\33\205Z\33\206Z\33\237}E\346\343\304\217\346\343\305\32\346\343\304" \
+ "\262\200=\250l\40\251l\37\250j\37\250h\36\250f\35\250d\34\250b\34\251" \
+ "`\32\251]\31\252\\\30\253[\30\253Z\30\255[\30\257\\\30\262]\27\263^\30" \
+ "\266`\31\270`\31\273b\31\274c\32\276d\32\300e\32\301e\32\303f\32\202" \
+ "\305i\33+\305k\34\304k\35\303m\36\301n\36\300o\37\300p\37\277r\40\277" \
+ "s!\276t!\275u\"\273u\"\273v\"\272w#\270u\"\304\223G\344\333\232\343\333" \
+ "\230\343\333\226\343\332\223\343\332\222\343\331\220\343\331\215\343" \
+ "\331\212\343\331\207\343\330\202\343\327}\343\326x\342\325n\331\313]" \
+ "JB\30""92\21""82\20""60\20""1,\17,'\16'#\14#\36\12\34\30\10\27\24\6\21" \
+ "\16\5\14\12\4\6\5\2\3\3\1\377\0\0\0\377\0\0\0\312\0\0\0\14\1\1\0\5\4" \
+ "\1\11\10\3\17\15\5\24\21\5\31\25\7\37\33\11%!\13*%\15.)\16""4.\20""7" \
+ "1\20\20392\21""3\201yD\343\331\214\343\331\217\231\221Y=5\21\77""5\21" \
+ ">4\21=2\21:/\20""7,\17""5*\16""4'\15""1%\13/\"\13,\37\11+\35\10)\31\10" \
+ ")\30\6(\26\5(\26\6(\25\5+\27\5-\30\6""0\31\6""1\31\6""3\33\7""6\34\7" \
+ "9\35\7:\37\10<\40\10>!\10A\"\11C#\11E$\11H%\12J&\12L)\12S.\15W1\16^8" \
+ "\17c<\21h@\23oF\24tK\27yP\30~S\30\201W\32\205Z\33\206Z\33\210^\37\334" \
+ "\322\257\203\346\343\303\211\346\343\304\202\346\343\303\202\346\342" \
+ "\303\17\304\244l\250l\40\251m\40\251j\40\251i\37\252h\35\250e\35\251" \
+ "c\33\251a\32\252_\32\253]\30\253[\30\254[\31\255[\30\260\\\30\202\263" \
+ "^\30'\266`\31\271a\32\273b\31\274c\32\277d\32\301e\32\303f\32\306i\34" \
+ "\306j\34\310l\36\307m\35\306n\36\305o\37\304p\37\302q\40\301s\40\301" \
+ "t!\277t!\277w!\276w#\275w#\273v\"\272w#\277\2066\341\325\222\343\333" \
+ "\231\343\333\226\343\332\224\343\332\222\343\331\220\343\331\216\343" \
+ "\331\212\343\331\210\343\330\204\343\330~\343\327{\342\325r\342\323f" \
+ "\204y/\20292\21\14""71\20""4.\20.)\16*%\15%!\13\37\33\11\31\25\7\23\20" \
+ "\5\16\14\4\11\10\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\313\0\0\0\14\3\3\1" \
+ "\7\6\2\14\12\4\21\16\5\26\23\6\34\30\10\"\35\12'#\14,'\15""1,\17""5/" \
+ "\17""82\20\20392\21""2\273\262m\343\331\215\343\331\217|sB\77""5\21@" \
+ "5\21\77""4\21>3\21<0\20:-\17""8+\16""5(\15""3&\14""0#\13""0\40\11.\36" \
+ "\11-\34\10+\31\7+\30\7*\27\6,\30\5-\30\6""0\31\6""1\31\6""3\33\7""6\34" \
+ "\7""9\35\7:\37\10<\40\10>!\10A\"\11C#\11E$\11H%\12J&\12L)\12Q,\14U0\15" \
+ "\\6\17a;\21g\77\22mE\24sJ\26xO\27|S\31\201V\33\205Z\33\206Z\33\210\\" \
+ "\34\270\237p\220\346\342\302E\327\310\236\250l\40\251m\40\251l\40\252" \
+ "j\37\252h\36\252f\35\252d\34\252c\32\252`\33\253^\31\254]\31\254\\\31" \
+ "\255[\30\260\\\30\263^\30\263_\30\266`\31\271a\32\273b\31\275c\32\300" \
+ "e\32\302g\32\305i\33\306j\34\311m\35\311o\36\311p\37\307q\37\306q\37" \
+ "\306s\37\304t\40\301t\40\302u\"\300v\"\277w\"\277x$\275w#\273v\"\274" \
+ "{*\337\315\211\343\333\231\343\333\227\343\332\224\343\332\222\343\332" \
+ "\221\343\331\216\343\331\214\343\331\210\343\331\206\343\330\201\343" \
+ "\327{\342\326u\342\324j\276\260K;4\22""92\21""82\20""5/\17""0+\17,'\15" \
+ "'#\14\"\35\12\34\30\10\26\23\6\20\16\4\14\12\4\6\5\2\3\3\1\377\0\0\0" \
+ "\377\0\0\0\314\0\0\0\14\1\1\0\5\4\1\11\10\3\16\14\4\23\20\5\31\25\7\37" \
+ "\33\11$\37\13)%\14-(\16""3-\17""60\20\20392\21\24QJ\"\336\325\206\343" \
+ "\331\215\341\330\216qg8@5\21@5\22@5\21\77""3\20=0\20<.\17""9,\16""7)" \
+ "\15""5&\14""3$\13""2\"\12""0\40\11""0\35\10.\34\10.\31\7\202.\31\6\35" \
+ "0\31\6""1\31\6""3\33\7""6\34\7""9\35\7:\37\10<\40\10>!\10A\"\11C#\11" \
+ "E$\11H%\12J&\12K(\12P+\14T.\15[4\16_8\21f>\21lC\23rI\26wM\27{R\27\200" \
+ "V\32\204Y\33\206Z\33\210\\\34\226n1\345\340\276\214\346\342\301\204\346" \
+ "\342\3006\256y3\251m\40\252l\40\252k\37\253j\36\252g\36\252e\34\253c" \
+ "\33\253a\33\254_\31\254]\31\254\\\31\255[\30\260\\\30\263^\30\263_\30" \
+ "\267a\31\271a\32\273b\31\275c\32\300f\33\303h\33\305j\34\310l\36\312" \
+ "o\36\313q\37\312r\40\307s\37\307t!\307u\40\305u!\302w!\302w#\301x#\300" \
+ "x\"\277y$\275w#\275x%\332\302|\343\333\231\343\333\227\343\332\224\343" \
+ "\332\222\343\332\221\343\331\217\343\331\214\343\331\211\343\331\206" \
+ "\343\330\202\343\327}\342\326u\342\325n\335\317`UK\33\20292\21\14""6" \
+ "0\20""3-\17-(\16)%\14$\37\13\37\33\11\31\25\7\23\20\5\16\14\4\11\10\3" \
+ "\5\4\1\1\1\0\377\0\0\0\377\0\0\0\315\0\0\0\14\3\3\1\6\5\2\13\11\3\20" \
+ "\16\4\26\23\6\33\27\10!\34\11&!\13+&\15/*\16""4.\20""71\20\20392\21""2" \
+ "\207~G\343\331\212\343\331\216\337\325\214e[.A6\22C7\22A6\21A4\21\77" \
+ "2\17=0\17;-\17""9+\16""8(\14""6%\14""5$\13""2\40\11""2\37\11""1\35\10" \
+ "1\34\7""0\33\7""1\32\7""1\31\6""3\33\7""6\34\7""9\35\7:\37\10<\40\10" \
+ ">!\10A\"\11C#\11E$\11H%\12J&\12K(\12O*\13S-\14Z3\16^7\17d<\21jA\22qG" \
+ "\25uK\27{Q\27~T\32\204Y\33\206Z\33\210\\\34\212]\34\317\276\223\205\346" \
+ "\342\277\202\346\342\300\207\346\342\277\202\346\342\276\16\301\235b" \
+ "\251m\40\252m\40\253l\40\254j\37\253i\36\253f\35\253d\33\253c\34\254" \
+ "`\32\254^\31\254\\\31\257\\\30\260\\\30\202\263^\30\31\266`\31\271a\32" \
+ "\273b\31\275d\32\300g\33\303i\34\305l\34\307n\35\311q\37\312r\40\311" \
+ "s\40\310u!\307u!\306v!\305w\"\303x\"\302y$\302y#\301y#\277y$\276x$\330" \
+ "\273t\344\333\231\343\333\227\343\332\225\202\343\332\222\12\343\331" \
+ "\217\343\331\215\343\331\211\343\331\207\343\330\202\343\330~\343\326" \
+ "x\342\325n\342\323f\206z/\20292\21\14""71\20""4.\20/*\16+&\15&!\13!\34" \
+ "\11\33\27\10\26\23\6\20\16\4\13\11\3\6\5\2\3\3\1\377\0\0\0\377\0\0\0" \
+ "\316\0\0\0\15\1\1\0\4\3\1\10\7\3\15\13\4\22\17\5\30\25\7\35\31\10#\36" \
+ "\12'#\14,'\16""1,\17""60\20""82\20\20292\21\7;4\23\266\254h\343\331\212" \
+ "\343\331\216\332\317\211]R)C7\22\202D7\22)C6\21@3\20>0\17=/\17<,\16;" \
+ "*\15""9(\14""8$\13""5\"\13""5!\12""4\40\10""3\36\10""3\35\10""3\33\7" \
+ "4\34\7""6\34\7""9\35\7:\37\10<\40\10>!\10A\"\11C#\11E$\11G%\12J&\12K" \
+ "(\12O*\13S-\14X2\15^7\17c;\20i\77\22oF\24tJ\26yO\30~S\31\202W\32\205" \
+ "Z\33\210\\\34\211\\\34\251\211R\202\346\342\275\211\346\342\276\202\346" \
+ "\342\275\202\346\341\275)\346\341\274\327\302\224\251m\40\252m!\252l" \
+ "\40\253k\37\253i\37\254g\35\254f\34\253c\33\254a\32\254_\31\254]\32\257" \
+ "]\30\257\\\30\262]\27\263^\30\266`\31\270a\31\274c\32\275e\32\300h\34" \
+ "\302j\35\305m\35\307o\36\307r\37\310t\40\310u!\307v!\307w\"\306x\"\306" \
+ "y#\305y#\303{#\302z$\301y#\276x#\325\264k\344\333\231\343\333\227\343" \
+ "\332\225\202\343\332\222\12\343\331\220\343\331\215\343\331\212\343\331" \
+ "\207\343\330\204\343\330~\343\327{\342\325r\342\323f\263\247G\20292\21" \
+ "\15""82\20""60\20""1,\17,'\16'#\14#\36\12\35\31\10\30\25\7\22\17\5\15" \
+ "\13\4\10\7\3\4\3\1\1\1\0\377\0\0\0\377\0\0\0\317\0\0\0\14\2\2\1\5\4\2" \
+ "\12\11\3\17\15\4\24\21\5\31\25\7\37\33\11$\37\13)%\14.)\16""3-\17""6" \
+ "0\20\20392\21""2JA\32\320\305{\343\331\214\343\331\216\324\312\204ZN" \
+ "$E8\22F9\23F8\22D6\21C4\21A2\17\77/\16\77-\16=,\16;(\14:'\14:&\13""9" \
+ "%\12""8\"\12""7\40\11""6\36\10""7\37\10""8\35\10:\36\7""9\36\10<\40\10" \
+ ">!\10A\"\11C#\11D$\11G%\12J&\12K(\12N)\13R,\14V/\15\\5\16a9\20h>\21n" \
+ "D\24rI\25xM\27|R\31\201V\32\206Y\32\207[\34\211\\\34\215a\40\336\325" \
+ "\256\214\346\341\274\203\345\341\273\36\344\337\271\257v-\253n\40\253" \
+ "m\40\254m\37\254j\37\253h\36\254f\34\254d\34\254b\34\254`\31\254]\31" \
+ "\255]\30\257]\30\261]\30\263^\30\266a\31\270c\32\274e\33\275h\33\300" \
+ "j\34\302l\35\304o\36\306q\37\307t\40\307t!\307v\"\307w\"\307x\"\306z" \
+ "#\202\305z#\24\303{$\301z#\300y$\323\257e\344\333\231\343\333\227\343" \
+ "\332\225\343\332\223\343\332\222\343\331\220\343\331\215\343\331\212" \
+ "\343\331\210\343\330\204\343\330\201\343\327{\342\326u\342\324j\323\304" \
+ "TIA\27\20292\21\14""60\20""3-\17.)\16)%\14$\37\13\37\33\11\31\25\7\24" \
+ "\21\5\17\15\4\12\11\3\5\4\2\2\2\1\377\0\0\0\377\0\0\0\320\0\0\0\15\1" \
+ "\1\0\3\3\1\7\6\2\14\12\4\21\16\5\26\23\6\33\27\10\"\35\12&!\13+&\15/" \
+ "*\16""4.\20""71\20\20292\21""2;3\21_V(\340\325\205\343\331\214\343\331" \
+ "\216\325\313\205cV*G9\23H:\23H:\22G8\22E6\21D4\20C2\20@.\17\77-\16\77" \
+ "+\16=)\14<'\13<%\13;%\12;#\11:\"\11;\40\11:\40\10:\37\11<\40\10>!\10" \
+ "A\"\11B\"\11D$\11G%\12J&\12K(\12N)\13Q+\13U.\14[3\17_8\17f=\21kA\23q" \
+ "H\25vM\26{P\31\200V\31\204Y\33\207[\34\211\\\34\213^\34\270\235i\215" \
+ "\345\341\273\203\345\341\272\33\302\236_\253n\40\253m\40\254l\40\254" \
+ "l\37\254j\36\255g\35\254e\34\254c\34\255a\32\254^\31\255^\32\260]\30" \
+ "\261]\31\263`\31\266b\31\270d\32\272f\34\276i\34\277k\35\300m\36\303" \
+ "p\36\305r\37\306t\40\307v\"\306w\"\306y\"\202\306z#\25\305{#\303{$\302" \
+ "z$\301y#\326\263i\343\333\231\343\333\227\343\332\225\343\332\223\343" \
+ "\332\222\343\331\220\343\331\216\343\331\212\343\331\210\343\330\204" \
+ "\343\330\201\343\327{\342\326u\342\324j\335\317`bX\40\20292\21\15""7" \
+ "1\20""4.\20/*\16+&\15&!\13\"\35\12\33\27\10\26\23\6\21\16\5\14\12\4\7" \
+ "\6\2\3\3\1\1\1\0\377\0\0\0\377\0\0\0\321\0\0\0A\1\1\0\5\4\1\11\10\3\16" \
+ "\14\4\23\20\5\31\25\7\35\31\10#\36\12'#\14,'\15""1,\17""5/\17""82\20" \
+ "92\21;3\21=5\21~s\77\343\331\211\343\331\214\343\331\216\333\321\211" \
+ "k^1I;\23H:\23I:\23H8\22H7\21G6\21E3\21D1\17C/\17A-\16@+\15@)\15>(\14" \
+ "\77&\13>%\13=#\12=#\11=\"\12>\"\11\77\"\10@\"\11B\"\11D$\11G%\12J&\12" \
+ "J'\12M)\13Q+\13T-\14Z2\16^7\20d;\20j\77\22pF\24uJ\26zO\27~S\31\203X\33" \
+ "\206[\33\211\\\34\212]\34\223i)\343\336\266\212\345\341\272\204\345\341" \
+ "\2712\345\341\270\326\304\223\251m\40\252n!\254m\40\254k\37\254i\37\255" \
+ "i\35\254f\34\254c\34\255a\32\254_\31\255_\32\260_\31\261`\31\263b\32" \
+ "\266c\32\270f\33\272h\34\276j\36\277n\36\277o\37\301q\37\304t\40\305" \
+ "u!\305w\"\306x#\306z#\305{#\306{#\303{%\303{$\302z%\327\270n\343\333" \
+ "\231\343\333\227\343\332\225\343\332\223\343\332\222\343\331\220\343" \
+ "\331\216\343\331\212\343\331\210\343\331\206\343\330\201\343\327}\342" \
+ "\326u\342\325n\341\322`\203w.\20292\21\15""82\20""5/\17""1,\17,'\16'" \
+ "#\14#\36\12\35\31\10\30\25\7\23\20\5\16\14\4\11\10\3\5\4\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\323\0\0\0\31\3\3\1\6\5\2\13\11\3\17\15\4\24\21\5\31" \
+ "\25\7\37\33\11$\37\13)%\14-(\16""2-\17""60\20""82\20;3\21<4\21>5\21\242" \
+ "\231X\343\331\211\343\331\214\343\331\216\337\326\215wj8I;\23K<\24K;" \
+ "\23\202J9\22%H6\21H5\20G3\20E1\20E0\17D.\16C,\15C*\14A)\14A'\13A&\13" \
+ "A%\13B&\12B$\11B$\12C#\11D$\11G%\12I&\12J'\12M)\13P*\13S,\14W0\15\\5" \
+ "\17c:\20h>\22nD\24sI\25yM\27~R\30\202V\31\205Z\33\210\\\34\212]\34\214" \
+ "^\34\306\261~\211\345\341\270\202\345\340\270\204\345\340\267\32\344" \
+ "\337\264\262{2\252n!\254n\40\255l\37\254j\37\254h\36\255g\34\254e\34" \
+ "\255c\34\256a\32\257b\32\260`\33\262b\32\262b\33\266e\34\270g\34\271" \
+ "j\35\275m\36\277n\36\300q\40\301r\40\301t\40\302w!\303x\"\305y\"\202" \
+ "\305z#\202\303{$\5\303}(\332\274u\343\333\231\343\333\227\343\332\225" \
+ "\202\343\332\222\13\343\331\220\343\331\216\343\331\212\343\331\210\343" \
+ "\331\206\343\330\201\343\327}\342\326u\342\325n\342\323f\243\226;\202" \
+ "92\21\15""82\20""60\20""2-\17-(\16)%\14$\37\13\37\33\11\31\25\7\24\21" \
+ "\5\17\15\4\12\11\3\6\5\2\3\3\1\377\0\0\0\377\0\0\0\324\0\0\0(\1\1\0\4" \
+ "\3\1\7\6\2\14\12\4\21\16\5\26\23\6\33\27\10!\34\11&!\13*%\15.)\16""3" \
+ "-\17""60\20;3\21<4\21>5\21D:\24\267\255g\343\331\211\343\331\214\343" \
+ "\331\216\340\326\214\205yDK<\24N=\24N<\23M<\23M:\22K8\21K7\21I6\20H3" \
+ "\17H1\17F/\17F.\16E,\16D+\15E+\14D*\13D(\13\202E'\13\3F&\12F%\12G%\12" \
+ "\202J'\12\22M)\13O)\13R,\13V.\14[4\16a9\20f=\20kA\23qG\24wL\26{P\27\200" \
+ "U\30\205Y\32\210\\\33\212]\34\213^\34\234u7\345\340\266\207\345\340\267" \
+ "\205\345\340\266\202\345\340\265\12\345\340\264\305\242d\253n\40\253" \
+ "m\40\254m\40\254l\37\254j\36\254h\35\254f\34\256e\34\202\255c\33\16\260" \
+ "d\33\261d\33\263e\33\267h\34\270i\35\272l\36\273n\37\276p\37\277s\40" \
+ "\300u!\302u\"\302w#\302x#\303z$\202\303{$\6\302z$\305\202/\335\306\200" \
+ "\343\333\230\343\333\226\343\332\224\202\343\332\222\14\343\331\220\343" \
+ "\331\216\343\331\212\343\331\210\343\331\206\343\330\201\343\327}\343" \
+ "\326x\342\325n\342\323f\264\247B>6\23\20292\21\15""60\20""3-\17.)\16" \
+ "*%\15&!\13!\34\11\33\27\10\26\23\6\21\16\5\14\12\4\7\6\2\4\3\1\1\1\0" \
+ "\377\0\0\0\377\0\0\0\325\0\0\0,\2\2\1\5\4\1\10\7\3\15\13\4\22\17\5\30" \
+ "\25\7\34\30\10\"\35\12&!\13+&\15""0+\17""4.\20""91\20<4\21>5\21@6\21" \
+ "F<\26\300\266m\343\331\211\343\331\214\343\331\216\343\331\220\251\234" \
+ "`RB\30N=\24O=\23P=\24O<\23O:\23M:\22M8\21L6\20K4\21K3\20I1\20I/\16I-" \
+ "\15G-\15H,\15I+\14G)\13I*\14J)\13J(\13\202K)\13\22M)\12P*\13R,\13U-\14" \
+ "Z1\16^6\17d;\21i\77\22oE\24uI\25zO\30\177S\31\204X\32\207[\33\212]\34" \
+ "\213^\34\216_\35\313\272\207\202\345\340\264\202\345\340\265\207\345" \
+ "\340\264\204\345\340\263\11\333\312\227\251m\40\252n!\254m\40\254k\37" \
+ "\254j\37\254h\36\255h\35\255g\34\202\257f\34\15\260f\34\261f\34\264g" \
+ "\34\266j\35\267k\36\270m\36\273o\37\276r\40\277t!\300u\"\300v\"\302y" \
+ "#\302{#\202\302z$\6\301z#\310\215<\341\322\216\343\333\230\343\333\226" \
+ "\343\332\224\202\343\332\222\14\343\331\217\343\331\215\343\331\212\343" \
+ "\331\210\343\331\206\343\330\201\343\327}\343\326x\342\325n\342\323f" \
+ "\303\265NB;\24\20292\21\15""71\20""4.\20/*\16+&\15&!\13\"\35\12\34\30" \
+ "\10\30\25\7\22\17\5\16\14\4\10\7\3\5\4\1\1\1\0\377\0\0\0\377\0\0\0\327" \
+ "\0\0\0.\3\3\1\5\4\2\12\11\3\17\15\5\24\21\5\31\25\7\36\32\11#\36\12'" \
+ "#\14,'\15""0+\17""6/\17:2\21>5\21@6\21@6\22M@\30\306\275r\343\331\210" \
+ "\343\331\212\343\331\216\343\331\220\305\272x`O#P>\24Q\77\24R>\24R=\24" \
+ "Q<\23Q;\22Q:\22O8\22P8\21O6\20N4\20M2\16M1\17L0\16L.\16L.\15M.\15M-\15" \
+ "L,\14M+\14N,\14P,\13\202R,\14\17T-\14Y0\15]4\17b9\20h=\21mC\23sH\25w" \
+ "M\27|Q\30\202V\31\205Z\33\210\\\33\213^\34\216^\35\243~@\210\345\340" \
+ "\263\205\345\340\262\203\345\337\261\10\266\204=\252n!\253m\40\254m\37" \
+ "\254l\37\255k\37\255j\36\256i\35\202\257h\35\14\260h\35\262i\35\264j" \
+ "\36\266l\36\270m\37\270o\37\273q\40\275t!\276t!\277w\"\300x\"\300y#\203" \
+ "\301y#\23\315\234O\342\327\225\343\333\227\343\332\225\343\332\223\343" \
+ "\332\222\343\332\221\343\331\217\343\331\215\343\331\212\343\331\210" \
+ "\343\330\204\343\330\201\343\327}\343\326x\342\325n\342\323f\311\273" \
+ "QIA\26\20292\21\15""71\20""5/\17""0+\17,'\15'#\14#\36\12\36\32\11\31" \
+ "\25\7\23\20\5\17\15\5\12\11\3\5\4\2\3\3\1\377\0\0\0\377\0\0\0\330\0\0" \
+ "\0\33\1\1\0\3\3\1\6\5\2\13\11\3\20\16\4\25\22\6\32\26\7\37\33\11$\37" \
+ "\13($\14,'\16""2,\17""70\17=4\21@6\21@6\22B7\22SF\34\314\301u\343\331" \
+ "\210\343\331\212\343\331\215\343\331\217\331\317\207{k8R\77\24S\77\24" \
+ "\202S@\24\14S\77\23S=\23R<\23R:\22S:\21Q7\21Q7\20Q5\20P4\20P3\16P2\17" \
+ "O1\17\202P0\16\25Q/\16R/\15R0\15T/\15T.\15V/\14Y1\16\\4\17b9\20g=\21" \
+ "kA\23qF\24wK\26{O\27\200S\30\204X\33\210[\33\213^\34\214^\34\217_\34" \
+ "\320\277\214\213\345\337\261\204\345\337\260\25\312\255p\253n\40\252" \
+ "n!\254m\40\255l\37\254l\37\256k\37\256j\36\257j\36\260j\36\261j\36\262" \
+ "j\36\264l\36\266n\37\267o\40\271r\40\271r!\273t\"\275w\"\276w#\277x$" \
+ "\202\277y$\24\301})\327\272q\343\333\231\343\333\227\343\332\225\343" \
+ "\332\223\343\332\222\343\332\221\343\331\217\343\331\215\343\331\212" \
+ "\343\331\207\343\330\204\343\330\201\343\327}\343\326x\342\325n\342\323" \
+ "f\315\276QJB\27\20292\21\16""82\20""5/\17""1,\17,'\16($\14$\37\13\37" \
+ "\33\11\31\25\7\25\22\6\20\16\4\13\11\3\6\5\2\3\3\1\1\1\0\377\0\0\0\377" \
+ "\0\0\0\331\0\0\0\77\1\1\0\4\3\1\7\6\2\14\12\4\21\16\5\26\23\6\32\26\7" \
+ "\40\33\11$\37\13)%\14.(\16""5.\17:1\20>5\21@5\21B7\22D7\22ZO\40\317\302" \
+ "u\343\331\210\343\331\212\343\331\215\343\331\217\343\332\221\245\230" \
+ "]ZG\33TA\24VA\25WA\25WA\24V@\24V>\23V=\22U<\22U;\22U9\21U:\22T8\20T7" \
+ "\20T6\20U5\17T4\17U4\17V2\17U3\16V2\16W2\16Y2\15[4\17^7\20c:\20g=\22" \
+ "lC\23pG\24vJ\25{O\27\177S\31\203V\31\206Z\33\212\\\33\214^\34\216_\35" \
+ "\245\200A\211\345\337\260\202\345\337\257\203\345\337\256\23\345\337" \
+ "\255\340\327\243\252q%\252n!\253m\40\254m\40\255m\37\255k\37\256k\37" \
+ "\260l\37\260l\36\261l\37\263l\37\264m\37\266o\37\267q!\271r!\272t!\273" \
+ "v!\202\275w\"\202\275w#\5\307\216>\337\317\211\343\333\230\343\333\226" \
+ "\343\332\224\202\343\332\222\15\343\331\220\343\331\216\343\331\214\343" \
+ "\331\211\343\331\207\343\330\204\343\330\201\343\327}\342\326u\342\325" \
+ "n\342\323f\315\276QOF\30\20292\21\16""82\20""60\20""2-\17-(\16)%\14$" \
+ "\37\13\40\33\11\33\27\10\26\23\6\21\16\5\14\12\4\7\6\2\4\3\1\1\1\0\377" \
+ "\0\0\0\377\0\0\0\333\0\0\0\35\2\2\1\5\4\1\10\7\3\15\13\4\22\17\5\27\24" \
+ "\6\33\27\10!\34\11%!\13*%\14""0*\16""5.\17;2\21@5\21B7\22C7\22E8\22U" \
+ "H\35\305\271o\343\331\207\343\331\211\343\331\214\343\331\216\343\331" \
+ "\220\323\311\204|k8VB\25XC\25YC\25\202YB\25\202Y@\24\36Z\77\23Y>\22X" \
+ "<\22Y<\22X;\21W:\21X8\21X8\20X7\21Y6\20Y7\17Z7\20\\7\17\\6\17^7\17`9" \
+ "\20d<\20h>\21lC\23qG\24vJ\26zO\30~S\31\203V\31\205Y\32\211\\\33\213^" \
+ "\34\216^\35\217_\34\316\275\207\207\345\337\256\204\345\337\255\202\345" \
+ "\336\254\202\345\336\253\10\276\226Q\251m\40\252n!\254n\40\255m\40\255" \
+ "m\37\257n\40\260m\37\202\261n\37\36\262n\40\263o\40\265p\40\267r!\270" \
+ "t\"\272v#\273w#\273v#\273v\"\275{(\321\254b\343\332\226\343\333\227\343" \
+ "\332\225\343\332\223\343\332\222\343\332\221\343\331\217\343\331\216" \
+ "\343\331\214\343\331\211\343\331\207\343\330\202\343\330~\343\327{\342" \
+ "\326u\342\325n\342\323f\310\271PME\27\20292\21\16""82\20""60\20""2-\17" \
+ "-(\16)%\14%!\13!\34\11\33\27\10\27\24\6\22\17\5\15\13\4\10\7\3\5\4\1" \
+ "\2\2\1\377\0\0\0\377\0\0\0\335\0\0\0\40\2\2\1\5\4\2\11\10\3\16\14\4\22" \
+ "\17\5\30\25\7\34\30\10!\34\11&!\13-'\15""2+\17""8/\17=3\21@5\22C7\22" \
+ "E8\22G9\23PB\31\275\261g\343\331\207\343\331\210\343\331\212\343\331" \
+ "\215\343\331\217\343\332\221\262\245f`N\35YC\25[C\26\\D\26\\C\25[B\25" \
+ "\202[A\24\34[@\23[\77\23\\\77\23\\>\23]=\22\\<\22]<\21];\21];\22^:\20" \
+ "_;\21_:\20`:\21b;\21f=\21jA\22nD\24sI\25wM\26zO\27~S\31\202V\31\204Y" \
+ "\32\210Z\33\213]\33\216^\35\217_\34\240y9\206\345\336\254\205\345\336" \
+ "\253\202\344\336\252\202\344\336\251\17\327\304\211\251m\40\253n\40\252" \
+ "n!\254n\40\256m\40\256n\40\257n\40\260o\40\261n\40\261o\40\263p!\265" \
+ "r\"\267s\"\270t!\202\271u\"\6\271v\"\307\225F\337\317\213\343\333\227" \
+ "\343\333\226\343\332\224\202\343\332\222\16\343\332\221\343\331\217\343" \
+ "\331\215\343\331\212\343\331\210\343\331\206\343\330\202\343\330~\343" \
+ "\327{\342\326u\342\325n\341\322`\302\262GG\77\25\20292\21\16""82\20""6" \
+ "0\20""2-\17.)\16*%\15&!\13\"\35\12\34\30\10\30\25\7\22\17\5\16\14\4\11" \
+ "\10\3\5\4\2\3\3\1\377\0\0\0\377\0\0\0\337\0\0\0\35\3\3\1\5\4\2\12\11" \
+ "\3\17\15\5\23\20\5\30\25\7\35\31\10\"\35\12(\"\13-&\15""4,\17""9/\20" \
+ ">4\21C7\22D9\22F:\23I;\23N\77\26\261\245^\343\331\206\343\331\210\343" \
+ "\331\212\343\331\215\343\331\216\343\331\220\332\317\211\224\203J^G\30" \
+ "\\D\26\202^E\26\37_E\26_D\25_C\24`C\25`C\24_B\23`B\24aA\23`@\23`>\23" \
+ "`\77\22b\77\22b>\22c>\22d>\21e\77\22g@\22lC\23qG\25sJ\26xM\27{Q\27~S" \
+ "\31\202V\31\205Y\32\207Z\33\212\\\33\214^\34\216_\35\217_\34\307\262" \
+ "x\204\344\336\252\205\344\336\251\202\344\336\250\203\344\336\247\15" \
+ "\344\335\246\264\2029\251m\40\252n!\254n!\255n\40\256o\40\257o!\260o" \
+ "!\261o!\262q\40\263r!\264s!\202\266t\"\27\267s!\275\2033\326\271s\343" \
+ "\333\230\343\333\226\343\332\225\343\332\223\343\332\222\343\332\221" \
+ "\343\331\220\343\331\216\343\331\214\343\331\211\343\331\207\343\330" \
+ "\204\343\330\201\343\327}\343\326x\342\325r\342\324j\341\322`\261\244" \
+ "AA9\23\20292\21\16""82\20""60\20""2-\17.)\16*%\15&!\13\"\35\12\35\31" \
+ "\10\30\25\7\23\20\5\17\15\5\12\11\3\6\5\2\3\3\1\377\0\0\0\377\0\0\0\340" \
+ "\0\0\0!\1\1\0\3\3\1\6\5\2\12\11\3\17\15\4\24\21\5\31\25\7\35\31\10\"" \
+ "\36\12)#\14/(\15""5,\16:0\20@4\21C7\22F:\23H;\23H:\23M>\26\241\224Q\343" \
+ "\330\204\343\331\207\343\331\211\343\331\214\343\331\215\343\331\217" \
+ "\343\332\221\322\310\201\217|E]E\26_F\26aG\27aG\26\203bF\26\5bE\25cD" \
+ "\25dD\25dD\24dC\25\202eC\24\24fB\24gC\23hC\23hB\24jD\24nF\24rI\26tK\27" \
+ "xN\27|Q\27}S\31\202V\32\205Y\32\207[\33\211\\\33\213^\34\216^\35\217" \
+ "_\34\231m,\340\330\242\210\344\336\247\204\344\335\246\202\344\335\245" \
+ "\1\316\264s\202\251m\40\20\252n!\254n!\255o!\256o\40\256p\40\260p!\262" \
+ "q!\262r!\263r!\263s\"\271~-\320\260h\343\332\226\343\333\226\343\332" \
+ "\225\343\332\223\202\343\332\222\17\343\331\220\343\331\217\343\331\215" \
+ "\343\331\212\343\331\210\343\331\206\343\330\204\343\330\201\343\327" \
+ "}\343\326x\342\325r\342\324j\341\322`\230\2157;4\22\20292\21\17""82\20" \
+ "60\20""2-\17.)\16*%\15&!\13\"\35\12\35\31\10\31\25\7\24\21\5\17\15\4" \
+ "\13\11\3\6\5\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\341\0\0\0'\1\1\0\4\3\1" \
+ "\7\6\2\13\11\3\17\15\4\24\21\5\31\25\7\35\31\10#\37\12+$\14""1)\15""6" \
+ "-\17<1\21A5\21D7\22H;\23H:\23J;\23L=\24\177p7\334\320|\343\331\206\343" \
+ "\331\210\343\331\212\343\331\214\343\331\216\343\331\220\343\332\221" \
+ "\313\300{\207s<`G\27bH\27dG\26dH\27eI\27eI\26eH\27fG\26gH\26\202hG\26" \
+ "\2iF\25iG\26\202jF\25\16lF\24mF\25pI\26sJ\26uM\27yO\27|R\31~S\32\201" \
+ "V\32\205Y\32\206Z\33\210\\\33\212]\34\214^\34\202\217_\34\1\270\233^" \
+ "\205\344\335\246\204\344\335\245\202\344\335\244\203\344\335\243\2\342" \
+ "\332\237\255w,\202\251m\40\15\252n!\254n!\255o!\256p!\257q!\260q\"\261" \
+ "q\"\266z,\315\252a\342\327\224\343\333\226\343\332\225\343\332\224\202" \
+ "\343\332\222\17\343\332\221\343\331\217\343\331\216\343\331\214\343\331" \
+ "\211\343\331\207\343\331\206\343\330\202\343\330~\343\327{\342\326u\342" \
+ "\325n\342\323f\335\316Y|q)\20392\21\17""82\20""60\20""2-\17.)\16*%\15" \
+ "&!\13\"\35\12\35\31\10\31\25\7\24\21\5\17\15\4\13\11\3\7\6\2\4\3\1\1" \
+ "\1\0\377\0\0\0\377\0\0\0\343\0\0\0>\1\1\0\4\3\1\7\6\2\13\11\3\17\15\4" \
+ "\24\21\5\31\25\7\35\31\10$\37\13+$\14""1(\15""7-\17=1\21@5\21E8\22I;" \
+ "\23J;\23L=\24N=\24eU$\312\276n\343\330\204\343\331\207\343\331\211\343" \
+ "\331\212\343\331\215\343\331\216\343\331\220\343\332\222\313\300|\223" \
+ "~FfK\31dH\27fJ\27gJ\27hK\30iK\27kK\27kJ\27kI\27kI\26mJ\26nI\27nJ\26o" \
+ "J\26qJ\26rL\27tL\27wN\30zQ\31|S\31\177V\32\202W\32\204Y\33\206[\33\210" \
+ "\\\33\212]\34\213^\34\216^\35\217_\34\221c\37\332\314\221\203\344\335" \
+ "\244\205\344\335\243\202\344\335\242\1\344\335\241\203\344\334\240\2" \
+ "\310\252f\250l\40\202\251m\40\12\252n!\253n!\255o!\256p!\267\2025\316" \
+ "\261j\342\331\225\343\333\226\343\332\225\343\332\223\202\343\332\222" \
+ "\20\343\332\221\343\331\220\343\331\216\343\331\214\343\331\212\343\331" \
+ "\210\343\331\206\343\330\204\343\330\201\343\327}\343\326x\342\325r\342" \
+ "\324j\341\322`\315\276LZQ\35\20392\21\17""71\20""5/\17""2-\17-(\16*%" \
+ "\15&!\13\"\35\12\35\31\10\31\25\7\24\21\5\17\15\4\13\11\3\7\6\2\4\3\1" \
+ "\1\1\0\377\0\0\0\377\0\0\0\345\0\0\0\21\1\1\0\4\3\1\7\6\2\13\11\3\17" \
+ "\15\4\24\21\5\31\25\7\35\31\10#\36\12-%\14""2)\16""8.\17>2\21B5\21F8" \
+ "\22I;\23K<\24\202N=\24'VD\30\257\241Y\343\330\202\343\331\206\343\331" \
+ "\207\343\331\211\343\331\214\343\331\215\343\331\217\343\331\220\343" \
+ "\332\222\327\314\206\246\224VtZ%gJ\27iK\27kM\30lM\30lL\27mL\30nM\30o" \
+ "M\30qN\27qM\30rM\27tN\30sN\30vO\30xP\30{S\31}T\31\177V\32\201W\32\204" \
+ "Y\33\205Z\33\210\\\34\211\\\34\213^\34\214^\34\202\217_\34\2\242{8\343" \
+ "\333\240\204\344\335\241\204\344\334\240\202\344\334\237\1\344\334\236" \
+ "\202\344\334\235\3\341\327\227\255x,\250l\40\202\251m\40\7\255s%\275" \
+ "\221G\323\274v\343\333\227\343\333\226\343\332\224\343\332\223\202\343" \
+ "\332\222\21\343\332\221\343\331\220\343\331\216\343\331\215\343\331\212" \
+ "\343\331\210\343\331\207\343\330\204\343\330\202\343\330~\343\327{\342" \
+ "\326u\342\325n\342\324j\341\322`\254\237\77E=\25\20392\21\17""71\20""5" \
+ "/\17""1,\17-(\16)%\14&!\13\"\35\12\35\31\10\31\25\7\24\21\5\20\16\4\13" \
+ "\11\3\7\6\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\347\0\0\0\20\1\1\0\4\3\1" \
+ "\7\6\2\13\11\3\17\15\4\24\21\5\31\25\7\34\30\10!\35\11+$\14""5*\16""8" \
+ ".\17>2\21C6\21G9\22J;\23\202N=\24(P>\24R\77\24\206t8\326\312x\343\330" \
+ "\202\343\331\206\343\331\210\343\331\211\343\331\214\343\331\215\343" \
+ "\331\217\343\331\220\343\332\221\343\332\222\302\263p\226\200FqT\37l" \
+ "M\30lM\27oN\31oN\30qO\31sP\31sO\31sP\31uP\27vP\31wQ\31zR\31|T\31~V\31" \
+ "\177V\32\202Y\33\203Y\33\205Z\33\207[\33\210\\\34\212]\34\213^\34\216" \
+ "^\35\202\217_\34\1\272\235[\203\344\334\237\203\344\334\236\202\344\334" \
+ "\235\205\344\334\234\12\344\333\233\314\257h\247n!\270\214D\316\264m" \
+ "\341\326\221\343\333\226\343\332\225\343\332\224\343\332\223\202\343" \
+ "\332\222\21\343\332\221\343\331\220\343\331\216\343\331\215\343\331\212" \
+ "\343\331\211\343\331\207\343\331\206\343\330\202\343\330~\343\327}\343" \
+ "\326x\342\325r\342\324j\342\323f\331\312Xyl'\20392\21\20""82\20""60\20" \
+ "4.\20""0+\17,'\16)%\14%!\13!\34\11\35\31\10\31\25\7\24\21\5\17\15\4\13" \
+ "\11\3\7\6\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\351\0\0\0=\1\1\0\4\3\1\7" \
+ "\6\2\13\11\3\17\15\4\24\21\5\30\25\7\34\30\10!\34\11&!\13""3)\16""9." \
+ "\17\77""2\21C6\21G9\22J;\23N=\24P>\24Q\77\24S\77\24aL\34\261\242Y\343" \
+ "\330\201\343\330\204\343\331\206\343\331\210\343\331\211\343\331\214" \
+ "\343\331\215\343\331\216\343\331\220\343\332\221\343\332\222\341\327" \
+ "\217\277\257n\234\206Jz[$oN\30qP\30sP\31uQ\32uQ\30vR\31xS\31yT\31zT\32" \
+ "}U\33}U\32\200W\32\202Y\32\203Y\33\205Z\33\206Z\33\210\\\34\211\\\34" \
+ "\213^\34\214^\34\216_\35\217_\34\221b\36\322\277\177\207\344\334\234" \
+ "\1\344\333\233\202\344\333\232\1\344\333\231\202\343\333\231\6\342\332" \
+ "\226\336\322\215\343\333\226\343\332\225\343\332\224\343\332\223\203" \
+ "\343\332\222\22\343\331\220\343\331\217\343\331\216\343\331\215\343\331" \
+ "\212\343\331\211\343\331\207\343\331\206\343\330\202\343\330\201\343" \
+ "\327}\343\327{\342\326u\342\325n\342\323f\341\322`\261\244AOF\30\203" \
+ "92\21\20""82\20""60\20""3-\17/*\16,'\15($\14$\37\13!\34\11\34\30\10\30" \
+ "\25\7\24\21\5\17\15\4\13\11\3\7\6\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\353" \
+ "\0\0\0\"\1\1\0\4\3\1\7\6\2\13\11\3\17\15\4\23\20\5\27\24\6\33\27\10\40" \
+ "\33\11#\36\12-%\15""9-\17\77""2\17D6\21H9\22L;\23O>\24Q\77\24R\77\24" \
+ "S@\24VB\25}l2\320\304q\343\330\201\343\330\204\343\331\206\343\331\210" \
+ "\343\331\211\343\331\212\343\331\214\343\331\216\343\331\217\343\331" \
+ "\220\343\332\221\202\343\332\222\25\322\304\200\261\234]\225{@\200`&" \
+ "uR\31vS\32xS\31zT\32{U\32}V\32~V\32\177W\32\201X\33\202Y\33\204Y\33\205" \
+ "Z\33\207[\33\210\\\34\212]\34\213^\34\216^\35\202\217_\34\2\233o+\337" \
+ "\324\222\203\344\333\232\202\344\333\231\202\343\333\231\202\343\333" \
+ "\230\2\343\333\227\343\333\226\202\343\332\225\2\343\332\224\343\332" \
+ "\223\203\343\332\222\23\343\332\221\343\331\220\343\331\217\343\331\215" \
+ "\343\331\214\343\331\212\343\331\211\343\331\207\343\331\206\343\330" \
+ "\202\343\330\201\343\327}\343\327{\342\326u\342\325r\342\324j\341\322" \
+ "`\323\304Tqf$\20492\21\20""71\20""5/\17""2-\17.)\16+&\15'#\14#\36\12" \
+ "\40\33\11\33\27\10\30\25\7\23\20\5\17\15\4\13\11\3\7\6\2\4\3\1\1\1\0" \
+ "\377\0\0\0\377\0\0\0\355\0\0\0$\1\1\0\4\3\1\7\6\2\12\11\3\17\15\5\22" \
+ "\17\5\27\24\6\32\26\7\37\33\11#\36\12'\"\13""3*\16>1\20D5\21I9\22L;\23" \
+ "P>\24R\77\24T\77\24UA\25WB\25_J\31\244\223L\336\322{\343\330\201\343" \
+ "\330\204\343\331\206\343\331\207\343\331\210\343\331\212\343\331\214" \
+ "\343\331\215\343\331\216\343\331\217\343\331\220\343\332\221\203\343" \
+ "\332\222\22\331\314\205\301\257m\260\233Z\241\206I\217o2\203_#}U\32~" \
+ "V\33\200X\32\202X\33\203Y\33\205Z\33\206Z\33\207[\34\211\\\34\212]\34" \
+ "\213^\34\216_\35\202\217_\34\1\255\213G\202\343\333\230\202\343\333\227" \
+ "\202\343\333\226\202\343\332\225\202\343\332\224\1\343\332\223\204\343" \
+ "\332\222\25\343\332\221\343\331\220\343\331\217\343\331\216\343\331\215" \
+ "\343\331\212\343\331\211\343\331\210\343\331\207\343\331\206\343\330" \
+ "\202\343\330\201\343\327}\343\327{\342\326u\342\325r\342\324j\342\323" \
+ "f\335\316Y\227\2136B;\24\20392\21\21""82\20""60\20""4.\20""0+\17-(\16" \
+ "*%\15&!\13#\36\12\37\33\11\32\26\7\27\24\6\22\17\5\17\15\5\12\11\3\7" \
+ "\6\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\357\0\0\0$\1\1\0\4\3\1\6\5\2\12" \
+ "\11\3\16\14\4\21\16\5\26\23\6\31\25\7\35\31\10\"\35\12%!\13+%\14""7," \
+ "\17D5\21H8\21L:\22Q>\24R\77\24TA\24WB\25XC\25YC\25hR\37\254\235R\341" \
+ "\326}\343\330\201\343\330\202\343\330\204\343\331\207\343\331\210\343" \
+ "\331\211\343\331\212\343\331\214\343\331\215\343\331\216\343\331\217" \
+ "\202\343\331\220\1\343\332\221\205\343\332\222\7\343\332\223\320\302" \
+ "~\317\300|\310\267r\275\247d\276\247d\275\247d\202\277\247d\202\300\250" \
+ "d\5\306\260l\323\302}\323\301|\342\331\224\343\332\225\203\343\332\224" \
+ "\202\343\332\223\205\343\332\222\2\343\332\221\343\331\220\202\343\331" \
+ "\217\23\343\331\216\343\331\215\343\331\214\343\331\212\343\331\211\343" \
+ "\331\207\343\331\206\343\330\204\343\330\202\343\330~\343\327}\343\327" \
+ "{\342\326u\342\325r\342\325n\342\323f\341\322`\254\237\77QH\30\20492" \
+ "\21\21""71\20""5/\17""2-\17/*\16,'\15($\14%!\13\"\35\12\35\31\10\31\25" \
+ "\7\26\23\6\21\16\5\16\14\4\12\11\3\6\5\2\4\3\1\1\1\0\377\0\0\0\377\0" \
+ "\0\0\361\0\0\0\"\1\1\0\3\3\1\5\4\2\11\10\3\15\13\4\20\16\4\24\21\5\31" \
+ "\25\7\34\30\10\40\33\11#\36\12&!\13-&\15""9.\17F6\21M:\23P=\24T\77\24" \
+ "VB\25WB\25YC\25[C\26\\D\26pY$\264\244W\343\327}\343\330~\343\330\202" \
+ "\343\330\204\343\331\206\343\331\207\343\331\210\343\331\211\343\331" \
+ "\212\202\343\331\214\2\343\331\215\343\331\216\202\343\331\217\1\343" \
+ "\331\220\202\343\332\221\225\343\332\222\1\343\332\221\202\343\331\220" \
+ "\202\343\331\217\4\343\331\216\343\331\215\343\331\214\343\331\212\202" \
+ "\343\331\211\17\343\331\210\343\331\206\343\330\204\343\330\202\343\330" \
+ "\201\343\330~\343\327}\343\326x\342\326u\342\325r\342\324j\342\323f\341" \
+ "\322`\254\237\77ZQ\35\20492\21\22""82\20""60\20""4.\20""1,\17-(\16+&" \
+ "\15'#\14$\37\13!\34\11\34\30\10\31\25\7\25\22\6\21\16\5\15\13\4\11\10" \
+ "\3\5\4\2\3\3\1\1\1\0\377\0\0\0\377\0\0\0\363\0\0\0\40\1\1\0\3\3\1\5\4" \
+ "\2\10\7\3\14\12\4\17\15\4\23\20\5\27\24\6\32\26\7\37\33\11#\36\12&!\13" \
+ ")%\14-'\15""9.\20H8\21P=\23R>\24VA\25XC\25ZD\25[D\26]E\26_F\26w`(\263" \
+ "\243U\341\325z\343\330~\343\330\201\343\330\202\343\330\204\343\331\206" \
+ "\202\343\331\207\3\343\331\210\343\331\211\343\331\212\202\343\331\214" \
+ "\202\343\331\215\202\343\331\216\202\343\331\217\205\343\331\220\205" \
+ "\343\332\221\204\343\331\220\203\343\331\217\202\343\331\216\202\343" \
+ "\331\215\1\343\331\214\202\343\331\212\22\343\331\211\343\331\210\343" \
+ "\331\207\343\331\206\343\330\204\343\330\202\343\330\201\343\330~\343" \
+ "\327}\343\327{\343\326x\342\326u\342\325n\342\324j\342\323f\337\317Z" \
+ "\250\233>ZQ\35\20492\21\23""82\20""60\20""5/\17""2-\17/*\16,'\15)%\14" \
+ "&!\13#\36\12\37\33\11\32\26\7\27\24\6\23\20\5\17\15\4\14\12\4\10\7\3" \
+ "\5\4\2\3\3\1\1\1\0\377\0\0\0\377\0\0\0\366\0\0\0\34\2\2\1\5\4\1\7\6\2" \
+ "\13\11\3\16\14\4\21\16\5\25\22\6\31\25\7\35\31\10!\34\11$\37\13'#\14" \
+ "*%\15,'\16""7.\17F7\22R=\24WA\25YC\25[C\26[E\26_E\26_F\27aG\27pW\40\251" \
+ "\226J\330\313s\343\327}\202\343\330~\4\343\330\201\343\330\202\343\330" \
+ "\204\343\331\206\202\343\331\207\1\343\331\210\202\343\331\211\202\343" \
+ "\331\212\203\343\331\214\215\343\331\215\202\343\331\214\203\343\331" \
+ "\212\1\343\331\211\202\343\331\210\1\343\331\207\202\343\331\206\17\343" \
+ "\330\204\343\330\202\343\330\201\343\330~\343\327}\343\327{\343\326x" \
+ "\342\326u\342\325r\342\325n\342\324j\341\322`\325\306U\224\2106JB\27" \
+ "\20492\21\23""82\20""71\20""60\20""3-\17""0+\17-(\16+&\15'#\14$\37\13" \
+ "!\34\11\35\31\10\31\25\7\26\23\6\21\16\5\17\15\5\13\11\3\7\6\2\5\4\1" \
+ "\2\2\1\377\0\0\0\377\0\0\0\371\0\0\0\40\1\1\0\4\3\1\6\5\2\11\10\3\15" \
+ "\13\4\20\16\4\24\21\5\30\25\7\33\27\10\37\33\11#\36\12%!\13($\14+&\15" \
+ "-(\16""3,\17\77""4\20M<\23YC\25[C\26]E\26_F\26aG\27bH\27dG\26gM\30\221" \
+ "z6\277\257[\343\326x\343\327{\343\327}\343\330~\202\343\330\201\1\343" \
+ "\330\202\202\343\330\204\202\343\331\206\202\343\331\207\203\343\331" \
+ "\210\213\343\331\211\203\343\331\210\202\343\331\207\202\343\331\206" \
+ "\202\343\330\204\2\343\330\202\343\330\201\202\343\330~\14\343\327}\343" \
+ "\327{\343\326x\342\326u\342\325r\342\325n\342\324j\342\323f\341\322`" \
+ "\257\243Fpf$>6\23\20492\21\24""82\20""71\20""60\20""3-\17""1,\17.)\16" \
+ "+&\15($\14&!\13#\36\12\37\33\11\33\27\10\30\25\7\24\21\5\20\16\4\15\13" \
+ "\4\11\10\3\6\5\2\4\3\1\1\1\0\377\0\0\0\377\0\0\0\373\0\0\0\36\1\1\0\3" \
+ "\3\1\5\4\2\10\7\3\13\11\3\17\15\5\22\17\5\26\23\6\31\25\7\34\30\10\40" \
+ "\33\11#\36\12&!\13)%\14,'\15.)\16""1,\17""5.\17D7\22Q>\24]E\26_F\27a" \
+ "G\27dH\27dI\27fJ\27gJ\27sV\36\236\210\77\305\264^\202\343\326x\2\343" \
+ "\327{\343\327}\202\343\330~\202\343\330\201\203\343\330\202\204\343\330" \
+ "\204\207\343\331\206\204\343\330\204\203\343\330\202\202\343\330\201" \
+ "\1\343\330~\202\343\327}\2\343\327{\343\326x\202\342\326u\10\342\325" \
+ "r\342\325n\342\324j\342\323f\341\322`\263\247G\200v.IA\27\20592\21\25" \
+ "82\20""71\20""60\20""3-\17""1,\17.)\16,'\15)%\14&!\13#\36\12\40\33\11" \
+ "\34\30\10\31\25\7\26\23\6\22\17\5\17\15\4\14\12\4\10\7\3\5\4\2\3\3\1" \
+ "\1\1\0\377\0\0\0\377\0\0\0\376\0\0\0!\2\2\1\4\3\1\6\5\2\12\11\3\15\13" \
+ "\4\20\16\4\23\20\5\27\24\6\32\26\7\35\31\10!\34\11$\37\13&!\13)%\14," \
+ "'\15.)\16""1,\17""3-\17""6/\17A6\21N=\23YC\25dG\26dH\27gK\27hJ\27jL\30" \
+ "kM\30vX\37\231\2008\273\250U\331\313n\342\326u\202\343\326x\202\343\327" \
+ "{\203\343\327}\205\343\330~\203\343\330\201\205\343\330~\203\343\327" \
+ "}\202\343\327{\202\343\326x\1\342\326u\202\342\325r\2\342\325n\342\324" \
+ "j\202\342\323f\4\321\303Y\246\231@tj(G\77\26\20692\21\25""82\20""60\20" \
+ "5/\17""3-\17""1,\17.)\16,'\15)%\14&!\13$\37\13!\34\11\36\32\11\32\26" \
+ "\7\27\24\6\24\21\5\20\16\4\15\13\4\12\11\3\7\6\2\5\4\1\2\2\1\377\0\0" \
+ "\0\377\0\0\0\377\0\0\0\202\0\0\0$\1\1\0\3\3\1\5\4\2\10\7\3\13\11\3\17" \
+ "\15\5\21\16\5\24\21\5\30\25\7\33\27\10\36\32\11\"\35\12$\37\13&!\13)" \
+ "%\14,'\15.)\16""0+\17""3-\17""5/\17""60\20""91\20C7\22O>\24XC\25aG\27" \
+ "jL\30lM\30lM\27nM\30pO\31\204f%\240\206<\273\246O\321\301d\342\325r\203" \
+ "\342\326u\214\343\326x\203\342\326u\203\342\325r\1\342\325n\202\342\324" \
+ "j\202\342\323f\4\303\266S\240\224\77{p,SK\33\20792\21\27""82\20""71\20" \
+ "60\20""5/\17""3-\17""0+\17.)\16,'\15)%\14'#\14$\37\13\"\35\12\36\32\11" \
+ "\33\27\10\30\25\7\25\22\6\21\16\5\17\15\5\13\11\3\10\7\3\5\4\2\3\3\1" \
+ "\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\205\0\0\0(\2\2\1\4\3\1\6\5\2\11" \
+ "\10\3\14\12\4\17\15\4\22\17\5\25\22\6\31\25\7\33\27\10\37\33\11\"\35" \
+ "\12$\37\13&!\13)%\14+&\15-(\16/*\16""2-\17""4.\20""5/\17""60\20""71\20" \
+ "82\20;3\21C7\22K<\24P>\24YC\25aG\27gK\27iK\27tQ\31vS\32\215l(\237\204" \
+ "8\257\230E\271\241I\315\272[\320\277_\210\342\325n\204\342\324j\7\342" \
+ "\323f\303\267W\276\261P\235\222B\215\2016tj*ZR\36\21192\21\31""82\20" \
+ "71\20""60\20""5/\17""4.\20""2-\17/*\16-(\16+&\15)%\14&!\13$\37\13\"\35" \
+ "\12\37\33\11\33\27\10\31\25\7\25\22\6\22\17\5\17\15\4\15\13\4\11\10\3" \
+ "\6\5\2\5\4\1\2\2\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\207\0\0\0\32\1" \
+ "\1\0\3\3\1\5\4\1\7\6\2\12\11\3\15\13\4\17\15\4\22\17\5\25\22\6\31\25" \
+ "\7\33\27\10\36\32\11\"\35\12$\37\13&!\13($\14+&\15,'\16.)\16""0+\17""2" \
+ "-\17""4.\20""5/\17""60\20""71\20""82\20\21192\21\1D9\22\202F:\23\1C7" \
+ "\22\20292\21\1IB\31\203ZR!\204ZR\40\1@8\24\21592\21\20282\20\31""71\20" \
+ "60\20""5/\17""4.\20""2-\17""0+\17.)\16,'\16+&\15($\14&!\13$\37\13\"\35" \
+ "\12\37\33\11\33\27\10\31\25\7\26\23\6\23\20\5\20\16\4\15\13\4\12\11\3" \
+ "\7\6\2\5\4\2\3\3\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\213\0\0\0\30\2" \
+ "\2\1\4\3\1\5\4\2\10\7\3\13\11\3\15\13\4\20\16\4\22\17\5\25\22\6\30\25" \
+ "\7\32\26\7\35\31\10!\34\11#\36\12%!\13'#\14)%\14+&\15,'\16.)\16""0+\17" \
+ "2-\17""4.\20""5/\17\20260\20\1""71\20\20282\20\23492\21\20282\20\1""7" \
+ "1\20\20260\20\30""5/\17""3-\17""2-\17""0+\17.)\16,'\16+&\15)%\14'#\14" \
+ "%!\13#\36\12!\34\11\36\32\11\33\27\10\31\25\7\26\23\6\23\20\5\20\16\4" \
+ "\16\14\4\13\11\3\10\7\3\5\4\2\4\3\1\2\2\1\377\0\0\0\377\0\0\0\377\0\0" \
+ "\0\216\0\0\0\33\1\1\0\2\2\1\4\3\1\5\4\2\10\7\3\13\11\3\15\13\4\17\15" \
+ "\4\22\17\5\25\22\6\30\25\7\31\25\7\34\30\10\37\33\11\"\35\12$\37\13&" \
+ "!\13'#\14)%\14+&\15,'\16.)\16/*\16""1,\17""2-\17""4.\20""5/\17\20360" \
+ "\20\20271\20\20382\20\21692\21\20382\20\20271\20\20360\20\33""5/\17""4" \
+ ".\20""2-\17""1,\17/*\16.)\16,'\16+&\15)%\14'#\14&!\13$\37\13\"\35\12" \
+ "\37\33\11\34\30\10\31\25\7\30\25\7\25\22\6\22\17\5\20\16\4\16\14\4\13" \
+ "\11\3\10\7\3\6\5\2\4\3\1\2\2\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\221" \
+ "\0\0\0\32\1\1\0\2\2\1\4\3\1\5\4\2\10\7\3\13\11\3\15\13\4\17\15\4\21\16" \
+ "\5\24\21\5\27\24\6\31\25\7\33\27\10\35\31\10\40\33\11\"\35\12$\37\13" \
+ "&!\13'#\14)%\14*%\15,'\15,'\16.)\16/*\16""0+\17\2022-\17\2""3-\17""4" \
+ ".\20\2025/\17\22060\20\2025/\17\36""4.\20""3-\17""2-\17""1,\17""0+\17" \
+ "/*\16.)\16,'\16,'\15*%\15)%\14'#\14&!\13$\37\13\"\35\12\40\33\11\35\31" \
+ "\10\33\27\10\31\25\7\27\24\6\24\21\5\21\16\5\17\15\4\15\13\4\13\11\3" \
+ "\10\7\3\6\5\2\4\3\1\2\2\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0\0\225\0\0" \
+ "\0\33\1\1\0\2\2\1\4\3\1\5\4\2\10\7\3\12\11\3\14\12\4\17\15\5\20\16\4" \
+ "\22\17\5\25\22\6\27\24\6\31\25\7\33\27\10\35\31\10\37\33\11\"\35\12#" \
+ "\36\12%!\13&!\13'#\14)%\14*%\15+&\15,'\15-(\16.)\16\202/*\16\1""0+\17" \
+ "\2021,\17\2032-\17\2063-\17\2032-\17\2021,\17\36""0+\17/*\16.)\16-(\16" \
+ ",'\16,'\15+&\15*%\15)%\14'#\14&!\13$\37\13#\36\12\"\35\12\37\33\11\35" \
+ "\31\10\33\27\10\31\25\7\27\24\6\25\22\6\22\17\5\20\16\4\17\15\5\14\12" \
+ "\4\12\11\3\10\7\3\5\4\2\4\3\1\2\2\1\1\1\0\377\0\0\0\377\0\0\0\377\0\0" \
+ "\0\231\0\0\0\25\1\1\0\2\2\1\4\3\1\5\4\2\7\6\2\11\10\3\13\11\3\15\13\4" \
+ "\17\15\4\21\16\5\23\20\5\25\22\6\27\24\6\31\25\7\32\26\7\34\30\10\36" \
+ "\32\11\40\33\11\"\35\12#\36\12$\37\13\202&!\13\4'#\14($\14)%\14*%\15" \
+ "\202+&\15\1,'\15\203,'\16\206-(\16\203,'\16\1,'\15\202+&\15\33*%\15)" \
+ "%\14($\14'#\14&!\13%!\13$\37\13#\36\12\"\35\12\40\33\11\36\32\11\34\30" \
+ "\10\32\26\7\31\25\7\27\24\6\25\22\6\23\20\5\21\16\5\17\15\4\15\13\4\13" \
+ "\11\3\11\10\3\7\6\2\5\4\2\4\3\1\2\2\1\1\1\0\377\0\0\0\377\0\0\0\377\0" \
+ "\0\0\235\0\0\0\26\1\1\0\2\2\1\3\3\1\5\4\1\6\5\2\10\7\3\12\11\3\14\12" \
+ "\4\16\14\4\17\15\4\21\16\5\22\17\5\24\21\5\26\23\6\30\25\7\31\25\7\33" \
+ "\27\10\34\30\10\36\32\11\37\33\11!\34\11\"\35\12\202#\36\12\202$\37\13" \
+ "\1%!\13\204&!\13\206'#\14\204&!\13\1%!\13\202$\37\13\202#\36\12\26\"" \
+ "\35\12\40\33\11\37\33\11\35\31\10\34\30\10\32\26\7\31\25\7\30\25\7\26" \
+ "\23\6\24\21\5\22\17\5\21\16\5\17\15\4\16\14\4\14\12\4\12\11\3\10\7\3" \
+ "\6\5\2\5\4\1\3\3\1\2\2\1\1\1\0\377\0\0\0\377\0\0\0\312\0\0\0\206\1\1" \
+ "\1\321\0\0\0\20\1\1\0\2\2\1\4\3\1\5\4\1\6\5\2\10\7\3\12\11\3\13\11\3" \
+ "\15\13\4\17\15\5\20\16\4\21\16\5\23\20\5\24\21\5\26\23\6\27\24\6\202" \
+ "\31\25\7\6\32\26\7\33\27\10\34\30\10\35\31\10\36\32\11\37\33\11\202\40" \
+ "\33\11\203!\34\11\204\"\35\12\203!\34\11\202\40\33\11\6\37\33\11\36\32" \
+ "\11\35\31\10\34\30\10\33\27\10\32\26\7\202\31\25\7\20\27\24\6\26\23\6" \
+ "\24\21\5\23\20\5\21\16\5\20\16\4\17\15\5\15\13\4\13\11\3\12\11\3\10\7" \
+ "\3\6\5\2\5\4\1\4\3\1\2\2\1\1\1\0\226\0\0\0\206\1\1\1\266\0\0\0\206\1" \
+ "\1\1\377\0\0\0\354\0\0\0\211\1\1\1\204\2\2\2\210\1\1\1\210\0\0\0\227" \
+ "\1\1\1\214\0\0\0\223\1\1\1\207\0\0\0\207\1\1\1\202\2\2\1\16\4\4\2\5\4" \
+ "\2\6\5\2\7\6\3\10\7\3\12\11\4\13\12\4\15\13\5\16\14\5\20\16\6\20\16\5" \
+ "\22\17\6\23\20\6\24\21\6\202\25\22\6\3\26\23\6\27\24\6\30\25\7\203\31" \
+ "\25\7\1\32\26\10\210\33\27\10\204\32\26\10\23\31\26\10\30\25\7\27\24" \
+ "\7\26\23\7\25\22\6\24\21\6\23\20\6\22\17\6\20\16\5\20\16\6\16\14\5\15" \
+ "\13\5\13\12\4\12\11\4\10\7\3\7\6\3\6\5\2\5\4\2\4\4\2\202\2\2\1\204\1" \
+ "\1\1\214\0\0\0\211\1\1\1\204\2\2\2\210\1\1\1\205\0\0\0\215\1\1\1\206" \
+ "\0\0\0\230\1\1\1\204\2\2\2\211\1\1\1\377\0\0\0\340\0\0\0\205\1\1\1\204" \
+ "\2\2\2\214\3\3\3\204\2\2\2\211\1\1\1\205\2\2\2\213\3\3\3\205\2\2\2\205" \
+ "\1\1\1\204\0\0\0\205\1\1\1\204\2\2\2\211\3\3\3\205\2\2\2\210\1\1\1\205" \
+ "\2\2\2\204\3\3\3\202\4\4\3\202\6\6\4\12\10\7\4\10\7\5\11\10\5\12\11\5" \
+ "\13\12\5\14\13\5\15\13\5\16\14\6\17\15\6\17\15\5\202\20\16\5\1\21\17" \
+ "\5\202\22\17\6\1\23\20\6\202\24\21\6\1\25\22\7\204\26\23\7\202\27\24" \
+ "\10\203\26\23\10\1\25\22\10\202\24\21\10\15\23\21\7\22\20\7\22\20\10" \
+ "\21\17\7\20\16\7\17\15\7\16\14\6\15\14\6\14\13\6\12\11\5\11\10\5\10\7" \
+ "\5\10\7\4\202\6\6\4\202\4\4\3\1\3\3\3\206\2\2\2\204\1\1\1\204\0\0\0\204" \
+ "\1\1\1\204\2\2\2\215\3\3\3\226\2\2\2\206\1\1\1\206\2\2\2\202\3\3\3\212" \
+ "\2\2\2\216\3\3\3\204\2\2\2\205\1\1\1\377\0\0\0\332\0\0\0\203\1\1\1\202" \
+ "\2\2\2\205\3\3\3\216\4\4\4\220\3\3\3\215\4\4\4\206\3\3\3\202\2\2\2\206" \
+ "\1\1\1\202\2\2\2\206\3\3\3\212\4\4\4\220\3\3\3\211\4\4\4\5\5\5\4\6\6" \
+ "\5\7\7\5\10\7\5\11\10\5\202\10\7\5\4\11\10\5\12\11\5\13\12\6\14\13\6" \
+ "\202\15\14\6\1\16\14\6\202\17\15\7\203\20\16\7\203\21\17\7\203\22\20" \
+ "\10\203\21\17\10\202\20\16\10\1\17\15\7\202\16\15\7\5\15\14\7\14\13\7" \
+ "\13\12\6\12\11\6\11\10\6\202\11\10\5\4\10\7\5\7\7\5\6\6\5\5\5\4\207\4" \
+ "\4\4\205\3\3\3\204\2\2\2\203\1\1\1\203\2\2\2\205\3\3\3\216\4\4\4\241" \
+ "\3\3\3\233\4\4\4\205\3\3\3\202\2\2\2\203\1\1\1\377\0\0\0\326\0\0\0\202" \
+ "\1\1\1\202\2\2\2\203\3\3\3\203\4\4\4\204\5\5\5\212\6\6\6\205\5\5\5\213" \
+ "\4\4\4\205\5\5\5\207\6\6\6\206\5\5\5\203\4\4\4\212\3\3\3\203\4\4\4\207" \
+ "\5\5\5\1\6\6\6\230\5\5\5\210\6\6\6\202\5\5\5\202\6\6\5\2\7\7\6\10\10" \
+ "\6\202\10\7\5\202\11\10\5\1\11\10\6\202\12\11\6\203\13\12\6\1\14\13\7" \
+ "\212\15\14\10\202\14\13\10\1\13\12\10\202\13\12\7\202\12\11\7\2\11\11" \
+ "\7\10\10\7\202\7\7\6\210\6\6\6\205\5\5\5\204\4\4\4\210\3\3\3\204\4\4" \
+ "\4\204\5\5\5\212\6\6\6\251\5\5\5\223\6\6\6\204\5\5\5\203\4\4\4\203\3" \
+ "\3\3\202\2\2\2\202\1\1\1\377\0\0\0\322\0\0\0\202\1\1\1\202\2\2\2\202" \
+ "\3\3\3\202\4\4\4\202\5\5\5\203\6\6\6\203\7\7\7\212\10\10\10\206\7\7\7" \
+ "\213\6\6\6\203\7\7\7\211\10\10\10\203\7\7\7\203\6\6\6\215\5\5\5\203\6" \
+ "\6\6\205\7\7\7\204\10\10\10\225\7\7\7\212\10\10\10\205\7\7\7\1\6\6\6" \
+ "\202\7\7\6\202\10\10\7\204\11\11\7\202\12\11\7\205\13\12\10\203\14\13" \
+ "\11\204\13\13\11\202\12\12\11\202\11\11\10\215\10\10\10\204\7\7\7\203" \
+ "\6\6\6\213\5\5\5\204\6\6\6\203\7\7\7\215\10\10\10\214\7\7\7\205\6\6\6" \
+ "\223\7\7\7\225\10\10\10\203\7\7\7\203\6\6\6\202\5\5\5\202\4\4\4\202\3" \
+ "\3\3\202\2\2\2\202\1\1\1\377\0\0\0\316\0\0\0\202\1\1\1\202\2\2\2\202" \
+ "\3\3\3\1\4\4\4\202\5\5\5\202\6\6\6\202\7\7\7\202\10\10\10\203\11\11\11" \
+ "\212\12\12\12\224\11\11\11\211\12\12\12\203\11\11\11\205\10\10\10\211" \
+ "\7\7\7\205\10\10\10\205\11\11\11\203\12\12\12\226\11\11\11\212\12\12" \
+ "\12\221\11\11\11\204\12\12\11\230\12\12\12\204\11\11\11\222\10\10\10" \
+ "\203\11\11\11\222\12\12\12\210\11\11\11\202\10\10\10\224\11\11\11\226" \
+ "\12\12\12\203\11\11\11\202\10\10\10\202\7\7\7\202\6\6\6\202\5\5\5\1\4" \
+ "\4\4\202\3\3\3\202\2\2\2\202\1\1\1\377\0\0\0\313\0\0\0\202\1\1\1\1\2" \
+ "\2\2\202\3\3\3\1\4\4\4\202\5\5\5\1\6\6\6\202\7\7\7\1\10\10\10\202\11" \
+ "\11\11\202\12\12\12\203\13\13\13\212\14\14\14\225\13\13\13\210\14\14" \
+ "\14\203\13\13\13\224\12\12\12\204\13\13\13\204\14\14\14\225\13\13\13" \
+ "\212\14\14\14\225\13\13\13\204\14\14\14\221\15\15\15\204\14\14\14\203" \
+ "\13\13\13\221\12\12\12\204\13\13\13\225\14\14\14\233\13\13\13\204\14" \
+ "\14\14\214\15\15\15\206\14\14\14\203\13\13\13\202\12\12\12\202\11\11" \
+ "\11\1\10\10\10\202\7\7\7\1\6\6\6\202\5\5\5\1\4\4\4\202\3\3\3\1\2\2\2" \
+ "\202\1\1\1\377\0\0\0\310\0\0\0\202\1\1\1\1\2\2\2\202\3\3\3\202\4\4\4" \
+ "\4\5\5\5\6\6\6\7\7\7\10\10\10\202\11\11\11\1\12\12\12\202\13\13\13\202" \
+ "\14\14\14\203\15\15\15\203\16\16\16\204\17\17\17\214\16\16\16\212\15" \
+ "\15\15\213\16\16\16\204\15\15\15\217\14\14\14\206\15\15\15\235\16\16" \
+ "\16\205\17\17\17\231\16\16\16\207\17\17\17\206\20\20\20\210\17\17\17" \
+ "\202\16\16\16\207\15\15\15\204\14\14\14\214\15\15\15\204\16\16\16\203" \
+ "\17\17\17\204\16\16\16\206\17\17\17\207\16\16\16\211\15\15\15\212\16" \
+ "\16\16\204\15\15\15\204\16\16\16\221\17\17\17\203\16\16\16\203\15\15" \
+ "\15\202\14\14\14\202\13\13\13\2\12\12\12\11\11\11\202\10\10\10\3\7\7" \
+ "\7\6\6\6\5\5\5\202\4\4\4\202\3\3\3\1\2\2\2\202\1\1\1\377\0\0\0\305\0" \
+ "\0\0\202\1\1\1\1\2\2\2\202\3\3\3\5\4\4\4\5\5\5\6\6\6\7\7\7\10\10\10\202" \
+ "\11\11\11\3\12\12\12\13\13\13\14\14\14\202\15\15\15\1\16\16\16\202\17" \
+ "\17\17\204\20\20\20\206\21\21\21\230\20\20\20\206\21\21\21\204\20\20" \
+ "\20\224\17\17\17\235\20\20\20\211\21\21\21\227\20\20\20\205\21\21\21" \
+ "\215\22\22\22\205\21\21\21\204\20\20\20\216\17\17\17\210\20\20\20\224" \
+ "\21\21\21\216\20\20\20\203\21\21\21\212\20\20\20\206\21\21\21\207\22" \
+ "\22\22\207\21\21\21\204\20\20\20\202\17\17\17\1\16\16\16\202\15\15\15" \
+ "\3\14\14\14\13\13\13\12\12\12\202\11\11\11\5\10\10\10\7\7\7\6\6\6\5\5" \
+ "\5\4\4\4\202\3\3\3\1\2\2\2\202\1\1\1\377\0\0\0\303\0\0\0\202\1\1\1\2" \
+ "\2\2\2\3\3\3\202\4\4\4\13\5\5\5\6\6\6\7\7\7\10\10\10\11\11\11\12\12\12" \
+ "\13\13\13\14\14\14\15\15\15\16\16\16\17\17\17\202\20\20\20\202\21\21" \
+ "\21\202\22\22\22\247\23\23\23\205\22\22\22\217\21\21\21\210\22\22\22" \
+ "\233\23\23\23\204\24\24\24\232\23\23\23\224\24\24\24\203\23\23\23\230" \
+ "\22\22\22\206\23\23\23\215\24\24\24\204\23\23\23\210\22\22\22\223\23" \
+ "\23\23\220\24\24\24\204\23\23\23\202\22\22\22\202\21\21\21\202\20\20" \
+ "\20\13\17\17\17\16\16\16\15\15\15\14\14\14\13\13\13\12\12\12\11\11\11" \
+ "\10\10\10\7\7\7\6\6\6\5\5\5\202\4\4\4\2\3\3\3\2\2\2\202\1\1\1\377\0\0" \
+ "\0\301\0\0\0\202\1\1\1\20\2\2\2\3\3\3\4\4\4\5\5\5\6\6\6\7\7\7\10\10\10" \
+ "\11\11\11\12\12\12\13\13\13\14\14\14\15\15\15\16\16\16\17\17\17\20\20" \
+ "\20\21\21\21\202\22\22\22\1\23\23\23\202\24\24\24\204\25\25\25\205\26" \
+ "\26\26\231\25\25\25\204\26\26\26\204\25\25\25\227\24\24\24\214\25\25" \
+ "\25\206\26\26\26\211\25\25\25\211\26\26\26\226\25\25\25\204\26\26\26" \
+ "\220\27\27\27\203\26\26\26\204\25\25\25\222\24\24\24\207\25\25\25\222" \
+ "\26\26\26\215\25\25\25\205\26\26\26\211\25\25\25\203\26\26\26\215\27" \
+ "\27\27\203\26\26\26\204\25\25\25\202\24\24\24\1\23\23\23\202\22\22\22" \
+ "\20\21\21\21\20\20\20\17\17\17\16\16\16\15\15\15\14\14\14\13\13\13\12" \
+ "\12\12\11\11\11\10\10\10\7\7\7\6\6\6\5\5\5\4\4\4\3\3\3\2\2\2\202\1\1" \
+ "\1\377\0\0\0\277\0\0\0\202\1\1\1\22\2\2\2\3\3\3\4\4\4\5\5\5\6\6\6\7\7" \
+ "\7\10\10\10\11\11\11\12\12\12\14\14\14\15\15\15\16\16\16\17\17\17\20" \
+ "\20\20\21\21\21\22\22\22\23\23\23\24\24\24\202\25\25\25\1\26\26\26\202" \
+ "\27\27\27\203\30\30\30\220\31\31\31\216\30\30\30\204\31\31\31\203\30" \
+ "\30\30\232\27\27\27\207\30\30\30\236\31\31\31\220\30\30\30\212\31\31" \
+ "\31\212\32\32\32\206\31\31\31\203\30\30\30\225\27\27\27\205\30\30\30" \
+ "\223\31\31\31\213\30\30\30\207\31\31\31\207\30\30\30\207\31\31\31\206" \
+ "\32\32\32\207\31\31\31\203\30\30\30\202\27\27\27\1\26\26\26\202\25\25" \
+ "\25\22\24\24\24\23\23\23\22\22\22\21\21\21\20\20\20\17\17\17\16\16\16" \
+ "\15\15\15\14\14\14\12\12\12\11\11\11\10\10\10\7\7\7\6\6\6\5\5\5\4\4\4" \
+ "\3\3\3\2\2\2\202\1\1\1\377\0\0\0\276\0\0\0\26\1\1\1\2\2\2\3\3\3\4\4\4" \
+ "\5\5\5\6\6\6\7\7\7\10\10\10\12\12\12\13\13\13\14\14\14\15\15\15\17\17" \
+ "\17\20\20\20\21\21\21\22\22\22\23\23\23\24\24\24\25\25\25\26\26\26\27" \
+ "\27\27\30\30\30\202\31\31\31\203\32\32\32\244\33\33\33\210\32\32\32\207" \
+ "\31\31\31\221\32\32\32\270\33\33\33\221\34\34\34\203\33\33\33\232\32" \
+ "\32\32\207\33\33\33\212\34\34\34\205\33\33\33\210\32\32\32\223\33\33" \
+ "\33\217\34\34\34\203\33\33\33\203\32\32\32\202\31\31\31\26\30\30\30\27" \
+ "\27\27\26\26\26\25\25\25\24\24\24\23\23\23\22\22\22\21\21\21\20\20\20" \
+ "\17\17\17\15\15\15\14\14\14\13\13\13\12\12\12\10\10\10\7\7\7\6\6\6\5" \
+ "\5\5\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\275\0\0\0\24\1\1\1\2\2\2\3\3\3" \
+ "\4\4\4\5\5\5\6\6\6\7\7\7\11\11\11\12\12\12\13\13\13\15\15\15\16\16\16" \
+ "\17\17\17\20\20\20\22\22\22\23\23\23\24\24\24\25\25\25\26\26\26\30\30" \
+ "\30\202\31\31\31\2\32\32\32\33\33\33\202\34\34\34\202\35\35\35\244\36" \
+ "\36\36\204\35\35\35\227\34\34\34\205\35\35\35\270\36\36\36\221\37\37" \
+ "\37\203\36\36\36\204\35\35\35\212\34\34\34\215\35\35\35\207\36\36\36" \
+ "\211\37\37\37\205\36\36\36\211\35\35\35\223\36\36\36\215\37\37\37\204" \
+ "\36\36\36\202\35\35\35\202\34\34\34\2\33\33\33\32\32\32\202\31\31\31" \
+ "\24\30\30\30\26\26\26\25\25\25\24\24\24\23\23\23\22\22\22\20\20\20\17" \
+ "\17\17\16\16\16\15\15\15\13\13\13\12\12\12\11\11\11\7\7\7\6\6\6\5\5\5" \
+ "\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\273\0\0\0\202\1\1\1\202\3\3\3\24\4" \
+ "\4\4\6\6\6\7\7\7\10\10\10\12\12\12\13\13\13\15\15\15\16\16\16\20\20\20" \
+ "\21\21\21\22\22\22\24\24\24\25\25\25\26\26\26\30\30\30\31\31\31\32\32" \
+ "\32\33\33\33\34\34\34\35\35\35\202\36\36\36\202\37\37\37\205\40\40\40" \
+ "\217!!!\215\40\40\40\202!!!\205\40\40\40\231\37\37\37\206\40\40\40\267" \
+ "!!!\217\"\"\"\203!!!\205\40\40\40\214\37\37\37\215\40\40\40\221!!!\214" \
+ "\40\40\40\210!!!\206\40\40\40\205!!!\213\"\"\"\204!!!\202\40\40\40\202" \
+ "\37\37\37\202\36\36\36\24\35\35\35\34\34\34\33\33\33\32\32\32\31\31\31" \
+ "\30\30\30\26\26\26\25\25\25\24\24\24\22\22\22\21\21\21\20\20\20\16\16" \
+ "\16\15\15\15\13\13\13\12\12\12\10\10\10\7\7\7\6\6\6\4\4\4\202\3\3\3\202" \
+ "\1\1\1\377\0\0\0\272\0\0\0\32\1\1\1\2\2\2\3\3\3\4\4\4\5\5\5\7\7\7\10" \
+ "\10\10\12\12\12\13\13\13\15\15\15\16\16\16\20\20\20\21\21\21\23\23\23" \
+ "\24\24\24\25\25\25\27\27\27\31\31\31\32\32\32\33\33\33\34\34\34\35\35" \
+ "\35\36\36\36\37\37\37\40\40\40!!!\202\"\"\"\250###\231\"\"\"\236###\1" \
+ "$$$\233###\204$$$\215%%%\203$$$\205###\217\"\"\"\215###\216$$$\220##" \
+ "#\1$$$\214###\204$$$\211%%%\204$$$\203###\202\"\"\"\32!!!\40\40\40\37" \
+ "\37\37\36\36\36\35\35\35\34\34\34\33\33\33\32\32\32\31\31\31\27\27\27" \
+ "\25\25\25\24\24\24\23\23\23\21\21\21\20\20\20\16\16\16\15\15\15\13\13" \
+ "\13\12\12\12\10\10\10\7\7\7\5\5\5\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\271" \
+ "\0\0\0\31\1\1\1\2\2\2\3\3\3\4\4\4\5\5\5\6\6\6\10\10\10\11\11\11\13\13" \
+ "\13\15\15\15\16\16\16\20\20\20\21\21\21\23\23\23\24\24\24\26\26\26\30" \
+ "\30\30\31\31\31\32\32\32\34\34\34\35\35\35\37\37\37\40\40\40!!!\"\"\"" \
+ "\202###\1$$$\202%%%\245&&&\235%%%\270&&&\206'''\211(((\205'''\203&&&" \
+ "\227%%%\210&&&\215'''\205&&&\203%%%\226&&&\205'''\203(((\210'''\202&" \
+ "&&\202%%%\1$$$\202###\31\"\"\"!!!\40\40\40\37\37\37\35\35\35\34\34\34" \
+ "\32\32\32\31\31\31\30\30\30\26\26\26\24\24\24\23\23\23\21\21\21\20\20" \
+ "\20\16\16\16\15\15\15\13\13\13\11\11\11\10\10\10\6\6\6\5\5\5\4\4\4\3" \
+ "\3\3\2\2\2\1\1\1\377\0\0\0\267\0\0\0\202\1\1\1\202\3\3\3\25\5\5\5\6\6" \
+ "\6\7\7\7\11\11\11\13\13\13\14\14\14\16\16\16\20\20\20\21\21\21\23\23" \
+ "\23\25\25\25\26\26\26\30\30\30\32\32\32\33\33\33\35\35\35\36\36\36\40" \
+ "\40\40!!!\"\"\"###\202%%%\2&&&'''\203(((\242)))\207(((\217'''\213(((" \
+ "\267)))\205***\210+++\206***\202)))\233(((\205)))\214***\203)))\212(" \
+ "((\222)))\217***\202)))\203(((\2'''&&&\202%%%\27###\"\"\"!!!\40\40\40" \
+ "\36\36\36\35\35\35\33\33\33\32\32\32\30\30\30\26\26\26\25\25\25\23\23" \
+ "\23\21\21\21\20\20\20\16\16\16\14\14\14\13\13\13\11\11\11\7\7\7\6\6\6" \
+ "\5\5\5\3\3\3\2\2\2\202\1\1\1\377\0\0\0\266\0\0\0\34\1\1\1\2\2\2\3\3\3" \
+ "\4\4\4\5\5\5\7\7\7\10\10\10\12\12\12\14\14\14\15\15\15\20\20\20\21\21" \
+ "\21\23\23\23\24\24\24\26\26\26\30\30\30\32\32\32\33\33\33\35\35\35\37" \
+ "\37\37\40\40\40\"\"\"###%%%&&&'''((()))\202***\207+++\211,,,\232+++\223" \
+ "***\213+++\235,,,\222+++\206,,,\220---\203,,,\210+++\206***\220+++\207" \
+ ",,,\204---\206,,,\215+++\206,,,\210+++\203,,,\215---\203,,,\202+++\202" \
+ "***\34)))((('''&&&%%%###\"\"\"\40\40\40\37\37\37\35\35\35\33\33\33\32" \
+ "\32\32\30\30\30\26\26\26\24\24\24\23\23\23\21\21\21\20\20\20\15\15\15" \
+ "\14\14\14\12\12\12\10\10\10\7\7\7\5\5\5\4\4\4\3\3\3\2\2\2\1\1\1\377\0" \
+ "\0\0\266\0\0\0\1\1\1\1\202\3\3\3\27\5\5\5\6\6\6\10\10\10\11\11\11\13" \
+ "\13\13\15\15\15\17\17\17\21\21\21\22\22\22\24\24\24\26\26\26\30\30\30" \
+ "\32\32\32\34\34\34\36\36\36\37\37\37!!!###$$$&&&'''(((***\202+++\2,," \
+ ",---\247...\233---\231...\207///\230...\205///\214000\204///\204...\224" \
+ "---\210...\217///\217...\203///\213...\205///\207000\205///\203...\2" \
+ "---,,,\202+++\27***((('''&&&$$$###!!!\37\37\37\36\36\36\34\34\34\32\32" \
+ "\32\30\30\30\26\26\26\24\24\24\22\22\22\21\21\21\17\17\17\15\15\15\13" \
+ "\13\13\11\11\11\10\10\10\6\6\6\5\5\5\202\3\3\3\1\1\1\1\377\0\0\0\265" \
+ "\0\0\0\36\1\1\1\2\2\2\3\3\3\4\4\4\5\5\5\7\7\7\11\11\11\12\12\12\14\14" \
+ "\14\16\16\16\20\20\20\22\22\22\24\24\24\26\26\26\30\30\30\32\32\32\33" \
+ "\33\33\36\36\36\37\37\37!!!###%%%&&&(((***+++,,,---...///\202000\244" \
+ "111\206000\220///\211000\271111\221222\203111\210000\204///\217000\211" \
+ "111\203222\210111\212000\223111\215222\204111\202000\36///...---,,,+" \
+ "++***(((&&&%%%###!!!\37\37\37\36\36\36\33\33\33\32\32\32\30\30\30\26" \
+ "\26\26\24\24\24\22\22\22\20\20\20\16\16\16\14\14\14\12\12\12\11\11\11" \
+ "\7\7\7\5\5\5\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\264\0\0\0!\1\1\1\2\2\2" \
+ "\3\3\3\5\5\5\6\6\6\10\10\10\12\12\12\13\13\13\15\15\15\17\17\17\21\21" \
+ "\21\23\23\23\25\25\25\27\27\27\31\31\31\33\33\33\35\35\35\37\37\37!!" \
+ "!###%%%''')))***,,,---///000LLL}}}\220\220\220\255\255\255\306\306\306" \
+ "\205\326\326\326\5\267\267\267\256\256\256\205\205\205pppBBB\211444\203" \
+ "333\202444\1aaa\214\205\205\205\3\204\204\204xxxTTT\223222\4JJJggg\205" \
+ "\205\205\225\225\225\202\255\255\255\202\256\256\256\4\242\242\242\205" \
+ "\205\205|||XXX\215444\2;;;ttt\216\205\205\205\2rrrUUU\215444\2""999i" \
+ "ii\206\205\205\205\221\206\206\206\205\205\205\205\3\204\204\204eeeC" \
+ "CC\222222\5YYY\205\205\205\232\232\232\255\255\255\317\317\317\205\326" \
+ "\326\326\5\256\256\256\242\242\242\205\205\205fff666\211444\202333\1" \
+ "\200\200\200\205\205\205\205\2UUU333\212444\1EEE\207\205\205\205\1EE" \
+ "E\207555\5AAAppp\206\206\206\256\256\256\270\270\270\205\326\326\326" \
+ "\40\305\305\305\255\255\255\220\220\220|||KKK///---,,,***)))'''%%%##" \
+ "#!!!\37\37\37\35\35\35\33\33\33\31\31\31\27\27\27\25\25\25\23\23\23\21" \
+ "\21\21\17\17\17\15\15\15\13\13\13\12\12\12\10\10\10\6\6\6\5\5\5\3\3\3" \
+ "\2\2\2\1\1\1\377\0\0\0\263\0\0\0\202\1\1\1\33\3\3\3\4\4\4\5\5\5\7\7\7" \
+ "\11\11\11\12\12\12\14\14\14\16\16\16\20\20\20\22\22\22\24\24\24\27\27" \
+ "\27\31\31\31\33\33\33\35\35\35\37\37\37!!!###%%%''')))+++---...<<<\222" \
+ "\222\222\342\342\342\217\377\377\377\2\311\311\311{{{\212666\2^^^\336" \
+ "\336\336\220\377\377\377\4\361\361\361\256\256\256TTT555\211444\2035" \
+ "55\3YYY\247\247\247\354\354\354\214\377\377\377\3\363\363\363\304\304" \
+ "\304sss\211666\2}}}\366\366\366\221\377\377\377\3\356\356\356\245\245" \
+ "\245RRR\211666\2xxx\354\354\354\240\377\377\377\3\327\327\327\217\217" \
+ "\217\77\77\77\214555\3RRR\251\251\251\356\356\356\216\377\377\377\3\370" \
+ "\370\370\270\270\270aaa\203777\206666\1\363\363\363\205\377\377\377\1" \
+ "\211\211\211\212666\2===\324\324\324\206\377\377\377\1\240\240\240\206" \
+ "777\2~~~\311\311\311\217\377\377\377\32\342\342\342\221\221\221:::--" \
+ "-+++)))'''%%%###!!!\37\37\37\35\35\35\33\33\33\31\31\31\27\27\27\24\24" \
+ "\24\22\22\22\20\20\20\16\16\16\14\14\14\12\12\12\11\11\11\7\7\7\5\5\5" \
+ "\4\4\4\3\3\3\202\1\1\1\377\0\0\0\262\0\0\0\33\1\1\1\2\2\2\3\3\3\4\4\4" \
+ "\6\6\6\10\10\10\11\11\11\13\13\13\15\15\15\20\20\20\21\21\21\24\24\24" \
+ "\25\25\25\30\30\30\32\32\32\34\34\34\36\36\36\40\40\40###%%%''')))++" \
+ "+---///www\361\361\361\223\377\377\377\2\332\332\332VVV\207888\2FFF\357" \
+ "\357\357\224\377\377\377\2\246\246\246>>>\211777\2CCC\266\266\266\222" \
+ "\377\377\377\2\323\323\323RRR\206888\2[[[\372\372\372\224\377\377\377" \
+ "\2\370\370\370\212\212\212\207888\2bbb\375\375\375\243\377\377\377\2" \
+ "\352\352\352aaa\211777\3""999\241\241\241\372\372\372\223\377\377\377" \
+ "\2\276\276\276BBB\203999\204888\1\363\363\363\205\377\377\377\1\212\212" \
+ "\212\211888\2===\313\313\313\206\377\377\377\1\262\262\262\205999\2W" \
+ "WW\332\332\332\223\377\377\377\32\360\360\360vvv---+++)))'''%%%###\40" \
+ "\40\40\36\36\36\34\34\34\32\32\32\30\30\30\25\25\25\24\24\24\21\21\21" \
+ "\20\20\20\15\15\15\13\13\13\11\11\11\10\10\10\6\6\6\4\4\4\3\3\3\2\2\2" \
+ "\1\1\1\377\0\0\0\262\0\0\0\31\1\1\1\2\2\2\3\3\3\5\5\5\6\6\6\10\10\10" \
+ "\12\12\12\14\14\14\16\16\16\20\20\20\22\22\22\24\24\24\27\27\27\31\31" \
+ "\31\33\33\33\36\36\36\40\40\40\"\"\"$$$''')))+++---///\231\231\231\226" \
+ "\377\377\377\2\366\366\366ddd\206:::\1\224\224\224\226\377\377\377\2" \
+ "\316\316\316EEE\207999\2NNN\341\341\341\224\377\377\377\2\361\361\361" \
+ "]]]\205:::\1\240\240\240\227\377\377\377\1\224\224\224\206:::\1\271\271" \
+ "\271\245\377\377\377\2\363\363\363UUU\207999\2>>>\311\311\311\226\377" \
+ "\377\377\2\341\341\341JJJ\206:::\1\363\363\363\205\377\377\377\1\213" \
+ "\213\213\211:::\1\271\271\271\206\377\377\377\2\276\276\276<<<\204;;" \
+ ";\2eee\366\366\366\226\377\377\377\30\226\226\226---+++)))'''$$$\"\"" \
+ "\"\40\40\40\36\36\36\33\33\33\31\31\31\27\27\27\24\24\24\22\22\22\20" \
+ "\20\20\16\16\16\14\14\14\12\12\12\10\10\10\6\6\6\5\5\5\3\3\3\2\2\2\1" \
+ "\1\1\377\0\0\0\262\0\0\0\30\1\1\1\3\3\3\4\4\4\5\5\5\7\7\7\11\11\11\13" \
+ "\13\13\15\15\15\17\17\17\21\21\21\23\23\23\25\25\25\30\30\30\32\32\32" \
+ "\34\34\34\37\37\37!!!###&&&(((+++---///zzz\230\377\377\377\2\357\357" \
+ "\357QQQ\205<<<\1\274\274\274\227\377\377\377\1\303\303\303\206:::\2\77" \
+ "\77\77\334\334\334\226\377\377\377\2\352\352\352JJJ\204<<<\1\272\272" \
+ "\272\230\377\377\377\1jjj\205<<<\1\341\341\341\246\377\377\377\1\325" \
+ "\325\325\207;;;\1\263\263\263\230\377\377\377\2\324\324\324\77\77\77" \
+ "\202===\203<<<\1\364\364\364\205\377\377\377\1\214\214\214\210<<<\1\254" \
+ "\254\254\206\377\377\377\2\312\312\312BBB\204===\2TTT\357\357\357\230" \
+ "\377\377\377\27vvv---+++(((&&&###!!!\37\37\37\34\34\34\32\32\32\30\30" \
+ "\30\25\25\25\23\23\23\21\21\21\17\17\17\15\15\15\13\13\13\11\11\11\7" \
+ "\7\7\5\5\5\4\4\4\3\3\3\1\1\1\377\0\0\0\261\0\0\0\31\1\1\1\2\2\2\3\3\3" \
+ "\4\4\4\6\6\6\10\10\10\11\11\11\13\13\13\15\15\15\20\20\20\22\22\22\24" \
+ "\24\24\26\26\26\31\31\31\33\33\33\36\36\36\40\40\40###%%%'''***,,,.." \
+ ".\77\77\77\361\361\361\207\377\377\377\3\355\355\355\251\251\251\212" \
+ "\212\212\204eee\4lll\214\214\214\277\277\277\372\372\372\207\377\377" \
+ "\377\2\306\306\306===\204>>>\1\306\306\306\206\377\377\377\1\267\267" \
+ "\267\206\214\214\214\3\216\216\216\262\262\262\341\341\341\210\377\377" \
+ "\377\1\201\201\201\205<<<\1\241\241\241\207\377\377\377\3\366\366\366" \
+ "\300\300\300\231\231\231\204\214\214\214\2\247\247\247\324\324\324\210" \
+ "\377\377\377\1\251\251\251\204>>>\1\273\273\273\205\377\377\377\2\375" \
+ "\375\375\247\247\247\207\214\214\214\3\245\245\245\275\275\275\355\355" \
+ "\355\207\377\377\377\1\326\326\326\205>>>\1\361\361\361\205\377\377\377" \
+ "\2\364\364\364\240\240\240\211\214\214\214\1\320\320\320\205\377\377" \
+ "\377\1\353\353\353\206\214\214\214\3\227\227\227\273\273\273\364\364" \
+ "\364\207\377\377\377\2qqq===\202<<<\202===\1kkk\210\377\377\377\3\335" \
+ "\335\335\236\236\236\201\201\201\204eee\3www\225\225\225\317\317\317" \
+ "\210\377\377\377\1\220\220\220\205>>>\1\364\364\364\205\377\377\377\1" \
+ "\215\215\215\207>>>\1\231\231\231\206\377\377\377\2\326\326\326FFF\205" \
+ "\77\77\77\1\307\307\307\207\377\377\377\4\372\372\372\302\302\302\216" \
+ "\216\216nnn\204eee\3\207\207\207\251\251\251\357\357\357\207\377\377" \
+ "\377\30\360\360\360===,,,***'''%%%###\40\40\40\36\36\36\33\33\33\31\31" \
+ "\31\26\26\26\24\24\24\22\22\22\20\20\20\15\15\15\13\13\13\11\11\11\10" \
+ "\10\10\6\6\6\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\260\0\0\0\30\1\1\1\2\2" \
+ "\2\3\3\3\5\5\5\6\6\6\10\10\10\12\12\12\14\14\14\16\16\16\20\20\20\22" \
+ "\22\22\25\25\25\27\27\27\32\32\32\34\34\34\37\37\37!!!###&&&(((+++--" \
+ "-000\232\232\232\206\377\377\377\3\375\375\375\231\231\231DDD\211@@@" \
+ "\2VVV\313\313\313\207\377\377\377\1ccc\204\77\77\77\1\307\307\307\205" \
+ "\377\377\377\2\313\313\313@@@\205AAA\204@@@\2zzz\355\355\355\206\377" \
+ "\377\377\2\346\346\346@@@\203>>>\2GGG\364\364\364\206\377\377\377\2\273" \
+ "\273\273KKK\202@@@\203AAA\203@@@\2ddd\331\331\331\206\377\377\377\2\366" \
+ "\366\366FFF\203\77\77\77\1\273\273\273\205\377\377\377\2\320\320\320" \
+ "@@@\206AAA\203@@@\2GGG\254\254\254\207\377\377\377\1aaa\204\77\77\77" \
+ "\1\364\364\364\205\377\377\377\2\243\243\243@@@\211AAA\1\261\261\261" \
+ "\205\377\377\377\1\335\335\335\204AAA\204@@@\2KKK\313\313\313\206\377" \
+ "\377\377\1\271\271\271\205>>>\1\317\317\317\206\377\377\377\2\355\355" \
+ "\355zzz\212@@@\2kkk\344\344\344\206\377\377\377\2\357\357\357DDD\204" \
+ "@@@\1\364\364\364\205\377\377\377\1\217\217\217\206\77\77\77\1\212\212" \
+ "\212\206\377\377\377\2\335\335\335KKK\205@@@\1ddd\207\377\377\377\2\305" \
+ "\305\305RRR\211@@@\2DDD\234\234\234\207\377\377\377\27\231\231\231--" \
+ "-+++(((&&&###!!!\37\37\37\34\34\34\32\32\32\27\27\27\25\25\25\22\22\22" \
+ "\20\20\20\16\16\16\14\14\14\12\12\12\10\10\10\6\6\6\5\5\5\3\3\3\2\2\2" \
+ "\1\1\1\377\0\0\0\260\0\0\0\30\1\1\1\2\2\2\3\3\3\5\5\5\7\7\7\11\11\11" \
+ "\12\12\12\15\15\15\17\17\17\21\21\21\23\23\23\25\25\25\30\30\30\32\32" \
+ "\32\35\35\35\40\40\40\"\"\"%%%'''***,,,///333\354\354\354\206\377\377" \
+ "\377\1\201\201\201\214AAA\2BBB\302\302\302\206\377\377\377\1\267\267" \
+ "\267\204@@@\1\307\307\307\205\377\377\377\1\274\274\274\210BBB\203AA" \
+ "A\2WWW\362\362\362\206\377\377\377\1sss\203\77\77\77\1\203\203\203\206" \
+ "\377\377\377\1\300\300\300\202AAA\207BBB\202AAA\2JJJ\342\342\342\206" \
+ "\377\377\377\1xxx\203@@@\1\274\274\274\205\377\377\377\1\307\307\307" \
+ "\211BBB\203AAA\1\276\276\276\206\377\377\377\1\223\223\223\204@@@\1\364" \
+ "\364\364\205\377\377\377\1\233\233\233\212BBB\1\261\261\261\205\377\377" \
+ "\377\1\336\336\336\207BBB\202AAA\2LLL\353\353\353\205\377\377\377\1\350" \
+ "\350\350\204\77\77\77\1___\206\377\377\377\2\364\364\364]]]\214AAA\2" \
+ "QQQ\346\346\346\206\377\377\377\1\202\202\202\204AAA\1\364\364\364\205" \
+ "\377\377\377\1\217\217\217\203AAA\202@@@\2zzz\375\375\375\205\377\377" \
+ "\377\4\344\344\344SSSAAABBB\204AAA\1\261\261\261\206\377\377\377\1\276" \
+ "\276\276\214AAA\2@@@\212\212\212\206\377\377\377\27\354\354\354111,," \
+ ",***'''%%%\"\"\"\40\40\40\35\35\35\32\32\32\30\30\30\25\25\25\23\23\23" \
+ "\21\21\21\17\17\17\15\15\15\12\12\12\11\11\11\7\7\7\5\5\5\3\3\3\2\2\2" \
+ "\1\1\1\377\0\0\0\260\0\0\0\27\1\1\1\2\2\2\4\4\4\5\5\5\7\7\7\11\11\11" \
+ "\13\13\13\15\15\15\20\20\20\21\21\21\24\24\24\26\26\26\31\31\31\33\33" \
+ "\33\36\36\36\40\40\40###&&&(((+++---000bbb\206\377\377\377\2\300\300" \
+ "\300AAA\213BBB\202AAA\2LLL\362\362\362\205\377\377\377\2\362\362\362" \
+ "CCC\203AAA\1\307\307\307\205\377\377\377\1\274\274\274\214BBB\1\211\211" \
+ "\211\206\377\377\377\1\252\252\252\203@@@\1\260\260\260\205\377\377\377" \
+ "\2\373\373\373RRR\214BBB\1zzz\206\377\377\377\1\237\237\237\203AAA\1" \
+ "\274\274\274\205\377\377\377\1\307\307\307\214BBB\1fff\206\377\377\377" \
+ "\1\263\263\263\204AAA\1\364\364\364\205\377\377\377\1\233\233\233\212" \
+ "BBB\1\261\261\261\205\377\377\377\1\336\336\336\212BBB\1\246\246\246" \
+ "\206\377\377\377\1GGG\203@@@\1\232\232\232\206\377\377\377\2\224\224" \
+ "\224AAA\213BBB\202AAA\1ppp\206\377\377\377\1\274\274\274\204BBB\1\364" \
+ "\364\364\205\377\377\377\2\220\220\220BBB\203AAA\2nnn\370\370\370\205" \
+ "\377\377\377\2\353\353\353]]]\207BBB\1\351\351\351\205\377\377\377\2" \
+ "\362\362\362JJJ\214BBB\3AAA@@@\302\302\302\206\377\377\377\26aaa---+" \
+ "++(((&&&###\40\40\40\36\36\36\33\33\33\31\31\31\26\26\26\24\24\24\21" \
+ "\21\21\17\17\17\15\15\15\13\13\13\11\11\11\7\7\7\5\5\5\4\4\4\2\2\2\1" \
+ "\1\1\377\0\0\0\260\0\0\0\27\1\1\1\3\3\3\4\4\4\5\5\5\7\7\7\11\11\11\13" \
+ "\13\13\15\15\15\20\20\20\22\22\22\24\24\24\27\27\27\31\31\31\34\34\34" \
+ "\37\37\37!!!$$$'''))),,,...111\224\224\224\206\377\377\377\1www\217B" \
+ "BB\1\250\250\250\206\377\377\377\1___\203BBB\1\307\307\307\205\377\377" \
+ "\377\1\274\274\274\214BBB\2III\366\366\366\205\377\377\377\1\320\320" \
+ "\320\203AAA\1\322\322\322\205\377\377\377\1\314\314\314\215BBB\2DDD\370" \
+ "\370\370\205\377\377\377\1\266\266\266\203BBB\1\274\274\274\205\377\377" \
+ "\377\1\307\307\307\215BBB\1\353\353\353\205\377\377\377\1\305\305\305" \
+ "\204BBB\1\364\364\364\205\377\377\377\1\233\233\233\212BBB\1\261\261" \
+ "\261\205\377\377\377\1\336\336\336\212BBB\1|||\206\377\377\377\1ZZZ\203" \
+ "AAA\1\314\314\314\205\377\377\377\2\373\373\373III\217BBB\1\325\325\325" \
+ "\205\377\377\377\1\355\355\355\204BBB\1\364\364\364\205\377\377\377\1" \
+ "\220\220\220\203BBB\2ccc\364\364\364\205\377\377\377\2\362\362\362cc" \
+ "c\207BBB\1___\206\377\377\377\1\261\261\261\216BBB\2AAAhhh\206\377\377" \
+ "\377\26\222\222\222...,,,)))&&&$$$!!!\37\37\37\34\34\34\31\31\31\27\27" \
+ "\27\24\24\24\22\22\22\20\20\20\15\15\15\13\13\13\11\11\11\7\7\7\5\5\5" \
+ "\4\4\4\3\3\3\1\1\1\377\0\0\0\260\0\0\0\27\1\1\1\3\3\3\4\4\4\6\6\6\10" \
+ "\10\10\12\12\12\14\14\14\16\16\16\20\20\20\22\22\22\25\25\25\27\27\27" \
+ "\32\32\32\34\34\34\37\37\37\"\"\"%%%'''***---///222\272\272\272\205\377" \
+ "\377\377\2\370\370\370III\217BBB\1jjj\206\377\377\377\1\205\205\205\203" \
+ "BBB\1\307\307\307\205\377\377\377\1\274\274\274\215BBB\1\323\323\323" \
+ "\205\377\377\377\1\347\347\347\203BBB\1\351\351\351\205\377\377\377\1" \
+ "\266\266\266\216BBB\1\347\347\347\205\377\377\377\1\301\301\301\203B" \
+ "BB\1\274\274\274\205\377\377\377\1\307\307\307\215BBB\1\314\314\314\205" \
+ "\377\377\377\1\307\307\307\204BBB\1\364\364\364\205\377\377\377\1\233" \
+ "\233\233\212BBB\1\261\261\261\205\377\377\377\1\336\336\336\212BBB\1" \
+ "nnn\206\377\377\377\1ccc\203BBB\1\357\357\357\205\377\377\377\1\323\323" \
+ "\323\220BBB\1\235\235\235\206\377\377\377\1TTT\203BBB\1\364\364\364\205" \
+ "\377\377\377\1\220\220\220\202BBB\2VVV\353\353\353\205\377\377\377\2" \
+ "\370\370\370jjj\210BBB\1\205\205\205\206\377\377\377\1~~~\217BBB\2AA" \
+ "A\357\357\357\205\377\377\377\26\271\271\271///---***'''%%%\"\"\"\37" \
+ "\37\37\34\34\34\32\32\32\27\27\27\25\25\25\22\22\22\20\20\20\16\16\16" \
+ "\14\14\14\12\12\12\10\10\10\6\6\6\4\4\4\3\3\3\1\1\1\377\0\0\0\257\0\0" \
+ "\0\30\1\1\1\2\2\2\3\3\3\4\4\4\6\6\6\10\10\10\12\12\12\14\14\14\16\16" \
+ "\16\20\20\20\23\23\23\25\25\25\30\30\30\32\32\32\35\35\35\40\40\40##" \
+ "#%%%(((+++---000222\327\327\327\205\377\377\377\1\331\331\331\220BBB" \
+ "\1KKK\206\377\377\377\1\237\237\237\203BBB\1\307\307\307\205\377\377" \
+ "\377\1\274\274\274\215BBB\1\270\270\270\205\377\377\377\2\375\375\375" \
+ "FFF\202BBB\1\373\373\373\205\377\377\377\1\246\246\246\215BBB\2VVV\370" \
+ "\370\370\205\377\377\377\1\312\312\312\203BBB\1\274\274\274\205\377\377" \
+ "\377\1\307\307\307\215BBB\1\277\277\277\205\377\377\377\1\307\307\307" \
+ "\204BBB\1\364\364\364\205\377\377\377\1\233\233\233\212BBB\1\261\261" \
+ "\261\205\377\377\377\1\336\336\336\212BBB\1nnn\206\377\377\377\1ccc\202" \
+ "BBB\1KKK\206\377\377\377\1\250\250\250\220BBB\1zzz\206\377\377\377\1" \
+ "nnn\203BBB\1\364\364\364\205\377\377\377\1\220\220\220\202BBB\1\320\320" \
+ "\320\205\377\377\377\2\373\373\373sss\211BBB\1\235\235\235\206\377\377" \
+ "\377\1VVV\217BBB\2AAA\313\313\313\205\377\377\377\27\326\326\326000-" \
+ "--+++(((%%%\"\"\"\40\40\40\35\35\35\32\32\32\30\30\30\25\25\25\23\23" \
+ "\23\20\20\20\16\16\16\14\14\14\12\12\12\10\10\10\6\6\6\4\4\4\3\3\3\2" \
+ "\2\2\1\1\1\377\0\0\0\256\0\0\0\30\1\1\1\2\2\2\3\3\3\4\4\4\6\6\6\10\10" \
+ "\10\12\12\12\14\14\14\16\16\16\21\21\21\23\23\23\25\25\25\30\30\30\33" \
+ "\33\33\35\35\35\40\40\40###&&&(((+++...000333\354\354\354\205\377\377" \
+ "\377\1\303\303\303\221BBB\1\370\370\370\205\377\377\377\1\263\263\263" \
+ "\203BBB\1\307\307\307\205\377\377\377\1\274\274\274\215BBB\1\250\250" \
+ "\250\206\377\377\377\3MMMBBBDDD\206\377\377\377\1\355\355\355\215\331" \
+ "\331\331\1\370\370\370\206\377\377\377\1\307\307\307\203BBB\1\274\274" \
+ "\274\205\377\377\377\1\307\307\307\215BBB\1\274\274\274\205\377\377\377" \
+ "\1\307\307\307\204BBB\1\364\364\364\205\377\377\377\1\233\233\233\212" \
+ "BBB\1\261\261\261\205\377\377\377\1\336\336\336\212BBB\1nnn\206\377\377" \
+ "\377\1ccc\202BBB\1___\206\377\377\377\1\226\226\226\220BBB\1jjj\206\377" \
+ "\377\377\1\202\202\202\203BBB\1\364\364\364\205\377\377\377\3\220\220" \
+ "\220BBBwww\206\377\377\377\1\211\211\211\212BBB\1\257\257\257\205\377" \
+ "\377\377\2\375\375\375DDD\217BBB\2AAA\276\276\276\205\377\377\377\27" \
+ "\354\354\354000...+++(((&&&###\40\40\40\35\35\35\33\33\33\30\30\30\25" \
+ "\25\25\23\23\23\21\21\21\16\16\16\14\14\14\12\12\12\10\10\10\6\6\6\4" \
+ "\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\256\0\0\0\30\1\1\1\2\2\2\3\3\3\4\4\4" \
+ "\6\6\6\10\10\10\12\12\12\14\14\14\17\17\17\21\21\21\23\23\23\26\26\26" \
+ "\31\31\31\33\33\33\36\36\36\40\40\40###&&&)))+++...111444\370\370\370" \
+ "\205\377\377\377\1\263\263\263\221BBB\1\353\353\353\205\377\377\377\1" \
+ "\274\274\274\203BBB\1\307\307\307\205\377\377\377\1\274\274\274\215B" \
+ "BB\1\237\237\237\206\377\377\377\3RRRBBBMMM\233\377\377\377\1\257\257" \
+ "\257\203BBB\1\274\274\274\205\377\377\377\1\307\307\307\215BBB\1\274" \
+ "\274\274\205\377\377\377\1\307\307\307\204BBB\1\364\364\364\205\377\377" \
+ "\377\1\233\233\233\212BBB\1\261\261\261\205\377\377\377\1\336\336\336" \
+ "\212BBB\1nnn\206\377\377\377\1ccc\202BBB\1jjj\206\377\377\377\1\207\207" \
+ "\207\220BBB\1aaa\206\377\377\377\1\216\216\216\203BBB\1\364\364\364\205" \
+ "\377\377\377\3\220\220\220BBB\257\257\257\205\377\377\377\1\331\331\331" \
+ "\213BBB\1\274\274\274\205\377\377\377\1\357\357\357\220BBB\2AAA\260\260" \
+ "\260\205\377\377\377\27\370\370\370111...+++)))&&&###\40\40\40\36\36" \
+ "\36\33\33\33\31\31\31\26\26\26\23\23\23\21\21\21\17\17\17\14\14\14\12" \
+ "\12\12\10\10\10\6\6\6\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\256\0\0\0\27" \
+ "\1\1\1\2\2\2\3\3\3\4\4\4\6\6\6\10\10\10\12\12\12\15\15\15\17\17\17\21" \
+ "\21\21\24\24\24\26\26\26\31\31\31\33\33\33\36\36\36\40\40\40###&&&))" \
+ ")+++...111444\206\377\377\377\1\261\261\261\221BBB\1\351\351\351\205" \
+ "\377\377\377\1\307\307\307\203BBB\1\307\307\307\205\377\377\377\1\274" \
+ "\274\274\215BBB\1\233\233\233\206\377\377\377\3XXXBBBMMM\233\377\377" \
+ "\377\1zzz\203BBB\1\274\274\274\205\377\377\377\1\307\307\307\215BBB\1" \
+ "\274\274\274\205\377\377\377\1\307\307\307\204BBB\1\364\364\364\205\377" \
+ "\377\377\1\233\233\233\212BBB\1\261\261\261\205\377\377\377\1\336\336" \
+ "\336\212BBB\1nnn\206\377\377\377\1ccc\202BBB\1nnn\206\377\377\377\1\205" \
+ "\205\205\220BBB\1XXX\206\377\377\377\1\220\220\220\203BBB\1\364\364\364" \
+ "\205\377\377\377\3\220\220\220BBB\277\277\277\205\377\377\377\1\312\312" \
+ "\312\213BBB\1\305\305\305\205\377\377\377\1\351\351\351\220BBB\2AAA\261" \
+ "\261\261\206\377\377\377\26""111...+++)))&&&###\40\40\40\36\36\36\33" \
+ "\33\33\31\31\31\26\26\26\23\23\23\21\21\21\17\17\17\15\15\15\12\12\12" \
+ "\10\10\10\6\6\6\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\256\0\0\0\27\1\1\1" \
+ "\2\2\2\3\3\3\4\4\4\6\6\6\10\10\10\12\12\12\15\15\15\17\17\17\21\21\21" \
+ "\24\24\24\26\26\26\31\31\31\33\33\33\36\36\36!!!###&&&))),,,...11144" \
+ "4\206\377\377\377\1\261\261\261\221BBB\1\351\351\351\205\377\377\377" \
+ "\1\301\301\301\203BBB\1\307\307\307\205\377\377\377\1\274\274\274\215" \
+ "BBB\1\233\233\233\206\377\377\377\3OOOBBBMMM\232\377\377\377\2\316\316" \
+ "\316DDD\203BBB\1\274\274\274\205\377\377\377\1\307\307\307\215BBB\1\274" \
+ "\274\274\205\377\377\377\1\307\307\307\204BBB\1\364\364\364\205\377\377" \
+ "\377\1\233\233\233\212BBB\1\261\261\261\205\377\377\377\1\336\336\336" \
+ "\212BBB\1nnn\206\377\377\377\1ccc\202BBB\1nnn\206\377\377\377\1\205\205" \
+ "\205\220BBB\1___\206\377\377\377\1\220\220\220\203BBB\1\364\364\364\205" \
+ "\377\377\377\3\220\220\220BBB\255\255\255\205\377\377\377\2\366\366\366" \
+ "OOO\212BBB\1\307\307\307\205\377\377\377\1\351\351\351\220BBB\2AAA\261" \
+ "\261\261\205\377\377\377\27\375\375\375111...+++)))&&&###\40\40\40\36" \
+ "\36\36\33\33\33\31\31\31\26\26\26\24\24\24\21\21\21\17\17\17\15\15\15" \
+ "\12\12\12\10\10\10\6\6\6\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\256\0\0\0" \
+ "\30\1\1\1\2\2\2\3\3\3\4\4\4\6\6\6\10\10\10\12\12\12\15\15\15\17\17\17" \
+ "\21\21\21\24\24\24\26\26\26\31\31\31\33\33\33\36\36\36\40\40\40###&&" \
+ "&)))+++...111444\370\370\370\205\377\377\377\1\263\263\263\221BBB\1\362" \
+ "\362\362\205\377\377\377\1\274\274\274\203BBB\1\307\307\307\205\377\377" \
+ "\377\1\274\274\274\215BBB\1\244\244\244\206\377\377\377\3MMMBBBMMM\230" \
+ "\377\377\377\3\370\370\370\270\270\270KKK\204BBB\1\274\274\274\205\377" \
+ "\377\377\1\307\307\307\215BBB\1\274\274\274\205\377\377\377\1\307\307" \
+ "\307\204BBB\1\364\364\364\205\377\377\377\1\233\233\233\212BBB\1\261" \
+ "\261\261\205\377\377\377\1\336\336\336\212BBB\1nnn\206\377\377\377\1" \
+ "ccc\202BBB\1lll\206\377\377\377\1\205\205\205\220BBB\1ccc\206\377\377" \
+ "\377\1\213\213\213\203BBB\1\364\364\364\205\377\377\377\3\220\220\220" \
+ "BBBsss\206\377\377\377\1\307\307\307\212BBB\1\274\274\274\205\377\377" \
+ "\377\1\364\364\364\220BBB\2AAA\260\260\260\205\377\377\377\27\363\363" \
+ "\363111...+++)))&&&###\40\40\40\36\36\36\33\33\33\31\31\31\26\26\26\23" \
+ "\23\23\21\21\21\17\17\17\15\15\15\12\12\12\10\10\10\6\6\6\4\4\4\3\3\3" \
+ "\2\2\2\1\1\1\377\0\0\0\256\0\0\0\30\1\1\1\2\2\2\3\3\3\4\4\4\6\6\6\10" \
+ "\10\10\12\12\12\14\14\14\17\17\17\21\21\21\23\23\23\26\26\26\31\31\31" \
+ "\33\33\33\36\36\36\40\40\40###&&&)))+++...111444\356\356\356\205\377" \
+ "\377\377\1\303\303\303\221BBB\1\373\373\373\205\377\377\377\1\255\255" \
+ "\255\203BBB\1\307\307\307\205\377\377\377\1\274\274\274\215BBB\1\255" \
+ "\255\255\206\377\377\377\1FFF\202BBB\206\377\377\377\1\246\246\246\230" \
+ "BBB\1\274\274\274\205\377\377\377\1\307\307\307\215BBB\1\274\274\274" \
+ "\205\377\377\377\1\307\307\307\204BBB\1\364\364\364\205\377\377\377\1" \
+ "\233\233\233\212BBB\1\261\261\261\205\377\377\377\1\336\336\336\212B" \
+ "BB\1nnn\206\377\377\377\1ccc\202BBB\1aaa\206\377\377\377\1\224\224\224" \
+ "\220BBB\1nnn\206\377\377\377\1~~~\203BBB\1\364\364\364\205\377\377\377" \
+ "\1\220\220\220\202BBB\1\323\323\323\206\377\377\377\1\255\255\255\211" \
+ "BBB\1\263\263\263\205\377\377\377\2\375\375\375DDD\217BBB\2AAA\300\300" \
+ "\300\205\377\377\377\27\347\347\347111...+++(((&&&###\40\40\40\36\36" \
+ "\36\33\33\33\31\31\31\26\26\26\23\23\23\21\21\21\17\17\17\14\14\14\12" \
+ "\12\12\10\10\10\6\6\6\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\256\0\0\0\30" \
+ "\1\1\1\2\2\2\3\3\3\4\4\4\6\6\6\10\10\10\12\12\12\14\14\14\16\16\16\21" \
+ "\21\21\23\23\23\25\25\25\30\30\30\33\33\33\35\35\35\40\40\40###&&&((" \
+ "(+++...000333\331\331\331\205\377\377\377\1\331\331\331\220BBB\1TTT\206" \
+ "\377\377\377\1\231\231\231\203BBB\1\307\307\307\205\377\377\377\1\274" \
+ "\274\274\215BBB\1\301\301\301\205\377\377\377\1\357\357\357\203BBB\1" \
+ "\373\373\373\205\377\377\377\1\257\257\257\230BBB\1\274\274\274\205\377" \
+ "\377\377\1\307\307\307\215BBB\1\274\274\274\205\377\377\377\1\307\307" \
+ "\307\204BBB\1\364\364\364\205\377\377\377\1\233\233\233\212BBB\1\261" \
+ "\261\261\205\377\377\377\1\336\336\336\212BBB\1nnn\206\377\377\377\1" \
+ "ccc\202BBB\1MMM\206\377\377\377\1\253\253\253\220BBB\1\202\202\202\206" \
+ "\377\377\377\1jjj\203BBB\1\364\364\364\205\377\377\377\1\220\220\220" \
+ "\202BBB\2VVV\355\355\355\206\377\377\377\1\244\244\244\210BBB\1\242\242" \
+ "\242\206\377\377\377\1VVV\217BBB\2AAA\327\327\327\205\377\377\377\27" \
+ "\317\317\317000...+++(((%%%###\40\40\40\35\35\35\33\33\33\30\30\30\25" \
+ "\25\25\23\23\23\21\21\21\16\16\16\14\14\14\12\12\12\10\10\10\6\6\6\4" \
+ "\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\256\0\0\0\30\1\1\1\2\2\2\3\3\3\4\4\4" \
+ "\6\6\6\10\10\10\12\12\12\14\14\14\16\16\16\20\20\20\23\23\23\25\25\25" \
+ "\30\30\30\32\32\32\35\35\35\40\40\40###%%%(((+++---000222\274\274\274" \
+ "\205\377\377\377\2\370\370\370III\217BBB\1\200\200\200\206\377\377\377" \
+ "\1~~~\203BBB\1\307\307\307\205\377\377\377\1\274\274\274\215BBB\1\336" \
+ "\336\336\205\377\377\377\1\331\331\331\203BBB\1\351\351\351\205\377\377" \
+ "\377\1\301\301\301\230BBB\1\274\274\274\205\377\377\377\1\307\307\307" \
+ "\215BBB\1\274\274\274\205\377\377\377\1\307\307\307\204BBB\1\364\364" \
+ "\364\205\377\377\377\1\233\233\233\212BBB\1\261\261\261\205\377\377\377" \
+ "\1\336\336\336\212BBB\1nnn\206\377\377\377\1ccc\203BBB\1\357\357\357" \
+ "\205\377\377\377\1\323\323\323\220BBB\1\261\261\261\206\377\377\377\1" \
+ "MMM\203BBB\1\364\364\364\205\377\377\377\1\220\220\220\203BBB\2ccc\362" \
+ "\362\362\206\377\377\377\1\231\231\231\207BBB\1\207\207\207\206\377\377" \
+ "\377\1\205\205\205\217BBB\2HHH\370\370\370\205\377\377\377\27\262\262" \
+ "\262000---+++(((%%%\"\"\"\40\40\40\35\35\35\32\32\32\30\30\30\25\25\25" \
+ "\23\23\23\20\20\20\16\16\16\14\14\14\12\12\12\10\10\10\6\6\6\4\4\4\3" \
+ "\3\3\2\2\2\1\1\1\377\0\0\0\257\0\0\0\27\1\1\1\3\3\3\4\4\4\6\6\6\10\10" \
+ "\10\12\12\12\14\14\14\16\16\16\20\20\20\22\22\22\25\25\25\27\27\27\32" \
+ "\32\32\34\34\34\37\37\37\"\"\"%%%'''***---///222\231\231\231\206\377" \
+ "\377\377\1|||\217BBB\1\274\274\274\206\377\377\377\1VVV\203BBB\1\307" \
+ "\307\307\205\377\377\377\1\274\274\274\214BBB\2OOO\375\375\375\205\377" \
+ "\377\377\1\301\301\301\203BBB\1\327\327\327\205\377\377\377\1\327\327" \
+ "\327\230BBB\1\274\274\274\205\377\377\377\1\307\307\307\215BBB\1\274" \
+ "\274\274\205\377\377\377\1\307\307\307\204BBB\1\364\364\364\205\377\377" \
+ "\377\1\233\233\233\212BBB\1\261\261\261\205\377\377\377\1\336\336\336" \
+ "\212BBB\1nnn\206\377\377\377\1ccc\203BBB\1\316\316\316\205\377\377\377" \
+ "\2\375\375\375RRR\216BBB\2DDD\351\351\351\205\377\377\377\1\344\344\344" \
+ "\204BBB\1\364\364\364\205\377\377\377\1\220\220\220\204BBB\2jjj\366\366" \
+ "\366\206\377\377\377\1\220\220\220\206BBB\1aaa\206\377\377\377\1\274" \
+ "\274\274\217BBB\1{{{\206\377\377\377\26\213\213\213///---***'''$$$\"" \
+ "\"\"\37\37\37\34\34\34\32\32\32\27\27\27\25\25\25\22\22\22\20\20\20\16" \
+ "\16\16\13\13\13\11\11\11\10\10\10\6\6\6\4\4\4\3\3\3\1\1\1\377\0\0\0\260" \
+ "\0\0\0\27\1\1\1\3\3\3\4\4\4\5\5\5\7\7\7\11\11\11\13\13\13\15\15\15\20" \
+ "\20\20\22\22\22\24\24\24\27\27\27\31\31\31\34\34\34\37\37\37!!!$$$&&" \
+ "&))),,,...111ddd\206\377\377\377\2\327\327\327DDD\215BBB\2___\373\373" \
+ "\373\205\377\377\377\1\351\351\351\204BBB\1\307\307\307\205\377\377\377" \
+ "\1\274\274\274\214BBB\1\242\242\242\206\377\377\377\1\230\230\230\203" \
+ "AAA\1\267\267\267\205\377\377\377\2\375\375\375RRR\227BBB\1\274\274\274" \
+ "\205\377\377\377\1\307\307\307\203BBB\206AAA\204BBB\1\274\274\274\205" \
+ "\377\377\377\1\307\307\307\204BBB\1\364\364\364\205\377\377\377\1\233" \
+ "\233\233\212BBB\1\261\261\261\205\377\377\377\1\336\336\336\212BBB\1" \
+ "nnn\206\377\377\377\1ccc\203BBB\1\233\233\233\206\377\377\377\1\250\250" \
+ "\250\216BBB\1\211\211\211\206\377\377\377\1\261\261\261\204BBB\1\364" \
+ "\364\364\205\377\377\377\1\220\220\220\205BBB\2sss\370\370\370\206\377" \
+ "\377\377\1\207\207\207\205BBB\2DDD\362\362\362\205\377\377\377\2\373" \
+ "\373\373ZZZ\215BBB\2CCC\333\333\333\206\377\377\377\26UUU...+++)))&&" \
+ "&$$$!!!\36\36\36\34\34\34\31\31\31\27\27\27\24\24\24\22\22\22\20\20\20" \
+ "\15\15\15\13\13\13\11\11\11\7\7\7\5\5\5\4\4\4\3\3\3\1\1\1\377\0\0\0\260" \
+ "\0\0\0\30\1\1\1\3\3\3\4\4\4\5\5\5\7\7\7\11\11\11\13\13\13\15\15\15\17" \
+ "\17\17\21\21\21\24\24\24\26\26\26\31\31\31\33\33\33\36\36\36\40\40\40" \
+ "###&&&(((+++---000444\354\354\354\206\377\377\377\2\250\250\250AAA\213" \
+ "BBB\2NNN\335\335\335\206\377\377\377\1\250\250\250\204BBB\1\307\307\307" \
+ "\205\377\377\377\1\274\274\274\213BBB\2nnn\373\373\373\206\377\377\377" \
+ "\1bbb\203@@@\1\217\217\217\206\377\377\377\1\253\253\253\227BBB\1\274" \
+ "\274\274\205\377\377\377\1\307\307\307\215AAA\1\274\274\274\205\377\377" \
+ "\377\1\307\307\307\204BBB\1\364\364\364\205\377\377\377\1\233\233\233" \
+ "\212BBB\1\261\261\261\205\377\377\377\1\336\336\336\204BBB\202AAA\204" \
+ "BBB\1nnn\206\377\377\377\1ccc\202BBB\2AAA^^^\206\377\377\377\3\375\375" \
+ "\375yyyAAA\211BBB\202AAA\2ggg\366\366\366\206\377\377\377\1www\204BB" \
+ "B\1\364\364\364\205\377\377\377\1\220\220\220\206AAA\2{{{\373\373\373" \
+ "\205\377\377\377\2\375\375\375~~~\205BBB\1\263\263\263\206\377\377\377" \
+ "\2\331\331\331KKK\212BBB\202AAA\1\263\263\263\206\377\377\377\27\340" \
+ "\340\340000---+++(((&&&###\40\40\40\36\36\36\33\33\33\31\31\31\26\26" \
+ "\26\24\24\24\21\21\21\17\17\17\15\15\15\13\13\13\11\11\11\7\7\7\5\5\5" \
+ "\4\4\4\2\2\2\1\1\1\377\0\0\0\260\0\0\0\30\1\1\1\2\2\2\3\3\3\5\5\5\7\7" \
+ "\7\11\11\11\12\12\12\15\15\15\17\17\17\21\21\21\23\23\23\25\25\25\30" \
+ "\30\30\32\32\32\35\35\35\37\37\37\"\"\"%%%'''***,,,///111\226\226\226" \
+ "\207\377\377\377\2\274\274\274QQQ\211AAA\2nnn\344\344\344\206\377\377" \
+ "\377\2\375\375\375]]]\204BBB\1\307\307\307\205\377\377\377\1\274\274" \
+ "\274\211BBB\3EEE\224\224\224\370\370\370\206\377\377\377\1\324\324\324" \
+ "\204\77\77\77\2VVV\375\375\375\206\377\377\377\2\243\243\243HHH\225B" \
+ "BB\1\274\274\274\205\377\377\377\1\307\307\307\215@@@\1\274\274\274\205" \
+ "\377\377\377\1\307\307\307\204BBB\1\364\364\364\205\377\377\377\1\232" \
+ "\232\232\212AAA\1\261\261\261\205\377\377\377\1\335\335\335\212AAA\1" \
+ "nnn\206\377\377\377\1ccc\204AAA\1\320\320\320\206\377\377\377\3\373\373" \
+ "\373\230\230\230EEE\211AAA\2\211\211\211\366\366\366\206\377\377\377" \
+ "\2\346\346\346CCC\204AAA\1\364\364\364\205\377\377\377\1\217\217\217" \
+ "\207@@@\2\203\203\203\375\375\375\205\377\377\377\2\373\373\373www\202" \
+ "BBB\202AAA\1eee\207\377\377\377\2\335\335\335ggg\211AAA\2SSS\302\302" \
+ "\302\207\377\377\377\27\213\213\213///,,,***'''%%%\"\"\"\37\37\37\35" \
+ "\35\35\32\32\32\30\30\30\25\25\25\23\23\23\21\21\21\17\17\17\15\15\15" \
+ "\12\12\12\10\10\10\6\6\6\5\5\5\3\3\3\2\2\2\1\1\1\377\0\0\0\260\0\0\0" \
+ "\31\1\1\1\2\2\2\3\3\3\5\5\5\6\6\6\10\10\10\12\12\12\14\14\14\16\16\16" \
+ "\20\20\20\22\22\22\25\25\25\27\27\27\32\32\32\34\34\34\37\37\37!!!##" \
+ "#&&&(((+++---000<<<\352\352\352\207\377\377\377\4\366\366\366\300\300" \
+ "\300\223\223\223qqq\203fff\3}}}\236\236\236\322\322\322\210\377\377\377" \
+ "\1\267\267\267\205BBB\1\307\307\307\205\377\377\377\1\344\344\344\210" \
+ "\263\263\263\2\300\300\300\362\362\362\210\377\377\377\1www\205>>>\1" \
+ "\302\302\302\207\377\377\377\2\364\364\364\302\302\302\217\263\263\263" \
+ "\1\236\236\236\204@@@\1\274\274\274\205\377\377\377\1\307\307\307\215" \
+ "\77\77\77\1\273\273\273\205\377\377\377\1\307\307\307\204@@@\1\364\364" \
+ "\364\205\377\377\377\1\232\232\232\212@@@\1\260\260\260\205\377\377\377" \
+ "\1\335\335\335\212@@@\1mmm\206\377\377\377\1bbb\203@@@\3\77\77\77hhh" \
+ "\375\375\375\207\377\377\377\4\355\355\355\265\265\265\214\214\214hh" \
+ "h\203fff\3\206\206\206\247\247\247\346\346\346\210\377\377\377\1\203" \
+ "\203\203\202\77\77\77\203@@@\1\364\364\364\205\377\377\377\1\216\216" \
+ "\216\210\77\77\77\1\214\214\214\206\377\377\377\2\370\370\370mmm\204" \
+ "@@@\1\274\274\274\210\377\377\377\3\322\322\322\236\236\236}}}\203ff" \
+ "f\4qqq\223\223\223\302\302\302\370\370\370\207\377\377\377\30\351\351" \
+ "\351777---+++(((&&&###!!!\36\36\36\34\34\34\31\31\31\27\27\27\25\25\25" \
+ "\22\22\22\20\20\20\16\16\16\14\14\14\12\12\12\10\10\10\6\6\6\4\4\4\3" \
+ "\3\3\2\2\2\1\1\1\377\0\0\0\260\0\0\0\32\1\1\1\2\2\2\3\3\3\4\4\4\6\6\6" \
+ "\10\10\10\11\11\11\13\13\13\15\15\15\20\20\20\22\22\22\24\24\24\26\26" \
+ "\26\31\31\31\33\33\33\36\36\36\40\40\40\"\"\"%%%'''***,,,...000nnn\375" \
+ "\375\375\227\377\377\377\2\351\351\351NNN\202AAA\203BBB\1\307\307\307" \
+ "\227\377\377\377\1\266\266\266\206===\2XXX\372\372\372\227\377\377\377" \
+ "\1\335\335\335\204\77\77\77\1\273\273\273\205\377\377\377\1\306\306\306" \
+ "\203>>>\206===\204>>>\1\273\273\273\205\377\377\377\1\307\307\307\204" \
+ "\77\77\77\1\364\364\364\205\377\377\377\1\231\231\231\212\77\77\77\1" \
+ "\260\260\260\205\377\377\377\1\335\335\335\212\77\77\77\1lll\206\377" \
+ "\377\377\1```\205>>>\1\242\242\242\230\377\377\377\1\306\306\306\206" \
+ ">>>\1\364\364\364\205\377\377\377\1\215\215\215\211>>>\1\224\224\224" \
+ "\206\377\377\377\2\364\364\364hhh\203\77\77\77\2QQQ\353\353\353\227\377" \
+ "\377\377\31\375\375\375hhh...,,,***'''%%%\"\"\"\40\40\40\35\35\35\33" \
+ "\33\33\31\31\31\26\26\26\24\24\24\22\22\22\20\20\20\15\15\15\13\13\13" \
+ "\11\11\11\10\10\10\6\6\6\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\261\0\0\0" \
+ "\32\1\1\1\3\3\3\4\4\4\5\5\5\7\7\7\11\11\11\13\13\13\15\15\15\17\17\17" \
+ "\21\21\21\23\23\23\25\25\25\30\30\30\32\32\32\34\34\34\37\37\37!!!##" \
+ "#&&&(((***---///111\202\202\202\375\375\375\225\377\377\377\3\355\355" \
+ "\355bbb@@@\204AAA\2BBB\307\307\307\226\377\377\377\2\305\305\305@@@\207" \
+ ";;;\1\200\200\200\227\377\377\377\1\335\335\335\204===\1\273\273\273" \
+ "\205\377\377\377\1\306\306\306\215<<<\1\272\272\272\205\377\377\377\1" \
+ "\306\306\306\204===\1\364\364\364\205\377\377\377\1\230\230\230\211=" \
+ "==\2<<<\257\257\257\205\377\377\377\1\335\335\335\212===\1jjj\206\377" \
+ "\377\377\1^^^\206<<<\1\263\263\263\226\377\377\377\2\321\321\321GGG\206" \
+ "<<<\1\364\364\364\205\377\377\377\1\214\214\214\212<<<\1\237\237\237" \
+ "\206\377\377\377\2\357\357\357___\203===\2___\352\352\352\225\377\377" \
+ "\377\31\375\375\375\201\201\201///,,,***(((&&&###!!!\37\37\37\34\34\34" \
+ "\32\32\32\30\30\30\25\25\25\23\23\23\21\21\21\17\17\17\15\15\15\13\13" \
+ "\13\11\11\11\7\7\7\5\5\5\4\4\4\3\3\3\1\1\1\377\0\0\0\262\0\0\0\33\1\1" \
+ "\1\2\2\2\3\3\3\5\5\5\6\6\6\10\10\10\12\12\12\14\14\14\16\16\16\20\20" \
+ "\20\22\22\22\24\24\24\27\27\27\31\31\31\33\33\33\35\35\35\40\40\40\"" \
+ "\"\"$$$&&&(((+++---///111bbb\340\340\340\223\377\377\377\3\304\304\304" \
+ "QQQ\77\77\77\203@@@\203AAA\1\307\307\307\224\377\377\377\3\372\372\372" \
+ "\242\242\242;;;\211999\2zzz\366\366\366\225\377\377\377\2\335\335\335" \
+ "<<<\203;;;\1\271\271\271\205\377\377\377\1\305\305\305\215:::\1\271\271" \
+ "\271\205\377\377\377\1\305\305\305\204;;;\1\363\363\363\205\377\377\377" \
+ "\2\227\227\227:::\206;;;\203:::\1\256\256\256\205\377\377\377\1\334\334" \
+ "\334\202:::\205;;;\203:::\1hhh\206\377\377\377\1]]]\207:::\2\213\213" \
+ "\213\363\363\363\222\377\377\377\3\372\372\372\242\242\242\77\77\77\207" \
+ ":::\1\363\363\363\205\377\377\377\1\213\213\213\213:::\1\251\251\251" \
+ "\206\377\377\377\2\354\354\354WWW\203;;;\2MMM\301\301\301\223\377\377" \
+ "\377\32\340\340\340aaa///---+++(((&&&$$$\"\"\"\40\40\40\35\35\35\33\33" \
+ "\33\31\31\31\27\27\27\24\24\24\22\22\22\20\20\20\16\16\16\14\14\14\12" \
+ "\12\12\10\10\10\6\6\6\5\5\5\3\3\3\2\2\2\1\1\1\377\0\0\0\262\0\0\0\35" \
+ "\1\1\1\2\2\2\3\3\3\4\4\4\6\6\6\10\10\10\11\11\11\13\13\13\15\15\15\17" \
+ "\17\17\21\21\21\24\24\24\25\25\25\30\30\30\32\32\32\34\34\34\36\36\36" \
+ "\40\40\40###%%%''')))+++---///000444{{{\306\306\306\216\377\377\377\4" \
+ "\364\364\364\266\266\266hhh===\202>>>\202\77\77\77\203@@@\2AAA\307\307" \
+ "\307\222\377\377\377\3\350\350\350\246\246\246TTT\214777\3JJJ\246\246" \
+ "\246\354\354\354\223\377\377\377\1\334\334\334\204999\1\271\271\271\205" \
+ "\377\377\377\1\304\304\304\215888\1\271\271\271\205\377\377\377\1\305" \
+ "\305\305\204999\1\363\363\363\205\377\377\377\1\226\226\226\210999\202" \
+ "888\1\255\255\255\205\377\377\377\2\334\334\334888\210999\2""888ggg\206" \
+ "\377\377\377\1[[[\203888\205999\3EEE\226\226\226\332\332\332\216\377" \
+ "\377\377\3\350\350\350\237\237\237PPP\203999\206888\1\363\363\363\205" \
+ "\377\377\377\1\212\212\212\214888\1\264\264\264\206\377\377\377\2\350" \
+ "\350\350NNN\204999\3eee\264\264\264\363\363\363\216\377\377\377\34\305" \
+ "\305\305zzz222...---+++)))'''%%%###\40\40\40\36\36\36\34\34\34\32\32" \
+ "\32\30\30\30\25\25\25\23\23\23\21\21\21\17\17\17\15\15\15\13\13\13\11" \
+ "\11\11\10\10\10\6\6\6\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\262\0\0\0\202" \
+ "\1\1\1!\3\3\3\4\4\4\5\5\5\7\7\7\11\11\11\12\12\12\14\14\14\16\16\16\20" \
+ "\20\20\22\22\22\24\24\24\26\26\26\31\31\31\33\33\33\35\35\35\37\37\37" \
+ "!!!###%%%''')))+++,,,...///111222:::ddd\206\206\206\236\236\236\257\257" \
+ "\257\261\261\261\202\327\327\327\1\316\316\316\202\257\257\257\4\222" \
+ "\222\222\201\201\201]]]:::\202;;;\1<<<\202===\202>>>\202\77\77\77\202" \
+ "@@@\1\307\307\307\205\377\377\377\1\327\327\327\203\214\214\214\202\213" \
+ "\213\213\1\212\212\212\203\211\211\211\4\210\210\210dddMMM777\203666" \
+ "\216555\2TTTnnn\203\206\206\206\216\207\207\207\1yyy\203777\2""666jj" \
+ "j\205\206\206\206\1ooo\215666\1jjj\205\206\206\206\1ooo\204777\1\202" \
+ "\202\202\203\207\207\207\202\206\206\206\2\\\\\\666\206777\203666\1e" \
+ "ee\205\206\206\206\1xxx\203666\204777\203666\1III\206\206\206\206\1D" \
+ "DD\207666\203777\7""666GGGooo\206\206\206\250\250\250\257\257\257\275" \
+ "\275\275\202\327\327\327\1\302\302\302\202\257\257\257\5\206\206\206" \
+ "vvvNNN666777\211666\2""555\201\201\201\205\206\206\206\2VVV555\21366" \
+ "6\2""888\202\202\202\206\206\206\206\1mmm\207777\3ZZZ\202\202\202\223" \
+ "\223\223\202\257\257\257\1\315\315\315\202\327\327\327\40\261\261\261" \
+ "\256\256\256\236\236\236\205\205\205ccc999111///...,,,+++)))'''%%%##" \
+ "#!!!\37\37\37\34\34\34\32\32\32\31\31\31\26\26\26\24\24\24\22\22\22\20" \
+ "\20\20\16\16\16\14\14\14\12\12\12\11\11\11\7\7\7\5\5\5\4\4\4\3\3\3\202" \
+ "\1\1\1\377\0\0\0\263\0\0\0\36\1\1\1\2\2\2\3\3\3\5\5\5\6\6\6\10\10\10" \
+ "\12\12\12\13\13\13\15\15\15\17\17\17\21\21\21\23\23\23\25\25\25\27\27" \
+ "\27\31\31\31\33\33\33\35\35\35\37\37\37!!!###%%%'''(((***+++---...//" \
+ "/000111\202222\1""333\202444\202555\202666\1""777\202888\202999\202:" \
+ "::\2;;;<<<\202===\1>>>\202\77\77\77\2@@@\307\307\307\205\377\377\377" \
+ "\1\274\274\274\202\77\77\77\10>>>===<<<;;;:::999888777\202666\202555" \
+ "\202444\1""333\216222\202333\204444\217555\205444\224333\253444\2073" \
+ "33\243444\202333\207222\203333\207444\207333\204444\213555\204444\1""3" \
+ "33\202222\36""111000///...---+++***((('''%%%###!!!\37\37\37\35\35\35" \
+ "\33\33\33\31\31\31\27\27\27\25\25\25\23\23\23\21\21\21\17\17\17\15\15" \
+ "\15\13\13\13\11\11\11\10\10\10\6\6\6\5\5\5\3\3\3\2\2\2\1\1\1\377\0\0" \
+ "\0\264\0\0\0\35\1\1\1\2\2\2\3\3\3\4\4\4\5\5\5\7\7\7\11\11\11\12\12\12" \
+ "\14\14\14\16\16\16\20\20\20\22\22\22\24\24\24\25\25\25\30\30\30\31\31" \
+ "\31\33\33\33\35\35\35\37\37\37!!!###%%%&&&((()))+++,,,---...\202///\202" \
+ "000\202111\2""222333\202444\1""555\202666\1""777\202888\1""999\202::" \
+ ":\2;;;<<<\202===\3>>>\77\77\77\307\307\307\205\377\377\377\12\273\273" \
+ "\273>>>===<<<;;;:::999888777666\202555\2""444333\202222\202111\22100" \
+ "0\203111\217222\205111\224000\253111\207000\243111\214000\207111\207" \
+ "000\204111\214222\203111\202000\202///\35...---,,,+++)))(((&&&%%%###" \
+ "!!!\37\37\37\35\35\35\33\33\33\31\31\31\30\30\30\25\25\25\24\24\24\22" \
+ "\22\22\20\20\20\16\16\16\14\14\14\12\12\12\11\11\11\7\7\7\5\5\5\4\4\4" \
+ "\3\3\3\2\2\2\1\1\1\377\0\0\0\265\0\0\0\1\1\1\1\202\3\3\3\27\5\5\5\6\6" \
+ "\6\10\10\10\11\11\11\13\13\13\15\15\15\17\17\17\20\20\20\22\22\22\24" \
+ "\24\24\26\26\26\30\30\30\32\32\32\33\33\33\35\35\35\37\37\37!!!###$$" \
+ "$%%%'''((()))\202+++\1,,,\202---\1...\202///\1""000\202111\2""222333" \
+ "\202444\2""555666\202777\2""888999\202:::\5;;;<<<===>>>\307\307\307\205" \
+ "\377\377\377\11\273\273\273===<<<;;;:::999888777555\202444\1""222\202" \
+ "111\1""000\202///\202...\215---\205...\205///\211000\203///\235...\221" \
+ "///\214...\206///\214...\216///\204...\215///\203...\210---\223...\204" \
+ "///\207000\205///\202...\202---\1,,,\202+++\32)))((('''%%%$$$\"\"\"!" \
+ "!!\37\37\37\35\35\35\33\33\33\32\32\32\30\30\30\26\26\26\24\24\24\22" \
+ "\22\22\20\20\20\17\17\17\15\15\15\13\13\13\11\11\11\10\10\10\6\6\6\5" \
+ "\5\5\3\3\3\2\2\2\1\1\1\377\0\0\0\266\0\0\0\34\1\1\1\2\2\2\3\3\3\4\4\4" \
+ "\5\5\5\7\7\7\10\10\10\12\12\12\14\14\14\15\15\15\17\17\17\21\21\21\23" \
+ "\23\23\24\24\24\26\26\26\30\30\30\32\32\32\33\33\33\35\35\35\37\37\37" \
+ "\40\40\40\"\"\"###%%%&&&'''((()))\202***\202+++\1,,,\202---\2...///\202" \
+ "000\4""111222333444\202555\3""666777888\202999\4:::;;;<<<\306\306\306" \
+ "\205\377\377\377\14\272\272\272;;;:::999888777666555444222111000\202" \
+ "///\1...\202---\1,,,\204+++\204***\212+++\203,,,\216---\202,,,\234++" \
+ "+\222,,,\212+++\207,,,\214+++\216,,,\203+++\216,,,\236+++\202,,,\214" \
+ "---\202,,,\203+++\202***\34)))((('''&&&$$$###\"\"\"\40\40\40\37\37\37" \
+ "\35\35\35\33\33\33\32\32\32\30\30\30\26\26\26\24\24\24\23\23\23\21\21" \
+ "\21\17\17\17\15\15\15\14\14\14\12\12\12\10\10\10\7\7\7\5\5\5\4\4\4\3" \
+ "\3\3\2\2\2\1\1\1\377\0\0\0\267\0\0\0\33\1\1\1\2\2\2\3\3\3\5\5\5\6\6\6" \
+ "\7\7\7\11\11\11\12\12\12\14\14\14\16\16\16\20\20\20\21\21\21\23\23\23" \
+ "\24\24\24\26\26\26\30\30\30\31\31\31\33\33\33\34\34\34\36\36\36\37\37" \
+ "\37!!!\"\"\"###$$$%%%&&&\202'''\2((()))\202***\2+++,,,\202---\3...//" \
+ "/000\202111\1""222\202444\3""555666777\202888\3""999:::\305\305\305\205" \
+ "\377\377\377\16\271\271\271999888777666555444222111000///...---,,,\202" \
+ "+++\202***\202)))\217(((\202)))\210***\203+++\205***\241)))\215***\217" \
+ ")))\202***\206)))\205(((\204)))\212***\211)))\211***\204)))\214(((\211" \
+ ")))\203(((\205)))\216***\202)))\202(((\202'''\33&&&%%%$$$###\"\"\"!!" \
+ "!\37\37\37\36\36\36\34\34\34\33\33\33\31\31\31\30\30\30\26\26\26\24\24" \
+ "\24\23\23\23\21\21\21\20\20\20\16\16\16\14\14\14\12\12\12\11\11\11\7" \
+ "\7\7\6\6\6\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\270\0\0\0\31\1\1\1\2\2\2" \
+ "\3\3\3\4\4\4\5\5\5\6\6\6\10\10\10\11\11\11\13\13\13\15\15\15\16\16\16" \
+ "\20\20\20\21\21\21\23\23\23\24\24\24\26\26\26\27\27\27\31\31\31\32\32" \
+ "\32\34\34\34\35\35\35\36\36\36\40\40\40!!!\"\"\"\202###\1$$$\202%%%\2" \
+ "&&&'''\202(((\5)))***+++,,,---\202...\3///000111\202222\1""444\20255" \
+ "5\1""666\202777\1\304\304\304\205\377\377\377\17\270\270\27077766655" \
+ "5444222111000///...---,,,+++***)))\202(((\202'''\202&&&\214%%%\204&&" \
+ "&\207'''\205(((\205'''\237&&&\216'''\216&&&\204'''\216&&&\213'''\207" \
+ "&&&\213'''\204&&&\211%%%\223&&&\205'''\203(((\206'''\203&&&\202%%%\1" \
+ "$$$\202###\31\"\"\"!!!\40\40\40\36\36\36\35\35\35\34\34\34\32\32\32\31" \
+ "\31\31\27\27\27\26\26\26\24\24\24\23\23\23\21\21\21\20\20\20\16\16\16" \
+ "\14\14\14\13\13\13\11\11\11\10\10\10\6\6\6\5\5\5\4\4\4\3\3\3\2\2\2\1" \
+ "\1\1\377\0\0\0\271\0\0\0\31\1\1\1\2\2\2\3\3\3\4\4\4\5\5\5\7\7\7\10\10" \
+ "\10\12\12\12\13\13\13\15\15\15\16\16\16\20\20\20\21\21\21\22\22\22\24" \
+ "\24\24\25\25\25\27\27\27\30\30\30\31\31\31\33\33\33\34\34\34\35\35\35" \
+ "\36\36\36\37\37\37\40\40\40\202!!!\1\"\"\"\202###\4$$$%%%&&&'''\202(" \
+ "((\202***\4+++,,,---...\202///\4""000111222333\202444\2""555\304\304" \
+ "\304\205\377\377\377\1\270\270\270\202444\6""222111000///...---\202+" \
+ "++\1***\202(((\2'''&&&\202%%%\1$$$\203###\211\"\"\"\206###\203$$$\214" \
+ "%%%\202$$$\236###\220$$$\215###\204$$$\216###\214$$$\206###\213$$$\206" \
+ "###\204\"\"\"\226###\202$$$\211%%%\203$$$\204###\1\"\"\"\202!!!\31\40" \
+ "\40\40\37\37\37\36\36\36\35\35\35\34\34\34\33\33\33\31\31\31\30\30\30" \
+ "\27\27\27\25\25\25\24\24\24\22\22\22\21\21\21\20\20\20\16\16\16\15\15" \
+ "\15\13\13\13\12\12\12\10\10\10\7\7\7\5\5\5\4\4\4\3\3\3\2\2\2\1\1\1\377" \
+ "\0\0\0\272\0\0\0\202\1\1\1\202\3\3\3\22\4\4\4\6\6\6\7\7\7\10\10\10\12" \
+ "\12\12\13\13\13\15\15\15\16\16\16\20\20\20\21\21\21\22\22\22\24\24\24" \
+ "\25\25\25\26\26\26\27\27\27\31\31\31\32\32\32\33\33\33\202\34\34\34\2" \
+ "\35\35\35\36\36\36\202\37\37\37\1\40\40\40\202!!!\202###\7$$$%%%&&&'" \
+ "''((()))***\202+++\3,,,---...\202///\1""000\202111\2""222\303\303\303" \
+ "\205\377\377\377\1\267\267\267\202111\14""000///...---+++***)))(((''" \
+ "'&&&%%%$$$\202###\1\"\"\"\202!!!\202\40\40\40\210\37\37\37\206\40\40" \
+ "\40\204!!!\214\"\"\"\203!!!\233\40\40\40\224!!!\210\40\40\40\211!!!\212" \
+ "\40\40\40\220!!!\202\40\40\40\217!!!\204\40\40\40\204\37\37\37\207\40" \
+ "\40\40\202!!!\213\40\40\40\204!!!\212\"\"\"\203!!!\203\40\40\40\202\37" \
+ "\37\37\2\36\36\36\35\35\35\202\34\34\34\24\33\33\33\32\32\32\31\31\31" \
+ "\27\27\27\26\26\26\25\25\25\24\24\24\22\22\22\21\21\21\20\20\20\16\16" \
+ "\16\15\15\15\13\13\13\12\12\12\10\10\10\7\7\7\6\6\6\4\4\4\3\3\3\2\2\2" \
+ "\202\1\1\1\377\0\0\0\273\0\0\0\24\1\1\1\2\2\2\3\3\3\4\4\4\5\5\5\6\6\6" \
+ "\7\7\7\10\10\10\12\12\12\13\13\13\14\14\14\16\16\16\17\17\17\20\20\20" \
+ "\22\22\22\23\23\23\24\24\24\25\25\25\26\26\26\27\27\27\202\31\31\31\1" \
+ "\32\32\32\202\33\33\33\202\34\34\34\6\35\35\35\36\36\36\37\37\37\40\40" \
+ "\40!!!\"\"\"\202###\7$$$%%%&&&'''((()))***\202+++\2,,,---\202...\202" \
+ "///\1\207\207\207\205\254\254\254\14\200\200\200///...---,,,+++***))" \
+ ")((('''&&&%%%\202###\3\"\"\"!!!\40\40\40\202\37\37\37\202\36\36\36\202" \
+ "\35\35\35\207\34\34\34\205\35\35\35\203\36\36\36\217\37\37\37\306\36" \
+ "\36\36\203\35\35\35\210\36\36\36\204\37\37\37\231\36\36\36\204\35\35" \
+ "\35\1\34\34\34\206\35\35\35\223\36\36\36\214\37\37\37\204\36\36\36\1" \
+ "\35\35\35\202\34\34\34\202\33\33\33\1\32\32\32\202\31\31\31\20\27\27" \
+ "\27\26\26\26\25\25\25\24\24\24\23\23\23\21\21\21\20\20\20\17\17\17\15" \
+ "\15\15\14\14\14\13\13\13\12\12\12\10\10\10\7\7\7\6\6\6\5\5\5\202\3\3" \
+ "\3\2\2\2\2\1\1\1\377\0\0\0\275\0\0\0\26\1\1\1\2\2\2\3\3\3\4\4\4\5\5\5" \
+ "\6\6\6\7\7\7\10\10\10\12\12\12\13\13\13\14\14\14\15\15\15\17\17\17\20" \
+ "\20\20\21\21\21\22\22\22\23\23\23\24\24\24\25\25\25\26\26\26\27\27\27" \
+ "\30\30\30\203\31\31\31\202\32\32\32\12\33\33\33\34\34\34\35\35\35\36" \
+ "\36\36\37\37\37\40\40\40!!!\"\"\"###$$$\202%%%\4&&&'''((()))\202***\1" \
+ "+++\213,,,\202+++\13***)))'''&&&%%%$$$###\"\"\"!!!\40\40\40\37\37\37" \
+ "\202\36\36\36\2\35\35\35\34\34\34\202\33\33\33\215\32\32\32\204\33\33" \
+ "\33\220\34\34\34\242\33\33\33\210\34\34\34\245\33\33\33\207\34\34\34" \
+ "\214\33\33\33\206\34\34\34\205\33\33\33\213\32\32\32\222\33\33\33\216" \
+ "\34\34\34\203\33\33\33\202\32\32\32\203\31\31\31\26\30\30\30\27\27\27" \
+ "\26\26\26\25\25\25\24\24\24\23\23\23\22\22\22\21\21\21\20\20\20\17\17" \
+ "\17\15\15\15\14\14\14\13\13\13\11\11\11\10\10\10\7\7\7\6\6\6\5\5\5\4" \
+ "\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\277\0\0\0\22\1\1\1\2\2\2\3\3\3\4\4\4" \
+ "\5\5\5\6\6\6\7\7\7\10\10\10\11\11\11\12\12\12\13\13\13\15\15\15\16\16" \
+ "\16\17\17\17\20\20\20\21\21\21\22\22\22\23\23\23\202\24\24\24\1\25\25" \
+ "\25\202\26\26\26\202\27\27\27\2\30\30\30\31\31\31\202\32\32\32\12\33" \
+ "\33\33\34\34\34\35\35\35\36\36\36\37\37\37\40\40\40!!!\"\"\"###$$$\202" \
+ "%%%\2&&&'''\202(((\1)))\211***\202)))\11((('''&&&%%%$$$###!!!\40\40\40" \
+ "\37\37\37\202\36\36\36\202\34\34\34\2\33\33\33\32\32\32\202\31\31\31" \
+ "\202\30\30\30\213\27\27\27\202\30\30\30\207\31\31\31\210\32\32\32\205" \
+ "\31\31\31\232\30\30\30\224\31\31\31\212\30\30\30\210\31\31\31\212\30" \
+ "\30\30\220\31\31\31\1\30\30\30\220\31\31\31\203\30\30\30\207\27\27\27" \
+ "\222\30\30\30\206\31\31\31\205\32\32\32\207\31\31\31\202\30\30\30\202" \
+ "\27\27\27\202\26\26\26\1\25\25\25\202\24\24\24\22\23\23\23\22\22\22\21" \
+ "\21\21\20\20\20\17\17\17\16\16\16\15\15\15\13\13\13\12\12\12\11\11\11" \
+ "\10\10\10\7\7\7\6\6\6\5\5\5\4\4\4\3\3\3\2\2\2\1\1\1\377\0\0\0\300\0\0" \
+ "\0\202\1\1\1\3\2\2\2\3\3\3\4\4\4\202\5\5\5\12\6\6\6\10\10\10\11\11\11" \
+ "\12\12\12\13\13\13\14\14\14\15\15\15\16\16\16\17\17\17\20\20\20\202\21" \
+ "\21\21\2\22\22\22\23\23\23\203\24\24\24\202\25\25\25\6\26\26\26\27\27" \
+ "\27\30\30\30\31\31\31\32\32\32\33\33\33\202\34\34\34\202\36\36\36\4\37" \
+ "\37\37\40\40\40!!!\"\"\"\202###\2$$$%%%\202&&&\212'''\1&&&\202%%%\202" \
+ "###\12!!!\40\40\40\37\37\37\36\36\36\35\35\35\34\34\34\33\33\33\32\32" \
+ "\32\31\31\31\30\30\30\202\27\27\27\1\26\26\26\202\25\25\25\212\24\24" \
+ "\24\204\25\25\25\203\26\26\26\216\27\27\27\202\26\26\26\232\25\25\25" \
+ "\224\26\26\26\212\25\25\25\207\26\26\26\213\25\25\25\220\26\26\26\202" \
+ "\25\25\25\217\26\26\26\203\25\25\25\206\24\24\24\224\25\25\25\202\26" \
+ "\26\26\213\27\27\27\204\26\26\26\203\25\25\25\203\24\24\24\2\23\23\23" \
+ "\22\22\22\202\21\21\21\12\20\20\20\17\17\17\16\16\16\15\15\15\14\14\14" \
+ "\13\13\13\12\12\12\11\11\11\10\10\10\6\6\6\202\5\5\5\3\4\4\4\3\3\3\2" \
+ "\2\2\202\1\1\1\377\0\0\0\301\0\0\0\202\1\1\1\1\2\2\2\202\3\3\3\13\4\4" \
+ "\4\5\5\5\6\6\6\7\7\7\10\10\10\11\11\11\12\12\12\13\13\13\14\14\14\15" \
+ "\15\15\16\16\16\202\17\17\17\202\20\20\20\1\21\21\21\203\22\22\22\1\23" \
+ "\23\23\202\24\24\24\7\25\25\25\26\26\26\27\27\27\30\30\30\31\31\31\32" \
+ "\32\32\33\33\33\202\34\34\34\202\36\36\36\3\37\37\37\40\40\40!!!\202" \
+ "\"\"\"\202###\212$$$\202###\12\"\"\"!!!\40\40\40\37\37\37\36\36\36\34" \
+ "\34\34\33\33\33\32\32\32\31\31\31\30\30\30\202\27\27\27\202\25\25\25" \
+ "\1\24\24\24\202\23\23\23\215\22\22\22\202\23\23\23\223\24\24\24\204\23" \
+ "\23\23\207\22\22\22\204\23\23\23\207\22\22\22\205\23\23\23\221\24\24" \
+ "\24\216\23\23\23\204\24\24\24\205\23\23\23\205\22\22\22\205\23\23\23" \
+ "\212\24\24\24\210\23\23\23\211\24\24\24\205\23\23\23\212\22\22\22\211" \
+ "\23\23\23\205\22\22\22\203\23\23\23\220\24\24\24\203\23\23\23\203\22" \
+ "\22\22\1\21\21\21\202\20\20\20\202\17\17\17\13\16\16\16\15\15\15\14\14" \
+ "\14\13\13\13\12\12\12\11\11\11\10\10\10\7\7\7\6\6\6\5\5\5\4\4\4\202\3" \
+ "\3\3\1\2\2\2\202\1\1\1\377\0\0\0\303\0\0\0\202\1\1\1\1\2\2\2\202\3\3" \
+ "\3\4\4\4\4\5\5\5\6\6\6\7\7\7\202\10\10\10\4\11\11\11\12\12\12\13\13\13" \
+ "\14\14\14\202\15\15\15\202\16\16\16\1\17\17\17\204\20\20\20\3\21\21\21" \
+ "\22\22\22\23\23\23\202\24\24\24\7\25\25\25\26\26\26\27\27\27\30\30\30" \
+ "\31\31\31\32\32\32\33\33\33\202\34\34\34\3\35\35\35\36\36\36\37\37\37" \
+ "\202\40\40\40\207!!!\202\"\"\"\203!!!\12\40\40\40\37\37\37\36\36\36\35" \
+ "\35\35\34\34\34\33\33\33\32\32\32\31\31\31\30\30\30\27\27\27\202\25\25" \
+ "\25\3\24\24\24\23\23\23\22\22\22\202\21\21\21\202\20\20\20\210\17\17" \
+ "\17\205\20\20\20\206\21\21\21\212\22\22\22\205\21\21\21\230\20\20\20" \
+ "\225\21\21\21\212\20\20\20\207\21\21\21\214\20\20\20\237\21\21\21\206" \
+ "\20\20\20\202\17\17\17\225\20\20\20\205\21\21\21\207\22\22\22\206\21" \
+ "\21\21\205\20\20\20\1\17\17\17\202\16\16\16\202\15\15\15\4\14\14\14\13" \
+ "\13\13\12\12\12\11\11\11\202\10\10\10\4\7\7\7\6\6\6\5\5\5\4\4\4\202\3" \
+ "\3\3\1\2\2\2\202\1\1\1\377\0\0\0\306\0\0\0\1\1\1\1\202\2\2\2\1\3\3\3" \
+ "\202\4\4\4\3\5\5\5\6\6\6\7\7\7\202\10\10\10\1\11\11\11\202\12\12\12\202" \
+ "\13\13\13\1\14\14\14\203\15\15\15\202\16\16\16\1\17\17\17\202\20\20\20" \
+ "\4\21\21\21\22\22\22\23\23\23\24\24\24\202\25\25\25\202\27\27\27\3\30" \
+ "\30\30\31\31\31\32\32\32\202\33\33\33\2\34\34\34\35\35\35\202\36\36\36" \
+ "\212\37\37\37\2\36\36\36\35\35\35\202\34\34\34\12\33\33\33\32\32\32\31" \
+ "\31\31\30\30\30\26\26\26\25\25\25\24\24\24\23\23\23\22\22\22\21\21\21" \
+ "\202\20\20\20\2\17\17\17\16\16\16\215\15\15\15\203\16\16\16\223\17\17" \
+ "\17\202\16\16\16\226\15\15\15\202\16\16\16\205\17\17\17\221\16\16\16" \
+ "\206\15\15\15\214\16\16\16\206\15\15\15\245\16\16\16\231\15\15\15\202" \
+ "\16\16\16\220\17\17\17\204\16\16\16\203\15\15\15\1\14\14\14\202\13\13" \
+ "\13\202\12\12\12\1\11\11\11\202\10\10\10\3\7\7\7\6\6\6\5\5\5\202\4\4" \
+ "\4\1\3\3\3\202\2\2\2\1\1\1\1\377\0\0\0\311\0\0\0\202\1\1\1\1\2\2\2\202" \
+ "\3\3\3\202\4\4\4\1\5\5\5\202\6\6\6\2\7\7\7\10\10\10\202\11\11\11\203" \
+ "\12\12\12\203\13\13\13\202\14\14\14\3\15\15\15\16\16\16\17\17\17\202" \
+ "\20\20\20\4\21\21\21\22\22\22\23\23\23\24\24\24\202\25\25\25\3\26\26" \
+ "\26\27\27\27\30\30\30\202\31\31\31\1\32\32\32\202\33\33\33\212\34\34" \
+ "\34\202\33\33\33\1\32\32\32\202\31\31\31\14\27\27\27\26\26\26\25\25\25" \
+ "\24\24\24\23\23\23\22\22\22\21\21\21\20\20\20\17\17\17\16\16\16\15\15" \
+ "\15\14\14\14\202\13\13\13\212\12\12\12\203\13\13\13\204\14\14\14\220" \
+ "\15\15\15\203\14\14\14\226\13\13\13\227\14\14\14\211\13\13\13\210\14" \
+ "\14\14\213\13\13\13\236\14\14\14\207\13\13\13\204\12\12\12\222\13\13" \
+ "\13\204\14\14\14\214\15\15\15\205\14\14\14\203\13\13\13\203\12\12\12" \
+ "\202\11\11\11\2\10\10\10\7\7\7\202\6\6\6\1\5\5\5\202\4\4\4\202\3\3\3" \
+ "\1\2\2\2\202\1\1\1\377\0\0\0\313\0\0\0\202\1\1\1\202\2\2\2\202\3\3\3" \
+ "\202\4\4\4\202\5\5\5\1\6\6\6\202\7\7\7\202\10\10\10\204\11\11\11\203" \
+ "\12\12\12\5\13\13\13\14\14\14\15\15\15\16\16\16\17\17\17\202\20\20\20" \
+ "\4\21\21\21\22\22\22\23\23\23\24\24\24\202\25\25\25\3\26\26\26\27\27" \
+ "\27\30\30\30\203\31\31\31\210\32\32\32\203\31\31\31\7\30\30\30\27\27" \
+ "\27\26\26\26\25\25\25\24\24\24\23\23\23\22\22\22\202\20\20\20\4\16\16" \
+ "\16\15\15\15\14\14\14\13\13\13\202\12\12\12\1\11\11\11\213\10\10\10\203" \
+ "\11\11\11\227\12\12\12\226\11\11\11\213\12\12\12\204\11\11\11\206\12" \
+ "\12\12\214\11\11\11\205\12\12\12\222\11\11\11\224\12\12\12\214\11\11" \
+ "\11\204\10\10\10\223\11\11\11\224\12\12\12\204\11\11\11\202\10\10\10" \
+ "\202\7\7\7\1\6\6\6\202\5\5\5\202\4\4\4\202\3\3\3\202\2\2\2\202\1\1\1" \
+ "\377\0\0\0\316\0\0\0\202\1\1\1\202\2\2\2\202\3\3\3\202\4\4\4\203\5\5" \
+ "\5\202\6\6\6\204\7\7\7\203\10\10\10\1\11\11\11\202\12\12\12\6\13\13\13" \
+ "\14\14\14\15\15\15\16\16\16\17\17\17\20\20\20\202\21\21\21\2\22\22\22" \
+ "\23\23\23\202\24\24\24\1\25\25\25\202\26\26\26\202\27\27\27\207\30\30" \
+ "\30\202\27\27\27\2\26\26\26\25\25\25\202\24\24\24\2\22\22\22\21\21\21" \
+ "\202\20\20\20\10\16\16\16\15\15\15\14\14\14\13\13\13\12\12\12\11\11\11" \
+ "\10\10\10\7\7\7\202\6\6\6\206\5\5\5\204\6\6\6\203\7\7\7\227\10\10\10" \
+ "\203\7\7\7\220\6\6\6\203\7\7\7\211\10\10\10\221\7\7\7\202\6\6\6\220\7" \
+ "\7\7\202\6\6\6\221\7\7\7\210\10\10\10\220\7\7\7\224\6\6\6\204\7\7\7\224" \
+ "\10\10\10\204\7\7\7\202\6\6\6\203\5\5\5\202\4\4\4\202\3\3\3\202\2\2\2" \
+ "\202\1\1\1\377\0\0\0\322\0\0\0\202\1\1\1\202\2\2\2\203\3\3\3\203\4\4" \
+ "\4\205\5\5\5\204\6\6\6\4\7\7\7\10\10\10\11\11\11\12\12\12\202\13\13\13" \
+ "\202\15\15\15\2\16\16\16\17\17\17\202\20\20\20\3\21\21\21\22\22\22\23" \
+ "\23\23\203\24\24\24\202\25\25\25\204\26\26\26\203\25\25\25\202\24\24" \
+ "\24\15\23\23\23\22\22\22\21\21\21\20\20\20\17\17\17\16\16\16\15\15\15" \
+ "\14\14\14\13\13\13\12\12\12\11\11\11\10\10\10\6\6\6\202\5\5\5\1\4\4\4" \
+ "\206\3\3\3\204\4\4\4\205\5\5\5\225\6\6\6\205\5\5\5\216\4\4\4\205\5\5" \
+ "\5\207\6\6\6\267\5\5\5\210\6\6\6\225\5\5\5\215\4\4\4\207\5\5\5\223\6" \
+ "\6\6\205\5\5\5\203\4\4\4\203\3\3\3\202\2\2\2\202\1\1\1\377\0\0\0\326" \
+ "\0\0\0\203\1\1\1\203\2\2\2\204\3\3\3\207\4\4\4\3\5\5\5\6\6\6\7\7\7\202" \
+ "\10\10\10\4\11\11\11\12\12\12\13\13\13\14\14\14\202\15\15\15\2\16\16" \
+ "\16\17\17\17\202\20\20\20\1\21\21\21\202\22\22\22\1\23\23\23\206\24\24" \
+ "\24\1\23\23\23\202\22\22\22\1\21\21\21\202\20\20\20\15\17\17\17\16\16" \
+ "\16\15\15\15\14\14\14\13\13\13\12\12\12\11\11\11\10\10\10\7\7\7\6\6\6" \
+ "\5\5\5\4\4\4\3\3\3\202\2\2\2\202\1\1\1\203\2\2\2\206\3\3\3\233\4\4\4" \
+ "\222\3\3\3\215\4\4\4\261\3\3\3\215\4\4\4\243\3\3\3\232\4\4\4\204\3\3" \
+ "\3\203\2\2\2\203\1\1\1\377\0\0\0\333\0\0\0\204\1\1\1\204\2\2\2\207\3" \
+ "\3\3\1\4\4\4\202\5\5\5\3\6\6\6\7\7\7\10\10\10\202\11\11\11\3\12\12\12" \
+ "\13\13\13\14\14\14\202\15\15\15\2\16\16\16\17\17\17\202\20\20\20\202" \
+ "\21\21\21\204\22\22\22\202\21\21\21\202\20\20\20\2\17\17\17\16\16\16" \
+ "\202\15\15\15\13\14\14\14\13\13\13\12\12\12\11\11\11\10\10\10\7\7\7\6" \
+ "\6\6\5\5\5\4\4\4\3\3\3\2\2\2\202\1\1\1\203\0\0\0\205\1\1\1\205\2\2\2" \
+ "\231\3\3\3\206\2\2\2\210\1\1\1\206\2\2\2\213\3\3\3\252\2\2\2\203\1\1" \
+ "\1\206\2\2\2\213\3\3\3\205\2\2\2\205\1\1\1\215\2\2\2\210\1\1\1\205\2" \
+ "\2\2\203\3\3\3\205\2\2\2\221\3\3\3\204\2\2\2\204\1\1\1\377\0\0\0\342" \
+ "\0\0\0\212\1\1\1\202\2\2\2\202\3\3\3\2\4\4\4\5\5\5\202\6\6\6\4\7\7\7" \
+ "\10\10\10\11\11\11\12\12\12\202\13\13\13\3\14\14\14\15\15\15\16\16\16" \
+ "\202\17\17\17\206\20\20\20\202\17\17\17\1\16\16\16\202\15\15\15\11\14" \
+ "\14\14\13\13\13\12\12\12\11\11\11\10\10\10\7\7\7\6\6\6\5\5\5\4\4\4\202" \
+ "\3\3\3\2\2\2\2\1\1\1\211\0\0\0\246\1\1\1\206\0\0\0\231\1\1\1\202\0\0" \
+ "\0\240\1\1\1\205\0\0\0\225\1\1\1\205\0\0\0\215\1\1\1\207\0\0\0\243\1" \
+ "\1\1\377\0\0\0\356\0\0\0\205\1\1\1\1\2\2\2\202\3\3\3\1\4\4\4\202\5\5" \
+ "\5\5\6\6\6\7\7\7\10\10\10\11\11\11\12\12\12\202\13\13\13\1\14\14\14\203" \
+ "\15\15\15\204\16\16\16\203\15\15\15\1\14\14\14\202\13\13\13\5\12\12\12" \
+ "\11\11\11\10\10\10\7\7\7\6\6\6\202\5\5\5\3\4\4\4\3\3\3\2\2\2\202\1\1" \
+ "\1\377\0\0\0\203\1\1\1\271\0\0\0\204\1\1\1\377\0\0\0\373\0\0\0\1\1\1" \
+ "\1\202\2\2\2\1\3\3\3\202\4\4\4\3\5\5\5\6\6\6\7\7\7\202\10\10\10\1\11" \
+ "\11\11\202\12\12\12\202\13\13\13\206\14\14\14\202\13\13\13\202\12\12" \
+ "\12\1\11\11\11\202\10\10\10\3\7\7\7\6\6\6\5\5\5\202\4\4\4\1\3\3\3\202" \
+ "\2\2\2\1\1\1\1\377\0\0\0\377\0\0\0\377\0\0\0\276\0\0\0\202\1\1\1\1\2" \
+ "\2\2\202\3\3\3\1\4\4\4\202\5\5\5\2\6\6\6\7\7\7\202\10\10\10\202\11\11" \
+ "\11\210\12\12\12\202\11\11\11\202\10\10\10\2\7\7\7\6\6\6\202\5\5\5\1" \
+ "\4\4\4\202\3\3\3\1\2\2\2\202\1\1\1\377\0\0\0\377\0\0\0\377\0\0\0\300" \
+ "\0\0\0\202\1\1\1\1\2\2\2\202\3\3\3\202\4\4\4\202\5\5\5\1\6\6\6\202\7" \
+ "\7\7\212\10\10\10\1\7\7\7\202\6\6\6\202\5\5\5\202\4\4\4\202\3\3\3\1\2" \
+ "\2\2\202\1\1\1\377\0\0\0\377\0\0\0\377\0\0\0\302\0\0\0\202\1\1\1\202" \
+ "\2\2\2\202\3\3\3\202\4\4\4\203\5\5\5\204\6\6\6\202\7\7\7\204\6\6\6\203" \
+ "\5\5\5\202\4\4\4\202\3\3\3\202\2\2\2\202\1\1\1\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\304\0\0\0\203\1\1\1\202\2\2\2\203\3\3\3\203\4\4\4\210\5\5\5\203" \
+ "\4\4\4\203\3\3\3\202\2\2\2\203\1\1\1\377\0\0\0\377\0\0\0\377\0\0\0\307" \
+ "\0\0\0\203\1\1\1\203\2\2\2\205\3\3\3\204\4\4\4\205\3\3\3\203\2\2\2\203" \
+ "\1\1\1\377\0\0\0\377\0\0\0\377\0\0\0\313\0\0\0\205\1\1\1\204\2\2\2\204" \
+ "\3\3\3\204\2\2\2\205\1\1\1\377\0\0\0\377\0\0\0\377\0\0\0\320\0\0\0\220" \
+ "\1\1\1\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377" \
+ "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\376" \
+ "\0\0\0\377\1\0\0\377\1\0\0\377\1\0\0\343\1\0\0\377\3\1\0\377\3\1\0\377" \
+ "\3\1\0\343\3\1\0\377\5\2\0\377\5\2\0\377\5\2\0\343\5\2\0\377\7\3\0\377" \
+ "\7\3\0\377\7\3\0\343\7\3\0\377\11\4\0\377\11\4\0\377\11\4\0\343\11\4" \
+ "\0\377\13\5\0\377\13\5\0\377\13\5\0\343\13\5\0\377\14\6\0\377\14\6\0" \
+ "\377\14\6\0\343\14\6\0\377\16\7\0\377\16\7\0\377\16\7\0\343\16\7\0\377" \
+ "\20\10\0\377\20\10\0\377\20\10\0\343\20\10\0\377\22\11\0\377\22\11\0" \
+ "\377\22\11\0\343\22\11\0\377\24\12\0\377\24\12\0\377\24\12\0\343\24\12" \
+ "\0\377\25\12\0\377\25\12\0\377\25\12\0\343\25\12\0\377\27\13\0\377\27" \
+ "\13\0\377\27\13\0\343\27\13\0\377\31\14\0\377\31\14\0\377\31\14\0\343" \
+ "\31\14\0\377\33\15\0\377\33\15\0\377\33\15\0\343\33\15\0\377\35\16\0" \
+ "\377\35\16\0\377\35\16\0\343\35\16\0\377\36\17\0\377\36\17\0\377\36\17" \
+ "\0\343\36\17\0\377\40\20\0\377\40\20\0\377\40\20\0\343\40\20\0\377\"" \
+ "\21\0\377\"\21\0\377\"\21\0\343\"\21\0\377$\22\0\377$\22\0\377$\22\0" \
+ "\343$\22\0\377&\23\0\377&\23\0\377&\23\0\343&\23\0\377'\23\0\377'\23" \
+ "\0\377'\23\0\343'\23\0\377)\24\0\377)\24\0\377)\24\0\343)\24\0\377+\25" \
+ "\0\377+\25\0\377+\25\0\343+\25\0\377-\26\0\377-\26\0\377-\26\0\343-\26" \
+ "\0\377/\27\0\377/\27\0\377/\27\0\343/\27\0\3770\30\0\3770\30\0\3770\30" \
+ "\0\3430\30\0\3772\31\0\3772\31\0\3772\31\0\3432\31\0\3774\32\0\3774\32" \
+ "\0\3774\32\0\3434\32\0\3776\33\0\3776\33\0\3776\33\0\3436\33\0\3778\34" \
+ "\0\3778\34\0\3778\34\0\3438\34\0\377:\35\0\377:\35\0\377:\35\0\343:\35" \
+ "\0\377;\35\0\377;\35\0\377;\35\0\343;\35\0\377=\36\0\377=\36\0\377=\36" \
+ "\0\343=\36\0\377\77\37\0\377\77\37\0\377\77\37\0\343\77\37\0\377A\40" \
+ "\0\377A\40\0\377A\40\0\343A\40\0\377C!\0\377C!\0\377C!\0\343C!\0\377" \
+ "D\"\0\377D\"\0\377D\"\0\343D\"\0\377F#\0\377F#\0\377F#\0\343F#\0\377" \
+ "H$\0\377H$\0\377H$\0\343H$\0\377J%\0\377J%\0\377J%\0\343J%\0\377L&\0" \
+ "\377L&\0\377L&\0\343L&\0\377M&\0\377M&\0\377M&\0\343M&\0\377O'\0\377" \
+ "O'\0\377O'\0\343O'\0\377Q(\0\377Q(\0\377Q(\0\343Q(\0\377S)\0\377S)\0" \
+ "\377S)\0\343S)\0\377U*\0\377U*\0\377U*\0\343U*\0\377V+\0\377V+\0\377" \
+ "V+\0\343V+\0\377X,\0\377X,\0\377X,\0\343X,\0\377Z-\0\377Z-\0\377Z-\0" \
+ "\343Z-\0\377\\.\0\377\\.\0\377\\.\0\343\\.\0\377^/\0\377^/\0\377^/\0" \
+ "\343^/\0\377_/\0\377_/\0\377_/\0\343_/\0\377a0\0\377a0\0\377a0\0\343" \
+ "a0\0\377c1\0\377c1\0\377c1\0\343c1\0\377e2\0\377e2\0\377e2\0\343e2\0" \
+ "\377g3\0\377g3\0\377g3\0\343g3\0\377i4\0\377i4\0\377i4\0\343i4\0\377" \
+ "j5\0\377j5\0\377j5\0\343j5\0\377l6\0\377l6\0\377l6\0\343l6\0\377n7\0" \
+ "\377n7\0\377n7\0\343n7\0\377p8\0\377p8\0\377p8\0\343p8\0\377r9\0\377" \
+ "r9\0\377r9\0\343r9\0\377s9\0\377s9\0\377s9\0\343s9\0\377u:\0\377u:\0" \
+ "\377u:\0\343u:\0\377w;\0\377w;\0\377w;\0\343w;\0\377y<\0\377y<\0\377" \
+ "y<\0\343y<\0\377{=\0\377{=\0\377{=\0\343{=\0\377|>\0\377|>\0\377|>\0" \
+ "\343|>\0\377~\77\0\377~\77\0\377~\77\0\343~\77\0\377\200@\0\377\200@" \
+ "\0\377\200@\0\343\200@\0\377\202A\0\377\202A\0\377\202A\0\343\202A\0" \
+ "\377\204B\0\377\204B\0\377\204B\0\343\204B\0\377\205B\0\377\205B\0\377" \
+ "\205B\0\343\205B\0\377\207C\0\377\207C\0\377\207C\0\343\207C\0\377\211" \
+ "D\0\377\211D\0\377\211D\0\343\211D\0\377\213E\0\377\213E\0\377\213E\0" \
+ "\343\213E\0\377\215F\0\377\215F\0\377\215F\0\343\215F\0\377\217G\0\377" \
+ "\217G\0\377\217G\0\343\217G\0\377\220H\0\377\220H\0\377\220H\0\343\220" \
+ "H\0\377\222I\0\377\222I\0\377\222I\0\343\222I\0\377\224J\0\377\224J\0" \
+ "\377\224J\0\343\224J\0\377\226K\0\377\226K\0\377\226K\0\343\226K\0\377" \
+ "\230L\0\377\230L\0\377\230L\0\343\230L\0\377\231L\0\377\231L\0\377\231" \
+ "L\0\343\231L\0\377\233M\0\377\233M\0\377\233M\0\343\233M\0\377\235N\0" \
+ "\377\235N\0\377\235N\0\343\235N\0\377\237O\0\377\237O\0\377\237O\0\343" \
+ "\237O\0\377\241P\0\377\241P\0\377\241P\0\343\241P\0\377\242Q\0\377\242" \
+ "Q\0\377\242Q\0\343\242Q\0\377\244R\0\377\244R\0\377\244R\0\343\244R\0" \
+ "\377\246S\0\377\246S\0\377\246S\0\343\246S\0\377\250T\0\377\250T\0\377" \
+ "\250T\0\343\250T\0\377\252U\0\377\252U\0\377\252U\0\343\252U\0\377\253" \
+ "U\0\377\253U\0\377\253U\0\343\253U\0\377\255V\0\377\255V\0\377\255V\0" \
+ "\343\255V\0\377\257W\0\377\257W\0\377\257W\0\343\257W\0\377\261X\0\377" \
+ "\261X\0\377\261X\0\343\261X\0\377\263Y\0\377\263Y\0\377\263Y\0\343\263" \
+ "Y\0\377\264Z\0\377\264Z\0\377\264Z\0\343\264Z\0\377\266[\0\377\266[\0" \
+ "\377\266[\0\343\266[\0\377\270\\\0\377\270\\\0\377\270\\\0\343\270\\" \
+ "\0\377\272]\0\377\272]\0\377\272]\0\343\272]\0\377\274^\0\377\274^\0" \
+ "\377\274^\0\343\274^\0\377\276_\0\377\276_\0\377\276_\0\343\276_\0\377" \
+ "\277_\0\377\277_\0\377\277_\0\343\277_\0\377\301`\0\377\301`\0\377\301" \
+ "`\0\343\301`\0\377\303a\0\377\303a\0\377\303a\0\343\303a\0\377\305b\0" \
+ "\377\305b\0\377\305b\0\343\305b\0\377\307c\0\377\307c\0\377\307c\0\343" \
+ "\307c\0\377\310d\0\377\310d\0\377\310d\0\343\310d\0\377\312e\0\377\312" \
+ "e\0\377\312e\0\343\312e\0\377\314f\0\377\314f\0\377\314f\0\343\314f\0" \
+ "\377\316g\0\377\316g\0\377\316g\0\343\316g\0\377\320h\0\377\320h\0\377" \
+ "\320h\0\343\320h\0\377\321h\0\377\321h\0\377\321h\0\343\321h\0\377\323" \
+ "i\0\377\323i\0\377\323i\0\343\323i\0\377\325j\0\377\325j\0\377\325j\0" \
+ "\343\325j\0\377\327k\0\377\327k\0\377\327k\0\343\327k\0\377\331l\0\377" \
+ "\331l\0\377\331l\0\343\331l\0\377\332m\0\377\332m\0\377\332m\0\343\332" \
+ "m\0\377\334n\0\377\334n\0\377\334n\0\343\334n\0\377\336o\0\377\336o\0" \
+ "\377\336o\0\343\336o\0\377\340p\0\377\340p\0\377\340p\0\343\340p\0\377" \
+ "\342q\0\377\342q\0\377\342q\0\343\342q\0\377\343q\0\377\343q\0\377\343" \
+ "q\0\343\343q\0\377\345r\0\377\345r\0\377\345r\0\343\345r\0\377\347s\0" \
+ "\377\347s\0\377\347s\0\343\347s\0\377\351t\0\377\351t\0\377\351t\0\343" \
+ "\351t\0\377\353u\0\377\353u\0\377\353u\0\343\353u\0\377\355v\0\377\355" \
+ "v\0\377\355v\0\343\355v\0")
diff --git a/packages/psplash/psplash_svn.bb b/packages/psplash/psplash_svn.bb
index 6e117db941..98e2a36805 100644
--- a/packages/psplash/psplash_svn.bb
+++ b/packages/psplash/psplash_svn.bb
@@ -1,8 +1,9 @@
DESCRIPTION = "Userspace framebuffer boot logo based on usplash."
+HOMEPAGE = "http://projects.o-hand.com/psplash"
SECTION = "base"
LICENSE = "GPL"
-PV = "0.0+svn${SRCDATE}"
-PR = "r8"
+PV = "0.0+svnr${SRCREV}"
+PR = "r9"
# You can create your own pslash-hand-img.h by doing
# ./make-image-header.sh <file>.png HAND
diff --git a/packages/putty/putty_svn.bb b/packages/putty/putty_svn.bb
index 55f827b467..c96ffbb213 100644
--- a/packages/putty/putty_svn.bb
+++ b/packages/putty/putty_svn.bb
@@ -14,7 +14,7 @@ TARGETS = "lib plink pscp psftp"
S = "${WORKDIR}/putty"
-inherit qmake-base
+inherit qmake_base
do_configure() {
for t in ${TARGETS}
diff --git a/packages/puzzles/oh-puzzles_svn.bb b/packages/puzzles/oh-puzzles_svn.bb
index 67643cb281..f0e0eade69 100644
--- a/packages/puzzles/oh-puzzles_svn.bb
+++ b/packages/puzzles/oh-puzzles_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Portable Puzzle Collection"
LICENSE = "MIT"
SECTION = "x11"
DEPENDS = "gtk+ gconf intltool-native librsvg libowl"
-PV = "0.1+svn${SRCDATE}"
+PV = "0.1+svnr${SRCREV}"
PR = "r5"
inherit autotools pkgconfig
diff --git a/packages/qt/qt-x11-free-common.inc b/packages/qt/qt-x11-free-common.inc
index cb4ed12f8d..a68575d601 100644
--- a/packages/qt/qt-x11-free-common.inc
+++ b/packages/qt/qt-x11-free-common.inc
@@ -6,7 +6,7 @@ HOMEPAGE = "http://www.trolltech.com"
S = "${WORKDIR}/qt-x11-free-${PV}"
-inherit qmake-base qt3x11
+inherit qmake_base qt3x11
export QTDIR = "${S}"
STAGING_QT_DIR = "${STAGING_DIR}/${HOST_SYS}/qt3"
diff --git a/packages/qt/qt-x11-free-native_3.3.5.bb b/packages/qt/qt-x11-free-native_3.3.5.bb
index bd1c8e2598..2ed3da49b5 100644
--- a/packages/qt/qt-x11-free-native_3.3.5.bb
+++ b/packages/qt/qt-x11-free-native_3.3.5.bb
@@ -12,7 +12,7 @@ SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-x11-free-${PV}.tar.bz2 \
S = "${WORKDIR}/qt-x11-free-${PV}"
#
-# FIXME - This should be updated to use OE's qmake-base.oeclass
+# FIXME - This should be updated to use OE's qmake_base.oeclass
# or the full qmake.oeclass.
#
diff --git a/packages/qt/qt4-x11-free_4.1.2.bb b/packages/qt/qt4-x11-free_4.1.2.bb
index 32eb3ced35..91ac3f68cf 100644
--- a/packages/qt/qt4-x11-free_4.1.2.bb
+++ b/packages/qt/qt4-x11-free_4.1.2.bb
@@ -19,7 +19,7 @@ S = "${WORKDIR}/qt-x11-opensource-src-${PV}"
PARALLEL_MAKE = ""
-inherit qmake-base qt4x11 pkgconfig
+inherit qmake_base qt4x11 pkgconfig
export QTDIR = "${S}"
STAGING_QT_DIR = "${STAGING_DIR}/${TARGET_SYS}/qt4"
diff --git a/packages/qt/qt4-x11-free_4.3.0.bb b/packages/qt/qt4-x11-free_4.3.0.bb
index 8d68642417..a097c4e9ca 100644
--- a/packages/qt/qt4-x11-free_4.3.0.bb
+++ b/packages/qt/qt4-x11-free_4.3.0.bb
@@ -21,7 +21,7 @@ S = "${WORKDIR}/qt-x11-opensource-src-${PV}"
PARALLEL_MAKE = ""
-inherit qmake-base qt4x11
+inherit qmake_base qt4x11
export QTDIR = "${S}"
STAGING_QT_DIR = "${STAGING_DIR}/${TARGET_SYS}/qt4"
diff --git a/packages/qte/qte-mt-static_2.3.10.bb b/packages/qte/qte-mt-static_2.3.10.bb
index 21feb25fef..c7d962343a 100644
--- a/packages/qte/qte-mt-static_2.3.10.bb
+++ b/packages/qte/qte-mt-static_2.3.10.bb
@@ -1,6 +1,8 @@
require qte-common_${PV}.inc
PR = "r8"
+DEFAULT_PREFERENCE = "-1"
+
EXTRA_OECONF += "-static -thread"
do_stage() {
diff --git a/packages/settings-daemon/settings-daemon_svn.bb b/packages/settings-daemon/settings-daemon_svn.bb
index b427176c79..fb24fb1d75 100644
--- a/packages/settings-daemon/settings-daemon_svn.bb
+++ b/packages/settings-daemon/settings-daemon_svn.bb
@@ -3,8 +3,7 @@ LICENSE = "GPL"
DEPENDS = "gconf glib-2.0"
RDEPENDS = "xrdb"
SECTION = "x11"
-PV = "0.0+svn${SRCDATE}"
-PR = "r2"
+PV = "0.0+svnr${SRCREV}"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http \
file://70settings-daemon"
diff --git a/packages/snes9x/snes9x-sdl-qpe_1.39.bb b/packages/snes9x/snes9x-sdl-qpe_1.39.bb
index adf49650d9..00e9fa0791 100644
--- a/packages/snes9x/snes9x-sdl-qpe_1.39.bb
+++ b/packages/snes9x/snes9x-sdl-qpe_1.39.bb
@@ -11,7 +11,7 @@ S = "${WORKDIR}/snes9x-sdl-${PV}"
FILESPATH = "${FILE_DIRNAME}/${PN}-${PV}:${FILE_DIRNAME}/snes9x-sdl-${PV}:${FILE_DIRNAME}/snes9x-sdl:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
-inherit qmake-base
+inherit qmake_base
QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte",d)}'
diff --git a/packages/sphyrna/sphyrna_svn.bb b/packages/sphyrna/sphyrna_svn.bb
index 048d001905..d2e90cf8f2 100644
--- a/packages/sphyrna/sphyrna_svn.bb
+++ b/packages/sphyrna/sphyrna_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Sphyrna - Hammerhead Reverse Engineering"
HOMEPAGE = "http://projects.linuxtogo.org/projects/sphyrna"
LICENSE = "GPLv2"
DEPENDS = "readline"
-PV = "0.0+svn${SRCDATE}"
+PV = "0.0+svnr${SRCREV}"
PR = "r0"
SRC_URI = "svn://projects.linuxtogo.org/svn;module=sphyrna"
diff --git a/packages/starling/starling_0.2.bb b/packages/starling/starling_0.2.bb
index 6080491cb2..32cd1b9025 100644
--- a/packages/starling/starling_0.2.bb
+++ b/packages/starling/starling_0.2.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Starling audio player for GPE"
SECTION = "gpe/multimedia"
PRIORITY = "optional"
LICENSE = "GPL"
-DEPENDS = "gtk+ libgpewidget gstreamer gst-plugins-good gst-plugins-bad esound sqlite3 libsoup"
+DEPENDS = "gtk+ gstreamer gst-plugins-good gst-plugins-bad sqlite libsoup gnutls"
RDEPENDS = "esd \
gst-plugin-audioconvert \
diff --git a/packages/taglib/taglib_1.4.bb b/packages/taglib/taglib_1.4.bb
index 7d560ef620..43fb2a2bfa 100644
--- a/packages/taglib/taglib_1.4.bb
+++ b/packages/taglib/taglib_1.4.bb
@@ -7,7 +7,7 @@ PR = "r1"
SRC_URI = "http://developer.kde.org/~wheeler/files/src/taglib-${PV}.tar.gz"
S = "${WORKDIR}/taglib-${PV}"
-inherit autotools qmake-base pkgconfig binconfig
+inherit autotools qmake_base pkgconfig binconfig
export OE_QMAKE_LINK="${CXX}"
diff --git a/packages/taglib/taglibc_1.4.bb b/packages/taglib/taglibc_1.4.bb
index 8845c988c0..1a3a702bb9 100644
--- a/packages/taglib/taglibc_1.4.bb
+++ b/packages/taglib/taglibc_1.4.bb
@@ -9,7 +9,7 @@ LICENSE = "LGPL"
SRC_URI = "http://developer.kde.org/~wheeler/files/src/taglib-${PV}.tar.gz"
S = "${WORKDIR}/taglib-${PV}"
-inherit autotools qmake-base pkgconfig binconfig
+inherit autotools qmake_base pkgconfig binconfig
do_configure() {
echo running oe_runconf to get pkgconfig and binconfig files created
diff --git a/packages/tasks/task-boot.bb b/packages/tasks/task-boot.bb
index fe4d43b767..40c5bd530b 100644
--- a/packages/tasks/task-boot.bb
+++ b/packages/tasks/task-boot.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Basic task to get a device booting"
-PR = "r39"
+PR = "r40"
inherit task
diff --git a/packages/tasks/task-openmoko-debug.bb b/packages/tasks/task-openmoko-debug.bb
index 6ea7ca236b..8486aa01cf 100644
--- a/packages/tasks/task-openmoko-debug.bb
+++ b/packages/tasks/task-openmoko-debug.bb
@@ -1,7 +1,7 @@
-DESCRIPTION = "OpenMoko: Debugging Tools"
+DESCRIPTION = "OpenMoko: Debugging and Benchmarking Tools"
SECTION = "openmoko/base"
LICENSE = "MIT"
-PR = "r57"
+PR = "r58"
inherit task
@@ -11,26 +11,27 @@ RDEPENDS_task-openmoko-debug = "\
alsa-utils-aconnect \
alsa-utils-alsamixer \
alsa-utils-speakertest \
- madplay \
- vorbis-tools \
- strace \
- ltrace \
+ bonnie++ \
+ cu \
+ dbench \
+ fbgrab \
+ fstests \
gdb \
gdbserver \
+ madplay \
+ lrzsz \
+ lsof \
+ ltrace \
+ memtester \
+# sensors-i2cdetect sensors-i2cdump sensors-i2cset \
+ strace \
tcpdump \
tslib-calibrate \
tslib-tests \
- fbgrab \
- fstests \
- lsof \
- lrzsz \
udev-utils \
usbutils \
uucp \
- cu \
-# sensors-i2cdetect sensors-i2cdump sensors-i2cset \
+ vorbis-tools \
+ x11perf \
xev \
- bonnie++ \
- memtester \
- dbench \
"
diff --git a/packages/tasks/task-openmoko-feed.bb b/packages/tasks/task-openmoko-feed.bb
index f3e3ee8456..41c63f7dff 100644
--- a/packages/tasks/task-openmoko-feed.bb
+++ b/packages/tasks/task-openmoko-feed.bb
@@ -1,27 +1,31 @@
DESCRIPTION = "OpenMoko: Misc. Feed Items"
SECTION = "openmoko/base"
LICENSE = "MIT"
-PR = "r8"
+PR = "r12"
inherit task
RDEPENDS_task-openmoko-feed = "\
aspell enchant \
bluez-hcidump \
+ eet evas ecore embryo epsilon edje efreet emotion epdf \
+ exhibit edje-viewer \
gpe-filemanager gpe-gallery gpe-timesheet gpe-todo \
- ipkg-link \
+ ipkg-link ipkg-utils \
+ joe \
kbdd \
midori \
+ mplayer \
mtpaint \
mysql \
nano \
ntpclient ntp \
openssh openssh-scp openssh-ssh openssh-sshd openssh-sftp openssh-misc \
- python \
- python-pygtk \
- python-pyserial \
+ python python-pygtk python-pyserial \
ruby \
- timezones \
+ synergy \
+ tzdata \
tor \
vnc \
"
+
diff --git a/packages/tasks/task-openmoko.bb b/packages/tasks/task-openmoko.bb
index 0ddf590c9d..4c605dc11d 100644
--- a/packages/tasks/task-openmoko.bb
+++ b/packages/tasks/task-openmoko.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "OpenMoko: Tasks for the OpenMoko Linux Distribution"
SECTION = "openmoko/base"
LICENSE = "MIT"
PROVIDES = "task-openmoko-everything"
-PR = "r60"
+PR = "r62"
inherit task
@@ -84,6 +84,7 @@ THEMES_e680 = "openmoko-icon-theme-standard2 openmoko-theme-standard2-qvga"
THEMES_a1200 = "openmoko-icon-theme-standard2 openmoko-theme-standard2-qvga"
THEMES_rokre2 = "openmoko-icon-theme-standard2 openmoko-theme-standard2-qvga"
THEMES_rokre6 = "openmoko-icon-theme-standard2 openmoko-theme-standard2-qvga"
+THEMES_magician = "openmoko-icon-theme-standard2 openmoko-theme-standard2-qvga"
RDEPENDS_task-openmoko-ui += "${THEMES}"
@@ -98,6 +99,7 @@ RDEPENDS_task-openmoko-base = "\
# openmoko-appmanager \
matchbox-keyboard-inputmethod \
matchbox-keyboard-im \
+ matchbox-keyboard-applet \
matchbox-stroke \
openmoko-terminal2 \
openmoko-keyboard \
@@ -129,6 +131,7 @@ RDEPENDS_task-openmoko-pim = "\
eds-dbus \
openmoko-calculator2 \
openmoko-contacts2 \
+ openmoko-dates2 \
openmoko-feedreader2 \
openmoko-tasks2 \
openmoko-today2 \
diff --git a/packages/tcpdump/tcpdump_3.9.3.bb b/packages/tcpdump/tcpdump_3.9.7.bb
index 7ffcc9a37f..ba9710d86a 100644
--- a/packages/tcpdump/tcpdump_3.9.3.bb
+++ b/packages/tcpdump/tcpdump_3.9.7.bb
@@ -3,8 +3,7 @@ HOMEPAGE = "http://www.tcpdump.org/"
LICENSE = "BSD"
SECTION = "console/network"
PRIORITY = "optional"
-DEPENDS = "libpcap-0.9.3"
-PR = "r2"
+DEPENDS = "libpcap"
SRC_URI = "http://www.tcpdump.org/release/tcpdump-${PV}.tar.gz \
file://tcpdump_configure_no_-O2.patch;patch=1"
diff --git a/packages/tinymail/libtinymail_svn.bb b/packages/tinymail/libtinymail_svn.bb
index 6792154e7a..300fee2cfa 100644
--- a/packages/tinymail/libtinymail_svn.bb
+++ b/packages/tinymail/libtinymail_svn.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "TinyMail is an attempt to create an E-mail framework for mobile d
SECTION = "x11/utils"
LICENSE = "LGPL"
DEPENDS = "gtk+ glib-2.0 gnome-vfs gconf-dbus libgnomeui"
-PV = "0.0.1+svn${SRCDATE}"
+PV = "0.0.1+svnr${SRCREV}"
PR = "r3"
DEFAULT_PREFERENCE = "-1"
diff --git a/packages/uboot/uboot-openmoko_1.2.0+git8993e54b6f397973794f3d6f47d3b3c0c98dd4f6+svn20070819.bb b/packages/uboot/uboot-openmoko_1.2.0+gitf34024d4a328e6edd906456da98d2c537155c4f7+svn2943.bb
index d660deef9a..6256363500 100644
--- a/packages/uboot/uboot-openmoko_1.2.0+git8993e54b6f397973794f3d6f47d3b3c0c98dd4f6+svn20070819.bb
+++ b/packages/uboot/uboot-openmoko_1.2.0+gitf34024d4a328e6edd906456da98d2c537155c4f7+svn2943.bb
@@ -4,19 +4,19 @@ LICENSE = "GPL"
SECTION = "bootloader"
PRIORITY = "optional"
-UBOOT_UPSTREAM_REV = "8993e54b6f397973794f3d6f47d3b3c0c98dd4f6"
-UBOOT_OPENMOKO_DATE = "20070819"
+UBOOT_UPSTREAM_REV = "f34024d4a328e6edd906456da98d2c537155c4f7"
+UBOOT_OPENMOKO_REV = "2943"
UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4"
-PV = "1.2.0+git${UBOOT_UPSTREAM_REV}+svn${UBOOT_OPENMOKO_DATE}"
-PR = "r2"
+PV = "1.2.0+git${UBOOT_UPSTREAM_REV}+svn${UBOOT_OPENMOKO_REV}"
+PR = "r0"
PROVIDES = "virtual/bootloader"
S = "${WORKDIR}/git"
SRC_URI = "\
- git://www.denx.de/git/u-boot.git/;protocol=git;tag=${UBOOT_UPSTREAM_REV} \
- svn://svn.openmoko.org/branches/u-boot/pre-20070822;module=patches;date=${UBOOT_OPENMOKO_DATE};proto=http \
+ git://www.denx.de/git/u-boot.git;protocol=git;tag=${UBOOT_UPSTREAM_REV} \
+ svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;rev=${UBOOT_OPENMOKO_REV};proto=http \
file://uboot-eabi-fix-HACK.patch \
file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \
"
diff --git a/packages/uboot/uboot-openmoko_svn.bb b/packages/uboot/uboot-openmoko_svn.bb
index 9b5dbb509b..e1575884c2 100644
--- a/packages/uboot/uboot-openmoko_svn.bb
+++ b/packages/uboot/uboot-openmoko_svn.bb
@@ -4,16 +4,18 @@ LICENSE = "GPL"
SECTION = "bootloader"
PRIORITY = "optional"
PROVIDES = "virtual/bootloader"
-PV = "1.2.0+git${SRCDATE}+svn${SRCDATE}"
+PV = "1.2.0+git${SRCDATE}+svnr${SRCREV}"
PR = "r0"
+SRCREV_FORMAT = "patches"
+
UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 smdk2440 hxd8 qt2410 gta02v1 gta02v2"
DEFAULT_PREFERENCE = "-1"
SRC_URI = "\
- git://www.denx.de/git/u-boot.git/;protocol=git \
- svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=http \
+ git://www.denx.de/git/u-boot.git/;protocol=git;name=upstream \
+ svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=http;name=patches \
file://uboot-eabi-fix-HACK.patch \
file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \
"
diff --git a/packages/uclibc/bfin-uclibc_svn.bb b/packages/uclibc/bfin-uclibc_svn.bb
new file mode 100644
index 0000000000..fdb1329968
--- /dev/null
+++ b/packages/uclibc/bfin-uclibc_svn.bb
@@ -0,0 +1,34 @@
+# UCLIBC_BASE should be the latest released revision of uclibc (that way
+# the config files will typically be correct!) uclibc-cvs takes precedence
+# over uclibc-${UCLIBC_BASE}, if a config file in uclibc-cvs is out of date
+# try removing it
+#
+# UCLIBC_BASE can be set in a distro file, but whether this works depends
+# on whether the base patches apply to the selected (SRCDATE) svn release.
+#
+UCLIBC_BASE ?= "0.9.29"
+PR = "r0"
+PV = "${UCLIBC_BASE}+svnr${SRCREV}"
+
+require uclibc.inc
+
+PROVIDES_append_bfin = " virtual/${TARGET_PREFIX}libc-for-gcc "
+
+#recent versions uclibc require real kernel headers
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_HOST = "bfin.*-uclinux"
+
+#as stated above, uclibc needs real kernel-headers
+#however: we can't depend on virtual/kernel when nptl hits due to depends deadlocking ....
+KERNEL_SOURCE = "${CROSS_DIR}/${TARGET_SYS}"
+
+SRC_URI = "svn://sources.blackfin.uclinux.org/toolchain/trunk;module=uClibc "
+SRC_URI += "file://uClibc.machine file://uClibc.distro"
+
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${UCLIBC_BASE}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+
+
+S = "${WORKDIR}/uClibc"
+
+LEAD_SONAME = "libc.so"
+
diff --git a/packages/uclibc/elf2flt_svn.bb b/packages/uclibc/elf2flt_svn.bb
new file mode 100644
index 0000000000..ef142baf06
--- /dev/null
+++ b/packages/uclibc/elf2flt_svn.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Elf2flt is a wrapper around the linker for uclinux platforms"
+DEPENDS = "binutils-cross"
+
+PV = "0.0+svnr${SRCREV}"
+
+inherit autotools cross
+
+SRC_URI = "svn://sources.blackfin.uclinux.org/toolchain/trunk;module=${PN}"
+
+S = "${WORKDIR}/${PN}"
+
+EXTRA_OECONF = " --with-libbfd=${CROSS_DIR}/${TARGET_SYS}/lib/libbfd.a \
+ --with-libiberty=${CROSS_DIR}/${TARGET_SYS}/lib/libiberty.a \
+ --with-bfd-include-dir=${CROSS_DIR}/${TARGET_SYS}/include \
+ "
diff --git a/packages/uicmoc/uicmoc-native_2.3.10.bb b/packages/uicmoc/uicmoc-native_2.3.10.bb
index 4d6b16a3b3..a4be2f1c0a 100644
--- a/packages/uicmoc/uicmoc-native_2.3.10.bb
+++ b/packages/uicmoc/uicmoc-native_2.3.10.bb
@@ -14,7 +14,7 @@ SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/qt-embedded-${PV}-free.tar.gz \
file://kernel-asm-page.patch;patch=1"
S = "${WORKDIR}/qt-${PV}"
-inherit native qmake-base
+inherit native qmake_base
export QTDIR = "${S}"
EXTRA_OEMAKE = 'SYSCONF_CXX="${CXX}" SYSCONF_LINK="${CXX}"'
diff --git a/packages/uicmoc/uicmoc3-native_3.3.5.bb b/packages/uicmoc/uicmoc3-native_3.3.5.bb
index 153e2bae2d..35dada5b72 100644
--- a/packages/uicmoc/uicmoc3-native_3.3.5.bb
+++ b/packages/uicmoc/uicmoc3-native_3.3.5.bb
@@ -10,7 +10,7 @@ SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-free-${PV}.tar.bz2 \
file://64bit-cleanup.patch;patch=1"
S = "${WORKDIR}/qt-embedded-free-${PV}"
-inherit native qmake-base qt3e
+inherit native qmake_base qt3e
export QTDIR = "${S}"
export OE_QMAKE_LINK="${CXX}"
diff --git a/packages/webkit/webkit-gtk_svn.bb b/packages/webkit/webkit-gtk_svn.bb
index 7ec07c3816..077baec95e 100644
--- a/packages/webkit/webkit-gtk_svn.bb
+++ b/packages/webkit/webkit-gtk_svn.bb
@@ -10,8 +10,8 @@ inherit qmake2 pkgconfig
SRC_URI = "\
svn://svn.webkit.org/repository/webkit/trunk/;module=JavaScriptCore;proto=http \
svn://svn.webkit.org/repository/webkit/trunk/;module=JavaScriptGlue;proto=http \
- svn://svn.webkit.org/repository/webkit/trunk/;module=WebCore;proto=http \
- svn://svn.webkit.org/repository/webkit/trunk/;module=WebKit;proto=http \
+ svn://svn.webkit.org/repository/webkit/trunk/;module=WebCore;proto=http;name=webcore \
+ svn://svn.webkit.org/repository/webkit/trunk/;module=WebKit;proto=http;name=webkit \
svn://svn.webkit.org/repository/webkit/trunk/;module=WebKitLibraries;proto=http \
# svn://svn.webkit.org/repository/webkit/trunk/;module=WebKitQt;proto=http \
svn://svn.webkit.org/repository/webkit/trunk/;module=WebKitTools;proto=http \
diff --git a/packages/xchat/xchat_2.6.1.bb b/packages/xchat/xchat_2.6.1.bb
deleted file mode 100644
index fc362a9c41..0000000000
--- a/packages/xchat/xchat_2.6.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Full-featured IRC chat client with scripting support"
-LICENSE = "GPL"
-HOMEPAGE = "http://www.xchat.org"
-SECTION = "x11/network"
-DEPENDS = "libgcrypt zlib gtk+"
-PR = "r3"
-
-SRC_URI = "http://www.xchat.org/files/source/2.6/xchat-${PV}.tar.bz2"
-
-inherit autotools
-EXTRA_OECONF = " --disable-perl --disable-python "
-
-FILES_${PN}-dbg += " /usr/lib/xchat/plugins/.debug"
diff --git a/packages/xchat/xchat_2.8.4.bb b/packages/xchat/xchat_2.8.4.bb
new file mode 100644
index 0000000000..6626f67ed1
--- /dev/null
+++ b/packages/xchat/xchat_2.8.4.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Full-featured IRC chat client with scripting support"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.xchat.org"
+SECTION = "x11/network"
+DEPENDS = "libgcrypt zlib gtk+"
+DEPENDS += "gdk-pixbuf-csource-native"
+PR = "r0"
+
+SRC_URI = "http://www.xchat.org/files/source/2.8/xchat-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = "\
+ --disable-perl \
+ --disable-python \
+"
+
+FILES_${PN}-dbg += "${libdir}/xchat/plugins/.debug"
diff --git a/packages/xoo/xoo_svn.bb b/packages/xoo/xoo_svn.bb
index 71a39b057d..231122194b 100644
--- a/packages/xoo/xoo_svn.bb
+++ b/packages/xoo/xoo_svn.bb
@@ -4,7 +4,7 @@ It is intended for embedded developers that want to simulate a target device \
HOMEPAGE = "http://projects.o-hand.com/xoo"
LICENSE = "GPL"
DEPENDS = "virtual/libx11 libxtst gtk+ libglade"
-PV = "0.7+svn${SRCDATE}"
+PV = "0.7+svnr${SRCREV}"
PR = "r1"
SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=Xoo;proto=http \
diff --git a/packages/xorg-app/bdftopcf_1.0.1.bb b/packages/xorg-app/bdftopcf_1.0.1.bb
new file mode 100644
index 0000000000..6af52c9783
--- /dev/null
+++ b/packages/xorg-app/bdftopcf_1.0.1.bb
@@ -0,0 +1,7 @@
+require xorg-app-common.inc
+PE = "1"
+
+DESCRIPTION = "converts BDF fonts to PCF fonts"
+
+DEPENDS += " libxfont"
+
diff --git a/packages/xorg-app/iceauth_1.0.2.bb b/packages/xorg-app/iceauth_1.0.2.bb
new file mode 100644
index 0000000000..9b5ea948b2
--- /dev/null
+++ b/packages/xorg-app/iceauth_1.0.2.bb
@@ -0,0 +1,7 @@
+require xorg-app-common.inc
+PE = "1"
+
+DESCRIPTION = "a tool for manipulating ICE protocol authorization records"
+
+DEPENDS += " libice"
+
diff --git a/packages/xorg-app/ico_1.0.2.bb b/packages/xorg-app/ico_1.0.2.bb
new file mode 100644
index 0000000000..532dbef6d8
--- /dev/null
+++ b/packages/xorg-app/ico_1.0.2.bb
@@ -0,0 +1,6 @@
+require xorg-app-common.inc
+PE = "1"
+
+DESCRIPTION = "an X graphics demo using an animated polyhedron"
+
+DEPENDS += " virtual/libx11 libxau libxdmcp"
diff --git a/packages/xorg-app/xbacklight_1.1.bb b/packages/xorg-app/xbacklight_1.1.bb
new file mode 100644
index 0000000000..ab911de04a
--- /dev/null
+++ b/packages/xorg-app/xbacklight_1.1.bb
@@ -0,0 +1,6 @@
+require xorg-app-common.inc
+PE = "1"
+
+DESCRIPTION = "adjust backlight brightness using RandR extension"
+
+DEPENDS += " virtual/libx11 libxrender libxrandr"
diff --git a/packages/xorg-app/xdm_1.1.6.bb b/packages/xorg-app/xdm_1.1.6.bb
index 7b4195e3d8..1520a903ad 100644
--- a/packages/xorg-app/xdm_1.1.6.bb
+++ b/packages/xorg-app/xdm_1.1.6.bb
@@ -6,3 +6,5 @@ DESCRIPTION = "X display manager"
DEPENDS += " libxmu libxinerama libxpm libxdmcp libxau virtual/libx11 libxext libxdmcp libxt"
EXTRA_OECONF += " --with-random-device=/dev/urandom"
+
+FILES_${PN}-dbg += "${libdir}/X11/xdm/.debug/*"
diff --git a/packages/xorg-app/xinit_1.0.5.bb b/packages/xorg-app/xinit_1.0.5.bb
new file mode 100644
index 0000000000..ce82fb05d4
--- /dev/null
+++ b/packages/xorg-app/xinit_1.0.5.bb
@@ -0,0 +1,6 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "X Window System initializer"
+PE = "1"
+
+FILES_${PN} += "${libdir}X11/xinit"
diff --git a/packages/xorg-app/xprop_1.0.3.bb b/packages/xorg-app/xprop_1.0.3.bb
deleted file mode 100644
index 8623021717..0000000000
--- a/packages/xorg-app/xprop_1.0.3.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require xorg-app-common.inc
-PE = "1"
-
-#DESCRIPTION = ""
-
-DEPENDS += " libxmu virtual/libx11"
-
diff --git a/packages/xorg-app/xset_1.0.3.bb b/packages/xorg-app/xset_1.0.3.bb
new file mode 100644
index 0000000000..fa2e4c25a2
--- /dev/null
+++ b/packages/xorg-app/xset_1.0.3.bb
@@ -0,0 +1,11 @@
+require xorg-app-common.inc
+
+DESCRIPTION = "user preference utility for X"
+LICENSE = "MIT"
+DEPENDS += "libxext libxxf86misc libxfontcache libxmu libxp libxau"
+PE = "1"
+
+SRC_URI += "file://disable-xkb.patch;patch=1"
+
+CFLAGS += "-D_GNU_SOURCE"
+EXTRA_OECONF = "--disable-xkb"
diff --git a/packages/xorg-driver/xf86-input-keyboard_1.2.2.bb b/packages/xorg-driver/xf86-input-keyboard_1.2.2.bb
new file mode 100644
index 0000000000..b4ef6c683e
--- /dev/null
+++ b/packages/xorg-driver/xf86-input-keyboard_1.2.2.bb
@@ -0,0 +1,7 @@
+require xorg-driver-input.inc
+PE = "1"
+
+#DESCRIPTION = ""
+
+DEPENDS += " kbproto"
+
diff --git a/packages/xorg-lib/libxcursor_1.1.9.bb b/packages/xorg-lib/libxcursor_1.1.9.bb
new file mode 100644
index 0000000000..620ab4a39b
--- /dev/null
+++ b/packages/xorg-lib/libxcursor_1.1.9.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X cursor management library"
+LICENSE= "BSD-X"
+DEPENDS += "libxrender libxfixes"
+PE = "1"
+
+XORG_PN = "libXcursor"
diff --git a/packages/xorg-lib/libxfont_1.3.1.bb b/packages/xorg-lib/libxfont_1.3.1.bb
new file mode 100644
index 0000000000..b65c84f586
--- /dev/null
+++ b/packages/xorg-lib/libxfont_1.3.1.bb
@@ -0,0 +1,11 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 font rasterisation library"
+LICENSE= "BSD-X"
+DEPENDS += "freetype fontcacheproto xtrans fontsproto libfontenc"
+PROVIDES = "xfont"
+PE = "1"
+
+SRC_URI += "file://no-scalable-crash.patch;patch=1"
+
+XORG_PN = "libXfont"
diff --git a/packages/xorg-lib/libxi_1.1.3.bb b/packages/xorg-lib/libxi_1.1.3.bb
new file mode 100644
index 0000000000..492d62af89
--- /dev/null
+++ b/packages/xorg-lib/libxi_1.1.3.bb
@@ -0,0 +1,7 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Input extension library"
+DEPENDS += "libxext inputproto"
+PE = "1"
+
+XORG_PN = "libXi"
diff --git a/packages/xorg-lib/libxrandr_1.2.2.bb b/packages/xorg-lib/libxrandr_1.2.2.bb
new file mode 100644
index 0000000000..5a8ffb2b51
--- /dev/null
+++ b/packages/xorg-lib/libxrandr_1.2.2.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Resize and Rotate extension library"
+LICENSE = "BSD-X"
+DEPENDS += "randrproto libxrender libxext"
+PE = "1"
+
+XORG_PN = "libXrandr"
diff --git a/packages/xorg-lib/libxrender_0.9.4.bb b/packages/xorg-lib/libxrender_0.9.4.bb
new file mode 100644
index 0000000000..ccf7b667f6
--- /dev/null
+++ b/packages/xorg-lib/libxrender_0.9.4.bb
@@ -0,0 +1,8 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Rendering Extension client library"
+LICENSE = "BSD-X"
+DEPENDS += "virtual/libx11 renderproto xproto"
+PE = "1"
+
+XORG_PN = "libXrender"
diff --git a/packages/xorg-lib/libxxf86dga_1.0.2.bb b/packages/xorg-lib/libxxf86dga_1.0.2.bb
new file mode 100644
index 0000000000..931f0d9d13
--- /dev/null
+++ b/packages/xorg-lib/libxxf86dga_1.0.2.bb
@@ -0,0 +1,7 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "X11 Direct Graphics Access extension library"
+DEPENDS += "libxext xf86dgaproto"
+PE = "1"
+
+XORG_PN = "libXxf86dga"
diff --git a/packages/xorg-lib/pixman-0.9.5/.mtn2git_empty b/packages/xorg-lib/pixman-0.9.5/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xorg-lib/pixman-0.9.5/.mtn2git_empty
diff --git a/packages/xorg-lib/pixman-0.9.5/dont-copy-unused-bits-to-alpha-channel.patch b/packages/xorg-lib/pixman-0.9.5/dont-copy-unused-bits-to-alpha-channel.patch
new file mode 100644
index 0000000000..05fe829a82
--- /dev/null
+++ b/packages/xorg-lib/pixman-0.9.5/dont-copy-unused-bits-to-alpha-channel.patch
@@ -0,0 +1,29 @@
+From: Carl Worth <cworth@cworth.org>
+
+Don't copy unused bits to an alpha channel
+
+This bug was identified by cairo's rgb24-ignore-alpha test which
+blends RGB24 over ARGB32 and notices that "alpha" values are
+making it from the source to the destination.
+
+Index: a/pixman/pixman-pict.c
+===================================================================
+--- a/pixman/pixman-pict.c b8b7b767b3ed1fc57ba177c38187e1eb3daf4de8
++++ b/pixman/pixman-pict.c c7d73fc532c2da313041906ac0f48dba1b10d3bc
+@@ -1778,7 +1778,6 @@ pixman_image_composite (pixman_op_t
+ break;
+ case PIXMAN_x8r8g8b8:
+ switch (pDst->bits.format) {
+- case PIXMAN_a8r8g8b8:
+ case PIXMAN_x8r8g8b8:
+ #ifdef USE_MMX
+ if (pixman_have_mmx())
+@@ -1790,7 +1789,6 @@ pixman_image_composite (pixman_op_t
+ }
+ case PIXMAN_x8b8g8r8:
+ switch (pDst->bits.format) {
+- case PIXMAN_a8b8g8r8:
+ case PIXMAN_x8b8g8r8:
+ #ifdef USE_MMX
+ if (pixman_have_mmx())
+
diff --git a/packages/xorg-lib/pixman_0.9.5.bb b/packages/xorg-lib/pixman_0.9.5.bb
new file mode 100644
index 0000000000..5183084167
--- /dev/null
+++ b/packages/xorg-lib/pixman_0.9.5.bb
@@ -0,0 +1,6 @@
+require xorg-lib-common.inc
+
+DESCRIPTION = "Library for lowlevel pixel operations"
+DEPENDS = "virtual/libx11"
+
+SRC_URI += "file://dont-copy-unused-bits-to-alpha-channel.patch;patch=1"
diff --git a/packages/xorg-proto/inputproto_1.4.2.1.bb b/packages/xorg-proto/inputproto_1.4.2.1.bb
new file mode 100644
index 0000000000..3637929316
--- /dev/null
+++ b/packages/xorg-proto/inputproto_1.4.2.1.bb
@@ -0,0 +1,3 @@
+require xorg-proto-common.inc
+
+PE = "1"
diff --git a/packages/xorg-proto/renderproto_0.9.3.bb b/packages/xorg-proto/renderproto_0.9.3.bb
new file mode 100644
index 0000000000..3d20b24afd
--- /dev/null
+++ b/packages/xorg-proto/renderproto_0.9.3.bb
@@ -0,0 +1,4 @@
+require xorg-proto-common.inc
+
+CONFLICTS = "renderext"
+PE = "1"
diff --git a/packages/xorg-proto/xf86dgaproto_2.0.3.bb b/packages/xorg-proto/xf86dgaproto_2.0.3.bb
new file mode 100644
index 0000000000..2e0e734858
--- /dev/null
+++ b/packages/xorg-proto/xf86dgaproto_2.0.3.bb
@@ -0,0 +1,5 @@
+require xorg-proto-common.inc
+
+CONFLICTS = "xxf86dgaext"
+PR = "r1"
+PE = "1"
diff --git a/packages/xorg-xserver/xserver-kdrive-1.1.0/.mtn2git_empty b/packages/xorg-xserver/xserver-kdrive-1.1.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.1.0/.mtn2git_empty
diff --git a/packages/xorg-xserver/xserver-kdrive-1.1.0/enable-epson.patch b/packages/xorg-xserver/xserver-kdrive-1.1.0/enable-epson.patch
new file mode 100644
index 0000000000..63b13a4511
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.1.0/enable-epson.patch
@@ -0,0 +1,11 @@
+--- /tmp/Makefile.am 2006-08-30 09:51:21.000000000 +0200
++++ git/hw/kdrive/Makefile.am 2006-08-30 09:51:44.425780000 +0200
+@@ -4,7 +4,7 @@
+ endif
+
+ if KDRIVEFBDEV
+-FBDEV_SUBDIRS = fbdev
++FBDEV_SUBDIRS = fbdev epson
+ endif
+
+ if XSDLSERVER
diff --git a/packages/xorg-xserver/xserver-kdrive/enable-tslib.patch b/packages/xorg-xserver/xserver-kdrive-1.1.0/enable-tslib.patch
index e488657b74..e488657b74 100644
--- a/packages/xorg-xserver/xserver-kdrive/enable-tslib.patch
+++ b/packages/xorg-xserver/xserver-kdrive-1.1.0/enable-tslib.patch
diff --git a/packages/xorg-xserver/xserver-kdrive-1.1.0/optional-xkb.patch b/packages/xorg-xserver/xserver-kdrive-1.1.0/optional-xkb.patch
new file mode 100644
index 0000000000..d9ef51c5ba
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.1.0/optional-xkb.patch
@@ -0,0 +1,54 @@
+--- git/Makefile.am.orig 2006-06-09 16:01:51.000000000 +0200
++++ git/Makefile.am 2006-06-09 16:02:59.000000000 +0200
+@@ -35,6 +35,10 @@
+ XINPUT_DIR=Xi
+ endif
+
++if XKB
++XKB_DIR=xkb
++endif
++
+ if DBE
+ DBE_DIR=dbe
+ endif
+@@ -51,7 +55,7 @@
+ randr \
+ render \
+ $(XINPUT_DIR) \
+- xkb \
++ $(XKB_DIR) \
+ $(DBE_DIR) \
+ $(MFB_DIR) \
+ $(AFB_DIR) \
+--- git/configure.ac.orig 2006-05-22 22:40:00.000000000 +0200
++++ git/configure.ac 2006-06-10 15:10:14.000000000 +0200
+@@ -418,6 +418,7 @@
+ AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
+ AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMS=$enableval], [DPMSExtension=yes])
+ AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
++AC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Build XKB (default: enabled)]), [XKB=$enableval], [XKB=yes])
+
+ dnl DDXes.
+ AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
+@@ -739,12 +740,15 @@
+
+ AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
+
+-AC_DEFINE(XKB, 1, [Build XKB])
+-AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
+-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
+-REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
+-XKB_LIB='$(top_builddir)/xkb/libxkb.la'
+-XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
++AM_CONDITIONAL(XKB, [test "x$XKB" = xyes])
++if test "x$XKB" = xyes; then
++ AC_DEFINE(XKB, 1, [Build XKB])
++ AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
++ AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
++ REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
++ XKB_LIB='$(top_builddir)/xkb/libxkb.la'
++ XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
++fi
+
+ AC_CHECK_FUNC(strcasecmp, [], AC_DEFINE([NEED_STRCASECMP], 1,
+ [Do not have `strcasecmp'.]))
diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch
deleted file mode 100644
index c160cd41dc..0000000000
--- a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch
+++ /dev/null
@@ -1,307 +0,0 @@
-diff -u -r xorg-server-X11R7.1-1.1.0.orig/dix/window.c xorg-server-X11R7.1-1.1.0/dix/window.c
---- xorg-server-X11R7.1-1.1.0.orig/dix/window.c 2007-01-08 14:30:38.000000000 +0000
-+++ xorg-server-X11R7.1-1.1.0/dix/window.c 2007-01-16 17:16:19.000000000 +0000
-@@ -185,6 +185,8 @@
- _X_EXPORT int numSaveUndersViewable = 0;
- _X_EXPORT int deltaSaveUndersViewable = 0;
-
-+char* RootPPM = NULL;
-+
- #ifdef DEBUG
- /******
- * PrintWindowTree
-@@ -311,6 +313,115 @@
- #endif
- }
-
-+static int
-+get_int(FILE *fp)
-+{
-+ int c = 0;
-+
-+ while ((c = getc(fp)) != EOF)
-+ {
-+ if (isspace(c))
-+ continue;
-+
-+ if (c == '#')
-+ while (c = getc(fp))
-+ if (c == EOF)
-+ return 0;
-+ else if (c == '\n')
-+ break;
-+
-+ if (isdigit(c))
-+ {
-+ int val = c - '0';
-+ while ((c = getc(fp)) && isdigit(c))
-+ val = (val * 10) + (c - '0');
-+ return val;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+static unsigned char*
-+ppm_load (const char* path, int depth, int *width, int *height)
-+{
-+ FILE *fp;
-+ int max, n = 0, w, h, i, j, bytes_per_line;
-+ unsigned char *data, *res, h1, h2;
-+
-+ if (depth < 16 || depth > 32)
-+ return NULL;
-+
-+ if (depth > 16)
-+ depth = 32;
-+
-+ fp = fopen (path, "r");
-+ if (fp == NULL)
-+ return FALSE;
-+
-+ h1 = getc(fp);
-+ h2 = getc(fp);
-+
-+ /* magic is 'P6' for raw ppm */
-+ if (h1 != 'P' && h2 != '6')
-+ goto fail;
-+
-+ w = get_int(fp);
-+ h = get_int(fp);
-+
-+ if (w == 0 || h == 0)
-+ goto fail;
-+
-+ max = get_int(fp);
-+
-+ if (max != 255)
-+ goto fail;
-+
-+ bytes_per_line = ((w * depth + 31) >> 5) << 2;
-+
-+ res = data = malloc(bytes_per_line * h);
-+
-+ for (i=0; i<h; i++)
-+ {
-+ for (j=0; j<w; j++)
-+ {
-+ unsigned char buf[3];
-+ fread(buf, 1, 3, fp);
-+
-+ switch (depth)
-+ {
-+ case 24:
-+ case 32:
-+ *data = buf[2];
-+ *(data+1) = buf[1];
-+ *(data+2) = buf[0];
-+ data += 4;
-+ break;
-+ case 16:
-+ default:
-+ *(unsigned short*)data
-+ = ((buf[0] >> 3) << 11) | ((buf[1] >> 2) << 5) | (buf[2] >> 3);
-+ data += 2;
-+ break;
-+ }
-+ }
-+ data += (bytes_per_line - (w*(depth>>3)));
-+ }
-+
-+ data = res;
-+
-+ *width = w;
-+ *height = h;
-+
-+ fclose(fp);
-+
-+ return res;
-+
-+ fail:
-+ fclose(fp);
-+ return NULL;
-+}
-+
- static void
- MakeRootTile(WindowPtr pWin)
- {
-@@ -321,6 +432,36 @@
- register unsigned char *from, *to;
- register int i, j;
-
-+ if (RootPPM != NULL)
-+ {
-+ int w, h;
-+ unsigned char *data;
-+
-+ if ((data = ppm_load (RootPPM, pScreen->rootDepth, &w, &h)) != NULL)
-+ {
-+ pWin->background.pixmap
-+ = (*pScreen->CreatePixmap)(pScreen, w, h, pScreen->rootDepth);
-+
-+ pWin->backgroundState = BackgroundPixmap;
-+ pGC = GetScratchGC(pScreen->rootDepth, pScreen);
-+ if (!pWin->background.pixmap || !pGC)
-+ FatalError("could not create root tile");
-+
-+ ValidateGC((DrawablePtr)pWin->background.pixmap, pGC);
-+
-+ (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap,
-+ pGC,
-+ pScreen->rootDepth,
-+ 0, 0, w, h, 0, ZPixmap, (char *)data);
-+ FreeScratchGC(pGC);
-+
-+ free(data);
-+ return;
-+ }
-+ else
-+ ErrorF("Unable to load root window image.");
-+ }
-+
- pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4,
- pScreen->rootDepth);
-
-@@ -357,6 +498,7 @@
-
- }
-
-+
- WindowPtr
- AllocateWindow(ScreenPtr pScreen)
- {
-diff -u -r xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/src/kdrive.c xorg-server-X11R7.1-1.1.0/hw/kdrive/src/kdrive.c
---- xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/src/kdrive.c 2007-01-08 14:30:38.000000000 +0000
-+++ xorg-server-X11R7.1-1.1.0/hw/kdrive/src/kdrive.c 2007-01-15 17:53:06.000000000 +0000
-@@ -58,6 +58,9 @@
- { 32, 32 }
- };
-
-+int
-+ProcXFixesHideCursor (ClientPtr client) ;
-+
- #define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
-
- int kdScreenPrivateIndex;
-@@ -84,6 +87,9 @@
- KdOsFuncs *kdOsFuncs;
- extern WindowPtr *WindowTable;
-
-+extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */
-+extern char* RootPPM; /* dix/window.c */
-+
- void
- KdSetRootClip (ScreenPtr pScreen, BOOL enable)
- {
-@@ -312,6 +318,7 @@
- KdSetRootClip (pScreen, TRUE);
- if (pScreenPriv->card->cfuncs->dpms)
- (*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
-+
- return TRUE;
- }
-
-@@ -686,10 +693,14 @@
- ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
- ErrorF("-switchCmd Command to execute on vt switch\n");
- ErrorF("-nozap Don't terminate server on Ctrl+Alt+Backspace\n");
-+ ErrorF("-hide-cursor Start with cursor hidden\n");
-+ ErrorF("-root-ppm [path] Specify ppm file to use as root window background.\n");
- ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
- #ifdef PSEUDO8
- p8UseMsg ();
- #endif
-+
-+
- }
-
- int
-@@ -761,6 +772,19 @@
- kdSoftCursor = TRUE;
- return 1;
- }
-+ if (!strcmp (argv[i], "-hide-cursor"))
-+ {
-+ CursorInitiallyHidden = TRUE;
-+ return 1;
-+ }
-+ if (!strcmp (argv[i], "-root-ppm"))
-+ {
-+ if ((i+1) < argc)
-+ RootPPM = argv[i+1];
-+ else
-+ UseMsg ();
-+ return 2;
-+ }
- if (!strcmp (argv[i], "-videoTest"))
- {
- kdVideoTest = TRUE;
-diff -u -r xorg-server-X11R7.1-1.1.0.orig/xfixes/cursor.c xorg-server-X11R7.1-1.1.0/xfixes/cursor.c
---- xorg-server-X11R7.1-1.1.0.orig/xfixes/cursor.c 2007-01-08 14:30:38.000000000 +0000
-+++ xorg-server-X11R7.1-1.1.0/xfixes/cursor.c 2007-01-11 16:33:00.000000000 +0000
-@@ -59,9 +59,12 @@
- static RESTYPE CursorWindowType;
- static int CursorScreenPrivateIndex = -1;
- static int CursorGeneration;
-+static Bool CursorGloballyHidden;
- static CursorPtr CursorCurrent;
- static CursorPtr pInvisibleCursor = NULL;
-
-+Bool CursorInitiallyHidden = FALSE;
-+
- static void deleteCursorHideCountsForScreen (ScreenPtr pScreen);
-
- #define VERIFY_CURSOR(pCursor, cursor, client, access) { \
-@@ -130,7 +133,7 @@
-
- Unwrap (cs, pScreen, DisplayCursor);
-
-- if (cs->pCursorHideCounts != NULL) {
-+ if (cs->pCursorHideCounts != NULL || CursorGloballyHidden) {
- ret = (*pScreen->DisplayCursor) (pScreen, pInvisibleCursor);
- } else {
- ret = (*pScreen->DisplayCursor) (pScreen, pCursor);
-@@ -848,6 +851,12 @@
- return BadWindow;
- }
-
-+ /* Is cursor set to be initially hidden ?, if so reset this
-+ * flag as now visibility assumed under control of client.
-+ */
-+ if (CursorGloballyHidden)
-+ CursorGloballyHidden = FALSE;
-+
- /*
- * Has client hidden the cursor before on this screen?
- * If so, just increment the count.
-@@ -899,9 +908,19 @@
- return BadWindow;
- }
-
-+ /* X was started with cursor hidden, therefore just reset our flag
-+ * (returning to normal client control) and cause cursor to now be
-+ * shown.
-+ */
-+ if (CursorGloballyHidden == TRUE)
-+ {
-+ CursorGloballyHidden = FALSE;
-+ return (client->noClientException);
-+ }
-+
- /*
- * Has client hidden the cursor on this screen?
-- * If not, generate an error.
-+ * If so, generate an error.
- */
- pChc = findCursorHideCount(client, pWin->drawable.pScreen);
- if (pChc == NULL) {
-@@ -1009,6 +1028,8 @@
- XFixesCursorInit (void)
- {
- int i;
-+
-+ CursorGloballyHidden = CursorInitiallyHidden;
-
- if (CursorGeneration != serverGeneration)
- {
diff --git a/packages/xorg-xserver/xserver-kdrive-1.4/.mtn2git_empty b/packages/xorg-xserver/xserver-kdrive-1.4/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.4/.mtn2git_empty
diff --git a/packages/xorg-xserver/xserver-kdrive-1.4/disable-xf86-dga-xorgcfg.patch b/packages/xorg-xserver/xserver-kdrive-1.4/disable-xf86-dga-xorgcfg.patch
new file mode 100644
index 0000000000..ccc19139c8
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.4/disable-xf86-dga-xorgcfg.patch
@@ -0,0 +1,39 @@
+Index: xorg-server-1.3.0.0/configure.ac
+===================================================================
+--- xorg-server-1.3.0.0.orig/configure.ac 2007-04-20 03:23:40.000000000 +0200
++++ xorg-server-1.3.0.0/configure.ac 2007-05-09 16:51:34.000000000 +0200
+@@ -520,7 +520,11 @@
+ XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la'
+
+ dnl Core modules for most extensions, et al.
++if test "$KDRIVE" = yes; then
++REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto [kbproto >= 1.0.3]"
++else
+ REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86miscproto xf86vidmodeproto xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto xf86dgaproto [kbproto >= 1.0.3]"
++fi
+ REQUIRED_LIBS="xfont xau fontenc"
+
+ AM_CONDITIONAL(XV, [test "x$XV" = xyes])
+@@ -1603,7 +1607,9 @@
+ AC_SUBST(XKB_COMPILED_DIR)
+
+ dnl and the rest of these are generic, so they're in config.h
++if test ! x"$KDRIVE" = xyes; then
+ AC_DEFINE(XFreeXDGA, 1, [Build XDGA support])
++fi
+ AC_DEFINE(XResExtension, 1, [Build XRes extension])
+
+ AC_TRY_COMPILE([
+@@ -1616,10 +1622,12 @@
+
+ AC_DEFINE_DIR(PROJECTROOT, prefix, [Overall prefix])
+
++if test ! "x$KDRIVE" = xyes ; then
+ dnl xorgconfig CLI configuration utility
+ PKG_CHECK_MODULES([XORGCONFIG_DEP], [xkbfile x11])
+ AC_SUBST(XORGCONFIG_DEP_CFLAGS)
+ AC_SUBST(XORGCONFIG_DEP_LIBS)
++fi
+
+ dnl xorgcfg GUI configuration utility
+ AC_ARG_ENABLE(xorgcfg, AS_HELP_STRING([--enable-xorgcfg],
diff --git a/packages/xorg-xserver/xserver-kdrive-1.4/enable-tslib.patch b/packages/xorg-xserver/xserver-kdrive-1.4/enable-tslib.patch
new file mode 100644
index 0000000000..3746be5f53
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.4/enable-tslib.patch
@@ -0,0 +1,24 @@
+Index: xorg-server-1.4/configure.ac
+===================================================================
+--- xorg-server-1.4.orig/configure.ac 2007-09-08 16:36:37.000000000 +0200
++++ xorg-server-1.4/configure.ac 2007-09-08 16:38:10.000000000 +0200
+@@ -1816,7 +1816,7 @@
+ AC_CHECK_LIB([rt], [nanosleep], XEPHYR_LIBS="$XEPHYR_LIBS -lrt"))
+
+ if test "x$TSLIB" = xyes; then
+- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
++ PKG_CHECK_MODULES([TSLIB], [tslib-1.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
+ if test "x$HAVE_TSLIB" = xno; then
+ AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/])
+ fi
+@@ -1840,8 +1840,8 @@
+ ;;
+ esac
+ KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a'
+- KDRIVE_LOCAL_LIBS="$DIX_LIB $CONFIG_LIB $KDRIVE_LIB $TSLIB_LIBS $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB"
+- KDRIVE_LIBS="$XSERVERLIBS_LIBS $KDRIVE_LOCAL_LIBS"
++ KDRIVE_LOCAL_LIBS="$DIX_LIB $CONFIG_LIB $KDRIVE_LIB $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB"
++ KDRIVE_LIBS="$XSERVERLIBS_LIBS $TSLIB_LIBS $KDRIVE_LOCAL_LIBS"
+
+ # check if we can build Xephyr
+ PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"])
diff --git a/packages/xorg-xserver/xserver-kdrive-1.4/enable-xcalibrate.patch b/packages/xorg-xserver/xserver-kdrive-1.4/enable-xcalibrate.patch
new file mode 100644
index 0000000000..113f1cc584
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.4/enable-xcalibrate.patch
@@ -0,0 +1,77 @@
+---
+ Xext/Makefile.am | 6 ++++++
+ configure.ac | 9 ++++++++-
+ include/kdrive-config.h.in | 3 +++
+ mi/miinitext.c | 6 ++++++
+ 4 files changed, 23 insertions(+), 1 deletion(-)
+
+Index: xorg-server-1.4/mi/miinitext.c
+===================================================================
+--- xorg-server-1.4.orig/mi/miinitext.c 2007-08-23 21:04:54.000000000 +0200
++++ xorg-server-1.4/mi/miinitext.c 2007-09-06 23:25:35.000000000 +0200
+@@ -374,6 +374,9 @@
+ #ifdef DMXEXT
+ extern void DMXExtensionInit(INITARGS);
+ #endif
++#ifdef XCALIBRATE
++extern void XCalibrateExtensionInit(INITARGS);
++#endif
+ #ifdef XEVIE
+ extern void XevieExtensionInit(INITARGS);
+ #endif
+@@ -666,6 +669,9 @@
+ #ifdef DAMAGE
+ if (!noDamageExtension) DamageExtensionInit();
+ #endif
++#ifdef XCALIBRATE
++ XCalibrateExtensionInit ();
++#endif
+ }
+
+ void
+Index: xorg-server-1.4/configure.ac
+===================================================================
+--- xorg-server-1.4.orig/configure.ac 2007-09-06 23:25:15.000000000 +0200
++++ xorg-server-1.4/configure.ac 2007-09-06 23:26:40.000000000 +0200
+@@ -500,6 +500,7 @@
+ AC_ARG_ENABLE(xf86misc, AS_HELP_STRING([--disable-xf86misc], [Build XF86Misc extension (default: auto)]), [XF86MISC=$enableval], [XF86MISC=auto])
+ AC_ARG_ENABLE(xace, AS_HELP_STRING([--disable-xace], [Build X-ACE extension (default: enabled)]), [XACE=$enableval], [XACE=yes])
+ AC_ARG_ENABLE(xcsecurity, AS_HELP_STRING([--disable-xcsecurity], [Build Security extension (default: enabled)]), [XCSECURITY=$enableval], [XCSECURITY=$XACE])
++AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no])
+ AC_ARG_ENABLE(appgroup, AS_HELP_STRING([--disable-appgroup], [Build XC-APPGROUP extension (default: enabled)]), [APPGROUP=$enableval], [APPGROUP=$XCSECURITY])
+ AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no])
+ AC_ARG_ENABLE(tslib, AS_HELP_STRING([--enable-tslib], [Build kdrive tslib touchscreen support (default: disabled)]), [TSLIB=$enableval], [TSLIB=no])
+@@ -787,6 +788,12 @@
+ AC_DEFINE(XCSECURITY, 1, [Build Security extension])
+ fi
+
++AM_CONDITIONAL(XCALIBRATE, [test "x$XCALIBRATE" = xyes])
++if test "x$XCALIBRATE" = xyes; then
++ AC_DEFINE(XCALIBRATE, 1, [Build XCalibrate extension])
++ REQUIRED_MODULES="$REQUIRED_MODULES xcalibrateproto"
++fi
++
+ AM_CONDITIONAL(XEVIE, [test "x$XEVIE" = xyes])
+ if test "x$XEVIE" = xyes; then
+ AC_DEFINE(XEVIE, 1, [Build XEvIE extension])
+@@ -1841,7 +1848,7 @@
+ ;;
+ esac
+ KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a'
+- KDRIVE_LOCAL_LIBS="$DIX_LIB $CONFIG_LIB $KDRIVE_LIB $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB"
++ KDRIVE_LOCAL_LIBS="$DIX_LIB $CONFIG_LIB $KDRIVE_LIB $KDRIVE_PURE_LIBS $KDRIVE_OS_LIB $KDRIVE_STUB_LIB"
+ KDRIVE_LIBS="$XSERVERLIBS_LIBS $TSLIB_LIBS $KDRIVE_LOCAL_LIBS"
+
+ # check if we can build Xephyr
+Index: xorg-server-1.4/include/kdrive-config.h.in
+===================================================================
+--- xorg-server-1.4.orig/include/kdrive-config.h.in 2007-08-23 21:04:54.000000000 +0200
++++ xorg-server-1.4/include/kdrive-config.h.in 2007-09-06 23:25:35.000000000 +0200
+@@ -31,4 +31,7 @@
+ /* Have execinfo.h for backtrace(). */
+ #undef HAVE_EXECINFO_H
+
++/* Enable XCalibrate extension */
++#undef XCALIBRATE
++
+ #endif /* _KDRIVE_CONFIG_H_ */
diff --git a/packages/xorg-xserver/xserver-kdrive-1.4/w100-autofoo.patch b/packages/xorg-xserver/xserver-kdrive-1.4/w100-autofoo.patch
new file mode 100644
index 0000000000..0812a2e856
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-1.4/w100-autofoo.patch
@@ -0,0 +1,54 @@
+Index: xorg-server-1.4/hw/kdrive/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/Makefile.am 2007-09-06 23:32:04.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/Makefile.am 2007-09-06 23:33:44.000000000 +0200
+@@ -11,6 +11,10 @@
+ XFAKE_SUBDIRS = fake
+ endif
+
++if KDRIVEW100
++W100_SUBDIRS = w100
++endif
++
+ if XSDLSERVER
+ XSDL_SUBDIRS = sdl
+ endif
+@@ -26,6 +30,7 @@
+ SERVER_SUBDIRS = \
+ $(XSDL_SUBDIRS) \
+ $(FBDEV_SUBDIRS) \
++ $(W100_SUBDIRS) \
+ $(VESA_SUBDIRS) \
+ $(XEPHYR_SUBDIRS) \
+ $(XFAKE_SUBDIRS)
+Index: xorg-server-1.4/configure.ac
+===================================================================
+--- xorg-server-1.4.orig/configure.ac 2007-09-06 23:32:05.000000000 +0200
++++ xorg-server-1.4/configure.ac 2007-09-06 23:34:41.000000000 +0200
+@@ -535,6 +535,7 @@
+ AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
+ AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
+ AC_ARG_ENABLE(xsdl, AS_HELP_STRING([--enable-xsdl], [Build the kdrive Xsdl server (default: auto)]), [XSDL=$enableval], [XSDL=auto])
++AC_ARG_ENABLE(w100, AS_HELP_STRING([--enable-w100], [Build the kdrive Xw100 server (default: no)]), [KDRIVEW100=$enableval], [KDRIVEW100=no])
+ AC_ARG_ENABLE(xfake, AS_HELP_STRING([--enable-xfake], [Build the kdrive 'fake' server (default: auto)]), [XFAKE=$enableval], [XFAKE=auto])
+ AC_ARG_ENABLE(xfbdev, AS_HELP_STRING([--enable-xfbdev], [Build the kdrive framebuffer device server (default: auto)]), [XFBDEV=$enableval], [XFBDEV=auto])
+ AC_ARG_ENABLE(kdrive-vesa, AS_HELP_STRING([--enable-kdrive-vesa], [Build the kdrive VESA-based servers (default: auto)]), [KDRIVEVESA=$enableval], [KDRIVEVESA=auto])
+@@ -1669,6 +1670,10 @@
+ fi
+ AM_CONDITIONAL(XP_USE_FREETYPE, [test "x$XPRINT" = xyes && test "x$XP_USE_FREETYPE" = xyes])
+
++AM_CONDITIONAL(KDRIVEW100, [test "x$KDRIVEW100" = xyes])
++if test "x$KDRIVEW100" = xyes; then
++ AC_DEFINE(KDRIVEW100, 1, [Build Xw100 server])
++fi
+
+ dnl XWin DDX
+
+@@ -2112,6 +2117,7 @@
+ hw/kdrive/epson/Makefile
+ hw/kdrive/fake/Makefile
+ hw/kdrive/fbdev/Makefile
++hw/kdrive/w100/Makefile
+ hw/kdrive/i810/Makefile
+ hw/kdrive/linux/Makefile
+ hw/kdrive/mach64/Makefile
diff --git a/packages/xorg-xserver/xserver-kdrive-common.inc b/packages/xorg-xserver/xserver-kdrive-common.inc
index e46abe3fe8..b0d5e39813 100644
--- a/packages/xorg-xserver/xserver-kdrive-common.inc
+++ b/packages/xorg-xserver/xserver-kdrive-common.inc
@@ -92,13 +92,8 @@ KDRIVE_COMMON_PATCHES = " \
file://kmode.patch;patch=1 \
file://disable-apm.patch;patch=1 \
file://no-serial-probing.patch;patch=1 \
- file://kdrive-evdev.patch;patch=1 \
- file://kdrive-use-evdev.patch;patch=1 \
file://fbdev-not-fix.patch;patch=1 \
- file://enable-builtin-fonts.patch;patch=1 \
- file://disable-xf86-dga-xorgcfg.patch;patch=1 \
file://optional-xkb.patch;patch=1 \
- file://enable-epson.patch;patch=1 \
file://enable-tslib.patch;patch=1 \
file://kmode-palm.patch;patch=1 \
"
@@ -119,7 +114,7 @@ EXTRA_OECONF = "--enable-composite --enable-kdrive \
--disable-xorg --disable-xorgcfg \
--disable-xkb --disable-xnest --disable-xvfb \
--disable-xevie --disable-xprint --disable-xtrap \
- --disable-dmx \
+ --disable-dmx ${W100_OECONF} \
--with-default-font-path=built-ins \
--enable-tslib --enable-xcalibrate \
ac_cv_file__usr_share_X11_sgml_defs_ent=no"
diff --git a/packages/xorg-xserver/xserver-kdrive-git/.mtn2git_empty b/packages/xorg-xserver/xserver-kdrive-git/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-git/.mtn2git_empty
diff --git a/packages/xorg-xserver/xserver-kdrive-git/enable-epson.patch b/packages/xorg-xserver/xserver-kdrive-git/enable-epson.patch
new file mode 100644
index 0000000000..23988cb815
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-git/enable-epson.patch
@@ -0,0 +1,17 @@
+Index: git/hw/kdrive/Makefile.am
+===================================================================
+--- git.orig/hw/kdrive/Makefile.am 2007-09-08 23:24:21.000000000 +0200
++++ git/hw/kdrive/Makefile.am 2007-09-08 23:24:31.000000000 +0200
+@@ -1,10 +1,10 @@
+ if KDRIVEVESA
+-VESA_SUBDIRS = vesa ati chips epson i810 mach64 mga nvidia pm2 r128 \
++VESA_SUBDIRS = vesa ati chips i810 mach64 mga nvidia pm2 r128 \
+ smi via
+ endif
+
+ if BUILD_KDRIVEFBDEVLIB
+-FBDEV_SUBDIRS = fbdev
++FBDEV_SUBDIRS = fbdev epson
+ endif
+
+ if XFAKESERVER
diff --git a/packages/xorg-xserver/xserver-kdrive-git/enable-tslib.patch b/packages/xorg-xserver/xserver-kdrive-git/enable-tslib.patch
new file mode 100644
index 0000000000..bbb4a60a16
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-git/enable-tslib.patch
@@ -0,0 +1,26 @@
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2007-09-08 22:17:11.000000000 +0200
++++ git/configure.ac 2007-09-08 22:32:45.000000000 +0200
+@@ -1834,7 +1834,7 @@
+ AC_CHECK_LIB([rt], [nanosleep], XEPHYR_LIBS="$XEPHYR_LIBS -lrt"))
+
+ if test "x$TSLIB" = xyes; then
+- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
++ PKG_CHECK_MODULES([TSLIB], [tslib-1.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
+ if test "x$HAVE_TSLIB" = xno; then
+ AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/])
+ fi
+@@ -1858,10 +1858,10 @@
+ ;;
+ esac
+ KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a'
+- KDRIVE_LOCAL_LIBS="$TSLIB_LIBS $DIX_LIB $KDRIVE_LIB $KDRIVE_STUB_LIB $CONFIG_LIB"
++ KDRIVE_LOCAL_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_STUB_LIB $CONFIG_LIB"
+ KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $FB_LIB $MI_LIB $KDRIVE_PURE_LIBS"
+ KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $KDRIVE_OS_LIB $OS_LIB"
+- KDRIVE_LIBS="$KDRIVE_LOCAL_LIBS $XSERVERLIBS_LIBS"
++ KDRIVE_LIBS="$TSLIB_LIBS $KDRIVE_LOCAL_LIBS $XSERVERLIBS_LIBS"
+
+ # check if we can build Xephyr
+ PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"])
diff --git a/packages/xorg-xserver/xserver-kdrive-git/enable-xcalibrate.patch b/packages/xorg-xserver/xserver-kdrive-git/enable-xcalibrate.patch
new file mode 100644
index 0000000000..ffd46fb58c
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-git/enable-xcalibrate.patch
@@ -0,0 +1,68 @@
+---
+ Xext/Makefile.am | 6 ++++++
+ configure.ac | 9 ++++++++-
+ include/kdrive-config.h.in | 3 +++
+ mi/miinitext.c | 6 ++++++
+ 4 files changed, 23 insertions(+), 1 deletion(-)
+
+Index: git/mi/miinitext.c
+===================================================================
+--- git.orig/mi/miinitext.c 2007-09-08 22:17:19.000000000 +0200
++++ git/mi/miinitext.c 2007-09-08 22:37:51.000000000 +0200
+@@ -374,6 +374,9 @@
+ #ifdef DMXEXT
+ extern void DMXExtensionInit(INITARGS);
+ #endif
++#ifdef XCALIBRATE
++extern void XCalibrateExtensionInit(INITARGS);
++#endif
+ #ifdef XEVIE
+ extern void XevieExtensionInit(INITARGS);
+ #endif
+@@ -666,6 +669,9 @@
+ #ifdef DAMAGE
+ if (!noDamageExtension) DamageExtensionInit();
+ #endif
++#ifdef XCALIBRATE
++ XCalibrateExtensionInit ();
++#endif
+ }
+
+ void
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2007-09-08 22:37:43.000000000 +0200
++++ git/configure.ac 2007-09-08 22:38:36.000000000 +0200
+@@ -505,6 +505,7 @@
+ AC_ARG_ENABLE(xf86misc, AS_HELP_STRING([--disable-xf86misc], [Build XF86Misc extension (default: auto)]), [XF86MISC=$enableval], [XF86MISC=auto])
+ AC_ARG_ENABLE(xace, AS_HELP_STRING([--disable-xace], [Build X-ACE extension (default: enabled)]), [XACE=$enableval], [XACE=yes])
+ AC_ARG_ENABLE(xcsecurity, AS_HELP_STRING([--disable-xcsecurity], [Build Security extension (default: enabled)]), [XCSECURITY=$enableval], [XCSECURITY=$XACE])
++AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no])
+ AC_ARG_ENABLE(appgroup, AS_HELP_STRING([--disable-appgroup], [Build XC-APPGROUP extension (default: enabled)]), [APPGROUP=$enableval], [APPGROUP=$XCSECURITY])
+ AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no])
+ AC_ARG_ENABLE(tslib, AS_HELP_STRING([--enable-tslib], [Build kdrive tslib touchscreen support (default: disabled)]), [TSLIB=$enableval], [TSLIB=no])
+@@ -833,6 +834,12 @@
+ AC_DEFINE(XCSECURITY, 1, [Build Security extension])
+ fi
+
++AM_CONDITIONAL(XCALIBRATE, [test "x$XCALIBRATE" = xyes])
++if test "x$XCALIBRATE" = xyes; then
++ AC_DEFINE(XCALIBRATE, 1, [Build XCalibrate extension])
++ REQUIRED_MODULES="$REQUIRED_MODULES xcalibrateproto"
++fi
++
+ AM_CONDITIONAL(XEVIE, [test "x$XEVIE" = xyes])
+ if test "x$XEVIE" = xyes; then
+ AC_DEFINE(XEVIE, 1, [Build XEvIE extension])
+Index: git/include/kdrive-config.h.in
+===================================================================
+--- git.orig/include/kdrive-config.h.in 2007-09-08 22:17:19.000000000 +0200
++++ git/include/kdrive-config.h.in 2007-09-08 22:37:51.000000000 +0200
+@@ -31,4 +31,7 @@
+ /* Have execinfo.h for backtrace(). */
+ #undef HAVE_EXECINFO_H
+
++/* Enable XCalibrate extension */
++#undef XCALIBRATE
++
+ #endif /* _KDRIVE_CONFIG_H_ */
diff --git a/packages/xorg-xserver/xserver-kdrive-git/w100-autofoo.patch b/packages/xorg-xserver/xserver-kdrive-git/w100-autofoo.patch
new file mode 100644
index 0000000000..16c0352697
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-git/w100-autofoo.patch
@@ -0,0 +1,54 @@
+Index: git/hw/kdrive/Makefile.am
+===================================================================
+--- git.orig/hw/kdrive/Makefile.am 2007-09-08 22:17:12.000000000 +0200
++++ git/hw/kdrive/Makefile.am 2007-09-08 22:40:22.000000000 +0200
+@@ -11,6 +11,10 @@
+ XFAKE_SUBDIRS = fake
+ endif
+
++if KDRIVEW100
++W100_SUBDIRS = w100
++endif
++
+ if XSDLSERVER
+ XSDL_SUBDIRS = sdl
+ endif
+@@ -26,6 +30,7 @@
+ SERVER_SUBDIRS = \
+ $(XSDL_SUBDIRS) \
+ $(FBDEV_SUBDIRS) \
++ $(W100_SUBDIRS) \
+ $(VESA_SUBDIRS) \
+ $(XEPHYR_SUBDIRS) \
+ $(XFAKE_SUBDIRS)
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2007-09-08 22:39:48.000000000 +0200
++++ git/configure.ac 2007-09-08 22:40:59.000000000 +0200
+@@ -540,6 +540,7 @@
+ AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
+ AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
+ AC_ARG_ENABLE(xsdl, AS_HELP_STRING([--enable-xsdl], [Build the kdrive Xsdl server (default: auto)]), [XSDL=$enableval], [XSDL=auto])
++AC_ARG_ENABLE(w100, AS_HELP_STRING([--enable-w100], [Build the kdrive Xw100 server (default: no)]), [KDRIVEW100=$enableval], [KDRIVEW100=no])
+ AC_ARG_ENABLE(xfake, AS_HELP_STRING([--enable-xfake], [Build the kdrive 'fake' server (default: auto)]), [XFAKE=$enableval], [XFAKE=auto])
+ AC_ARG_ENABLE(xfbdev, AS_HELP_STRING([--enable-xfbdev], [Build the kdrive framebuffer device server (default: auto)]), [XFBDEV=$enableval], [XFBDEV=auto])
+ AC_ARG_ENABLE(kdrive-vesa, AS_HELP_STRING([--enable-kdrive-vesa], [Build the kdrive VESA-based servers (default: auto)]), [KDRIVEVESA=$enableval], [KDRIVEVESA=auto])
+@@ -1620,6 +1621,10 @@
+ fi
+ AM_CONDITIONAL(XP_USE_FREETYPE, [test "x$XPRINT" = xyes && test "x$XP_USE_FREETYPE" = xyes])
+
++AM_CONDITIONAL(KDRIVEW100, [test "x$KDRIVEW100" = xyes])
++if test "x$KDRIVEW100" = xyes; then
++ AC_DEFINE(KDRIVEW100, 1, [Build Xw100 server])
++fi
+
+ dnl XWin DDX
+
+@@ -2128,6 +2133,7 @@
+ hw/kdrive/epson/Makefile
+ hw/kdrive/fake/Makefile
+ hw/kdrive/fbdev/Makefile
++hw/kdrive/w100/Makefile
+ hw/kdrive/i810/Makefile
+ hw/kdrive/linux/Makefile
+ hw/kdrive/mach64/Makefile
diff --git a/packages/xorg-xserver/xserver-kdrive-git/w100-post-1.4-buildfix.patch b/packages/xorg-xserver/xserver-kdrive-git/w100-post-1.4-buildfix.patch
new file mode 100644
index 0000000000..741af64283
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-git/w100-post-1.4-buildfix.patch
@@ -0,0 +1,12 @@
+Index: git/hw/kdrive/w100/Makefile.am
+===================================================================
+--- git.orig/hw/kdrive/w100/Makefile.am 2007-09-08 23:37:42.000000000 +0200
++++ git/hw/kdrive/w100/Makefile.am 2007-09-08 23:37:43.000000000 +0200
+@@ -46,7 +46,6 @@
+
+ Xw100_LDADD = \
+ $(W100_LIBS) \
+- @XSERVER_LIBS@ \
+ $(TSLIB_FLAG)
+
+
diff --git a/packages/xorg-xserver/xserver-kdrive-git/xephyr-post-1.4-buildfix.patch b/packages/xorg-xserver/xserver-kdrive-git/xephyr-post-1.4-buildfix.patch
new file mode 100644
index 0000000000..8e7cde9641
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive-git/xephyr-post-1.4-buildfix.patch
@@ -0,0 +1,11 @@
+Index: git/hw/kdrive/ephyr/ephyr_draw.c
+===================================================================
+--- git.orig/hw/kdrive/ephyr/ephyr_draw.c 2007-09-08 23:57:03.000000000 +0200
++++ git/hw/kdrive/ephyr/ephyr_draw.c 2007-09-08 23:57:13.000000000 +0200
+@@ -520,6 +520,5 @@
+ ExaScreenPriv(pScreen);
+
+ pExaScr->migration = ExaMigrationSmart;
+- pExaScr->hideOffscreenPixmapData = TRUE;
+ pExaScr->checkDirtyCorrectness = TRUE;
+ }
diff --git a/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb b/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb
index d8a6c3d795..8ed650266b 100644
--- a/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb
+++ b/packages/xorg-xserver/xserver-kdrive-imageon_1.2.0.bb
@@ -7,11 +7,14 @@ DEPENDS += "libxkbfile libxcalibrate"
PROVIDES = "virtual/xserver"
PE = "1"
-PR = "r1"
+PR = "r2"
FILESPATH = "${FILE_DIRNAME}/xserver-kdrive-1.2.0:${FILE_DIRNAME}/xserver-kdrive"
SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
${KDRIVE_COMMON_PATCHES} \
+ file://kdrive-evdev.patch;patch=1 \
+ file://kdrive-use-evdev.patch;patch=1 \
+ file://disable-xf86-dga-xorgcfg.patch;patch=1 \
file://enable-xcalibrate.patch;patch=1 \
file://fbcompositesrc8888revnpx0565.patch;patch=1 \
file://kdrive-vidmemarea.patch;patch=1 \
@@ -21,6 +24,5 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
S = "${WORKDIR}/xorg-server-${PV}"
-IMAGEON_OECONF = "--disable-imageon"
-IMAGEON_OECONF_arm = "--enable-imageon"
+EXTRA_OECONF += "--enable-imageon"
diff --git a/packages/xorg-xserver/xserver-kdrive/build-fix-panoramix.patch b/packages/xorg-xserver/xserver-kdrive/build-fix-panoramix.patch
deleted file mode 100644
index f919b48f0e..0000000000
--- a/packages/xorg-xserver/xserver-kdrive/build-fix-panoramix.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: git/composite/compext.c
-===================================================================
---- git.orig/composite/compext.c 2007-03-28 16:25:12.000000000 +0200
-+++ git/composite/compext.c 2007-03-28 16:25:15.000000000 +0200
-@@ -696,11 +696,13 @@
- if (GetPictureScreenIfSet(pScreen) == NULL)
- return;
- }
-+#ifdef PANORAMIX
- /* Xinerama's rewriting of window drawing before Composite gets to it
- * breaks Composite.
- */
- if (!noPanoramiXExtension)
- return;
-+#endif
-
- CompositeClientWindowType = CreateNewResourceType (FreeCompositeClientWindow);
- if (!CompositeClientWindowType)
diff --git a/packages/xorg-xserver/xserver-kdrive/devfs.patch b/packages/xorg-xserver/xserver-kdrive/devfs.patch
deleted file mode 100644
index a6238126c0..0000000000
--- a/packages/xorg-xserver/xserver-kdrive/devfs.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
---- xserver/hw/kdrive/linux/linux.c~devfs
-+++ xserver/hw/kdrive/linux/linux.c
-@@ -82,10 +82,10 @@
- vtno = kdVirtualTerminal;
- else
- {
-- if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0)
-+ if ((fd = open("/dev/vc/0",O_WRONLY,0)) < 0)
- {
- FatalError(
-- "LinuxInit: Cannot open /dev/tty0 (%s)\n",
-+ "LinuxInit: Cannot open /dev/tty/0 (%s)\n",
- strerror(errno));
- }
- if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) ||
-@@ -96,7 +96,7 @@
- }
- close(fd);
-
-- sprintf(vtname,"/dev/tty%d",vtno); /* /dev/tty1-64 */
-+ sprintf(vtname,"/dev/vc/%d",vtno); /* /dev/tty1-64 */
-
- if ((LinuxConsoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) < 0)
- {
-@@ -113,7 +113,7 @@
- *
- * Why is this needed?
- */
-- LinuxCheckChown ("/dev/tty0");
-+ LinuxCheckChown ("/dev/vc/0");
- /*
- * Linux doesn't switch to an active vt after the last close of a vt,
- * so we do this ourselves by remembering which is active now.
-@@ -453,7 +453,7 @@
- activeVT = -1;
- }
- close(LinuxConsoleFd); /* make the vt-manager happy */
-- fd = open ("/dev/tty0", O_RDWR|O_NDELAY, 0);
-+ fd = open ("/dev/vc/0", O_RDWR|O_NDELAY, 0);
- if (fd >= 0)
- {
- memset (&vts, '\0', sizeof (vts)); /* valgrind */
diff --git a/packages/xorg-xserver/xserver-kdrive/enable-epson.patch b/packages/xorg-xserver/xserver-kdrive/enable-epson.patch
index 63b13a4511..0fffd71dce 100644
--- a/packages/xorg-xserver/xserver-kdrive/enable-epson.patch
+++ b/packages/xorg-xserver/xserver-kdrive/enable-epson.patch
@@ -1,11 +1,17 @@
---- /tmp/Makefile.am 2006-08-30 09:51:21.000000000 +0200
-+++ git/hw/kdrive/Makefile.am 2006-08-30 09:51:44.425780000 +0200
-@@ -4,7 +4,7 @@
+Index: xorg-server-1.4/hw/kdrive/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/Makefile.am 2007-08-30 01:48:57.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/Makefile.am 2007-09-06 23:24:29.000000000 +0200
+@@ -1,10 +1,10 @@
+ if KDRIVEVESA
+-VESA_SUBDIRS = vesa ati chips epson i810 mach64 mga nvidia pm2 r128 \
++VESA_SUBDIRS = vesa ati chips i810 mach64 mga nvidia pm2 r128 \
+ smi via
endif
- if KDRIVEFBDEV
+ if BUILD_KDRIVEFBDEVLIB
-FBDEV_SUBDIRS = fbdev
+FBDEV_SUBDIRS = fbdev epson
endif
- if XSDLSERVER
+ if XFAKESERVER
diff --git a/packages/xorg-xserver/xserver-kdrive/faster-rotated.patch b/packages/xorg-xserver/xserver-kdrive/faster-rotated.patch
deleted file mode 100644
index eaf7ddec36..0000000000
--- a/packages/xorg-xserver/xserver-kdrive/faster-rotated.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-Index: xserver/miext/shadow/shrotate.c
-===================================================================
-RCS file: /scratch/openbsd/cvs/XF4/xc/programs/Xserver/miext/shadow/shrotate.c,v
-retrieving revision 1.2
-diff -u -r1.2 shrotate.c
---- xserver/miext/shadow/shrotate.c 3 Nov 2004 00:09:54 -0000 1.2
-+++ xserver/miext/shadow/shrotate.c 20 Sep 2005 23:07:58 -0000
-@@ -45,6 +45,106 @@
- #define TOP_TO_BOTTOM 2
- #define BOTTOM_TO_TOP -2
-
-+
-+static void
-+shadowUpdateRotatePackedSubRectangle(shadowBufPtr pBuf,
-+ FbBits *shaLine, int shaFirstShift,
-+ int shaStepOverX, int shaStepOverY,
-+ int shaStepDownX, int shaStepDownY,
-+ int shaBpp, FbBits shaMask,
-+ ScreenPtr pScreen,
-+ int scr_x1, int scr_y,
-+ int scr_h, int scr_w,
-+ int pixelsPerBits)
-+{
-+ FbBits *sha;
-+ int shaShift;
-+ int scr_x;
-+ int w;
-+
-+ /*
-+ * Copy the bits, always write across the physical frame buffer
-+ * to take advantage of write combining.
-+ */
-+ while (scr_h--)
-+ {
-+ int p;
-+ FbBits bits;
-+ FbBits *win;
-+ int i;
-+ CARD32 winSize;
-+
-+ sha = shaLine;
-+ shaShift = shaFirstShift;
-+ w = scr_w;
-+ scr_x = scr_x1 * shaBpp >> FB_SHIFT;
-+
-+ while (w)
-+ {
-+ /*
-+ * Map some of this line
-+ */
-+ win = (FbBits *) (*pBuf->window) (pScreen,
-+ scr_y,
-+ scr_x << 2,
-+ SHADOW_WINDOW_WRITE,
-+ &winSize,
-+ pBuf->closure);
-+ i = (winSize >> 2);
-+ if (i > w)
-+ i = w;
-+ w -= i;
-+ scr_x += i;
-+ /*
-+ * Copy the portion of the line mapped
-+ */
-+ while (i--)
-+ {
-+ bits = 0;
-+ p = pixelsPerBits;
-+ /*
-+ * Build one word of output from multiple inputs
-+ */
-+ while (p--)
-+ {
-+ bits = FbScrLeft(bits, shaBpp);
-+ bits |= FbScrRight (*sha, shaShift) & shaMask;
-+
-+ shaShift -= shaStepOverX;
-+ if (shaShift >= FB_UNIT)
-+ {
-+ shaShift -= FB_UNIT;
-+ sha--;
-+ }
-+ else if (shaShift < 0)
-+ {
-+ shaShift += FB_UNIT;
-+ sha++;
-+ }
-+ sha += shaStepOverY;
-+ }
-+ *win++ = bits;
-+ }
-+ }
-+ scr_y++;
-+ shaFirstShift -= shaStepDownX;
-+ if (shaFirstShift >= FB_UNIT)
-+ {
-+ shaFirstShift -= FB_UNIT;
-+ shaLine--;
-+ }
-+ else if (shaFirstShift < 0)
-+ {
-+ shaFirstShift += FB_UNIT;
-+ shaLine++;
-+ }
-+ shaLine += shaStepDownY;
-+ }
-+}
-+
-+#define BLOCKSIZE_HEIGHT 32
-+#define BLOCKSIZE_WIDTH 32
-+
- void
- shadowUpdateRotatePacked (ScreenPtr pScreen,
- shadowBufPtr pBuf)
-@@ -61,7 +161,6 @@
- int sha_x1 = 0, sha_y1 = 0;
- int scr_x1 = 0, scr_x2 = 0, scr_y1 = 0, scr_y2 = 0, scr_w, scr_h;
- int scr_x, scr_y;
-- int w;
- int pixelsPerBits;
- int pixelsMask;
- FbStride shaStepOverY = 0, shaStepDownY = 0;
-@@ -221,86 +320,46 @@
- ((sha_x1 * shaBpp) >> FB_SHIFT));
-
- /*
-- * Copy the bits, always write across the physical frame buffer
-- * to take advantage of write combining.
-+ * Copy in blocks of size BLOCKSIZE_WIDTH x BLOCKSIZE_HEIGHT
-+ * to reduce the number of cache misses when rotating 90 or
-+ * 270 degrees.
- */
-- while (scr_h--)
-+ for (scr_y = scr_y1; scr_y < scr_y2; scr_y += BLOCKSIZE_HEIGHT)
- {
-- int p;
-- FbBits bits;
-- FbBits *win;
-- int i;
-- CARD32 winSize;
--
- sha = shaLine;
- shaShift = shaFirstShift;
-- w = scr_w;
-- scr_x = scr_x1 * shaBpp >> FB_SHIFT;
-
-- while (w)
-+ for (scr_x = scr_x1; scr_x < scr_x2; scr_x += BLOCKSIZE_WIDTH)
- {
-- /*
-- * Map some of this line
-- */
-- win = (FbBits *) (*pBuf->window) (pScreen,
-- scr_y,
-- scr_x << 2,
-- SHADOW_WINDOW_WRITE,
-- &winSize,
-- pBuf->closure);
-- i = (winSize >> 2);
-- if (i > w)
-- i = w;
-- w -= i;
-- scr_x += i;
-- /*
-- * Copy the portion of the line mapped
-- */
-- while (i--)
-- {
-- bits = 0;
-- p = pixelsPerBits;
-- /*
-- * Build one word of output from multiple inputs
-- *
-- * Note that for 90/270 rotations, this will walk
-- * down the shadow hitting each scanline once.
-- * This is probably not very efficient.
-- */
-- while (p--)
-- {
-- bits = FbScrLeft(bits, shaBpp);
-- bits |= FbScrRight (*sha, shaShift) & shaMask;
-+ int h = BLOCKSIZE_HEIGHT;
-+ int w = BLOCKSIZE_WIDTH;
-
-- shaShift -= shaStepOverX;
-- if (shaShift >= FB_UNIT)
-- {
-- shaShift -= FB_UNIT;
-- sha--;
-- }
-- else if (shaShift < 0)
-- {
-- shaShift += FB_UNIT;
-- sha++;
-- }
-- sha += shaStepOverY;
-- }
-- *win++ = bits;
-- }
-- }
-- scr_y++;
-- shaFirstShift -= shaStepDownX;
-- if (shaFirstShift >= FB_UNIT)
-- {
-- shaFirstShift -= FB_UNIT;
-- shaLine--;
-- }
-- else if (shaFirstShift < 0)
-- {
-- shaFirstShift += FB_UNIT;
-- shaLine++;
-+ if (scr_y + h > scr_y2)
-+ h = scr_y2 - scr_y;
-+ if (scr_x + w > scr_x2)
-+ w = scr_x2 - scr_x;
-+ w = (w * shaBpp) >> FB_SHIFT;
-+
-+ shadowUpdateRotatePackedSubRectangle
-+ (pBuf,
-+ sha, shaShift,
-+ shaStepOverX, shaStepOverY,
-+ shaStepDownX, shaStepDownY,
-+ shaBpp, shaMask,
-+ pScreen,
-+ scr_x, scr_y,
-+ h, w,
-+ pixelsPerBits);
-+
-+ shaShift -= BLOCKSIZE_WIDTH * shaStepOverX;
-+ sha += BLOCKSIZE_WIDTH * shaStepOverY;
-+ sha -= (shaShift >> FB_SHIFT);
-+ shaShift &= FB_MASK;
- }
-- shaLine += shaStepDownY;
-+ shaFirstShift -= BLOCKSIZE_HEIGHT * shaStepDownX;
-+ shaLine += BLOCKSIZE_HEIGHT * shaStepDownY;
-+ shaLine -= (shaFirstShift >> FB_SHIFT);
-+ shaFirstShift &= FB_MASK;
- }
- }
- }
diff --git a/packages/xorg-xserver/xserver-kdrive/fbdev-evdev.patch b/packages/xorg-xserver/xserver-kdrive/fbdev-evdev.patch
new file mode 100644
index 0000000000..5f9b21b627
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/fbdev-evdev.patch
@@ -0,0 +1,19 @@
+Index: xorg-server-1.4/hw/kdrive/fbdev/fbinit.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/fbdev/fbinit.c 2007-09-08 21:27:44.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/fbdev/fbinit.c 2007-09-08 21:28:55.000000000 +0200
+@@ -46,11 +46,13 @@
+
+ KdAddKeyboardDriver (&LinuxKeyboardDriver);
+ KdAddPointerDriver (&LinuxMouseDriver);
++ KdAddKeyboardDriver (&LinuxEvdevKeyboardDriver);
++ KdAddPointerDriver (&LinuxEvdevMouseDriver);
+ #ifdef TSLIB
+ KdAddPointerDriver (&TsDriver);
+ #endif
+
+- ki = KdParseKeyboard ("keybd");
++ ki = KdParseKeyboard ("keyboard");
+ KdAddKeyboard(ki);
+
+ KdInitInput ();
diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch b/packages/xorg-xserver/xserver-kdrive/fix_default_mode.patch
index edc5146302..edc5146302 100644
--- a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch
+++ b/packages/xorg-xserver/xserver-kdrive/fix_default_mode.patch
diff --git a/packages/xorg-xserver/xserver-kdrive/optional-xkb.patch b/packages/xorg-xserver/xserver-kdrive/optional-xkb.patch
index d9ef51c5ba..22d8c94c78 100644
--- a/packages/xorg-xserver/xserver-kdrive/optional-xkb.patch
+++ b/packages/xorg-xserver/xserver-kdrive/optional-xkb.patch
@@ -1,7 +1,9 @@
---- git/Makefile.am.orig 2006-06-09 16:01:51.000000000 +0200
-+++ git/Makefile.am 2006-06-09 16:02:59.000000000 +0200
-@@ -35,6 +35,10 @@
- XINPUT_DIR=Xi
+Index: xorg-server-1.4/Makefile.am
+===================================================================
+--- xorg-server-1.4.orig/Makefile.am 2007-08-23 21:04:52.000000000 +0200
++++ xorg-server-1.4/Makefile.am 2007-09-06 23:19:59.000000000 +0200
+@@ -26,6 +26,10 @@
+ GLX_DIR=GL
endif
+if XKB
@@ -11,26 +13,28 @@
if DBE
DBE_DIR=dbe
endif
-@@ -51,7 +55,7 @@
+@@ -42,7 +46,7 @@
randr \
render \
- $(XINPUT_DIR) \
+ Xi \
- xkb \
+ $(XKB_DIR) \
$(DBE_DIR) \
$(MFB_DIR) \
$(AFB_DIR) \
---- git/configure.ac.orig 2006-05-22 22:40:00.000000000 +0200
-+++ git/configure.ac 2006-06-10 15:10:14.000000000 +0200
-@@ -418,6 +418,7 @@
- AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
- AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMS=$enableval], [DPMSExtension=yes])
- AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
+Index: xorg-server-1.4/configure.ac
+===================================================================
+--- xorg-server-1.4.orig/configure.ac 2007-09-06 07:59:00.000000000 +0200
++++ xorg-server-1.4/configure.ac 2007-09-06 23:19:19.000000000 +0200
+@@ -514,6 +514,7 @@
+ AC_ARG_ENABLE(config-dbus, AS_HELP_STRING([--enable-config-dbus], [Build D-BUS API support (default: no)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=no])
+ AC_ARG_ENABLE(config-hal, AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
+ AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
+AC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Build XKB (default: enabled)]), [XKB=$enableval], [XKB=yes])
dnl DDXes.
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
-@@ -739,12 +740,15 @@
+@@ -889,12 +890,15 @@
AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
@@ -51,4 +55,4 @@
+fi
AC_CHECK_FUNC(strcasecmp, [], AC_DEFINE([NEED_STRCASECMP], 1,
- [Do not have `strcasecmp'.]))
+ [Do not have 'strcasecmp'.]))
diff --git a/packages/xorg-xserver/xserver-kdrive/tslib-default-device.patch b/packages/xorg-xserver/xserver-kdrive/tslib-default-device.patch
new file mode 100644
index 0000000000..c1bc49f58e
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/tslib-default-device.patch
@@ -0,0 +1,15 @@
+Index: xorg-server-1.4/hw/kdrive/linux/tslib.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/linux/tslib.c 2007-09-08 19:58:08.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/linux/tslib.c 2007-09-08 19:58:09.000000000 +0200
+@@ -121,6 +121,10 @@
+
+ private->raw_event_hook = NULL;
+ private->raw_event_closure = NULL;
++ if (!pi->path) {
++ pi->path = "/dev/input/touchscreen0";
++ ErrorF("[tslib/TslibEnable] no device path given, trying %s\n", pi->path);
++ }
+ private->tsDev = ts_open(pi->path, 0);
+ private->fd = ts_fd(private->tsDev);
+ if (!private->tsDev || ts_config(private->tsDev) || private->fd < 0) {
diff --git a/packages/xorg-xserver/xserver-kdrive/w100-autofoo.patch b/packages/xorg-xserver/xserver-kdrive/w100-autofoo.patch
new file mode 100644
index 0000000000..b53e327dae
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/w100-autofoo.patch
@@ -0,0 +1,54 @@
+Index: git/hw/kdrive/Makefile.am
+===================================================================
+--- git.orig/hw/kdrive/Makefile.am 2006-09-02 12:12:13.000000000 +0200
++++ git/hw/kdrive/Makefile.am 2006-09-02 12:12:14.000000000 +0200
+@@ -7,6 +7,10 @@
+ FBDEV_SUBDIRS = fbdev epson
+ endif
+
++if KDRIVEW100
++W100_SUBDIRS = w100
++endif
++
+ if XSDLSERVER
+ XSDL_SUBDIRS = sdl
+ endif
+@@ -20,6 +24,7 @@
+ linux \
+ $(XSDL_SUBDIRS) \
+ $(FBDEV_SUBDIRS) \
++ $(W100_SUBDIRS) \
+ $(VESA_SUBDIRS) \
+ $(XEPHYR_SUBDIRS) \
+ fake
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac 2006-09-02 12:12:14.000000000 +0200
++++ git/configure.ac 2006-09-02 12:12:14.000000000 +0200
+@@ -442,6 +442,7 @@
+ AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
+ AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
+ AC_ARG_ENABLE(xsdl, AS_HELP_STRING([--enable-xsdl], [Build the kdrive Xsdl server (default: auto)]), [XSDL=$enableval], [XSDL=auto])
++AC_ARG_ENABLE(w100, AS_HELP_STRING([--enable-w100], [Build the kdrive Xw100 server (default: no)]), [KDRIVEW100=$enableval], [KDRIVEW100=no])
+ dnl xprint
+ AC_ARG_ENABLE(freetype, AS_HELP_STRING([ --enable-freetype], [Build Xprint FreeType backend (default: yes)]), [XP_USE_FREETYPE=$enableval],[XP_USE_FREETYPE=no])
+ AC_ARG_WITH(freetype-config, AS_HELP_STRING([ --with-freetype-config=PROG], [Use FreeType configuration program PROG (default: auto)]), freetype_config=$withval, freetype_config=auto)
+@@ -1519,6 +1520,10 @@
+ AC_SUBST([XSDL_LIBS])
+ AC_SUBST([XSDL_INCS])
+
++AM_CONDITIONAL(KDRIVEW100, [test "x$KDRIVEW100" = xyes])
++if test "x$KDRIVEW100" = xyes; then
++ AC_DEFINE(KDRIVEW100, 1, [Build Xw100 server])
++fi
+
+ dnl these only go in xkb-config.h (which is shared by the Xorg and Xnest servers)
+ AC_DEFINE(__XKBDEFRULES__, "xorg", [Default XKB rules])
+@@ -1753,6 +1758,7 @@
+ hw/kdrive/epson/Makefile
+ hw/kdrive/fake/Makefile
+ hw/kdrive/fbdev/Makefile
++hw/kdrive/w100/Makefile
+ hw/kdrive/i810/Makefile
+ hw/kdrive/linux/Makefile
+ hw/kdrive/mach64/Makefile
diff --git a/packages/xorg-xserver/xserver-kdrive/w100-new-input-world-order.patch b/packages/xorg-xserver/xserver-kdrive/w100-new-input-world-order.patch
new file mode 100644
index 0000000000..239ae0bb67
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/w100-new-input-world-order.patch
@@ -0,0 +1,28 @@
+Index: xorg-server-1.4/hw/kdrive/w100/ati_stub.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/w100/ati_stub.c 2007-09-08 21:40:26.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/w100/ati_stub.c 2007-09-08 22:04:27.000000000 +0200
+@@ -74,10 +74,20 @@
+ void
+ InitInput(int argc, char **argv)
+ {
+- KdInitInput(&LinuxMouseFuncs, &LinuxKeyboardFuncs);
+-#ifdef TOUCHSCREEN
+- KdAddMouseDriver(&TsFuncs);
++ KdKeyboardInfo *ki;
++
++ KdAddKeyboardDriver (&LinuxKeyboardDriver);
++ KdAddPointerDriver (&LinuxMouseDriver);
++ KdAddKeyboardDriver (&LinuxEvdevKeyboardDriver);
++ KdAddPointerDriver (&LinuxEvdevMouseDriver);
++#ifdef TSLIB
++ KdAddPointerDriver (&TsDriver);
+ #endif
++
++ ki = KdParseKeyboard ("keyboard");
++ KdAddKeyboard(ki);
++
++ KdInitInput ();
+ }
+
+ void
diff --git a/packages/xorg-xserver/xserver-kdrive/w100.patch b/packages/xorg-xserver/xserver-kdrive/w100.patch
index 9a20fa1f1e..1bb6f357c6 100644
--- a/packages/xorg-xserver/xserver-kdrive/w100.patch
+++ b/packages/xorg-xserver/xserver-kdrive/w100.patch
@@ -6332,57 +6332,4 @@ Index: git/hw/kdrive/w100/w100_regs.h
+
+
+#endif //_W100_REGS_H_
-Index: git/hw/kdrive/Makefile.am
-===================================================================
---- git.orig/hw/kdrive/Makefile.am 2006-09-02 12:12:13.000000000 +0200
-+++ git/hw/kdrive/Makefile.am 2006-09-02 12:12:14.000000000 +0200
-@@ -7,6 +7,10 @@
- FBDEV_SUBDIRS = fbdev epson
- endif
-
-+if KDRIVEW100
-+W100_SUBDIRS = w100
-+endif
-+
- if XSDLSERVER
- XSDL_SUBDIRS = sdl
- endif
-@@ -20,6 +24,7 @@
- linux \
- $(XSDL_SUBDIRS) \
- $(FBDEV_SUBDIRS) \
-+ $(W100_SUBDIRS) \
- $(VESA_SUBDIRS) \
- $(XEPHYR_SUBDIRS) \
- fake
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac 2006-09-02 12:12:14.000000000 +0200
-+++ git/configure.ac 2006-09-02 12:12:14.000000000 +0200
-@@ -442,6 +442,7 @@
- AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
- AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
- AC_ARG_ENABLE(xsdl, AS_HELP_STRING([--enable-xsdl], [Build the kdrive Xsdl server (default: auto)]), [XSDL=$enableval], [XSDL=auto])
-+AC_ARG_ENABLE(w100, AS_HELP_STRING([--enable-w100], [Build the kdrive Xw100 server (default: no)]), [KDRIVEW100=$enableval], [KDRIVEW100=no])
- dnl xprint
- AC_ARG_ENABLE(freetype, AS_HELP_STRING([ --enable-freetype], [Build Xprint FreeType backend (default: yes)]), [XP_USE_FREETYPE=$enableval],[XP_USE_FREETYPE=no])
- AC_ARG_WITH(freetype-config, AS_HELP_STRING([ --with-freetype-config=PROG], [Use FreeType configuration program PROG (default: auto)]), freetype_config=$withval, freetype_config=auto)
-@@ -1519,6 +1520,10 @@
- AC_SUBST([XSDL_LIBS])
- AC_SUBST([XSDL_INCS])
-
-+AM_CONDITIONAL(KDRIVEW100, [test "x$KDRIVEW100" = xyes])
-+if test "x$KDRIVEW100" = xyes; then
-+ AC_DEFINE(KDRIVEW100, 1, [Build Xw100 server])
-+fi
-
- dnl these only go in xkb-config.h (which is shared by the Xorg and Xnest servers)
- AC_DEFINE(__XKBDEFRULES__, "xorg", [Default XKB rules])
-@@ -1753,6 +1758,7 @@
- hw/kdrive/epson/Makefile
- hw/kdrive/fake/Makefile
- hw/kdrive/fbdev/Makefile
-+hw/kdrive/w100/Makefile
- hw/kdrive/i810/Makefile
- hw/kdrive/linux/Makefile
- hw/kdrive/mach64/Makefile
+
diff --git a/packages/xorg-xserver/xserver-kdrive/xcalibrate-new-input-world-order.patch b/packages/xorg-xserver/xserver-kdrive/xcalibrate-new-input-world-order.patch
new file mode 100644
index 0000000000..2cc9e60d8d
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/xcalibrate-new-input-world-order.patch
@@ -0,0 +1,159 @@
+CRUDE HACK ALERT: this patch adds a new device control (DEVICE_RAWEVENT)
+which cannot be exported in the protocol because the xDeviceRaweventCtl
+carries a C pointer to the tslib event hook. For lack of a better idea,
+I added this to get the event hook pointer from Xext/xcalibrate.c into
+tslib.c, where the now-private _raw_event_hook and _raw_event_closure
+pointers are manipulated instead of, like before, in the Xcalibrate
+extension itself.
+
+Index: xorg-server-1.4/Xext/xcalibrate.c
+===================================================================
+--- xorg-server-1.4.orig/Xext/xcalibrate.c 2007-09-08 13:22:55.000000000 +0200
++++ xorg-server-1.4/Xext/xcalibrate.c 2007-09-08 16:03:17.000000000 +0200
+@@ -33,14 +33,14 @@
+ #include "os.h"
+ #include "dixstruct.h"
+ #include "extnsionst.h"
++#include "inputstr.h" /* for inputInfo */
+ #include "swaprep.h"
+
++#include <X11/extensions/XI.h> /* for XI_TOUCHSCREEN */
++#include <X11/extensions/XIproto.h> /* for xDeviceCtl */
+ #include <X11/extensions/xcalibrateproto.h>
+ #include <X11/extensions/xcalibratewire.h>
+
+-extern void (*tslib_raw_event_hook)(int x, int y, int pressure, void *closure);
+-extern void *tslib_raw_event_closure;
+-
+ static CARD8 XCalibrateReqCode;
+ int XCalibrateEventBase;
+ int XCalibrateReqBase;
+@@ -64,6 +64,31 @@
+ WriteEventsToClient (pClient, 1, (xEvent *) &ev);
+ }
+
++#define DEVICE_RAWEVENT 6
++typedef struct {
++ CARD16 control B16;
++ CARD16 length B16;
++ void *hook;
++} xDeviceRaweventCtl;
++
++static void
++xcalibrate_set_event_hook (void *hook, ClientPtr client)
++{
++ DeviceIntPtr devtmp;
++ Atom xiclass;
++ xDeviceRaweventCtl rawevent;
++
++ rawevent.control = DEVICE_RAWEVENT;
++ rawevent.length = sizeof(rawevent);
++ rawevent.hook = hook;
++
++ xiclass = MakeAtom(XI_TOUCHSCREEN, strlen(XI_TOUCHSCREEN), 1);
++
++ for (devtmp = inputInfo.devices; devtmp; devtmp = devtmp->next)
++ if (devtmp->type == xiclass)
++ ChangeDeviceControl(client, devtmp, (xDeviceCtl *) &rawevent);
++}
++
+ static int
+ ProcXCalibrateQueryVersion (ClientPtr client)
+ {
+@@ -124,8 +149,7 @@
+ {
+ /* Start calibrating. */
+ xcalibrate_client = client;
+- tslib_raw_event_hook = xcalibrate_event_hook;
+- tslib_raw_event_closure = client;
++ xcalibrate_set_event_hook(xcalibrate_event_hook, client);
+ rep.status = GrabSuccess;
+ }
+ else
+@@ -139,8 +163,7 @@
+ {
+ /* Stop calibrating. */
+ xcalibrate_client = NULL;
+- tslib_raw_event_hook = NULL;
+- tslib_raw_event_closure = NULL;
++ xcalibrate_set_event_hook(NULL, NULL);
+ rep.status = GrabSuccess;
+
+ /* Cycle input off and on to reload configuration. */
+@@ -277,8 +300,7 @@
+ {
+ /* Stop calibrating. */
+ xcalibrate_client = NULL;
+- tslib_raw_event_hook = NULL;
+- tslib_raw_event_closure = NULL;
++ xcalibrate_set_event_hook(NULL, NULL);
+ }
+ }
+
+Index: xorg-server-1.4/hw/kdrive/linux/tslib.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/linux/tslib.c 2007-09-08 14:46:41.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/linux/tslib.c 2007-09-08 16:10:57.000000000 +0200
+@@ -56,6 +56,13 @@
+ int phys_screen;
+ };
+
++void
++tslib_set_raw_event_hook(KdPointerInfo *pi, void *hook, void *closure)
++{
++ struct TslibPrivate *private = pi->driverPrivate;
++ private->raw_event_hook = hook;
++ private->raw_event_closure = closure;
++}
+
+ static void
+ TsRead (int fd, void *closure)
+Index: xorg-server-1.4/hw/kdrive/src/kinput.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/src/kinput.c 2007-09-08 14:45:01.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/src/kinput.c 2007-09-08 16:09:32.000000000 +0200
+@@ -2389,10 +2389,19 @@
+ return BadMatch;
+ }
+
++#define DEVICE_RAWEVENT 6
++typedef struct {
++ CARD16 control B16;
++ CARD16 length B16;
++ void *hook;
++} xDeviceRaweventCtl;
++
+ int
+ ChangeDeviceControl(register ClientPtr client, DeviceIntPtr pDev,
+ xDeviceCtl *control)
+ {
++ KdPointerInfo *pi;
++
+ switch (control->control) {
+ case DEVICE_RESOLUTION:
+ /* FIXME do something more intelligent here */
+@@ -2406,6 +2415,24 @@
+ case DEVICE_ENABLE:
+ return Success;
+
++ case DEVICE_RAWEVENT:
++ if (!pDev)
++ return BadImplementation;
++
++ for (pi = kdPointers; pi; pi = pi->next) {
++ if (pi->dixdev && pi->dixdev->id == pDev->id)
++ break;
++ }
++
++ if (!pi || !pi->dixdev || pi->dixdev->id != pDev->id) {
++ ErrorF("[ChangeDeviceControl] Failed to find pointer for device %d!\n",
++ pDev->id);
++ return BadImplementation;
++ }
++
++ tslib_set_raw_event_hook(pi, ((xDeviceRaweventCtl *)control)->hook, client);
++ return Success;
++
+ default:
+ return BadMatch;
+ }
diff --git a/packages/xorg-xserver/xserver-kdrive/xcalibrate_coords.patch b/packages/xorg-xserver/xserver-kdrive/xcalibrate_coords.patch
new file mode 100644
index 0000000000..7f4ec09d68
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive/xcalibrate_coords.patch
@@ -0,0 +1,122 @@
+---
+ Xext/xcalibrate.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
+ hw/kdrive/src/kdrive.h | 3 +++
+ hw/kdrive/src/kinput.c | 12 ++++++++++++
+ 3 files changed, 61 insertions(+), 1 deletion(-)
+
+Index: xorg-server-1.4/Xext/xcalibrate.c
+===================================================================
+--- xorg-server-1.4.orig/Xext/xcalibrate.c 2007-08-23 21:04:52.000000000 +0200
++++ xorg-server-1.4/Xext/xcalibrate.c 2007-09-06 23:27:40.000000000 +0200
+@@ -164,7 +164,6 @@
+ return (client->noClientException);
+ }
+
+-
+ static int
+ SProcXCalibrateSetRawMode (ClientPtr client)
+ {
+@@ -178,6 +177,47 @@
+ return ProcXCalibrateSetRawMode(client);
+ }
+
++static int
++ProcXCalibrateScreenToCoord (ClientPtr client)
++{
++ REQUEST(xXCalibrateScreenToCoordReq);
++ xXCalibrateScreenToCoordReply rep;
++
++ REQUEST_SIZE_MATCH (xXCalibrateScreenToCoordReq);
++
++ memset (&rep, 0, sizeof (rep));
++ rep.type = X_Reply;
++ rep.sequenceNumber = client->sequence;
++ rep.x = stuff->x;
++ rep.y = stuff->y;
++
++ KdScreenToPointerCoords(&rep.x, &rep.y);
++
++ if (client->swapped)
++ {
++ int n;
++
++ swaps (&rep.x, n);
++ swaps (&rep.y, n);
++ }
++ WriteToClient(client, sizeof (rep), (char *) &rep);
++ return (client->noClientException);
++}
++
++static int
++SProcXCalibrateScreenToCoord (ClientPtr client)
++{
++ REQUEST(xXCalibrateScreenToCoordReq);
++ int n;
++
++ REQUEST_SIZE_MATCH (xXCalibrateScreenToCoordReq);
++
++ swaps(&stuff->x, n);
++ swaps(&stuff->y, n);
++
++ return ProcXCalibrateScreenToCoord(client);
++}
++
+ static void
+ XCalibrateResetProc (ExtensionEntry *extEntry)
+ {
+@@ -192,6 +232,9 @@
+ return ProcXCalibrateQueryVersion(client);
+ case X_XCalibrateRawMode:
+ return ProcXCalibrateSetRawMode(client);
++ case X_XCalibrateScreenToCoord:
++ return ProcXCalibrateScreenToCoord(client);
++
+ default: break;
+ }
+
+@@ -211,6 +254,8 @@
+ return SProcXCalibrateQueryVersion(client);
+ case X_XCalibrateRawMode:
+ return SProcXCalibrateSetRawMode(client);
++ case X_XCalibrateScreenToCoord:
++ return SProcXCalibrateScreenToCoord(client);
+
+ default: break;
+ }
+Index: xorg-server-1.4/hw/kdrive/src/kdrive.h
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/src/kdrive.h 2007-08-23 21:04:53.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/src/kdrive.h 2007-09-06 23:28:50.000000000 +0200
+@@ -848,6 +848,9 @@
+ KdSetPointerMatrix (KdPointerMatrix *pointer);
+
+ void
++KdScreenToPointerCoords (int *x, int *y);
++
++void
+ KdComputePointerMatrix (KdPointerMatrix *pointer, Rotation randr, int width, int height);
+
+ void
+Index: xorg-server-1.4/hw/kdrive/src/kinput.c
+===================================================================
+--- xorg-server-1.4.orig/hw/kdrive/src/kinput.c 2007-08-23 21:04:53.000000000 +0200
++++ xorg-server-1.4/hw/kdrive/src/kinput.c 2007-09-06 23:30:54.000000000 +0200
+@@ -592,6 +592,18 @@
+ }
+
+ void
++KdScreenToPointerCoords (int *x, int *y)
++{
++ int (*m)[3] = kdPointerMatrix.matrix;
++ int div = m[0][1] * m[1][0] - m[1][1] * m[0][0];
++ int sx = *x;
++ int sy = *y;
++
++ *x = (m[0][1] * sy - m[0][1] * m[1][2] + m[1][1] * m[0][2] - m[1][1] * sx) / div;
++ *y = (m[1][0] * sx + m[0][0] * m[1][2] - m[1][0] * m[0][2] - m[0][0] * sy) / div;
++}
++
++void
+ KdComputePointerMatrix (KdPointerMatrix *m, Rotation randr, int width,
+ int height)
+ {
diff --git a/packages/xorg-xserver/xserver-kdrive_1.2.0.bb b/packages/xorg-xserver/xserver-kdrive_1.2.0.bb
index 5af854c3f0..3b5e62c4dd 100644
--- a/packages/xorg-xserver/xserver-kdrive_1.2.0.bb
+++ b/packages/xorg-xserver/xserver-kdrive_1.2.0.bb
@@ -7,8 +7,14 @@ PR = "r9"
SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
${KDRIVE_COMMON_PATCHES} \
+ file://enable-epson.patch;patch=1 \
+ file://enable-builtin-fonts.patch;patch=1 \
+ file://kdrive-evdev.patch;patch=1 \
+ file://kdrive-use-evdev.patch;patch=1 \
+ file://disable-xf86-dga-xorgcfg.patch;patch=1 \
file://enable-xcalibrate.patch;patch=1 \
file://w100.patch;patch=1 \
+ file://w100-autofoo.patch;patch=1 \
file://w100-fix-offscreen-bmp.patch;patch=1 \
file://fbcompositesrc8888revnpx0565.patch;patch=1 \
file://xcalibrate_coords.patch;patch=1 \
diff --git a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
index 9adc638c17..5f0896f3ed 100644
--- a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
+++ b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
@@ -3,15 +3,21 @@ require xserver-kdrive-common.inc
DEPENDS += "libxkbfile libxcalibrate"
PE = "1"
-PR = "r16"
+PR = "r17"
SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
${KDRIVE_COMMON_PATCHES} \
+ file://enable-epson.patch;patch=1 \
+ file://enable-builtin-fonts.patch;patch=1 \
+ file://kdrive-evdev.patch;patch=1 \
+ file://kdrive-use-evdev.patch;patch=1 \
+ file://disable-xf86-dga-xorgcfg.patch;patch=1 \
file://fix_default_mode.patch;patch=1 \
file://enable-xcalibrate.patch;patch=1 \
file://hide-cursor-and-ppm-root.patch;patch=1 \
file://xcalibrate_coords.patch;patch=1 \
file://w100.patch;patch=1 \
+ file://w100-autofoo.patch;patch=1 \
file://w100-fix-offscreen-bmp.patch;patch=1 \
"
diff --git a/packages/xorg-xserver/xserver-kdrive_1.4.bb b/packages/xorg-xserver/xserver-kdrive_1.4.bb
new file mode 100644
index 0000000000..87880c9ef8
--- /dev/null
+++ b/packages/xorg-xserver/xserver-kdrive_1.4.bb
@@ -0,0 +1,28 @@
+require xserver-kdrive-common.inc
+
+DEPENDS += "libxkbfile libxcalibrate pixman"
+
+PE = "1"
+
+SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
+ ${KDRIVE_COMMON_PATCHES} \
+ file://enable-epson.patch;patch=1 \
+ file://fix_default_mode.patch;patch=1 \
+ file://enable-xcalibrate.patch;patch=1 \
+ file://hide-cursor-and-ppm-root.patch;patch=1 \
+ file://xcalibrate_coords.patch;patch=1 \
+ file://w100.patch;patch=1 \
+ file://w100-autofoo.patch;patch=1 \
+ file://w100-fix-offscreen-bmp.patch;patch=1 \
+ file://w100-new-input-world-order.patch;patch=1 \
+ file://xcalibrate-new-input-world-order.patch;patch=1 \
+ file://tslib-default-device.patch;patch=1 \
+ file://fbdev-evdev.patch;patch=1 \
+ "
+
+S = "${WORKDIR}/xorg-server-${PV}"
+
+W100_OECONF = "--disable-w100"
+W100_OECONF_arm = "--enable-w100"
+
+EXTRA_OECONF += "--enable-builtin-fonts"
diff --git a/packages/xorg-xserver/xserver-kdrive_git.bb b/packages/xorg-xserver/xserver-kdrive_git.bb
index 4e511fe694..ce48c0e0d4 100644
--- a/packages/xorg-xserver/xserver-kdrive_git.bb
+++ b/packages/xorg-xserver/xserver-kdrive_git.bb
@@ -1,47 +1,34 @@
-PV = "1.1.0+git${SRCDATE}"
DEFAULT_PREFERENCE = "-2"
-LICENSE = "MIT"
-DEPENDS = "tslib xproto libxdmcp xextproto xtrans libxau virtual/libx11 libxext libxrandr fixesproto damageproto libxfont resourceproto compositeproto calibrateproto recordproto videoproto scrnsaverproto"
+require xserver-kdrive-common.inc
+PV = "1.4+git${SRCDATE}"
-PROVIDES = "virtual/xserver"
-PACKAGES = "xserver-kdrive-fbdev xserver-kdrive-fake xserver-kdrive-xephyr ${PN}-doc ${PN}-dev ${PN}-locale"
-SECTION = "x11/base"
-DESCRIPTION = "X server from freedesktop.org"
-DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
-DESCRIPTION_xserver-kdrive-fake = "Fake X server"
-DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
+DEPENDS += "libxkbfile libxcalibrate pixman"
-FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
-FILES_xserver-kdrive-fake = "${bindir}/Xfake"
-FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
+PE = "1"
+FILESPATH = "${FILE_DIRNAME}/xserver-kdrive-git:${FILE_DIRNAME}/xserver-kdrive"
SRC_URI = "git://anongit.freedesktop.org/xorg/xserver;protocol=git \
- file://kmode.patch;patch=1 \
- file://disable-apm.patch;patch=1 \
- file://no-serial-probing.patch;patch=1 \
- file://kdrive-evdev.patch;patch=1 \
- file://kdrive-use-evdev.patch;patch=1 \
- file://fbdev-not-fix.patch;patch=1 \
- file://enable-builtin-fonts.patch;patch=1 \
- file://optional-xkb.patch;patch=1 \
-# file://disable-xf86-dga-xorgcfg.patch;patch=1 \
- file://enable-tslib.patch;patch=1"
-
-SRC_URI_append_mnci = " file://onlyfb.patch;patch=1"
-SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1"
-PACKAGE_ARCH_poodle = "poodle"
+ ${KDRIVE_COMMON_PATCHES} \
+ file://enable-epson.patch;patch=1 \
+ file://fix_default_mode.patch;patch=1 \
+ file://enable-xcalibrate.patch;patch=1 \
+ file://hide-cursor-and-ppm-root.patch;patch=1 \
+ file://xcalibrate_coords.patch;patch=1 \
+ file://w100.patch;patch=1 \
+ file://w100-autofoo.patch;patch=1 \
+ file://w100-fix-offscreen-bmp.patch;patch=1 \
+ file://w100-new-input-world-order.patch;patch=1 \
+ file://w100-post-1.4-buildfix.patch;patch=1 \
+ file://xcalibrate-new-input-world-order.patch;patch=1 \
+ file://tslib-default-device.patch;patch=1 \
+ file://fbdev-evdev.patch;patch=1 \
+ file://xephyr-post-1.4-buildfix.patch;patch=1 \
+ "
S = "${WORKDIR}/git"
-inherit autotools pkgconfig
+W100_OECONF = "--disable-w100"
+W100_OECONF_arm = "--enable-w100"
-EXTRA_OECONF = "--enable-composite --enable-kdrive \
- --disable-dga --disable-dri --disable-xinerama \
- --disable-xf86misc --disable-xf86vidmode \
- --disable-xorg --disable-xorgcfg \
- --disable-xkb --disable-xnest --disable-xvfb \
- --disable-xevie --disable-xprint --disable-xtrap \
- --disable-dmx \
- --with-default-font-path=built-ins \
- ac_cv_file__usr_share_X11_sgml_defs_ent=no"
+EXTRA_OECONF += "--enable-builtin-fonts"
diff --git a/packages/xournal/xournal_0.4.0.1.bb b/packages/xournal/xournal_0.4.0.1.bb
new file mode 100644
index 0000000000..5a8a1b74b7
--- /dev/null
+++ b/packages/xournal/xournal_0.4.0.1.bb
@@ -0,0 +1,17 @@
+HOMEPAGE = "http://xournal.sf.net/"
+DESCRIPTION = "Xournal is an application for notetaking, sketching, keeping a journal using a stylus."
+DEPENDS = "gtk+ libgnomecanvas libgnomeprintui"
+SECTION = "x11"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "http://xournal.sourceforge.net/xournal-${PV}.tar.gz \
+ file://xournal.desktop"
+
+inherit autotools pkgconfig
+
+do_install_append () {
+ install -d ${D}${datadir}/applications/
+ install -m 0644 ${WORKDIR}/xournal.desktop ${D}${datadir}/applications/
+}
+
diff --git a/packages/yaffs2/.mtn2git_empty b/packages/yaffs2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/yaffs2/.mtn2git_empty
diff --git a/packages/yaffs2/files/.mtn2git_empty b/packages/yaffs2/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/yaffs2/files/.mtn2git_empty
diff --git a/packages/yaffs2/files/mkyaffs2image.patch b/packages/yaffs2/files/mkyaffs2image.patch
new file mode 100644
index 0000000000..521f1ba9a0
--- /dev/null
+++ b/packages/yaffs2/files/mkyaffs2image.patch
@@ -0,0 +1,345 @@
+ *
+ * mkyaffs2image hacks by NCB
+ *
+ * Changes by Sergey Kubushin flagged KSI
+ *
+ */
+
+/* KSI:
+ * All this nightmare should be rewritten from ground up. Why save return
+ * values if nobody checks them? The read/write function returns only one
+ * error, -1. Positive return value does NOT mean read/write operation has
+ * been completed successfully. If somebody opens files, he MUST close them
+ * when they are not longer needed. Only those brave enough can write 64
+ * bytes from a yaffs_PackedTags2 structure. The list is too long, there is
+ * enough bugs here to write a couple of thick books on how NOT to write
+ * programs...
+ *
+ * And BTW, what was one supposed to do with that file that this horror
+ * occasionally managed to generate?
+ */
+diff -urN yaffs2.orig/utils/mkyaffs2image.c yaffs2/utils/mkyaffs2image.c
+--- yaffs2.orig/utils/mkyaffs2image.c 2005-12-12 16:34:58.000000000 -0800
++++ yaffs2/utils/mkyaffs2image.c 2006-02-10 16:56:13.000000000 -0800
+@@ -31,10 +47,10 @@
+ #include <dirent.h>
+ #include <string.h>
+ #include <unistd.h>
++#include <mtd/mtd-user.h>
+ #include "yaffs_ecc.h"
+ #include "yaffs_guts.h"
+
+-#include "yaffs_tagsvalidity.h"
+ #include "yaffs_packedtags2.h"
+
+ unsigned yaffs_traceMask=0;
+@@ -43,9 +59,45 @@
+
+ #define chunkSize 2048
+ #define spareSize 64
++#define PT2_BYTES 25
+
+ const char * mkyaffsimage_c_version = "$Id: mkyaffs2image.c,v 1.4 2007-02-14 01:09:06 wookey Exp $";
+
++static int layout_no;
++
++static struct nand_oobinfo oob_layout[] = {
++ /* KSI:
++ * Dummy "raw" layout - no ECC, all the bytes are free. Does NOT
++ * really work, only used for compatibility with CVS YAFFS2 that
++ * never ever worked with any stock MTD.
++ */
++ {
++ .useecc = MTD_NANDECC_AUTOPLACE,
++ .eccbytes = 0,
++ .eccpos = {},
++ .oobfree = { {0, 64} }
++ },
++ /* KSI:
++ * Regular MTD AUTOPLACED ECC for large page NAND devices, the
++ * only one existing in stock MTD so far. It corresponds to layout# 1
++ * in command line arguments. Any other layouts could be added to
++ * the list when they made their way in kernel's MTD. The structure
++ * is simply copied from kernel's drivers/mtd/nand/nand_base.c as-is.
++ */
++ {
++ .useecc = MTD_NANDECC_AUTOPLACE,
++ .eccbytes = 24,
++ .eccpos = {
++ 40, 41, 42, 43, 44, 45, 46, 47,
++ 48, 49, 50, 51, 52, 53, 54, 55,
++ 56, 57, 58, 59, 60, 61, 62, 63},
++ .oobfree = { {2, 38} }
++ },
++ /* End-of-list marker */
++ {
++ .useecc = -1,
++ }
++};
+
+ typedef struct
+ {
+@@ -59,7 +111,7 @@
+ static int n_obj = 0;
+ static int obj_id = YAFFS_NOBJECT_BUCKETS + 1;
+
+-static int nObjects, nDirectories, nPages;
++static int nObjects = 0, nDirectories = 0, nPages = 0;
+
+ static int outFile;
+
+@@ -123,6 +175,11 @@
+ return -1;
+ }
+
++/* KSI:
++ * No big endian for now. This is left for a later time. The existing code
++ * is FUBAR.
++ */
++#if 0
+ /* This little function converts a little endian tag to a big endian tag.
+ * NOTE: The tag is not usable after this other than calculating the CRC
+ * with.
+@@ -155,11 +212,56 @@
+ tags->asBytes[7] = temp.asBytes[7];
+ #endif
+ }
++#endif
++
++void nandmtd2_pt2buf(unsigned char *buf, yaffs_PackedTags2 *pt)
++{
++ int i, j = 0, k, n;
++ unsigned char pt2_byte_buf[PT2_BYTES];
++
++ *((unsigned int *) &pt2_byte_buf[0]) = pt->t.sequenceNumber;
++ *((unsigned int *) &pt2_byte_buf[4]) = pt->t.objectId;
++ *((unsigned int *) &pt2_byte_buf[8]) = pt->t.chunkId;
++ *((unsigned int *) &pt2_byte_buf[12]) = pt->t.byteCount;
++ pt2_byte_buf[16] = pt->ecc.colParity;
++ pt2_byte_buf[17] = pt->ecc.lineParity & 0xff;
++ pt2_byte_buf[18] = (pt->ecc.lineParity >> 8) & 0xff;
++ pt2_byte_buf[19] = (pt->ecc.lineParity >> 16) & 0xff;
++ pt2_byte_buf[20] = (pt->ecc.lineParity >> 24) & 0xff;
++ pt2_byte_buf[21] = pt->ecc.lineParityPrime & 0xff;
++ pt2_byte_buf[22] = (pt->ecc.lineParityPrime >> 8) & 0xff;
++ pt2_byte_buf[23] = (pt->ecc.lineParityPrime >> 16) & 0xff;
++ pt2_byte_buf[24] = (pt->ecc.lineParityPrime >> 24) & 0xff;
++
++ k = oob_layout[layout_no].oobfree[j][0];
++ n = oob_layout[layout_no].oobfree[j][1];
++
++ if (n == 0) {
++ fprintf(stderr, "No OOB space for tags");
++ exit(-1);
++ }
++
++ for (i = 0; i < PT2_BYTES; i++) {
++ if (n == 0) {
++ j++;
++ k = oob_layout[layout_no].oobfree[j][0];
++ n = oob_layout[layout_no].oobfree[j][1];
++ if (n == 0) {
++ fprintf(stderr, "No OOB space for tags");
++ exit(-1);
++ }
++ }
++ buf[k++] = pt2_byte_buf[i];
++ n--;
++ }
++}
+
+ static int write_chunk(__u8 *data, __u32 objId, __u32 chunkId, __u32 nBytes)
+ {
+ yaffs_ExtendedTags t;
+ yaffs_PackedTags2 pt;
++ unsigned char spare_buf[spareSize];
++
+
+ error = write(outFile,data,chunkSize);
+ if(error < 0) return error;
+@@ -177,18 +279,27 @@
+ // added NCB **CHECK**
+ t.chunkUsed = 1;
+
++/* KSI: Broken anyway -- e.g. &t is pointer to a wrong type... */
++#if 0
+ if (convert_endian)
+ {
+ little_to_big_endian(&t);
+ }
++#endif
+
+ nPages++;
+
+ yaffs_PackTags2(&pt,&t);
+-
+-// return write(outFile,&pt,sizeof(yaffs_PackedTags2));
+- return write(outFile,&pt,spareSize);
+-
++
++ memset(spare_buf, 0xff, sizeof(spare_buf));
++
++ if (layout_no == 0) {
++ memcpy(spare_buf, &pt, sizeof(yaffs_PackedTags2));
++ } else {
++ nandmtd2_pt2buf(spare_buf, &pt);
++ }
++
++ return write(outFile,spare_buf,spareSize);
+ }
+
+ #define SWAP32(x) ((((x) & 0x000000FF) << 24) | \
+@@ -199,6 +310,8 @@
+ #define SWAP16(x) ((((x) & 0x00FF) << 8) | \
+ (((x) & 0xFF00) >> 8))
+
++/* KSI: Removed for now. TBD later when the proper util (from scratch) is written */
++#if 0
+ // This one is easier, since the types are more standard. No funky shifts here.
+ static void object_header_little_to_big_endian(yaffs_ObjectHeader* oh)
+ {
+@@ -256,6 +369,7 @@
+ oh->roomToGrow[11] = SWAP32(oh->roomToGrow[11]);
+ #endif
+ }
++#endif
+
+ static int write_object_header(int objId, yaffs_ObjectType t, struct stat *s, int parent, const char *name, int equivalentObj, const char * alias)
+ {
+@@ -300,10 +414,13 @@
+ strncpy(oh->alias,alias,YAFFS_MAX_ALIAS_LENGTH);
+ }
+
++/* KSI: FUBAR. Left for a leter time. */
++#if 0
+ if (convert_endian)
+ {
+ object_header_little_to_big_endian(oh);
+ }
++#endif
+
+ return write_chunk(bytes,objId,0,0xffff);
+
+@@ -319,7 +436,7 @@
+ nDirectories++;
+
+ dir = opendir(path);
+-
++
+ if(dir)
+ {
+ while((entry = readdir(dir)) != NULL)
+@@ -403,12 +520,12 @@
+ error = nBytes;
+
+ printf("%d data chunks written\n",chunk);
++ close(h);
+ }
+ else
+ {
+ perror("Error opening file");
+ }
+- close(h);
+
+ }
+
+@@ -448,58 +565,82 @@
+ }
+ }
+ }
++ /* KSI:
++ * Who is supposed to close those open directories in this
++ * recursive function, lord Byron? Stock "ulimit -n" is 1024
++ * and e.g. stock Fedora /etc directory has more that 1024
++ * directories...
++ */
++ closedir(dir);
+ }
+
+ return 0;
+
+ }
+
++void usage(void)
++{
++ printf("usage: mkyaffs2image layout# dir image_file [convert]\n");
++ printf(" layout# NAND OOB layout # (0 - raw, 1 - nand_oob_64)\n");
++ printf(" dir the directory tree to be converted\n");
++ printf(" image_file the output file to hold the image\n");
++ printf(" 'convert' make a big-endian img on a little-endian machine. BROKEN !\n");
++ exit(1);
++}
+
+ int main(int argc, char *argv[])
+ {
+ struct stat stats;
++ int i;
+
+ printf("mkyaffs2image: image building tool for YAFFS2 built "__DATE__"\n");
+
+- if(argc < 3)
++ if ((argc < 4) || (sscanf(argv[1], "%u", &layout_no) != 1))
+ {
+- printf("usage: mkyaffs2image dir image_file [convert]\n");
+- printf(" dir the directory tree to be converted\n");
+- printf(" image_file the output file to hold the image\n");
+- printf(" 'convert' produce a big-endian image from a little-endian machine\n");
+- exit(1);
++ usage();
+ }
+
+- if ((argc == 4) && (!strncmp(argv[3], "convert", strlen("convert"))))
+- {
+- convert_endian = 1;
+- }
++ i = 0;
++
++ while (oob_layout[i].useecc != -1)
++ i++;
++
++ if (layout_no >= i)
++ usage();
++
++ if ((argc == 5) && (!strncmp(argv[4], "convert", strlen("convert"))))
++ {
++ /* KSI: Broken as of now. TBD. Fail. */
++ usage();
++ convert_endian = 1;
++ }
+
+- if(stat(argv[1],&stats) < 0)
++ if(stat(argv[2],&stats) < 0)
+ {
+- printf("Could not stat %s\n",argv[1]);
++ printf("Could not stat %s\n",argv[2]);
+ exit(1);
+ }
+
+ if(!S_ISDIR(stats.st_mode))
+ {
+- printf(" %s is not a directory\n",argv[1]);
++ printf(" %s is not a directory\n",argv[2]);
+ exit(1);
+ }
+
+- outFile = open(argv[2],O_CREAT | O_TRUNC | O_WRONLY, S_IREAD | S_IWRITE);
++ outFile = open(argv[3],O_CREAT | O_TRUNC | O_WRONLY, S_IREAD | S_IWRITE);
+
+
+ if(outFile < 0)
+ {
+- printf("Could not open output file %s\n",argv[2]);
++ printf("Could not open output file %s\n",argv[3]);
+ exit(1);
+ }
+
+- printf("Processing directory %s into image file %s\n",argv[1],argv[2]);
++ printf("Processing directory %s into image file %s\n",argv[2],argv[3]);
+ error = write_object_header(1, YAFFS_OBJECT_TYPE_DIRECTORY, &stats, 1,"", -1, NULL);
++
+ if(error)
+- error = process_directory(YAFFS_OBJECTID_ROOT,argv[1]);
++ error = process_directory(YAFFS_OBJECTID_ROOT,argv[2]);
+
+ close(outFile);
+
diff --git a/packages/yaffs2/files/yaffs2-unioob.patch b/packages/yaffs2/files/yaffs2-unioob.patch
new file mode 100644
index 0000000000..c894528ca1
--- /dev/null
+++ b/packages/yaffs2/files/yaffs2-unioob.patch
@@ -0,0 +1,216 @@
+diff -urN yaffs2.orig/yaffs_mtdif2.c yaffs2/yaffs_mtdif2.c
+--- yaffs2.orig/yaffs_mtdif2.c 2005-12-07 14:00:38.000000000 -0800
++++ yaffs2/yaffs_mtdif2.c 2006-02-10 17:13:58.000000000 -0800
+@@ -29,6 +29,130 @@
+
+ #include "yaffs_packedtags2.h"
+
++#define PT2_BYTES 25
++
++void nandmtd2_pt2buf(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++ int i, j = 0, k, n;
++ __u8 pt2_byte_buf[PT2_BYTES];
++
++ /* Pack buffer with 0xff */
++ for (i = 0; i < mtd->oobsize; i++)
++ dev->spareBuffer[i] = 0xff;
++
++ if (!is_raw) {
++ *((unsigned int *) &dev->spareBuffer[0]) = pt->t.sequenceNumber;
++ *((unsigned int *) &dev->spareBuffer[4]) = pt->t.objectId;
++ *((unsigned int *) &dev->spareBuffer[8]) = pt->t.chunkId;
++ *((unsigned int *) &dev->spareBuffer[12]) = pt->t.byteCount;
++ dev->spareBuffer[16] = pt->ecc.colParity;
++ dev->spareBuffer[17] = pt->ecc.lineParity & 0xff;
++ dev->spareBuffer[18] = (pt->ecc.lineParity >> 8) & 0xff;
++ dev->spareBuffer[19] = (pt->ecc.lineParity >> 16) & 0xff;
++ dev->spareBuffer[20] = (pt->ecc.lineParity >> 24) & 0xff;
++ dev->spareBuffer[21] = pt->ecc.lineParityPrime & 0xff;
++ dev->spareBuffer[22] = (pt->ecc.lineParityPrime >> 8) & 0xff;
++ dev->spareBuffer[23] = (pt->ecc.lineParityPrime >> 16) & 0xff;
++ dev->spareBuffer[24] = (pt->ecc.lineParityPrime >> 24) & 0xff;
++ } else {
++ *((unsigned int *) &pt2_byte_buf[0]) = pt->t.sequenceNumber;
++ *((unsigned int *) &pt2_byte_buf[4]) = pt->t.objectId;
++ *((unsigned int *) &pt2_byte_buf[8]) = pt->t.chunkId;
++ *((unsigned int *) &pt2_byte_buf[12]) = pt->t.byteCount;
++ pt2_byte_buf[16] = pt->ecc.colParity;
++ pt2_byte_buf[17] = pt->ecc.lineParity & 0xff;
++ pt2_byte_buf[18] = (pt->ecc.lineParity >> 8) & 0xff;
++ pt2_byte_buf[19] = (pt->ecc.lineParity >> 16) & 0xff;
++ pt2_byte_buf[20] = (pt->ecc.lineParity >> 24) & 0xff;
++ pt2_byte_buf[21] = pt->ecc.lineParityPrime & 0xff;
++ pt2_byte_buf[22] = (pt->ecc.lineParityPrime >> 8) & 0xff;
++ pt2_byte_buf[23] = (pt->ecc.lineParityPrime >> 16) & 0xff;
++ pt2_byte_buf[24] = (pt->ecc.lineParityPrime >> 24) & 0xff;
++
++ k = mtd->oobinfo.oobfree[j][0];
++ n = mtd->oobinfo.oobfree[j][1];
++
++ if (n == 0) {
++ T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR)));
++ YBUG();
++ }
++
++ for (i = 0; i < PT2_BYTES; i++) {
++ if (n == 0) {
++ j++;
++ k = mtd->oobinfo.oobfree[j][0];
++ n = mtd->oobinfo.oobfree[j][1];
++ if (n == 0) {
++ T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR)));
++ YBUG();
++ }
++ }
++ dev->spareBuffer[k++] = pt2_byte_buf[i];
++ n--;
++ }
++ }
++}
++
++void nandmtd2_buf2pt(yaffs_Device *dev, yaffs_PackedTags2 *pt, int is_raw)
++{
++ struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
++ int i, j = 0, k, n;
++ __u8 pt2_byte_buf[PT2_BYTES];
++
++
++ if (!is_raw) {
++ pt->t.sequenceNumber = *((unsigned int *) &dev->spareBuffer[0]);
++ pt->t.objectId = *((unsigned int *) &dev->spareBuffer[4]);
++ pt->t.chunkId = *((unsigned int *) &dev->spareBuffer[8]);
++ pt->t.byteCount = *((unsigned int *) &dev->spareBuffer[12]);
++ pt->ecc.colParity = dev->spareBuffer[16];
++ pt->ecc.lineParity = (dev->spareBuffer[17] & 0x000000ff) |
++ ((dev->spareBuffer[18] << 8) & 0x0000ff00) |
++ ((dev->spareBuffer[19] << 16) & 0x00ff0000) |
++ ((dev->spareBuffer[20] << 24) & 0xff000000);
++ pt->ecc.lineParityPrime = (dev->spareBuffer[21] & 0x000000ff) |
++ ((dev->spareBuffer[22] << 8) & 0x0000ff00) |
++ ((dev->spareBuffer[23] << 16) & 0x00ff0000) |
++ ((dev->spareBuffer[24] << 24) & 0xff000000);
++ } else {
++ k = mtd->oobinfo.oobfree[j][0];
++ n = mtd->oobinfo.oobfree[j][1];
++
++ if (n == 0) {
++ T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR)));
++ YBUG();
++ }
++
++ for (i = 0; i < PT2_BYTES; i++) {
++ if (n == 0) {
++ j++;
++ k = mtd->oobinfo.oobfree[j][0];
++ n = mtd->oobinfo.oobfree[j][1];
++ if (n == 0) {
++ T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR)));
++ YBUG();
++ }
++ }
++ pt2_byte_buf[i] = dev->spareBuffer[k++];
++ n--;
++ }
++ pt->t.sequenceNumber = *((unsigned int *) &pt2_byte_buf[0]);
++ pt->t.objectId = *((unsigned int *) &pt2_byte_buf[4]);
++ pt->t.chunkId = *((unsigned int *) &pt2_byte_buf[8]);
++ pt->t.byteCount = *((unsigned int *) &pt2_byte_buf[12]);
++ pt->ecc.colParity = pt2_byte_buf[16];
++ pt->ecc.lineParity = (pt2_byte_buf[17] & 0x000000ff) |
++ ((pt2_byte_buf[18] << 8) & 0x0000ff00) |
++ ((pt2_byte_buf[19] << 16) & 0x00ff0000) |
++ ((pt2_byte_buf[20] << 24) & 0xff000000);
++ pt->ecc.lineParityPrime = (pt2_byte_buf[21] & 0x000000ff) |
++ ((pt2_byte_buf[22] << 8) & 0x0000ff00) |
++ ((pt2_byte_buf[23] << 16) & 0x00ff0000) |
++ ((pt2_byte_buf[24] << 24) & 0xff000000);
++ }
++}
++
+ int nandmtd2_WriteChunkWithTagsToNAND(yaffs_Device * dev, int chunkInNAND,
+ const __u8 * data,
+ const yaffs_ExtendedTags * tags)
+@@ -51,24 +175,22 @@
+ }
+
+ if (data && tags) {
+- if (dev->useNANDECC)
+- retval =
+- mtd->write_ecc(mtd, addr, dev->nBytesPerChunk,
+- &dummy, data, (__u8 *) & pt, NULL);
+- else
++ nandmtd2_pt2buf(dev, &pt, 0);
+ retval =
+ mtd->write_ecc(mtd, addr, dev->nBytesPerChunk,
+- &dummy, data, (__u8 *) & pt, NULL);
++ &dummy, data, dev->spareBuffer,
++ NULL);
+ } else {
+ if (data)
+ retval =
+ mtd->write(mtd, addr, dev->nBytesPerChunk, &dummy,
+ data);
+- if (tags)
++ if (tags) {
++ nandmtd2_pt2buf(dev, &pt, 1);
+ retval =
+ mtd->write_oob(mtd, addr, mtd->oobsize, &dummy,
+- (__u8 *) & pt);
+-
++ dev->spareBuffer);
++ }
+ }
+
+ if (retval == 0)
+@@ -94,30 +216,24 @@
+ TENDSTR), chunkInNAND, data, tags));
+
+ if (data && tags) {
+- if (dev->useNANDECC) {
+ retval =
+ mtd->read_ecc(mtd, addr, dev->nBytesPerChunk,
+ &dummy, data, dev->spareBuffer,
+ NULL);
+- } else {
+- retval =
+- mtd->read_ecc(mtd, addr, dev->nBytesPerChunk,
+- &dummy, data, dev->spareBuffer,
+- NULL);
+- }
++ nandmtd2_buf2pt(dev, &pt, 0);
+ } else {
+ if (data)
+ retval =
+ mtd->read(mtd, addr, dev->nBytesPerChunk, &dummy,
+ data);
+- if (tags)
++ if (tags) {
+ retval =
+ mtd->read_oob(mtd, addr, mtd->oobsize, &dummy,
+ dev->spareBuffer);
++ nandmtd2_buf2pt(dev, &pt, 1);
++ }
+ }
+
+- memcpy(&pt, dev->spareBuffer, sizeof(pt));
+-
+ if (tags)
+ yaffs_UnpackTags2(tags, &pt);
+
+@@ -178,10 +294,11 @@
+ *sequenceNumber = 0;
+ *state = YAFFS_BLOCK_STATE_EMPTY;
+ }
++
++ T(YAFFS_TRACE_MTD,
++ (TSTR("block is OK seq %d state %d" TENDSTR), *sequenceNumber,
++ *state));
+ }
+- T(YAFFS_TRACE_MTD,
+- (TSTR("block is bad seq %d state %d" TENDSTR), *sequenceNumber,
+- *state));
+
+ if (retval == 0)
+ return YAFFS_OK;
diff --git a/packages/yaffs2/yaffs2-utils-native_cvs.bb b/packages/yaffs2/yaffs2-utils-native_cvs.bb
new file mode 100644
index 0000000000..7c6442b77d
--- /dev/null
+++ b/packages/yaffs2/yaffs2-utils-native_cvs.bb
@@ -0,0 +1,15 @@
+require yaffs2-utils_cvs.bb
+inherit native
+DEPENDS = ""
+
+CFLAGS += "-I.. -DCONFIG_YAFFS_UTIL"
+
+do_stage() {
+ for i in mkyaffsimage mkyaffs2image; do
+ install -m 0755 utils/$i ${STAGING_BINDIR_NATIVE}
+ done
+}
+
+do_install() {
+ :
+}
diff --git a/packages/yaffs2/yaffs2-utils_cvs.bb b/packages/yaffs2/yaffs2-utils_cvs.bb
new file mode 100644
index 0000000000..439136e2eb
--- /dev/null
+++ b/packages/yaffs2/yaffs2-utils_cvs.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Tools for managing 'yaffs2' file systems."
+SECTION = "base"
+HOMEPAGE = "http://www.yaffs.net"
+LICENSE = "GPLv2"
+PV = "0.0.0+cvs${SRCDATE}"
+PR = "r0"
+
+#
+# NOTE: This needs pretty recent mtd-utils otherwise it fails to compile
+#
+
+SRC_URI = "cvs://anonymous@cvs.aleph1.co.uk/home/aleph1/cvs;module=yaffs2 \
+ file://mkyaffs2image.patch;patch=1"
+S = "${WORKDIR}/yaffs2"
+
+CFLAGS += "-I.. -DCONFIG_YAFFS_UTIL"
+
+do_compile() {
+ cd utils && oe_runmake
+}
+
+do_install() {
+ install -d ${D}${sbindir}
+ for i in mkyaffsimage mkyaffs2image; do
+ install -m 0755 utils/$i ${D}${sbindir}
+ done
+}