[dahdi-commits] dahdi/linux.git branch "master" updated.

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Tue Mar 21 11:50:29 CDT 2017


branch "master" has been updated
       via  c21a98ebe5613fe724d40b2a95ffbaf7f9f14325 (commit)
       via  d7e77a3e614237e3193e90ae5cbfb92d8386ed92 (commit)
       via  020735e3a76d64cb217442d0606633a5295d8270 (commit)
       via  aaa1080a7cc0ff77116bed1dfb5530737fba6090 (commit)
       via  7fcb793cd9b5f11a59e301682a8d2006b7745ddd (commit)
       via  28a2cd068d1cefc004c235ad9012d0b5364deee3 (commit)
       via  a380b8454553aa3d59832fd2c36cfde84b07289c (commit)
       via  e47c096b73e300a2ee78b154de9633800e2b6570 (commit)
       via  99ccfa35bb50359c37298cd79f05368c299d140a (commit)
       via  609114c0a989276d1a63bfcba4e696d537453fc7 (commit)
       via  14d9a53162ec4beedd63e132b059d4971836dfba (commit)
       via  2dd077cc53806ce6b5bdf2bbcd392591dd03c25f (commit)
       via  41279a8dcc318a59cad7b66da0a6edbb8bcad7dd (commit)
       via  d3a28c50cf976ca650d284058b2c876fadfe749a (commit)
       via  17ac18d675ae71a2bd23c4bbbbad3caa095e3ece (commit)
       via  3d8d7995d78689ad675348c0ffa74a860ad07e7f (commit)
       via  9dfc02a38c1aad345d0027f637188b99523db207 (commit)
       via  1c68f2ec739a57df04e7424072b46bd9f45e95eb (commit)
       via  d9aa82b025040f7923cb70fd604c6aed6c2c0771 (commit)
       via  a0434a8af5e897b45f5433f73c5a7cfb7512058c (commit)
      from  18de17084dff912d6ccd2476779cb8935e7a59b0 (commit)

Summary of changes:
 drivers/dahdi/xpp/card_bri.c                  |   44 +-
 drivers/dahdi/xpp/card_echo.c                 |   23 +-
 drivers/dahdi/xpp/card_fxo.c                  |   26 +-
 drivers/dahdi/xpp/card_fxs.c                  |  460 +-
 drivers/dahdi/xpp/card_global.c               |  176 +-
 drivers/dahdi/xpp/card_global.h               |   11 +-
 drivers/dahdi/xpp/card_pri.c                  |   38 +-
 drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex |31133 +++++++++++++------------
 drivers/dahdi/xpp/firmwares/Makefile          |    5 +-
 drivers/dahdi/xpp/firmwares/PIC_TYPE_6.hex    |  460 +
 drivers/dahdi/xpp/firmwares/USB_FW.201.hex    | 1160 +-
 drivers/dahdi/xpp/init_card_6_30              | 1139 +
 drivers/dahdi/xpp/xbus-core.c                 |   81 +-
 drivers/dahdi/xpp/xbus-sysfs.c                |   44 +-
 drivers/dahdi/xpp/xpd.h                       |   18 +-
 drivers/dahdi/xpp/xpp_dahdi.c                 |   46 +-
 drivers/dahdi/xpp/xpp_dahdi.h                 |   10 +-
 drivers/dahdi/xpp/xproto.c                    |   45 +-
 drivers/dahdi/xpp/xproto.h                    |   78 +-
 19 files changed, 18609 insertions(+), 16388 deletions(-)
 create mode 100644 drivers/dahdi/xpp/firmwares/PIC_TYPE_6.hex
 create mode 100644 drivers/dahdi/xpp/init_card_6_30


- Log -----------------------------------------------------------------
commit c21a98ebe5613fe724d40b2a95ffbaf7f9f14325
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Tue Mar 21 13:57:34 2017 +0200

    xpp: FXS: Metering tone doesn't yet work on type 6
    
    Generation of metering tone (a feture normally disabled at build time)
    is not yet implemented on the new FXS type 6 module.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>

diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c
index 39fe89c..7f00f75 100644
--- a/drivers/dahdi/xpp/card_fxs.c
+++ b/drivers/dahdi/xpp/card_fxs.c
@@ -491,6 +491,10 @@ static int metering_gen(xpd_t *xpd, lineno_t chan, bool on)
 {
 	__u8 value = (on) ? 0x94 : 0x00;
 
+	if (XPD_HW(xpd).type == 6) {
+		XBUS_NOTICE("Metering not supported with FXS type 6");
+		return 0;
+	}
 	LINE_DBG(SIGNAL, xpd, chan, "METERING Generate: %s\n",
 		 (on) ? "ON" : "OFF");
 	return SLIC_DIRECT_REQUEST(xpd->xbus, xpd, chan, SLIC_WRITE, 0x23,

commit d7e77a3e614237e3193e90ae5cbfb92d8386ed92
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Mon Nov 30 19:07:08 2015 +0200

    xpp: FXS type 6: ring and neon MWI support
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>

diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c
index 8a3a00e..39fe89c 100644
--- a/drivers/dahdi/xpp/card_fxs.c
+++ b/drivers/dahdi/xpp/card_fxs.c
@@ -105,11 +105,19 @@ enum fxs_state {
 	FXS_LINE_RING_OPEN = 0x07	/* RING open */
 };
 
+enum neon_state {
+	END_NEON = 0,
+	INIT_NEON = 1,
+};
+
 #define	FXS_LINE_POL_ACTIVE \
 		((reversepolarity) ? FXS_LINE_REV_ACTIVE : FXS_LINE_ACTIVE)
 #define	FXS_LINE_POL_OHTRANS \
 		((reversepolarity) ? FXS_LINE_REV_OHTRANS : FXS_LINE_OHTRANS)
 
+/* FXS type 1 registers */
+#define REG_TYPE1_RINGCON		0x22	/* 34 - Ringing Oscillator Control */
+
 /*
  * DTMF detection
  */
@@ -176,6 +184,7 @@ struct FXS_priv_data {
 	xpp_line_t want_dtmf_mute;	/* what dahdi want */
 	xpp_line_t prev_key_down;	/* DTMF down sets the bit */
 	xpp_line_t neon_blinking;
+	xpp_line_t neonstate;
 	xpp_line_t vbat_h;		/* High voltage */
 	struct timeval prev_key_time[CHANNELS_PERXPD];
 	int led_counter[NUM_LEDS][CHANNELS_PERXPD];
@@ -209,6 +218,9 @@ struct FXS_priv_data {
 #define	LED_BLINK_RING			(1000/8)	/* in ticks */
 
 /*---------------- FXS: Static functions ----------------------------------*/
+static int set_vm_led_mode(xbus_t *xbus, xpd_t *xpd, int pos,
+			   unsigned int msg_waiting);
+
 static int do_chan_power(xbus_t *xbus, xpd_t *xpd, lineno_t chan, bool on)
 {
 	struct FXS_priv_data *priv;
@@ -217,6 +229,10 @@ static int do_chan_power(xbus_t *xbus, xpd_t *xpd, lineno_t chan, bool on)
 
 	BUG_ON(!xbus);
 	BUG_ON(!xpd);
+	if (XPD_HW(xpd).type == 6) {
+		LINE_DBG(SIGNAL, xpd, chan, "is ignored in Si32260\n");
+		return 0;
+	}
 	priv = xpd->priv;
 	p = (unsigned long *)&priv->vbat_h;
 	if (on)
@@ -230,7 +246,7 @@ static int do_chan_power(xbus_t *xbus, xpd_t *xpd, lineno_t chan, bool on)
 	}
 	LINE_DBG(SIGNAL, xpd, chan, "%s\n", (on) ? "up" : "down");
 	return SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE, REG_TYPE1_BATTERY,
-			(on) ? REG_TYPE1_BATTERY_BATSL : 0x00);
+			(on) ? (int)REG_TYPE1_BATTERY_BATSL : 0x00);
 }
 
 static int linefeed_control(xbus_t *xbus, xpd_t *xpd, lineno_t chan,
@@ -251,7 +267,20 @@ static int linefeed_control(xbus_t *xbus, xpd_t *xpd, lineno_t chan,
 		do_chan_power(xbus, xpd, chan, want_vbat_h);
 	LINE_DBG(SIGNAL, xpd, chan, "value=0x%02X\n", value);
 	priv->lasttxhook[chan] = value;
-	return SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE, 0x40, value);
+	if (XPD_HW(xpd).type == 6) {
+		int ret;
+
+		/* Make sure NEON state is off for */
+		if (value == FXS_LINE_POL_OHTRANS && IS_SET(priv->neon_blinking, chan))
+			set_vm_led_mode(xpd->xbus, xpd, chan, 0);
+		ret = SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE, 0x1E, value);
+		if (value == FXS_LINE_POL_ACTIVE && PHONEDEV(xpd).msg_waiting[chan])
+			set_vm_led_mode(xpd->xbus, xpd, chan, PHONEDEV(xpd).msg_waiting[chan]);
+		return ret;
+	} else {
+		return SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE, 0x40, value);
+	}
+	return 0;
 }
 
 static void vmwi_search(xpd_t *xpd, lineno_t pos, bool on)
@@ -324,19 +353,74 @@ static int do_led(xpd_t *xpd, lineno_t chan, __u8 which, bool on)
 		else
 			BIT_CLR(priv->ledstate[which], chan);
 	}
-	LINE_DBG(LEDS, xpd, chan, "LED: which=%d -- %s\n", which,
+	LINE_DBG(LEDS, xpd, chan, "LED: (type=%d) which=%d -- %s\n", XPD_HW(xpd).type, which,
 		 (on) ? "on" : "off");
-	value = BIT(2) | BIT(3);
-	value |= ((BIT(5) | BIT(6) | BIT(7)) & ~led_register_mask[which]);
-	if (on)
-		value |= led_register_vals[which];
-	ret =
-	    SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE, REG_TYPE1_DIGITAL_IOCTRL,
-				value);
+	if (XPD_HW(xpd).type == 6) {
+		int mask = 1 << chan;
+		value = (on) << chan;
+		XPD_INFO(xpd, "LED(%d): 0x%0X (mask: 0x%0X)\n", chan, value, mask);
+		if (which == LED_GREEN) { /* other leds ignored */
+			ret = EXP_REQUEST(xbus, xpd, SLIC_WRITE,
+				REG_TYPE6_EXP_GPIOA, value, mask);
+		}
+	} else {
+		value = BIT(2) | BIT(3);
+		value |= ((BIT(5) | BIT(6) | BIT(7)) & ~led_register_mask[which]);
+		if (on)
+			value |= led_register_vals[which];
+		ret = SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE,
+				REG_TYPE1_DIGITAL_IOCTRL, value);
+	}
+	return 0;
 out:
 	return ret;
 }
 
