Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Aug 2008 17:47:50 GMT
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 146640 for review
Message-ID:  <200808041747.m74HloQU091705@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=146640

Change 146640 by sam@sam_ebb on 2008/08/04 17:47:03

	0.10.5.10

Affected files ...

.. //depot/projects/vap/sys/contrib/dev/ath/COPYRIGHT#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/README#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/ah_desc.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/ah_devid.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/ah_soc.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/alpha-elf.hal.o.uu#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/alpha-elf.inc#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/alpha-elf.opt_ah.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap30.hal.o.uu#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap30.inc#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap30.opt_ah.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap43.hal.o.uu#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap43.inc#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap43.opt_ah.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap51.hal.o.uu#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap51.inc#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap51.opt_ah.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap61.hal.o.uu#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap61.inc#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/ap61.opt_ah.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/arm9-le-thumb-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/arm9-le-thumb-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/arm9-le-thumb-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/armv4-be-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/armv4-be-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/armv4-be-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/armv4-le-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/armv4-le-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/armv4-le-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/i386-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/i386-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/i386-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips-be-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips-be-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips-be-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips-le-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips-le-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips-le-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips1-be-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips1-be-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips1-be-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips1-le-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips1-le-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mips1-le-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mipsisa32-be-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mipsisa32-be-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mipsisa32-be-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mipsisa32-le-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mipsisa32-le-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/mipsisa32-le-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-be-eabi.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-be-eabi.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-be-eabi.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-be-elf.hal.o.uu#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-be-elf.inc#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-be-elf.opt_ah.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-le-eabi.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-le-eabi.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/powerpc-le-eabi.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sh4-le-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sh4-le-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sh4-le-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sparc-be-elf.hal.o.uu#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sparc-be-elf.inc#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sparc-be-elf.opt_ah.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sparc64-be-elf.hal.o.uu#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sparc64-be-elf.inc#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/sparc64-be-elf.opt_ah.h#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/wackelf.c#3 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/x86_64-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/x86_64-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/x86_64-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/xscale-be-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/xscale-be-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/xscale-be-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/xscale-le-elf.hal.o.uu#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/xscale-le-elf.inc#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/public/xscale-le-elf.opt_ah.h#5 edit
.. //depot/projects/vap/sys/contrib/dev/ath/version.h#5 edit

Differences ...

==== //depot/projects/vap/sys/contrib/dev/ath/COPYRIGHT#5 (text+ko) ====

@@ -4,7 +4,7 @@
 redistribution with changes.
 
 /*-
- * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting, Atheros
+ * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting, Atheros
  * Communications, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted
@@ -38,5 +38,5 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGES.
  *
- * $Id: //depot/sw/branches/sam_hal/COPYRIGHT#1 $
+ * $Id: //depot/sw/branches/sam_hal/COPYRIGHT#2 $
  */

==== //depot/projects/vap/sys/contrib/dev/ath/README#5 (text+ko) ====

@@ -1,11 +1,11 @@
-$Id: //depot/sw/branches/sam_hal/README#2 $
+$Id: //depot/sw/branches/sam_hal/README#3 $
 
 
 Atheros Hardware Access Layer (HAL)
 ===================================
 
-* Copyright (c) 2002-2006 Sam Leffler.
-* Copyright (c) 2002-2006 Atheros Communications, Inc.
+* Copyright (c) 2002-2008 Sam Leffler.
+* Copyright (c) 2002-2008 Atheros Communications, Inc.
 * All rights reserved.
 
 Read the file COPYRIGHT for the complete copyright.

==== //depot/projects/vap/sys/contrib/dev/ath/ah.h#5 (text+ko) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting, Atheros
+ * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting, Atheros
  * Communications, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted
@@ -33,7 +33,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGES.
  *
- * $Id: //depot/sw/branches/sam_hal/ah.h#19 $
+ * $Id: //depot/sw/branches/sam_hal/ah.h#32 $
  */
 
 #ifndef _ATH_AH_H_
@@ -132,6 +132,9 @@
 	HAL_CAP_11D		= 28,   /* 11d beacon support for changing cc */
 	HAL_CAP_INTMIT		= 29,	/* interference mitigation */
 	HAL_CAP_RXORN_FATAL	= 30,	/* HAL_INT_RXORN treated as fatal */
+	HAL_CAP_HT		= 31,   /* hardware can support HT */
+	HAL_CAP_NUMTXCHAIN	= 32,	/* # TX chains supported */
+	HAL_CAP_NUMRXCHAIN	= 33,	/* # RX chains supported */
 	HAL_CAP_RXTSTAMP_PREC	= 34,	/* rx desc tstamp precision (bits) */
 } HAL_CAPABILITY_TYPE;
 
@@ -304,7 +307,8 @@
 	HAL_PKT_TYPE_BEACON	= 3,
 	HAL_PKT_TYPE_PROBE_RESP	= 4,
 	HAL_PKT_TYPE_CHIRP	= 5,
-	HAL_PKT_TYPE_GRP_POLL = 6,
+	HAL_PKT_TYPE_GRP_POLL	= 6,
+	HAL_PKT_TYPE_AMPDU	= 7,
 } HAL_PKT_TYPE;
 
 /* Rx Filter Frame Types */
@@ -318,7 +322,8 @@
 	HAL_RX_FILTER_XRPOLL	= 0x00000040,	/* Allow XR poll frmae */
 	HAL_RX_FILTER_PROBEREQ	= 0x00000080,	/* Allow probe request frames */
 	HAL_RX_FILTER_PHYERR	= 0x00000100,	/* Allow phy errors */