+static inline void set_mwi_led(xpd_t *xpd, int pos, int on)
+{
+	struct FXS_priv_data *priv;
+	BUG_ON(!xpd);
+	priv = xpd->priv;
+
+	if (XPD_HW(xpd).type != 6)
+		return;
+	if (on) {
+		if (! IS_SET(priv->neonstate, pos)) {
+			SLIC_DIRECT_REQUEST(xpd->xbus, xpd, pos, SLIC_WRITE, REG_TYPE6_ENHANCE, 0x00);
+			SLIC_DIRECT_REQUEST(xpd->xbus, xpd, pos, SLIC_WRITE, REG_TYPE6_USERSTAT, 0x04);
+			SLIC_DIRECT_REQUEST(xpd->xbus, xpd, pos, SLIC_WRITE, REG_TYPE6_DIAG1, 0x0F);
+			BIT_SET(priv->neonstate, pos);
+		}
+	} else {
+		if (IS_SET(priv->neonstate, pos)) {
+			SLIC_DIRECT_REQUEST(xpd->xbus, xpd, pos, SLIC_WRITE, REG_TYPE6_DIAG1, 0x00);
+			BIT_CLR(priv->neonstate, pos);
+		}
+	}
+}
+
+static void blink_mwi(xpd_t *xpd)
+{
+	struct FXS_priv_data *priv;
+	unsigned int timer_count;
+	int i;
+
+	BUG_ON(!xpd);
+	priv = xpd->priv;
+	timer_count = xpd->timer_count;
+	for_each_line(xpd, i) {
+		unsigned int msgs = PHONEDEV(xpd).msg_waiting[i];
+		/* LED duty cycle: 300ms on, 700ms off */
+		unsigned int in_range = (timer_count % 1000) >= 0 && (timer_count % 1000) <= 300;
+
+		if (!IS_OFFHOOK(xpd, i) && msgs && in_range && 
+			IS_SET(priv->neon_blinking,i) && priv->ohttimer[i] == 0)
+			set_mwi_led(xpd, i, 1);
+		else
+			set_mwi_led(xpd, i, 0);
+	}
+}
+
 static void handle_fxs_leds(xpd_t *xpd)
 {
 	int i;
@@ -550,8 +634,13 @@ static int FXS_card_init(xbus_t *xbus, xpd_t *xpd)
 	 */
 	/* Software controled ringing (for CID) */
 	/* Ringing Oscilator Control */
-	ret = SLIC_DIRECT_REQUEST(xbus, xpd, PORT_BROADCAST, SLIC_WRITE,
-		0x22, 0x00);
+	if (XPD_HW(xpd).type == 6) {
+		ret = SLIC_DIRECT_REQUEST(xbus, xpd, PORT_BROADCAST, SLIC_WRITE,
+			REG_TYPE6_RINGCON, 0x00);
+	} else {
+		ret = SLIC_DIRECT_REQUEST(xbus, xpd, PORT_BROADCAST, SLIC_WRITE,
+			REG_TYPE1_RINGCON, 0x00);
+	}
 	if (ret < 0)
 		goto err;
 	for_each_line(xpd, i) {
@@ -738,6 +827,34 @@ static struct ring_reg_params ring_parameters[] = {
 	REG_ENTRY(1,	0x1D,	0x00, 0x46,	0x00, 0x36,	0x00, 0x36),
 };
 
+static void set_neon_state(xbus_t *xbus, xpd_t *xpd, int pos,
+		enum neon_state ns)
+{
+	struct FXS_priv_data *priv;
+
+	LINE_DBG(SIGNAL, xpd, pos, "set NEON -> %d\n", ns);
+	priv = xpd->priv;
+	if (ns == INIT_NEON)
+		BIT_SET(priv->neon_blinking, pos);
+	else
+		BIT_CLR(priv->neon_blinking, pos);
+	if (XPD_HW(xpd).type == 6) {
+		switch (ns) {
+		case INIT_NEON:
+			RAM_REQUEST(xbus, xpd, pos, SLIC_WRITE, RAM_TYPE6_VBATH_EXPECT, VBATH_EXPECT_MWI << 3);
+			//RAM_REQUEST(xbus, xpd, pos, SLIC_WRITE, RAM_TYPE6_SLOPE_VLIM, SLOPE_VLIM_MWI << 3);
+			break;
+		default:
+			LINE_DBG(REGS, xpd, pos, "0x%04X: R 0x\n", RAM_TYPE6_SLOPE_VLIM);
+			set_mwi_led(xpd, pos, 0);	/* Cannot have NEON LED during OHT (type == 6) */
+			SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, REG_TYPE6_USERSTAT, 0x00);
+			SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, REG_TYPE6_ENHANCE, 0x10);
+			RAM_REQUEST(xbus, xpd, pos, SLIC_WRITE, RAM_TYPE6_VBATH_EXPECT, VBATH_EXPECT_DFLT << 3);
+			RAM_REQUEST(xbus, xpd, pos, SLIC_WRITE, RAM_TYPE6_SLOPE_VLIM, SLOPE_VLIM_DFLT << 3);
+			break;
+		}
+	}
+}
 static int send_ring_parameters(xbus_t *xbus, xpd_t *xpd, int pos,
 		enum ring_types rtype)
 {
@@ -746,6 +863,8 @@ static int send_ring_parameters(xbus_t *xbus, xpd_t *xpd, int pos,
 	int ret = 0;
 	int i;
 
+	if (XPD_HW(xpd).type == 6)
+		return 0;
 	if (rtype < RING_TYPE_NEON || rtype > RING_TYPE_NORMAL)
 		return -EINVAL;
 	for (i = 0; i < ARRAY_SIZE(ring_parameters); i++) {
@@ -791,15 +910,16 @@ static int set_vm_led_mode(xbus_t *xbus, xpd_t *xpd, int pos,
 	if (VMWI_NEON(priv, pos) && msg_waiting) {
 		/* A write to register 0x40 will now turn on/off the VM led */
 		LINE_DBG(SIGNAL, xpd, pos, "NEON\n");
-		BIT_SET(priv->neon_blinking, pos);
+		set_neon_state(xbus, xpd, pos, INIT_NEON);
 		ret = send_ring_parameters(xbus, xpd, pos, RING_TYPE_NEON);
 	} else if (ring_trapez) {
 		LINE_DBG(SIGNAL, xpd, pos, "RINGER: Trapez ring\n");
+		set_neon_state(xbus, xpd, pos, END_NEON);
 		ret = send_ring_parameters(xbus, xpd, pos, RING_TYPE_TRAPEZ);
 	} else {
 		/* A write to register 0x40 will now turn on/off the ringer */
 		LINE_DBG(SIGNAL, xpd, pos, "RINGER\n");
-		BIT_CLR(priv->neon_blinking, pos);
+		set_neon_state(xbus, xpd, pos, END_NEON);
 		ret = send_ring_parameters(xbus, xpd, pos, RING_TYPE_NORMAL);
 	}
 	return (ret ? -EPROTO : 0);
@@ -818,10 +938,11 @@ static void start_stop_vm_led(xbus_t *xbus, xpd_t *xpd, lineno_t pos)
 	msgs = PHONEDEV(xpd).msg_waiting[pos];
 	LINE_DBG(SIGNAL, xpd, pos, "%s\n", (msgs) ? "ON" : "OFF");
 	set_vm_led_mode(xbus, xpd, pos, msgs);
-	do_chan_power(xbus, xpd, pos, msgs > 0);
-	linefeed_control(xbus, xpd, pos,
-			 (msgs >
-			  0) ? FXS_LINE_RING : priv->idletxhookstate[pos]);
+	if (XPD_HW(xpd).type == 1) {
+		do_chan_power(xbus, xpd, pos, msgs > 0);
+		linefeed_control(xbus, xpd, pos,
+			(msgs > 0) ? FXS_LINE_RING : priv->idletxhookstate[pos]);
+	}
 }
 
 static int relay_out(xpd_t *xpd, int pos, bool on)
@@ -1447,6 +1568,8 @@ static int FXS_card_tick(xbus_t *xbus, xpd_t *xpd)
 #endif
 	handle_fxs_leds(xpd);
 	handle_linefeed(xpd);
+	if (XPD_HW(xpd).type == 6)
+		blink_mwi(xpd);
 	/*
 	 * Hack alert (FIXME):
 	 *   Asterisk did FXS_card_open() and we wanted to report

commit 020735e3a76d64cb217442d0606633a5295d8270
Author: Dima Stoliarov <dima at xorcom.com>
Date:   Thu Mar 31 20:13:32 2016 +0300

    xpp: FXS type 6: support digital outputs
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>

diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c
index 1c9d145..8a3a00e 100644
--- a/drivers/dahdi/xpp/card_fxs.c
+++ b/drivers/dahdi/xpp/card_fxs.c
@@ -826,23 +826,34 @@ static void start_stop_vm_led(xbus_t *xbus, xpd_t *xpd, lineno_t pos)
 
 static int relay_out(xpd_t *xpd, int pos, bool on)
 {
-	int value;
+	int ret = 0;
+	int value = 0;
 	int which = pos;
-	int relay_channels[] = { 0, 4 };
 
 	BUG_ON(!xpd);
 	/* map logical position to output port number (0/1) */
 	which -= (XPD_HW(xpd).subtype == 2) ? 6 : 8;
 	LINE_DBG(SIGNAL, xpd, pos, "which=%d -- %s\n", which,
 		 (on) ? "on" : "off");
-	which = which % ARRAY_SIZE(relay_channels);
-	value = BIT(2) | BIT(3);
-	value |=
-	    ((BIT(5) | BIT(6) | BIT(7)) & ~led_register_mask[OUTPUT_RELAY]);
-	if (on)
-		value |= led_register_vals[OUTPUT_RELAY];
-	return SLIC_DIRECT_REQUEST(xpd->xbus, xpd, relay_channels[which],
+	if (XPD_HW(xpd).type == 6) {
+		int relay_values_type6[] = { 0x01, 0x40 };
+		which = which % ARRAY_SIZE(relay_values_type6);
+		if (on)
+			value |= relay_values_type6[which];
+		ret = EXP_REQUEST(xpd->xbus, xpd, SLIC_WRITE,
+			REG_TYPE6_EXP_GPIOB, value, relay_values_type6[which]);
+	} else {
+		int relay_channels_type1[] = { 0, 4 };
+		which = which % ARRAY_SIZE(relay_channels_type1);
+		value = BIT(2) | BIT(3);
+		value |=
+		    ((BIT(5) | BIT(6) | BIT(7)) & ~led_register_mask[OUTPUT_RELAY]);
+		if (on)
+			value |= led_register_vals[OUTPUT_RELAY];
+		ret = SLIC_DIRECT_REQUEST(xpd->xbus, xpd, relay_channels_type1[which],
 				   SLIC_WRITE, REG_TYPE1_DIGITAL_IOCTRL, value);
+	}
+	return ret;
 }
 
 static int send_ring(xpd_t *xpd, lineno_t chan, bool on)

commit aaa1080a7cc0ff77116bed1dfb5530737fba6090
Author: Dima Stoliarov <dima at xorcom.com>
Date:   Thu Mar 31 20:13:32 2016 +0300

    xpp: FXS type 6: support digital inputs
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>

diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c
index 874a641..1c9d145 100644
--- a/drivers/dahdi/xpp/card_fxs.c
+++ b/drivers/dahdi/xpp/card_fxs.c
@@ -1257,17 +1257,34 @@ static int FXS_card_close(xpd_t *xpd, lineno_t chan)
  *	+-----+-----+-----+-----+-----+-----+-----+-----+
  *
  */
-static int input_channels[] = { 6, 7, 2, 3 };	// Slic numbers of input relays
+static int input_ports_type1[] = {
+	/* slic	= input_port */
+	[0]	= -1,
+	[1]	= -1,
+	[2]	= 2,
+	[3]	= 3,
+	[4]	= -1,
+	[5]	= -1,
+	[6]	= 0,
+	[7]	= 1,
+	};
 
 static void poll_inputs(xpd_t *xpd)
 {
 	int i;
 
 	BUG_ON(xpd->xbus_idx != 0);	// Only unit #0 has digital inputs
-	for (i = 0; i < ARRAY_SIZE(input_channels); i++) {
-		__u8 pos = input_channels[i];
-
-		SLIC_DIRECT_REQUEST(xpd->xbus, xpd, pos, SLIC_READ, 0x06, 0);
+	if (XPD_HW(xpd).type == 6) {
+		EXP_REQUEST(xpd->xbus, xpd, SLIC_READ,
+			REG_TYPE6_EXP_GPIOB, 0, 0);
+	} else {
+		for (i = 0; i < ARRAY_SIZE(input_ports_type1); i++) {
+			int pos = input_ports_type1[i];
+			if (pos >= 0) {
+				XPD_NOTICE(xpd, "%s polling slic %d\n", __func__, i);
+				SLIC_DIRECT_REQUEST(xpd->xbus, xpd, i, SLIC_READ, 0x06, 0);
+			}
+		}
 	}
 }
 #endif
@@ -1529,37 +1546,55 @@ HANDLER_DEF(FXS, SIG_CHANGED)
 }
 
 #ifdef	POLL_DIGITAL_INPUTS
-static void process_digital_inputs(xpd_t *xpd, const reg_cmd_t *info)
+static inline void notify_digital_input(xpd_t *xpd, int input_port, int offhook)
 {
-	int i;
-	bool offhook = (REG_FIELD(info, data_low) & 0x1) == 0;
-	xpp_line_t lines = BIT(info->h.portnum);
+	int channo = PHONEDEV(xpd).channels - LINES_DIGI_INP + input_port;
+
+	/* Stop ringing. No leds for digital inputs. */
+	PHONEDEV(xpd).ringing[channo] = 0;
+	if (offhook && !IS_OFFHOOK(xpd, channo)) {
+		LINE_DBG(SIGNAL, xpd, channo, "OFFHOOK\n");
+		hookstate_changed(xpd, channo, 1);
+	} else if (!offhook && IS_OFFHOOK(xpd, channo)) {
+		LINE_DBG(SIGNAL, xpd, channo, "ONHOOK\n");
+		hookstate_changed(xpd, channo, 0);
+	}
+}
 
+static void process_digital_inputs(xpd_t *xpd, const reg_cmd_t *info)
+{
+	bool offhook;
 	/* Sanity check */
 	if (!PHONEDEV(xpd).digital_inputs) {
 		XPD_NOTICE(xpd, "%s called without digital inputs. Ignored\n",
 			   __func__);
 		return;
 	}
-	/* Map SLIC number into line number */
-	for (i = 0; i < ARRAY_SIZE(input_channels); i++) {
-		int channo = input_channels[i];
-		int newchanno;
-
-		if (IS_SET(lines, channo)) {
-			newchanno = PHONEDEV(xpd).channels - LINES_DIGI_INP + i;
-			BIT_CLR(lines, channo);
-			BIT_SET(lines, newchanno);
-			/* Stop ringing. No leds for digital inputs. */
-			PHONEDEV(xpd).ringing[newchanno] = 0;
-			if (offhook && !IS_OFFHOOK(xpd, newchanno)) {
-				LINE_DBG(SIGNAL, xpd, newchanno, "OFFHOOK\n");
-				hookstate_changed(xpd, newchanno, 1);
-			} else if (!offhook && IS_OFFHOOK(xpd, newchanno)) {
-				LINE_DBG(SIGNAL, xpd, newchanno, "ONHOOK\n");
-				hookstate_changed(xpd, newchanno, 0);
-			}
+	if (XPD_HW(xpd).type == 6) {
+		static int input_values_type6[] = { 0x80, 0x20, 0x08, 0x02 };	/* I/O Expander values of input relays */
+		int i;
+
+		/* Map I/O Expander GPIO into line number */
+		for (i = 0; i < ARRAY_SIZE(input_values_type6); i++) {
+			int chanmask = input_values_type6[i];
+
+			offhook = (REG_FIELD(info, data_low) & chanmask) == 0;
+			notify_digital_input(xpd, i, offhook);
+		}
+	} else {
+		int channo = info->h.portnum;
+		int input_port;
+		offhook = (REG_FIELD(info, data_low) & 0x1) == 0;
+		if (channo < 0 || channo >= ARRAY_SIZE(input_ports_type1)) {
+			XPD_ERR(xpd, "%s: got bad portnum=%d\n", __func__, channo);
+			return;
+		}
+		input_port = input_ports_type1[channo];
+		if (input_port < 0) {
+			XPD_ERR(xpd, "%s: portnum=%d is not input port\n", __func__, channo);
+			return;
 		}
+		notify_digital_input(xpd, input_port, offhook);
 	}
 }
 #endif
@@ -1668,7 +1703,9 @@ static int FXS_card_register_reply(xbus_t *xbus, xpd_t *xpd, reg_cmd_t *info)
 	/*
 	 * Process digital inputs polling results
 	 */
-	else if (!indirect && regnum == REG_TYPE1_DIGITAL_IOCTRL)
+	else if ( (XPD_HW(xpd).type == 1 && !indirect && regnum == REG_TYPE1_DIGITAL_IOCTRL) ||
+		  (XPD_HW(xpd).type == 6 && !indirect && regnum == REG_TYPE6_EXP_GPIOB && 
+		   REG_FIELD(info, do_expander)))
 		process_digital_inputs(xpd, info);
 #endif
 	else if (XPD_HW(xpd).type == 1 && !indirect && regnum == REG_TYPE1_LOOPCLOSURE) { /* OFFHOOK ? */

commit 7fcb793cd9b5f11a59e301682a8d2006b7745ddd
Author: Dima Stoliarov <dima at xorcom.com>
Date:   Mon Dec 14 15:23:59 2015 +0200

    xpp: FXS type 6: hardware DTMF detection
    
    Adapt the hardware DTMF detection for the SI32260 module.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>

diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c
index c02c996..874a641 100644
--- a/drivers/dahdi/xpp/card_fxs.c
+++ b/drivers/dahdi/xpp/card_fxs.c
@@ -1024,6 +1024,21 @@ static int set_vmwi(xpd_t *xpd, int pos, unsigned long arg)
 	return 0;
 }
 
+static int hardware_dtmf_control(xpd_t *xpd, int pos, bool on)
+{
+	int ret = 0;
+
+	LINE_DBG(SIGNAL, xpd, pos, "%s: %s\n", __func__, (on) ? "on" : "off");
+	if (XPD_HW(xpd).type == 6) {
+		int value = (on) ? 0xE0 : REG_TYPE6_TONEN_DTMF_DIS;
+		ret = SLIC_DIRECT_REQUEST(xpd->xbus, xpd, pos, SLIC_WRITE,
+			REG_TYPE6_TONEN, value);
+	} else {
+		ret = SLIC_DIRECT_REQUEST(xpd->xbus, xpd, pos, SLIC_WRITE, 0x17, on);
+	}
+	return ret;
+}
+
 /*
  * Private ioctl()
  * We don't need it now, since we detect vmwi via FSK patterns
@@ -1089,9 +1104,8 @@ static int FXS_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd,
 				 * Detection mode changed:
 				 * Disable DTMF interrupts
 				 */
-				SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE,
-						    0x17, 0);
 			}
+			hardware_dtmf_control(xpd, pos, 0);
 			BIT_CLR(priv->want_dtmf_events, pos);
 			BIT_CLR(priv->want_dtmf_mute, pos);
 			__do_mute_dtmf(xpd, pos, 0);
@@ -1113,8 +1127,7 @@ static int FXS_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd,
 				LINE_DBG(SIGNAL, xpd, pos,
 					"DAHDI_TONEDETECT: "
 					"Enable Hardware DTMF\n");
-				SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE,
-						    0x17, 1);
+				hardware_dtmf_control(xpd, pos, 1);
 			}
 			BIT_SET(priv->want_dtmf_events, pos);
 		} else {
@@ -1126,8 +1139,7 @@ static int FXS_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd,
 				LINE_DBG(SIGNAL, xpd, pos,
 					"DAHDI_TONEDETECT: "
 					"Disable Hardware DTMF\n");
-				SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE,
-						    0x17, 0);
+				hardware_dtmf_control(xpd, pos, 0);
 			}
 			BIT_CLR(priv->want_dtmf_events, pos);
 		}