-	HAL_RX_FILTER_PHYRADAR	= 0x00000200,	/* Allow phy radar errors*/
+	HAL_RX_FILTER_PHYRADAR	= 0x00000200,	/* Allow phy radar errors */
+	HAL_RX_FILTER_COMPBAR	= 0x00000400,	/* Allow compressed BAR */
 } HAL_RX_FILTER;
 
 typedef enum {
@@ -357,6 +362,8 @@
 	HAL_INT_DTIMSYNC= 0x00800000,	/* Non-common mapping */
 	HAL_INT_GPIO	= 0x01000000,
 	HAL_INT_CABEND	= 0x02000000,	/* Non-common mapping */
+	HAL_INT_CST	= 0x10000000,	/* Non-common mapping */
+	HAL_INT_GTT	= 0x20000000,	/* Non-common mapping */
 	HAL_INT_FATAL	= 0x40000000,	/* Non-common mapping */
 #define	HAL_INT_GLOBAL	0x80000000	/* Set/clear IER */
 	HAL_INT_BMISC	= HAL_INT_TIM
@@ -389,8 +396,8 @@
  * Channels are specified by frequency.
  */
 typedef struct {
+	u_int32_t	channelFlags;	/* see below */
 	u_int16_t	channel;	/* setting in Mhz */
-	u_int16_t	channelFlags;	/* see below */
 	u_int8_t	privFlags;
 	int8_t		maxRegTxPower;	/* max regulatory tx power in dBm */
 	int8_t		maxTxPower;	/* max true tx power in 0.5 dBm */
@@ -398,18 +405,21 @@
 } HAL_CHANNEL;
 
 /* channelFlags */
-#define	CHANNEL_CW_INT	0x0002	/* CW interference detected on channel */
-#define	CHANNEL_TURBO	0x0010	/* Turbo Channel */
-#define	CHANNEL_CCK	0x0020	/* CCK channel */
-#define	CHANNEL_OFDM	0x0040	/* OFDM channel */
-#define	CHANNEL_2GHZ	0x0080	/* 2 GHz spectrum channel. */
-#define	CHANNEL_5GHZ	0x0100	/* 5 GHz spectrum channel */
-#define	CHANNEL_PASSIVE	0x0200	/* Only passive scan allowed in the channel */
-#define	CHANNEL_DYN	0x0400	/* dynamic CCK-OFDM channel */
-#define	CHANNEL_XR	0x0800	/* XR channel */
-#define	CHANNEL_STURBO	0x2000	/* Static turbo, no 11a-only usage */
-#define CHANNEL_HALF    0x4000 	/* Half rate channel */
-#define CHANNEL_QUARTER 0x8000 	/* Quarter rate channel */
+#define	CHANNEL_CW_INT	0x00002	/* CW interference detected on channel */
+#define	CHANNEL_TURBO	0x00010	/* Turbo Channel */
+#define	CHANNEL_CCK	0x00020	/* CCK channel */
+#define	CHANNEL_OFDM	0x00040	/* OFDM channel */
+#define	CHANNEL_2GHZ	0x00080	/* 2 GHz spectrum channel */
+#define	CHANNEL_5GHZ	0x00100	/* 5 GHz spectrum channel */
+#define	CHANNEL_PASSIVE	0x00200	/* Only passive scan allowed in the channel */
+#define	CHANNEL_DYN	0x00400	/* dynamic CCK-OFDM channel */
+#define	CHANNEL_XR	0x00800	/* XR channel */
+#define	CHANNEL_STURBO	0x02000	/* Static turbo, no 11a-only usage */
+#define	CHANNEL_HALF    0x04000 /* Half rate channel */
+#define	CHANNEL_QUARTER 0x08000 /* Quarter rate channel */
+#define	CHANNEL_HT20	0x10000 /* 11n 20MHZ channel */ 
+#define	CHANNEL_HT40PLUS 0x20000 /* 11n 40MHZ channel w/ ext chan above */
+#define	CHANNEL_HT40MINUS 0x40000 /* 11n 40MHZ channel w/ ext chan below */
 
 /* privFlags */
 #define CHANNEL_INTERFERENCE   	0x01 /* Software use: channel interference 
@@ -432,8 +442,15 @@
 #define	CHANNEL_108G	(CHANNEL_2GHZ|CHANNEL_OFDM|CHANNEL_TURBO)
 #define	CHANNEL_108A	CHANNEL_T
 #define	CHANNEL_X	(CHANNEL_5GHZ|CHANNEL_OFDM|CHANNEL_XR)
+#define	CHANNEL_G_HT20		(CHANNEL_G|CHANNEL_HT20)
+#define	CHANNEL_A_HT20		(CHANNEL_A|CHANNEL_HT20)
+#define	CHANNEL_G_HT40PLUS	(CHANNEL_G|CHANNEL_HT40PLUS)
+#define	CHANNEL_G_HT40MINUS	(CHANNEL_G|CHANNEL_HT40MINUS)
+#define	CHANNEL_A_HT40PLUS	(CHANNEL_A|CHANNEL_HT40PLUS)
+#define	CHANNEL_A_HT40MINUS	(CHANNEL_A|CHANNEL_HT40MINUS)
 #define	CHANNEL_ALL \
-	(CHANNEL_OFDM|CHANNEL_CCK| CHANNEL_2GHZ | CHANNEL_5GHZ | CHANNEL_TURBO)
+	(CHANNEL_OFDM | CHANNEL_CCK| CHANNEL_2GHZ | CHANNEL_5GHZ | \
+	 CHANNEL_TURBO | CHANNEL_HT20 | CHANNEL_HT40PLUS | CHANNEL_HT40MINUS)
 #define	CHANNEL_ALL_NOTURBO 	(CHANNEL_ALL &~ CHANNEL_TURBO)
 
 #define HAL_ANTENNA_MIN_MODE  0
@@ -472,16 +489,22 @@
 	HAL_MODE_XR     = 0x100,		/* XR channels */
 	HAL_MODE_11A_HALF_RATE = 0x200,		/* 11A half rate channels */
 	HAL_MODE_11A_QUARTER_RATE = 0x400,	/* 11A quarter rate channels */
-	HAL_MODE_ALL	= 0xfff
+	HAL_MODE_11NG_HT20	= 0x008000,
+	HAL_MODE_11NA_HT20  	= 0x010000,
+	HAL_MODE_11NG_HT40PLUS	= 0x020000,
+	HAL_MODE_11NG_HT40MINUS	= 0x040000,
+	HAL_MODE_11NA_HT40PLUS	= 0x080000,
+	HAL_MODE_11NA_HT40MINUS	= 0x100000,
+	HAL_MODE_ALL	= 0xffffff
 };
 
 typedef struct {
 	int		rateCount;		/* NB: for proper padding */
-	u_int8_t	rateCodeToIndex[32];	/* back mapping */
+	u_int8_t	rateCodeToIndex[144];	/* back mapping */
 	struct {
 		u_int8_t	valid;		/* valid for rate control use */
 		u_int8_t	phy;		/* CCK/OFDM/XR */
-		u_int16_t	rateKbps;	/* transfer rate in kbs */
+		u_int32_t	rateKbps;	/* transfer rate in kbs */
 		u_int8_t	rateCode;	/* rate for h/w descriptors */
 		u_int8_t	shortPreamble;	/* mask for enabling short
 						 * preamble in CCK rate code */
@@ -500,6 +523,46 @@
 } HAL_RATE_SET;
 
 /*
+ * 802.11n specific structures and enums
+ */
+typedef enum {
+	HAL_CHAINTYPE_TX	= 1,	/* Tx chain type */
+	HAL_CHAINTYPE_RX	= 2,	/* RX chain type */
+} HAL_CHAIN_TYPE;
+
+typedef struct {
+	u_int	Tries;
+	u_int	Rate;
+	u_int	PktDuration;
+	u_int	ChSel;
+	u_int	RateFlags;
+#define	HAL_RATESERIES_RTS_CTS		0x0001	/* use rts/cts w/this series */
+#define	HAL_RATESERIES_2040		0x0002	/* use ext channel for series */
+#define	HAL_RATESERIES_HALFGI		0x0004	/* use half-gi for series */
+} HAL_11N_RATE_SERIES;
+
+typedef enum {
+	HAL_HT_MACMODE_20	= 0,	/* 20 MHz operation */
+	HAL_HT_MACMODE_2040	= 1,	/* 20/40 MHz operation */
+} HAL_HT_MACMODE;
+
+typedef enum {
+	HAL_HT_PHYMODE_20	= 0,	/* 20 MHz operation */
+	HAL_HT_PHYMODE_2040	= 1,	/* 20/40 MHz operation */
+} HAL_HT_PHYMODE;
+
+typedef enum {
+	HAL_HT_EXTPROTSPACING_20 = 0,	/* 20 MHz spacing */
+	HAL_HT_EXTPROTSPACING_25 = 1,	/* 25 MHz spacing */
+} HAL_HT_EXTPROTSPACING;
+
+
+typedef enum {
+	HAL_RX_CLEAR_CTL_LOW	= 0x1,	/* force control channel to appear busy */
+	HAL_RX_CLEAR_EXT_LOW	= 0x2,	/* force extension channel to appear busy */
+} HAL_HT_RXCLEAR;
+
+/*
  * Antenna switch control.  By default antenna selection
  * enables multiple (2) antenna use.  To force use of the
  * A or B antenna only specify a fixed setting.  Fixing
@@ -569,7 +632,7 @@
 
 /*
  * Like HAL_BEACON_STATE but for non-station mode setup.
- * NB: see above flag definitions 
+ * NB: see above flag definitions for bt_intval. 
  */
 typedef struct {
 	u_int32_t	bt_intval;		/* beacon interval+flags */
@@ -577,6 +640,10 @@
 	u_int32_t	bt_nextatim;		/* next ATIM in TU */
 	u_int32_t	bt_nextdba;		/* next DBA in 1/8th TU */
 	u_int32_t	bt_nextswba;		/* next SWBA in 1/8th TU */
+	u_int32_t	bt_flags;		/* timer enables */
+#define HAL_BEACON_TBTT_EN	0x00000001
+#define HAL_BEACON_DBA_EN	0x00000002
+#define HAL_BEACON_SWBA_EN	0x00000004
 } HAL_BEACON_TIMERS;
 
 /*
@@ -608,7 +675,7 @@
 struct ath_hal {
 	u_int32_t	ah_magic;	/* consistency check magic number */
 	u_int32_t	ah_abi;		/* HAL ABI version */
-#define	HAL_ABI_VERSION	0x06102600	/* YYMMDDnn */
+#define	HAL_ABI_VERSION	0x08060800	/* YYMMDDnn */
 	u_int16_t	ah_devid;	/* PCI device ID */
 	u_int16_t	ah_subvendorid;	/* PCI subvendor ID */
 	HAL_SOFTC	ah_sc;		/* back pointer to driver/os state */
@@ -739,6 +806,8 @@
 	HAL_ANT_SETTING	 __ahdecl(*ah_getAntennaSwitch)(struct ath_hal*);
 	HAL_BOOL  __ahdecl(*ah_setAntennaSwitch)(struct ath_hal*,
 				HAL_ANT_SETTING);
+	HAL_BOOL  __ahdecl(*ah_setSifsTime)(struct ath_hal*, u_int);
+	u_int	  __ahdecl(*ah_getSifsTime)(struct ath_hal*);
 	HAL_BOOL  __ahdecl(*ah_setSlotTime)(struct ath_hal*, u_int);
 	u_int	  __ahdecl(*ah_getSlotTime)(struct ath_hal*);
 	HAL_BOOL  __ahdecl(*ah_setAckTimeout)(struct ath_hal*, u_int);
@@ -767,7 +836,6 @@
 	HAL_POWER_MODE __ahdecl(*ah_getPowerMode)(struct ath_hal*);
 	int16_t   __ahdecl(*ah_getChanNoise)(struct ath_hal *, HAL_CHANNEL *);
 
-
 	/* Beacon Management Functions */
 	void	  __ahdecl(*ah_setBeaconTimers)(struct ath_hal*,
 				const HAL_BEACON_TIMERS *);
@@ -811,9 +879,7 @@
 /*
  * Set the Vendor ID for Vendor SKU's which can modify the
  * channel properties returned by ath_hal_init_channels.
- * Return AH_TRUE if set succeeds
  */
-
 extern  HAL_BOOL __ahdecl ath_hal_setvendor(struct ath_hal *, u_int32_t );
 
 /*
@@ -830,7 +896,7 @@
 extern	HAL_BOOL __ahdecl ath_hal_init_channels(struct ath_hal *,
 		HAL_CHANNEL *chans, u_int maxchans, u_int *nchans,
 		u_int8_t *regclassids, u_int maxregids, u_int *nregids,
-		HAL_CTRY_CODE cc, u_int16_t modeSelect,
+		HAL_CTRY_CODE cc, u_int modeSelect,
 		HAL_BOOL enableOutdoor, HAL_BOOL enableExtendedChannels);
 
 /*
@@ -845,12 +911,6 @@
 extern	u_int __ahdecl ath_hal_getwirelessmodes(struct ath_hal*, HAL_CTRY_CODE);
 
 /*
- * Return rate table for specified mode (11a, 11b, 11g, etc).
- */
-extern	const HAL_RATE_TABLE * __ahdecl ath_hal_getratetable(struct ath_hal *,
-		u_int mode);
-
-/*
  * Calculate the transmit duration of a frame.
  */
 extern u_int16_t __ahdecl ath_hal_computetxtime(struct ath_hal *,
@@ -863,6 +923,11 @@
 extern HAL_BOOL __ahdecl ath_hal_ispublicsafetysku(struct ath_hal *);
 
 /*
+ * Return if device is operating in 900 MHz band.
+ */
+extern HAL_BOOL ath_hal_isgsmsku(struct ath_hal *);
+
+/*
  * Convert between IEEE channel number and channel frequency
  * using the specified channel flags; e.g. CHANNEL_2GHZ.
  */

==== //depot/projects/vap/sys/contrib/dev/ath/ah_desc.h#5 (text+ko) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting, Atheros
+ * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting, Atheros
  * Communications, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted
@@ -33,12 +33,14 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGES.
  *
- * $Id: //depot/sw/branches/sam_hal/ah_desc.h#5 $
+ * $Id: //depot/sw/branches/sam_hal/ah_desc.h#8 $
  */
 
 #ifndef _DEV_ATH_DESC_H
 #define _DEV_ATH_DESC_H
 
+#include "opt_ah.h"		/* NB: required for AH_SUPPORT_AR5416 */
+
 /*
  * Transmit descriptor status.  This structure is filled
  * in only after the tx descriptor process method finds a
@@ -60,11 +62,32 @@
 	u_int8_t	ts_virtcol;	/* virtual collision count */
 	u_int8_t	ts_antenna;	/* antenna information */
 	u_int8_t	ts_finaltsi;	/* final transmit series index */
+#ifdef AH_SUPPORT_AR5416
+					/* 802.11n status */
+	u_int8_t    	ts_flags;   	/* misc flags */
+	int8_t      	ts_rssi_ctl[3];	/* tx ack RSSI [ctl, chain 0-2] */
+	int8_t      	ts_rssi_ext[3];	/* tx ack RSSI [ext, chain 0-2] */
+/* #define ts_rssi ts_rssi_combined */
+	u_int32_t   	ts_ba_low;	/* blockack bitmap low */
+	u_int32_t   	ts_ba_high;	/* blockack bitmap high */
+	u_int32_t  	ts_evm0;	/* evm bytes */
+	u_int32_t   	ts_evm1;
+	u_int32_t   	ts_evm2;
+#endif /* AH_SUPPORT_AR5416 */
 };
 
+/* bits found in ts_status */
 #define	HAL_TXERR_XRETRY	0x01	/* excessive retries */
 #define	HAL_TXERR_FILT		0x02	/* blocked by tx filtering */
 #define	HAL_TXERR_FIFO		0x04	/* fifo underrun */
+#define	HAL_TXERR_XTXOP		0x08	/* txop exceeded */
+#define	HAL_TXERR_DESC_CFG_ERR	0x10	/* Error in 20/40 desc config */
+#define	HAL_TXERR_DATA_UNDERRUN	0x20	/* Tx buffer underrun */
+#define	HAL_TXERR_DELIM_UNDERRUN 0x40	/* Tx delimiter underrun */
+
+/* bits found in ts_flags */
+#define	HAL_TX_BA		0x01	/* Block Ack seen */
+#define	HAL_TX_AGGR		0x02	/* Aggregate */ 
 
 /*
  * Receive descriptor status.  This structure is filled
@@ -79,7 +102,9 @@
  * for some errors (e.g. a decryption error), it may be meaningful.
  *
  * Note that the receive timestamp is expanded using the TSF to
- * 15 bits (regardless of what the h/w provides directly).
+ * at least 15 bits (regardless of what the h/w provides directly).
+ * Newer hardware supports a full 32-bits; use HAL_CAP_32TSTAMP to
+ * find out if the hardware is capable.
  *
  * rx_rssi is in units of dbm above the noise floor.  This value
  * is measured during the preamble and PLCP; i.e. with the initial
@@ -88,22 +113,45 @@
  */
 struct ath_rx_status {
 	u_int16_t	rs_datalen;	/* rx frame length */
-	u_int16_t	rs_tstamp;	/* h/w assigned timestamp */
 	u_int8_t	rs_status;	/* rx status, 0 => recv ok */
 	u_int8_t	rs_phyerr;	/* phy error code */
-	int8_t		rs_rssi;	/* rx frame RSSI */
+	int8_t		rs_rssi;	/* rx frame RSSI (combined for 11n) */
 	u_int8_t	rs_keyix;	/* key cache index */
 	u_int8_t	rs_rate;	/* h/w receive rate index */
-	u_int8_t	rs_antenna;	/* antenna information */
 	u_int8_t	rs_more;	/* more descriptors follow */
+	u_int32_t	rs_tstamp;	/* h/w assigned timestamp */
+	u_int32_t	rs_antenna;	/* antenna information */
+#ifdef AH_SUPPORT_AR5416
+					/* 802.11n status */
+	int8_t		rs_rssi_ctl[3];	/* rx frame RSSI [ctl, chain 0-2] */
+	int8_t		rs_rssi_ext[3];	/* rx frame RSSI [ext, chain 0-2] */
+	u_int8_t	rs_isaggr;	/* is part of the aggregate */
+	u_int8_t	rs_moreaggr;	/* more frames in aggr to follow */
+	u_int8_t	rs_num_delims;	/* number of delims in aggr */
+	u_int8_t	rs_flags;	/* misc flags */
+	u_int32_t	rs_evm0;	/* evm bytes */
+	u_int32_t	rs_evm1;
+	u_int32_t	rs_evm2;	
+#endif /* AH_SUPPORT_AR5416 */
 };
 
+/* bits found in rs_status */
 #define	HAL_RXERR_CRC		0x01	/* CRC error on frame */
 #define	HAL_RXERR_PHY		0x02	/* PHY error, rs_phyerr is valid */
 #define	HAL_RXERR_FIFO		0x04	/* fifo overrun */
 #define	HAL_RXERR_DECRYPT	0x08	/* non-Michael decrypt error */
 #define	HAL_RXERR_MIC		0x10	/* Michael MIC decrypt error */
 
+/* bits found in rs_flags */
+#define	HAL_RX_MORE		0x01	/* more descriptors follow */
+#define	HAL_RX_MORE_AGGR	0x02	/* more frames in aggr */
+#define	HAL_RX_GI		0x04	/* full gi */
+#define	HAL_RX_2040		0x08	/* 40 Mhz */
+#define	HAL_RX_DELIM_CRC_PRE	0x10	/* crc error in delimiter pre */
+#define	HAL_RX_DELIM_CRC_POST	0x20	/* crc error in delim after */
+#define	HAL_RX_DECRYPT_BUSY	0x40	/* decrypt was too slow */
+#define	HAL_RX_DUP_FRAME	0x80	/* Dup frame rx'd on control channel */
+
 enum {
 	HAL_PHYERR_UNDERRUN		= 0,	/* Transmit underrun */
 	HAL_PHYERR_TIMING		= 1,	/* Timing error */
@@ -143,6 +191,12 @@
  * to complete the work.  Status for completed frames is returned
  * in a device-independent format.
  */
+#ifdef AH_SUPPORT_AR5416
+#define	HAL_DESC_HW_SIZE	20
+#else
+#define	HAL_DESC_HW_SIZE	4
+#endif /* AH_SUPPORT_AR5416 */
+
 struct ath_desc {
 	/*
 	 * The following definitions are passed directly
@@ -153,7 +207,7 @@
 	u_int32_t	ds_data;	/* phys address of data buffer */
 	u_int32_t	ds_ctl0;	/* opaque DMA control 0 */
 	u_int32_t	ds_ctl1;	/* opaque DMA control 1 */
-	u_int32_t	ds_hw[4];	/* opaque h/w region */
+	u_int32_t	ds_hw[HAL_DESC_HW_SIZE];	/* opaque h/w region */
 };
 
 struct ath_desc_status {
@@ -175,6 +229,9 @@
 #define	HAL_TXDESC_VEOL		0x0020	/* mark virtual EOL */
 /* NB: this only affects frame, not any RTS/CTS */
 #define	HAL_TXDESC_DURENA	0x0040	/* enable h/w write of duration field */
+#define	HAL_TXDESC_EXT_ONLY	0x0080	/* send on ext channel only (11n) */
+#define	HAL_TXDESC_EXT_AND_CTL	0x0100	/* send on ext + ctl channels (11n) */
+#define	HAL_TXDESC_VMF		0x0200	/* virtual more frag */
 
 /* flags passed to rx descriptor setup methods */
 #define	HAL_RXDESC_INTREQ	0x0020	/* enable per-descriptor interrupt */

==== //depot/projects/vap/sys/contrib/dev/ath/ah_devid.h#5 (text+ko) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting, Atheros
+ * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting, Atheros
  * Communications, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted
@@ -33,7 +33,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGES.
  *
- * $Id: //depot/sw/branches/sam_hal/ah_devid.h#2 $
+ * $Id: //depot/sw/branches/sam_hal/ah_devid.h#5 $
  */
 
 #ifndef _DEV_ATH_DEVID_H_
@@ -70,7 +70,8 @@
 #define AR5212_AR2313_REV8      0x0058          /* AR2313 WMAC (AP43-030) */
 #define AR5212_AR2315_REV6      0x0086          /* AR2315 WMAC (AP51-Light) */
 #define AR5212_AR2315_REV7      0x0087          /* AR2315 WMAC (AP51-Full) */
-#define AR5212_AR2317_REV1      0x0091          /* AR2317 WMAC (AP61) */
+#define AR5212_AR2317_REV1      0x0090          /* AR2317 WMAC (AP61-Light) */
+#define AR5212_AR2317_REV2      0x0091          /* AR2317 WMAC (AP61-Full) */
 
 /* AR5212 compatible devid's also attach to 5212 */
 #define	AR5212_DEVID_0014	0x0014
@@ -82,6 +83,7 @@
 #define AR5212_AR2413      	0x001a          /* AR2413 aka Griffin-lite */
 #define AR5212_AR5413		0x001b          /* Eagle */
 #define AR5212_AR5424		0x001c          /* Condor (PCI express) */
+#define AR5212_AR2417		0x001d          /* Nala, PCI */
 #define AR5212_DEVID_FF19	0xff19          /* XXX PCI express */
 
 /* AR5213 */

==== //depot/projects/vap/sys/contrib/dev/ath/ah_soc.h#3 (text+ko) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2006 Sam Leffler, Errno Consulting, Atheros
+ * Copyright (c) 2006-2008 Sam Leffler, Errno Consulting, Atheros
  * Communications, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted
@@ -33,7 +33,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGES.
  *
- * $Id: //depot/sw/branches/sam_hal/ah_soc.h#3 $
+ * $Id: //depot/sw/branches/sam_hal/ah_soc.h#4 $
  */
 #ifndef _ATH_AH_SOC_H_
 #define _ATH_AH_SOC_H_

==== //depot/projects/vap/sys/contrib/dev/ath/public/alpha-elf.hal.o.uu#3 (text) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting, Atheros
+ * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting, Atheros
  * Communications, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted
@@ -33,4404 +33,6573 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGES.
  *
- * $Id: //depot/sw/branches/sam_hal/COPYRIGHT#1 $
+ * $Id: //depot/sw/branches/sam_hal/COPYRIGHT#2 $
  */
-#define	ATH_HAL_VERSION	"0.9.20.3"
+#define	ATH_HAL_VERSION	"0.10.5.10"
 begin 644 hal.o
-M?T5,1@(!`0````````````$`)I`!`````````````````````````.CP`P``
-M`````````$```````$``#@`+````NR<``+TC$`#P0Z(5"T(``#TD```!($\`
-M0/2A'0M"&@`@Y*%]`T(,`"#DH5D#0D4`(.2A70)"!0`@Y*$Y`D(X`"#DH?4`
-M0C,`(/1!`.##H74"0CP`(/0^`.##H54*0C,`(/2A70I"!0`@Y**5`T(``#TD
-M```!(#<`0/0U`.##H?4*0BH`(/0R`.##^>XP("$`(.0-`"#\HC420@``/20`
-M``$@+`!`]*$]$D($`"#D>O\P(*$W($`F`"#D'P#@P^SO,"`@`"#D(@#@P^WN
-M,"`=`"#D`P`@_.[N,"`1`"#D'`#@PP$`/R03\"$@H04!0@``720```(@%P`@
-M]`$`/R0;\2$@H04!0@``720```(@$0`@]`\`X,,``#TD```!(`&`^FL``#TD
-M```!(`&`^FL``#TD```!(`&`^FL``#TD```!(`&`^FL``#TD```!(`&`^FL`
-M!/]'`8#Z:P``NR<``+TC\/_>(P``7K>,%E\@H@4"0@$`/R0GIR$@H04!0@($
-M040#`$#T2>\P(``$_T<"`"#T$`3Q1YO_7],``%ZG$`#>(P&`^FL``+LG``"]
-M(_#_WB,``%ZW`@#P0_G](B`S`"#D#``@_*%=0D`%`"#DH3E"0"D`(.2A]4!`
-M+``@]#``X,.A=4)`'P`@].;_(B"A5R!`&@#@P^WN(B`:`"#D"0`@_/GN(B`A
-M`"#D`P`@_.SO(B`3`"#D(@#@P^[N(B`6`"#D'P#@PP$`?R0;\6,@H05#0!$`
-M(/2A#4-`!0`@Y`$`/R03\"$@H05!0`8`(/04`.##`0`_)!G_(2"A!4%`$``@
-MY!,`'R(``'VG`$!;:P``NB<``+TC#0#@PP``?:<`0%MK``"Z)P``O2,(`.##
-M``!]IP!`6VL``+HG``"](P,`X,,`!/]'`0`_(```-+`(``#D>`,@H`@`(+!\
-M`R"@+``@L(`#(*`P`""PA`,@H#0`(+```%ZG$`#>(P&`^FN(`S"R`0`?(`&`
-M^FL``+LG``"](]#_WB,``%ZW"``^M1``7K48`'ZU(`">M2@`OK4-!/!'#`3Q
-M1PL$\D<)!/]'*O9A2A`$[4<1!.Q'``!]IP!`6VL``+HG``"](P``"T0@]@%(
-MH`4*0`$`/R`)``#T"@`?(@``?:<`0%MK``"Z)P``O2,),"!!&?PI(.W_/^P!
-M!/]'``3A1P``7J<(`#ZE$`!>I1@`?J4@`)ZE*`"^I3``WB,!@/IK`P3_1S'V
-M(4H$!/%'``3_1PH`(.8!!`!``C``1@$$(D0``.%#(?8!2I`V($@#,&!`(?9A
-M2*$#)$#V_S_T`8#Z:P``NR<``+TC805S0D$$,4`F`$$L)@`A(,,"04@`!/]'
-MJ0!@Y&$%<T)!!#%`)0!!+"4`(2#"`$%(H55`0!P`(/2A74!``@`@Y`8`0.2<
-M`.##H75`0&<`(/2AE4!`?``@])<`X,/``)\@!@"`YF$%<T)!!#%`*0!!+"D`
-M(2#"`$%(Q!1,1$$20$)8!"%`6`080U@$&$-8$@!#&0#C0P``?:<`0/MJ&P1D
-M0P!084.%`.##Z!-0I!P`0.0$`$(@_O\B+$$/(DB!%R9(%P`@^"*78$A!!D)`
-M80<B0$$&(4!!!B)`000A0$$$(D!!!B)`804A0&$'(4!!!")`804B0)G6)$A!
-MUD)"`0#A0Q@$.4`X,0!#&0#Y0P``?:<`0/MJ(9=@2P`0,D!G`.##Z!-0I!L`
-M0.0"`"(L`@!"(,$"(DB!UB%(%@`@X$(68$!!!D)`80<B0$$&(4!!!B)`000A
-M0$$$(D!!!B)`804A0&$'(4!!!")`804B0)G6)$A!UD)"`0#A0Q@$.4`X,0!#
-M&0#Y0P``?:<`0/MJ019I0RL`X,-"%&!`009"0&$'(D!!!B%`008B0$$$(4!!
-M!")`008B0&$%(4!A!R%`000B0&$%(D"9UB1(0=9"0@$`X4,8!#E`.#$`0QD`
-M^4,``'VG`$#[:D&49$,5`.##0A9@0$$&0D!A!R)`008A0$$&(D!!!"%`000B
-M0$$&(D!A!2%`80<A0$$$(D!A!2)`F=8D2$'60D(!`.%#&`0Y0#@Q`$,9`/E#
-M``!]IP!`^VI!U&)#``#A0QT`X,-"%&!`009"0&$'(D!!!B%`008B0$$$(4!!
-M!")`008B0&$%(4!A!R%`000B0&$%(D"9UB1(0=9"0@$`X4,8!#E`.#$`0QD`
-M^4,``'VG`$#[:D(08$/G`S\@H0=A0`.P5T`"D$M```3C1X`$(D0!`.##``3_
-M1R!V`$@!@/IK`@`Q+`(`42#!`B)(`1`D1`(`'R`;`"#T`@`Q+`(`42#!`B)(
-M`1`Z1*$5.$`#`!\@%``@]`(`,2P"`%$@P0(B2`$0.D2A%3I`!``?(`T`(/0"
-M`#$L`@!1(,$"(D@!$")$`0`?(`<`(/0"`#$L`@!1(,$"(D@`"%\@`0`B1`4`
-M'R"`%"!$`8#Z:P``NR<``+TCX/_>(P``7K<(`#ZU$`!>M0H$\4<)!/)'`1!0
-M1@<`(.1,]C$@#@`?('H`(.2S"3\@H0<A0AH`(/1<`.##@19!2A$`(.```'VG
-M`$!;:P``NB<``+TC!```Y`($ZD>S["H@H1<F0"D`(/1``3\@`0`A1:$#X4.(
-M$U\@H@="00$`(D1(`"#T5P#@PTSV,2`.`!\@8``@Y+,)/R"A!R%"#P`@Y)GV
-M*B`!`.%#0@0A0$(&04!"!$)`8@5!0$($04`CUT%((P5B0$,$84!C!V%`@S=D
-M2('W(T@@!6%`3@#@PX<3/R"A!R%"/P`@Y```?:<`0%MK``"Z)P``O2,G``#D
-M`@3J1[/L*B"A%R9`(P`@Y$$$2D$$`"%`(O9!2$$$0D!!!B)`000A0&$%(D!!
-M!")`804B0",7(D@!!"-`000B0(%6)$A!!"%`(05!02%1($`#`"#T__\D)`T_
-M(2`"`.##__\D)`@_(2`A]B%(0@0A0$(&04!"!$)`8@5!0$($04!B!4%`(Q="
-M2`($0T!"!$%`@%9$2```X$,?`.##)!,_(*$'04$"`"#T8/`J(`\`X,,P]BH@
-M(?8A2$($(4!"!D%`0@1"0&(%04!"!$%`8@5!0",70D@"!$-`0@1!0(*61$@/
-M``(@#`#@PWCL*B`A]B%(0@0A0$(&04!"!$)`8@5!0$($04!B!4%`(Q="2`($
-M0T!"!$%`@%9$2```7J<(`#ZE$`!>I2``WB,!@/IK``"[)P``O2/P_]XC``!>
-MMP@`/K4)!/%'Z!,PIF$%*4%A!2E````A0`@`(.9&_U_3(/8!2```/20``"$@
-M``0!0```("S!`"!(```I3```7J<(`#ZE$`#>(P&`^FL``+LG``"](_#_WB,`
-M`%ZW"``^M0D$\4?H$S"F"P`@YC+_7],@]@%(```])```(2``!`%````@+Q@`
-MZ4/9`"!+``!]IP!`^VH+`.##(?8A26(%(4!B!T)`8@5!0&(%04!"!D)`(_=!
-M2",%8D!#!F%`8P5A0)N69$@`!/M'``!>IP@`/J40`-XC`8#Z:P``NR<``+TC
-MP/_>(P``7K<(`#ZU$`!>M1@`?K4@`)ZU*`"^M3``WK4.!/!'#`3Q1P0`,:`!
-M\#]$1P`@]`T$_T?__Y\@`P2-000`0RP$`",@0@!!2&$!@4@!!")$!``C/`TP
-MH$&A_:-!]O\_]`T$_T<``"R@.``@[&D%K4%)!"Q!(`!)(0@`JBPH`"D@Q0"A
-M2`L`:BTK`,D@`P2%000`0RP$`",@0@!!2&$!H4D!!")$!``C/`D`2BPI`"D@
-MP0!!2`$$H40!\#]$`02!000`02P$`&$@0@!#2&0!HTD$!()$!`"!/,L`9DD0
-M!.Y'$03L1PX`7R(3!.M'%`3_1R?^7],,`"HL+`!)($$"(DA@!P)(``0!1`P`
-M"CP0!.Y'$03L1PX`7R(3!.M'`0"?(AO^7],.`"HL+@`I(4$"*4A@!PE(``0!
-M1`X`"CP-,*!!```LH*$-+4#(_S_D``!>IP@`/J40`%ZE&`!^I2``GJ4H`+ZE
-M,`#>I4``WB,!@/IK``"[)P``O2.0`U`@,?8A2J%7)$)B`"#D```])```(2!!
-M!"%"```AH`$$H4-<`.%KN`,PH`<`X,,``"*@P7`@2`$P($0`."!$`8#Z:P@`
-M(J#!4B!((78@2```,[``!/]'`8#Z:P@`(J#Z___#```BH($V(D@G`.##```B
-MH,%2($@`!/]'@+(A1`&`^FL``"*@`9`@1`(`X,,``"*@`1`A1*$#X4,`!/]'
-M@+0A1`&`^FL``"*@`1`B1/G__\.H`S"@Y?__PS+V04JA-4!"!P`@]``$_T<S
-M`$#FH55`0@<`(/2A=4!"!P`@]"<`X,.L`S"@(1<F2($7)DC7___#K`,PH-/_
-M_\.P`S"@T___PP``(J"!5B)(``3_1\"R(40!@/IK```BH(%V(DCZ___#```B
-MH($6(4CW___#```BH(&V(DCT___#```BH('6(DCQ___#,O9!2J$U0$('`"#T
-M`P!`YJ%50$(&`"#T!P#@PP``(J"!]B)(Y___PP04,*#)___#`!0PH+/__\,-
-M`!\@`8#Z:R`4,*##___#%``BH*[__\,,`!\@`8#Z:S'V(4JA-2-"#@`@]*$W
-M(T(#`"#DH?4A0@0`(/0;`.##H=4C0A<`(/08`.##H75`0A8`(.2AEV!"%``@
-MY+`#<+((`.##,O9!2J$U0$(#`"#TH55`0@4`(/0,`.##H0/S0P04,+`!`!\@
-M`8#Z:P`44*`BEE]((79@2@$$(D0`%#"P^/__PR`4<++V___#`@"`Y@P`/R``
-M`#2P``3_1P&`^FL``+LG``"]([#_WB,``%ZW"``^M1``7K48`'ZU(`">M2@`
-MOK4P`-ZU.`#^M0T$\$=``#ZV2`!>M@H$\T<+!/)'#P3_1Z'W8$(A`"#T`P#?
-M(4``7J1!!.)!``!!+,D"04@"`$$L`@`A(,("04@A%R))`00B1```*[`$`&LA
-M*I%`02SV04@0!.U'$03I1P``?:<`0%MK``"Z)P``O2,```NP!`!K(0F0($$J
-MD4!!(O8A2:('3$`A]D%)H0/!00(`043P_U_T#S#@0:'W0$'@_S_D2``^I"`!
-M84$``%ZG"``^I1``7J48`'ZE(`">I2@`OJ4P`-ZE.`#^I5``WB,!@/IK``"[
-M)P``O2/P_]XC``!>MP@`/K4)!/5'H;4A0@T`(/2AO2%"`@`@Y`8`(.8B`.##
-MH;4C0@T`(/2AU2-"$``@]!T`X,-X`S`@```TM!``/R`)`.##``!UHA$$\D<`
-M`%2FJ?]?TP``";`1`.##"!0P(```-+08`#\@```IL`P`X,,&`&#V!``_(```
-M-;```%2DM`,PH```(K`%`.##H95@0@`$_T<%`"#D```RH+0#,+`!`!\@`0#@
-MPP`$_T<``%ZG"``^I1``WB,!@/IK!``QH``$_T=X`"#D```RH```,;`$`#*@
-M"``QL`@`,J`,`#&P#``RH!``,;`0`#*@(O8A2/__/R"!%B1(H05!0`0`(/2A
-M\U]`@O0_1`$$XD<!`.##`@`_(!0`,;`4`#*@)/8A2/__/R"!%B1(H06!0!(`
-M(/0`!%\@HP."0`$`/R`8`#&PP@1D1`,$XD<!`#\@H0,B0`L`(.0!`%\@`01"
-M0`$T($0"!.%'(?8A2*$#(T#Z_S_T&`!1L`(`X,,4`#*@&``QL!@`,J`D]B%(
-M__\_(($6)$BA!8%`$@`@]``$7R"C`X)``0`_(!P`,;#"!&1$`P3B1P$`/R"A
-M`R)`"P`@Y`$`7R`!!$)``30@1`($X4<A]B%(H0,C0/K_/_0<`%&P`@#@P_\#
-M/R`<`#&P'``RH"-V($@(`&#DH?-A0"``4:`BEE](#P"?(,0$(T0!!.1'`00B
-M1`,`X,,@`#&@(98_2`%4(40@`#&P'``RH,)2($@(`$#DH?-!0(+T(40@`#&@
-M(78^2&)30$@"!$%$(`!1L`4`X,,@`%&@(G9>2`H`/R0!!$%$(``QL"``,J`D
-M`#&P)``RH"@`,;`H`#*@+``QL"P`,J`P`#&P!``RH*&5($`%`"#D!``QH"+V
-M(4BA-4!``0`@Y#@`4;`!`!\@`8#Z:P0`,J``!/]')``@Y`P`,J`(`#&P```R
-MH```,;`(`#*@!``QL`P`,J`(`#&P$``RH`P`,;`4`#*@$``QL!@`,J`4`#&P
-M'``RH!@`,;`@`#*@'`!1H"*67T@A=B!(`00B1!P`,;`@`%*@(78^2"*604@"
-M!$%$'`!1L"0`,J`@`#&P*``RH"0`,;`L`#*@*``QL#``,J`L`#&P`0`?(`&`
-M^FL``+LG``"](^#_WB,``%ZW"``^M1``7K48`'ZU"@3P1PL$\4<``'VG`$!;
-M:P``NB<``+TC"03@1P`$_T<>`"#E%``IH($7(D@4`"#T$`3J1Q$$ZT?Z_%_3
-M(/8!2``$`$```#TD```A(`L$`4!H`VJG$`3J1Q$$Z4<`0%MK``"Z)P``O2,`
-M`"LLP0(K2``$`4`@%P9(@!<&2`<`X,,4`"F@P5(@2!@`2:#"$D!(`00B0"$7
-M)DB`%R9(``!>IP@`/J40`%ZE&`!^I2``WB,!@/IK``"[)P``O2.0_]XC``!>
-MMP@`/K40`%ZU&`!^M2``GK4H`+ZU,`#>M3@`_K4,!/!'4`#^MT``_K=8`/ZW
-M2`#^MPL$_T?@$S"@4P`@Y"'78$D-!(%!X`--(10`*J$A%R1)@1<F2$8`(/@0
-M!.Q'$03J1[_\7],/`.!#(?;A20$$(4```%TD``!"(`X$(D#)4B!)``!N+&``
-M?K3!`FY("00A06@#;*<0!.Q'$03J1P!`6VL``+HG``"](P`$"4`@%P9(@!<&
-M2.`#+:#!<"!(%``@X%@`7J2A"0)`*0`@Y%@`'K1H`VRG$`3L1Q$$ZD<`0%MK
-M``"Z)P``O2,4`"J@P5(@2``$`4!@`'ZDP0)N2"$%($`A%R9(@1<F2$@`/K08
-M`.##4`!>I*$)`D`5`"#D4``>M"GVX4D)!"E!``!])```8R`)!"-!:`-LIQ`$
-M[$<1!.I'`$!;:P``NB<``+TC%``JH,%2($@`!`%````I+,$"*4@A!2!`(1<F
-M2($7)DA``#ZT"S!@0>`3+*`A]B%((O9A2:$'(D"M_S_D"P3_1P`!OR$AUV!)
-M"02!0>`#22$4`"J@@1<B2!,`(/AH`VRG$`3L1Q$$ZD<`0%MK``"Z)P``O2/@
-M`RF@P5(@2`$`+41(`'ZD`@0#0$``?J0`!`-`P`0B1!@`*J`AEC]((G8`2`($
-M0408`$JP"S!@0:']9T'D_S_T``!>IP@`/J40`%ZE&`!^I2``GJ4H`+ZE,`#>
-MI3@`_J5P`-XC`8#Z:P``NR<``+TC```PH"%V($@!,%\@H0<B0```720``*(@
-M`@`@]```/20``*$@`P3_1V0`GR`"!&-``@1%0```(BS!`B)(`@`R3"$%@4`!
-M`#%,`@!!0$$$0D!A!2)`000A0$$&(D!A!R)`008A0&$%(D!A!R%`80<B0$$&
-M(D!A!R%``00A0`$$(D"!MR1(@O=#2"(%(D```#,L00(S2&(#4T@"!$%$``!3
-M/`(`<R(#,&!`H5UA0-__/_0!@/IKH?4_0O\`'R`2`"#T``!0H")V0$@",#\@
-MH@=!0$$$,4+`$B$@('8@2`D`0.2AUR="0@0Q0B(50B`@=D!(!``@Y$$$,4(!
-M!"%`[!,A("!V($@``.!#`8#Z:Z'U/T+_`!\@"@`@]```,*`A=B!(`C!?(*$'
-M(D!@"5$@('9`2`(`(/3\"#$@('8@2```X$,!@/IK``"[)P``O2/`_]XC``!>
-MMP@`/K40`%ZU&`!^M2``GK4H`+ZU"03P1PT$\4<``#&@(78@2/\_7R"A!R)`
-M!P`@]"P`,:#!4B!(!``@Y!0`,:#!4B!(`0!?(-X`(.0``"V@(78@2`(P7R"A
-M!R)`+0`@]%`!7R$,!/]'=`$MH,%2($B^`"#D$03J1P$`*B`J=B!($0#Q0R@#
-M::<0!.E',`!>(@!`6VL``+HG``"](P($_T?(``#D`P2,00,$;4!@`:,@,``^
-M+#``7B#!`B)(@18A2`(`12QB`8,@0@)$2&$#)$@!!")$`@`E/#``/BPP`%X@
-MP0(B2`(`1"QD`6,@0@)#2&$!(T@!!")$`@`D/`Q0@$%T`2V@P5(@2*$-+$#9
-M_S_DE@#@PP$!7R$H`VFG$`3I1P`!/R(P`%XB`$!;:P``NB<``+TC`@3_1Z(`
-M`.0P`'XL,``^(,0"84B"-H%(8`$MH"%V/DAB4T!(`@1!1&`!3;"$5H!(,`!>
-M(,,"8D@CMV!(`1!L1`3PCT1A4R!(`00D1&0!+;`1!.I'`0`J("IV($@1`/%#
-M*`-IIQ`$Z4<2!.)'`$!;:P``NB<``+TC`@3_1X0``.0P`'XL,``^(,0"84B%
-M=H%(9`%-H,%20$@!!*%$(G9>2&%3($@!!")$9`$ML(26@$@P`%X@PP)B2$,6
-M8$`!$&]$!/"/1&%3($@!!"1$:`$ML!$$ZD<!`"H@*G8@2!$`\4,H`VFG$`3I
-M1Q($XD<`0%MK``"Z)P``O2,"!/]'9```Y#``?BPP`#X@Q`)A2(6V@4AH`4V@
-MP5)`2`$$H40B=EY(85,@2`$$(D1H`2VPA-:`2#``7B##`F)(`P1C0`'0;T0$
-M\(]$85,@2`$$)$1L`2VP$03J1P$`*B`J=B!($0#Q0R@#::<0!.E'$@3B1P!`
-M6VL``+HG``"](P($_T=$``#D,`">+#``/B##`H%(A?9A2&P!3:#!4D!(`02A
-M1")V7DAA4R!(`00B1&P!+;""%F%(@S9@2`'P;T0"\$]$85,@2`$$(D1P`2VP
-M,`!>(,0"@D@DUX!(`A"(1'0!+:`AEC]((G9`2`($041T`4VP$03J1R@#::<0
-M!.E',`!>(@!`6VL``+HG``"](P($_T<@``#D,``^+#``7B#!`B)(@58A2'0!
-M3:`!!")$(I9?2"%V($@!!")$=`$ML`P$_T=T`2V@P5(@2!$`(.0)!(Q!"00M
-M06`!:2$"`$LM8@$I(=$"24D0!.U'\?Y?TTH"24E@!PE(``0*1`(`"SP,,(!!
-M=`$MH,%2($BA#2Q`[_\_Y`$`7R``!.)'``!>IP@`/J40`%ZE&`!^I2``GJ4H
-M`+ZE0`#>(P&`^FL``+LG``"](^#_WB,``%ZW"``^M1``7K48`'ZU"03R1Q0`
-M42P4`#$@R@)!2`L$\4=P!4I!<`<00@$$2D$#`"$@@58@2!`$`4)0%`!"``!]
-MIP!`6VL``+HG``"](P$$_T=5``#D```)M`$$2D$#`"$@@58@2$$$($`0`"FT
-M"``IH"&6/T@!!$%%"``IL`<$_T=(`$#E!`#_(@,`WR((`.I#``"II`0$YT`%
-M!(5`$`!)I&$%YT!A!R%`000B0`0$BT```$0LPP)$2```02Q"`D%(8P-A2`,$
-M8D0``&$\```D+,(")$@``"4L00(E2&(#14@"!$%$``!%/`4$_T=A!>=`80<A
-M0$84($`0`$FD`@3"0$0$I4!$%(!``@2"0`0`0B```&(L0P)B2&$#HD@!!"-$
-M```B/!``*:0!!,%`!`2!0`8`A"```"0L00(D2```)#P%,*!`H7V@0.O_/_00
-M`(FD8@7G0&('0D!"%$!`!`1$0`8`9"P&`"0@0P)A2&$#X4H!!"-$!@`D/!``
-M*:0"!$%`0@!B+$(`(B!#`F%(80/!2@$$(T1"`"(\!S#@0*$)Z$"[_S_T`0`_
-M(``$X4<``%ZG"``^I1``7J48`'ZE(`#>(P&`^FOP_]XC%@!1+!8`,2#$`D%(
-M"``RH"%V/DAD4X!(!`2!1`@`DK"MWG\@``!>H"*67TAA$V!(`01!1"%V/DAC
-M4V!(`P0C1```?K`&!/]'!03_1\12@$B!!X5(#``@X*$]P$``!/]'9`$@Y`$$
-MYD<&,,!``00A0`$$/D```&$L0P)A2&(#H4@"!$-$``!!/`4PH$"A?:!`[_\_
-M]!0`,2P4`'$@"`!2H"*67TC!`B-(`00B1`@`,K`A=B!(``3_1TX!(.0'!/]'
-M"``RH"%V($A)`2#D`0`?):W>""$$`-\B`P#_(F,%YT!$!&=`!`2$0`0$)$(8
-M`,0@$`"RI&,'8T!#%&!`!01E0```)BS"`B9(```E+$$")4AB`T5(`@1!1```
-M13P0`#*D`P1A0!(`)BPJ`(0@P0(D2`(`0RP"`(,@0@)$2&$#)$@!!")$`@`C
-M/`4$_T=A!>=`80<A0$,4($`0`%*D`@1B0$$$I4!!!")`!@`A(```02Q"`D%(
-M``!!/`4PH$"A?:!`]?\_]```7J#!4D!(H04H0%T`(.0E=D!(9`7G0&0'A$!!
-M!*5`!`2!0!``,J1$!(%`!`"D(`(`12P&`"0@0@)!2&$#P4H!!")$`@`E/`(`
-M1BP"`"8@P0)!2`0`12P(`&0@0@)#2&$#(T@!!")$!``E/,$"(T@&`&8L!@!&
-M(,("8D@!!")`!@!%+`H`9"!"`D-(80,C2`$$(D0&`"4\P0(C2`H`9BP*`$8@
-MP@)B2`$$(D`(`$4L#`!D($("0TAA`R-(`00B1`@`)3S!`B-(#@!F+`X`1B#"
-M`F)(`00B0`H`12P.`&0@0@)#2&$#(T@!!")$"@`E/`0`1BP$`"8@P0)!2`P`
-M12P0`&0@0@)#2&$#(T@!!")$#``E/`@`1BP(`"8@P0)!2`X`12P2`&0@0@)#
-M2&$#(T@!!")$#@`E/`P`1BP,`"8@P0)!2!``12P4`&0@0@)#2&$#(T@!!")$
-M$``E/!``1BP0`"8@P0)!2!(`12P6`(0@0@)$2&$#)$@!!")$$@`E/+4`X,,0
-M`%*D9`7G0&0'A$!$%(!``@2"0```/J`A=B!(000A0$$$(D`(`"$@`@!F+`(`
-M1B##`F)(``!!+$("04AC`V%(`P1B1```83P0`%*D`@2"0```/J#!4B!(000A
-M0$$$(D`(`"$@``!A+$,"84@4`%\@8@-!2`($0T0``$$\$`!2I`($@D```#Z@
-MP5(@2$$$(4!!!")`"@`A(```82Q#`F%((P!?(&(#04@"!$-$``!!/!``4J0"
-M!()````^H,%2($A!!"%`000B0`P`(2```&$L0P)A2#\`7R!B`T%(`@1#1```
-M03P``#Z@)78@2$$$I4!%!"1`$``RI`4$H4`$`*4@`@!%+`(`)2!"`D%(80/!
-M2@$$(D0"`"4\!`!%+`0`)2#!`D%(!@!F+`8`1B#"`F)(`00B0`8`12P&`&4@
-M0@)#2&$#(T@!!")$!@`E/,$"(T@*`&8L"@!&(,("8D@!!")`"`!%+`@`92!"
-M`D-(80,C2`$$(D0(`"4\P0(C2`X`9BP.`$8@P@)B2`$$(D`*`$4L"@!E($("
-M0TAA`R-(`00B1`H`)3P$`$8L!``F(,$"04@,`$4L#`!E($("0TAA`R-(`00B
-M1`P`)3P(`$8L"``F(,$"04@.`$4L#@!E($("0TAA`R-(`00B1`X`)3P,`$8L
-M#``F(,$"04@0`$4L$`!E($("0TAA`R-(`00B1!``)3P0`$8L$``F(,$"04@2
-M`$4L$@!E($("0TAA`R-(`00B1!(`)3P``#Z@Q5(@2$$$I4!%!"1`$``RI`4$
-MH4`$`*4@`@!%+`(`)2!"`D%(80/A2@$$(D0"`"4\%`!&+!0`)B#!`D%(#`!%
-M+`P`92!"`D-(80,C2`$$(D0,`"4\%@!&+!8`)B#!`D%(#@!%+`X`92!"`D-(
-M80,C2`$$(D0.`"4\&`!&+!@`)B#!`D%($`!%+!``92!"`D-(80,C2`$$(D00
-M`"4\!S#@0`@`,J`A=B!(H0TG0+O^/^0!`!\@$`#>(P&`^FL``+LG``"](W#^
-MWB,``%ZW"``^M1``7K48`'ZU(`">M2@`OK4P`-ZU"@3P1PT$\4=0`7\A#@3_
-M1PP$_T>A-<!!/0`@]*$]P$$"`"#D!`#`Y6\`X,.A5<!!4@`@]&P`X,,4`"V@
-MP5(@2+4!(.2A/8%!:0`@Y!$$ZT<+,&!!*`-JIQ`$ZD=``%XB`$!;:P``NB<`
-M`+TC`03_1ZT!`.1``#XN0`!>(,$"(DH!\#]$6@`@Y`D$[$<,,(!!"00I00D$
-M(D$(`"DAT0(B2A'P/T80!.U'M/Q?TP``*2Q!`BE(8`<)2``$`40```D\0``^
-M+$``?B#!`B-(D18A2$<`(.8)!.Q'##"`00D$*4$)!"-!"``I(1`$[4>C_%_3
-M```I+$$"*4A@!PE(``0!1```"3RA/8%!T/\_]#@`X,,8`"V@P5(@2'\!(.0)
-M!/]'`00I00$$+4!4`6$L5`%!(,$"8DBA]3]`#``@]`$$[$<,,(!!`00A0$``
-MGB`!!"1`"``A(,,"8D@``$$L0@)!2&,#84@#!&)$``!A/`DP($&A72!!ZO\_
-M]!T`X,,<`"V@(78@2&0!(.0)!/]'`00I00$$+4!.`6$L3@%!(,$"8DBA]3]`
-M#``@]`$$[$<,,(!!`00A0$``GB`!!"1`"``A(,,"8D@``$$L0@)!2&,#84@#
-M!&)$``!A/`DP($&A72!!ZO\_]`(`X,,!!/]'3@'@PV@`'B(<`3\B``!]IP!`
-M6VL``+HG``"](WP`7BQ\`#X@0@)!2&$#@4D!!")$?``^/`D$_T<A`8#M`P0I
-M04``/B`#!&%`*`"#(`@`8R```",LP@(C2```)"Q!`B1(8@-$2`($040``$0\
-M804I04$$*4`!!"%`0`!>(`$$(D`X`($@``!#+,("0T@(`&0L0``A($,"84AB
-M`T%(`@1#1`@`1#P1!.M'"S!@02@#:J<0!.I'0`!>(@!`6VL``+HG``"](P$$
-M_T<<`0#D9`4I040$B4`$!(1`0`!^(`0$@T`X`*0@0``^+,("(T@"\%]$P0(C
-M2`$0,$2A`^%#(1<A2"$%04`,`$4L1`!D($("0TAA`R-(`00B1`P`)3Q``#XL
-M0`!>(,$"(DB"%B%(@?8A2"$7(4@A!4%`$`!%+$@`A"!"`D1(80,D2`$$(D00
-M`"4\$03K1PLP8$$H`VJG$`3J1T``7B(`0%MK``"Z)P``O2,!!/]'\0``Y&,%
-M*4%#!&E``P1C0$``GB`#!&1`.`"C($``/BS"`B1(`O!?1,$")$@!$#!$H0/A
-M0R$7(4@A!4%`%`!%+$P`@R!"`D1(80,D2`$$(D04`"4\2`"#($``/BQ``%X@
-MP0(B2((6(4B!]B%((1<A2"$%04`(`$0L4`!C($("0TAA`R-(`00B1`@`)#P1
-M!.M'"S!@02@#:J<0!.I'0`!>(@!`6VL``+HG``"](P$$_T?%``#D8P4I04,$
-M:4`#!&-`0`">(`,$9$`X`*,@0``^+,$")$@!\"-$#@!%+$8`@R!"`D1(80,D
-M2`$$(D0.`"4\0``^+$``7B#!`B)(@;8@2`'P(T02`$4L2@"#($("1$AA`R1(
-M`00B1!(`)3Q``#XL0`">(,$")$B!5B%(`?`C1!8`12Q.`&,@0@)#2&$#(T@!
-M!")$%@`E/!$$ZT<+,&!!*`-JIQ`$ZD<2!.1'`$!;:P``NB<``+TC`03_1Y8`
-M`.1C!2E!0P1I0`,$8T!``#X@`P1A0$@`HR!``#XL0`">(,(")$@"\%]$P0(D
-M2`$0,$2A`^%#(1<A2"$%04`,`$4L5`"#($("1$AA`R1(`00B1`P`)3Q``#XL
-M0`!>(,$"(DB"%B%(@?8A2"$7(4@A!4%`#@!%+%8`8R!"`D-(80,C2`$$(D0.
-M`"4\$03K1PLP8$$H`VJG$`3J1T``7B(`0%MK``"Z)P``O2,!!/]':@``Y&$%
-M*4%!!"E``00A0$``?B`%!"-`2`"%($``/BS"`B-(`O!?1,$"(T@!$#!$H0/A
-M0R$7(4@A!4%`$`!$+%@`92!"`D-(80,C2`$$(D00`"0\```MH"%V($@"0%\@
-MH0<B0!4`(/0(`$0L4``E(,$"04@*`$0L4@!E($("0TAA`R-(`00B1`H`)#PX
-M`(4@0``^+$``7B#!`B)(@18A2`'P)T0*`$0L0@!E($("0TAA`R-(`00B1!D`
-MX,-B!2E!0@1)0`($0D!``'X@`@1#0$@`HB!``#XLP0(C2(,6(4B!]B%((1<A
-M2"$%84`*`&4L4@""($,"9$AA`R1(`00C1`H`)3PX`((@"@!D+$(`0B!#`F)(
-M`0`_(&$#(D@!!"-$"@`D/`DP($&A"2Q!W_X_]`$$SD$!!"U`:`!!+&@`(2#!
-M`D%(?@!>+'X`?B!"`D-(80,C2`$$(D1^`#X\<@7.05(&34)H#5(B$`3J1V@`
-M/B)'_%_3`03_1PP``.1R!<Y!4@9-0F@-4B(0!.I':``^(K+\7],!!/]'!```
-MY`XPP$&A7<!!._X_]`$`/R``!.%'``!>IP@`/J40`%ZE&`!^I2``GJ4H`+ZE
-M,`#>I9`!WB,!@/IK``"[)P``O2/@_]XC``!>MP@`/K40`%ZU"@3Q1PD$_T=A
-M!2E!008J0&@-`:8%``#F:`WAMP``?:<`0%MK``"Z)P``O2,),"!!H5T@0?3_
-M/_0``%ZG"``^I1``7J4@`-XC`8#Z:Q0`4"P4`#`@0@)!2&$'(4H!!")$%``P
-M/!8`4"P6`#`@Q`)!2`,P@$0"4(!$H@/B0Z$#XT,!`"$@PP1!1`&0@$2A`^%#
-M`@`@Y`$`(R`C=B!(`1"!1*$#X4,"`"#D`0`C("-V($@%!/]'(``@Y@8$XT<"
-M!*5``0120```82P"!%!`Q`)A2```8BQ#`F)(80."2`$$(T0``"(\806E0$$$
-M)4!A!25``00A0`$$,$`8`&$@``!#+$("0TAD`X-(!`2"1```@SP:`"$@``!A
-M+$,"84AB`\%(`@1#1```03P!`"4@)78@2*$#L4#A_S_T`8#Z:P``NR<``+TC
-M@/_>(P``7K<(`#ZU$`!>M1@`?K4@`)ZU*`"^M3``WK4X`/ZU#`3P1PT$\4=H
-M`%ZV<`!^M@X$]$</!/5'*W9@2@H$_T=2`(#F$03K1P$`*R`K=B!($0#Q0R@#
-M;*<0!.Q'0`!>(@!`6VL``+HG``"](P$$_T=-`P#D0``^+D``7B#!`B)*`?`_
-M1$$`(.0+`.#U"03J1P$`*B`J=B!("00I00D$(D$(`"DAT0(B2A'P/T80!.U'
-MAOI?TPP`X,,)!.I'`0`J("IV($@)!"E!0`!^(`D$(T$(`"DA0``^+-$"(T@1
-M\#]&$`3M1X_Z7],``"DL00(I2&`'"4@`!`%$```)/$``/BQ``%X@P0(B2)$6
-M(4@?`"#F"0#@]0D$ZD<!`"H@*G8@2`D$*4$)!")!"``I(1`$[4=F^E_3#`#@
-MPPD$ZD<!`"H@*G8@2`D$*4%``'X@"00C00@`*2%``#XNT0(C2I$6(4H0!.U'
-M;_I?TP``*2Q!`BE(8`<)2``$`40```D\(?9!22+VP4FA`R)`KO\_]&@`'J81
-M!.I'2`!>(EK_7],A]L%)@38@2'``7J0!!$%`*W8@2`H$_T=H`'ZD%``C+!0`
-M0R#!`B)(]P(@Y&$%2D%!!"I`804J0`$$(4!H`%ZD`01!0!@`(2$"`$DL&@`A
-M(,("04AW`$#D$03K1P$`*R`K=B!($0#Q0R@#;*<0!.Q'0`!>(@!`6VL``+HG
-M``"](P$$_T?A`@#D0``^+$``?B#!`B-(`?`C1`P`22P,`&D@0@)#2&$#(T@!
-M!")$#``I/$``/BQ``%X@P0(B2(&V($@!\"]$!`!)+`0`:2!"`D-(80,C2`$$
-M(D0$`"D\0``^+$``?B#!`B-(@98A2#P`22P\`&D@0@)#2&$#(T@!!")$/``I
-M/!$$ZT<!`"L@*W8@2!$`\4,H`VRG$`3L1T``7B(`0%MK``"Z)P``O2,!!/]'
-MM@(`Y$``/BQ``%X@P0(B2`'P)T04`$DL%`!I($("0TAA`R-(`00B1!0`*3Q`
-M`#XL0`!^(,$"(TB!UB!(`?`A1$0`22Q$`&D@0@)#2&$#(T@!!")$1``I/$``
-M/BQ``%X@P0(B2(%6(4@<`$DL'`!I($("0TAA`R-(`00B1!P`*3P1!.M'`0`K
-M("MV($@1`/%#*`-LIQ`$[$=``%XB`$!;:P``NB<``+TC`03_1XL"`.1``#XL
-M0`!^(,$"(T@!\"%$3`!)+$P`:2!"`D-(80,C2`$$(D1,`"D\0``^+$``7B#!
-M`B)(@98@2`'P)T0D`$DL)`!I($("0TAA`R-(`00B1"0`*3P"`"DL`@!)(,$"
-M(DBA-R!`DP`@]$``/BQ``'X@P0(C2(%6(4@!\"-$#@!)+`X`:2!"`D-(80,C
-M2`$$(D0.`"D\0``^+$``7B#!`B)(@?8A2`8`22P&`&D@0@)#2&$#(T@!!")$
-M!@`I/!$$ZT<!`"L@*W8@2!$`\4,H`VRG$`3L1T``7B(`0%MK``"Z)P``O2,!
-M!/]'4`(`Y$``7BQ``'X@P@)#2`+P1T0"!$)`!@")+`8`:2#!`H-(`01!1$0"
-M@TAA`R-(`00D1`8`*3Q``#XL0`!>(,$"(DB!UB!(`?`A1#X`22P^`&D@0@)#
-M2&$#(T@!!")$/@`I/$``/BQ``'X@P0(C2(%6(4@6`$DL%@!I($("0TAA`R-(
-M`00B1!8`*3P1!.M'`0`K("MV($@1`/%#*`-LIQ`$[$=``%XB`$!;:P``NB<`
-M`+TC`03_1R("`.1``#XL0`!>(,$"(D@!\"%$1@!)+$8`:2!"`D-(80,C2`$$
-M(D1&`"D\0``^+$``?B#!`B-(@98@2`'P)T0>`$DL'@!I($("0TAA`R-(`00B
-M1!X`*3Q``#XL0`!>(,$"(DB!5B%(`?`A1$X`22Q.`&D@0@)#2&$#(T@!!")$
-M3@`I/$``/BQ``'X@P0(C2('6(4@F`$DL)@!I($("0TAA`R-(`00B1"8`*3P1
-M!.M'`0`K("MV($@1`/%#*`-LIQ`$[$=``%XB`$!;:P``NB<``+TC`03_1^P!
-M`.1``%XL0``^(,("04@"\$%$0A1`0"8`B2PF`&D@P0*#2`$$041$`H-(80,C
-M2`$$)$0F`"D\,P#@PP(`*2P"`$D@P0(B2*$U($`N`"#D0``^+$``7B#!`B)(
-M@58A2`'P(414`$DL5`!I($("0TAA`R-(`00B1%0`*3Q``#XL0`!^(,$"(TB!
-MUB%(+`!)+"P`:2!"`D-(80,C2`$$(D0L`"D\$03K1P$`*R`K=B!($0#Q0R@#
-M;*<0!.Q'0`!>(@!`6VL``+HG``"](P$$_T>X`0#D0`!>+$``/B#"`D%(`O!!
-M1$(40$`L`(DL+`!I(,$"@T@!!$%$1`*#2&$#(T@!!"1$+``I/`(`*2P"`$D@
-MP0(B2*%7($![`"#T0``^+$``7B#!`B)(@98@2`'P(T00`$DL$`!I($("0TAA
-M`R-(`00B1!``*3Q``#XL0`!^(,$"(TB!-B%("`!)+`@`:2!"`D-(80,C2`$$
-M(D0(`"D\$03K1P$`*R`K=B!($0#Q0R@#;*<0!.Q'0`!>(@!`6VL``+HG``"]
-M(P$$_T>%`0#D0``^+$``7B#!`B)(`?`A1$``22Q``&D@0@)#2&$#(T@!!")$
-M0``I/$``/BQ``'X@P0(C2(&6($@!\"=$&`!)+!@`:2!"`D-(80,C2`$$(D08
-M`"D\0``^+$``7B#!`B)(@58A2`'P(41(`$DL2`!I($("0TAA`R-(`00B1$@`
-M*3Q``#XL0`!^(,$"(TB!UB%((`!)+"``:2!"`D-(80,C2`$$(D0@`"D\$03K
-M1P$`*R`K=B!($0#Q0R@#;*<0!.Q'0`!>(@!`6VL``+HG``"](P$$_T=/`0#D
-M0`!>+$``/B#"`D%(`O!!1$(40$`@`(DL(`!I(,$"@T@!!$%$1`*#2&$#(T@!
-M!"1$(``I/$``/BQ``%X@P0(B2(&6($@!\"%$4`!)+%``:2!"`D-(80,C2`$$
-M(D10`"D\0``^+$``?B#!`B-(@18A2`'P)T0H`$DL*`!I($("0TAA`R-(`00B
-M1"@`*3P;`.##`@`I+`(`22#!`B)(H54@0!8`(.1``#XL0`!>(,$"(DB!EB!(
-M`?`A1%8`22Q6`&D@0@)#2&$#(T@!!")$5@`I/$``/BQ``'X@P0(C2($6(4@!
-M\"=$+@!)+"X`:2!"`D-(80,C2`$$(D0N`"D\`@`I+`(`22#!`B)(H7<@0,\`
-M(/1``#XL0`!>(,$"(DB!UB%($@!)+!(`:2!"`D-(80,C2`$$(D02`"D\$03K
-M1P$`*R`K=B!($0#Q0R@#;*<0!.Q'0`!>(@!`6VL``+HG``"](P$$_T?U``#D
-M0`!>+$``?B#"`D-(`O!`1$(40$`2`(DL$@!I(,$"@T@!!$%$1`*#2&$#(T@!
-M!"1$$@`I/$``/BQ``%X@P0(B2(%V($@!\"]$"@!)+`H`:2!"`D-(80,C2`$$
-M(D0*`"D\0``^+$``?B#!`B-(@58A2`'P(41"`$DL0@!I($("0TAA`R-(`00B
-M1$(`*3Q``#XL0`!>(,$"(DB!UB%(&@!)+!H`:2!"`D-(80,C2`$$(D0:`"D\
-M$03K1P$`*R`K=B!($0#Q0R@#;*<0!.Q'0`!>(@!`6VL``+HG``"](P$$_T>\
-M``#D0`!>+$``?B#"`D-(`O!!1$(40$`:`(DL&@!I(,$"@T@!!$%$1`*#2&$#
-M(T@!!"1$&@`I/$``/BQ``%X@P0(B2(&6($@!\"%$2@!)+$H`:2!"`D-(80,C
-M2`$$(D1*`"D\0``^+$``?B#!`B-(@18A2`'P)T0B`$DL(@!I($("0TAA`R-(
-M`00B1"(`*3Q``#XL0`!>(,$"(DB!UB%(4@!)+%(`:2!"`D-(80,C2`$$(D12
-M`"D\$03K1P$`*R`K=B!($0#Q0R@#;*<0!.Q'0`!>(@!`6VL``+HG``"](P$$
-M_T>#``#D0`!>+$``?B#"`D-(`G!`1$(40$!2`(DL4@!I(,$"@T@!!$%$1`*#
-M2&$#(T@!!"1$4@`I/$``/BQ``%X@P0(B2(%6($@!\"=$*@!)+"H`:2!"`D-(
-M80,C2`$$(D0J`"D\0``^+$``?B#!`B-(@18A2`'P(41:`$DL6@!I($("0TAA
-M`R-(`00B1%H`*3Q``#XL0`!>(,$"(DB!EB%(,@!)+#(`:2!"`D-(80,C2`$$
-M(D0R`"D\$03K1P$`*R`K=B!($0#Q0R@#;*<0!.Q'0`!>(@!`6VL``+HG``"]
-M(P$$_T=*``#D0`!>+$``?B#"`D-(`G!`1"*70$@R`(DL,@!I(,$"@T@!!$%$
-M1`*#2&$#(T@!!"1$,@`I/#,`X,,"`"DL`@!)(,$"(DBA=2!`+@`@Y$``/BQ`
-M`%X@P0(B2('6(4A8`$DL6`!I($("0TAA`R-(`00B1%@`*3P1!.M'`0`K("MV
-M($@1`/%#*`-LIQ`$[$=``%XB`$!;:P``NB<``+TC`03_1R$``.1``%XL0`!^
-M(,("0T@"<$!$0A1`0%@`B2Q8`&D@P0*#2`$$041$`H-(80,C2`$$)$18`"D\
-M0``^+$``7B#!`B)(@58@2`'P)T0P`$DL,`!I($("0TAA`R-(`00B1#``*3P!
-M`"H@*G8@2&@`?J04`",L%`!#(,$"(DBA!RI`"?T_Y`$`/R``!.%'``!>IP@`
-M/J40`%ZE&`!^I2``GJ4H`+ZE,`#>I3@`_J6``-XC`8#Z:Q0`42P4`#$@P0)!
-M2!0`4"P4`'`@0@)#2&$#(T@!!")$%``P/!8`4"P6`#`@Q`)!2`,P@$0"4(!$
-MH@/B0Z$#XT,!`"$@PP1!1`&0@$2A`^%#`@`@Y`$`(R`C=B!(`1"!1*$#X4,"
-M`"#D`0`C("-V($@(!/]'%``Q+!0`42#!`B)(40`@Y!D$XT<6`.1#!`#_(@4`
-MGR,8!.)'`@0(00$$44```&$L`@100,0"84@``&(L0P)B2&$#@D@!!"-$```B
-M/&$%"$%!!"A`804H0`$$(4`!!#!`&`!A(```0RQ"`D-(9`.#2`0$@D0``(,\
-M'``A(```82Q#`F%(8@,A2P($0T0``$$\!P3_1P0$_T=A!0A!000H0&$%*$`&
-M!"%`806$0$$&)D`%!#!`'@!E(```0RQ"`D-(80>#2`$$(D0``",\@0?$2@\`
-M(.`@`&4@```C+$$"(TAB`^-*`@1!1```0SP!`"<@)W8@2*$UX$`,`"#D0@)#
-M2&$#@TL!!")$```C/`<`X,-A!81`008F0`$$,$`@`"$@``!!+$("04@``$$\
-M`0`D("1V($BA=X!`V_\_]`$`*"`H=B!(%``Q+,$".$BA!RA`M/\_Y`&`^FOP
-M_]XCK=Y_(```/J`AEC](8A-@2`($(D0B=EY(85-@2`$$040``#ZP!`!>H"*6
-M7TAA$V!(`01!1"%V/DAC4V!(`P0C1`0`?K`5!/]'%@!2+!8`,B`7!/]'`P"_
-M(,0"04@B!;=`@0>"2`H`(.`!!/5'%3"@0B'V(4@!!"%``00^0```82Q#`F%(
-M8@-!2`($0T0``$$\`0`W(#=V($BA=^!"[_\_]!0`42P4`#$@P0)!2!0`4BP4
-M`'(@0@)#2&$#(T@!!")$%``R/!D$_T?!`B-(;0`@Y&$%.4-!!#E`804Y0`$$
-M(4`"!"%"&``"(P$$,D`8`"$@``!8+,,"6$@``$$L0@)!2&,#84@#!&)$``!A
-M/!<$_T=5`*#F804Y0T$$.4!A!3E```0A0#SVH4H%!/="`02^0```02S"`D%(
-M8@5"0$(&0$`"!%)`'@#B(`4$N$`.`&4@_O\C+$$/(TB!%R9(010@0`X`9RPL
-M`((@0P)D2&$#)$@!!"-$#@`G/`0`I2```"4LP0(E2`0`9RPB`((@0P)D2&$#
-M)$@!!"-$!``G/`$`'R$"`"<L(`!"(,$"(DBA-R!`*``@]`(`QR($!`A!!`2'
-M0`X`I"`,`,0@0P0700,$8T`#!'A`-@!#(/[_(BQ!#R)(@1<F2`$$(4```$8L
-MP@)&2`($(D```"4L00(E2&(#14@"!$%$``!%/`0`I"`"`(0@#`!C(```)"S!
-M`B1(``!#+,("0T@!!")```!%+$("14AA`R5(`00B1```)3P!`"@@*'8@2`(`
-M)RS!`C9(H0<H0-G_/^0!`#<@-W8@2"'VX4JA`SQ`L/\_]`$`.2`Y=B!(%``R
-M+!0`4B#!`B)(H0<Y0)/_/^0!`!\@$`#>(P&`^FL``+LG``"]([#_WB,``%ZW
-M"``^M1``7K48`'ZU(`">M2@`OK4P`-ZU#03P1PH$\4<``#TD```A(```82P'
-M`$$L!/`@1,,&84A"#T%(@A2`1`,$8D1``'ZT#@3_1Q0$'R(``'VG`$!;:P``
-MNB<``+TC"03@1Z$``.30`"J@+'8@2!0`*J#!4B!(-``@Y!`$X$<4!#\B``!]
-MIP!`6VL``+HG``"](V@`*J`6`$DL%@!I($("0TAA`R-(`00B1!8`*3P0!.U'
-M$03J1Q($Z4<3!.Q'"@"?(A4$_T<[^U_3@0``Y&@-:B%H`"J@%@!++'X-:B!"
-M`D-(80,C2`$$(D06`"L\$`3K1Q$$Z4>E_E_3$`3M1Q$$Z4<2!.M'%/]?TW$`
-M`.0:`"DL&@!)(,$"(D@!!"%`0`!>(`$$(D#^_R$@``!!+,,"04@4`"DL%`!)
-M(,$"(D@!`"-,`00L0`RP($`8`"J@P5(@2#8`(.00!.E'%`0_(@``?:<`0%MK
+M?T5,1@(!`0````````````$`)I`!`````````````````````````&#!!0``
+M`````````$```````$``#P`,````NR<``+TC$`#P0Z'U"D)?`"#TH?T*0B0`
+M(.2B=0-"```])````2!F`$#TH7T#0@T`(.2A70)"!0`@Y*$Y`D)0`"#DH?4`
+M0DL`(/1<`.##H74"0E$`(/2B50-"```])````2`=`.##H74$0DX`(/2A?01"
+M"``@Y**5`T(``#TD```!($\`0/2BM0-"```])````2`1`.##H94$0D4`(/2A
+M50I".@`@]$4`X,/Y[C`@,0`@Y!$`(/RA_1!""0`@Y*+9$$(``#TD```!(#T`

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808041747.m74HloQU091705>