@@ -1646,7 +1658,8 @@ static int FXS_card_register_reply(xbus_t *xbus, xpd_t *xpd, reg_cmd_t *info)
 		      (REG_FIELD_RAM(info, data_2) << 16) |
 		      (REG_FIELD_RAM(info, data_1) << 8) |
 		       REG_FIELD_RAM(info, data_0);
-	} else if (!indirect && regnum == REG_TYPE1_DTMF_DECODE) {
+	} else if ((XPD_HW(xpd).type == 1 && !indirect && regnum == REG_TYPE1_DTMF_DECODE) ||
+	    (XPD_HW(xpd).type == 6 && !indirect && regnum == REG_TYPE6_TONDTMF)) {
 		__u8 val = REG_FIELD(info, data_low);
 
 		process_dtmf(xpd, info->h.portnum, val);

commit 28a2cd068d1cefc004c235ad9012d0b5364deee3
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Mon Nov 30 19:07:08 2015 +0200

    xpp: FXS type 6: basic hookstate detection
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>

diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c
index ca3d87f..c02c996 100644
--- a/drivers/dahdi/xpp/card_fxs.c
+++ b/drivers/dahdi/xpp/card_fxs.c
@@ -582,8 +582,13 @@ static int FXS_card_init(xbus_t *xbus, xpd_t *xpd)
 		    (PHONEDEV(xpd).digital_outputs | PHONEDEV(xpd).
 		     digital_inputs, i))
 			continue;
-		SLIC_DIRECT_REQUEST(xbus, xpd, i, SLIC_READ, REG_TYPE1_LOOPCLOSURE,
-				    0);
+		if (XPD_HW(xpd).type == 6) {
+			SLIC_DIRECT_REQUEST(xbus, xpd, i, SLIC_READ, REG_TYPE6_LCRRTP,
+					    0);
+		} else {
+			SLIC_DIRECT_REQUEST(xbus, xpd, i, SLIC_READ, REG_TYPE1_LOOPCLOSURE,
+					    0);
+		}
 	}
 	return 0;
 err:
@@ -1653,7 +1658,7 @@ static int FXS_card_register_reply(xbus_t *xbus, xpd_t *xpd, reg_cmd_t *info)
 	else if (!indirect && regnum == REG_TYPE1_DIGITAL_IOCTRL)
 		process_digital_inputs(xpd, info);
 #endif
-	else if (!indirect && regnum == REG_TYPE1_LOOPCLOSURE) {	/* OFFHOOK ? */
+	else if (XPD_HW(xpd).type == 1 && !indirect && regnum == REG_TYPE1_LOOPCLOSURE) { /* OFFHOOK ? */
 		__u8 val = REG_FIELD(info, data_low);
 		xpp_line_t mask = BIT(info->h.portnum);
 		xpp_line_t offhook;
@@ -1670,6 +1675,23 @@ static int FXS_card_register_reply(xbus_t *xbus, xpd_t *xpd, reg_cmd_t *info)
 				val, offhook, mask);
 			process_hookstate(xpd, offhook, mask);
 		}
+	} else if (XPD_HW(xpd).type == 6 && !indirect && regnum == REG_TYPE6_LCRRTP) { /* OFFHOOK ? */
+		__u8 val = REG_FIELD(info, data_low);
+		xpp_line_t mask = BIT(info->h.portnum);
+		xpp_line_t offhook;
+
+		/*
+		 * Validate reply. Non-existing/disabled ports
+		 * will reply with 0xFF. Ignore these.
+		 */
+		if ((val & REG_TYPE6_LCRRTP_ZERO) == 0) {
+			offhook = (val & REG_TYPE6_LCRRTP_LCR) ? mask : 0;
+			LINE_DBG(SIGNAL, xpd, info->h.portnum,
+				"REG_TYPE6_LCRRTP: dataL=0x%X "
+				"(offhook=0x%X mask=0x%X)\n",
+				val, offhook, mask);
+			process_hookstate(xpd, offhook, mask);
+		}
 	} else {
 #if 0
 		XPD_NOTICE(xpd,

commit a380b8454553aa3d59832fd2c36cfde84b07289c
Author: Oron Peled <oron.peled at xorcom.com>
Date:   Mon Nov 30 19:07:08 2015 +0200

    xpp: FXS type 6: define registers
    
    Add definitions of REG_TYPE6 for various SI32260 registers.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>

diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c
index c0b06d9..ca3d87f 100644
--- a/drivers/dahdi/xpp/card_fxs.c
+++ b/drivers/dahdi/xpp/card_fxs.c
@@ -122,6 +122,29 @@ enum fxs_state {
 #define	REG_TYPE1_LOOPCLOSURE_ZERO	0xF8	/* Loop Closure zero bits. */
 #define	REG_TYPE1_LOOPCLOSURE_LCR	BIT(0)	/* Loop Closure Detect Indicator. */
 
+/* FXS type 6 registers */
+#define REG_TYPE6_RINGCON		0x26	/* 38 - Ringing Oscillator Control */
+
+/* 34 -  Loop Closure/Ring Trip Detect Status */
+#define	REG_TYPE6_LCRRTP		0x22
+#define	REG_TYPE6_LCRRTP_ZERO		0xF0	/* Loop Closure zero bits. */
+#define	REG_TYPE6_LCRRTP_LCR		BIT(1)	/* Loop Closure Detect Indicator. */
+
+#define	REG_TYPE6_TONEN			0x3E	/* 62 - Hardware DTMF detection */
+#define	REG_TYPE6_TONEN_DTMF_DIS	BIT(2)	/*      DTMF Disable */
+#define REG_TYPE6_TONDTMF		0x3C	/* 60 - DTMF Decode Status */
+#define	REG_TYPE6_EXP_GPIOA		0x12	/* I/O Expander GPIOA */
+#define	REG_TYPE6_EXP_GPIOB		0x13	/* I/O Expander GPIOB */
+#define	REG_TYPE6_ENHANCE		0x2F	/* 47 - Enhance */
+#define	REG_TYPE6_USERSTAT		0x42	/* 66 - Userstat */
+#define	REG_TYPE6_DIAG1			0x47	/* 71 - Diag1 */
+#define RAM_TYPE6_SLOPE_VLIM		634
+#define SLOPE_VLIM_DFLT			0x1E655196L
+#define SLOPE_VLIM_MWI			0x8000000L
+#define RAM_TYPE6_VBATH_EXPECT		767
+#define VBATH_EXPECT_DFLT		0x2B10A20L
+#define VBATH_EXPECT_MWI		0x6147AB2L
+
 /*---------------- FXS Protocol Commands ----------------------------------*/
 
 static bool fxs_packet_is_valid(xpacket_t *pack);

commit e47c096b73e300a2ee78b154de9633800e2b6570
Author: Dima Stoliarov <dima at xorcom.com>
Date:   Thu Feb 16 13:56:37 2017 +0200

    xpp: FXS type 6: firmwares support
    
    Firmware support for the type 6 FXS Astribank module.
    
    FPGA_1161.201.hex rev. 11527
    PIC_TYPE_6.hex rev. 11526
    USB_FW.201.hex rev. 11502
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>

diff --git a/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex b/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
index e63b7f1..ea62eb8 100644
--- a/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
+++ b/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
@@ -1,5 +1,5 @@
 #
-# $Id: FPGA_1161.201.hex 11426 2014-10-06 08:45:39Z dima $
+# $Id: FPGA_1161.201.hex 11527 2016-04-05 13:31:19Z dima $
 #
 :020000040000FA
 :10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
@@ -16,7 +16,7 @@
 :1000B0000000000000000000000000000000000040
 :1000C0000000000000000000000000000000000030
 :1000D0000000000000000000000000000000000020
-:1000E0000000000000000000000040900000409070
+:1000E00000000000000000000000089000004090A8
 :1000F0000000000000000000000000000000000000
 :1001000000000000000000000000000000000000EF
 :1001100000000000000000000000000000000000DF
@@ -24,7 +24,7 @@
 :1001300000000000000000000000000000000000BF
 :1001400000000000000000000000000000000000AF
 :10015000000000000000000000000000000000009F
-:10016000000000000000000000000000004000014E
+:10016000000000000000000000000000004000004F
 :10017000000000000000000000000000000000007F
 :10018000000000000000000000000000000000006F
 :10019000000000000000000000000000000000005F
@@ -33,7 +33,7 @@
 :1001C000000000000000000000000000000000002F
 :1001D000000000000000000000000000000000001F
 :1001E00000000000000000000000000000000020EF
-:1001F00000040020000000000000000000000000DB
+:1001F00000000020000000000000000000000000DF
 :1002000000000000000000000000000000000000EE
 :1002100000000000000000000000000000000000DE
 :1002200000000000000000000000000000000000CE
@@ -41,13 +41,13 @@
 :1002400000000000000000000000000000000000AE
 :10025000000000000000000000000000000000009E
 :10026000200000000000000004000000000000006A
-:10027000000000000000000000000000440000003A
+:10027000000000000000000000000000000000007E
 :100280000000000000D0800000000000000000001E
 :10029000000000000000000000000000000000005E
 :1002A000000000000000000000000000000000004E
-:1002B0000800000000000000000000000000000036
+:1002B000000000000000000000000000000004003A
 :1002C000000000000000000000000000000000002E
-:1002D000040000000000000000000000000000001A
+:1002D000000000000000000000000000000004001A
 :1002E000000000000000000000000000000000000E
 :1002F00000000000000000000000000000000000FE
 :1003000000000000000000000000000000000000ED
@@ -61,1558 +61,1558 @@
 :10038000000000000000000000000000000000006D
 :10039000000000000000000000000000000000005D
 :1003A000000000000000000000000000000000004D
-:1003B0000000000000ACE5D60C85004004000400FD
+:1003B0000000000000D0D37B0C8500400400040046
 :1003C000040004000400040004000400CC26000023
 :1003D0000000000000000C44008000A0CC260000BB
-:1003E0000000000000000C4400800030CC2600001B
-:1003F0000000000000000C44008000B0CC2600008B
-:100400000000000000000C4400800008CC26000022
-:100410000000000000000C4400800088CC26000092
-:100420000000000000000C44008000C8CC26000042
-:100430000000000000000C44008000A8CC26000052
-:100440000000000000000C4400800098CC26000052
-:100450000000000000000C4400800058CC26000082
-:100460000000000000000C44002000A8CC26000082
-:100470000000000000000C4400200068CC260000B2
-:100480000000000000000C4400E00030CC2600001A
-:100490000000000000000C4400E000B0CC2600008A
-:1004A0000000000000000C4400E00070CC260000BA
-:1004B0000000000000000C4400E000F0CC2600002A
-:1004C0000000000000000C4400E00008CC26000002
-:1004D0000000000000000C4400E00088CC26000072
-:1004E0000000000000000C4400E00048CC260000A2
-:1004F0000000000000000C4400E000C8CC26000012
-:100500000000000000000C4400E00028CC260000A1
-:100510000000000000000C4400E000A8CC26000011
-:100520000000000000000C4400E00068CC26000041
-:100530000000000000000C4400E000E8CC260000B1
-:100540000000000000000C44003000E8CC26000051
-:100550000000000000000C4400700040CC260000A9
-:100560000000000000000C4400700030CC260000A9
-:100570000000000000000C44007000B0CC26000019
-:100580000000000000000C4400700070CC26000049
-:100590000000000000000C44007000F0CC260000B9
-:1005A0000000000000000C4400700008CC26000091
-:1005B0000000000000000C4400700088CC26000001
-:1005C0000000000000000C4400700048CC26000031
-:1005D0000000000000000C44007000C8CC260000A1
-:1005E0000000000000000C4400700028CC26000031
-:1005F0000000000000000C44007000A8CC260000A1
-:100600000000000000000C4400700068CC260000D0
-:100610000000000000000C44007000E8CC26000040
-:100620000000000000000C4400700018CC26000000
-:100630000000000000000C4400F000E8CC260000A0
-:100640000000000000000C4400880040CC260000A0
-:100650000000000000000C44008800C0CC26000010
-:100660000000000000000C4400880020CC260000A0
+:1003E0000000000000000C4400800090CC260000BB
+:1003F0000000000000000C4400800030CC2600000B
+:100400000000000000000C44008000B0CC2600007A
+:100410000000000000000C4400800008CC26000012
+:100420000000000000000C4400800088CC26000082
+:100430000000000000000C44008000C8CC26000032
+:100440000000000000000C44008000A8CC26000042
+:100450000000000000000C4400800098CC26000042
+:100460000000000000000C4400800058CC26000072
+:100470000000000000000C44004000E8CC26000012
+:100480000000000000000C44002000A8CC26000062
+:100490000000000000000C4400200068CC26000092
+:1004A0000000000000000C4400A000E8CC26000082
+:1004B0000000000000000C4400E00030CC260000EA
+:1004C0000000000000000C4400E000B0CC2600005A
+:1004D0000000000000000C4400E00070CC2600008A
+:1004E0000000000000000C4400E000F0CC260000FA
+:1004F0000000000000000C4400E00008CC260000D2
+:100500000000000000000C4400E00088CC26000041
+:100510000000000000000C4400E00048CC26000071
+:100520000000000000000C4400E000C8CC260000E1
+:100530000000000000000C4400E00028CC26000071
+:100540000000000000000C4400E000A8CC260000E1
+:100550000000000000000C4400E00068CC26000011
+:100560000000000000000C4400E000E8CC26000081
+:100570000000000000000C4400700030CC26000099
+:100580000000000000000C44007000B0CC26000009
+:100590000000000000000C4400700070CC26000039
+:1005A0000000000000000C44007000F0CC260000A9
+:1005B0000000000000000C4400700008CC26000081
+:1005C0000000000000000C4400700088CC260000F1
+:1005D0000000000000000C4400700048CC26000021
+:1005E0000000000000000C44007000C8CC26000091
+:1005F0000000000000000C4400700028CC26000021
+:100600000000000000000C44007000A8CC26000090
+:100610000000000000000C4400700068CC260000C0
+:100620000000000000000C44007000E8CC26000030
+:100630000000000000000C4400700018CC260000F0
+:100640000000000000000C4400F000E8CC26000090
+:100650000000000000000C4400880040CC26000090
+:100660000000000000000C44008800C0CC26000000
 :100670000000000000000C44008800E0CC260000D0
-:100680000000000000000C4400880010CC26000090
-:100690000000000000000C44008800D0CC260000C0
-:1006A0000000000000000C4400880030CC26000050
-:1006B0000000000000000C44008800B0CC260000C0
-:1006C0000000000000000C4400880008CC26000058
-:1006D0000000000000000C4400880088CC260000C8
-:1006E0000000000000000C4400880048CC260000F8
-:1006F0000000000000000C44008800C8CC26000068
-:100700000000000000000C4400880028CC260000F7
-:100710000000000000000C44008800A8CC26000067
-:100720000000000000000C4400880018CC260000E7
-:100730000000000000000C4400880098CC26000057
-:100740000000000000000C4400880058CC26000087
-:100750000000000000000C44008000400C85008078
-:100760000A060000802000000000000000000000D9
-:1007700000000000000000000000008800000000F1
+:100680000000000000000C44008800D0CC260000D0
+:100690000000000000000C4400880008CC26000088
+:1006A0000000000000000C4400880088CC260000F8
+:1006B0000000000000000C4400880048CC26000028
+:1006C0000000000000000C44008800C8CC26000098
+:1006D0000000000000000C4400880028CC26000028
+:1006E0000000000000000C44008800A8CC26000098
+:1006F0000000000000000C4400880018CC26000018
+:100700000000000000000C4400880098CC26000087
+:100710000000000000000C4400880058CC260000B7
+:100720000000000000000C44008000400C850080A8
+:100730000A06000080200000000000000000000009
+:1007400000000000000000000000000000000000A9
+:100750000000000000000000000000000000000099
+:100760000000000000000000000000000000000089
+:100770000000000000000000000000000000000079
 :100780000000000000000000000000000000000069
-:100790000000000000000000000000000000000059
+:100790000000000000000000000000000000020057
 :1007A0000000000000000000000000000000000049
-:1007B0000000000000000000000000000000000039
-:1007C0000000000000000000000000000000020027
-:1007D0000000000011000000000000000000000008
+:1007B00000000000000000000000000000000240F7
+:1007C00000000000000000000000000000000040E9
+:1007D0000000000000000000000000000000000019
 :1007E0000000000000000000000000000000000009
 :1007F00000000000000000000000000000000000F9
 :1008000000000000000000000000000000000000E8
 :1008100000000000000000000000000000000000D8
-:1008200000000000000000000000000000000000C8
+:1008200001000000000000000000000000000000C7
 :1008300000000000000000000000000000000000B8
 :1008400000000000000000000000000000000000A8
-:100850000100000000000000000000000000000097
+:10085000000000000000000009000000000000008F
 :100860000000000000000000000000000000000088
 :100870000000000000000000000000000000000078
 :100880000000000000000000000000000000000068
 :100890000000000000000000000000000000000058
 :1008A0000000000000000000000000000000000048
-:1008B000000000000000090000000000000000002F
-:1008C0000000000000000000000000000000000028
-:1008D0000000000000000000000000000000000018
-:1008E000000000000000000000000000FFFFFFFF0C
+:1008B000000000000000000000000000FFFFFFFF3C
+:1008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38
+:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28
+:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
 :1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
 :10090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
 :10091000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
 :10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
-:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
-:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
-:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
-:10096000FFFFFFFFFFFFFFFFFFFFFFFFFFFF008015
-:1009700027560C44008000600A06000080E3000057
-:100980000000000000000000000000000000000067
+:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFF00982D
+:100940007A7E0C44008000600A06000080200000CF
+:100950000000000000000000000000000000000097
+:100960000000000000000000000000000000000087
+:100970000000000000000000000000000000000077
+:1009800000000000000000000000000000A00000C7
 :100990000000000000000000000000000000000057
-:1009A0000000000000000000000000000000000047
+:1009A0000000000000000500000000000000000042
 :1009B0000000000000000000000000000000000037
-:1009C0000000000000000000050000000900000019
-:1009D00000000000000000000000000041000000D6
+:1009C0000000000000000000000000000000000027
+:1009D0000000000000000000000000000000000017
 :1009E0000000000000000000000000000000000007
 :1009F00000000000000000000000000000000000F7
-:100A000000000000000000000000000008000000DE
+:100A000000000000000000000000000000000000E6
 :100A100000000000000000000000000000000000D6
 :100A200000000000000000000000000000000000C6
-:100A300000000000000000000000000000000000B6
+:100A30000000000000000000C000000000000000F6
 :100A400000000000000000000000000000000000A6
 :100A50000000000000000000000000000000000096
 :100A60000000000000000000000000000000000086
-:100A70000000000000000000000000000000000076
+:100A700000880000000000000000000000000000EE
 :100A80000000000000000000000000000000000066
 :100A90000000000000000000000000000000000056
 :100AA0000000000000000000000000000000000046
-:100AB0000000000000000000000000000000000036
-:100AC0000000000000000200000000000000000024
-:100AD0000000200000000000000000004100200095
-:100AE00000000500030000000000200000000000DE
-:100AF00000001100000000000000000000000000E5
-:100B000000000000000000000000000000000000E5
-:100B100000000000000000000000000000000000D5
-:100B200000000000000000000000000000000000C5
-:100B300000000000000000000000000000000000B5
-:100B400000000000000000000000000000000000A5
-:100B50000000000000110000000082000000000002
-:100B60000000000000000000000082000000000003
-:100B70000000000000000000000000000000000075
+:100AB00000000000000000000000410000000000F5
+:100AC000009000000000008800000000000000000E
+:100AD00000000000FFFFFFFFFFFFFFFFFFFFFFFF22
+:100AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16
+:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06
+:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5
+:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5
+:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5
+:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5
+:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5
+:100B5000FFFFFFFFFFFF00E879970C440080005083
+:100B60000A06000000C300A000000000000000A072
+:100B700000000000000000C00000000000000000B5
 :100B80000000000000000000000000000000000065
 :100B90000000000000000000000000000000000055
-:100BA0000000000000000000000000000000000045
-:100BB0000000000000000000000000000000000035
-:100BC0000000000000000000100000000000000015
-:100BD0000000000000000000000000000000110004
-:100BE0000000000000000000000000000000030002
-:100BF00000000000000000000000000000000000F5
+:100BA000000000000000000000000000000000A0A5
+:100BB00000000000000010A000000000000000A0E5
+:100BC00000000000000000A000000000000000C0C5
+:100BD0000000000000000000000000000000000015
+:100BE0000000000000000000000000000000000005
+:100BF00000000000000008000000000000000000ED
 :100C000000000000000000000000000000000000E4
-:100C100000000000080000000000000000000400C8
+:100C100000000000000000000000000000000000D4
 :100C200000000000000000000000000000000000C4
 :100C300000000000000000000000000000000000B4
 :100C400000000000000000000000000000000000A4
-:100C50000000820000000000000000000000000012
-:100C6000A000C00000000000000000000000000024
-:100C70009000000000000000000000000000820062
-:100C800000000000000000000000FFFFFFFFFFFF6A
+:100C50000000000000000000000000000000000094
+:100C600000000000000000000000FFFFFFFFFFFF8A
+:100C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84
+:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
 :100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
 :100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
 :100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44
 :100CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
 :100CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
-:100CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
-:100CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
-:100D0000FFFFFFFFFFFFFFFFFFFFFFFF00805D4EC4
-:100D10000C44008000700A06000000C300000000C0
+:100CE000FFFFFFFFFFFFFFFFFFFFFFFF000818826E
+:100CF0000C44008000700A06000000C300000000E1
+:100D000000000000000000000000000000000000E3
+:100D100000000000000000000000000000000000D3
 :100D200000000000000000000000000000000000C3
 :100D300000000000000000000000000000000000B3
 :100D400000000000000000000000000000000000A3
 :100D50000000000000000000000000000000000093
-:100D60000000000000000000000000000000000083
+:100D600000000000000200000000000000880000F9
 :100D70000000000000000000000000000000000073
-:100D80000000000000C00100000000C000C1000021
+:100D80000000000000000000000000000000000063
 :100D90000000000000000000000000000000000053
 :100DA0000000000000000000000000000000000043
 :100DB0000000000000000000000000000000000033
 :100DC0000000000000000000000000000000000023
 :100DD0000000000000000000000000000000000013
-:100DE0000000000000000000000000000000000003
+:100DE00000000000000000001000000000000000F3
 :100DF00000000000000000000000000000000000F3
-:100E000000000000000000000200000000000020C0
-:100E100000000000000000000000000000000000D2
+:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
+:100E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2
 :100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
 :100E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2
 :100E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
 :100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2
 :100E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
 :100E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82
-:100E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
-:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62
-:100EA000FFFF0000D0FE0C44008000480A0600004E
-:100EB00000410000000000000000000000000000F1
+:100E8000FFFF0070521F0C44008000480A0600005B
+:100E90000041000000000000000000000000000011
+:100EA0000000000000000000000000000000000042
+:100EB0000000000000000000000000000000000032
 :100EC0000000000000000000000000000000000022
-:100ED0000000000000000000000000000000000012
+:100ED00000000040000000000000000000000000D2
 :100EE0000000000000000000000000000000000002
-:100EF00000000040000000000000000000000000B2
+:100EF00000000000000000000000000000000000F2
 :100F000000000000000000000000000000000000E1
-:100F100000000000000000000000000000000000D1
-:100F200000000000000000000000000000000000C1
-:100F300000000000FFFFFFFFFFFFFFFFFFFFFFFFBD
+:100F100000000000FFFFFFFFFFFFFFFFFFFFFFFFDD
+:100F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
+:100F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1
 :100F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
 :100F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
 :100F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
 :100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81
 :100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
-:100F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61
-:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
-:100FB000FFFFFFFFFFFF0010E5860C4400800028C4
-:100FC0000A060000004100000000000000000000D0
+:100F9000FFFFFFFFFFFF00BC12010C440080002890
+:100FA0000A060000004100000000000000000000F0
+:100FB0000000000000000000000000000000000031
+:100FC0000000000000000000000000000000000021
 :100FD0000000000000000000000000000000000011
 :100FE0000000000000000000000000000000000001
 :100FF00000000000000000000000000000000000F1
 :1010000000000000000000000000000000000000E0
-:1010100000000000000000000000000000000000D0
-:1010200000000000000000000000000000000000C0
-:10103000000000000000008200000000000000002E
-:101040000000000000000000FFFFFFFFFFFFFFFFA8
+:1010100000000010000000000000000000000000C0
+:101020000000000000000000FFFFFFFFFFFFFFFFC8
+:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
+:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
 :10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
 :10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
 :10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
 :10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
 :10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
-:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
-:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
-:1010C000FFFFFFFFFFFFFFFFFFFF000005DE0C44F7
-:1010D000008000680A060000802000000000000078
+:1010A000FFFFFFFFFFFFFFFFFFFF0060B3E00C4407
+:1010B000008000680A060000802000000000000098
+:1010C0000000000000000000000000000000000020
+:1010D0000000000000000000000000000000000010
 :1010E0000000000000000000000000000000000000
 :1010F00000000000000000000000000000000000F0
 :1011000000000000000000000000000000000000DF
 :1011100000000000000000000000000000000000CF
-:1011200000000000000000000000000000000000BF
+:10112000000000000000000000800000000000003F
 :1011300000000000000000000000000000000000AF
-:10114000000000000000000000800000000000001F
+:10114000000000000000000000000000000000009F
 :10115000000000000000000000000000000000008F
 :10116000000000000000000000000000000000007F
 :10117000000000000000000000000000000000006F
 :10118000000000000000000000000000000000005F
 :10119000000000000000000000000000000000004F
-:1011A000000000000000000000000000000000003F
-:1011B000000000000000000000000000000000002F
-:1011C000000000000002000000000000000000001D
-:1011D0000000000000000000000000008C00000083
+:1011A000000000000002000000000000000000003D
+:1011B0000000000000000000000000008C000000A3
+:1011C000000000000000000000000000000000001F
+:1011D000000000000000000000000000000000000F
 :1011E00000000000000000000000000000000000FF
 :1011F00000000000000000000000000000000000EF
 :1012000000000000000000000000000000000000DE
 :1012100000000000000000000000000000000000CE
-:1012200000000000000000000000000000000000BE
+:10122000000000000000000000000000202000007E
 :1012300000000000000000000000000000000000AE
-:101240000000000000000000000000000820000076
-:10125000000000000000000000000000000000008E
+:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
+:10125000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
 :10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
 :10127000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
 :10128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
 :10129000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
 :1012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
 :1012B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
-:1012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
-:1012D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
-:1012E000FFFF0054BCFD0C44008000D80A0600003B
-:1012F000A86B0000000000000000000000000000DB
+:1012C000FFFF00AC38140C44008000D80A06000070
+:1012D00060DB0000000000000000000000000000D3
+:1012E00000000000000000000000000000000000FE
+:1012F00000000000000000000000000000000000EE
 :1013000000000000000000000000000000000000DD
 :1013100000000000000000000000000000000000CD
 :1013200000000000000000000000000000000000BD
-:1013300000000000000000000000000000000000AD
-:10134000000000000000000000000000000000009D
-:10135000000000000000000000000100000000206C
-:10136000000001000000000000000000000000007C
+:10133000000000000000000000000100000000208C
+:10134000000001000000000000000000000000009C
+:10135000000000000000000000000000000000008D
+:10136000000000000000000000000000000000007D
 :10137000000000000000000000000000000000006D
 :10138000000000000000000000000000000000005D
 :10139000000000000000000000000000000000004D
 :1013A000000000000000000000000000000000003D
-:1013B000000000000000000000000000000000002D
+:1013B00000000000000000400000000000000040AD
 :1013C000000000000000000000000000000000001D
-:1013D000000000000000004000000000000000408D
+:1013D000000000000000000000000000000000000D
 :1013E00000000000000000000000000000000000FD
 :1013F00000000000000000000000000000000000ED
 :1014000000000000000000000000000000000000DC
 :1014100000000000000000000000000000000000CC
 :1014200000000000000000000000000000000000BC
-:1014300000000000000000000000000000000000AC
-:10144000000000000000000000000000000000009C
-:101450000000000000000000000000100800000074
-:101460000000000109000000000000000000000072
-:10147000000000000000000000000000000000006C
-:10148000000000000000000000000000000000005C
-:101490000000000004000000000002000000000046
-:1014A000000000000000000002000000000000003A
-:1014B00000000000040000000080000004000000A4
-:1014C0000000000000000000000004000000000018
+:101430000000000000000000000000100800000094
+:101440000000000109000000000000000000000092
+:10145000000000000000000000000200000000008A
+:101460000400000008000000000000000000000070
+:10147000000000000000000000000000000020004C
+:10148000000000000000000002000000000000005A
+:10149000020000000000000000000000000000004A
+:1014A0000000000000000000000004000000000038
+:1014B0000000040000000000000000000000000028
+:1014C000000000000000000000000000000000001C
 :1014D000000000000000000000000000000000000C
-:1014E00000000000000000000000000000000000FC
+:1014E00000000100000001000000000000000000FA
 :1014F00000000000000000000000000000000000EC
-:1015000000000000000000000000000000000000DB
-:1015100000000000000000000000000000000000CB
+:1015000001000000000000000000000000000000DA
+:10151000000000000000000000000080000000004B
 :1015200000000000000000000000000000000000BB
-:101530000000000000000000000000C000000000EB
+:1015300000000000000000000000000000000000AB
 :10154000000000000000000000000000000000009B
 :10155000000000000000000000000000000000008B
-:10156000000000000000000000000000000000007B
-:10157000000000000000000000000000000000006B
-:1015800000008000000000000000000000000000DB
-:10159000000000000000000000000000000000004B
-:1015A000000000000000000000000000000020001B
-:1015B000200080000000000000000000008000000B
-:1015C0000004000000040000000000000000000013
-:1015D000000000000000000000000000000000000B
-:1015E00000000000000000000000000000000000FB
-:1015F00000000000080000000000000000000000E3
-:101600000020000020000000020002000000000096
-:1016100000000000000000000000000000000000CA
-:1016200000000000000000000000000000000000BA
-:101630000100010020000000000000000000000088
-:10164000000000800000008000000000000000009A
-:10165000000000000000000000000000000000008A
-:10166000000000000000000000000000000000007A
-:101670000000000000000100000000000000000069
-:10168000000000000000000000000000000000005A
-:101690000000000000000800000000000000000042
+:1015600000000001800000000000000000000000FA
+:10157000000000000000000000000001000000006A
+:101580000000200080000000000000C000000000FB
+:1015900000000000000080000000000000C000000B
+:1015A0000000000000000000000004000000000037
+:1015B000000000000000000000000000000000002B
+:1015C000000000000000000000000000000000001B
+:1015D00000000000001000000000000000000200F9
+:1015E000000000000020400000000000000000009B
+:1015F00000000000002000000000000000200000AB
+:1016000000000000010004000000000000000000D5
+:101610000000000000000000040000000000008046
+:1016200000000000000000000000000001000000B9
+:1016300000000000000000000000000000000000AA
+:10164000000000000000000000000000000000009A
+:10165000000000000000008000000000000000000A
+:1016600000000000000000000090000000000000EA
+:1016700000000084000000000000000000000000E6
+:10168000000000200000000000000000000000003A
+:101690000000000000000000000000C0000000008A
 :1016A000000000000000000000000000000000003A
-:1016B0000000000000000000000000000000000426
-:1016C000000000000000000000000000000000001A
-:1016D0008000000000080000000200000000000080
-:1016E00000200000000000000000000000000000DA
+:1016B000000000A000000000000000000002000286
+:1016C0000002000000000000000000000000000018
+:1016D000000000000000000000000000000000000A
+:1016E00000000000000000000000000000000000FA
 :1016F00000000000000000000000000000000000EA
-:1017000000000000000000000000000000000000D9
-:1017100000000000000000000100000000000000C8
+:101700000000000000800000000000000000000059
+:1017100000000000000000000000000000000000C9
 :1017200000000000000000000000000000000000B9
-:1017300000000000000000000000000000000000A9
-:101740000080000000000000000000000000000019
-:101750000000200000000080000000800000000069
-:1017600000000080000000000000000000000000F9
-:101770000000000000000000000000000000000069
-:101780000000000000000000A00080010000000038
-:10179000000000000000000000010009000000003F
-:1017A0000000000000010001000100000000000036
-:1017B00000008000000000000000000000000000A9
-:1017C0000000000000000000000000000000000019
-:1017D0000001000000000000000000000000000008
-:1017E0000000000000900000100005000000000054
-:1017F00000000000000000000000000000000000E9
-:10180000000000000000A000000005000440C0002F
-:1018100000008200000000000000000400A00000A2
-:101820000000000000000020002000100000000068
-:10183000000000000405000000000000000000009F
-:101840000000000000000000000000000000A000F8
-:101850000000004000000000000000000000000048
-:101860000000000000000000000000000000000078
-:101870000000000000000000000000000000000068
-:1018800000000000000000004100000021000900ED
-:101890001088000004000040000002000000000466
-:1018A000000000000000000000000900000000002F
-:1018B0004000000000000084000000000004000060
-:1018C0000000000000000000000000001100000007
-:1018D00002202000200120882000000003000000DA
-:1018E00000000000000000000020000000000000D8
-:1018F0000000000000000000000010004100000097
-:1019000000000000000000000000000000000000D7
-:101910000000000000000100008000000100000045
-:101920000080000000000000000000000000000037
-:101930000000000000000000000000000000008027
-:101940000000000000000000000000000000000097
-:1019500000000180012001400100010000000000A2
-:1019600000000000000000000000008000000000F7
-:1019700000000000000000008400000000000000E3
-:10198000000000000000000000000000000008004F
-:1019900041000300000083002101800000000000DE
-:1019A0000200830000000000002080000000000012
-:1019B0000000800000000000000000840000000023
-:1019C0000000000000000000000000000000020015
-:1019D000000000000000000400042000008400C09B
-:1019E00000000090000000000000100080010000D6
-:1019F00000000900000000000000000000000000DE
-:101A00000000000000000000000000000000C00016
-:101A100001000000100010412000C0040400080074
-:101A200000000000400000000000008004000000F2
-:101A30000000000008210000000000000005000078
-:101A40000000000000000002000000000000000094
-:101A50000100000000000021008000800100A000C3
-:101A6000000000000000A0020002000000000420AE
-:101A70000000000000000000000000000000000066
-:101A800000008800000000000000000000000000CE
-:101A900000000000080000000000110080000000AD
-:101AA0000003002080200000000000000000000073
-:101AB0000080000080000000000000000000000026
-:101AC000000000000000030000000000040000000F
-:101AD0000000808591090889419000008000110074
-:101AE0000080400300110005034000008000110049
-:101AF00000000000000000000000000000000000E6
-:101B000000000000000000000000000000000000D5
-:101B1000000000000000C100000000000100C00043
-:101B200000000001000104010000C000000082006C
-:101B30000000008200881004000400000000000083
-:101B40000000880000000000010010008800000074
-:101B5000000000000811108400100109C0A0888452
-:101B600000C00008010100000001010100000800A0
-:101B70000000000000000000000000000000000065
+:101730000000000000000000000000000000008029
+:101740000080008000000000000000000000000099
+:101750000000000000000000000000000000000089
+:1017600000000000000090010000000100000000E7
+:101770008000000000004100100000000000000098
+:101780000000000000001000000100000000000048
+:101790000000000000004100000080000000000088
+:1017A00000000000000020002000200020000000B9
+:1017B0000300800000004101030005000000030158
+:1017C0008001000100000000000000000000000097
+:1017D00000000000004000000000000000000000C9
+:1017E00000000000000000002004000000040000D1
+:1017F00000001000000000000000000000000000D9
+:101800000000000000000000002100200000100087
+:101810000000100000000000000000002000000098
+:1018200000000000000000000100010001000100B4
+:101830000000000040000000000200000000000066
+:101840000020082000100000000000000000000040
+:101850000000000000000000000000000000000088
+:101860000000000000000000004000000020000018
+:101870000000000000040000000000000000000064
+:101880000000100000002001080000000400081003
+:101890000000000000000000000000000000000048
+:1018A0000000000000000000000000A0000009008F
+:1018B00000002008408404202100110005004100A0
+:1018C000419000000900000000000000040000003A
+:1018D0000000000000000000000000000000000008
+:1018E00000001000000000000000000000000000E8
+:1018F00000000000000000000000000000000000E8
+:1019000000000000000000000004010000000100D1
+:1019100091800000000000000000000000000000B6
+:1019200000000000000000000000000000000000B7
+:1019300000000000018001000180000000000000A4
+:101940000000000000000000000000000000010096
+:101950000000000000000000000000110000200056
+:1019600000000000000000000000000000008000F7
+:101970000000000100000000009000000000008452
+:101980000000000000000000000000008000410096
+:101990000000800000000084001000000000000033
+:1019A00000000000000000010000800000000000B6
+:1019B00041000000000000C0050040842184002098
+:1019C000410000000000030241000000800100000F
+:1019D00000000000000000000000000000001000F7
+:1019E00000000000000000000000000000000000F7
+:1019F0002000000002041000002100000000000090
+:101A00000000000008000041000000000000080085
+:101A10000000000020000000000000800000000026
+:101A20000000000000000000000400004000000072
+:101A30000000000000001000000000000100000095
+:101A40000080000000000000008000000000021084
+:101A50000000000000000000000000000000000086
+:101A60000000000000000000000000000000000076
+:101A700083050009004040029180040080004180FD
+:101A80000000000000000000000000000000000056
+:101A900000000000000000000080000000000000C6
+:101AA00000000000000000009103800909020909FC
+:101AB000008040101102004141108000000089099F
+:101AC00000000003000040090080808300208000A7
+:101AD00000008203000009800000000000000000F8
+:101AE00000000000000000000000000000000000F6
+:101AF00000000901000100010100898201008482C7
+:101B000001100000000000000000000000000000C4
+:101B100000000000000000000000008200C000C0C3
+:101B200000C00000000000000000910188010001D9
+:101B3000010100000001000000010101900084008B
+:101B40009101000000C1A0C0A1C100101083008558
+:101B5000A004000489A1A0A00290000000000000E1
+:101B60000000000000000000000000000000000075
+:101B700000000000010000840101010000000000DD
 :101B80000000000000000000000000000000000055
-:101B90000000000000000000000200010000000042
-:101BA00000A0000000000100014000010000000052
-:101BB00000A00000000000000000009000000000F5
-:101BC0000000000000000001000000010000010012
-:101BD000000001000000000000840101010000017C
-:101BE000000001000084010000000100000000006E
-:101BF00000000000000000000000000000000000E5
-:101C000000000000000001000000000200000100D0
-:101C10000000000000C000000000000000400000C4
-:101C20000005000000000904400009801140000088
-:101C300000000000000000040000000000000000A0
-:101C4000000000000000000000040000004004004C
-:101C50000800000009000000110011000503100039
-:101C60000410041102000985400011002000110039
-:101C70000000000000000000000000000000000064
-:101C80000000000000000000020000000000000052
-:101C90004000000000000000000000800200808082
-:101CA000000000804000008004000000410080002F
-:101CB000000000000000000000000000890000009B
-:101CC0000000000000000000000300030003000308
-:101CD0000000000000808080008011098040809119
-:101CE000080980808000A18080800011000400111C
-:101CF000054000800080000000800000000000001F
-:101D000000000000000000000000000000000000D3
-:101D100000000000000000000000000000080004B7
-:101D2000828200C000080104A082000000000000C0
-:101D30008200000000000000A00000000000A000E1
-:101D4000C0000000000000000400000100010001CC
-:101D500000010004000000088888008000901090B6
-:101D6000081005088288C00889881010000000004B
-:101D70000000010100080010000400100000000035
-:101D80000000000000000000000000000000000053
-:101D90000000000000000000000000000088008437
-:101DA00000000000000000A0000000008204A084E9
-:101DB0008201000000000000000000008204840096
-:101DC0000000C00000000000000000000000000053
-:101DD0000008000000000000000100000080000872
-:101DE000000000010000840008209000840000042E
-:101DF00000010001000000000000000000000000E1
-:101E000000000000000000000000000000000000D2
-:101E100000000000000000000000000000000000C2
-:101E20000000000000000000000000000000800032
-:101E30000082001000000000000000000000800090
-:101E40000000000000000000000000000000000092
-:101E500000000000000000000000002100000080E1
-:101E6000008011040902400080008084000480008A
-:101E70000000004000020000000000000000000020
-:101E80000000000000000000000000000000000052
-:101E90000000000000000000000000000000000042
-:101EA00000000013C200008200000013C200000006
-:101EB00000000013C20000820000001300000000B8
-:101EC00000000022000000000000000B00000000E5
-:101ED00000000000E00000421182000BD000000072
-:101EE00000000000000BD000004100000000D00006
-:101EF000820000000000000000600000000B0000F5
-:101F000000000000000000000000000000000000D1
-:101F100000000000000000000000000000000000C1
+:101B9000000000000101910089888390000000008E
+:101BA00000000000000000000000000090010000A4
+:101BB00000A0898900000100000000000100110060
+:101BC000A0C0880101000001A0000890A1820000CF
+:101BD0000000000001C19001A084088801000000FD
+:101BE00000000000000000000000000000000100F4
+:101BF00000000000009011000900102109040000FD
+:101C000000000000000000000000000000000000D4
+:101C100000000000000440020200C0808980000033
+:101C20000000000000000000000000000011801112
+:101C300000000080898500001000020000110800EB
+:101C400090000000800903000002000080800380F3
+:101C500000040000000003058020000080800300D5
+:101C6000000000000000000009000000000000006B
+:101C70002000000000000000200900020084204134
+:101C800000040000801100030000000000000000BC
+:101C900000000000000080000000000008000000BC
+:101CA0000000000000000000000000000000000034
+:101CB000028000000989118300000010000000026A
+:101CC00008080000000000218003000000800040A0
+:101CD000808300C0000009000083000000808000B5
+:101CE000C003000000000000000000000000000031
+:101CF000000000000000000000000100004000A003
+:101D000009880000000090010001000000000000B0
+:101D100000000000000000002000000000000000A3
+:101D200000000000A0000000000000000000000013
+:101D300000000108008201850191000000010000FF
+:101D40000001890100C000A00083880100C0A090AC
+:101D50000001881100110008C0C0008300A0849019
+:101D6000088289010000000000000000000000005F
+:101D70000000000000000000000000000000000360
+:101D80000100000000100010000000000000000032
+:101D900000000000000000000000000082918800A8
+:101DA00082011000000000000000000000000000A0
+:101DB000000000001000821004001000000000026B
+:101DC0000188010100000189011001000090C1019A
+:101DD000A10000011090830484010000C0000302F0
+:101DE000A008C001900200000000000000000000F8
+:101DF00000000000000000000000000000000200E1
+:101E0000044040024100008000800000000000000B
+:101E100000000000000000000000000000008091B1
+:101E200080020010800000000000000000000000A0
+:101E30000000000000008000000000000000000022
+:101E40000200411110211100034020800200118086
+:101E50000340090000218080830000400000020050
+:101E600003020080802180000000000000000000CC
+:101E70000000000000000000000000000000000062
+:101E800000410013D000110081810213C201000043
+:101E900000000000000000000000000660000000DC
+:101EA00000420022D020000000000083000000005B
+:101EB00000000000D00000000088000BD0000000EF
+:101EC000000000000000C200000000000013C2007B
+:101ED000000000000013000000600000002200006D
+:101EE00000000000001300000000000000000000DF
+:101EF00000000000000000000000000000000000E2
+:101F00000000FFFFFFBFFFFFFFFF00000000BDFF5D
+:101F100081420000000000000000000000000000FE
 :101F200000000000000000000000000000000000B1
-:101F300000000000000000000000000000000000A1
-:101F40000000000000000000000000000000000091
-:101F50000000000000000000000000000000000081
-:101F600000000000040E040E0C3C3FFF00000000C7
-:101F70000000000000000000E2E742E20000000074
-:101F80000000000000000000000000000000000051
-:101F90000000000000000000000000000000000041
+:101F300000000000000000000000000000009966A2
+:101F4000999900000000000200000042FF9F00106D
+:101F5000FF000000FF000000FF0000003C3C00000C
+:101F60003C3C0000FFFF000066660000000000002F
+:101F70000000000000000000000000000000000061
+:101F800000000000FFFFFFFFFF9FFFBF00000000F9
+:101F9000FFFF4242000000000000000000000000BF
 :101FA0000000000000000000000000000000000031
 :101FB0000000000000000000000000000000000021
-:101FC0000000000000000000000000000000000011
-:101FD0000000000000000000000000000000000001
-:101FE0000000000000002F7F2F7F000C3C3F00000E
-:101FF0000000000000000000000042E74242000034
-:1020000000000000000000000000000000000000D0
-:1020100000000000000000000000000000000000C0
-:1020200000000000000000000000000000000000B0
-:1020300000000000000000000000000000000000A0
-:102040000000000000000000000000000000000090
-:1020500000000000000000000000002180000000DF
-:102060000000000000000000000000000000000070
-:102070000000000000000000000000000000000060
-:102080000000000000000000000000000000000050
-:102090000000000000000000000000000000000040
+:101FC000FF00666600000000000200000000FF0F36
+:101FD0000000FF000000FF000000FF0000003C3C8C
+:101FE00000003C3C000000000000666600000000AD
+:101FF00000000000000000000000000000000000E1
+:10200000000000000000FFFFFFFFFFFFFFFFFFFFDA
+:10201000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
+:10202000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
+:10203000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
+:10204000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
+:10205000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
+:10206000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
+:10207000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
+:10208000FFFFFFFFFFFFFFFF007CB3670C44004032
+:1020900000180A06000070DF040404F7009F20BF48
 :1020A0000000000000000000000000000000000030
-:1020B000000000000000000000F000007272C3FF8A
+:1020B0000000000000000000000000008203C3C315
 :1020C0000000000000000000000000000000000010
-:1020D0000000000000000000000000000000000000
-:1020E000000000000C0CFFFF0000081C183C000062
-:1020F0000426000000009DFF9D9DFC3042E7D1C0FA
-:10210000F3D100000000000000000000000000000B
-:1021100000000000000000000000000000000000BF
-:1021200000000000000000000000000000000000AF
-:1021300000000000000000000000000000F07272CB
-:10214000003C000000000000000000000000000053
-:10215000000000000000000000000000000000007F
-:102160000000000000000000F3F300000018081C4D
-:1021700000006E7F000000000CFF0C0CFC3042E7FA
-:10218000C0C0F3C00000000000000000000000001C
-:10219000000000000000000000000000000000003F
-:1021A000000000000000000000000000008600F1B8
-:1021B000A8B00005008650F1A8B0000000860AF122
-:1021C000A8B00005008600E100B00000008000809B
-:1021D00000B000000086006100B000000000500068
-:1021E00000000005008600650990000000000086E0
-:1021F000006100B00000A0865070A0B00005000093
-:102200000A0000000000008600600090000000004E
-:1022100000000000000000000000000000000000BE
-:102220000080010000000000000009000000000024
-:1022300000000005000A00000000000300C000507C
-:1022400000A00000000000000000000000000000EE
-:10225000000000000000000000000000000000007E
-:102260000000000000000000000055FFFFFF00001C
-:1022700000000000FF50FFD3AAAAAAAAF8FFF8F8AE
-:10228000000000000000000000000000000000014D
-:10229000000000000000000000000000000000003E
-:1022A00000000020000000000000002000000100ED
-:1022B000000000000005000A00000000000300C04C
-:1022C000005000A00000000000000000000000001E
-:1022D0008282C30000000000000000000000000037
-:1022E00000000000000000000000000055FFD7FFC4
-:1022F0000000000000005050D3D3AAAA2AA828FF4B
-:10230000282800000000000000000000000000007D
-:1023100000000000000000000000000000000000BD
-:10232000000000000000000002000040000000006B
-:10233000020000000000000000000000000000009B
-:10234000000000000000000000000000000000008D
+:1020D000565620DFFFFF0000000010000000000047
+:1020E0000000F0F0F0F000003C3C0000F0F00000D8
+:1020F000FFFF000000FF0000666600006666FFFF4D
+:1021000000000000000000000000000000000000CF
+:102110000000000000000000000066666666000F18
+:10212000303F000000000000000000000000000040
+:10213000000000000000000000000000000000009F
+:10214000C3C3000000000000000000000000000009
+:102150000000666600FFFFFF0000000010000000A6
+:1021600000000202F0F0F0F000003C3C0000F0F053
+:1021700000000000000000FF0000666600006666C8
+:10218000FFFFFFFF00000000000000000000000053
+:102190000000000000000000000000000086007445
+:1021A0000098000000A400D401B20000000000006C
+:1021B000000000000086006100B00005000200245D
+:1021C00000A000000086004100B0000000000000F8
+:1021D000080000050086043C00B20000000000007A
+:1021E000001000000000118601F00084494002C781
+:1021F00001800084494002C101800034494002C787
+:102200000180008441400000000000000000000048
+:102210000080010000000000000009000000000034
+:10222000000000000FF000000000000000000000AF
+:1022300000000000000000000000000000004380DB
+:102240004343000000000000000000000000000008
+:1022500000000000000080000000000000080000F6
+:10226000000000000000000000000000200020002E
+:102270000000008200000000000000000300C3FF17
+:102280000000040002000200000000000000000046
+:1022900000000020000000000000002000000100FD
+:1022A0000000000000000FF000000000000000002F
+:1022B000000000000000000000000000000000001E
+:1022C000C30080800000000000000000000000004B
+:1022D00000000000000000000000000000000000FE
+:1022E00000000000000000000000000000000000EE
+:1022F000000000000000010100008282C300030012
+:10230000C3FF000004000000000000000000000007
+:10231000000000000000000002000040000000007B
+:1023200002000000000000000000030300000000A5
+:10233000000000000000000000000000000000009D
+:102340000000000000000000F0000003404000001A
 :10235000000000000000000000000000000000007D
-:10236000000000000000000000000000000000006D
-:1023700000000000507C507C00000000FFFFF0FCDB
+:102360003C3C0000000000000000000000000000F5
+:10237000400040000040000000000000000000009D
 :10238000000000000000000000000000000000004D
-:10239000000000000000000000000000000000003D
-:1023A00000000000400000000000000000000000ED
+:1023900000000000400000000000000000000000FD
+:1023A000000000000000000000000000C0C0C3C327
 :1023B000000000000000000000000000000000001D
-:1023C000000000000000000000000000000000000D
-:1023D0000000000000F0003C0000000000000000D1
-:1023E00000000000000000000000000000000000ED
-:1023F000000000000000FFFF507C00000000FFFF15
-:10240000FAFE0000000000000000000000000000D4
+:1023C0000000000000000000F0F000F000034040BA
+:1023D00000000000000000000000000000000000FD
+:1023E00000003C3C00000000000000000000000075
+:1023F000000000000000004000000000500000F05D
+:10240000003C000000000000500008000800000030
 :1024100000000000000000000000000000000000BC
 :1024200000000000000000000000000000000000AC
-:102430000000000000000000040000002000000078
-:102440000000000000000000200004002000000048
-:10245000000000000000000000000000000000007C
-:102460000000000000000000000002002100000148
+:10243000000000000000000000000000020000009A
+:102440000400000000000000000000000000000088
+:102450000000000000000000000000000400000078
+:10246000000000000000000000000000000000006C
 :10247000000000000000000000000000000000005C
-:10248000000000000000000000000000000000014B
-:10249000000100000000000000000000000000003B
+:10248000000000000000000000000000000000004C
+:10249000000000000000000000000000000000003C
 :1024A000000000000000000000000000000000002C
-:1024B000000000000000000000000000000001001B
-:1024C000000000000000000000000100000001000A
+:1024B000000000000000000000000000000000001C
+:1024C000000001000000000000000000000000000B
 :1024D00000000000000000000000000000000000FC
-:1024E00000000000000000000000000001000000EB
-:1024F000000800000000000000C000000000000014
+:1024E000000000000000000000C00000000000002C
+:1024F00000000000000000000000000000000000DC
 :1025000000000000000000000000000000000000CB
-:102510000020000800000000000000000000000093
+:1025100000000000000000000000000000000000BB
 :1025200000000000000000000000000000000000AB
-:102530000000000000000000000000010001000099
-:102540000001000000000000800000000500000104
-:1025500000040000000000000000000004880000EB
-:1025600000900001000000000000080000000000D2
-:1025700000008000800000008001008000000088D2
-:10258000000000000000000000000000000000004B
+:102530000000000080001100800100010000110077
+:102540008020000000010000004000000040000169
+:10255000000000000000000000010010000000006A
+:10256000000100000000000004880080000000005E
+:10257000000000200000000000000000000000003B
+:102580000000002000000800000000000000000023
 :10259000000000000000000000000000000000003B
-:1025A000000000000000000000000000000000002B
-:1025B0000000000000000000000000100004000205
-:1025C000000000020010000000094021000000008F
-:1025D0000004008000000000000000100000000067
-:1025E00000000000000400000000000001000000E6
-:1025F000000000002000200000004020000000003B
-:1026000000000000000000000000000000000000CA
+:1025A00000000000000000000000001000200000FB
+:1025B0000010002100002000000004400004000082
+:1025C0000000028900000020000000800000008060
+:1025D0000040000000000000000000040080000037
+:1025E0000000002000000000000001000080002129
+:1025F0000000000000800000000000090000000052
+:102600000000000000800000010000000000000049
 :1026100000000000000000000000000000000000BA
-:1026200000000000000000000000000000000000AA
-:10263000000000000000000000000000008000001A
-:1026400000900040000000000000000000000000BA
-:1026500000000000089080008000800080020000E0
-:102660000010000000000000000000000002000058
-:1026700000000000000000000000000000840000D6
-:1026800080008800800080000000000000008020A2
-:102690000000000100100000000800000000000021
+:10262000000000000000000000000000008000002A
+:102630000021000800C00000000000200011000080
+:102640000000000000A000000000000000000010DA
+:10265000000000000000000000000000000000205A
+:102660000004004000200000000000000000000006
+:10267000000000000000000000000000000000005A
+:1026800080408000800080000000001000000000FA
+:102690000000000100000002020000000000000035
 :1026A000000000000000000000000000000000002A
-:1026B000000000000000000000000000000000001A
-:1026C00000000000A00000001000C000000000009A
-:1026D00000000000000000004000400040004000FA
-:1026E0000000008000008200000000000000008068
-:1026F000C00000008200000000000000884082004E
-:1027000000000800210020000400000084210000D7
-:1027100004C100000020C080000000800000000014
+:1026B000A0000002008000000021000000000004D3
+:1026C00000000000000010000000000000000000FA
+:1026D00000000000000000000000000000100000EA
+:1026E00000800080008008A10000000000000000C1
+:1026F00000000000000000002000000000000000BA
+:102700000000400040004000400000000080000049
+:102710000000000000020000008000000000000037
 :1027200000000000000000000000000000000000A9
-:102730000000000000000000000000000000000099
-:1027400000000000030180080090000010A000407D
-:10275000A040200540012040214000000000000072
-:1027600000004100100041000000000000000000D7
-:102770000001000000004100100003000000000004
-:1027800000000000001040000301000000000000F5
-:102790000000040000000001000000000000002014
-:1027A0000000001000000000000000000000000019
-:1027B0000000000000000000000000000000000019
-:1027C00000000000000000044000C00000001000F5
-:1027D00000800980118409040180A0C1000000006C
-:1027E00000008400000000000000C00000000000A5
-:1027F0000000004000000000000000000000000099
-:102800000000000000000080010000200000000027
-:102810000000000001000000002000000000000097
-:1028200000800000008000000000000000000000A8
-:102830000000000000000000000000000000000098
-:102840000000000000000000000004000321000060
-:102850000000000400000000002000200000100024
-:1028600000000088000008000801040004000000C7
-:102870000000000002004100100000000000000005
-:10288000000009000500000080000001C100C10136
-:10289000058440C00000002000200001001110113C
-:1028A000800800000001000100000000000000009E
-:1028B0000000000000000000000000000000000018
-:1028C000000000000088000010000000010000204F
-:1028D00010000000008000000000000000800440A4
-:1028E00000000000000000000100A1100100012113
-:1028F00000000000000000000000000000000000D8
-:102900000021A000000000000000200090042041F1
-:10291000040400418521840000C100800020009053
-:10292000009008A000000020C0200000000000006F
-:102930000000000000000000000000000000000097
-:102940000000000000000000000000000000800106
-:102950001000000000002100092000000005800098
-:10296000089000000000009000000000210000908E
-:1029700000000002000000020040000041000000D2
-:1029800002000000400000000500000040100800A8
-:1029900004000500000200004090400000004020BC
-:1029A000102000000088000000030000000000006C
+:10273000000000000001024004410300000000000E
+:102740000001000000000000410000000001002026
+:102750000000000000001000410000000000000028
+:102760000000000000010000000100001000000057
+:102770000004000000000000000004000000410010
+:102780000000002000000000000000000000000029
+:102790000000000000000000000000000000000039
+:1027A0000000000000000000000000000000000029
+:1027B00000000000000000040080018200210000F1
+:1027C00000000008000000000000000000000010F1
+:1027D0000080000000050000012100000000000052
+:1027E00000000000000000200000000400000000C5
+:1027F0000000008000000000000000000100000058
+:102800000000000000800000000000001000000038
+:1028100000000000000000000000000000000000B8
+:1028200000000000000000000000000000000000A8
+:1028300000000000000000001088118883A0100034
+:1028400000A0414004000000000000000000000063
+:10285000000000000000000000000000000400C0B4
+:10286000000002000500000040020000000202001B
+:102870000001000002000000000000000000210034
+:1028800000044000000005000300000000004100BB
+:10289000080208010400040000000000000000001D
+:1028A0000000000000000000000000000000000028
+:1028B00000000000000000001000000000411000B7
+:1028C0000009002100A1010000000000000000003C
+:1028D000000000000000000000100000A0000080C8
+:1028E000000000000100000000000180000000A0C6
+:1028F0000000040200008400000000050000000445
+:1029000000000083010000210000004004000000DE
+:10291000C0000100C110010001000000A000000083
+:10292000000000090000000000000000000000009E
+:10293000A0000000000000000000110000000908D5
+:1029400000020000200000000091008400A0004070
+:1029500000040000008300000005000000000000EB
+:1029600041910000000000A0000002008004020469
+:10297000080000000000000002200000000000C06D
+:102980000000A1000800000000000000000000009E
+:10299000004000000088000000000000000200006D
+:1029A0000002000000000000000000000000000025
 :1029B0000000000000000000000000000000000017
-:1029C0000000000000000000000000000000000007
-:1029D000200200000200A00000001080000000881B
-:1029E000200000000000C0000000C0000000000047
-:1029F0000000100000800000008000800000000047
-:102A00001000000000000100000000000000018034
-:102A10000100010000000080000001000100000032
-:102A20000180008000000000000000820000000023
-:102A30000000000000000000000000000000001185
-:102A40000000000000000000000000000000000383
-:102A50002009800903100805111111054108000023
-:102A600000008800000000030000002000008083B8
-:102A7000848080800000000320008000004000006F
-:102A800000001100000000030920004100000000C8
-:102A900000030000400000000002000800000000E9
-:102AA00080801100050941000000000000000000C6
+:1029C00000800080000001000000000800000000FE
+:1029D0000000001000000020000000A00000000027
+:1029E00000000020000000000041000000002080E6
+:1029F0000080000000000000000000000000000057
+:102A000000000000200000000000000000000000A6
+:102A10000000000000000000000000000000008036
+:102A20000000008000000000000000000000000026
+:102A3000000000000000000000000000000008038B
+:102A400020212105110000404009204080020000A3
+:102A500021000000800000008300110000008000C1
+:102A60000000210040000000080000000000028378
+:102A7000800984040902000000000000000000003A
+:102A800000008000000000000000000000000000C6
+:102A9000000300000020000080838280C0800000CE
+:102AA00000030000000000400000000000000000E3
 :102AB0000000000000000000000000000000000016
-:102AC0000000000000000000000000000000000006
-:102AD00000010100C0000101010008000001010126
-:102AE0000400840004000000000100000000000059
-:102AF0008883909010900020C0018500A000000104
-:102B000000000000000000000001010100010000C1
-:102B100000000001880089000000000000010000A2
-:102B2000000090828502880201C000000000A00021
+:102AC0000001050101010000000101010101820076
+:102AD0000000C1000000C0000000A00000000000D5
+:102AE0009000840089000000000000000000000049
+:102AF00001898883820201020000000000000000BA
+:102B000000000000C0000000000000000000000005
+:102B100000000001000000000000888390900590F4
+:102B200000000001000000000001000000000000A3
 :102B30000000000000000000000000000000000095
-:102B40000000000000000000000000000000000085
-:102B5000000000000008010201014000841004018F
-:102B600004A00200020090A08200000000200000EB
-:102B700001004001028491008301000001C00000B7
-:102B8000010140000000A000820100000088001048
-:102B9000000000004000A008900083010000000138
-:102BA00000000001C0018208900482A0010101A080
-:102BB00089888390000000000000000000000000F1
-:102BC0000000000000000000000000000100000004
-:102BD00000000000410009802109031000408088A6
-:102BE0008005000580000004000080100000000047
-:102BF000000003000011800021008311000011007B
-:102C00000000030500000000800080050000008037
-:102C10000000000000000000008980008308000020
-:102C20000008000000031010008380808011110252
-:102C30000200C0859180000000000000000000003C
-:102C4000000000000000000000000000000008007C
-:102C500000000000000041410009000983101188B4
-:102C60000085042021880080008002800080000010
-:102C70000020000000030200000991008083808092
-:102C800000C0000000830000000000000000000001
-:102C900000000000910000000000008010088983FF
-:102CA00080400000410000418009008083808980CD
-:102CB00000110000210080890000000000000000D9
-:102CC0000000000000000000000000000000000004
-:102CD00000000000000000000000000000000501EE
-:102CE0000010000800089141109000100140A088D9
-:102CF000000000000000000101900003A182908309
-:102D0000080200910000008300020084000200C05D
-:102D100000000000000083000000C09000C001839C
-:102D20009183100100000100A001909084C005C0B3
-:102D30009182000100000100848900000000000071
-:102D40000000000000000000000000000000000083
-:102D50000000000000000000000001400008010128
-:102D60000100830002C003402004000800000000AE
-:102D700000100100000000010000830290008200AA
-:102D8000C0C00100000000000000001100000000B1
-:102D90000040018801020100010000000102002042
-:102DA000000000A0000000A10001000083910402C7
-:102DB000A001C0C0839189038200888800000000C0
-:102DC0000000000000000000000000000000000003
-:102DD00000000000000000000000000003800585E6
-:102DE00002411000C00882000880080000C10040B5
-:102DF00000000080030000000010000083808000BD
-:102E0000000000000300000000000000009100002E
-:102E10000000008003802091020011000000038365
-:102E2000000000400000110000400010410091101F
-:102E30008000001080808391C089020280800000A1
+:102B40000000880008000500110002000400C00019
+:102B50008400000000A0000000000000000000A0B1
+:102B6000010004000400000000000000900090003C
+:102B700001008201C100C0048303010000000100C4
+:102B800001000000000000000000018300000000C0
+:102B900000000000010000200000010040019084BE
+:102BA00091008383000000C00000010000000000CD
+:102BB0000000000000000000000000000000000015
+:102BC000000000000500830040009041000000006C
+:102BD00080008003000000000005000000000000ED
+:102BE000008009200000000000000002000000003A
+:102BF000000009000402C10004008309200009004C
+:102C000020000300000000040000000009A00000F4
+:102C10000000000000101000000000000300001180
+:102C200080002100839100000000000003000000EC
+:102C3000000000000000000000000000000009008B
... 35809 lines suppressed ...


-- 
dahdi/linux.git



More information about the dahdi-commits mailing list