All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] add support for Bluetooth on MT7622 SoC
@ 2018-05-15  8:52 ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

v2 and changes since v1
 - Dropped patches already being applied
 - Rewirte the whole driver using btuart [1], and add slight extension
   of btuart to fit into btmtkuart driver. Beware that [1] is also pulled
   into one part of the series for avoiding any breakage when the patchset
   is being compiled.

[1] btuart 
	https://www.spinics.net/lists/linux-bluetooth/msg74918.html

v1:

Hi,

This patchset introduces built-in Bluetooth support on MT7622 SoC.
And, it should be simple to make an extension to support other
MediaTek SoCs with adjusting a few of changes on the initialization
sequence of the device.

Before the main driver is being introduced, a few of things about
power-domain management should be re-worked for serdev core and MediaTek
SCPSYS to allow the Bluetooth to properly power up.

Patch 2: add a generic way attaching power domain to serdev
Patch 3 and 4: add cleanups with reuse APIs from Linux core
Patch 5: fix a limitation about power enablement Bluetooth depends on
Patch 1, 6 and 7: the major part of adding Bluetooth support to MT7622
	
	Sean

Marcel Holtmann (1):
  Bluetooth: Add new serdev based driver for UART attached controllers

Sean Wang (6):
  dt-bindings: net: bluetooth: Add mediatek-bluetooth
  serdev: add dev_pm_domain_attach|detach()
  Bluetooth: Add new quirk for non-persistent setup settings
  Bluetooth: Extend btuart driver for join more vendor devices
  Bluetooth: mediatek: Add protocol support for MediaTek serial devices
  MAINTAINERS: add an entry for MediaTek Bluetooth driver

 .../devicetree/bindings/net/mediatek-bluetooth.txt |  35 ++
 MAINTAINERS                                        |   8 +
 drivers/bluetooth/Kconfig                          |  23 +
 drivers/bluetooth/Makefile                         |   3 +
 drivers/bluetooth/btmtkuart.c                      | 383 +++++++++++++++
 drivers/bluetooth/btmtkuart.h                      | 119 +++++
 drivers/bluetooth/btuart.c                         | 527 +++++++++++++++++++++
 drivers/bluetooth/btuart.h                         |  30 ++
 drivers/tty/serdev/core.c                          |  14 +-
 include/net/bluetooth/hci.h                        |   9 +
 net/bluetooth/hci_core.c                           |   3 +-
 11 files changed, 1152 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
 create mode 100644 drivers/bluetooth/btmtkuart.c
 create mode 100644 drivers/bluetooth/btmtkuart.h
 create mode 100644 drivers/bluetooth/btuart.c
 create mode 100644 drivers/bluetooth/btuart.h

-- 
2.7.4

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 0/7] add support for Bluetooth on MT7622 SoC
@ 2018-05-15  8:52 ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

v2 and changes since v1
 - Dropped patches already being applied
 - Rewirte the whole driver using btuart [1], and add slight extension
   of btuart to fit into btmtkuart driver. Beware that [1] is also pulled
   into one part of the series for avoiding any breakage when the patchset
   is being compiled.

[1] btuart 
	https://www.spinics.net/lists/linux-bluetooth/msg74918.html

v1:

Hi,

This patchset introduces built-in Bluetooth support on MT7622 SoC.
And, it should be simple to make an extension to support other
MediaTek SoCs with adjusting a few of changes on the initialization
sequence of the device.

Before the main driver is being introduced, a few of things about
power-domain management should be re-worked for serdev core and MediaTek
SCPSYS to allow the Bluetooth to properly power up.

Patch 2: add a generic way attaching power domain to serdev
Patch 3 and 4: add cleanups with reuse APIs from Linux core
Patch 5: fix a limitation about power enablement Bluetooth depends on
Patch 1, 6 and 7: the major part of adding Bluetooth support to MT7622
	
	Sean

Marcel Holtmann (1):
  Bluetooth: Add new serdev based driver for UART attached controllers

Sean Wang (6):
  dt-bindings: net: bluetooth: Add mediatek-bluetooth
  serdev: add dev_pm_domain_attach|detach()
  Bluetooth: Add new quirk for non-persistent setup settings
  Bluetooth: Extend btuart driver for join more vendor devices
  Bluetooth: mediatek: Add protocol support for MediaTek serial devices
  MAINTAINERS: add an entry for MediaTek Bluetooth driver

 .../devicetree/bindings/net/mediatek-bluetooth.txt |  35 ++
 MAINTAINERS                                        |   8 +
 drivers/bluetooth/Kconfig                          |  23 +
 drivers/bluetooth/Makefile                         |   3 +
 drivers/bluetooth/btmtkuart.c                      | 383 +++++++++++++++
 drivers/bluetooth/btmtkuart.h                      | 119 +++++
 drivers/bluetooth/btuart.c                         | 527 +++++++++++++++++++++
 drivers/bluetooth/btuart.h                         |  30 ++
 drivers/tty/serdev/core.c                          |  14 +-
 include/net/bluetooth/hci.h                        |   9 +
 net/bluetooth/hci_core.c                           |   3 +-
 11 files changed, 1152 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
 create mode 100644 drivers/bluetooth/btmtkuart.c
 create mode 100644 drivers/bluetooth/btmtkuart.h
 create mode 100644 drivers/bluetooth/btuart.c
 create mode 100644 drivers/bluetooth/btuart.h

-- 
2.7.4

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 0/7] add support for Bluetooth on MT7622 SoC
@ 2018-05-15  8:52 ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang at mediatek.com @ 2018-05-15  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sean Wang <sean.wang@mediatek.com>

v2 and changes since v1
 - Dropped patches already being applied
 - Rewirte the whole driver using btuart [1], and add slight extension
   of btuart to fit into btmtkuart driver. Beware that [1] is also pulled
   into one part of the series for avoiding any breakage when the patchset
   is being compiled.

[1] btuart 
	https://www.spinics.net/lists/linux-bluetooth/msg74918.html

v1:

Hi,

This patchset introduces built-in Bluetooth support on MT7622 SoC.
And, it should be simple to make an extension to support other
MediaTek SoCs with adjusting a few of changes on the initialization
sequence of the device.

Before the main driver is being introduced, a few of things about
power-domain management should be re-worked for serdev core and MediaTek
SCPSYS to allow the Bluetooth to properly power up.

Patch 2: add a generic way attaching power domain to serdev
Patch 3 and 4: add cleanups with reuse APIs from Linux core
Patch 5: fix a limitation about power enablement Bluetooth depends on
Patch 1, 6 and 7: the major part of adding Bluetooth support to MT7622
	
	Sean

Marcel Holtmann (1):
  Bluetooth: Add new serdev based driver for UART attached controllers

Sean Wang (6):
  dt-bindings: net: bluetooth: Add mediatek-bluetooth
  serdev: add dev_pm_domain_attach|detach()
  Bluetooth: Add new quirk for non-persistent setup settings
  Bluetooth: Extend btuart driver for join more vendor devices
  Bluetooth: mediatek: Add protocol support for MediaTek serial devices
  MAINTAINERS: add an entry for MediaTek Bluetooth driver

 .../devicetree/bindings/net/mediatek-bluetooth.txt |  35 ++
 MAINTAINERS                                        |   8 +
 drivers/bluetooth/Kconfig                          |  23 +
 drivers/bluetooth/Makefile                         |   3 +
 drivers/bluetooth/btmtkuart.c                      | 383 +++++++++++++++
 drivers/bluetooth/btmtkuart.h                      | 119 +++++
 drivers/bluetooth/btuart.c                         | 527 +++++++++++++++++++++
 drivers/bluetooth/btuart.h                         |  30 ++
 drivers/tty/serdev/core.c                          |  14 +-
 include/net/bluetooth/hci.h                        |   9 +
 net/bluetooth/hci_core.c                           |   3 +-
 11 files changed, 1152 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
 create mode 100644 drivers/bluetooth/btmtkuart.c
 create mode 100644 drivers/bluetooth/btmtkuart.h
 create mode 100644 drivers/bluetooth/btuart.c
 create mode 100644 drivers/bluetooth/btuart.h

-- 
2.7.4

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 1/7] dt-bindings: net: bluetooth: Add mediatek-bluetooth
@ 2018-05-15  8:52   ` sean.wang-NuS5LvNUpcJWk0Htik3J/w
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

Add binding document for a SoC built-in device using MediaTek protocol.
Which could be found on MT7622 SoC or other similar MediaTek SoCs.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 .../devicetree/bindings/net/mediatek-bluetooth.txt | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/mediatek-bluetooth.txt

diff --git a/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt b/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
new file mode 100644
index 0000000..1335429
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
@@ -0,0 +1,35 @@
+MediaTek SoC built-in Bluetooth Devices
+==================================
+
+This device is a serial attached device to BTIF device and thus it must be a
+child node of the serial node with BTIF. The dt-bindings details for BTIF
+device can be known via Documentation/devicetree/bindings/serial/8250.txt.
+
+Required properties:
+
+- compatible:	Must be one of
+		  "mediatek,mt7622-bluetooth"": for MT7622 SoC
+- clocks:	Should be the clock specifiers corresponding to the entry in
+		clock-names property.
+- clock-names:	Should contain "ref" entries.
+- power-domains: Phandle to the power domain that the device is part of
+
+Example:
+
+	btif: serial@1100c000 {
+		compatible = "mediatek,mt7622-btif",
+			     "mediatek,mtk-btif";
+		reg = <0 0x1100c000 0 0x1000>;
+		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_LOW>;
+		clocks = <&pericfg CLK_PERI_BTIF_PD>;
+		clock-names = "main";
+		reg-shift = <2>;
+		reg-io-width = <4>;
+
+		bluetooth {
+			compatible = "mediatek,mt7622-bluetooth";
+			power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
+			clocks = <&clk25m>;
+			clock-names = "ref";
+		};
+	};
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 1/7] dt-bindings: net: bluetooth: Add mediatek-bluetooth
@ 2018-05-15  8:52   ` sean.wang-NuS5LvNUpcJWk0Htik3J/w
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang-NuS5LvNUpcJWk0Htik3J/w @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	marcel-kz+m5ild9QBg9hUCZPvPmw,
	johan.hedberg-Re5JQEeQqe8AvxtiuMwx3w
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Sean Wang,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-bluetooth-u79uwXL29TY76Z2rM5mHXA,
	linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r

From: Sean Wang <sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>

Add binding document for a SoC built-in device using MediaTek protocol.
Which could be found on MT7622 SoC or other similar MediaTek SoCs.

Signed-off-by: Sean Wang <sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
Reviewed-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
---
 .../devicetree/bindings/net/mediatek-bluetooth.txt | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/mediatek-bluetooth.txt

diff --git a/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt b/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
new file mode 100644
index 0000000..1335429
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
@@ -0,0 +1,35 @@
+MediaTek SoC built-in Bluetooth Devices
+==================================
+
+This device is a serial attached device to BTIF device and thus it must be a
+child node of the serial node with BTIF. The dt-bindings details for BTIF
+device can be known via Documentation/devicetree/bindings/serial/8250.txt.
+
+Required properties:
+
+- compatible:	Must be one of
+		  "mediatek,mt7622-bluetooth"": for MT7622 SoC
+- clocks:	Should be the clock specifiers corresponding to the entry in
+		clock-names property.
+- clock-names:	Should contain "ref" entries.
+- power-domains: Phandle to the power domain that the device is part of
+
+Example:
+
+	btif: serial@1100c000 {
+		compatible = "mediatek,mt7622-btif",
+			     "mediatek,mtk-btif";
+		reg = <0 0x1100c000 0 0x1000>;
+		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_LOW>;
+		clocks = <&pericfg CLK_PERI_BTIF_PD>;
+		clock-names = "main";
+		reg-shift = <2>;
+		reg-io-width = <4>;
+
+		bluetooth {
+			compatible = "mediatek,mt7622-bluetooth";
+			power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
+			clocks = <&clk25m>;
+			clock-names = "ref";
+		};
+	};
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 1/7] dt-bindings: net: bluetooth: Add mediatek-bluetooth
@ 2018-05-15  8:52   ` sean.wang-NuS5LvNUpcJWk0Htik3J/w
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang at mediatek.com @ 2018-05-15  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sean Wang <sean.wang@mediatek.com>

Add binding document for a SoC built-in device using MediaTek protocol.
Which could be found on MT7622 SoC or other similar MediaTek SoCs.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 .../devicetree/bindings/net/mediatek-bluetooth.txt | 35 ++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/mediatek-bluetooth.txt

diff --git a/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt b/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
new file mode 100644
index 0000000..1335429
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
@@ -0,0 +1,35 @@
+MediaTek SoC built-in Bluetooth Devices
+==================================
+
+This device is a serial attached device to BTIF device and thus it must be a
+child node of the serial node with BTIF. The dt-bindings details for BTIF
+device can be known via Documentation/devicetree/bindings/serial/8250.txt.
+
+Required properties:
+
+- compatible:	Must be one of
+		  "mediatek,mt7622-bluetooth"": for MT7622 SoC
+- clocks:	Should be the clock specifiers corresponding to the entry in
+		clock-names property.
+- clock-names:	Should contain "ref" entries.
+- power-domains: Phandle to the power domain that the device is part of
+
+Example:
+
+	btif: serial at 1100c000 {
+		compatible = "mediatek,mt7622-btif",
+			     "mediatek,mtk-btif";
+		reg = <0 0x1100c000 0 0x1000>;
+		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_LOW>;
+		clocks = <&pericfg CLK_PERI_BTIF_PD>;
+		clock-names = "main";
+		reg-shift = <2>;
+		reg-io-width = <4>;
+
+		bluetooth {
+			compatible = "mediatek,mt7622-bluetooth";
+			power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
+			clocks = <&clk25m>;
+			clock-names = "ref";
+		};
+	};
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 2/7] serdev: add dev_pm_domain_attach|detach()
  2018-05-15  8:52 ` sean.wang
  (?)
@ 2018-05-15  8:52   ` sean.wang
  -1 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang, Rob Herring, Ulf Hansson,
	Greg Kroah-Hartman, Jiri Slaby, linux-serial

From: Sean Wang <sean.wang@mediatek.com>

In order to open up the required power gate before any operation can be
effectively performed over the serial bus between CPU and serdev, it's
clearly essential to add common attach functions for PM domains to serdev
at the probe phase.

Similarly, the relevant dettach function for the PM domains should be
properly and reversely added at the remove phase.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: linux-serial@vger.kernel.org
---
 drivers/tty/serdev/core.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c
index df93b72..c93d8ee 100644
--- a/drivers/tty/serdev/core.c
+++ b/drivers/tty/serdev/core.c
@@ -13,6 +13,7 @@
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/pm_domain.h>
 #include <linux/serdev.h>
 #include <linux/slab.h>
 
@@ -330,8 +331,16 @@ EXPORT_SYMBOL_GPL(serdev_device_set_tiocm);
 static int serdev_drv_probe(struct device *dev)
 {
 	const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
+	int ret;
+
+	ret = dev_pm_domain_attach(dev, true);
+	if (ret != -EPROBE_DEFER) {
+		ret = sdrv->probe(to_serdev_device(dev));
+		if (ret)
+			dev_pm_domain_detach(dev, true);
+	}
 
-	return sdrv->probe(to_serdev_device(dev));
+	return ret;
 }
 
 static int serdev_drv_remove(struct device *dev)
@@ -339,6 +348,9 @@ static int serdev_drv_remove(struct device *dev)
 	const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
 	if (sdrv->remove)
 		sdrv->remove(to_serdev_device(dev));
+
+	dev_pm_domain_detach(dev, true);
+
 	return 0;
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 2/7] serdev: add dev_pm_domain_attach|detach()
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, Ulf Hansson, Rob Herring, Greg Kroah-Hartman,
	Sean Wang, linux-kernel, linux-bluetooth, linux-mediatek,
	linux-serial, Jiri Slaby, linux-arm-kernel

From: Sean Wang <sean.wang@mediatek.com>

In order to open up the required power gate before any operation can be
effectively performed over the serial bus between CPU and serdev, it's
clearly essential to add common attach functions for PM domains to serdev
at the probe phase.

Similarly, the relevant dettach function for the PM domains should be
properly and reversely added at the remove phase.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: linux-serial@vger.kernel.org
---
 drivers/tty/serdev/core.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c
index df93b72..c93d8ee 100644
--- a/drivers/tty/serdev/core.c
+++ b/drivers/tty/serdev/core.c
@@ -13,6 +13,7 @@
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/pm_domain.h>
 #include <linux/serdev.h>
 #include <linux/slab.h>
 
@@ -330,8 +331,16 @@ EXPORT_SYMBOL_GPL(serdev_device_set_tiocm);
 static int serdev_drv_probe(struct device *dev)
 {
 	const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
+	int ret;
+
+	ret = dev_pm_domain_attach(dev, true);
+	if (ret != -EPROBE_DEFER) {
+		ret = sdrv->probe(to_serdev_device(dev));
+		if (ret)
+			dev_pm_domain_detach(dev, true);
+	}
 
-	return sdrv->probe(to_serdev_device(dev));
+	return ret;
 }
 
 static int serdev_drv_remove(struct device *dev)
@@ -339,6 +348,9 @@ static int serdev_drv_remove(struct device *dev)
 	const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
 	if (sdrv->remove)
 		sdrv->remove(to_serdev_device(dev));
+
+	dev_pm_domain_detach(dev, true);
+
 	return 0;
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 2/7] serdev: add dev_pm_domain_attach|detach()
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang at mediatek.com @ 2018-05-15  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sean Wang <sean.wang@mediatek.com>

In order to open up the required power gate before any operation can be
effectively performed over the serial bus between CPU and serdev, it's
clearly essential to add common attach functions for PM domains to serdev
at the probe phase.

Similarly, the relevant dettach function for the PM domains should be
properly and reversely added at the remove phase.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: linux-serial at vger.kernel.org
---
 drivers/tty/serdev/core.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c
index df93b72..c93d8ee 100644
--- a/drivers/tty/serdev/core.c
+++ b/drivers/tty/serdev/core.c
@@ -13,6 +13,7 @@
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/pm_domain.h>
 #include <linux/serdev.h>
 #include <linux/slab.h>
 
@@ -330,8 +331,16 @@ EXPORT_SYMBOL_GPL(serdev_device_set_tiocm);
 static int serdev_drv_probe(struct device *dev)
 {
 	const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
+	int ret;
+
+	ret = dev_pm_domain_attach(dev, true);
+	if (ret != -EPROBE_DEFER) {
+		ret = sdrv->probe(to_serdev_device(dev));
+		if (ret)
+			dev_pm_domain_detach(dev, true);
+	}
 
-	return sdrv->probe(to_serdev_device(dev));
+	return ret;
 }
 
 static int serdev_drv_remove(struct device *dev)
@@ -339,6 +348,9 @@ static int serdev_drv_remove(struct device *dev)
 	const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
 	if (sdrv->remove)
 		sdrv->remove(to_serdev_device(dev));
+
+	dev_pm_domain_detach(dev, true);
+
 	return 0;
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 3/7] Bluetooth: Add new serdev based driver for UART attached controllers
  2018-05-15  8:52 ` sean.wang
  (?)
@ 2018-05-15  8:52   ` sean.wang
  -1 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel

From: Marcel Holtmann <marcel@holtmann.org>

This is a from scratch written driver to run H:4 on serdev based system
with a Bluetooth controller attached via an UART. It is currently tested
on RPi3 and it has Broadcom integration. It is DT only and is missing
GPIO and runtime power management integration. Also Apple or ACPI
support is currently not added.

To integrate with controllers from Intel and Qualcomm, similar handling
like with btusb.c has to be done. A simple abstraction for that has been
provided to make it similar to hci_uart.

The goal is to run individual drivers on serdev capable systems so that
we can retire hci_uart on these system and continue with a lot simpler
and easier to maintain driver. It seems that hci_uart has too many race
conditions due to handling TTY and line disciplines. And fixes for that
are not really related to serdev based drivers. In a serdev only world
it makes sense to remove any of the complex code.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
---
 drivers/bluetooth/Kconfig  |  11 +
 drivers/bluetooth/Makefile |   1 +
 drivers/bluetooth/btuart.c | 506 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 518 insertions(+)
 create mode 100644 drivers/bluetooth/btuart.c

diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
index 010f5f5..6d69ac2 100644
--- a/drivers/bluetooth/Kconfig
+++ b/drivers/bluetooth/Kconfig
@@ -74,6 +74,17 @@ config BT_HCIBTSDIO
 	  Say Y here to compile support for Bluetooth SDIO devices into the
 	  kernel or say M to compile it as module (btsdio).
 
+config BT_HCIBTUART
+	tristate "HCI UART driver"
+	depends on SERIAL_DEV_BUS
+	help
+	  Bluetooth HCI UART driver.
+	  This driver is required if you want to use Bluetooth device with
+	  UART interface.
+
+	  Say Y here to compile support for Bluetooth UART devices into the
+	  kernel or say M to compile it as module (btuart).
+
 config BT_HCIUART
 	tristate "HCI UART driver"
 	depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
index ec16c55..60a19cb 100644
--- a/drivers/bluetooth/Makefile
+++ b/drivers/bluetooth/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_BT_HCIBLUECARD)	+= bluecard_cs.o
 
 obj-$(CONFIG_BT_HCIBTUSB)	+= btusb.o
 obj-$(CONFIG_BT_HCIBTSDIO)	+= btsdio.o
+obj-$(CONFIG_BT_HCIBTUART)	+= btuart.o
 
 obj-$(CONFIG_BT_INTEL)		+= btintel.o
 obj-$(CONFIG_BT_ATH3K)		+= ath3k.o
diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
new file mode 100644
index 0000000..03e980f
--- /dev/null
+++ b/drivers/bluetooth/btuart.c
@@ -0,0 +1,506 @@
+/*
+ *
+ *  Generic Bluetooth HCI UART driver
+ *
+ *  Copyright (C) 2015-2018  Intel Corporation
+ *
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/skbuff.h>
+#include <linux/serdev.h>
+#include <linux/of.h>
+#include <linux/firmware.h>
+#include <asm/unaligned.h>
+
+#include <net/bluetooth/bluetooth.h>
+#include <net/bluetooth/hci_core.h>
+
+#include "h4_recv.h"
+#include "btbcm.h"
+
+#define VERSION "1.0"
+
+struct btuart_vnd {
+	const struct h4_recv_pkt *recv_pkts;
+	int recv_pkts_cnt;
+	unsigned int manufacturer;
+	int (*open)(struct hci_dev *hdev);
+	int (*close)(struct hci_dev *hdev);
+	int (*setup)(struct hci_dev *hdev);
+};
+
+struct btuart_dev {
+	struct hci_dev *hdev;
+	struct serdev_device *serdev;
+
+	struct work_struct tx_work;
+	unsigned long tx_state;
+	struct sk_buff_head txq;
+
+	struct sk_buff *rx_skb;
+
+	const struct btuart_vnd *vnd;
+};
+
+#define BTUART_TX_STATE_ACTIVE	1
+#define BTUART_TX_STATE_WAKEUP	2
+
+static void btuart_tx_work(struct work_struct *work)
+{
+	struct btuart_dev *bdev = container_of(work, struct btuart_dev,
+					       tx_work);
+	struct serdev_device *serdev = bdev->serdev;
+	struct hci_dev *hdev = bdev->hdev;
+
+	while (1) {
+		clear_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+
+		while (1) {
+			struct sk_buff *skb = skb_dequeue(&bdev->txq);
+			int len;
+
+			if (!skb)
+				break;
+
+			len = serdev_device_write_buf(serdev, skb->data,
+						      skb->len);
+			hdev->stat.byte_tx += len;
+
+			skb_pull(skb, len);
+			if (skb->len > 0) {
+				skb_queue_head(&bdev->txq, skb);
+				break;
+			}
+
+			switch (hci_skb_pkt_type(skb)) {
+			case HCI_COMMAND_PKT:
+				hdev->stat.cmd_tx++;
+				break;
+			case HCI_ACLDATA_PKT:
+				hdev->stat.acl_tx++;
+				break;
+			case HCI_SCODATA_PKT:
+				hdev->stat.sco_tx++;
+				break;
+			}
+
+			kfree_skb(skb);
+		}
+
+		if (!test_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state))
+			break;
+	}
+
+	clear_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state);
+}
+
+static int btuart_tx_wakeup(struct btuart_dev *bdev)
+{
+	if (test_and_set_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state)) {
+		set_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+		return 0;
+	}
+
+	schedule_work(&bdev->tx_work);
+	return 0;
+}
+
+static int btuart_open(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	int err;
+
+	err = serdev_device_open(bdev->serdev);
+	if (err) {
+		bt_dev_err(hdev, "Unable to open UART device %s",
+			   dev_name(&bdev->serdev->dev));
+		return err;
+	}
+
+	if (bdev->vnd->open) {
+		err = bdev->vnd->open(hdev);
+		if (err) {
+			serdev_device_close(bdev->serdev);
+			return err;
+		}
+	}
+
+	return 0;
+}
+
+static int btuart_close(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	int err;
+
+	if (bdev->vnd->close) {
+		err = bdev->vnd->close(hdev);
+		if (err)
+			return err;
+	}
+
+	serdev_device_close(bdev->serdev);
+
+	return 0;
+}
+
+static int btuart_flush(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	/* Flush any pending characters */
+	serdev_device_write_flush(bdev->serdev);
+	skb_queue_purge(&bdev->txq);
+
+	cancel_work_sync(&bdev->tx_work);
+
+	kfree_skb(bdev->rx_skb);
+	bdev->rx_skb = NULL;
+
+	return 0;
+}
+
+static int btuart_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	if (bdev->vnd->setup)
+		return bdev->vnd->setup(hdev);
+
+	return 0;
+}
+
+static int btuart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	/* Prepend skb with frame type */
+	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+	skb_queue_tail(&bdev->txq, skb);
+
+	btuart_tx_wakeup(bdev);
+	return 0;
+}
+
+static int btuart_receive_buf(struct serdev_device *serdev, const u8 *data,
+			      size_t count)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+	const struct btuart_vnd *vnd = bdev->vnd;
+
+	bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, data, count,
+				   vnd->recv_pkts, vnd->recv_pkts_cnt);
+	if (IS_ERR(bdev->rx_skb)) {
+		int err = PTR_ERR(bdev->rx_skb);
+		bt_dev_err(bdev->hdev, "Frame reassembly failed (%d)", err);
+		bdev->rx_skb = NULL;
+		return err;
+	}
+
+	bdev->hdev->stat.byte_rx += count;
+
+	return count;
+}
+
+static void btuart_write_wakeup(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+
+	btuart_tx_wakeup(bdev);
+}
+
+static const struct serdev_device_ops btuart_client_ops = {
+	.receive_buf = btuart_receive_buf,
+	.write_wakeup = btuart_write_wakeup,
+};
+
+#define BCM_NULL_PKT 0x00
+#define BCM_NULL_SIZE 0
+
+#define BCM_LM_DIAG_PKT 0x07
+#define BCM_LM_DIAG_SIZE 63
+
+#define BCM_RECV_LM_DIAG \
+	.type = BCM_LM_DIAG_PKT, \
+	.hlen = BCM_LM_DIAG_SIZE, \
+	.loff = 0, \
+	.lsize = 0, \
+	.maxlen = BCM_LM_DIAG_SIZE
+
+#define BCM_RECV_NULL \
+	.type = BCM_NULL_PKT, \
+	.hlen = BCM_NULL_SIZE, \
+	.loff = 0, \
+	.lsize = 0, \
+	.maxlen = BCM_NULL_SIZE
+
+static int bcm_set_diag(struct hci_dev *hdev, bool enable)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct sk_buff *skb;
+
+	if (!test_bit(HCI_RUNNING, &hdev->flags))
+		return -ENETDOWN;
+
+	skb = bt_skb_alloc(3, GFP_KERNEL);
+	if (!skb)
+		return -ENOMEM;
+
+	skb_put_u8(skb, BCM_LM_DIAG_PKT);
+	skb_put_u8(skb, 0xf0);
+	skb_put_u8(skb, enable);
+
+	skb_queue_tail(&bdev->txq, skb);
+	btuart_tx_wakeup(bdev);
+
+	return 0;
+}
+
+static int bcm_set_baudrate(struct btuart_dev *bdev, unsigned int speed)
+{
+	struct hci_dev *hdev = bdev->hdev;
+	struct sk_buff *skb;
+	struct bcm_update_uart_baud_rate param;
+
+	if (speed > 3000000) {
+		struct bcm_write_uart_clock_setting clock;
+
+		clock.type = BCM_UART_CLOCK_48MHZ;
+
+		bt_dev_dbg(hdev, "Set Controller clock (%d)", clock.type);
+
+		/* This Broadcom specific command changes the UART's controller
+		 * clock for baud rate > 3000000.
+		 */
+		skb = __hci_cmd_sync(hdev, 0xfc45, 1, &clock, HCI_INIT_TIMEOUT);
+		if (IS_ERR(skb)) {
+			int err = PTR_ERR(skb);
+			bt_dev_err(hdev, "Failed to write clock (%d)", err);
+			return err;
+		}
+
+		kfree_skb(skb);
+	}
+
+	bt_dev_dbg(hdev, "Set Controller UART speed to %d bit/s", speed);
+
+	param.zero = cpu_to_le16(0);
+	param.baud_rate = cpu_to_le32(speed);
+
+	/* This Broadcom specific command changes the UART's controller baud
+	 * rate.
+	 */
+	skb = __hci_cmd_sync(hdev, 0xfc18, sizeof(param), &param,
+			     HCI_INIT_TIMEOUT);
+	if (IS_ERR(skb)) {
+		int err = PTR_ERR(skb);
+		bt_dev_err(hdev, "Failed to write update baudrate (%d)", err);
+		return err;
+	}
+
+	kfree_skb(skb);
+
+	return 0;
+}
+
+static int bcm_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	char fw_name[64];
+	const struct firmware *fw;
+	unsigned int speed;
+	int err;
+
+	hdev->set_diag = bcm_set_diag;
+	hdev->set_bdaddr = btbcm_set_bdaddr;
+
+	/* Init speed if any */
+	speed = 115200;
+
+	if (speed)
+		serdev_device_set_baudrate(bdev->serdev, speed);
+
+	/* Operational speed if any */
+	speed = 115200;
+
+	if (speed) {
+		err = bcm_set_baudrate(bdev, speed);
+		if (err)
+			bt_dev_err(hdev, "Failed to set baudrate");
+		else
+			serdev_device_set_baudrate(bdev->serdev, speed);
+	}
+
+	err = btbcm_initialize(hdev, fw_name, sizeof(fw_name));
+	if (err)
+		return err;
+
+	err = request_firmware(&fw, fw_name, &hdev->dev);
+	if (err < 0) {
+		bt_dev_warn(hdev, "Patch %s not found", fw_name);
+		return 0;
+	}
+
+	err = btbcm_patchram(bdev->hdev, fw);
+	if (err) {
+		bt_dev_err(hdev, "Patching failed (%d)", err);
+		goto finalize;
+	}
+
+	/* Init speed if any */
+	speed = 115200;
+
+	if (speed)
+		serdev_device_set_baudrate(bdev->serdev, speed);
+
+	/* Operational speed if any */
+	speed = 115200;
+
+	if (speed) {
+		err = bcm_set_baudrate(bdev, speed);
+		if (!err)
+			serdev_device_set_baudrate(bdev->serdev, speed);
+	}
+
+finalize:
+	release_firmware(fw);
+
+	err = btbcm_finalize(hdev);
+	if (err)
+		return err;
+
+	return err;
+}
+
+static const struct h4_recv_pkt bcm_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = hci_recv_frame },
+	{ BCM_RECV_LM_DIAG, .recv = hci_recv_diag  },
+	{ BCM_RECV_NULL,    .recv = hci_recv_diag  },
+};
+
+static const struct btuart_vnd bcm_vnd = {
+	.recv_pkts	= bcm_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(bcm_recv_pkts),
+	.manufacturer	= 15,
+	.setup		= bcm_setup,
+};
+
+static const struct h4_recv_pkt default_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = hci_recv_frame },
+};
+
+static const struct btuart_vnd default_vnd = {
+	.recv_pkts	= default_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(default_recv_pkts),
+};
+
+static int btuart_probe(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev;
+	struct hci_dev *hdev;
+
+	bdev = devm_kzalloc(&serdev->dev, sizeof(*bdev), GFP_KERNEL);
+	if (!bdev)
+		return -ENOMEM;
+
+	/* Request the vendor specific data and callbacks */
+	bdev->vnd = device_get_match_data(&serdev->dev);
+	if (!bdev->vnd)
+		bdev->vnd = &default_vnd;
+
+	bdev->serdev = serdev;
+	serdev_device_set_drvdata(serdev, bdev);
+
+	serdev_device_set_client_ops(serdev, &btuart_client_ops);
+
+	INIT_WORK(&bdev->tx_work, btuart_tx_work);
+	skb_queue_head_init(&bdev->txq);
+
+	/* Initialize and register HCI device */
+	hdev = hci_alloc_dev();
+	if (!hdev) {
+		dev_err(&serdev->dev, "Can't allocate HCI device\n");
+		return -ENOMEM;
+	}
+
+	bdev->hdev = hdev;
+
+	hdev->bus = HCI_UART;
+	hci_set_drvdata(hdev, bdev);
+
+	/* Only when vendor specific setup callback is provided, consider
+	 * the manufacturer information valid. This avoids filling in the
+	 * value for Ericsson when nothing is specified.
+	 */
+	if (bdev->vnd->setup)
+		hdev->manufacturer = bdev->vnd->manufacturer;
+
+	hdev->open  = btuart_open;
+	hdev->close = btuart_close;
+	hdev->flush = btuart_flush;
+	hdev->setup = btuart_setup;
+	hdev->send  = btuart_send_frame;
+	SET_HCIDEV_DEV(hdev, &serdev->dev);
+
+	if (hci_register_dev(hdev) < 0) {
+		dev_err(&serdev->dev, "Can't register HCI device\n");
+		hci_free_dev(hdev);
+		return -ENODEV;
+	}
+
+	return 0;
+}
+
+static void btuart_remove(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+	struct hci_dev *hdev = bdev->hdev;
+
+	hci_unregister_dev(hdev);
+	hci_free_dev(hdev);
+}
+
+#ifdef CONFIG_OF
+static const struct of_device_id btuart_of_match_table[] = {
+	{ .compatible = "brcm,bcm43438-bt", .data = &bcm_vnd },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, btuart_of_match_table);
+#endif
+
+static struct serdev_device_driver btuart_driver = {
+	.probe = btuart_probe,
+	.remove = btuart_remove,
+	.driver = {
+		.name = "btuart",
+		.of_match_table = of_match_ptr(btuart_of_match_table),
+	},
+};
+
+module_serdev_device_driver(btuart_driver);
+
+MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+MODULE_DESCRIPTION("Generic Bluetooth UART driver ver " VERSION);
+MODULE_VERSION(VERSION);
+MODULE_LICENSE("GPL");
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 3/7] Bluetooth: Add new serdev based driver for UART attached controllers
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel

From: Marcel Holtmann <marcel@holtmann.org>

This is a from scratch written driver to run H:4 on serdev based system
with a Bluetooth controller attached via an UART. It is currently tested
on RPi3 and it has Broadcom integration. It is DT only and is missing
GPIO and runtime power management integration. Also Apple or ACPI
support is currently not added.

To integrate with controllers from Intel and Qualcomm, similar handling
like with btusb.c has to be done. A simple abstraction for that has been
provided to make it similar to hci_uart.

The goal is to run individual drivers on serdev capable systems so that
we can retire hci_uart on these system and continue with a lot simpler
and easier to maintain driver. It seems that hci_uart has too many race
conditions due to handling TTY and line disciplines. And fixes for that
are not really related to serdev based drivers. In a serdev only world
it makes sense to remove any of the complex code.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
---
 drivers/bluetooth/Kconfig  |  11 +
 drivers/bluetooth/Makefile |   1 +
 drivers/bluetooth/btuart.c | 506 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 518 insertions(+)
 create mode 100644 drivers/bluetooth/btuart.c

diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
index 010f5f5..6d69ac2 100644
--- a/drivers/bluetooth/Kconfig
+++ b/drivers/bluetooth/Kconfig
@@ -74,6 +74,17 @@ config BT_HCIBTSDIO
 	  Say Y here to compile support for Bluetooth SDIO devices into the
 	  kernel or say M to compile it as module (btsdio).
 
+config BT_HCIBTUART
+	tristate "HCI UART driver"
+	depends on SERIAL_DEV_BUS
+	help
+	  Bluetooth HCI UART driver.
+	  This driver is required if you want to use Bluetooth device with
+	  UART interface.
+
+	  Say Y here to compile support for Bluetooth UART devices into the
+	  kernel or say M to compile it as module (btuart).
+
 config BT_HCIUART
 	tristate "HCI UART driver"
 	depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
index ec16c55..60a19cb 100644
--- a/drivers/bluetooth/Makefile
+++ b/drivers/bluetooth/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_BT_HCIBLUECARD)	+= bluecard_cs.o
 
 obj-$(CONFIG_BT_HCIBTUSB)	+= btusb.o
 obj-$(CONFIG_BT_HCIBTSDIO)	+= btsdio.o
+obj-$(CONFIG_BT_HCIBTUART)	+= btuart.o
 
 obj-$(CONFIG_BT_INTEL)		+= btintel.o
 obj-$(CONFIG_BT_ATH3K)		+= ath3k.o
diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
new file mode 100644
index 0000000..03e980f
--- /dev/null
+++ b/drivers/bluetooth/btuart.c
@@ -0,0 +1,506 @@
+/*
+ *
+ *  Generic Bluetooth HCI UART driver
+ *
+ *  Copyright (C) 2015-2018  Intel Corporation
+ *
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/skbuff.h>
+#include <linux/serdev.h>
+#include <linux/of.h>
+#include <linux/firmware.h>
+#include <asm/unaligned.h>
+
+#include <net/bluetooth/bluetooth.h>
+#include <net/bluetooth/hci_core.h>
+
+#include "h4_recv.h"
+#include "btbcm.h"
+
+#define VERSION "1.0"
+
+struct btuart_vnd {
+	const struct h4_recv_pkt *recv_pkts;
+	int recv_pkts_cnt;
+	unsigned int manufacturer;
+	int (*open)(struct hci_dev *hdev);
+	int (*close)(struct hci_dev *hdev);
+	int (*setup)(struct hci_dev *hdev);
+};
+
+struct btuart_dev {
+	struct hci_dev *hdev;
+	struct serdev_device *serdev;
+
+	struct work_struct tx_work;
+	unsigned long tx_state;
+	struct sk_buff_head txq;
+
+	struct sk_buff *rx_skb;
+
+	const struct btuart_vnd *vnd;
+};
+
+#define BTUART_TX_STATE_ACTIVE	1
+#define BTUART_TX_STATE_WAKEUP	2
+
+static void btuart_tx_work(struct work_struct *work)
+{
+	struct btuart_dev *bdev = container_of(work, struct btuart_dev,
+					       tx_work);
+	struct serdev_device *serdev = bdev->serdev;
+	struct hci_dev *hdev = bdev->hdev;
+
+	while (1) {
+		clear_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+
+		while (1) {
+			struct sk_buff *skb = skb_dequeue(&bdev->txq);
+			int len;
+
+			if (!skb)
+				break;
+
+			len = serdev_device_write_buf(serdev, skb->data,
+						      skb->len);
+			hdev->stat.byte_tx += len;
+
+			skb_pull(skb, len);
+			if (skb->len > 0) {
+				skb_queue_head(&bdev->txq, skb);
+				break;
+			}
+
+			switch (hci_skb_pkt_type(skb)) {
+			case HCI_COMMAND_PKT:
+				hdev->stat.cmd_tx++;
+				break;
+			case HCI_ACLDATA_PKT:
+				hdev->stat.acl_tx++;
+				break;
+			case HCI_SCODATA_PKT:
+				hdev->stat.sco_tx++;
+				break;
+			}
+
+			kfree_skb(skb);
+		}
+
+		if (!test_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state))
+			break;
+	}
+
+	clear_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state);
+}
+
+static int btuart_tx_wakeup(struct btuart_dev *bdev)
+{
+	if (test_and_set_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state)) {
+		set_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+		return 0;
+	}
+
+	schedule_work(&bdev->tx_work);
+	return 0;
+}
+
+static int btuart_open(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	int err;
+
+	err = serdev_device_open(bdev->serdev);
+	if (err) {
+		bt_dev_err(hdev, "Unable to open UART device %s",
+			   dev_name(&bdev->serdev->dev));
+		return err;
+	}
+
+	if (bdev->vnd->open) {
+		err = bdev->vnd->open(hdev);
+		if (err) {
+			serdev_device_close(bdev->serdev);
+			return err;
+		}
+	}
+
+	return 0;
+}
+
+static int btuart_close(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	int err;
+
+	if (bdev->vnd->close) {
+		err = bdev->vnd->close(hdev);
+		if (err)
+			return err;
+	}
+
+	serdev_device_close(bdev->serdev);
+
+	return 0;
+}
+
+static int btuart_flush(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	/* Flush any pending characters */
+	serdev_device_write_flush(bdev->serdev);
+	skb_queue_purge(&bdev->txq);
+
+	cancel_work_sync(&bdev->tx_work);
+
+	kfree_skb(bdev->rx_skb);
+	bdev->rx_skb = NULL;
+
+	return 0;
+}
+
+static int btuart_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	if (bdev->vnd->setup)
+		return bdev->vnd->setup(hdev);
+
+	return 0;
+}
+
+static int btuart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	/* Prepend skb with frame type */
+	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+	skb_queue_tail(&bdev->txq, skb);
+
+	btuart_tx_wakeup(bdev);
+	return 0;
+}
+
+static int btuart_receive_buf(struct serdev_device *serdev, const u8 *data,
+			      size_t count)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+	const struct btuart_vnd *vnd = bdev->vnd;
+
+	bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, data, count,
+				   vnd->recv_pkts, vnd->recv_pkts_cnt);
+	if (IS_ERR(bdev->rx_skb)) {
+		int err = PTR_ERR(bdev->rx_skb);
+		bt_dev_err(bdev->hdev, "Frame reassembly failed (%d)", err);
+		bdev->rx_skb = NULL;
+		return err;
+	}
+
+	bdev->hdev->stat.byte_rx += count;
+
+	return count;
+}
+
+static void btuart_write_wakeup(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+
+	btuart_tx_wakeup(bdev);
+}
+
+static const struct serdev_device_ops btuart_client_ops = {
+	.receive_buf = btuart_receive_buf,
+	.write_wakeup = btuart_write_wakeup,
+};
+
+#define BCM_NULL_PKT 0x00
+#define BCM_NULL_SIZE 0
+
+#define BCM_LM_DIAG_PKT 0x07
+#define BCM_LM_DIAG_SIZE 63
+
+#define BCM_RECV_LM_DIAG \
+	.type = BCM_LM_DIAG_PKT, \
+	.hlen = BCM_LM_DIAG_SIZE, \
+	.loff = 0, \
+	.lsize = 0, \
+	.maxlen = BCM_LM_DIAG_SIZE
+
+#define BCM_RECV_NULL \
+	.type = BCM_NULL_PKT, \
+	.hlen = BCM_NULL_SIZE, \
+	.loff = 0, \
+	.lsize = 0, \
+	.maxlen = BCM_NULL_SIZE
+
+static int bcm_set_diag(struct hci_dev *hdev, bool enable)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct sk_buff *skb;
+
+	if (!test_bit(HCI_RUNNING, &hdev->flags))
+		return -ENETDOWN;
+
+	skb = bt_skb_alloc(3, GFP_KERNEL);
+	if (!skb)
+		return -ENOMEM;
+
+	skb_put_u8(skb, BCM_LM_DIAG_PKT);
+	skb_put_u8(skb, 0xf0);
+	skb_put_u8(skb, enable);
+
+	skb_queue_tail(&bdev->txq, skb);
+	btuart_tx_wakeup(bdev);
+
+	return 0;
+}
+
+static int bcm_set_baudrate(struct btuart_dev *bdev, unsigned int speed)
+{
+	struct hci_dev *hdev = bdev->hdev;
+	struct sk_buff *skb;
+	struct bcm_update_uart_baud_rate param;
+
+	if (speed > 3000000) {
+		struct bcm_write_uart_clock_setting clock;
+
+		clock.type = BCM_UART_CLOCK_48MHZ;
+
+		bt_dev_dbg(hdev, "Set Controller clock (%d)", clock.type);
+
+		/* This Broadcom specific command changes the UART's controller
+		 * clock for baud rate > 3000000.
+		 */
+		skb = __hci_cmd_sync(hdev, 0xfc45, 1, &clock, HCI_INIT_TIMEOUT);
+		if (IS_ERR(skb)) {
+			int err = PTR_ERR(skb);
+			bt_dev_err(hdev, "Failed to write clock (%d)", err);
+			return err;
+		}
+
+		kfree_skb(skb);
+	}
+
+	bt_dev_dbg(hdev, "Set Controller UART speed to %d bit/s", speed);
+
+	param.zero = cpu_to_le16(0);
+	param.baud_rate = cpu_to_le32(speed);
+
+	/* This Broadcom specific command changes the UART's controller baud
+	 * rate.
+	 */
+	skb = __hci_cmd_sync(hdev, 0xfc18, sizeof(param), &param,
+			     HCI_INIT_TIMEOUT);
+	if (IS_ERR(skb)) {
+		int err = PTR_ERR(skb);
+		bt_dev_err(hdev, "Failed to write update baudrate (%d)", err);
+		return err;
+	}
+
+	kfree_skb(skb);
+
+	return 0;
+}
+
+static int bcm_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	char fw_name[64];
+	const struct firmware *fw;
+	unsigned int speed;
+	int err;
+
+	hdev->set_diag = bcm_set_diag;
+	hdev->set_bdaddr = btbcm_set_bdaddr;
+
+	/* Init speed if any */
+	speed = 115200;
+
+	if (speed)
+		serdev_device_set_baudrate(bdev->serdev, speed);
+
+	/* Operational speed if any */
+	speed = 115200;
+
+	if (speed) {
+		err = bcm_set_baudrate(bdev, speed);
+		if (err)
+			bt_dev_err(hdev, "Failed to set baudrate");
+		else
+			serdev_device_set_baudrate(bdev->serdev, speed);
+	}
+
+	err = btbcm_initialize(hdev, fw_name, sizeof(fw_name));
+	if (err)
+		return err;
+
+	err = request_firmware(&fw, fw_name, &hdev->dev);
+	if (err < 0) {
+		bt_dev_warn(hdev, "Patch %s not found", fw_name);
+		return 0;
+	}
+
+	err = btbcm_patchram(bdev->hdev, fw);
+	if (err) {
+		bt_dev_err(hdev, "Patching failed (%d)", err);
+		goto finalize;
+	}
+
+	/* Init speed if any */
+	speed = 115200;
+
+	if (speed)
+		serdev_device_set_baudrate(bdev->serdev, speed);
+
+	/* Operational speed if any */
+	speed = 115200;
+
+	if (speed) {
+		err = bcm_set_baudrate(bdev, speed);
+		if (!err)
+			serdev_device_set_baudrate(bdev->serdev, speed);
+	}
+
+finalize:
+	release_firmware(fw);
+
+	err = btbcm_finalize(hdev);
+	if (err)
+		return err;
+
+	return err;
+}
+
+static const struct h4_recv_pkt bcm_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = hci_recv_frame },
+	{ BCM_RECV_LM_DIAG, .recv = hci_recv_diag  },
+	{ BCM_RECV_NULL,    .recv = hci_recv_diag  },
+};
+
+static const struct btuart_vnd bcm_vnd = {
+	.recv_pkts	= bcm_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(bcm_recv_pkts),
+	.manufacturer	= 15,
+	.setup		= bcm_setup,
+};
+
+static const struct h4_recv_pkt default_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = hci_recv_frame },
+};
+
+static const struct btuart_vnd default_vnd = {
+	.recv_pkts	= default_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(default_recv_pkts),
+};
+
+static int btuart_probe(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev;
+	struct hci_dev *hdev;
+
+	bdev = devm_kzalloc(&serdev->dev, sizeof(*bdev), GFP_KERNEL);
+	if (!bdev)
+		return -ENOMEM;
+
+	/* Request the vendor specific data and callbacks */
+	bdev->vnd = device_get_match_data(&serdev->dev);
+	if (!bdev->vnd)
+		bdev->vnd = &default_vnd;
+
+	bdev->serdev = serdev;
+	serdev_device_set_drvdata(serdev, bdev);
+
+	serdev_device_set_client_ops(serdev, &btuart_client_ops);
+
+	INIT_WORK(&bdev->tx_work, btuart_tx_work);
+	skb_queue_head_init(&bdev->txq);
+
+	/* Initialize and register HCI device */
+	hdev = hci_alloc_dev();
+	if (!hdev) {
+		dev_err(&serdev->dev, "Can't allocate HCI device\n");
+		return -ENOMEM;
+	}
+
+	bdev->hdev = hdev;
+
+	hdev->bus = HCI_UART;
+	hci_set_drvdata(hdev, bdev);
+
+	/* Only when vendor specific setup callback is provided, consider
+	 * the manufacturer information valid. This avoids filling in the
+	 * value for Ericsson when nothing is specified.
+	 */
+	if (bdev->vnd->setup)
+		hdev->manufacturer = bdev->vnd->manufacturer;
+
+	hdev->open  = btuart_open;
+	hdev->close = btuart_close;
+	hdev->flush = btuart_flush;
+	hdev->setup = btuart_setup;
+	hdev->send  = btuart_send_frame;
+	SET_HCIDEV_DEV(hdev, &serdev->dev);
+
+	if (hci_register_dev(hdev) < 0) {
+		dev_err(&serdev->dev, "Can't register HCI device\n");
+		hci_free_dev(hdev);
+		return -ENODEV;
+	}
+
+	return 0;
+}
+
+static void btuart_remove(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+	struct hci_dev *hdev = bdev->hdev;
+
+	hci_unregister_dev(hdev);
+	hci_free_dev(hdev);
+}
+
+#ifdef CONFIG_OF
+static const struct of_device_id btuart_of_match_table[] = {
+	{ .compatible = "brcm,bcm43438-bt", .data = &bcm_vnd },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, btuart_of_match_table);
+#endif
+
+static struct serdev_device_driver btuart_driver = {
+	.probe = btuart_probe,
+	.remove = btuart_remove,
+	.driver = {
+		.name = "btuart",
+		.of_match_table = of_match_ptr(btuart_of_match_table),
+	},
+};
+
+module_serdev_device_driver(btuart_driver);
+
+MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+MODULE_DESCRIPTION("Generic Bluetooth UART driver ver " VERSION);
+MODULE_VERSION(VERSION);
+MODULE_LICENSE("GPL");
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 3/7] Bluetooth: Add new serdev based driver for UART attached controllers
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang at mediatek.com @ 2018-05-15  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

From: Marcel Holtmann <marcel@holtmann.org>

This is a from scratch written driver to run H:4 on serdev based system
with a Bluetooth controller attached via an UART. It is currently tested
on RPi3 and it has Broadcom integration. It is DT only and is missing
GPIO and runtime power management integration. Also Apple or ACPI
support is currently not added.

To integrate with controllers from Intel and Qualcomm, similar handling
like with btusb.c has to be done. A simple abstraction for that has been
provided to make it similar to hci_uart.

The goal is to run individual drivers on serdev capable systems so that
we can retire hci_uart on these system and continue with a lot simpler
and easier to maintain driver. It seems that hci_uart has too many race
conditions due to handling TTY and line disciplines. And fixes for that
are not really related to serdev based drivers. In a serdev only world
it makes sense to remove any of the complex code.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
---
 drivers/bluetooth/Kconfig  |  11 +
 drivers/bluetooth/Makefile |   1 +
 drivers/bluetooth/btuart.c | 506 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 518 insertions(+)
 create mode 100644 drivers/bluetooth/btuart.c

diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
index 010f5f5..6d69ac2 100644
--- a/drivers/bluetooth/Kconfig
+++ b/drivers/bluetooth/Kconfig
@@ -74,6 +74,17 @@ config BT_HCIBTSDIO
 	  Say Y here to compile support for Bluetooth SDIO devices into the
 	  kernel or say M to compile it as module (btsdio).
 
+config BT_HCIBTUART
+	tristate "HCI UART driver"
+	depends on SERIAL_DEV_BUS
+	help
+	  Bluetooth HCI UART driver.
+	  This driver is required if you want to use Bluetooth device with
+	  UART interface.
+
+	  Say Y here to compile support for Bluetooth UART devices into the
+	  kernel or say M to compile it as module (btuart).
+
 config BT_HCIUART
 	tristate "HCI UART driver"
 	depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
index ec16c55..60a19cb 100644
--- a/drivers/bluetooth/Makefile
+++ b/drivers/bluetooth/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_BT_HCIBLUECARD)	+= bluecard_cs.o
 
 obj-$(CONFIG_BT_HCIBTUSB)	+= btusb.o
 obj-$(CONFIG_BT_HCIBTSDIO)	+= btsdio.o
+obj-$(CONFIG_BT_HCIBTUART)	+= btuart.o
 
 obj-$(CONFIG_BT_INTEL)		+= btintel.o
 obj-$(CONFIG_BT_ATH3K)		+= ath3k.o
diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
new file mode 100644
index 0000000..03e980f
--- /dev/null
+++ b/drivers/bluetooth/btuart.c
@@ -0,0 +1,506 @@
+/*
+ *
+ *  Generic Bluetooth HCI UART driver
+ *
+ *  Copyright (C) 2015-2018  Intel Corporation
+ *
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/skbuff.h>
+#include <linux/serdev.h>
+#include <linux/of.h>
+#include <linux/firmware.h>
+#include <asm/unaligned.h>
+
+#include <net/bluetooth/bluetooth.h>
+#include <net/bluetooth/hci_core.h>
+
+#include "h4_recv.h"
+#include "btbcm.h"
+
+#define VERSION "1.0"
+
+struct btuart_vnd {
+	const struct h4_recv_pkt *recv_pkts;
+	int recv_pkts_cnt;
+	unsigned int manufacturer;
+	int (*open)(struct hci_dev *hdev);
+	int (*close)(struct hci_dev *hdev);
+	int (*setup)(struct hci_dev *hdev);
+};
+
+struct btuart_dev {
+	struct hci_dev *hdev;
+	struct serdev_device *serdev;
+
+	struct work_struct tx_work;
+	unsigned long tx_state;
+	struct sk_buff_head txq;
+
+	struct sk_buff *rx_skb;
+
+	const struct btuart_vnd *vnd;
+};
+
+#define BTUART_TX_STATE_ACTIVE	1
+#define BTUART_TX_STATE_WAKEUP	2
+
+static void btuart_tx_work(struct work_struct *work)
+{
+	struct btuart_dev *bdev = container_of(work, struct btuart_dev,
+					       tx_work);
+	struct serdev_device *serdev = bdev->serdev;
+	struct hci_dev *hdev = bdev->hdev;
+
+	while (1) {
+		clear_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+
+		while (1) {
+			struct sk_buff *skb = skb_dequeue(&bdev->txq);
+			int len;
+
+			if (!skb)
+				break;
+
+			len = serdev_device_write_buf(serdev, skb->data,
+						      skb->len);
+			hdev->stat.byte_tx += len;
+
+			skb_pull(skb, len);
+			if (skb->len > 0) {
+				skb_queue_head(&bdev->txq, skb);
+				break;
+			}
+
+			switch (hci_skb_pkt_type(skb)) {
+			case HCI_COMMAND_PKT:
+				hdev->stat.cmd_tx++;
+				break;
+			case HCI_ACLDATA_PKT:
+				hdev->stat.acl_tx++;
+				break;
+			case HCI_SCODATA_PKT:
+				hdev->stat.sco_tx++;
+				break;
+			}
+
+			kfree_skb(skb);
+		}
+
+		if (!test_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state))
+			break;
+	}
+
+	clear_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state);
+}
+
+static int btuart_tx_wakeup(struct btuart_dev *bdev)
+{
+	if (test_and_set_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state)) {
+		set_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+		return 0;
+	}
+
+	schedule_work(&bdev->tx_work);
+	return 0;
+}
+
+static int btuart_open(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	int err;
+
+	err = serdev_device_open(bdev->serdev);
+	if (err) {
+		bt_dev_err(hdev, "Unable to open UART device %s",
+			   dev_name(&bdev->serdev->dev));
+		return err;
+	}
+
+	if (bdev->vnd->open) {
+		err = bdev->vnd->open(hdev);
+		if (err) {
+			serdev_device_close(bdev->serdev);
+			return err;
+		}
+	}
+
+	return 0;
+}
+
+static int btuart_close(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	int err;
+
+	if (bdev->vnd->close) {
+		err = bdev->vnd->close(hdev);
+		if (err)
+			return err;
+	}
+
+	serdev_device_close(bdev->serdev);
+
+	return 0;
+}
+
+static int btuart_flush(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	/* Flush any pending characters */
+	serdev_device_write_flush(bdev->serdev);
+	skb_queue_purge(&bdev->txq);
+
+	cancel_work_sync(&bdev->tx_work);
+
+	kfree_skb(bdev->rx_skb);
+	bdev->rx_skb = NULL;
+
+	return 0;
+}
+
+static int btuart_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	if (bdev->vnd->setup)
+		return bdev->vnd->setup(hdev);
+
+	return 0;
+}
+
+static int btuart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	/* Prepend skb with frame type */
+	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+	skb_queue_tail(&bdev->txq, skb);
+
+	btuart_tx_wakeup(bdev);
+	return 0;
+}
+
+static int btuart_receive_buf(struct serdev_device *serdev, const u8 *data,
+			      size_t count)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+	const struct btuart_vnd *vnd = bdev->vnd;
+
+	bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, data, count,
+				   vnd->recv_pkts, vnd->recv_pkts_cnt);
+	if (IS_ERR(bdev->rx_skb)) {
+		int err = PTR_ERR(bdev->rx_skb);
+		bt_dev_err(bdev->hdev, "Frame reassembly failed (%d)", err);
+		bdev->rx_skb = NULL;
+		return err;
+	}
+
+	bdev->hdev->stat.byte_rx += count;
+
+	return count;
+}
+
+static void btuart_write_wakeup(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+
+	btuart_tx_wakeup(bdev);
+}
+
+static const struct serdev_device_ops btuart_client_ops = {
+	.receive_buf = btuart_receive_buf,
+	.write_wakeup = btuart_write_wakeup,
+};
+
+#define BCM_NULL_PKT 0x00
+#define BCM_NULL_SIZE 0
+
+#define BCM_LM_DIAG_PKT 0x07
+#define BCM_LM_DIAG_SIZE 63
+
+#define BCM_RECV_LM_DIAG \
+	.type = BCM_LM_DIAG_PKT, \
+	.hlen = BCM_LM_DIAG_SIZE, \
+	.loff = 0, \
+	.lsize = 0, \
+	.maxlen = BCM_LM_DIAG_SIZE
+
+#define BCM_RECV_NULL \
+	.type = BCM_NULL_PKT, \
+	.hlen = BCM_NULL_SIZE, \
+	.loff = 0, \
+	.lsize = 0, \
+	.maxlen = BCM_NULL_SIZE
+
+static int bcm_set_diag(struct hci_dev *hdev, bool enable)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct sk_buff *skb;
+
+	if (!test_bit(HCI_RUNNING, &hdev->flags))
+		return -ENETDOWN;
+
+	skb = bt_skb_alloc(3, GFP_KERNEL);
+	if (!skb)
+		return -ENOMEM;
+
+	skb_put_u8(skb, BCM_LM_DIAG_PKT);
+	skb_put_u8(skb, 0xf0);
+	skb_put_u8(skb, enable);
+
+	skb_queue_tail(&bdev->txq, skb);
+	btuart_tx_wakeup(bdev);
+
+	return 0;
+}
+
+static int bcm_set_baudrate(struct btuart_dev *bdev, unsigned int speed)
+{
+	struct hci_dev *hdev = bdev->hdev;
+	struct sk_buff *skb;
+	struct bcm_update_uart_baud_rate param;
+
+	if (speed > 3000000) {
+		struct bcm_write_uart_clock_setting clock;
+
+		clock.type = BCM_UART_CLOCK_48MHZ;
+
+		bt_dev_dbg(hdev, "Set Controller clock (%d)", clock.type);
+
+		/* This Broadcom specific command changes the UART's controller
+		 * clock for baud rate > 3000000.
+		 */
+		skb = __hci_cmd_sync(hdev, 0xfc45, 1, &clock, HCI_INIT_TIMEOUT);
+		if (IS_ERR(skb)) {
+			int err = PTR_ERR(skb);
+			bt_dev_err(hdev, "Failed to write clock (%d)", err);
+			return err;
+		}
+
+		kfree_skb(skb);
+	}
+
+	bt_dev_dbg(hdev, "Set Controller UART speed to %d bit/s", speed);
+
+	param.zero = cpu_to_le16(0);
+	param.baud_rate = cpu_to_le32(speed);
+
+	/* This Broadcom specific command changes the UART's controller baud
+	 * rate.
+	 */
+	skb = __hci_cmd_sync(hdev, 0xfc18, sizeof(param), &param,
+			     HCI_INIT_TIMEOUT);
+	if (IS_ERR(skb)) {
+		int err = PTR_ERR(skb);
+		bt_dev_err(hdev, "Failed to write update baudrate (%d)", err);
+		return err;
+	}
+
+	kfree_skb(skb);
+
+	return 0;
+}
+
+static int bcm_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	char fw_name[64];
+	const struct firmware *fw;
+	unsigned int speed;
+	int err;
+
+	hdev->set_diag = bcm_set_diag;
+	hdev->set_bdaddr = btbcm_set_bdaddr;
+
+	/* Init speed if any */
+	speed = 115200;
+
+	if (speed)
+		serdev_device_set_baudrate(bdev->serdev, speed);
+
+	/* Operational speed if any */
+	speed = 115200;
+
+	if (speed) {
+		err = bcm_set_baudrate(bdev, speed);
+		if (err)
+			bt_dev_err(hdev, "Failed to set baudrate");
+		else
+			serdev_device_set_baudrate(bdev->serdev, speed);
+	}
+
+	err = btbcm_initialize(hdev, fw_name, sizeof(fw_name));
+	if (err)
+		return err;
+
+	err = request_firmware(&fw, fw_name, &hdev->dev);
+	if (err < 0) {
+		bt_dev_warn(hdev, "Patch %s not found", fw_name);
+		return 0;
+	}
+
+	err = btbcm_patchram(bdev->hdev, fw);
+	if (err) {
+		bt_dev_err(hdev, "Patching failed (%d)", err);
+		goto finalize;
+	}
+
+	/* Init speed if any */
+	speed = 115200;
+
+	if (speed)
+		serdev_device_set_baudrate(bdev->serdev, speed);
+
+	/* Operational speed if any */
+	speed = 115200;
+
+	if (speed) {
+		err = bcm_set_baudrate(bdev, speed);
+		if (!err)
+			serdev_device_set_baudrate(bdev->serdev, speed);
+	}
+
+finalize:
+	release_firmware(fw);
+
+	err = btbcm_finalize(hdev);
+	if (err)
+		return err;
+
+	return err;
+}
+
+static const struct h4_recv_pkt bcm_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = hci_recv_frame },
+	{ BCM_RECV_LM_DIAG, .recv = hci_recv_diag  },
+	{ BCM_RECV_NULL,    .recv = hci_recv_diag  },
+};
+
+static const struct btuart_vnd bcm_vnd = {
+	.recv_pkts	= bcm_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(bcm_recv_pkts),
+	.manufacturer	= 15,
+	.setup		= bcm_setup,
+};
+
+static const struct h4_recv_pkt default_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = hci_recv_frame },
+};
+
+static const struct btuart_vnd default_vnd = {
+	.recv_pkts	= default_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(default_recv_pkts),
+};
+
+static int btuart_probe(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev;
+	struct hci_dev *hdev;
+
+	bdev = devm_kzalloc(&serdev->dev, sizeof(*bdev), GFP_KERNEL);
+	if (!bdev)
+		return -ENOMEM;
+
+	/* Request the vendor specific data and callbacks */
+	bdev->vnd = device_get_match_data(&serdev->dev);
+	if (!bdev->vnd)
+		bdev->vnd = &default_vnd;
+
+	bdev->serdev = serdev;
+	serdev_device_set_drvdata(serdev, bdev);
+
+	serdev_device_set_client_ops(serdev, &btuart_client_ops);
+
+	INIT_WORK(&bdev->tx_work, btuart_tx_work);
+	skb_queue_head_init(&bdev->txq);
+
+	/* Initialize and register HCI device */
+	hdev = hci_alloc_dev();
+	if (!hdev) {
+		dev_err(&serdev->dev, "Can't allocate HCI device\n");
+		return -ENOMEM;
+	}
+
+	bdev->hdev = hdev;
+
+	hdev->bus = HCI_UART;
+	hci_set_drvdata(hdev, bdev);
+
+	/* Only when vendor specific setup callback is provided, consider
+	 * the manufacturer information valid. This avoids filling in the
+	 * value for Ericsson when nothing is specified.
+	 */
+	if (bdev->vnd->setup)
+		hdev->manufacturer = bdev->vnd->manufacturer;
+
+	hdev->open  = btuart_open;
+	hdev->close = btuart_close;
+	hdev->flush = btuart_flush;
+	hdev->setup = btuart_setup;
+	hdev->send  = btuart_send_frame;
+	SET_HCIDEV_DEV(hdev, &serdev->dev);
+
+	if (hci_register_dev(hdev) < 0) {
+		dev_err(&serdev->dev, "Can't register HCI device\n");
+		hci_free_dev(hdev);
+		return -ENODEV;
+	}
+
+	return 0;
+}
+
+static void btuart_remove(struct serdev_device *serdev)
+{
+	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
+	struct hci_dev *hdev = bdev->hdev;
+
+	hci_unregister_dev(hdev);
+	hci_free_dev(hdev);
+}
+
+#ifdef CONFIG_OF
+static const struct of_device_id btuart_of_match_table[] = {
+	{ .compatible = "brcm,bcm43438-bt", .data = &bcm_vnd },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, btuart_of_match_table);
+#endif
+
+static struct serdev_device_driver btuart_driver = {
+	.probe = btuart_probe,
+	.remove = btuart_remove,
+	.driver = {
+		.name = "btuart",
+		.of_match_table = of_match_ptr(btuart_of_match_table),
+	},
+};
+
+module_serdev_device_driver(btuart_driver);
+
+MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
+MODULE_DESCRIPTION("Generic Bluetooth UART driver ver " VERSION);
+MODULE_VERSION(VERSION);
+MODULE_LICENSE("GPL");
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-15  8:52 ` sean.wang
  (?)
@ 2018-05-15  8:52   ` sean.wang
  -1 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

Add a new quirk HCI_QUIRK_NON_PERSISTENT_SETUP allowing that a quirk that
runs setup() after every open() and not just after the first open().

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 include/net/bluetooth/hci.h | 9 +++++++++
 net/bluetooth/hci_core.c    | 3 ++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 1668211..b37d973 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -183,6 +183,15 @@ enum {
 	 * during the hdev->setup vendor callback.
 	 */
 	HCI_QUIRK_NON_PERSISTENT_DIAG,
+
+	/* When this quirk is set, setup() would be run after every
+	 * open() and not just after the first open().
+	 *
+	 * This quirk can be set before hci_register_dev is called or
+	 * during the hdev->setup vendor callback.
+	 *
+	 */
+	HCI_QUIRK_NON_PERSISTENT_SETUP,
 };
 
 /* HCI device flags */
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 40d260f..7de712e2 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1377,7 +1377,8 @@ static int hci_dev_do_open(struct hci_dev *hdev)
 	atomic_set(&hdev->cmd_cnt, 1);
 	set_bit(HCI_INIT, &hdev->flags);
 
-	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
+	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
+	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
 
 		if (hdev->setup)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

Add a new quirk HCI_QUIRK_NON_PERSISTENT_SETUP allowing that a quirk that
runs setup() after every open() and not just after the first open().

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 include/net/bluetooth/hci.h | 9 +++++++++
 net/bluetooth/hci_core.c    | 3 ++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 1668211..b37d973 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -183,6 +183,15 @@ enum {
 	 * during the hdev->setup vendor callback.
 	 */
 	HCI_QUIRK_NON_PERSISTENT_DIAG,
+
+	/* When this quirk is set, setup() would be run after every
+	 * open() and not just after the first open().
+	 *
+	 * This quirk can be set before hci_register_dev is called or
+	 * during the hdev->setup vendor callback.
+	 *
+	 */
+	HCI_QUIRK_NON_PERSISTENT_SETUP,
 };
 
 /* HCI device flags */
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 40d260f..7de712e2 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1377,7 +1377,8 @@ static int hci_dev_do_open(struct hci_dev *hdev)
 	atomic_set(&hdev->cmd_cnt, 1);
 	set_bit(HCI_INIT, &hdev->flags);
 
-	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
+	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
+	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
 
 		if (hdev->setup)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang at mediatek.com @ 2018-05-15  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sean Wang <sean.wang@mediatek.com>

Add a new quirk HCI_QUIRK_NON_PERSISTENT_SETUP allowing that a quirk that
runs setup() after every open() and not just after the first open().

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 include/net/bluetooth/hci.h | 9 +++++++++
 net/bluetooth/hci_core.c    | 3 ++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 1668211..b37d973 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -183,6 +183,15 @@ enum {
 	 * during the hdev->setup vendor callback.
 	 */
 	HCI_QUIRK_NON_PERSISTENT_DIAG,
+
+	/* When this quirk is set, setup() would be run after every
+	 * open() and not just after the first open().
+	 *
+	 * This quirk can be set before hci_register_dev is called or
+	 * during the hdev->setup vendor callback.
+	 *
+	 */
+	HCI_QUIRK_NON_PERSISTENT_SETUP,
 };
 
 /* HCI device flags */
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 40d260f..7de712e2 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1377,7 +1377,8 @@ static int hci_dev_do_open(struct hci_dev *hdev)
 	atomic_set(&hdev->cmd_cnt, 1);
 	set_bit(HCI_INIT, &hdev->flags);
 
-	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
+	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
+	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
 
 		if (hdev->setup)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 5/7] Bluetooth: Extend btuart driver for join more vendor devices
  2018-05-15  8:52 ` sean.wang
  (?)
@ 2018-05-15  8:52   ` sean.wang
  -1 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

Adding an independent btuart.h header allows these essential definitions
can be reused in vendor driver. Also, struct btuart_vnd is extended with
additional callbacks such as .init initializing vendor data, .shtudown,
.recv and .send supporting SoC specific framing for that btuart can
simply adapt to various Bluetooth uart-based devices.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/bluetooth/btuart.c | 73 ++++++++++++++++++++++++----------------------
 drivers/bluetooth/btuart.h | 30 +++++++++++++++++++
 2 files changed, 68 insertions(+), 35 deletions(-)
 create mode 100644 drivers/bluetooth/btuart.h

diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
index 03e980f..ab7f836 100644
--- a/drivers/bluetooth/btuart.c
+++ b/drivers/bluetooth/btuart.c
@@ -33,35 +33,11 @@
 #include <net/bluetooth/hci_core.h>
 
 #include "h4_recv.h"
+#include "btuart.h"
 #include "btbcm.h"
 
 #define VERSION "1.0"
 
-struct btuart_vnd {
-	const struct h4_recv_pkt *recv_pkts;
-	int recv_pkts_cnt;
-	unsigned int manufacturer;
-	int (*open)(struct hci_dev *hdev);
-	int (*close)(struct hci_dev *hdev);
-	int (*setup)(struct hci_dev *hdev);
-};
-
-struct btuart_dev {
-	struct hci_dev *hdev;
-	struct serdev_device *serdev;
-
-	struct work_struct tx_work;
-	unsigned long tx_state;
-	struct sk_buff_head txq;
-
-	struct sk_buff *rx_skb;
-
-	const struct btuart_vnd *vnd;
-};
-
-#define BTUART_TX_STATE_ACTIVE	1
-#define BTUART_TX_STATE_WAKEUP	2
-
 static void btuart_tx_work(struct work_struct *work)
 {
 	struct btuart_dev *bdev = container_of(work, struct btuart_dev,
@@ -187,13 +163,27 @@ static int btuart_setup(struct hci_dev *hdev)
 	return 0;
 }
 
+static int btuart_shutdown(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	if (bdev->vnd->shutdown)
+		return bdev->vnd->shutdown(hdev);
+
+	return 0;
+}
+
 static int btuart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 {
 	struct btuart_dev *bdev = hci_get_drvdata(hdev);
 
-	/* Prepend skb with frame type */
-	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
-	skb_queue_tail(&bdev->txq, skb);
+	if (bdev->vnd->send) {
+		bdev->vnd->send(hdev, skb);
+	} else {
+		/* Prepend skb with frame type */
+		memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+		skb_queue_tail(&bdev->txq, skb);
+	}
 
 	btuart_tx_wakeup(bdev);
 	return 0;
@@ -204,14 +194,23 @@ static int btuart_receive_buf(struct serdev_device *serdev, const u8 *data,
 {
 	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
 	const struct btuart_vnd *vnd = bdev->vnd;
+	int err;
 
-	bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, data, count,
-				   vnd->recv_pkts, vnd->recv_pkts_cnt);
-	if (IS_ERR(bdev->rx_skb)) {
-		int err = PTR_ERR(bdev->rx_skb);
-		bt_dev_err(bdev->hdev, "Frame reassembly failed (%d)", err);
-		bdev->rx_skb = NULL;
-		return err;
+	if (bdev->vnd->recv) {
+		err = bdev->vnd->recv(bdev->hdev, data, count);
+		if (err < 0)
+			return err;
+	} else {
+		bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb,
+					   data, count, vnd->recv_pkts,
+					   vnd->recv_pkts_cnt);
+		if (IS_ERR(bdev->rx_skb)) {
+			err = PTR_ERR(bdev->rx_skb);
+			bt_dev_err(bdev->hdev,
+				   "Frame reassembly failed (%d)", err);
+			bdev->rx_skb = NULL;
+			return err;
+		}
 	}
 
 	bdev->hdev->stat.byte_rx += count;
@@ -429,6 +428,9 @@ static int btuart_probe(struct serdev_device *serdev)
 	if (!bdev->vnd)
 		bdev->vnd = &default_vnd;
 
+	if (bdev->vnd->init)
+		bdev->data = bdev->vnd->init(&serdev->dev);
+
 	bdev->serdev = serdev;
 	serdev_device_set_drvdata(serdev, bdev);
 
@@ -460,6 +462,7 @@ static int btuart_probe(struct serdev_device *serdev)
 	hdev->close = btuart_close;
 	hdev->flush = btuart_flush;
 	hdev->setup = btuart_setup;
+	hdev->shutdown = btuart_shutdown;
 	hdev->send  = btuart_send_frame;
 	SET_HCIDEV_DEV(hdev, &serdev->dev);
 
diff --git a/drivers/bluetooth/btuart.h b/drivers/bluetooth/btuart.h
new file mode 100644
index 0000000..6c1fe31
--- /dev/null
+++ b/drivers/bluetooth/btuart.h
@@ -0,0 +1,30 @@
+struct btuart_vnd {
+	const struct h4_recv_pkt *recv_pkts;
+	int recv_pkts_cnt;
+	unsigned int manufacturer;
+	void *(*init)(struct device *dev);
+
+	int (*open)(struct hci_dev *hdev);
+	int (*close)(struct hci_dev *hdev);
+	int (*setup)(struct hci_dev *hdev);
+	int (*shutdown)(struct hci_dev *hdev);
+	int (*send)(struct hci_dev *hdev, struct sk_buff *skb);
+	int (*recv)(struct hci_dev *hdev, const u8 *data, size_t count);
+};
+
+struct btuart_dev {
+	struct hci_dev *hdev;
+	struct serdev_device *serdev;
+
+	struct work_struct tx_work;
+	unsigned long tx_state;
+	struct sk_buff_head txq;
+
+	struct sk_buff *rx_skb;
+
+	const struct btuart_vnd *vnd;
+	void *data;
+};
+
+#define BTUART_TX_STATE_ACTIVE	1
+#define BTUART_TX_STATE_WAKEUP	2
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 5/7] Bluetooth: Extend btuart driver for join more vendor devices
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

Adding an independent btuart.h header allows these essential definitions
can be reused in vendor driver. Also, struct btuart_vnd is extended with
additional callbacks such as .init initializing vendor data, .shtudown,
.recv and .send supporting SoC specific framing for that btuart can
simply adapt to various Bluetooth uart-based devices.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/bluetooth/btuart.c | 73 ++++++++++++++++++++++++----------------------
 drivers/bluetooth/btuart.h | 30 +++++++++++++++++++
 2 files changed, 68 insertions(+), 35 deletions(-)
 create mode 100644 drivers/bluetooth/btuart.h

diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
index 03e980f..ab7f836 100644
--- a/drivers/bluetooth/btuart.c
+++ b/drivers/bluetooth/btuart.c
@@ -33,35 +33,11 @@
 #include <net/bluetooth/hci_core.h>
 
 #include "h4_recv.h"
+#include "btuart.h"
 #include "btbcm.h"
 
 #define VERSION "1.0"
 
-struct btuart_vnd {
-	const struct h4_recv_pkt *recv_pkts;
-	int recv_pkts_cnt;
-	unsigned int manufacturer;
-	int (*open)(struct hci_dev *hdev);
-	int (*close)(struct hci_dev *hdev);
-	int (*setup)(struct hci_dev *hdev);
-};
-
-struct btuart_dev {
-	struct hci_dev *hdev;
-	struct serdev_device *serdev;
-
-	struct work_struct tx_work;
-	unsigned long tx_state;
-	struct sk_buff_head txq;
-
-	struct sk_buff *rx_skb;
-
-	const struct btuart_vnd *vnd;
-};
-
-#define BTUART_TX_STATE_ACTIVE	1
-#define BTUART_TX_STATE_WAKEUP	2
-
 static void btuart_tx_work(struct work_struct *work)
 {
 	struct btuart_dev *bdev = container_of(work, struct btuart_dev,
@@ -187,13 +163,27 @@ static int btuart_setup(struct hci_dev *hdev)
 	return 0;
 }
 
+static int btuart_shutdown(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	if (bdev->vnd->shutdown)
+		return bdev->vnd->shutdown(hdev);
+
+	return 0;
+}
+
 static int btuart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 {
 	struct btuart_dev *bdev = hci_get_drvdata(hdev);
 
-	/* Prepend skb with frame type */
-	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
-	skb_queue_tail(&bdev->txq, skb);
+	if (bdev->vnd->send) {
+		bdev->vnd->send(hdev, skb);
+	} else {
+		/* Prepend skb with frame type */
+		memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+		skb_queue_tail(&bdev->txq, skb);
+	}
 
 	btuart_tx_wakeup(bdev);
 	return 0;
@@ -204,14 +194,23 @@ static int btuart_receive_buf(struct serdev_device *serdev, const u8 *data,
 {
 	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
 	const struct btuart_vnd *vnd = bdev->vnd;
+	int err;
 
-	bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, data, count,
-				   vnd->recv_pkts, vnd->recv_pkts_cnt);
-	if (IS_ERR(bdev->rx_skb)) {
-		int err = PTR_ERR(bdev->rx_skb);
-		bt_dev_err(bdev->hdev, "Frame reassembly failed (%d)", err);
-		bdev->rx_skb = NULL;
-		return err;
+	if (bdev->vnd->recv) {
+		err = bdev->vnd->recv(bdev->hdev, data, count);
+		if (err < 0)
+			return err;
+	} else {
+		bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb,
+					   data, count, vnd->recv_pkts,
+					   vnd->recv_pkts_cnt);
+		if (IS_ERR(bdev->rx_skb)) {
+			err = PTR_ERR(bdev->rx_skb);
+			bt_dev_err(bdev->hdev,
+				   "Frame reassembly failed (%d)", err);
+			bdev->rx_skb = NULL;
+			return err;
+		}
 	}
 
 	bdev->hdev->stat.byte_rx += count;
@@ -429,6 +428,9 @@ static int btuart_probe(struct serdev_device *serdev)
 	if (!bdev->vnd)
 		bdev->vnd = &default_vnd;
 
+	if (bdev->vnd->init)
+		bdev->data = bdev->vnd->init(&serdev->dev);
+
 	bdev->serdev = serdev;
 	serdev_device_set_drvdata(serdev, bdev);
 
@@ -460,6 +462,7 @@ static int btuart_probe(struct serdev_device *serdev)
 	hdev->close = btuart_close;
 	hdev->flush = btuart_flush;
 	hdev->setup = btuart_setup;
+	hdev->shutdown = btuart_shutdown;
 	hdev->send  = btuart_send_frame;
 	SET_HCIDEV_DEV(hdev, &serdev->dev);
 
diff --git a/drivers/bluetooth/btuart.h b/drivers/bluetooth/btuart.h
new file mode 100644
index 0000000..6c1fe31
--- /dev/null
+++ b/drivers/bluetooth/btuart.h
@@ -0,0 +1,30 @@
+struct btuart_vnd {
+	const struct h4_recv_pkt *recv_pkts;
+	int recv_pkts_cnt;
+	unsigned int manufacturer;
+	void *(*init)(struct device *dev);
+
+	int (*open)(struct hci_dev *hdev);
+	int (*close)(struct hci_dev *hdev);
+	int (*setup)(struct hci_dev *hdev);
+	int (*shutdown)(struct hci_dev *hdev);
+	int (*send)(struct hci_dev *hdev, struct sk_buff *skb);
+	int (*recv)(struct hci_dev *hdev, const u8 *data, size_t count);
+};
+
+struct btuart_dev {
+	struct hci_dev *hdev;
+	struct serdev_device *serdev;
+
+	struct work_struct tx_work;
+	unsigned long tx_state;
+	struct sk_buff_head txq;
+
+	struct sk_buff *rx_skb;
+
+	const struct btuart_vnd *vnd;
+	void *data;
+};
+
+#define BTUART_TX_STATE_ACTIVE	1
+#define BTUART_TX_STATE_WAKEUP	2
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 5/7] Bluetooth: Extend btuart driver for join more vendor devices
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang at mediatek.com @ 2018-05-15  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sean Wang <sean.wang@mediatek.com>

Adding an independent btuart.h header allows these essential definitions
can be reused in vendor driver. Also, struct btuart_vnd is extended with
additional callbacks such as .init initializing vendor data, .shtudown,
.recv and .send supporting SoC specific framing for that btuart can
simply adapt to various Bluetooth uart-based devices.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/bluetooth/btuart.c | 73 ++++++++++++++++++++++++----------------------
 drivers/bluetooth/btuart.h | 30 +++++++++++++++++++
 2 files changed, 68 insertions(+), 35 deletions(-)
 create mode 100644 drivers/bluetooth/btuart.h

diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
index 03e980f..ab7f836 100644
--- a/drivers/bluetooth/btuart.c
+++ b/drivers/bluetooth/btuart.c
@@ -33,35 +33,11 @@
 #include <net/bluetooth/hci_core.h>
 
 #include "h4_recv.h"
+#include "btuart.h"
 #include "btbcm.h"
 
 #define VERSION "1.0"
 
-struct btuart_vnd {
-	const struct h4_recv_pkt *recv_pkts;
-	int recv_pkts_cnt;
-	unsigned int manufacturer;
-	int (*open)(struct hci_dev *hdev);
-	int (*close)(struct hci_dev *hdev);
-	int (*setup)(struct hci_dev *hdev);
-};
-
-struct btuart_dev {
-	struct hci_dev *hdev;
-	struct serdev_device *serdev;
-
-	struct work_struct tx_work;
-	unsigned long tx_state;
-	struct sk_buff_head txq;
-
-	struct sk_buff *rx_skb;
-
-	const struct btuart_vnd *vnd;
-};
-
-#define BTUART_TX_STATE_ACTIVE	1
-#define BTUART_TX_STATE_WAKEUP	2
-
 static void btuart_tx_work(struct work_struct *work)
 {
 	struct btuart_dev *bdev = container_of(work, struct btuart_dev,
@@ -187,13 +163,27 @@ static int btuart_setup(struct hci_dev *hdev)
 	return 0;
 }
 
+static int btuart_shutdown(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	if (bdev->vnd->shutdown)
+		return bdev->vnd->shutdown(hdev);
+
+	return 0;
+}
+
 static int btuart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 {
 	struct btuart_dev *bdev = hci_get_drvdata(hdev);
 
-	/* Prepend skb with frame type */
-	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
-	skb_queue_tail(&bdev->txq, skb);
+	if (bdev->vnd->send) {
+		bdev->vnd->send(hdev, skb);
+	} else {
+		/* Prepend skb with frame type */
+		memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+		skb_queue_tail(&bdev->txq, skb);
+	}
 
 	btuart_tx_wakeup(bdev);
 	return 0;
@@ -204,14 +194,23 @@ static int btuart_receive_buf(struct serdev_device *serdev, const u8 *data,
 {
 	struct btuart_dev *bdev = serdev_device_get_drvdata(serdev);
 	const struct btuart_vnd *vnd = bdev->vnd;
+	int err;
 
-	bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, data, count,
-				   vnd->recv_pkts, vnd->recv_pkts_cnt);
-	if (IS_ERR(bdev->rx_skb)) {
-		int err = PTR_ERR(bdev->rx_skb);
-		bt_dev_err(bdev->hdev, "Frame reassembly failed (%d)", err);
-		bdev->rx_skb = NULL;
-		return err;
+	if (bdev->vnd->recv) {
+		err = bdev->vnd->recv(bdev->hdev, data, count);
+		if (err < 0)
+			return err;
+	} else {
+		bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb,
+					   data, count, vnd->recv_pkts,
+					   vnd->recv_pkts_cnt);
+		if (IS_ERR(bdev->rx_skb)) {
+			err = PTR_ERR(bdev->rx_skb);
+			bt_dev_err(bdev->hdev,
+				   "Frame reassembly failed (%d)", err);
+			bdev->rx_skb = NULL;
+			return err;
+		}
 	}
 
 	bdev->hdev->stat.byte_rx += count;
@@ -429,6 +428,9 @@ static int btuart_probe(struct serdev_device *serdev)
 	if (!bdev->vnd)
 		bdev->vnd = &default_vnd;
 
+	if (bdev->vnd->init)
+		bdev->data = bdev->vnd->init(&serdev->dev);
+
 	bdev->serdev = serdev;
 	serdev_device_set_drvdata(serdev, bdev);
 
@@ -460,6 +462,7 @@ static int btuart_probe(struct serdev_device *serdev)
 	hdev->close = btuart_close;
 	hdev->flush = btuart_flush;
 	hdev->setup = btuart_setup;
+	hdev->shutdown = btuart_shutdown;
 	hdev->send  = btuart_send_frame;
 	SET_HCIDEV_DEV(hdev, &serdev->dev);
 
diff --git a/drivers/bluetooth/btuart.h b/drivers/bluetooth/btuart.h
new file mode 100644
index 0000000..6c1fe31
--- /dev/null
+++ b/drivers/bluetooth/btuart.h
@@ -0,0 +1,30 @@
+struct btuart_vnd {
+	const struct h4_recv_pkt *recv_pkts;
+	int recv_pkts_cnt;
+	unsigned int manufacturer;
+	void *(*init)(struct device *dev);
+
+	int (*open)(struct hci_dev *hdev);
+	int (*close)(struct hci_dev *hdev);
+	int (*setup)(struct hci_dev *hdev);
+	int (*shutdown)(struct hci_dev *hdev);
+	int (*send)(struct hci_dev *hdev, struct sk_buff *skb);
+	int (*recv)(struct hci_dev *hdev, const u8 *data, size_t count);
+};
+
+struct btuart_dev {
+	struct hci_dev *hdev;
+	struct serdev_device *serdev;
+
+	struct work_struct tx_work;
+	unsigned long tx_state;
+	struct sk_buff_head txq;
+
+	struct sk_buff *rx_skb;
+
+	const struct btuart_vnd *vnd;
+	void *data;
+};
+
+#define BTUART_TX_STATE_ACTIVE	1
+#define BTUART_TX_STATE_WAKEUP	2
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 6/7] Bluetooth: mediatek: Add protocol support for MediaTek serial devices
  2018-05-15  8:52 ` sean.wang
  (?)
@ 2018-05-15  8:52   ` sean.wang
  -1 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

This adds a driver to run on the top of btuart driver for the MediaTek
serial protocol based on running H:4, which can enable the built-in
Bluetooth device inside MT7622 SoC.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/bluetooth/Kconfig     |  12 ++
 drivers/bluetooth/Makefile    |   2 +
 drivers/bluetooth/btmtkuart.c | 383 ++++++++++++++++++++++++++++++++++++++++++
 drivers/bluetooth/btmtkuart.h | 119 +++++++++++++
 drivers/bluetooth/btuart.c    |  18 ++
 5 files changed, 534 insertions(+)
 create mode 100644 drivers/bluetooth/btmtkuart.c
 create mode 100644 drivers/bluetooth/btmtkuart.h

diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
index 6d69ac2..13aff1ed 100644
--- a/drivers/bluetooth/Kconfig
+++ b/drivers/bluetooth/Kconfig
@@ -85,6 +85,18 @@ config BT_HCIBTUART
 	  Say Y here to compile support for Bluetooth UART devices into the
 	  kernel or say M to compile it as module (btuart).
 
+config BT_HCIBTUART_MTK
+	tristate "MediaTek HCI UART driver"
+	depends on BT_HCIBTUART
+	default y
+	help
+	  MediaTek Bluetooth HCI UART driver.
+	  This driver is required if you want to use MediaTek Bluetooth
+	  with serial interface.
+
+	  Say Y here to compile support for MediaTek Bluetooth UART devices
+	  into the kernel or say M to compile it as module (btmtkuart).
+
 config BT_HCIUART
 	tristate "HCI UART driver"
 	depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
index 60a19cb..c9a8926 100644
--- a/drivers/bluetooth/Makefile
+++ b/drivers/bluetooth/Makefile
@@ -26,6 +26,8 @@ obj-$(CONFIG_BT_BCM)		+= btbcm.o
 obj-$(CONFIG_BT_RTL)		+= btrtl.o
 obj-$(CONFIG_BT_QCA)		+= btqca.o
 
+obj-$(CONFIG_BT_HCIBTUART_MTK)	+= btmtkuart.o
+
 obj-$(CONFIG_BT_HCIUART_NOKIA)	+= hci_nokia.o
 
 obj-$(CONFIG_BT_HCIRSI)		+= btrsi.o
diff --git a/drivers/bluetooth/btmtkuart.c b/drivers/bluetooth/btmtkuart.c
new file mode 100644
index 0000000..0e43a4ae
--- /dev/null
+++ b/drivers/bluetooth/btmtkuart.c
@@ -0,0 +1,383 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018 MediaTek Inc.
+
+/*
+ * Bluetooth support for MediaTek serial devices
+ *
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+#include <asm/unaligned.h>
+#include <linux/clk.h>
+#include <linux/firmware.h>
+#include <linux/module.h>
+#include <linux/pm_runtime.h>
+#include <linux/serdev.h>
+#include <net/bluetooth/bluetooth.h>
+#include <net/bluetooth/hci_core.h>
+
+#include "h4_recv.h"
+#include "btuart.h"
+#include "btmtkuart.h"
+
+static void mtk_stp_reset(struct mtk_stp_splitter *sp)
+{
+	sp->cursor = 2;
+	sp->dlen = 0;
+}
+
+static const unsigned char *
+mtk_stp_split(struct btuart_dev *bdev, struct mtk_stp_splitter *sp,
+	      const unsigned char *data, int count, int *sz_h4)
+{
+	struct mtk_stp_hdr *shdr;
+
+	/* The cursor is reset when all the data of STP is consumed out. */
+	if (!sp->dlen && sp->cursor >= 6)
+		sp->cursor = 0;
+
+	/* Filling pad until all STP info is obtained. */
+	while (sp->cursor < 6 && count > 0) {
+		sp->pad[sp->cursor] = *data;
+		sp->cursor++;
+		data++;
+		count--;
+	}
+
+	/* Retrieve STP info and have a sanity check. */
+	if (!sp->dlen && sp->cursor >= 6) {
+		shdr = (struct mtk_stp_hdr *)&sp->pad[2];
+		sp->dlen = shdr->dlen1 << 8 | shdr->dlen2;
+
+		/* Resync STP when unexpected data is being read. */
+		if (shdr->prefix != 0x80 || sp->dlen > 2048) {
+			bt_dev_err(bdev->hdev, "stp format unexpect (%d, %d)",
+				   shdr->prefix, sp->dlen);
+			mtk_stp_reset(sp);
+		}
+	}
+
+	/* Directly quit when there's no data found for H4 can process. */
+	if (count <= 0)
+		return NULL;
+
+	/* Tranlate to how much the size of data H4 can handle so far. */
+	*sz_h4 = min_t(int, count, sp->dlen);
+	/* Update the remaining size of STP packet. */
+	sp->dlen -= *sz_h4;
+
+	/* Data points to STP payload which can be handled by H4. */
+	return data;
+}
+
+static int mtk_stp_send(struct btuart_dev *bdev, struct sk_buff *skb)
+{
+	struct mtk_stp_hdr *shdr;
+	struct sk_buff *new_skb;
+	int dlen;
+
+	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+	dlen = skb->len;
+
+	/* Make sure of STP header at least has 4-bytes free space to fill. */
+	if (unlikely(skb_headroom(skb) < MTK_STP_HDR_SIZE)) {
+		new_skb = skb_realloc_headroom(skb, MTK_STP_HDR_SIZE);
+		kfree_skb(skb);
+		skb = new_skb;
+	}
+
+	/* Build for STP packet format. */
+	shdr = skb_push(skb, MTK_STP_HDR_SIZE);
+	mtk_make_stp_hdr(shdr, 0, dlen);
+	skb_put_zero(skb, MTK_STP_TLR_SIZE);
+
+	skb_queue_tail(&bdev->txq, skb);
+
+	return 0;
+}
+
+static int mtk_hci_wmt_sync(struct btuart_dev *bdev, u8 opcode, u8 flag,
+			    u16 plen, const void *param)
+{
+	struct mtk_hci_wmt_cmd wc;
+	struct mtk_wmt_hdr *hdr;
+	struct sk_buff *skb;
+
+	hdr = (struct mtk_wmt_hdr *)&wc;
+	mtk_make_wmt_hdr(hdr, opcode, plen, flag);
+	memcpy(wc.data, param, plen);
+
+	skb =  __hci_cmd_sync_ev(bdev->hdev, 0xfc6f, sizeof(*hdr) + plen, &wc,
+				 0xe4, HCI_INIT_TIMEOUT);
+
+	if (IS_ERR(skb)) {
+		int err = PTR_ERR(skb);
+
+		bt_dev_err(bdev->hdev, "Failed to send wmt cmd (%d)\n", err);
+		return err;
+	}
+
+	kfree_skb(skb);
+
+	return 0;
+}
+
+static int mtk_acl_wmt_sync(struct btuart_dev *bdev, u8 opcode, u8 flag,
+			    u16 plen, const void *param)
+{
+	struct mtk_bt_dev *soc = bdev->data;
+	struct hci_acl_hdr *ahdr;
+	struct mtk_wmt_hdr *whdr;
+	struct sk_buff *skb;
+	int ret = 0;
+
+	init_completion(&soc->wmt_cmd);
+
+	skb = bt_skb_alloc(plen + MTK_WMT_CMD_SIZE, GFP_KERNEL);
+	if (!skb)
+		return -ENOMEM;
+
+	/* The SoC-specific ACL data is going with an opcode 0xfc6f. */
+	ahdr = skb_put(skb, HCI_ACL_HDR_SIZE);
+	ahdr->handle = cpu_to_le16(0xfc6f);
+	ahdr->dlen = cpu_to_le16(plen + MTK_WMT_HDR_SIZE);
+	hci_skb_pkt_type(skb) = HCI_ACLDATA_PKT;
+
+	/* Then add a WMT header and its actual payload. */
+	whdr = skb_put(skb, MTK_WMT_HDR_SIZE);
+	mtk_make_wmt_hdr(whdr, opcode, plen, flag);
+	skb_put_data(skb, param, plen);
+
+	mtk_stp_send(bdev, skb);
+
+	if (test_and_set_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state))
+		set_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+	else
+		schedule_work(&bdev->tx_work);
+
+	/* Wait for its event back. */
+	ret = wait_for_completion_interruptible_timeout(&soc->wmt_cmd,
+							HZ);
+	return ret > 0 ? 0 : ret < 0 ? ret : -ETIMEDOUT;
+}
+
+static int mtk_setup_fw(struct btuart_dev *bdev)
+{
+	const struct firmware *fw;
+	struct device *dev;
+	const char *fwname;
+	const u8 *fw_ptr;
+	size_t fw_size;
+	int err, dlen;
+	u8 flag;
+
+	dev = &bdev->serdev->dev;
+	fwname = FIRMWARE_MT7622;
+
+	err = request_firmware(&fw, fwname, dev);
+	if (err < 0) {
+		bt_dev_err(bdev->hdev, "Failed to load firmware file (%d)",
+			   err);
+		return err;
+	}
+
+	fw_ptr = fw->data;
+	fw_size = fw->size;
+
+	/* The size of a patch header at least has 30 bytes. */
+	if (fw_size < 30)
+		return -EINVAL;
+
+	while (fw_size > 0) {
+		dlen = min_t(int, 1000, fw_size);
+
+		/* Tell deivice the position in sequence. */
+		flag = (fw_size - dlen <= 0) ? 3 :
+		       (fw_size < fw->size) ? 2 : 1;
+
+		err = mtk_acl_wmt_sync(bdev, MTK_WMT_PATCH_DWNLD, flag, dlen,
+				       fw_ptr);
+		if (err < 0)
+			break;
+
+		fw_size -= dlen;
+		fw_ptr += dlen;
+	}
+
+	release_firmware(fw);
+
+	return err;
+}
+
+void *mtk_btuart_init(struct device *dev)
+{
+	struct mtk_bt_dev *soc;
+
+	soc = devm_kzalloc(dev, sizeof(*soc), GFP_KERNEL);
+	if (!soc)
+		return ERR_PTR(-ENOMEM);
+
+	soc->sp = devm_kzalloc(dev, sizeof(*soc->sp), GFP_KERNEL);
+	if (!soc->sp)
+		return ERR_PTR(-ENOMEM);
+
+	soc->clk = devm_clk_get(dev, "ref");
+	if (IS_ERR(soc->clk))
+		return ERR_CAST(soc->clk);
+
+	return soc;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_init);
+
+int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	return mtk_stp_send(bdev, skb);
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_send);
+
+int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct hci_event_hdr *hdr = (void *)skb->data;
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct mtk_bt_dev *soc = bdev->data;
+
+	/* Complete the SoC-specific data being sent. */
+	if (hdr->evt == 0xe4)
+		complete(&soc->wmt_cmd);
+
+	/* Each HCI event would go through the core. */
+	return hci_recv_frame(hdev, skb);
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_hci_frame);
+
+int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data, size_t count)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	const unsigned char *p_left = data, *p_h4;
+	const struct btuart_vnd *vnd = bdev->vnd;
+	struct mtk_bt_dev *soc = bdev->data;
+	int sz_left = count, sz_h4, adv;
+	struct device *dev;
+	int err;
+
+	dev = &bdev->serdev->dev;
+
+	while (sz_left > 0) {
+		/*  The serial data received from MT7622 BT controller is
+		 *  at all time padded around with the STP header and tailer.
+		 *
+		 *  A full STP packet is looking like
+		 *   -----------------------------------
+		 *  | STP header  |  H:4   | STP tailer |
+		 *   -----------------------------------
+		 *  but it don't guarantee to contain a full H:4 packet which
+		 *  means that it's possible for multiple STP packets forms a
+		 *  full H:4 packet and whose length recorded in STP header can
+		 *  shows up the most length the H:4 engine can handle in one
+		 *  time.
+		 */
+
+		p_h4 = mtk_stp_split(bdev, soc->sp, p_left, sz_left, &sz_h4);
+		if (!p_h4)
+			break;
+
+		adv = p_h4 - p_left;
+		sz_left -= adv;
+		p_left += adv;
+
+		bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, p_h4,
+					   sz_h4, vnd->recv_pkts,
+					   vnd->recv_pkts_cnt);
+		if (IS_ERR(bdev->rx_skb)) {
+			err = PTR_ERR(bdev->rx_skb);
+			bt_dev_err(bdev->hdev,
+				   "Frame reassembly failed (%d)", err);
+			bdev->rx_skb = NULL;
+			return err;
+		}
+
+		sz_left -= sz_h4;
+		p_left += sz_h4;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_recv);
+
+int mtk_btuart_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct mtk_bt_dev *soc = bdev->data;
+	struct device *dev;
+	u8 param = 0x1;
+	int err = 0;
+
+	dev = &bdev->serdev->dev;
+
+	mtk_stp_reset(soc->sp);
+
+	/* Enable the power domain and clock the device requires. */
+	pm_runtime_enable(dev);
+	err = pm_runtime_get_sync(dev);
+	if (err < 0)
+		goto err_pm2;
+
+	err = clk_prepare_enable(soc->clk);
+	if (err < 0)
+		goto err_pm1;
+
+	/* Setup a firmware which the device definitely requires. */
+	err = mtk_setup_fw(bdev);
+	if (err < 0)
+		goto err_clk;
+
+	/* Activate funciton the firmware providing to. */
+	err = mtk_hci_wmt_sync(bdev, MTK_WMT_RST, 0x4, 0, 0);
+	if (err < 0)
+		goto err_clk;
+
+	/* Enable Bluetooth protocol. */
+	err = mtk_hci_wmt_sync(bdev, MTK_WMT_FUNC_CTRL, 0x0, sizeof(param),
+			       &param);
+	if (err < 0)
+		goto err_clk;
+
+	set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks);
+
+	return 0;
+err_clk:
+	clk_disable_unprepare(soc->clk);
+err_pm1:
+	pm_runtime_put_sync(dev);
+err_pm2:
+	pm_runtime_disable(dev);
+
+	return err;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_setup);
+
+int mtk_btuart_shutdown(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct device *dev = &bdev->serdev->dev;
+	struct mtk_bt_dev *soc = bdev->data;
+	u8 param = 0x0;
+
+	/* Disable the device. */
+	mtk_hci_wmt_sync(bdev, MTK_WMT_FUNC_CTRL, 0x0, sizeof(param), &param);
+
+	/* Shutdown the clock and power domain the device requires. */
+	clk_disable_unprepare(soc->clk);
+	pm_runtime_put_sync(dev);
+	pm_runtime_disable(dev);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_shutdown);
+
+MODULE_AUTHOR("Sean Wang <sean.wang@mediatek.com>");
+MODULE_DESCRIPTION("Bluetooth Support for MediaTek Serial Devices");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/bluetooth/btmtkuart.h b/drivers/bluetooth/btmtkuart.h
new file mode 100644
index 0000000..ea6fc36
--- /dev/null
+++ b/drivers/bluetooth/btmtkuart.h
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018 MediaTek Inc.
+
+/*
+ * Bluetooth support for MediaTek serial devices
+ *
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+#define FIRMWARE_MT7622		"mediatek/mt7622_patch_firmware.bin"
+
+#define MTK_STP_HDR_SIZE	4
+#define MTK_STP_TLR_SIZE	2
+#define MTK_WMT_HDR_SIZE	5
+#define MTK_WMT_CMD_SIZE	(MTK_WMT_HDR_SIZE + MTK_STP_HDR_SIZE + \
+				 MTK_STP_TLR_SIZE + HCI_ACL_HDR_SIZE)
+
+enum {
+	MTK_WMT_PATCH_DWNLD = 0x1,
+	MTK_WMT_FUNC_CTRL = 0x6,
+	MTK_WMT_RST = 0x7
+};
+
+struct mtk_stp_hdr {
+	__u8 prefix;
+	__u8 dlen1:4;
+	__u8 type:4;
+	__u8 dlen2:8;
+	__u8 cs;
+} __packed;
+
+struct mtk_wmt_hdr {
+	__u8	dir;
+	__u8	op;
+	__le16	dlen;
+	__u8	flag;
+} __packed;
+
+struct mtk_hci_wmt_cmd {
+	struct mtk_wmt_hdr hdr;
+	__u8 data[16];
+} __packed;
+
+struct mtk_stp_splitter {
+	u8	pad[6];
+	u8	cursor;
+	u16	dlen;
+};
+
+struct mtk_bt_dev {
+	struct clk *clk;
+	struct completion wmt_cmd;
+	struct mtk_stp_splitter *sp;
+};
+
+static inline void mtk_make_stp_hdr(struct mtk_stp_hdr *hdr, u8 type, u32 dlen)
+{
+	__u8 *p = (__u8 *)hdr;
+
+	hdr->prefix = 0x80;
+	hdr->dlen1 = (dlen & 0xf00) >> 8;
+	hdr->type = type;
+	hdr->dlen2 = dlen & 0xff;
+	hdr->cs = p[0] + p[1] + p[2];
+}
+
+static inline void mtk_make_wmt_hdr(struct mtk_wmt_hdr *hdr, u8 op, u16 plen,
+				    u8 flag)
+{
+	hdr->dir = 1;
+	hdr->op = op;
+	hdr->dlen = cpu_to_le16(plen + 1);
+	hdr->flag = flag;
+}
+
+#if IS_ENABLED(CONFIG_BT_HCIBTUART_MTK)
+
+void *mtk_btuart_init(struct device *dev);
+int mtk_btuart_setup(struct hci_dev *hdev);
+int mtk_btuart_shutdown(struct hci_dev *hdev);
+int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb);
+int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb);
+int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data, size_t count);
+
+#else
+
+static void *mtk_btuart_init(struct device *dev)
+{
+	return 0;
+}
+
+static inline int mtk_btuart_setup(struct hci_dev *hdev)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_shutdown(struct hci_dev *hdev)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	return -EOPNOTSUPP;
+}
+
+static int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data,
+				  size_t count)
+{
+	return -EOPNOTSUPP;
+}
+
+#endif
diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
index ab7f836..169bf1a 100644
--- a/drivers/bluetooth/btuart.c
+++ b/drivers/bluetooth/btuart.c
@@ -35,6 +35,7 @@
 #include "h4_recv.h"
 #include "btuart.h"
 #include "btbcm.h"
+#include "btmtkuart.h"
 
 #define VERSION "1.0"
 
@@ -396,6 +397,12 @@ static const struct h4_recv_pkt bcm_recv_pkts[] = {
 	{ BCM_RECV_NULL,    .recv = hci_recv_diag  },
 };
 
+static const struct h4_recv_pkt mtk_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = mtk_btuart_hci_frame },
+};
+
 static const struct btuart_vnd bcm_vnd = {
 	.recv_pkts	= bcm_recv_pkts,
 	.recv_pkts_cnt	= ARRAY_SIZE(bcm_recv_pkts),
@@ -403,6 +410,16 @@ static const struct btuart_vnd bcm_vnd = {
 	.setup		= bcm_setup,
 };
 
+static const struct btuart_vnd mtk_vnd = {
+	.recv_pkts	= mtk_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(mtk_recv_pkts),
+	.init		= mtk_btuart_init,
+	.setup		= mtk_btuart_setup,
+	.shutdown	= mtk_btuart_shutdown,
+	.send		= mtk_btuart_send,
+	.recv		= mtk_btuart_recv,
+};
+
 static const struct h4_recv_pkt default_recv_pkts[] = {
 	{ H4_RECV_ACL,      .recv = hci_recv_frame },
 	{ H4_RECV_SCO,      .recv = hci_recv_frame },
@@ -487,6 +504,7 @@ static void btuart_remove(struct serdev_device *serdev)
 #ifdef CONFIG_OF
 static const struct of_device_id btuart_of_match_table[] = {
 	{ .compatible = "brcm,bcm43438-bt", .data = &bcm_vnd },
+	{ .compatible = "mediatek,mt7622-bluetooth", .data = &mtk_vnd },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, btuart_of_match_table);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 6/7] Bluetooth: mediatek: Add protocol support for MediaTek serial devices
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

This adds a driver to run on the top of btuart driver for the MediaTek
serial protocol based on running H:4, which can enable the built-in
Bluetooth device inside MT7622 SoC.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/bluetooth/Kconfig     |  12 ++
 drivers/bluetooth/Makefile    |   2 +
 drivers/bluetooth/btmtkuart.c | 383 ++++++++++++++++++++++++++++++++++++++++++
 drivers/bluetooth/btmtkuart.h | 119 +++++++++++++
 drivers/bluetooth/btuart.c    |  18 ++
 5 files changed, 534 insertions(+)
 create mode 100644 drivers/bluetooth/btmtkuart.c
 create mode 100644 drivers/bluetooth/btmtkuart.h

diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
index 6d69ac2..13aff1ed 100644
--- a/drivers/bluetooth/Kconfig
+++ b/drivers/bluetooth/Kconfig
@@ -85,6 +85,18 @@ config BT_HCIBTUART
 	  Say Y here to compile support for Bluetooth UART devices into the
 	  kernel or say M to compile it as module (btuart).
 
+config BT_HCIBTUART_MTK
+	tristate "MediaTek HCI UART driver"
+	depends on BT_HCIBTUART
+	default y
+	help
+	  MediaTek Bluetooth HCI UART driver.
+	  This driver is required if you want to use MediaTek Bluetooth
+	  with serial interface.
+
+	  Say Y here to compile support for MediaTek Bluetooth UART devices
+	  into the kernel or say M to compile it as module (btmtkuart).
+
 config BT_HCIUART
 	tristate "HCI UART driver"
 	depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
index 60a19cb..c9a8926 100644
--- a/drivers/bluetooth/Makefile
+++ b/drivers/bluetooth/Makefile
@@ -26,6 +26,8 @@ obj-$(CONFIG_BT_BCM)		+= btbcm.o
 obj-$(CONFIG_BT_RTL)		+= btrtl.o
 obj-$(CONFIG_BT_QCA)		+= btqca.o
 
+obj-$(CONFIG_BT_HCIBTUART_MTK)	+= btmtkuart.o
+
 obj-$(CONFIG_BT_HCIUART_NOKIA)	+= hci_nokia.o
 
 obj-$(CONFIG_BT_HCIRSI)		+= btrsi.o
diff --git a/drivers/bluetooth/btmtkuart.c b/drivers/bluetooth/btmtkuart.c
new file mode 100644
index 0000000..0e43a4ae
--- /dev/null
+++ b/drivers/bluetooth/btmtkuart.c
@@ -0,0 +1,383 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018 MediaTek Inc.
+
+/*
+ * Bluetooth support for MediaTek serial devices
+ *
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+#include <asm/unaligned.h>
+#include <linux/clk.h>
+#include <linux/firmware.h>
+#include <linux/module.h>
+#include <linux/pm_runtime.h>
+#include <linux/serdev.h>
+#include <net/bluetooth/bluetooth.h>
+#include <net/bluetooth/hci_core.h>
+
+#include "h4_recv.h"
+#include "btuart.h"
+#include "btmtkuart.h"
+
+static void mtk_stp_reset(struct mtk_stp_splitter *sp)
+{
+	sp->cursor = 2;
+	sp->dlen = 0;
+}
+
+static const unsigned char *
+mtk_stp_split(struct btuart_dev *bdev, struct mtk_stp_splitter *sp,
+	      const unsigned char *data, int count, int *sz_h4)
+{
+	struct mtk_stp_hdr *shdr;
+
+	/* The cursor is reset when all the data of STP is consumed out. */
+	if (!sp->dlen && sp->cursor >= 6)
+		sp->cursor = 0;
+
+	/* Filling pad until all STP info is obtained. */
+	while (sp->cursor < 6 && count > 0) {
+		sp->pad[sp->cursor] = *data;
+		sp->cursor++;
+		data++;
+		count--;
+	}
+
+	/* Retrieve STP info and have a sanity check. */
+	if (!sp->dlen && sp->cursor >= 6) {
+		shdr = (struct mtk_stp_hdr *)&sp->pad[2];
+		sp->dlen = shdr->dlen1 << 8 | shdr->dlen2;
+
+		/* Resync STP when unexpected data is being read. */
+		if (shdr->prefix != 0x80 || sp->dlen > 2048) {
+			bt_dev_err(bdev->hdev, "stp format unexpect (%d, %d)",
+				   shdr->prefix, sp->dlen);
+			mtk_stp_reset(sp);
+		}
+	}
+
+	/* Directly quit when there's no data found for H4 can process. */
+	if (count <= 0)
+		return NULL;
+
+	/* Tranlate to how much the size of data H4 can handle so far. */
+	*sz_h4 = min_t(int, count, sp->dlen);
+	/* Update the remaining size of STP packet. */
+	sp->dlen -= *sz_h4;
+
+	/* Data points to STP payload which can be handled by H4. */
+	return data;
+}
+
+static int mtk_stp_send(struct btuart_dev *bdev, struct sk_buff *skb)
+{
+	struct mtk_stp_hdr *shdr;
+	struct sk_buff *new_skb;
+	int dlen;
+
+	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+	dlen = skb->len;
+
+	/* Make sure of STP header at least has 4-bytes free space to fill. */
+	if (unlikely(skb_headroom(skb) < MTK_STP_HDR_SIZE)) {
+		new_skb = skb_realloc_headroom(skb, MTK_STP_HDR_SIZE);
+		kfree_skb(skb);
+		skb = new_skb;
+	}
+
+	/* Build for STP packet format. */
+	shdr = skb_push(skb, MTK_STP_HDR_SIZE);
+	mtk_make_stp_hdr(shdr, 0, dlen);
+	skb_put_zero(skb, MTK_STP_TLR_SIZE);
+
+	skb_queue_tail(&bdev->txq, skb);
+
+	return 0;
+}
+
+static int mtk_hci_wmt_sync(struct btuart_dev *bdev, u8 opcode, u8 flag,
+			    u16 plen, const void *param)
+{
+	struct mtk_hci_wmt_cmd wc;
+	struct mtk_wmt_hdr *hdr;
+	struct sk_buff *skb;
+
+	hdr = (struct mtk_wmt_hdr *)&wc;
+	mtk_make_wmt_hdr(hdr, opcode, plen, flag);
+	memcpy(wc.data, param, plen);
+
+	skb =  __hci_cmd_sync_ev(bdev->hdev, 0xfc6f, sizeof(*hdr) + plen, &wc,
+				 0xe4, HCI_INIT_TIMEOUT);
+
+	if (IS_ERR(skb)) {
+		int err = PTR_ERR(skb);
+
+		bt_dev_err(bdev->hdev, "Failed to send wmt cmd (%d)\n", err);
+		return err;
+	}
+
+	kfree_skb(skb);
+
+	return 0;
+}
+
+static int mtk_acl_wmt_sync(struct btuart_dev *bdev, u8 opcode, u8 flag,
+			    u16 plen, const void *param)
+{
+	struct mtk_bt_dev *soc = bdev->data;
+	struct hci_acl_hdr *ahdr;
+	struct mtk_wmt_hdr *whdr;
+	struct sk_buff *skb;
+	int ret = 0;
+
+	init_completion(&soc->wmt_cmd);
+
+	skb = bt_skb_alloc(plen + MTK_WMT_CMD_SIZE, GFP_KERNEL);
+	if (!skb)
+		return -ENOMEM;
+
+	/* The SoC-specific ACL data is going with an opcode 0xfc6f. */
+	ahdr = skb_put(skb, HCI_ACL_HDR_SIZE);
+	ahdr->handle = cpu_to_le16(0xfc6f);
+	ahdr->dlen = cpu_to_le16(plen + MTK_WMT_HDR_SIZE);
+	hci_skb_pkt_type(skb) = HCI_ACLDATA_PKT;
+
+	/* Then add a WMT header and its actual payload. */
+	whdr = skb_put(skb, MTK_WMT_HDR_SIZE);
+	mtk_make_wmt_hdr(whdr, opcode, plen, flag);
+	skb_put_data(skb, param, plen);
+
+	mtk_stp_send(bdev, skb);
+
+	if (test_and_set_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state))
+		set_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+	else
+		schedule_work(&bdev->tx_work);
+
+	/* Wait for its event back. */
+	ret = wait_for_completion_interruptible_timeout(&soc->wmt_cmd,
+							HZ);
+	return ret > 0 ? 0 : ret < 0 ? ret : -ETIMEDOUT;
+}
+
+static int mtk_setup_fw(struct btuart_dev *bdev)
+{
+	const struct firmware *fw;
+	struct device *dev;
+	const char *fwname;
+	const u8 *fw_ptr;
+	size_t fw_size;
+	int err, dlen;
+	u8 flag;
+
+	dev = &bdev->serdev->dev;
+	fwname = FIRMWARE_MT7622;
+
+	err = request_firmware(&fw, fwname, dev);
+	if (err < 0) {
+		bt_dev_err(bdev->hdev, "Failed to load firmware file (%d)",
+			   err);
+		return err;
+	}
+
+	fw_ptr = fw->data;
+	fw_size = fw->size;
+
+	/* The size of a patch header at least has 30 bytes. */
+	if (fw_size < 30)
+		return -EINVAL;
+
+	while (fw_size > 0) {
+		dlen = min_t(int, 1000, fw_size);
+
+		/* Tell deivice the position in sequence. */
+		flag = (fw_size - dlen <= 0) ? 3 :
+		       (fw_size < fw->size) ? 2 : 1;
+
+		err = mtk_acl_wmt_sync(bdev, MTK_WMT_PATCH_DWNLD, flag, dlen,
+				       fw_ptr);
+		if (err < 0)
+			break;
+
+		fw_size -= dlen;
+		fw_ptr += dlen;
+	}
+
+	release_firmware(fw);
+
+	return err;
+}
+
+void *mtk_btuart_init(struct device *dev)
+{
+	struct mtk_bt_dev *soc;
+
+	soc = devm_kzalloc(dev, sizeof(*soc), GFP_KERNEL);
+	if (!soc)
+		return ERR_PTR(-ENOMEM);
+
+	soc->sp = devm_kzalloc(dev, sizeof(*soc->sp), GFP_KERNEL);
+	if (!soc->sp)
+		return ERR_PTR(-ENOMEM);
+
+	soc->clk = devm_clk_get(dev, "ref");
+	if (IS_ERR(soc->clk))
+		return ERR_CAST(soc->clk);
+
+	return soc;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_init);
+
+int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	return mtk_stp_send(bdev, skb);
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_send);
+
+int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct hci_event_hdr *hdr = (void *)skb->data;
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct mtk_bt_dev *soc = bdev->data;
+
+	/* Complete the SoC-specific data being sent. */
+	if (hdr->evt == 0xe4)
+		complete(&soc->wmt_cmd);
+
+	/* Each HCI event would go through the core. */
+	return hci_recv_frame(hdev, skb);
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_hci_frame);
+
+int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data, size_t count)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	const unsigned char *p_left = data, *p_h4;
+	const struct btuart_vnd *vnd = bdev->vnd;
+	struct mtk_bt_dev *soc = bdev->data;
+	int sz_left = count, sz_h4, adv;
+	struct device *dev;
+	int err;
+
+	dev = &bdev->serdev->dev;
+
+	while (sz_left > 0) {
+		/*  The serial data received from MT7622 BT controller is
+		 *  at all time padded around with the STP header and tailer.
+		 *
+		 *  A full STP packet is looking like
+		 *   -----------------------------------
+		 *  | STP header  |  H:4   | STP tailer |
+		 *   -----------------------------------
+		 *  but it don't guarantee to contain a full H:4 packet which
+		 *  means that it's possible for multiple STP packets forms a
+		 *  full H:4 packet and whose length recorded in STP header can
+		 *  shows up the most length the H:4 engine can handle in one
+		 *  time.
+		 */
+
+		p_h4 = mtk_stp_split(bdev, soc->sp, p_left, sz_left, &sz_h4);
+		if (!p_h4)
+			break;
+
+		adv = p_h4 - p_left;
+		sz_left -= adv;
+		p_left += adv;
+
+		bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, p_h4,
+					   sz_h4, vnd->recv_pkts,
+					   vnd->recv_pkts_cnt);
+		if (IS_ERR(bdev->rx_skb)) {
+			err = PTR_ERR(bdev->rx_skb);
+			bt_dev_err(bdev->hdev,
+				   "Frame reassembly failed (%d)", err);
+			bdev->rx_skb = NULL;
+			return err;
+		}
+
+		sz_left -= sz_h4;
+		p_left += sz_h4;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_recv);
+
+int mtk_btuart_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct mtk_bt_dev *soc = bdev->data;
+	struct device *dev;
+	u8 param = 0x1;
+	int err = 0;
+
+	dev = &bdev->serdev->dev;
+
+	mtk_stp_reset(soc->sp);
+
+	/* Enable the power domain and clock the device requires. */
+	pm_runtime_enable(dev);
+	err = pm_runtime_get_sync(dev);
+	if (err < 0)
+		goto err_pm2;
+
+	err = clk_prepare_enable(soc->clk);
+	if (err < 0)
+		goto err_pm1;
+
+	/* Setup a firmware which the device definitely requires. */
+	err = mtk_setup_fw(bdev);
+	if (err < 0)
+		goto err_clk;
+
+	/* Activate funciton the firmware providing to. */
+	err = mtk_hci_wmt_sync(bdev, MTK_WMT_RST, 0x4, 0, 0);
+	if (err < 0)
+		goto err_clk;
+
+	/* Enable Bluetooth protocol. */
+	err = mtk_hci_wmt_sync(bdev, MTK_WMT_FUNC_CTRL, 0x0, sizeof(param),
+			       &param);
+	if (err < 0)
+		goto err_clk;
+
+	set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks);
+
+	return 0;
+err_clk:
+	clk_disable_unprepare(soc->clk);
+err_pm1:
+	pm_runtime_put_sync(dev);
+err_pm2:
+	pm_runtime_disable(dev);
+
+	return err;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_setup);
+
+int mtk_btuart_shutdown(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct device *dev = &bdev->serdev->dev;
+	struct mtk_bt_dev *soc = bdev->data;
+	u8 param = 0x0;
+
+	/* Disable the device. */
+	mtk_hci_wmt_sync(bdev, MTK_WMT_FUNC_CTRL, 0x0, sizeof(param), &param);
+
+	/* Shutdown the clock and power domain the device requires. */
+	clk_disable_unprepare(soc->clk);
+	pm_runtime_put_sync(dev);
+	pm_runtime_disable(dev);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_shutdown);
+
+MODULE_AUTHOR("Sean Wang <sean.wang@mediatek.com>");
+MODULE_DESCRIPTION("Bluetooth Support for MediaTek Serial Devices");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/bluetooth/btmtkuart.h b/drivers/bluetooth/btmtkuart.h
new file mode 100644
index 0000000..ea6fc36
--- /dev/null
+++ b/drivers/bluetooth/btmtkuart.h
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018 MediaTek Inc.
+
+/*
+ * Bluetooth support for MediaTek serial devices
+ *
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+#define FIRMWARE_MT7622		"mediatek/mt7622_patch_firmware.bin"
+
+#define MTK_STP_HDR_SIZE	4
+#define MTK_STP_TLR_SIZE	2
+#define MTK_WMT_HDR_SIZE	5
+#define MTK_WMT_CMD_SIZE	(MTK_WMT_HDR_SIZE + MTK_STP_HDR_SIZE + \
+				 MTK_STP_TLR_SIZE + HCI_ACL_HDR_SIZE)
+
+enum {
+	MTK_WMT_PATCH_DWNLD = 0x1,
+	MTK_WMT_FUNC_CTRL = 0x6,
+	MTK_WMT_RST = 0x7
+};
+
+struct mtk_stp_hdr {
+	__u8 prefix;
+	__u8 dlen1:4;
+	__u8 type:4;
+	__u8 dlen2:8;
+	__u8 cs;
+} __packed;
+
+struct mtk_wmt_hdr {
+	__u8	dir;
+	__u8	op;
+	__le16	dlen;
+	__u8	flag;
+} __packed;
+
+struct mtk_hci_wmt_cmd {
+	struct mtk_wmt_hdr hdr;
+	__u8 data[16];
+} __packed;
+
+struct mtk_stp_splitter {
+	u8	pad[6];
+	u8	cursor;
+	u16	dlen;
+};
+
+struct mtk_bt_dev {
+	struct clk *clk;
+	struct completion wmt_cmd;
+	struct mtk_stp_splitter *sp;
+};
+
+static inline void mtk_make_stp_hdr(struct mtk_stp_hdr *hdr, u8 type, u32 dlen)
+{
+	__u8 *p = (__u8 *)hdr;
+
+	hdr->prefix = 0x80;
+	hdr->dlen1 = (dlen & 0xf00) >> 8;
+	hdr->type = type;
+	hdr->dlen2 = dlen & 0xff;
+	hdr->cs = p[0] + p[1] + p[2];
+}
+
+static inline void mtk_make_wmt_hdr(struct mtk_wmt_hdr *hdr, u8 op, u16 plen,
+				    u8 flag)
+{
+	hdr->dir = 1;
+	hdr->op = op;
+	hdr->dlen = cpu_to_le16(plen + 1);
+	hdr->flag = flag;
+}
+
+#if IS_ENABLED(CONFIG_BT_HCIBTUART_MTK)
+
+void *mtk_btuart_init(struct device *dev);
+int mtk_btuart_setup(struct hci_dev *hdev);
+int mtk_btuart_shutdown(struct hci_dev *hdev);
+int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb);
+int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb);
+int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data, size_t count);
+
+#else
+
+static void *mtk_btuart_init(struct device *dev)
+{
+	return 0;
+}
+
+static inline int mtk_btuart_setup(struct hci_dev *hdev)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_shutdown(struct hci_dev *hdev)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	return -EOPNOTSUPP;
+}
+
+static int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data,
+				  size_t count)
+{
+	return -EOPNOTSUPP;
+}
+
+#endif
diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
index ab7f836..169bf1a 100644
--- a/drivers/bluetooth/btuart.c
+++ b/drivers/bluetooth/btuart.c
@@ -35,6 +35,7 @@
 #include "h4_recv.h"
 #include "btuart.h"
 #include "btbcm.h"
+#include "btmtkuart.h"
 
 #define VERSION "1.0"
 
@@ -396,6 +397,12 @@ static const struct h4_recv_pkt bcm_recv_pkts[] = {
 	{ BCM_RECV_NULL,    .recv = hci_recv_diag  },
 };
 
+static const struct h4_recv_pkt mtk_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = mtk_btuart_hci_frame },
+};
+
 static const struct btuart_vnd bcm_vnd = {
 	.recv_pkts	= bcm_recv_pkts,
 	.recv_pkts_cnt	= ARRAY_SIZE(bcm_recv_pkts),
@@ -403,6 +410,16 @@ static const struct btuart_vnd bcm_vnd = {
 	.setup		= bcm_setup,
 };
 
+static const struct btuart_vnd mtk_vnd = {
+	.recv_pkts	= mtk_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(mtk_recv_pkts),
+	.init		= mtk_btuart_init,
+	.setup		= mtk_btuart_setup,
+	.shutdown	= mtk_btuart_shutdown,
+	.send		= mtk_btuart_send,
+	.recv		= mtk_btuart_recv,
+};
+
 static const struct h4_recv_pkt default_recv_pkts[] = {
 	{ H4_RECV_ACL,      .recv = hci_recv_frame },
 	{ H4_RECV_SCO,      .recv = hci_recv_frame },
@@ -487,6 +504,7 @@ static void btuart_remove(struct serdev_device *serdev)
 #ifdef CONFIG_OF
 static const struct of_device_id btuart_of_match_table[] = {
 	{ .compatible = "brcm,bcm43438-bt", .data = &bcm_vnd },
+	{ .compatible = "mediatek,mt7622-bluetooth", .data = &mtk_vnd },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, btuart_of_match_table);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 6/7] Bluetooth: mediatek: Add protocol support for MediaTek serial devices
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang at mediatek.com @ 2018-05-15  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sean Wang <sean.wang@mediatek.com>

This adds a driver to run on the top of btuart driver for the MediaTek
serial protocol based on running H:4, which can enable the built-in
Bluetooth device inside MT7622 SoC.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/bluetooth/Kconfig     |  12 ++
 drivers/bluetooth/Makefile    |   2 +
 drivers/bluetooth/btmtkuart.c | 383 ++++++++++++++++++++++++++++++++++++++++++
 drivers/bluetooth/btmtkuart.h | 119 +++++++++++++
 drivers/bluetooth/btuart.c    |  18 ++
 5 files changed, 534 insertions(+)
 create mode 100644 drivers/bluetooth/btmtkuart.c
 create mode 100644 drivers/bluetooth/btmtkuart.h

diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
index 6d69ac2..13aff1ed 100644
--- a/drivers/bluetooth/Kconfig
+++ b/drivers/bluetooth/Kconfig
@@ -85,6 +85,18 @@ config BT_HCIBTUART
 	  Say Y here to compile support for Bluetooth UART devices into the
 	  kernel or say M to compile it as module (btuart).
 
+config BT_HCIBTUART_MTK
+	tristate "MediaTek HCI UART driver"
+	depends on BT_HCIBTUART
+	default y
+	help
+	  MediaTek Bluetooth HCI UART driver.
+	  This driver is required if you want to use MediaTek Bluetooth
+	  with serial interface.
+
+	  Say Y here to compile support for MediaTek Bluetooth UART devices
+	  into the kernel or say M to compile it as module (btmtkuart).
+
 config BT_HCIUART
 	tristate "HCI UART driver"
 	depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
index 60a19cb..c9a8926 100644
--- a/drivers/bluetooth/Makefile
+++ b/drivers/bluetooth/Makefile
@@ -26,6 +26,8 @@ obj-$(CONFIG_BT_BCM)		+= btbcm.o
 obj-$(CONFIG_BT_RTL)		+= btrtl.o
 obj-$(CONFIG_BT_QCA)		+= btqca.o
 
+obj-$(CONFIG_BT_HCIBTUART_MTK)	+= btmtkuart.o
+
 obj-$(CONFIG_BT_HCIUART_NOKIA)	+= hci_nokia.o
 
 obj-$(CONFIG_BT_HCIRSI)		+= btrsi.o
diff --git a/drivers/bluetooth/btmtkuart.c b/drivers/bluetooth/btmtkuart.c
new file mode 100644
index 0000000..0e43a4ae
--- /dev/null
+++ b/drivers/bluetooth/btmtkuart.c
@@ -0,0 +1,383 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018 MediaTek Inc.
+
+/*
+ * Bluetooth support for MediaTek serial devices
+ *
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+#include <asm/unaligned.h>
+#include <linux/clk.h>
+#include <linux/firmware.h>
+#include <linux/module.h>
+#include <linux/pm_runtime.h>
+#include <linux/serdev.h>
+#include <net/bluetooth/bluetooth.h>
+#include <net/bluetooth/hci_core.h>
+
+#include "h4_recv.h"
+#include "btuart.h"
+#include "btmtkuart.h"
+
+static void mtk_stp_reset(struct mtk_stp_splitter *sp)
+{
+	sp->cursor = 2;
+	sp->dlen = 0;
+}
+
+static const unsigned char *
+mtk_stp_split(struct btuart_dev *bdev, struct mtk_stp_splitter *sp,
+	      const unsigned char *data, int count, int *sz_h4)
+{
+	struct mtk_stp_hdr *shdr;
+
+	/* The cursor is reset when all the data of STP is consumed out. */
+	if (!sp->dlen && sp->cursor >= 6)
+		sp->cursor = 0;
+
+	/* Filling pad until all STP info is obtained. */
+	while (sp->cursor < 6 && count > 0) {
+		sp->pad[sp->cursor] = *data;
+		sp->cursor++;
+		data++;
+		count--;
+	}
+
+	/* Retrieve STP info and have a sanity check. */
+	if (!sp->dlen && sp->cursor >= 6) {
+		shdr = (struct mtk_stp_hdr *)&sp->pad[2];
+		sp->dlen = shdr->dlen1 << 8 | shdr->dlen2;
+
+		/* Resync STP when unexpected data is being read. */
+		if (shdr->prefix != 0x80 || sp->dlen > 2048) {
+			bt_dev_err(bdev->hdev, "stp format unexpect (%d, %d)",
+				   shdr->prefix, sp->dlen);
+			mtk_stp_reset(sp);
+		}
+	}
+
+	/* Directly quit when there's no data found for H4 can process. */
+	if (count <= 0)
+		return NULL;
+
+	/* Tranlate to how much the size of data H4 can handle so far. */
+	*sz_h4 = min_t(int, count, sp->dlen);
+	/* Update the remaining size of STP packet. */
+	sp->dlen -= *sz_h4;
+
+	/* Data points to STP payload which can be handled by H4. */
+	return data;
+}
+
+static int mtk_stp_send(struct btuart_dev *bdev, struct sk_buff *skb)
+{
+	struct mtk_stp_hdr *shdr;
+	struct sk_buff *new_skb;
+	int dlen;
+
+	memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
+	dlen = skb->len;
+
+	/* Make sure of STP header at least has 4-bytes free space to fill. */
+	if (unlikely(skb_headroom(skb) < MTK_STP_HDR_SIZE)) {
+		new_skb = skb_realloc_headroom(skb, MTK_STP_HDR_SIZE);
+		kfree_skb(skb);
+		skb = new_skb;
+	}
+
+	/* Build for STP packet format. */
+	shdr = skb_push(skb, MTK_STP_HDR_SIZE);
+	mtk_make_stp_hdr(shdr, 0, dlen);
+	skb_put_zero(skb, MTK_STP_TLR_SIZE);
+
+	skb_queue_tail(&bdev->txq, skb);
+
+	return 0;
+}
+
+static int mtk_hci_wmt_sync(struct btuart_dev *bdev, u8 opcode, u8 flag,
+			    u16 plen, const void *param)
+{
+	struct mtk_hci_wmt_cmd wc;
+	struct mtk_wmt_hdr *hdr;
+	struct sk_buff *skb;
+
+	hdr = (struct mtk_wmt_hdr *)&wc;
+	mtk_make_wmt_hdr(hdr, opcode, plen, flag);
+	memcpy(wc.data, param, plen);
+
+	skb =  __hci_cmd_sync_ev(bdev->hdev, 0xfc6f, sizeof(*hdr) + plen, &wc,
+				 0xe4, HCI_INIT_TIMEOUT);
+
+	if (IS_ERR(skb)) {
+		int err = PTR_ERR(skb);
+
+		bt_dev_err(bdev->hdev, "Failed to send wmt cmd (%d)\n", err);
+		return err;
+	}
+
+	kfree_skb(skb);
+
+	return 0;
+}
+
+static int mtk_acl_wmt_sync(struct btuart_dev *bdev, u8 opcode, u8 flag,
+			    u16 plen, const void *param)
+{
+	struct mtk_bt_dev *soc = bdev->data;
+	struct hci_acl_hdr *ahdr;
+	struct mtk_wmt_hdr *whdr;
+	struct sk_buff *skb;
+	int ret = 0;
+
+	init_completion(&soc->wmt_cmd);
+
+	skb = bt_skb_alloc(plen + MTK_WMT_CMD_SIZE, GFP_KERNEL);
+	if (!skb)
+		return -ENOMEM;
+
+	/* The SoC-specific ACL data is going with an opcode 0xfc6f. */
+	ahdr = skb_put(skb, HCI_ACL_HDR_SIZE);
+	ahdr->handle = cpu_to_le16(0xfc6f);
+	ahdr->dlen = cpu_to_le16(plen + MTK_WMT_HDR_SIZE);
+	hci_skb_pkt_type(skb) = HCI_ACLDATA_PKT;
+
+	/* Then add a WMT header and its actual payload. */
+	whdr = skb_put(skb, MTK_WMT_HDR_SIZE);
+	mtk_make_wmt_hdr(whdr, opcode, plen, flag);
+	skb_put_data(skb, param, plen);
+
+	mtk_stp_send(bdev, skb);
+
+	if (test_and_set_bit(BTUART_TX_STATE_ACTIVE, &bdev->tx_state))
+		set_bit(BTUART_TX_STATE_WAKEUP, &bdev->tx_state);
+	else
+		schedule_work(&bdev->tx_work);
+
+	/* Wait for its event back. */
+	ret = wait_for_completion_interruptible_timeout(&soc->wmt_cmd,
+							HZ);
+	return ret > 0 ? 0 : ret < 0 ? ret : -ETIMEDOUT;
+}
+
+static int mtk_setup_fw(struct btuart_dev *bdev)
+{
+	const struct firmware *fw;
+	struct device *dev;
+	const char *fwname;
+	const u8 *fw_ptr;
+	size_t fw_size;
+	int err, dlen;
+	u8 flag;
+
+	dev = &bdev->serdev->dev;
+	fwname = FIRMWARE_MT7622;
+
+	err = request_firmware(&fw, fwname, dev);
+	if (err < 0) {
+		bt_dev_err(bdev->hdev, "Failed to load firmware file (%d)",
+			   err);
+		return err;
+	}
+
+	fw_ptr = fw->data;
+	fw_size = fw->size;
+
+	/* The size of a patch header at least has 30 bytes. */
+	if (fw_size < 30)
+		return -EINVAL;
+
+	while (fw_size > 0) {
+		dlen = min_t(int, 1000, fw_size);
+
+		/* Tell deivice the position in sequence. */
+		flag = (fw_size - dlen <= 0) ? 3 :
+		       (fw_size < fw->size) ? 2 : 1;
+
+		err = mtk_acl_wmt_sync(bdev, MTK_WMT_PATCH_DWNLD, flag, dlen,
+				       fw_ptr);
+		if (err < 0)
+			break;
+
+		fw_size -= dlen;
+		fw_ptr += dlen;
+	}
+
+	release_firmware(fw);
+
+	return err;
+}
+
+void *mtk_btuart_init(struct device *dev)
+{
+	struct mtk_bt_dev *soc;
+
+	soc = devm_kzalloc(dev, sizeof(*soc), GFP_KERNEL);
+	if (!soc)
+		return ERR_PTR(-ENOMEM);
+
+	soc->sp = devm_kzalloc(dev, sizeof(*soc->sp), GFP_KERNEL);
+	if (!soc->sp)
+		return ERR_PTR(-ENOMEM);
+
+	soc->clk = devm_clk_get(dev, "ref");
+	if (IS_ERR(soc->clk))
+		return ERR_CAST(soc->clk);
+
+	return soc;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_init);
+
+int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+
+	return mtk_stp_send(bdev, skb);
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_send);
+
+int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	struct hci_event_hdr *hdr = (void *)skb->data;
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct mtk_bt_dev *soc = bdev->data;
+
+	/* Complete the SoC-specific data being sent. */
+	if (hdr->evt == 0xe4)
+		complete(&soc->wmt_cmd);
+
+	/* Each HCI event would go through the core. */
+	return hci_recv_frame(hdev, skb);
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_hci_frame);
+
+int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data, size_t count)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	const unsigned char *p_left = data, *p_h4;
+	const struct btuart_vnd *vnd = bdev->vnd;
+	struct mtk_bt_dev *soc = bdev->data;
+	int sz_left = count, sz_h4, adv;
+	struct device *dev;
+	int err;
+
+	dev = &bdev->serdev->dev;
+
+	while (sz_left > 0) {
+		/*  The serial data received from MT7622 BT controller is
+		 *  at all time padded around with the STP header and tailer.
+		 *
+		 *  A full STP packet is looking like
+		 *   -----------------------------------
+		 *  | STP header  |  H:4   | STP tailer |
+		 *   -----------------------------------
+		 *  but it don't guarantee to contain a full H:4 packet which
+		 *  means that it's possible for multiple STP packets forms a
+		 *  full H:4 packet and whose length recorded in STP header can
+		 *  shows up the most length the H:4 engine can handle in one
+		 *  time.
+		 */
+
+		p_h4 = mtk_stp_split(bdev, soc->sp, p_left, sz_left, &sz_h4);
+		if (!p_h4)
+			break;
+
+		adv = p_h4 - p_left;
+		sz_left -= adv;
+		p_left += adv;
+
+		bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, p_h4,
+					   sz_h4, vnd->recv_pkts,
+					   vnd->recv_pkts_cnt);
+		if (IS_ERR(bdev->rx_skb)) {
+			err = PTR_ERR(bdev->rx_skb);
+			bt_dev_err(bdev->hdev,
+				   "Frame reassembly failed (%d)", err);
+			bdev->rx_skb = NULL;
+			return err;
+		}
+
+		sz_left -= sz_h4;
+		p_left += sz_h4;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_recv);
+
+int mtk_btuart_setup(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct mtk_bt_dev *soc = bdev->data;
+	struct device *dev;
+	u8 param = 0x1;
+	int err = 0;
+
+	dev = &bdev->serdev->dev;
+
+	mtk_stp_reset(soc->sp);
+
+	/* Enable the power domain and clock the device requires. */
+	pm_runtime_enable(dev);
+	err = pm_runtime_get_sync(dev);
+	if (err < 0)
+		goto err_pm2;
+
+	err = clk_prepare_enable(soc->clk);
+	if (err < 0)
+		goto err_pm1;
+
+	/* Setup a firmware which the device definitely requires. */
+	err = mtk_setup_fw(bdev);
+	if (err < 0)
+		goto err_clk;
+
+	/* Activate funciton the firmware providing to. */
+	err = mtk_hci_wmt_sync(bdev, MTK_WMT_RST, 0x4, 0, 0);
+	if (err < 0)
+		goto err_clk;
+
+	/* Enable Bluetooth protocol. */
+	err = mtk_hci_wmt_sync(bdev, MTK_WMT_FUNC_CTRL, 0x0, sizeof(param),
+			       &param);
+	if (err < 0)
+		goto err_clk;
+
+	set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks);
+
+	return 0;
+err_clk:
+	clk_disable_unprepare(soc->clk);
+err_pm1:
+	pm_runtime_put_sync(dev);
+err_pm2:
+	pm_runtime_disable(dev);
+
+	return err;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_setup);
+
+int mtk_btuart_shutdown(struct hci_dev *hdev)
+{
+	struct btuart_dev *bdev = hci_get_drvdata(hdev);
+	struct device *dev = &bdev->serdev->dev;
+	struct mtk_bt_dev *soc = bdev->data;
+	u8 param = 0x0;
+
+	/* Disable the device. */
+	mtk_hci_wmt_sync(bdev, MTK_WMT_FUNC_CTRL, 0x0, sizeof(param), &param);
+
+	/* Shutdown the clock and power domain the device requires. */
+	clk_disable_unprepare(soc->clk);
+	pm_runtime_put_sync(dev);
+	pm_runtime_disable(dev);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(mtk_btuart_shutdown);
+
+MODULE_AUTHOR("Sean Wang <sean.wang@mediatek.com>");
+MODULE_DESCRIPTION("Bluetooth Support for MediaTek Serial Devices");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/bluetooth/btmtkuart.h b/drivers/bluetooth/btmtkuart.h
new file mode 100644
index 0000000..ea6fc36
--- /dev/null
+++ b/drivers/bluetooth/btmtkuart.h
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018 MediaTek Inc.
+
+/*
+ * Bluetooth support for MediaTek serial devices
+ *
+ * Author: Sean Wang <sean.wang@mediatek.com>
+ *
+ */
+
+#define FIRMWARE_MT7622		"mediatek/mt7622_patch_firmware.bin"
+
+#define MTK_STP_HDR_SIZE	4
+#define MTK_STP_TLR_SIZE	2
+#define MTK_WMT_HDR_SIZE	5
+#define MTK_WMT_CMD_SIZE	(MTK_WMT_HDR_SIZE + MTK_STP_HDR_SIZE + \
+				 MTK_STP_TLR_SIZE + HCI_ACL_HDR_SIZE)
+
+enum {
+	MTK_WMT_PATCH_DWNLD = 0x1,
+	MTK_WMT_FUNC_CTRL = 0x6,
+	MTK_WMT_RST = 0x7
+};
+
+struct mtk_stp_hdr {
+	__u8 prefix;
+	__u8 dlen1:4;
+	__u8 type:4;
+	__u8 dlen2:8;
+	__u8 cs;
+} __packed;
+
+struct mtk_wmt_hdr {
+	__u8	dir;
+	__u8	op;
+	__le16	dlen;
+	__u8	flag;
+} __packed;
+
+struct mtk_hci_wmt_cmd {
+	struct mtk_wmt_hdr hdr;
+	__u8 data[16];
+} __packed;
+
+struct mtk_stp_splitter {
+	u8	pad[6];
+	u8	cursor;
+	u16	dlen;
+};
+
+struct mtk_bt_dev {
+	struct clk *clk;
+	struct completion wmt_cmd;
+	struct mtk_stp_splitter *sp;
+};
+
+static inline void mtk_make_stp_hdr(struct mtk_stp_hdr *hdr, u8 type, u32 dlen)
+{
+	__u8 *p = (__u8 *)hdr;
+
+	hdr->prefix = 0x80;
+	hdr->dlen1 = (dlen & 0xf00) >> 8;
+	hdr->type = type;
+	hdr->dlen2 = dlen & 0xff;
+	hdr->cs = p[0] + p[1] + p[2];
+}
+
+static inline void mtk_make_wmt_hdr(struct mtk_wmt_hdr *hdr, u8 op, u16 plen,
+				    u8 flag)
+{
+	hdr->dir = 1;
+	hdr->op = op;
+	hdr->dlen = cpu_to_le16(plen + 1);
+	hdr->flag = flag;
+}
+
+#if IS_ENABLED(CONFIG_BT_HCIBTUART_MTK)
+
+void *mtk_btuart_init(struct device *dev);
+int mtk_btuart_setup(struct hci_dev *hdev);
+int mtk_btuart_shutdown(struct hci_dev *hdev);
+int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb);
+int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb);
+int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data, size_t count);
+
+#else
+
+static void *mtk_btuart_init(struct device *dev)
+{
+	return 0;
+}
+
+static inline int mtk_btuart_setup(struct hci_dev *hdev)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_shutdown(struct hci_dev *hdev)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_send(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	return -EOPNOTSUPP;
+}
+
+static int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int mtk_btuart_recv(struct hci_dev *hdev, const u8 *data,
+				  size_t count)
+{
+	return -EOPNOTSUPP;
+}
+
+#endif
diff --git a/drivers/bluetooth/btuart.c b/drivers/bluetooth/btuart.c
index ab7f836..169bf1a 100644
--- a/drivers/bluetooth/btuart.c
+++ b/drivers/bluetooth/btuart.c
@@ -35,6 +35,7 @@
 #include "h4_recv.h"
 #include "btuart.h"
 #include "btbcm.h"
+#include "btmtkuart.h"
 
 #define VERSION "1.0"
 
@@ -396,6 +397,12 @@ static const struct h4_recv_pkt bcm_recv_pkts[] = {
 	{ BCM_RECV_NULL,    .recv = hci_recv_diag  },
 };
 
+static const struct h4_recv_pkt mtk_recv_pkts[] = {
+	{ H4_RECV_ACL,      .recv = hci_recv_frame },
+	{ H4_RECV_SCO,      .recv = hci_recv_frame },
+	{ H4_RECV_EVENT,    .recv = mtk_btuart_hci_frame },
+};
+
 static const struct btuart_vnd bcm_vnd = {
 	.recv_pkts	= bcm_recv_pkts,
 	.recv_pkts_cnt	= ARRAY_SIZE(bcm_recv_pkts),
@@ -403,6 +410,16 @@ static const struct btuart_vnd bcm_vnd = {
 	.setup		= bcm_setup,
 };
 
+static const struct btuart_vnd mtk_vnd = {
+	.recv_pkts	= mtk_recv_pkts,
+	.recv_pkts_cnt	= ARRAY_SIZE(mtk_recv_pkts),
+	.init		= mtk_btuart_init,
+	.setup		= mtk_btuart_setup,
+	.shutdown	= mtk_btuart_shutdown,
+	.send		= mtk_btuart_send,
+	.recv		= mtk_btuart_recv,
+};
+
 static const struct h4_recv_pkt default_recv_pkts[] = {
 	{ H4_RECV_ACL,      .recv = hci_recv_frame },
 	{ H4_RECV_SCO,      .recv = hci_recv_frame },
@@ -487,6 +504,7 @@ static void btuart_remove(struct serdev_device *serdev)
 #ifdef CONFIG_OF
 static const struct of_device_id btuart_of_match_table[] = {
 	{ .compatible = "brcm,bcm43438-bt", .data = &bcm_vnd },
+	{ .compatible = "mediatek,mt7622-bluetooth", .data = &mtk_vnd },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, btuart_of_match_table);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 7/7] MAINTAINERS: add an entry for MediaTek Bluetooth driver
  2018-05-15  8:52 ` sean.wang
  (?)
@ 2018-05-15  8:52   ` sean.wang
  -1 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

Add an entry for the MediaTek Bluetooth driver.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 MAINTAINERS | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0a1410d..3e9fa7c2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8874,6 +8874,14 @@ F:	include/uapi/linux/meye.h
 F:	include/uapi/linux/ivtv*
 F:	include/uapi/linux/uvcvideo.h
 
+MEDIATEK BLUETOOTH DRIVER
+M:	Sean Wang <sean.wang@mediatek.com>
+L:	linux-bluetooth@vger.kernel.org
+L:	linux-mediatek@lists.infradead.org (moderated for non-subscribers)
+S:	Maintained
+F:	Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
+F:	drivers/bluetooth/btmtkuart.c
+
 MEDIATEK CIR DRIVER
 M:	Sean Wang <sean.wang@mediatek.com>
 S:	Maintained
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 7/7] MAINTAINERS: add an entry for MediaTek Bluetooth driver
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang @ 2018-05-15  8:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, marcel, johan.hedberg
  Cc: devicetree, linux-bluetooth, linux-arm-kernel, linux-mediatek,
	linux-kernel, Sean Wang

From: Sean Wang <sean.wang@mediatek.com>

Add an entry for the MediaTek Bluetooth driver.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 MAINTAINERS | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0a1410d..3e9fa7c2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8874,6 +8874,14 @@ F:	include/uapi/linux/meye.h
 F:	include/uapi/linux/ivtv*
 F:	include/uapi/linux/uvcvideo.h
 
+MEDIATEK BLUETOOTH DRIVER
+M:	Sean Wang <sean.wang@mediatek.com>
+L:	linux-bluetooth@vger.kernel.org
+L:	linux-mediatek@lists.infradead.org (moderated for non-subscribers)
+S:	Maintained
+F:	Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
+F:	drivers/bluetooth/btmtkuart.c
+
 MEDIATEK CIR DRIVER
 M:	Sean Wang <sean.wang@mediatek.com>
 S:	Maintained
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH v2 7/7] MAINTAINERS: add an entry for MediaTek Bluetooth driver
@ 2018-05-15  8:52   ` sean.wang
  0 siblings, 0 replies; 49+ messages in thread
From: sean.wang at mediatek.com @ 2018-05-15  8:52 UTC (permalink / raw)
  To: linux-arm-kernel

From: Sean Wang <sean.wang@mediatek.com>

Add an entry for the MediaTek Bluetooth driver.

Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 MAINTAINERS | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0a1410d..3e9fa7c2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8874,6 +8874,14 @@ F:	include/uapi/linux/meye.h
 F:	include/uapi/linux/ivtv*
 F:	include/uapi/linux/uvcvideo.h
 
+MEDIATEK BLUETOOTH DRIVER
+M:	Sean Wang <sean.wang@mediatek.com>
+L:	linux-bluetooth at vger.kernel.org
+L:	linux-mediatek at lists.infradead.org (moderated for non-subscribers)
+S:	Maintained
+F:	Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
+F:	drivers/bluetooth/btmtkuart.c
+
 MEDIATEK CIR DRIVER
 M:	Sean Wang <sean.wang@mediatek.com>
 S:	Maintained
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-15  8:52   ` sean.wang
@ 2018-05-22  7:21     ` Marcel Holtmann
  -1 siblings, 0 replies; 49+ messages in thread
From: Marcel Holtmann @ 2018-05-22  7:21 UTC (permalink / raw)
  To: sean.wang
  Cc: Rob Herring, Mark Rutland, Johan Hedberg, devicetree,
	BlueZ development, linux-arm-kernel, linux-mediatek,
	linux-kernel

Hi Sean,

> Add a new quirk HCI_QUIRK_NON_PERSISTENT_SETUP allowing that a quirk that
> runs setup() after every open() and not just after the first open().
> 
> Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> ---
> include/net/bluetooth/hci.h | 9 +++++++++
> net/bluetooth/hci_core.c    | 3 ++-
> 2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
> index 1668211..b37d973 100644
> --- a/include/net/bluetooth/hci.h
> +++ b/include/net/bluetooth/hci.h
> @@ -183,6 +183,15 @@ enum {
> 	 * during the hdev->setup vendor callback.
> 	 */
> 	HCI_QUIRK_NON_PERSISTENT_DIAG,
> +
> +	/* When this quirk is set, setup() would be run after every
> +	 * open() and not just after the first open().
> +	 *
> +	 * This quirk can be set before hci_register_dev is called or
> +	 * during the hdev->setup vendor callback.
> +	 *
> +	 */
> +	HCI_QUIRK_NON_PERSISTENT_SETUP,
> };
> 
> /* HCI device flags */
> diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
> index 40d260f..7de712e2 100644
> --- a/net/bluetooth/hci_core.c
> +++ b/net/bluetooth/hci_core.c
> @@ -1377,7 +1377,8 @@ static int hci_dev_do_open(struct hci_dev *hdev)
> 	atomic_set(&hdev->cmd_cnt, 1);
> 	set_bit(HCI_INIT, &hdev->flags);
> 
> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);

I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.

Regards

Marcel

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-22  7:21     ` Marcel Holtmann
  0 siblings, 0 replies; 49+ messages in thread
From: Marcel Holtmann @ 2018-05-22  7:21 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sean,

> Add a new quirk HCI_QUIRK_NON_PERSISTENT_SETUP allowing that a quirk that
> runs setup() after every open() and not just after the first open().
> 
> Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> ---
> include/net/bluetooth/hci.h | 9 +++++++++
> net/bluetooth/hci_core.c    | 3 ++-
> 2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
> index 1668211..b37d973 100644
> --- a/include/net/bluetooth/hci.h
> +++ b/include/net/bluetooth/hci.h
> @@ -183,6 +183,15 @@ enum {
> 	 * during the hdev->setup vendor callback.
> 	 */
> 	HCI_QUIRK_NON_PERSISTENT_DIAG,
> +
> +	/* When this quirk is set, setup() would be run after every
> +	 * open() and not just after the first open().
> +	 *
> +	 * This quirk can be set before hci_register_dev is called or
> +	 * during the hdev->setup vendor callback.
> +	 *
> +	 */
> +	HCI_QUIRK_NON_PERSISTENT_SETUP,
> };
> 
> /* HCI device flags */
> diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
> index 40d260f..7de712e2 100644
> --- a/net/bluetooth/hci_core.c
> +++ b/net/bluetooth/hci_core.c
> @@ -1377,7 +1377,8 @@ static int hci_dev_do_open(struct hci_dev *hdev)
> 	atomic_set(&hdev->cmd_cnt, 1);
> 	set_bit(HCI_INIT, &hdev->flags);
> 
> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);

I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.

Regards

Marcel

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-22  7:21     ` Marcel Holtmann
  (?)
@ 2018-05-22  8:05       ` Sean Wang
  -1 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-22  8:05 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Rob Herring, Mark Rutland, Johan Hedberg, devicetree,
	BlueZ development, linux-arm-kernel, linux-mediatek,
	linux-kernel

On Tue, 2018-05-22 at 09:21 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 

[ ... ]

> > -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> > +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> > +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> > 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> 
> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> 
> Regards
> 
> Marcel
> 

Sure, I'll send you the trace.log with the change is active.

	Sean

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-22  8:05       ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-22  8:05 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Rob Herring, Mark Rutland, Johan Hedberg, devicetree,
	BlueZ development, linux-arm-kernel, linux-mediatek,
	linux-kernel

On Tue, 2018-05-22 at 09:21 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 

[ ... ]

> > -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> > +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> > +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> > 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> 
> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> 
> Regards
> 
> Marcel
> 

Sure, I'll send you the trace.log with the change is active.

	Sean

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-22  8:05       ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-22  8:05 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, 2018-05-22 at 09:21 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 

[ ... ]

> > -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> > +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> > +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> > 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> 
> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> 
> Regards
> 
> Marcel
> 

Sure, I'll send you the trace.log with the change is active.

	Sean

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [SPAM]Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-22  8:05       ` Sean Wang
  (?)
@ 2018-05-23  6:37         ` Sean Wang
  -1 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-23  6:37 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, BlueZ development,
	Rob Herring, linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 1124 bytes --]

On Tue, 2018-05-22 at 16:05 +0800, Sean Wang wrote:
> On Tue, 2018-05-22 at 09:21 +0200, Marcel Holtmann wrote:
> > Hi Sean,
> > 
> 
> [ ... ]
> 
> > > -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> > > +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> > > +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> > > 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> > 
> > I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> > 
> > Regards
> > 
> > Marcel
> > 
> 
> Sure, I'll send you the trace.log with the change is active.
> 
> 	Sean
> 

Hi, Marcel

Attached trace.log was captured when I inputted commands power on and
then off in bluetoothctl.

	Sean 

> 
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: trace.log --]
[-- Type: text/x-log; name="trace.log"; charset="UTF-8", Size: 6573 bytes --]

btsnoop\0\0\0\0\x01\0\0\aÑ\0\0\0$\0\0\0$ÿÿ\0\f\0\0\0\0\0âJŒ—•|–Linux version 4.16.0-rc1+ (aarch64)\0\0\0\0!\0\0\0!ÿÿ\0\f\0\0\0\0\0âJŒ—•|žBluetooth subsystem version 2.22\0\0\0\0\x10\0\0\0\x10\0\0\0\0\0\0\0\0\0âJŒ—•|¡\0\x03\x01"vF\0\0hci0\0\0\0\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0âJŒ—•|¥\x01\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10bluetoothd\0\0\0\0\0\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0âJŒ—•|ø\x02\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10btmon\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x10\0\0\0\0\0âJŒ—ïq\x03\x01\0\0\0\x05\0\x01\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0âJŒ—ò1^[\0\0\0\b\0\0\0\b\0\0\0
\0\0\0\0\0âJŒ—ò1&\x01"vF\0\0F\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò%ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò“\bä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò–þä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òšéä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òžÕä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò¢¸ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò¦™ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òªzä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò®Vä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò²6ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò¶\x15ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò¹öä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò½Öä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÁ¶ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÅ—ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÉyä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÍUä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÑ6ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÕ\x17ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òØ÷ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÜ×ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òà·ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òä“ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òètä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òìTä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òð5ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òô\x15ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò÷öä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òû×ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÿºä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x03ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\a„ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\vhä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x0fJä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x13,ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x17\x12ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x1aòä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x1eÕä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó"·ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó&ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó*€ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó.bä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó2Dä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó6*ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó:\rä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó=ïä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óAÑä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óE·ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óIšä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óM|ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óQ^ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óUEä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óY)ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó]\vä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó`îä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ódÕä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óh·ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ólšä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óp{ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ótbä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óxFä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó|)ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó€\vä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óƒñä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó‡Óä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó‹µä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó—ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó“}ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó—aä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó›Cä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óŸ%ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó£\rä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó¦ïä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óªÒä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó®´ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó²™ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óµ:ä\x05\x02\x01\x01\0\0\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0âJŒ—óµ]oü\x05\x01\a\x01\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óµØä\x05\x02\a\x01\0\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0âJŒ˜\x12©Ïoü\x06\x01\x06\x02\0\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜\x13Ü\0ä\x05\x02\x06\x01\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1lþ\x03\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1\x7f#\x0e\x04\x01\x03\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1\x7fM\x03\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âJŒ˜1\x7fí\x0e\f\x01\x03\x10\0¿>þÛÿ{‡\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1€\x03\x01\x10\0\0\0\0\v\0\0\0\v\0\0\0\x03\0\0\0\0\0âJŒ˜1\x13ÿ	)\x19	\x17 H\a\x11\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âJŒ˜1„\x0e\f\x01\x01\x10\0\b\a\x11\bF\0\x19	\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1—	\x10\0\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0âJŒ˜1‚+\x0e
\x01	\x10\0\x01"vF\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1‚q\x05\x10\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0âJŒ˜1ƒ\x02\x0e\v\x01\x05\x10\0ý\x03¸\b\0\x01\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1ƒ\x17#\f\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0âJŒ˜1ƒ¨\x0e\a\x01#\f\0\0\x1f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1ƒ»\x14\f\0\0\0\0þ\0\0\0þ\0\0\0\x03\0\0\0\0\0âJŒ˜1„ø\x0eü\x01\x14\f\0MTK MT7622 #1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1…,%\f\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0âJŒ˜1…·\x0e\x06\x01%\f\0`\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1…Ò8\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜1†[\x0e\x05\x018\f\0\x04\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1†ž9\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âJŒ˜1‡Y\x0e\b\x019\f\0\x013‹ž\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1‡r\x05\f\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1ˆ\x01\x0e\x04\x01\x05\f\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âJŒ˜1ˆ\x16\x16\f\x02\0}\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1ˆË\x0e\x04\x01\x16\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1ˆæ\x02 \0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0âJŒ˜1‰h\x0e\a\x01\x02 \0û\0\b\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1‰}\x03 \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âJŒ˜1Š+\x0e\f\x01\x03 \0ý\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1Šf\x1c \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âJŒ˜1Šó\x0e\f\x01\x1c \0ÿÿÿ\x1f\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1‹\a\x02\x10\0\0\0\0F\0\0\0F\0\0\0\x03\0\0\0\0\0âJŒ˜1‹¹\x0eD\x01\x02\x10\0ÿÿÿ\x03ÌÿÿÿÿÿüŸó\x0fèÿ?÷ÿ\x1c\0\x04\0\x01\0\0\0\08àõóÏÿÿ\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1‹ßV\f\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1Œ\x0e\x04\x01V\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1Œ·E\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1;\x0e\x04\x01E\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1TX\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜1ð\x0e\x05\x01X\f\0ÿ\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1Ž\x04\x04\x10\x01\x01\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0âJŒ˜1Ž¡\x0e\x0e\x01\x04\x10\0\x01\x02\x01\0\0\0\0\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âJŒ˜1Ž×\x01\f\bÿÿûÿ\aø¿=\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1a\x0e\x04\x01\x01\f\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0âJŒ˜1{\r\f\a\0\0\0\0\0\0\x01\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âJŒ˜11\x0e\b\x01\r\f\0\x04\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âJŒ˜1D\x0f\b\x02\x05\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1æ\x0e\x04\x01\x0f\b\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1û^[\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âJŒ˜1‘•\x0e\b\x01^[\f\0\0\b\x12\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1‘¨F\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜1’<\x0e\x05\x01F\f\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âJŒ˜1’O\x01 \b€	\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1’÷\x0e\x04\x01\x01 \0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âJŒ˜1“\vm\f\x02\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1“´\x0e\x04\x01m\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1“Ó\x04\x10\x01\x02\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0âJŒ˜1”a\x0e\x0e\x01\x04\x10\0\x02\x02%\v\0\0\0\0\0\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0âJŒ˜1”ˆ\x12\f\a\0\0\0\0\0\0\x01\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0âJŒ˜1•\x18\x0e\x06\x01\x12\f\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âJŒ˜1•+c\f\b\0À°\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1•Î\x0e\x04\x01c\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1•ï\v\x10\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âJŒ˜1–†\x0e\b\x01\v\x10\0\x02\x02\x03\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1–™w\f\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0âJŒ˜1—8\x0e\v\x01w\f\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1—Kz\f\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1—â\x0e\x04\x01z\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0âJŒ˜1˜\x1c1 \x03\x03\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1˜Â\x0e\x04\x011 \0\0\0\0\b\0\0\0\b\0\0\0
\0\0\0\0\0âJŒ˜1˜é\x01"vF\0\0F\0\0\0\0#\0\0\0#\0\0\0\x02\0\0\0\0\0âJŒ˜1™/	  
		builder\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1™Þ\x0e\x04\x01	 \0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1™ó\x1a\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1š³\x0e\x04\x01\x1a\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0âJŒ˜1šÉ$\f\x03\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1›Œ\x0e\x04\x01$\f\0\0\0\0	\0\0\0	\0\0\0\x11\0\0\0\0\0âJŒ˜1›­\x02\0\0\0\a\0\0\0\0\0\0\0	\0\0\0	\0\0\0\x11\0\0\0\0\0âJŒ˜1›­\x01\0\0\0\a\0\0\0\0\0\0\0û\0\0\0û\0\0\0\x02\0\0\0\0\0âJŒ˜1›È\x13\føbuilder\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1&\x0e\x04\x01\x13\f\0\0\0\0ô\0\0\0ô\0\0\0\x02\0\0\0\0\0âJŒ˜1>R\fñ\0\b	builder\x02
ÿ	\x10\x02\0k\x1dF\x02+\x05	\x03\0\x18\x01\x18\x0e\x11\f\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1žÁ\x0e\x04\x01R\f\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0âJŒ˜1žï\x01\0\0\0\x01\0\x05\0\0Ñ
\0\0\0\0\0
\0\0\0
\0\0\0\x11\0\0\0\0\0âJŒ˜1žù\x02\0\0\0\x06\0Ñ
\0\0\0\0\0\a\0\0\0\a\0\0\0\x10\0\0\0\0\0âJŒ˜›]c\x01\0\0\0\x05\0\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜›]\x1a\f\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜›^‰\x0e\x04\x01\x1a\f\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0âJŒ˜›^ºoü\x06\x01\x06\x02\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜›`\x1cä\x05\x02\x06\x01\0\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0âJŒ˜›{<\x01\0\0\0\x01\0\x05\0\0Ð
\0\0\0\0\0
\0\0\0
\0\0\0\x11\0\0\0\0\0âJŒ˜›{L\x02\0\0\0\x06\0Ð
\0\0\0\0\0\0\0\0\0\0\0\0\0	\0\0\0\0\0âJŒ˜›{i

[-- Attachment #3: Type: text/plain, Size: 200 bytes --]

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [SPAM]Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-23  6:37         ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-23  6:37 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, linux-kernel,
	BlueZ development, Rob Herring, linux-mediatek, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 1094 bytes --]

On Tue, 2018-05-22 at 16:05 +0800, Sean Wang wrote:
> On Tue, 2018-05-22 at 09:21 +0200, Marcel Holtmann wrote:
> > Hi Sean,
> > 
> 
> [ ... ]
> 
> > > -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> > > +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> > > +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> > > 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> > 
> > I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> > 
> > Regards
> > 
> > Marcel
> > 
> 
> Sure, I'll send you the trace.log with the change is active.
> 
> 	Sean
> 

Hi, Marcel

Attached trace.log was captured when I inputted commands power on and
then off in bluetoothctl.

	Sean 

> 
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: trace.log --]
[-- Type: text/x-log; name="trace.log"; charset="UTF-8", Size: 6573 bytes --]

btsnoop\0\0\0\0\x01\0\0\aÑ\0\0\0$\0\0\0$ÿÿ\0\f\0\0\0\0\0âJŒ—•|–Linux version 4.16.0-rc1+ (aarch64)\0\0\0\0!\0\0\0!ÿÿ\0\f\0\0\0\0\0âJŒ—•|žBluetooth subsystem version 2.22\0\0\0\0\x10\0\0\0\x10\0\0\0\0\0\0\0\0\0âJŒ—•|¡\0\x03\x01"vF\0\0hci0\0\0\0\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0âJŒ—•|¥\x01\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10bluetoothd\0\0\0\0\0\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0âJŒ—•|ø\x02\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10btmon\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x10\0\0\0\0\0âJŒ—ïq\x03\x01\0\0\0\x05\0\x01\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0âJŒ—ò1^[\0\0\0\b\0\0\0\b\0\0\0
\0\0\0\0\0âJŒ—ò1&\x01"vF\0\0F\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò%ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò“\bä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò–þä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òšéä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òžÕä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò¢¸ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò¦™ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òªzä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò®Vä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò²6ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò¶\x15ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò¹öä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò½Öä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÁ¶ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÅ—ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÉyä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÍUä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÑ6ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÕ\x17ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òØ÷ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÜ×ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òà·ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òä“ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òètä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òìTä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òð5ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òô\x15ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ò÷öä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òû×ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—òÿºä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x03ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\a„ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\vhä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x0fJä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x13,ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x17\x12ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x1aòä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó\x1eÕä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó"·ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó&ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó*€ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó.bä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó2Dä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó6*ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó:\rä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó=ïä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óAÑä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óE·ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óIšä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óM|ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óQ^ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óUEä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óY)ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó]\vä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó`îä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ódÕä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óh·ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ólšä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óp{ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ótbä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óxFä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó|)ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó€\vä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óƒñä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó‡Óä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó‹µä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó—ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó“}ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó—aä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó›Cä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óŸ%ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó£\rä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó¦ïä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óªÒä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó®´ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—ó²™ä\x05\x02\x01\x01\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óµ:ä\x05\x02\x01\x01\0\0\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0âJŒ—óµ]oü\x05\x01\a\x01\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ—óµØä\x05\x02\a\x01\0\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0âJŒ˜\x12©Ïoü\x06\x01\x06\x02\0\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜\x13Ü\0ä\x05\x02\x06\x01\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1lþ\x03\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1\x7f#\x0e\x04\x01\x03\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1\x7fM\x03\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âJŒ˜1\x7fí\x0e\f\x01\x03\x10\0¿>þÛÿ{‡\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1€\x03\x01\x10\0\0\0\0\v\0\0\0\v\0\0\0\x03\0\0\0\0\0âJŒ˜1\x13ÿ	)\x19	\x17 H\a\x11\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âJŒ˜1„\x0e\f\x01\x01\x10\0\b\a\x11\bF\0\x19	\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1—	\x10\0\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0âJŒ˜1‚+\x0e
\x01	\x10\0\x01"vF\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1‚q\x05\x10\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0âJŒ˜1ƒ\x02\x0e\v\x01\x05\x10\0ý\x03¸\b\0\x01\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1ƒ\x17#\f\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0âJŒ˜1ƒ¨\x0e\a\x01#\f\0\0\x1f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1ƒ»\x14\f\0\0\0\0þ\0\0\0þ\0\0\0\x03\0\0\0\0\0âJŒ˜1„ø\x0eü\x01\x14\f\0MTK MT7622 #1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1…,%\f\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0âJŒ˜1…·\x0e\x06\x01%\f\0`\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1…Ò8\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜1†[\x0e\x05\x018\f\0\x04\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1†ž9\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âJŒ˜1‡Y\x0e\b\x019\f\0\x013‹ž\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1‡r\x05\f\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1ˆ\x01\x0e\x04\x01\x05\f\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âJŒ˜1ˆ\x16\x16\f\x02\0}\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1ˆË\x0e\x04\x01\x16\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1ˆæ\x02 \0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0âJŒ˜1‰h\x0e\a\x01\x02 \0û\0\b\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1‰}\x03 \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âJŒ˜1Š+\x0e\f\x01\x03 \0ý\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1Šf\x1c \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âJŒ˜1Šó\x0e\f\x01\x1c \0ÿÿÿ\x1f\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1‹\a\x02\x10\0\0\0\0F\0\0\0F\0\0\0\x03\0\0\0\0\0âJŒ˜1‹¹\x0eD\x01\x02\x10\0ÿÿÿ\x03ÌÿÿÿÿÿüŸó\x0fèÿ?÷ÿ\x1c\0\x04\0\x01\0\0\0\08àõóÏÿÿ\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1‹ßV\f\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1Œ\x0e\x04\x01V\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1Œ·E\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1;\x0e\x04\x01E\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1TX\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜1ð\x0e\x05\x01X\f\0ÿ\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1Ž\x04\x04\x10\x01\x01\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0âJŒ˜1Ž¡\x0e\x0e\x01\x04\x10\0\x01\x02\x01\0\0\0\0\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âJŒ˜1Ž×\x01\f\bÿÿûÿ\aø¿=\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1a\x0e\x04\x01\x01\f\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0âJŒ˜1{\r\f\a\0\0\0\0\0\0\x01\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âJŒ˜11\x0e\b\x01\r\f\0\x04\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âJŒ˜1D\x0f\b\x02\x05\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1æ\x0e\x04\x01\x0f\b\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1û^[\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âJŒ˜1‘•\x0e\b\x01^[\f\0\0\b\x12\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1‘¨F\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜1’<\x0e\x05\x01F\f\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âJŒ˜1’O\x01 \b€	\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1’÷\x0e\x04\x01\x01 \0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âJŒ˜1“\vm\f\x02\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1“´\x0e\x04\x01m\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1“Ó\x04\x10\x01\x02\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0âJŒ˜1”a\x0e\x0e\x01\x04\x10\0\x02\x02%\v\0\0\0\0\0\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0âJŒ˜1”ˆ\x12\f\a\0\0\0\0\0\0\x01\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0âJŒ˜1•\x18\x0e\x06\x01\x12\f\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âJŒ˜1•+c\f\b\0À°\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1•Î\x0e\x04\x01c\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1•ï\v\x10\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âJŒ˜1–†\x0e\b\x01\v\x10\0\x02\x02\x03\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âJŒ˜1–™w\f\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0âJŒ˜1—8\x0e\v\x01w\f\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1—Kz\f\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1—â\x0e\x04\x01z\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0âJŒ˜1˜\x1c1 \x03\x03\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1˜Â\x0e\x04\x011 \0\0\0\0\b\0\0\0\b\0\0\0
\0\0\0\0\0âJŒ˜1˜é\x01"vF\0\0F\0\0\0\0#\0\0\0#\0\0\0\x02\0\0\0\0\0âJŒ˜1™/	  
		builder\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1™Þ\x0e\x04\x01	 \0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜1™ó\x1a\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1š³\x0e\x04\x01\x1a\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0âJŒ˜1šÉ$\f\x03\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1›Œ\x0e\x04\x01$\f\0\0\0\0	\0\0\0	\0\0\0\x11\0\0\0\0\0âJŒ˜1›­\x02\0\0\0\a\0\0\0\0\0\0\0	\0\0\0	\0\0\0\x11\0\0\0\0\0âJŒ˜1›­\x01\0\0\0\a\0\0\0\0\0\0\0û\0\0\0û\0\0\0\x02\0\0\0\0\0âJŒ˜1›È\x13\føbuilder\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1&\x0e\x04\x01\x13\f\0\0\0\0ô\0\0\0ô\0\0\0\x02\0\0\0\0\0âJŒ˜1>R\fñ\0\b	builder\x02
ÿ	\x10\x02\0k\x1dF\x02+\x05	\x03\0\x18\x01\x18\x0e\x11\f\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜1žÁ\x0e\x04\x01R\f\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0âJŒ˜1žï\x01\0\0\0\x01\0\x05\0\0Ñ
\0\0\0\0\0
\0\0\0
\0\0\0\x11\0\0\0\0\0âJŒ˜1žù\x02\0\0\0\x06\0Ñ
\0\0\0\0\0\a\0\0\0\a\0\0\0\x10\0\0\0\0\0âJŒ˜›]c\x01\0\0\0\x05\0\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âJŒ˜›]\x1a\f\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âJŒ˜›^‰\x0e\x04\x01\x1a\f\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0âJŒ˜›^ºoü\x06\x01\x06\x02\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âJŒ˜›`\x1cä\x05\x02\x06\x01\0\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0âJŒ˜›{<\x01\0\0\0\x01\0\x05\0\0Ð
\0\0\0\0\0
\0\0\0
\0\0\0\x11\0\0\0\0\0âJŒ˜›{L\x02\0\0\0\x06\0Ð
\0\0\0\0\0\0\0\0\0\0\0\0\0	\0\0\0\0\0âJŒ˜›{i

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [SPAM]Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-23  6:37         ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-23  6:37 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, 2018-05-22 at 16:05 +0800, Sean Wang wrote:
> On Tue, 2018-05-22 at 09:21 +0200, Marcel Holtmann wrote:
> > Hi Sean,
> > 
> 
> [ ... ]
> 
> > > -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> > > +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> > > +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> > > 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> > 
> > I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> > 
> > Regards
> > 
> > Marcel
> > 
> 
> Sure, I'll send you the trace.log with the change is active.
> 
> 	Sean
> 

Hi, Marcel

Attached trace.log was captured when I inputted commands power on and
then off in bluetoothctl.

	Sean 

> 
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek

-------------- next part --------------
A non-text attachment was scrubbed...
Name: trace.log
Type: text/x-log
Size: 6573 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180523/db18fea4/attachment.bin>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-23  6:37         ` Sean Wang
@ 2018-05-23 12:31           ` Marcel Holtmann
  -1 siblings, 0 replies; 49+ messages in thread
From: Marcel Holtmann @ 2018-05-23 12:31 UTC (permalink / raw)
  To: Sean Wang
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

Hi Sean,

>> 
>> [ ... ]
>> 
>>>> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
>>>> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
>>>> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
>>>> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
>>> 
>>> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
>>> 
>>> Regards
>>> 
>>> Marcel
>>> 
>> 
>> Sure, I'll send you the trace.log with the change is active.
>> 
>> 	Sean
>> 
> 
> 
> Attached trace.log was captured when I inputted commands power on and
> then off in bluetoothctl.

the trace.log is somehow mangled. Something is not fully correct. Can you read it with btmon -r trace.log?

Regards

Marcel

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-23 12:31           ` Marcel Holtmann
  0 siblings, 0 replies; 49+ messages in thread
From: Marcel Holtmann @ 2018-05-23 12:31 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sean,

>> 
>> [ ... ]
>> 
>>>> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
>>>> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
>>>> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
>>>> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
>>> 
>>> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
>>> 
>>> Regards
>>> 
>>> Marcel
>>> 
>> 
>> Sure, I'll send you the trace.log with the change is active.
>> 
>> 	Sean
>> 
> 
> 
> Attached trace.log was captured when I inputted commands power on and
> then off in bluetoothctl.

the trace.log is somehow mangled. Something is not fully correct. Can you read it with btmon -r trace.log?

Regards

Marcel

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-23 12:31           ` Marcel Holtmann
  (?)
@ 2018-05-23 14:09             ` Sean Wang
  -1 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-23 14:09 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

On Wed, 2018-05-23 at 14:31 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >> 
> >> [ ... ]
> >> 
> >>>> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> >>>> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> >>>> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> >>>> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> >>> 
> >>> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> >>> 
> >>> Regards
> >>> 
> >>> Marcel
> >>> 
> >> 
> >> Sure, I'll send you the trace.log with the change is active.
> >> 
> >> 	Sean
> >> 
> > 
> > 
> > Attached trace.log was captured when I inputted commands power on and
> > then off in bluetoothctl.
> 
> the trace.log is somehow mangled. Something is not fully correct. Can you read it with btmon -r trace.log?
> 
> Regards
> 
> Marcel
> 

Yes, I can read it with btmon -r trace.log.

I post it as plain text as below 


Bluetooth monitor ver 5.37
= Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
= Note: Bluetooth subsystem version 2.22                               0.641502
= New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
* Unknown packet (code 14 len 30)                                      0.641509
        01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
        75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
* Unknown packet (code 14 len 30)                                      0.641592
        02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
        6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
* Unknown packet (code 16 len 7)                                [hci0] 6.536771
        01 00 00 00 05 00 01                             .......         
= Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
= Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
        02 01 01 00 00                                   .....           
< HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
        01 07 01 00 04                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
        02 07 01 00 00                                   .....           
< HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
        01 06 02 00 00 01                                ......          
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
        02 06 01 00 00                                   .....           
< HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
      Reset (0x03|0x0003) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
      Read Local Supported Features (0x04|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          SCO link
          HV2 packets
          HV3 packets
          CVSD synchronous data
          Power control
          Transparent synchronous data
          Broadcast Encryption
          Enhanced Data Rate ACL 2 Mbps mode
          Enhanced Data Rate ACL 3 Mbps mode
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          Extended SCO link (EV3 packets)
          EV4 packets
          EV5 packets
          AFH capable slave
          AFH classification slave
          LE Supported (Controller)
          3-slot Enhanced Data Rate ACL packets
          5-slot Enhanced Data Rate ACL packets
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Enhanced Data Rate eSCO 2 Mbps mode
          Enhanced Data Rate eSCO 3 Mbps mode
          3-slot Enhanced Data Rate eSCO packets
          Extended Inquiry Response
          Simultaneous LE and BR/EDR (Controller)
          Secure Simple Pairing
          Encapsulated PDU
          Erroneous Data Reporting
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
        29 19 09 17 20 48 07 11 00                       )... H...       
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
      Read Local Version Information (0x04|0x0001) ncmd 1
        Status: Success (0x00)
        HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
        LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
        Manufacturer: MediaTek, Inc. (70)
< HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
      Read BD ADDR (0x04|0x0009) ncmd 1
        Status: Success (0x00)
        Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
< HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
      Read Buffer Size (0x04|0x0005) ncmd 1
        Status: Success (0x00)
        ACL MTU: 1021 ACL max packet: 8
        SCO MTU: 184  SCO max packet: 1
< HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
      Read Class of Device (0x03|0x0023) ncmd 1
        Status: Success (0x00)
        Class: 0x001f00
          Major class: Uncategorized, specific device code not specified
          Minor class: 0x00
< HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
      Read Local Name (0x03|0x0014) ncmd 1
        Status: Success (0x00)
        Name: MTK MT7622 #1
< HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
      Read Voice Setting (0x03|0x0025) ncmd 1
        Status: Success (0x00)
        Setting: 0x0060
          Input Coding: Linear
          Input Data Format: 2's complement
          Input Sample Size: 16-bit
          # of bits padding at MSB: 0
          Air Coding Format: CVSD
< HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
      Read Number of Supported IAC (0x03|0x0038) ncmd 1
        Status: Success (0x00)
        Number of IAC: 4
< HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
      Read Current IAC LAP (0x03|0x0039) ncmd 1
        Status: Success (0x00)
        Number of IAC: 1
        Access code: 0x9e8b33 (General Inquiry)
< HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
        Type: Clear All Filters (0x00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
      Set Event Filter (0x03|0x0005) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
        Timeout: 20000.000 msec (0x7d00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
      LE Read Buffer Size (0x08|0x0002) ncmd 1
        Status: Success (0x00)
        Data packet length: 251
        Num data packets: 8
< HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
      LE Read Local Supported Features (0x08|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          LE Encryption
          Extended Reject Indication
          Slave-initiated Features Exchange
          LE Ping
          LE Data Packet Length Extension
          LL Privacy
          Extended Scanner Filter Policies
< HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
      LE Read Supported States (0x08|0x001c) ncmd 1
        Status: Success (0x00)
        States: 0x000000001fffffff
          Non-connectable Advertising State
          Scannable Advertising State
          Connectable Advertising State
          High Duty Cycle Directed Advertising State
          Passive Scanning State
          Active Scanning State
          Initiating State
            and Connection State (Master Role)
          Connection State (Slave Role)
          Non-connectable Advertising State
            and Passive Scanning State
          Scannable Advertising State
            and Passive Scanning State
          Connectable Advertising State
            and Passive Scanning State
          High Duty Cycle Directed Advertising State
            and Passive Scanning State
          Non-connectable Advertising State
            and Active Scanning State
          Scannable Advertising State
            and Active Scanning State
          Connectable Advertising State
            and Active Scanning State
          High Duty Cycle Directed Advertising State
            and Active Scanning State
          Non-connectable Advertising State
            and Initiating State
          Scannable Advertising State
            and Initiating State
          Non-connectable Advertising State
            and Connection State (Master Role)
          Scannable Advertising State
            and Connection State (Master Role)
          Non-connectable Advertising State
            and Connection State (Slave Role)
          Scannable Advertising State
            and Connection State (Slave Role)
          Passive Scanning State
            and Initiating State
          Active Scanning State
            and Initiating State
          Passive Scanning State
            and Connection State (Master Role)
          Active Scanning State
            and Connection State (Master Role)
          Passive Scanning State
            and Connection State (Slave Role)
          Active Scanning State
            and Connection State (Slave Role)
          Initiating State
            and Connection State (Master Role)
            and Master Role & Master Role
< HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
      Read Local Supported Commands (0x04|0x0002) ncmd 1
        Status: Success (0x00)
        Commands: 176 entries
          Inquiry (Octet 0 - Bit 0)
          Inquiry Cancel (Octet 0 - Bit 1)
          Periodic Inquiry Mode (Octet 0 - Bit 2)
          Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
          Create Connection (Octet 0 - Bit 4)
          Disconnect (Octet 0 - Bit 5)
          Add SCO Connection (Octet 0 - Bit 6)
          Create Connection Cancel (Octet 0 - Bit 7)
          Accept Connection Request (Octet 1 - Bit 0)
          Reject Connection Request (Octet 1 - Bit 1)
          Link Key Request Reply (Octet 1 - Bit 2)
          Link Key Request Negative Reply (Octet 1 - Bit 3)
          PIN Code Request Reply (Octet 1 - Bit 4)
          PIN Code Request Negative Reply (Octet 1 - Bit 5)
          Change Connection Packet Type (Octet 1 - Bit 6)
          Authentication Requested (Octet 1 - Bit 7)
          Set Connection Encryption (Octet 2 - Bit 0)
          Change Connection Link Key (Octet 2 - Bit 1)
          Master Link Key (Octet 2 - Bit 2)
          Remote Name Request (Octet 2 - Bit 3)
          Remote Name Request Cancel (Octet 2 - Bit 4)
          Read Remote Supported Features (Octet 2 - Bit 5)
          Read Remote Extended Features (Octet 2 - Bit 6)
          Read Remote Version Information (Octet 2 - Bit 7)
          Read Clock Offset (Octet 3 - Bit 0)
          Read LMP Handle (Octet 3 - Bit 1)
          Sniff Mode (Octet 4 - Bit 2)
          Exit Sniff Mode (Octet 4 - Bit 3)
          QoS Setup (Octet 4 - Bit 6)
          Role Discovery (Octet 4 - Bit 7)
          Switch Role (Octet 5 - Bit 0)
          Read Link Policy Settings (Octet 5 - Bit 1)
          Write Link Policy Settings (Octet 5 - Bit 2)
          Read Default Link Policy Settings (Octet 5 - Bit 3)
          Write Default Link Policy Settings (Octet 5 - Bit 4)
          Flow Specification (Octet 5 - Bit 5)
          Set Event Mask (Octet 5 - Bit 6)
          Reset (Octet 5 - Bit 7)
          Set Event Filter (Octet 6 - Bit 0)
          Flush (Octet 6 - Bit 1)
          Read PIN Type (Octet 6 - Bit 2)
          Write PIN Type (Octet 6 - Bit 3)
          Create New Unit Key (Octet 6 - Bit 4)
          Read Stored Link Key (Octet 6 - Bit 5)
          Write Stored Link Key (Octet 6 - Bit 6)
          Delete Stored Link Key (Octet 6 - Bit 7)
          Write Local Name (Octet 7 - Bit 0)
          Read Local Name (Octet 7 - Bit 1)
          Read Connection Accept Timeout (Octet 7 - Bit 2)
          Write Connection Accept Timeout (Octet 7 - Bit 3)
          Read Page Timeout (Octet 7 - Bit 4)
          Write Page Timeout (Octet 7 - Bit 5)
          Read Scan Enable (Octet 7 - Bit 6)
          Write Scan Enable (Octet 7 - Bit 7)
          Read Page Scan Activity (Octet 8 - Bit 0)
          Write Page Scan Activity (Octet 8 - Bit 1)
          Read Inquiry Scan Activity (Octet 8 - Bit 2)
          Write Inquiry Scan Activity (Octet 8 - Bit 3)
          Read Authentication Enable (Octet 8 - Bit 4)
          Write Authentication Enable (Octet 8 - Bit 5)
          Read Encryption Mode (Octet 8 - Bit 6)
          Write Encryption Mode (Octet 8 - Bit 7)
          Read Class of Device (Octet 9 - Bit 0)
          Write Class of Device (Octet 9 - Bit 1)
          Read Voice Setting (Octet 9 - Bit 2)
          Write Voice Setting (Octet 9 - Bit 3)
          Read Automatic Flush Timeout (Octet 9 - Bit 4)
          Write Automatic Flush Timeout (Octet 9 - Bit 5)
          Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
          Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
          Read Transmit Power Level (Octet 10 - Bit 2)
          Read Sync Flow Control Enable (Octet 10 - Bit 3)
          Write Sync Flow Control Enable (Octet 10 - Bit 4)
          Set Controller To Host Flow Control (Octet 10 - Bit 5)
          Host Buffer Size (Octet 10 - Bit 6)
          Host Number of Completed Packets (Octet 10 - Bit 7)
          Read Link Supervision Timeout (Octet 11 - Bit 0)
          Write Link Supervision Timeout (Octet 11 - Bit 1)
          Read Number of Supported IAC (Octet 11 - Bit 2)
          Read Current IAC LAP (Octet 11 - Bit 3)
          Write Current IAC LAP (Octet 11 - Bit 4)
          Read Page Scan Mode (Octet 11 - Bit 7)
          Write Page Scan Mode (Octet 12 - Bit 0)
          Set AFH Host Channel Classification (Octet 12 - Bit 1)
          Read Inquiry Scan Type (Octet 12 - Bit 4)
          Write Inquiry Scan Type (Octet 12 - Bit 5)
          Read Inquiry Mode (Octet 12 - Bit 6)
          Write Inquiry Mode (Octet 12 - Bit 7)
          Read Page Scan Type (Octet 13 - Bit 0)
          Write Page Scan Type (Octet 13 - Bit 1)
          Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
          Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
          Read Local Version Information (Octet 14 - Bit 3)
          Read Local Supported Features (Octet 14 - Bit 5)
          Read Local Extended Features (Octet 14 - Bit 6)
          Read Buffer Size (Octet 14 - Bit 7)
          Read Country Code (Octet 15 - Bit 0)
          Read BD ADDR (Octet 15 - Bit 1)
          Read Failed Contact Counter (Octet 15 - Bit 2)
          Reset Failed Contact Counter (Octet 15 - Bit 3)
          Read Link Quality (Octet 15 - Bit 4)
          Read RSSI (Octet 15 - Bit 5)
          Read AFH Channel Map (Octet 15 - Bit 6)
          Read Clock (Octet 15 - Bit 7)
          Read Loopback Mode (Octet 16 - Bit 0)
          Write Loopback Mode (Octet 16 - Bit 1)
          Enable Device Under Test Mode (Octet 16 - Bit 2)
          Setup Synchronous Connection (Octet 16 - Bit 3)
          Accept Synchronous Connection Request (Octet 16 - Bit 4)
          Reject Synchronous Connection Request (Octet 16 - Bit 5)
          Read Extended Inquiry Response (Octet 17 - Bit 0)
          Write Extended Inquiry Response (Octet 17 - Bit 1)
          Refresh Encryption Key (Octet 17 - Bit 2)
          Sniff Subrating (Octet 17 - Bit 4)
          Read Simple Pairing Mode (Octet 17 - Bit 5)
          Write Simple Pairing Mode (Octet 17 - Bit 6)
          Read Local OOB Data (Octet 17 - Bit 7)
          Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
          Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
          IO Capability Request Reply (Octet 18 - Bit 7)
          User Confirmation Request Reply (Octet 19 - Bit 0)
          User Confirmation Request Neg Reply (Octet 19 - Bit 1)
          User Passkey Request Reply (Octet 19 - Bit 2)
          User Passkey Request Negative Reply (Octet 19 - Bit 3)
          Remote OOB Data Request Reply (Octet 19 - Bit 4)
          Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
          Enhanced Flush (Octet 19 - Bit 6)
          Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
          Send Keypress Notification (Octet 20 - Bit 2)
          IO Capability Request Negative Reply (Octet 20 - Bit 3)
          Read Encryption Key Size (Octet 20 - Bit 4)
          Set Event Mask Page 2 (Octet 22 - Bit 2)
          Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
          Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
          Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
          Read Local Supported Codecs (Octet 29 - Bit 5)
          Set Triggered Clock Capture (Octet 30 - Bit 5)
          Truncated Page (Octet 30 - Bit 6)
          Truncated Page Cancel (Octet 30 - Bit 7)
          Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
          Start Synchronization Train (Octet 31 - Bit 2)
          Set Reserved LT_ADDR (Octet 31 - Bit 4)
          Delete Reserved LT_ADDR (Octet 31 - Bit 5)
          Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
          Read Synchronization Train Parameters (Octet 31 - Bit 7)
          Write Synchronization Train Parameters (Octet 32 - Bit 0)
          Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
          Read Local OOB Extended Data (Octet 32 - Bit 6)
          Write Secure Connections Test Mode (Octet 32 - Bit 7)
          Read Extended Page Timeout (Octet 33 - Bit 0)
          Write Extended Page Timeout (Octet 33 - Bit 1)
          Read Extended Inquiry Length (Octet 33 - Bit 2)
          Write Extended Inquiry Length (Octet 33 - Bit 3)
          LE Set Data Length (Octet 33 - Bit 6)
          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
          LE Read Local P-256 Public Key (Octet 34 - Bit 1)
          LE Generate DHKey (Octet 34 - Bit 2)
          LE Add Device To Resolving List (Octet 34 - Bit 3)
          LE Remove Device From Resolving List (Octet 34 - Bit 4)
          LE Clear Resolving List (Octet 34 - Bit 5)
          LE Read Resolving List Size (Octet 34 - Bit 6)
          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
          LE Read Local Resolvable Address (Octet 35 - Bit 0)
          LE Set Address Resolution Enable (Octet 35 - Bit 1)
          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
          LE Read Maximum Data Length (Octet 35 - Bit 3)
          Octet 35 - Bit 4 
          Octet 35 - Bit 5 
          Octet 35 - Bit 6 
          Octet 35 - Bit 7 
          Octet 36 - Bit 0 
< HCI Command: Write Simple Pairing Mode (0x03|0x0056) plen 1  [hci0] 10.869023
        Mode: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869185
      Write Simple Pairing Mode (0x03|0x0056) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1         [hci0] 10.869239
        Mode: Inquiry Result with RSSI or Extended Inquiry Result (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869371
      Write Inquiry Mode (0x03|0x0045) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Inquiry Response T.. (0x03|0x0058) plen 0  [hci0] 10.869396
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.869552
      Read Inquiry Response TX Power Level (0x03|0x0058) ncmd 1
        Status: Success (0x00)
        TX power: -1 dBm
< HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.869572
        Page: 1
> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.869729
      Read Local Extended Features (0x04|0x0004) ncmd 1
        Status: Success (0x00)
        Page: 1/2
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Set Event Mask (0x03|0x0001) plen 8             [hci0] 10.869783
        Mask: 0x3dbff807fffbffff
          Inquiry Complete
          Inquiry Result
          Connection Complete
          Connection Request
          Disconnection Complete
          Authentication Complete
          Remote Name Request Complete
          Encryption Change
          Change Connection Link Key Complete
          Master Link Key Complete
          Read Remote Supported Features Complete
          Read Remote Version Information Complete
          QoS Setup Complete
          Command Complete
          Command Status
          Hardware Error
          Flush Occurred
          Role Change
          Mode Change
          Return Link Keys
          PIN Code Request
          Link Key Request
          Link Key Notification
          Loopback Command
          Data Buffer Overflow
          Max Slots Change
          Read Clock Offset Complete
          Connection Packet Type Changed
          QoS Violation
          Page Scan Mode Change
          Page Scan Repetition Mode Change
          Flow Specification Complete
          Inquiry Result with RSSI
          Read Remote Extended Features Complete
          Synchronous Connection Complete
          Synchronous Connection Changed
          Sniff Subrating
          Extended Inquiry Result
          Encryption Key Refresh Complete
          IO Capability Request
          IO Capability Request Reply
          User Confirmation Request
          User Passkey Request
          Remote OOB Data Request
          Simple Pairing Complete
          Link Supervision Timeout Changed
          Enhanced Flush Complete
          User Passkey Notification
          Keypress Notification
          Remote Host Supported Features Notification
          LE Meta
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869921
      Set Event Mask (0x03|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Stored Link Key (0x03|0x000d) plen 7       [hci0] 10.869947
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Read all: 0x01
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870129
      Read Stored Link Key (0x03|0x000d) ncmd 1
        Status: Success (0x00)
        Max num keys: 4
        Num keys: 0
< HCI Command: Write Default Link Poli.. (0x02|0x000f) plen 2  [hci0] 10.870148
        Link policy: 0x0005
          Enable Role Switch
          Enable Sniff Mode
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870310
      Write Default Link Policy Settings (0x02|0x000f) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Page Scan Activity (0x03|0x001b) plen 0    [hci0] 10.870331
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870485
      Read Page Scan Activity (0x03|0x001b) ncmd 1
        Status: Success (0x00)
        Interval: 1280.000 msec (0x0800)
        Window: 11.250 msec (0x0012)
< HCI Command: Read Page Scan Type (0x03|0x0046) plen 0        [hci0] 10.870504
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.870652
      Read Page Scan Type (0x03|0x0046) ncmd 1
        Status: Success (0x00)
        Type: Standard Scan (0x00)
< HCI Command: LE Set Event Mask (0x08|0x0001) plen 8          [hci0] 10.870671
        Mask: 0x0000000000000980
          LE Read Local P-256 Public Key Complete
          LE Generate DHKey Complete
          Unknown mask (0x0000000000000800)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870839
      LE Set Event Mask (0x08|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: Write LE Host Supported (0x03|0x006d) plen 2    [hci0] 10.870859
        Supported: 0x01
        Simultaneous: 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871028
      Write LE Host Supported (0x03|0x006d) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.871059
        Page: 2
> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.871201
      Read Local Extended Features (0x04|0x0004) ncmd 1
        Status: Success (0x00)
        Page: 2/2
        Features: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
          Connectionless Slave Broadcast - Master
          Synchronization Train
          Generalized interlaced scan
          Secure Connections (Controller Support)
          Ping
          Train nudging
< HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7     [hci0] 10.871240
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Delete all: 0x01
> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.871384
      Delete Stored Link Key (0x03|0x0012) ncmd 1
        Status: Success (0x00)
        Num keys: 0
< HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8      [hci0] 10.871403
        Mask: 0x0000000000b0c000
          Triggered Clock Capture
          Synchronization Train Complete
          Slave Page Response Timeout
          Connectionless Slave Broadcast Channel Map Change
          Authenticated Payload Timeout Expired
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871566
      Set Event Mask Page 2 (0x03|0x0063) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Supported Co.. (0x04|0x000b) plen 0  [hci0] 10.871599
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.871750
      Read Local Supported Codecs (0x04|0x000b) ncmd 1
        Status: Success (0x00)
        Number of supported codecs: 2
          Codec: CVSD (0x02)
          Codec: Transparent (0x03)
        Number of vendor codecs: 0
< HCI Command: Read Synchronization Tr.. (0x03|0x0077) plen 0  [hci0] 10.871769
> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.871928
      Read Synchronization Train Parameters (0x03|0x0077) ncmd 1
        Status: Success (0x00)
        Interval: 0.000 msec (0x0000)
        Timeout: 0.000 msec (0x00000000)
        Service data: 0x00
< HCI Command: Write Secure Connection.. (0x03|0x007a) plen 1  [hci0] 10.871947
        Support: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872098
      Write Secure Connections Host Support (0x03|0x007a) ncmd 1
        Status: Success (0x00)
< HCI Command: Unknown (0x08|0x0031) plen 3                    [hci0] 10.872156
        03 00 00                                         ...             
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872322
      Unknown (0x08|0x0031) ncmd 1
        Status: Success (0x00)
= Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)               [hci0] 10.872361
< HCI Command: LE Set Scan Response D.. (0x08|0x0009) plen 32  [hci0] 10.872431
        Length: 10
        Name (complete): builder
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872606
      LE Set Scan Response Data (0x08|0x0009) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 10.872627
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872819
      Write Scan Enable (0x03|0x001a) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Class of Device (0x03|0x0024) plen 3      [hci0] 10.872841
        Class: 0x000000
          Major class: Miscellaneous
          Minor class: 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873036
      Write Class of Device (0x03|0x0024) ncmd 1
        Status: Success (0x00)
* Unknown packet (code 17 len 9)                               [hci0] 10.873069
        02 00 00 00 07 00 00 00 00                       .........       
* Unknown packet (code 17 len 9)                               [hci0] 10.873069
        01 00 00 00 07 00 00 00 00                       .........       
< HCI Command: Write Local Name (0x03|0x0013) plen 248         [hci0] 10.873096
        Name: builder
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873446
      Write Local Name (0x03|0x0013) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Extended Inquir.. (0x03|0x0052) plen 241  [hci0] 10.873470
        FEC: Not required (0x00)
        Name (complete): builder
        TX power: -1 dBm
        Device ID: USB Implementer's Forum assigned (0x0002)
          Vendor: Linux Foundation (0x1d6b)
          Product: 0x0246
          Version: 5.2.11 (0x052b)
        16-bit Service UUIDs (complete): 4 entries
          Generic Access Profile (0x1800)
          Generic Attribute Profile (0x1801)
          A/V Remote Control (0x110e)
          A/V Remote Control Target (0x110c)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873857
      Write Extended Inquiry Response (0x03|0x0052) ncmd 1
        Status: Success (0x00)
* Unknown packet (code 17 len 13)                              [hci0] 10.873903
        01 00 00 00 01 00 05 00 00 d1 0a 00 00           .............   
* Unknown packet (code 17 len 10)                              [hci0] 10.873913
        02 00 00 00 06 00 d1 0a 00 00                    ..........      
* Unknown packet (code 16 len 7)                               [hci0] 17.803939
        01 00 00 00 05 00 00                             .......         
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 17.803983
        Scan enable: No Scans (0x00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 17.804233
      Write Scan Enable (0x03|0x001a) ncmd 1
        Status: Success (0x00)
< HCI Command: Vendor (0x3f|0x006f) plen 6                     [hci0] 17.804282
        01 06 02 00 00 00                                ......          
> HCI Event: Unknown (0xe4) plen 5                             [hci0] 17.804636
        02 06 01 00 00                                   .....           
* Unknown packet (code 17 len 13)                              [hci0] 17.811580
        01 00 00 00 01 00 05 00 00 d0 0a 00 00           .............   
* Unknown packet (code 17 len 10)                              [hci0] 17.811596
        02 00 00 00 06 00 d0 0a 00 00                    ..........      
= Close Index: 00:00:46:76:22:01                               [hci0] 17.811625

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-23 14:09             ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-23 14:09 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

On Wed, 2018-05-23 at 14:31 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >> 
> >> [ ... ]
> >> 
> >>>> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> >>>> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> >>>> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> >>>> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> >>> 
> >>> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> >>> 
> >>> Regards
> >>> 
> >>> Marcel
> >>> 
> >> 
> >> Sure, I'll send you the trace.log with the change is active.
> >> 
> >> 	Sean
> >> 
> > 
> > 
> > Attached trace.log was captured when I inputted commands power on and
> > then off in bluetoothctl.
> 
> the trace.log is somehow mangled. Something is not fully correct. Can you read it with btmon -r trace.log?
> 
> Regards
> 
> Marcel
> 

Yes, I can read it with btmon -r trace.log.

I post it as plain text as below 


Bluetooth monitor ver 5.37
= Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
= Note: Bluetooth subsystem version 2.22                               0.641502
= New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
* Unknown packet (code 14 len 30)                                      0.641509
        01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
        75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
* Unknown packet (code 14 len 30)                                      0.641592
        02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
        6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
* Unknown packet (code 16 len 7)                                [hci0] 6.536771
        01 00 00 00 05 00 01                             .......         
= Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
= Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
        02 01 01 00 00                                   .....           
< HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
        01 07 01 00 04                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
        02 07 01 00 00                                   .....           
< HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
        01 06 02 00 00 01                                ......          
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
        02 06 01 00 00                                   .....           
< HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
      Reset (0x03|0x0003) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
      Read Local Supported Features (0x04|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          SCO link
          HV2 packets
          HV3 packets
          CVSD synchronous data
          Power control
          Transparent synchronous data
          Broadcast Encryption
          Enhanced Data Rate ACL 2 Mbps mode
          Enhanced Data Rate ACL 3 Mbps mode
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          Extended SCO link (EV3 packets)
          EV4 packets
          EV5 packets
          AFH capable slave
          AFH classification slave
          LE Supported (Controller)
          3-slot Enhanced Data Rate ACL packets
          5-slot Enhanced Data Rate ACL packets
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Enhanced Data Rate eSCO 2 Mbps mode
          Enhanced Data Rate eSCO 3 Mbps mode
          3-slot Enhanced Data Rate eSCO packets
          Extended Inquiry Response
          Simultaneous LE and BR/EDR (Controller)
          Secure Simple Pairing
          Encapsulated PDU
          Erroneous Data Reporting
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
        29 19 09 17 20 48 07 11 00                       )... H...       
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
      Read Local Version Information (0x04|0x0001) ncmd 1
        Status: Success (0x00)
        HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
        LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
        Manufacturer: MediaTek, Inc. (70)
< HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
      Read BD ADDR (0x04|0x0009) ncmd 1
        Status: Success (0x00)
        Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
< HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
      Read Buffer Size (0x04|0x0005) ncmd 1
        Status: Success (0x00)
        ACL MTU: 1021 ACL max packet: 8
        SCO MTU: 184  SCO max packet: 1
< HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
      Read Class of Device (0x03|0x0023) ncmd 1
        Status: Success (0x00)
        Class: 0x001f00
          Major class: Uncategorized, specific device code not specified
          Minor class: 0x00
< HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
      Read Local Name (0x03|0x0014) ncmd 1
        Status: Success (0x00)
        Name: MTK MT7622 #1
< HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
      Read Voice Setting (0x03|0x0025) ncmd 1
        Status: Success (0x00)
        Setting: 0x0060
          Input Coding: Linear
          Input Data Format: 2's complement
          Input Sample Size: 16-bit
          # of bits padding at MSB: 0
          Air Coding Format: CVSD
< HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
      Read Number of Supported IAC (0x03|0x0038) ncmd 1
        Status: Success (0x00)
        Number of IAC: 4
< HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
      Read Current IAC LAP (0x03|0x0039) ncmd 1
        Status: Success (0x00)
        Number of IAC: 1
        Access code: 0x9e8b33 (General Inquiry)
< HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
        Type: Clear All Filters (0x00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
      Set Event Filter (0x03|0x0005) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
        Timeout: 20000.000 msec (0x7d00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
      LE Read Buffer Size (0x08|0x0002) ncmd 1
        Status: Success (0x00)
        Data packet length: 251
        Num data packets: 8
< HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
      LE Read Local Supported Features (0x08|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          LE Encryption
          Extended Reject Indication
          Slave-initiated Features Exchange
          LE Ping
          LE Data Packet Length Extension
          LL Privacy
          Extended Scanner Filter Policies
< HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
      LE Read Supported States (0x08|0x001c) ncmd 1
        Status: Success (0x00)
        States: 0x000000001fffffff
          Non-connectable Advertising State
          Scannable Advertising State
          Connectable Advertising State
          High Duty Cycle Directed Advertising State
          Passive Scanning State
          Active Scanning State
          Initiating State
            and Connection State (Master Role)
          Connection State (Slave Role)
          Non-connectable Advertising State
            and Passive Scanning State
          Scannable Advertising State
            and Passive Scanning State
          Connectable Advertising State
            and Passive Scanning State
          High Duty Cycle Directed Advertising State
            and Passive Scanning State
          Non-connectable Advertising State
            and Active Scanning State
          Scannable Advertising State
            and Active Scanning State
          Connectable Advertising State
            and Active Scanning State
          High Duty Cycle Directed Advertising State
            and Active Scanning State
          Non-connectable Advertising State
            and Initiating State
          Scannable Advertising State
            and Initiating State
          Non-connectable Advertising State
            and Connection State (Master Role)
          Scannable Advertising State
            and Connection State (Master Role)
          Non-connectable Advertising State
            and Connection State (Slave Role)
          Scannable Advertising State
            and Connection State (Slave Role)
          Passive Scanning State
            and Initiating State
          Active Scanning State
            and Initiating State
          Passive Scanning State
            and Connection State (Master Role)
          Active Scanning State
            and Connection State (Master Role)
          Passive Scanning State
            and Connection State (Slave Role)
          Active Scanning State
            and Connection State (Slave Role)
          Initiating State
            and Connection State (Master Role)
            and Master Role & Master Role
< HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
      Read Local Supported Commands (0x04|0x0002) ncmd 1
        Status: Success (0x00)
        Commands: 176 entries
          Inquiry (Octet 0 - Bit 0)
          Inquiry Cancel (Octet 0 - Bit 1)
          Periodic Inquiry Mode (Octet 0 - Bit 2)
          Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
          Create Connection (Octet 0 - Bit 4)
          Disconnect (Octet 0 - Bit 5)
          Add SCO Connection (Octet 0 - Bit 6)
          Create Connection Cancel (Octet 0 - Bit 7)
          Accept Connection Request (Octet 1 - Bit 0)
          Reject Connection Request (Octet 1 - Bit 1)
          Link Key Request Reply (Octet 1 - Bit 2)
          Link Key Request Negative Reply (Octet 1 - Bit 3)
          PIN Code Request Reply (Octet 1 - Bit 4)
          PIN Code Request Negative Reply (Octet 1 - Bit 5)
          Change Connection Packet Type (Octet 1 - Bit 6)
          Authentication Requested (Octet 1 - Bit 7)
          Set Connection Encryption (Octet 2 - Bit 0)
          Change Connection Link Key (Octet 2 - Bit 1)
          Master Link Key (Octet 2 - Bit 2)
          Remote Name Request (Octet 2 - Bit 3)
          Remote Name Request Cancel (Octet 2 - Bit 4)
          Read Remote Supported Features (Octet 2 - Bit 5)
          Read Remote Extended Features (Octet 2 - Bit 6)
          Read Remote Version Information (Octet 2 - Bit 7)
          Read Clock Offset (Octet 3 - Bit 0)
          Read LMP Handle (Octet 3 - Bit 1)
          Sniff Mode (Octet 4 - Bit 2)
          Exit Sniff Mode (Octet 4 - Bit 3)
          QoS Setup (Octet 4 - Bit 6)
          Role Discovery (Octet 4 - Bit 7)
          Switch Role (Octet 5 - Bit 0)
          Read Link Policy Settings (Octet 5 - Bit 1)
          Write Link Policy Settings (Octet 5 - Bit 2)
          Read Default Link Policy Settings (Octet 5 - Bit 3)
          Write Default Link Policy Settings (Octet 5 - Bit 4)
          Flow Specification (Octet 5 - Bit 5)
          Set Event Mask (Octet 5 - Bit 6)
          Reset (Octet 5 - Bit 7)
          Set Event Filter (Octet 6 - Bit 0)
          Flush (Octet 6 - Bit 1)
          Read PIN Type (Octet 6 - Bit 2)
          Write PIN Type (Octet 6 - Bit 3)
          Create New Unit Key (Octet 6 - Bit 4)
          Read Stored Link Key (Octet 6 - Bit 5)
          Write Stored Link Key (Octet 6 - Bit 6)
          Delete Stored Link Key (Octet 6 - Bit 7)
          Write Local Name (Octet 7 - Bit 0)
          Read Local Name (Octet 7 - Bit 1)
          Read Connection Accept Timeout (Octet 7 - Bit 2)
          Write Connection Accept Timeout (Octet 7 - Bit 3)
          Read Page Timeout (Octet 7 - Bit 4)
          Write Page Timeout (Octet 7 - Bit 5)
          Read Scan Enable (Octet 7 - Bit 6)
          Write Scan Enable (Octet 7 - Bit 7)
          Read Page Scan Activity (Octet 8 - Bit 0)
          Write Page Scan Activity (Octet 8 - Bit 1)
          Read Inquiry Scan Activity (Octet 8 - Bit 2)
          Write Inquiry Scan Activity (Octet 8 - Bit 3)
          Read Authentication Enable (Octet 8 - Bit 4)
          Write Authentication Enable (Octet 8 - Bit 5)
          Read Encryption Mode (Octet 8 - Bit 6)
          Write Encryption Mode (Octet 8 - Bit 7)
          Read Class of Device (Octet 9 - Bit 0)
          Write Class of Device (Octet 9 - Bit 1)
          Read Voice Setting (Octet 9 - Bit 2)
          Write Voice Setting (Octet 9 - Bit 3)
          Read Automatic Flush Timeout (Octet 9 - Bit 4)
          Write Automatic Flush Timeout (Octet 9 - Bit 5)
          Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
          Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
          Read Transmit Power Level (Octet 10 - Bit 2)
          Read Sync Flow Control Enable (Octet 10 - Bit 3)
          Write Sync Flow Control Enable (Octet 10 - Bit 4)
          Set Controller To Host Flow Control (Octet 10 - Bit 5)
          Host Buffer Size (Octet 10 - Bit 6)
          Host Number of Completed Packets (Octet 10 - Bit 7)
          Read Link Supervision Timeout (Octet 11 - Bit 0)
          Write Link Supervision Timeout (Octet 11 - Bit 1)
          Read Number of Supported IAC (Octet 11 - Bit 2)
          Read Current IAC LAP (Octet 11 - Bit 3)
          Write Current IAC LAP (Octet 11 - Bit 4)
          Read Page Scan Mode (Octet 11 - Bit 7)
          Write Page Scan Mode (Octet 12 - Bit 0)
          Set AFH Host Channel Classification (Octet 12 - Bit 1)
          Read Inquiry Scan Type (Octet 12 - Bit 4)
          Write Inquiry Scan Type (Octet 12 - Bit 5)
          Read Inquiry Mode (Octet 12 - Bit 6)
          Write Inquiry Mode (Octet 12 - Bit 7)
          Read Page Scan Type (Octet 13 - Bit 0)
          Write Page Scan Type (Octet 13 - Bit 1)
          Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
          Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
          Read Local Version Information (Octet 14 - Bit 3)
          Read Local Supported Features (Octet 14 - Bit 5)
          Read Local Extended Features (Octet 14 - Bit 6)
          Read Buffer Size (Octet 14 - Bit 7)
          Read Country Code (Octet 15 - Bit 0)
          Read BD ADDR (Octet 15 - Bit 1)
          Read Failed Contact Counter (Octet 15 - Bit 2)
          Reset Failed Contact Counter (Octet 15 - Bit 3)
          Read Link Quality (Octet 15 - Bit 4)
          Read RSSI (Octet 15 - Bit 5)
          Read AFH Channel Map (Octet 15 - Bit 6)
          Read Clock (Octet 15 - Bit 7)
          Read Loopback Mode (Octet 16 - Bit 0)
          Write Loopback Mode (Octet 16 - Bit 1)
          Enable Device Under Test Mode (Octet 16 - Bit 2)
          Setup Synchronous Connection (Octet 16 - Bit 3)
          Accept Synchronous Connection Request (Octet 16 - Bit 4)
          Reject Synchronous Connection Request (Octet 16 - Bit 5)
          Read Extended Inquiry Response (Octet 17 - Bit 0)
          Write Extended Inquiry Response (Octet 17 - Bit 1)
          Refresh Encryption Key (Octet 17 - Bit 2)
          Sniff Subrating (Octet 17 - Bit 4)
          Read Simple Pairing Mode (Octet 17 - Bit 5)
          Write Simple Pairing Mode (Octet 17 - Bit 6)
          Read Local OOB Data (Octet 17 - Bit 7)
          Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
          Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
          IO Capability Request Reply (Octet 18 - Bit 7)
          User Confirmation Request Reply (Octet 19 - Bit 0)
          User Confirmation Request Neg Reply (Octet 19 - Bit 1)
          User Passkey Request Reply (Octet 19 - Bit 2)
          User Passkey Request Negative Reply (Octet 19 - Bit 3)
          Remote OOB Data Request Reply (Octet 19 - Bit 4)
          Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
          Enhanced Flush (Octet 19 - Bit 6)
          Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
          Send Keypress Notification (Octet 20 - Bit 2)
          IO Capability Request Negative Reply (Octet 20 - Bit 3)
          Read Encryption Key Size (Octet 20 - Bit 4)
          Set Event Mask Page 2 (Octet 22 - Bit 2)
          Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
          Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
          Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
          Read Local Supported Codecs (Octet 29 - Bit 5)
          Set Triggered Clock Capture (Octet 30 - Bit 5)
          Truncated Page (Octet 30 - Bit 6)
          Truncated Page Cancel (Octet 30 - Bit 7)
          Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
          Start Synchronization Train (Octet 31 - Bit 2)
          Set Reserved LT_ADDR (Octet 31 - Bit 4)
          Delete Reserved LT_ADDR (Octet 31 - Bit 5)
          Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
          Read Synchronization Train Parameters (Octet 31 - Bit 7)
          Write Synchronization Train Parameters (Octet 32 - Bit 0)
          Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
          Read Local OOB Extended Data (Octet 32 - Bit 6)
          Write Secure Connections Test Mode (Octet 32 - Bit 7)
          Read Extended Page Timeout (Octet 33 - Bit 0)
          Write Extended Page Timeout (Octet 33 - Bit 1)
          Read Extended Inquiry Length (Octet 33 - Bit 2)
          Write Extended Inquiry Length (Octet 33 - Bit 3)
          LE Set Data Length (Octet 33 - Bit 6)
          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
          LE Read Local P-256 Public Key (Octet 34 - Bit 1)
          LE Generate DHKey (Octet 34 - Bit 2)
          LE Add Device To Resolving List (Octet 34 - Bit 3)
          LE Remove Device From Resolving List (Octet 34 - Bit 4)
          LE Clear Resolving List (Octet 34 - Bit 5)
          LE Read Resolving List Size (Octet 34 - Bit 6)
          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
          LE Read Local Resolvable Address (Octet 35 - Bit 0)
          LE Set Address Resolution Enable (Octet 35 - Bit 1)
          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
          LE Read Maximum Data Length (Octet 35 - Bit 3)
          Octet 35 - Bit 4 
          Octet 35 - Bit 5 
          Octet 35 - Bit 6 
          Octet 35 - Bit 7 
          Octet 36 - Bit 0 
< HCI Command: Write Simple Pairing Mode (0x03|0x0056) plen 1  [hci0] 10.869023
        Mode: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869185
      Write Simple Pairing Mode (0x03|0x0056) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1         [hci0] 10.869239
        Mode: Inquiry Result with RSSI or Extended Inquiry Result (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869371
      Write Inquiry Mode (0x03|0x0045) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Inquiry Response T.. (0x03|0x0058) plen 0  [hci0] 10.869396
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.869552
      Read Inquiry Response TX Power Level (0x03|0x0058) ncmd 1
        Status: Success (0x00)
        TX power: -1 dBm
< HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.869572
        Page: 1
> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.869729
      Read Local Extended Features (0x04|0x0004) ncmd 1
        Status: Success (0x00)
        Page: 1/2
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Set Event Mask (0x03|0x0001) plen 8             [hci0] 10.869783
        Mask: 0x3dbff807fffbffff
          Inquiry Complete
          Inquiry Result
          Connection Complete
          Connection Request
          Disconnection Complete
          Authentication Complete
          Remote Name Request Complete
          Encryption Change
          Change Connection Link Key Complete
          Master Link Key Complete
          Read Remote Supported Features Complete
          Read Remote Version Information Complete
          QoS Setup Complete
          Command Complete
          Command Status
          Hardware Error
          Flush Occurred
          Role Change
          Mode Change
          Return Link Keys
          PIN Code Request
          Link Key Request
          Link Key Notification
          Loopback Command
          Data Buffer Overflow
          Max Slots Change
          Read Clock Offset Complete
          Connection Packet Type Changed
          QoS Violation
          Page Scan Mode Change
          Page Scan Repetition Mode Change
          Flow Specification Complete
          Inquiry Result with RSSI
          Read Remote Extended Features Complete
          Synchronous Connection Complete
          Synchronous Connection Changed
          Sniff Subrating
          Extended Inquiry Result
          Encryption Key Refresh Complete
          IO Capability Request
          IO Capability Request Reply
          User Confirmation Request
          User Passkey Request
          Remote OOB Data Request
          Simple Pairing Complete
          Link Supervision Timeout Changed
          Enhanced Flush Complete
          User Passkey Notification
          Keypress Notification
          Remote Host Supported Features Notification
          LE Meta
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869921
      Set Event Mask (0x03|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Stored Link Key (0x03|0x000d) plen 7       [hci0] 10.869947
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Read all: 0x01
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870129
      Read Stored Link Key (0x03|0x000d) ncmd 1
        Status: Success (0x00)
        Max num keys: 4
        Num keys: 0
< HCI Command: Write Default Link Poli.. (0x02|0x000f) plen 2  [hci0] 10.870148
        Link policy: 0x0005
          Enable Role Switch
          Enable Sniff Mode
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870310
      Write Default Link Policy Settings (0x02|0x000f) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Page Scan Activity (0x03|0x001b) plen 0    [hci0] 10.870331
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870485
      Read Page Scan Activity (0x03|0x001b) ncmd 1
        Status: Success (0x00)
        Interval: 1280.000 msec (0x0800)
        Window: 11.250 msec (0x0012)
< HCI Command: Read Page Scan Type (0x03|0x0046) plen 0        [hci0] 10.870504
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.870652
      Read Page Scan Type (0x03|0x0046) ncmd 1
        Status: Success (0x00)
        Type: Standard Scan (0x00)
< HCI Command: LE Set Event Mask (0x08|0x0001) plen 8          [hci0] 10.870671
        Mask: 0x0000000000000980
          LE Read Local P-256 Public Key Complete
          LE Generate DHKey Complete
          Unknown mask (0x0000000000000800)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870839
      LE Set Event Mask (0x08|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: Write LE Host Supported (0x03|0x006d) plen 2    [hci0] 10.870859
        Supported: 0x01
        Simultaneous: 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871028
      Write LE Host Supported (0x03|0x006d) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.871059
        Page: 2
> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.871201
      Read Local Extended Features (0x04|0x0004) ncmd 1
        Status: Success (0x00)
        Page: 2/2
        Features: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
          Connectionless Slave Broadcast - Master
          Synchronization Train
          Generalized interlaced scan
          Secure Connections (Controller Support)
          Ping
          Train nudging
< HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7     [hci0] 10.871240
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Delete all: 0x01
> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.871384
      Delete Stored Link Key (0x03|0x0012) ncmd 1
        Status: Success (0x00)
        Num keys: 0
< HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8      [hci0] 10.871403
        Mask: 0x0000000000b0c000
          Triggered Clock Capture
          Synchronization Train Complete
          Slave Page Response Timeout
          Connectionless Slave Broadcast Channel Map Change
          Authenticated Payload Timeout Expired
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871566
      Set Event Mask Page 2 (0x03|0x0063) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Supported Co.. (0x04|0x000b) plen 0  [hci0] 10.871599
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.871750
      Read Local Supported Codecs (0x04|0x000b) ncmd 1
        Status: Success (0x00)
        Number of supported codecs: 2
          Codec: CVSD (0x02)
          Codec: Transparent (0x03)
        Number of vendor codecs: 0
< HCI Command: Read Synchronization Tr.. (0x03|0x0077) plen 0  [hci0] 10.871769
> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.871928
      Read Synchronization Train Parameters (0x03|0x0077) ncmd 1
        Status: Success (0x00)
        Interval: 0.000 msec (0x0000)
        Timeout: 0.000 msec (0x00000000)
        Service data: 0x00
< HCI Command: Write Secure Connection.. (0x03|0x007a) plen 1  [hci0] 10.871947
        Support: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872098
      Write Secure Connections Host Support (0x03|0x007a) ncmd 1
        Status: Success (0x00)
< HCI Command: Unknown (0x08|0x0031) plen 3                    [hci0] 10.872156
        03 00 00                                         ...             
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872322
      Unknown (0x08|0x0031) ncmd 1
        Status: Success (0x00)
= Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)               [hci0] 10.872361
< HCI Command: LE Set Scan Response D.. (0x08|0x0009) plen 32  [hci0] 10.872431
        Length: 10
        Name (complete): builder
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872606
      LE Set Scan Response Data (0x08|0x0009) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 10.872627
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872819
      Write Scan Enable (0x03|0x001a) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Class of Device (0x03|0x0024) plen 3      [hci0] 10.872841
        Class: 0x000000
          Major class: Miscellaneous
          Minor class: 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873036
      Write Class of Device (0x03|0x0024) ncmd 1
        Status: Success (0x00)
* Unknown packet (code 17 len 9)                               [hci0] 10.873069
        02 00 00 00 07 00 00 00 00                       .........       
* Unknown packet (code 17 len 9)                               [hci0] 10.873069
        01 00 00 00 07 00 00 00 00                       .........       
< HCI Command: Write Local Name (0x03|0x0013) plen 248         [hci0] 10.873096
        Name: builder
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873446
      Write Local Name (0x03|0x0013) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Extended Inquir.. (0x03|0x0052) plen 241  [hci0] 10.873470
        FEC: Not required (0x00)
        Name (complete): builder
        TX power: -1 dBm
        Device ID: USB Implementer's Forum assigned (0x0002)
          Vendor: Linux Foundation (0x1d6b)
          Product: 0x0246
          Version: 5.2.11 (0x052b)
        16-bit Service UUIDs (complete): 4 entries
          Generic Access Profile (0x1800)
          Generic Attribute Profile (0x1801)
          A/V Remote Control (0x110e)
          A/V Remote Control Target (0x110c)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873857
      Write Extended Inquiry Response (0x03|0x0052) ncmd 1
        Status: Success (0x00)
* Unknown packet (code 17 len 13)                              [hci0] 10.873903
        01 00 00 00 01 00 05 00 00 d1 0a 00 00           .............   
* Unknown packet (code 17 len 10)                              [hci0] 10.873913
        02 00 00 00 06 00 d1 0a 00 00                    ..........      
* Unknown packet (code 16 len 7)                               [hci0] 17.803939
        01 00 00 00 05 00 00                             .......         
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 17.803983
        Scan enable: No Scans (0x00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 17.804233
      Write Scan Enable (0x03|0x001a) ncmd 1
        Status: Success (0x00)
< HCI Command: Vendor (0x3f|0x006f) plen 6                     [hci0] 17.804282
        01 06 02 00 00 00                                ......          
> HCI Event: Unknown (0xe4) plen 5                             [hci0] 17.804636
        02 06 01 00 00                                   .....           
* Unknown packet (code 17 len 13)                              [hci0] 17.811580
        01 00 00 00 01 00 05 00 00 d0 0a 00 00           .............   
* Unknown packet (code 17 len 10)                              [hci0] 17.811596
        02 00 00 00 06 00 d0 0a 00 00                    ..........      
= Close Index: 00:00:46:76:22:01                               [hci0] 17.811625

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-23 14:09             ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-23 14:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2018-05-23 at 14:31 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >> 
> >> [ ... ]
> >> 
> >>>> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
> >>>> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
> >>>> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
> >>>> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
> >>> 
> >>> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
> >>> 
> >>> Regards
> >>> 
> >>> Marcel
> >>> 
> >> 
> >> Sure, I'll send you the trace.log with the change is active.
> >> 
> >> 	Sean
> >> 
> > 
> > 
> > Attached trace.log was captured when I inputted commands power on and
> > then off in bluetoothctl.
> 
> the trace.log is somehow mangled. Something is not fully correct. Can you read it with btmon -r trace.log?
> 
> Regards
> 
> Marcel
> 

Yes, I can read it with btmon -r trace.log.

I post it as plain text as below 


Bluetooth monitor ver 5.37
= Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
= Note: Bluetooth subsystem version 2.22                               0.641502
= New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
* Unknown packet (code 14 len 30)                                      0.641509
        01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
        75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
* Unknown packet (code 14 len 30)                                      0.641592
        02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
        6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
* Unknown packet (code 16 len 7)                                [hci0] 6.536771
        01 00 00 00 05 00 01                             .......         
= Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
= Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
        02 01 01 00 00                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
        02 01 01 00 00                                   .....           
< HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
        01 07 01 00 04                                   .....           
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
        02 07 01 00 00                                   .....           
< HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
        01 06 02 00 00 01                                ......          
> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
        02 06 01 00 00                                   .....           
< HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
      Reset (0x03|0x0003) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
      Read Local Supported Features (0x04|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          SCO link
          HV2 packets
          HV3 packets
          CVSD synchronous data
          Power control
          Transparent synchronous data
          Broadcast Encryption
          Enhanced Data Rate ACL 2 Mbps mode
          Enhanced Data Rate ACL 3 Mbps mode
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          Extended SCO link (EV3 packets)
          EV4 packets
          EV5 packets
          AFH capable slave
          AFH classification slave
          LE Supported (Controller)
          3-slot Enhanced Data Rate ACL packets
          5-slot Enhanced Data Rate ACL packets
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Enhanced Data Rate eSCO 2 Mbps mode
          Enhanced Data Rate eSCO 3 Mbps mode
          3-slot Enhanced Data Rate eSCO packets
          Extended Inquiry Response
          Simultaneous LE and BR/EDR (Controller)
          Secure Simple Pairing
          Encapsulated PDU
          Erroneous Data Reporting
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
        29 19 09 17 20 48 07 11 00                       )... H...       
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
      Read Local Version Information (0x04|0x0001) ncmd 1
        Status: Success (0x00)
        HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
        LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
        Manufacturer: MediaTek, Inc. (70)
< HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
      Read BD ADDR (0x04|0x0009) ncmd 1
        Status: Success (0x00)
        Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
< HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
      Read Buffer Size (0x04|0x0005) ncmd 1
        Status: Success (0x00)
        ACL MTU: 1021 ACL max packet: 8
        SCO MTU: 184  SCO max packet: 1
< HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
      Read Class of Device (0x03|0x0023) ncmd 1
        Status: Success (0x00)
        Class: 0x001f00
          Major class: Uncategorized, specific device code not specified
          Minor class: 0x00
< HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
      Read Local Name (0x03|0x0014) ncmd 1
        Status: Success (0x00)
        Name: MTK MT7622 #1
< HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
      Read Voice Setting (0x03|0x0025) ncmd 1
        Status: Success (0x00)
        Setting: 0x0060
          Input Coding: Linear
          Input Data Format: 2's complement
          Input Sample Size: 16-bit
          # of bits padding at MSB: 0
          Air Coding Format: CVSD
< HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
      Read Number of Supported IAC (0x03|0x0038) ncmd 1
        Status: Success (0x00)
        Number of IAC: 4
< HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
      Read Current IAC LAP (0x03|0x0039) ncmd 1
        Status: Success (0x00)
        Number of IAC: 1
        Access code: 0x9e8b33 (General Inquiry)
< HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
        Type: Clear All Filters (0x00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
      Set Event Filter (0x03|0x0005) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
        Timeout: 20000.000 msec (0x7d00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
      LE Read Buffer Size (0x08|0x0002) ncmd 1
        Status: Success (0x00)
        Data packet length: 251
        Num data packets: 8
< HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
      LE Read Local Supported Features (0x08|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          LE Encryption
          Extended Reject Indication
          Slave-initiated Features Exchange
          LE Ping
          LE Data Packet Length Extension
          LL Privacy
          Extended Scanner Filter Policies
< HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
      LE Read Supported States (0x08|0x001c) ncmd 1
        Status: Success (0x00)
        States: 0x000000001fffffff
          Non-connectable Advertising State
          Scannable Advertising State
          Connectable Advertising State
          High Duty Cycle Directed Advertising State
          Passive Scanning State
          Active Scanning State
          Initiating State
            and Connection State (Master Role)
          Connection State (Slave Role)
          Non-connectable Advertising State
            and Passive Scanning State
          Scannable Advertising State
            and Passive Scanning State
          Connectable Advertising State
            and Passive Scanning State
          High Duty Cycle Directed Advertising State
            and Passive Scanning State
          Non-connectable Advertising State
            and Active Scanning State
          Scannable Advertising State
            and Active Scanning State
          Connectable Advertising State
            and Active Scanning State
          High Duty Cycle Directed Advertising State
            and Active Scanning State
          Non-connectable Advertising State
            and Initiating State
          Scannable Advertising State
            and Initiating State
          Non-connectable Advertising State
            and Connection State (Master Role)
          Scannable Advertising State
            and Connection State (Master Role)
          Non-connectable Advertising State
            and Connection State (Slave Role)
          Scannable Advertising State
            and Connection State (Slave Role)
          Passive Scanning State
            and Initiating State
          Active Scanning State
            and Initiating State
          Passive Scanning State
            and Connection State (Master Role)
          Active Scanning State
            and Connection State (Master Role)
          Passive Scanning State
            and Connection State (Slave Role)
          Active Scanning State
            and Connection State (Slave Role)
          Initiating State
            and Connection State (Master Role)
            and Master Role & Master Role
< HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
      Read Local Supported Commands (0x04|0x0002) ncmd 1
        Status: Success (0x00)
        Commands: 176 entries
          Inquiry (Octet 0 - Bit 0)
          Inquiry Cancel (Octet 0 - Bit 1)
          Periodic Inquiry Mode (Octet 0 - Bit 2)
          Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
          Create Connection (Octet 0 - Bit 4)
          Disconnect (Octet 0 - Bit 5)
          Add SCO Connection (Octet 0 - Bit 6)
          Create Connection Cancel (Octet 0 - Bit 7)
          Accept Connection Request (Octet 1 - Bit 0)
          Reject Connection Request (Octet 1 - Bit 1)
          Link Key Request Reply (Octet 1 - Bit 2)
          Link Key Request Negative Reply (Octet 1 - Bit 3)
          PIN Code Request Reply (Octet 1 - Bit 4)
          PIN Code Request Negative Reply (Octet 1 - Bit 5)
          Change Connection Packet Type (Octet 1 - Bit 6)
          Authentication Requested (Octet 1 - Bit 7)
          Set Connection Encryption (Octet 2 - Bit 0)
          Change Connection Link Key (Octet 2 - Bit 1)
          Master Link Key (Octet 2 - Bit 2)
          Remote Name Request (Octet 2 - Bit 3)
          Remote Name Request Cancel (Octet 2 - Bit 4)
          Read Remote Supported Features (Octet 2 - Bit 5)
          Read Remote Extended Features (Octet 2 - Bit 6)
          Read Remote Version Information (Octet 2 - Bit 7)
          Read Clock Offset (Octet 3 - Bit 0)
          Read LMP Handle (Octet 3 - Bit 1)
          Sniff Mode (Octet 4 - Bit 2)
          Exit Sniff Mode (Octet 4 - Bit 3)
          QoS Setup (Octet 4 - Bit 6)
          Role Discovery (Octet 4 - Bit 7)
          Switch Role (Octet 5 - Bit 0)
          Read Link Policy Settings (Octet 5 - Bit 1)
          Write Link Policy Settings (Octet 5 - Bit 2)
          Read Default Link Policy Settings (Octet 5 - Bit 3)
          Write Default Link Policy Settings (Octet 5 - Bit 4)
          Flow Specification (Octet 5 - Bit 5)
          Set Event Mask (Octet 5 - Bit 6)
          Reset (Octet 5 - Bit 7)
          Set Event Filter (Octet 6 - Bit 0)
          Flush (Octet 6 - Bit 1)
          Read PIN Type (Octet 6 - Bit 2)
          Write PIN Type (Octet 6 - Bit 3)
          Create New Unit Key (Octet 6 - Bit 4)
          Read Stored Link Key (Octet 6 - Bit 5)
          Write Stored Link Key (Octet 6 - Bit 6)
          Delete Stored Link Key (Octet 6 - Bit 7)
          Write Local Name (Octet 7 - Bit 0)
          Read Local Name (Octet 7 - Bit 1)
          Read Connection Accept Timeout (Octet 7 - Bit 2)
          Write Connection Accept Timeout (Octet 7 - Bit 3)
          Read Page Timeout (Octet 7 - Bit 4)
          Write Page Timeout (Octet 7 - Bit 5)
          Read Scan Enable (Octet 7 - Bit 6)
          Write Scan Enable (Octet 7 - Bit 7)
          Read Page Scan Activity (Octet 8 - Bit 0)
          Write Page Scan Activity (Octet 8 - Bit 1)
          Read Inquiry Scan Activity (Octet 8 - Bit 2)
          Write Inquiry Scan Activity (Octet 8 - Bit 3)
          Read Authentication Enable (Octet 8 - Bit 4)
          Write Authentication Enable (Octet 8 - Bit 5)
          Read Encryption Mode (Octet 8 - Bit 6)
          Write Encryption Mode (Octet 8 - Bit 7)
          Read Class of Device (Octet 9 - Bit 0)
          Write Class of Device (Octet 9 - Bit 1)
          Read Voice Setting (Octet 9 - Bit 2)
          Write Voice Setting (Octet 9 - Bit 3)
          Read Automatic Flush Timeout (Octet 9 - Bit 4)
          Write Automatic Flush Timeout (Octet 9 - Bit 5)
          Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
          Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
          Read Transmit Power Level (Octet 10 - Bit 2)
          Read Sync Flow Control Enable (Octet 10 - Bit 3)
          Write Sync Flow Control Enable (Octet 10 - Bit 4)
          Set Controller To Host Flow Control (Octet 10 - Bit 5)
          Host Buffer Size (Octet 10 - Bit 6)
          Host Number of Completed Packets (Octet 10 - Bit 7)
          Read Link Supervision Timeout (Octet 11 - Bit 0)
          Write Link Supervision Timeout (Octet 11 - Bit 1)
          Read Number of Supported IAC (Octet 11 - Bit 2)
          Read Current IAC LAP (Octet 11 - Bit 3)
          Write Current IAC LAP (Octet 11 - Bit 4)
          Read Page Scan Mode (Octet 11 - Bit 7)
          Write Page Scan Mode (Octet 12 - Bit 0)
          Set AFH Host Channel Classification (Octet 12 - Bit 1)
          Read Inquiry Scan Type (Octet 12 - Bit 4)
          Write Inquiry Scan Type (Octet 12 - Bit 5)
          Read Inquiry Mode (Octet 12 - Bit 6)
          Write Inquiry Mode (Octet 12 - Bit 7)
          Read Page Scan Type (Octet 13 - Bit 0)
          Write Page Scan Type (Octet 13 - Bit 1)
          Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
          Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
          Read Local Version Information (Octet 14 - Bit 3)
          Read Local Supported Features (Octet 14 - Bit 5)
          Read Local Extended Features (Octet 14 - Bit 6)
          Read Buffer Size (Octet 14 - Bit 7)
          Read Country Code (Octet 15 - Bit 0)
          Read BD ADDR (Octet 15 - Bit 1)
          Read Failed Contact Counter (Octet 15 - Bit 2)
          Reset Failed Contact Counter (Octet 15 - Bit 3)
          Read Link Quality (Octet 15 - Bit 4)
          Read RSSI (Octet 15 - Bit 5)
          Read AFH Channel Map (Octet 15 - Bit 6)
          Read Clock (Octet 15 - Bit 7)
          Read Loopback Mode (Octet 16 - Bit 0)
          Write Loopback Mode (Octet 16 - Bit 1)
          Enable Device Under Test Mode (Octet 16 - Bit 2)
          Setup Synchronous Connection (Octet 16 - Bit 3)
          Accept Synchronous Connection Request (Octet 16 - Bit 4)
          Reject Synchronous Connection Request (Octet 16 - Bit 5)
          Read Extended Inquiry Response (Octet 17 - Bit 0)
          Write Extended Inquiry Response (Octet 17 - Bit 1)
          Refresh Encryption Key (Octet 17 - Bit 2)
          Sniff Subrating (Octet 17 - Bit 4)
          Read Simple Pairing Mode (Octet 17 - Bit 5)
          Write Simple Pairing Mode (Octet 17 - Bit 6)
          Read Local OOB Data (Octet 17 - Bit 7)
          Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
          Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
          IO Capability Request Reply (Octet 18 - Bit 7)
          User Confirmation Request Reply (Octet 19 - Bit 0)
          User Confirmation Request Neg Reply (Octet 19 - Bit 1)
          User Passkey Request Reply (Octet 19 - Bit 2)
          User Passkey Request Negative Reply (Octet 19 - Bit 3)
          Remote OOB Data Request Reply (Octet 19 - Bit 4)
          Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
          Enhanced Flush (Octet 19 - Bit 6)
          Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
          Send Keypress Notification (Octet 20 - Bit 2)
          IO Capability Request Negative Reply (Octet 20 - Bit 3)
          Read Encryption Key Size (Octet 20 - Bit 4)
          Set Event Mask Page 2 (Octet 22 - Bit 2)
          Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
          Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
          Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
          Read Local Supported Codecs (Octet 29 - Bit 5)
          Set Triggered Clock Capture (Octet 30 - Bit 5)
          Truncated Page (Octet 30 - Bit 6)
          Truncated Page Cancel (Octet 30 - Bit 7)
          Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
          Start Synchronization Train (Octet 31 - Bit 2)
          Set Reserved LT_ADDR (Octet 31 - Bit 4)
          Delete Reserved LT_ADDR (Octet 31 - Bit 5)
          Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
          Read Synchronization Train Parameters (Octet 31 - Bit 7)
          Write Synchronization Train Parameters (Octet 32 - Bit 0)
          Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
          Read Local OOB Extended Data (Octet 32 - Bit 6)
          Write Secure Connections Test Mode (Octet 32 - Bit 7)
          Read Extended Page Timeout (Octet 33 - Bit 0)
          Write Extended Page Timeout (Octet 33 - Bit 1)
          Read Extended Inquiry Length (Octet 33 - Bit 2)
          Write Extended Inquiry Length (Octet 33 - Bit 3)
          LE Set Data Length (Octet 33 - Bit 6)
          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
          LE Read Local P-256 Public Key (Octet 34 - Bit 1)
          LE Generate DHKey (Octet 34 - Bit 2)
          LE Add Device To Resolving List (Octet 34 - Bit 3)
          LE Remove Device From Resolving List (Octet 34 - Bit 4)
          LE Clear Resolving List (Octet 34 - Bit 5)
          LE Read Resolving List Size (Octet 34 - Bit 6)
          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
          LE Read Local Resolvable Address (Octet 35 - Bit 0)
          LE Set Address Resolution Enable (Octet 35 - Bit 1)
          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
          LE Read Maximum Data Length (Octet 35 - Bit 3)
          Octet 35 - Bit 4 
          Octet 35 - Bit 5 
          Octet 35 - Bit 6 
          Octet 35 - Bit 7 
          Octet 36 - Bit 0 
< HCI Command: Write Simple Pairing Mode (0x03|0x0056) plen 1  [hci0] 10.869023
        Mode: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869185
      Write Simple Pairing Mode (0x03|0x0056) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1         [hci0] 10.869239
        Mode: Inquiry Result with RSSI or Extended Inquiry Result (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869371
      Write Inquiry Mode (0x03|0x0045) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Inquiry Response T.. (0x03|0x0058) plen 0  [hci0] 10.869396
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.869552
      Read Inquiry Response TX Power Level (0x03|0x0058) ncmd 1
        Status: Success (0x00)
        TX power: -1 dBm
< HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.869572
        Page: 1
> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.869729
      Read Local Extended Features (0x04|0x0004) ncmd 1
        Status: Success (0x00)
        Page: 1/2
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Set Event Mask (0x03|0x0001) plen 8             [hci0] 10.869783
        Mask: 0x3dbff807fffbffff
          Inquiry Complete
          Inquiry Result
          Connection Complete
          Connection Request
          Disconnection Complete
          Authentication Complete
          Remote Name Request Complete
          Encryption Change
          Change Connection Link Key Complete
          Master Link Key Complete
          Read Remote Supported Features Complete
          Read Remote Version Information Complete
          QoS Setup Complete
          Command Complete
          Command Status
          Hardware Error
          Flush Occurred
          Role Change
          Mode Change
          Return Link Keys
          PIN Code Request
          Link Key Request
          Link Key Notification
          Loopback Command
          Data Buffer Overflow
          Max Slots Change
          Read Clock Offset Complete
          Connection Packet Type Changed
          QoS Violation
          Page Scan Mode Change
          Page Scan Repetition Mode Change
          Flow Specification Complete
          Inquiry Result with RSSI
          Read Remote Extended Features Complete
          Synchronous Connection Complete
          Synchronous Connection Changed
          Sniff Subrating
          Extended Inquiry Result
          Encryption Key Refresh Complete
          IO Capability Request
          IO Capability Request Reply
          User Confirmation Request
          User Passkey Request
          Remote OOB Data Request
          Simple Pairing Complete
          Link Supervision Timeout Changed
          Enhanced Flush Complete
          User Passkey Notification
          Keypress Notification
          Remote Host Supported Features Notification
          LE Meta
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869921
      Set Event Mask (0x03|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Stored Link Key (0x03|0x000d) plen 7       [hci0] 10.869947
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Read all: 0x01
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870129
      Read Stored Link Key (0x03|0x000d) ncmd 1
        Status: Success (0x00)
        Max num keys: 4
        Num keys: 0
< HCI Command: Write Default Link Poli.. (0x02|0x000f) plen 2  [hci0] 10.870148
        Link policy: 0x0005
          Enable Role Switch
          Enable Sniff Mode
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870310
      Write Default Link Policy Settings (0x02|0x000f) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Page Scan Activity (0x03|0x001b) plen 0    [hci0] 10.870331
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870485
      Read Page Scan Activity (0x03|0x001b) ncmd 1
        Status: Success (0x00)
        Interval: 1280.000 msec (0x0800)
        Window: 11.250 msec (0x0012)
< HCI Command: Read Page Scan Type (0x03|0x0046) plen 0        [hci0] 10.870504
> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.870652
      Read Page Scan Type (0x03|0x0046) ncmd 1
        Status: Success (0x00)
        Type: Standard Scan (0x00)
< HCI Command: LE Set Event Mask (0x08|0x0001) plen 8          [hci0] 10.870671
        Mask: 0x0000000000000980
          LE Read Local P-256 Public Key Complete
          LE Generate DHKey Complete
          Unknown mask (0x0000000000000800)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870839
      LE Set Event Mask (0x08|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: Write LE Host Supported (0x03|0x006d) plen 2    [hci0] 10.870859
        Supported: 0x01
        Simultaneous: 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871028
      Write LE Host Supported (0x03|0x006d) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.871059
        Page: 2
> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.871201
      Read Local Extended Features (0x04|0x0004) ncmd 1
        Status: Success (0x00)
        Page: 2/2
        Features: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
          Connectionless Slave Broadcast - Master
          Synchronization Train
          Generalized interlaced scan
          Secure Connections (Controller Support)
          Ping
          Train nudging
< HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7     [hci0] 10.871240
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Delete all: 0x01
> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.871384
      Delete Stored Link Key (0x03|0x0012) ncmd 1
        Status: Success (0x00)
        Num keys: 0
< HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8      [hci0] 10.871403
        Mask: 0x0000000000b0c000
          Triggered Clock Capture
          Synchronization Train Complete
          Slave Page Response Timeout
          Connectionless Slave Broadcast Channel Map Change
          Authenticated Payload Timeout Expired
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871566
      Set Event Mask Page 2 (0x03|0x0063) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Supported Co.. (0x04|0x000b) plen 0  [hci0] 10.871599
> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.871750
      Read Local Supported Codecs (0x04|0x000b) ncmd 1
        Status: Success (0x00)
        Number of supported codecs: 2
          Codec: CVSD (0x02)
          Codec: Transparent (0x03)
        Number of vendor codecs: 0
< HCI Command: Read Synchronization Tr.. (0x03|0x0077) plen 0  [hci0] 10.871769
> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.871928
      Read Synchronization Train Parameters (0x03|0x0077) ncmd 1
        Status: Success (0x00)
        Interval: 0.000 msec (0x0000)
        Timeout: 0.000 msec (0x00000000)
        Service data: 0x00
< HCI Command: Write Secure Connection.. (0x03|0x007a) plen 1  [hci0] 10.871947
        Support: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872098
      Write Secure Connections Host Support (0x03|0x007a) ncmd 1
        Status: Success (0x00)
< HCI Command: Unknown (0x08|0x0031) plen 3                    [hci0] 10.872156
        03 00 00                                         ...             
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872322
      Unknown (0x08|0x0031) ncmd 1
        Status: Success (0x00)
= Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)               [hci0] 10.872361
< HCI Command: LE Set Scan Response D.. (0x08|0x0009) plen 32  [hci0] 10.872431
        Length: 10
        Name (complete): builder
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872606
      LE Set Scan Response Data (0x08|0x0009) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 10.872627
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872819
      Write Scan Enable (0x03|0x001a) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Class of Device (0x03|0x0024) plen 3      [hci0] 10.872841
        Class: 0x000000
          Major class: Miscellaneous
          Minor class: 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873036
      Write Class of Device (0x03|0x0024) ncmd 1
        Status: Success (0x00)
* Unknown packet (code 17 len 9)                               [hci0] 10.873069
        02 00 00 00 07 00 00 00 00                       .........       
* Unknown packet (code 17 len 9)                               [hci0] 10.873069
        01 00 00 00 07 00 00 00 00                       .........       
< HCI Command: Write Local Name (0x03|0x0013) plen 248         [hci0] 10.873096
        Name: builder
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873446
      Write Local Name (0x03|0x0013) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Extended Inquir.. (0x03|0x0052) plen 241  [hci0] 10.873470
        FEC: Not required (0x00)
        Name (complete): builder
        TX power: -1 dBm
        Device ID: USB Implementer's Forum assigned (0x0002)
          Vendor: Linux Foundation (0x1d6b)
          Product: 0x0246
          Version: 5.2.11 (0x052b)
        16-bit Service UUIDs (complete): 4 entries
          Generic Access Profile (0x1800)
          Generic Attribute Profile (0x1801)
          A/V Remote Control (0x110e)
          A/V Remote Control Target (0x110c)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873857
      Write Extended Inquiry Response (0x03|0x0052) ncmd 1
        Status: Success (0x00)
* Unknown packet (code 17 len 13)                              [hci0] 10.873903
        01 00 00 00 01 00 05 00 00 d1 0a 00 00           .............   
* Unknown packet (code 17 len 10)                              [hci0] 10.873913
        02 00 00 00 06 00 d1 0a 00 00                    ..........      
* Unknown packet (code 16 len 7)                               [hci0] 17.803939
        01 00 00 00 05 00 00                             .......         
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 17.803983
        Scan enable: No Scans (0x00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 17.804233
      Write Scan Enable (0x03|0x001a) ncmd 1
        Status: Success (0x00)
< HCI Command: Vendor (0x3f|0x006f) plen 6                     [hci0] 17.804282
        01 06 02 00 00 00                                ......          
> HCI Event: Unknown (0xe4) plen 5                             [hci0] 17.804636
        02 06 01 00 00                                   .....           
* Unknown packet (code 17 len 13)                              [hci0] 17.811580
        01 00 00 00 01 00 05 00 00 d0 0a 00 00           .............   
* Unknown packet (code 17 len 10)                              [hci0] 17.811596
        02 00 00 00 06 00 d0 0a 00 00                    ..........      
= Close Index: 00:00:46:76:22:01                               [hci0] 17.811625

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-23 14:09             ` Sean Wang
@ 2018-05-24  7:47               ` Marcel Holtmann
  -1 siblings, 0 replies; 49+ messages in thread
From: Marcel Holtmann @ 2018-05-24  7:47 UTC (permalink / raw)
  To: Sean Wang
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

Hi Sean,

>>>> 
>>>> [ ... ]
>>>> 
>>>>>> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
>>>>>> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
>>>>>> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
>>>>>> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
>>>>> 
>>>>> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
>>>>> 
>>>>> Regards
>>>>> 
>>>>> Marcel
>>>>> 
>>>> 
>>>> Sure, I'll send you the trace.log with the change is active.
>>>> 
>>>> 	Sean
>>>> 
>>> 
>>> 
>>> Attached trace.log was captured when I inputted commands power on and
>>> then off in bluetoothctl.
>> 
>> the trace.log is somehow mangled. Something is not fully correct. Can you read it with btmon -r trace.log?
>> 
>> Regards
>> 
>> Marcel
>> 
> 
> Yes, I can read it with btmon -r trace.log.
> 
> I post it as plain text as below 
> 
> 
> Bluetooth monitor ver 5.37
> = Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
> = Note: Bluetooth subsystem version 2.22                               0.641502
> = New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
> * Unknown packet (code 14 len 30)                                      0.641509
>        01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
>        75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> * Unknown packet (code 14 len 30)                                      0.641592
>        02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
>        6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
>        01 00 00 00 05 00 01                             .......         
> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030

can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.

>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
>        02 01 01 00 00                                   .....           

Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?

> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
>        01 07 01 00 04                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
>        02 07 01 00 00                                   .....           
> < HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
>        01 06 02 00 00 01                                ......          
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
>        02 06 01 00 00                                   .....           

Here it looks like you have 0x006f opcode with first octet 0x01 for command and then vendor event 0xe4 with first octet 0x02 for event. I assume the second octet is then the vendor command code for these.

> < HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
>      Reset (0x03|0x0003) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
>      Read Local Supported Features (0x04|0x0003) ncmd 1
>        Status: Success (0x00)
>        Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
>          3 slot packets
>          5 slot packets
>          Encryption
>          Slot offset
>          Timing accuracy
>          Role switch
>          Sniff mode
>          Power control requests
>          Channel quality driven data rate (CQDDR)
>          SCO link
>          HV2 packets
>          HV3 packets
>          CVSD synchronous data
>          Power control
>          Transparent synchronous data
>          Broadcast Encryption
>          Enhanced Data Rate ACL 2 Mbps mode
>          Enhanced Data Rate ACL 3 Mbps mode
>          Enhanced inquiry scan
>          Interlaced inquiry scan
>          Interlaced page scan
>          RSSI with inquiry results
>          Extended SCO link (EV3 packets)
>          EV4 packets
>          EV5 packets
>          AFH capable slave
>          AFH classification slave
>          LE Supported (Controller)
>          3-slot Enhanced Data Rate ACL packets
>          5-slot Enhanced Data Rate ACL packets
>          Sniff subrating
>          Pause encryption
>          AFH capable master
>          AFH classification master
>          Enhanced Data Rate eSCO 2 Mbps mode
>          Enhanced Data Rate eSCO 3 Mbps mode
>          3-slot Enhanced Data Rate eSCO packets
>          Extended Inquiry Response
>          Simultaneous LE and BR/EDR (Controller)
>          Secure Simple Pairing
>          Encapsulated PDU
>          Erroneous Data Reporting
>          Non-flushable Packet Boundary Flag
>          Link Supervision Timeout Changed Event
>          Inquiry TX Power Level
>          Enhanced Power Control
>          Extended features
> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
>        29 19 09 17 20 48 07 11 00                       )... H…       

Is this meant to happen here?

>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
>      Read Local Version Information (0x04|0x0001) ncmd 1
>        Status: Success (0x00)
>        HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
>        LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
>        Manufacturer: MediaTek, Inc. (70)
> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
>      Read BD ADDR (0x04|0x0009) ncmd 1
>        Status: Success (0x00)
>        Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
> < HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
>> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
>      Read Buffer Size (0x04|0x0005) ncmd 1
>        Status: Success (0x00)
>        ACL MTU: 1021 ACL max packet: 8
>        SCO MTU: 184  SCO max packet: 1
> < HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
>> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
>      Read Class of Device (0x03|0x0023) ncmd 1
>        Status: Success (0x00)
>        Class: 0x001f00
>          Major class: Uncategorized, specific device code not specified
>          Minor class: 0x00
> < HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
>> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
>      Read Local Name (0x03|0x0014) ncmd 1
>        Status: Success (0x00)
>        Name: MTK MT7622 #1
> < HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
>> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
>      Read Voice Setting (0x03|0x0025) ncmd 1
>        Status: Success (0x00)
>        Setting: 0x0060
>          Input Coding: Linear
>          Input Data Format: 2's complement
>          Input Sample Size: 16-bit
>          # of bits padding at MSB: 0
>          Air Coding Format: CVSD
> < HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
>> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
>      Read Number of Supported IAC (0x03|0x0038) ncmd 1
>        Status: Success (0x00)
>        Number of IAC: 4
> < HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
>      Read Current IAC LAP (0x03|0x0039) ncmd 1
>        Status: Success (0x00)
>        Number of IAC: 1
>        Access code: 0x9e8b33 (General Inquiry)
> < HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
>        Type: Clear All Filters (0x00)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
>      Set Event Filter (0x03|0x0005) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
>        Timeout: 20000.000 msec (0x7d00)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
>      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
>> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
>      LE Read Buffer Size (0x08|0x0002) ncmd 1
>        Status: Success (0x00)
>        Data packet length: 251
>        Num data packets: 8
> < HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
>      LE Read Local Supported Features (0x08|0x0003) ncmd 1
>        Status: Success (0x00)
>        Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
>          LE Encryption
>          Extended Reject Indication
>          Slave-initiated Features Exchange
>          LE Ping
>          LE Data Packet Length Extension
>          LL Privacy
>          Extended Scanner Filter Policies
> < HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
>      LE Read Supported States (0x08|0x001c) ncmd 1
>        Status: Success (0x00)
>        States: 0x000000001fffffff
>          Non-connectable Advertising State
>          Scannable Advertising State
>          Connectable Advertising State
>          High Duty Cycle Directed Advertising State
>          Passive Scanning State
>          Active Scanning State
>          Initiating State
>            and Connection State (Master Role)
>          Connection State (Slave Role)
>          Non-connectable Advertising State
>            and Passive Scanning State
>          Scannable Advertising State
>            and Passive Scanning State
>          Connectable Advertising State
>            and Passive Scanning State
>          High Duty Cycle Directed Advertising State
>            and Passive Scanning State
>          Non-connectable Advertising State
>            and Active Scanning State
>          Scannable Advertising State
>            and Active Scanning State
>          Connectable Advertising State
>            and Active Scanning State
>          High Duty Cycle Directed Advertising State
>            and Active Scanning State
>          Non-connectable Advertising State
>            and Initiating State
>          Scannable Advertising State
>            and Initiating State
>          Non-connectable Advertising State
>            and Connection State (Master Role)
>          Scannable Advertising State
>            and Connection State (Master Role)
>          Non-connectable Advertising State
>            and Connection State (Slave Role)
>          Scannable Advertising State
>            and Connection State (Slave Role)
>          Passive Scanning State
>            and Initiating State
>          Active Scanning State
>            and Initiating State
>          Passive Scanning State
>            and Connection State (Master Role)
>          Active Scanning State
>            and Connection State (Master Role)
>          Passive Scanning State
>            and Connection State (Slave Role)
>          Active Scanning State
>            and Connection State (Slave Role)
>          Initiating State
>            and Connection State (Master Role)
>            and Master Role & Master Role
> < HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
>> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
>      Read Local Supported Commands (0x04|0x0002) ncmd 1
>        Status: Success (0x00)
>        Commands: 176 entries
>          Inquiry (Octet 0 - Bit 0)
>          Inquiry Cancel (Octet 0 - Bit 1)
>          Periodic Inquiry Mode (Octet 0 - Bit 2)
>          Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
>          Create Connection (Octet 0 - Bit 4)
>          Disconnect (Octet 0 - Bit 5)
>          Add SCO Connection (Octet 0 - Bit 6)
>          Create Connection Cancel (Octet 0 - Bit 7)
>          Accept Connection Request (Octet 1 - Bit 0)
>          Reject Connection Request (Octet 1 - Bit 1)
>          Link Key Request Reply (Octet 1 - Bit 2)
>          Link Key Request Negative Reply (Octet 1 - Bit 3)
>          PIN Code Request Reply (Octet 1 - Bit 4)
>          PIN Code Request Negative Reply (Octet 1 - Bit 5)
>          Change Connection Packet Type (Octet 1 - Bit 6)
>          Authentication Requested (Octet 1 - Bit 7)
>          Set Connection Encryption (Octet 2 - Bit 0)
>          Change Connection Link Key (Octet 2 - Bit 1)
>          Master Link Key (Octet 2 - Bit 2)
>          Remote Name Request (Octet 2 - Bit 3)
>          Remote Name Request Cancel (Octet 2 - Bit 4)
>          Read Remote Supported Features (Octet 2 - Bit 5)
>          Read Remote Extended Features (Octet 2 - Bit 6)
>          Read Remote Version Information (Octet 2 - Bit 7)
>          Read Clock Offset (Octet 3 - Bit 0)
>          Read LMP Handle (Octet 3 - Bit 1)
>          Sniff Mode (Octet 4 - Bit 2)
>          Exit Sniff Mode (Octet 4 - Bit 3)
>          QoS Setup (Octet 4 - Bit 6)
>          Role Discovery (Octet 4 - Bit 7)
>          Switch Role (Octet 5 - Bit 0)
>          Read Link Policy Settings (Octet 5 - Bit 1)
>          Write Link Policy Settings (Octet 5 - Bit 2)
>          Read Default Link Policy Settings (Octet 5 - Bit 3)
>          Write Default Link Policy Settings (Octet 5 - Bit 4)
>          Flow Specification (Octet 5 - Bit 5)
>          Set Event Mask (Octet 5 - Bit 6)
>          Reset (Octet 5 - Bit 7)
>          Set Event Filter (Octet 6 - Bit 0)
>          Flush (Octet 6 - Bit 1)
>          Read PIN Type (Octet 6 - Bit 2)
>          Write PIN Type (Octet 6 - Bit 3)
>          Create New Unit Key (Octet 6 - Bit 4)
>          Read Stored Link Key (Octet 6 - Bit 5)
>          Write Stored Link Key (Octet 6 - Bit 6)
>          Delete Stored Link Key (Octet 6 - Bit 7)
>          Write Local Name (Octet 7 - Bit 0)
>          Read Local Name (Octet 7 - Bit 1)
>          Read Connection Accept Timeout (Octet 7 - Bit 2)
>          Write Connection Accept Timeout (Octet 7 - Bit 3)
>          Read Page Timeout (Octet 7 - Bit 4)
>          Write Page Timeout (Octet 7 - Bit 5)
>          Read Scan Enable (Octet 7 - Bit 6)
>          Write Scan Enable (Octet 7 - Bit 7)
>          Read Page Scan Activity (Octet 8 - Bit 0)
>          Write Page Scan Activity (Octet 8 - Bit 1)
>          Read Inquiry Scan Activity (Octet 8 - Bit 2)
>          Write Inquiry Scan Activity (Octet 8 - Bit 3)
>          Read Authentication Enable (Octet 8 - Bit 4)
>          Write Authentication Enable (Octet 8 - Bit 5)
>          Read Encryption Mode (Octet 8 - Bit 6)
>          Write Encryption Mode (Octet 8 - Bit 7)
>          Read Class of Device (Octet 9 - Bit 0)
>          Write Class of Device (Octet 9 - Bit 1)
>          Read Voice Setting (Octet 9 - Bit 2)
>          Write Voice Setting (Octet 9 - Bit 3)
>          Read Automatic Flush Timeout (Octet 9 - Bit 4)
>          Write Automatic Flush Timeout (Octet 9 - Bit 5)
>          Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
>          Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
>          Read Transmit Power Level (Octet 10 - Bit 2)
>          Read Sync Flow Control Enable (Octet 10 - Bit 3)
>          Write Sync Flow Control Enable (Octet 10 - Bit 4)
>          Set Controller To Host Flow Control (Octet 10 - Bit 5)
>          Host Buffer Size (Octet 10 - Bit 6)
>          Host Number of Completed Packets (Octet 10 - Bit 7)
>          Read Link Supervision Timeout (Octet 11 - Bit 0)
>          Write Link Supervision Timeout (Octet 11 - Bit 1)
>          Read Number of Supported IAC (Octet 11 - Bit 2)
>          Read Current IAC LAP (Octet 11 - Bit 3)
>          Write Current IAC LAP (Octet 11 - Bit 4)
>          Read Page Scan Mode (Octet 11 - Bit 7)
>          Write Page Scan Mode (Octet 12 - Bit 0)
>          Set AFH Host Channel Classification (Octet 12 - Bit 1)
>          Read Inquiry Scan Type (Octet 12 - Bit 4)
>          Write Inquiry Scan Type (Octet 12 - Bit 5)
>          Read Inquiry Mode (Octet 12 - Bit 6)
>          Write Inquiry Mode (Octet 12 - Bit 7)
>          Read Page Scan Type (Octet 13 - Bit 0)
>          Write Page Scan Type (Octet 13 - Bit 1)
>          Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
>          Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
>          Read Local Version Information (Octet 14 - Bit 3)
>          Read Local Supported Features (Octet 14 - Bit 5)
>          Read Local Extended Features (Octet 14 - Bit 6)
>          Read Buffer Size (Octet 14 - Bit 7)
>          Read Country Code (Octet 15 - Bit 0)
>          Read BD ADDR (Octet 15 - Bit 1)
>          Read Failed Contact Counter (Octet 15 - Bit 2)
>          Reset Failed Contact Counter (Octet 15 - Bit 3)
>          Read Link Quality (Octet 15 - Bit 4)
>          Read RSSI (Octet 15 - Bit 5)
>          Read AFH Channel Map (Octet 15 - Bit 6)
>          Read Clock (Octet 15 - Bit 7)
>          Read Loopback Mode (Octet 16 - Bit 0)
>          Write Loopback Mode (Octet 16 - Bit 1)
>          Enable Device Under Test Mode (Octet 16 - Bit 2)
>          Setup Synchronous Connection (Octet 16 - Bit 3)
>          Accept Synchronous Connection Request (Octet 16 - Bit 4)
>          Reject Synchronous Connection Request (Octet 16 - Bit 5)
>          Read Extended Inquiry Response (Octet 17 - Bit 0)
>          Write Extended Inquiry Response (Octet 17 - Bit 1)
>          Refresh Encryption Key (Octet 17 - Bit 2)
>          Sniff Subrating (Octet 17 - Bit 4)
>          Read Simple Pairing Mode (Octet 17 - Bit 5)
>          Write Simple Pairing Mode (Octet 17 - Bit 6)
>          Read Local OOB Data (Octet 17 - Bit 7)
>          Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
>          Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
>          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
>          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
>          IO Capability Request Reply (Octet 18 - Bit 7)
>          User Confirmation Request Reply (Octet 19 - Bit 0)
>          User Confirmation Request Neg Reply (Octet 19 - Bit 1)
>          User Passkey Request Reply (Octet 19 - Bit 2)
>          User Passkey Request Negative Reply (Octet 19 - Bit 3)
>          Remote OOB Data Request Reply (Octet 19 - Bit 4)
>          Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
>          Enhanced Flush (Octet 19 - Bit 6)
>          Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
>          Send Keypress Notification (Octet 20 - Bit 2)
>          IO Capability Request Negative Reply (Octet 20 - Bit 3)
>          Read Encryption Key Size (Octet 20 - Bit 4)
>          Set Event Mask Page 2 (Octet 22 - Bit 2)
>          Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
>          Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
>          Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
>          Read Local Supported Codecs (Octet 29 - Bit 5)
>          Set Triggered Clock Capture (Octet 30 - Bit 5)
>          Truncated Page (Octet 30 - Bit 6)
>          Truncated Page Cancel (Octet 30 - Bit 7)
>          Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
>          Start Synchronization Train (Octet 31 - Bit 2)
>          Set Reserved LT_ADDR (Octet 31 - Bit 4)
>          Delete Reserved LT_ADDR (Octet 31 - Bit 5)
>          Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
>          Read Synchronization Train Parameters (Octet 31 - Bit 7)
>          Write Synchronization Train Parameters (Octet 32 - Bit 0)
>          Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
>          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
>          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
>          Read Local OOB Extended Data (Octet 32 - Bit 6)
>          Write Secure Connections Test Mode (Octet 32 - Bit 7)
>          Read Extended Page Timeout (Octet 33 - Bit 0)
>          Write Extended Page Timeout (Octet 33 - Bit 1)
>          Read Extended Inquiry Length (Octet 33 - Bit 2)
>          Write Extended Inquiry Length (Octet 33 - Bit 3)
>          LE Set Data Length (Octet 33 - Bit 6)
>          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
>          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
>          LE Read Local P-256 Public Key (Octet 34 - Bit 1)
>          LE Generate DHKey (Octet 34 - Bit 2)
>          LE Add Device To Resolving List (Octet 34 - Bit 3)
>          LE Remove Device From Resolving List (Octet 34 - Bit 4)
>          LE Clear Resolving List (Octet 34 - Bit 5)
>          LE Read Resolving List Size (Octet 34 - Bit 6)
>          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
>          LE Read Local Resolvable Address (Octet 35 - Bit 0)
>          LE Set Address Resolution Enable (Octet 35 - Bit 1)
>          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
>          LE Read Maximum Data Length (Octet 35 - Bit 3)
>          Octet 35 - Bit 4 
>          Octet 35 - Bit 5 
>          Octet 35 - Bit 6 
>          Octet 35 - Bit 7 
>          Octet 36 - Bit 0 

So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.

> < HCI Command: Write Simple Pairing Mode (0x03|0x0056) plen 1  [hci0] 10.869023
>        Mode: Enabled (0x01)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869185
>      Write Simple Pairing Mode (0x03|0x0056) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1         [hci0] 10.869239
>        Mode: Inquiry Result with RSSI or Extended Inquiry Result (0x02)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869371
>      Write Inquiry Mode (0x03|0x0045) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Inquiry Response T.. (0x03|0x0058) plen 0  [hci0] 10.869396
>> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.869552
>      Read Inquiry Response TX Power Level (0x03|0x0058) ncmd 1
>        Status: Success (0x00)
>        TX power: -1 dBm
> < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.869572
>        Page: 1
>> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.869729
>      Read Local Extended Features (0x04|0x0004) ncmd 1
>        Status: Success (0x00)
>        Page: 1/2
>        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
>          Secure Simple Pairing (Host Support)
> < HCI Command: Set Event Mask (0x03|0x0001) plen 8             [hci0] 10.869783
>        Mask: 0x3dbff807fffbffff
>          Inquiry Complete
>          Inquiry Result
>          Connection Complete
>          Connection Request
>          Disconnection Complete
>          Authentication Complete
>          Remote Name Request Complete
>          Encryption Change
>          Change Connection Link Key Complete
>          Master Link Key Complete
>          Read Remote Supported Features Complete
>          Read Remote Version Information Complete
>          QoS Setup Complete
>          Command Complete
>          Command Status
>          Hardware Error
>          Flush Occurred
>          Role Change
>          Mode Change
>          Return Link Keys
>          PIN Code Request
>          Link Key Request
>          Link Key Notification
>          Loopback Command
>          Data Buffer Overflow
>          Max Slots Change
>          Read Clock Offset Complete
>          Connection Packet Type Changed
>          QoS Violation
>          Page Scan Mode Change
>          Page Scan Repetition Mode Change
>          Flow Specification Complete
>          Inquiry Result with RSSI
>          Read Remote Extended Features Complete
>          Synchronous Connection Complete
>          Synchronous Connection Changed
>          Sniff Subrating
>          Extended Inquiry Result
>          Encryption Key Refresh Complete
>          IO Capability Request
>          IO Capability Request Reply
>          User Confirmation Request
>          User Passkey Request
>          Remote OOB Data Request
>          Simple Pairing Complete
>          Link Supervision Timeout Changed
>          Enhanced Flush Complete
>          User Passkey Notification
>          Keypress Notification
>          Remote Host Supported Features Notification
>          LE Meta
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869921
>      Set Event Mask (0x03|0x0001) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Stored Link Key (0x03|0x000d) plen 7       [hci0] 10.869947
>        Address: 00:00:00:00:00:00 (OUI 00-00-00)
>        Read all: 0x01
>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870129
>      Read Stored Link Key (0x03|0x000d) ncmd 1
>        Status: Success (0x00)
>        Max num keys: 4
>        Num keys: 0
> < HCI Command: Write Default Link Poli.. (0x02|0x000f) plen 2  [hci0] 10.870148
>        Link policy: 0x0005
>          Enable Role Switch
>          Enable Sniff Mode
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870310
>      Write Default Link Policy Settings (0x02|0x000f) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Page Scan Activity (0x03|0x001b) plen 0    [hci0] 10.870331
>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870485
>      Read Page Scan Activity (0x03|0x001b) ncmd 1
>        Status: Success (0x00)
>        Interval: 1280.000 msec (0x0800)
>        Window: 11.250 msec (0x0012)
> < HCI Command: Read Page Scan Type (0x03|0x0046) plen 0        [hci0] 10.870504
>> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.870652
>      Read Page Scan Type (0x03|0x0046) ncmd 1
>        Status: Success (0x00)
>        Type: Standard Scan (0x00)
> < HCI Command: LE Set Event Mask (0x08|0x0001) plen 8          [hci0] 10.870671
>        Mask: 0x0000000000000980
>          LE Read Local P-256 Public Key Complete
>          LE Generate DHKey Complete
>          Unknown mask (0x0000000000000800)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870839
>      LE Set Event Mask (0x08|0x0001) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write LE Host Supported (0x03|0x006d) plen 2    [hci0] 10.870859
>        Supported: 0x01
>        Simultaneous: 0x00
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871028
>      Write LE Host Supported (0x03|0x006d) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.871059
>        Page: 2
>> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.871201
>      Read Local Extended Features (0x04|0x0004) ncmd 1
>        Status: Success (0x00)
>        Page: 2/2
>        Features: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
>          Connectionless Slave Broadcast - Master
>          Synchronization Train
>          Generalized interlaced scan
>          Secure Connections (Controller Support)
>          Ping
>          Train nudging
> < HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7     [hci0] 10.871240
>        Address: 00:00:00:00:00:00 (OUI 00-00-00)
>        Delete all: 0x01
>> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.871384
>      Delete Stored Link Key (0x03|0x0012) ncmd 1
>        Status: Success (0x00)
>        Num keys: 0
> < HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8      [hci0] 10.871403
>        Mask: 0x0000000000b0c000
>          Triggered Clock Capture
>          Synchronization Train Complete
>          Slave Page Response Timeout
>          Connectionless Slave Broadcast Channel Map Change
>          Authenticated Payload Timeout Expired
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871566
>      Set Event Mask Page 2 (0x03|0x0063) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Local Supported Co.. (0x04|0x000b) plen 0  [hci0] 10.871599
>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.871750
>      Read Local Supported Codecs (0x04|0x000b) ncmd 1
>        Status: Success (0x00)
>        Number of supported codecs: 2
>          Codec: CVSD (0x02)
>          Codec: Transparent (0x03)
>        Number of vendor codecs: 0
> < HCI Command: Read Synchronization Tr.. (0x03|0x0077) plen 0  [hci0] 10.871769
>> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.871928
>      Read Synchronization Train Parameters (0x03|0x0077) ncmd 1
>        Status: Success (0x00)
>        Interval: 0.000 msec (0x0000)
>        Timeout: 0.000 msec (0x00000000)
>        Service data: 0x00
> < HCI Command: Write Secure Connection.. (0x03|0x007a) plen 1  [hci0] 10.871947
>        Support: Enabled (0x01)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872098
>      Write Secure Connections Host Support (0x03|0x007a) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Unknown (0x08|0x0031) plen 3                    [hci0] 10.872156
>        03 00 00                                         ...             
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872322
>      Unknown (0x08|0x0031) ncmd 1
>        Status: Success (0x00)
> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)               [hci0] 10.872361

This extra index info worries me a little bit. I need to check if that is suppose to happen.

> < HCI Command: LE Set Scan Response D.. (0x08|0x0009) plen 32  [hci0] 10.872431
>        Length: 10
>        Name (complete): builder
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872606
>      LE Set Scan Response Data (0x08|0x0009) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 10.872627
>        Scan enable: Page Scan (0x02)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872819
>      Write Scan Enable (0x03|0x001a) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Class of Device (0x03|0x0024) plen 3      [hci0] 10.872841
>        Class: 0x000000
>          Major class: Miscellaneous
>          Minor class: 0x00
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873036
>      Write Class of Device (0x03|0x0024) ncmd 1
>        Status: Success (0x00)
> * Unknown packet (code 17 len 9)                               [hci0] 10.873069
>        02 00 00 00 07 00 00 00 00                       .........       
> * Unknown packet (code 17 len 9)                               [hci0] 10.873069
>        01 00 00 00 07 00 00 00 00                       .........       
> < HCI Command: Write Local Name (0x03|0x0013) plen 248         [hci0] 10.873096
>        Name: builder
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873446
>      Write Local Name (0x03|0x0013) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Extended Inquir.. (0x03|0x0052) plen 241  [hci0] 10.873470
>        FEC: Not required (0x00)
>        Name (complete): builder
>        TX power: -1 dBm
>        Device ID: USB Implementer's Forum assigned (0x0002)
>          Vendor: Linux Foundation (0x1d6b)
>          Product: 0x0246
>          Version: 5.2.11 (0x052b)
>        16-bit Service UUIDs (complete): 4 entries
>          Generic Access Profile (0x1800)
>          Generic Attribute Profile (0x1801)
>          A/V Remote Control (0x110e)
>          A/V Remote Control Target (0x110c)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873857
>      Write Extended Inquiry Response (0x03|0x0052) ncmd 1
>        Status: Success (0x00)
> * Unknown packet (code 17 len 13)                              [hci0] 10.873903
>        01 00 00 00 01 00 05 00 00 d1 0a 00 00           .............   
> * Unknown packet (code 17 len 10)                              [hci0] 10.873913
>        02 00 00 00 06 00 d1 0a 00 00                    ..........      
> * Unknown packet (code 16 len 7)                               [hci0] 17.803939
>        01 00 00 00 05 00 00                             .......         
> < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 17.803983
>        Scan enable: No Scans (0x00)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 17.804233
>      Write Scan Enable (0x03|0x001a) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Vendor (0x3f|0x006f) plen 6                     [hci0] 17.804282
>        01 06 02 00 00 00                                ......          
>> HCI Event: Unknown (0xe4) plen 5                             [hci0] 17.804636
>        02 06 01 00 00                                   .....           
> * Unknown packet (code 17 len 13)                              [hci0] 17.811580
>        01 00 00 00 01 00 05 00 00 d0 0a 00 00           .............   
> * Unknown packet (code 17 len 10)                              [hci0] 17.811596
>        02 00 00 00 06 00 d0 0a 00 00                    ..........      
> = Close Index: 00:00:46:76:22:01                               [hci0] 17.811625

Regards

Marcel

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-24  7:47               ` Marcel Holtmann
  0 siblings, 0 replies; 49+ messages in thread
From: Marcel Holtmann @ 2018-05-24  7:47 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sean,

>>>> 
>>>> [ ... ]
>>>> 
>>>>>> -	if (hci_dev_test_flag(hdev, HCI_SETUP)) {
>>>>>> +	if (hci_dev_test_flag(hdev, HCI_SETUP) ||
>>>>>> +	    test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) {
>>>>>> 		hci_sock_dev_event(hdev, HCI_DEV_SETUP);
>>>>> 
>>>>> I am not 100% sure that we want to send the HCI_DEV_SETUP event also multiple times. That is a userspace change that I would need to think about. We need to check create_monitor_event() and see what the btmon trace for this looks like. Can you send me a btmon -w trace.log when this change is active.
>>>>> 
>>>>> Regards
>>>>> 
>>>>> Marcel
>>>>> 
>>>> 
>>>> Sure, I'll send you the trace.log with the change is active.
>>>> 
>>>> 	Sean
>>>> 
>>> 
>>> 
>>> Attached trace.log was captured when I inputted commands power on and
>>> then off in bluetoothctl.
>> 
>> the trace.log is somehow mangled. Something is not fully correct. Can you read it with btmon -r trace.log?
>> 
>> Regards
>> 
>> Marcel
>> 
> 
> Yes, I can read it with btmon -r trace.log.
> 
> I post it as plain text as below 
> 
> 
> Bluetooth monitor ver 5.37
> = Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
> = Note: Bluetooth subsystem version 2.22                               0.641502
> = New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
> * Unknown packet (code 14 len 30)                                      0.641509
>        01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
>        75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> * Unknown packet (code 14 len 30)                                      0.641592
>        02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
>        6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
>        01 00 00 00 05 00 01                             .......         
> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030

can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.

>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
>        02 01 01 00 00                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
>        02 01 01 00 00                                   .....           

Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?

> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
>        01 07 01 00 04                                   .....           
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
>        02 07 01 00 00                                   .....           
> < HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
>        01 06 02 00 00 01                                ......          
>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
>        02 06 01 00 00                                   .....           

Here it looks like you have 0x006f opcode with first octet 0x01 for command and then vendor event 0xe4 with first octet 0x02 for event. I assume the second octet is then the vendor command code for these.

> < HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
>      Reset (0x03|0x0003) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
>      Read Local Supported Features (0x04|0x0003) ncmd 1
>        Status: Success (0x00)
>        Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
>          3 slot packets
>          5 slot packets
>          Encryption
>          Slot offset
>          Timing accuracy
>          Role switch
>          Sniff mode
>          Power control requests
>          Channel quality driven data rate (CQDDR)
>          SCO link
>          HV2 packets
>          HV3 packets
>          CVSD synchronous data
>          Power control
>          Transparent synchronous data
>          Broadcast Encryption
>          Enhanced Data Rate ACL 2 Mbps mode
>          Enhanced Data Rate ACL 3 Mbps mode
>          Enhanced inquiry scan
>          Interlaced inquiry scan
>          Interlaced page scan
>          RSSI with inquiry results
>          Extended SCO link (EV3 packets)
>          EV4 packets
>          EV5 packets
>          AFH capable slave
>          AFH classification slave
>          LE Supported (Controller)
>          3-slot Enhanced Data Rate ACL packets
>          5-slot Enhanced Data Rate ACL packets
>          Sniff subrating
>          Pause encryption
>          AFH capable master
>          AFH classification master
>          Enhanced Data Rate eSCO 2 Mbps mode
>          Enhanced Data Rate eSCO 3 Mbps mode
>          3-slot Enhanced Data Rate eSCO packets
>          Extended Inquiry Response
>          Simultaneous LE and BR/EDR (Controller)
>          Secure Simple Pairing
>          Encapsulated PDU
>          Erroneous Data Reporting
>          Non-flushable Packet Boundary Flag
>          Link Supervision Timeout Changed Event
>          Inquiry TX Power Level
>          Enhanced Power Control
>          Extended features
> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
>        29 19 09 17 20 48 07 11 00                       )... H?       

Is this meant to happen here?

>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
>      Read Local Version Information (0x04|0x0001) ncmd 1
>        Status: Success (0x00)
>        HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
>        LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
>        Manufacturer: MediaTek, Inc. (70)
> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
>      Read BD ADDR (0x04|0x0009) ncmd 1
>        Status: Success (0x00)
>        Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
> < HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
>> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
>      Read Buffer Size (0x04|0x0005) ncmd 1
>        Status: Success (0x00)
>        ACL MTU: 1021 ACL max packet: 8
>        SCO MTU: 184  SCO max packet: 1
> < HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
>> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
>      Read Class of Device (0x03|0x0023) ncmd 1
>        Status: Success (0x00)
>        Class: 0x001f00
>          Major class: Uncategorized, specific device code not specified
>          Minor class: 0x00
> < HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
>> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
>      Read Local Name (0x03|0x0014) ncmd 1
>        Status: Success (0x00)
>        Name: MTK MT7622 #1
> < HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
>> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
>      Read Voice Setting (0x03|0x0025) ncmd 1
>        Status: Success (0x00)
>        Setting: 0x0060
>          Input Coding: Linear
>          Input Data Format: 2's complement
>          Input Sample Size: 16-bit
>          # of bits padding at MSB: 0
>          Air Coding Format: CVSD
> < HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
>> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
>      Read Number of Supported IAC (0x03|0x0038) ncmd 1
>        Status: Success (0x00)
>        Number of IAC: 4
> < HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
>      Read Current IAC LAP (0x03|0x0039) ncmd 1
>        Status: Success (0x00)
>        Number of IAC: 1
>        Access code: 0x9e8b33 (General Inquiry)
> < HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
>        Type: Clear All Filters (0x00)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
>      Set Event Filter (0x03|0x0005) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
>        Timeout: 20000.000 msec (0x7d00)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
>      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
>        Status: Success (0x00)
> < HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
>> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
>      LE Read Buffer Size (0x08|0x0002) ncmd 1
>        Status: Success (0x00)
>        Data packet length: 251
>        Num data packets: 8
> < HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
>      LE Read Local Supported Features (0x08|0x0003) ncmd 1
>        Status: Success (0x00)
>        Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
>          LE Encryption
>          Extended Reject Indication
>          Slave-initiated Features Exchange
>          LE Ping
>          LE Data Packet Length Extension
>          LL Privacy
>          Extended Scanner Filter Policies
> < HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
>      LE Read Supported States (0x08|0x001c) ncmd 1
>        Status: Success (0x00)
>        States: 0x000000001fffffff
>          Non-connectable Advertising State
>          Scannable Advertising State
>          Connectable Advertising State
>          High Duty Cycle Directed Advertising State
>          Passive Scanning State
>          Active Scanning State
>          Initiating State
>            and Connection State (Master Role)
>          Connection State (Slave Role)
>          Non-connectable Advertising State
>            and Passive Scanning State
>          Scannable Advertising State
>            and Passive Scanning State
>          Connectable Advertising State
>            and Passive Scanning State
>          High Duty Cycle Directed Advertising State
>            and Passive Scanning State
>          Non-connectable Advertising State
>            and Active Scanning State
>          Scannable Advertising State
>            and Active Scanning State
>          Connectable Advertising State
>            and Active Scanning State
>          High Duty Cycle Directed Advertising State
>            and Active Scanning State
>          Non-connectable Advertising State
>            and Initiating State
>          Scannable Advertising State
>            and Initiating State
>          Non-connectable Advertising State
>            and Connection State (Master Role)
>          Scannable Advertising State
>            and Connection State (Master Role)
>          Non-connectable Advertising State
>            and Connection State (Slave Role)
>          Scannable Advertising State
>            and Connection State (Slave Role)
>          Passive Scanning State
>            and Initiating State
>          Active Scanning State
>            and Initiating State
>          Passive Scanning State
>            and Connection State (Master Role)
>          Active Scanning State
>            and Connection State (Master Role)
>          Passive Scanning State
>            and Connection State (Slave Role)
>          Active Scanning State
>            and Connection State (Slave Role)
>          Initiating State
>            and Connection State (Master Role)
>            and Master Role & Master Role
> < HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
>> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
>      Read Local Supported Commands (0x04|0x0002) ncmd 1
>        Status: Success (0x00)
>        Commands: 176 entries
>          Inquiry (Octet 0 - Bit 0)
>          Inquiry Cancel (Octet 0 - Bit 1)
>          Periodic Inquiry Mode (Octet 0 - Bit 2)
>          Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
>          Create Connection (Octet 0 - Bit 4)
>          Disconnect (Octet 0 - Bit 5)
>          Add SCO Connection (Octet 0 - Bit 6)
>          Create Connection Cancel (Octet 0 - Bit 7)
>          Accept Connection Request (Octet 1 - Bit 0)
>          Reject Connection Request (Octet 1 - Bit 1)
>          Link Key Request Reply (Octet 1 - Bit 2)
>          Link Key Request Negative Reply (Octet 1 - Bit 3)
>          PIN Code Request Reply (Octet 1 - Bit 4)
>          PIN Code Request Negative Reply (Octet 1 - Bit 5)
>          Change Connection Packet Type (Octet 1 - Bit 6)
>          Authentication Requested (Octet 1 - Bit 7)
>          Set Connection Encryption (Octet 2 - Bit 0)
>          Change Connection Link Key (Octet 2 - Bit 1)
>          Master Link Key (Octet 2 - Bit 2)
>          Remote Name Request (Octet 2 - Bit 3)
>          Remote Name Request Cancel (Octet 2 - Bit 4)
>          Read Remote Supported Features (Octet 2 - Bit 5)
>          Read Remote Extended Features (Octet 2 - Bit 6)
>          Read Remote Version Information (Octet 2 - Bit 7)
>          Read Clock Offset (Octet 3 - Bit 0)
>          Read LMP Handle (Octet 3 - Bit 1)
>          Sniff Mode (Octet 4 - Bit 2)
>          Exit Sniff Mode (Octet 4 - Bit 3)
>          QoS Setup (Octet 4 - Bit 6)
>          Role Discovery (Octet 4 - Bit 7)
>          Switch Role (Octet 5 - Bit 0)
>          Read Link Policy Settings (Octet 5 - Bit 1)
>          Write Link Policy Settings (Octet 5 - Bit 2)
>          Read Default Link Policy Settings (Octet 5 - Bit 3)
>          Write Default Link Policy Settings (Octet 5 - Bit 4)
>          Flow Specification (Octet 5 - Bit 5)
>          Set Event Mask (Octet 5 - Bit 6)
>          Reset (Octet 5 - Bit 7)
>          Set Event Filter (Octet 6 - Bit 0)
>          Flush (Octet 6 - Bit 1)
>          Read PIN Type (Octet 6 - Bit 2)
>          Write PIN Type (Octet 6 - Bit 3)
>          Create New Unit Key (Octet 6 - Bit 4)
>          Read Stored Link Key (Octet 6 - Bit 5)
>          Write Stored Link Key (Octet 6 - Bit 6)
>          Delete Stored Link Key (Octet 6 - Bit 7)
>          Write Local Name (Octet 7 - Bit 0)
>          Read Local Name (Octet 7 - Bit 1)
>          Read Connection Accept Timeout (Octet 7 - Bit 2)
>          Write Connection Accept Timeout (Octet 7 - Bit 3)
>          Read Page Timeout (Octet 7 - Bit 4)
>          Write Page Timeout (Octet 7 - Bit 5)
>          Read Scan Enable (Octet 7 - Bit 6)
>          Write Scan Enable (Octet 7 - Bit 7)
>          Read Page Scan Activity (Octet 8 - Bit 0)
>          Write Page Scan Activity (Octet 8 - Bit 1)
>          Read Inquiry Scan Activity (Octet 8 - Bit 2)
>          Write Inquiry Scan Activity (Octet 8 - Bit 3)
>          Read Authentication Enable (Octet 8 - Bit 4)
>          Write Authentication Enable (Octet 8 - Bit 5)
>          Read Encryption Mode (Octet 8 - Bit 6)
>          Write Encryption Mode (Octet 8 - Bit 7)
>          Read Class of Device (Octet 9 - Bit 0)
>          Write Class of Device (Octet 9 - Bit 1)
>          Read Voice Setting (Octet 9 - Bit 2)
>          Write Voice Setting (Octet 9 - Bit 3)
>          Read Automatic Flush Timeout (Octet 9 - Bit 4)
>          Write Automatic Flush Timeout (Octet 9 - Bit 5)
>          Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
>          Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
>          Read Transmit Power Level (Octet 10 - Bit 2)
>          Read Sync Flow Control Enable (Octet 10 - Bit 3)
>          Write Sync Flow Control Enable (Octet 10 - Bit 4)
>          Set Controller To Host Flow Control (Octet 10 - Bit 5)
>          Host Buffer Size (Octet 10 - Bit 6)
>          Host Number of Completed Packets (Octet 10 - Bit 7)
>          Read Link Supervision Timeout (Octet 11 - Bit 0)
>          Write Link Supervision Timeout (Octet 11 - Bit 1)
>          Read Number of Supported IAC (Octet 11 - Bit 2)
>          Read Current IAC LAP (Octet 11 - Bit 3)
>          Write Current IAC LAP (Octet 11 - Bit 4)
>          Read Page Scan Mode (Octet 11 - Bit 7)
>          Write Page Scan Mode (Octet 12 - Bit 0)
>          Set AFH Host Channel Classification (Octet 12 - Bit 1)
>          Read Inquiry Scan Type (Octet 12 - Bit 4)
>          Write Inquiry Scan Type (Octet 12 - Bit 5)
>          Read Inquiry Mode (Octet 12 - Bit 6)
>          Write Inquiry Mode (Octet 12 - Bit 7)
>          Read Page Scan Type (Octet 13 - Bit 0)
>          Write Page Scan Type (Octet 13 - Bit 1)
>          Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
>          Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
>          Read Local Version Information (Octet 14 - Bit 3)
>          Read Local Supported Features (Octet 14 - Bit 5)
>          Read Local Extended Features (Octet 14 - Bit 6)
>          Read Buffer Size (Octet 14 - Bit 7)
>          Read Country Code (Octet 15 - Bit 0)
>          Read BD ADDR (Octet 15 - Bit 1)
>          Read Failed Contact Counter (Octet 15 - Bit 2)
>          Reset Failed Contact Counter (Octet 15 - Bit 3)
>          Read Link Quality (Octet 15 - Bit 4)
>          Read RSSI (Octet 15 - Bit 5)
>          Read AFH Channel Map (Octet 15 - Bit 6)
>          Read Clock (Octet 15 - Bit 7)
>          Read Loopback Mode (Octet 16 - Bit 0)
>          Write Loopback Mode (Octet 16 - Bit 1)
>          Enable Device Under Test Mode (Octet 16 - Bit 2)
>          Setup Synchronous Connection (Octet 16 - Bit 3)
>          Accept Synchronous Connection Request (Octet 16 - Bit 4)
>          Reject Synchronous Connection Request (Octet 16 - Bit 5)
>          Read Extended Inquiry Response (Octet 17 - Bit 0)
>          Write Extended Inquiry Response (Octet 17 - Bit 1)
>          Refresh Encryption Key (Octet 17 - Bit 2)
>          Sniff Subrating (Octet 17 - Bit 4)
>          Read Simple Pairing Mode (Octet 17 - Bit 5)
>          Write Simple Pairing Mode (Octet 17 - Bit 6)
>          Read Local OOB Data (Octet 17 - Bit 7)
>          Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
>          Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
>          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
>          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
>          IO Capability Request Reply (Octet 18 - Bit 7)
>          User Confirmation Request Reply (Octet 19 - Bit 0)
>          User Confirmation Request Neg Reply (Octet 19 - Bit 1)
>          User Passkey Request Reply (Octet 19 - Bit 2)
>          User Passkey Request Negative Reply (Octet 19 - Bit 3)
>          Remote OOB Data Request Reply (Octet 19 - Bit 4)
>          Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
>          Enhanced Flush (Octet 19 - Bit 6)
>          Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
>          Send Keypress Notification (Octet 20 - Bit 2)
>          IO Capability Request Negative Reply (Octet 20 - Bit 3)
>          Read Encryption Key Size (Octet 20 - Bit 4)
>          Set Event Mask Page 2 (Octet 22 - Bit 2)
>          Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
>          Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
>          Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
>          Read Local Supported Codecs (Octet 29 - Bit 5)
>          Set Triggered Clock Capture (Octet 30 - Bit 5)
>          Truncated Page (Octet 30 - Bit 6)
>          Truncated Page Cancel (Octet 30 - Bit 7)
>          Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
>          Start Synchronization Train (Octet 31 - Bit 2)
>          Set Reserved LT_ADDR (Octet 31 - Bit 4)
>          Delete Reserved LT_ADDR (Octet 31 - Bit 5)
>          Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
>          Read Synchronization Train Parameters (Octet 31 - Bit 7)
>          Write Synchronization Train Parameters (Octet 32 - Bit 0)
>          Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
>          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
>          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
>          Read Local OOB Extended Data (Octet 32 - Bit 6)
>          Write Secure Connections Test Mode (Octet 32 - Bit 7)
>          Read Extended Page Timeout (Octet 33 - Bit 0)
>          Write Extended Page Timeout (Octet 33 - Bit 1)
>          Read Extended Inquiry Length (Octet 33 - Bit 2)
>          Write Extended Inquiry Length (Octet 33 - Bit 3)
>          LE Set Data Length (Octet 33 - Bit 6)
>          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
>          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
>          LE Read Local P-256 Public Key (Octet 34 - Bit 1)
>          LE Generate DHKey (Octet 34 - Bit 2)
>          LE Add Device To Resolving List (Octet 34 - Bit 3)
>          LE Remove Device From Resolving List (Octet 34 - Bit 4)
>          LE Clear Resolving List (Octet 34 - Bit 5)
>          LE Read Resolving List Size (Octet 34 - Bit 6)
>          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
>          LE Read Local Resolvable Address (Octet 35 - Bit 0)
>          LE Set Address Resolution Enable (Octet 35 - Bit 1)
>          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
>          LE Read Maximum Data Length (Octet 35 - Bit 3)
>          Octet 35 - Bit 4 
>          Octet 35 - Bit 5 
>          Octet 35 - Bit 6 
>          Octet 35 - Bit 7 
>          Octet 36 - Bit 0 

So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.

> < HCI Command: Write Simple Pairing Mode (0x03|0x0056) plen 1  [hci0] 10.869023
>        Mode: Enabled (0x01)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869185
>      Write Simple Pairing Mode (0x03|0x0056) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1         [hci0] 10.869239
>        Mode: Inquiry Result with RSSI or Extended Inquiry Result (0x02)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869371
>      Write Inquiry Mode (0x03|0x0045) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Inquiry Response T.. (0x03|0x0058) plen 0  [hci0] 10.869396
>> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.869552
>      Read Inquiry Response TX Power Level (0x03|0x0058) ncmd 1
>        Status: Success (0x00)
>        TX power: -1 dBm
> < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.869572
>        Page: 1
>> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.869729
>      Read Local Extended Features (0x04|0x0004) ncmd 1
>        Status: Success (0x00)
>        Page: 1/2
>        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
>          Secure Simple Pairing (Host Support)
> < HCI Command: Set Event Mask (0x03|0x0001) plen 8             [hci0] 10.869783
>        Mask: 0x3dbff807fffbffff
>          Inquiry Complete
>          Inquiry Result
>          Connection Complete
>          Connection Request
>          Disconnection Complete
>          Authentication Complete
>          Remote Name Request Complete
>          Encryption Change
>          Change Connection Link Key Complete
>          Master Link Key Complete
>          Read Remote Supported Features Complete
>          Read Remote Version Information Complete
>          QoS Setup Complete
>          Command Complete
>          Command Status
>          Hardware Error
>          Flush Occurred
>          Role Change
>          Mode Change
>          Return Link Keys
>          PIN Code Request
>          Link Key Request
>          Link Key Notification
>          Loopback Command
>          Data Buffer Overflow
>          Max Slots Change
>          Read Clock Offset Complete
>          Connection Packet Type Changed
>          QoS Violation
>          Page Scan Mode Change
>          Page Scan Repetition Mode Change
>          Flow Specification Complete
>          Inquiry Result with RSSI
>          Read Remote Extended Features Complete
>          Synchronous Connection Complete
>          Synchronous Connection Changed
>          Sniff Subrating
>          Extended Inquiry Result
>          Encryption Key Refresh Complete
>          IO Capability Request
>          IO Capability Request Reply
>          User Confirmation Request
>          User Passkey Request
>          Remote OOB Data Request
>          Simple Pairing Complete
>          Link Supervision Timeout Changed
>          Enhanced Flush Complete
>          User Passkey Notification
>          Keypress Notification
>          Remote Host Supported Features Notification
>          LE Meta
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869921
>      Set Event Mask (0x03|0x0001) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Stored Link Key (0x03|0x000d) plen 7       [hci0] 10.869947
>        Address: 00:00:00:00:00:00 (OUI 00-00-00)
>        Read all: 0x01
>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870129
>      Read Stored Link Key (0x03|0x000d) ncmd 1
>        Status: Success (0x00)
>        Max num keys: 4
>        Num keys: 0
> < HCI Command: Write Default Link Poli.. (0x02|0x000f) plen 2  [hci0] 10.870148
>        Link policy: 0x0005
>          Enable Role Switch
>          Enable Sniff Mode
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870310
>      Write Default Link Policy Settings (0x02|0x000f) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Page Scan Activity (0x03|0x001b) plen 0    [hci0] 10.870331
>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870485
>      Read Page Scan Activity (0x03|0x001b) ncmd 1
>        Status: Success (0x00)
>        Interval: 1280.000 msec (0x0800)
>        Window: 11.250 msec (0x0012)
> < HCI Command: Read Page Scan Type (0x03|0x0046) plen 0        [hci0] 10.870504
>> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.870652
>      Read Page Scan Type (0x03|0x0046) ncmd 1
>        Status: Success (0x00)
>        Type: Standard Scan (0x00)
> < HCI Command: LE Set Event Mask (0x08|0x0001) plen 8          [hci0] 10.870671
>        Mask: 0x0000000000000980
>          LE Read Local P-256 Public Key Complete
>          LE Generate DHKey Complete
>          Unknown mask (0x0000000000000800)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870839
>      LE Set Event Mask (0x08|0x0001) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write LE Host Supported (0x03|0x006d) plen 2    [hci0] 10.870859
>        Supported: 0x01
>        Simultaneous: 0x00
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871028
>      Write LE Host Supported (0x03|0x006d) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.871059
>        Page: 2
>> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.871201
>      Read Local Extended Features (0x04|0x0004) ncmd 1
>        Status: Success (0x00)
>        Page: 2/2
>        Features: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
>          Connectionless Slave Broadcast - Master
>          Synchronization Train
>          Generalized interlaced scan
>          Secure Connections (Controller Support)
>          Ping
>          Train nudging
> < HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7     [hci0] 10.871240
>        Address: 00:00:00:00:00:00 (OUI 00-00-00)
>        Delete all: 0x01
>> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.871384
>      Delete Stored Link Key (0x03|0x0012) ncmd 1
>        Status: Success (0x00)
>        Num keys: 0
> < HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8      [hci0] 10.871403
>        Mask: 0x0000000000b0c000
>          Triggered Clock Capture
>          Synchronization Train Complete
>          Slave Page Response Timeout
>          Connectionless Slave Broadcast Channel Map Change
>          Authenticated Payload Timeout Expired
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871566
>      Set Event Mask Page 2 (0x03|0x0063) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Read Local Supported Co.. (0x04|0x000b) plen 0  [hci0] 10.871599
>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.871750
>      Read Local Supported Codecs (0x04|0x000b) ncmd 1
>        Status: Success (0x00)
>        Number of supported codecs: 2
>          Codec: CVSD (0x02)
>          Codec: Transparent (0x03)
>        Number of vendor codecs: 0
> < HCI Command: Read Synchronization Tr.. (0x03|0x0077) plen 0  [hci0] 10.871769
>> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.871928
>      Read Synchronization Train Parameters (0x03|0x0077) ncmd 1
>        Status: Success (0x00)
>        Interval: 0.000 msec (0x0000)
>        Timeout: 0.000 msec (0x00000000)
>        Service data: 0x00
> < HCI Command: Write Secure Connection.. (0x03|0x007a) plen 1  [hci0] 10.871947
>        Support: Enabled (0x01)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872098
>      Write Secure Connections Host Support (0x03|0x007a) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Unknown (0x08|0x0031) plen 3                    [hci0] 10.872156
>        03 00 00                                         ...             
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872322
>      Unknown (0x08|0x0031) ncmd 1
>        Status: Success (0x00)
> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)               [hci0] 10.872361

This extra index info worries me a little bit. I need to check if that is suppose to happen.

> < HCI Command: LE Set Scan Response D.. (0x08|0x0009) plen 32  [hci0] 10.872431
>        Length: 10
>        Name (complete): builder
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872606
>      LE Set Scan Response Data (0x08|0x0009) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 10.872627
>        Scan enable: Page Scan (0x02)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872819
>      Write Scan Enable (0x03|0x001a) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Class of Device (0x03|0x0024) plen 3      [hci0] 10.872841
>        Class: 0x000000
>          Major class: Miscellaneous
>          Minor class: 0x00
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873036
>      Write Class of Device (0x03|0x0024) ncmd 1
>        Status: Success (0x00)
> * Unknown packet (code 17 len 9)                               [hci0] 10.873069
>        02 00 00 00 07 00 00 00 00                       .........       
> * Unknown packet (code 17 len 9)                               [hci0] 10.873069
>        01 00 00 00 07 00 00 00 00                       .........       
> < HCI Command: Write Local Name (0x03|0x0013) plen 248         [hci0] 10.873096
>        Name: builder
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873446
>      Write Local Name (0x03|0x0013) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Write Extended Inquir.. (0x03|0x0052) plen 241  [hci0] 10.873470
>        FEC: Not required (0x00)
>        Name (complete): builder
>        TX power: -1 dBm
>        Device ID: USB Implementer's Forum assigned (0x0002)
>          Vendor: Linux Foundation (0x1d6b)
>          Product: 0x0246
>          Version: 5.2.11 (0x052b)
>        16-bit Service UUIDs (complete): 4 entries
>          Generic Access Profile (0x1800)
>          Generic Attribute Profile (0x1801)
>          A/V Remote Control (0x110e)
>          A/V Remote Control Target (0x110c)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873857
>      Write Extended Inquiry Response (0x03|0x0052) ncmd 1
>        Status: Success (0x00)
> * Unknown packet (code 17 len 13)                              [hci0] 10.873903
>        01 00 00 00 01 00 05 00 00 d1 0a 00 00           .............   
> * Unknown packet (code 17 len 10)                              [hci0] 10.873913
>        02 00 00 00 06 00 d1 0a 00 00                    ..........      
> * Unknown packet (code 16 len 7)                               [hci0] 17.803939
>        01 00 00 00 05 00 00                             .......         
> < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 17.803983
>        Scan enable: No Scans (0x00)
>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 17.804233
>      Write Scan Enable (0x03|0x001a) ncmd 1
>        Status: Success (0x00)
> < HCI Command: Vendor (0x3f|0x006f) plen 6                     [hci0] 17.804282
>        01 06 02 00 00 00                                ......          
>> HCI Event: Unknown (0xe4) plen 5                             [hci0] 17.804636
>        02 06 01 00 00                                   .....           
> * Unknown packet (code 17 len 13)                              [hci0] 17.811580
>        01 00 00 00 01 00 05 00 00 d0 0a 00 00           .............   
> * Unknown packet (code 17 len 10)                              [hci0] 17.811596
>        02 00 00 00 06 00 d0 0a 00 00                    ..........      
> = Close Index: 00:00:46:76:22:01                               [hci0] 17.811625

Regards

Marcel

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-24  7:47               ` Marcel Holtmann
  (?)
@ 2018-05-24 15:30                 ` Sean Wang
  -1 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-24 15:30 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

On Thu, 2018-05-24 at 09:47 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >>>> 
> >>>> [ ... ]

[ ... ]

> > I post it as plain text as below 
> > 
> > 
> > Bluetooth monitor ver 5.37
> > = Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
> > = Note: Bluetooth subsystem version 2.22                               0.641502
> > = New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
> > * Unknown packet (code 14 len 30)                                      0.641509
> >        01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
> >        75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> > * Unknown packet (code 14 len 30)                                      0.641592
> >        02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
> >        6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> > * Unknown packet (code 16 len 7)                                [hci0] 6.536771
> >        01 00 00 00 05 00 01                             .......         
> > = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> > = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> 
> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
> 

I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 


> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
> >        02 01 01 00 00                                   .....           
> 
> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
> 

I have made all vendor HCI commands go through BlueZ core in v2 patch. 

And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.

As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.

> 
> 
> > < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
> >        01 07 01 00 04                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
> >        02 07 01 00 00                                   .....           
> > < HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
> >        01 06 02 00 00 01                                ......          
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
> >        02 06 01 00 00                                   .....           
> 
> Here it looks like you have 0x006f opcode with first octet 0x01 for command and then vendor event 0xe4 with first octet 0x02 for event. I assume the second octet is then the vendor command code for these.
> 

Yes, you're right.

> > < HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
> >      Reset (0x03|0x0003) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
> >      Read Local Supported Features (0x04|0x0003) ncmd 1
> >        Status: Success (0x00)
> >        Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
> >          3 slot packets
> >          5 slot packets
> >          Encryption
> >          Slot offset
> >          Timing accuracy
> >          Role switch
> >          Sniff mode
> >          Power control requests
> >          Channel quality driven data rate (CQDDR)
> >          SCO link
> >          HV2 packets
> >          HV3 packets
> >          CVSD synchronous data
> >          Power control
> >          Transparent synchronous data
> >          Broadcast Encryption
> >          Enhanced Data Rate ACL 2 Mbps mode
> >          Enhanced Data Rate ACL 3 Mbps mode
> >          Enhanced inquiry scan
> >          Interlaced inquiry scan
> >          Interlaced page scan
> >          RSSI with inquiry results
> >          Extended SCO link (EV3 packets)
> >          EV4 packets
> >          EV5 packets
> >          AFH capable slave
> >          AFH classification slave
> >          LE Supported (Controller)
> >          3-slot Enhanced Data Rate ACL packets
> >          5-slot Enhanced Data Rate ACL packets
> >          Sniff subrating
> >          Pause encryption
> >          AFH capable master
> >          AFH classification master
> >          Enhanced Data Rate eSCO 2 Mbps mode
> >          Enhanced Data Rate eSCO 3 Mbps mode
> >          3-slot Enhanced Data Rate eSCO packets
> >          Extended Inquiry Response
> >          Simultaneous LE and BR/EDR (Controller)
> >          Secure Simple Pairing
> >          Encapsulated PDU
> >          Erroneous Data Reporting
> >          Non-flushable Packet Boundary Flag
> >          Link Supervision Timeout Changed Event
> >          Inquiry TX Power Level
> >          Enhanced Power Control
> >          Extended features
> > < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> >> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
> >        29 19 09 17 20 48 07 11 00                       )... H…       
> 
> Is this meant to happen here?
> 

If event received is not expected as the specification defines, I think it's probably incorrect.

But it requires more discussion with firmware people to make it clearer.

> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
> >      Read Local Version Information (0x04|0x0001) ncmd 1
> >        Status: Success (0x00)
> >        HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
> >        LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
> >        Manufacturer: MediaTek, Inc. (70)
> > < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> >> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
> >      Read BD ADDR (0x04|0x0009) ncmd 1
> >        Status: Success (0x00)
> >        Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
> > < HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
> >> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
> >      Read Buffer Size (0x04|0x0005) ncmd 1
> >        Status: Success (0x00)
> >        ACL MTU: 1021 ACL max packet: 8
> >        SCO MTU: 184  SCO max packet: 1
> > < HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
> >> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
> >      Read Class of Device (0x03|0x0023) ncmd 1
> >        Status: Success (0x00)
> >        Class: 0x001f00
> >          Major class: Uncategorized, specific device code not specified
> >          Minor class: 0x00
> > < HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
> >> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
> >      Read Local Name (0x03|0x0014) ncmd 1
> >        Status: Success (0x00)
> >        Name: MTK MT7622 #1
> > < HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
> >> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
> >      Read Voice Setting (0x03|0x0025) ncmd 1
> >        Status: Success (0x00)
> >        Setting: 0x0060
> >          Input Coding: Linear
> >          Input Data Format: 2's complement
> >          Input Sample Size: 16-bit
> >          # of bits padding at MSB: 0
> >          Air Coding Format: CVSD
> > < HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
> >      Read Number of Supported IAC (0x03|0x0038) ncmd 1
> >        Status: Success (0x00)
> >        Number of IAC: 4
> > < HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
> >      Read Current IAC LAP (0x03|0x0039) ncmd 1
> >        Status: Success (0x00)
> >        Number of IAC: 1
> >        Access code: 0x9e8b33 (General Inquiry)
> > < HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
> >        Type: Clear All Filters (0x00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
> >      Set Event Filter (0x03|0x0005) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
> >        Timeout: 20000.000 msec (0x7d00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
> >      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
> >> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
> >      LE Read Buffer Size (0x08|0x0002) ncmd 1
> >        Status: Success (0x00)
> >        Data packet length: 251
> >        Num data packets: 8
> > < HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
> >      LE Read Local Supported Features (0x08|0x0003) ncmd 1
> >        Status: Success (0x00)
> >        Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> >          LE Encryption
> >          Extended Reject Indication
> >          Slave-initiated Features Exchange
> >          LE Ping
> >          LE Data Packet Length Extension
> >          LL Privacy
> >          Extended Scanner Filter Policies
> > < HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
> >      LE Read Supported States (0x08|0x001c) ncmd 1
> >        Status: Success (0x00)
> >        States: 0x000000001fffffff
> >          Non-connectable Advertising State
> >          Scannable Advertising State
> >          Connectable Advertising State
> >          High Duty Cycle Directed Advertising State
> >          Passive Scanning State
> >          Active Scanning State
> >          Initiating State
> >            and Connection State (Master Role)
> >          Connection State (Slave Role)
> >          Non-connectable Advertising State
> >            and Passive Scanning State
> >          Scannable Advertising State
> >            and Passive Scanning State
> >          Connectable Advertising State
> >            and Passive Scanning State
> >          High Duty Cycle Directed Advertising State
> >            and Passive Scanning State
> >          Non-connectable Advertising State
> >            and Active Scanning State
> >          Scannable Advertising State
> >            and Active Scanning State
> >          Connectable Advertising State
> >            and Active Scanning State
> >          High Duty Cycle Directed Advertising State
> >            and Active Scanning State
> >          Non-connectable Advertising State
> >            and Initiating State
> >          Scannable Advertising State
> >            and Initiating State
> >          Non-connectable Advertising State
> >            and Connection State (Master Role)
> >          Scannable Advertising State
> >            and Connection State (Master Role)
> >          Non-connectable Advertising State
> >            and Connection State (Slave Role)
> >          Scannable Advertising State
> >            and Connection State (Slave Role)
> >          Passive Scanning State
> >            and Initiating State
> >          Active Scanning State
> >            and Initiating State
> >          Passive Scanning State
> >            and Connection State (Master Role)
> >          Active Scanning State
> >            and Connection State (Master Role)
> >          Passive Scanning State
> >            and Connection State (Slave Role)
> >          Active Scanning State
> >            and Connection State (Slave Role)
> >          Initiating State
> >            and Connection State (Master Role)
> >            and Master Role & Master Role
> > < HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
> >> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
> >      Read Local Supported Commands (0x04|0x0002) ncmd 1
> >        Status: Success (0x00)
> >        Commands: 176 entries
> >          Inquiry (Octet 0 - Bit 0)
> >          Inquiry Cancel (Octet 0 - Bit 1)
> >          Periodic Inquiry Mode (Octet 0 - Bit 2)
> >          Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
> >          Create Connection (Octet 0 - Bit 4)
> >          Disconnect (Octet 0 - Bit 5)
> >          Add SCO Connection (Octet 0 - Bit 6)
> >          Create Connection Cancel (Octet 0 - Bit 7)
> >          Accept Connection Request (Octet 1 - Bit 0)
> >          Reject Connection Request (Octet 1 - Bit 1)
> >          Link Key Request Reply (Octet 1 - Bit 2)
> >          Link Key Request Negative Reply (Octet 1 - Bit 3)
> >          PIN Code Request Reply (Octet 1 - Bit 4)
> >          PIN Code Request Negative Reply (Octet 1 - Bit 5)
> >          Change Connection Packet Type (Octet 1 - Bit 6)
> >          Authentication Requested (Octet 1 - Bit 7)
> >          Set Connection Encryption (Octet 2 - Bit 0)
> >          Change Connection Link Key (Octet 2 - Bit 1)
> >          Master Link Key (Octet 2 - Bit 2)
> >          Remote Name Request (Octet 2 - Bit 3)
> >          Remote Name Request Cancel (Octet 2 - Bit 4)
> >          Read Remote Supported Features (Octet 2 - Bit 5)
> >          Read Remote Extended Features (Octet 2 - Bit 6)
> >          Read Remote Version Information (Octet 2 - Bit 7)
> >          Read Clock Offset (Octet 3 - Bit 0)
> >          Read LMP Handle (Octet 3 - Bit 1)
> >          Sniff Mode (Octet 4 - Bit 2)
> >          Exit Sniff Mode (Octet 4 - Bit 3)
> >          QoS Setup (Octet 4 - Bit 6)
> >          Role Discovery (Octet 4 - Bit 7)
> >          Switch Role (Octet 5 - Bit 0)
> >          Read Link Policy Settings (Octet 5 - Bit 1)
> >          Write Link Policy Settings (Octet 5 - Bit 2)
> >          Read Default Link Policy Settings (Octet 5 - Bit 3)
> >          Write Default Link Policy Settings (Octet 5 - Bit 4)
> >          Flow Specification (Octet 5 - Bit 5)
> >          Set Event Mask (Octet 5 - Bit 6)
> >          Reset (Octet 5 - Bit 7)
> >          Set Event Filter (Octet 6 - Bit 0)
> >          Flush (Octet 6 - Bit 1)
> >          Read PIN Type (Octet 6 - Bit 2)
> >          Write PIN Type (Octet 6 - Bit 3)
> >          Create New Unit Key (Octet 6 - Bit 4)
> >          Read Stored Link Key (Octet 6 - Bit 5)
> >          Write Stored Link Key (Octet 6 - Bit 6)
> >          Delete Stored Link Key (Octet 6 - Bit 7)
> >          Write Local Name (Octet 7 - Bit 0)
> >          Read Local Name (Octet 7 - Bit 1)
> >          Read Connection Accept Timeout (Octet 7 - Bit 2)
> >          Write Connection Accept Timeout (Octet 7 - Bit 3)
> >          Read Page Timeout (Octet 7 - Bit 4)
> >          Write Page Timeout (Octet 7 - Bit 5)
> >          Read Scan Enable (Octet 7 - Bit 6)
> >          Write Scan Enable (Octet 7 - Bit 7)
> >          Read Page Scan Activity (Octet 8 - Bit 0)
> >          Write Page Scan Activity (Octet 8 - Bit 1)
> >          Read Inquiry Scan Activity (Octet 8 - Bit 2)
> >          Write Inquiry Scan Activity (Octet 8 - Bit 3)
> >          Read Authentication Enable (Octet 8 - Bit 4)
> >          Write Authentication Enable (Octet 8 - Bit 5)
> >          Read Encryption Mode (Octet 8 - Bit 6)
> >          Write Encryption Mode (Octet 8 - Bit 7)
> >          Read Class of Device (Octet 9 - Bit 0)
> >          Write Class of Device (Octet 9 - Bit 1)
> >          Read Voice Setting (Octet 9 - Bit 2)
> >          Write Voice Setting (Octet 9 - Bit 3)
> >          Read Automatic Flush Timeout (Octet 9 - Bit 4)
> >          Write Automatic Flush Timeout (Octet 9 - Bit 5)
> >          Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
> >          Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
> >          Read Transmit Power Level (Octet 10 - Bit 2)
> >          Read Sync Flow Control Enable (Octet 10 - Bit 3)
> >          Write Sync Flow Control Enable (Octet 10 - Bit 4)
> >          Set Controller To Host Flow Control (Octet 10 - Bit 5)
> >          Host Buffer Size (Octet 10 - Bit 6)
> >          Host Number of Completed Packets (Octet 10 - Bit 7)
> >          Read Link Supervision Timeout (Octet 11 - Bit 0)
> >          Write Link Supervision Timeout (Octet 11 - Bit 1)
> >          Read Number of Supported IAC (Octet 11 - Bit 2)
> >          Read Current IAC LAP (Octet 11 - Bit 3)
> >          Write Current IAC LAP (Octet 11 - Bit 4)
> >          Read Page Scan Mode (Octet 11 - Bit 7)
> >          Write Page Scan Mode (Octet 12 - Bit 0)
> >          Set AFH Host Channel Classification (Octet 12 - Bit 1)
> >          Read Inquiry Scan Type (Octet 12 - Bit 4)
> >          Write Inquiry Scan Type (Octet 12 - Bit 5)
> >          Read Inquiry Mode (Octet 12 - Bit 6)
> >          Write Inquiry Mode (Octet 12 - Bit 7)
> >          Read Page Scan Type (Octet 13 - Bit 0)
> >          Write Page Scan Type (Octet 13 - Bit 1)
> >          Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
> >          Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
> >          Read Local Version Information (Octet 14 - Bit 3)
> >          Read Local Supported Features (Octet 14 - Bit 5)
> >          Read Local Extended Features (Octet 14 - Bit 6)
> >          Read Buffer Size (Octet 14 - Bit 7)
> >          Read Country Code (Octet 15 - Bit 0)
> >          Read BD ADDR (Octet 15 - Bit 1)
> >          Read Failed Contact Counter (Octet 15 - Bit 2)
> >          Reset Failed Contact Counter (Octet 15 - Bit 3)
> >          Read Link Quality (Octet 15 - Bit 4)
> >          Read RSSI (Octet 15 - Bit 5)
> >          Read AFH Channel Map (Octet 15 - Bit 6)
> >          Read Clock (Octet 15 - Bit 7)
> >          Read Loopback Mode (Octet 16 - Bit 0)
> >          Write Loopback Mode (Octet 16 - Bit 1)
> >          Enable Device Under Test Mode (Octet 16 - Bit 2)
> >          Setup Synchronous Connection (Octet 16 - Bit 3)
> >          Accept Synchronous Connection Request (Octet 16 - Bit 4)
> >          Reject Synchronous Connection Request (Octet 16 - Bit 5)
> >          Read Extended Inquiry Response (Octet 17 - Bit 0)
> >          Write Extended Inquiry Response (Octet 17 - Bit 1)
> >          Refresh Encryption Key (Octet 17 - Bit 2)
> >          Sniff Subrating (Octet 17 - Bit 4)
> >          Read Simple Pairing Mode (Octet 17 - Bit 5)
> >          Write Simple Pairing Mode (Octet 17 - Bit 6)
> >          Read Local OOB Data (Octet 17 - Bit 7)
> >          Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
> >          Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
> >          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
> >          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
> >          IO Capability Request Reply (Octet 18 - Bit 7)
> >          User Confirmation Request Reply (Octet 19 - Bit 0)
> >          User Confirmation Request Neg Reply (Octet 19 - Bit 1)
> >          User Passkey Request Reply (Octet 19 - Bit 2)
> >          User Passkey Request Negative Reply (Octet 19 - Bit 3)
> >          Remote OOB Data Request Reply (Octet 19 - Bit 4)
> >          Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
> >          Enhanced Flush (Octet 19 - Bit 6)
> >          Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
> >          Send Keypress Notification (Octet 20 - Bit 2)
> >          IO Capability Request Negative Reply (Octet 20 - Bit 3)
> >          Read Encryption Key Size (Octet 20 - Bit 4)
> >          Set Event Mask Page 2 (Octet 22 - Bit 2)
> >          Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
> >          Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
> >          Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
> >          Read Local Supported Codecs (Octet 29 - Bit 5)
> >          Set Triggered Clock Capture (Octet 30 - Bit 5)
> >          Truncated Page (Octet 30 - Bit 6)
> >          Truncated Page Cancel (Octet 30 - Bit 7)
> >          Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
> >          Start Synchronization Train (Octet 31 - Bit 2)
> >          Set Reserved LT_ADDR (Octet 31 - Bit 4)
> >          Delete Reserved LT_ADDR (Octet 31 - Bit 5)
> >          Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
> >          Read Synchronization Train Parameters (Octet 31 - Bit 7)
> >          Write Synchronization Train Parameters (Octet 32 - Bit 0)
> >          Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
> >          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
> >          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
> >          Read Local OOB Extended Data (Octet 32 - Bit 6)
> >          Write Secure Connections Test Mode (Octet 32 - Bit 7)
> >          Read Extended Page Timeout (Octet 33 - Bit 0)
> >          Write Extended Page Timeout (Octet 33 - Bit 1)
> >          Read Extended Inquiry Length (Octet 33 - Bit 2)
> >          Write Extended Inquiry Length (Octet 33 - Bit 3)
> >          LE Set Data Length (Octet 33 - Bit 6)
> >          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
> >          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
> >          LE Read Local P-256 Public Key (Octet 34 - Bit 1)
> >          LE Generate DHKey (Octet 34 - Bit 2)
> >          LE Add Device To Resolving List (Octet 34 - Bit 3)
> >          LE Remove Device From Resolving List (Octet 34 - Bit 4)
> >          LE Clear Resolving List (Octet 34 - Bit 5)
> >          LE Read Resolving List Size (Octet 34 - Bit 6)
> >          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
> >          LE Read Local Resolvable Address (Octet 35 - Bit 0)
> >          LE Set Address Resolution Enable (Octet 35 - Bit 1)
> >          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
> >          LE Read Maximum Data Length (Octet 35 - Bit 3)
> >          Octet 35 - Bit 4 
> >          Octet 35 - Bit 5 
> >          Octet 35 - Bit 6 
> >          Octet 35 - Bit 7 
> >          Octet 36 - Bit 0 
> 
> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
> 

To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  

to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.

Below code snippet is the only thing I added to avoid a fail at Bluez core to bring up the device.

@@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
                return;

        memcpy(hdev->le_features, rp->features, 8);
+       hdev->le_features[0] = 0;
+       hdev->le_features[1] = 0;
 }


> > < HCI Command: Write Simple Pairing Mode (0x03|0x0056) plen 1  [hci0] 10.869023
> >        Mode: Enabled (0x01)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869185
> >      Write Simple Pairing Mode (0x03|0x0056) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1         [hci0] 10.869239
> >        Mode: Inquiry Result with RSSI or Extended Inquiry Result (0x02)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869371
> >      Write Inquiry Mode (0x03|0x0045) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Inquiry Response T.. (0x03|0x0058) plen 0  [hci0] 10.869396
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.869552
> >      Read Inquiry Response TX Power Level (0x03|0x0058) ncmd 1
> >        Status: Success (0x00)
> >        TX power: -1 dBm
> > < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.869572
> >        Page: 1
> >> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.869729
> >      Read Local Extended Features (0x04|0x0004) ncmd 1
> >        Status: Success (0x00)
> >        Page: 1/2
> >        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> >          Secure Simple Pairing (Host Support)
> > < HCI Command: Set Event Mask (0x03|0x0001) plen 8             [hci0] 10.869783
> >        Mask: 0x3dbff807fffbffff
> >          Inquiry Complete
> >          Inquiry Result
> >          Connection Complete
> >          Connection Request
> >          Disconnection Complete
> >          Authentication Complete
> >          Remote Name Request Complete
> >          Encryption Change
> >          Change Connection Link Key Complete
> >          Master Link Key Complete
> >          Read Remote Supported Features Complete
> >          Read Remote Version Information Complete
> >          QoS Setup Complete
> >          Command Complete
> >          Command Status
> >          Hardware Error
> >          Flush Occurred
> >          Role Change
> >          Mode Change
> >          Return Link Keys
> >          PIN Code Request
> >          Link Key Request
> >          Link Key Notification
> >          Loopback Command
> >          Data Buffer Overflow
> >          Max Slots Change
> >          Read Clock Offset Complete
> >          Connection Packet Type Changed
> >          QoS Violation
> >          Page Scan Mode Change
> >          Page Scan Repetition Mode Change
> >          Flow Specification Complete
> >          Inquiry Result with RSSI
> >          Read Remote Extended Features Complete
> >          Synchronous Connection Complete
> >          Synchronous Connection Changed
> >          Sniff Subrating
> >          Extended Inquiry Result
> >          Encryption Key Refresh Complete
> >          IO Capability Request
> >          IO Capability Request Reply
> >          User Confirmation Request
> >          User Passkey Request
> >          Remote OOB Data Request
> >          Simple Pairing Complete
> >          Link Supervision Timeout Changed
> >          Enhanced Flush Complete
> >          User Passkey Notification
> >          Keypress Notification
> >          Remote Host Supported Features Notification
> >          LE Meta
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869921
> >      Set Event Mask (0x03|0x0001) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Stored Link Key (0x03|0x000d) plen 7       [hci0] 10.869947
> >        Address: 00:00:00:00:00:00 (OUI 00-00-00)
> >        Read all: 0x01
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870129
> >      Read Stored Link Key (0x03|0x000d) ncmd 1
> >        Status: Success (0x00)
> >        Max num keys: 4
> >        Num keys: 0
> > < HCI Command: Write Default Link Poli.. (0x02|0x000f) plen 2  [hci0] 10.870148
> >        Link policy: 0x0005
> >          Enable Role Switch
> >          Enable Sniff Mode
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870310
> >      Write Default Link Policy Settings (0x02|0x000f) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Page Scan Activity (0x03|0x001b) plen 0    [hci0] 10.870331
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870485
> >      Read Page Scan Activity (0x03|0x001b) ncmd 1
> >        Status: Success (0x00)
> >        Interval: 1280.000 msec (0x0800)
> >        Window: 11.250 msec (0x0012)
> > < HCI Command: Read Page Scan Type (0x03|0x0046) plen 0        [hci0] 10.870504
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.870652
> >      Read Page Scan Type (0x03|0x0046) ncmd 1
> >        Status: Success (0x00)
> >        Type: Standard Scan (0x00)
> > < HCI Command: LE Set Event Mask (0x08|0x0001) plen 8          [hci0] 10.870671
> >        Mask: 0x0000000000000980
> >          LE Read Local P-256 Public Key Complete
> >          LE Generate DHKey Complete
> >          Unknown mask (0x0000000000000800)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870839
> >      LE Set Event Mask (0x08|0x0001) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write LE Host Supported (0x03|0x006d) plen 2    [hci0] 10.870859
> >        Supported: 0x01
> >        Simultaneous: 0x00
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871028
> >      Write LE Host Supported (0x03|0x006d) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.871059
> >        Page: 2
> >> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.871201
> >      Read Local Extended Features (0x04|0x0004) ncmd 1
> >        Status: Success (0x00)
> >        Page: 2/2
> >        Features: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
> >          Connectionless Slave Broadcast - Master
> >          Synchronization Train
> >          Generalized interlaced scan
> >          Secure Connections (Controller Support)
> >          Ping
> >          Train nudging
> > < HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7     [hci0] 10.871240
> >        Address: 00:00:00:00:00:00 (OUI 00-00-00)
> >        Delete all: 0x01
> >> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.871384
> >      Delete Stored Link Key (0x03|0x0012) ncmd 1
> >        Status: Success (0x00)
> >        Num keys: 0
> > < HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8      [hci0] 10.871403
> >        Mask: 0x0000000000b0c000
> >          Triggered Clock Capture
> >          Synchronization Train Complete
> >          Slave Page Response Timeout
> >          Connectionless Slave Broadcast Channel Map Change
> >          Authenticated Payload Timeout Expired
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871566
> >      Set Event Mask Page 2 (0x03|0x0063) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Supported Co.. (0x04|0x000b) plen 0  [hci0] 10.871599
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.871750
> >      Read Local Supported Codecs (0x04|0x000b) ncmd 1
> >        Status: Success (0x00)
> >        Number of supported codecs: 2
> >          Codec: CVSD (0x02)
> >          Codec: Transparent (0x03)
> >        Number of vendor codecs: 0
> > < HCI Command: Read Synchronization Tr.. (0x03|0x0077) plen 0  [hci0] 10.871769
> >> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.871928
> >      Read Synchronization Train Parameters (0x03|0x0077) ncmd 1
> >        Status: Success (0x00)
> >        Interval: 0.000 msec (0x0000)
> >        Timeout: 0.000 msec (0x00000000)
> >        Service data: 0x00
> > < HCI Command: Write Secure Connection.. (0x03|0x007a) plen 1  [hci0] 10.871947
> >        Support: Enabled (0x01)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872098
> >      Write Secure Connections Host Support (0x03|0x007a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Unknown (0x08|0x0031) plen 3                    [hci0] 10.872156
> >        03 00 00                                         ...             
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872322
> >      Unknown (0x08|0x0031) ncmd 1
> >        Status: Success (0x00)
> > = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)               [hci0] 10.872361
> 
> This extra index info worries me a little bit. I need to check if that is suppose to happen.
> > < HCI Command: LE Set Scan Response D.. (0x08|0x0009) plen 32  [hci0] 10.872431
> >        Length: 10
> >        Name (complete): builder
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872606
> >      LE Set Scan Response Data (0x08|0x0009) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 10.872627
> >        Scan enable: Page Scan (0x02)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872819
> >      Write Scan Enable (0x03|0x001a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Class of Device (0x03|0x0024) plen 3      [hci0] 10.872841
> >        Class: 0x000000
> >          Major class: Miscellaneous
> >          Minor class: 0x00
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873036
> >      Write Class of Device (0x03|0x0024) ncmd 1
> >        Status: Success (0x00)
> > * Unknown packet (code 17 len 9)                               [hci0] 10.873069
> >        02 00 00 00 07 00 00 00 00                       .........       
> > * Unknown packet (code 17 len 9)                               [hci0] 10.873069
> >        01 00 00 00 07 00 00 00 00                       .........       
> > < HCI Command: Write Local Name (0x03|0x0013) plen 248         [hci0] 10.873096
> >        Name: builder
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873446
> >      Write Local Name (0x03|0x0013) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Extended Inquir.. (0x03|0x0052) plen 241  [hci0] 10.873470
> >        FEC: Not required (0x00)
> >        Name (complete): builder
> >        TX power: -1 dBm
> >        Device ID: USB Implementer's Forum assigned (0x0002)
> >          Vendor: Linux Foundation (0x1d6b)
> >          Product: 0x0246
> >          Version: 5.2.11 (0x052b)
> >        16-bit Service UUIDs (complete): 4 entries
> >          Generic Access Profile (0x1800)
> >          Generic Attribute Profile (0x1801)
> >          A/V Remote Control (0x110e)
> >          A/V Remote Control Target (0x110c)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873857
> >      Write Extended Inquiry Response (0x03|0x0052) ncmd 1
> >        Status: Success (0x00)
> > * Unknown packet (code 17 len 13)                              [hci0] 10.873903
> >        01 00 00 00 01 00 05 00 00 d1 0a 00 00           .............   
> > * Unknown packet (code 17 len 10)                              [hci0] 10.873913
> >        02 00 00 00 06 00 d1 0a 00 00                    ..........      
> > * Unknown packet (code 16 len 7)                               [hci0] 17.803939
> >        01 00 00 00 05 00 00                             .......         
> > < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 17.803983
> >        Scan enable: No Scans (0x00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 17.804233
> >      Write Scan Enable (0x03|0x001a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Vendor (0x3f|0x006f) plen 6                     [hci0] 17.804282
> >        01 06 02 00 00 00                                ......          
> >> HCI Event: Unknown (0xe4) plen 5                             [hci0] 17.804636
> >        02 06 01 00 00                                   .....           
> > * Unknown packet (code 17 len 13)                              [hci0] 17.811580
> >        01 00 00 00 01 00 05 00 00 d0 0a 00 00           .............   
> > * Unknown packet (code 17 len 10)                              [hci0] 17.811596
> >        02 00 00 00 06 00 d0 0a 00 00                    ..........      
> > = Close Index: 00:00:46:76:22:01                               [hci0] 17.811625
> 
> Regards
> 
> Marcel
> 

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-24 15:30                 ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-24 15:30 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

On Thu, 2018-05-24 at 09:47 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >>>> 
> >>>> [ ... ]

[ ... ]

> > I post it as plain text as below 
> > 
> > 
> > Bluetooth monitor ver 5.37
> > = Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
> > = Note: Bluetooth subsystem version 2.22                               0.641502
> > = New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
> > * Unknown packet (code 14 len 30)                                      0.641509
> >        01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
> >        75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> > * Unknown packet (code 14 len 30)                                      0.641592
> >        02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
> >        6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> > * Unknown packet (code 16 len 7)                                [hci0] 6.536771
> >        01 00 00 00 05 00 01                             .......         
> > = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> > = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> 
> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
> 

I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 


> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
> >        02 01 01 00 00                                   .....           
> 
> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
> 

I have made all vendor HCI commands go through BlueZ core in v2 patch. 

And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.

As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.

> 
> 
> > < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
> >        01 07 01 00 04                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
> >        02 07 01 00 00                                   .....           
> > < HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
> >        01 06 02 00 00 01                                ......          
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
> >        02 06 01 00 00                                   .....           
> 
> Here it looks like you have 0x006f opcode with first octet 0x01 for command and then vendor event 0xe4 with first octet 0x02 for event. I assume the second octet is then the vendor command code for these.
> 

Yes, you're right.

> > < HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
> >      Reset (0x03|0x0003) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
> >      Read Local Supported Features (0x04|0x0003) ncmd 1
> >        Status: Success (0x00)
> >        Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
> >          3 slot packets
> >          5 slot packets
> >          Encryption
> >          Slot offset
> >          Timing accuracy
> >          Role switch
> >          Sniff mode
> >          Power control requests
> >          Channel quality driven data rate (CQDDR)
> >          SCO link
> >          HV2 packets
> >          HV3 packets
> >          CVSD synchronous data
> >          Power control
> >          Transparent synchronous data
> >          Broadcast Encryption
> >          Enhanced Data Rate ACL 2 Mbps mode
> >          Enhanced Data Rate ACL 3 Mbps mode
> >          Enhanced inquiry scan
> >          Interlaced inquiry scan
> >          Interlaced page scan
> >          RSSI with inquiry results
> >          Extended SCO link (EV3 packets)
> >          EV4 packets
> >          EV5 packets
> >          AFH capable slave
> >          AFH classification slave
> >          LE Supported (Controller)
> >          3-slot Enhanced Data Rate ACL packets
> >          5-slot Enhanced Data Rate ACL packets
> >          Sniff subrating
> >          Pause encryption
> >          AFH capable master
> >          AFH classification master
> >          Enhanced Data Rate eSCO 2 Mbps mode
> >          Enhanced Data Rate eSCO 3 Mbps mode
> >          3-slot Enhanced Data Rate eSCO packets
> >          Extended Inquiry Response
> >          Simultaneous LE and BR/EDR (Controller)
> >          Secure Simple Pairing
> >          Encapsulated PDU
> >          Erroneous Data Reporting
> >          Non-flushable Packet Boundary Flag
> >          Link Supervision Timeout Changed Event
> >          Inquiry TX Power Level
> >          Enhanced Power Control
> >          Extended features
> > < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> >> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
> >        29 19 09 17 20 48 07 11 00                       )... H…       
> 
> Is this meant to happen here?
> 

If event received is not expected as the specification defines, I think it's probably incorrect.

But it requires more discussion with firmware people to make it clearer.

> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
> >      Read Local Version Information (0x04|0x0001) ncmd 1
> >        Status: Success (0x00)
> >        HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
> >        LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
> >        Manufacturer: MediaTek, Inc. (70)
> > < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> >> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
> >      Read BD ADDR (0x04|0x0009) ncmd 1
> >        Status: Success (0x00)
> >        Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
> > < HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
> >> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
> >      Read Buffer Size (0x04|0x0005) ncmd 1
> >        Status: Success (0x00)
> >        ACL MTU: 1021 ACL max packet: 8
> >        SCO MTU: 184  SCO max packet: 1
> > < HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
> >> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
> >      Read Class of Device (0x03|0x0023) ncmd 1
> >        Status: Success (0x00)
> >        Class: 0x001f00
> >          Major class: Uncategorized, specific device code not specified
> >          Minor class: 0x00
> > < HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
> >> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
> >      Read Local Name (0x03|0x0014) ncmd 1
> >        Status: Success (0x00)
> >        Name: MTK MT7622 #1
> > < HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
> >> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
> >      Read Voice Setting (0x03|0x0025) ncmd 1
> >        Status: Success (0x00)
> >        Setting: 0x0060
> >          Input Coding: Linear
> >          Input Data Format: 2's complement
> >          Input Sample Size: 16-bit
> >          # of bits padding at MSB: 0
> >          Air Coding Format: CVSD
> > < HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
> >      Read Number of Supported IAC (0x03|0x0038) ncmd 1
> >        Status: Success (0x00)
> >        Number of IAC: 4
> > < HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
> >      Read Current IAC LAP (0x03|0x0039) ncmd 1
> >        Status: Success (0x00)
> >        Number of IAC: 1
> >        Access code: 0x9e8b33 (General Inquiry)
> > < HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
> >        Type: Clear All Filters (0x00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
> >      Set Event Filter (0x03|0x0005) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
> >        Timeout: 20000.000 msec (0x7d00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
> >      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
> >> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
> >      LE Read Buffer Size (0x08|0x0002) ncmd 1
> >        Status: Success (0x00)
> >        Data packet length: 251
> >        Num data packets: 8
> > < HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
> >      LE Read Local Supported Features (0x08|0x0003) ncmd 1
> >        Status: Success (0x00)
> >        Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> >          LE Encryption
> >          Extended Reject Indication
> >          Slave-initiated Features Exchange
> >          LE Ping
> >          LE Data Packet Length Extension
> >          LL Privacy
> >          Extended Scanner Filter Policies
> > < HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
> >      LE Read Supported States (0x08|0x001c) ncmd 1
> >        Status: Success (0x00)
> >        States: 0x000000001fffffff
> >          Non-connectable Advertising State
> >          Scannable Advertising State
> >          Connectable Advertising State
> >          High Duty Cycle Directed Advertising State
> >          Passive Scanning State
> >          Active Scanning State
> >          Initiating State
> >            and Connection State (Master Role)
> >          Connection State (Slave Role)
> >          Non-connectable Advertising State
> >            and Passive Scanning State
> >          Scannable Advertising State
> >            and Passive Scanning State
> >          Connectable Advertising State
> >            and Passive Scanning State
> >          High Duty Cycle Directed Advertising State
> >            and Passive Scanning State
> >          Non-connectable Advertising State
> >            and Active Scanning State
> >          Scannable Advertising State
> >            and Active Scanning State
> >          Connectable Advertising State
> >            and Active Scanning State
> >          High Duty Cycle Directed Advertising State
> >            and Active Scanning State
> >          Non-connectable Advertising State
> >            and Initiating State
> >          Scannable Advertising State
> >            and Initiating State
> >          Non-connectable Advertising State
> >            and Connection State (Master Role)
> >          Scannable Advertising State
> >            and Connection State (Master Role)
> >          Non-connectable Advertising State
> >            and Connection State (Slave Role)
> >          Scannable Advertising State
> >            and Connection State (Slave Role)
> >          Passive Scanning State
> >            and Initiating State
> >          Active Scanning State
> >            and Initiating State
> >          Passive Scanning State
> >            and Connection State (Master Role)
> >          Active Scanning State
> >            and Connection State (Master Role)
> >          Passive Scanning State
> >            and Connection State (Slave Role)
> >          Active Scanning State
> >            and Connection State (Slave Role)
> >          Initiating State
> >            and Connection State (Master Role)
> >            and Master Role & Master Role
> > < HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
> >> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
> >      Read Local Supported Commands (0x04|0x0002) ncmd 1
> >        Status: Success (0x00)
> >        Commands: 176 entries
> >          Inquiry (Octet 0 - Bit 0)
> >          Inquiry Cancel (Octet 0 - Bit 1)
> >          Periodic Inquiry Mode (Octet 0 - Bit 2)
> >          Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
> >          Create Connection (Octet 0 - Bit 4)
> >          Disconnect (Octet 0 - Bit 5)
> >          Add SCO Connection (Octet 0 - Bit 6)
> >          Create Connection Cancel (Octet 0 - Bit 7)
> >          Accept Connection Request (Octet 1 - Bit 0)
> >          Reject Connection Request (Octet 1 - Bit 1)
> >          Link Key Request Reply (Octet 1 - Bit 2)
> >          Link Key Request Negative Reply (Octet 1 - Bit 3)
> >          PIN Code Request Reply (Octet 1 - Bit 4)
> >          PIN Code Request Negative Reply (Octet 1 - Bit 5)
> >          Change Connection Packet Type (Octet 1 - Bit 6)
> >          Authentication Requested (Octet 1 - Bit 7)
> >          Set Connection Encryption (Octet 2 - Bit 0)
> >          Change Connection Link Key (Octet 2 - Bit 1)
> >          Master Link Key (Octet 2 - Bit 2)
> >          Remote Name Request (Octet 2 - Bit 3)
> >          Remote Name Request Cancel (Octet 2 - Bit 4)
> >          Read Remote Supported Features (Octet 2 - Bit 5)
> >          Read Remote Extended Features (Octet 2 - Bit 6)
> >          Read Remote Version Information (Octet 2 - Bit 7)
> >          Read Clock Offset (Octet 3 - Bit 0)
> >          Read LMP Handle (Octet 3 - Bit 1)
> >          Sniff Mode (Octet 4 - Bit 2)
> >          Exit Sniff Mode (Octet 4 - Bit 3)
> >          QoS Setup (Octet 4 - Bit 6)
> >          Role Discovery (Octet 4 - Bit 7)
> >          Switch Role (Octet 5 - Bit 0)
> >          Read Link Policy Settings (Octet 5 - Bit 1)
> >          Write Link Policy Settings (Octet 5 - Bit 2)
> >          Read Default Link Policy Settings (Octet 5 - Bit 3)
> >          Write Default Link Policy Settings (Octet 5 - Bit 4)
> >          Flow Specification (Octet 5 - Bit 5)
> >          Set Event Mask (Octet 5 - Bit 6)
> >          Reset (Octet 5 - Bit 7)
> >          Set Event Filter (Octet 6 - Bit 0)
> >          Flush (Octet 6 - Bit 1)
> >          Read PIN Type (Octet 6 - Bit 2)
> >          Write PIN Type (Octet 6 - Bit 3)
> >          Create New Unit Key (Octet 6 - Bit 4)
> >          Read Stored Link Key (Octet 6 - Bit 5)
> >          Write Stored Link Key (Octet 6 - Bit 6)
> >          Delete Stored Link Key (Octet 6 - Bit 7)
> >          Write Local Name (Octet 7 - Bit 0)
> >          Read Local Name (Octet 7 - Bit 1)
> >          Read Connection Accept Timeout (Octet 7 - Bit 2)
> >          Write Connection Accept Timeout (Octet 7 - Bit 3)
> >          Read Page Timeout (Octet 7 - Bit 4)
> >          Write Page Timeout (Octet 7 - Bit 5)
> >          Read Scan Enable (Octet 7 - Bit 6)
> >          Write Scan Enable (Octet 7 - Bit 7)
> >          Read Page Scan Activity (Octet 8 - Bit 0)
> >          Write Page Scan Activity (Octet 8 - Bit 1)
> >          Read Inquiry Scan Activity (Octet 8 - Bit 2)
> >          Write Inquiry Scan Activity (Octet 8 - Bit 3)
> >          Read Authentication Enable (Octet 8 - Bit 4)
> >          Write Authentication Enable (Octet 8 - Bit 5)
> >          Read Encryption Mode (Octet 8 - Bit 6)
> >          Write Encryption Mode (Octet 8 - Bit 7)
> >          Read Class of Device (Octet 9 - Bit 0)
> >          Write Class of Device (Octet 9 - Bit 1)
> >          Read Voice Setting (Octet 9 - Bit 2)
> >          Write Voice Setting (Octet 9 - Bit 3)
> >          Read Automatic Flush Timeout (Octet 9 - Bit 4)
> >          Write Automatic Flush Timeout (Octet 9 - Bit 5)
> >          Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
> >          Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
> >          Read Transmit Power Level (Octet 10 - Bit 2)
> >          Read Sync Flow Control Enable (Octet 10 - Bit 3)
> >          Write Sync Flow Control Enable (Octet 10 - Bit 4)
> >          Set Controller To Host Flow Control (Octet 10 - Bit 5)
> >          Host Buffer Size (Octet 10 - Bit 6)
> >          Host Number of Completed Packets (Octet 10 - Bit 7)
> >          Read Link Supervision Timeout (Octet 11 - Bit 0)
> >          Write Link Supervision Timeout (Octet 11 - Bit 1)
> >          Read Number of Supported IAC (Octet 11 - Bit 2)
> >          Read Current IAC LAP (Octet 11 - Bit 3)
> >          Write Current IAC LAP (Octet 11 - Bit 4)
> >          Read Page Scan Mode (Octet 11 - Bit 7)
> >          Write Page Scan Mode (Octet 12 - Bit 0)
> >          Set AFH Host Channel Classification (Octet 12 - Bit 1)
> >          Read Inquiry Scan Type (Octet 12 - Bit 4)
> >          Write Inquiry Scan Type (Octet 12 - Bit 5)
> >          Read Inquiry Mode (Octet 12 - Bit 6)
> >          Write Inquiry Mode (Octet 12 - Bit 7)
> >          Read Page Scan Type (Octet 13 - Bit 0)
> >          Write Page Scan Type (Octet 13 - Bit 1)
> >          Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
> >          Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
> >          Read Local Version Information (Octet 14 - Bit 3)
> >          Read Local Supported Features (Octet 14 - Bit 5)
> >          Read Local Extended Features (Octet 14 - Bit 6)
> >          Read Buffer Size (Octet 14 - Bit 7)
> >          Read Country Code (Octet 15 - Bit 0)
> >          Read BD ADDR (Octet 15 - Bit 1)
> >          Read Failed Contact Counter (Octet 15 - Bit 2)
> >          Reset Failed Contact Counter (Octet 15 - Bit 3)
> >          Read Link Quality (Octet 15 - Bit 4)
> >          Read RSSI (Octet 15 - Bit 5)
> >          Read AFH Channel Map (Octet 15 - Bit 6)
> >          Read Clock (Octet 15 - Bit 7)
> >          Read Loopback Mode (Octet 16 - Bit 0)
> >          Write Loopback Mode (Octet 16 - Bit 1)
> >          Enable Device Under Test Mode (Octet 16 - Bit 2)
> >          Setup Synchronous Connection (Octet 16 - Bit 3)
> >          Accept Synchronous Connection Request (Octet 16 - Bit 4)
> >          Reject Synchronous Connection Request (Octet 16 - Bit 5)
> >          Read Extended Inquiry Response (Octet 17 - Bit 0)
> >          Write Extended Inquiry Response (Octet 17 - Bit 1)
> >          Refresh Encryption Key (Octet 17 - Bit 2)
> >          Sniff Subrating (Octet 17 - Bit 4)
> >          Read Simple Pairing Mode (Octet 17 - Bit 5)
> >          Write Simple Pairing Mode (Octet 17 - Bit 6)
> >          Read Local OOB Data (Octet 17 - Bit 7)
> >          Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
> >          Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
> >          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
> >          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
> >          IO Capability Request Reply (Octet 18 - Bit 7)
> >          User Confirmation Request Reply (Octet 19 - Bit 0)
> >          User Confirmation Request Neg Reply (Octet 19 - Bit 1)
> >          User Passkey Request Reply (Octet 19 - Bit 2)
> >          User Passkey Request Negative Reply (Octet 19 - Bit 3)
> >          Remote OOB Data Request Reply (Octet 19 - Bit 4)
> >          Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
> >          Enhanced Flush (Octet 19 - Bit 6)
> >          Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
> >          Send Keypress Notification (Octet 20 - Bit 2)
> >          IO Capability Request Negative Reply (Octet 20 - Bit 3)
> >          Read Encryption Key Size (Octet 20 - Bit 4)
> >          Set Event Mask Page 2 (Octet 22 - Bit 2)
> >          Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
> >          Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
> >          Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
> >          Read Local Supported Codecs (Octet 29 - Bit 5)
> >          Set Triggered Clock Capture (Octet 30 - Bit 5)
> >          Truncated Page (Octet 30 - Bit 6)
> >          Truncated Page Cancel (Octet 30 - Bit 7)
> >          Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
> >          Start Synchronization Train (Octet 31 - Bit 2)
> >          Set Reserved LT_ADDR (Octet 31 - Bit 4)
> >          Delete Reserved LT_ADDR (Octet 31 - Bit 5)
> >          Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
> >          Read Synchronization Train Parameters (Octet 31 - Bit 7)
> >          Write Synchronization Train Parameters (Octet 32 - Bit 0)
> >          Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
> >          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
> >          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
> >          Read Local OOB Extended Data (Octet 32 - Bit 6)
> >          Write Secure Connections Test Mode (Octet 32 - Bit 7)
> >          Read Extended Page Timeout (Octet 33 - Bit 0)
> >          Write Extended Page Timeout (Octet 33 - Bit 1)
> >          Read Extended Inquiry Length (Octet 33 - Bit 2)
> >          Write Extended Inquiry Length (Octet 33 - Bit 3)
> >          LE Set Data Length (Octet 33 - Bit 6)
> >          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
> >          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
> >          LE Read Local P-256 Public Key (Octet 34 - Bit 1)
> >          LE Generate DHKey (Octet 34 - Bit 2)
> >          LE Add Device To Resolving List (Octet 34 - Bit 3)
> >          LE Remove Device From Resolving List (Octet 34 - Bit 4)
> >          LE Clear Resolving List (Octet 34 - Bit 5)
> >          LE Read Resolving List Size (Octet 34 - Bit 6)
> >          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
> >          LE Read Local Resolvable Address (Octet 35 - Bit 0)
> >          LE Set Address Resolution Enable (Octet 35 - Bit 1)
> >          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
> >          LE Read Maximum Data Length (Octet 35 - Bit 3)
> >          Octet 35 - Bit 4 
> >          Octet 35 - Bit 5 
> >          Octet 35 - Bit 6 
> >          Octet 35 - Bit 7 
> >          Octet 36 - Bit 0 
> 
> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
> 

To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  

to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.

Below code snippet is the only thing I added to avoid a fail at Bluez core to bring up the device.

@@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
                return;

        memcpy(hdev->le_features, rp->features, 8);
+       hdev->le_features[0] = 0;
+       hdev->le_features[1] = 0;
 }


> > < HCI Command: Write Simple Pairing Mode (0x03|0x0056) plen 1  [hci0] 10.869023
> >        Mode: Enabled (0x01)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869185
> >      Write Simple Pairing Mode (0x03|0x0056) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1         [hci0] 10.869239
> >        Mode: Inquiry Result with RSSI or Extended Inquiry Result (0x02)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869371
> >      Write Inquiry Mode (0x03|0x0045) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Inquiry Response T.. (0x03|0x0058) plen 0  [hci0] 10.869396
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.869552
> >      Read Inquiry Response TX Power Level (0x03|0x0058) ncmd 1
> >        Status: Success (0x00)
> >        TX power: -1 dBm
> > < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.869572
> >        Page: 1
> >> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.869729
> >      Read Local Extended Features (0x04|0x0004) ncmd 1
> >        Status: Success (0x00)
> >        Page: 1/2
> >        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> >          Secure Simple Pairing (Host Support)
> > < HCI Command: Set Event Mask (0x03|0x0001) plen 8             [hci0] 10.869783
> >        Mask: 0x3dbff807fffbffff
> >          Inquiry Complete
> >          Inquiry Result
> >          Connection Complete
> >          Connection Request
> >          Disconnection Complete
> >          Authentication Complete
> >          Remote Name Request Complete
> >          Encryption Change
> >          Change Connection Link Key Complete
> >          Master Link Key Complete
> >          Read Remote Supported Features Complete
> >          Read Remote Version Information Complete
> >          QoS Setup Complete
> >          Command Complete
> >          Command Status
> >          Hardware Error
> >          Flush Occurred
> >          Role Change
> >          Mode Change
> >          Return Link Keys
> >          PIN Code Request
> >          Link Key Request
> >          Link Key Notification
> >          Loopback Command
> >          Data Buffer Overflow
> >          Max Slots Change
> >          Read Clock Offset Complete
> >          Connection Packet Type Changed
> >          QoS Violation
> >          Page Scan Mode Change
> >          Page Scan Repetition Mode Change
> >          Flow Specification Complete
> >          Inquiry Result with RSSI
> >          Read Remote Extended Features Complete
> >          Synchronous Connection Complete
> >          Synchronous Connection Changed
> >          Sniff Subrating
> >          Extended Inquiry Result
> >          Encryption Key Refresh Complete
> >          IO Capability Request
> >          IO Capability Request Reply
> >          User Confirmation Request
> >          User Passkey Request
> >          Remote OOB Data Request
> >          Simple Pairing Complete
> >          Link Supervision Timeout Changed
> >          Enhanced Flush Complete
> >          User Passkey Notification
> >          Keypress Notification
> >          Remote Host Supported Features Notification
> >          LE Meta
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869921
> >      Set Event Mask (0x03|0x0001) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Stored Link Key (0x03|0x000d) plen 7       [hci0] 10.869947
> >        Address: 00:00:00:00:00:00 (OUI 00-00-00)
> >        Read all: 0x01
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870129
> >      Read Stored Link Key (0x03|0x000d) ncmd 1
> >        Status: Success (0x00)
> >        Max num keys: 4
> >        Num keys: 0
> > < HCI Command: Write Default Link Poli.. (0x02|0x000f) plen 2  [hci0] 10.870148
> >        Link policy: 0x0005
> >          Enable Role Switch
> >          Enable Sniff Mode
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870310
> >      Write Default Link Policy Settings (0x02|0x000f) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Page Scan Activity (0x03|0x001b) plen 0    [hci0] 10.870331
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870485
> >      Read Page Scan Activity (0x03|0x001b) ncmd 1
> >        Status: Success (0x00)
> >        Interval: 1280.000 msec (0x0800)
> >        Window: 11.250 msec (0x0012)
> > < HCI Command: Read Page Scan Type (0x03|0x0046) plen 0        [hci0] 10.870504
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.870652
> >      Read Page Scan Type (0x03|0x0046) ncmd 1
> >        Status: Success (0x00)
> >        Type: Standard Scan (0x00)
> > < HCI Command: LE Set Event Mask (0x08|0x0001) plen 8          [hci0] 10.870671
> >        Mask: 0x0000000000000980
> >          LE Read Local P-256 Public Key Complete
> >          LE Generate DHKey Complete
> >          Unknown mask (0x0000000000000800)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870839
> >      LE Set Event Mask (0x08|0x0001) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write LE Host Supported (0x03|0x006d) plen 2    [hci0] 10.870859
> >        Supported: 0x01
> >        Simultaneous: 0x00
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871028
> >      Write LE Host Supported (0x03|0x006d) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.871059
> >        Page: 2
> >> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.871201
> >      Read Local Extended Features (0x04|0x0004) ncmd 1
> >        Status: Success (0x00)
> >        Page: 2/2
> >        Features: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
> >          Connectionless Slave Broadcast - Master
> >          Synchronization Train
> >          Generalized interlaced scan
> >          Secure Connections (Controller Support)
> >          Ping
> >          Train nudging
> > < HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7     [hci0] 10.871240
> >        Address: 00:00:00:00:00:00 (OUI 00-00-00)
> >        Delete all: 0x01
> >> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.871384
> >      Delete Stored Link Key (0x03|0x0012) ncmd 1
> >        Status: Success (0x00)
> >        Num keys: 0
> > < HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8      [hci0] 10.871403
> >        Mask: 0x0000000000b0c000
> >          Triggered Clock Capture
> >          Synchronization Train Complete
> >          Slave Page Response Timeout
> >          Connectionless Slave Broadcast Channel Map Change
> >          Authenticated Payload Timeout Expired
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871566
> >      Set Event Mask Page 2 (0x03|0x0063) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Supported Co.. (0x04|0x000b) plen 0  [hci0] 10.871599
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.871750
> >      Read Local Supported Codecs (0x04|0x000b) ncmd 1
> >        Status: Success (0x00)
> >        Number of supported codecs: 2
> >          Codec: CVSD (0x02)
> >          Codec: Transparent (0x03)
> >        Number of vendor codecs: 0
> > < HCI Command: Read Synchronization Tr.. (0x03|0x0077) plen 0  [hci0] 10.871769
> >> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.871928
> >      Read Synchronization Train Parameters (0x03|0x0077) ncmd 1
> >        Status: Success (0x00)
> >        Interval: 0.000 msec (0x0000)
> >        Timeout: 0.000 msec (0x00000000)
> >        Service data: 0x00
> > < HCI Command: Write Secure Connection.. (0x03|0x007a) plen 1  [hci0] 10.871947
> >        Support: Enabled (0x01)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872098
> >      Write Secure Connections Host Support (0x03|0x007a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Unknown (0x08|0x0031) plen 3                    [hci0] 10.872156
> >        03 00 00                                         ...             
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872322
> >      Unknown (0x08|0x0031) ncmd 1
> >        Status: Success (0x00)
> > = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)               [hci0] 10.872361
> 
> This extra index info worries me a little bit. I need to check if that is suppose to happen.
> > < HCI Command: LE Set Scan Response D.. (0x08|0x0009) plen 32  [hci0] 10.872431
> >        Length: 10
> >        Name (complete): builder
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872606
> >      LE Set Scan Response Data (0x08|0x0009) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 10.872627
> >        Scan enable: Page Scan (0x02)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872819
> >      Write Scan Enable (0x03|0x001a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Class of Device (0x03|0x0024) plen 3      [hci0] 10.872841
> >        Class: 0x000000
> >          Major class: Miscellaneous
> >          Minor class: 0x00
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873036
> >      Write Class of Device (0x03|0x0024) ncmd 1
> >        Status: Success (0x00)
> > * Unknown packet (code 17 len 9)                               [hci0] 10.873069
> >        02 00 00 00 07 00 00 00 00                       .........       
> > * Unknown packet (code 17 len 9)                               [hci0] 10.873069
> >        01 00 00 00 07 00 00 00 00                       .........       
> > < HCI Command: Write Local Name (0x03|0x0013) plen 248         [hci0] 10.873096
> >        Name: builder
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873446
> >      Write Local Name (0x03|0x0013) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Extended Inquir.. (0x03|0x0052) plen 241  [hci0] 10.873470
> >        FEC: Not required (0x00)
> >        Name (complete): builder
> >        TX power: -1 dBm
> >        Device ID: USB Implementer's Forum assigned (0x0002)
> >          Vendor: Linux Foundation (0x1d6b)
> >          Product: 0x0246
> >          Version: 5.2.11 (0x052b)
> >        16-bit Service UUIDs (complete): 4 entries
> >          Generic Access Profile (0x1800)
> >          Generic Attribute Profile (0x1801)
> >          A/V Remote Control (0x110e)
> >          A/V Remote Control Target (0x110c)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873857
> >      Write Extended Inquiry Response (0x03|0x0052) ncmd 1
> >        Status: Success (0x00)
> > * Unknown packet (code 17 len 13)                              [hci0] 10.873903
> >        01 00 00 00 01 00 05 00 00 d1 0a 00 00           .............   
> > * Unknown packet (code 17 len 10)                              [hci0] 10.873913
> >        02 00 00 00 06 00 d1 0a 00 00                    ..........      
> > * Unknown packet (code 16 len 7)                               [hci0] 17.803939
> >        01 00 00 00 05 00 00                             .......         
> > < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 17.803983
> >        Scan enable: No Scans (0x00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 17.804233
> >      Write Scan Enable (0x03|0x001a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Vendor (0x3f|0x006f) plen 6                     [hci0] 17.804282
> >        01 06 02 00 00 00                                ......          
> >> HCI Event: Unknown (0xe4) plen 5                             [hci0] 17.804636
> >        02 06 01 00 00                                   .....           
> > * Unknown packet (code 17 len 13)                              [hci0] 17.811580
> >        01 00 00 00 01 00 05 00 00 d0 0a 00 00           .............   
> > * Unknown packet (code 17 len 10)                              [hci0] 17.811596
> >        02 00 00 00 06 00 d0 0a 00 00                    ..........      
> > = Close Index: 00:00:46:76:22:01                               [hci0] 17.811625
> 
> Regards
> 
> Marcel
> 

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-24 15:30                 ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-05-24 15:30 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 2018-05-24 at 09:47 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >>>> 
> >>>> [ ... ]

[ ... ]

> > I post it as plain text as below 
> > 
> > 
> > Bluetooth monitor ver 5.37
> > = Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
> > = Note: Bluetooth subsystem version 2.22                               0.641502
> > = New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
> > * Unknown packet (code 14 len 30)                                      0.641509
> >        01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
> >        75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> > * Unknown packet (code 14 len 30)                                      0.641592
> >        02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
> >        6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> > * Unknown packet (code 16 len 7)                                [hci0] 6.536771
> >        01 00 00 00 05 00 01                             .......         
> > = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> > = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> 
> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
> 

I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 


> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
> >        02 01 01 00 00                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
> >        02 01 01 00 00                                   .....           
> 
> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
> 

I have made all vendor HCI commands go through BlueZ core in v2 patch. 

And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.

As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.

> 
> 
> > < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
> >        01 07 01 00 04                                   .....           
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
> >        02 07 01 00 00                                   .....           
> > < HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
> >        01 06 02 00 00 01                                ......          
> >> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
> >        02 06 01 00 00                                   .....           
> 
> Here it looks like you have 0x006f opcode with first octet 0x01 for command and then vendor event 0xe4 with first octet 0x02 for event. I assume the second octet is then the vendor command code for these.
> 

Yes, you're right.

> > < HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
> >      Reset (0x03|0x0003) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
> >      Read Local Supported Features (0x04|0x0003) ncmd 1
> >        Status: Success (0x00)
> >        Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
> >          3 slot packets
> >          5 slot packets
> >          Encryption
> >          Slot offset
> >          Timing accuracy
> >          Role switch
> >          Sniff mode
> >          Power control requests
> >          Channel quality driven data rate (CQDDR)
> >          SCO link
> >          HV2 packets
> >          HV3 packets
> >          CVSD synchronous data
> >          Power control
> >          Transparent synchronous data
> >          Broadcast Encryption
> >          Enhanced Data Rate ACL 2 Mbps mode
> >          Enhanced Data Rate ACL 3 Mbps mode
> >          Enhanced inquiry scan
> >          Interlaced inquiry scan
> >          Interlaced page scan
> >          RSSI with inquiry results
> >          Extended SCO link (EV3 packets)
> >          EV4 packets
> >          EV5 packets
> >          AFH capable slave
> >          AFH classification slave
> >          LE Supported (Controller)
> >          3-slot Enhanced Data Rate ACL packets
> >          5-slot Enhanced Data Rate ACL packets
> >          Sniff subrating
> >          Pause encryption
> >          AFH capable master
> >          AFH classification master
> >          Enhanced Data Rate eSCO 2 Mbps mode
> >          Enhanced Data Rate eSCO 3 Mbps mode
> >          3-slot Enhanced Data Rate eSCO packets
> >          Extended Inquiry Response
> >          Simultaneous LE and BR/EDR (Controller)
> >          Secure Simple Pairing
> >          Encapsulated PDU
> >          Erroneous Data Reporting
> >          Non-flushable Packet Boundary Flag
> >          Link Supervision Timeout Changed Event
> >          Inquiry TX Power Level
> >          Enhanced Power Control
> >          Extended features
> > < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> >> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
> >        29 19 09 17 20 48 07 11 00                       )... H?       
> 
> Is this meant to happen here?
> 

If event received is not expected as the specification defines, I think it's probably incorrect.

But it requires more discussion with firmware people to make it clearer.

> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
> >      Read Local Version Information (0x04|0x0001) ncmd 1
> >        Status: Success (0x00)
> >        HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
> >        LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
> >        Manufacturer: MediaTek, Inc. (70)
> > < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> >> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
> >      Read BD ADDR (0x04|0x0009) ncmd 1
> >        Status: Success (0x00)
> >        Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
> > < HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
> >> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
> >      Read Buffer Size (0x04|0x0005) ncmd 1
> >        Status: Success (0x00)
> >        ACL MTU: 1021 ACL max packet: 8
> >        SCO MTU: 184  SCO max packet: 1
> > < HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
> >> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
> >      Read Class of Device (0x03|0x0023) ncmd 1
> >        Status: Success (0x00)
> >        Class: 0x001f00
> >          Major class: Uncategorized, specific device code not specified
> >          Minor class: 0x00
> > < HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
> >> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
> >      Read Local Name (0x03|0x0014) ncmd 1
> >        Status: Success (0x00)
> >        Name: MTK MT7622 #1
> > < HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
> >> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
> >      Read Voice Setting (0x03|0x0025) ncmd 1
> >        Status: Success (0x00)
> >        Setting: 0x0060
> >          Input Coding: Linear
> >          Input Data Format: 2's complement
> >          Input Sample Size: 16-bit
> >          # of bits padding at MSB: 0
> >          Air Coding Format: CVSD
> > < HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
> >      Read Number of Supported IAC (0x03|0x0038) ncmd 1
> >        Status: Success (0x00)
> >        Number of IAC: 4
> > < HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
> >      Read Current IAC LAP (0x03|0x0039) ncmd 1
> >        Status: Success (0x00)
> >        Number of IAC: 1
> >        Access code: 0x9e8b33 (General Inquiry)
> > < HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
> >        Type: Clear All Filters (0x00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
> >      Set Event Filter (0x03|0x0005) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
> >        Timeout: 20000.000 msec (0x7d00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
> >      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
> >> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
> >      LE Read Buffer Size (0x08|0x0002) ncmd 1
> >        Status: Success (0x00)
> >        Data packet length: 251
> >        Num data packets: 8
> > < HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
> >      LE Read Local Supported Features (0x08|0x0003) ncmd 1
> >        Status: Success (0x00)
> >        Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> >          LE Encryption
> >          Extended Reject Indication
> >          Slave-initiated Features Exchange
> >          LE Ping
> >          LE Data Packet Length Extension
> >          LL Privacy
> >          Extended Scanner Filter Policies
> > < HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
> >> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
> >      LE Read Supported States (0x08|0x001c) ncmd 1
> >        Status: Success (0x00)
> >        States: 0x000000001fffffff
> >          Non-connectable Advertising State
> >          Scannable Advertising State
> >          Connectable Advertising State
> >          High Duty Cycle Directed Advertising State
> >          Passive Scanning State
> >          Active Scanning State
> >          Initiating State
> >            and Connection State (Master Role)
> >          Connection State (Slave Role)
> >          Non-connectable Advertising State
> >            and Passive Scanning State
> >          Scannable Advertising State
> >            and Passive Scanning State
> >          Connectable Advertising State
> >            and Passive Scanning State
> >          High Duty Cycle Directed Advertising State
> >            and Passive Scanning State
> >          Non-connectable Advertising State
> >            and Active Scanning State
> >          Scannable Advertising State
> >            and Active Scanning State
> >          Connectable Advertising State
> >            and Active Scanning State
> >          High Duty Cycle Directed Advertising State
> >            and Active Scanning State
> >          Non-connectable Advertising State
> >            and Initiating State
> >          Scannable Advertising State
> >            and Initiating State
> >          Non-connectable Advertising State
> >            and Connection State (Master Role)
> >          Scannable Advertising State
> >            and Connection State (Master Role)
> >          Non-connectable Advertising State
> >            and Connection State (Slave Role)
> >          Scannable Advertising State
> >            and Connection State (Slave Role)
> >          Passive Scanning State
> >            and Initiating State
> >          Active Scanning State
> >            and Initiating State
> >          Passive Scanning State
> >            and Connection State (Master Role)
> >          Active Scanning State
> >            and Connection State (Master Role)
> >          Passive Scanning State
> >            and Connection State (Slave Role)
> >          Active Scanning State
> >            and Connection State (Slave Role)
> >          Initiating State
> >            and Connection State (Master Role)
> >            and Master Role & Master Role
> > < HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
> >> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
> >      Read Local Supported Commands (0x04|0x0002) ncmd 1
> >        Status: Success (0x00)
> >        Commands: 176 entries
> >          Inquiry (Octet 0 - Bit 0)
> >          Inquiry Cancel (Octet 0 - Bit 1)
> >          Periodic Inquiry Mode (Octet 0 - Bit 2)
> >          Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
> >          Create Connection (Octet 0 - Bit 4)
> >          Disconnect (Octet 0 - Bit 5)
> >          Add SCO Connection (Octet 0 - Bit 6)
> >          Create Connection Cancel (Octet 0 - Bit 7)
> >          Accept Connection Request (Octet 1 - Bit 0)
> >          Reject Connection Request (Octet 1 - Bit 1)
> >          Link Key Request Reply (Octet 1 - Bit 2)
> >          Link Key Request Negative Reply (Octet 1 - Bit 3)
> >          PIN Code Request Reply (Octet 1 - Bit 4)
> >          PIN Code Request Negative Reply (Octet 1 - Bit 5)
> >          Change Connection Packet Type (Octet 1 - Bit 6)
> >          Authentication Requested (Octet 1 - Bit 7)
> >          Set Connection Encryption (Octet 2 - Bit 0)
> >          Change Connection Link Key (Octet 2 - Bit 1)
> >          Master Link Key (Octet 2 - Bit 2)
> >          Remote Name Request (Octet 2 - Bit 3)
> >          Remote Name Request Cancel (Octet 2 - Bit 4)
> >          Read Remote Supported Features (Octet 2 - Bit 5)
> >          Read Remote Extended Features (Octet 2 - Bit 6)
> >          Read Remote Version Information (Octet 2 - Bit 7)
> >          Read Clock Offset (Octet 3 - Bit 0)
> >          Read LMP Handle (Octet 3 - Bit 1)
> >          Sniff Mode (Octet 4 - Bit 2)
> >          Exit Sniff Mode (Octet 4 - Bit 3)
> >          QoS Setup (Octet 4 - Bit 6)
> >          Role Discovery (Octet 4 - Bit 7)
> >          Switch Role (Octet 5 - Bit 0)
> >          Read Link Policy Settings (Octet 5 - Bit 1)
> >          Write Link Policy Settings (Octet 5 - Bit 2)
> >          Read Default Link Policy Settings (Octet 5 - Bit 3)
> >          Write Default Link Policy Settings (Octet 5 - Bit 4)
> >          Flow Specification (Octet 5 - Bit 5)
> >          Set Event Mask (Octet 5 - Bit 6)
> >          Reset (Octet 5 - Bit 7)
> >          Set Event Filter (Octet 6 - Bit 0)
> >          Flush (Octet 6 - Bit 1)
> >          Read PIN Type (Octet 6 - Bit 2)
> >          Write PIN Type (Octet 6 - Bit 3)
> >          Create New Unit Key (Octet 6 - Bit 4)
> >          Read Stored Link Key (Octet 6 - Bit 5)
> >          Write Stored Link Key (Octet 6 - Bit 6)
> >          Delete Stored Link Key (Octet 6 - Bit 7)
> >          Write Local Name (Octet 7 - Bit 0)
> >          Read Local Name (Octet 7 - Bit 1)
> >          Read Connection Accept Timeout (Octet 7 - Bit 2)
> >          Write Connection Accept Timeout (Octet 7 - Bit 3)
> >          Read Page Timeout (Octet 7 - Bit 4)
> >          Write Page Timeout (Octet 7 - Bit 5)
> >          Read Scan Enable (Octet 7 - Bit 6)
> >          Write Scan Enable (Octet 7 - Bit 7)
> >          Read Page Scan Activity (Octet 8 - Bit 0)
> >          Write Page Scan Activity (Octet 8 - Bit 1)
> >          Read Inquiry Scan Activity (Octet 8 - Bit 2)
> >          Write Inquiry Scan Activity (Octet 8 - Bit 3)
> >          Read Authentication Enable (Octet 8 - Bit 4)
> >          Write Authentication Enable (Octet 8 - Bit 5)
> >          Read Encryption Mode (Octet 8 - Bit 6)
> >          Write Encryption Mode (Octet 8 - Bit 7)
> >          Read Class of Device (Octet 9 - Bit 0)
> >          Write Class of Device (Octet 9 - Bit 1)
> >          Read Voice Setting (Octet 9 - Bit 2)
> >          Write Voice Setting (Octet 9 - Bit 3)
> >          Read Automatic Flush Timeout (Octet 9 - Bit 4)
> >          Write Automatic Flush Timeout (Octet 9 - Bit 5)
> >          Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
> >          Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
> >          Read Transmit Power Level (Octet 10 - Bit 2)
> >          Read Sync Flow Control Enable (Octet 10 - Bit 3)
> >          Write Sync Flow Control Enable (Octet 10 - Bit 4)
> >          Set Controller To Host Flow Control (Octet 10 - Bit 5)
> >          Host Buffer Size (Octet 10 - Bit 6)
> >          Host Number of Completed Packets (Octet 10 - Bit 7)
> >          Read Link Supervision Timeout (Octet 11 - Bit 0)
> >          Write Link Supervision Timeout (Octet 11 - Bit 1)
> >          Read Number of Supported IAC (Octet 11 - Bit 2)
> >          Read Current IAC LAP (Octet 11 - Bit 3)
> >          Write Current IAC LAP (Octet 11 - Bit 4)
> >          Read Page Scan Mode (Octet 11 - Bit 7)
> >          Write Page Scan Mode (Octet 12 - Bit 0)
> >          Set AFH Host Channel Classification (Octet 12 - Bit 1)
> >          Read Inquiry Scan Type (Octet 12 - Bit 4)
> >          Write Inquiry Scan Type (Octet 12 - Bit 5)
> >          Read Inquiry Mode (Octet 12 - Bit 6)
> >          Write Inquiry Mode (Octet 12 - Bit 7)
> >          Read Page Scan Type (Octet 13 - Bit 0)
> >          Write Page Scan Type (Octet 13 - Bit 1)
> >          Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
> >          Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
> >          Read Local Version Information (Octet 14 - Bit 3)
> >          Read Local Supported Features (Octet 14 - Bit 5)
> >          Read Local Extended Features (Octet 14 - Bit 6)
> >          Read Buffer Size (Octet 14 - Bit 7)
> >          Read Country Code (Octet 15 - Bit 0)
> >          Read BD ADDR (Octet 15 - Bit 1)
> >          Read Failed Contact Counter (Octet 15 - Bit 2)
> >          Reset Failed Contact Counter (Octet 15 - Bit 3)
> >          Read Link Quality (Octet 15 - Bit 4)
> >          Read RSSI (Octet 15 - Bit 5)
> >          Read AFH Channel Map (Octet 15 - Bit 6)
> >          Read Clock (Octet 15 - Bit 7)
> >          Read Loopback Mode (Octet 16 - Bit 0)
> >          Write Loopback Mode (Octet 16 - Bit 1)
> >          Enable Device Under Test Mode (Octet 16 - Bit 2)
> >          Setup Synchronous Connection (Octet 16 - Bit 3)
> >          Accept Synchronous Connection Request (Octet 16 - Bit 4)
> >          Reject Synchronous Connection Request (Octet 16 - Bit 5)
> >          Read Extended Inquiry Response (Octet 17 - Bit 0)
> >          Write Extended Inquiry Response (Octet 17 - Bit 1)
> >          Refresh Encryption Key (Octet 17 - Bit 2)
> >          Sniff Subrating (Octet 17 - Bit 4)
> >          Read Simple Pairing Mode (Octet 17 - Bit 5)
> >          Write Simple Pairing Mode (Octet 17 - Bit 6)
> >          Read Local OOB Data (Octet 17 - Bit 7)
> >          Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
> >          Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
> >          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
> >          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
> >          IO Capability Request Reply (Octet 18 - Bit 7)
> >          User Confirmation Request Reply (Octet 19 - Bit 0)
> >          User Confirmation Request Neg Reply (Octet 19 - Bit 1)
> >          User Passkey Request Reply (Octet 19 - Bit 2)
> >          User Passkey Request Negative Reply (Octet 19 - Bit 3)
> >          Remote OOB Data Request Reply (Octet 19 - Bit 4)
> >          Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
> >          Enhanced Flush (Octet 19 - Bit 6)
> >          Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
> >          Send Keypress Notification (Octet 20 - Bit 2)
> >          IO Capability Request Negative Reply (Octet 20 - Bit 3)
> >          Read Encryption Key Size (Octet 20 - Bit 4)
> >          Set Event Mask Page 2 (Octet 22 - Bit 2)
> >          Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
> >          Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
> >          Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
> >          Read Local Supported Codecs (Octet 29 - Bit 5)
> >          Set Triggered Clock Capture (Octet 30 - Bit 5)
> >          Truncated Page (Octet 30 - Bit 6)
> >          Truncated Page Cancel (Octet 30 - Bit 7)
> >          Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
> >          Start Synchronization Train (Octet 31 - Bit 2)
> >          Set Reserved LT_ADDR (Octet 31 - Bit 4)
> >          Delete Reserved LT_ADDR (Octet 31 - Bit 5)
> >          Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
> >          Read Synchronization Train Parameters (Octet 31 - Bit 7)
> >          Write Synchronization Train Parameters (Octet 32 - Bit 0)
> >          Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
> >          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
> >          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
> >          Read Local OOB Extended Data (Octet 32 - Bit 6)
> >          Write Secure Connections Test Mode (Octet 32 - Bit 7)
> >          Read Extended Page Timeout (Octet 33 - Bit 0)
> >          Write Extended Page Timeout (Octet 33 - Bit 1)
> >          Read Extended Inquiry Length (Octet 33 - Bit 2)
> >          Write Extended Inquiry Length (Octet 33 - Bit 3)
> >          LE Set Data Length (Octet 33 - Bit 6)
> >          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
> >          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
> >          LE Read Local P-256 Public Key (Octet 34 - Bit 1)
> >          LE Generate DHKey (Octet 34 - Bit 2)
> >          LE Add Device To Resolving List (Octet 34 - Bit 3)
> >          LE Remove Device From Resolving List (Octet 34 - Bit 4)
> >          LE Clear Resolving List (Octet 34 - Bit 5)
> >          LE Read Resolving List Size (Octet 34 - Bit 6)
> >          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
> >          LE Read Local Resolvable Address (Octet 35 - Bit 0)
> >          LE Set Address Resolution Enable (Octet 35 - Bit 1)
> >          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
> >          LE Read Maximum Data Length (Octet 35 - Bit 3)
> >          Octet 35 - Bit 4 
> >          Octet 35 - Bit 5 
> >          Octet 35 - Bit 6 
> >          Octet 35 - Bit 7 
> >          Octet 36 - Bit 0 
> 
> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
> 

To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  

to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.

Below code snippet is the only thing I added to avoid a fail at Bluez core to bring up the device.

@@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
                return;

        memcpy(hdev->le_features, rp->features, 8);
+       hdev->le_features[0] = 0;
+       hdev->le_features[1] = 0;
 }


> > < HCI Command: Write Simple Pairing Mode (0x03|0x0056) plen 1  [hci0] 10.869023
> >        Mode: Enabled (0x01)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869185
> >      Write Simple Pairing Mode (0x03|0x0056) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Inquiry Mode (0x03|0x0045) plen 1         [hci0] 10.869239
> >        Mode: Inquiry Result with RSSI or Extended Inquiry Result (0x02)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869371
> >      Write Inquiry Mode (0x03|0x0045) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Inquiry Response T.. (0x03|0x0058) plen 0  [hci0] 10.869396
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.869552
> >      Read Inquiry Response TX Power Level (0x03|0x0058) ncmd 1
> >        Status: Success (0x00)
> >        TX power: -1 dBm
> > < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.869572
> >        Page: 1
> >> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.869729
> >      Read Local Extended Features (0x04|0x0004) ncmd 1
> >        Status: Success (0x00)
> >        Page: 1/2
> >        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> >          Secure Simple Pairing (Host Support)
> > < HCI Command: Set Event Mask (0x03|0x0001) plen 8             [hci0] 10.869783
> >        Mask: 0x3dbff807fffbffff
> >          Inquiry Complete
> >          Inquiry Result
> >          Connection Complete
> >          Connection Request
> >          Disconnection Complete
> >          Authentication Complete
> >          Remote Name Request Complete
> >          Encryption Change
> >          Change Connection Link Key Complete
> >          Master Link Key Complete
> >          Read Remote Supported Features Complete
> >          Read Remote Version Information Complete
> >          QoS Setup Complete
> >          Command Complete
> >          Command Status
> >          Hardware Error
> >          Flush Occurred
> >          Role Change
> >          Mode Change
> >          Return Link Keys
> >          PIN Code Request
> >          Link Key Request
> >          Link Key Notification
> >          Loopback Command
> >          Data Buffer Overflow
> >          Max Slots Change
> >          Read Clock Offset Complete
> >          Connection Packet Type Changed
> >          QoS Violation
> >          Page Scan Mode Change
> >          Page Scan Repetition Mode Change
> >          Flow Specification Complete
> >          Inquiry Result with RSSI
> >          Read Remote Extended Features Complete
> >          Synchronous Connection Complete
> >          Synchronous Connection Changed
> >          Sniff Subrating
> >          Extended Inquiry Result
> >          Encryption Key Refresh Complete
> >          IO Capability Request
> >          IO Capability Request Reply
> >          User Confirmation Request
> >          User Passkey Request
> >          Remote OOB Data Request
> >          Simple Pairing Complete
> >          Link Supervision Timeout Changed
> >          Enhanced Flush Complete
> >          User Passkey Notification
> >          Keypress Notification
> >          Remote Host Supported Features Notification
> >          LE Meta
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.869921
> >      Set Event Mask (0x03|0x0001) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Stored Link Key (0x03|0x000d) plen 7       [hci0] 10.869947
> >        Address: 00:00:00:00:00:00 (OUI 00-00-00)
> >        Read all: 0x01
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870129
> >      Read Stored Link Key (0x03|0x000d) ncmd 1
> >        Status: Success (0x00)
> >        Max num keys: 4
> >        Num keys: 0
> > < HCI Command: Write Default Link Poli.. (0x02|0x000f) plen 2  [hci0] 10.870148
> >        Link policy: 0x0005
> >          Enable Role Switch
> >          Enable Sniff Mode
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870310
> >      Write Default Link Policy Settings (0x02|0x000f) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Page Scan Activity (0x03|0x001b) plen 0    [hci0] 10.870331
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.870485
> >      Read Page Scan Activity (0x03|0x001b) ncmd 1
> >        Status: Success (0x00)
> >        Interval: 1280.000 msec (0x0800)
> >        Window: 11.250 msec (0x0012)
> > < HCI Command: Read Page Scan Type (0x03|0x0046) plen 0        [hci0] 10.870504
> >> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.870652
> >      Read Page Scan Type (0x03|0x0046) ncmd 1
> >        Status: Success (0x00)
> >        Type: Standard Scan (0x00)
> > < HCI Command: LE Set Event Mask (0x08|0x0001) plen 8          [hci0] 10.870671
> >        Mask: 0x0000000000000980
> >          LE Read Local P-256 Public Key Complete
> >          LE Generate DHKey Complete
> >          Unknown mask (0x0000000000000800)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.870839
> >      LE Set Event Mask (0x08|0x0001) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write LE Host Supported (0x03|0x006d) plen 2    [hci0] 10.870859
> >        Supported: 0x01
> >        Simultaneous: 0x00
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871028
> >      Write LE Host Supported (0x03|0x006d) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Extended Fea.. (0x04|0x0004) plen 1  [hci0] 10.871059
> >        Page: 2
> >> HCI Event: Command Complete (0x0e) plen 14                   [hci0] 10.871201
> >      Read Local Extended Features (0x04|0x0004) ncmd 1
> >        Status: Success (0x00)
> >        Page: 2/2
> >        Features: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
> >          Connectionless Slave Broadcast - Master
> >          Synchronization Train
> >          Generalized interlaced scan
> >          Secure Connections (Controller Support)
> >          Ping
> >          Train nudging
> > < HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7     [hci0] 10.871240
> >        Address: 00:00:00:00:00:00 (OUI 00-00-00)
> >        Delete all: 0x01
> >> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.871384
> >      Delete Stored Link Key (0x03|0x0012) ncmd 1
> >        Status: Success (0x00)
> >        Num keys: 0
> > < HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8      [hci0] 10.871403
> >        Mask: 0x0000000000b0c000
> >          Triggered Clock Capture
> >          Synchronization Train Complete
> >          Slave Page Response Timeout
> >          Connectionless Slave Broadcast Channel Map Change
> >          Authenticated Payload Timeout Expired
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.871566
> >      Set Event Mask Page 2 (0x03|0x0063) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Read Local Supported Co.. (0x04|0x000b) plen 0  [hci0] 10.871599
> >> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.871750
> >      Read Local Supported Codecs (0x04|0x000b) ncmd 1
> >        Status: Success (0x00)
> >        Number of supported codecs: 2
> >          Codec: CVSD (0x02)
> >          Codec: Transparent (0x03)
> >        Number of vendor codecs: 0
> > < HCI Command: Read Synchronization Tr.. (0x03|0x0077) plen 0  [hci0] 10.871769
> >> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.871928
> >      Read Synchronization Train Parameters (0x03|0x0077) ncmd 1
> >        Status: Success (0x00)
> >        Interval: 0.000 msec (0x0000)
> >        Timeout: 0.000 msec (0x00000000)
> >        Service data: 0x00
> > < HCI Command: Write Secure Connection.. (0x03|0x007a) plen 1  [hci0] 10.871947
> >        Support: Enabled (0x01)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872098
> >      Write Secure Connections Host Support (0x03|0x007a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Unknown (0x08|0x0031) plen 3                    [hci0] 10.872156
> >        03 00 00                                         ...             
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872322
> >      Unknown (0x08|0x0031) ncmd 1
> >        Status: Success (0x00)
> > = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)               [hci0] 10.872361
> 
> This extra index info worries me a little bit. I need to check if that is suppose to happen.
> > < HCI Command: LE Set Scan Response D.. (0x08|0x0009) plen 32  [hci0] 10.872431
> >        Length: 10
> >        Name (complete): builder
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872606
> >      LE Set Scan Response Data (0x08|0x0009) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 10.872627
> >        Scan enable: Page Scan (0x02)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.872819
> >      Write Scan Enable (0x03|0x001a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Class of Device (0x03|0x0024) plen 3      [hci0] 10.872841
> >        Class: 0x000000
> >          Major class: Miscellaneous
> >          Minor class: 0x00
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873036
> >      Write Class of Device (0x03|0x0024) ncmd 1
> >        Status: Success (0x00)
> > * Unknown packet (code 17 len 9)                               [hci0] 10.873069
> >        02 00 00 00 07 00 00 00 00                       .........       
> > * Unknown packet (code 17 len 9)                               [hci0] 10.873069
> >        01 00 00 00 07 00 00 00 00                       .........       
> > < HCI Command: Write Local Name (0x03|0x0013) plen 248         [hci0] 10.873096
> >        Name: builder
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873446
> >      Write Local Name (0x03|0x0013) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Write Extended Inquir.. (0x03|0x0052) plen 241  [hci0] 10.873470
> >        FEC: Not required (0x00)
> >        Name (complete): builder
> >        TX power: -1 dBm
> >        Device ID: USB Implementer's Forum assigned (0x0002)
> >          Vendor: Linux Foundation (0x1d6b)
> >          Product: 0x0246
> >          Version: 5.2.11 (0x052b)
> >        16-bit Service UUIDs (complete): 4 entries
> >          Generic Access Profile (0x1800)
> >          Generic Attribute Profile (0x1801)
> >          A/V Remote Control (0x110e)
> >          A/V Remote Control Target (0x110c)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.873857
> >      Write Extended Inquiry Response (0x03|0x0052) ncmd 1
> >        Status: Success (0x00)
> > * Unknown packet (code 17 len 13)                              [hci0] 10.873903
> >        01 00 00 00 01 00 05 00 00 d1 0a 00 00           .............   
> > * Unknown packet (code 17 len 10)                              [hci0] 10.873913
> >        02 00 00 00 06 00 d1 0a 00 00                    ..........      
> > * Unknown packet (code 16 len 7)                               [hci0] 17.803939
> >        01 00 00 00 05 00 00                             .......         
> > < HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 17.803983
> >        Scan enable: No Scans (0x00)
> >> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 17.804233
> >      Write Scan Enable (0x03|0x001a) ncmd 1
> >        Status: Success (0x00)
> > < HCI Command: Vendor (0x3f|0x006f) plen 6                     [hci0] 17.804282
> >        01 06 02 00 00 00                                ......          
> >> HCI Event: Unknown (0xe4) plen 5                             [hci0] 17.804636
> >        02 06 01 00 00                                   .....           
> > * Unknown packet (code 17 len 13)                              [hci0] 17.811580
> >        01 00 00 00 01 00 05 00 00 d0 0a 00 00           .............   
> > * Unknown packet (code 17 len 10)                              [hci0] 17.811596
> >        02 00 00 00 06 00 d0 0a 00 00                    ..........      
> > = Close Index: 00:00:46:76:22:01                               [hci0] 17.811625
> 
> Regards
> 
> Marcel
> 

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-24 15:30                 ` Sean Wang
@ 2018-05-30  6:26                   ` Marcel Holtmann
  -1 siblings, 0 replies; 49+ messages in thread
From: Marcel Holtmann @ 2018-05-30  6:26 UTC (permalink / raw)
  To: Sean Wang
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

Hi Sean,

>>>>>> 
>>>>>> [ ... ]
> 
> [ ... ]
> 
>>> I post it as plain text as below 
>>> 
>>> 
>>> Bluetooth monitor ver 5.37
>>> = Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
>>> = Note: Bluetooth subsystem version 2.22                               0.641502
>>> = New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
>>> * Unknown packet (code 14 len 30)                                      0.641509
>>>       01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
>>>       75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
>>> * Unknown packet (code 14 len 30)                                      0.641592
>>>       02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
>>>       6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
>>> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
>>>       01 00 00 00 05 00 01                             .......         
>>> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
>>> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
>> 
>> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
>> 
> 
> I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 

please use the latest btmon and check if it can read your trace.

>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
>>>       02 01 01 00 00                                   .....           
>> 
>> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
>> 
> 
> I have made all vendor HCI commands go through BlueZ core in v2 patch. 
> 
> And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.
> 
> As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.

I would prefer if everything goes via the Bluetooth core since then we have it all properly scheduled. Sending things down the ACL data path however if kinda funky. Does your hardware accept sending command both via ACL data and as HCI command? If so, then I would prefer sending them as HCI commands since the speed improvement you think you are getting is neglectable on Linux (I have been down that path). This seems to be a pure optimization when Windows is driving the device.

And the vendor event 0xe4 is really only received during firmware download? It is not ever received during normal operation?

> 
>> 
>> 
>>> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
>>>       01 07 01 00 04                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
>>>       02 07 01 00 00                                   .....           
>>> < HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
>>>       01 06 02 00 00 01                                ......          
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
>>>       02 06 01 00 00                                   .....           
>> 
>> Here it looks like you have 0x006f opcode with first octet 0x01 for command and then vendor event 0xe4 with first octet 0x02 for event. I assume the second octet is then the vendor command code for these.
>> 
> 
> Yes, you're right.
> 
>>> < HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
>>>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
>>>     Reset (0x03|0x0003) ncmd 1
>>>       Status: Success (0x00)
>>> < HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
>>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
>>>     Read Local Supported Features (0x04|0x0003) ncmd 1
>>>       Status: Success (0x00)
>>>       Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
>>>         3 slot packets
>>>         5 slot packets
>>>         Encryption
>>>         Slot offset
>>>         Timing accuracy
>>>         Role switch
>>>         Sniff mode
>>>         Power control requests
>>>         Channel quality driven data rate (CQDDR)
>>>         SCO link
>>>         HV2 packets
>>>         HV3 packets
>>>         CVSD synchronous data
>>>         Power control
>>>         Transparent synchronous data
>>>         Broadcast Encryption
>>>         Enhanced Data Rate ACL 2 Mbps mode
>>>         Enhanced Data Rate ACL 3 Mbps mode
>>>         Enhanced inquiry scan
>>>         Interlaced inquiry scan
>>>         Interlaced page scan
>>>         RSSI with inquiry results
>>>         Extended SCO link (EV3 packets)
>>>         EV4 packets
>>>         EV5 packets
>>>         AFH capable slave
>>>         AFH classification slave
>>>         LE Supported (Controller)
>>>         3-slot Enhanced Data Rate ACL packets
>>>         5-slot Enhanced Data Rate ACL packets
>>>         Sniff subrating
>>>         Pause encryption
>>>         AFH capable master
>>>         AFH classification master
>>>         Enhanced Data Rate eSCO 2 Mbps mode
>>>         Enhanced Data Rate eSCO 3 Mbps mode
>>>         3-slot Enhanced Data Rate eSCO packets
>>>         Extended Inquiry Response
>>>         Simultaneous LE and BR/EDR (Controller)
>>>         Secure Simple Pairing
>>>         Encapsulated PDU
>>>         Erroneous Data Reporting
>>>         Non-flushable Packet Boundary Flag
>>>         Link Supervision Timeout Changed Event
>>>         Inquiry TX Power Level
>>>         Enhanced Power Control
>>>         Extended features
>>> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
>>>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
>>>       29 19 09 17 20 48 07 11 00                       )... H…       
>> 
>> Is this meant to happen here?
>> 
> 
> If event received is not expected as the specification defines, I think it's probably incorrect.
> 
> But it requires more discussion with firmware people to make it clearer.

Please check and let them decode what this event means.

> 
>>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
>>>     Read Local Version Information (0x04|0x0001) ncmd 1
>>>       Status: Success (0x00)
>>>       HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
>>>       LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
>>>       Manufacturer: MediaTek, Inc. (70)
>>> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
>>>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
>>>     Read BD ADDR (0x04|0x0009) ncmd 1
>>>       Status: Success (0x00)
>>>       Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
>>> < HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
>>>> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
>>>     Read Buffer Size (0x04|0x0005) ncmd 1
>>>       Status: Success (0x00)
>>>       ACL MTU: 1021 ACL max packet: 8
>>>       SCO MTU: 184  SCO max packet: 1
>>> < HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
>>>> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
>>>     Read Class of Device (0x03|0x0023) ncmd 1
>>>       Status: Success (0x00)
>>>       Class: 0x001f00
>>>         Major class: Uncategorized, specific device code not specified
>>>         Minor class: 0x00
>>> < HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
>>>> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
>>>     Read Local Name (0x03|0x0014) ncmd 1
>>>       Status: Success (0x00)
>>>       Name: MTK MT7622 #1
>>> < HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
>>>> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
>>>     Read Voice Setting (0x03|0x0025) ncmd 1
>>>       Status: Success (0x00)
>>>       Setting: 0x0060
>>>         Input Coding: Linear
>>>         Input Data Format: 2's complement
>>>         Input Sample Size: 16-bit
>>>         # of bits padding at MSB: 0
>>>         Air Coding Format: CVSD
>>> < HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
>>>> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
>>>     Read Number of Supported IAC (0x03|0x0038) ncmd 1
>>>       Status: Success (0x00)
>>>       Number of IAC: 4
>>> < HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
>>>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
>>>     Read Current IAC LAP (0x03|0x0039) ncmd 1
>>>       Status: Success (0x00)
>>>       Number of IAC: 1
>>>       Access code: 0x9e8b33 (General Inquiry)
>>> < HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
>>>       Type: Clear All Filters (0x00)
>>>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
>>>     Set Event Filter (0x03|0x0005) ncmd 1
>>>       Status: Success (0x00)
>>> < HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
>>>       Timeout: 20000.000 msec (0x7d00)
>>>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
>>>     Write Connection Accept Timeout (0x03|0x0016) ncmd 1
>>>       Status: Success (0x00)
>>> < HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
>>>> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
>>>     LE Read Buffer Size (0x08|0x0002) ncmd 1
>>>       Status: Success (0x00)
>>>       Data packet length: 251
>>>       Num data packets: 8
>>> < HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
>>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
>>>     LE Read Local Supported Features (0x08|0x0003) ncmd 1
>>>       Status: Success (0x00)
>>>       Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
>>>         LE Encryption
>>>         Extended Reject Indication
>>>         Slave-initiated Features Exchange
>>>         LE Ping
>>>         LE Data Packet Length Extension
>>>         LL Privacy
>>>         Extended Scanner Filter Policies
>>> < HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
>>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
>>>     LE Read Supported States (0x08|0x001c) ncmd 1
>>>       Status: Success (0x00)
>>>       States: 0x000000001fffffff
>>>         Non-connectable Advertising State
>>>         Scannable Advertising State
>>>         Connectable Advertising State
>>>         High Duty Cycle Directed Advertising State
>>>         Passive Scanning State
>>>         Active Scanning State
>>>         Initiating State
>>>           and Connection State (Master Role)
>>>         Connection State (Slave Role)
>>>         Non-connectable Advertising State
>>>           and Passive Scanning State
>>>         Scannable Advertising State
>>>           and Passive Scanning State
>>>         Connectable Advertising State
>>>           and Passive Scanning State
>>>         High Duty Cycle Directed Advertising State
>>>           and Passive Scanning State
>>>         Non-connectable Advertising State
>>>           and Active Scanning State
>>>         Scannable Advertising State
>>>           and Active Scanning State
>>>         Connectable Advertising State
>>>           and Active Scanning State
>>>         High Duty Cycle Directed Advertising State
>>>           and Active Scanning State
>>>         Non-connectable Advertising State
>>>           and Initiating State
>>>         Scannable Advertising State
>>>           and Initiating State
>>>         Non-connectable Advertising State
>>>           and Connection State (Master Role)
>>>         Scannable Advertising State
>>>           and Connection State (Master Role)
>>>         Non-connectable Advertising State
>>>           and Connection State (Slave Role)
>>>         Scannable Advertising State
>>>           and Connection State (Slave Role)
>>>         Passive Scanning State
>>>           and Initiating State
>>>         Active Scanning State
>>>           and Initiating State
>>>         Passive Scanning State
>>>           and Connection State (Master Role)
>>>         Active Scanning State
>>>           and Connection State (Master Role)
>>>         Passive Scanning State
>>>           and Connection State (Slave Role)
>>>         Active Scanning State
>>>           and Connection State (Slave Role)
>>>         Initiating State
>>>           and Connection State (Master Role)
>>>           and Master Role & Master Role
>>> < HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
>>>> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
>>>     Read Local Supported Commands (0x04|0x0002) ncmd 1
>>>       Status: Success (0x00)
>>>       Commands: 176 entries
>>>         Inquiry (Octet 0 - Bit 0)
>>>         Inquiry Cancel (Octet 0 - Bit 1)
>>>         Periodic Inquiry Mode (Octet 0 - Bit 2)
>>>         Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
>>>         Create Connection (Octet 0 - Bit 4)
>>>         Disconnect (Octet 0 - Bit 5)
>>>         Add SCO Connection (Octet 0 - Bit 6)
>>>         Create Connection Cancel (Octet 0 - Bit 7)
>>>         Accept Connection Request (Octet 1 - Bit 0)
>>>         Reject Connection Request (Octet 1 - Bit 1)
>>>         Link Key Request Reply (Octet 1 - Bit 2)
>>>         Link Key Request Negative Reply (Octet 1 - Bit 3)
>>>         PIN Code Request Reply (Octet 1 - Bit 4)
>>>         PIN Code Request Negative Reply (Octet 1 - Bit 5)
>>>         Change Connection Packet Type (Octet 1 - Bit 6)
>>>         Authentication Requested (Octet 1 - Bit 7)
>>>         Set Connection Encryption (Octet 2 - Bit 0)
>>>         Change Connection Link Key (Octet 2 - Bit 1)
>>>         Master Link Key (Octet 2 - Bit 2)
>>>         Remote Name Request (Octet 2 - Bit 3)
>>>         Remote Name Request Cancel (Octet 2 - Bit 4)
>>>         Read Remote Supported Features (Octet 2 - Bit 5)
>>>         Read Remote Extended Features (Octet 2 - Bit 6)
>>>         Read Remote Version Information (Octet 2 - Bit 7)
>>>         Read Clock Offset (Octet 3 - Bit 0)
>>>         Read LMP Handle (Octet 3 - Bit 1)
>>>         Sniff Mode (Octet 4 - Bit 2)
>>>         Exit Sniff Mode (Octet 4 - Bit 3)
>>>         QoS Setup (Octet 4 - Bit 6)
>>>         Role Discovery (Octet 4 - Bit 7)
>>>         Switch Role (Octet 5 - Bit 0)
>>>         Read Link Policy Settings (Octet 5 - Bit 1)
>>>         Write Link Policy Settings (Octet 5 - Bit 2)
>>>         Read Default Link Policy Settings (Octet 5 - Bit 3)
>>>         Write Default Link Policy Settings (Octet 5 - Bit 4)
>>>         Flow Specification (Octet 5 - Bit 5)
>>>         Set Event Mask (Octet 5 - Bit 6)
>>>         Reset (Octet 5 - Bit 7)
>>>         Set Event Filter (Octet 6 - Bit 0)
>>>         Flush (Octet 6 - Bit 1)
>>>         Read PIN Type (Octet 6 - Bit 2)
>>>         Write PIN Type (Octet 6 - Bit 3)
>>>         Create New Unit Key (Octet 6 - Bit 4)
>>>         Read Stored Link Key (Octet 6 - Bit 5)
>>>         Write Stored Link Key (Octet 6 - Bit 6)
>>>         Delete Stored Link Key (Octet 6 - Bit 7)
>>>         Write Local Name (Octet 7 - Bit 0)
>>>         Read Local Name (Octet 7 - Bit 1)
>>>         Read Connection Accept Timeout (Octet 7 - Bit 2)
>>>         Write Connection Accept Timeout (Octet 7 - Bit 3)
>>>         Read Page Timeout (Octet 7 - Bit 4)
>>>         Write Page Timeout (Octet 7 - Bit 5)
>>>         Read Scan Enable (Octet 7 - Bit 6)
>>>         Write Scan Enable (Octet 7 - Bit 7)
>>>         Read Page Scan Activity (Octet 8 - Bit 0)
>>>         Write Page Scan Activity (Octet 8 - Bit 1)
>>>         Read Inquiry Scan Activity (Octet 8 - Bit 2)
>>>         Write Inquiry Scan Activity (Octet 8 - Bit 3)
>>>         Read Authentication Enable (Octet 8 - Bit 4)
>>>         Write Authentication Enable (Octet 8 - Bit 5)
>>>         Read Encryption Mode (Octet 8 - Bit 6)
>>>         Write Encryption Mode (Octet 8 - Bit 7)
>>>         Read Class of Device (Octet 9 - Bit 0)
>>>         Write Class of Device (Octet 9 - Bit 1)
>>>         Read Voice Setting (Octet 9 - Bit 2)
>>>         Write Voice Setting (Octet 9 - Bit 3)
>>>         Read Automatic Flush Timeout (Octet 9 - Bit 4)
>>>         Write Automatic Flush Timeout (Octet 9 - Bit 5)
>>>         Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
>>>         Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
>>>         Read Transmit Power Level (Octet 10 - Bit 2)
>>>         Read Sync Flow Control Enable (Octet 10 - Bit 3)
>>>         Write Sync Flow Control Enable (Octet 10 - Bit 4)
>>>         Set Controller To Host Flow Control (Octet 10 - Bit 5)
>>>         Host Buffer Size (Octet 10 - Bit 6)
>>>         Host Number of Completed Packets (Octet 10 - Bit 7)
>>>         Read Link Supervision Timeout (Octet 11 - Bit 0)
>>>         Write Link Supervision Timeout (Octet 11 - Bit 1)
>>>         Read Number of Supported IAC (Octet 11 - Bit 2)
>>>         Read Current IAC LAP (Octet 11 - Bit 3)
>>>         Write Current IAC LAP (Octet 11 - Bit 4)
>>>         Read Page Scan Mode (Octet 11 - Bit 7)
>>>         Write Page Scan Mode (Octet 12 - Bit 0)
>>>         Set AFH Host Channel Classification (Octet 12 - Bit 1)
>>>         Read Inquiry Scan Type (Octet 12 - Bit 4)
>>>         Write Inquiry Scan Type (Octet 12 - Bit 5)
>>>         Read Inquiry Mode (Octet 12 - Bit 6)
>>>         Write Inquiry Mode (Octet 12 - Bit 7)
>>>         Read Page Scan Type (Octet 13 - Bit 0)
>>>         Write Page Scan Type (Octet 13 - Bit 1)
>>>         Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
>>>         Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
>>>         Read Local Version Information (Octet 14 - Bit 3)
>>>         Read Local Supported Features (Octet 14 - Bit 5)
>>>         Read Local Extended Features (Octet 14 - Bit 6)
>>>         Read Buffer Size (Octet 14 - Bit 7)
>>>         Read Country Code (Octet 15 - Bit 0)
>>>         Read BD ADDR (Octet 15 - Bit 1)
>>>         Read Failed Contact Counter (Octet 15 - Bit 2)
>>>         Reset Failed Contact Counter (Octet 15 - Bit 3)
>>>         Read Link Quality (Octet 15 - Bit 4)
>>>         Read RSSI (Octet 15 - Bit 5)
>>>         Read AFH Channel Map (Octet 15 - Bit 6)
>>>         Read Clock (Octet 15 - Bit 7)
>>>         Read Loopback Mode (Octet 16 - Bit 0)
>>>         Write Loopback Mode (Octet 16 - Bit 1)
>>>         Enable Device Under Test Mode (Octet 16 - Bit 2)
>>>         Setup Synchronous Connection (Octet 16 - Bit 3)
>>>         Accept Synchronous Connection Request (Octet 16 - Bit 4)
>>>         Reject Synchronous Connection Request (Octet 16 - Bit 5)
>>>         Read Extended Inquiry Response (Octet 17 - Bit 0)
>>>         Write Extended Inquiry Response (Octet 17 - Bit 1)
>>>         Refresh Encryption Key (Octet 17 - Bit 2)
>>>         Sniff Subrating (Octet 17 - Bit 4)
>>>         Read Simple Pairing Mode (Octet 17 - Bit 5)
>>>         Write Simple Pairing Mode (Octet 17 - Bit 6)
>>>         Read Local OOB Data (Octet 17 - Bit 7)
>>>         Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
>>>         Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
>>>         Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
>>>         Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
>>>         IO Capability Request Reply (Octet 18 - Bit 7)
>>>         User Confirmation Request Reply (Octet 19 - Bit 0)
>>>         User Confirmation Request Neg Reply (Octet 19 - Bit 1)
>>>         User Passkey Request Reply (Octet 19 - Bit 2)
>>>         User Passkey Request Negative Reply (Octet 19 - Bit 3)
>>>         Remote OOB Data Request Reply (Octet 19 - Bit 4)
>>>         Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
>>>         Enhanced Flush (Octet 19 - Bit 6)
>>>         Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
>>>         Send Keypress Notification (Octet 20 - Bit 2)
>>>         IO Capability Request Negative Reply (Octet 20 - Bit 3)
>>>         Read Encryption Key Size (Octet 20 - Bit 4)
>>>         Set Event Mask Page 2 (Octet 22 - Bit 2)
>>>         Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
>>>         Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
>>>         Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
>>>         Read Local Supported Codecs (Octet 29 - Bit 5)
>>>         Set Triggered Clock Capture (Octet 30 - Bit 5)
>>>         Truncated Page (Octet 30 - Bit 6)
>>>         Truncated Page Cancel (Octet 30 - Bit 7)
>>>         Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
>>>         Start Synchronization Train (Octet 31 - Bit 2)
>>>         Set Reserved LT_ADDR (Octet 31 - Bit 4)
>>>         Delete Reserved LT_ADDR (Octet 31 - Bit 5)
>>>         Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
>>>         Read Synchronization Train Parameters (Octet 31 - Bit 7)
>>>         Write Synchronization Train Parameters (Octet 32 - Bit 0)
>>>         Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
>>>         Read Authenticated Payload Timeout (Octet 32 - Bit 4)
>>>         Write Authenticated Payload Timeout (Octet 32 - Bit 5)
>>>         Read Local OOB Extended Data (Octet 32 - Bit 6)
>>>         Write Secure Connections Test Mode (Octet 32 - Bit 7)
>>>         Read Extended Page Timeout (Octet 33 - Bit 0)
>>>         Write Extended Page Timeout (Octet 33 - Bit 1)
>>>         Read Extended Inquiry Length (Octet 33 - Bit 2)
>>>         Write Extended Inquiry Length (Octet 33 - Bit 3)
>>>         LE Set Data Length (Octet 33 - Bit 6)
>>>         LE Read Suggested Default Data Length (Octet 33 - Bit 7)
>>>         LE Write Suggested Default Data Length (Octet 34 - Bit 0)
>>>         LE Read Local P-256 Public Key (Octet 34 - Bit 1)
>>>         LE Generate DHKey (Octet 34 - Bit 2)
>>>         LE Add Device To Resolving List (Octet 34 - Bit 3)
>>>         LE Remove Device From Resolving List (Octet 34 - Bit 4)
>>>         LE Clear Resolving List (Octet 34 - Bit 5)
>>>         LE Read Resolving List Size (Octet 34 - Bit 6)
>>>         LE Read Peer Resolvable Address (Octet 34 - Bit 7)
>>>         LE Read Local Resolvable Address (Octet 35 - Bit 0)
>>>         LE Set Address Resolution Enable (Octet 35 - Bit 1)
>>>         LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
>>>         LE Read Maximum Data Length (Octet 35 - Bit 3)
>>>         Octet 35 - Bit 4 
>>>         Octet 35 - Bit 5 
>>>         Octet 35 - Bit 6 
>>>         Octet 35 - Bit 7 
>>>         Octet 36 - Bit 0 
>> 
>> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
>> 
> 
> To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  
> 
> to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.
> 
> Below code snippet is the only thing I added to avoid a fail at Bluez core to bring up the device.
> 
> @@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
>                return;
> 
>        memcpy(hdev->le_features, rp->features, 8);
> +       hdev->le_features[0] = 0;
> +       hdev->le_features[1] = 0;
> }

Send me the trace where you didn’t clear the feature bits and I check what is going on. I doubt that we have a bug, but maybe some of the commands are optional and we should add an appropriate check. Or you guys need to fix your firmware. A new btmon should decode all bits properly.

Regards

Marcel

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-05-30  6:26                   ` Marcel Holtmann
  0 siblings, 0 replies; 49+ messages in thread
From: Marcel Holtmann @ 2018-05-30  6:26 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Sean,

>>>>>> 
>>>>>> [ ... ]
> 
> [ ... ]
> 
>>> I post it as plain text as below 
>>> 
>>> 
>>> Bluetooth monitor ver 5.37
>>> = Note: Linux version 4.16.0-rc1+ (aarch64)                            0.641494
>>> = Note: Bluetooth subsystem version 2.22                               0.641502
>>> = New Index: 00:00:46:76:22:01 (BR/EDR,UART,hci0)               [hci0] 0.641505
>>> * Unknown packet (code 14 len 30)                                      0.641509
>>>       01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
>>>       75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
>>> * Unknown packet (code 14 len 30)                                      0.641592
>>>       02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
>>>       6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
>>> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
>>>       01 00 00 00 05 00 01                             .......         
>>> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
>>> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
>> 
>> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
>> 
> 
> I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 

please use the latest btmon and check if it can read your trace.

>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.744105
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.745109
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.746104
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.747097
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.748090
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.749078
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.750070
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.751061
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.752054
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.753046
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.754038
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.755031
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.756025
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.757013
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758006
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.758999
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.759991
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.760983
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.761975
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.762963
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.763956
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.764948
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.765941
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.766933
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.767926
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.768919
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.769914
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.770909
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.771908
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.772904
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.773898
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.774892
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.775890
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.776882
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.777877
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.778871
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.779869
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.780864
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.781858
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.782852
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.783850
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.784845
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.785839
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.786833
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.787831
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.788826
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.789820
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.790814
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.791813
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.792809
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.793803
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.794798
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.795797
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.796791
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.797786
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.798779
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.799778
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.800774
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.801769
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.802763
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.803761
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.804755
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.805749
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.806743
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.807741
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.808737
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.809731
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.810725
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.811725
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.812719
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.813714
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
>>>       02 01 01 00 00                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
>>>       02 01 01 00 00                                   .....           
>> 
>> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
>> 
> 
> I have made all vendor HCI commands go through BlueZ core in v2 patch. 
> 
> And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.
> 
> As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.

I would prefer if everything goes via the Bluetooth core since then we have it all properly scheduled. Sending things down the ACL data path however if kinda funky. Does your hardware accept sending command both via ACL data and as HCI command? If so, then I would prefer sending them as HCI commands since the speed improvement you think you are getting is neglectable on Linux (I have been down that path). This seems to be a pure optimization when Windows is driving the device.

And the vendor event 0xe4 is really only received during firmware download? It is not ever received during normal operation?

> 
>> 
>> 
>>> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
>>>       01 07 01 00 04                                   .....           
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
>>>       02 07 01 00 00                                   .....           
>>> < HCI Command: Vendor (0x3f|0x006f) plen 6                      [hci0] 8.845071
>>>       01 06 02 00 00 01                                ......          
>>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 8.923456
>>>       02 06 01 00 00                                   .....           
>> 
>> Here it looks like you have 0x006f opcode with first octet 0x01 for command and then vendor event 0xe4 with first octet 0x02 for event. I assume the second octet is then the vendor command code for these.
>> 
> 
> Yes, you're right.
> 
>>> < HCI Command: Reset (0x03|0x0003) plen 0                      [hci0] 10.861118
>>>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.865763
>>>     Reset (0x03|0x0003) ncmd 1
>>>       Status: Success (0x00)
>>> < HCI Command: Read Local Supported Fe.. (0x04|0x0003) plen 0  [hci0] 10.865805
>>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.865965
>>>     Read Local Supported Features (0x04|0x0003) ncmd 1
>>>       Status: Success (0x00)
>>>       Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x7b 0x87
>>>         3 slot packets
>>>         5 slot packets
>>>         Encryption
>>>         Slot offset
>>>         Timing accuracy
>>>         Role switch
>>>         Sniff mode
>>>         Power control requests
>>>         Channel quality driven data rate (CQDDR)
>>>         SCO link
>>>         HV2 packets
>>>         HV3 packets
>>>         CVSD synchronous data
>>>         Power control
>>>         Transparent synchronous data
>>>         Broadcast Encryption
>>>         Enhanced Data Rate ACL 2 Mbps mode
>>>         Enhanced Data Rate ACL 3 Mbps mode
>>>         Enhanced inquiry scan
>>>         Interlaced inquiry scan
>>>         Interlaced page scan
>>>         RSSI with inquiry results
>>>         Extended SCO link (EV3 packets)
>>>         EV4 packets
>>>         EV5 packets
>>>         AFH capable slave
>>>         AFH classification slave
>>>         LE Supported (Controller)
>>>         3-slot Enhanced Data Rate ACL packets
>>>         5-slot Enhanced Data Rate ACL packets
>>>         Sniff subrating
>>>         Pause encryption
>>>         AFH capable master
>>>         AFH classification master
>>>         Enhanced Data Rate eSCO 2 Mbps mode
>>>         Enhanced Data Rate eSCO 3 Mbps mode
>>>         3-slot Enhanced Data Rate eSCO packets
>>>         Extended Inquiry Response
>>>         Simultaneous LE and BR/EDR (Controller)
>>>         Secure Simple Pairing
>>>         Encapsulated PDU
>>>         Erroneous Data Reporting
>>>         Non-flushable Packet Boundary Flag
>>>         Link Supervision Timeout Changed Event
>>>         Inquiry TX Power Level
>>>         Enhanced Power Control
>>>         Extended features
>>> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
>>>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
>>>       29 19 09 17 20 48 07 11 00                       )... H?       
>> 
>> Is this meant to happen here?
>> 
> 
> If event received is not expected as the specification defines, I think it's probably incorrect.
> 
> But it requires more discussion with firmware people to make it clearer.

Please check and let them decode what this event means.

> 
>>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
>>>     Read Local Version Information (0x04|0x0001) ncmd 1
>>>       Status: Success (0x00)
>>>       HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
>>>       LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
>>>       Manufacturer: MediaTek, Inc. (70)
>>> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
>>>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
>>>     Read BD ADDR (0x04|0x0009) ncmd 1
>>>       Status: Success (0x00)
>>>       Address: 00:00:46:76:22:01 (OLIVETTI NORTH AMERICA)
>>> < HCI Command: Read Buffer Size (0x04|0x0005) plen 0           [hci0] 10.866609
>>>> HCI Event: Command Complete (0x0e) plen 11                   [hci0] 10.866754
>>>     Read Buffer Size (0x04|0x0005) ncmd 1
>>>       Status: Success (0x00)
>>>       ACL MTU: 1021 ACL max packet: 8
>>>       SCO MTU: 184  SCO max packet: 1
>>> < HCI Command: Read Class of Device (0x03|0x0023) plen 0       [hci0] 10.866775
>>>> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.866920
>>>     Read Class of Device (0x03|0x0023) ncmd 1
>>>       Status: Success (0x00)
>>>       Class: 0x001f00
>>>         Major class: Uncategorized, specific device code not specified
>>>         Minor class: 0x00
>>> < HCI Command: Read Local Name (0x03|0x0014) plen 0            [hci0] 10.866939
>>>> HCI Event: Command Complete (0x0e) plen 252                  [hci0] 10.867256
>>>     Read Local Name (0x03|0x0014) ncmd 1
>>>       Status: Success (0x00)
>>>       Name: MTK MT7622 #1
>>> < HCI Command: Read Voice Setting (0x03|0x0025) plen 0         [hci0] 10.867308
>>>> HCI Event: Command Complete (0x0e) plen 6                    [hci0] 10.867447
>>>     Read Voice Setting (0x03|0x0025) ncmd 1
>>>       Status: Success (0x00)
>>>       Setting: 0x0060
>>>         Input Coding: Linear
>>>         Input Data Format: 2's complement
>>>         Input Sample Size: 16-bit
>>>         # of bits padding at MSB: 0
>>>         Air Coding Format: CVSD
>>> < HCI Command: Read Number of Supporte.. (0x03|0x0038) plen 0  [hci0] 10.867474
>>>> HCI Event: Command Complete (0x0e) plen 5                    [hci0] 10.867611
>>>     Read Number of Supported IAC (0x03|0x0038) ncmd 1
>>>       Status: Success (0x00)
>>>       Number of IAC: 4
>>> < HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0       [hci0] 10.867678
>>>> HCI Event: Command Complete (0x0e) plen 8                    [hci0] 10.867865
>>>     Read Current IAC LAP (0x03|0x0039) ncmd 1
>>>       Status: Success (0x00)
>>>       Number of IAC: 1
>>>       Access code: 0x9e8b33 (General Inquiry)
>>> < HCI Command: Set Event Filter (0x03|0x0005) plen 1           [hci0] 10.867890
>>>       Type: Clear All Filters (0x00)
>>>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868033
>>>     Set Event Filter (0x03|0x0005) ncmd 1
>>>       Status: Success (0x00)
>>> < HCI Command: Write Connection Accept.. (0x03|0x0016) plen 2  [hci0] 10.868054
>>>       Timeout: 20000.000 msec (0x7d00)
>>>> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 10.868235
>>>     Write Connection Accept Timeout (0x03|0x0016) ncmd 1
>>>       Status: Success (0x00)
>>> < HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0        [hci0] 10.868262
>>>> HCI Event: Command Complete (0x0e) plen 7                    [hci0] 10.868392
>>>     LE Read Buffer Size (0x08|0x0002) ncmd 1
>>>       Status: Success (0x00)
>>>       Data packet length: 251
>>>       Num data packets: 8
>>> < HCI Command: LE Read Local Supported.. (0x08|0x0003) plen 0  [hci0] 10.868413
>>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868587
>>>     LE Read Local Supported Features (0x08|0x0003) ncmd 1
>>>       Status: Success (0x00)
>>>       Features: 0xfd 0x00 0x00 0x00 0x00 0x00 0x00 0x00
>>>         LE Encryption
>>>         Extended Reject Indication
>>>         Slave-initiated Features Exchange
>>>         LE Ping
>>>         LE Data Packet Length Extension
>>>         LL Privacy
>>>         Extended Scanner Filter Policies
>>> < HCI Command: LE Read Supported States (0x08|0x001c) plen 0   [hci0] 10.868646
>>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.868787
>>>     LE Read Supported States (0x08|0x001c) ncmd 1
>>>       Status: Success (0x00)
>>>       States: 0x000000001fffffff
>>>         Non-connectable Advertising State
>>>         Scannable Advertising State
>>>         Connectable Advertising State
>>>         High Duty Cycle Directed Advertising State
>>>         Passive Scanning State
>>>         Active Scanning State
>>>         Initiating State
>>>           and Connection State (Master Role)
>>>         Connection State (Slave Role)
>>>         Non-connectable Advertising State
>>>           and Passive Scanning State
>>>         Scannable Advertising State
>>>           and Passive Scanning State
>>>         Connectable Advertising State
>>>           and Passive Scanning State
>>>         High Duty Cycle Directed Advertising State
>>>           and Passive Scanning State
>>>         Non-connectable Advertising State
>>>           and Active Scanning State
>>>         Scannable Advertising State
>>>           and Active Scanning State
>>>         Connectable Advertising State
>>>           and Active Scanning State
>>>         High Duty Cycle Directed Advertising State
>>>           and Active Scanning State
>>>         Non-connectable Advertising State
>>>           and Initiating State
>>>         Scannable Advertising State
>>>           and Initiating State
>>>         Non-connectable Advertising State
>>>           and Connection State (Master Role)
>>>         Scannable Advertising State
>>>           and Connection State (Master Role)
>>>         Non-connectable Advertising State
>>>           and Connection State (Slave Role)
>>>         Scannable Advertising State
>>>           and Connection State (Slave Role)
>>>         Passive Scanning State
>>>           and Initiating State
>>>         Active Scanning State
>>>           and Initiating State
>>>         Passive Scanning State
>>>           and Connection State (Master Role)
>>>         Active Scanning State
>>>           and Connection State (Master Role)
>>>         Passive Scanning State
>>>           and Connection State (Slave Role)
>>>         Active Scanning State
>>>           and Connection State (Slave Role)
>>>         Initiating State
>>>           and Connection State (Master Role)
>>>           and Master Role & Master Role
>>> < HCI Command: Read Local Supported Co.. (0x04|0x0002) plen 0  [hci0] 10.868807
>>>> HCI Event: Command Complete (0x0e) plen 68                   [hci0] 10.868985
>>>     Read Local Supported Commands (0x04|0x0002) ncmd 1
>>>       Status: Success (0x00)
>>>       Commands: 176 entries
>>>         Inquiry (Octet 0 - Bit 0)
>>>         Inquiry Cancel (Octet 0 - Bit 1)
>>>         Periodic Inquiry Mode (Octet 0 - Bit 2)
>>>         Exit Periodic Inquiry Mode (Octet 0 - Bit 3)
>>>         Create Connection (Octet 0 - Bit 4)
>>>         Disconnect (Octet 0 - Bit 5)
>>>         Add SCO Connection (Octet 0 - Bit 6)
>>>         Create Connection Cancel (Octet 0 - Bit 7)
>>>         Accept Connection Request (Octet 1 - Bit 0)
>>>         Reject Connection Request (Octet 1 - Bit 1)
>>>         Link Key Request Reply (Octet 1 - Bit 2)
>>>         Link Key Request Negative Reply (Octet 1 - Bit 3)
>>>         PIN Code Request Reply (Octet 1 - Bit 4)
>>>         PIN Code Request Negative Reply (Octet 1 - Bit 5)
>>>         Change Connection Packet Type (Octet 1 - Bit 6)
>>>         Authentication Requested (Octet 1 - Bit 7)
>>>         Set Connection Encryption (Octet 2 - Bit 0)
>>>         Change Connection Link Key (Octet 2 - Bit 1)
>>>         Master Link Key (Octet 2 - Bit 2)
>>>         Remote Name Request (Octet 2 - Bit 3)
>>>         Remote Name Request Cancel (Octet 2 - Bit 4)
>>>         Read Remote Supported Features (Octet 2 - Bit 5)
>>>         Read Remote Extended Features (Octet 2 - Bit 6)
>>>         Read Remote Version Information (Octet 2 - Bit 7)
>>>         Read Clock Offset (Octet 3 - Bit 0)
>>>         Read LMP Handle (Octet 3 - Bit 1)
>>>         Sniff Mode (Octet 4 - Bit 2)
>>>         Exit Sniff Mode (Octet 4 - Bit 3)
>>>         QoS Setup (Octet 4 - Bit 6)
>>>         Role Discovery (Octet 4 - Bit 7)
>>>         Switch Role (Octet 5 - Bit 0)
>>>         Read Link Policy Settings (Octet 5 - Bit 1)
>>>         Write Link Policy Settings (Octet 5 - Bit 2)
>>>         Read Default Link Policy Settings (Octet 5 - Bit 3)
>>>         Write Default Link Policy Settings (Octet 5 - Bit 4)
>>>         Flow Specification (Octet 5 - Bit 5)
>>>         Set Event Mask (Octet 5 - Bit 6)
>>>         Reset (Octet 5 - Bit 7)
>>>         Set Event Filter (Octet 6 - Bit 0)
>>>         Flush (Octet 6 - Bit 1)
>>>         Read PIN Type (Octet 6 - Bit 2)
>>>         Write PIN Type (Octet 6 - Bit 3)
>>>         Create New Unit Key (Octet 6 - Bit 4)
>>>         Read Stored Link Key (Octet 6 - Bit 5)
>>>         Write Stored Link Key (Octet 6 - Bit 6)
>>>         Delete Stored Link Key (Octet 6 - Bit 7)
>>>         Write Local Name (Octet 7 - Bit 0)
>>>         Read Local Name (Octet 7 - Bit 1)
>>>         Read Connection Accept Timeout (Octet 7 - Bit 2)
>>>         Write Connection Accept Timeout (Octet 7 - Bit 3)
>>>         Read Page Timeout (Octet 7 - Bit 4)
>>>         Write Page Timeout (Octet 7 - Bit 5)
>>>         Read Scan Enable (Octet 7 - Bit 6)
>>>         Write Scan Enable (Octet 7 - Bit 7)
>>>         Read Page Scan Activity (Octet 8 - Bit 0)
>>>         Write Page Scan Activity (Octet 8 - Bit 1)
>>>         Read Inquiry Scan Activity (Octet 8 - Bit 2)
>>>         Write Inquiry Scan Activity (Octet 8 - Bit 3)
>>>         Read Authentication Enable (Octet 8 - Bit 4)
>>>         Write Authentication Enable (Octet 8 - Bit 5)
>>>         Read Encryption Mode (Octet 8 - Bit 6)
>>>         Write Encryption Mode (Octet 8 - Bit 7)
>>>         Read Class of Device (Octet 9 - Bit 0)
>>>         Write Class of Device (Octet 9 - Bit 1)
>>>         Read Voice Setting (Octet 9 - Bit 2)
>>>         Write Voice Setting (Octet 9 - Bit 3)
>>>         Read Automatic Flush Timeout (Octet 9 - Bit 4)
>>>         Write Automatic Flush Timeout (Octet 9 - Bit 5)
>>>         Read Num Broadcast Retransmissions (Octet 9 - Bit 6)
>>>         Write Num Broadcast Retransmissions (Octet 9 - Bit 7)
>>>         Read Transmit Power Level (Octet 10 - Bit 2)
>>>         Read Sync Flow Control Enable (Octet 10 - Bit 3)
>>>         Write Sync Flow Control Enable (Octet 10 - Bit 4)
>>>         Set Controller To Host Flow Control (Octet 10 - Bit 5)
>>>         Host Buffer Size (Octet 10 - Bit 6)
>>>         Host Number of Completed Packets (Octet 10 - Bit 7)
>>>         Read Link Supervision Timeout (Octet 11 - Bit 0)
>>>         Write Link Supervision Timeout (Octet 11 - Bit 1)
>>>         Read Number of Supported IAC (Octet 11 - Bit 2)
>>>         Read Current IAC LAP (Octet 11 - Bit 3)
>>>         Write Current IAC LAP (Octet 11 - Bit 4)
>>>         Read Page Scan Mode (Octet 11 - Bit 7)
>>>         Write Page Scan Mode (Octet 12 - Bit 0)
>>>         Set AFH Host Channel Classification (Octet 12 - Bit 1)
>>>         Read Inquiry Scan Type (Octet 12 - Bit 4)
>>>         Write Inquiry Scan Type (Octet 12 - Bit 5)
>>>         Read Inquiry Mode (Octet 12 - Bit 6)
>>>         Write Inquiry Mode (Octet 12 - Bit 7)
>>>         Read Page Scan Type (Octet 13 - Bit 0)
>>>         Write Page Scan Type (Octet 13 - Bit 1)
>>>         Read AFH Channel Assessment Mode (Octet 13 - Bit 2)
>>>         Write AFH Channel Assessment Mode (Octet 13 - Bit 3)
>>>         Read Local Version Information (Octet 14 - Bit 3)
>>>         Read Local Supported Features (Octet 14 - Bit 5)
>>>         Read Local Extended Features (Octet 14 - Bit 6)
>>>         Read Buffer Size (Octet 14 - Bit 7)
>>>         Read Country Code (Octet 15 - Bit 0)
>>>         Read BD ADDR (Octet 15 - Bit 1)
>>>         Read Failed Contact Counter (Octet 15 - Bit 2)
>>>         Reset Failed Contact Counter (Octet 15 - Bit 3)
>>>         Read Link Quality (Octet 15 - Bit 4)
>>>         Read RSSI (Octet 15 - Bit 5)
>>>         Read AFH Channel Map (Octet 15 - Bit 6)
>>>         Read Clock (Octet 15 - Bit 7)
>>>         Read Loopback Mode (Octet 16 - Bit 0)
>>>         Write Loopback Mode (Octet 16 - Bit 1)
>>>         Enable Device Under Test Mode (Octet 16 - Bit 2)
>>>         Setup Synchronous Connection (Octet 16 - Bit 3)
>>>         Accept Synchronous Connection Request (Octet 16 - Bit 4)
>>>         Reject Synchronous Connection Request (Octet 16 - Bit 5)
>>>         Read Extended Inquiry Response (Octet 17 - Bit 0)
>>>         Write Extended Inquiry Response (Octet 17 - Bit 1)
>>>         Refresh Encryption Key (Octet 17 - Bit 2)
>>>         Sniff Subrating (Octet 17 - Bit 4)
>>>         Read Simple Pairing Mode (Octet 17 - Bit 5)
>>>         Write Simple Pairing Mode (Octet 17 - Bit 6)
>>>         Read Local OOB Data (Octet 17 - Bit 7)
>>>         Read Inquiry Response TX Power Level (Octet 18 - Bit 0)
>>>         Write Inquiry Transmit Power Level (Octet 18 - Bit 1)
>>>         Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
>>>         Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
>>>         IO Capability Request Reply (Octet 18 - Bit 7)
>>>         User Confirmation Request Reply (Octet 19 - Bit 0)
>>>         User Confirmation Request Neg Reply (Octet 19 - Bit 1)
>>>         User Passkey Request Reply (Octet 19 - Bit 2)
>>>         User Passkey Request Negative Reply (Octet 19 - Bit 3)
>>>         Remote OOB Data Request Reply (Octet 19 - Bit 4)
>>>         Write Simple Pairing Debug Mode (Octet 19 - Bit 5)
>>>         Enhanced Flush (Octet 19 - Bit 6)
>>>         Remote OOB Data Request Neg Reply (Octet 19 - Bit 7)
>>>         Send Keypress Notification (Octet 20 - Bit 2)
>>>         IO Capability Request Negative Reply (Octet 20 - Bit 3)
>>>         Read Encryption Key Size (Octet 20 - Bit 4)
>>>         Set Event Mask Page 2 (Octet 22 - Bit 2)
>>>         Read Enhanced Transmit Power Level (Octet 24 - Bit 0)
>>>         Enhanced Setup Synchronous Connection (Octet 29 - Bit 3)
>>>         Enhanced Accept Synchronous Connection Request (Octet 29 - Bit 4)
>>>         Read Local Supported Codecs (Octet 29 - Bit 5)
>>>         Set Triggered Clock Capture (Octet 30 - Bit 5)
>>>         Truncated Page (Octet 30 - Bit 6)
>>>         Truncated Page Cancel (Octet 30 - Bit 7)
>>>         Set Connectionless Slave Broadcast (Octet 31 - Bit 0)
>>>         Start Synchronization Train (Octet 31 - Bit 2)
>>>         Set Reserved LT_ADDR (Octet 31 - Bit 4)
>>>         Delete Reserved LT_ADDR (Octet 31 - Bit 5)
>>>         Set Connectionless Slave Broadcast Data (Octet 31 - Bit 6)
>>>         Read Synchronization Train Parameters (Octet 31 - Bit 7)
>>>         Write Synchronization Train Parameters (Octet 32 - Bit 0)
>>>         Remote OOB Extended Data Request Reply (Octet 32 - Bit 1)
>>>         Read Authenticated Payload Timeout (Octet 32 - Bit 4)
>>>         Write Authenticated Payload Timeout (Octet 32 - Bit 5)
>>>         Read Local OOB Extended Data (Octet 32 - Bit 6)
>>>         Write Secure Connections Test Mode (Octet 32 - Bit 7)
>>>         Read Extended Page Timeout (Octet 33 - Bit 0)
>>>         Write Extended Page Timeout (Octet 33 - Bit 1)
>>>         Read Extended Inquiry Length (Octet 33 - Bit 2)
>>>         Write Extended Inquiry Length (Octet 33 - Bit 3)
>>>         LE Set Data Length (Octet 33 - Bit 6)
>>>         LE Read Suggested Default Data Length (Octet 33 - Bit 7)
>>>         LE Write Suggested Default Data Length (Octet 34 - Bit 0)
>>>         LE Read Local P-256 Public Key (Octet 34 - Bit 1)
>>>         LE Generate DHKey (Octet 34 - Bit 2)
>>>         LE Add Device To Resolving List (Octet 34 - Bit 3)
>>>         LE Remove Device From Resolving List (Octet 34 - Bit 4)
>>>         LE Clear Resolving List (Octet 34 - Bit 5)
>>>         LE Read Resolving List Size (Octet 34 - Bit 6)
>>>         LE Read Peer Resolvable Address (Octet 34 - Bit 7)
>>>         LE Read Local Resolvable Address (Octet 35 - Bit 0)
>>>         LE Set Address Resolution Enable (Octet 35 - Bit 1)
>>>         LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
>>>         LE Read Maximum Data Length (Octet 35 - Bit 3)
>>>         Octet 35 - Bit 4 
>>>         Octet 35 - Bit 5 
>>>         Octet 35 - Bit 6 
>>>         Octet 35 - Bit 7 
>>>         Octet 36 - Bit 0 
>> 
>> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
>> 
> 
> To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  
> 
> to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.
> 
> Below code snippet is the only thing I added to avoid a fail at Bluez core to bring up the device.
> 
> @@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
>                return;
> 
>        memcpy(hdev->le_features, rp->features, 8);
> +       hdev->le_features[0] = 0;
> +       hdev->le_features[1] = 0;
> }

Send me the trace where you didn?t clear the feature bits and I check what is going on. I doubt that we have a bug, but maybe some of the commands are optional and we should add an appropriate check. Or you guys need to fix your firmware. A new btmon should decode all bits properly.

Regards

Marcel

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-05-30  6:26                   ` Marcel Holtmann
  (?)
@ 2018-06-12  9:58                     ` Sean Wang
  -1 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-06-12  9:58 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

On Wed, 2018-05-30 at 08:26 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >>>>>> 

[ ... ]

> >>> * Unknown packet (code 14 len 30)                                      0.641509
> >>>       01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
> >>>       75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> >>> * Unknown packet (code 14 len 30)                                      0.641592
> >>>       02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
> >>>       6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> >>> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
> >>>       01 00 00 00 05 00 01                             .......         
> >>> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> >>> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> >> 
> >> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
> >> 
> > 
> > I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 
> 
> please use the latest btmon and check if it can read your trace.
> 

sure, I'll have a try with the latest btmon.

> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
> >>>       02 01 01 00 00                                   .....           


[ ... ]

> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
> >>>       02 01 01 00 00                                   .....           
> >> 
> >> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
> >> 
> > 
> > I have made all vendor HCI commands go through BlueZ core in v2 patch. 
> > 
> > And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.
> > 
> > As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.
> 
> I would prefer if everything goes via the Bluetooth core since then we have it all properly scheduled. Sending things down the ACL data path however if kinda funky. Does your hardware accept sending command both via ACL data and as HCI command? If so, then I would prefer sending them as HCI commands since the speed improvement you think you are getting is neglectable on Linux (I have been down that path). This seems to be a pure optimization when Windows is driving the device.
> 

firmware people said the device can support firmware download as HCI commands. According to my test, this way indeed works so I will improve the part in the next version.


> And the vendor event 0xe4 is really only received during firmware download? It is not ever received during normal operation?
> 

0xe4 is only received during chip initialization.

I also thought 0xe4 is a poor definition for vendor event and already have notified firmware people should pick 0xff as its vendor event id in the future.

but for now, unfortunately, 0xe4 cannot be changed on the device, the only way is to add a workaround in RX path as below to allow btmon can recognize these bad events properly. 

int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
{
        struct hci_event_hdr *hdr = (void *)skb->data;

        /* Fix up the vendor event id with HCI_VENDOR_PKT instead of
         * 0xe4 so that btmon can parse the kind of vendor event properly.
         */
        if (hdr->evt == 0xe4)
                hdr->evt = HCI_VENDOR_PKT;

        /* Each HCI event would go through the core. */
        return hci_recv_frame(hdev, skb);
}


> > 
> >> 
> >> 
> >>> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
> >>>       01 07 01 00 04                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
> >>>       02 07 01 00 00                                   .....           

[ ... ]

> >>>         Encapsulated PDU
> >>>         Erroneous Data Reporting
> >>>         Non-flushable Packet Boundary Flag
> >>>         Link Supervision Timeout Changed Event
> >>>         Inquiry TX Power Level
> >>>         Enhanced Power Control
> >>>         Extended features
> >>> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> >>>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
> >>>       29 19 09 17 20 48 07 11 00                       )... H…       
> >> 
> >> Is this meant to happen here?
> >> 
> > 
> > If event received is not expected as the specification defines, I think it's probably incorrect.
> > 
> > But it requires more discussion with firmware people to make it clearer.
> 
> Please check and let them decode what this event means.
> 

it's just debugging purpose information listing built-time something
like that and will be removed in the firmware.

> > 
> >>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
> >>>     Read Local Version Information (0x04|0x0001) ncmd 1
> >>>       Status: Success (0x00)
> >>>       HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
> >>>       LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
> >>>       Manufacturer: MediaTek, Inc. (70)
> >>> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> >>>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539

[ ... ]

> >>>         LE Add Device To Resolving List (Octet 34 - Bit 3)
> >>>         LE Remove Device From Resolving List (Octet 34 - Bit 4)
> >>>         LE Clear Resolving List (Octet 34 - Bit 5)
> >>>         LE Read Resolving List Size (Octet 34 - Bit 6)
> >>>         LE Read Peer Resolvable Address (Octet 34 - Bit 7)
> >>>         LE Read Local Resolvable Address (Octet 35 - Bit 0)
> >>>         LE Set Address Resolution Enable (Octet 35 - Bit 1)
> >>>         LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
> >>>         LE Read Maximum Data Length (Octet 35 - Bit 3)
> >>>         Octet 35 - Bit 4 
> >>>         Octet 35 - Bit 5 
> >>>         Octet 35 - Bit 6 
> >>>         Octet 35 - Bit 7 
> >>>         Octet 36 - Bit 0 
> >> 
> >> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
> >> 
> > 
> > To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  
> > 
> > to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.
> > 
> > Below code snippet is the only thing I added to avoid a fail at Bluez core to bring up the device.
> > 
> > @@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
> >                return;
> > 
> >        memcpy(hdev->le_features, rp->features, 8);
> > +       hdev->le_features[0] = 0;
> > +       hdev->le_features[1] = 0;
> > }
> 
> Send me the trace where you didn’t clear the feature bits and I check what is going on. I doubt that we have a bug, but maybe some of the commands are optional and we should add an appropriate check. Or you guys need to fix your firmware. A new btmon should decode all bits properly.
> 

okay, I'll have a follow-up.

> Regards
> 
> Marcel
> 



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-06-12  9:58                     ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-06-12  9:58 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

On Wed, 2018-05-30 at 08:26 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >>>>>> 

[ ... ]

> >>> * Unknown packet (code 14 len 30)                                      0.641509
> >>>       01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
> >>>       75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> >>> * Unknown packet (code 14 len 30)                                      0.641592
> >>>       02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
> >>>       6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> >>> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
> >>>       01 00 00 00 05 00 01                             .......         
> >>> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> >>> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> >> 
> >> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
> >> 
> > 
> > I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 
> 
> please use the latest btmon and check if it can read your trace.
> 

sure, I'll have a try with the latest btmon.

> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
> >>>       02 01 01 00 00                                   .....           


[ ... ]

> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
> >>>       02 01 01 00 00                                   .....           
> >> 
> >> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
> >> 
> > 
> > I have made all vendor HCI commands go through BlueZ core in v2 patch. 
> > 
> > And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.
> > 
> > As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.
> 
> I would prefer if everything goes via the Bluetooth core since then we have it all properly scheduled. Sending things down the ACL data path however if kinda funky. Does your hardware accept sending command both via ACL data and as HCI command? If so, then I would prefer sending them as HCI commands since the speed improvement you think you are getting is neglectable on Linux (I have been down that path). This seems to be a pure optimization when Windows is driving the device.
> 

firmware people said the device can support firmware download as HCI commands. According to my test, this way indeed works so I will improve the part in the next version.


> And the vendor event 0xe4 is really only received during firmware download? It is not ever received during normal operation?
> 

0xe4 is only received during chip initialization.

I also thought 0xe4 is a poor definition for vendor event and already have notified firmware people should pick 0xff as its vendor event id in the future.

but for now, unfortunately, 0xe4 cannot be changed on the device, the only way is to add a workaround in RX path as below to allow btmon can recognize these bad events properly. 

int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
{
        struct hci_event_hdr *hdr = (void *)skb->data;

        /* Fix up the vendor event id with HCI_VENDOR_PKT instead of
         * 0xe4 so that btmon can parse the kind of vendor event properly.
         */
        if (hdr->evt == 0xe4)
                hdr->evt = HCI_VENDOR_PKT;

        /* Each HCI event would go through the core. */
        return hci_recv_frame(hdev, skb);
}


> > 
> >> 
> >> 
> >>> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
> >>>       01 07 01 00 04                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
> >>>       02 07 01 00 00                                   .....           

[ ... ]

> >>>         Encapsulated PDU
> >>>         Erroneous Data Reporting
> >>>         Non-flushable Packet Boundary Flag
> >>>         Link Supervision Timeout Changed Event
> >>>         Inquiry TX Power Level
> >>>         Enhanced Power Control
> >>>         Extended features
> >>> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> >>>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
> >>>       29 19 09 17 20 48 07 11 00                       )... H…       
> >> 
> >> Is this meant to happen here?
> >> 
> > 
> > If event received is not expected as the specification defines, I think it's probably incorrect.
> > 
> > But it requires more discussion with firmware people to make it clearer.
> 
> Please check and let them decode what this event means.
> 

it's just debugging purpose information listing built-time something
like that and will be removed in the firmware.

> > 
> >>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
> >>>     Read Local Version Information (0x04|0x0001) ncmd 1
> >>>       Status: Success (0x00)
> >>>       HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
> >>>       LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
> >>>       Manufacturer: MediaTek, Inc. (70)
> >>> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> >>>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539

[ ... ]

> >>>         LE Add Device To Resolving List (Octet 34 - Bit 3)
> >>>         LE Remove Device From Resolving List (Octet 34 - Bit 4)
> >>>         LE Clear Resolving List (Octet 34 - Bit 5)
> >>>         LE Read Resolving List Size (Octet 34 - Bit 6)
> >>>         LE Read Peer Resolvable Address (Octet 34 - Bit 7)
> >>>         LE Read Local Resolvable Address (Octet 35 - Bit 0)
> >>>         LE Set Address Resolution Enable (Octet 35 - Bit 1)
> >>>         LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
> >>>         LE Read Maximum Data Length (Octet 35 - Bit 3)
> >>>         Octet 35 - Bit 4 
> >>>         Octet 35 - Bit 5 
> >>>         Octet 35 - Bit 6 
> >>>         Octet 35 - Bit 7 
> >>>         Octet 36 - Bit 0 
> >> 
> >> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
> >> 
> > 
> > To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  
> > 
> > to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.
> > 
> > Below code snippet is the only thing I added to avoid a fail at Bluez core to bring up the device.
> > 
> > @@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
> >                return;
> > 
> >        memcpy(hdev->le_features, rp->features, 8);
> > +       hdev->le_features[0] = 0;
> > +       hdev->le_features[1] = 0;
> > }
> 
> Send me the trace where you didn’t clear the feature bits and I check what is going on. I doubt that we have a bug, but maybe some of the commands are optional and we should add an appropriate check. Or you guys need to fix your firmware. A new btmon should decode all bits properly.
> 

okay, I'll have a follow-up.

> Regards
> 
> Marcel
> 

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-06-12  9:58                     ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-06-12  9:58 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2018-05-30 at 08:26 +0200, Marcel Holtmann wrote:
> Hi Sean,
> 
> >>>>>> 

[ ... ]

> >>> * Unknown packet (code 14 len 30)                                      0.641509
> >>>       01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
> >>>       75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> >>> * Unknown packet (code 14 len 30)                                      0.641592
> >>>       02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
> >>>       6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> >>> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
> >>>       01 00 00 00 05 00 01                             .......         
> >>> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> >>> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> >> 
> >> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
> >> 
> > 
> > I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 
> 
> please use the latest btmon and check if it can read your trace.
> 

sure, I'll have a try with the latest btmon.

> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
> >>>       02 01 01 00 00                                   .....           


[ ... ]

> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
> >>>       02 01 01 00 00                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
> >>>       02 01 01 00 00                                   .....           
> >> 
> >> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
> >> 
> > 
> > I have made all vendor HCI commands go through BlueZ core in v2 patch. 
> > 
> > And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.
> > 
> > As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.
> 
> I would prefer if everything goes via the Bluetooth core since then we have it all properly scheduled. Sending things down the ACL data path however if kinda funky. Does your hardware accept sending command both via ACL data and as HCI command? If so, then I would prefer sending them as HCI commands since the speed improvement you think you are getting is neglectable on Linux (I have been down that path). This seems to be a pure optimization when Windows is driving the device.
> 

firmware people said the device can support firmware download as HCI commands. According to my test, this way indeed works so I will improve the part in the next version.


> And the vendor event 0xe4 is really only received during firmware download? It is not ever received during normal operation?
> 

0xe4 is only received during chip initialization.

I also thought 0xe4 is a poor definition for vendor event and already have notified firmware people should pick 0xff as its vendor event id in the future.

but for now, unfortunately, 0xe4 cannot be changed on the device, the only way is to add a workaround in RX path as below to allow btmon can recognize these bad events properly. 

int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
{
        struct hci_event_hdr *hdr = (void *)skb->data;

        /* Fix up the vendor event id with HCI_VENDOR_PKT instead of
         * 0xe4 so that btmon can parse the kind of vendor event properly.
         */
        if (hdr->evt == 0xe4)
                hdr->evt = HCI_VENDOR_PKT;

        /* Each HCI event would go through the core. */
        return hci_recv_frame(hdev, skb);
}


> > 
> >> 
> >> 
> >>> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
> >>>       01 07 01 00 04                                   .....           
> >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
> >>>       02 07 01 00 00                                   .....           

[ ... ]

> >>>         Encapsulated PDU
> >>>         Erroneous Data Reporting
> >>>         Non-flushable Packet Boundary Flag
> >>>         Link Supervision Timeout Changed Event
> >>>         Inquiry TX Power Level
> >>>         Enhanced Power Control
> >>>         Extended features
> >>> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> >>>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
> >>>       29 19 09 17 20 48 07 11 00                       )... H?       
> >> 
> >> Is this meant to happen here?
> >> 
> > 
> > If event received is not expected as the specification defines, I think it's probably incorrect.
> > 
> > But it requires more discussion with firmware people to make it clearer.
> 
> Please check and let them decode what this event means.
> 

it's just debugging purpose information listing built-time something
like that and will be removed in the firmware.

> > 
> >>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
> >>>     Read Local Version Information (0x04|0x0001) ncmd 1
> >>>       Status: Success (0x00)
> >>>       HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
> >>>       LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
> >>>       Manufacturer: MediaTek, Inc. (70)
> >>> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> >>>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539

[ ... ]

> >>>         LE Add Device To Resolving List (Octet 34 - Bit 3)
> >>>         LE Remove Device From Resolving List (Octet 34 - Bit 4)
> >>>         LE Clear Resolving List (Octet 34 - Bit 5)
> >>>         LE Read Resolving List Size (Octet 34 - Bit 6)
> >>>         LE Read Peer Resolvable Address (Octet 34 - Bit 7)
> >>>         LE Read Local Resolvable Address (Octet 35 - Bit 0)
> >>>         LE Set Address Resolution Enable (Octet 35 - Bit 1)
> >>>         LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
> >>>         LE Read Maximum Data Length (Octet 35 - Bit 3)
> >>>         Octet 35 - Bit 4 
> >>>         Octet 35 - Bit 5 
> >>>         Octet 35 - Bit 6 
> >>>         Octet 35 - Bit 7 
> >>>         Octet 36 - Bit 0 
> >> 
> >> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
> >> 
> > 
> > To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  
> > 
> > to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.
> > 
> > Below code snippet is the only thing I added to avoid a fail at Bluez core to bring up the device.
> > 
> > @@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
> >                return;
> > 
> >        memcpy(hdev->le_features, rp->features, 8);
> > +       hdev->le_features[0] = 0;
> > +       hdev->le_features[1] = 0;
> > }
> 
> Send me the trace where you didn?t clear the feature bits and I check what is going on. I doubt that we have a bug, but maybe some of the commands are optional and we should add an appropriate check. Or you guys need to fix your firmware. A new btmon should decode all bits properly.
> 

okay, I'll have a follow-up.

> Regards
> 
> Marcel
> 

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
  2018-06-12  9:58                     ` Sean Wang
@ 2018-06-14  3:10                       ` Sean Wang
  -1 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-06-14  3:10 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 9602 bytes --]

On Tue, 2018-06-12 at 17:58 +0800, Sean Wang wrote:
> On Wed, 2018-05-30 at 08:26 +0200, Marcel Holtmann wrote:
> > Hi Sean,
> > 
> > >>>>>> 
> 
> [ ... ]
> 
> > >>> * Unknown packet (code 14 len 30)                                      0.641509
> > >>>       01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
> > >>>       75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> > >>> * Unknown packet (code 14 len 30)                                      0.641592
> > >>>       02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
> > >>>       6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> > >>> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
> > >>>       01 00 00 00 05 00 01                             .......         
> > >>> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> > >>> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> > >> 
> > >> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
> > >> 
> > > 
> > > I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 
> > 
> > please use the latest btmon and check if it can read your trace.
> > 
> 
> sure, I'll have a try with the latest btmon.


I use the btmon version 5.50 and it can read the trace

> 
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
> > >>>       02 01 01 00 00                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
> > >>>       02 01 01 00 00                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
> > >>>       02 01 01 00 00                                   .....           
> 
> 
> [ ... ]
> 
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
> > >>>       02 01 01 00 00                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
> > >>>       02 01 01 00 00                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
> > >>>       02 01 01 00 00                                   .....           
> > >> 
> > >> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
> > >> 
> > > 
> > > I have made all vendor HCI commands go through BlueZ core in v2 patch. 
> > > 
> > > And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.
> > > 
> > > As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.
> > 
> > I would prefer if everything goes via the Bluetooth core since then we have it all properly scheduled. Sending things down the ACL data path however if kinda funky. Does your hardware accept sending command both via ACL data and as HCI command? If so, then I would prefer sending them as HCI commands since the speed improvement you think you are getting is neglectable on Linux (I have been down that path). This seems to be a pure optimization when Windows is driving the device.
> > 
> 
> firmware people said the device can support firmware download as HCI commands. According to my test, this way indeed works so I will improve the part in the next version.
> 
> 
> > And the vendor event 0xe4 is really only received during firmware download? It is not ever received during normal operation?
> > 
> 
> 0xe4 is only received during chip initialization.
> 
> I also thought 0xe4 is a poor definition for vendor event and already have notified firmware people should pick 0xff as its vendor event id in the future.
> 
> but for now, unfortunately, 0xe4 cannot be changed on the device, the only way is to add a workaround in RX path as below to allow btmon can recognize these bad events properly. 
> 
> int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
> {
>         struct hci_event_hdr *hdr = (void *)skb->data;
> 
>         /* Fix up the vendor event id with HCI_VENDOR_PKT instead of
>          * 0xe4 so that btmon can parse the kind of vendor event properly.
>          */
>         if (hdr->evt == 0xe4)
>                 hdr->evt = HCI_VENDOR_PKT;
> 
>         /* Each HCI event would go through the core. */
>         return hci_recv_frame(hdev, skb);
> }
> 
> 
> > > 
> > >> 
> > >> 
> > >>> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
> > >>>       01 07 01 00 04                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
> > >>>       02 07 01 00 00                                   .....           
> 
> [ ... ]
> 
> > >>>         Encapsulated PDU
> > >>>         Erroneous Data Reporting
> > >>>         Non-flushable Packet Boundary Flag
> > >>>         Link Supervision Timeout Changed Event
> > >>>         Inquiry TX Power Level
> > >>>         Enhanced Power Control
> > >>>         Extended features
> > >>> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> > >>>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
> > >>>       29 19 09 17 20 48 07 11 00                       )... H…       
> > >> 
> > >> Is this meant to happen here?
> > >> 
> > > 
> > > If event received is not expected as the specification defines, I think it's probably incorrect.
> > > 
> > > But it requires more discussion with firmware people to make it clearer.
> > 
> > Please check and let them decode what this event means.
> > 
> 
> it's just debugging purpose information listing built-time something
> like that and will be removed in the firmware.
> 
> > > 
> > >>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
> > >>>     Read Local Version Information (0x04|0x0001) ncmd 1
> > >>>       Status: Success (0x00)
> > >>>       HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
> > >>>       LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
> > >>>       Manufacturer: MediaTek, Inc. (70)
> > >>> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> > >>>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
> 
> [ ... ]
> 
> > >>>         LE Add Device To Resolving List (Octet 34 - Bit 3)
> > >>>         LE Remove Device From Resolving List (Octet 34 - Bit 4)
> > >>>         LE Clear Resolving List (Octet 34 - Bit 5)
> > >>>         LE Read Resolving List Size (Octet 34 - Bit 6)
> > >>>         LE Read Peer Resolvable Address (Octet 34 - Bit 7)
> > >>>         LE Read Local Resolvable Address (Octet 35 - Bit 0)
> > >>>         LE Set Address Resolution Enable (Octet 35 - Bit 1)
> > >>>         LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
> > >>>         LE Read Maximum Data Length (Octet 35 - Bit 3)
> > >>>         Octet 35 - Bit 4 
> > >>>         Octet 35 - Bit 5 
> > >>>         Octet 35 - Bit 6 
> > >>>         Octet 35 - Bit 7 
> > >>>         Octet 36 - Bit 0 
> > >> 
> > >> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
> > >> 
> > > 
> > > To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  
> > > 
> > > to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.
> > > 
> > > Below code snippet is the only thing I added to avoid a fail at Bluez core to bring upbtsnoop the device.
> > > 
> > > @@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
> > >                return;
> > > 
> > >        memcpy(hdev->le_features, rp->features, 8);
> > > +       hdev->le_features[0] = 0;
> > > +       hdev->le_features[1] = 0;
> > > }
> > 
> > Send me the trace where you didn’t clear the feature bits and I check what is going on. I doubt that we have a bug, but maybe some of the commands are optional and we should add an appropriate check. Or you guys need to fix your firmware. A new btmon should decode all bits properly.
> > 
> 
> okay, I'll have a follow-up.where

. 
It's a fault from the device and can be simply fixed up in the firmware.
The fault is the device reporting to host told it can support "LE Read
Maximum Data Length", but actually it can't. so it's just a fail at the
command.


The attached here is the fail log I captured with btmon 5.50 where I
already turned the patch setup in HCI command from ACL data and turned
event id 0xe4 to 0xff every vendor should use. And, finally, it can be
seen that btmon already can record and parse all traffic between host
and device well.

> 
> > Regards
> > 
> > Marcel
> > 
> 


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: trace3_fail_at_le_read_max_data.log --]
[-- Type: text/x-log; name="trace3_fail_at_le_read_max_data.log"; charset="UTF-8", Size: 101541 bytes --]

btsnoop\0\0\0\0\x01\0\0\aÑ\0\0\0$\0\0\0$ÿÿ\0\f\0\0\0\0\0âL5n±\x0e•Linux version 4.16.0-rc1+ (aarch64)\0\0\0\0!\0\0\0!ÿÿ\0\f\0\0\0\0\0âL5n±\x0eœBluetooth subsystem version 2.22\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0âL5n±\x0f\x03\x01\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10btmon\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0#ÿÿ\0\r\0\0\0\0\0âL5o¯\fÓ\x06\vbluetoothd\0Bluetooth daemon 5.43\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0âL5o¯t/\x02\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10bluetoothd\0\0\0\0\0\0\0\0\0!\0\0\0!ÿÿ\0\r\0\0\0\0\0âL5o¯{o\x06\vbluetoothd\0Starting SDP server\0\0\0\02\0\0\02ÿÿ\0\r\0\0\0\0\0âL5o¯ ‰\x03\vbluetoothd\0Failed to open RFKILL control device\0\0\0\0\x06\0\0\0\x06ÿÿ\0\x10\0\0\0\0\0âL5o¯¢U\x02\0\0\0\x01\0\0\0\0\f\0\0\0\fÿÿ\0\x11\0\0\0\0\0âL5o¯£D\x02\0\0\0\x01\0\x01\0\0\x01\x0e\0\0\0\0=\0\0\0=ÿÿ\0\r\0\0\0\0\0âL5o¯¤î\x06\vbluetoothd\0Bluetooth management interface 1.14 initialized\0\0\0\0\x06\0\0\0\x06ÿÿ\0\x10\0\0\0\0\0âL5o¯¥ì\x02\0\0\0\x02\0\0\0\0Õ\0\0\0Õÿÿ\0\x11\0\0\0\0\0âL5o¯¦³\x02\0\0\0\x01\0\x02\0\0A\0#\0\x03\0\x04\0\x05\0\x06\0\a\0\b\0	\0
\0\v\0\f\0\r\0\x0e\0\x0f\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\x1a\0^[\0\x1c\0\x1d\0\x1e\0\x1f\0 \0!\0"\0#\0$\0%\0&\0'\0(\0)\0*\0+\0,\0-\0.\0/\00\01\02\03\04\05\06\07\08\09\0:\0;\0<\0=\0>\0?\0@\0A\0B\0C\0\x03\0\x04\0\x05\0\x06\0\a\0\b\0	\0
\0\v\0\f\0\r\0\x0e\0\x0f\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\x1a\0^[\0\x1c\0\x1d\0\x1e\0\x1f\0 \0!\0"\0#\0$\0%\0\0\0\0\x06\0\0\0\x06ÿÿ\0\x10\0\0\0\0\0âL5o¯¬½\x02\0\0\0\x03\0\0\0\0\v\0\0\0\vÿÿ\0\x11\0\0\0\0\0âL5o¯­ö\x02\0\0\0\x01\0\x03\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\0\0\0\0\0\0âL5pRZÃ\0\x03\0\0\0\0\0\0hci0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0âL5pU/o\0\0\0\b\0\0\0\b\0\0\0
\0\0\0\0\0âL5pU0\b\0\0\0\0\0\0\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUvÜoüÿ\x01\x01û\0\x01ÿÿÿÿ?\0\0\0DC\0\0ðª\x02\04ˆ\x02\0¼Ã\0\0|X\x05\0ˆ\x16\b\0ØÁ\a\0ŒK\a\0¼>\b\0Ì \x05\0¼Ö\a\0„4\b\0\x1c¿\x05\0h*\b\0äõ\a\0˜\x17\x05\0°É\x06\0D\x13\b\0¼Ã\x04\0è\x01\x05\0”­\a\0XÞ\x05\0€¨\a\0$c\x06\0\x1c{\a\0pô\x04\0ü‚\x06\0(ú\x05\0$²\a\0x;\x06\0X¹\x06\0ô¤\a\0,p\b\04P\x05\0\0U\x05\0¤j\a\0´3\x06\0\b6\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUx’ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUx½oüÿ\x01\x01û\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0LÑ	\0¸Í	\0€Í	\0ÀÇ	\0\x19
\0ün
\0ôU
\0\x04¼
\0èn
\0|3
\0\x10o
\0¬Š
\0\f=
\0pw
\0ðp
\0ü\x04
\0\x04´
\0ÀØ	\0t2
\0\x10Q
\0¼\x01
\0,\x1f
\04\x06
\0x\
\0L\f
\0lY
\0\x18´
\0Ø]
\0¨\x01
\0$%
\0$}
\0Üß	\0@m
\0ø\x12
\0<k
\0ÌÓ
\0À6
\0P\x19
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU{	ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU{0oüÿ\x01\x01û\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>\r$\0F\x10\0¯X\x10€`>-$Õ\x03¢ÉªÁâ\x02éýÝž>\r$>-)t„ Õ\x02ªAâ\x02éþÝž<\x1dI\bF\0 \0Œ(X\0\0 ´A¶@\x040€@¢‰šš’AF0 \0¨X1‚ Œ\bL\x01ÿó<-I\bF\x10 \0´b¶a€\x01 ‘¨ÝžïøF\x18\0 –\x03¨	F\b\0  Bññ\x01T\x10€\x02Éûì\bÝž’\0:oœ¼ïü€à\x10Iÿÿë–;Iÿÿèì\x04:oœ„Ýž:o¤¼ïü„À\0PÿþÕ\x0e8\x04\x18\0„*L\0À\x05„\rIÿÿä8\x04\x18\0±IÿÿßâÉéòì\x04:o¤„Ýž’\0ïø\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU|Šÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU|­oüÿ\x01\x01û\0\x02<-:÷D\x01Â\0@!\0\x16F\x18\0\0\x040€BF\b\0 X1€€\x140€B ÃDOÿÏó€ ó\x01@1\x02óó\x01¨Ã¨Œì\bÝž’\0T\x10€\f’"–\0–Ál@0\x1c	D\0\0"L \0\x12\ñ\0#è\x05Ž\x11L @aÕ\bŒ\x11L \0
Œ\x11L @ZÕ\a„\0ÕB„\0Õ*„\0Õ\x14„BL\x11@\x04„\x03Õ
„\x03L\x10@\x04„\x02Õ\x05V\0€\x01\\0\0\x01Ë\x05D!@\0@\0\b\x04„BL\x11@\x05X\0\0\fÕ\f„CL\x11@\x05X\0\0\bÕ\x06„AL\x11@\x04X\0\0\x04Ë\x03X\00\0„BL\x11@\x05X\0\x02@Õ\f„CL\x11@\x05X\0\x02\0Õ\x06„AL\x11@\x04X\0\0@Ë\x05D"€\0@\0\b\x04„B\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU~\x02ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU~1oüÿ\x01\x01û\0\x02L\x11@\x05X\0\x01 Õ\f„CL\x11@\x05X\0\0 Õ\x06„AL\x11@\x04X\0\x01\0X\0\0Õ\x02„\0Ýž’\0:o˜¼.4ÛL—€D\0\0ÿ–ˆL0\0\x1d€#>d§ø€\x06Iÿÿ~’\0<-)Õ€ €\x06Ý"F\x18\x10`Tc\0@\x14\0€˜Æ	F\b\x10`\x04\x10\0™B\x10À\b\x14\x10\0™:o˜„ÝžD@\0"T\0\0\f–’\x02B\x10œ\vL"\0N\ñ\0#è\x06DP\0\x11L"À…ÕfŒ‘L"\0$DP\0DÚ}ž‚–æBè\x06œœ´‚XB\x11\0¶‚ž–æBè\x06œœ´‚XB\0\x10¶‚É\rPA€\x10´¤P!€\x14XR\0¶¤´‚XB\0\x0e¶‚ž‚–æBè\bœœ´‚FPÐ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU\x7fˆÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU\x7f­oüÿ\x01\x01û\0\x02@B\x14\x04¶‚ž–æBè\bœœ´‚FP\0À@B\x14\x04¶‚É	P!€\x10´‚FP° @B\x14\x04¶‚ž‚–æBè\aP!€\f´‚XB	\0¶‚ž–æBè\aP!€\b´‚BBL\b¶‚É\rP!€\x14´‚P\x11€\x10XB\a\0¶‚´AX!\0\x06¶AžB–Hæ"è\aP\x11€\b´AX!\x05\0¶Až\x01–\0æ\x02è\aP\x01€\f´ X\x10€\x04¶ Œh´\x03F\x10 \0X\x10€\x03@\0\x04\x04¶\x03Ýž’\0:o¤¼ïÔP\x7f€\x04—€T€ÿT\0ÿ€\a„ D \0$IûÄÌT\x03\0\fÀ\a€\x06€)€H€gIÿÿSP\x0f€\x04 F\x18\x10`\x14 €2 ‚\x14 €3 ƒ\x14 €4\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU3ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUcoüÿ\x01\x01û\0\x02 „\x14 €5 …\x14 €6 †\x14 €7 ‡\x14 €8\x04\0\0\b\x14\0€9ì,:o¤„Ýž:o ¼—€<o6Ó<=)΀\x06T€€ÿ—ÐÝ#<\x1d)Ï€\x06Ý!€G€\x06€(Iÿÿ³<\x1d)Ó€\x06Ý!<\x1d)Ò€\x06Ý!:o „Ýž:o˜¼.$§õ@` 	–\0—°L \0\r>\x04§õ<\x1d6ÓL\x10\0\a.$§ù€&IÿÿÍ.\x14§ù>d§ø€\x06IÿþÎ:o˜„Ýž’\0–€–\x14À\x05D2P\x10@\0Œ\x02T1\0\x02Ã\aDA €@0\x02@\0\f\x04T1\0\x04Ã\x05T0E@\0\f\x04T1\0\bÃ\x05T0‚*@\0\f\x04T1\0\x10Ã\a@0Ð	@1Ð\b@\0\f\x04T!\0 \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU‚Ïÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUƒ\boüÿ\x01\x01û\0\x02Â\aF ?À@\x10ˆ\x02@\0\x04\x04Ýž’\0:o˜¼„b€AL\x01Àb„\x01L\x10@<.\x04ëÀL\0€8F\x18\x10 X\x10€\x04´\x01X\0\0 ¶\x01„
´AX!\0\x10¶A´AX!\0\x01¶AIû"VF\x18\x10!X\x10\x04´A„\bB!H\b¶A´AB!L\b¶AIû%'F\x18\x10\bX\x10€\x14´A„
X!\0\x02¶A´AX!\0\b¶A´AX!\0 ¶AIû"4Õ&F\b\x10 X\0\0\x04´ X\x10€ ¶ ´ B\x10	¶ Ê\rF\b\x10!X\0\x01\x04´ B\x10È	¶ ´ B\x10Ì	¶ .\x04ì	È
F\b\x10  AX\x10 \0¨AÕ\x03Iû.J:o˜„Ýž’\0:oª¼ïä.déü–Ø—hñ„\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU„\ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU„ƒoüÿ\x01\x01û\0\x02òƒó—àõ…ƒ€Æ\x02Õ\x0fñ\x03É\x10È\x0fD\x10\0 D \0\x12F0\0®X1ˆ„„ƒIûK\v„\x03H\0\x01&<m;5„\x01L`@\x1aD\x10\0öLp€\x1e€\aD\x12\0\0Iû|¸„\0D\x10\0 D \0\x12F0\0®X1ˆ„€†IûJî€\x06H\0\x01	„\x06L`@\aD\x10\0öLp€\x03Õ\a>léÔ\0“\0\x06N’\0\x16€\aD\x12\0\0Iû|–„\0D\x10\0 D \0\x12F0\0®X1ˆ„„IûJÌ„\x01H\0\0çð\x04ñ\x01–\x01P€\0\x02‰\x01ð‚@\x14\0\x13€\x06IûyE\0È\x15€\aD\x11\0\0Iû|t€\bD\x10\0 D \0\x12F0\0®X1ˆ„„‚IûJª„\x02H\0\0ÅD\0\0òLp@	\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU†\aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU†6oüÿ\x01\x01û\0\x02\0£\0\x0e…"A\x10£\0\x0eÕ4D\x10\0öLpÀ	\0£\0\x0f…$A\x10£\0\x0fÕ)D\0\0ôLp@	\0£\0\r…!‰I\x10£\0\rÕ\x1eœDLpÀ	\0£\0\x10…&A\x10£\0\x10Õ\x14D\0\0úLp@	\0£\0\x11…#A\x10£\0\x11Õ	\0£\0\f„\x04A\x10£\0\fIûmÑ<m(°ò\x04ó\x03ô\x01€<€\b€©Ý&„Ä\x10d\0\b„À\x12d\0\x05ñ\x03Á\x11ð\x01\x04d\0\x01@£\0\0€\x01Õ\x05\b\x10\0\x01\x18\x13\0\x01âÊéûð\x01\x12\x04\0\x05OÂ\0\x16\x04D\0\x01ñ\x01ð\x04™!€Ü˜àÕ\x05\b\x13\0\x01\x18\x12\0\x01âƒéû\x024\0\x05ð\x02˜Ã\x124\0\x05\x024\0\x05„!œÚ\x124\0\x05LpÀ	ñ\x02€\x1cD à\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU‡ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU‡Òoüÿ\x01\x01û\0\x02„`I\0!C>\féÔIûxN“\0\x1e„\x01Lp\0\x11.4¢œ.\x04¢Ÿ™^[!˜Ø™ ˜ œÛ˜\x03L\x03€\x04L3À\fñ\x05€\aIþìñÈ\x06ñ\x05ò\x02€\aIþð©<\x1d:û„@D\0\0\x17IûyDIûx2È\x03Iû{MN“\0\x05„\bIûmX„\0D\x10\0 D \0\x11F0\0®X1¤IûIå„\0ì\x1c:oª„Ýž:oª¼ïÜ<=Þº–\0ðƒ€Â€áâ\x03é\x04„\x01H\0\x01ˆÉ
€\x01F \0®X!\bˆD0\x03±Iû6Š¦½§<@! \bð\x03@!\x10\x04\0\x13€"FH à@0 \b@¡\0Á\x03B!|\bÆ>\0C\0	Gà\x03ð@B@\b¦u@Bx\x02@!\x10\x04Á\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU‰'ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU‰Noüÿ\x01\x01û\0\x02B!X\b\0\x13\0\bF0\x18\0@\x10Ü\b§4@\x10Œ\x02@!\x04\x04Ä\x03B!d\b§3Ä\x03B!h\b§2Ä\x03B!l\b§1Ä\x03B!p\b§6Ä\x03B!t\b§0Ä\x03B!x\b\0C\0
¦w„¤•¤—°@@„\x1a@B„^[@b\x18\x04Õ
€j¢ZFGÿð@\x10\x02´c@!\x04\x04\0“€\0§>\x14Ÿ€\a\x01ã€\x01\x15ï€\x06¦:ð„¦{ñ…Ä\x03Xc\0\x01§?Ä\x03Xc\0\x02\0C€\bÄ\x03Xc\0\b\x02“€\x05\0ƒ€	F0\x1fð@”À\b@”Œ\x02@„ \b\0C€\f@„ \x04@d\x18\x04Ä\x03Bcd\b\0C€\rÄ\x03Bch\b\0C€$Ä\x03Bcl\b\0C€%Ä\x03Bcp\b\0C€\x0eÄ\x03Bct\b\0C\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUŠ¨ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUŠÌoüÿ\x01\x01û\0\x02€\x0fÄ\x03Bcx\b\0C€\x10Ä\x03Bc|\bPU\0\fµ\x05F–qð\0C€\x11X”ÿ@„$\x02Ä\x03X„\x10\0\0C€\x12Ä\x03X„ \0\0C€\x13Ä\x03X„@\0\0C€\x14Ä\x03B„<\b\0C€\x15Ä\x03B„T\b\0C€\x16Ä\x03B„X\b\0C€\x17Ä\x03B„\\b\0C€\x18Ä\x03B„l\b\0C€\x19Ä\x03B„p\b\0C€\x1aÄ\x03B„|\bP\x15\0l´\03€ B\x02x	B\0|	Ã\x03B\0x\b\0C€!Ä\x03B\0|\bF˜ ùX”ˆ ´iGÈ ùBAð\b¶‰´|PE\0\bôBAü\b¶œó\x01¶Ã·\x05¶\x01´ÜBc|	¶ÜPE\0\x14´ÉF\x1føsBcp	¶ÉX\x10ÿ´Ä\0C€^[@c\x04\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUŒ?ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUŒeoüÿ\x01\x01û\0\x02Ä\x03Xc@\0\0C€\x1cÄ\x03BcL\b\0C€\x1dÄ\x03BcP\b\0C€\x1eÄ\x03BcT\b\0C€\x1fÄ\x03BcX\bó\x04ð\x06PE\0\x18´„\x04Ÿ€\a\x05ï€\x05@\x11À\b@P \b@R„\x04ô„P\x15\0 P5\0\x1c@R¤\x04@O`\bGÈ ù\F˜ ù@R\x04\x05á€\0´\x01º„\x14U\0\x05\x14d€\bFˆ ùò\x04Fx ùF8 ù\x14$\0	\x15ã€
\x14\x01€\vF\x18 ùó\x03X\x10ˆ0¶a\x01´\x01„ÀX\0(\0¶\x01±DA\0\0„\x01µ(Lb\0\x06Iü”ëN•ÿ÷„\0ì$:oª„Ýž:oœ¼ïüF8 à–\0@` \bX1€\x14™³´æIÿþ\’\0È	´FD0€\0@\x13Œ\x02@\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU½ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUßoüÿ\x01\x01û\0\x02ˆ\x04¶&ì\x04:oœ„Ýž:oª¼ïô–€„\0ò—ˆEªÐIün\x7f„\0Ý<„\0€àIünò\x01<\x7fÞÀÊ\x02Õ\x1eæÉé\x03€\aÕ^[æÃé\f€\x06Ý<€\aIünq€\x06IünfF\0\x01\0Õ\v€\aÝ<€\x06Iünf€\x06Iün[F\0\x01@<\x0fÞÀ„\x01ì\f:oª„Ýž;ÿü¼ïüIû^[ß’\0ì\x04;ÿü„Ýž;ÿü¼ïôP\x0f€\x04Iû^[½ð\x01ì\f;ÿü„Ýž:o˜¼„AL\x11\0\b@a\0\f„\x02L\x10@!Õ\fF(\x10@\x041\0F@\0€\f@\0\f\x04\x14\x01\0FÕ\x1eIÿÿÞF\x18\x10@X\x10\x18´A@3\x18\x05@c\b\x04¶Á´A@!ˆ\x02¶AIÿÿÄÕ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUmoüÿ\x01\x01û\0\x02F\x18\x10@\x04\0€F@c\x18\x05@c\0\x02\x14`€F:o˜„Ýž;ÿü¼ïüIÿù¡Iÿù­Iÿùµ„ „\bIÿÿ¿Iû$Q€ D \0"„\0¨Š¶\x01¨	¨\vIû#½ì\x04;ÿü„Ýž’\0;ÿü¼ïô„A„`D\0\0÷P\x1f€\a®ÈIûœ^\0/€\aT\x01\0€À2F\b\0!X\0\x01$´ F\?ÿB\x10ü\b¶ T!\0\x0f´ XRÿ@1h\b@\x10”\x02@\x11„\x04¶ D_ðÿ´`@A \b@1”\x02@2\f\x04¶`P\x10\0\x18´\x01’\x04”\x04”Ô@!\0\x04¶AD_ÿ\x0f´\x01@\0\x14\x02@\x01€\x04Õ0F\b\0!X\0\x01$´@’D””X!\0\b¶@F\?ÿ´@XRÿB!\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÀÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUàoüÿ\x01\x01û\0\x02|\b¶@DOðÿ´@@!\x14\x02B!t\b¶@P\x10\0\x18´@@!\x10\x02X!\b\0¶@D/ÿ\x0f´\x01’\x04”\x04X\0\0\b¶\x01´\x01@\0\b\x02X\0\0€¶\x01ì\f;ÿü„Ýž:oª¼ïô„Ÿ„`>D§ø\x10?€\x02>D§õ\x10?€\a\x10?€\x06\x10?€\x05\x10?€\x04\x10?€\x03Da\aÌP\x1f€\a„AD\0\0>Ý&\0P\x1f€\x06„AD\0\0IÝ&€àP\x1f€\x03„AD\0\0HÝ&€ È\x12\0O€\x03’„P\x02\x7fñ–\0>E$_æ\x1fè\x05„\x01>\x05$`Õ\v>\x15$`Õ\bD\0\0->\x05$_„A>%$`Nƒ\0iÏgÉfP\x1f€\x05„AD\0\0<\0€\x06§Ê\0Ÿ€\x03Ý&ƒ€P\x1f€\x04„AD\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU’{ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU’›oüÿ\x01\x01û\0\x02\0=Ý&@P\x1f€\x02D\0\0B„AÝ&OÃ\0LN£\0JÈH\0/€\x04\0\x0f€\x05—”T0\0\x03B\x10\x10\v•´@a˜\x04”JB\0\x14\v@c\x04\x04”\x03T\x13€\fB1\x04\vTD\0\x03@B\x04\x04”Ý@c\0\x04B\x11\b\vTs€@T\x04€\x03@r\x1c\x04@c\f\x04”\x04”NB!\f\vB„\x10\v@s€\x04@c\x04\x04”—@„\x1c\b@c\b\x04@s \x04\0/€\x02€&€\aIÿúk\0\x1f€\x02€\x06Iÿùn>d§ø>t§õì\f:oª„Ýž:o˜¼Iÿø\IÿøhIÿøÊF\x10\0œX\x10‚´<\x1f)\x17<\x1d)\x1eF\0\0®X\0\b Ý!<\x1d)‰„\x01Ý!F\b\x10`\x04\x10\0XB\x10ø\b\x14\x10\0XIÿÿ-<\x1d\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU“ûÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU”\x18oüÿ\x01\x01û\0\x02)‰„\x03Ý!F\x10\0œX\x10†D<\x1f)©F\x10\0X\x10Ô<\x1f)pF\x10\0œX\x10†„<\x1f)ÕF\x10\0œX\x10†è<\x1f)\x04Iÿþ™:o˜„Ýž:o˜¼@`@	@c@\bD$\0\0€ La@\x14@\0@\b’\x18P \x7fñ>\x14§ù–>\x05$_æ_è\x03„!Õ\x02„ >\x15$`ÕEIûS\x1d’\0F\0\b\0L`@\a<\r6ÔT\0\0€Õ	F(\0\0La@\x19<\r6ÔT\0\0@À0<\r)®Ý À,.\x05$`À).\x15$_<-)tF	\0\0@\x10 \bX\0\0\x01Õ\x19F$\0\0La@^[<\r6ÔT\0\0@À\x15<\r)®Ý À\x11.\x05$`À\x0e.\x15$_<-)tF	\0\0@\x10 \b@\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU•~ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU•œoüÿ\x01\x01û\0\x02€\x04D\0\0.Ý":o˜„ÝžF\x10\0žX\x10L<\x1fYÓF\x10\0žX\x10Š`<\x1fYvF\x10\0žX\x10ƒ@<\x1fYwF\x10\0žX\x10Šœ<\x1fY~F\x10\0žX\x10Š\x04<\x1fYŒF\x10\0žX\x10ŒP<\x1fY„F\x10\0žX\x10‹”<\x1fY€F\x10\0žX\x10ˆ<\x1fY}Ýž’\0:oª¼ïÄF\b\0%\x04 \0À€ ñƒX!\0\x02ò€ ò\x03ñ„X!\x02 òƒF\x100 ò\x04ñ…X!\x02\0ò„€ ò\x05ñ†X!\x01\0ò…F\x10p`ò\x06ñ‡X!\x02\x04ò†€ ò\añˆX!\x05\x04ò‡F\x10° ò\bñ‰X!\x02\bòˆ€ ò	ñŠX!	\bò‰F\x10ðàò
ñ‹X!\x02\fòŠ€ ò\vñŒX!\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU–ïÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU—\foüÿ\x01\x01û\0\x02\r\fò‹F\x111!ò\fñX!\x02\x10òŒò\rƒÀX!\x01\x10òò\x01GÁqa\x14 \0ÀD\0\b	ò\x03^¶\x02F‘±¡ò\x05ð\x04
¶@Fqñáò\að\x06€È¶@F\x14DDò	ð\b€¦¶@€…ò\vð
€d¶@X\x10„Dò\rð\fYÎ\x05\x14X”‰\x18Xs\x1c¶@\x15Ï\0…\x14•\0†\x14t\0‡\x14\x13\x01@\x14\x12A\x14\x12\x01B\x14\x11Cì<:oª„Ýž´@¶A ¨‰ ‚¨Š ƒ¨‹ „¨Œ \x05¨\rÝž’\0>\x1d%¤„\0>=$\0>M$\f˜ƒ˜Ä´B´cœ\x04šÚ¶A’a„L¨ÉŒ(L\x01\x7fñ<\x1d)ò>\r'\P\x10€”´a>M't¶`\x040€@¢‰šš’A\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU˜cÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU˜oüÿ\x01\x01û\0\x02¨Œ\bL\x02\x7fõÝž;ÿü¼ïüF\x10 \0X\x108>\r'\IÿÿÁ’\0ì\x04;ÿü„Ýž;ÿü¼ïüF\x10 \0X\x108>\r%¤Iÿÿ±’\0ì\x04;ÿü„Ýž„ >\x15$dÝž:o˜<D0\0ÿ–H–F@\0®XB\bàÕ\b\b`\0\x01–h@3\f\x0382\f\0ŸIÉø@1ˆ\x03€\x048\0\f\0V\0\0Ï\\0\0\x01:o˜\x04Ýž:oœ¼ïü€`É\x03„\x01Õ\x1c§Â„¢—ü„Á¦@C\x1c^[@Bœ\x1aDP\0ïÒ\x03Œ°Ú\a˜Y\0 ÿÿ€\x03„"Õ\x05˜Á\0!ÿÿœbIÿÿÁ’\0ì\x04:oœ„Ýž<\rI	D\x10\0\x18L\0À\x06„(>\r«”Õ\a„(L\0À\x06>\r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU™áÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU™ÿoüÿ\x01\x01û\0\x02«”Œ0¨Bݞݞ’\0–\0™ §`––Hâ¢è\b˜Ø¦\x18˜H®X¦ œ\x01® Ýž’\0;ÿü¼ïü„!–\0”Œ>=© >Mª\bIÿÿæì\x04;ÿü„Ýž;ÿü¼ïü.\x15´Ê–\0D \0\x10>=ª€>M©(IÿÿÔì\x04;ÿü„Ýž:o ¼–\0—ˆ@\0\x10N\x02\0}^ô\x7f¶é*^ô\x7fÁè\x03„!Õ^[Æ\x0fž1–\0„!”Œ>=© >Mª\bIÿÿµ\ó\0Né\x02Õ\vœ1–\0„!”Œ>=© >Mª\bIÿÿ§„"€\x06D \0\x10>=© >Mª\bIÿÿÕP^ô\x7f¦èM„ D \0\x10>=ª€>M©(€\x06Fp\0Xs…ˆÝ'€\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU›Xÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU›uoüÿ\x01\x01û\0\x02„ D \0\x10>=© >Mª\bÝ'^ô\x7fœè4„ D \0\x10>=ª€>M©(€\x06Ý'€\x06„ D \0\x10>=© >Mª\bÝ'æÂé\fŸ²—°€\x06„ D \0\x10>=ª€>M©(Õ\v²—°„ D \0\x10>=ª€>M©(€\x06Ý'€\x06„ D \0\x10>=© >Mª\bÝ':o „Ýž;ÿü¼ïüD \0\x10–\0–H>=ª€>M©(Iÿÿ=„ >\x15kRì\x04;ÿü„Ýž;ÿü¼ïü„ –\0D \0\x10>=© >Mª\bIÿÿ)’\0ì\x04;ÿü„Ýž:o <–\0@ \f	>]ª\8bˆ\0T0\0\a@\x13\f\x0e–LÉ%>M%\8B\b\0@B\f\x0e—$\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUœËÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUœéoüÿ\x01\x01û\0\x02Ä\x1d…\x01@4\f\f@a˜\x048bˆ\b>-ª\b.ukN8\x11\0\b>-ª€8\x11\0\b>-©(Ÿù8\x11\0\b>-© >ukN8\x11\0\b:o \x04Ýž<\rkö„%ž\x05@\0€\x06Ýž’\0:o ¼>m°$\0ƒ\x01×€à„\x01L€@\x0e<\x1dXõ„\0Ý!\0\x03\x01×L\x04@\x0f qD\0\0pÕ\b\0\x03\x01Ö„!L\0À\x06 q„\b¶'Õ\x02„\0:o „Ýž’\0–\0À\b¦\rT\0\0ÀV\0\0@\\0\0\x01ÝžF\b\x10\0\x04\0\0LB\0(\vÝž’\0:o ¼–\0—ˆ@\0\x10À?^ô\x7f¶é\x13^„\x7fÅ„\x02„A@\x11 ^[@\x10 \x1a>=ªÔ€\x06ŒO>M©xIÿþ–’\0Õ*^ô\x7f¦è'\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUžCÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUžboüÿ\x01\x01û\0\x02€\x06„ D \0\x10>=ªÔ>M©xIÿþ‡^ô\x7fœè\x1a€\x06„ D \0\x10>=ªÔ>M©xIÿþzÆ\x05ž1–\0„ Õ\x03€&„\x01D \0\x10>=ªÔ>M©xIÿþk:o „ݞݞ’\0F\b\x10\x02„?\x14\x10\0G\x14\x10\0GÝž´A¦ÐË^[\x02@\0\x1c\x02 \0†„f!œ’B"\fs\x04\0\0\x12–‘¬„@1 	´!Œ*®É®ˆ\0\x10\0\rX\x10€\x02\x10\x10\0\rÕ7„L2@9\x02 \0^[D@\x01@B\bV\x02 \0\x1c„fœ‘B!\f$\0P\x017.4¢žœ“šë—Q–Øâ¤è\x02€D\x02@\0†˜”–‘\x12 \0ˆ\ñ€ è\x06œ–>M¸(8"\r	´!\x02 \0ˆœN@1\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUŸÍÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUŸòoüÿ\x01\x01û\0\x02 	®É®ˆ\0\x10\x01SX\x10€\x02\x10\x10\x01S„!>\r$iÕ%Œ—L2@$¦ÑË\x03¦’Â\x13\x02P\0\x1c.Ej´\x020\0†\0 \x01TiB2sX!\0\x02\x120\0š\x10 \x01TÕ\x05\x10 \x01T\x12 \0š´A\x02\x10\0šœ\x13@  	®®@Ýž’\0–\x01œÁ„ƒB1$–IœÙ˜Û–\x19”JB \x04s€\x02Ýž˜È@1„\x17–‘˜\x12B\x01„sÝž\x04\0\0\x0fP\0\03D \0%¦F¦Ç˜Y@ ˆ6®FÝž’\0;ÿü¼ïü<\x1dlüD \0D–\0B\x10\bs€\x01Iÿÿç’\0ì\x04;ÿü„Ýž„b–H–\x01–L\x11À\vD@\0,DP\0L@2ˆ^[@2\b\x1aÕ
D\x10\0PD@\0p\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU³Šÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU³Õoüÿ\x01\x01û\0\x02@2\b^[@0ˆ\x1a„#@\x10\x04\f˜Ù–\x19Ýž’\0:o ¼<x\x04„!L€€\rN‚\0\x06„\x03L€@&Õ\x06„!<\x1fx\x04€ÈÕ&>}à\x10 z\0\x03€"\x04\x10€\x0f„@\0\x10€ID`\x02qIÿÿÄ’\0P\0\x03i@`\x18\x16—´Æ\x11„!L€À\x04„\x03Õ\x02„\x01¶\a„ÀÕ\b<\x1dYMD\0\0QÝ!D`\0\x1f<MY\a<=x\x04„!„\x04D 2\x01Ý$€\x06:o „Ýž–\0–IÀ"Á!’!–Œ„c@0Œ7Â\x12Á\x16æ\x06é\x10„&@ \x047–Hš\x01–\0É\x02Õ\x0eæ%è\x03œ\x01Õ\vœ\x05Õ	Á	„#@ \x047Õ\x02–DÉ\x03ž\x01–\0Ýž’\0<\rI3Ýž’\0<\x0fI3Ýž’\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUµWÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU¾9oüÿ\x01\x01û\0\x02\x02\x10\x01^[„OL\x11@\x16\x02\x10\0¡œ“L\x11@\x11\x02\x10\x01\x0e>\r'H¤€œ\x02L À\x05D\02\0Õ\a>-'ZL\x01\x7f÷D\0\x06@Ýž<\x02ÔBT\0\0\x02È\x1a<\r[\x18È\x19.\x05k‚È\x16<\r`ðæ\x0fè\x12.\x05›ÍÈ\x04.\x05¶\x16À\f<\x1de_æ"é\x06.\x05•¾\\0\0\x06Õ\x04„\0Õ\x02„\x01Ýž:o˜¼<\r`ò„+L\0€\b<\x1dRÐÝ!„\v<\x0f`ò:o˜„Ýž„ >\x15$nÝž–HT@€\x02–Ä\x03„"Õ\x04–LÁ\x02„!®X<\x1dlü\0P\x017D@\0DB\x12s§\x18\x04\x10€\x0f\0\x10€IL@À\x04„ ®XT\x11\0\x02Á\x03„"Õ\x04–”Â\x04„!®YÕ\x02®™\0 \x017<\rlü\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU¿–ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU¿Åoüÿ\x01\x01û\0\x02D\x10\0DB\x01\x04s¦Y\x04\0\0\x0f\0\0\0JL\x10@\x04„\0®\x19Ýž’\0:o ¼ïø<-Y.€áD\x10\x01\0€ÀÝ"È\x04„\fH\0\0„\0\x03\x016ÈT 2„$L\0À\x04„!Õ\x06 sV\x10€\x04\\x10€\x01É\f„"L\0À\x04„!Õ\x06 sV\x10€\x02\\x10€\x01Á\a<=SÇD\x10\0*€\x06Õ\x10Ž\x0fæ\x03è\x03„\x01Õ\x05 3Ž\x0f\\0\0\x03À	<=SÇD\x10\0#€\x06D \0\x16Õ*.\x15¶\x04¦¹–ÌË\x06.\x05¶\x05@\x01\0\x02Õ\x02€\x02T\x10€\x02¦¸É\x06.\x15¶\x06@!\x04\x02Õ\x01P€\x04€ €h€\x06IÿÿmD\0\0\x10¨3<-SЀ(€\x06Ý"Õ\a¦y¦¸<=SÏ€\x06Ý#´&¦¹T\x10€€\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÁ>ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÁioüÿ\x01\x01û\0\x02Á\v–T\x02#\0˜Á\x04P!\x7fÕ
P!\x7f´Õ\v–T\x02#\0˜Á\x05P!\x7f°CÕ\x05P!\x7fԐC˜’\x12#\0’\x02\x13\0‘\x02#\0’âAè\x02€"\x12\x13\0’ì\b:o „Ýž:oœ¼ïô\0P\x01]§	\00\x01^¦ˆP\x7f€\x04@\x12\x14\x02@!\f\x02€g€ÀIÿÿ!<-SЀ'€\x06Ý"ì\f:oœ„ÝžD ÿý–IL\x11@\r¦\0D\x10\0ÿL\0€"D \0\x13L\x01\0\x1eÀ\x1cÕ\x19D ÿüL\x11\0\x16D à\x01L\x11\0\x12D ÿþL\x11@\x10¦@D \05L\x11@	¦\x01„ V\0\0\f@\0€\x06Õ\x04„\x01Õ\x02„\0ݞݞ’\0Ýž’\0„*<\x1f`“ݞݞ’\0:o˜<¦B„ML\x11\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU¿ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÂèoüÿ\x01\x01û\0\x02\0dæ.è
„‹L\x12\0\x10æ,èv„
L\x10@vÕ	„NL\x11\0\x16Ž;„AâAémÕb„D>%€£D \02</mø„A>%€ D\x10\0ð<\x1fm÷Õ[œD¦ÈŒn>5JH„@Õ\x05§%–°\x10B€\x0f¦È>MJH™T‘™\x02âCéõ¦ƒ>%€¨æDé\x05ŒP–æEèA>-·ÜD0\x04 ¶bD0\02¨Ñ¦È§\0›#ä…é\x11˜Ã§^§\x1d@2 \b˜Ü¶b¦H˜\x01\00\0\b¦G@\x01 \b˜\x01¨\x11„%>\x15€£„!>\x15€ Õ^[>\r€ „B®ƒD \02</mø„P\x10 \0\b„A®€D\0\x04 <\x0fm÷Õ	¦\x03æ\x04è\x03>\x05€¨„!>\x15€¡\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÄ<ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÄ`oüÿ\x01\x01û\0\x02„\0Õ\x03D\0\0\x1f:o˜\x04Ýž’\0:oœ¼ïü\bP\0\x01¦Eæ)è\x03>\x15´Û¦@æ)è\a.5´Ûâaé\x03>\x15´×\x04¦àæiè\x14>\x1d³´\0 'âCé\x0e\x04 €\x0f\0p
\x100`D`\0DB#˜s§ \x10A\02„(Ù\v¦Fæ$è\x03>\x15jâ¦\aæ\x02è\x03>\x05jã<\rYwÝ .\x15´Û.\x05j«”J˜H>\x15jªì\x04:oœ„Ýž’\0¤ƒÂ\x0e´a¤šš¶A„@¬¤ƒ Âž‘–‘¬ƒ8\x11Š
Ýž>\rç„\x04 \0.„ \x14\x10\0+æCè\x04„!\x14\x10\0.Ýž’\0>\x1d(\x18>\rçàD \01„`\x1a \0\x03>Mçò¬‰\x180€\bL\x02\x7fùÝž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUŹÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÅÞoüÿ\x01\x01û\0\x02’\0>\r'H„?\x1a\x10\0\x01>-'ZL\x01\x7füÝž>\x1d'H–\x01¤ˆœJL @\x04„\x01Õ\x06>-'ZL\x11\x7fø„\0Ýž’\0„A–H–\x01L\x11@\x15>-'H„ ¤ÐD@ÿÿœ’L2@\a>-'H8\x01\x05	Õ\x1aœI„iL\x11ÿóÕ\x15„‚L\x12@\x13>-'H„ ¤Ðœ’L0@\b„_>\r'H8 \x05	Õ\x05œI„iL\x11ÿôÝž’\0–\x01F\x10 \x18È\x02Õ\x10P \x7fì„`–‘<?I\x14æJè\x03„\x01Õ\x06D \0\x1eL\x01@\x05„\x02<\x0fI\x14Ýž’\0<\r)”À\x03„\0Õ\x03.\x05$PÝž;ÿü¼ïü–\x01IÿÿÜì\x04;ÿü„Ýž:oœ¼ïüF\x10 \x18.-${–\x02L \0u\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÇAÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÇaoüÿ\x01\x01û\0\x02>\x05${„ >=èD>}è„™K˜Ï>-_˜>m_ ¦Ø™
§h˜Ž®ÐœI„H¯`L\x11\x7fî„mL\x01À\v.\x15$y>\x15jâ>\rjã.\x15$zÕ+<-yï„ œ— 1\0\0ž‘à\x03é\x11R\x10€\b>-ç„–È\x101\0)\x101\0*\x04!\0\x0e8\x11\x04\0š\b–\x02Õ\x06œI„ˆL\x12\x7fé„\0–\0ž–æCè\x02Õ\x02„\0>\x05jâ„!>\rjã®@<\rYwÝ .\x05jã„c.\x15jâ@ \0\x1a@!€^[„\0>mèD˜Æ>}è„ a€\0˜Ç§\x18>}_ >=_˜™C›±˜Ç›!›²¯\x18œ\x01„h¯¨L\x01ÿêì\x04:oœ„Ýž’\0>=%씃„ ˜š\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUȶÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÈÛoüÿ\x01\x01û\0\x028\x11ƒ	¬R¬Q®V®WÝž>\x1d%ó¦\b„AŒ(L\x01\0\a>\r&;L\x10\x7fù„\0Ýž’\0:oœ¼ïü–\0æ	è\aIÿÿàIÿÿêÈ\x0fÕ
„À€\x06Iÿÿ؝±„	L`\x7fû„\0>\x05$t>\x05$–ì\x04:oœ„Ýž’\0>-%ó–À€"¦\b„L\x02@\x06\0\0ÿÿL\x01€\x18Œ(P\x01\0HL\x10\x7fõ„ §\x10–\bŒHÌ	>-%ì”K˜J„A®Î®Õ\x06œI„‰L\x12\x7fò„	Ýž>-%ì–H8\x01\a	Ýž–\0>\x1d%씃˜Š¤’8 ƒ	Ýž’\0>\x1d%󖀄\0§\b„¡œÁÜ\x05\0@ÿÿLA\0\a–\x18„iŒ(L\x01ÿõÝž–H>-%ì”K\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÊ5ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÊUoüÿ\x01\x01û\0\x02˜J¬	Ýž’\0–\0>\x1d%ì”\x03˜\x01¤\x01Ýž’\0:o¨<.%jâ.\x15jã”’–É\rF\b\x10\x06´`B1˜	¶`´`B1ø	¶`„\x7fÕ\x12„ÁL\x13\0\x04„ Õ\x0fF\b\x10\x06´ B\x10˜	¶ „"´`B1ø\b¶`„c>5j›™J„ Fð\0®\x02G…p—h€\x01>=]¨Õ\r¥ø\0”€\0\x12t\0\0@t”\x018qœ\0œ\x01¯ðœJF`\0®Xc\v\0>­\¸@\x18\0@€¨\0F`\0®Xc
Ì>­]\x14™Î@`(\0à\x04éà„ Fð\0®\x02G…{€\x01Õ\f¥°\0„\0\0­¸@d\b\x018a˜\0œ\x01¯¨œJFP\0®XR‹\f>m\ÐF\0®X”Šä>­\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU˨ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUËÌoüÿ\x01\x01û\0\x02]\b@€\x14\0™Î@P(\0@`¤\0à\x04éá>\x1d\ФÏ\0%\0\a\x120€	\x120€\bF0\0®X1ŠøF\x10\0®X\x10‹\x18¥\x1a¥˜¤Ù§J\0€\0\x10%\0	\x10%\0\b¦I>-\è>\r] ­\x12­¬Ñ¯B\x10\0\0®A„\0F\x10\0®X\x10‹ >-^LFP\0®XR‹x™\x01˜B˜…>­]ô§ ¦@0(\0D`\0Uœ\x01¯\x18®ˆL\x03\x7fè:o¨\x04Ýž:o˜¼–HÀN<\r`í–\x04ÀJ<\re$„_L\x01@
.\x05$uÈ\x06Iþ×ä<\x0fe$Õ=>\rƒ°\0@\0C\0 \0B\00\0D˜¢–˜“äBè\a\0 \08Ê\x04\0\0\0;À*Á).\x05$u„AD\x17”¨\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÍ$ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÍDoüÿ\x01\x01û\0\x02L\x01@\v„\0Ý!€ÀIÿû\x11š0”\x04’\x04Õ\b„\0Ý!<\x1de$š\x01”\x04’\x04’\x01æ\x02é\x0f<\r`ð„*L\0À\v„?<\x1fe$<=RÌ„\0€ €@Ý#:o˜„Ýž:oœ¼ïü<\x1dZVP`\x02?Ý!>-(8À	„">\x15k3„ ¦78\x11\0\bÕ(¦w8!\x04\0Ê\x13>}'ð8\x13†\x02„_L\x11\0^[Iþׂ¦w8\x13†\x02š\x01”\x04’\x04\ð\0Qé\x0fD\x10\0(>\x15k3>\x1d(8¦78 €\0Â\bž‘8 €\bÕ\x04„">\x15k3ì\x04:oœ„Ýž:o ¼\0„\0€Â€áIþ×\„a€ ¤±LqÀ\x12Ê	<\x02Íú¬1\x04„\0	\x14ƒ\0\x02Õ\x11 2Iþ¼;\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUΝÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÎåoüÿ\x01\x01û\0\x02¨2\x14\x04\0	Õ
Ï\x05 2Iþ¼3Õ\x04€"Iþ»ÿ¨2:o „Ýž’\0;ÿü¼ïü<\x1dk¦D \0\x10L\x11\0\x05ŒPL\x11@\b„\0Iþ¬C<\rk¨Õ\x03IþŒ²ì\x04;ÿü„Ýž:oœ¼ïÄ€À\0\0\x017€áIþèõ’\0\0C\x017<-lüD\x10\0D\x12\x0f€\x0f÷…B"\x04s\x04\x11\0\x0f<MWí\0\x10€I\x10\x1f€-€?\x04\x01\0\x0f„@\0\0\0J\x10\x0f€.„\fÝ$„\0ì<:oœ„Ýž;ÿü¼ïüF(\x10\b\x04!\0À„aB!8\vL!À
F(\x10\b\x041\0ÈX1À\0\x141\0ÈÉ\v\x040\0\x0e>-bà\01JË	´b€AÕ\b„BL\x11@\b>-bà´b„AÝ#Õ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÐ=ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÐloüÿ\x01\x01û\0\x02„\0€ F \0®X!\bÀD0A¾Iû(8ì\x04;ÿü„Ýž:o¤¼ïü.\x05´ÿÈ\x19.\x04ëè–\x04È\x15<\r;^¦\x02È\f.e\x1eèÎ	„\x01Iû’æ„!L\0€\x04€\x06Õ\x02„\x01À\x04„\x01H\0\0Œ.\x14¢œ.”¢Ÿ„á‰!H\0\0}Iý+bP`\0\bùÀu.\x14¢ž\0\0\0\v.$¢Ÿâ\x01è\x03„ Õ\x04˜Q@\x10\x04\aÁ\x05Iþè`€àÕ\x11Iýãú€àÀ\x04\x02p\x01\x0eÕ
€ F \0®X!\bÀD1\x01íIû'æ.\x14¢Ÿ.„¢œ‰\x01\x03T„\0ÿÏ\x06¦s¤²€\bIþá¾F \x03\x02X!\x0e„„\x02¯Ñ®\x10’è¦r¦1”N”\x04@\0€\x04@p\x1c\x04¯Ò¦4®\x13\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÑËÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÑóoüÿ\x01\x01û\0\x02¤r.\x05´ÿ’(®TÈ3.tëè—üÇ\x11<}(¾¤r\x04\x03\x7fþ§s€ˆ„eÝ'À%¦s„\x01Iý*q„\x04Õ .”ëħs¤rN“\0
\x04\x03\x7fþ€ˆ„eIûZ³€	Õ\x12\x04\x03\x7fþ€ˆ„eIûVq’\0€\aÕ	—ø€\aàéNóÿƒ„\x03Õ\x02„\0ì\x04:o¤„Ýž:oª¼ïüDw¤\x1c„\x01Ý'\0„\x01L€@#>l¢œ¦p¦3˜\bœ\x03–\0Ý' L\x04@\x18¦p¦3˜IœK˜\b–\0Ý'\0L\x04À\x0e¦°¦s˜\x12œ\x04˜˜Š˜Š˜J–\bÝ'L\x04\0(„À€æGÀ\0žYÎ\a,FÕ\x02€àÎ\x04<\r)ÜÕ\b„!L`À\x04Ý<Õ\x04<\r)Ý\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÓOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÓwoüÿ\x01\x01û\0\x02Ý ±—°V\x13\0\x03–\0@e\x04\x1aÀì„#L\0À\x06ù—øLp\x7fçIûLÐì\x04:oª„Ýž:oœ¼ïü.ukn„!–\0LpÀ%>lÝtL\x03À\x0e¦3À\x1eIþÍ™IþÍ­<\rY\fÝ „\0®3Õ\x14¦3È\x12<\rY\vÝ IþÍfIþÎ\x02IþÎÊIþÎt<-)\x04„\x02€ Ý"¯óì\x04:oœ„Ýž;ÿü¼ïüIüàC’\0ì\x04;ÿü„Ýž:o ¼€ÀD\0\0I€âT€€ÿL`\0\x05Ž\fL`@\a€\x06IÿÿèÀ\x17Õ\x1cD\0\0JL`\0\fŽ\fL`\0	œ\x02L`\0\x06D\0\0\x15L`@	D\0\0JIÿÿÔÈ	D`\0J€\b€F€g„!Iû\x16ñ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÔÎÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÔõoüÿ\x01\x01û\0\x02:o „Ýž;ÿü¼ïü.E$\x7f>EjÊ„ >\ràtD \0OIÿGŒ<\rYåÝ „%L\0€\a.%$}>\r%LÕ\x05.%$~>\r$\x1c„ >=àtÕ\a§@–`§\x01œ\x028A”\b	â"éøì\x04;ÿü„Ýž;ÿü¼ïüFð\0®\x027…d„ F\0\0®X\0
¬Õ
¦€>MZ¬˜’˜”§\x01œI¯\x11œ\x02à#éöIÿslì\x04;ÿü„Ýž;ÿü¼ïô„`P\x1f€\aD\0\x02\0„A®ÈIûŽŽ\0\x1f€\a–\fÀ	F\b\x10\x06X\0\b\0´@X!\0\x01Õ\bF\b\x10\x06X\0\b\0´@B!\0	T\x10€\x02¶@Á	F\b\x10\x06X\0\b\0´ X\x10€\x02Õ\bF\b\x10\x06X\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÖFÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÖfoüÿ\x01\x01û\0\x02\b\0´ B\x10„	¶ „AD\0\0HP\x1f€\aIûŽ`\0\x0f€\aT\0\0\x03È	F\b\x10\x06X\0\b\0´ X\x10€\bÕ\bF\b\x10\x06X\0\b\0´ B\x10Œ	¶ F\b\x10\x06X\0\b\0´@–”>%jò´@B!\x04\v>%jó´ B\x10„\vÁ\x05´ X\x10€ ¶ .\x15´Û–\bæ\bé\x02„'>\r³´\00\x01#–H€ƒ\x10\x10\x01'€Aâè\x02€C\x10 \x01#ì\f;ÿü„Ýž:oœ¼ïô.\x05µ\x05„,T\0\0\fL\0€Q„`Dq\aÌD\0\x01YP\x1f€\x05„A®Ê®È®ÉÝ'È\x19\0o€\x05„\x01Tc\0\x03L`@\x13D\0\x01XP\x1f€\x06€FÝ'È\v\0\x0f€\x06<-YÐD\x11,\0@\0\x04\x04€&Ý"\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU×Áÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU×âoüÿ\x01\x01û\0\x02D\0\x01EP\x1f€\x05„AÝ'È$\0o€\x05„\x01Tc\0\x03L`@\x1eD\0\x01VP\x1f€\a€FÝ'È\x16<\x1dY²D\0\0`Ý!\0\x1f€\aT\0\0\x1f”M@\0\x04\x04–\0<-YÐD\x11`\0@\0\x04\x04€&Ý"ì\f:oœ„Ýž’\0:oœ¼ïô.\x05µ\x05„,T\0\0\fL\0€r„`\x10?€\a\x10?€\x06D\0\x01FP\x1f€\x05„AIûªÈd\0o€\x05„\x01Tc\0\fÂL`@ D\0\x01[P\x1f€\a€FIûšÈ\x17<\x1dY²D\0\09Ý!\0\x1f€\aT\0\0àT\x10€\x1f@\0\x04\x04<-YÐD\x119\0@\0\x04\x04€&Ý"Õ\x02„À\0\x7f€\x05„\x01Ts€\x03Lp@"D\0\x01DP\x1f€\x06€GIût’\0È\x18\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÙ9ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÙnoüÿ\x01\x01û\0\x02<\x1dY²D\0\08Ý!\0\x1f€\x06T\0\0àT\x10€\x1f@\0\x04\x04<-YÐD\x118\0@\0\x04\x04€'Ý"Xc\0\x02<\x1dY²D\0\07Ý!D\x1fÿŸ@\0\x04\x02•µ@\x03\0\x04–\0<-YÐD\x117\0@\0\x04\x04„!Ý"ì\f:oœ„Ýž;ÿü¼ïô¦ÀF\b\x10\x06\x10?€\a\x04\0\x02\0––\x04È	.\x05jÌÈ\x06æhé\x04„\a\x10\x0f€\aP\x0f€\aIÿkA’\0ì\f;ÿü„Ýž;ÿü¼ïüIÿG±’\0F\x10\0žX\x10¨<\x1fY²ì\x04;ÿü„Ýž:o ¼Fh\x10\bXc\0\x04´&B\x10€	¶&<\x1dY\x1dT€\0ÿ„\x02Ý!€\bIÿ\Ÿ´&\0X\x10€\x01¶&„\x02<\x1dY\x1dÝ!€\b:o „\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÚÝÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÛ\0oüÿ\x01\x01û\0\x02Ýž:oœ¼ïü—ˆ—Á€\x06Iÿú„æ	è\x15>\x1d%ì8\0ƒ\x01â\aè\x0fF(\x10\x02\x04A\0\rF\x18\0\0„\x03€fD \x10—IþÃÜ„\0Õ\x02„\x01ì\x04:oœ„Ýž’\0:o ¼P`\0(\0\0\x016È\r\x02s\0u\x04ƒ\x7fúÇ\x06¤7œ{˜\0â\x01è\b¥÷Õ\x04¥÷\x04ƒ\x7fû™ÿŸû.\x15çÁÁ'<\ryñ¤@.\x05$xâ é <\x1d`ð„JL\x11\0\x05.\x05ƒðÈ\x18<\x1dyò„\x02\0\x10€,Iÿÿ­„!L\0À\x0f¤w’"–	æ\x15é\x03D\x10\0\x14–I˜I@\0œ\x06@p€^[€\b€'Iþ·¹\x14\x03\x7fý:o „Ýž:o˜¼—–\bIÿú\x18æ	è\x1d>\x1d%ì8 ƒ\x01âFè\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÜTÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÜwoüÿ\x01\x01û\0\x02„@8 ƒ	Õ\x04›–8`ƒ	F\x18\x10\x02\x04@€\r>\x1d%ì80ƒ\x01F\x18\0\0„\x03D \x10™IþÃf:o˜„Ýž’\0;ÿü¼ïü<\x1dkµD \0@L\x11@\v<\rk¶À\a\0\x10\0,„\x02IÿÿÉ’\0ì\x04;ÿü„Ýž;ÿü¼ïü<\x1dkµ„DL\x11@
<\rk¶À\x06\0\x10\0,„\x02Iÿÿ´ì\x04;ÿü„Ýž:o ¼Fx\x10\x02>m%ó¦0„!L\0À\x18ž÷ž3¤@¥Xž5™M—i­XF\x18\0\0¥\0„\x03D \x10šâ…è\x02­\x18\x04C€\r¤ØIþÃ\x18ŒÈ>\r&;L`\x7fã„ >\x15$t:o „Ýž’\0;ÿü¼ïü–ˆ”S>M%ì–Á˜!¬ÂF\x18\0\08B\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÝÐÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÝñoüÿ\x01\x01û\0\x02\v\x01„\x03D \x10˜IþÂù’\0ì\x04;ÿü„Ýž:o¨¼—À€\a@€€\x13@‘\0\x13Iÿù~€ÀD\x10\0\x10„\x03D \x10SD0\0ÿ€‡IþÂß„	FL`@\x0f€\aIÿù8T\x14\0ÿ€ÀIÿùW„!>\x15$–Le\0
€	€&Iÿùp€\b€&Iÿÿ¼:o¨„Ýž’\0:o ¼>m®Ì s—À\0\0€,Iýßœ\0 2„&L\0À\x04„\0¨2<\rk³T\0\0\x0fÀ\x04„\0<\x0fk³€& 
T \0\x0fÂ\f ‹¶\x01¨‰Â9\x04\x01\0\x0e\0 \x01J\x10 \x01KÕ2 	À\a\x04\0\0\x0e\00\x01K\x100\x01J<\x1dXâ€\aÝ!€À<\x1dkµD \0 L\x11@\vL`€	<-k¦\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUßGÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUßpoüÿ\x01\x01û\0\x02T!\x01Â\x03<\x1fk³<okµÆ\r<\x1dk¶D \x10>\00€,„\x03D\x10\0\x10€†IþÂn<-Xå<\rk¶€&Ý"\x02\x04\x01^[„jL\x01À)\x02\x04\x01\x1cD\x10\x19ƒL\0À#F\x18\x10\x06X\x10€|´\x01F?ÿ\0X1ƒÿ@\0\f\x02F0\0€X1„\0@\0\f\x04¶\x01´\x01@\00\b’\fF2\x01\0@\0\f\x04¶\x01P ÿì´\x02B\0x\bÕ\x1fF\x18\x10\x06X\x10€|´\x01F?ÿ\0X1ƒÿ@\0\f\x02D7ü\0@\0\f\x04¶\x01´\x01@\00\b’\fF1ÿ\0@\0\f\x04¶\x01P ÿì´\x02B\0x	¶\x02<\x1dXç€\aÝ!:o „Ýž;ÿü¼ïüIüÜ“’\0ì\x04;ÿü„Ýž:o˜¼@\x10@	@\x10À\bF0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUàÝÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUá!oüÿ\x01\x01û\0\x02@\0€CL\x11€ âAé	D!\0\0L\x11\0\x0f”ÑL\x11À+Õ\rF#\0\0L\x11\0\x1dF9\0\0L\x11À"Õ\x1d>\x1dhÜÕ\x16—‚€\x06Iÿ÷€\x06Iÿ§ Õ\x15T\0\x02\0À\x02„\x01>\x05$w<\x1dZr<\ryãÕ\x05>\x1dhä´!–\x01Ý!Õ\x04–\x01Iÿ÷k:o˜„Ýž:oœ¼ïü.$¢Ÿ.4¢œ—€˜šœ\x13—ÈL`\0\x05˜\x10L`@.€\aIýޝ€@À(€\x06€'\x02a\x01\x0eIþ×\v \x04´@¦S¦\x12@\x10 \b@\x10€\x04„\x01L\x10@\x18¦\x14„bL\x01À\x14¦Õ>5$s\0\x01\0	\0!\0\b@\0 \b@\0\b\x04D \0\x11L\x01@\x05€\x06IÿöÞì\x04:oœ„Ýž;ÿü¼ïü>\r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUâwÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUâoüÿ\x01\x01û\0\x02‚@Iþ2»„@<\r`’F\x10\0 X\x10ˆð€b€‚„¡Iþ3Uì\x04;ÿü„Ýž’\0:o ¼>mç„\0s\0MÏaP\x03\0ZIþ2Ÿ\0\x03\0ND\x10\0L\0À\x17…\x04\x14ƒ\0.…\x01<\x1dZ-\x10ƒ\0=\x04\x03\0\x15\x10s\0N€G€g€‡„¡Iþ3-\x10\x03\0ZÕB\x02\x03\0(IýÞ:À\x12\0\0\x02FIÿ÷Ù€Àæ	è\vD\0\00€&Iÿ÷ã€&D\0\0#Iÿþ.<\ryòÀ\f\0\0\0,IýÞ\x15À\a\0\x10\x02¤B\x10€	\x10\x10\x02¤>\x1dç„„@„À\x10 €=D \0ÿ\x12 €(<\x02µá\x14`€\x11\x14`€\x10D ÿý<\x1dZ;@\0\b\x02Ý!<-Y\rD\x10\0!€\x06Ý":o „\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUä\x06ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUäIoüÿ\x01\x01û\0\x02Ýž:oª¼ïô@\0\x13€	IýÞ\x16>}çà>m(\x1aEÀ\01D€\0ÿ@¤8IýÞ
€@¤0òIýÞ\x05€ ¤8ò\x01L\x04À\vL¡\0\x03Ê\a\x13À\0\x12ƒ€\x01\x12ƒ€\x02¤0þL\x04À\x0eL €\x03É
„\0\x13Ã\0\0\x12ƒ\0\x01\x12ƒ\0\x02\x10\x03\x7fþ>\x1dçòŒÈLpÿ×ì\f:oª„Ýž:o¨¼>]çà€ÂT€\0ÿ—È—!¤(L\x02@¤)L\x01€\x05¤*L\x01À—D\x1fÿ>\x15çÒ<Jóê„!\x04\x03\0’L\0À\x11\x04\x03\0Hæ\x13é\f€\x06„"D —VD0ê`D@+ò„¿Iþ\fŒ\0\x03\x01«.\x15³Û@\0€\x02T\0\0\x06È\x0fD\x1fÿ¦>-JÄ\x10\x11\03>\x15\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUå ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUåÄoüÿ\x01\x01û\0\x02k›\x10\x11\0\v\x10\x11\0^[\x10\x11\0#€'€\bIþÕÝ\x02\x10\0
Á\f.\x05çÁÀ	\ð‚¨é\x03„"Õ\x02„#>\x15$x>mç„\0“\0=N“\0T€\b€'IþÕŁ@<-Y\rD\x10\0!„\x01Ý"<lüD\0\0DBƒ€s€IP•\0\x1a<\x1dZ-\x14ƒ\0\x11\x04\x03\0\x15\x14“\0\x10€b€‚„¡Iþ2*<\x12µá\x10\x03\0ZX\0€\x02<\x1dZ;–\x01…\x01Ý!\x10ƒ\0=€\aIÿöž€Àæ	è\a.\x15$–É\b>…$–Õ\x05€\aIÿöÆ€À€&D\0\0`IÿöÒ€&D\0\0FIÿý\x1d€\x06Iÿö®Õ\a>\rçìÐ\x04nHÿÿ^:o¨„Ýž:o¨¼—€T€€ÿ€\x06€(IÿþG\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUç\x17ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUç8oüÿ\x01\x01û\0\x02.\x04¢Ÿ.\x14¢œ˜Hœ\vL`\0\x05˜\bL`@÷.\x05çÑN\x03\0ó€\bIýÜだN\x02\0í€\x06€(\x02t\x0eIþÕP \x04´ n\02ÿý\0\x02ÿü@1 \b@1€\x04„\x01L0@Éžj¦\b„BL\x01@\x1e¦+¦ª@\0 \b@\0\b\x04D@\0\x19L\x02@	>5çÜ\0\x02ÿÿ>\x05çÝÕ\f„CL\x01@
>5(\x14\0Rÿÿ>U(\x15H\0\0¸¦ˆ„fL!À\x1a>\r(\x18„ ¤L#À\x0e¦€Â\v¦«§*@! \b¤Â@!\x10\x04L1@\x03®@>M((L\x02\0žŒ\bÕì>\rç„\00\0XÃ;„cL!À9\00\0Y\0"ÿÿL1@3¦¯¦î@! \b@!\f\x04Ê%<=Z(\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUè•ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUèÖoüÿ\x01\x01û\0\x02æcé\x03</Z(<=Z(„\x06B\x01€$>Mçà˜\x04œÙ<?Z(­À¦«¦ê@! \b@!\f\x04¬¦­¦ì@! \b@!\f\x04¬‚„@P\x02\x7f¤Õ\x05„aL!€\x05„@\x10 \0X>\r(\x14¦€ÂX¦H„ƒL\x12@U¦\0\x12ÿÿL ÀP¦o¦®@\x10 \b@\x10ˆ\x04É2<-I'âDé\x03<\x1fI'<=I'>M(\x18”^[˜\x04œÙ<?I'­Á¦k§*@\x10 \b@\x10\x04.4¢Ÿ¬B„‚.$¢œ¦m˜“œ“¦ì@c\b\x03@\x10 \b„¡@\x10Œ\x04@"˜\x1a@"\x18^[¬C®€„ >\r(\x14Õ\x05„AL\x11\0\x15„ ®@Õ\x11.\x14¢œ.\x04¢Ÿ˜IœK˜H˜\bL`@\b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUê-ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUêZoüÿ\x01\x01û\0\x02€\x06€(€I€‡IÿþI:o¨„Ýž:o˜¼>\rƒ°\0 \0C\0\x10\0B˜Q–HÉ%\0\0\08À".eçÁ„\x01L`@\x1eIýÝ×’\0æ\x02è\x18>\r‚À\0\x10\0lÉ\x13\0\x10\0„É\x10\0\x10\0<É\r\0\0\0TÈ
>\rJÄD\x10\0x>e$u\x10\x10\0\x1eÕ5.\x05çÁÈ5>\rƒ°\0 \0C\0\x10\0B˜Q–H„AL\x11@+\0\0\08À'.\x05$wL\x01@$>\r‚À\0\x10\0lÉ\x1e\0\x10\0„É^[\0\x10\0<É\x18\0\0\0TÈ\x15„c>5$u>\rJÄD \0JD\x10\02\x10 \0FD \0\x1e\x10\x10\0\x1e\x10 \0E\x10\x10\0\x0eÕ\x12„`>5$u>\rJÄD\x10\02D \0x\x10\x10\0F\x10 \0E\x10\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUë¼ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUëáoüÿ\x01\x01û\0\x02\0\x0e\x10\x10\0\x1e:o˜„Ýž;ÿü¼ïüIüÙ¯’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüâó’\0ì\x04;ÿü„Ýž:o ¼.5›Ï.%›Î„ @\x10Œ\x06˜J–HÉ\x04BP\b	Õ\x03XP\0\x04<\x02µáØ\x04.\x05$rÈ\x17…\x01>…$rBbÄ\b<Zµá„\aD\x10 \0D Œ„`€†IþÀO<-)¢€&D\0\0QÝ":o „Ýž:o¨¼>}ç„€À¡:„\a„!D \x04–ñ\x04ƒ€\x03IþÀ7T\x03\0\x02À\fT\x04\0\x02À	>\rlü\0\x13€%´@@\x10ˆ\x04Õ\x14.\x15ç©<=[?<-yã@\x10„\x05@\x10Œ\x02T!\0\x02<\x1f[?Â\x06F\b\x10\x04X\0\x02D¶ T“\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUíwÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUí™oüÿ\x01\x01û\0\x02N’\0\aT\x04\0\x04À\x03„!Õ\x02„ >\x15çò<\ryã@\x03\0\x03T\0\0\x04À^[N’\0\x0e<\rZiÝ <MY\b„\aD\x10 \0D ˆ„`Õ\f<\rZjÝ <MY\b€i„\aD\x10 \0D ‰Ý$<\ryã@\x03\0\x03T\0@\0À!T“@\0N’\0\x10<MY\b„\aD\x10 \0D Š„`Ý$„\x01<-Zm€ Õ\x0e<MY\b„\aD\x10 \0D ‹€iÝ$<-Zm€	„!Ý">\x1dç„\0 €(T\x03\x01\0Ê\x13À\x1dT„\x01\0N‚\0\x1a„\x01\x10\0€(F\b\x10\x04\x04\x10\0AX\x10€\b\x14\x10\0A„\x01Õ	È\v„_\x10 €*\x10\0€(\x10 €)<\x1dZ8Ý!<\x1dZr€\x06Ý!D\0€\0@\x13\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUîóÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUï4oüÿ\x01\x01û\0\x02\0\x02Á\x02„!>\x15k\x1e<oyã:o¨„Ýž:o˜¼.eç”Î\x1e„!>\x15ç”>e$r<\x02µá<\x1dZ;Ý!<-RÆ€&„\x0fÝ"<mZ.Iþ?&Iþ\x12xÝ&<\x1dZ/F\0\0ÿX\0\x0fÿÝ!„\0:o˜„Ýž;ÿü¼ïüIüݍ’\0ì\x04;ÿü„Ýž:o ¼<\x1dZ€„\x01Ý!F\x18\x10`\x040€(>}$|F(\x10\x02¦xT1ƒ\0\x04a\0\x0e„A’hL\x11\0\fÁ\x05„BL\x11@AÕ$„!L\0ÀH®8Õ(È\x02Õ\x1e>$LË\x02Õ2´\bP\0\0(€&”\x04’\x04Iþ±ÃÀ6„\x02®8<\r`ð„*¶ÈL\0À/<=RÌ„\0€ €@Ý#Õ'È\x03®8Õ$Ë\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUð‹ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUð±oüÿ\x01\x01û\0\x02<\r`ð„OL\x01\0\x05<oI\x13Õ^[>$L´\bP\0\0@€&”\x04’\x04Iþ±À\x10„\x01®8¶ÈÕ\f„\0€ F \0®X!\bÀD0ÜæIû\x1dà’\0:o „Ýž:oª¼ïô.E$|.5ƒèT€€ÿ‡€V\x12\0\x02@Ž\x04\x1a€à€ÂN2\0×F\x18\x10\x02F\b\x10\x02\x040€\x10DWyÀ\x04@\0\x0eõ–Ý„\a„!D \x01Ý%@” \bT£€ÿõ\x01„\a„!D \x02@4¨\x04€†Ý%.\x15$v„AL\x11@\x04?Å$v<\x1dZ;<\x02µáÝ!<]z\x06–,À^[æïéF„\x1fL`@D<\x1dZZT\x02€þÝ!.\x05è\x18D\x10\b\0@\0@\b@¥\0\x04<MY\b@5$\x04„\aD \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUò\fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUò.oüÿ\x01\x01û\0\x02FÕ+„_>\x1dd La\0\x1aX\x02€\x01<-ZZñ–\0Ý".\x05è\x18ñ\x01@\0@\b@¥\0\x04´@5$\x04„\aD\x10\b\0D EÝ$Õ\x11—h@RÀ\b@¥\x14\x04´@5$\x04„\aD\x10\b\0D HÝ$H\0\0b<\x1dZ_€\x06>mç„Ý!\x04\x13\0\x1f\x14\x03\0"L\x10@*.%ƒà<\x1d`ó”\x13˜\b\0\0\x06<Z_„\0IþËÈÝ(\0@\x14ˆ\b\x04\x03\0"ˆ(Iþ°áÀ\x19@T¤\0ˆ¨\x14S\0\x1f\x14ƒ\0\x1c€i€ˆ„\aD\x10\b\0D IIþ¾:Õ\b„\x01\x10ƒ\0\x10\x03\0x\x14s\0#Iÿ‡Ê\x04\x03\0#…\0\x10ƒ\0æ\x0fè\x16.\x05$|„AL\x01@	„-Lp€\x06<-Zn\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUó‡ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUó²oüÿ\x01\x01û\0\x02„ Õ\x05<-Zn„\0€ Ý"„!>\x15è\x15Õ\b<-Zn„ „\x01Ý"\x10ƒ\0‘„\0ì\f:oª„Ýž:oª¼ïô>\f¢œ¦ƒ¦B…\0˜Q–Hñƒ€€È…!>}ç„ÕM\0\x0e\0\x02\x01\0\x1e\0\x03ã è\x03„\0Õ\x04˜\b@\x04\0\aÈ\x1d€\bIýØÕÀ9´ T\x10€\x04Á5\x02\x10\0¡.%k\x1câ"è/\0#€J±â"è\x03\x10\x13€J\x02\0\0¡\0\x13€Kâ è"Õ\x1f€\bIþÜ÷À\x1d´ T\x10€\x02Á\x19.%k\x1c\x02\x10\0^[’Aâ"è\x12\0#€J˜I±à"è\x03\x10\x13€J\x02\0\0^[\0\x13€K˜\0à è\x03\x10\x03€K!T”€ÿð\x01ã é²Æ\x1f\x04\x03€%„!\x10\x13€>\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUõ\x16ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUõ^oüÿ\x01\x01û\0\x02X\0\0\x04<\x1dZZ–\0Ý!„ALa@	<\x02µá<\x1dZ;X\0\0\bÕ\a<\x02µá<\x1dZ;X\0\0ˆ–\x01Ý!Õ\x18<\x02µáD ÿw<\x1dZ;\x10c€>@\0\b\x02Ý!\0\x03€”<\x1dZZT\0\0ûÝ!„\x1f\x10c€K\x10\x03€Jì\f:oª„Ýž;ÿü¼ïüIýÚQÈ\b.\x15k:.\x05k;˜\b–\0À\x06Iþ>„ @\0€\x06ì\x04;ÿü„Ýž:o¨¼>-ç„\01\0n€áT\0ÿÃo\x04\x01\0\x0fF\x10\x0fðX\x10€ÿ@\0\x04\x02Àf\0\x01\0¤À\x17F\x18\x10\x04\x04\0\x01B\0@\vÈ\x10T\x03€\fÀ
F\x18\x10\0\x04\0€\bD\x16\0\0@\0\x04\x02Õ\x03T\x03€\x02È\x03…\x01Õ\x02…\x02Iþ>W„!Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUöÚÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUöüoüÿ\x01\x01û\0\x02@.€ÀIþ>U²•´’Å•±š\x06–ø@`@\b@1À\b@\x04à\b@1€\x04@\x04 \b@1€\x04’Ñ<MY\aT£\0ÿ„\a@1¨\x04D\x10\x10\0D nÝ$.\x05è\x1eâ\x06è\x05\ó\0ÿè\x06Õ\x0eD\0\0ÿL`@\x18<MY\a€f„\aD\x10\x10\0D oÕ\rD\x10\x02\0Ts€\f<MZM”	@\0œ\x1a€J€(€iÝ$:o¨„Ýž’\0:oª¼ïü—ÈUÁ\0ÿT€\0ÿIþ>\x02„!Iþ?Ù.e®í Æ
€\a„!<}k¸Iþ?Ï@`$\x01Õ\x02Â‰\b‰\x1cˆèIþ=ðš~Iþ¯O„ @\0€\x06ì\x04:oª„Ýž:o˜¼—€€\x06–HIÿ”ï’\0<\rm\x1d\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUøRÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUøroüÿ\x01\x01û\0\x02T\0\0\aÈ\x05<\r[?–\x04À\r.\x05kš@c \bB\0<\bF\x18\x10\x04@`\x18\x04\x14`€@:o˜„Ýž:o ¼<-m\x1d—€T!\0\a–\bÊ\x05<\x1d[?–LÁ<Iÿ¡mÀ\x0e<\rZ|Ý À
>\rk™¦€„(@\x10˜\x0e@\x10ˆ\x04Õ\v>\rk™„(@\x10˜\x0e¦€@\x10„\x05@\x10ˆ\x02®@<\r[?Fx\x10\x04\x14\x03€‘.\x05k™@\x13 \b\a@\0€\x04\x14\x04\0@<-Z%€&„\0Ý"\x044\0@\x04C€‘–Ù„\aD\x10\x01\0D \x1eIþºT<\rm\x1dT\0\0\aÈ\x05<\r[?–\x04À\r.\x15k™@c \bB\x10¼\bF\b\x10\x04@`˜\x04\x14`\0@:o „Ýž:o ¼>mç„\0s\0)\0ƒ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUùÏÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUùñoüÿ\x01\x01û\0\x02\0*Iÿ„$D\0\0 \x12\x03\0Y„\0\x10ƒ\0*\x14\x03\0.\x10s\0)Iÿø\x11:o „Ýž;ÿü¼ïü–\0Iüà>ì\x04;ÿü„Ýž;ÿü¼ïü–\0IüçNì\x04;ÿü„Ýž:oª¼ïìT €ÿUÀ\0ÿ€
€ÂIýÖç €
Iÿð“\0.\x14¢œ.\x04¢Ÿ˜IœK˜H˜\bMÀ@\x11N’\0\x0f€	Iþ\x01G„!L\0z€	Iþ\x01AD \0\x10L\x01\x01s€\x1c€*IþÏ;€àN\x02\x01l\x02\0\0\rN\x02\x01h„	L€\0\x10\x04\x14€’É\f€\bIÿð\x7fD \0\x10L\x01@\x06Bcx	Bc|	„#\x04ƒ€\x03MÀÀ\x1eP\x0f€\fIû\x01¶"\x13€\0"\x03€\x02€ˆL\x10@\x06¤»\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUûKÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUûmoüÿ\x01\x01û\0\x02„\0¬8¬ºð\x03ôIû\x01½„\0\x12\x03€
„\x03\x10\x04\0\bô\x01H\0\x017>\x1c¢œ¦ˆ¦Ë˜\x12œ\x03˜\x03˜“˜\x03œ’˜€ˆMÁ@\x17T\x13\0€Á\x04„GH\0\0æT\x13\0@Á\x04„FH\0\0àT\x13\x01 „¥@ „\x1a@"„^[H\0\0×MÀ@\x0e¦JãAè\x03„ Õ\x04˜K@\x15\x04\aÁ\x04„@H\0\0Ë.\x15jWÁ\bT\x13\0\bÁ\x05æÉé\x03Bc\f	N’\0G\x04$€\x06ÊC\x02\x14\0\x06æ2è\x06T\x13\0\bN\x13\0™Õ\x03æ<è\x06T\x13\0\x10N\x13\0Õ\x04\ð€zè\x06T\x13\x04\0N\x13\0†Õ\x04\ð€¸è\x06T\x13\b\0N\x13\0˜Õ\x04\ð€áè\x05T\x13@\0N\x13\0’@\x13@\b’?Á\x04„OH\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUüÀÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUüàoüÿ\x01\x01û\0\x02\0ŒT\x13@\0N\x13\0‡T\x13\b\0N\x13\0T\x13\x04\0ÉcT\x13\0\x10ÉbT\x13\x01\0ÁY„HH\0\0x.%çÁÂ\x18<\x1dyòÁ\x15\0 €,\0\x14‚FL À\x10.%k:.\x15k;˜Q–HÉ\b\x04”€’„!LÀ\x04Bcx\b\x02\x14\0\x06æ2è\x05T\x13\0\bÉ=Õ\x04\ð€7è\x05B\x13P\vÉ8Õ\x04\ð€Tè\x05B\x13`\vÉ4Õ\x04\ðpè\x05B\x13h\vÉ0Õ\x04\ð‚)è\x05B\x13l\vÉ,Õ\x04\ð‚¨è\x04B\x13x\vÉ(Ne\0*B\x13x\vÉ#B\x13l\vÉ\x1dB\x13h\vÉ\x17B\x13`\vÉ\x11B\x13P\vÉ\vT\x13\x02\0É\x1aÕ\x05„JÕ\x1c„DÕ\x1a„CÕ\x18D \0$Õ\x15D \08Õ\x12D \0*Õ\x0f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUþ:ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUþZoüÿ\x01\x01û\0\x02D \0;Õ\fD \0.Õ	D \0?Õ\x06„IÕ\x04„KÕ\x02„NMÀ@\x0f.\x04¢žã@è\x03…@Õ\x04˜Ã@¥\f\aN¢\0\x04—±Õ\x12T\x01\0\x0fæXè\x06F\x10\0–X\x10ŽØÕ\x05F\x10\0–X\x10Žø8`\x01\x10$\0\b\x02\x03€\vÀ\x06\x02\x14\0\x06˜\x01\x12\x04\0\x06\x02\x04\0\x06âÀè\rD\x10ÿü@c\x04\x02šF\x12\x13€\v\x12\x03€
\x12d\0\x06Õ\x06„\0\x12\x03€
Õ\x02„€€\x04ì\x14:oª„Ýž:o¤¼ïô.%›Ò.\x15›ÏP`\0@.”¢œâAè\x03„\x01Õ\x02„\0®3.\x15›Ñ.\x05›Î„àš\x01®2„\0®4Õ\x17IýÕ5À\x13´ T\x10€\x04É\x0f\0\x10\x02¤–LÁ\v¦tœI®t\x04\0\0’À\x05¦2\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÿ¾ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÿåoüÿ\x01\x01û\0\x02žAÀ\x02®rù–x€\aâ)éç.\x15›Ò.%›Ï¦4šQL\x10@\f<\ryòÀ\b\0\0\0.„!L\0À\x04„\0®3\0s\x7fû.\x15ƒó.\x05ƒòÇ\b.u$u„@Vs€\x01@q\x1c\x06˜\b–\0À\x03Xs€\x02¦4À\x03Xs€\x04\0\x03\x7føÀ\x03Xs€\bP\x0f€\x04Iúÿý\x04\x03\x7fðL\x03€\x1e„\0„/\x14s\x7fð\x10\x03\x7fùLpÀ\x04„\x02Õ\x11„-Lp€\x0e„+Lp€\v„*Lp€\b„,Lp€\x05„.LpÀ\x03„\x01\x10\x03\x7fú\0C\x7fú–ù„!D ð„\x06Iþ·Þð\x01Iúÿç\x04\x03\x7fð„ @\0€\x06ì\f:o¤„Ýž;ÿü¼ïü–H–‘–\0IüÞ.ì\x04;ÿü„Ýž;ÿü¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x01:ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x01^oüÿ\x01\x01û\0\x02ïü–\0Iüê¾ì\x04;ÿü„Ýž;ÿü¼ïÄ„\x02€?òIÿÿðì<;ÿü„Ýž;ÿü¼ïü\00€\b„–\0L2\0
Ã\x05„‚L2@\vÕ\aIÿÿæÕ\x06IýT7Õ\x03Iý@jì\x04;ÿü„Ýž:o¨¼T\0ÿ„ >\rH=D \0&Iÿ9;>m³´„à…\x01>…$a\x12s\0>\x12s\0<N“\0\x1e\0#\0,\0\x13\0(\03\0*B!\f	B\x10˜	B1„	\x103\0*„\x05>uj>…¨h\x10\x03\0\x7f\x10#\0,\x10\x13\0(\x10\x03\0~Õ#…&P\x03\0â„ „H\x10“\0~\x10“\0\x7fIÿ9\b<-Y%\0\x13\x01RB!L	B!T	’!</Y%>\x15k|>ujÃ\x10“\x01Y\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x02·ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x02Ýoüÿ\x01\x01û\0\x02\x10ƒ\0â>ujÄ\x10s\x01`D\0ü¼„ Iý9.’\0:o¨„Ýž;ÿü¼ïüIÿëñD\0üy„ Iý9 ì\x04;ÿü„Ýž;ÿü¼ïüIüé•’\0ì\x04;ÿü„Ýž:oª¼ïüD`\0`T €ÿBe\x18$—À>\r¸t™°¦4=Ím€L\x03€}ÇH<-n\x1aÊ\fIþØÒ<\x0fn\x1aÈ\x04„çH\0\0r„!\x10\x10\x016\0“\0
„\x01L@\x10.\x05ÞZÈe>•Þ[¯ô<\x1dY:€\x06Ý!<\x1dY5€	Õ6.\x15ÞZ.\x05ÞYœIž\x01>\x15ÞZ>\x05ÞY¯ô<\x1dY:€\x06Ý!T\x0e\0?È\x05<\x1dY5„\x01Õ7<\rw•¤D\ð€ è\x04D\x10\0 Õ\x02–H>\r¸q\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x04;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x04[oüÿ\x01\x01û\0\x02Iþ(l„àÕ).\x15Þ[„AL\x11@\x0f>uÞ[¯ô<\x1dY9€\x06Ý!<\x1dY5€\aÝ!€àÕ#.%ÞZ.\x15ÞYž‘œI>\x15ÞY>%ÞZ¯ô<\x1dY9€\x06Ý!.\x05ÞZÈ\x05<\x1dY5Ý!€à.EÞZF\x10\x04\0€j„\x06D v‡Iþ¸ŠÕ\x02„ì€\aì\x04:oª„Ýž’\0;ÿü¼ïüIüÐ!’\0ì\x04;ÿü„Ýž;ÿü¼ïüIÿÿóD\0ü“„ Iý8jì\x04;ÿü„Ýž;ÿü¼ïü<\r`“„#L\0À\x14.\x15€ É\v.%€¡Ê\b</`“€"„\bIý8rÕ\x06IþÕ\x1dIÿꉒ\0ì\x04;ÿü„Ýž;ÿü¼ïü–H––Ø–\0IüÓ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x05¶ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x05àoüÿ\x01\x01û\0\x02’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÐK’\0ì\x04;ÿü„Ýž;ÿü¼ïü.\x05€¨È\x02Õ\x04„!L\0À\x06D\x01† Iû\x01.ì\x04;ÿü„Ýž:o˜¼>m€ ¦5„!L\0€	Iÿÿæ’\0„\0®1„\x01®5:o˜„Ýž:oœ¼ïü>m€ ¦5„!L\0€<§óLpÀ\x06IÿÿЯõÕ4„\x04Lp@\aIÿÿÉ„\x01®5Õ,„#Lp€*„\x02Lp@\r>-\f\01\0!\0\x01\0\x1e\0\x11\0\x1f\0!\0 Õ\x13„%LpÀ\x19\0\x03\0\bŒ\x10–\0æ\x04è\r¦·>\r\f˜ŒU¦×¦\x14¦U¦–Iÿÿ‰Õ\x06Iý2àIÿÿœ’\0„ >\x15€¢ì\x04:oœ„Ýž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\aEÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\apoüÿ\x01\x01û\0\x02;ÿü¼ïüIÿÿ³’\0ì\x04;ÿü„Ýž:oœ¼ïü—€—È–æÈNò\0­æçNò\0ªæGNò\0§„\x04L`@\x0e>\rµP„ „GIÿ7^.\x05j°>\x1dkoH\0\0r„"L`À\a<\x1dY\x0e„\0H\0\0m„cLaÀ\b<\x1dY\x0e.\x05koH\0\0dž5–\0æ\x03è\x15>\rµP˜¦ÐÃ\x04žÙ®ÐÕ	<MY	.%ko€&D\0p1Ý$>\x1dµP™ùÕ\x05Æ\b>-µP™ú¦8œ\x01®8Õ\b>=µP˜“¦\x10À\x03ž\x01®\x10>\rµP¦@Á\x06>\x1dko>\rj¬Õ ¦AÁ\x06>\x1dko>\rj­Õ\x19¦BÁ\a>\x1dko¦ˆD\0\0PÕ\x1f.\x15$oÉ\x03¦CÁ\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\bÊÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\bëoüÿ\x01\x01û\0\x02>\x1dko>\rj®Õ\a¦DÁ\b>\x1dko>\rj¯¦\0¦ˆÕ\f¦\x05>\x1dkoÀ\x05¦ˆD\0\0 Õ\x04¦ˆD\0\0\x1aL \0\x06®\b<\x1dY\x0eÝ!.\x05koD\x10\0\x1aL\0À\x10IÿO>À\f„DLa\0
F\b\x10\bX\0\0\x04´ B\x10Ð\bÕ\bF\b\x10\bX\0\0\x04´ B\x10Ð	¶ .\x15ko<\x1ffׄ\x01Õ\x02„\0ì\x04:oœ„Ýž’\0;ÿü¼ïü„G–H–\0’$L\x01@\x04„EÕ
„EL\x01\0\a„FL\x01\0\x04€AÕ\x02„DIÿÿ2ì\x04;ÿü„Ýž;ÿü¼ïü–\x01Iüï¸ì\x04;ÿü„Ýž;ÿü¼ïüIüìé’\0ì\x04;ÿü„Ýž;ÿü¼ïü¦@D \0PL\x11\0\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV
Aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV
foüÿ\x01\x01û\0\x02D\0\0\x11Õ\x04œ\x01Iÿÿê€ D\0ü_Iý6½ì\x04;ÿü„Ýž’\0:oª¼ïô€à.eµ\0@\0\x13D\0ÿý–IUÁ€ÿL€\0”œ\v–\x01D\x10à\x02\x12\x0f€\x03L€À\x05D€ÿýÕ\vD ÿüL\0\x05žIL€À\x05œ\x05\x12\x0f€\x03P\x0f€\x06IþµDTc\0\x03„A\x02Ÿ€\x03La@t€\a€(Iÿè‘L\x03@nT¤€\a€\x1f„ÀIúü“#@£(\x06‰I<S‹>\rotT\x14ÿ”K˜H€\x01\x1a€\0\x01@5$\0<?S‹D ÿü\x10 \0\0œ\vL\0\x06D à\x01L@\r\x11À\0\0F\b\x10\x02\x02o€\x03\x04\0\0\x0eŽÈ¨	Õ\x0f\x02€\x03\x03@„\0\x13ç\x06é
€'„E\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\vºÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\vâoüÿ\x01\x01û\0\x02Iÿ5õPd\x7fûý—±Õ\x05€H€'Iÿ5ìP„€\x01GÀ\0‡YÎ	4Õ\x19>\rot‰ €	æÉé\b„HŽÈIÿ5ی藱Õ\vIÿ5Ö@\x04˜\0R#\0\bD\x10\0ªÝ<„À\x01T”\x01ÿ€'€F@”Œ\bÎâ´\x1fIúü1ì\f:oª„Ýž’\0:o˜¼F\x10\0–X\x10Ž|„J>\rªpIÿ5³’\0>\rªÔ„ D \0%Iÿ5½>\r©x„ D \0%Iÿ5¶>\r¶\bD\x10\0ÿ„DIÿ5¯.\x14¢œ.4¢ŸD \0\x1f>%¶\fD \x05Ü</[\r„_</[\x0e˜Ù„\0>-'tD\x1fÿÄÕ\x048\x11\x01	– \x01à\x03éû:o˜„Ýž:oª¼ïìF\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\r;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\r[oüÿ\x01\x01û\0\x02\0®X\0	ø:\0\x04\0Po€\b:\x0f„ „D€\x06D\x10\0ÿIÿ5}D\0\0\x1f®4€?œ\x06€†…AÕ?8‚\x14\0@‘Œ\0AÄ\x1c\x0eUÎ\0\x01OÂ\0'QÄ€\x02$ækè\x04T>\0ÿÕ\x03T4€ÿ\x05À€\0@‘Œ	8ž$\0@u\x1c\fT1€\a@sœ\x05@4Œ\x0e@ƒ \x02T1€\x03„ãP\x7fÿL3€\x068‚\x14\bT\x04€ÿœ‘D0\0%L!€	–ÐTq\0\a@QŒ	æ\x06èÆœLL`€\x04„@ÕõP\x1f€\b„E>\r¶\bIÿ5\x1cì\x14:oª„Ýž:o¤¼ïü.5kN„á„\0>]ª\>M¨ –@T \0\a’#@#ˆ\f8b„\0–@ƒ\b\x02œ\x01N‚\0\x118’\x04\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x0e²ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x0eØoüÿ\x01\x01û\0\x02@\b\x05@!$\x02@d\x18\x02P€\x01Ê\x058b„\bT4\0ÿD\x10\0OL\0ÿá>5kN€$„J>\r%\Iÿ4äì\x04:o¤„Ýž:o¤¼ïüPp‚@X`\0\bIÿ÷ÃÀ)Iþ6\¦~Iþ5¹À\x03…\0Õ
 :È\x04>\rjrÕ\x03>\rjs\0€\0\0¦~„\x03€HIÿø>À\x06F\x03?óX\0\x03ÿÕ\v¦~€H„\x05Iÿø3À\aF\x03ÿóX\0\x0fÿ@c\0\x02<\x1dX„P\x03ýÀÝ!À\bT\x03\0\bÀ\x05æÉé\x03Bc\f	€\x06ì\x04:o¤„Ýž:oœ¼ïüP`\0'\x04\0\0	F\x10\0–X\x10Ž\b\0\0\0\bT\0\0\x0f8p€\0æâé'Iÿ÷sÀ$Iþ6\f¦uIþ5iÀ\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x10;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x10[oüÿ\x01\x01û\0\x02„@Õ\v¦7„!L\0À\x05>\rjrÕ\x03>\rjt¦€¦u€\aIÿ÷îÀ	.\x15jxÁ\x06žI>\x15jx„\0Õ\x06.\x15jw>\x15jx„\x01ì\x04:oœ„Ýž:o ¼—Á€\a\x01Iþ\aÁ€ÀÀ#\0\0\0HIýÏ—€àÈ\x02Õ5D\x10\0\x16\x14\x10\0J\0\x10\x02H„B\x10\x10\x02_ sL\x11@\v€\x06Iþ	ñ€\a€&€HIýVtÕ\x05€&€HIý^Ù„\0Õ\x1a€\aIýÏ‚À\x14\x02\x10\x01\r„GL\x11\0\x10´ „DL\x11@\a\x14€\0KIýôfÕ\x04€(Iý_\x0e€\x06Õ\x03D\0\0\x12:o „Ýž’\0:o¨¼ïðA€àIþ	½\0Iþ
¤€ÀNƒ\0\x05„\x02H\0\0¿È\x05D\0\0\x1f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x11ºÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x11Üoüÿ\x01\x01û\0\x02H\0\0º„\0P\x1f€\x04¬\vIþ\bၠÈ\x0eD \0\x1f€\aD\x10\x7f\fIýÄ€\a€(D \0\x1fH\0\0v€
Iþ\x0eɦ0¦q ±¤öIþ\b¯T\0ÿN“\0!\x02\x03^[„/L\0À\x1c\x02\x03\x1cD\x10#\x19L\0À\x16¤0„,L\0À\f 1Œ:L\0À\b¤6Œ6L\0À\x04…!Õ\aIþ\bªÀ\x04„\0Iþ\v,\0\x03\0\x14„#L\0À\x0f¦q¦0 ± òIþ	3P\x1f€\x04¬\vD\x06$@Iþ\v0„\x01L@9€\x06€'Iþ\x0e÷ À\a€\aD\x10\x7f\fIý¢ÕG\0£\0\x14„"L €	€\x06Iþ\x10ÿ„\x02\x10\x03\0\x14Õ\fIþ
KN\a\0\x0e\x10£\0\x14Iþ
ƒ®2Iþ
f€\a€&\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x134ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x13Qoüÿ\x01\x01û\0\x02IýZ´Õ\x0eD \0^[€\aD\x10\x7f\fIýN€\a€(D \0^[IýVÆ€	Õ,\x02”\0^[D@\x03è¦0¦q ± òB”$Iþ\bæá è\x03„\x03Õ\x02„\x04\x10\x03\0\x14Iþ\bE€ÀÀ\a€\a€(IýZ÷„\0Õ\x0fD \0\x1c€\aD\x10\x7f\fIý"€\a€(D \0\x1cIýVš€\x06ì\x10:o¨„Ýž’\0:o¨¼€á\0\0 €\0\0€\rIþ\fT€ÀÈ&\0\x04\x02H€*€I€hIý_ÿÈ\x06€\b€'IýbîÕ\x18„!L\0À\a€\b€'Iÿÿ\x10Õ\x10„"L\0À\a€\b€'Iýb0Õ\b„#L\0À\a€\b€'Iýap€À€\x06:o¨„Ýž’\0:o˜¼\0\x10\x02ˆ€À\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x14«ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x14Ëoüÿ\x01\x01û\0\x02Á\x15\0\0\x02À\x05P\x03\x02Iþ"™„@D\0\x1f@D\x15P4€f€‚„¡Iþ#5\x10\x03\x02ÕM\0 \x02Z\x10\x10\x02„#L €\x06Œ?IýnFÕ8\0\x10\x02aB „\vÂ\x05–ŒÊ\x03„&Õ+–
N\x04\0\x15T €@Ê\x11€\x06„)D \0"Iý·’\0\x03\x02À <-XˆD\x10\0"€\x06Ý"Õ\x19T\x10€@Á\x16N\x05\0\x15\0\x03\x02cD\x10\0&L\0€\x0f€\x06Iþ\x02h€ €\x06Iþ\x02V€\x06„*D \0"Iý·p„\0\x10\x03\x02b\x10\x03\x02aD\x10\0"€\x06Iýœþ:o˜„Ýž’\0;ÿü¼ïüÀ\rÁ\f ‚„bL!À	´@T!\x04\0Â\x04D\0\0:Õ\x03IþíXì\x04;ÿü„Ýž:o˜¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x16$ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x16Coüÿ\x01\x01û\0\x02€ÀIþî)´\x06À\v sD\0\0\x10L\x10@\a€\x06D\x10\0"Iÿé):o˜„Ýž:oœ¼ïü€À \x03€á„,L\0À\x04„\0Õ  ²„!L À\x16P\x10\x7fñæ#é\x11„DL\x01\0\x0f\0\x03\x017Iþìž„!L\0€\b\0\x03\x01<À
„DLq\0\b q„\0@pœ\x04©ñÕ\x02„\x01ì\x04:oœ„Ýž:o˜¼€ÀIþåù’\0È\a r„KL\x11@\x04„!¨r:o˜„Ýž;ÿü¼ïüIþæ—’\0ì\x04;ÿü„Ýž:o ¼ï°€á¦H€À„\x03L\x10@  2ž\x06æ\x02èg„\x01¨2P\x03\x019Iþ!·€\x06„ IþÒ\x05¦9P\x1f€\x04¶\x01„\0\x10\0€
\x02c\0‡<=Wë­Ž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x17›ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x17Äoüÿ\x01\x01û\0\x02„@„\bÝ#ÕTD\0\0\x16L\x10@\x1f 2P\x10\x7fñæ#é\b„!L\0ÀH 3„"L\0ÀDP\x03\x019Iþ!\0\x03\x01\x03„!¨rÈ\x04.\x05¶\aÈ7¦y€\x06Iÿè—Õ2„\x0fL\x10@* rœ\x04L\x10@&„\x01¨2P\x03\x019Iþ!u\x02\x13\0^[P€\x04\0\x03\x017\x12\x14\0\f\x02\x13\0\x1c\x12\x14\0\r\x02c\0\x1d\x12d\0\x0eIþÑs¦y\x12\x04\0\x0f\x14\x14\0\x05<=Wí€(„@„\x03Ý#Õ\a<-Y3€'€\x06Ý"Õ\x02„\0ìP:o „Ýž:o¤¼ïü€à\x01\x04\0\x02Iþçe€ÀÈ\x0e\0\x04\0\0È\v\0\x04\0\x01È\b„\x0fL@\x06€\a€&IÿèH€\x06ì\x04:o¤„Ýž’\0:o ¼\x04€\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x19\x1dÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x19<oüÿ\x01\x01û\0\x02€ÀT„\x01\0IþçÝ€àN‚\0\r qT\x10\0É\b 2„AL\x01@\x05€\x06Iÿè+´\x06\0\x13\x01]T\0\0€À\v–\f\x02\x13\0˜À\x04P\x10ÿÕ
P\x10ÿ´Õ\v–\f\x02\x13\0˜À\x05P\x10ÿ°#Õ\x05P\x10ÿԐ#˜I\x12\x13\0’\x02\x13\0‘\x02#\0’âAè\x02€"€\a\x12\x13\0’:o „Ýž:oœ¼ïü¦ˆ€À¦Ê§\vÊ\x1a¦‰Ê\x18 CD0\0\x10L\x11À\x05„\x01¨3Õ\v¡\x02D\x10\0\x10L@À\x05€"Iÿçæ„\x01¨2€\x06„ IþÝvÕL@\x02 \b\x02#\0†@\0\f\x04L\x01\04š‚–‘D0\x7fþàbé-¡3D \0\x10LA@\x05œ‘¨³Õ\x03œ‘¨²\0#\x01T\x12\x03\0šX\x01\0\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x1a”ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x1aÒoüÿ\x01\x01û\0\x02\x10\x03\x01T\0C\x017<\rlüD \0DB\x02\bs§	\x04\0\0\x0f„à\x10@\0K<\rlü\03\x017¦HB\x01ˆs\x04\0\0\x0f\x10\x10\0LÕ\x13D\x10\0(€\x06Iÿç €\x06„ IþÝ2´\x06X\0\x01\0¶\x06D\0\0(\x10\x03\x01=„ì¡3\03\x017„\x06„(D rÏIþ±6’\0€\aì\x04:oœ„Ýž:oœ¼ïü€À<\rlü\0#\x02FD\x10\0DB\x01\x04s„! \x01L\0€\x05„"L\0À%.\x05µ:T\0\0\x02À\x06<\x1dXZ€\x06Ý!Õ\r.5k:.\x05k;„%˜Ø–Ø„A@\x01\f^[@\0Œ\x1a\0\x13\x02„L\x10\0\v—À€'€\x06„@Iýâo’\0\x10s\x02„ì\x04:oœ„Ýž:oœ¼ïü.\x15µ:€À\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x1c(ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x1cOoüÿ\x01\x01û\0\x02T\x10€\x02Á\x06<\x1dXZÝ!—ÀÕ\r.%k:.\x05k;„%˜–„\x01@pˆ\x1a@p\b^[€\x06€'„@IýâI’\0„\x02\x14\x03\0”\x14\x03\0•„\0\x10s\x02„ì\x04:oœ„Ýž;ÿü¼ïü–HIüëTì\x04;ÿü„Ýž:o ¼€ÀD\0\0 €áL\x10@\x0e.\x15k:.\x05k;˜\b–\0È#´&„\x01L\x10@ Õ\v„(LpÀ\x16.\x15k:.\x05k;˜\b–\0Èf\0\x03\x01¨T\0\0\x02À	\0\x03\x02‚æ\x05è\x05€\x06„%IÿÿÍ„\x04Lp\0W„(Lp€T.…k:.\x05k;‰\0D\0\0 T„\0ÿLp\04”ALp€\x05Ž\x10Lp@?.\x05µ:–\x04À
ç\x02é\x1d\x04#\0“€\x06„!Iý\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x1d«ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x1dÍoüÿ\x01\x01û\0\x02óÕ\x16D\x10\0\x10LpÀ2N‚\00´\x06„!L\0€\x06\x04\x03\0’L\0À\r\x04#\0“€\x06„!Iýó{Õ\x05D\x10\0\x10LpÀ\x1dN‚\0^[€\x06Iÿÿ%Õ\x16€\x06Iÿÿ!Nƒ\0\x12´\x06„!L\0À\x0e\0\x13\x02‚\x04#\0“€\x06Iýó`Õ\x05€\x06€'IýáÕ:o „Ýž;ÿü¼ïü–H–\0Iüè\x01’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüèÉ’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÏ­’\0ì\x04;ÿü„Ýž:oœ¼ïü€ÀP\0\x02€áIþ\x1fQ„\0\x10\x03\x02b>\r„˜ AL\x13@\a„ „F¬@¨ƒ¨A\0\x03\x02aT\x10\0\x18É\x04–BN\x14\0HT\x10\0\bÁ\x10\x04\x13\0%V\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x1f'ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x1fHoüÿ\x01\x01û\0\x02\0\bT €\x04\x10\x03\x02aÂ\aB\x10ˆ	X\x10€\b\x14\x13\0%\0\x03\x02aT\0\0\x10À\x1a\x04\x03\0%T\x10\0\x04Á\aB\0\b	X\0\0\b\x14\x03\0%\0\x03\x02aV\0\0\x10\x10\x03\x02a.\x05´üÈ\x06Ç\x06€\x06„&€GÕ\x15Ï\x16\0\x03\x02aT\x10\0ÀÉ\x04–\x02N\x04\0	.\x05³à–\x04À\x04„\x06\x10\x03\x02e€\x06D\x10\0\x18„@Iý´\x1c\0\x13\x02Z„C\0\x03\x02aL\x11\0\f’\x05”\x05\x10\x03\x02a€'€\x06Iýj«H\0\0¾B\x10\x04\vÁ3–DÉ1’\x05”\x05\x10\x03\x02a€G€\x06„&Iý³ý\0\x03\x02iN\x02\0¬\0\x03\x01­T\0\0\x04N\x02\0¦\0#\x02F>\x1d”Ü80Š\x02F\b\0\0B1ü\b80Š
Iþ\x13ó\0#\x02ÊED\0»€D\x15\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV  ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV Àoüÿ\x01\x01û\0\x02P4€f€‚„¡Iþ\x1fY\x10\x03\x02Õ9T\x10\0\x04Á\x05V\0\0\x04\x10\x03\x02a\0\x03\x02a–BN\x14\0I\0\x13\x01­T\x10€\x04Á,\0\x13\x02iÁ)\0#\x02F>\x1d”Ü80Š\x02F\x04\0\0B1ø\b80Š
Iþ\x13Â\0\x03\x02aD\x10\0€L\0Àa\0#\x02Ê\fD\0»€D\x15P4€f€‚„¡Iþ\x1f"\x10\x03\x02\x14s\0	€\x06Iý‘ãÕLD \0€L\x01@\x0e€\x06€G„)Iý³‘\0\x03\x02aDOÿ€@\0\x10\x03Õ\x05D\x1fÿÀ@\0\x04\x03\x10\x03\x02aÕ5T\x10\0@Á2\0\x13\x02iÁ\x06\x04#\0’„L"@\x06V\0\0@\x10\x03\x02a€\x06„*€GIý³oÏ^[\0S\x02i„\x01Ø\x1c\x04\x13\0’É\x19\0\x03\x02È\f€GD\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV"\x15ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV"Voüÿ\x01\x01û\0\x02»€D\x15P4€f€‡Iþ\x1eÛ\x10\x03\x02€\x06„ Iýš·Õ\x06\x02\x03\x01\x0e€'Iýkµì\x04:oœ„Ýž’\0;ÿü¼ïüIüä-’\0ì\x04;ÿü„Ýž:o¤¼ïü¦ˆD0\0\x11€ÀL!€\x06œÙL!À¦ÕG>}³´\0 \x02F\x04\x13€\x0f@ˆ\bB\x11 s\x04 \0\b\x04\x10€\x0e¨IÿÿÚ\x04\x13\0\b„bL\x11À!\0#
\x04\x03€\x0f„oB\x01 sP#\x01Ð\x04\0\0\x0e\x100\x01b\03
\x04\x03€\x0fB\x01 s\x04\0\0\x0e¨†\x04\x03€\x0f\0#
B\x01 s\x04\0\0\x0e¨G\x04s\0’ÏoF\x10 \x1c.\x05jc„AL\x01@i>ujc€\x06Iþ!Í€\aÕb>}³´\0 \x02F\x04\x13€\x0fD\0D\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV#°ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV#Ñoüÿ\x01\x01û\0\x02B\x11$s…\0\x04\x10€\x0e\x14€€\aIÿÿ”\x04\x03€\x0f\0\x13
B\0¤s\x04\0\0\x0e\x14€\0\a\0\x03\x02aT\0\0@À-\0\x13\x02F>\r”Ü8\0\x06\x02B\x10p\vÉ$B\x10t\vÉ!B\x10x\vÉ\x1eN\x05\0\x1d\0#\x02Ê\fD\0»€D\x15P4€f€‚„¡Iþ\x1e0\x10\x03\x02„\x01\x10\x03\x02i„!€\x06Iýš	\0\x03\x02aP\0\x7fÀ\x10\x03\x02a\x04\x03\0%À\x12\0#\x02F<\rlü€)B\x01\x04s„@\x04\x10\0\x0e„\0\x10 mÕ\x05Iý±HÕ\x02„\0ì\x04:o¤„Ýž:o ¼€À€á¦\b\x02\x13\x01\rL\x10@\x05„ \x12\x13\x01\rP\x10\x7fï–Iæ"è\x06€\x06€'Iÿÿ5Õ!P\0\x7fÔ–@æ7è\x17…\x01F \a`@\x04\0\f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV%6ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV%doüÿ\x01\x01û\0\x02@\x10\b\x02É\x05@\0 \x02È\aÕ\v€\x06€'IÿýËÕ\v\0\x03\x02FIþ\0ø·\0€\x06€'„@Iý…`:o „Ýž’\0;ÿü¼ïüIüÆM’\0ì\x04;ÿü„Ýž:o˜¼–\0À\x18IýÈÆ€ÀÀ\x14\0\0\x02À\x11IÿÿëÈ\x0e\x04\x03\0%T\x10\0@É	X\0\0@\x14\x03\0%€\x06Iý¼z’\0:o˜„Ýž:o¨¼€ÀIÿÿÕ’\0„AP\x13\0°L\x01@\x06„\bP#\x01\bÕ\x04„\bP#\0¸Iþ\x1e†\0\x13\x02F<\rlüD \0DB\0¨sP\x13\0°\x04\0\0\x0e…!\x14\x10\0\v<\x1dX‘\0\x03\x02FÝ!\x10“\x02\0\x13\x02F<\rlü„@B\0¨s\x04\x10\0\x0e€f\x10m>•$n„\x04F\x10\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV&¸ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV&æoüÿ\x01\x01û\0\x02X\x10‹ô€‚„¡Iþ\x1de.\x05µ5À$\x02\x03\x01\x1e„@<\x1dX†€‚€¢€f”\x04Iþ\x1dW\x10\x03\x02˜\x02\x03\x01\x1e„@<\x1dX…”\x04P\0\x7fœ€f€‚€¢Iþ\x1dH„ \x10\x13\x02\x10\x03\x02š\x10\x13\x02›\x10\x13\x02œ:o¨„Ýž;ÿü¼ïüIüÕë’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÒÓ’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüç\x7f’\0ì\x04;ÿü„Ýž:o˜¼—€Æ1<\rXrB\0h\vÈ\x03„\fÕ2>m¨8´F„\x1fD\x17_XL @\x1e 1Ý!¤t¤õ¶\x06˜Ù<\x1dl•\0\x03\0\x0ea„@¬ö\x10\0€^[€b„\x01F\x10\0«X\x10´€‚€¢Iþ\x1cò\x10\x03\0\x0fÕ\x04 1\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV(Jÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV(loüÿ\x01\x01û\0\x02Ý!¶\x06„\0Õ	>\r¨GIþ\x1c@„?<\x1fj\x0e€\x06:o˜„Ýž’\0:oª¼ïÜIÿô·„!L\0#À\aD \0^[L\x01A:H\0\x012<\r`“„aL\x01€	.\x15€¡É\x05.\x05€ N\x02\x01,„ „cPo€\x1c<?`“®r¬p„@®³P\x0f€\x1f/Ä¢œIþ&\x11€\x06Iþ(Z„\0Iÿÿ‘<\rXrB\0h\vÀ\x05F\0@\0Iþ\x11^„À…\x01€æÕ\x1aIýǦÀ\x14´ @ ¼\b’^D0\0\x10L\x11€\rŒpL\x11€
Ê\b\x02\0\x01\x0eD\x10\0\x13Iýiq„á\x01T„\0ÿ±€\x06ã\x1céä<\rXrT\x10\0\x02É	F \x05\0@\x10\b\x02Á\x1dT\0\0€È\x1a„\x04Po€\x04¨3Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV)Ãÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV)æoüÿ\x01\x01û\0\x020R<\x1dj%Á\x03€\x06Ý!„\x04Iýu|È\x03„ÁÕ
>\rk,Iþ^[»„ÁIýo\x1aÕ\x02„À<=g\x06„\x03L0@\vIþ0\x05.\x05œ4È\x02Õ\x03Iþ\x16ÄÁIþ\x12R<\x0f`”À\x04„\0Iþ\x14\.\x05€¡À\x04„\x02Iþ\x14V<\rm€B\0`\vÀ\x04IþÑ\x7f„Á„\0<-Y)€ Ý".\x15€ V\0\0\f…!@d€^[Á
D\0\x01@Iúø)<-Y)€	„ Ý"<\rm€T\0\0?À\x0f.\x05¸p„AL\x01\0\v.\x15€ >\r‚@É\x03€"Õ\x06„ Õ\x04„ >\r‚@\x10\x10\0\x15<\x1dY5„\0Ý!/Ä¢Ÿ.„¢žV\0\0\fAÄp\0„!@`€^[UÎ\0ÿÕ\x11IþË<À\v´ \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV+<ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV+goüÿ\x01\x01û\0\x02T\x10€\x02Á\a<-S¾D\x10\0\x13Ý"„á\x01T„\0ÿ€\bã\x1céî„\x01Lp@\x11„@<\r`‘€§F\x10\0¥X\x10‹œ€b€‚Iþ^[Ö>\x05‚@Õ\x10„!L`À\x11„@<\r`’€¦F\x10\0 X\x10ˆð€b€‚Iþ^[ÄD\0\0\x1fÕ*.\x15€ É\a.\x05€¡È\x04<\x0f`“Õ!IþÈšÕ\x1a>m‚@¡óÏ\x19 t¨3Á\x05€\x01Iþ\x13Á©ô.\x05‚UÀ\x0f<\x1dY5„\x01Ý!„\0>\x05‚UÕ\a.\x05€¡À\x04IÿÝì’\0„\0ì$:oª„Ýž;ÿü¼ïü¦@É\x05.\x15‚L„\aÕ\x0f„AL\x11@
¦\x01Iÿþ©È
.\x15‚L„\bÕ\x04„\bD\x10\0ÿIý+±ì\x04;ÿü„Ýž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV,Àÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV-\roüÿ\x01\x01û\0\x02’\0:o¤¼ïü D\0 \0\x01L\x10\0\x05”DL€ÀS<-YN€(€	Ý"D\x02\0\0L€@D\0\x04€,IþÊ£\x02`\0^[€àIþžP™¶T\x10\0\x03—±€@<\x0fI/Á\x05Iþ¦’\0€@œ” ü@\x01\x04	˜\x06’a@\0\x187¨¼@\x11˜wB0\x18s˜Ûž\x1câ\x02è\x03˜6˜ØR!\x7fü˜S’"–I’ÁâÁè\x03šN–I@`„^[<\x1dw䟱—±\x12`€
<\rwä\0\x13€3\x10\x10\0\x13\x12c€\x1a<-YO€(€	Ý"Õ\x06<\x1dYMD\0\0„Ý!ì\x04:o¤„Ýž:oª¼ïì\x04 \0’\0ñƒÊ\b€\x02Iþ¸“€@.eµ\x04Õ	\0\0\x02F„ Iþ. .eµ\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV.cÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV.¯oüÿ\x01\x01û\0\x02€@’Aö‚ò.E›Õ\x04$\0HÄ\bPA\0\x10<Rµ\b™$˜¥Õ
PA\x7f÷\ò\0)é\x04D \x01@Õ\x02”“€\x02>¯RhIþÂPe\x02‹„àƒ€D\0\x02¬B\x13€$\0%\0\0>\x0fRlù˜HÂ,L\x14\0+\0\x15\x02nÁ'\x04\x15\0\x01D \0\x10L\x11\0"¦0Iþ\x19¯.\x15ƒà<-`ó”K˜Q¦M’!Iþ\x03€ €\x1cIþaÀ\x0f¦0Iþ\x19.\x15ƒà<-`ó”K˜Q¦M’!Iþœñƒ€„	P¥\x02¬Pc\x02¬Lp\x7fÅIþ‘€ €\x1cIþœíñ\x01BP€	@@\x04	™%•ä’äð\x03€'Iþ^[»P\x04\x02‡Iþ\x19ßñ\x01ò\x02›ù›º„@€‚€h„¡\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV0\bÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV0)oüÿ\x01\x01û\0\x02F\x10\0¡X\x10@€\x06Iþ\x1av\x10\x04\x02‡.\x15´àš1IþU\x14\x04\0
\04\x02F€€„!„\x06D s€Iþ¨ˆì\x14:oª„Ýž;ÿü¼ïüIüÂ\x03’\0ì\x04;ÿü„Ýž;ÿü¼ïü<\r[\x18æ\x03é\x03„\0Õ\x14.\x05kGT\0\0\x03À\rIÿÿèÈ
<\rXrD\x11€\0@\0\x04\x02\\0\0\x01Õ\x02„\0–\0ì\x04;ÿü„Ýž:oª¼ïü.%k@@ƒÊ\x03„\x01Õ?>}š„Å@“\b\b\0\x03€\x10Ÿ±À3\0#€\x0e„\x01L \0\aÂ&„"L À+Õ\x11´\a y@\x0e\0\x03@\0\x04\x02È"€	Bc\0$>\rš@™°\0\x03\0\x0fÕ\x1cB#$$>=š@ŒH€
˜SIþ\x1aÆ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV1‚ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV1¤oüÿ\x01\x01û\0\x02À\x0f.\x05€¡„!L\0À\x04Iÿñò€	Bc\0$>=š@™³ÕæŽôÎÉ€\x06ì\x04:oª„Ýž:o˜¼ Â€ ´À\0 €\x10 \x01æcèT Kæ$èQæBèOF,Ñ\fX!\f\x18@\x10\b\x02ÁHT\0\0áÈE€\x06IýÅ\x1a€ À\x10´\0D \0\x10L\x01\0\fŒPL\x01\0	\x02\0\r„'L\0€7„\vÕ5€\x06>\x1d³¼Iþ\x1a~È+.\x05›ÌÀ+.\x05k:.\x15k;˜\x01–\0À\x11.\x05´öÀ!IýÿPÀ\x03„	Õ\x1dIýüŸ„BL\x01\0\x05.\x05k;È\x14<\x1dfçÉ\x04<\rfèÈ\x0e.\x15k(.\x05k)â è\bIÿÿ1È\x05Õ\x05D\0\0\x12Õ\x02„\f:o˜„Ýž:o ¼\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV2ýÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV3#oüÿ\x01\x01û\0\x02Iÿÿ™€À„\vL`\0\x03Î2„ €A<=fÛ8!„\bœID0\0øL\x11ÿù„\vL`@\x12´\bIýÄ·È\x04D`\0\x1fÕ\x1d\0 \x02H„ \x10 \x02_IýT„’\0Õ\x18<-Y\rD\x10\0P„\x01Ý"<-X.„!€\bÝ"€ÀÀ\v<-Y\r„\0D\x10\0PÝ"€\x06:o „Ýž„!<\x1aÍÚ„ÀÕø:o ¼\0IÿÿU€ÀÈ\x14<-Y\rD\x10\0P„\x01Ý"<-X.„"€\bÝ"€ÀÀ\a<-Y\r„\0D\x10\0PÝ"€\x06:o „Ýž;ÿü¼ïüIüÕ1’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüä\x05’\0ì\x04;ÿü„Ýž:oª¼ïì€À€\x01Iþ\x1a'\0P\x0f€\f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV4†ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV4©oüÿ\x01\x01û\0\x02Iúï\x1e\x02\x03\x01\x1dD\x10\0\x17L\0À\x05„\0\x12\x03\x01\x1dð\x03Iúï(.\x05jiN\x02\x01\x05\0\x03\x02bN\x03\x01\x01.\x05´ùÈ\x05.\x05jfN\x02\0ú\x02\x03\x01\rD \0\x17L\x01\0ô„\x04IýqôN\x03\0ï<\x1dXrF \x04\0@\x10ˆ\x02N\x13\0ç\x04#\0’Ê\x04Iþ¶_Õ\x05\0\x03\x02FIþ+ð ´&\0\x03\x02^„A\x10\x03\x02_L\x11@\a\x02\x03\x01\x19@\0\b\x02Õ\x03\0\x03\x02kÀ(\0\x03\x02jÀ\x03„ìÕ%.\x05³ØT\0\0 È\x04Dp\0\x1aÕ\x1d\0s\x01¨D\0\0(Ts€(Lp@\x14@\x04„	â\bè\x11@\x04\0\x01\ð'\x11é\x03•ÕÕ
.uk:.\x05k;™ø—øÇ\x03Dp\0!€\x06Iý÷ù„!L\0€\x0f\0\x03\x02iÈ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV64ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV6coüÿ\x01\x01û\0\x02.\x05´÷È
\x04#\0’Ê\a.\x05›Íæ\x02é\x03Dp\0!“!AÄ$\x01€\x1cIþ›]>Rh¶\x1föP¤\x02‹\0\x04\0\0À2\0\x04\x02nÀ/\x04\x04\0\x01D\x10\0\x10L\0€*\0\x05\0\0Iþ\x17Q.\x15ƒà<-`ó”K˜Q¦M’!Iþš¥€ ´\x1fIþ›\x03À\x16\0\x05\0\0Iþ\x17>€À.\x05ƒà<\x1d`ó”\x03˜\b¦E´\x1f’!Iþš€ €\x06IþšîÈMP„\x02¬>\x0fjtP¥\x02¬L€\x7fÆö\x01ÏE„\x01\x10\x03\x02jD\0\x02\0Iþ\fº\x04\x13\0’„AL\x11@
D\0\04€&IýSþ.¥µ\x03Õ\x03.¥µ\x04€\x06IýH
€\x06D\x10\0\x13Iý„ñ@Ž(\x01„@€f€‚„¡F\x10\0¡X\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV7Èÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV7îoüÿ\x01\x01û\0\x02@€\bIþ\x18\b\x10\x03\x02‡.\x05´à<\x12Ú[˜\b@\x04\0\x01Iþšã\x14\x03\0
\03\x02F€€„!„\x06D s€Iþ¦\x16Õ\x03Dp\0!€\aì\x14:oª„Ýž;ÿü¼ïü–I–‘–Ù—!IüÔ½’\0ì\x04;ÿü„Ýž:oœ¼ïô€ÀP\x0f€\x04€áIúíí\x02\x03\x01\x1dD\x10\0\x17L\0À\x05„\0\x12\x03\x01\x1dð\x01Iúí÷\0\x03\x02jN\x03\0‰\x02\x03\x01\rD \0+L\x01\0ƒD\x10\x7f\fL\0€\x7f\0#\x02^\x043\0’L!€\a\x02\x03\x01\x19T\0\0\x04Às\0\x03\x01NÀ
Ë	\0\x13\x02_L\x11\0\x06D\0\0#H\0\0j´F„!L ÀdÈ\a„\x1f\x12\x03\0£„\x04\x12\x03\0¢\0\x03\x01NÈ\x06<-XW„$€\x06Ý"\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV9Gÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV9hoüÿ\x01\x01û\0\x02\x02\x03\x01^[„JL\x01@\r\x02\x03\x01\x1cD\x10"÷L\0À\a\0\x03\x02FIýú ÈD€'€\x06IÿþY€àÀ\x17\x02#\0¡€\x06„$Iýìë\0#\x02^€\x06\x10#\x02_D\x10\0\x17Iý„F\0\x13\x01N„\0œI\x10\x13\x01NÕ*\0\x13\x02^\0\x03\x01N\x10\x13\x02_æ\x05è\x10\x02\x13\0¡\x023\0¤\x02C\0¦€A€\x06Iÿÿi€\x06Iýæ€\aÕ\x13\x10s\x01N<-XW„$€\x06Ý"€\x06€'D \0 IýçaD\0\0 Õ\x03D\0\0$ì\f:oœ„Ýž:o ¼\0P\x02j€À–I–\x11–Ù—!Å\b´FDP\0\x10Ò\x04D\0\02ÕU #\x01¨N%\0\x05D\0\0\x1aÕN´F„¡ÚJ\x02#\x01\r„§ÒF\x02#\x01\x19T!\0\x04ÂA\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV:Àÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV:æoüÿ\x01\x01û\0\x02\0#\x01NÊ>D ÿþ\x02S\x01\x13@\0\b\x02@pˆ\x02\x12s\0£\x12\x03\0¢Å	â§è\aâ è\x04D\0\0\x12Õ+€à\0\x13\x02FžI”L@\x10\x04\a@\x03„^[„ \x10\x13\x01N€@€'€\x06Iÿÿ\x02\0À\x04D\0\0 Õ\x15<-XW„$€\x06Ý"€\x06€G„$IýìS\0S\x02H€\x06\x10S\x02_IýæH€\bÕ\x02„\f:o „Ýž;ÿü¼ïü–\x01Iüà¼ì\x04;ÿü„Ýž:o˜¼.%k:.\x15k;€À˜\x11–\0„!L\0À&„\0Iýùí€ À \0\0\0Bæ\aè\x1c\0\0€MÈ\x19\0\0€H\03\x02FL0\0\x14<\x1dlüD \0D€B@\bs !„‚L\x02@	B\x11ˆs IL\x10@\x04„\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV<Aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV<`oüÿ\x01\x01û\0\x02Õ\x04€\x06IýÆ-:o˜„Ýž:o¤¼ï¼€à—ˆ ~É\x12.\x05³Ø–DÁ\x04„#L`€\x1fT\0\0\x02À\x04„\x05L`\0\x19„!L`À@Õ\x14.\x05³ÜT\0\x04€À\x04„\x03L`\0\r.\x05³ÝT\0\x05\x01À\x04„%L`€\x05„\x01L`@,.\x15k;.Ek:„\x03™!— D\x10\0\x10D \x10•€fIþ¤y.\x05µ:T\0\0\x02È\r.\x15k:.\x05k;˜\b–\0À-æÂé+D`\0$Õ\x0e<\x1dXZ€\aÝ!T€\0ÿã\x06è D`\0$Õ\x04D`\0 …\x01D\x10\0.€F€\aIý‚ÜD\x10\0$L`À\a\x10ƒ‚„€\a€(Õ\x04\0\x13‚„€\aIýï4„\0ìD:o¤„Ýž„c\x10c‚„\0\x03‚F\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV=µÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV=óoüÿ\x01\x01û\0\x02\x12?€\x0eD0\0.\x12?€\x05€?\0s‚_\x10\x7f€\bIýKÕé;ÿü¼ïü\00\x01N€@¦HÃ\b\0\0\x02_\x10\x01\x02^D\0\0*Õ
\x040\0’V1€\x01\x100\x02_Iÿÿg’\0ì\x04;ÿü„Ýž:oª¼ïü\0\x02FP`\x01d>\r'@8\0$\0€á„!L\0À\b@””\b>\r&@‰ Õ\x03P“\x7fÌœ;\x02„€	Iþ\x16ð@œ9Iþ\x16Úƒ€\x02\x03\0a§øÀ\bB\x13 $â\x01è\x04D\0\0\x1eÕ<\0\x03\0â„ ‰JIþ(à€*Iþ˜iÈ\x04D\0\0(Õ/\x02#\x7fýâ\è\x04\x13Ã\x7fþÕ\v\x02\x04€	˜\0à@è\x04\x12\x03\x7fþÕ\x03\x12#\x7fþ¦¶¯÷âGè	@\x03ˆ÷B! $B!\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV?Nÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV?roüÿ\x01\x01û\0\x02\0$¬²Õ\x04Bs $­ò\x04\x13\09Á\a€
„!Iþ—æ\x14\x03\x7fü\0\x03\0âIýÄ<„\0ì\x04:oª„Ýž’\0:oª¼ï¼P`\x01\\x02\0\x01\rƒD\x10\x7f\x15L\0À\x0f\x04#\0;Ê\v\0\x13\x01\x03\0\x03\x01\x02L\x10\0\x06D\0\0#H\0\0é\x043\x7f©„\x04L0\0\x06D\0\0$H\0\0à\0ƒ\0ê>\r'@8\0 \0„!L\0À\b@„\x14\b>-&@‰\x02Õ\x03Pƒ\x7fÔP\x03\0\x1d\x02t\0	Iþ\x14£P\x0e\0\x03Iþ\x16c@ \0\0P\x0e\0\x01Iþ\x16K \0\x03\0ê„ \x01Î\0\0Iþ([€*Iþ—ä\x02\x13\0eÁ	B.\x1c$â"è\x05D\0\0\x1eH\0\0©\x043\0;„A\\x10\0\x01L1@\fÈ
<\r[\x1aT\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV@Ëÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV@íoüÿ\x01\x01û\0\x02\0\x04È\x05D\0\0(H\0\0˜\03\x01\x02\x04\x03\0;\x11Ã\0\x0f\x103\x01\x03À\aÁ\x18<\r[\x1aT\0\0\x04À\x13 6ž\x02æ\x02è	\0\x13\0\x11\x04\x04\0\x02B\x13„$˜IÕ\x04\x04\x04\0\x02”{Iþ—FÕ\x05€
„!Iþ—K\x14\x03\x7fþ\0\x03\0\x13À\x1c¤5€'@\0\x1cW–\0IÿÕŸ\x10\x03\0\x0eÈ\x05.\x05j~\x10\x03\0\x0e¤1â	è\x02Õ\x19\x02\x14\0	˜Ià\x01è\x03¬rÕ\x14¬2Õ\x12.\x05j~B\x10\x1c$\x10\x03\0\x0e¬u.\x05j\x7f\x12“\0\x01¬0„\x01\x10\x03\0\x14\x12“\0\x02\03\0\x0e\0#\0\x0fâbè\b@\x01\fWBqœ$B#€$Õ\a@\x01\fwB!\x1c$B!\0$\0\x13\0\x0e¬¶\x10\x1f€,€ÿ¤°\x12/€\x13\x043\0;Ë	\x04\x03\x7fþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVBAÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVBcoüÿ\x01\x01û\0\x02„!Iþ–ò’\x01ðŠÕ\x04“A\x14¯€
\0\x13\0êó
>\r”¸80\x06
D0\x7f\x16\0\x03\0ê\x12?€\x0e€?\0c\x01\x03\x10o€\bIýx’\0„\0ìD:oª„Ýž:o ¼ïÀ\0€\x02F€À>\r'@8\0 \0„!L\0À\b@„\x14\b>-&@‰\x02Õ\x03Pƒ\x010P\x03\x01y\x02t\0	Iþ\x13½\x02\x03\0³€'@\0\x1cW–\0IÿÕ\x13\x04\x13\0]\x10\x03\x01jž
æ\x02è	\0\x13\x01m\x04\x04\0\x02B\x13„$˜IÕ\x04\x04\x04\0\x02”{Iþ–•\x14\x03\0U\0#\x01j\x04\x03\0U\x10/€,„!\x02#\0®€ÿ\x12/€\x13Iþ–‹@ \x04	\0\x03\x02FòŠD \x7f\x15\x12/€\x0e€?\0c\x02_\x10o€\bIý^[ì@:o „\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVF:ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVFŽoüÿ\x01\x01û\0\x02Ýž’\0;ÿü¼ïü\0@\x01­–ITB\0\x02–‘–ÙÌ\x04D\0\0\x1aÕk´€„¡Ô\x03„¤Üc\x02@\x01\r„§Ô_\x02@\x01\x19TB\0\x04ÄZ\x02@\x01\x13DPÿþ@\x10”\x02Ä\x06âè\x04D\0\0\x12ÕQD@ÿþ@!\x10\x02@1\x02É\x0fÊ\x0eË\r„A\x10\x10\x01o\x10 \x01p\x12\x10\0³\x12\x10\0®\x12\x10\0¯Õ!\0@\x01oÄ\r\x02@\0³L@À
\x02@\0®LA@\x06\x02@\0¯LA€\x10„\x12\x10\0³\x12 \0®\x120\0°\x10@\x01p\x120\0¯\x10@\x01oÕ\x04„ \x10\x10\x01p´ T\x10€\x04Á\x17\x04P\0LÅ\x14\0\x10\x01pÁ\x11\x02 \0³\x02\x10\0¡âAé\v\0\x10\x02H\x10\x10\x02_Iÿÿ3’\0Õ\x03„\fÕ\x02„\0ì\x04;ÿü„\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVGóÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVH1oüÿ\x01\x01û\0\x02Ýž;ÿü¼ïüÀ\x11\x020\0³\x02 \0¡„€\x10@\x01yâbé\b\0 \x02H\x10 \x02_Iÿÿ\x17’\0ì\x04;ÿü„Ýž:oœ¼ï¬\00\x02F>-”Ü81\x0e\x02B!ô\v€ÀÂ\x06\x14\x10\0	Iý†\x01ÕQF\x01\0\0@1€\x02Ã)\0\x03\x02d\x14\x13\0	D\x10\03L\0€\x13\x04#\0’ž	\x10\x03\x02dÊ\fD\0\x1f¤F\x10\0£X\x10ƒ@€f€‚„¡Iþ\x13^\0#\x02F>\x1d”Ü80Š\x02F\x02\0\0B1ô\b80Š
Iþ\aÞÕ$P\x0f€\x04P#\x02@\x123\x01\r¨„¶ <MWë\0\x13\x02H€C\x10\x10\0\v€ D\0\0\x12€ãÝ$F\0 \x1c.\x15jhÁ\v\0\x13\x02iÉ\x06€\x06„!Iý¯\x03Õ\x03>ujhìT:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVI†ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVI²oüÿ\x01\x01û\0\x02œ„Ýž;ÿü¼ïüIüÞ'’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüܽ’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÝ¡’\0ì\x04;ÿü„Ýž:o¨¼P`\00 \x04„-§ñL\0À\x12<\r`íT\0\0\bÀS€\aIý¾\x01ÀO\x04\0\0’ÈL„!®r®3ÕI„*L\0ÀF<\r`íT\0\0\x04À@\0\x03\0\x10È=.\x05$u„#L\0€9D\0DB“¤$<\rlüˆ	\x04\0\0\x0e\0\0\x01PÈ^[€\x01€'Iþ·ûÀ\x16.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01–\0€'Iþ·îÈ\x1a<\rlü‰ \x04\x04€\x0e\0\0\x01FÀ\x12<=RË„.P\x03\x7fЀGÝ#È
¦7¯ñ\x14\x03\x7fþ„\x0e\x14\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVK\vÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVK<oüÿ\x01\x01û\0\x02\x7fø„\x01Õ\x02„\0:o¨„Ýž:o¨¼\0<\re$—ˆ„?L\0À
€\x06„ Iþ%½<\x0fe$H\0\0y´\x02–\x04Àu ”D\0\0\x11L \0q\x04\x04\0\x0e\0\x10\x01PÉk.uƒðLs@\x04!Õ\x03@œ\x06„\0Iþ°\v@IÿÓX>\x1dƒ°Ls@	\00€0 ”[˜Q¦JÕ\a\00€0 ”[˜Q¦L@\x05\0\x01”\x04’\x04’\x01â èE<\r`ð„*L\0ÀA\x04\x04\0\x0e„%\0 \x01JB\x01\x04s\0\0\x01NÈ6„\x03€&Iþ·yÀ\x0e.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01–\0€&Iþ·lÈ^[<\rlüD\x10\0DB\x03\x04s\x04\0\0\x0e\0\0\x01gÈ\x10N’\0\x18.\x14¢œ.\x04¢Ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVL£ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVLâoüÿ\x01\x01û\0\x02˜IœK˜A˜\x01–\0€'Iþ·RÈ
„?<\x1fe$<=RÌ„\0€ €@Ý#:o¨„Ýž’\0:oª¼ïÜ<\rY%T\0\x10\0N\x02\0§=Ím\x01.\x14¢ŸP\x0e\06ñ‡ðƒP\x1e\0\P.\0dP>\0:PN\0\b„\0ñò‚ó„ô…ð†H\0\0Š´<T\x10€\x04Álñ\x05„B´!L\x11@\x04„!Õ\aó\x05 YV\x10€\x02\\x10€\x01É^¹\x01T €\x01N£\0Zô\x03€ª¤ ô\x01¬ ñ\x03\x02 ÿÿñ\x02¬ˆó\x03\01ÿý®Ê€jô\x04¤ ô\x01¬"ñ\x04\x02\x10ÿÿ¬a„'\x02.\0‰\x12"\x7fÿ€Š´Ü€JBcP\b¶Ü<mS´€\x1cÝ&´ÜBcP	¶Ü¿\x04ó\x03ô\x04¥˜\x02\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVNBÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVNjoüÿ\x01\x01û\0\x02\x7fÿ€G€&IÿÑÎB€l\v˜¶ €(€\aIþ”`€`ð\x02ñ\x01¥€¥È±•²@\x04˜\0€(˜¿¶\x7fIþ”R’\0´\x7f—Á—™€*€\x1cLc€\bò\x02„a®Ó<-S¹Ý"ð\x06ñ\x03œ\x01ò\x01ó\x02ô\x04ð†ð\x05P\x10dP!\x01dP1dPB\x01dP\0\x01dñƒòó‚ô„ð…QÎ\x01dñ\x06ò\aâ"Nóÿuì$:oª„Ýž:oª¼ï¼–I–‘–Ø— ð…ñŽò‚óŒô†>\¢œæ\x02è\x11§hÍ\x02„¡ð\x05—hõƒÀ\x03„ÀÕ\x03.d¢Ÿñ\x03™±—°öÕ\f¦è§kõƒË\x02„aô\x03„\x02˜ã–ØóðŒô\x03Dþœ>?^[\x18Rr\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVO¿ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVOóoüÿ\x01\x01û\0\x02B‚ $„ —øP\x01€\x10ñ‡ó\x14€
÷‰ðˆñ„H\0\x01ñ\x05„aL\x11€\bÁW„‚L\x12AH\0\0¢ð\x04N\x03\x01ˆ>\x1d•|´AæBNó\x01e\0\0€BN\x02\x01aó\x02N2\x01^\00€H<mlüD\0\0DBa€s¡É q„aL\x11À\x14\x02\x03\0\x14Iþ1t™\0D0\x02q@‚\fw µ„„›z„à@r\0^[@\x02 \x01™Ç.…•¾ñ\x06€H€\aIþ“¡<]eh<MeiF\x10\0–X\x10Ž\bTR€\x0fTB\0\x0f8@\08P”\0.e•É™l—\x04˜®NB\x01Ež\x01œ’H\0\x01Aô\x04ð\x03â€è%.\x04¢œâ€Nò\x011<-lÿó\a™“¦0N\x02\x01\r ±T\x01\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVQHÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVQqoüÿ\x01\x01û\0\x02N\x02\x01\b\x023\0£N2\x01\x04ô\x02NB\x01\x01\x04\x03\0Oñ\x06€C\x03Iþ“c\x023\0¦œÙH\0\0‡<-m\x01ð
™\x10´DT\x01\0\x04N\x02\0ì "N\x02\0é„"L\0À\x04„\x01Õ\x06 £V\x01\0\x02\\0\0\x01N\x03\0Ýó\x02N2\0Ú\x022\0^[ $@Œ\0ñ\x06€HIþ“:„DH\0\0òð\x04ñ\x03â\x01è?ô\x01´dN2\0ÆT!€\x04N"\0 "N\x02\0¿B\x01Ð\vN\x03\0»\x02‚\0^[N‚\0·ó\x02N2\0´\0\x02\0Y–\x04À\x04Pb\0LÕ\bô\x01\0\x02\0g–\x04À\x13Pb\0ZÆ\x10ð\b¤ñ´@¤2€#@Œ\0IÿÐk¥5ñ\x06œá”Ú˜\x03Õ\x05ô\bñ\x06´\x04‰\b€HIþ’ø„BH\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVRíÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVS"oüÿ\x01\x01û\0\x02\0°<mlÿñ	D\0\x02¬B`€s¦0N\x02\0‚ ±T\x01\0\x04À}\x023\0£Ãzô\x02Äx\x04\x03\0Oñ\x06€C\x03Iþ’Û\x023\0¦˜›H\0\0‘ò‹@€(ò\fð\x0eÕ\aô\f\x04¯€\x0eô‹ñ\x02ƒÈ@o\x04·Í9ó\x05„‚L2@-ã@è\x05@P(\x01æ£érâ
è$@U\0\x01æ£è Õk@1„·\x02@4ø—@r\x06@b\x14\x06@\x02˜\x1a@\x02\x18^[@2œ\x1a@2\x1c^[šØ@A„wÃVð\v@4(\0ã\0éçð\x0fQÎ\0\x02Õ\x02‡€@þ\b\x06è\x06…\0@ž\0\0ðÕï\ÿ\x01‘é"@Ox\0@R\x04—Ì\x1d˜\0‰J$AÀ(\x01Õ\x10âãé\x04@C\x04wÃ1jŸ²ô\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVT†ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVTÐoüÿ\x01\x01û\0\x02@2¨\0â¤éõ"QÎ\0\x02ã"è\x06@t€\0€Ü„ Õòñ\x04ó	œ	–\0œ™ô
ñ\aó\bð„ð\x01PB\x01dP\0\x01dP\x10‚¬–P1dôŠðñ‡ò‰óˆô\x04ð\râ€Nóþo„\0Õ\x02„\x01ìD:oª„Ýž\x05ï€\x02ã\x1eNóÿnHÿÿr:oª¼ïäT €ÿ\0–‘–Ù—!—iN¢\0\x06„\x01L @\x17Õ\vP\x10\04P\06P`\03ñ‚Pp\x01\x12Õ\x17P\x04\0VP”\0NPd\0Xð‚Pt\0LÕ\rP\x14\0d„\aP”\0\Pd\0fñ‚L \0;Pt\0Z˜š˜,A\x01\x12\x04€\0¬¸D\x10\0\x14\x02$€\0L €\x05„
L @\x05œ‘\x12$€\0\x02$\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVV%ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVVKoüÿ\x01\x01û\0\x02€\0–\x11â€è\x02€D\x12$€\0N£\0
Œ4L@À\x19D \0\x18Ú\x15ž	Õ\v„\x01L @\f”JL@À\x0eD \02Ú
ž
\x12\x04€\0Õ\x06çBé\x04„\aL @¹„\0Iþ¬ªð…\x024€\0.%µ\x06”Zñ„àCé\x03ž™–®°N£\0\vò\x05„ÁB!l\v¶_\x14¯€\x01ƒŠÕ5„\x01L \0\v„'L €\b„@¶_€Àòƒ‚Õ)\x04d\0\x04\x02\x14\0^[\x02\x04\0\x1c€FIÿÏ\x10ðB\0l\v„'<oI\x12¶\x1fL €\x16\x02$\0^[\x024€\0@A\f·Å\x04@AˆwË\v\x04\x04\0\x04´?˜’Iþ‘‘AÀ\0\x13„ÀÕ\x03„Á‡€.Uk:.5k;™k<2’.—h˜ÛóƒÅ\x0f.\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVW²ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVWÜoüÿ\x01\x01û\0\x02”™IýñúÀ
\0p\0Bò\x03Vs€\x06„¢@"œ\x1aòƒÆ!‡€´ÿÕ\x14IÿýLÈ\f\x02$€\0„\x02˜’–‘€<€`€‡IÿýAÀ\x10ð\x03@\x1e\0\0AÀ€\x13\x02T€\0€<™m„b€‡„\x01–©à¼èäN£\0
ð\x05ñ\x04€\Iÿξ\x14\x04\0\x04Õ=„!L €\x05„GL¡@8ñ\x04ð\x01€\Iÿΰ€@žÄð\x01ñ\x04@1€\x06B!„sR\0\x7fü˜‚’Bð\x02–‘¬€\x02\x04€\0â\x02è\x1f@\x11\0wB \x04uñ\x02¬ˆÕ\x18>\x1d³´\x02\0€‚ò\x02¬\x10\0 R®°<\rY%T\0\0€È
\x02$€\0\0\0Rà\x02é\x03ž\x11–\0®0ì\x1c:oª„Ýž’\0;ÿü¼ïü–\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVY2ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVYXoüÿ\x01\x01û\0\x02IüÁŒì\x04;ÿü„Ýž:o¤¼ïü.4¢ž—€!—Ð.„¢ŸâÃè\x03…\0Õ\x04‰\x03@ƒ \a€\x06T„\0ÿIÿÿâÀ#N‚\0L€\x06Iþ½l€ÀÀF´ T\x10€\x02ÁB\x02 \0Š\0\x10\x016œ‘\x12 \0ŠÉ\x06 „„"IþÂ:Õ\x05 „„"IþÜ;<\x1dXh\0\x03\x017Ý!Õ+Nƒ\0\x1a€\x06Iý¹\fÀ%´@Ta\0\x04Æ\a<=Xc€G€)Ý#Õ\x1c@!<\b’_Â\x17€\aIþ\x16¶@\x03\0\x06Õ\x12.\x05®õÈ\x0e€\x06Iþ½/À
´ T\x10€\x02Á\x06<-Xd€'Ý"Õ\x02„\0ì\x04:o¤„Ýž:o¨¼€à„\0Iþ«b€€D‡yÀ„\x06D\x11\0\0D u™„b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVZÏÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVZñoüÿ\x01\x01û\0\x02>mƒ°Ý(\0£\04N£\0º\x04“\0\x04L“€\x1c€‰„\x06D\x12\0\0D u—–ùÝ(Ï
 4„!L\0€\a\0\x03\0>À\x03\x10s\0><\x1dfÕ„Á˜N<\x1ffÕH\0\0Í¡5„\x06D u–D\x12\0\0@4€\x13Ý( µ„
L \0\x06P\x01\x7fñæ\x03è4.5ƒæË\b<MY	<\x1d`ðD\0p)Ý$€&\0\0€>À\x10 ŒÂ\a<\x1dfÖœI<\x1ffÖÕ\x03„\x01¨\f„@„!>%ƒîÕ\x10  	¨Œ–\x04„L¨À\b.eçÁÎ\x05Iý»¦€&Õ\x03„ €Á„_</e$ÁSH\0\0‰\0\x03\06À
 tæ*è\a<MY	€jD\0p+Ý$\0\x03\0>À\x16 tÁ\x0e<MY	 µ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\Fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\|oüÿ\x01\x01û\0\x02D\0p,„`Ý$<\x1dfÖœI<\x1ffÖÕ\x03„\x01¨4„ >\x15ƒîÕX.\x05›ÓÈ\b\0\x03\08È\x05\0\x13\0;æ"é\x15„\f<\x0f`ð<\x1dRÍF\0\x7fÿX\0\x0fÿÝ!.\x05ƒëæ\x02éKIýf˜„À@c\0\x06ÕF<}RÑ„,¨tIþª¨Ý'È\x03\0\x03\05<\x1dRÍ„ÀÝ!<\x1dRÊT\x04€ÿÝ!Õ2\0\x13\08.\x05›Ó„@@!\x04\x06˜Ê\x1f\0\x13\0;\0\x03\0<L\x10@\x1aF\0\x7fÿ©ö€b€‚F\x10\0X\x10‹ÔX\0\x0fÿ„¡Iþ\fï–ù„\x06D\x12\0\0D u˜„Ý(„ÁÕ\v–ù„\x06D\x12\0\0D u˜„€Iþœö„À€\x06:o¨„Ýž’\0;ÿü¼ïüIü×G\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV]Ùÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV]úoüÿ\x01\x01û\0\x02’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü´’\0ì\x04;ÿü„Ýž:oª¼ïü .\x05ƒáIý·Â€ÀÀ[\x04\0\0’È8„!L€\x06…\b@ \bÕ\x04D€\0`H„áGÀ\0£YÎ\x0fäÕ"Iý·«€ÀÀ\x1cIÿÿÕÀ\x19\x04\x03\0’È\x16€'„\x03Iþ±ÁÀ\x06€\x06Ý<\ð\x02€é\a„bL‘À\x05D€\0`H€\a€(€JIÿ׸ù—ø.4¢œ€\aâãéÛÕ!„!L€\x12.\x15ƒá„\x03Iþ± À\v€\x06Iÿÿž\ð\x02€è\x05„ì@ƒ„\bÕ\x04Dp\0`\a€\x06Iÿÿ›À\a.\x05ƒá€'€HIÿאì\x04:oª„Ýž:oœ¼ïü\0\x10\09„A\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV_Qÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV_{oüÿ\x01\x01û\0\x02P`\04´àL\x11@\x11T\x13€\bÁ\rIýdà€ Èk¦5¦¶œ\x01–\0®5â@è\x02®u„\x03Lp\0\x14„'Lp€\x11„KLq\0\x0e„\x02Lp\0\v„&Lp€\b„JLq\0\x05„\x0eLp@\r¦5È\x02Õ\x19„!L\0À\x03Õ0„BL\x01@IÕ\x1e„\rLp\0\x05„/LpÀ\x11¦5È\x02Õ\x15„AL\x01@\x03Õ\x1f„"L\0À8P\x03\x7fÌIýj Õ^[ž<æ\x02é\x04„LLq@\r¦5È\x06P\x03\x7fÌIýn¿Õ\x0e„!L\0À#Õ\x06Žèæâè\b¦5È\x1cP\x03\x7fÌIýd‡È\x13.%´¾\x10#\x7fý„*.%´¾<=RËP\x03\x7fÌÝ#<\x1dRÎP\x03\x7fÌÝ!„\0ì\x04:oœ„Ýž<MY	\x04\x13\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV`Ñÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV`öoüÿ\x01\x01û\0\x02\x7f󦵦öD\0p4Ý$Õá;ÿü¼ïüIü´Á’\0ì\x04;ÿü„Ýž:oœ¼ïü„! „\x10\x10\0E„,€ÀL €çæMè\bæGé\x11„jL!ÁxH\0\0ЄŽL"\0÷âDNó\x01pæRNò\x01mH\0\0ó E„
L\x10@0\0\x03\01N\x02\0–D\x10\0\x18B\x11\x04$>=‚À\0\x03\0>˜K¥ÈÀ\x06Ê\x05\x02\x01€\f™øü„\x03B!\0$€ƒœ‘@!\0\f˜”¦\x16>=š¤À\b\x04\x01€*˜8\x14\x01€*H\0\x01n\x04\x01€+˜8\x14\x01€+H\0\x01gP\0ÿñæ\x03èg„\x0fL\x10@
.5ƒà<\x1d`ó”^[˜\b¦\x06Õ\x15œÁ>\rƒ°L\x11À	\00\00 G”^[˜\b¦\aÕ	\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVbOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVbwoüÿ\x01\x01û\0\x02\0\x10\00 \a”K˜A¦\x0e¦O˜\b<=fÒ>M‚À˜Ã<?fÒD\x10\0\x18B!\x04$\03\0>˜”¤PÃ\a ´Ê\x05\x02"\0\f˜JœL ô„CB!ˆ$œ‘”“˜”¦–>=š¤Â\a\x04!€*˜Š\x14!€*Õ\x06\x04!€+˜Š\x14!€+˜\b t„BL\x11@ä.\x15›ÓN\x13\0à.\x15ƒë„aL\x11ÀÛ<"Áx<\x12Áy.5JÊšŠ@!ˆ\a@\0ˆ^[H\0\0΄\x03B\x01\0$>M‚Àœ\x01”\x03˜\x04¦\x06>=š¤À\x0eD\0\0\x18B!\0$\x04\x11€*˜”¤\x10˜\x01\x14\x01€*H\0\0¶D\0\0\x18B!\0$€\x04˜\x04\x11€+¤\x10˜\x01\x14\x01€+H\0\0¨.\x15›Ó„AL\x11@Ð.\x15ƒë\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVcÉÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVcñoüÿ\x01\x01û\0\x02N\x13\0Ì\0\x10\08N\x13\0ÈÕ'.\x05›ÓÈ\x16\0\x03\08È\x13.\x05ƒëÀ\x10.\x15ƒ,–LÉ\f.\x05ƒD–\x04È\b<}RÑIþ¨OÝ'N\x03\0‡\0\x03\05H\0\0}\x04\0\0
H\0\0y.\x15›ÓÉ	.\x15ƒëÉ\x06<\x1dRÎÝ!H\0\0o„oL!À
.%ƒà<\x1d`ó”\x13˜\b¦\x06Õ\x16D@\0\x10>\rƒ°L"@	\0 \00 G”\x13˜\b¦\aÕ	\0\x10\00 \a”K˜A¦\x0e¦O˜\b<-fÒ˜‚</fÒÕG\0\x10\x02F\0\x03\01L\x10@	 sÁ\x06„\0¨2\x14\x13\0
Õ$Iÿþ¨À\x03„\x02Õ\x02„\x01Iÿý°´\x06„M\x04\x13\0
L\x01\0\x05„oL\x01À\x14\0\x03\0@À\x10¡5„
L@@\r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVeLÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVesoüÿ\x01\x01û\0\x02 4æ\x02é	æ
è\a\ €QD\0\0P@\x10\b\x1a<-lü\03\01D\0\0DB!€s˜\x0f\01\0-\ñ€'è	œÚ>-š¤8A\x0e\x02˜L8\x11\x0e
È\x06P\x03\06Iþ	”Õ\x13\0#\06Â\a€ P\x03\06Iþ	ùÕ
<\x1dRÈ€b€‚€¢Iþ
)\x10\x03\06\0\x03\06\x02s\0\bIþ	\x11€€€g„\x06D\x14\0\0D u•Iþš2„\0\x10\x03\0Eì\x04:oœ„Ýž„à 2ÈŠHÿÿ–:oª¼ïü.%k:.\x15k;€À˜\x11–\0ÀC.\x05”™Iýí5€à\0\0\0HIþ\x1c| yž‰\ñ\x7fþè5IþŒ¡À2\0\x03\0,\x04£€\x01Iþ\x1cnƒ€\0\x03€H¡óIþ\x1chœ{\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVfÇÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVfèoüÿ\x01\x01û\0\x02˜H@\x0e(\0IþŒŽÀ\x1f.\x14¢ž\0\x03\0,.$¢Ÿâ\x01è\x03„ Õ\x04˜Q@\x10\x04\aÁ\x10Iþ¹\x13€à\0\0\x017IÿÝÌ’\0 y–LÉ\x06À\x04´\0¦\0À\x02„À€\x06ì\x04:oª„Ýž:oª¼ïô>}³´\0\0H\x04\x13€\x0f€À€	ñIþ\x1c0ƒ€\0\x03\0H€<Iý¹î\0 1€(IþŒQÀe 1€<IþŒLÈ`\0#\0BæGèAó\x01D@\0DB4s \x19„aL\x01À .4¢œ\x04S€\x0fžÙ–ØÕ\x12\0\x13\0HL\x11€\x0e A„aL\x11€\x05„bL\x11À\a\x04\0\0\x0e\0\0\x01PÈ3–ø€\x05B\x01sŸÙËëÕ\x1a„"L\0À\x18.4¢œ\x04\x13€\x0fžÙ–ØÕ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVh=ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVhooüÿ\x01\x01û\0\x02 Á„áL3À\a\x04\0\0\x0e\0\0\x01PÈ\x19–è€\x01B\x01sŸYËò„ <\x1a’MÕ\x18„\0¬\x18€( 1Iþ‹Ë’\0¨1<\x1dX`\0\x03\0HÝ!Õ
>=$š¥\x18!—!­\x18\ò\0 èêì\f:oª„Ýž;ÿü¼ïü–Iüªì\x04;ÿü„Ýž:o¤¼ïü€à„
T€€ÿLp@->mƒ°€\bIý´(\0C\01D\x11\0\0 D u„\x06€hIþ™/\0\x03\01€(Iþ\x19ºN\x02\0‹€\x06Iýh\x11„\f„ ¨4\x10\x13\01¨5N’\0€\x04”€’N“\0v.\x05›ÏÈxH\0\0qP\x03ÿñ>mƒ°–ùæ\x03è+¡4D\x11\0\0„\x06D uƒIþ™\x05„/Lp\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pViÅÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pViäoüÿ\x01\x01û\0\x02À\x06\0\x03\08„>Õ\vœ	Lp@\x06\0\x03\08„=Õ\x04\0\x03\08„<@\0\x04\x02\x10\x03\08.\x15ƒèÉ\x05>\x1dJ„<\x1f`ó<\r`ðŽ\x0fæ\x03èFÕ?¡4„\x06D\x11\0\0D u‚Iþ˜ÛD\x10\0\x18B\x13„$>\r‚À˜HœO¦Ê	<MY	€'D\0p%€bÝ$Õ+T!\0\x04Â\x04„\0®\rÕ%¦\x0fÀ\x06\0\x03\0<ž\x01\x10\x03\0<€\x06\00\0;„@žÙ\x100\0;®æâè\x06\0\x10\0>Á\x03\x10 \0>€\x06 DL\x13À\f E¨D„,¨E<=RÌ„\0€ €@Ý#>mƒ°\0\x13\0=\0\x03\0;â é\x06Iý`é„\0\x10\x03\0=<\x1dZ1€\aÝ!„\0ì\x04:o¤„Ýž’\0;ÿü¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVk;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVk\oüÿ\x01\x01û\0\x02ïüIü¯Ã’\0ì\x04;ÿü„Ýž:o¤¼ïü€À.\x14¢ž\0\0\0,.$¢Ÿâ\x01è\x03„ Õ\x04˜Q@\x10\x04\aÁ\rIþ·–\x02p\0\x1c\x02\0\x1dù@””\b\x02€\0^[Õ\x1cIý³L\x02\x01\x13\x02€\0¡P\x10\x01g\x04\0\0]„B‰)“\x01L\x01\0\x04„áÕ\v§Í¦\x0eâàè\x03ùÕ\x02Á¦\x0fBs€$€\x06Iÿÿ¼€À„\0Iþ¥²@\x13\x18\x05@`\x04\x1aš\x06@\x04€\x01Bs $”\x04’\x04’\x02@\0\x1c÷æ
è\x06F\x10\0®X\x10‰àÕ\x0e\ð\0dé\x03„	Õ\x05Ž
„*@\0\x047F\x10\0®X\x10‰ì8\0€\0ì\x04:o¤„Ýž:o¨¼F\x10 \x1c<}Zÿ…\0€À\x14€\0\x04\x14€\0\x03Ï\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVl±ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVlÑoüÿ\x01\x01û\0\x02¨3¨4<\x0fZÿÕH¦6æ\x02è\aNƒ\0\b´\x06Iÿÿ€\0N‚\0\r¦>æ\x02è	´\aIÿÿwÀ\x05â\bé^[L€@\x13¤r¤:â\x01é\x15L\x10@\r 2„?L\0€\x10 z„_L\x11\0\x05IþŠtÈ\b <Lp@\x04„ Õ\x04€àÕÓ„! <L\x03À\aÉ\x05©´©ó©¼Õ\x11 ;L\x03À	Á\a©³©»©ô<oZÿÕ\a D¨3¨t D©‹©„:o¨„Ýž:oª¼ïì<m\x03.5´¿ƒ€@ €\x13T‘\0ÿó„àPo€\fÕ\x1aIúݧ€\b\f\x14\0\x05É\x0f„?\x15À\0\0\x12 \0\x02\x10\0\x06¨BIÿÿ…ð\x03IúݬÕ
ð\x03ùIúݧ—øñ\x01€\x06âáéä\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVn%ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVnMoüÿ\x01\x01û\0\x02ì\x14:oª„Ýž:o˜¼–I<mZÿÀ\x13Æ\x12´fL0\0\a ôLa€\r€ÃÕùÆ	¬r¨²€\x06Iý´m€\x06Iÿÿ\:o˜„Ýž’\0:oª¼ïü.\x15çÁ€À<}lü\x01Ã\x02FÁP„\0\x02“\0¡Iþ¤Ð@D\x10\0D€\aB\x0e\x04sIÿþ΀à„\x1fLp\0@.$¢œ.\x14¢Ÿ˜’<\ryòœ“˜Š˜Š\0\x10\0,–\x10\x02ƒ\0¡Iþ¬OÀ\v<\rk¨D\x10\x01\0L\0À\x06<\r`ðæ\x0fé#D \0(@!$v@\x15\x1c\x01”L’$’!„\0@\x10¡\x17@\0\f\x06˜\x02ž\x01–\0–Hâ è\x0f\0#\x02F<\rlüD\x10\0DB\x01\x04sIÿþš„)@\0€\x06Õ\x02„\x01ì\x04:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVo®ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVoÍoüÿ\x01\x01û\0\x02ª„Ýž’\0:oª¼ïìP`\x02@\0\0\x02FT¡\0ÿñƒIþ\x19j ¦6€)Iý·)€@ 2À\x04\x04s\x7f¿Õ\x03\x04s\x7f¾òEÇ^ì€\a€)Ý<\0ò\x01À
 ²„\x03„!@€ˆ\x1a@€\b^[„àÕ#€"€\aÝ<\x04#\x7f¼N\x02\0×Â\r„"L €\v<MY	¦vD\0p\x1f€h€èÝ$Õ\x0e„áÕ\f.\x05k3\x02\x13\x7fõ€âš\b\x12\x03\x7fõ„\x01ó\x03®\x18\aP\x03}ÀIÿÿQ€`È
<\rfëP\x14€\x04€ãIþ‰H@ÕDÏ\x03GÕA\x04\x03\x7f¾„!Iþˆâƒ€<-lü¦öN¢\0\v€*>\r”„òó‚Iý¾wó\x02ò\x01D\x10\0D€\x02B\x01„s@.$\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVqBÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVqloüÿ\x01\x01û\0\x02””’D€<Iþ\x17¥.\x05”œ’\x02”\x02„A‡>%k1>\x05”œ\x15Ã\x7f¼D\x04\0\0Iýúñ\x02#\x7f„\x15Ã\x7f¹\x12#\x7f…„\x1f<\x0fe%<-ZnP\x13}À„\x02Ý"…@N‚\0c\x02\x13\x7f„\x04\x03\x7f¾˜IIþˆ˜\x14\x03\x7f½\x02#\x7f\x04\x03\x7f¾€)“\x01Iþˆ¾T„\0ÿ\x14\x03\x7f¾N‚\0\a€)P\x03}ÀIý¼ý\x04ƒ\0\x02\x14\x03\x7f¿Nƒ\0.¦6>'@8\x14€\0„aL\x11À&”\x02>\x1d&@˜\x038\0ƒ\x02\x04\x13\x7f¾IþˆÍÀ\x1a¦v>\r&@”M˜HD \0 P\x03~ð\x05Ã\x7f¼Iÿ\x15Ѧ6\x15Ã\x7f¼8„€\b€H\x02\x13\x7fP\x03}ÀIýÖ%<\x1dXh¦6Ý!N¢\0\x0f„\0„?\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVrÃÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVräoüÿ\x01\x01û\0\x02Iþ\x18\x1d’\0¦6¡²Æ\x03„(Õ\x02„!IÿØ´€\aì\x14:oª„ÝžN"ÿ:€àHÿÿB:o ¼ïÀPp\x02?\x04\0\0’V\0\0\x01¦H<lü\x10\x03€ <\r[\x18§¿æ\x02é	>-%8\x01\x18\0T\0\0\x7f8\x01\x18\b.\x05´ÍÀ\x04.\x05kSÈ\v¦?Iþ\x15ÞÈ\x1d>\r%8\0\x18\x10N\x05\0\x18D0\0"¦?\x12?€\x0e€?\0s€ \x10\x7f€\bIýpï>\x1d%8\0˜\0D/ÿ€@\0\b\x048\0˜\b€\bD\x10\0DB\x03\x04s\0\0\02À	>\r%8\x10\x18\0T\x10€\x7f8\x10\x18\b>\x1d%8 ˜\0„\0B!\x18	8 ˜\bì@:o „Ýž:o ¼ïÀ\0 \x02HPp\x02?V!\0\x01¦H\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVt8ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVt\oüÿ\x01\x01û\0\x02<lü\x10#€ \x10/€\b<\r[\x18§¿æ\x02é	>-%8\x01\x18\0B\0\x18	8\x01\x18\b.\rjªä\x05é\x06\0\x03ÿjT\0\0\x02À\f¦?Iþ\x15iÈ\x18>\r%8\0\x18\0T\0\0@È\x11¦?€?D0\0!\x12?€\x0eIýp>\x1d%8\0˜\0X\0\0@8\0˜\bD\x10\0D€\bB\x03\x04s\0\x10\02.\x05´Ûâ è	>\r%8\x10\x18\0B\x10˜	8\x10\x18\b>\x1d%8 ˜\0„\0T!\0\x7f8 ˜\bì@:o „Ýž’\0;ÿü¼ïüIü¬’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü̏’\0ì\x04;ÿü„Ýž:o¤¼ïü–\0À,<bÔB–4À(.u¨ˆÇ\x03„ÀÕ-Tc\0\x02Æ\x11\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVu´ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVuÖoüÿ\x01\x01û\0\x02<\x02ÔCF\x10\0¥X\x10€L€G€g€‡€§Iþ\x04õ>\x05¨ˆ€ÇÕ\x1aD\0\x12ÀF\x10\0¥X\x10€L€F€f€†€¦Iþ\x04å>\x05¨ˆÕ\vIþ‚À€À>\r¨„¦DÁ\x04œ\x04Iþ\x042€\x06ì\x04:o¤„Ýž’\0:oœ¼ïü„À>}¨„D \x01šD\0\0&F\x10\0¤X\x10X¬¹­¸¯¼Iþ\x15\v„\x7f„ <?['<\x1f[(„a>5´Î>ekJ„A¬¸>ekƒ>ek„<\x1fI1<\x1fI2„\x01Iÿÿ—ì\x04:oœ„Ýž’\0:o˜¼IÿÅ È"<\rXrB\0l\vÈ\x1d>\r¨„¤Aœ\x04Iþ\x04ZF\0€\0Iýù\x1cIþ\x16Ž€ÀÀ\x05F\0€\0Iýù@<BÔC\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVw+ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVwNoüÿ\x01\x01û\0\x02–ñ„\x06„!D u@Iþ”—Õ\x06>\r¨ˆ„"Iþ\x04?:o˜„Ýž:o˜¼€À´\0„'L\0€\x05„-L\0À\x05€\x06Iÿú¯€\x06IýÂŽ:o˜„Ýž’\0:o˜¼€ÀIÿú£€\x06Iý¹è:o˜„Ýž’\0;ÿü¼ïüIüË=’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÌo’\0ì\x04;ÿü„Ýž:o ¼„@>%k,\0Iý3è€ÀÀK\x04p\0\bLt@H\0 \03Â\x1a.\x05ƒæÀ\x12<\x1dRÓ„\x04Ý!€à.\x05ƒæIþ\x03\x13€ €\aIþ†ÏÀ\x04IÿÿÔÕ0<\x1dRЄ\x04Ý!Õ+\00\02„‚P\x03‚@L2@\v.\x15k-\03€ €@€\aIý9½\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVx£ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVxÅoüÿ\x01\x01û\0\x02Õ\x05.\x15k-IýQ.€\aIý¯\x7f€\x06„ IýV1<\x02µáD ÿï<\x1dZ;@\0\b\x02Ý!<-Y\rD\x10\0P„\0Ý":o „Ýž’\0;ÿü¼ïü–HIüÍZì\x04;ÿü„Ýž;ÿü¼ïü–\x01IüÈ`ì\x04;ÿü„Ýž:oª¼ïì\0Iý3~€À„€\x04£\0\b>E$kP\x0f€\x04€(„FIÿ\x13„<}XrF\0\x05\0@s€\x02Ç8EÆ[\x18€\bP\x15\x02@Ý<€àÀ\x1aP\x0f€\fIúÙÉ<}XrEÀ\x05ìTs€\x02Ç\vIþ\x17ˆ€àð\x03…!Ý<„\x02IýøYÕ\x10ð\x03…!Ý<Õ\f\0“\03„!LÀ\x06 2€(Ý<È\x03… €é<-Y\rD\x10\0P„\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVz#ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVzOoüÿ\x01\x01û\0\x02Ý"„AL‘\0\x0f„ÀÕJ\0\x03\03„!L\0À‚ 2€(Iþ\x04AN\x02\0|€
Iý®ö<\x02µáD ÿï<\x1dZ;@\0\b\x02Ý!\0\x03\03À	„\0\x10\x03\03<-RÇ„ „\x04Ý"€\x06„ IýU”<mXrF\0\x01\0@c\0\x02Î\x06<\x02ÍÚ„!L\0€
„\0„+P/€\x04€`Iý9\x01„Á<\rXrB\0X\vÀ\v„@<*ÍÚ„AF\0\x04\0>%$kIý÷õ€\bIýUH À3 \x02€(Iþ\x03øÀ\r\x04\x04€\bÀ
.\x05ƒ,–\x04À\x06<-RÇ„ „\x04Ý"€	„!IýUWÎ\r\0\x04€2„!L\0€	€\x06„+P/€\x04€fIý8Ê<\rXrB\0X\vÀ\f„@<*\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV{¤ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV{Âoüÿ\x01\x01û\0\x02ÍÚ„AF\0\x04\0>%$kIý÷¿’\0€\aì\x14:oª„Ýž„à€ÇÕÂ:oœ¼ïü\0\x10\x02\Pp\x02@€\aIÿÿ\f€ÀÀF´\0D\x10\0 L\0€BŽ0L\0€?\x02\x03\x01\r„'L\0€=„\0\x10\x03\x02‹<\x1dlü\0C\x02FD \0DB\x12\bs\x04\x10€\x0e\x10\0F<\x1dlü\03\x02FB\x11ˆs\x04\x10€\x0e\x10\0GŒ\x13\x14\x03\0J\x04\x03\0’„!L\0À
´\x06T\0@ÀÀ\x05>\r›ÆIþ\x02\x14P\x03\x02†Iþ\x02\x10´\x06X\0\b\0¶\x06„\a\x12\x03\x01\r€\x06IýP\x1eÕ\x04€\aIÿþÖì\x04:oœ„Ýž:o˜¼\x04\x10\0’„BV\x10€\x01\x10 \x02Y\x10\x10\x02_€ÀIÿÿœ€\x06IýFy:o˜„Ýž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV}\x1aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV}9oüÿ\x01\x01û\0\x02:o ¼€à´\0D\x10\x10\0L\0€\x05D`\0\x13Õ\x1d.\x15k:.\x05k;˜\b–\0À\x06.\x05´öÈ\x03„ÌÕ\x11€\aIÿÿÔ€À.\x05$k„!L\0À	€\a„ Iý=„\0>\x05$k€\x06:o „Ýž’\0;ÿü¼ïüIüÉ‘’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÄ\r’\0ì\x04;ÿü„Ýž:oª¼ïô–\x05À€\0ó¶_€á€À…\0D—^T€\x06Nƒ\0\x06´?„BL\x11@\x05<\x1dSòÝ!´\x06@\0<\b’\x1fÀ
\x04\x13\0\x12\x02#\0†¤\fL \0\x04¤IÕ\x03\x02\x13\0^[´\a\x01Ý)¶\a@„\0\x13´'ð\x01Iþ„ÏÀÜ.\x05çÁÀG<\x02óêD\x10\0ÿL\0€B\0\x13\x016\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV~ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV~ºoüÿ\x01\x01û\0\x02É>Iý­$\x04\0\0’„AL\x01@8<\x1dlü\03\x017D \0D€\x01B\x01ˆsIÿùžæ
è*€\x1c€ID\x10\0\x10BÝ"¶\x1fEÇ^ìÕ\x1c<\x1dSò€\x06Ý!´\x06@\0<\b’\x1fÀ\v\x04#\0\x12\x02\x13\0†¤\x14L\x10\0\x05¤Q´\aÕ\x04´\a\x02\x13\0^[Ý*\x01¶\a@„\0\x13´\a´?Ý<ÈâP\x04\x7fÿ–\x01ì\f:oª„Ýž:o ¼–H€b€ÀÉB.\x04¢ž\0\x13\x017š\b–\0\ð\0 è\x06„F>\x1d¸(8 	„\0IþŸE<\x0fI0.\x05k|\x02\x13\0\x1aœ\x02˜I˜\x01Iþ„’¨4\0#\03.\x15k|˜’šQIþƒñ¨5 4„"Iþ„\x02´&’\x02”\x02X\x10\0ž¨´¶&\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV€\x1fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV€Eoüÿ\x01\x01û\0\x02<\x1dI/T €\x03ÊO<-I0@\x10ˆ\x03„AL\x11@Iœ\x03¨4ÕEž‰–æBèA€AP\x10\0\x10Iÿÿ0\x02#\0Š´&˜\x02T €\x04\x12\x03\0ŠÂ\x04B\x10°	¶&\x04\x03\0/–\x04È\x06´\x06@\0<\b’\x1fÀ'\x04#\0\x12\x023\0\x1a¤\x11\x12\x03\0^[¤S\x12\x13\0\x1d\0\x13\03¤\x12˜Y\x12\x03\0\x1c 4¤\x12#\0‰Iþƒ·\x02\x13\0\x1a¨5 4œIIþƒ°´&X\x10\0X\0\0\x03B\x10À	¨4¶&\03\x017¡4„\x06„(D r\0Iþ^ 4:o „Ýž:o¨¼€À!N\x02\0»´\0D!\0\0@\0\b\x02À\x17„\0Iþžµ„!Iþƒˆ’\x01”E’&”I>\r¨\x11Iþ\x02N>\x1d¨\x11\0\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV˜ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV»oüÿ\x01\x01û\0\x02\x02FœŒœÍH\0\0œIþž \0N“\0\v<MY	\0\x13\x02FD\0p2€I€iÝ$.\x05µ\x05…L@\0(\x02L\x05@
€\bD\x10\0 IþƒN€àH\0\0n´\x06T\0\0\x04À>€\x06IÿÁÖ€ €\bIþƒ@\x02\x13\0¤€àæ&é\x03„\x01Õ\x04œI@\x05\x046\x04\x13\0]æ"é\v\0#\x01l\0\x13\x01mâ"è\x02€"–H˜I˜\x01\0\x13\x02F>-'@8A\x04\0„¡Ü\f˜I˜M.Ej–”L>=&@˜K¤É˜\x04Õ\x06.\x15j–\x023\0¡˜\x01B\x10\f$€\bIþƒ\x05Õ .¥j—D\x10\x01à€\bIþƒ\x03\x04\x13\0HFB\x15\x04$€à€\bIþ‚ô\0Iýò?À\r.%ƒà<\x1d`ó”\x13˜\b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVƒ\x10ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVƒ9oüÿ\x01\x01û\0\x02¦E€\b˜IIþ‚å\0@„\x10\b“\x06@„\b\b€\a€(Iþƒ=@t\0^[„!€\aIþ‚ë’\x01”E’&”I€	Iþ\x01²\0\x03\x02F€)P$€\x04„`IþNä’\0:o¨„Ýž:o ¼€À\x01À,Á+\0\0€	„#L\0À'´(§È’á\ó€|é\x05¦	@s \b™øD\0\0<Lp@\v€\x06Iý0H´(€\x06œIIÿÿ\x1fÕ\x13D\0\0\x13Lp@\f€\x06œIIÿå<.\x05µ\x01È\b\x10s\x02ŽÕ\x05€\x06€(Iý¯J:o „Ýž’\0:o˜¼\x04\x10\0’É#<-lü\0@\x02FD0\0D€"B\x12\fs€\x04B\0\x0eF\x10 \x18\0R\x01L„.e$•@B\x14\f@B\x10\x05@B\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV„Žÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV„µoüÿ\x01\x01û\0\x02\x18\x02>E$•\0\0\x02FB \fs€\x02IþOí:o˜„Ýž:o¤¼ïü€À\0p\x02F´\0D\x10\0\x10L\0\v<\x02ÍÚ„AL\x01@!\0\x03\x02ŠÀ\x1dP\x03\x02ŠIýÿU<\rXrB\0\\vÀ\vPƒ\x02@€\b„ Iý6¶€\b„"„@Õ\b\x04#\0’Ê\a\x04\x13\0JP\x03\x02@IýM\x0f\0\x03\x02Z„ƒL\x02@\x12\0\x03\x02ŠÀ\bP\x03\x02ŠIýÿ1€\x06Iýhˆ\x04\x13\0J€\x06Iý6%ÕS\0\x03\x02Y„!L\0€#<[\x18Nƒ\0K<\x1dXrB\x10Ô\vÁ\fP“\x02@€(€	Iý6–€\x06€I€h„"Õ\v„bL\x01À8\x04\x13\0J\03\0 €\x06P#\x02@Iý5_Õ-\x04ƒ\0’Nƒ\0*<\rXr\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV†\fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV†.oüÿ\x01\x01û\0\x02B\0\\vÀ\vP“\x02@€(€	Iý6_€	€H„"Õ\x10\0\x13\x02ŠÉ\b.\x05›hÀ\x05P\x03\x02@€AÕ\x06P\x03\x02@D\x10\0\x13„@IýL°F\0\b\0Iýô:F\0\x04\0Iýô6€\aIüðK€\x06Iÿÿ<\x04\x03\0’„!L\0À	D\0\x04\0Iýô'€\x06Iþ\x03$„\bIýô!<\x1dX‰€\x06Ý!\x04\x03\0’Iýñ-\0\x13\x02F>\r”Ü80\x06\x02FHÿÿ.%›ÍXB\x0fÿ@1\x0280\x06
Ê$D\0\0€Iýô\x04<-XrF8ÿÿX1ÿ@!\f\x02</XrD\0\x02\0Iýóö<\r`“„ƒL\x02@\v.\x15¶\x17.\x05¶\x16˜\x01–\0È\x03IÿËÈ<\rY¸Ý \0\x03\x02p„"L\0À\b„A\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV‡„ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV‡¦oüÿ\x01\x01û\0\x02>%›Ì”\fIýóÚ\0\x03\x02jÀ\x05D\0\x02\0IýóÓ<\rlüD\x10\0DB\x03„s<\x1dXmÝ!<-RÇ€'„
Ý"„ €\aIý®É€\x06Iýª„<-Y\rD\x10\0a„\0Ý"ì\x04:o¤„Ýž:oª¼ïì<\x1d`“„CL\x11@c„à<\x7f`“/Ä¢œ„ÁD\0\x13Õ\x0fIý©ïÀ
´`D \0\x10L1\0\x06\x14\0JIÿþ͝±—°ù€\aâÜéï.\x14¢Ÿ.„¢žPo€\f@\x04\x04\0–\0ðEÀ\x05ìÕ+Iþ®\x0e€àÀ$´\0T\0\0\x02À €\x06IúÔÙ<-["Lq@\x12´\a'D0\0\x13X\0\x01\0\x103=\x1c\x04€Nð\x03Ý<€	Iýþ\x06Õ	ð\x03Ý<<-\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVˆúÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV‰\x1doüÿ\x01\x01û\0\x02Sµ€\aD\x10\0\x13Ý"\x01T„\0ÿò\x01€\bã\x02éÓ.\x15€ É\x05„\bIý\x0eÌÕ\x05Iþ«wIÿÀãì\x14:oª„Ýž’\0:o˜¼—€€\x06Iý©ŽÀ#\0\x10\x02dD \0.L\x11\0\x04Iý.[€\x06IþLš<\x1dlüD\0\0DB\x13\0sF\0 \x18\x04\x10€\x0e.5$•\0 L„!@\x10ˆ\f@\x10„\x05@\x10Œ\x02>\x15$•:o˜„Ýž:oª¼ïô\x01À\x02F>m³´D€\0DBŽ $\x04\x13\0\x0f„Hˆ(\x04\x10€\x0e \0@%LA@f\00L>}$•…A¦x@5\f\f@1„\x02ËZ´@D\x11\0\0@!\x04\x02Â\x10>\x1d¨\x16óIþ\x05øó\x01€	€#Iÿüû\0\x04‚FIþLK\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVŠrÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVŠ‘oüÿ\x01\x01û\0\x02ÕK€">=¨\x16€\x1côIþL\x04\x03\0\x0fD \0\x18ˆ\b\x04\x10\0\x0e€\x1c\x10 %D\x10\0<\x04#\0\x0f\0“€\0ˆH\x04Q\0\x0e>-¨\x10\02L@5\f\f@1¤\x04®øIýj‹ô\x01À$\x04\x13\0\x0f>\rkGˆ(\x04\x10€\x0e\x10@%\x04\x13\0\x0f¦ø‰\x01\x04$\0\x0e¦@\0!\x01LX\x10€\x01@¥\b\f@¥(\x05@¥\f\x02\x10£€\0Õ\x06>\rkG¦@X\x10€\x01®@ì\f:oª„Ýž:o¨¼T€\0ÿ€\bIý¨ÝP`\x01<N\x02\0Ž´\0„!P£\x7fôL\0Àˆ¤¶„à\x04\x13\0C¬·\x14s\x7fý\x10s\0\x12IýïÀ<\rlüD \0D<=XlB\x04\bs¤s€GÝ#\0\x03\x01
€'Iþ\x10Ô¤³\0\x13\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV‹êÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVŒ\x14oüÿ\x01\x01û\0\x02\0\x13¤ò Iþ€C€@\0\x03\03¶F\x14s\0\x0e\x14#\x7fÿÀ\x18\0\x03\0=È\x15\x04\x03\0C¤óÈ\x02Õ\x02˜Û„@€\x03F\x10\0£X\x10‚DP3~Ä€‚„¡Iýý‹\x10\x03\0=„\x04\x14\x03\x7f±<-RÇ\0\x13\x01
„
Ý"<\x1dZ/¤3Ý!\x04s\0CÏ/\x04\x03\x7fÿ\x04\x13\x7fùŠ	”\x04’\x04”Lâ è%\0\x03\x01
>-&@”\x05€*˜\x02D \0 Iÿ\r&\x02#\x7fò…\x01\0\x13\0\x13¬³\x12ƒ\0\x06­ò\x12s\0\b€	€gIþ\x7fï\0\x13\x01
¶\x06\x14\x03\x7fÿ>\r'@8€\x04\bÕ\a¤sP\x03~Ä„@IýÍg:o¨„Ýž:o ¼\0„\x04€áL€@)Iý,é€ÀÀ\x04\0\0\03È\x0e<MY	Î\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVlÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVoüÿ\x01\x01û\0\x02€FÕ\x03\0#\03.5k(€&D\0ñÝ$.\x15çÁÁ\x02Õ\r.%$m„aL!À\f\0#\02„bL!À\a>\x15$mP\x13 \0Õ\x02€'€\bIýb2:o „Ýž’\0:oª¼ïÜ.\x15çÁÁ
.\x05ƒðÀ\x03„!Õ\x05.\x15$g@\x10\x04\x06.\x04¢œ„Að†<\rlàL\x01@\x06„ÀFH\0\x01¢–H¶?Á\x06<\ryò\0\0,Õ\x0eô\x06.\x05k2ž¡L\x01@\x06„\x01ð… Õ\x06œ\x01T\0ÿ\x14Ÿ€\x05„!…\0ññƒñ‡ñ„\x14€\x02ƒˆH.%çÁÂ\f´\x1fÈ
<-yò\0!\0,@!$\x03\q\0\x01Õ\x02„à€	Iý§Æ€ÀN\x02\0Ý\x04 \0’N#\0Ù´@T1\0 \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVŽâÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x02oüÿ\x01\x01û\0\x02N3\0ÔNs\0ÒT!\0\x04N#\0Î\x04@\0FNC\0Ê<-XY´?Ý"´FT!^[áN"\0À"C\x01\x15NG\0\a.%k3š¢\x12#\x01\x15"C\x01\x0fNG\0\a.%k3š¢\x12#\x01\x0fD \0DBtˆ$<-lüô\x01˜—\x04!\0\x0e´f\0!\x01g–Ü@A\b\x1aò\x04„\x03@!Œ\x1a€)ôò„Iþ¡žÀ\x16<-lü˜—\x04!\0\x0e\0!\x01FÂ\x10.$¢œ.4¢Ÿ˜’œ“˜š˜š–\x10€)Iþ¡‰È\x03„€ô‡ð\x03À\x17Iÿ½6„?€`L\0€\x10>-'ð8!&\x02L €
€\x02€#Iþ~úÈ\x04„AòƒÕ\x03„€ôƒN£\0c€\x06Iý¾¥<-lüð‚˜—\x04!\0\x0e\0!\x01P\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV‰oüÿ\x01\x01û\0\x02Ê\x14"#\x01\x15N'\0\x0fÀ\x05"#\x01\x0fN'\0
€\x06IÿïV\ð\x02€è\x03„@Õ\x02„AÂC=Ílü´?AÎ\x1c\0É\x03>•k2º\x0e\0!\x01PÂ%\0#\x02\x7fÂ\x17º	„ƒ\0!\0	L"\0\x12\0#\x02}T!\0\bÊ\f€\x1cIýÅÈ\0#\x02}\x06X!\0\b\x10#\x02}Õ\x10<-XX€\x1cÝ"„A@¡\0^[\x06AÀ\0\x1aÕ\x14ð\x02À\x05¸‰\x06…AÕ\x0e€\x1cIþ{Ⱥ	\0\x13\x01$„b\x10\x11\0\b>5k3Õò\x06ò\x06!T”€ÿ@4ˆ\x06ô\x05„A@‘\f\x1aL’\0\x05´\x1fN\x02ÿ\x03€ÜN£\0$€
IýÀ½€@À\x11.\x15´¾<mlüD\0\0DB`€s„"\x14#\0	…A>\x15k3H\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV‘èÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV’\boüÿ\x01\x01û\0\x02\0iñ\x03Áf´_Â\x04.%$gÊa<-Xiñ\x04€\bÝ"Õ[\0\x0e\0,Iý¦°€àÀ9.%$gÂ#<-yò\0^\0,\0!\0,Ú\x1c" \x01\x15N&\0&<-I\fÂ\x06.%$f„L"@\v<-Zc€\aÝ"@ \x04	\x12#\x15Õ\x14<-ZcÝ"\x12\x03\x15Õ\x0eð\x02È\x0eº\x0e\0!\x01PÊ\x0e<-Zc€\aÝ"\x12\x03\x15Õ\añ\x02Á\x05\x02#€H\x12#\x0fô\x01Ì\x03ð\aÀ\x19ñ\x03Á\x17´_Â\x04.%$gÊ\x06<-Xiñ\x04€\bÝ".%çü„L"@	<-z\x04„ \!\0\x0f@ ˆ\x1aÎ\x03€fÕ\x03\03\0,@e(\x1a„\x06„!D tÀ€ŠIþ‰h’\0€\x06ì$:oª„Ýž:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV“dÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV“–oüÿ\x01\x01û\0\x02˜¼—€IÿÊQ€\x06Iý\:o˜„Ýž’\0:oª¼ïì„à\0„\f€ÁUÁ\0ÿ\x10\x7f€\x0fL\x10\x01\x14æ-è\v„*L`€øæËNò\x01\x17æÇNò\x01\x12Õ	æ/Nó\0îæ2Nó\x01\x1cH\0\x01	Dp\0\x18„\x06D\x12\0\0D uŠ€|€†Bs\x1c$Iþ‹\x1e>=‚À€\b€&P/€\x0f™ûIýT\x1f@€\bIýSÕÀ\x10\0\x03€\x0eÈ\r\0\x04\0<À
.\x05çÁÀ\a<\x1d`ó.\x05ƒà8 ƒ\x01„\x05L`@	.\x05ƒ,–\x04À\x04“A@¥\0\x13 ü€'œº€
Ý#DWyÀõD\x12\0\0D uŠ€j€† „\x06Ý%¤ø¥9õ\x01„\x06D\x12\0\0D uŠÝ%\0\x0f€\x0f„!\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV”îÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV•\x18oüÿ\x01\x01û\0\x02L\0À\x05„@</møN“\x01\x02\0\x13€\x0eN\x12\0þÀ\x04\x02$\0\x16¬¹„bLaÀ*\0\x0f€\x0fÈ6.\x05ƒ,–\x04À\x0e<\x12Ûð<\x02Ûî@\x10Œ\fà é\x06¤x„\vB\0€$Õ$.\x05ƒD–\x04À\v<\x02Ûð<\x12Ûî˜\0à\x01é\x04¤8”\x02Õ\x16<2Û<\x12ÛðÕ\f„\x03L`@\x0f\0\x0f€\x0fÈ\v<2Ü\0¤¸<\x12Ü\x01B\x01ˆ$@\0\x046¬9€G€\b€&IÿÀNc\0¸OÂ\0¶<\rfû<\x1dfüœ\x02„A–\x01L\x11@\x05˜\0œ\x02–\x01>\x1d›à Ï„AL1@\x06 N˜IœJÕ\x02 N˜\x01–\x01N¢\0\x05â
Nò\0˜>m‚À\x043\0
€
P\x13\0\x18P#\0\x1aÝ#N\x03\0Œ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV–pÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV–oüÿ\x01\x01û\0\x02\0\x03\0$T\x10\0\x02É
X\0\0\x02\x10\x03\0$\0\x04\0=œ\x01\x10\x04\0=„\x01\x10\x04\0>„!€\bP#\0\x18IÿÀXH\0\0s„\0Iþ—µIÿ»\a„\x7f<?e$€\x1c„!Iþ	Ò„\0\x10\x04\0@–ñ€œ„\x06D\x12\0\0D uˆÕ\b€„\x06D\x12\0\0D u‰„`IþŠ$… ÕP.\x05´¾„!Iþ	·\x10t\0@„\x06D\x12\0\0D u„`„‹Õî´h„\x01\x10t\0@L0@\b\0\x04\0<\0\x14\0;L\x10\0
.\x15ƒ,–LÉ\x05.\x05ƒD–\x04À\f.\x04¦PÀ\x1f„\0F\x10\0X\x10ŒÌIÿS‡Õ\x14<}`íTs€\x02Ï\x12<\x1dZ€„\x01Ý!.\x15$|V\x10€\x02@\x03„\x1a„/L`À\x06À\x04D\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV˜\0ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV˜'oüÿ\x01\x01û\0\x02\0\x1fÕ\x02… €†„\x06D\x12\0\0D uŒ@4€\x13Iþ‰Ó€	ì\x14:oª„Ýž:oœ¼ïü€à€ÁIý+1’\0\0\x03‚F§±>-%œ8a\0\b„\0ì\x04:oœ„Ýž;ÿü¼ïüIü¡-’\0ì\x04;ÿü„Ýž:o¤¼ïü!€À\0\x10\x02FP\x04€\x01¦À>-%œ81\x04\b\0t€\0\0€\0\0ž9–@æ"è
”\x03P\x10\x01˜˜q„\bP$€\x02Iýúk\0\x03\x02Y„!L\0À\x1e<-XrF0\b\0@!\f\x02ÊVâèè\x05æâè\x03˜yÕ2D\0\0=IüÜ»À\x06€\x06P\x13\x01˜Iÿÿ½€\x06„ Iý4{ÕA´\x06„!L\0€\b„DL\x01\0\x05„hL\x01À\x0f\0\x13\x02[„L\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV™ƒÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV™¤oüÿ\x01\x01û\0\x02T\x10€\fL\x11@\b€)€\x06„@Iý)–Õ*\x04#\0’Ê\x12„aL\x01€\x10âèè\aæâè\x05˜{–H€\x06Õ\x16D\0\03€&Iý5\bÕ\x16\0\x03\x02[„,T\0\0\fL\0€\x10âèè
æâè\bœy–H€\x06„@Iý*þÕ\x04€\x06Iý:ê´\x06„AL\x01\0\v„dL\x01€\b„(L\0€\x05\x01àèé\a\0\x03\x02[X\0\0\x04\x10\x03\x02[„\0ì\x04:o¤„Ýž:o¤¼ïü.5çÁ€Á—ÀÃ\x1f<\ryò\0\0\0,L\x03À\x1a€\aIý£õ\0À\x14<\x1dI\fÁ\x06.\x15$f„AL\x11@\b<\x1dZc€\bÝ!’\x01Õ\x04<\x1dZcÝ!\x12\x04\x01\x15€\a€&Iý°\x0e ÇB€\aIý£×\0À=\x04\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVšøÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV›\x1doüÿ\x01\x01û\0\x02\0’É:€\x01Iþ–U>\x1d'ð8\0ž
Æ2ž5æ\x04è\x05\x04\x04\0\x06È	Õ+D \0\x17La\0(„\fL`\0%„MLa\0"D\0\0&L`\0\x1eD \07La\0\x1aœ\x06L`\0\x17œ–La\0\x14\0\x14\x02F.5jy<mlü>-(8Œ\x1881\x04\bBc€s„\0Iþ–!’\0¶\x06€	ì\x04:o¤„Ýž;ÿü¼ïüIüª^[’\0ì\x04;ÿü„Ýž:o ¼ïÀ§È€À\0€\x02‚„\x01Lp\0
„CLq\0\a„\x05Lp\0\x04Œ\x19ÕG.\x15k:.\x05k;˜\b–\0À\x0fæâé\r.\x05µ:–\x04È\x03„!Õ\b<\x1dXZ€\x06Ý!–@Õ\x02€'\x04#\0“€\x06Iýˍ\0\x03\x02‚L\x03€\b\x10s\x02‚\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVœqÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVœ’oüÿ\x01\x01û\0\x02€'€\x06IýÍ]\03\x02‚€\x03L\x04\0\x1dã\0è\x1a\x02\x13\x01^[„JL\x11@\x16\0C\x02H\x10\x03\x02ƒ\x10C\x02_\0\x03\x02F€?\x10?€\x0fD0\0.\x10O€\b\x12?€\x0eIýcl’\0„\0ì@:o „Ýž:oª¼ïìPo€\f€\x06…@IúÎ7\x14¯€\x01EÀ\0\x14Õ:.ej‘>\r¡äBcp$™°¡ò\x04ƒ\0\x01Ç\x04\x04£\0\x03Õ\x05N‚\0\x04 sñ¦rð\x03>\x15j‘IúÎ0¦q„A”\x14@ \x04^[®°N‚\0\x05ð\x01Ý(Õ\bÇ\x04€
Ý'Õ\x04Œ\x13IüÚÖP\x0f€\fIúÎ\x04¦pD\0\0\x10L\x10@\b„ ®p¨q¨r¨s®r.\x15j‘Á
B\x10ð$>\r¡ä˜H \fIþzœÈ¼ð\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVíÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVž\x12oüÿ\x01\x01û\0\x02IúÎ\0ì\x14:oª„Ýž:oœ¼ïŒ€ÀÈ\x04D\0\0\x12Õb\x02\0\x01\r„'L\0€3Ps\x02@€\aIýx`È\x04D\0\0\x17ÕT\x04\x03\0\bÀ[\0\x03\x02iÈ\x02ÕK.\x15³ÞT\x10†\bÁR.\x05³à–\x04ÀN\0\x03\x01®T\0\0\bÀI\0\x03\x01˜–\x04ÀE\0\x03\x01­T\0\0\x04À\b€\a„ P/€\x04IýÙºÕ9\0\x03\x02dÈ6„\fÕ*\0#\x02Ê\f<\rZöD\x15P4€f€‚„¡Iý÷€\x10\x03\x02„\0D\x10\x04\x11IüÚK\0\x13\x02H„
\x10\x03\x02a\x10\x13\x02`€\x06IýtÓÈ\x11„\x06\x10\x03\x02a\0\x13\x02H€\x06Iýu Õ\bD\0\0#D\x10\x04\x11IüÚ1’\0„\0ìt:oœ„Ýž\x04\x03\0˜@\0 \b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVŸkÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVŸ›oüÿ\x01\x01û\0\x02’\x10ÀÈÕî:oœ¼ïü\x04 \0%€ÀT!\0\x02Â\x06<-XFÝ"€àÕ\x16Iýƒì€àÈ\x12€\x06IýÖ§È\x0e\0#\x02F„\fB!\0$>=(€P\x13\x02\x04˜“Iýø$’\0€\aì\x04:oœ„Ýž:o¤¼ïÜ\x04 \0%—ÈT\x11\0\x02€ÀÁ\rX!\0\x04„ \x10\x10\x02“\x14 \0%<-X=€'Ý"Õ?€\x1fIþ„™D\0\0\x10€_P\x13\x01°Iý÷þ€\x06IýÖqÀ\x04>\r›tÕ\x03P\x03\x01àP€\x1cPŸ€\x10€ €h€\x1fP#\x02@€‰IýšC€H„\x04P\x13\x02\0Iý÷ã€\x06IýÖVÈ\f\0\x13\x02F„\fB\x10€$>-(€˜J€IIý÷ÔD\0\0+\x10\x03\x02b€G€\x06„+€\x7f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV üÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¡+oüÿ\x01\x01û\0\x02Iý{\x06ì$:o¤„Ýž:o¤¼ïü„\x02„ Iþñ N\x02\0ˆ´ÀNb\0…\0\0\0\vIý¡É€à\0\x04€\vIþ¦\x02€ Ï^[È\f\x14\x04€\x01\x02$€\x06„\x02IþŸšD€\0\x1fH\0\0o<-Y/€&Ý"\0\x14€\f\0D à\x01€\x06„aIÿÐ\x01ÕW\0\x14€\f€\x06D ÿü„aIÿÏø¦0\x06–\x04\x10\x03‚^\bd\0\x01’Á\ó\0|é\x06\b\x04\0\x01@c \b™°\x02\x03\r„'L\0€:´\aŒ9L\0€6\ó\0\x7fè\x10\ó\0Lè\x06>\rKX8\0\x1a\x02È\b€\a–pD \0\x1aIýc\x1aÕ#€\x06€(€GIý\Š\ó\0|è\x14>\rKX8 \x1a\x02€(€\aÝ"\0À\x13\0\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¢Œÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¢¬oüÿ\x01\x01û\0\x02‚^–p\x10\x03‚_€H€\aIýbÿÕ	€(€\x06€GIý\E\0Õ\x02…\0\x02$€\x06„\x02„ IþŸ,’\0Õ\x02…\0€\bì\x04:o¤„Ýž;ÿü¼ïüIü»ÿ’\0ì\x04;ÿü„Ýž;ÿü¼ïü–\x01Iüµ”ì\x04;ÿü„Ýž:oœ¼ïü—À<\rx\aÈ\x03Iÿ\x01!>mà\x10 3„"L\0€\x0fæ\x03è\x05„!L\0ÀIÕO„#L\0€\x0e„$L\0ÀBÕ=Iÿ¶~È\x04Iÿ\0‘ÕB„\x01Õ6Œ2LpÀ>F\x18\x10\x02\x02#\0\x0f\x04\x10€\x0fR1\x019â#é\x05R1\x04ââaè\x03„\0Õ\x06R1\x02qâ#è\a„\x01Iÿ:@Iÿ\0’Õ
R!\x03ªâ"è\x02„\x02Iÿ:6Iÿ\0ˆ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¤\x02ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¤.oüÿ\x01\x01û\0\x02<mY\aIÿ:,€`„!„\x04D 2\x04Ý&Iÿ\0D„$Õ
„\x03¨3Õ	<\x1dYMD\0\0PÝ!„!<\x1fx\a<\rx\a„!L\0À
Iÿ:\x18„)L\0À\x05Iÿ\0}’\0ì\x04:oœ„Ýž;ÿü¼ïü.U´¾\0@\0,P \0\x1cÔ\x05Iÿ\x040’\0Õ\x0f \0\0"–Ê®\x17„! \x01\0\x05\x10\x11\0\x13®\x16 \x01\0\x04®\x15®Ôì\x04;ÿü„Ýž;ÿü¼ïüIü·¿’\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü¹¨ì\x04;ÿü„Ýž;ÿü¼ïüIü ¹’\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü²®ì\x04;ÿü„Ýž;ÿü¼ïüIÿ\x01Ý’\0<\x1dY\x1d„\x01Ý!ì\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¥„ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¥«oüÿ\x01\x01û\0\x02;ÿü„Ýž;ÿü¼ïüIü¯‹’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüºE’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü¦	’\0ì\x04;ÿü„Ýž:o¤¼ïü\0€ÁT‘\0ÿÀtÁs\0\x10\x017€I„\x03Iþœ«€àÈ\bD\0\0QIüØ\x13„\aH\0\0i´\0È\x06D\0\0RIüØ
Õ]„#\x10\x13€	€I€&Iÿ\x04ܧ°„\vL`@\x05D\aí\x14Õ^[„\x06L`@\x05D\aî4Õ\x15„\fL`@\x05D\aí`Õ\x0f„\rL`@\x05D\aìøÕ	„\x02L`@\x05D\aîhÕ\x03D\aî\x10¨9\0\x13€\f´\aD à\x01„`IÿÎP\0\x14\x017„\x03Iþ SP\x04\x019IýôA„\x02L`\0$\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV§\0ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV§!oüÿ\x01\x01û\0\x02„	L`\0!„\x01L`\0\x1eÆ\x1cŒ\x14L`\0\x1aœ\x03L`\0\x17ž\aL`\0\x14„D\0ú\0„ F \0¡X!\x03ø€h€¤IýôÈ\x10\x04\x019Õ\x04D\0\0\x1fÕ\x02„\0ì\x04:o¤„Ýž’\0:oœ¼ïü„\x01„ „KIþœ.À^[´À„\x1f®0„	®1D\0\0)®2F\x12\x01€X\x10†\x11œ3Iü×\fF\x10\x01Rœ7X\x10XIü×\x05„\x01„ Iþ \x01ì\x04:oœ„Ýž’\0;ÿü¼ïüIü¯\x11’\0ì\x04;ÿü„Ýž:oœ¼ïü€À\x04\0\0/T\0\0\x03À .u$i„\x01Lp@\x1c„€>E$i€\a„ „GIþ›îÀ\x12´ „\x1f®\b„\x05®	D\0\0*®
œ\v\x04\x13\0/Iü\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¨vÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¨¡oüÿ\x01\x01û\0\x02Ö΀\a„ IþŸÊ€\x06IþÌ©€\x06Iþ˺\0\x03\x017Iÿ´œ€\x06IÿÿÃ’\0ì\x04:oœ„Ýž:o¨¼T€€ÿ"€ÀNƒ\0'€(„AIþ±œ€à\x023\0…„\x06„(D r\x06€‡Iþ‚^„\x1fLp@\f<MY	\0\x13\x017€HD\0p\x02€hÝ$Õ\x02ù\x02\x13\0\x1a€	œIIþvŠ¨5H\0\0’P\x14\x7fÿ–Hæ"é\x04„àH\0\0ž€H€iP\x10\0\x14IÿñÇ\x02\x13\0Š„@˜A–I\x12\x13\0Š€\x06Iþ±c€à\x023\0…D r\x06„\x06„(€‡Iþ‚%„_Lq@\b´\x06B\00	¶\x06H\0\0‹ 5€'IþvL¨6„!B\0\0	IþvF¨4€)Iþvš\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV©õÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVª5oüÿ\x01\x01û\0\x02À\x1f€i€\x06P\x13\0\x10„BIÿñ”\0\x02\x03\0Šˆ\b\x12\x03\0ŠÕ
 5\x02\x13\0^[\x01Iþv9¨5@„\0\x13Nƒÿ÷ 5€'Iþv$¨6´\x06T\x10\0\x04É\x10\0\x03\03™ÿ”\x02™ø 6€'Iþv\x12´&¨7X\0\0¶\x06Õ:\x04\x13\0/–LÉ\x05@\x108\b’?Á.@\0<\b’\x1f\x04#\0\x12À\x17¤\x11\x12\x03\0^[¤S\x12\x13\0\x1d\x02\x13\0\x1a¤\x12\x12\x03\0\x1c 5¤’\x12#\0ŒIþuý´&¨5B\0À	¶\x06 5€'Iþuè¨6B\0\0	„!Iþuâ\0\x13\03™ÿ”J¨4™ùÕÂB\00	¶\x06™ÿ\03\x017¡5„\x06„(D r\x02Iþš<-YL\x02\x13\0…€\aÝ"¡ô€\a:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV« ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV«Íoüÿ\x01\x01û\0\x02¨„Ýž’\0;ÿü¼ïü<\rmú>\x1dß „FP\0\x01HIÿ\x03 Iþ§úì\x04;ÿü„Ýž;ÿü¼ïü–H–\0Iü½o’\0ì\x04;ÿü„Ýž:o¨¼€À<}lü\0\x03\x017D\x10\0DBp\x04s\x04#€\x0f<­["\0\x11\0>Á\x04…\0H\0\0qIÿÇ9À\x10´\0„!¦\0L\0À\f´\x06B\x10L\vÁ\aB\0L	¶\x06.\x05$jÈ'\0\x13\x017„\x03D \0^[„aIþ!\0À\a<-Sô€(€\x06Ý"Õ'€\x06Iþ¢¨À\x13.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01\x02#\0’\0\x13\x017–\0„aIþ\x05\0È\x11€\aIÿ\0\\x04\x13€	D\0\0 \x10\0€\b„\x01\x04\x13€	…\0\x10\0€	\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV­1ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV­\oüÿ\x01\x01û\0\x02Õ(D\0\0!\x14ƒ€	\x10\x04\0\b\0\x04\0	\x04\x13€	„C\x10\0€	L\x01@\x17´(„E¦HL\x11@\x05\x04\x13€\x0fÕ\f\0\x03\x016„AL\x01@
„\vL\x10@\a\x04\x13€\x0f„\x05\x14\0€	„\x01\x10\x03\x01>\0\x13\x017„\x03Iþ—íÀ\x15.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01\0\x13\x017–\0Iþ—ßÈ\x05€\x06Iþ¢GÈ\x03… Õ\x02…!<\rY%–\x04À\x11\x04\x15\0\a\0\x05\x017P ÿú„ Iþ\x05Ä€ €
IþuL„ @€^[\x04\x03€\x0f„L\x10\0A sL\x11@\x06´\x06X\0\x01\0¶\x06\03\x017Nƒ\0\x04€ˆÕ\x03\0D\0	„\x06„!D sBIþ€£\0\x13\x017„\x03Iÿÿ$È\x13.\x14¢œ.\x04¢Ÿ˜IœK\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV®¸ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV®ëoüÿ\x01\x01û\0\x02˜A˜\x01\0\x13\x017–\0Iÿÿ\x16À\x06€\x06Iþ¡þÀ\x02…! 2„,L\0À\a´\x06T\0\x01\0@\0\x1a\x04\x03€\x0f\x10\0A:o¨„Ýž:o ¼—À<-Sõ€\a€ÁÝ"È\x04D s\x02Õ\x15„\x05Lp\0F„$Lp€\x05D s\x05ÕA\0\x03\x016À6€\x06IþÀ!„!L\0À1D s\bÎ"€fÕ"<\x1dS·€\x06Ý!„\x01>\x05$j<\x1dSó€\x06Ý!>u$j\x02C\0†\03\x017„\x06„"D s\x06Õ\x06\03\x017„\x06„"„Iþ‚0„\x01Õ	\03\x017„\x06„"„ŸIþ‚'„\0:o „Ýž<o["\0s\x016ÏßÕÑD s\x04Îä€fÕä;ÿü¼ïüIüº}’\0ì\x04;ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV°Qÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV°zoüÿ\x01\x01û\0\x02ü„Ýž:o˜¼€ÀIþáq„\vL`\0\x05„/L`À\x14.\x05$–„!L\0À\x0fF\0 \x18.\x15$tœI–H>\x15$t\ð€`é\x03Iÿ¼Å:o˜„Ýž;ÿü¼ïü–\0Iü¨Ôì\x04;ÿü„Ýž;ÿü¼ïü–\0Iüšì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü™ªì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü› ì\x04;ÿü„Ýž:oª¼ïô„àD€\0ÿPo€\x04GÀ\0§YÎ\x06\x10€\a€&„@òIÿÿæ’\0ñ\x01T\0€\x04–LÁ\x04€\aÝ<Õ\x10T£€ÿÀ\rN¢\0	€\bIÿÿÁD\0\0$L \0\x05œ9Iÿÿº\x01ùD \0%T„\0ÿLq\x7fÜì\f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV±òÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV²#oüÿ\x01\x01û\0\x02:oª„Ýž;ÿü¼ïü–\0IüšŒì\x04;ÿü„Ýž:o ¼€@\x04\0\0\x0f\x01\0`\08\0q\0,\ó\0%èLÂK\0\x01\0.ÀHIÿ\x17K.\x14¢œâáè\x03„ Õ\x06.$¢Ÿ˜Q@\x13„\a„DL\0\x05„§L‚À\x10Á\x0e>-'t8A\x1d\x11„c€ BR\fs„„@2–81\x1d	„EL\0\x1d„§L‚€\x10„\x04L€@\x1cÁ\x1a>\r't8\0\x1d\x11^ð\x7f±é\x13€\x06„!Õ\x03€\x06„ ŒK>=ªÔ>M©xIÿ¯^[Õ\x06€@€&„\x01Iÿ°g€\x06Iÿÿ :o „Ýž’\0:o˜¼<m[$Æ\x1c\x04\x13\0\x0f„\a\x14\0€\bF\b\x10\0\x04\0\x03ÀB\0x\vÈ\b€\x06„%Iÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV³xÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV³šoüÿ\x01\x01û\0\x02ÿ‘€\x06IþÖ\x04„@</[$€\x06IþÔÄ’\0Õ\x06<\x1dYMD\0\x01\x18Ý!:o˜„Ýž;ÿü¼ïüIüº\a’\0ì\x04;ÿü„Ýž:oª¼ïô<\x1d[	>\rkIIýð<\rY%T\0\x04\0À\a>\r®ŒIÿË\x12IÿÿäIÿÖtÀN.D¢œ<-Xr<=XÏôB!h\v>\r¨\x16>\x1d%\Ý#¶\x1f„ÀEůœ>­”ÜDp\0DÕ+Ý<À(\x04\x10\0’É%´ D.ÿú@\x10ˆ\x02É\x1f\0\x10\x01¬T\x10€\bÁ\x1a´?É\x0f\0 \x02F<\x1dlüB\x11\x1csD \b\0\x04\x10€\x0e\x02\x10€’L\x11@\v\0\x10\x02F8\x15\x06\x02B\x10ô\vÉ\x03Iÿò)±ñ\x01–0âÁéÓF\0 \x1c.\x15\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV´ñÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVµ\x19oüÿ\x01\x01û\0\x02kG’"”J>\x15kGì\f:oª„Ýž;ÿü¼ïü–\x01Iü´&ì\x04;ÿü„Ýž;ÿü¼ïüIü¯9’\0ì\x04;ÿü„Ýž:oª¼ïì.…ßÍ<\rwï>=³¼Po€\b„@PQ€Ô€&T„\0\x01\x12/€\x02¶_@q \x1a@r ^[IþÑ,<-S“¦pT!\x02\0Â
<\rSŒT\0\0\x10À\x05D\01©Iþ~^[¦0„!L\0€\rÀ\b„BL\x01\0\f„fL\x01ÁõÕ\f>\x05ßÜÕ\f>\x05ßÜÕ\x04„#>\x15ßÜ…\0Õ\x05„">\x15ßÜ…\x01P¯€\b\0\x15\0\x03>\rßàIþÑê\0\x15\0\x03>mßØžN\0¥\0\x01¦4… ®v„!\x10£\0\x05·&\x10“\06L\0À5ŒÎ€&\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¶sÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¶œoüÿ\x01\x01û\0\x02„F€\x1fIûjº§r¦q§:¦9@RÀ\b@\x10 \b@B@\b@\0 \b¦ð¦¸˜i˜ ˜K˜\x02L\x10@\x18¦s¦;L\x10@\x14¦5\0“€\x05¦´¦|@\0 \b@” \b˜\x02‰!@”€\x03@”€\x13\”€\x01Õ\x02… T”€ÿ/ÅßÔOÂ\0\x05Iþ\x15ƒ€.\x05j²„AL\x01@\x11>\rà\bœDIþ’¬€ –Œ>\x15à\x0eÂ\x06B\x10ˆ\vœJ>\x15ßÝ.\x15µõ„aL\x11€
Á\x12„\x02L\x10\0&„CL\x11@?Õ\x18IþÍ€ €ÀÈ\x06\0\x0f€\b„aL\x01À5\0\x0f€\b„AL\x01@-L@-É).\x05µõL\x04À&Õ&Iþ¶€ÀÈ\x06\0\x0f€\b„aL\x01À\x1f.eßÜ„\x01L`\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV·ûÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¸%oüÿ\x01\x01û\0\x02@\x17.\x05à\x0eT\0\0\x02È\x04„!LÀ\x06„ <\x1fwöÕ
\0\x0f€
€?Iÿ®±À\x06<owöÕ\x04„ÁÕ\x02„À.\x05€ „AL\x01@M.\x15€¢L\x10\0ILa@G\0\x0f€\bÀ\x04„bL\x01À2>ßØ\0¤€\x06„ €	\x10\x1f€\x0fIý	•P\x14€\x0e€JP\x0f€\x0fIý\b\x1cÀ\x1f>m€ \0\x7f€\x0f¦6L\x03€\x10¯ö„á„@„\x01¯òF\x10\0 X\x10Š8€b€‚€ Iýï4<MY\a\0?€\x0f„\x04„!D OàÕ\r.\x15€ „\x01L\x10@\f\0?€\b<MY\aD Oá„\x04Ý$H\0\0ã„!L€À–Ld@”.\x05ßÌL\x03@<¢ïäA@¥\0\x13<ªïäN£\0‡F\x18\x10\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¹€ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¹¸oüÿ\x01\x01û\0\x02\x04€O@”œ\b“7Iÿ3Ãâ	é\x03N“\0
<\rwÏ„ œ\x01<\x0fwÏH\0\0n.\x05®íÀ\x04€*H\0\0h.\x05ßÍæ\x02é3.%à\x0eT\x01\0\x03À\x0fT\x01\0\x10È\f>}ßØ<=wðT\0ÏB\x01\b\vP\x13€0Õ\x12Iÿ®\x1e„aL\x01À\x19>}ßØ\0ƒ€6\0\x0f€	<=wðT„\0ÏP\x13€\b\x10ƒ€6„@\x1cIþ¥@\0 \x04\x10\x03€6Õ
<\rwðÕ\x03<\rwð€'„FIûio>}ß´\0?€	 ;„F\x103€\x1a˜\x02>\x1dßàIûib :D\x10 \0IÿÓ-„\x03D\x10 \0¨<<\x1fk©IþÔ%<\rS“T\0\x02\0À\v<\rSŒT\0\0\x10À\x06€)D\01§Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV»\x12ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV»`oüÿ\x01\x01û\0\x02|l„!„A<*ïäÉ\x19IþÍÓ<\x1dZ\r„\0Ý!<\rS“„bT\0\x02\0<?wñÀ\v<\rSŒT\0\0\x10À\x06D\01¨€&Iþ|OOÃ\0\x1d„\x01L`@\x1a<\rwïIþÎ\<\rwï\0\x10\0/É\b.\x1dj’.\rj“˜H!Õ\x03 \x10\0 >\rßØ®G<\x1dwžÝ!<=wÊ<-S“œÙ<?wÊT!\0\x02<\x1dwñÂ
<\rSŒT\0\0\x10À\x05D\01ªIþ|\x1dì\x14:oª„Ýž’\0:o¨¼F(\x10\0P`\0\x1c„\x02\x01\x04‘\0\vL\x10\0\a<\rkÜ„&L\0À\x1fF\b\x10\0\x04\x10\0\fB\x10À\vÁ\x03H\0\0ßB”è\vN’\x02\x17<-k\x19„뜑</k\x19„E 7\00\x01K\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¼µÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¼Ýoüÿ\x01\x01û\0\x02B\x01ˆs\x10\x10\x01NH\0\x02\vTD\0\x0fD0Í\x18@1\x0e–ÜË\x1aD \0\x17L\06„¬L‚€3„\rL€\00D\x10\0&L€€,D \07L\0(NL‚€%œ\x16L€A¿Õ  7\x02\x10\0šœI\x12\x10\0š.\x05$n„!L\0€\x06.\x05$dL\0À\x12 7\0\x10\x01mÁ\r\0 \x01K„%B\x01\x04s„ P\0\x01H®F„ëH\0\x01Ë@\x14´\b’=N\x12\x01e<\r[\x18„£Ø\v 7„E\0P\x01KB\x14¼\vB\x02ˆs\x10\x10\x01O w…E\0 K€\x01B\x01(sBT¼\v\0\0\x01OÐ]Ê\<\r[\x18„¦ÐX„§ÐV„¨ÐT<\x1dk\x1aB”è\vœI<\x1fk\x1a\”€\x01 7\0\x10\x01KB\0¨s\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¾2ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¾Woüÿ\x01\x01û\0\x02\x01N\0\x03\0\x10¡÷Iý˜“ w\0\x10mÁ)\x04s€\x0fÏ&\x04\0’N“\0#<=X»€(P\x03\x7fä„FÝ#€àD\x10\0\x17 7LpÀ	\0\x10\x01KB\0¨s\x10\x01NÕ\x0f\0\x10\x01KB\0¨s„!\x10\x10\x01N<-XºP\x03\x7fä€(Ý"„æ<\x1dS’T\x10€\x04N\x12\x01[<\rSŒT\0\0\bN\x02\x01U€(D\0\x10!H\0\0ìF\b\x10\0\x04\0\0\fB\0@\vÀ^[„\x05B\x11\0s„\0P\x10H®\x0e<\x1dS’T\x10€\x04N\x12\x01:<\rSŒT\0\0\bN\x02\x014€(D\0\x10#Iþ{\x10H\0\x01-B\x04è\vT¤ƒÿÈ\v@\x04¬\b’\x1eÈRDPÏ\x18@B\x0e—$ÄL„\x05B\x11\0s„\0P\x10H®\x0eÃ\a 7\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¿Âÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¿äoüÿ\x01\x01û\0\x02\x02\x10\0›œI\x12\x10\0›<\x1dk\x19TE\0ÿœI<\x1fk\x19<]X˜„$P\x03\x7fä„@T4\0ÿÝ%<\x1dS’T\x10€\x04Á\v<\rSŒT\0\0\bÀ\x06€(D\0\x10 IþzÒ<\r[\x18„#L\0À	@”¬\b“>L\0\x04„äÕ\x02„ë 7\0\x10\x01KN\x12\0á\0 \x01IN#\0Ý„EB\0ˆs„!\x10\x10\x01NH\0\0Ñ<=[\x18„‡L2@\f„£Ð	„\x05B\x11\0s„\x01\x10\0NH\0\0Â\00GË\x10T”ƒÿN’\0\r„ƒL\x02\0
„\x05B\x11\0s„è\x100NH\0\0´<=X»€(P\x03\x7fä„DÝ#€à„¤ 7×\x1a\0 \x01K„%B\x01\x04s„ P\0\x01H®F<\x1dS’@\x10”\x02N\x12\0š\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÁAÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÁzoüÿ\x01\x01û\0\x02<\rSŒT\0\0\bN\x02\0”€(D\0\x10$Õ+\0\x10\x01KÉ\a\0\x10\x01OV\x10€\x01\x10\x10\x01O 7„%\0 \x01KTE\0ÿB\x01\x04s„!\x10\x10\x01N<]X˜P\x03\x7fä„'„@T4\0ÿÝ%<\x1dS’T\x10€\x04Ám<\rSŒT\0\0\bÀh€(D\0\x10\x1fIþzCÕb ·\0A\x01K@\x04¬\b„eB"\fs’\x1e„\x10\x11\x01NL\x02@\x10 wB$¼\v\0\x10lL €	<\x1dkg•ä˜L<\x1fkgÕFB\x14è\vÉ\x02È\x0e<\x1dk\x19„ëœI<\x1fk\x19 7\x02\x10\0›œI\x12\x10\0›Õ5 7B”¼\v\”€\x01\x10\x01lÕ) 7\0\x10\x01KÉ%@\x14´\b’=Á\x10\x05ç\x04è\r.\x15k;É
<-[\x18„c\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÂæÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÃ\voüÿ\x01\x01û\0\x02L!€\x06\x10\x10\x01N„èÕ\x02„ä 7„%\0 \x01KB”¼\vB\x01\x04sP\0\x01H¦GLÀ	„ ®FÕ\x05„äÕ\x03Dp\0\x16€\a:o¨„Ýž’\0;ÿü¼ïü–\0Iü“.ì\x04;ÿü„Ýž:\x0f”<:o ¼ïèPo€,P€@:\x13\x14 €€€ÿ:\x04\f\x04:\x03Œ$€\x04:\x13\x14\0µ\b·\aIü®ú’\0ì\x18:o „ì\x18Ýž:oª¼ï´\0@\0!>-³¼P`\0 P€D´\0P1\0Ô—$€(@q\x10\x1a@q^[IþÌ \0\x04\0\x01P£\x7fô®2P\x1f€\x1c„F€
Iþûs<\x1dS“\0$\0\0T\x10„\0Á\v<\rSŒT\0\0\x10À\x06D\01È„ IþyêQÏ€D\0\x0e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÄbÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÄ›oüÿ\x01\x01û\0\x02\0\0æ\x02Nò\x01ö\0\x1e\0\x03P\x0f€\x1cIþÍg.\x05µöÀ,Iþ‹´\0“\0\x06\0N’\0#P\x13\x7fø€
IþŽpT\x10\0\x03®7Á\aB\b\v"T”€ÿÕ\x03\0ž\0\x01QÏ€\x1c\0\x0f€E€<IÿÿyÀkN‚\x01Ë€
€<„FIþû+Õe\x10“\0\aÕ`¦6À\x06€
P\x13\x7føIþŽJ®7\0“\0\aT\x04€\x03À	B”ˆ\v"T”€ÿP\x13\x7fôÕ\x05\0Ÿ€EP\x1f€\x1c\0ƒ\x7fü\0#\x7fû§J¦	@„@\b@! \b@RÀ\b@\0 \b\0C\x7fú¦ÈˆH˜(˜”˜\x03L A’\0#\x7fý¦\vL A¦\r\0C\x7fÿ¦Œ\03\x7fþ@\x12 \b@\0 \b˜K˜\x02–I–\x01L\x10A}\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÅúÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÆ\x1eoüÿ\x01\x01û\0\x02¦6À\x14P€\x1c\0\x0f€E€(Iÿÿ\x1fÀ\f¦0–\x04L@	€
€(„FIþúÏH\0\x01z¦0L\x04ÁeH\0\x01uN‚\x01a.$¢Ÿ<\rm\x01„ Õ\x14´`œIT1€\x02Ã\r\x043\x7fý\x04@\0RL2@\b\x020\0¦\x02C\x7füLAJP\0\x01dâ"éìH\0\x01Y¦6ÀlIÿª+„!L\0À\x1aQÏ€0:\x0e\f\x04_PO€\x1c:\x05\f$P\x03\x7fà:\x12\x14\0\x05Î\0\0\x15Å\0\0\0£\0\aIÿþÝ@\x05\0\x04®7¦1æ\x02é
\0\x0f€FP\x1f€"IÿþÇ„ @€€^[\0¯€FQÏ€"€
€<Iÿ©òÀ\x06¦7T\0\0\x12@€\0\x1aP/€ \x01ã€\x02¦y§T¦\x13Aï@\b@\x10 \b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÇsÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÇ–oüÿ\x01\x01û\0\x02@RÀ\b@\0 \b§8¦Òˆ>˜(˜L˜\x03L\x10@\x18¦{¦\x15L\x10@\x14¦\x17¦}¦–¦ü@\x10 \b@\0 \b˜K˜\x02–I–\x01L\x10@\x06¦1–\x04L \09€
€<Iÿþ…N\x03\0ØÕ1P\x0f€ \0£€\x02¦ù\0€\0\x04¦ƒ@¥@\b@1 \b@„@\b@! \b§x§\x02ˆjˆH˜Ý˜”L1@¿¦û¦…L1@»¦½§G¦Æ§<@! \b@\x02 \b˜”˜\x03–‘–\x01L @­¦1¦J–\x04L\x10@¨Õ\x03N‚\0¥F\b\x10\x02\x04€\0O@„\x1c\b“\x17Iÿ/\x01â\bé\x03Nƒ\0	<\x1dwÑœI<\x1fwÑH\0\0‘¦1æ\x02éQ¦7T\x10\0\x10ÉMT\0\0\x03È/Iÿ©p„aL\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÈíÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÉ\x10oüÿ\x01\x01û\0\x02€+P\x0f€ \0£€\x02¦¹§D¦C@¥@\b@! \b@RÀ\b@\x10 \b§8¦ÂˆJ˜i˜”˜KL À/¦»¦EL À+¦}§\a¦†¦ü@\x10 \b@\x02 \b˜K˜\x02–I–\x01L\x10@\x1d¦6À\x1a\0\x0f€D„L\x02@\x04IþU§÷\x043\x7fùTs€Ï¯÷T\x04€\x01P\x13\x7fô„@\x1cIþ‹É@\0\x1c\x04®7Õ\a\x04\x03\x7fù€'„FIþù\x04\x03\x7fù„FP\x1f€\x1cœ\x06Iûd\x04\x03\x7føD\x12\0\0IÿÎYF\b\x10\0\x04 \x03ÀB!t	F\x18\x10\x02\x14 \x03À„\0\x14\0€	„\x01\x04\x13\x7føD2\0\0\x10\0€.„\x03\x14\x03\x7fú<\x1dS“T\x10„\0<?k©Á\v<\rSŒT\0\0\x10À\x06€(\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÊdÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÊŠoüÿ\x01\x01û\0\x02D\01ÅIþw‡<-S“\x04\x13\x7fúT!\0\x02Â\x17<\rSŒT\0\0\x10À\x12D\01ÉIþww’\0Õ\f…\x01HÿþŽP\x1f€D¦\b„L\x02\x7fDHÿþ£ìL:oª„Ýž;ÿü¼ïüIü•\x1d’\0ì\x04;ÿü„Ýž:o˜¼ïø€À<MY\a„!„\x04D 0\x01€fÝ$D\0\0~L`\0(D\0\0ÌL`\0$D\0\0îL`\0 D\0\0ÈL`\0\x1cœ\x06L`\0\x19Œ\bL`\0\x16€†<][\x13<mk¨„\0F\x10\0®X\x10ˆÜF \0®X!\bÀD0V	¶ßIúØ\v’\0ì\b:o˜„Ýž:oª¼QÏ€\x18ïì\x04\x10\0\x0f\x15þ\x7fö„J\x04`€\bPp\0(La@+\0€€H„b\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVËëÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÌ\x0foüÿ\x01\x01û\0\x02T„\0ÿLÀ\x19D\x10\0\x19Iþìº<\x1dw¼<=S“œI–Ü<\x1fw¼Ã
<\rSŒT\0\0\x10À\x05D\00iIþvô„Ë }\x10€€H<\x1dw»œI<\x1fw»H\0\x01\x0e„@\x10 €H¡AÅ\x0eF\b\x10\0 ý\x04\x10\x03Ç\0\x01€=B\x10È\vL\x10\0\x04>%$iP\x03ÿØFˆ\x10\0IþËû€ÀÕ\v¦|\x04$\x03ÉÄ\x0e–IÀ\fD\00jIþw-<MS“<\rSŒ—$T\0\0\x10\x04¤\x03ÉF8\x10\0T¥\0\x01X1$N£ÿ焤´\x03LbÀÕB\0\b\vN\x02\0Ñ =\x15þ\x7f÷€*\0\0G\x14>\x7fõP\x04€\x0eT\0\x01øAÿ€\x01€\x1f€I\x15þ\x7føIþøŠF\b\x10\0\x04\x10\x03å\x04\x0e\x7fø€I\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÍdÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÍ‹oüÿ\x01\x01û\0\x02Iþøc„\x01€*P$€8Iþ!\x04>\x7fõN\x02\0“´ÀP\x04€6®1„\x01®2D\0\0#®3„.D\0\0i®4®pF\b\x10\0\x04\x10\x03Ì\x14>\x7fõD„\x1e\œ5Ý(F\b\x10\0\x04\x10\x03ÍP\x03\0	Ý(F\b\x10\0\x04\x10\x03ÎP\x03\0\rÝ(F\b\x10\0\x04\x10\x03ÏP\x03\0\x11Ý(F\b\x10\0\x04\x10\x03ÊP\x03\0\x15Ý(F\b\x10\0\x04\x10\x03ÐP\x03\0\x19Ý(F\b\x10\0\x04\x10\x03ÑP\x03\0\x1dÝ(F\b\x10\0\x04\x10\x03ÅP\x03\0!Ý(F\b\x10\0\x04\x10\x02ƒP\x03\0%Ý(F\b\x10\0\x04\x10\x03ÔP\x03\0)Ý(F\b\x10\0\x04\x10\x03ÈP\x03\0-Ý(\x04>\x7fõP\x03\01´#Ý(D\0\0V\x10\x03\05\x10“\06\x10£\07Õ\x18§	¦Š\x04^\x7fø\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÎÞÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÏ\foüÿ\x01\x01û\0\x02@B \b82¨\0¦K@!@\b@"\b\x04@!\f\x04@\x10à\b@\x11\x04\x04DÝ(@¥\0\x13\x04\x0e\x7fø@\x10(\0P\x05\08˜0ãIéá„\x01„ Iþ“zP\x03ÿØD\x10\0\x1aIþë¢<-S“¦|–”Â
<\rSŒT\0\0\x10À\x05D\00kIþuà\x05þ\x7f÷„Ì }P\x03\x7fõ\x14`€\bæ\x02éf¦>„!L\0À%„DLa\0\x05„fLaÀ\x1f.\x05jÃÀ\b =\0\x10\0AÉ\x17\0\0\0BÈ\x14P\x03ÿØD\x10\0^[Iþëp<\x1dS“–LÁH<\rSŒT\0\0\x10ÀC€&D\00pÕ3F\b\x10\x02\x04`\0O<\rS“•·@\0<\b’\x1f’×À\v<\rSŒT\0\0\x10À\x06D\00r€&Iþu™Iÿ,w\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÐbÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVЇoüÿ\x01\x01û\0\x02â\x06é\x02Î^[P\x03ÿØD\x10\0^[IþëB<=wÒ<-S“œÙ–”<?wÒÂ\x15<\rSŒT\0\0\x10À\x10€&D\00qIþu{Õ
.\x05®íÈ\aD\0\0\x15IþîçIþÍ^[¦>„a>mÞìL\x01À	 3 t˜\x03˜K¨t¨3Õ
P\x03ÿØIþó¨\x04\x03\0\bœ\x01\x14\x03\0\b\x05þ\x7föQþ\x7fè:oª„Ýž:o¤¼ïü<\r[$À\x04<\rZ\x13Ý <m[$<k©Î\x06<\x1dYMD\0\0ˆÝ!\0\x03\0,Iþ–¡€à´\0@\x108\b’?Á\x05Ç\x04B\0D	¶\a<\r[\x13P\0\x7f7æ\vNò\0æ„!@\0€\fT\x10\x01ùN\x13\0¾T\x10\x06\0N\x13\0¸T\0\0\x02N\x02\0×>\x15jÆF\b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÑûÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÒ^[oüÿ\x01\x01û\0\x02\x10\0\x04\x03Æ\x04\x03\0\x0fB”ˆ\vN’\0\x04„*Õ\x02„$\x14\x10\0\b<\x1dS“T\x10€\x04Á\v<\rSŒT\0\0\x10À\x06D\00¤€)IþtýT\x04\0\x06À\x19N’\0\x05€\x06„$Õ\x03€\x06„'Iÿõ¥€\x06Iÿý΀\x06IþÇ\x01Ç	´\aT\x10\x01\x04É\x05À\x04B\0H\b¶\a„ <\x1f[$Iþí©\x04\x03\0\x0f\x04\0\b„\x04L@\x19„"L€À\x16F\b\x10\0 q„C\x04p\x03ÄL\x11\0\x05„\x04L\x10@\x05€\x06IþÉ/€\x06Tc€\aIþÊ°Õ\x02„À.\x05®í„!L\0À\x04H\0\0x+ç"é,<\rk©”ŒL\x01@\fœ\x15Iþî .\x05®í„!L\0À\x04H\0\0fIþÌM„ELa\0\bF\b\x10\0\x04`\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÓyÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÓ¨oüÿ\x01\x01û\0\x02\x03ÄTc\0\aD\x10\x01\0<\rk©L€À	„BL\x01@\x06„ <\x1fkµÕ	D\x10\x01\0L\0€\x06D\0\0\x15Iþï\rÎ\x16.\x05®í„AL\x01@\x03Õ>IþËÌF\b\x10\0\x04\0\x03ÆT\0\0\x03È\x02Õ2D\x10\0Ò<\x1f[\x13Õ2€\x06IþÐ\x06Õ.IþÅ×<-wÈœ‘<\x1d[\x13</wÈD\0\0ÌL\x10@
F\b\x10\0\x04 \x03ÆX!\0\x03\x14 \x03Æ<-S“–”Â\x15<\rSŒT\0\0\x10À\x10D\01jIþtIÕ\v<\x1dYMD\0\0ÉÝ!Iþé<\rYPÝ <\x1dYT„\x05Ý!ì\x04:o¤„Ýž;ÿü¼ïüIü±\x15’\0ì\x04;ÿü„Ýž;ÿü¼ïü–HIüœúì\x04;ÿü„Ýž:o¨¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÕ\0ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÕ$oüÿ\x01\x01û\0\x02–\0—ÈIþ•€€ÀN\x02\0´„\x1f¨7…\0\0£\x017<["€(\0\x03\x017Iý•í\03\x017„\x06„!D s@€‡IþtF.•k„\x01L@\x0fIúúŸL\x04À\b€(D\0\0G€HIúù\x19„ >\x15k.\x05k}T\0\0\x03À\a„ D\0\0P€AIúù\vD\x10\0\x1aLpÀ	´\x06X\0\x01\0¶\x06D\0\0=Õ\x1cž
Lp@\x1c s„\fL\x10@\x06´\x06X\0\x01\0¶\x06´&T\0€\x04È\x0f\x02#\0†.\x05µ\aœ‘à@é\bX\x10\0¶&D\0\0>\x10\x03\x01=´&T\0\0À\x19<-Sµ\0\x13\x01=€\x06Ý"<\r`“„#L\0À9.\x05›ÍÈ5.\x05¶\x17.\x15¶\x16˜\b–\0È.Iÿ²\Õ+\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÖ~ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÖ£oüÿ\x01\x01û\0\x02D\0\0\x1cLp@\x05T\x10\0É\x0e€\x06€'Iÿÿn<\x1dSò€\x06Ý!€\x06Iþ»Ÿ€ÀÀ\x1a<}lü\0\x13\x017\x02“\0^[D\0\0DBp€s<Xn‰)„\0Iþƒ+@”€\x13€@€)€\aÝ(„\0\x14\x03\0\x11<-S³€&„\x04Ý"„\0„?Iý÷¯<-ZQD\x10\0 €
Ý":o¨„Ýž;ÿü¼ïüF\b\x10\0\x04\0\x03ÆT\0\0\x03À\x11„\0Iÿ*3IþÄÏF\b\x10\0\x04\x10\x03ÀB\x10ü	\x14\x10\x03À„ >\x15µ\x13Iþ>ªì\x04;ÿü„Ýž;ÿü¼ïü–HIüæì\x04;ÿü„Ýž:oœ¼ïü€À\0\0\0.„!L\0À\x12F\b\x10\x02„à\x14p\0	„\x05<\x1dY\x1dÝ!F\b\x10\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV×÷ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVØ*oüÿ\x01\x01û\0\x02 DB\x10˜	¨DÕ%F\b\x10\0 ÄF\x18\x10\0X1€@¨Ä\x040€\bDIÿÿ@1\x02\x140€\b„\x02<\x1dY\x1dÝ!\x02s\0\x14D\0\x02q µLp\0\x03ž”F\x18\x10\x02F\b\x10\x02\x14 €\v\x14p\0	>\r³´\00\x01
\x04\x10\0\x0fD \0DB\x11ˆs ±„¨‰\0\x13\0.L\x12@\x06Œ\bIþ‚mÕ\f\x04\x13\0\x0eF\b\x10\0 Š¶@F\b\x10\0\x02\x10€–¨A<\x1dY\x1d„\x05Ý!F\b\x10\x02\x04@\0
\03\0.—%@B@\b@C\x04„\x03„!D \x10‘Iþs
ì\x04:oœ„Ýž;ÿü¼ïü–\0Iü¯ºì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü“ˆì\x04;ÿü„Ýž:oª¼ïôIÿ¢YIþÍ}\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÙ‚ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÙ¦oüÿ\x01\x01û\0\x02„!L\0À\x06IþÁ°H\0\x02UF\x18\x10\x02F\b\x10\x02X\0\0\x18\x04€\x04´@</[\x16@…\0>}c4>mN\x04AÄ \x05@\x0e$\x02T\x10\x04\0Á.D 	\0„$„\x02Iþrœ´'„\rÝ!Iþ%‹<\x1d[\x16F@@\0XB\x02\0@\x10\x04<\x1f[\x16´G¶*„\x0eÝ"\x04\x03\0\x10B\0h\vX„\x04\0<\x1d[\x13N\x02\x02\x01\x04\x03\0\vT\0\0\x04N\x02\x01ûD\0	\x01H\0\0ÓT\x10\0€Á0D 	\b„(„\x02Iþrl´'D\0\0\x10Ý!Iþ+p<\x1d[\x16F0(\0X1‚\0@\x10Œ\x04<\x1f[\x16´G¶*D\0\0\x11Ý"\x04\x03\0\x10B\0l\vX„\0€<\x1d[\x13N\x02\x01Ï\x04\x03\0\vT\0\0\x04N\x02\x01ÉD\0		H\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÚÿÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÛ)oüÿ\x01\x01û\0\x02\0¡T\x10\0@Á1D 	\x04D\x10\0\x10„\x02Iþr9´'D\0\0\x13Ý!Iþ-\x17<\x1d[\x16F@$\0B\x10¤	@\x10\x04<\x1f[\x16´G¶*D\0\0\x14Ý"\x04\x03\0\x10B\0p\vX„\0@<\x1d[\x13N\x02\x01œ\x04\x03\0\vT\0\0\x04N\x02\x01–D\0	\x05H\0\0nT0\x02\0Ã+„\x02D 	\x02€ Iþr\a´'D\0\0\x16Ý!Iþ,]<\x1d[\x16´GB\x10ä\b<\x1f[\x16¶*D\0\0\x17Ý"\x04\x03\0\x10B\0d\vX„\x02\0<\x1d[\x13N\x02\x01n\x04\x03\0\vT\0\0\x04N\x02\x01hD\0	\x03Õ@T\x10\0 ÁAD 	\x06„!„\x02óIþqÙ´'D\0\0\x19Ý!Iþ-{<\r[D„A\0\x10\0.ó\x01L\x11@\f\x04\0\0\x0e„%\0 \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÜ€ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVܧoüÿ\x01\x01û\0\x02\x01KB\x01\x04sP\0\x01H®Æ<\x1d[\x16´GB\x10Ô\b<\x1f[\x16¶*D\0\0\x1aÝ"\x04\x03\0\x10B\0`\vX„\0 <\x1d[\x13N\x02\x01.\x04\x03\0\vT\0\0\x04N\x02\x01(D\0	\aIþqŠH\0\x01"D@€\x10@\0\x10\x02À6D 	\fD\x10\0 „\x02Iþq”´'D\0\0\x1cÝ!IþyÜIþ%¤Iúùê´
´GB\0P\b¶
D0€\x10´*D\0\0\x1dB\x10ü\b¶*@„\f\x04Ý"\x04\x03\0\x10B\0t\v<\x1d[\x13N\x02\0ô\x04\x03\0\vT\0\0\x04N\x02\0îD\0	\rIþqPH\0\0èT\x04€\x0fN\x02\0äIþ$†È
´
F0\0ð@\0\f\x04¶
“$@”\b@”ð\x02UÄ€\x06„„MÂ@-D \b\x04€<„\x01Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÝÿÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÞ!oüÿ\x01\x01û\0\x02qI´'„\aÝ!<\x1dZN„\x01Ý!Iþ%²Iþ-Ê´'„\bÝ!\x04\x03\0\x0fB\0h\vX„\0\x04<\x1d[\x13N\x02\0 \x04\x03\0\vT\0\0\x02N\x02\0šD\0\b\x05Iþq\x0f€<H\0\0šT\x04€\bÀ$D \b\x06„(„\x01Iþq^[´'„
Ý!Iþ%>´'„\vÝ!\x04\x03\0\x0fB\0l\vX„\0\b<\x1d[\x13N\x02\0z\x04\x03\0\vT\0\0\x02ÀtD\0\b\aIþpèH\0\0oT\x04€\x01ÀDF\b\x10\0\x04\0\0\b@\04\b’\x1eÀ\x17\x043\0\x15F\x18\x10\x02F\b\x10`–Ü\x04\x10€\x0e\x04 \0(Ã\v\x04\x03\0\vT\0\0€À\x06–ID\0àIþq-„\x01D \b\0€ Iþp×´'„\x01Ý!<\x1dZN„\0Ý!Iþ&ê´'\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVßzÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVߝoüÿ\x01\x01û\0\x02„\x02Ý!\x04\x03\0\x0fB\0`\vX„\0\x01<\x1d[\x13À4\x04\x03\0\vT\0\0\x02À/D\0\b\x01Iþp¡Õ*T”€\x02N’\06D \b\x02„"„\x01Iþp®´'„\x04Ý!Iþ$\x17´'„\x05Ý!\x04\x03\0\x0fB\0d\vX„\0\x02<\x1d[\x13À\x11\x04\x03\0\vT\0\0\x02À\fD\0\b\x03Iþp|Õ\a„$Õ\x06„(Õ\x04„!Õ\x02„"´
FOÿ\x0fXB\x0fÿ@\x10À\b@\0\x10\x02@\x10€\x04¶*<\rl€„(L\0À\x04IþxÑ<\rl€„HL\x01@\x04… Õ\x05F\b\x10\x02\x04\0\x04@\x04 \x05–\x01@\0$\x02N\x03ýÀ<\rXÎÝ IÿŸèì\f:oª„Ýž;ÿü¼ïüIü“•’\0ì\x04;ÿü„Ýž:oœ¼ïü—€\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVàòÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVá\x12oüÿ\x01\x01û\0\x02€\x06IþÑÑ.\x05$h„!L\0À\aÎ\x05Iÿÿé>e$hì\x04:oœ„Ýž’\0;ÿü¼ïüIüŠ©’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü‰Ÿ’\0ì\x04;ÿü„Ýž:oœ¼ïü€ÀN\x02\0‚.\x15çÁN\x12\0~<\ryò\0\x13\0,\0\0\0,L\x10@v.\x05®õÈr<\rk¨„!L\0€\x11„CL\x01\0\x0eŒ/L\0€\vIÿÿÖÀ\x19<}k¨D \x01\0Lq@\x14<Mk¨D\x10\0\x10„\x03D \x10SœÌIþp!\0\x03\0,Iý\x01„ \x12\x10\x01\x15ÕLIÿÿ±À
<Mk¨D\x10\0\x10„\x03D \x10SœÍÕ&>\r®Ì\0 \0'„!L À#<Mk¨D\x10\x01\0L@À\x14<\x1dlü.U\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVârÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVâ¶oüÿ\x01\x01û\0\x02´¾D0\0DB\x12Œs Á¨C\01€-\0\x10€-L0€\x04\x10 \0!„\x03D\x10\0\x10D \x10SœÎIþoæÕ\x18 q„BL\x11@\b„A>%$g©ƒ„&Õ\x0f„AL\x11@\f.\x15´¾\0#\0,L €\x06©ƒD\x10\0@Õ\x02„ <\rk³„BL\x01@\x15„\x06L\x10@\x12<-Xê€\x06Ý"€ È\f€€D\x10\0\x10„\x03D \x10SœÏIþo¶Õ\x0fÁ\x0e„B</k¦F\b\x10\x02\x04 \0\x0e</I\x10„\x01>\x05$hÕ\x0f.\x05$h„!L\0À\aIÿÿ\x1a„ >\x15$h„ >\x15$g„ €\x01ì\x04:oœ„Ýž:o¨¼>\x1dç„\0`€=Nb\x01Ï\x02\0€(\x04`€\x11IýŒv\0´\0T\0\0\x04N\x03\x01Ã\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVä\rÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVä8oüÿ\x01\x01û\0\x02<\rk·\0\x13\0,\0\0\0,L\x10@\x12>\rƒ°\0 \0C\0\x10\0B˜Q–HÉ\x04\0\0\08È\x05„\0„!Iýðø<\rI\fÀ\x06.\x05$f„!L\0Àl>\r®Ì¡ÃLs@\x18´@„$L €\x14 \x02L\0€\x05„FL\x01@\x0e<MI\vŒ,„\x03D \x10“D0\0ÿIþoGH\0\x01µ>}$,´‡…!LD€\x06„\x02L@@LÕ\x1c@\x14\b„\x03D \x10S€aIþo3\0\x03\0.È\a„\x0fIþcï<\x0fI
Õ\b<\x1dZc€\bÝ!’\x01\x12\x04\x01\x15„"€\aÕ.”C„\x03€aD \x10SIþo\x19F\b\x10\x02\x04\x10\0\x0e<\rI\x10š\b”\x04’\x04æ\x10é\x1d<ŸI\f„@>%$f·'@\x14\b\x043\0\x0e„\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVåŽÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVå´oüÿ\x01\x01û\0\x02\x10!gD \x10S\x04C\0\x0e€a\x10’\x01F´‡Iþn÷Õ\x05>\r$,„!¶ <\ryñ¤@.\x05$xâ è\x17<-`ð„*L À\x05.\x05ƒðÈ\x0f<\x1dyò„\x02\0\x10€,IÿªæÈ\a„A</I\v€àH\0\x01E\0\x13\0,„\x03Iþ…ÖÀ\x0f.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01\0\x13\0,–\0Iþ…ÈÈs<\rI\v„BL\x01\0o\0\x03\0.„!L\0ÀCF\b\x10\x02\x04\x10\0\x0e<\rI\x10š\b”\x04’\x04æ\rè7>|¢œ¦x¦;˜IœK˜A˜\x01\0\x13\0,–\0Iþ…µ„!L\0À(\x04\x03\0\x0e\0\0\x01PÀ"\x04\x03\0	„C\0\0\0	L\x01\0\x1c\0\x13\0,€\x02Iþ…¡¦¸¦{˜’œ“˜Š\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVç"ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVçHoüÿ\x01\x01û\0\x02˜Š\0\x13\0,@–\x10Iþ…•@@(\0D\x10\0\x10„\x03D \x10SœÉÕCÎ\x02Õ$F\b\x10\x02\x04\x10\0\x0e<\x1fI\x0f\0\x13\0,„\x03Iþ…\x7f.$¢œ.\x14¢Ÿ˜’œ“˜Š˜Š\0\x13\0, –\x10Iþ…q@@$\0D\x10\0\x10„\x03D \x109œÉIþnQ€æÕ\x1f\0\x13\0,„\x03Iþ…`.$¢œ.\x14¢Ÿ˜’œ“˜Š˜Š\0\x13\0, –\x10Iþ…R@@$\0D\x10\0\x10„\x03D \x10SœÊIþn2„à<myò„!\0\x03\0.L\0À7Ïj"t\x01\x15Nw\0\x18<\rk³À\x05D%\0\0L\x01@\x04ŸùÕ\x02Ÿú—ûNw\0\v.\x05$lÀ\x14<\rk¨D\x10\x01\0L\0À\x0f„\x01<\x0fI\v\x14\x04\0I<M\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVè¡ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVèÊoüÿ\x01\x01û\0\x02k¨”D„\x03D \x109œÊÕ,„\x03D\x10\0\x10D \x10SœË€‡Iþmù„À\x12t\x01\x15Õ7>­$(Ç\aD\0\0\x1eIþb°¶
Õ-´
IþbÀ\x15D\0\0\x1e<myòIþb¤„¡>U$e<Mk¨¶
”l„\x03D \x109œËIþmÕÕ\x16.\x05$eÀ\x12Ÿ„£>e$e<Mk¨<_I\v€\x05D\x10\0\x10D \x109œÌ<myòÕê€Ç>}ƒ°\0\x03€8À(<\ryñ¤@.\x05$xâ é! ¼„\x0fL @\x1e.\x05$vÈ\x1a.¥$u„!L À\x16\0ƒ€4Nƒ\0\x12€\bIþ}
P \0\x14<=ZW <€(Ý#<\x1dRÍ>¥$v„
Ý!€æ€\a:o¨„Ýž;ÿü¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVê"ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVêKoüÿ\x01\x01û\0\x02ïüIþÕµ’\0„!L\0€\x0f<\rk¨À	„"L\0€\aV\0\0\x0f\\0\0\x01Õ\x02„\x01–\0ì\x04;ÿü„Ýž:o¨¼T\0ÿIþ5X„À@>e$—>}®ÌIþ_:\x10c€&P\x03€\fIÿžV€ÀÆ\x0f.\x15k:.\x05k;˜\b–\0N\x02\0ù<\x1dj?„\x02Ý!H\0\0ó.\x15k:.\x05k;˜\b–\0È\x05IýŒ%\0À\f<\x1dXÕ„\x01Ý!\0È\r.\x15´¾>\x15®ìÕ\b.\x15´¾<\rj=\x10\x13€ Ý .\x15k:.\x05k;˜\b–\0À\x10„\x01L€@\x0e<\rj7Ý €àÀ	€(Iþ6Õ€ÀÀ\x04H\0\0À„àIý‹øÀ%„!L€À#.\x15²HL\x14@\x05<}l‰Õ^[\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVë¨ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVëÊoüÿ\x01\x01û\0\x02<\rI\x11Ý €àÀ\x16<\x1dj<„\0Ý!€àÀ\x10IÿÔÔ€àÈ\f<MY\aF333X1ƒ3„\x03„"D t\bÝ$<-Xé€)€\aÝ"€ÀN\x03\0>}®Ì.\x15´¾\0\x03€ L\x10\0\f\x04ƒ€\x06IýñA@\x04\0\x01”\x04’\x04¨?Õ\x06F\x10ÿÿX\x10ÿ¨\x7f<=kºæiè\x17.%®ì<\x1dlüD\0\0DB\x11\0s–Ù\0@€.„\x03@B@\b@B\b\x04D\x10\0\x10D \x10TIþl¼<-Xë„ „\x06Ý"ÀXIÿý"Iÿü`€ÀÈRIþ^‚„\x01L @\x0fF\x18\x10\0\x04\0€\b@\04\b’\x1eÀ\x06>¥®ñDp\0 Õ?€Ç„\0\x10\x03\0%<-XÚ€)P\x03\0\fÝ"€àÈ3\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVí\x1eÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVíCoüÿ\x01\x01û\0\x02 1\0\0\0.È#Iÿÿ\0\0„\x01L€@\x1e<-Xë€'„\bÝ"L\x04@\x17.\x05$—È\x13´&<=XÙ€IP\x03\0\fÝ#€À<MY\aD\x10\0\x10„\x03D \x10R€fÝ$Î\x0eIþ3JÈ
.\x05$—È\a<\x1dXè€	Ý!€ÀÕ\x02€Ç€\x06:o¨„Ýž’\0:o¤¼ïü>}®Ì„ÀT\0ÿ\x10c€&Iþ^:>-°$\0\x01\x01Ö…\x01L\x04@\x05 \x11„ÈÕ	\0\x01\x01ׄ!L\0À} \x11D`\0p¨;.\x15k:.\x05k;˜\b–\0Àl<\x1dj?„\x02Ý!H\0\0g<\rj7Ý À \0 \0,>%kb¨;>…ke\x10ƒ€!D \x10A A@\x04\x10\bV\x10€\x02\x10c€$@d\x04\x1a@`\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVîšÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVî¸oüÿ\x01\x01û\0\x02\x04^[<MY\a\x10ƒ€&„\x03„"€fÝ$ÕCIýŠçÀ3.\x05²H„!L\0À\x06<\rl‰È\x19Õ*<\x1dj<„\0Ý!À%IÿÓÊÈ\r<MY\aF1\x11\x11X1\x11„\x03„"D t\bÝ$Õ\x16„A>%®ò<-Xé€)Ý"€À<MY\a„"„\x03D \x10B€fÝ$Æ\x05„!>\x15®íÕ\x0e<\rk³D%\0\0L\x01\0\x04„ÀÕ\x06Iÿü:Iÿûx€À€\x06ì\x04:o¤„Ýž.\x15k:.\x05k;˜\b–\0À³Hÿÿ’\0:o¨¼„À>e$—>}®ÌT€ÿ@Iþ]š\x10c€&P\x03€\fIþ.È€ÀÆ\x0f.\x15k:.\x05k;˜\b–\0N\x02\x01\x06<\x1dj?„\x02Ý!H\0\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVð\x14ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVð5oüÿ\x01\x01û\0\x02.\x15k:.\x05k;˜\b–\0È\x05IýŠm\0À\x19<\x1dXÕ„\0Ý!\0.\x05$˜À	<\rk¨È\x06<\rkö„&L\0€\x04Nƒ\0\x0f.\x15´¾>\x15®ì…\0Õ\b.\x15´¾<\rj=\x10\x13€ Ý .\x15k:.\x05k;˜\b–\0À\x10„\x01L€@\x0e<\rj7Ý €àÀ	„ Iþ5\x10€ÀÀ\x04H\0\0À„àIýŠ3À%„!L€À#.\x15²HL\x14@\x05<}l‰Õ^[<\rI\x11Ý €àÀ\x16<\x1dj<„\0Ý!€àÀ\x10IÿÓ\x0f€àÈ\f<MY\aF2""X1‚"„\x03„"D t\bÝ$<-Xé€)€\aÝ"€ÀN\x03\0>}®Ì.\x15´¾\0\x03€ L\x10\0\f\x04ƒ€\x06Iýï|@\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVñŒÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVñ°oüÿ\x01\x01û\0\x02\0\x01”\x04’\x04¨?Õ\x06F\x10ÿÿX\x10ÿ¨\x7f<=kºæiè\x17.%®ì<\x1dlüD\0\0DB\x11\0s–Ù\0@€.„\x03@B@\b@B\b\x04D\x10\0\x10D \x10TIþj÷<-Xë„ „\x03Ý"ÀXD\0\0 L \0UD\x10\0`L €QIþ4ǁ\0<\rI\x11Ý À\x0eIÿûNIÿúŒ€ÀÀ\b„\x03D\x10\0\x10D \x10”„aÕ9>}®Ì<=XÙ´'P\x03€\f€IÝ#€ÀÈ\x1dIþ1ôÀ\x1aIþ-É„!L\0€\x04•Õ\x13<-XÚ\x10c€%€)P\x03€\fÝ"€À<MY\aD\x10\0\x10„\x03D \x10U€fÝ$Nƒ\0\x14Î\x12.\x05$—È\x0f<\x1dXè€	Ý!€ÀD\x10\0\x10„\x03D \x10”\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVó\bÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVó,oüÿ\x01\x01û\0\x02„b€†Iþjš€\x06:o¨„Ýž;ÿü¼ïü–HIü”Bì\x04;ÿü„Ýž;ÿü¼ïüIü¦/’\0ì\x04;ÿü„Ýž;ÿü¼ïü„\x06IÿÿòÀ\x03„\0Õ\x10<\rk¶À\f\0\0\0,Iý‡VÀ\a´\0V\0\0\x04B\0\b\vÕ\x02„\x01ì\x04;ÿü„Ýž:o¤¼ïÌ>}¯T >Po€\x1c \0 €\x06Iþ\vÍIþ_+\0C\0\x0f\0\x13\0\x10\0#\0\x0e\03\0\x11@B \b@\x10À\b˜a˜J@Aà\b˜L”K’&”K”\x04’\x06”\x02’!šH”L’$@\0Ü	’e”ÝT!\0\a•	@"\b\x04@0\f\x04@@œ	„\0’/\x10\x13\0\x10>\x05kf\x10#\0\x0e\x10C\0\x0f\x103\0\x11P€\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVôƒÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVô©oüÿ\x01\x01û\0\x02\x10”\0\x12¶È\x14\x04\0\x03IýÕL„"L\0À&¦7T\0\0\x04À!IþBíÈ\x1e¡?„\x04L@@^[´\aIþ^­€ÀÈ\x15Iÿÿ…À\x12<\x1dj*Á\x06€\bÝ!À\x03€\x06Õ\x12„!>\x15kf<\x1dY”„\x05Ý!„\0Õ	<\x1dj)É\x03€\x01Õ\x04P\x0f€\x04Ý!ì4:o¤„Ýž’\0:o¤¼ïü>\x1d¯T<-k´ Î\0!\0,\01€,T\0ÿL1\0\x0e \x0fæ\x03é
D \0@</k¦„\x05¨\x0f„ >\x15kf>m¯T 6 ÷\x04P\0\x0e<MY\aD\x10\x04\0„\x03D \x10_\0rEÝ$ ÷ËD v„\x01\x10\0€.D@\0\x11 6\x04\0\0\x0e\x10@\x01E¡6 4\x04B\0\x0e¡u¶\x04©a.\x05j¤\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVõýÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVö!oüÿ\x01\x01û\0\x02À\x18>5j¤D\0\0\x18Iþ\x01¡\x02\x03\0\x10D\x10\0\x18”\x04\x14\x13\0	Iþ^V\x02\x13\0\x10¨1”\rIþ^P¨2Õ\x05\x04\x03\0	Iþ\x01Œ 3ž\x02Iþ^F¶\x06<-X× v„\x02Ý"„\x05¨7<\x1dY”„\x02Ý!„ >\x15kf w„\x04L\x10\0:æ%è\a„bL\x11€m„£ÙgÕ\f„\x05L\x10\0\x06„fL\x11ÀaÕMIþC\x16„\x03ÕYN’\0\x06IþC\x10„\x04ÕS„¢ß\x03Iÿþð>m¯T 7„!L\0€O´\x06Iþ]ïF\x10 \x1cÀ\a„\x01¨7„\0>\x05kfÕB.\x05kf„aL\x01À\x04„\x06Õ6„\x05Õ4„¢ß\x03IÿþÑ>m¯T 7„!L\0€\x17´\x06Iþ]ÐF\x10 \x1cÀ\a„\x01¨7\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV÷vÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV÷£oüÿ\x01\x01û\0\x02„\0>\x05kfÕ
.\x05kf„aL\x01À\x04„\x06Õ\x02„\x03¨7.\x05k\x0fÀ\x17Õ\x13€\aIþB!¡w„\x01Ð\x10´\x06Iþ]±„!„E@1\0\x1a@0€^[€\x03¨7Õ\x04„!<\x1fkÜ<\rkÜ„¡Ø\x04IþBû’\0ì\x04:o¤„Ýž:o˜¼€ÀIþ%Ñ„\x01L`@\x15.\x05k‡–\x04À\fF\b\x10\0\x04\0\0\b@\04\b’\x1eÀ\x04<\rYÍÝ Iÿ«yH\0\0‚„GLa@\x15.\x15k‡F\b\x10\0T\x10€\x04\x04\0\0
ÁkT\0\0\x03Àh„"L\0€f<\rYÎÝ ÕaŒJLa@&.\x15çÁN\x12\0<\ryò<\x1d[CL\0À{\x04\x10\0\x0e\00EF\x10 \x18<?I\r.%$f\x04\0\0\x0e\0\0\x01g\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVø÷ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVù\x18oüÿ\x01\x01û\0\x02L \0k>\x05$fÈ\x03„\x01Õ\x03<\rI\f<\x0fI\fÕ`Œ\x12L`@\r>\rlL´ ÉY<\x1d[\x18„HL\x11@U„,Õ'œ\x01L`@'F\b\x10\0\x04\0\0\vF\x10\x01€@\0\x04\x02L\0€F.\x15çÁÁB<\ryò<\x1dI\x0eL\0À=<\x1dI\rD Ï\x18T\x10€\x0f@\x11\x04\x0e–LÁ2\x04\0\0\x0e\0\x10\x01F>\r$0¶ Õ*„GLa@	Iÿ¥\x03>\r$8<\x1d[CÕõ„\x01L`@\x05Iÿ¥\x0fÕ\x1a„%L`€\x05„KLa@\x15.\x05$–„!L\0À\x10F\0 \x18.\x15$tœI–H>\x15$t\ð€`é\x04Iÿ¥
’\0:o˜„Ýž;ÿü¼ïü–\0Iüƒ²ì\x04;ÿü„Ýž:o¨¼>}²øT \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVúlÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVú¿oüÿ\x01\x01û\0\x02\0ÿ„ÀÕ	¦8ùã@è\x04€\x06Iÿÿ靱.\x05kN\ð\0<é\x05D\0\0OL`\x7fñ:o¨„Ýž:o¨¼ï¨F \0®X¥
8:\x05\f\x04P\x7f€<€ÇFP\0®XRŠ\x1cP€ :\x03\f$F@\0®XB
\0PŸ€\x04:\x05\b\0€fH:\x01„$F`\0ªXc\x05t¬˜:\x02Œ\x04:\x05\f$:\x02ˆ\0€j€©:\x01„$¬˜:\x02\f\x04:\x02Œ$:\x02\b\0€e:\x01„$D\0\0#¬˜Ý&D\0\0\x1fÝ&D\0\0\x19Ý&D\0\0\x14Ý&<\r[\x10T\x10\0\aÁ
T\x10\0\bÉ\aT\0\0\x04@t€^[@t\0\x1a„ÀÕ\x068\x03˜\0±Iÿ˜s.\x05kN\ð\0<é\x05D \0\x1aLe\x7fôìX:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVü"ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVüIoüÿ\x01\x01û\0\x02¨„Ýž;ÿü¼ïü–\0Iü’ì\x04;ÿü„Ýž:oª¼ï´F\0\0®X\0
„:\0\f\0F`\0®Xc
tP\x7f€8P_€(:\x03Œ F@\0®XB
dQÏ€\x18F \0®X¥
T:\x03\f\0PŸ€\b„À\x06:\x02Œ €©:\x02\f\0F@\0ªXB\x06|:\x0e\f :\x05\f\0:\x04Œ P\x0f€88p\x18\x02„ P¯€(8•\x18\x02€\a€AÕ\x13¦Øæqè\rP¯€\x1885\x18\x02œ‘â\x03é\x0682˜\x02â`é\x02œIæNè\x19œ\x01>­²ø@0(\0ã èéÕ+<-[\x10„!@\x10 \f@\x10ˆ\x04<\x1f[\x10Õ#¶ŸõùÝ$õ\x01´Ÿ–8ã'èø„!<-[\x10@\x10 \f@\x10„\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVý¥ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVýÌoüÿ\x01\x01û\0\x02@\x10ˆ\x02<\x1f[\x10\x01„\x04´L€\x7fºIÿ³°’\0ìL:oª„Ýžæ'éÕ<\x1d[\x10„\x01@\0 \f@\0\x04\x02ÀÝÕê:o¤¼ïäF\0\0®X\0
”€ :\x02Œ\x04€Ÿ€ßPŸ€\x14:\x02\f$:\x02„\0@0À	¶\x04\x104€\x02\x12\x14€\0Õ\x05\b\x03\0\x01IýðÊ.\x05kQ\ð\0<é\x03Ldÿ÷ì\x1c:o¤„Ýž’\0;ÿü¼ïüIüŸS’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü¢ù’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü¡ÿ’\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü‚ìì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü‚jì\x04;ÿü„Ýž:oª¼ïô<=x—>\r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÿ!ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÿGoüÿ\x01\x01û\0\x02²l„@ò¡\x01N2\0€P\0\0l</x—„À \00ÿà§H”Ü€CB"˜s˜’Tq\0\aâ£è\x06@1\f	Ç\x03œ™Õ\x02’C\x18 €\x01>}²øL\x13ÿê¦à§¡…\x02›s¦€¦ALT@\x0f?Ͳø™ÊP®\0\x01@Q¨\0áˆ|®˜ˆÜ¯èÕ\x1e„ãß\x1d@€„\0?Ͳø@‘\b\0‰\x02P®\0\x02@„\x14ö‰!@q¨\0@¡ð\0\x10%\0\0ˆÜQÎ\0\x01ˆ|@$”¶®˜\x10ƒ€\0®pœ\x01>\x1d²÷!L\0ÿÉ„À>-²ø˜2¦\0\ð\0,é\x13€\x06Iÿþ\x14Æ	ž1–\0Iÿþ\x0fD0\0NLa€\x0e±—°€\x06Iÿþ\x06Õ\a\ð\0(è\x04€\x06Iÿþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\0Ÿÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\0Áoüÿ\x01\x01û\0\x02±—°\ó\0OéÝIÿþ„àƒ‡Po€\x04\x15Ï€\x01€\a€&Iÿÿd€\a€&IÿÿVð\x01–\x04À\x04€\aIÿþrùD\0\0OLp\x7fí„à'Po€\x04\x14Ÿ€\x01€\a€&Iÿæ7ùD\x10\0%Lpÿ÷Iÿýô.\x05kOÀ\f>\x1dª\>\r®Œ„JIþçœ.\x15kN>\x15kQ.\x05kPÀ\b>\rªp>\x1dª\„JIþçŽì\f:oª„Ýž:oª¼ïô„à÷€ßÕMIýôMùÈ\x03—øÕG„àD\0ÿPo€\x04D†‰tEƉЄ@€\a€&òIÿÿ\f€\a€&Iÿþþð\x01–DÁ\x04€\aÝ<Õ%T\0\0\x04À"T£€ÿN¢\0\x13€	Ý(ð\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x02\x18ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x02Eoüÿ\x01\x01û\0\x02T\0\0 À\b„\x01L \0
P\x04ÿÿ–\0Ý(D \0NL¡\0\x0eœ9Ý(ð\x01T\0\0 À\aD\0\0ML \0\x04œ:Ý(!ùD \0OT”€ÿLq\x7fÆÕ\b.4¢œ€\a„ €_âãé®Iÿþ¤Iÿþx.\x15kQ\\x10€3>\x15kTì\f:oª„Ýž:o ¼ïð.u›Í.„¢œ>mkOÏ\a¦0À\aIÿþž¯ðÕ\x03„\x01®0.u¶\x16>mkPÏ\a¦0À\aIÿ±K¯ðÕ\x03„\x01®0>\x1d®Œ„JP\x0f€\x04Iþæü„\0IþtÅ<\x1dx—Á\x03<\x0f[\f<\x1d[\f„_L\x11\0\x05šA”L’$.\x05´ÎÀ\a\ð’Àè\x04IÿþŒÕ\x12>\r%\>\x1d¨ „JIþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x03¢ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x03Àoüÿ\x01\x01û\0\x02æÜ.\x05kOÀ\x03IÿÿO.\x05kPÀ\x03Iÿåf„\0P?€\x04>-®Œ˜B¦H8!€\0œ\x01L €\x04„\x02Õ\x04„ªØô„\0.%kQF\x10 \x1c\ñ\03é\x1d>-³´\01\x01\x19„>EkSÃ\x18D\x10\0DBD\x04$„ Õ\f\x041\0\x0f˜Ù¡YÅ\x05\0Q\x01'\x10Q€2P\x10€DL\x12\x7fõÕ\x04„@>%kSIÿþ\x19’\0ì\x10:o „Ýž;ÿü¼ïü–\0Iü€Ôì\x04;ÿü„Ýž;ÿü¼ïüIü~\r’\0ì\x04;ÿü„Ýž:o¨¼€ÁŽ)\0T¡\0ÿæ"è\x06\x04\0\0\x0e\0p\x01pÕ\x05„\x02Iý÷‰€à\ó€OèEIýصÀ\bD\0\0ÿ€(„@Iýó.À;Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x058ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x05}oüÿ\x01\x01û\0\x02ü „\x06L`\0\x17æÇè
„\x04L`\0\x1dæÅè\x1e„\x03L`@(Õ#„	L`\0\x14„
L`\0\r„\aL`@\x1eÕ\b€*€I€h€\aIÿ•4Õ\x15€\aIÿ•DÕ\x11€\aIÿ”„Õ\r€\b„%Iÿÿ«€'€IIÿ”Õ\x04€\aIÿ”‡€\aIÿÿ–’\0:o¨„Ýž:o ¼ïè<\rl›„!L\0€\x05„ÀH\0\0¸.%´¾<\x1dlüD\0\0DB\x11\0s<-X×D\0\0\x10Ý".\x05kƒÈ\x1aIþsÓ<\x1d['„_L\x11\0\bšA”L’$\ð™\x01é
„B>%kƒ„@>%k„<\x0f['Õ\x04„\a>\x05kƒIýçv€àIýçw€À.\x05´¾L\x03€\r„\x1fL`\0
\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x06Õÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x06ùoüÿ\x01\x01û\0\x02€\aIý袛°•´’ÄæÇéuIÿ—\x19Èr>\x1d²l\0 €ÛÂ\a ‰\x10\0€Û 
¨Š¨	<-Yè 	P\x10€LÝ"„A>%$—À]”\x14IþXØ>-kƒ¦PžÊ–Ø<\x0fI1ædè\x04œI®PÕN„\x06L\x10\0\x05„\x01L\x10@\x06„'>\x15kƒÕD<mx—„\0®\x10Æ@.\x05´ÎÀ\v„#<\x1fj}<=)¡„ D\0\0I€AÝ#.\x05khÀ\x15>m²l¡ñPc\0L\bC\0\x01\b3€\x01„!„\x03D \x10Iþcè>\x1d²ØL`ÿôÕ\x19F\b\x10\x06\x04@\0Ø„!„\x03D \x10D0ƒ\Iþc×F\b\x10\x06\x04@\0Ù„!„\x03D \x10D0ƒ`IþcË„ÁÕ\x02„À\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\bOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\bˆoüÿ\x01\x01û\0\x02„"<\x1fl›>}²l´G„\x02L @\x17<\x1dXØ„\x01Ý!<\x1djID0\0\x1f„\0@ \x18^[@!˜\x1a¶\aÁ\aPs€Lòƒ÷€\x1fÝ!ì\x18:o „Ýž;ÿü¼ïüIü”\x13’\0ì\x04;ÿü„Ýž:o˜¼>m¯¬ 5IþX9À^[Iÿ“X.\x05çÁÀ\x06D\0\x18\0IþXMÕ\f.\x05$aÈ\x04D\0\x10\0Õ\x04\x02\x03\0\x1a”\x04IþXA¨5Iýû„<\x0fI	<\x1dXÒ<\rkóÝ!<\x1dY”„\x02Ý!<\rkó„$IÿUô’\0<\x1dY©„\bÝ!:o˜„Ýž:o¨¼ïè>m¯¬\x043\0\vT€\0ÿËI.\x05´òÀ1.\x05$c„L\x02@(>5$cD\0\0\x18IýûP.\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW	áÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW

oüÿ\x01\x01û\0\x02çÁD\x10\0\x18<\x1fI	À\x06D\0\x18\0IþX\x03Õ\f.\x05$aÈ\x04D\0\x10\0Õ\x04\x02\x03\0\x1a”\x04IþW÷¨5<\x02×ð”\x05IþWñ<\x0fkñÕ
<\rI	Iýû,Õ\x05D\0\0\x18Iýû'´\x06IþWâ¨3<-X×\x04\x13\0\b„\0Ý"<\x1dY”„\x02Ý!„\x03\x14\x03\0\v<\x1dk´<-kó\0\x10€,\0!\0,L €\x10<\rköžCæ"é\x04„,L\0À\b„$<\x1fk¦„#<\x1fkö<\rköž\x06æ\x03è\x05<\x1dY”„\x03Ý!N‚\0\x05Dp\0\x11Õ\a<\rkó\x04\0\0\x0e\0p\x01E<MY\a\x043\0\v„\x03D\x10\b\0D \x10bÝ$\x043\0\vË7.\x05´òÀ\x11\x04c\0\f„ˆLb@\x05D\0\0\x18Õ\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\vrÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\v’oüÿ\x01\x01û\0\x02„\bIýúÏIýúÑ<\x0fk÷Õ\x05D\0\0\x18IýúÆ>m¯¬\x02\x03\0\x1a”\x04IþW}\x02\x13\0\x1a¨5”\rIþWw¨6´\x06IþWs¨3<-X×\x04\x13\0\b„\0Ý"<\x1dY”„\x02Ý!„\x03\x14\x03\0\v>m¯¬\x04\x13\0\v…&L\x14€’æ'è\x13…CL\x15\0%æ$è\x06„\x01L\x10AYH\0\x01[„dL\x11€%„…L\x12AQH\0\0c…IL\x15\0åæ*è	„\aL\x10\0œ„hL\x11ÁDH\0\0È„ŠL\x12\0ÿ„\fL\x10A<Õ- 3IþW\x15À\x03H\0\0´IÿþÒH\0\x01+N‚\0	IÿþÌ„\f\x14\x03\0\vH\0\x01,”ZLpÀ“\x04#\0\bF\b\x10\x02\x04\x10\0\x0e \x15˜\bIýúÄ„H</k¦\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\fåÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\r\x0eoüÿ\x01\x01û\0\x02 1IþW\x10„%\x14\x13\0\v¨4H\0\x01\x13œÄLqÀ\f„H 1</k¦IþW\x01¨4\x14“\0\vÕ\x0e 3IþVÜÀ\a<\x1dYØ„\x02Ý!„\x01Õ\x02„\x04\x14\x03\0\v.\x05k\x0fN\x02\0õ„!H\0\0« 4IþVÈÀ\b 3IþVÄN\x02\0ÝH\0\0b<\x1dXÒ\x04\x03\0\bÝ!<\x1dY”€
Ý!\x04\x03\0\b„(IÿT4H\0\0UN‚\0\x0f<\x1dXÒ\x04\x03\0\bÝ!\x04\x03\0\b„(IÿT&„\aHÿÿšD@\0\x10Lr@\x12 2IþV¸„B</k¦¨7Iþ@:>\r³¼Iþq.„\bHÿÿ†„\x05HÿÿƒŒ	Lp@\x1c 2IþV¢„B¨7</k¦Iþ@$>\r³¼Iþq\x18<\x1dXÒ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x0edÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x0eƒoüÿ\x01\x01û\0\x02\x04\x03\0\bÝ!\x04\x03\0\bIÿR§\x14£\0\vH\0\0” 4IþVjÀ\r 3IþVfN\x02\0\x7f.\x05j¥Iýÿ\x12„\x01HÿÿV\x14“\0\vH\0\0€ 7IþVVÀÜ 3IþVRÀ\x02Õñ\x04\x13\0\b\x043\0
\x04\x10€\x0e\x04#\0	¨ÉÕYN‚\0\x0e<\x1dXÒ\x04\x03\0\bÝ!\x04\x03\0\bIÿRq„
Hÿÿ1Žðæâé\x13\x04\x03\0\b„E\x04\x10\0\x0e\00JB\x11ˆs\0\x10NÉ\a„+\x14\x13\0\v„"¨AÕI„(<\x1fköÕEŽðæâé\x1c\x04\x03\0\b„%\x04\0\0\x0e\0 \x01JB\x01\x04s\0p\x01NÏ\x10<\x1dYØ„\aÝ!\x04\x03\0\b„+\x14\x13\0\v„"¨A€\aIýþ´Õ' 7IþUþÀ\x1c 3Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x0fÛÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x10)oüÿ\x01\x01û\0\x02UúÀ\x03Hÿÿ•\x04\x13\0\b\x04C\0
\x04\x10€\x0e\x04#\0	©	¶A\x04\x13\0\b\x04\x10€\x0e\x10\0LIþ?Å„\x04HÿþÛ„	HÿþØD\0\0 Iüµû<mkö„\x01L`@#<\x1dXØ€\x06Ý!Iýÿ „"L\0À	<\x1dY”„\0Ý!€\x06Iýþx<mkóIýâ¨\0\x10\0\x0e\x04\x03\0\x0eT\x10€\a\x10\x10\x01L<\x1dj%„D€\x1fÕ\x1d„kLaÀ!<\x1dXØ„\0Ý!.%´¾<\rlüD\x10\0DB\x01\x04s„"¨AF\b\x10\x02\x04\x10\0\x0e<\rkó„@¶ <\x1dj$€\x1f¨ƒÁ\x02Ý!„"<\x1fköì\x18:o¨„Ýž’\0;ÿü¼ïüIü~í’\0ì\x04;ÿü„Ýž:o¤¼ïô<\x1dlü—€\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x11\x7fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x11»oüÿ\x01\x01û\0\x02D€\0DB\x13 s.t¢œ„\0¨	P\x0f€\x04Iú¨Ä<\rlü„!Õ\x02–X€@B  sœÉâ'è\x03 ‘ÂøL\x13À\x15>\x1d®˜ ŠD0\x01\0L!À\x05„A¶AÕ\x03„A¨‰.%´¾€(B\x01\x04s„ ¨Að\x01Iú¨µ€\x06IþR4„ >\r(88\x10\x18\b„?>\r'ð8\x10\x1a
ì\f:o¤„Ýž;ÿü¼ïü„&L\0À
F\x18\x10\0\x04 €
’B”’\x14 €
Iþ\x18 ì\x04;ÿü„Ýž:oª¼ïôF(\x10\0\x04\0\vP`\0\x1c@\x04,\b’\x1e¶\x1fñ„c\x01Ã\0\x10T”\x03ÿL\x01ÀXõ\x01„\bØ\x06F\b\x10\0X\0
`Õ\x05F\b\x10\0X\0\x0f”´\0<-j>¤@€\x1cÝ"\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x13\x11ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x13Ioüÿ\x01\x01û\0\x02€\x1cIý}>\x02\0\x01\x1d\ð\0Cè\x06F\x10\0–X\x10„°Õ\x1c@\x10 	D \0\x7fL\x11@^[@\0\b\x02æ\x12è
F\x10\0–X\x10…88\x10\0L\x14À\x0fÕ\x04\ð\0#è
Ž\x12F\x10\0–X\x10…\8\0\0L\x04€# w„E\0\0KB\x10\bs„\vP\x10H¦ÏV1€\x01®Ï w\00KB\x11ˆs„@P\x10H®ŽH\0\x01š.\x14¢Ÿ.¤¢œ‰ACT¥\0ÿÕ\x02…B<\r[\x18„cL\x01À\x0f´¿Ð0ð\x01„(L\0„P\x03\x7fä„!Iþ\x05éH\0\x01}„FL\x01\x01z„gL\x01À\x11´¿„\x03Ð\x1cF\b\x10\0\x04\x10\x03å\0\x03\0\x10€I„bIþX\x0eH\0\x01h„(L\0À\x0eIþ5È
F\b\x10\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x14«ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x14Íoüÿ\x01\x01û\0\x02\x04\0\x03å€)Iþ6_H\0\x01Yç$éX.\x14¢Ÿ.\x04¢œ˜\x01œ\x03L @S€\x1cIý|°F(\x10\0\x04A\x02˜>-(\x18¦ã¦b@1 \b@\x11„\x04¦Ð„¡Û\x03¤ÓÕ\a„¢Û\x03¤ÒÕ\x03Ã1„`¥Ñ\x02P\x01\x0eß,L0À+´\x1f„"L\0À/¦!¦`@\0 \b@\0\x04\x04P\x14ÿüL\x10@%œ$Iÿ>€@È\x1f w„e\0@K„\vB\x12\fsP\x10H§\x0fVB\0\x01¯\x0f w\0@KB\x12\fs\x10 NH\0\x01\a>=((L!€\x06ŒHÕÁN’\0<.\x14¢Ÿ.\x04¢œ˜\x01œ\x03L @\b 7¡ÅÇ\x04\x12“€\x06Õ\x1f€<€
€IIþxÁ€à.\x14¢Ÿ.\x04¢œ˜\x01œ\x03L \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x16&ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x16Eoüÿ\x01\x01û\0\x02@\x12<\x1dS’@\x10¼\b’?Á\v<\rSŒT\0\0\bÀ\x06D\0\x10-€'Iþ_\x10@44\b’}Ë\bÏ\x03€gÕ „\x01\x10\x03€
Õ\x1c\3€\x01Õ\x19 7\0\0\x01mÀ\x13@\x044\b’\x1dÀ\x0f<-Xºñ\x01P\x03\x7fäÝ"<\x1dX€iœI<\x1fX€éÕ\x03„`€ã´_„£Ò\r@\x044\b’\x1dÀ	 wB\x04T\v\x100e w\x10\0FÃ) w„E\0\0KB\x10\bsP\x10H¦ÏV1€\x01®Ï w\00KB\x11ˆsP H„ ®V<-S’\0\x13\0\x10–”N"\0€<\rSŒT\0\0\bN\x02\0zD\0\x10"Iþ^´H\0\0tÇr@„4\b“\x1dN‚\0\b<-Xºñ\x01P\x03\x7fäÝ"P\x03\x7fä\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x17œÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x17Áoüÿ\x01\x01û\0\x02Iýûö.\x05®íÈ\x03Iþ\x03#´\x7f„¢\x103€	L¢€\x06 7 \x05È7Õ
ð\x01„(L\0À\aF\b\x10\0\x04€\x02˜Õ	F\b\x10\0ò\x01„h\x04€\x03åL!À\x18 ·<\x1dX¾\0\x01\x01HÝ!È\a 7\0\0\x01HIýû4È
 7\0\0\x01HIýû6À\x03\fÕ\x02\x14´¿„\x03Ø\a´\a€(€IIþà8Õ\x06´\a€(€IIþà\x1e.\x14¢Ÿ.\x04¢œ˜\x01œ\x03L @\x14.\x05€œÀ\x06€
€<Iþw\x11Õ\x05€
€<Iþ{Р7 EÁ\b„ ¨EÕ\x05€
€<Iþ{Æ„\x04ì\f:oª„Ýž’\0;ÿü¼ïü–HIü˜\x02ì\x04;ÿü„Ýž:o ¼„\0Iþmׁ\0„\0€ Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x19\x1aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x199oüÿ\x01\x01û\0\x02unÀv„\x01„ IþuiÈ\x03H\0\0p.\x15´ÿÉ(<\rm^[„"L\0€\x05„#L\0À\x19<\r;\Ý @\x04\0\x01”\x04’\x04<rÚO’\x01â\aè\f<\r;\Ý ‹\0@„\x10\b“\x04@d\x04	›¾Õ
<\rm^[„$L\0À\x05IþbõÀK„À<\rXrF\x1f\x1füX\x10\x7f@\0\x04\x02È\x06IýÉX„"L\0€7IýÆ\aÈ3<\rk¦„!L\0À/<\rXVÝ À*<\rm€È'<\rXrB\0h\vÈ"<\rj\x0e„?L\0À\x1e.\x05¨~È\x1aÎ\x19<\rm^[À\x16IþbÇÀ\a>\r›Ú„&IýÏ£Õ\x13>\r›ÚD\x10\x7fÿIýÏœ„ D\0\x7fßIÿÿyÕ\a>\r›ÚD\x10\x06@Iýϐ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x1aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x1a½oüÿ\x01\x01û\0\x02:o „Ýž’\0:o¤¼ïô€À„\0€ IþtæN\x02\0ñ„\x01„ IþtàN\x02\0ë<\rm^[N\x02\0ç.\x15´ÿÉ\b„$L\0À\x06IþbŠN\x02\0Ý.\x05¨fN\x02\0Ù<\rX{Ý N\x02\0Ô.\x05›ÓN\x03\0Ð.\x15k:.\x05k;˜\b–\0N\x03\0ÈIý}ë€àN\x03\0ÃP\x0f€\x04IýââN\x02\0½<\rXVÝ N\x02\0¸<\x1dXh.\x05›ØÝ!Iý\x7fж\x1f€\aIþm\x04€à´?ð\x01€GIÿÊL¶\x1fÆ\x04âÀè\x02¶ß<\x1dRÑ€\aÝ!À\x05´?â\x01è\x02¶\x1fIþŸX´?€GIÿÊ8¶\x1f<=Xz€?„\x01€GÝ#.\x05›ÍÈ\x04.\x05¶\x16À
.\x05¨ˆIýÎ;\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x1c\x1fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x1cCoüÿ\x01\x01û\0\x02´?€GIÿÊ#¶\x1f´\x1fž\x01\ð\x7fþèw.\x15´ÿÉ\x1f<\rm^[„"L\0€\x05„#L\0À\x18<\r;\Ý š8”\x04’\x04<’ÚO’\x01â	è\f<\r;\Ý ›ø•ü’ä@c„	@d˜\x01Õ\x02„Àµ\x1fIþaîâ\bèPÎ!IþaýÀ\v>}k7¦8È\x04€F„\x06Õ0€\a„&Õ@´Ÿ„\x06„!D t@€fIþ](<\rk´È\x03€&Õ\x03\0\x10\0,´\x1fIÿþ¤Õ/µ\x1fIþaȘ\x06â\bè).\x05´ÿÈ&>}k7\0ƒ€\0Nƒ\0\x15D tA„\x06„!€h€†Iþ]\x06€\x06€HD\x15³t€b€‚„¡IýÎÙ®8Õ\r„!„\x06€aD tA€†Iþ\ó€\a\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x1d™ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x1dáoüÿ\x01\x01û\0\x02€&IýΓì\f:o¤„Ýž’\0;ÿü¼ïüIü—\x19’\0ì\x04;ÿü„Ýž:oª¼ïü>m²\0´æ„\x04\x04“\0\x01Lp\0xäåè	„!Lp€\x13„bLqÀ”H\0\0kŒ\x1cLp\0|”CLp€yD0\0\x10LqÀˆH\0\0n.…ƒõNƒ\0O€\bIþl"ƒ€ 3€<IþQ?@À\b<\x1dXØ€\aÝ!·\x06H\0\0q\x04ƒ\0\x03‹\x1c@„\x10\b“\x04“\x02\x14ƒ\0\x02IþaMâ\bé\b<\x1dXØ€\aÝ!·FH\0\0]<\rk¦D\x10\b\0¨5L\0€\a<-X×€)„
Ý"<\x1dY”„\0Ý!F\b\x10\0\x04 \0\bD9ÿÿ@!\f\x02\x14 \0\bF\x18\x10\0\x04 €
’B”’\x14 \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x1f8ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x1faoüÿ\x01\x01û\0\x02€
„\0IþkÛ<\x0fl†Õ\r<\rk¦D\x10\b\0L\0€/<-X×€)„
Ý"Õ(„$<\x1fl€Iþ\x19û 2„ ¨tIþb Iþ\x18¢„\b¶\x06Õ\x19Iýú{D\0\x01\0¶\x06Iþa†F\b\x10\x02\x04\x10\0\x1eX\x10€\x01\x14\x10\0\x1e<\x1dXØ„\x01Ý!„ <\x1fl€Iþ\x18;<\x1dl€É\x05<-Y\r„\x03Ý"ì\x04:oª„Ýž;ÿü¼ïü–\0Iüþì\x04;ÿü„Ýž;ÿü¼ïüIü‚U’\0ì\x04;ÿü„Ýž;ÿü¼ïüIÿÿó’\0ì\x04;ÿü„Ýž:o ¼ï°>}¨8Iþ[cT`\0\x0f¤>˜v˜\bIþPƁ\0´\aIþP¤È\x06´\a€(IþP‡È\x06<\rXr\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW Çÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW òoüÿ\x01\x01û\0\x02B\0h\vÈ\x12P\x03€\x0fIýÍ'„\x7fP\x1f€\x04„@<?j\x0e<=Wë¶AD\0\0OÝ#Õ\x19€\a¤FŒ\x0f˜qIýÍ‚Iÿÿ€ÀÈ\x05F\0 \0IýÂ@<Mj\x12–ñ„\x06„"D u\x01Iþ]Ã’\0ìP:o „Ýž;ÿü¼ïüIüM’\0ì\x04;ÿü„Ýž;ÿü¼ïüIÿÿó„\0IþrÚÈ\b€ <=)¡€AD\0\0=Ý#ì\x04;ÿü„Ýž;ÿü¼ïüD \0=L\x01@\x05IÿÿåÕ\x03Iúã@ì\x04;ÿü„Ýž:o ¼—À„\x05€ÁT\0ÿLp@\v¤\x0e„"IÿÛ¤6IýxzÈ\x06ÕV„HLq@GÕ\b\0\0\x02FIÿ’\x14Iÿ‘ÀÕK¤\x0eIý\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW"Lÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW"moüÿ\x01\x01û\0\x02xj\0 \x02F<\rlüD\x10\0DB\x01\x04s\x04\0\0\x0e\0\0\x01mÀ;€\aIü° À7„\x01„ „FIþtºÈ\x03„\aÕ4´ É\x04D\0\0\x1fÕ/„D¯È®‰¦°®Š\0#\0
®\0#\0\f®‹¤¶’H®Œ„A>%$dF\x10\0X\x10„̨A„\x01„ Iþx†„\0Õ\x13Œ\x0fLp@\f¤\x0eIýx*\0\0\x02F„@>\x1d'@8 €\b€\a€&€HIü´†:o „Ýž’\0:oª¼ï„§\x03¦Ä\0 \0\x05\0\0\x06§Ç\0P\0\bP/€p„@€€\x13D\0\b\v¯\x10®Ñ\x10¡\0\x02\x10‘\0\x03¯Ô¯UL€\0\x0eC@¥ \b‰D@¥\0\x13€
\x12¯€\x03Iýx\x16Õ\r\x10¡\0\x02¯\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW#Àÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW#åoüÿ\x01\x01û\0\x02®Ñ\x10‘\0\x03¯Ô¯U€\x02…@IýxAPŸ€\x04‡€D\x10\b\v€à\x12„€\0\x15Ä€\x04L€€å\ô\b\fè\aD@\b\x03L‚A\x06H\0\0‡JL‚€\x06œ\x0eL€@þÕ;È
„B€	€'\x14$€\x04\x10t€\bH\0\0rPƒ\0\x02\0\x04\0\0±¦p@\0 \b˜\x01ä\x06é\x02Õ\x11.%k:.\x15k;˜Q–HÁ\x0fT\0\0\x04È\f€
Iÿô„!L\0À\aD\0\0\x12\x14\x04€\x04Õ	\0\x04\0\0¦p@\0 \b˜\x01\x12\x03\x19P\x0f€\x04„ Iü¸\x19H\0\0~´‡„¤Ü\x10\x04\x03€]„!L\0À\f„L\x14$€\x04€	€<Iü¸\b€üH\0\0½.\x05³ÝT\0\0\x02È\x05Dp\0\x11H\0\0´¦ö§q¦r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW%;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW%_oüÿ\x01\x01û\0\x02§3¦´¦5Nr\0¦@\x10 \b˜i–IDPÿÿL\x12€¢@! \b˜¢–‘L"€œ@1 \b˜Ã–ÙL2€–€\aIÿ¸!€àN\x03\0’P\x0f€\x04€'Iü·ÕH\0\0‹\0ƒ\0\b§1\0£\0\x02¦3\0“\0\x04¦µ¦ö¦wÇx@¥ \b@” \b‰D‰ @¥\0\x13@”€\x13ãIé^[D@ÿþ@\x04\x02À\x16@a \b™–—±Æ\x11–³N%\0\x0f@„ \b‰\x01@„\0\x13@\x14\0\x11N\x15\0\x06@\x14\x18\0à é	D\0\0\x12D\x10\b\x03Iü®Ñ„àÕP\x02\x03^[„ªØ\f\x02\x03\x1cD\x10"÷L\0À\a\0\x03‚FIý¯\x0fÈ=€\a€*€I€f€ˆIÿ´³€àÈ8D\x10\b\x03Õ&À.\x02\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW&»ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW&Ûoüÿ\x01\x01û\0\x02\x01^[D@\09L\x02@\x10\x02\x03\x1cDP\x05(Ð%D\x10\x06\x11L\0€"D@\x05\x06L\x02@\vÕ\x1c„ªØ\a\x02\x03\x1cD\x10\f\L\0€\x15¦u€\aIÿ®‡€àÈ\x12D\x10\b\vIü®Õ\rž4€(Iü .€àÕ\a„âÕ\x05„ìÕ\x03Dp\0\x12€\aì|:oª„Ýž’\0:o¨¼ï P \0\x04\0\x05\0\0Pt€\x03¦¸@\0 \b˜\x02—‰–\x01\x12o€\x02IþzêD\x10 \x1f\0L`€0\ó  è	D\0 \vL`\0‘œAL`À§Õ\bŒ/L`€[œLL`À ÕY¦8æ\x02è
\0\x15\0\0æ"è\x06<-Y)Ý"€ÀÕ\x03D`\0\x12¦8È\x04Nb\0”€ÀP/€\x04©”€\x02„ Iü¶ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW(6ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW(]oüÿ\x01\x01û\0\x02H\0\0Š<}m€F\x04\0\0@s€\x02Ï)„\x01€'„LIþrÏN\x02\0{´@„.®P„*´@€Ç®Q„!´@®RD \0\x1f´`€'®›œ‘´`®œ´@¯Õ´@¯Ö´@¯×´\0Œ\bIü­Ÿ„\x01€'Iþv›ÕZIþ˜\x1e€ÀÀV„\0€ €@Iþ˜5ÕOIþnˆÕF„%\x10\x14€\x02È\x04D`\0\x12Õ\x11¦z\x10\x10\x01\0¦{\x10\x10\x01\x01„!§ü\x10\x10\x01\x03\x10p\x01\x02<\x1dSÎÝ!€À€\x06D\x10 2Iü­ÛÎ/\x04\x04\0\x01T\0\x01\0È+\x04\x04\0\x02„!L\0À'€\b€&Iÿ‘hÕ!<\x1dm€D\x03\0\0@\x10€\x02É\x13>\x15j³¦º¦|\0E\0\0¦û@! \b@\x10 \b˜”\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW)¹ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW)áoüÿ\x01\x01û\0\x02˜KL À\x05„!>\x15j³€&€	Iü§`€ÀÕ\x02„À€\x06ìp:o¨„Ýž:o ¼ïˆ…\0—‰€àD\0\f\x1a\x14€\x04\x12o€\0L`\04\ó\f^[è\x06D\x10\f\x03L`ÀXÕJœÂLa€\x05œ\x04L`@Qœ;§\x01¦Ã¦B§@@B \b@1 \bP/€l˜Ù™%¨Ñ¶‚V\x03\f\x1c€"\\0\0\x01IýÃ(<=fý<\x1dfúð„<\x1fI-D\0\f5<?I.L`\0:Õ1<\x1dI-<=I.L\x11À\x10IþX\b<\x1dI-<-I.T\0\0\x1fšš\b</fý<\x0ffú¦;€ßæ\x04è\x04IýÕ\x03D\0\0\x12¨4Õ^[„%>\x14§Ý<-)Y„\x05€ Ý"IþRK€\bÕ\x14\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW+8ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW+Yoüÿ\x01\x01û\0\x02€\a€&Iü–¥Õ\x0fŒ\x1eL`\0\x06D\x10\f_L`À\x04ð\x04À\x06€\x1f„ Iüµó„\0ìx:o „Ýž;ÿü¼ïü–IIü‚ì\x04;ÿü„Ýž;ÿü¼ïü–IIÿÿòì\x04;ÿü„Ýž:oª¼ïŒ€ÀP \0\x03œ·\0E\0\0§Q¦ÄP\x0f€d¯E¯\0®Á@€€\x13¦u#®B@” \b¦ö‰$®Ã@”€\x13¦®„/Ä¢Ÿ\ô‚\0è\x03‡€Õ\aQÎ\x01ÿAÎ$\aWÎ\0\x01OÂ\0\a€	„àIþycÕ\x06€	IýuA€à€\x1cT\x14\x03ÿ\ð€Fé\x04„ÁH\0\x01 DP\x04\x19L‚\f\ô\x04\x1aè\x15D\x10\x04\x06L€€ä\ô\x04\aè\x06ž‰LA…H\0\0°\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW,¬ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW,Õoüÿ\x01\x01û\0\x02D0\x04\x11L€\x1aZL‚Á|Õ\x1cœ+L€\0n\ô\x04\x1dè\x05žAL€ÁrÕND \x04(L\x01\x03D0\x04CLÁiH\0\x01bNr\x01k€\aIÿÒ\x01H\0\x01dÏ\x03H\0\x01c¦uæ"Nò\x01a\0\x03‚iL\0À\rœZ„\0Iü¬Œ€\a„(„@Iý^5H\0\x01C\0\x03‚dP \x7fÑ–æBé\fDP\03Ð	ž©L\x01\0\aœÒL\x01€\x04SØ\vD\0\0#D\x10\x04\x13Iü¬mD`\0#H\0\x018€\aIýeh€ÀN\x03\x012D\x10\x04\x13H\0\0yNr\x01(\0\x03‚[„!–\x04L\0À\x0e€(„\0Iü¬S€\aP\x13¨„@Iüù½H\0\x01	€\aIý\x05¬Õ\Nr\x01\x10\0\x03‚[T\0\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW.,ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW.doüÿ\x01\x01û\0\x02À&\0“\0\x05„AL‘@"€(„\0Iü¬7\x023\x0e„À\x12?€\x06\x10Ÿ€=¶ßP#˜\0\x03‚Fò‡<=Wë>-%œ8\x01\0\0€?\x10\x0f€>€FD\0\0#Ý#H\0\0ê¦u€\a„AIüû(€ÀN\x03\0âD\x10\x04\x1cÕ)P\x13\0	¦	¦H@\0 \bP\x7f€L˜\x01P\x1f€d¶'Iü•2\0\x13\0\x0e\0C\0\r\03\0\v\0#\0\f@\x10 \b˜L¨9¨ú¨»¨}€\a\0c\0\x0f\x10c€\x10Iÿ¯Ú€ÀN\x03\0¸€(Iü«æH\0\0³¦u\ô\0Nò\0¬P ÿíæCé\vDP\0\x1aÑ\b„EL\x11\0\x06D0\0)L\x11ÀžÀ\x05<-S¾Ý"Õ\x04€	Iÿ¤]€ÀN\x03\0•D\x10\x04\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW/¿ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW/áoüÿ\x01\x01û\0\x02ÕÜ\0#\0\f\0\x03\0\v@! \bP\x1f€L\0C\0	\03\0
˜P_€d¶¡¨„¨„@©I©
¨Ë\x10 €\x10€\x01Iÿ¯RÕ¼¦4\0\x15\0\0@\0 \b˜\x01–\x01€F>\x1d‚XIüüÿ\x02\x03^[„ªØ\x13\x02\x03\x1cD\x10\x173L\0À\x0e€\a„!„@IýŠF„\x01\x10\x03‚„„!€\aIÿ¨\x05>m‚X\x04\x03\0\x11Iüø9À\x1f€	Iýs½\0\x13\0@\x043\0\x11P \x01¨T\0€\x03P\x1f€ló›Iý¬‚À\x0e\x04\x03\0\x11F\óÿXRÇ@\0\x14\x02„ \x10\x13\0B\x14\x03\0\x11Ç\x12\x02\x03^[„*L\0À\x0e\x02\x03\x1cD \x14óL\x01@\b„ >\x15‚š„'<\x1f`§„@<\rWêD\x14êÔ€b€‚\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW17ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW1noüÿ\x01\x01û\0\x02„¡IýÈr„ÀÕ\x10„\x01Iÿ«QHÿÿS€\x06€(IüŸw€ÀÕ\x05„ÂÕ\x03D`\0\x12€\x06ìt:oª„Ýž;ÿü¼ïüIü†/’\0ì\x04;ÿü„Ýž:oœ¼ïüD ü“–I€ÀL\x11\0=âAé\x13D\0ü_L\x10\0wâ\x01é\x06D ü\rL\x11@ƒÕ3Œ\fL\x10\0#ŽZL\x11@|Õ#D üÉL\x11\0\x13âAé\x06D\0ü¼L\x10@qÕYD üôL\x11\0^D ýYL\x11@hH\0\0bœ\x02IÿŠuœ3Iÿ¬ˆH\0\0cœ2Iü¿\x15H\0\0^œ2IÿžþH\0\0Yœ\x03IÿŸ¯ÕT³\0s\0\f\0#\0\r\0\x13\0\v@!@\b\0\x03\0\x0e@s \b™ú™ù@\0`\b™ø\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW2Êÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW2ðoüÿ\x01\x01û\0\x02€\x06IüÕ™D\x01\0\x02Lp@<¦2ž\x01–\0\ð\0þé5„!„\x04Iþe¯<\x1dY”„\0Ý!„\0Iýóž>\r³¼Iýs(€ÀÀ$\0\0\x02FIü¸¨€\x06IýsSÕ\x1c¦3Iÿž_Õ\x18œ3Iÿ¡\x13Õ\x14„C>%´—„_>%´–œ\x03Iü¿Õ
<-X^[Ý"Õ\a€\x06Iÿ?\x0f’\0Õ\x02„\0ì\x04:oœ„Ýž:oª¼ïì.\x15³ÙF \0¦X!\bŒ>\rKX\x14 \0-T\x10\x04F \0¢X!\r|\x14 \0.Á\x06F\x10\0¡X\x10‡ØÕ\x03D\x15%p\x14\x10\0#F\x10\0¢X\x10Œ\b<\x1fXZF\x10\0ªX\x10ŠÐ<\x1fX™F\x10\0ªX\x10Œ\x14<\x1fX˜F\0\0¬X\0\x02@<\x0fR\b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW4Dÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW4ioüÿ\x01\x01û\0\x02F\0\0«X\0\x0f„<\x0fR\x02F\0\0¬X\0\x05\x14<\x0fR\x01>mKXIÿ¡qF \0ªX!\x03ì</XÍF \0ªX!\fÌ</XýF \0¦X!\x0e¸</YhF \0¢X!\vô</X-F\x10\0¢X\x10‡p\x14\x13\0\x13F\x10\0¢X\x10‡\¨t>\rkIIýÆž„@<\r[	€¢€b€‚F\x10\0§X\x10‡ÔIýÇ8>}K\x14>\x05kIF\x10\0X\x10ˆÐ<\x1fSô„a´§€ƒ„\x02F\x10\0§X\x10ˆ¤D'¼ôÝ%„`´§€ƒF \0¥X!\0ü„\x04F\x10\0¥X\x10ÔÝ%F\x10\0¥X\x10„Ü„
Iý×[F\x10\0«X\x10Š\b<\x1fXfF\0\0¤X\0\rÄ\x14\x03\0 F\0\0¡X\0\r€¨3\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW5Äÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW5ëoüÿ\x01\x01û\0\x02IÿÂ,F \0 X!\0 </ZIF \0 X!\0`</ZJF \0X!\x05„</X²F \0¡X!\x0eD</X‹F \0¡X!\x0e\b</X‡P\x0f€\fIúœôF\0\0¨X\0\x0fôIþOxð\x03Iú\x01F\x10\0¦X\x10,<\x1fX/F\x10\0¡X\x10ƒÌ<\x1fS¹F\x10\0 X\x10Ü<\x1fXXF\x10\0žX\x10†À<\x1fX·F\0\0¢X\0\x0eŒ<\x0fS8F\0\0¢X\0\r´<\x0fS9F\0\0¦X\0\r\x18¨2Iÿ’¶F\x10\0ŸX\x10À<\x1fZ6IÿƒXD\0\0\x10F\x10\0¥X\x10xIýÖâD@JJ<J¥…FP\0¥XRˆ¨<_XgFP\0¨XR†œ<_YM„ >UjzF@\0¦\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW7Dÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW7{oüÿ\x01\x01û\0\x02XB\x06d<OS'F@\0¦XB\x03,©>D@\0\x1e>EK	F0\0¦X1†(<?S&>\r%œ„ „HIþÖ<F@\0žXB	¤<O)¡F@\0 XB\vô<OY	>\r'ð„?„GIþÖ"„G>\r(8„ IþÖ\x1c„\0F\x10\0¦X\x10‡”IýÖ•F0\0žX1…h<?XYF0\0 X1‡„<?WüF0\0¨X1ì<?Y`F0\0¬X1ˆØ<?WìF0\0§X1ˆÌ<?YbF0\0§X1ˆ¸<?YcF0\0 X1†x<?X\x15F0\0¨X1†ˆ<?YN„\0F\x10\0§X\x10‚¼Iþ¡8F\x10\0ŸX\x10ˆÄ<\x1fZkF\x10\0X\x10ü<\x1fZlF\x10\0Ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW8Ôÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW8üoüÿ\x01\x01û\0\x02X\x10‹Ü<\x1fZWF\0\0¦X\0\x03\x14¨=F\x10\0ŸX\x10Šø<\x1fZnF\x10\0ŸX\x10ˆØ<\x1fZ;F\x10\0«X\x10Ž¤<\x1fWëIÿ‰?F \0ŸX!\x05¤</Z,F \0ŸX!\b°</ZrF \0ŸX!
¬</ZiF\x10\0¥X\x10„pF \0¥X!\0è\x14\x13\03</X_F \0¥X!\0Ð</X^.\x05$aF \0¥X!\0¨</X]F\x10\0¬X\x10…\0<\x1fR\x04È	D\x10\x15!<\x1aÚ\x16D\x10\x06\x11<\x1aÚ\x18FB\x01€XB\x06\x11FP\x01RXRX<OWï<_WðF@\0¬XB\x03è<OR\x03D@\b\0<OI-•!<OI.„Š>Eª}„e>5©ñF0\0¥X1\f…@<?\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW:Wÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW:xoüÿ\x01\x01û\0\x02RÆ>¥$“„h>5ªY>¥kO>¥kP„>¥k‚>EªÑ>¥$”„j>5ª|„…>E©ð„a„ˆ„Â>5ªÐ>EªX>eªi>eªhF\x10\0–X\x10Ž|„J>\r%\IþÕ\x1eIÿïÚF \0X!\b¼</YT>ej–F \0©X!\x0ed</XáF \0©X!
ð</XâF \0©X!\r$</XæF \0žX!\x04À</XiF \0§X!\x05è</YaF\x10\0¤X\x10‡4<\x1fRÇF\x10\0¤X\x10‡ <\x1fRÌF\x10\0¤X\x10‚\x04<\x1fRÏF\x10\0¤X\x10€Ü<\x1fRÕ>\rMØIþTH„Ä>=J„„Œ¯^[¯š€#P\x01€\bD \08IþÔÁ>e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW;Ñÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW;õoüÿ\x01\x01û\0\x02ƒåF \0¤X!\v¬</XcF \0ªX!\x0f\x10</XñF \0ªX!\x02\f</Xï„	Iÿ‰ZF0\0ŸX1‚ð<?Z-F0\0§X1…¨<?YUF0\0§X1…”>\x1dNÈ<?SºF \0§X!\x04ä¶AF \0£X!\x05\¨ŽF \0£X!
„¨ŠF \0žX!\x0e0¨F\x10\0§X\x10‚ø<\x1fSó>¥$j>\r›ÚIýÄ\x1a„@€b€‚€¢F\x10\0«X\x10ˆôD\0\x1f@IýÄ´F@\0¨XB\x0fà<OXðF@\0ŸXB\0T<OXßF@\0ŸXB	8<OZ7F0\0§X1€|<?SòF@\0¨XB\x0fÌ<OXõF@\0£XB\x03T<OS;F@\0žXB\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW=Nÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW=qoüÿ\x01\x01û\0\x02	0<O)œ„ˆ>EjúF@\0žXB\b„<O)›F@\0¦XB\x0e¤<OY^„>E$m>}KXF0\0£X1ƒh„À\x143€\v<o[*>ejR>]³´>¥$•„}\x102€âF0\0¢X1‰Ø\x10¢€ã\x10¢|>\x05›Ú\x143€\x17€&>\r”ÜD \0$IþÔ%€&„I>\r%IþÔ\x1fF@\0¦XB	D<OXyF@\0¨XB\fè<OYYF@\0¡XB	|<OXDD?  <:¥eF@\0¨XB\x0eÌ<OX¶F@\0¦XB\x0e|<OYVF@\0žXB\0\x18<OZ*F@\0ŸXB\x03Ä<OZ+F@\0¦XB\vì<OX:F0\0¤X1Ž€\x143€\x1fF@\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW>Êÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW>îoüÿ\x01\x01û\0\x02\0«XB\x04¨<OXËF@\0«XB\f\x18<OXöF@\0«XB\rx<OY\0F@\0¦XB\x0eh<OY;F@\0£XB\x04D<OXjD0\x02€<:¥b„\rF\x10\0¨X\x10\x10IþŸ\x0eIüÛ.Iÿ<D0»€<?XNF0\0ªX1€¬<?XéF0\0¤X1Š´<?XnF0\0¤X1ŠP<?XlD\0\0\x19F\x10\0¦X\x10ˆxIýÔ\x12F@\0XB\a°<OI\x11„Ÿ>¥$d>E${F@\0 XB\x01`<OZ!F0\0£X1Ü<?RÐPo€\x04>¥$nD\0\x01^€&„BIû\x1aÅÈ\x15¦0ž\x01–\0\ð\0þè\x0f¦1D\x10\0ÿL\0€\vÀ	T \00D’\x06>%\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW@Bÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW@goüÿ\x01\x01û\0\x02$y>\x05$z>\x1dH$\0@€\x1d\0P€\x1eFp\0ŸXs\x14<\x7fZQ’¥•mTB\0?Fp\0ŸXs´<\x7fZ/\x10P€\x1e\x10@€\x1d„aF`\0¡Xc\bD>\rOD<oXW>5IÏF`\0žXc\x068F\x10\0X\x10Œp<oXÜ\x14\x10\0\x16FP\0¡XR…¬F\x10\0X\x10˜<_SÐ\x14\x10\0\x17FP\0¡XR„|F\x10\0¡X\x10†l\x14P\0\f\x14\x10\0\x18F`\0¡Xc\x04 F\x10\0¡X\x10…è<oY-<\x1fSÎF\x10\0¡X\x10„°>5µ8\x14\x10\0\x11F`\0¦Xc\x0e(F\x10\0¡X\x10„œ<oYi¨AF\b\x10\0\x04 \0\x1cB!D\b\x14 \0\x1c<=XÝ<-XÞF@\x02\0@1\x04@!\x10\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWA¼ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWAßoüÿ\x01\x01û\0\x02FP\0¦XRŠì<_RâFP\0¨XRŽŒ<_XäDP»€<_XKFP\0¡XR‚Œ<_S/<?XÝ</XÞF\x10\0 X\x10‡˜FP\0¨XRŽà<_Xø<\x1fY7FP\0©XR„Ü<_YS<\rWûÝ ì\x14:oª„Ýž’\0:o ¼F€\0¬X„
,<Y\x01F€\0¬X„\bì<Y\x02F€\0X„\x02œ>\r³´<Y\x03F€\0 X„\vÀ„`<Y\r\x02 \0|„!„Ê„¢„…>5j™>\x15jp\x10`\x01\x12\x10P\x01\x13\x10\x10\x01\x15\x10@\x01\x14\x10`\x01\x0e\x10P\x01\x0f\x10\x10\x01\x11\x10@\x01\x10\x100\x01\x1aÂ\x05D\0ÿÿL @	.\x05´ÿÈ\x05IþOÛ<
ÚV:o „Ýž;ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWC6ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWCXoüÿ\x01\x01û\0\x02ü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x01\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x02\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWD´ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWDßoüÿ\x01\x01û\0\x02:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x03\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x04\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWF3ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWFVoüÿ\x01\x01û\0\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x05\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x06\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWG¨ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWGôoüÿ\x01\x01û\0\x02>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\a\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04\0\0:o ¼>}%,´\a>l¤x B´FF\0\0®X\0\vÐÝ"´\a´F CF\0\0®X\0\väÝ"´\a´F DF\0\0®X\0\vøÝ"´\a\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWIJÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWIkoüÿ\x01\x01û\0\x02´F EF\0\0®X\0\f\fÝ"´\a´F FF\0\0®X\0\f Ý"´\a´F GF\0\0®X\0\f4Ý"´\a´F\x04\x10\0\bF\0\0®X\0\fHÝ"´\a´F\x04\x10\0	F\0\0®X\0\f\Ý"´\a´F\x04\x10\0
F\0\0®X\0\fpÝ"´\a´F\x04\x10\0\vF\0\0®X\0\f„Ý"´\a´F\x04\x10\0\fF\0\0®X\0\f˜Ý"´\a´F\x04\x10\0\rF\0\0®X\0\f¬Ý"´\a´F\x04\x10\0\x0eF\0\0®X\0\fÀÝ"´\a´F\x04\x10\0\x0fF\0\0®X\0\fÔÝ"´\a´F\x04\x10\0\x10F\0\0®X\0\fèÝ"´\a´F\x04\x10\0\x11F\0\0®X\0\füÝ"´\a´F AF\0\0®X\0\r\x10Ý"´\a´F´ F\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWJÆÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWJíoüÿ\x01\x01û\0\x02\0®X\0\r$Ý"´\a\x04p\0\x11Pƒ€'´f¢¹F\0\0®X\0\r8Ý#Lt\x7fø:o „Ýž:oœ¼ïü>}%,´\a>l¤x´@´fF\0\0®X\0\r\„ Ý#´\a´f „!F\0\0®X\0\rtÝ#´\a´f ‚„"F\0\0®X\0\rŒÝ#´\a´f ƒ„#F\0\0®X\0\r¤Ý#´\a´f „„$F\0\0®X\0\r¼Ý#´\a´f …„%F\0\0®X\0\rÔÝ#´\a´f †„&F\0\0®X\0\rìÝ#´\a´f ‡„'F\0\0®X\0\x0e\x04Ý#´\a´f\x04 \0\b„(F\0\0®X\0\x0e\x1cÝ#´\a´f\x04 \0	„)F\0\0®X\0\x0e4Ý#´\a´f\x04 \0
\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWLIÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWLloüÿ\x01\x01û\0\x02„*F\0\0®X\0\x0eLÝ#´\a´f\x04 \0\v„+F\0\0®X\0\x0edÝ#´\a´f\x04 \0\f„,F\0\0®X\0\x0e|Ý#´\a´f\x04 \0\r„-F\0\0®X\0\x0e”Ý#´\a´f\x04 \0\x0e„.F\0\0®X\0\x0e¬Ý#´\a´f\x04 \0\x0f„/F\0\0®X\0\x0eÄÝ#´\a´f\x04 \0\x10D\x10\0\x10F\0\0®X\0\x0eÜÝ#ì\x04:oœ„ÝžF\b lX\0\0d<-IM´ @!|\bB\x10ü	@\x10ˆ\x04¶ <-INF7\0\0@!p\b´ @!\f\x02F8ÿÿX1ÿ@\x10Œ\x02@\x11\x04\x04¶ Ýž’\0>\x1d(ì\0\0€\x14À\x14\0\0€,È\x03„\x01Õ\x0f\0\0€DÈ\x03„\x02Õ
\00€\„CD\x10\0ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWM×ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWMùoüÿ\x01\x01û\0\x02@\x01\f\x1a@\0Œ^[Ýž’\0<-IK>\x1d)\0„\0§\bœÁÄ\a§	Ä\x05\x04@ÿû´¢Ô\a–\x1a„dŒ8L\x01ÿô„\x1fÝž’\0:oª¼ïô>l¤x´&ƒ€F\0\0®X\0\x0eô>(ìÝ!\x15Ï€\x01FPt€\x14€É…\0¦8À\x0e¡q¦º¦ù´†\x05Å\0\0i€(F\0\0®X\0\x0f$Ý<\x01„\x04ŒøŒØL€\x7fí\x05Ï€\x01„\0·<ì\f:oª„Ýž:oœ¼ïü„Á<oIM<\rI7Ý <\x0fIO<\rI9Ý Iÿÿª<\x1dIOæ&è\aæ#è	„BL\x11@\x16Õ\a„gL\x11À\x12Õ\x0e„BÕ\x0f.\x1d$€L\x10@\x04„@Õ	N\x05\0
<oINÕ\x06„CÕ\x02„D</\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWOUÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWOxoüÿ\x01\x01û\0\x02IN.\x15%LÁ\x13<\x1dIN„cL\x11À\x0f„ >\x15%L<\rIK<\x1fIMœ\x04´ B\x10¬	¶ Õ^[<\x1dINÉ\b<\x1dI?–\0Ý!„?>\x15$€<\rILÀ\f„fL\x01€
F\b l\x04\x10\0\x19X\x10\0\x14\x10\0\x19Iÿÿ\x1f„\0ì\x04:oœ„Ýž;ÿü¼ïü–\0æ\x04é
<\x1d)\x1eF\0\0®X\0\x0fTÝ!„\x06Õ\x12D0\0\x18B0\f$>-(ì˜Ú€CªQ„\0P\x11€\x10„a¶\x02®Ì®\x0e®Íì\x04;ÿü„Ýž;ÿü¼ïü–\0æ\x04é
<\x1d)\x1eF\0\0®X\0\x0f|Ý!„\x06Õ\x0eD\x10\0\x18B\x10\x04$>\r(ì˜HŒ0¦\fÀ\x04„\x01®\r„\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWPðÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWQ\x14oüÿ\x01\x01û\0\x02æ\x04é
<\x1d)\x1eF\0\0®X\0\x0f|Ý!„\x06Õ\x0eD\x10\0\x18B\x10\x04$>\r(ì˜HŒ0¦\fÀ\x04„\0®\r„\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0æ\x04é
<\x1d)\x1eF\0\0®X\0\x0fTÝ!„\x06Õ\x15D@\0\x18„cB0\f$B\0\x10$>M(ì˜\x04œÙªD”Û„!˜Ü®F®E®D¨™„\0ì\x04;ÿü„Ýž’\0;ÿü¼ïü–\0æ\x04é
<\x1d)\x1eF\0\0®X\0\x0f|Ý!„\x06Õ\x0eD \0\x18B\0\b$>=(옃\0\x01\0\x14À\x04žI¨Q„\0ì\x04;ÿü„Ýž;ÿü¼ïü<\rIMÈ
<\x1d)\x1eF\0\0®X\0\x0f¨Ý!„\x1fÕ\f<\x1dIKœL´„`BB,	¶<?IM\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWRjÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWRoüÿ\x01\x01û\0\x02€\x03ì\x04;ÿü„Ýž;ÿü¼ïü<\rIMÈ
<\x1d)\x1eF\0\0®X\0\x0fÀÝ!„\x1fÕ\f<\x1dIK„`œL´€\x03XB\b\0¶<?IMì\x04;ÿü„Ýž:oœ¼ïü<\rI:Ý Õ\x04<\rIQÝ <\rIM„!L\0¿ú<\rI;Ý ì\x04:oœ„Ýž;ÿü¼ïü<\rIMÈ
<\x1d)\x1eF\0\0®X\0\x0fÀÝ!„\x03Õ\x04Iÿü«„\0ì\x04;ÿü„Ýž–H€`@@\x04\x17À\x03„\x05Õ\x14„L\x12@\x04¦XÕ\x0e„‚L\x12@\x06B1€	¤XÕ\a„„L\x12@\x06’b”Ú´#¶"Ýž’\0–€`@@\b\x17À\x03„\x05Õ\x15„L"@\x05–H®XÕ\x0f„‚L"@\aB1€	\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWSçÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWT\x0eoüÿ\x01\x01û\0\x02–I¬XÕ\a„„L"@\x05’b”Ú¶#Ýž:o˜¼€`<?IP€\x01„ €Â€AÝ#¶\x06„\0:o˜„Ýž’\0„D</INF \0­X!\x0eh</I5F \0®X!\0x</I4F \0­X!\vl</I6F \0®X!\x03d</I7F \0®X!\x01ä</I8F \0®X!\x01´</I9F \0­X!\vÐ</I:F \0®X!\x03°</I;F \0­X!\f˜</I<F \0­X!\fà</I=F \0­X!\r </I>F \0®X!\x03p</I?F \0­X!\r`</I@F \0­X!\r°</IAF \0®X!\x03\x18</IDF \0­X!\rð</IE\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWUgÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWUŠoüÿ\x01\x01û\0\x02F \0­X!\x0e,</IFF \0®X!\0„</IBF \0®X!\x02t</ICF \0­X!\x0e”</IGF \0­X!\x0eÀ</IHF \0­X!\x0eø</IIF \0­X!\x0f0„\0</IJ<\x0fIMd\x06à\x03Ýž’\0F\b\0\0d\x06à\x03„\0Ýž€@æ\x12é\vD\0\0\x1fL \0\x04„\x02Õ
d\x12d\x03„\0Õ\x06<=IK„\08\x11Š
Ýž’\0;ÿü¼ïüD \09L\x11\0[\ð€:è!ŽHL\x11\0I\ð€2è\x12ž—L\x11\0:\ð€+è\x05ž‘L\x11@aÕ/œ‘L\x11\03œ‘L\x11@ZÕ1œ’L\x11\08â"é2œ‘L\x11@QÕ4ŒIL\x11\0D\ð€Cè\x12ž–L\x11\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWVÞÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWVýoüÿ\x01\x01û\0\x02\08\ð€=è\bž’L\x11\0,œ‘L\x11@>Õ*œ•L\x11@:Õ,œ‘L\x11\00œ‘L\x11@3Õ.d\x06\0\x03Õ5d\x06\x04\x03Õ2d\x06\b\x03Õ/d\x06\f\x03Õ,d\x06 \x03Õ)d\x06$\x03Õ&d\x06(\x03Õ#d\x06,\x03Õ d\x06@\x03Õ\x1dd\x06D\x03Õ\x1ad\x06H\x03Õ\x17d\x06L\x03Õ\x14d\x06`\x03Õ\x11d\x06d\x03Õ\x0ed\x06h\x03Õ\vd\x06l\x03Õ\b<-)\x1eF\0\0®X\0\x0fäÝ"ì\x04;ÿü„Ýž’\0:o ¼>})\0D`\0)¦8À\a¦9À\x05€&„\0Iÿÿp±D\0\0-ŒøL`\x7fô„\0:o „Ýž:oª¼ïü>(ìP”\0\x14QÄ\0\bD`\0)„àF \0®X¥\0¬\0\x04€\0À'\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWXXÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWXoüÿ\x01\x01û\0\x02\0\x04€\x01À$´\bP\x13\0\bÝ*\x04\x04\0\x01P\x13\0\x10Ý*´\x1cP\x13\0\x18Ý*\0\x04€\x02È\x03„âÕ\x0f¸\x01È\x03„ãÕ\v„!L\0À\x04„åÕ\x06V\0\0\x02„'@p€\x1a€\a€&Ý*±D\0\0-8\x18QÎ\0\x18L`\x7fЄ\0ì\x04:oª„Ýž’\0æ\x12éHD \0>L\x01\0B\ð\0?è\x12ž“L\x01\03\ð\0<è\x05Ž\L\x01@\x1aÕ\x1aœ‘L\x01\0,œ‘L\x01@\x13Õ*œ–L\x01\0\x19\ð\0Eè\x05ž‘L\x01@	Õ\fœ‘L\x01\0\x12œ‘L\x01\0\x12„BÕ$d\x02d\x02Õ\x03d\x06 \x02¶\x01„@Õ\x1cd\x06$\x02Õûd\x06(\x02Õød\x06,\x02Õõd\x06\0\x02Õòd\x06\x04\x02Õïd\x06\b\x02Õìd\x06\f\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWYÙÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWYúoüÿ\x01\x01û\0\x02Õé<=IK„@81‚\x02¶a€\x02Ýž’\0:o˜¼<\rIM„!L\0À\v<\x1d)\x1eF\0\0¯X\0\0\0Ý!„\x04Õ\x14Iÿûê<-I<>\x05$€d\x12¤\x02Ý".=$€„&^1€\0„@@\x01\f\x1a@\0Œ^[:o˜„Ýžd\x02d\x02T\0\0\x0fÝž’\0;ÿü¼ïüD \0\x18–@B\0ˆ$>=(ì˜\x03\00\0\x14Ë
<-)\x1eF\0\0¯X\0\0(Ý"„\x01Õ\x06„ Iû5Ò’\0„\0ì\x04;ÿü„Ýž:o˜¼I\0\0TD\x10\x11\bL\0€^[I\0\0ND\x10\x11\aL\0À\x12<\rINž\x01æ\x02è\f<\rIK„A>%%Lœ\x04´ X\x10ˆ\0¶ Õ\x04<\rI8Ý „$<\x1fINIÿûh„\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW[Nÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW[Žoüÿ\x01\x01û\0\x02<\x0fIL:o˜„ݞݞ’\0FH l€D€"€a„\0\x14\x02\0\x1a\x14\x01\0^[\x14\0€\x1c\x14\x01\0^[\x14\0€\x1c\x14\x01€\x19Ýž’\0;ÿü¼ïüF\x10\0®X\x10„Œ<\x1fIQD\x10Õ¸<\x1f)ñIÿÿß’\0ì\x04;ÿü„Ýž<\rI\x16Ýž’\0:o˜¼<\x1d)\x1e€ÀF\0\0¯X\0\0@Ý!„\0€f€ D \0ÿIú™­:o˜„Ýž:oœ¼ïôF\b l\x04\x10\0\x1a<\x1fI\x16N\x12\x01Ý„ÀD\0\x11\bö.5$™L\x10\0¿\ð‘	è7ž‡L\x11\0\ð‘\x02è^[D0\x10\x03L\x11€Ø\ð\x04è	ž\x1aL\x10\0¸œL\x11@pH\0\0ÃœÚL\x11€åâ#Nó\0ל\x19L\x10@eH\0\0è\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\çÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW]
oüÿ\x01\x01û\0\x02ž„L\x11\x01Q\ð‘\x05è	žÆL\x11€mž\x05L\x10@WH\0\0\x7fž‚L\x11\0t\ð‘\aNò\0„ÕfŒ\bL\x10\x01	\ð‘\x11è^[ž…L\x11\x01\x1d\ð‘\fè	žÇL\x11€zž\x06L\x10@;H\0\0Ëž‚L\x11\0Û\ð‘\x0fNò\0äžÄL\x11À/H\0\0ÎD\0\x12\x01L\x10\0,\ð’\x02è\x0eD\0\x11\x19L\x10\x01\x1eœ\x01L\x10\x015D \x11\x11L\x11@^[H\0\0åD0\x1f\x01L\x11#œ\x19L\x10\0÷D \x12\x02L\x11\0\x03Õ\fF\b lF\x1e\x1e\x1eX\x10á\x14\x10\0^[„\0Iú¢±„ÀH\0\x01(F\b lF\x1e..X\x10‚â\x14\x10\0^[€\x06Iú§¯H\0\x01^[>\r$TÕ\x03>\r$д\0Ý €ÀH\0\x01\x11F\b l\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW^_ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW^‚oüÿ\x01\x01û\0\x02\x04\0\0^[>\x1d$ôH\0\0×F\b l\x04\0\0^[>\x1d$øH\0\0ÏF\b l€ \x04\0\0^[\x04\x10€\x1c<-I<–\0Ý"Õ
>\r%\x14ÕÝ>\r%\x18ÕÚ<\rIDÝ €À<\rI8Ý H\0\0æFx l<=IH\x04\x03€^[„!P/€\x04Ý#ó\x01€À\x143€^[H\0\0ÖFx lXs€l<=IH´\a„"H\0\0ªFx l<=IH\x04\x03€^[„$@/„\0Ý#ñ\x01€À\x14\x13€^[H\0\0¼F\b l€ \x04\0\0^[<=II\x04\x10€\x1c„AÕ\x16F\b l€ \x04\0\0^[<=II\x04\x10€\x1c„BÕ\vF\b l€ \x04\0\0^[\x04\x10€\x1c<=II„DÝ#Hÿÿ‡Fx l<-IC\x04\x03€^[P\x1f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW_Ûÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW`\x02oüÿ\x01\x01û\0\x02€\x04Ý"ò\x01€À\x14#€^[H\0\0Š>\r%\x1cHÿÿrF\b l\x04\0\0^[F\x18 l<=I@\x04\x10€\x1c–\0„AÕ\x19F\b l\x04\0\0^[F\x18 l<=I@\x04\x10€\x1c–\0€FÕ\fF\b l€ \x04\0\0^[\x04\x10€\x1c<=I@–\0„BÝ#Õ^F\b l€ \x04\0\0^[\x04\x10€\x1c<-IA–\0Ý"Hÿÿ)F\b l€ \x04\0\0^[<-IB\x04\x10€\x1cÝ"Hÿÿ4<\x1dI6P\x0f€\x04Ý!€Àó\x01F\b l\x140\0^[Õ9F\b l\x04\0\0^[>\x1d$ü´!–\0Ý!Hÿÿ\x1dFx lF\x18 lXs€l´\a<=IJ\x04\x10€\x1cP/€\x04Ý#€Àð\x01¶\aÕ\x1cF\b l\x04\0\0^[IÿþC’\0Õ\x14\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWagÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWaˆoüÿ\x01\x01û\0\x02F\b l\x04\0\0^[>\x1d)L8\0Ž
F\b lœÙ\x04@\0\x1c–Øœ\x198@Ž
>\x05$™<\rI\x16D\x10\x11\x1aL\0€\x05„ >\x15$™F\b l„ \x14\x10\0\x1aF\b lX\0\0d´ D/ÿ\x0f•´@\x10ˆ\x02—°@c\x04\x04¶À´@´ œ‘T!\0\x0f’$”L@\x11\x04\x04¶ ì\f:oœ„Ýž€`Â\a™J\b@€\x01\x18A€\x01ÙüÝž’\0€`™ZÓ\x04\x18\x11€\x01ÕýÝž’\0d\0\0\0patch/sys_patch_bin_t.c\0debug uart enabled in patch...
\0patch/btsys_patch_bin_t.c\0\0\00\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWbÛÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWbüoüÿ\x01\x01û\0\x02\0‘ãr\a–äu\x0eŸí|	˜ê{\x1cÿn^[Šøi\x12ƒñ`\x15„ög8©ÛJ?®ÜM6§ÕD1 ÒC$µÇV#²ÀQ*»ÉX-¼Î_pá“\x02wæ”\x05~ï\fyèš\vlý\x1ekúˆ\x19bó\x10eô†\x17HÙ«:OÞ¬=F×¥4AТ3TÅ·&S°!Z˹(]̾/àq\x03’çv\x04•î\x7f\rœéx
›üm\x1fŽûj\x18‰òc\x11€õd\x16‡ØI;ªßN<­ÖG5¤Ñ@2£ÄU'¶ÃR ±Ê[)¸Í\.¿\x01sâ—\x06tåž\x0f}ì™\bzëŒ\x1doþ‹\x1ahù‚\x13að…\x14f÷¨9KÚ¯>Lݦ7EÔ¡0BÓ´%WƳ"PÁº+\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWdPÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWd{oüÿ\x01\x01û\0\x02YȽ,^Ïd2!\x19\x14\x11\x0e\r\v
\0\0
\x05\x03\x03\x02\x02\x01\x01\x01\x01\0\0\…\x01\x02p
\x02\x0223456789:;10\x16\x17\x18\x19/.-,\x15\x14<\0\x13\x01\0\0\x16\x17\x18\x19./01-,\x15\x14\x1a^[\x1c\x1d+*)(\x1e\x1f'& %\0\0NMLKJIHG/0\x16\x171.\x18\x15F\x19\x14-2\0\x13\x01,3\0\0\x0f\0\0\0(\0\0\0A\0\0\0K\0\0\0\x05\0\0\0\x1e\0\0\07\0\0\0A\0\0\0\x14\0\0\0-\0\0\0F\0\0\0N\0\0\0\0\0\0\0\x19\0\0\02\0\0\0<\0\0\0NMLKJIHG/0\x16\x171.\x18\x15F\x19\x14-2,3\0\x19á\x1d@\x1e ,1 6\r\\x0e]H`CcÆglkÇuˆy\x0e\0\0\0\v\x01\b\x04\r\x04\x0e\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWeÍÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWeùoüÿ\x01\x01û\0\x02\f
\x0e\x0e\x0e\x16\x0e\x1f\b\x04\r\x04
\0\0\0\v\x01\b\x04\r\x04\x0e\x05\f
\x0e\x0e\x0e\x16\x0e\x1f\x0f\x1f	\0\x02\x01\x0f\0\x04\0\x03\0$%&%''&&%&
\0$%&%''&&0\0	\0\x15; \0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWgOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWgwoüÿ\x01\x01û\0\x02\0\0[FDB] R.S R28 0x%x
\0[FDB] R.S R29 0x%x
\0[FDB] R.S R30 0x%x
\0[FDB] R.S R15 0x%x
\0[FDB] R.S R3 0x%x
\0\0[FDB] R.S R4 0x%x
\0\0[FDB] R.S R5 0x%x
\0\0[FDB] R.S R6 0x%x
\0\0[FDB] R.S R7 0x%x
\0\0[FDB] R.S R8 0x%x
\0\0[FDB] R.S R9 0x%x
\0\0[FDB] R.S R10 0x%x
\0[FDB] R.\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWhÖÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWhøoüÿ\x01\x01û\0\x02S R0 0x%x
\0\0[FDB] R.S R1 0x%x
\0\0[FDB] R.S R2 0x%x
\0\0[FDB] R.S R31 0x%x
\0[FDB] R.S PSW 0x%x
\0[FDB] R.S PC 0x%x
\0\0[FDB] D.S D:0x%x %%LE %%LONG 0x%x
\0\0[FDB] PC(0x%x) = 0x%x
\0\0[FDB] PSW(0x%x) = 0x%x
\0[FDB] R28(0x%x) = 0x%x
\0[FDB] R29(0x%x) = 0x%x
\0[FDB] \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWjPÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWjwoüÿ\x01\x01û\0\x02R30(0x%x) = 0x%x
\0[FDB] R15(0x%x) = 0x%x
\0[FDB] R3(0x%x) = 0x%x
\0\0[FDB] R4(0x%x) = 0x%x
\0\0[FDB] R5(0x%x) = 0x%x
\0\0[FDB] R6(0x%x) = 0x%x
\0\0[FDB] R7(0x%x) = 0x%x
\0\0[FDB] R8(0x%x) = 0x%x
\0\0[FDB] R9(0x%x) = 0x%x
\0\0[FDB] R10(0x%x) = 0x%x
\0[FDB] R0(0x%x) =\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWkÎÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWk÷oüÿ\x01\x01û\0\x02 0x%x
\0\0[FDB] R1(0x%x) = 0x%x
\0\0[FDB] R2(0x%x) = 0x%x
\0\0[FDB] Num     Type      Enb Address    range
\0\0\0[FDB]   %d        %d        %d 0x%x    0x%x
\0\0\0\0[FDB] Too many hardware break point
\0\0\0\0[FDB] out of hardware break point range
\0\0\0\0[FDB] target i\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWmLÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWmyoüÿ\x01\x01û\0\x02s runing
\0[FDB] target is not in debug state
\0[FDB] no such srname: 0x%x
\0[FDB] target is already in debug state
\0[FDB] No BP number %d
\0\0[DI] send_wmt_cmd
\0\0\0\0\0\0\0\0\0\0\0\0\0\0ØO\b\0äÄ\x06\0p\x18\b\0Ôn
\0д
\0n
\0\x02\x02\x06\0&\x10N\x10\0À	\0\b\0\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0°×	\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWnÑÿ\x05\x02\x01\x01\0\0\0\0\0H\0\0\0H\0\0\0\x02\0\0\0\0\0âL5pWo\x02oüE\x01\x01A\0\x03\0\0\0\0Pß
\0\0\0\0\0\x02\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x02\0\0ÿ\0\0\x02Ðÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWoÃÿ\x05\x02\x01\x01\0\0\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0âL5pWp\x1foü\x05\x01\a\x01\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWp“ÿ\x05\x02\a\x01\0\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0âL5pWp»oü\x06\x01\x06\x02\0\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pY\0|ÿ\x05\x02\x06\x01\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY\0¸\x03\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY §\x0e\x04\x01\x03\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY È\x03\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âL5pY!l\x0e\f\x01\x03\x10\0¿>þÛÿ{‡\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY!ƒ\x01\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âL5pY"‡\x0e\f\x01\x01\x10\0\b!\x15\bF\0\x11\x06\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY"	\x10\0\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0âL5pY#<\x0e
\x01	\x10\0\x01"vF\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY#‰\x05\x10\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0âL5pY$\x0e\x0e\v\x01\x05\x10\0ý\x03¸\b\0\x01\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY$ #\f\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0âL5pY$Ä\x0e\a\x01#\f\0\0\x1f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY$Ü\x14\f\0\0\0\0þ\0\0\0þ\0\0\0\x03\0\0\0\0\0âL5pY%ÿ\x0eü\x01\x14\f\0MTK MT7622 #1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY&\x14%\f\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0âL5pY&£\x0e\x06\x01%\f\0`\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY&·8\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pY'G\x0e\x05\x018\f\0\x04\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY'_9\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âL5pY'ý\x0e\b\x019\f\0\x013‹ž\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âL5pY(\x13\x05\f\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY(¨\x0e\x04\x01\x05\f\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âL5pY(½\x16\f\x02\0}\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY)†\x0e\x04\x01\x16\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY)œ\x02 \0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0âL5pY*7\x0e\a\x01\x02 \0û\0\b\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY*J\x03 \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âL5pY*æ\x0e\f\x01\x03 \0ý\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY*ù\x1c \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âL5pY+›\x0e\f\x01\x1c \0ÿÿÿ\x1f\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY+­\x02\x10\0\0\0\0F\0\0\0F\0\0\0\x03\0\0\0\0\0âL5pY,`\x0eD\x01\x02\x10\0ÿÿÿ\x03ÌÿÿÿÿÿüŸó\x0fèÿ?÷ÿ\x1c\0\x04\0\x01\0\0\0\08àõóÏÿÿ\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ô\0\0\0ô\0\0\0\x02\0\0\0\0\0âL5pY,tR\fñ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY-à\x0e\x04\x01R\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âL5pY-öE\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY.\x0e\x04\x01E\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY.«X\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pY/H\x0e\x05\x01X\f\0ÿ\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âL5pY/]\x04\x10\x01\x01\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0âL5pY/ñ\x0e\x0e\x01\x04\x10\0\x01\x02\0\0\0\0\0\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âL5pY0$\x01\f\bÿÿûÿ\aø¿=\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY0¹\x0e\x04\x01\x01\f\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0âL5pY0Í\r\f\a\0\0\0\0\0\0\x01\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âL5pY1z\x0e\b\x01\r\f\0\x04\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âL5pY1’\x0f\b\x02\x05\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY24\x0e\x04\x01\x0f\b\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY2I^[\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âL5pY2ü\x0e\b\x01^[\f\0\0\b\x12\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY3\x13F\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pY3¦\x0e\x05\x01F\f\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âL5pY3º\x01 \bÐ\r\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY4i\x0e\x04\x01\x01 \0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY4ƒ/ \0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY59\x0f\x04\x01\x01/ \0\0\0\0\0\0\0\0\0\0\0	\0\0\0\0\0âL5pYN„

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings
@ 2018-06-14  3:10                       ` Sean Wang
  0 siblings, 0 replies; 49+ messages in thread
From: Sean Wang @ 2018-06-14  3:10 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Mark Rutland, devicetree, Johan Hedberg, LKML, BlueZ development,
	Rob Herring, linux-mediatek, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 9602 bytes --]

On Tue, 2018-06-12 at 17:58 +0800, Sean Wang wrote:
> On Wed, 2018-05-30 at 08:26 +0200, Marcel Holtmann wrote:
> > Hi Sean,
> > 
> > >>>>>> 
> 
> [ ... ]
> 
> > >>> * Unknown packet (code 14 len 30)                                      0.641509
> > >>>       01 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 6c  ..............bl
> > >>>       75 65 74 6f 6f 74 68 64 00 00 00 00 00 00        uetoothd......  
> > >>> * Unknown packet (code 14 len 30)                                      0.641592
> > >>>       02 00 00 00 02 00 01 0e 00 01 00 00 00 10 62 74  ..............bt
> > >>>       6d 6f 6e 00 00 00 00 00 00 00 00 00 00 00        mon...........  
> > >>> * Unknown packet (code 16 len 7)                                [hci0] 6.536771
> > >>>       01 00 00 00 05 00 01                             .......         
> > >>> = Open Index: 00:00:46:76:22:01                                 [hci0] 6.717019
> > >>> = Index Info: 00:00:46:76:22:01 (MediaTek, Inc.)                [hci0] 6.717030
> > >> 
> > >> can you try with the latest BlueZ 5.49 or git version. Seems it actually stumbles over the extra packet here. Fun fact is that I can not get a backtrace to pin-point the issue in btmon and why it crashes.
> > >> 
> > > 
> > > I had less experience updating user land BlueZ, but I can try it as possible and see whether Unknown packets still are present at newest version BlueZ. Hopefully I don't misunderstand your point here. 
> > 
> > please use the latest btmon and check if it can read your trace.
> > 
> 
> sure, I'll have a try with the latest btmon.


I use the btmon version 5.50 and it can read the trace

> 
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.741093
> > >>>       02 01 01 00 00                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.742088
> > >>>       02 01 01 00 00                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.743102
> > >>>       02 01 01 00 00                                   .....           
> 
> 
> [ ... ]
> 
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.814708
> > >>>       02 01 01 00 00                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.815705
> > >>>       02 01 01 00 00                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816378
> > >>>       02 01 01 00 00                                   .....           
> > >> 
> > >> Why do I see only HCI events here? Is this event conveying any useful information. It is kinda complicated that this is 0xe4 event code which is actually reserved for future use by the Bluetooth SIG. Are there any accompanying HCI commands for this and they just not make it into btmon?
> > >> 
> > > 
> > > I have made all vendor HCI commands go through BlueZ core in v2 patch. 
> > > 
> > > And for these HCI events, they are all corresponding to vendor ACL data, applied only to firmware setup packets, but they're not being sent via BlueZ core, so they are not being logged in btmon.
> > > 
> > > As for its event, where heading 0xe4 refers to a vendor event and is used on notification of that either vendor ACL data or vendor HCI command have been done.
> > 
> > I would prefer if everything goes via the Bluetooth core since then we have it all properly scheduled. Sending things down the ACL data path however if kinda funky. Does your hardware accept sending command both via ACL data and as HCI command? If so, then I would prefer sending them as HCI commands since the speed improvement you think you are getting is neglectable on Linux (I have been down that path). This seems to be a pure optimization when Windows is driving the device.
> > 
> 
> firmware people said the device can support firmware download as HCI commands. According to my test, this way indeed works so I will improve the part in the next version.
> 
> 
> > And the vendor event 0xe4 is really only received during firmware download? It is not ever received during normal operation?
> > 
> 
> 0xe4 is only received during chip initialization.
> 
> I also thought 0xe4 is a poor definition for vendor event and already have notified firmware people should pick 0xff as its vendor event id in the future.
> 
> but for now, unfortunately, 0xe4 cannot be changed on the device, the only way is to add a workaround in RX path as below to allow btmon can recognize these bad events properly. 
> 
> int mtk_btuart_hci_frame(struct hci_dev *hdev, struct sk_buff *skb)
> {
>         struct hci_event_hdr *hdr = (void *)skb->data;
> 
>         /* Fix up the vendor event id with HCI_VENDOR_PKT instead of
>          * 0xe4 so that btmon can parse the kind of vendor event properly.
>          */
>         if (hdr->evt == 0xe4)
>                 hdr->evt = HCI_VENDOR_PKT;
> 
>         /* Each HCI event would go through the core. */
>         return hci_recv_frame(hdev, skb);
> }
> 
> 
> > > 
> > >> 
> > >> 
> > >>> < HCI Command: Vendor (0x3f|0x006f) plen 5                      [hci0] 6.816413
> > >>>       01 07 01 00 04                                   .....           
> > >>>> HCI Event: Unknown (0xe4) plen 5                              [hci0] 6.816536
> > >>>       02 07 01 00 00                                   .....           
> 
> [ ... ]
> 
> > >>>         Encapsulated PDU
> > >>>         Erroneous Data Reporting
> > >>>         Non-flushable Packet Boundary Flag
> > >>>         Link Supervision Timeout Changed Event
> > >>>         Inquiry TX Power Level
> > >>>         Enhanced Power Control
> > >>>         Extended features
> > >>> < HCI Command: Read Local Version Info.. (0x04|0x0001) plen 0  [hci0] 10.865987
> > >>>> HCI Event: Vendor (0xff) plen 9                              [hci0] 10.866259
> > >>>       29 19 09 17 20 48 07 11 00                       )... H…       
> > >> 
> > >> Is this meant to happen here?
> > >> 
> > > 
> > > If event received is not expected as the specification defines, I think it's probably incorrect.
> > > 
> > > But it requires more discussion with firmware people to make it clearer.
> > 
> > Please check and let them decode what this event means.
> > 
> 
> it's just debugging purpose information listing built-time something
> like that and will be removed in the firmware.
> 
> > > 
> > >>>> HCI Event: Command Complete (0x0e) plen 12                   [hci0] 10.866372
> > >>>     Read Local Version Information (0x04|0x0001) ncmd 1
> > >>>       Status: Success (0x00)
> > >>>       HCI version: Bluetooth 4.2 (0x08) - Revision 4359 (0x1107)
> > >>>       LMP version: Bluetooth 4.2 (0x08) - Subversion 2329 (0x0919)
> > >>>       Manufacturer: MediaTek, Inc. (70)
> > >>> < HCI Command: Read BD ADDR (0x04|0x0009) plen 0               [hci0] 10.866391
> > >>>> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 10.866539
> 
> [ ... ]
> 
> > >>>         LE Add Device To Resolving List (Octet 34 - Bit 3)
> > >>>         LE Remove Device From Resolving List (Octet 34 - Bit 4)
> > >>>         LE Clear Resolving List (Octet 34 - Bit 5)
> > >>>         LE Read Resolving List Size (Octet 34 - Bit 6)
> > >>>         LE Read Peer Resolvable Address (Octet 34 - Bit 7)
> > >>>         LE Read Local Resolvable Address (Octet 35 - Bit 0)
> > >>>         LE Set Address Resolution Enable (Octet 35 - Bit 1)
> > >>>         LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
> > >>>         LE Read Maximum Data Length (Octet 35 - Bit 3)
> > >>>         Octet 35 - Bit 4 
> > >>>         Octet 35 - Bit 5 
> > >>>         Octet 35 - Bit 6 
> > >>>         Octet 35 - Bit 7 
> > >>>         Octet 36 - Bit 0 
> > >> 
> > >> So you support the PHY commands, but do not indicate support LE 2M or LE Coded? Also these are Bluetooth 5.0 commands.
> > >> 
> > > 
> > > To be honest. When I ported the device into Bluez core, a unexpected event for LE read local feature would cause a fail at Bluez core, so I made a hack on Bluez core  
> > > 
> > > to allow that I can keeping bring up the device without be blocked by the issue most probably from firmware.
> > > 
> > > Below code snippet is the only thing I added to avoid a fail at Bluez core to bring upbtsnoop the device.
> > > 
> > > @@ -927,6 +927,8 @@ static void hci_cc_le_read_local_features(struct hci_dev *hdev,
> > >                return;
> > > 
> > >        memcpy(hdev->le_features, rp->features, 8);
> > > +       hdev->le_features[0] = 0;
> > > +       hdev->le_features[1] = 0;
> > > }
> > 
> > Send me the trace where you didn’t clear the feature bits and I check what is going on. I doubt that we have a bug, but maybe some of the commands are optional and we should add an appropriate check. Or you guys need to fix your firmware. A new btmon should decode all bits properly.
> > 
> 
> okay, I'll have a follow-up.where

. 
It's a fault from the device and can be simply fixed up in the firmware.
The fault is the device reporting to host told it can support "LE Read
Maximum Data Length", but actually it can't. so it's just a fail at the
command.


The attached here is the fail log I captured with btmon 5.50 where I
already turned the patch setup in HCI command from ACL data and turned
event id 0xe4 to 0xff every vendor should use. And, finally, it can be
seen that btmon already can record and parse all traffic between host
and device well.

> 
> > Regards
> > 
> > Marcel
> > 
> 


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: trace3_fail_at_le_read_max_data.log --]
[-- Type: text/x-log; name="trace3_fail_at_le_read_max_data.log"; charset="UTF-8", Size: 101541 bytes --]

btsnoop\0\0\0\0\x01\0\0\aÑ\0\0\0$\0\0\0$ÿÿ\0\f\0\0\0\0\0âL5n±\x0e•Linux version 4.16.0-rc1+ (aarch64)\0\0\0\0!\0\0\0!ÿÿ\0\f\0\0\0\0\0âL5n±\x0eœBluetooth subsystem version 2.22\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0âL5n±\x0f\x03\x01\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10btmon\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0#ÿÿ\0\r\0\0\0\0\0âL5o¯\fÓ\x06\vbluetoothd\0Bluetooth daemon 5.43\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0âL5o¯t/\x02\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10bluetoothd\0\0\0\0\0\0\0\0\0!\0\0\0!ÿÿ\0\r\0\0\0\0\0âL5o¯{o\x06\vbluetoothd\0Starting SDP server\0\0\0\02\0\0\02ÿÿ\0\r\0\0\0\0\0âL5o¯ ‰\x03\vbluetoothd\0Failed to open RFKILL control device\0\0\0\0\x06\0\0\0\x06ÿÿ\0\x10\0\0\0\0\0âL5o¯¢U\x02\0\0\0\x01\0\0\0\0\f\0\0\0\fÿÿ\0\x11\0\0\0\0\0âL5o¯£D\x02\0\0\0\x01\0\x01\0\0\x01\x0e\0\0\0\0=\0\0\0=ÿÿ\0\r\0\0\0\0\0âL5o¯¤î\x06\vbluetoothd\0Bluetooth management interface 1.14 initialized\0\0\0\0\x06\0\0\0\x06ÿÿ\0\x10\0\0\0\0\0âL5o¯¥ì\x02\0\0\0\x02\0\0\0\0Õ\0\0\0Õÿÿ\0\x11\0\0\0\0\0âL5o¯¦³\x02\0\0\0\x01\0\x02\0\0A\0#\0\x03\0\x04\0\x05\0\x06\0\a\0\b\0	\0
\0\v\0\f\0\r\0\x0e\0\x0f\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\x1a\0^[\0\x1c\0\x1d\0\x1e\0\x1f\0 \0!\0"\0#\0$\0%\0&\0'\0(\0)\0*\0+\0,\0-\0.\0/\00\01\02\03\04\05\06\07\08\09\0:\0;\0<\0=\0>\0?\0@\0A\0B\0C\0\x03\0\x04\0\x05\0\x06\0\a\0\b\0	\0
\0\v\0\f\0\r\0\x0e\0\x0f\0\x10\0\x11\0\x12\0\x13\0\x14\0\x15\0\x16\0\x17\0\x18\0\x19\0\x1a\0^[\0\x1c\0\x1d\0\x1e\0\x1f\0 \0!\0"\0#\0$\0%\0\0\0\0\x06\0\0\0\x06ÿÿ\0\x10\0\0\0\0\0âL5o¯¬½\x02\0\0\0\x03\0\0\0\0\v\0\0\0\vÿÿ\0\x11\0\0\0\0\0âL5o¯­ö\x02\0\0\0\x01\0\x03\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\0\0\0\0\0\0âL5pRZÃ\0\x03\0\0\0\0\0\0hci0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0âL5pU/o\0\0\0\b\0\0\0\b\0\0\0
\0\0\0\0\0âL5pU0\b\0\0\0\0\0\0\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUvÜoüÿ\x01\x01û\0\x01ÿÿÿÿ?\0\0\0DC\0\0ðª\x02\04ˆ\x02\0¼Ã\0\0|X\x05\0ˆ\x16\b\0ØÁ\a\0ŒK\a\0¼>\b\0Ì \x05\0¼Ö\a\0„4\b\0\x1c¿\x05\0h*\b\0äõ\a\0˜\x17\x05\0°É\x06\0D\x13\b\0¼Ã\x04\0è\x01\x05\0”­\a\0XÞ\x05\0€¨\a\0$c\x06\0\x1c{\a\0pô\x04\0ü‚\x06\0(ú\x05\0$²\a\0x;\x06\0X¹\x06\0ô¤\a\0,p\b\04P\x05\0\0U\x05\0¤j\a\0´3\x06\0\b6\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUx’ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUx½oüÿ\x01\x01û\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0LÑ	\0¸Í	\0€Í	\0ÀÇ	\0\x19
\0ün
\0ôU
\0\x04¼
\0èn
\0|3
\0\x10o
\0¬Š
\0\f=
\0pw
\0ðp
\0ü\x04
\0\x04´
\0ÀØ	\0t2
\0\x10Q
\0¼\x01
\0,\x1f
\04\x06
\0x\
\0L\f
\0lY
\0\x18´
\0Ø]
\0¨\x01
\0$%
\0$}
\0Üß	\0@m
\0ø\x12
\0<k
\0ÌÓ
\0À6
\0P\x19
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU{	ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU{0oüÿ\x01\x01û\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>\r$\0F\x10\0¯X\x10€`>-$Õ\x03¢ÉªÁâ\x02éýÝž>\r$>-)t„ Õ\x02ªAâ\x02éþÝž<\x1dI\bF\0 \0Œ(X\0\0 ´A¶@\x040€@¢‰šš’AF0 \0¨X1‚ Œ\bL\x01ÿó<-I\bF\x10 \0´b¶a€\x01 ‘¨ÝžïøF\x18\0 –\x03¨	F\b\0  Bññ\x01T\x10€\x02Éûì\bÝž’\0:oœ¼ïü€à\x10Iÿÿë–;Iÿÿèì\x04:oœ„Ýž:o¤¼ïü„À\0PÿþÕ\x0e8\x04\x18\0„*L\0À\x05„\rIÿÿä8\x04\x18\0±IÿÿßâÉéòì\x04:o¤„Ýž’\0ïø\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU|Šÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU|­oüÿ\x01\x01û\0\x02<-:÷D\x01Â\0@!\0\x16F\x18\0\0\x040€BF\b\0 X1€€\x140€B ÃDOÿÏó€ ó\x01@1\x02óó\x01¨Ã¨Œì\bÝž’\0T\x10€\f’"–\0–Ál@0\x1c	D\0\0"L \0\x12\ñ\0#è\x05Ž\x11L @aÕ\bŒ\x11L \0
Œ\x11L @ZÕ\a„\0ÕB„\0Õ*„\0Õ\x14„BL\x11@\x04„\x03Õ
„\x03L\x10@\x04„\x02Õ\x05V\0€\x01\\0\0\x01Ë\x05D!@\0@\0\b\x04„BL\x11@\x05X\0\0\fÕ\f„CL\x11@\x05X\0\0\bÕ\x06„AL\x11@\x04X\0\0\x04Ë\x03X\00\0„BL\x11@\x05X\0\x02@Õ\f„CL\x11@\x05X\0\x02\0Õ\x06„AL\x11@\x04X\0\0@Ë\x05D"€\0@\0\b\x04„B\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU~\x02ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU~1oüÿ\x01\x01û\0\x02L\x11@\x05X\0\x01 Õ\f„CL\x11@\x05X\0\0 Õ\x06„AL\x11@\x04X\0\x01\0X\0\0Õ\x02„\0Ýž’\0:o˜¼.4ÛL—€D\0\0ÿ–ˆL0\0\x1d€#>d§ø€\x06Iÿÿ~’\0<-)Õ€ €\x06Ý"F\x18\x10`Tc\0@\x14\0€˜Æ	F\b\x10`\x04\x10\0™B\x10À\b\x14\x10\0™:o˜„ÝžD@\0"T\0\0\f–’\x02B\x10œ\vL"\0N\ñ\0#è\x06DP\0\x11L"À…ÕfŒ‘L"\0$DP\0DÚ}ž‚–æBè\x06œœ´‚XB\x11\0¶‚ž–æBè\x06œœ´‚XB\0\x10¶‚É\rPA€\x10´¤P!€\x14XR\0¶¤´‚XB\0\x0e¶‚ž‚–æBè\bœœ´‚FPÐ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU\x7fˆÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU\x7f­oüÿ\x01\x01û\0\x02@B\x14\x04¶‚ž–æBè\bœœ´‚FP\0À@B\x14\x04¶‚É	P!€\x10´‚FP° @B\x14\x04¶‚ž‚–æBè\aP!€\f´‚XB	\0¶‚ž–æBè\aP!€\b´‚BBL\b¶‚É\rP!€\x14´‚P\x11€\x10XB\a\0¶‚´AX!\0\x06¶AžB–Hæ"è\aP\x11€\b´AX!\x05\0¶Až\x01–\0æ\x02è\aP\x01€\f´ X\x10€\x04¶ Œh´\x03F\x10 \0X\x10€\x03@\0\x04\x04¶\x03Ýž’\0:o¤¼ïÔP\x7f€\x04—€T€ÿT\0ÿ€\a„ D \0$IûÄÌT\x03\0\fÀ\a€\x06€)€H€gIÿÿSP\x0f€\x04 F\x18\x10`\x14 €2 ‚\x14 €3 ƒ\x14 €4\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU3ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUcoüÿ\x01\x01û\0\x02 „\x14 €5 …\x14 €6 †\x14 €7 ‡\x14 €8\x04\0\0\b\x14\0€9ì,:o¤„Ýž:o ¼—€<o6Ó<=)΀\x06T€€ÿ—ÐÝ#<\x1d)Ï€\x06Ý!€G€\x06€(Iÿÿ³<\x1d)Ó€\x06Ý!<\x1d)Ò€\x06Ý!:o „Ýž:o˜¼.$§õ@` 	–\0—°L \0\r>\x04§õ<\x1d6ÓL\x10\0\a.$§ù€&IÿÿÍ.\x14§ù>d§ø€\x06IÿþÎ:o˜„Ýž’\0–€–\x14À\x05D2P\x10@\0Œ\x02T1\0\x02Ã\aDA €@0\x02@\0\f\x04T1\0\x04Ã\x05T0E@\0\f\x04T1\0\bÃ\x05T0‚*@\0\f\x04T1\0\x10Ã\a@0Ð	@1Ð\b@\0\f\x04T!\0 \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU‚Ïÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUƒ\boüÿ\x01\x01û\0\x02Â\aF ?À@\x10ˆ\x02@\0\x04\x04Ýž’\0:o˜¼„b€AL\x01Àb„\x01L\x10@<.\x04ëÀL\0€8F\x18\x10 X\x10€\x04´\x01X\0\0 ¶\x01„
´AX!\0\x10¶A´AX!\0\x01¶AIû"VF\x18\x10!X\x10\x04´A„\bB!H\b¶A´AB!L\b¶AIû%'F\x18\x10\bX\x10€\x14´A„
X!\0\x02¶A´AX!\0\b¶A´AX!\0 ¶AIû"4Õ&F\b\x10 X\0\0\x04´ X\x10€ ¶ ´ B\x10	¶ Ê\rF\b\x10!X\0\x01\x04´ B\x10È	¶ ´ B\x10Ì	¶ .\x04ì	È
F\b\x10  AX\x10 \0¨AÕ\x03Iû.J:o˜„Ýž’\0:oª¼ïä.déü–Ø—hñ„\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU„\ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU„ƒoüÿ\x01\x01û\0\x02òƒó—àõ…ƒ€Æ\x02Õ\x0fñ\x03É\x10È\x0fD\x10\0 D \0\x12F0\0®X1ˆ„„ƒIûK\v„\x03H\0\x01&<m;5„\x01L`@\x1aD\x10\0öLp€\x1e€\aD\x12\0\0Iû|¸„\0D\x10\0 D \0\x12F0\0®X1ˆ„€†IûJî€\x06H\0\x01	„\x06L`@\aD\x10\0öLp€\x03Õ\a>léÔ\0“\0\x06N’\0\x16€\aD\x12\0\0Iû|–„\0D\x10\0 D \0\x12F0\0®X1ˆ„„IûJÌ„\x01H\0\0çð\x04ñ\x01–\x01P€\0\x02‰\x01ð‚@\x14\0\x13€\x06IûyE\0È\x15€\aD\x11\0\0Iû|t€\bD\x10\0 D \0\x12F0\0®X1ˆ„„‚IûJª„\x02H\0\0ÅD\0\0òLp@	\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU†\aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU†6oüÿ\x01\x01û\0\x02\0£\0\x0e…"A\x10£\0\x0eÕ4D\x10\0öLpÀ	\0£\0\x0f…$A\x10£\0\x0fÕ)D\0\0ôLp@	\0£\0\r…!‰I\x10£\0\rÕ\x1eœDLpÀ	\0£\0\x10…&A\x10£\0\x10Õ\x14D\0\0úLp@	\0£\0\x11…#A\x10£\0\x11Õ	\0£\0\f„\x04A\x10£\0\fIûmÑ<m(°ò\x04ó\x03ô\x01€<€\b€©Ý&„Ä\x10d\0\b„À\x12d\0\x05ñ\x03Á\x11ð\x01\x04d\0\x01@£\0\0€\x01Õ\x05\b\x10\0\x01\x18\x13\0\x01âÊéûð\x01\x12\x04\0\x05OÂ\0\x16\x04D\0\x01ñ\x01ð\x04™!€Ü˜àÕ\x05\b\x13\0\x01\x18\x12\0\x01âƒéû\x024\0\x05ð\x02˜Ã\x124\0\x05\x024\0\x05„!œÚ\x124\0\x05LpÀ	ñ\x02€\x1cD à\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU‡ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU‡Òoüÿ\x01\x01û\0\x02„`I\0!C>\féÔIûxN“\0\x1e„\x01Lp\0\x11.4¢œ.\x04¢Ÿ™^[!˜Ø™ ˜ œÛ˜\x03L\x03€\x04L3À\fñ\x05€\aIþìñÈ\x06ñ\x05ò\x02€\aIþð©<\x1d:û„@D\0\0\x17IûyDIûx2È\x03Iû{MN“\0\x05„\bIûmX„\0D\x10\0 D \0\x11F0\0®X1¤IûIå„\0ì\x1c:oª„Ýž:oª¼ïÜ<=Þº–\0ðƒ€Â€áâ\x03é\x04„\x01H\0\x01ˆÉ
€\x01F \0®X!\bˆD0\x03±Iû6Š¦½§<@! \bð\x03@!\x10\x04\0\x13€"FH à@0 \b@¡\0Á\x03B!|\bÆ>\0C\0	Gà\x03ð@B@\b¦u@Bx\x02@!\x10\x04Á\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU‰'ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU‰Noüÿ\x01\x01û\0\x02B!X\b\0\x13\0\bF0\x18\0@\x10Ü\b§4@\x10Œ\x02@!\x04\x04Ä\x03B!d\b§3Ä\x03B!h\b§2Ä\x03B!l\b§1Ä\x03B!p\b§6Ä\x03B!t\b§0Ä\x03B!x\b\0C\0
¦w„¤•¤—°@@„\x1a@B„^[@b\x18\x04Õ
€j¢ZFGÿð@\x10\x02´c@!\x04\x04\0“€\0§>\x14Ÿ€\a\x01ã€\x01\x15ï€\x06¦:ð„¦{ñ…Ä\x03Xc\0\x01§?Ä\x03Xc\0\x02\0C€\bÄ\x03Xc\0\b\x02“€\x05\0ƒ€	F0\x1fð@”À\b@”Œ\x02@„ \b\0C€\f@„ \x04@d\x18\x04Ä\x03Bcd\b\0C€\rÄ\x03Bch\b\0C€$Ä\x03Bcl\b\0C€%Ä\x03Bcp\b\0C€\x0eÄ\x03Bct\b\0C\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUŠ¨ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUŠÌoüÿ\x01\x01û\0\x02€\x0fÄ\x03Bcx\b\0C€\x10Ä\x03Bc|\bPU\0\fµ\x05F–qð\0C€\x11X”ÿ@„$\x02Ä\x03X„\x10\0\0C€\x12Ä\x03X„ \0\0C€\x13Ä\x03X„@\0\0C€\x14Ä\x03B„<\b\0C€\x15Ä\x03B„T\b\0C€\x16Ä\x03B„X\b\0C€\x17Ä\x03B„\\b\0C€\x18Ä\x03B„l\b\0C€\x19Ä\x03B„p\b\0C€\x1aÄ\x03B„|\bP\x15\0l´\03€ B\x02x	B\0|	Ã\x03B\0x\b\0C€!Ä\x03B\0|\bF˜ ùX”ˆ ´iGÈ ùBAð\b¶‰´|PE\0\bôBAü\b¶œó\x01¶Ã·\x05¶\x01´ÜBc|	¶ÜPE\0\x14´ÉF\x1føsBcp	¶ÉX\x10ÿ´Ä\0C€^[@c\x04\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUŒ?ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUŒeoüÿ\x01\x01û\0\x02Ä\x03Xc@\0\0C€\x1cÄ\x03BcL\b\0C€\x1dÄ\x03BcP\b\0C€\x1eÄ\x03BcT\b\0C€\x1fÄ\x03BcX\bó\x04ð\x06PE\0\x18´„\x04Ÿ€\a\x05ï€\x05@\x11À\b@P \b@R„\x04ô„P\x15\0 P5\0\x1c@R¤\x04@O`\bGÈ ù\F˜ ù@R\x04\x05á€\0´\x01º„\x14U\0\x05\x14d€\bFˆ ùò\x04Fx ùF8 ù\x14$\0	\x15ã€
\x14\x01€\vF\x18 ùó\x03X\x10ˆ0¶a\x01´\x01„ÀX\0(\0¶\x01±DA\0\0„\x01µ(Lb\0\x06Iü”ëN•ÿ÷„\0ì$:oª„Ýž:oœ¼ïüF8 à–\0@` \bX1€\x14™³´æIÿþ\’\0È	´FD0€\0@\x13Œ\x02@\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU½ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUßoüÿ\x01\x01û\0\x02ˆ\x04¶&ì\x04:oœ„Ýž:oª¼ïô–€„\0ò—ˆEªÐIün\x7f„\0Ý<„\0€àIünò\x01<\x7fÞÀÊ\x02Õ\x1eæÉé\x03€\aÕ^[æÃé\f€\x06Ý<€\aIünq€\x06IünfF\0\x01\0Õ\v€\aÝ<€\x06Iünf€\x06Iün[F\0\x01@<\x0fÞÀ„\x01ì\f:oª„Ýž;ÿü¼ïüIû^[ß’\0ì\x04;ÿü„Ýž;ÿü¼ïôP\x0f€\x04Iû^[½ð\x01ì\f;ÿü„Ýž:o˜¼„AL\x11\0\b@a\0\f„\x02L\x10@!Õ\fF(\x10@\x041\0F@\0€\f@\0\f\x04\x14\x01\0FÕ\x1eIÿÿÞF\x18\x10@X\x10\x18´A@3\x18\x05@c\b\x04¶Á´A@!ˆ\x02¶AIÿÿÄÕ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUmoüÿ\x01\x01û\0\x02F\x18\x10@\x04\0€F@c\x18\x05@c\0\x02\x14`€F:o˜„Ýž;ÿü¼ïüIÿù¡Iÿù­Iÿùµ„ „\bIÿÿ¿Iû$Q€ D \0"„\0¨Š¶\x01¨	¨\vIû#½ì\x04;ÿü„Ýž’\0;ÿü¼ïô„A„`D\0\0÷P\x1f€\a®ÈIûœ^\0/€\aT\x01\0€À2F\b\0!X\0\x01$´ F\?ÿB\x10ü\b¶ T!\0\x0f´ XRÿ@1h\b@\x10”\x02@\x11„\x04¶ D_ðÿ´`@A \b@1”\x02@2\f\x04¶`P\x10\0\x18´\x01’\x04”\x04”Ô@!\0\x04¶AD_ÿ\x0f´\x01@\0\x14\x02@\x01€\x04Õ0F\b\0!X\0\x01$´@’D””X!\0\b¶@F\?ÿ´@XRÿB!\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÀÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUàoüÿ\x01\x01û\0\x02|\b¶@DOðÿ´@@!\x14\x02B!t\b¶@P\x10\0\x18´@@!\x10\x02X!\b\0¶@D/ÿ\x0f´\x01’\x04”\x04X\0\0\b¶\x01´\x01@\0\b\x02X\0\0€¶\x01ì\f;ÿü„Ýž:oª¼ïô„Ÿ„`>D§ø\x10?€\x02>D§õ\x10?€\a\x10?€\x06\x10?€\x05\x10?€\x04\x10?€\x03Da\aÌP\x1f€\a„AD\0\0>Ý&\0P\x1f€\x06„AD\0\0IÝ&€àP\x1f€\x03„AD\0\0HÝ&€ È\x12\0O€\x03’„P\x02\x7fñ–\0>E$_æ\x1fè\x05„\x01>\x05$`Õ\v>\x15$`Õ\bD\0\0->\x05$_„A>%$`Nƒ\0iÏgÉfP\x1f€\x05„AD\0\0<\0€\x06§Ê\0Ÿ€\x03Ý&ƒ€P\x1f€\x04„AD\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU’{ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU’›oüÿ\x01\x01û\0\x02\0=Ý&@P\x1f€\x02D\0\0B„AÝ&OÃ\0LN£\0JÈH\0/€\x04\0\x0f€\x05—”T0\0\x03B\x10\x10\v•´@a˜\x04”JB\0\x14\v@c\x04\x04”\x03T\x13€\fB1\x04\vTD\0\x03@B\x04\x04”Ý@c\0\x04B\x11\b\vTs€@T\x04€\x03@r\x1c\x04@c\f\x04”\x04”NB!\f\vB„\x10\v@s€\x04@c\x04\x04”—@„\x1c\b@c\b\x04@s \x04\0/€\x02€&€\aIÿúk\0\x1f€\x02€\x06Iÿùn>d§ø>t§õì\f:oª„Ýž:o˜¼Iÿø\IÿøhIÿøÊF\x10\0œX\x10‚´<\x1f)\x17<\x1d)\x1eF\0\0®X\0\b Ý!<\x1d)‰„\x01Ý!F\b\x10`\x04\x10\0XB\x10ø\b\x14\x10\0XIÿÿ-<\x1d\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU“ûÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU”\x18oüÿ\x01\x01û\0\x02)‰„\x03Ý!F\x10\0œX\x10†D<\x1f)©F\x10\0X\x10Ô<\x1f)pF\x10\0œX\x10†„<\x1f)ÕF\x10\0œX\x10†è<\x1f)\x04Iÿþ™:o˜„Ýž:o˜¼@`@	@c@\bD$\0\0€ La@\x14@\0@\b’\x18P \x7fñ>\x14§ù–>\x05$_æ_è\x03„!Õ\x02„ >\x15$`ÕEIûS\x1d’\0F\0\b\0L`@\a<\r6ÔT\0\0€Õ	F(\0\0La@\x19<\r6ÔT\0\0@À0<\r)®Ý À,.\x05$`À).\x15$_<-)tF	\0\0@\x10 \bX\0\0\x01Õ\x19F$\0\0La@^[<\r6ÔT\0\0@À\x15<\r)®Ý À\x11.\x05$`À\x0e.\x15$_<-)tF	\0\0@\x10 \b@\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU•~ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU•œoüÿ\x01\x01û\0\x02€\x04D\0\0.Ý":o˜„ÝžF\x10\0žX\x10L<\x1fYÓF\x10\0žX\x10Š`<\x1fYvF\x10\0žX\x10ƒ@<\x1fYwF\x10\0žX\x10Šœ<\x1fY~F\x10\0žX\x10Š\x04<\x1fYŒF\x10\0žX\x10ŒP<\x1fY„F\x10\0žX\x10‹”<\x1fY€F\x10\0žX\x10ˆ<\x1fY}Ýž’\0:oª¼ïÄF\b\0%\x04 \0À€ ñƒX!\0\x02ò€ ò\x03ñ„X!\x02 òƒF\x100 ò\x04ñ…X!\x02\0ò„€ ò\x05ñ†X!\x01\0ò…F\x10p`ò\x06ñ‡X!\x02\x04ò†€ ò\añˆX!\x05\x04ò‡F\x10° ò\bñ‰X!\x02\bòˆ€ ò	ñŠX!	\bò‰F\x10ðàò
ñ‹X!\x02\fòŠ€ ò\vñŒX!\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU–ïÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU—\foüÿ\x01\x01û\0\x02\r\fò‹F\x111!ò\fñX!\x02\x10òŒò\rƒÀX!\x01\x10òò\x01GÁqa\x14 \0ÀD\0\b	ò\x03^¶\x02F‘±¡ò\x05ð\x04
¶@Fqñáò\að\x06€È¶@F\x14DDò	ð\b€¦¶@€…ò\vð
€d¶@X\x10„Dò\rð\fYÎ\x05\x14X”‰\x18Xs\x1c¶@\x15Ï\0…\x14•\0†\x14t\0‡\x14\x13\x01@\x14\x12A\x14\x12\x01B\x14\x11Cì<:oª„Ýž´@¶A ¨‰ ‚¨Š ƒ¨‹ „¨Œ \x05¨\rÝž’\0>\x1d%¤„\0>=$\0>M$\f˜ƒ˜Ä´B´cœ\x04šÚ¶A’a„L¨ÉŒ(L\x01\x7fñ<\x1d)ò>\r'\P\x10€”´a>M't¶`\x040€@¢‰šš’A\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU˜cÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU˜oüÿ\x01\x01û\0\x02¨Œ\bL\x02\x7fõÝž;ÿü¼ïüF\x10 \0X\x108>\r'\IÿÿÁ’\0ì\x04;ÿü„Ýž;ÿü¼ïüF\x10 \0X\x108>\r%¤Iÿÿ±’\0ì\x04;ÿü„Ýž„ >\x15$dÝž:o˜<D0\0ÿ–H–F@\0®XB\bàÕ\b\b`\0\x01–h@3\f\x0382\f\0ŸIÉø@1ˆ\x03€\x048\0\f\0V\0\0Ï\\0\0\x01:o˜\x04Ýž:oœ¼ïü€`É\x03„\x01Õ\x1c§Â„¢—ü„Á¦@C\x1c^[@Bœ\x1aDP\0ïÒ\x03Œ°Ú\a˜Y\0 ÿÿ€\x03„"Õ\x05˜Á\0!ÿÿœbIÿÿÁ’\0ì\x04:oœ„Ýž<\rI	D\x10\0\x18L\0À\x06„(>\r«”Õ\a„(L\0À\x06>\r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU™áÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU™ÿoüÿ\x01\x01û\0\x02«”Œ0¨Bݞݞ’\0–\0™ §`––Hâ¢è\b˜Ø¦\x18˜H®X¦ œ\x01® Ýž’\0;ÿü¼ïü„!–\0”Œ>=© >Mª\bIÿÿæì\x04;ÿü„Ýž;ÿü¼ïü.\x15´Ê–\0D \0\x10>=ª€>M©(IÿÿÔì\x04;ÿü„Ýž:o ¼–\0—ˆ@\0\x10N\x02\0}^ô\x7f¶é*^ô\x7fÁè\x03„!Õ^[Æ\x0fž1–\0„!”Œ>=© >Mª\bIÿÿµ\ó\0Né\x02Õ\vœ1–\0„!”Œ>=© >Mª\bIÿÿ§„"€\x06D \0\x10>=© >Mª\bIÿÿÕP^ô\x7f¦èM„ D \0\x10>=ª€>M©(€\x06Fp\0Xs…ˆÝ'€\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU›Xÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU›uoüÿ\x01\x01û\0\x02„ D \0\x10>=© >Mª\bÝ'^ô\x7fœè4„ D \0\x10>=ª€>M©(€\x06Ý'€\x06„ D \0\x10>=© >Mª\bÝ'æÂé\fŸ²—°€\x06„ D \0\x10>=ª€>M©(Õ\v²—°„ D \0\x10>=ª€>M©(€\x06Ý'€\x06„ D \0\x10>=© >Mª\bÝ':o „Ýž;ÿü¼ïüD \0\x10–\0–H>=ª€>M©(Iÿÿ=„ >\x15kRì\x04;ÿü„Ýž;ÿü¼ïü„ –\0D \0\x10>=© >Mª\bIÿÿ)’\0ì\x04;ÿü„Ýž:o <–\0@ \f	>]ª\8bˆ\0T0\0\a@\x13\f\x0e–LÉ%>M%\8B\b\0@B\f\x0e—$\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUœËÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUœéoüÿ\x01\x01û\0\x02Ä\x1d…\x01@4\f\f@a˜\x048bˆ\b>-ª\b.ukN8\x11\0\b>-ª€8\x11\0\b>-©(Ÿù8\x11\0\b>-© >ukN8\x11\0\b:o \x04Ýž<\rkö„%ž\x05@\0€\x06Ýž’\0:o ¼>m°$\0ƒ\x01×€à„\x01L€@\x0e<\x1dXõ„\0Ý!\0\x03\x01×L\x04@\x0f qD\0\0pÕ\b\0\x03\x01Ö„!L\0À\x06 q„\b¶'Õ\x02„\0:o „Ýž’\0–\0À\b¦\rT\0\0ÀV\0\0@\\0\0\x01ÝžF\b\x10\0\x04\0\0LB\0(\vÝž’\0:o ¼–\0—ˆ@\0\x10À?^ô\x7f¶é\x13^„\x7fÅ„\x02„A@\x11 ^[@\x10 \x1a>=ªÔ€\x06ŒO>M©xIÿþ–’\0Õ*^ô\x7f¦è'\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUžCÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUžboüÿ\x01\x01û\0\x02€\x06„ D \0\x10>=ªÔ>M©xIÿþ‡^ô\x7fœè\x1a€\x06„ D \0\x10>=ªÔ>M©xIÿþzÆ\x05ž1–\0„ Õ\x03€&„\x01D \0\x10>=ªÔ>M©xIÿþk:o „ݞݞ’\0F\b\x10\x02„?\x14\x10\0G\x14\x10\0GÝž´A¦ÐË^[\x02@\0\x1c\x02 \0†„f!œ’B"\fs\x04\0\0\x12–‘¬„@1 	´!Œ*®É®ˆ\0\x10\0\rX\x10€\x02\x10\x10\0\rÕ7„L2@9\x02 \0^[D@\x01@B\bV\x02 \0\x1c„fœ‘B!\f$\0P\x017.4¢žœ“šë—Q–Øâ¤è\x02€D\x02@\0†˜”–‘\x12 \0ˆ\ñ€ è\x06œ–>M¸(8"\r	´!\x02 \0ˆœN@1\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUŸÍÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUŸòoüÿ\x01\x01û\0\x02 	®É®ˆ\0\x10\x01SX\x10€\x02\x10\x10\x01S„!>\r$iÕ%Œ—L2@$¦ÑË\x03¦’Â\x13\x02P\0\x1c.Ej´\x020\0†\0 \x01TiB2sX!\0\x02\x120\0š\x10 \x01TÕ\x05\x10 \x01T\x12 \0š´A\x02\x10\0šœ\x13@  	®®@Ýž’\0–\x01œÁ„ƒB1$–IœÙ˜Û–\x19”JB \x04s€\x02Ýž˜È@1„\x17–‘˜\x12B\x01„sÝž\x04\0\0\x0fP\0\03D \0%¦F¦Ç˜Y@ ˆ6®FÝž’\0;ÿü¼ïü<\x1dlüD \0D–\0B\x10\bs€\x01Iÿÿç’\0ì\x04;ÿü„Ýž„b–H–\x01–L\x11À\vD@\0,DP\0L@2ˆ^[@2\b\x1aÕ
D\x10\0PD@\0p\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU³Šÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU³Õoüÿ\x01\x01û\0\x02@2\b^[@0ˆ\x1a„#@\x10\x04\f˜Ù–\x19Ýž’\0:o ¼<x\x04„!L€€\rN‚\0\x06„\x03L€@&Õ\x06„!<\x1fx\x04€ÈÕ&>}à\x10 z\0\x03€"\x04\x10€\x0f„@\0\x10€ID`\x02qIÿÿÄ’\0P\0\x03i@`\x18\x16—´Æ\x11„!L€À\x04„\x03Õ\x02„\x01¶\a„ÀÕ\b<\x1dYMD\0\0QÝ!D`\0\x1f<MY\a<=x\x04„!„\x04D 2\x01Ý$€\x06:o „Ýž–\0–IÀ"Á!’!–Œ„c@0Œ7Â\x12Á\x16æ\x06é\x10„&@ \x047–Hš\x01–\0É\x02Õ\x0eæ%è\x03œ\x01Õ\vœ\x05Õ	Á	„#@ \x047Õ\x02–DÉ\x03ž\x01–\0Ýž’\0<\rI3Ýž’\0<\x0fI3Ýž’\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUµWÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU¾9oüÿ\x01\x01û\0\x02\x02\x10\x01^[„OL\x11@\x16\x02\x10\0¡œ“L\x11@\x11\x02\x10\x01\x0e>\r'H¤€œ\x02L À\x05D\02\0Õ\a>-'ZL\x01\x7f÷D\0\x06@Ýž<\x02ÔBT\0\0\x02È\x1a<\r[\x18È\x19.\x05k‚È\x16<\r`ðæ\x0fè\x12.\x05›ÍÈ\x04.\x05¶\x16À\f<\x1de_æ"é\x06.\x05•¾\\0\0\x06Õ\x04„\0Õ\x02„\x01Ýž:o˜¼<\r`ò„+L\0€\b<\x1dRÐÝ!„\v<\x0f`ò:o˜„Ýž„ >\x15$nÝž–HT@€\x02–Ä\x03„"Õ\x04–LÁ\x02„!®X<\x1dlü\0P\x017D@\0DB\x12s§\x18\x04\x10€\x0f\0\x10€IL@À\x04„ ®XT\x11\0\x02Á\x03„"Õ\x04–”Â\x04„!®YÕ\x02®™\0 \x017<\rlü\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU¿–ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU¿Åoüÿ\x01\x01û\0\x02D\x10\0DB\x01\x04s¦Y\x04\0\0\x0f\0\0\0JL\x10@\x04„\0®\x19Ýž’\0:o ¼ïø<-Y.€áD\x10\x01\0€ÀÝ"È\x04„\fH\0\0„\0\x03\x016ÈT 2„$L\0À\x04„!Õ\x06 sV\x10€\x04\\x10€\x01É\f„"L\0À\x04„!Õ\x06 sV\x10€\x02\\x10€\x01Á\a<=SÇD\x10\0*€\x06Õ\x10Ž\x0fæ\x03è\x03„\x01Õ\x05 3Ž\x0f\\0\0\x03À	<=SÇD\x10\0#€\x06D \0\x16Õ*.\x15¶\x04¦¹–ÌË\x06.\x05¶\x05@\x01\0\x02Õ\x02€\x02T\x10€\x02¦¸É\x06.\x15¶\x06@!\x04\x02Õ\x01P€\x04€ €h€\x06IÿÿmD\0\0\x10¨3<-SЀ(€\x06Ý"Õ\a¦y¦¸<=SÏ€\x06Ý#´&¦¹T\x10€€\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÁ>ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÁioüÿ\x01\x01û\0\x02Á\v–T\x02#\0˜Á\x04P!\x7fÕ
P!\x7f´Õ\v–T\x02#\0˜Á\x05P!\x7f°CÕ\x05P!\x7fԐC˜’\x12#\0’\x02\x13\0‘\x02#\0’âAè\x02€"\x12\x13\0’ì\b:o „Ýž:oœ¼ïô\0P\x01]§	\00\x01^¦ˆP\x7f€\x04@\x12\x14\x02@!\f\x02€g€ÀIÿÿ!<-SЀ'€\x06Ý"ì\f:oœ„ÝžD ÿý–IL\x11@\r¦\0D\x10\0ÿL\0€"D \0\x13L\x01\0\x1eÀ\x1cÕ\x19D ÿüL\x11\0\x16D à\x01L\x11\0\x12D ÿþL\x11@\x10¦@D \05L\x11@	¦\x01„ V\0\0\f@\0€\x06Õ\x04„\x01Õ\x02„\0ݞݞ’\0Ýž’\0„*<\x1f`“ݞݞ’\0:o˜<¦B„ML\x11\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU¿ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÂèoüÿ\x01\x01û\0\x02\0dæ.è
„‹L\x12\0\x10æ,èv„
L\x10@vÕ	„NL\x11\0\x16Ž;„AâAémÕb„D>%€£D \02</mø„A>%€ D\x10\0ð<\x1fm÷Õ[œD¦ÈŒn>5JH„@Õ\x05§%–°\x10B€\x0f¦È>MJH™T‘™\x02âCéõ¦ƒ>%€¨æDé\x05ŒP–æEèA>-·ÜD0\x04 ¶bD0\02¨Ñ¦È§\0›#ä…é\x11˜Ã§^§\x1d@2 \b˜Ü¶b¦H˜\x01\00\0\b¦G@\x01 \b˜\x01¨\x11„%>\x15€£„!>\x15€ Õ^[>\r€ „B®ƒD \02</mø„P\x10 \0\b„A®€D\0\x04 <\x0fm÷Õ	¦\x03æ\x04è\x03>\x05€¨„!>\x15€¡\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÄ<ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÄ`oüÿ\x01\x01û\0\x02„\0Õ\x03D\0\0\x1f:o˜\x04Ýž’\0:oœ¼ïü\bP\0\x01¦Eæ)è\x03>\x15´Û¦@æ)è\a.5´Ûâaé\x03>\x15´×\x04¦àæiè\x14>\x1d³´\0 'âCé\x0e\x04 €\x0f\0p
\x100`D`\0DB#˜s§ \x10A\02„(Ù\v¦Fæ$è\x03>\x15jâ¦\aæ\x02è\x03>\x05jã<\rYwÝ .\x15´Û.\x05j«”J˜H>\x15jªì\x04:oœ„Ýž’\0¤ƒÂ\x0e´a¤šš¶A„@¬¤ƒ Âž‘–‘¬ƒ8\x11Š
Ýž>\rç„\x04 \0.„ \x14\x10\0+æCè\x04„!\x14\x10\0.Ýž’\0>\x1d(\x18>\rçàD \01„`\x1a \0\x03>Mçò¬‰\x180€\bL\x02\x7fùÝž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUŹÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÅÞoüÿ\x01\x01û\0\x02’\0>\r'H„?\x1a\x10\0\x01>-'ZL\x01\x7füÝž>\x1d'H–\x01¤ˆœJL @\x04„\x01Õ\x06>-'ZL\x11\x7fø„\0Ýž’\0„A–H–\x01L\x11@\x15>-'H„ ¤ÐD@ÿÿœ’L2@\a>-'H8\x01\x05	Õ\x1aœI„iL\x11ÿóÕ\x15„‚L\x12@\x13>-'H„ ¤Ðœ’L0@\b„_>\r'H8 \x05	Õ\x05œI„iL\x11ÿôÝž’\0–\x01F\x10 \x18È\x02Õ\x10P \x7fì„`–‘<?I\x14æJè\x03„\x01Õ\x06D \0\x1eL\x01@\x05„\x02<\x0fI\x14Ýž’\0<\r)”À\x03„\0Õ\x03.\x05$PÝž;ÿü¼ïü–\x01IÿÿÜì\x04;ÿü„Ýž:oœ¼ïüF\x10 \x18.-${–\x02L \0u\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÇAÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÇaoüÿ\x01\x01û\0\x02>\x05${„ >=èD>}è„™K˜Ï>-_˜>m_ ¦Ø™
§h˜Ž®ÐœI„H¯`L\x11\x7fî„mL\x01À\v.\x15$y>\x15jâ>\rjã.\x15$zÕ+<-yï„ œ— 1\0\0ž‘à\x03é\x11R\x10€\b>-ç„–È\x101\0)\x101\0*\x04!\0\x0e8\x11\x04\0š\b–\x02Õ\x06œI„ˆL\x12\x7fé„\0–\0ž–æCè\x02Õ\x02„\0>\x05jâ„!>\rjã®@<\rYwÝ .\x05jã„c.\x15jâ@ \0\x1a@!€^[„\0>mèD˜Æ>}è„ a€\0˜Ç§\x18>}_ >=_˜™C›±˜Ç›!›²¯\x18œ\x01„h¯¨L\x01ÿêì\x04:oœ„Ýž’\0>=%씃„ ˜š\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUȶÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÈÛoüÿ\x01\x01û\0\x028\x11ƒ	¬R¬Q®V®WÝž>\x1d%ó¦\b„AŒ(L\x01\0\a>\r&;L\x10\x7fù„\0Ýž’\0:oœ¼ïü–\0æ	è\aIÿÿàIÿÿêÈ\x0fÕ
„À€\x06Iÿÿ؝±„	L`\x7fû„\0>\x05$t>\x05$–ì\x04:oœ„Ýž’\0>-%ó–À€"¦\b„L\x02@\x06\0\0ÿÿL\x01€\x18Œ(P\x01\0HL\x10\x7fõ„ §\x10–\bŒHÌ	>-%ì”K˜J„A®Î®Õ\x06œI„‰L\x12\x7fò„	Ýž>-%ì–H8\x01\a	Ýž–\0>\x1d%씃˜Š¤’8 ƒ	Ýž’\0>\x1d%󖀄\0§\b„¡œÁÜ\x05\0@ÿÿLA\0\a–\x18„iŒ(L\x01ÿõÝž–H>-%ì”K\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÊ5ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÊUoüÿ\x01\x01û\0\x02˜J¬	Ýž’\0–\0>\x1d%ì”\x03˜\x01¤\x01Ýž’\0:o¨<.%jâ.\x15jã”’–É\rF\b\x10\x06´`B1˜	¶`´`B1ø	¶`„\x7fÕ\x12„ÁL\x13\0\x04„ Õ\x0fF\b\x10\x06´ B\x10˜	¶ „"´`B1ø\b¶`„c>5j›™J„ Fð\0®\x02G…p—h€\x01>=]¨Õ\r¥ø\0”€\0\x12t\0\0@t”\x018qœ\0œ\x01¯ðœJF`\0®Xc\v\0>­\¸@\x18\0@€¨\0F`\0®Xc
Ì>­]\x14™Î@`(\0à\x04éà„ Fð\0®\x02G…{€\x01Õ\f¥°\0„\0\0­¸@d\b\x018a˜\0œ\x01¯¨œJFP\0®XR‹\f>m\ÐF\0®X”Šä>­\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU˨ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUËÌoüÿ\x01\x01û\0\x02]\b@€\x14\0™Î@P(\0@`¤\0à\x04éá>\x1d\ФÏ\0%\0\a\x120€	\x120€\bF0\0®X1ŠøF\x10\0®X\x10‹\x18¥\x1a¥˜¤Ù§J\0€\0\x10%\0	\x10%\0\b¦I>-\è>\r] ­\x12­¬Ñ¯B\x10\0\0®A„\0F\x10\0®X\x10‹ >-^LFP\0®XR‹x™\x01˜B˜…>­]ô§ ¦@0(\0D`\0Uœ\x01¯\x18®ˆL\x03\x7fè:o¨\x04Ýž:o˜¼–HÀN<\r`í–\x04ÀJ<\re$„_L\x01@
.\x05$uÈ\x06Iþ×ä<\x0fe$Õ=>\rƒ°\0@\0C\0 \0B\00\0D˜¢–˜“äBè\a\0 \08Ê\x04\0\0\0;À*Á).\x05$u„AD\x17”¨\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÍ$ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÍDoüÿ\x01\x01û\0\x02L\x01@\v„\0Ý!€ÀIÿû\x11š0”\x04’\x04Õ\b„\0Ý!<\x1de$š\x01”\x04’\x04’\x01æ\x02é\x0f<\r`ð„*L\0À\v„?<\x1fe$<=RÌ„\0€ €@Ý#:o˜„Ýž:oœ¼ïü<\x1dZVP`\x02?Ý!>-(8À	„">\x15k3„ ¦78\x11\0\bÕ(¦w8!\x04\0Ê\x13>}'ð8\x13†\x02„_L\x11\0^[Iþׂ¦w8\x13†\x02š\x01”\x04’\x04\ð\0Qé\x0fD\x10\0(>\x15k3>\x1d(8¦78 €\0Â\bž‘8 €\bÕ\x04„">\x15k3ì\x04:oœ„Ýž:o ¼\0„\0€Â€áIþ×\„a€ ¤±LqÀ\x12Ê	<\x02Íú¬1\x04„\0	\x14ƒ\0\x02Õ\x11 2Iþ¼;\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUΝÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÎåoüÿ\x01\x01û\0\x02¨2\x14\x04\0	Õ
Ï\x05 2Iþ¼3Õ\x04€"Iþ»ÿ¨2:o „Ýž’\0;ÿü¼ïü<\x1dk¦D \0\x10L\x11\0\x05ŒPL\x11@\b„\0Iþ¬C<\rk¨Õ\x03IþŒ²ì\x04;ÿü„Ýž:oœ¼ïÄ€À\0\0\x017€áIþèõ’\0\0C\x017<-lüD\x10\0D\x12\x0f€\x0f÷…B"\x04s\x04\x11\0\x0f<MWí\0\x10€I\x10\x1f€-€?\x04\x01\0\x0f„@\0\0\0J\x10\x0f€.„\fÝ$„\0ì<:oœ„Ýž;ÿü¼ïüF(\x10\b\x04!\0À„aB!8\vL!À
F(\x10\b\x041\0ÈX1À\0\x141\0ÈÉ\v\x040\0\x0e>-bà\01JË	´b€AÕ\b„BL\x11@\b>-bà´b„AÝ#Õ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÐ=ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÐloüÿ\x01\x01û\0\x02„\0€ F \0®X!\bÀD0A¾Iû(8ì\x04;ÿü„Ýž:o¤¼ïü.\x05´ÿÈ\x19.\x04ëè–\x04È\x15<\r;^¦\x02È\f.e\x1eèÎ	„\x01Iû’æ„!L\0€\x04€\x06Õ\x02„\x01À\x04„\x01H\0\0Œ.\x14¢œ.”¢Ÿ„á‰!H\0\0}Iý+bP`\0\bùÀu.\x14¢ž\0\0\0\v.$¢Ÿâ\x01è\x03„ Õ\x04˜Q@\x10\x04\aÁ\x05Iþè`€àÕ\x11Iýãú€àÀ\x04\x02p\x01\x0eÕ
€ F \0®X!\bÀD1\x01íIû'æ.\x14¢Ÿ.„¢œ‰\x01\x03T„\0ÿÏ\x06¦s¤²€\bIþá¾F \x03\x02X!\x0e„„\x02¯Ñ®\x10’è¦r¦1”N”\x04@\0€\x04@p\x1c\x04¯Ò¦4®\x13\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÑËÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÑóoüÿ\x01\x01û\0\x02¤r.\x05´ÿ’(®TÈ3.tëè—üÇ\x11<}(¾¤r\x04\x03\x7fþ§s€ˆ„eÝ'À%¦s„\x01Iý*q„\x04Õ .”ëħs¤rN“\0
\x04\x03\x7fþ€ˆ„eIûZ³€	Õ\x12\x04\x03\x7fþ€ˆ„eIûVq’\0€\aÕ	—ø€\aàéNóÿƒ„\x03Õ\x02„\0ì\x04:o¤„Ýž:oª¼ïüDw¤\x1c„\x01Ý'\0„\x01L€@#>l¢œ¦p¦3˜\bœ\x03–\0Ý' L\x04@\x18¦p¦3˜IœK˜\b–\0Ý'\0L\x04À\x0e¦°¦s˜\x12œ\x04˜˜Š˜Š˜J–\bÝ'L\x04\0(„À€æGÀ\0žYÎ\a,FÕ\x02€àÎ\x04<\r)ÜÕ\b„!L`À\x04Ý<Õ\x04<\r)Ý\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÓOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÓwoüÿ\x01\x01û\0\x02Ý ±—°V\x13\0\x03–\0@e\x04\x1aÀì„#L\0À\x06ù—øLp\x7fçIûLÐì\x04:oª„Ýž:oœ¼ïü.ukn„!–\0LpÀ%>lÝtL\x03À\x0e¦3À\x1eIþÍ™IþÍ­<\rY\fÝ „\0®3Õ\x14¦3È\x12<\rY\vÝ IþÍfIþÎ\x02IþÎÊIþÎt<-)\x04„\x02€ Ý"¯óì\x04:oœ„Ýž;ÿü¼ïüIüàC’\0ì\x04;ÿü„Ýž:o ¼€ÀD\0\0I€âT€€ÿL`\0\x05Ž\fL`@\a€\x06IÿÿèÀ\x17Õ\x1cD\0\0JL`\0\fŽ\fL`\0	œ\x02L`\0\x06D\0\0\x15L`@	D\0\0JIÿÿÔÈ	D`\0J€\b€F€g„!Iû\x16ñ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÔÎÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÔõoüÿ\x01\x01û\0\x02:o „Ýž;ÿü¼ïü.E$\x7f>EjÊ„ >\ràtD \0OIÿGŒ<\rYåÝ „%L\0€\a.%$}>\r%LÕ\x05.%$~>\r$\x1c„ >=àtÕ\a§@–`§\x01œ\x028A”\b	â"éøì\x04;ÿü„Ýž;ÿü¼ïüFð\0®\x027…d„ F\0\0®X\0
¬Õ
¦€>MZ¬˜’˜”§\x01œI¯\x11œ\x02à#éöIÿslì\x04;ÿü„Ýž;ÿü¼ïô„`P\x1f€\aD\0\x02\0„A®ÈIûŽŽ\0\x1f€\a–\fÀ	F\b\x10\x06X\0\b\0´@X!\0\x01Õ\bF\b\x10\x06X\0\b\0´@B!\0	T\x10€\x02¶@Á	F\b\x10\x06X\0\b\0´ X\x10€\x02Õ\bF\b\x10\x06X\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÖFÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÖfoüÿ\x01\x01û\0\x02\b\0´ B\x10„	¶ „AD\0\0HP\x1f€\aIûŽ`\0\x0f€\aT\0\0\x03È	F\b\x10\x06X\0\b\0´ X\x10€\bÕ\bF\b\x10\x06X\0\b\0´ B\x10Œ	¶ F\b\x10\x06X\0\b\0´@–”>%jò´@B!\x04\v>%jó´ B\x10„\vÁ\x05´ X\x10€ ¶ .\x15´Û–\bæ\bé\x02„'>\r³´\00\x01#–H€ƒ\x10\x10\x01'€Aâè\x02€C\x10 \x01#ì\f;ÿü„Ýž:oœ¼ïô.\x05µ\x05„,T\0\0\fL\0€Q„`Dq\aÌD\0\x01YP\x1f€\x05„A®Ê®È®ÉÝ'È\x19\0o€\x05„\x01Tc\0\x03L`@\x13D\0\x01XP\x1f€\x06€FÝ'È\v\0\x0f€\x06<-YÐD\x11,\0@\0\x04\x04€&Ý"\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pU×Áÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pU×âoüÿ\x01\x01û\0\x02D\0\x01EP\x1f€\x05„AÝ'È$\0o€\x05„\x01Tc\0\x03L`@\x1eD\0\x01VP\x1f€\a€FÝ'È\x16<\x1dY²D\0\0`Ý!\0\x1f€\aT\0\0\x1f”M@\0\x04\x04–\0<-YÐD\x11`\0@\0\x04\x04€&Ý"ì\f:oœ„Ýž’\0:oœ¼ïô.\x05µ\x05„,T\0\0\fL\0€r„`\x10?€\a\x10?€\x06D\0\x01FP\x1f€\x05„AIûªÈd\0o€\x05„\x01Tc\0\fÂL`@ D\0\x01[P\x1f€\a€FIûšÈ\x17<\x1dY²D\0\09Ý!\0\x1f€\aT\0\0àT\x10€\x1f@\0\x04\x04<-YÐD\x119\0@\0\x04\x04€&Ý"Õ\x02„À\0\x7f€\x05„\x01Ts€\x03Lp@"D\0\x01DP\x1f€\x06€GIût’\0È\x18\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÙ9ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÙnoüÿ\x01\x01û\0\x02<\x1dY²D\0\08Ý!\0\x1f€\x06T\0\0àT\x10€\x1f@\0\x04\x04<-YÐD\x118\0@\0\x04\x04€'Ý"Xc\0\x02<\x1dY²D\0\07Ý!D\x1fÿŸ@\0\x04\x02•µ@\x03\0\x04–\0<-YÐD\x117\0@\0\x04\x04„!Ý"ì\f:oœ„Ýž;ÿü¼ïô¦ÀF\b\x10\x06\x10?€\a\x04\0\x02\0––\x04È	.\x05jÌÈ\x06æhé\x04„\a\x10\x0f€\aP\x0f€\aIÿkA’\0ì\f;ÿü„Ýž;ÿü¼ïüIÿG±’\0F\x10\0žX\x10¨<\x1fY²ì\x04;ÿü„Ýž:o ¼Fh\x10\bXc\0\x04´&B\x10€	¶&<\x1dY\x1dT€\0ÿ„\x02Ý!€\bIÿ\Ÿ´&\0X\x10€\x01¶&„\x02<\x1dY\x1dÝ!€\b:o „\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÚÝÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÛ\0oüÿ\x01\x01û\0\x02Ýž:oœ¼ïü—ˆ—Á€\x06Iÿú„æ	è\x15>\x1d%ì8\0ƒ\x01â\aè\x0fF(\x10\x02\x04A\0\rF\x18\0\0„\x03€fD \x10—IþÃÜ„\0Õ\x02„\x01ì\x04:oœ„Ýž’\0:o ¼P`\0(\0\0\x016È\r\x02s\0u\x04ƒ\x7fúÇ\x06¤7œ{˜\0â\x01è\b¥÷Õ\x04¥÷\x04ƒ\x7fû™ÿŸû.\x15çÁÁ'<\ryñ¤@.\x05$xâ é <\x1d`ð„JL\x11\0\x05.\x05ƒðÈ\x18<\x1dyò„\x02\0\x10€,Iÿÿ­„!L\0À\x0f¤w’"–	æ\x15é\x03D\x10\0\x14–I˜I@\0œ\x06@p€^[€\b€'Iþ·¹\x14\x03\x7fý:o „Ýž:o˜¼—–\bIÿú\x18æ	è\x1d>\x1d%ì8 ƒ\x01âFè\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÜTÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÜwoüÿ\x01\x01û\0\x02„@8 ƒ	Õ\x04›–8`ƒ	F\x18\x10\x02\x04@€\r>\x1d%ì80ƒ\x01F\x18\0\0„\x03D \x10™IþÃf:o˜„Ýž’\0;ÿü¼ïü<\x1dkµD \0@L\x11@\v<\rk¶À\a\0\x10\0,„\x02IÿÿÉ’\0ì\x04;ÿü„Ýž;ÿü¼ïü<\x1dkµ„DL\x11@
<\rk¶À\x06\0\x10\0,„\x02Iÿÿ´ì\x04;ÿü„Ýž:o ¼Fx\x10\x02>m%ó¦0„!L\0À\x18ž÷ž3¤@¥Xž5™M—i­XF\x18\0\0¥\0„\x03D \x10šâ…è\x02­\x18\x04C€\r¤ØIþÃ\x18ŒÈ>\r&;L`\x7fã„ >\x15$t:o „Ýž’\0;ÿü¼ïü–ˆ”S>M%ì–Á˜!¬ÂF\x18\0\08B\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÝÐÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÝñoüÿ\x01\x01û\0\x02\v\x01„\x03D \x10˜IþÂù’\0ì\x04;ÿü„Ýž:o¨¼—À€\a@€€\x13@‘\0\x13Iÿù~€ÀD\x10\0\x10„\x03D \x10SD0\0ÿ€‡IþÂß„	FL`@\x0f€\aIÿù8T\x14\0ÿ€ÀIÿùW„!>\x15$–Le\0
€	€&Iÿùp€\b€&Iÿÿ¼:o¨„Ýž’\0:o ¼>m®Ì s—À\0\0€,Iýßœ\0 2„&L\0À\x04„\0¨2<\rk³T\0\0\x0fÀ\x04„\0<\x0fk³€& 
T \0\x0fÂ\f ‹¶\x01¨‰Â9\x04\x01\0\x0e\0 \x01J\x10 \x01KÕ2 	À\a\x04\0\0\x0e\00\x01K\x100\x01J<\x1dXâ€\aÝ!€À<\x1dkµD \0 L\x11@\vL`€	<-k¦\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUßGÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUßpoüÿ\x01\x01û\0\x02T!\x01Â\x03<\x1fk³<okµÆ\r<\x1dk¶D \x10>\00€,„\x03D\x10\0\x10€†IþÂn<-Xå<\rk¶€&Ý"\x02\x04\x01^[„jL\x01À)\x02\x04\x01\x1cD\x10\x19ƒL\0À#F\x18\x10\x06X\x10€|´\x01F?ÿ\0X1ƒÿ@\0\f\x02F0\0€X1„\0@\0\f\x04¶\x01´\x01@\00\b’\fF2\x01\0@\0\f\x04¶\x01P ÿì´\x02B\0x\bÕ\x1fF\x18\x10\x06X\x10€|´\x01F?ÿ\0X1ƒÿ@\0\f\x02D7ü\0@\0\f\x04¶\x01´\x01@\00\b’\fF1ÿ\0@\0\f\x04¶\x01P ÿì´\x02B\0x	¶\x02<\x1dXç€\aÝ!:o „Ýž;ÿü¼ïüIüÜ“’\0ì\x04;ÿü„Ýž:o˜¼@\x10@	@\x10À\bF0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUàÝÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUá!oüÿ\x01\x01û\0\x02@\0€CL\x11€ âAé	D!\0\0L\x11\0\x0f”ÑL\x11À+Õ\rF#\0\0L\x11\0\x1dF9\0\0L\x11À"Õ\x1d>\x1dhÜÕ\x16—‚€\x06Iÿ÷€\x06Iÿ§ Õ\x15T\0\x02\0À\x02„\x01>\x05$w<\x1dZr<\ryãÕ\x05>\x1dhä´!–\x01Ý!Õ\x04–\x01Iÿ÷k:o˜„Ýž:oœ¼ïü.$¢Ÿ.4¢œ—€˜šœ\x13—ÈL`\0\x05˜\x10L`@.€\aIýޝ€@À(€\x06€'\x02a\x01\x0eIþ×\v \x04´@¦S¦\x12@\x10 \b@\x10€\x04„\x01L\x10@\x18¦\x14„bL\x01À\x14¦Õ>5$s\0\x01\0	\0!\0\b@\0 \b@\0\b\x04D \0\x11L\x01@\x05€\x06IÿöÞì\x04:oœ„Ýž;ÿü¼ïü>\r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUâwÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUâoüÿ\x01\x01û\0\x02‚@Iþ2»„@<\r`’F\x10\0 X\x10ˆð€b€‚„¡Iþ3Uì\x04;ÿü„Ýž’\0:o ¼>mç„\0s\0MÏaP\x03\0ZIþ2Ÿ\0\x03\0ND\x10\0L\0À\x17…\x04\x14ƒ\0.…\x01<\x1dZ-\x10ƒ\0=\x04\x03\0\x15\x10s\0N€G€g€‡„¡Iþ3-\x10\x03\0ZÕB\x02\x03\0(IýÞ:À\x12\0\0\x02FIÿ÷Ù€Àæ	è\vD\0\00€&Iÿ÷ã€&D\0\0#Iÿþ.<\ryòÀ\f\0\0\0,IýÞ\x15À\a\0\x10\x02¤B\x10€	\x10\x10\x02¤>\x1dç„„@„À\x10 €=D \0ÿ\x12 €(<\x02µá\x14`€\x11\x14`€\x10D ÿý<\x1dZ;@\0\b\x02Ý!<-Y\rD\x10\0!€\x06Ý":o „\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUä\x06ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUäIoüÿ\x01\x01û\0\x02Ýž:oª¼ïô@\0\x13€	IýÞ\x16>}çà>m(\x1aEÀ\01D€\0ÿ@¤8IýÞ
€@¤0òIýÞ\x05€ ¤8ò\x01L\x04À\vL¡\0\x03Ê\a\x13À\0\x12ƒ€\x01\x12ƒ€\x02¤0þL\x04À\x0eL €\x03É
„\0\x13Ã\0\0\x12ƒ\0\x01\x12ƒ\0\x02\x10\x03\x7fþ>\x1dçòŒÈLpÿ×ì\f:oª„Ýž:o¨¼>]çà€ÂT€\0ÿ—È—!¤(L\x02@¤)L\x01€\x05¤*L\x01À—D\x1fÿ>\x15çÒ<Jóê„!\x04\x03\0’L\0À\x11\x04\x03\0Hæ\x13é\f€\x06„"D —VD0ê`D@+ò„¿Iþ\fŒ\0\x03\x01«.\x15³Û@\0€\x02T\0\0\x06È\x0fD\x1fÿ¦>-JÄ\x10\x11\03>\x15\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUå ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUåÄoüÿ\x01\x01û\0\x02k›\x10\x11\0\v\x10\x11\0^[\x10\x11\0#€'€\bIþÕÝ\x02\x10\0
Á\f.\x05çÁÀ	\ð‚¨é\x03„"Õ\x02„#>\x15$x>mç„\0“\0=N“\0T€\b€'IþÕŁ@<-Y\rD\x10\0!„\x01Ý"<lüD\0\0DBƒ€s€IP•\0\x1a<\x1dZ-\x14ƒ\0\x11\x04\x03\0\x15\x14“\0\x10€b€‚„¡Iþ2*<\x12µá\x10\x03\0ZX\0€\x02<\x1dZ;–\x01…\x01Ý!\x10ƒ\0=€\aIÿöž€Àæ	è\a.\x15$–É\b>…$–Õ\x05€\aIÿöÆ€À€&D\0\0`IÿöÒ€&D\0\0FIÿý\x1d€\x06Iÿö®Õ\a>\rçìÐ\x04nHÿÿ^:o¨„Ýž:o¨¼—€T€€ÿ€\x06€(IÿþG\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUç\x17ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUç8oüÿ\x01\x01û\0\x02.\x04¢Ÿ.\x14¢œ˜Hœ\vL`\0\x05˜\bL`@÷.\x05çÑN\x03\0ó€\bIýÜだN\x02\0í€\x06€(\x02t\x0eIþÕP \x04´ n\02ÿý\0\x02ÿü@1 \b@1€\x04„\x01L0@Éžj¦\b„BL\x01@\x1e¦+¦ª@\0 \b@\0\b\x04D@\0\x19L\x02@	>5çÜ\0\x02ÿÿ>\x05çÝÕ\f„CL\x01@
>5(\x14\0Rÿÿ>U(\x15H\0\0¸¦ˆ„fL!À\x1a>\r(\x18„ ¤L#À\x0e¦€Â\v¦«§*@! \b¤Â@!\x10\x04L1@\x03®@>M((L\x02\0žŒ\bÕì>\rç„\00\0XÃ;„cL!À9\00\0Y\0"ÿÿL1@3¦¯¦î@! \b@!\f\x04Ê%<=Z(\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUè•ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUèÖoüÿ\x01\x01û\0\x02æcé\x03</Z(<=Z(„\x06B\x01€$>Mçà˜\x04œÙ<?Z(­À¦«¦ê@! \b@!\f\x04¬¦­¦ì@! \b@!\f\x04¬‚„@P\x02\x7f¤Õ\x05„aL!€\x05„@\x10 \0X>\r(\x14¦€ÂX¦H„ƒL\x12@U¦\0\x12ÿÿL ÀP¦o¦®@\x10 \b@\x10ˆ\x04É2<-I'âDé\x03<\x1fI'<=I'>M(\x18”^[˜\x04œÙ<?I'­Á¦k§*@\x10 \b@\x10\x04.4¢Ÿ¬B„‚.$¢œ¦m˜“œ“¦ì@c\b\x03@\x10 \b„¡@\x10Œ\x04@"˜\x1a@"\x18^[¬C®€„ >\r(\x14Õ\x05„AL\x11\0\x15„ ®@Õ\x11.\x14¢œ.\x04¢Ÿ˜IœK˜H˜\bL`@\b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUê-ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUêZoüÿ\x01\x01û\0\x02€\x06€(€I€‡IÿþI:o¨„Ýž:o˜¼>\rƒ°\0 \0C\0\x10\0B˜Q–HÉ%\0\0\08À".eçÁ„\x01L`@\x1eIýÝ×’\0æ\x02è\x18>\r‚À\0\x10\0lÉ\x13\0\x10\0„É\x10\0\x10\0<É\r\0\0\0TÈ
>\rJÄD\x10\0x>e$u\x10\x10\0\x1eÕ5.\x05çÁÈ5>\rƒ°\0 \0C\0\x10\0B˜Q–H„AL\x11@+\0\0\08À'.\x05$wL\x01@$>\r‚À\0\x10\0lÉ\x1e\0\x10\0„É^[\0\x10\0<É\x18\0\0\0TÈ\x15„c>5$u>\rJÄD \0JD\x10\02\x10 \0FD \0\x1e\x10\x10\0\x1e\x10 \0E\x10\x10\0\x0eÕ\x12„`>5$u>\rJÄD\x10\02D \0x\x10\x10\0F\x10 \0E\x10\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUë¼ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUëáoüÿ\x01\x01û\0\x02\0\x0e\x10\x10\0\x1e:o˜„Ýž;ÿü¼ïüIüÙ¯’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüâó’\0ì\x04;ÿü„Ýž:o ¼.5›Ï.%›Î„ @\x10Œ\x06˜J–HÉ\x04BP\b	Õ\x03XP\0\x04<\x02µáØ\x04.\x05$rÈ\x17…\x01>…$rBbÄ\b<Zµá„\aD\x10 \0D Œ„`€†IþÀO<-)¢€&D\0\0QÝ":o „Ýž:o¨¼>}ç„€À¡:„\a„!D \x04–ñ\x04ƒ€\x03IþÀ7T\x03\0\x02À\fT\x04\0\x02À	>\rlü\0\x13€%´@@\x10ˆ\x04Õ\x14.\x15ç©<=[?<-yã@\x10„\x05@\x10Œ\x02T!\0\x02<\x1f[?Â\x06F\b\x10\x04X\0\x02D¶ T“\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUíwÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUí™oüÿ\x01\x01û\0\x02N’\0\aT\x04\0\x04À\x03„!Õ\x02„ >\x15çò<\ryã@\x03\0\x03T\0\0\x04À^[N’\0\x0e<\rZiÝ <MY\b„\aD\x10 \0D ˆ„`Õ\f<\rZjÝ <MY\b€i„\aD\x10 \0D ‰Ý$<\ryã@\x03\0\x03T\0@\0À!T“@\0N’\0\x10<MY\b„\aD\x10 \0D Š„`Ý$„\x01<-Zm€ Õ\x0e<MY\b„\aD\x10 \0D ‹€iÝ$<-Zm€	„!Ý">\x1dç„\0 €(T\x03\x01\0Ê\x13À\x1dT„\x01\0N‚\0\x1a„\x01\x10\0€(F\b\x10\x04\x04\x10\0AX\x10€\b\x14\x10\0A„\x01Õ	È\v„_\x10 €*\x10\0€(\x10 €)<\x1dZ8Ý!<\x1dZr€\x06Ý!D\0€\0@\x13\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUîóÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUï4oüÿ\x01\x01û\0\x02\0\x02Á\x02„!>\x15k\x1e<oyã:o¨„Ýž:o˜¼.eç”Î\x1e„!>\x15ç”>e$r<\x02µá<\x1dZ;Ý!<-RÆ€&„\x0fÝ"<mZ.Iþ?&Iþ\x12xÝ&<\x1dZ/F\0\0ÿX\0\x0fÿÝ!„\0:o˜„Ýž;ÿü¼ïüIüݍ’\0ì\x04;ÿü„Ýž:o ¼<\x1dZ€„\x01Ý!F\x18\x10`\x040€(>}$|F(\x10\x02¦xT1ƒ\0\x04a\0\x0e„A’hL\x11\0\fÁ\x05„BL\x11@AÕ$„!L\0ÀH®8Õ(È\x02Õ\x1e>$LË\x02Õ2´\bP\0\0(€&”\x04’\x04Iþ±ÃÀ6„\x02®8<\r`ð„*¶ÈL\0À/<=RÌ„\0€ €@Ý#Õ'È\x03®8Õ$Ë\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUð‹ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUð±oüÿ\x01\x01û\0\x02<\r`ð„OL\x01\0\x05<oI\x13Õ^[>$L´\bP\0\0@€&”\x04’\x04Iþ±À\x10„\x01®8¶ÈÕ\f„\0€ F \0®X!\bÀD0ÜæIû\x1dà’\0:o „Ýž:oª¼ïô.E$|.5ƒèT€€ÿ‡€V\x12\0\x02@Ž\x04\x1a€à€ÂN2\0×F\x18\x10\x02F\b\x10\x02\x040€\x10DWyÀ\x04@\0\x0eõ–Ý„\a„!D \x01Ý%@” \bT£€ÿõ\x01„\a„!D \x02@4¨\x04€†Ý%.\x15$v„AL\x11@\x04?Å$v<\x1dZ;<\x02µáÝ!<]z\x06–,À^[æïéF„\x1fL`@D<\x1dZZT\x02€þÝ!.\x05è\x18D\x10\b\0@\0@\b@¥\0\x04<MY\b@5$\x04„\aD \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUò\fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUò.oüÿ\x01\x01û\0\x02FÕ+„_>\x1dd La\0\x1aX\x02€\x01<-ZZñ–\0Ý".\x05è\x18ñ\x01@\0@\b@¥\0\x04´@5$\x04„\aD\x10\b\0D EÝ$Õ\x11—h@RÀ\b@¥\x14\x04´@5$\x04„\aD\x10\b\0D HÝ$H\0\0b<\x1dZ_€\x06>mç„Ý!\x04\x13\0\x1f\x14\x03\0"L\x10@*.%ƒà<\x1d`ó”\x13˜\b\0\0\x06<Z_„\0IþËÈÝ(\0@\x14ˆ\b\x04\x03\0"ˆ(Iþ°áÀ\x19@T¤\0ˆ¨\x14S\0\x1f\x14ƒ\0\x1c€i€ˆ„\aD\x10\b\0D IIþ¾:Õ\b„\x01\x10ƒ\0\x10\x03\0x\x14s\0#Iÿ‡Ê\x04\x03\0#…\0\x10ƒ\0æ\x0fè\x16.\x05$|„AL\x01@	„-Lp€\x06<-Zn\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUó‡ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUó²oüÿ\x01\x01û\0\x02„ Õ\x05<-Zn„\0€ Ý"„!>\x15è\x15Õ\b<-Zn„ „\x01Ý"\x10ƒ\0‘„\0ì\f:oª„Ýž:oª¼ïô>\f¢œ¦ƒ¦B…\0˜Q–Hñƒ€€È…!>}ç„ÕM\0\x0e\0\x02\x01\0\x1e\0\x03ã è\x03„\0Õ\x04˜\b@\x04\0\aÈ\x1d€\bIýØÕÀ9´ T\x10€\x04Á5\x02\x10\0¡.%k\x1câ"è/\0#€J±â"è\x03\x10\x13€J\x02\0\0¡\0\x13€Kâ è"Õ\x1f€\bIþÜ÷À\x1d´ T\x10€\x02Á\x19.%k\x1c\x02\x10\0^[’Aâ"è\x12\0#€J˜I±à"è\x03\x10\x13€J\x02\0\0^[\0\x13€K˜\0à è\x03\x10\x03€K!T”€ÿð\x01ã é²Æ\x1f\x04\x03€%„!\x10\x13€>\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUõ\x16ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUõ^oüÿ\x01\x01û\0\x02X\0\0\x04<\x1dZZ–\0Ý!„ALa@	<\x02µá<\x1dZ;X\0\0\bÕ\a<\x02µá<\x1dZ;X\0\0ˆ–\x01Ý!Õ\x18<\x02µáD ÿw<\x1dZ;\x10c€>@\0\b\x02Ý!\0\x03€”<\x1dZZT\0\0ûÝ!„\x1f\x10c€K\x10\x03€Jì\f:oª„Ýž;ÿü¼ïüIýÚQÈ\b.\x15k:.\x05k;˜\b–\0À\x06Iþ>„ @\0€\x06ì\x04;ÿü„Ýž:o¨¼>-ç„\01\0n€áT\0ÿÃo\x04\x01\0\x0fF\x10\x0fðX\x10€ÿ@\0\x04\x02Àf\0\x01\0¤À\x17F\x18\x10\x04\x04\0\x01B\0@\vÈ\x10T\x03€\fÀ
F\x18\x10\0\x04\0€\bD\x16\0\0@\0\x04\x02Õ\x03T\x03€\x02È\x03…\x01Õ\x02…\x02Iþ>W„!Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUöÚÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUöüoüÿ\x01\x01û\0\x02@.€ÀIþ>U²•´’Å•±š\x06–ø@`@\b@1À\b@\x04à\b@1€\x04@\x04 \b@1€\x04’Ñ<MY\aT£\0ÿ„\a@1¨\x04D\x10\x10\0D nÝ$.\x05è\x1eâ\x06è\x05\ó\0ÿè\x06Õ\x0eD\0\0ÿL`@\x18<MY\a€f„\aD\x10\x10\0D oÕ\rD\x10\x02\0Ts€\f<MZM”	@\0œ\x1a€J€(€iÝ$:o¨„Ýž’\0:oª¼ïü—ÈUÁ\0ÿT€\0ÿIþ>\x02„!Iþ?Ù.e®í Æ
€\a„!<}k¸Iþ?Ï@`$\x01Õ\x02Â‰\b‰\x1cˆèIþ=ðš~Iþ¯O„ @\0€\x06ì\x04:oª„Ýž:o˜¼—€€\x06–HIÿ”ï’\0<\rm\x1d\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUøRÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUøroüÿ\x01\x01û\0\x02T\0\0\aÈ\x05<\r[?–\x04À\r.\x05kš@c \bB\0<\bF\x18\x10\x04@`\x18\x04\x14`€@:o˜„Ýž:o ¼<-m\x1d—€T!\0\a–\bÊ\x05<\x1d[?–LÁ<Iÿ¡mÀ\x0e<\rZ|Ý À
>\rk™¦€„(@\x10˜\x0e@\x10ˆ\x04Õ\v>\rk™„(@\x10˜\x0e¦€@\x10„\x05@\x10ˆ\x02®@<\r[?Fx\x10\x04\x14\x03€‘.\x05k™@\x13 \b\a@\0€\x04\x14\x04\0@<-Z%€&„\0Ý"\x044\0@\x04C€‘–Ù„\aD\x10\x01\0D \x1eIþºT<\rm\x1dT\0\0\aÈ\x05<\r[?–\x04À\r.\x15k™@c \bB\x10¼\bF\b\x10\x04@`˜\x04\x14`\0@:o „Ýž:o ¼>mç„\0s\0)\0ƒ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUùÏÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUùñoüÿ\x01\x01û\0\x02\0*Iÿ„$D\0\0 \x12\x03\0Y„\0\x10ƒ\0*\x14\x03\0.\x10s\0)Iÿø\x11:o „Ýž;ÿü¼ïü–\0Iüà>ì\x04;ÿü„Ýž;ÿü¼ïü–\0IüçNì\x04;ÿü„Ýž:oª¼ïìT €ÿUÀ\0ÿ€
€ÂIýÖç €
Iÿð“\0.\x14¢œ.\x04¢Ÿ˜IœK˜H˜\bMÀ@\x11N’\0\x0f€	Iþ\x01G„!L\0z€	Iþ\x01AD \0\x10L\x01\x01s€\x1c€*IþÏ;€àN\x02\x01l\x02\0\0\rN\x02\x01h„	L€\0\x10\x04\x14€’É\f€\bIÿð\x7fD \0\x10L\x01@\x06Bcx	Bc|	„#\x04ƒ€\x03MÀÀ\x1eP\x0f€\fIû\x01¶"\x13€\0"\x03€\x02€ˆL\x10@\x06¤»\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUûKÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUûmoüÿ\x01\x01û\0\x02„\0¬8¬ºð\x03ôIû\x01½„\0\x12\x03€
„\x03\x10\x04\0\bô\x01H\0\x017>\x1c¢œ¦ˆ¦Ë˜\x12œ\x03˜\x03˜“˜\x03œ’˜€ˆMÁ@\x17T\x13\0€Á\x04„GH\0\0æT\x13\0@Á\x04„FH\0\0àT\x13\x01 „¥@ „\x1a@"„^[H\0\0×MÀ@\x0e¦JãAè\x03„ Õ\x04˜K@\x15\x04\aÁ\x04„@H\0\0Ë.\x15jWÁ\bT\x13\0\bÁ\x05æÉé\x03Bc\f	N’\0G\x04$€\x06ÊC\x02\x14\0\x06æ2è\x06T\x13\0\bN\x13\0™Õ\x03æ<è\x06T\x13\0\x10N\x13\0Õ\x04\ð€zè\x06T\x13\x04\0N\x13\0†Õ\x04\ð€¸è\x06T\x13\b\0N\x13\0˜Õ\x04\ð€áè\x05T\x13@\0N\x13\0’@\x13@\b’?Á\x04„OH\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUüÀÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUüàoüÿ\x01\x01û\0\x02\0ŒT\x13@\0N\x13\0‡T\x13\b\0N\x13\0T\x13\x04\0ÉcT\x13\0\x10ÉbT\x13\x01\0ÁY„HH\0\0x.%çÁÂ\x18<\x1dyòÁ\x15\0 €,\0\x14‚FL À\x10.%k:.\x15k;˜Q–HÉ\b\x04”€’„!LÀ\x04Bcx\b\x02\x14\0\x06æ2è\x05T\x13\0\bÉ=Õ\x04\ð€7è\x05B\x13P\vÉ8Õ\x04\ð€Tè\x05B\x13`\vÉ4Õ\x04\ðpè\x05B\x13h\vÉ0Õ\x04\ð‚)è\x05B\x13l\vÉ,Õ\x04\ð‚¨è\x04B\x13x\vÉ(Ne\0*B\x13x\vÉ#B\x13l\vÉ\x1dB\x13h\vÉ\x17B\x13`\vÉ\x11B\x13P\vÉ\vT\x13\x02\0É\x1aÕ\x05„JÕ\x1c„DÕ\x1a„CÕ\x18D \0$Õ\x15D \08Õ\x12D \0*Õ\x0f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUþ:ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUþZoüÿ\x01\x01û\0\x02D \0;Õ\fD \0.Õ	D \0?Õ\x06„IÕ\x04„KÕ\x02„NMÀ@\x0f.\x04¢žã@è\x03…@Õ\x04˜Ã@¥\f\aN¢\0\x04—±Õ\x12T\x01\0\x0fæXè\x06F\x10\0–X\x10ŽØÕ\x05F\x10\0–X\x10Žø8`\x01\x10$\0\b\x02\x03€\vÀ\x06\x02\x14\0\x06˜\x01\x12\x04\0\x06\x02\x04\0\x06âÀè\rD\x10ÿü@c\x04\x02šF\x12\x13€\v\x12\x03€
\x12d\0\x06Õ\x06„\0\x12\x03€
Õ\x02„€€\x04ì\x14:oª„Ýž:o¤¼ïô.%›Ò.\x15›ÏP`\0@.”¢œâAè\x03„\x01Õ\x02„\0®3.\x15›Ñ.\x05›Î„àš\x01®2„\0®4Õ\x17IýÕ5À\x13´ T\x10€\x04É\x0f\0\x10\x02¤–LÁ\v¦tœI®t\x04\0\0’À\x05¦2\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pUÿ¾ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pUÿåoüÿ\x01\x01û\0\x02žAÀ\x02®rù–x€\aâ)éç.\x15›Ò.%›Ï¦4šQL\x10@\f<\ryòÀ\b\0\0\0.„!L\0À\x04„\0®3\0s\x7fû.\x15ƒó.\x05ƒòÇ\b.u$u„@Vs€\x01@q\x1c\x06˜\b–\0À\x03Xs€\x02¦4À\x03Xs€\x04\0\x03\x7føÀ\x03Xs€\bP\x0f€\x04Iúÿý\x04\x03\x7fðL\x03€\x1e„\0„/\x14s\x7fð\x10\x03\x7fùLpÀ\x04„\x02Õ\x11„-Lp€\x0e„+Lp€\v„*Lp€\b„,Lp€\x05„.LpÀ\x03„\x01\x10\x03\x7fú\0C\x7fú–ù„!D ð„\x06Iþ·Þð\x01Iúÿç\x04\x03\x7fð„ @\0€\x06ì\f:o¤„Ýž;ÿü¼ïü–H–‘–\0IüÞ.ì\x04;ÿü„Ýž;ÿü¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x01:ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x01^oüÿ\x01\x01û\0\x02ïü–\0Iüê¾ì\x04;ÿü„Ýž;ÿü¼ïÄ„\x02€?òIÿÿðì<;ÿü„Ýž;ÿü¼ïü\00€\b„–\0L2\0
Ã\x05„‚L2@\vÕ\aIÿÿæÕ\x06IýT7Õ\x03Iý@jì\x04;ÿü„Ýž:o¨¼T\0ÿ„ >\rH=D \0&Iÿ9;>m³´„à…\x01>…$a\x12s\0>\x12s\0<N“\0\x1e\0#\0,\0\x13\0(\03\0*B!\f	B\x10˜	B1„	\x103\0*„\x05>uj>…¨h\x10\x03\0\x7f\x10#\0,\x10\x13\0(\x10\x03\0~Õ#…&P\x03\0â„ „H\x10“\0~\x10“\0\x7fIÿ9\b<-Y%\0\x13\x01RB!L	B!T	’!</Y%>\x15k|>ujÃ\x10“\x01Y\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x02·ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x02Ýoüÿ\x01\x01û\0\x02\x10ƒ\0â>ujÄ\x10s\x01`D\0ü¼„ Iý9.’\0:o¨„Ýž;ÿü¼ïüIÿëñD\0üy„ Iý9 ì\x04;ÿü„Ýž;ÿü¼ïüIüé•’\0ì\x04;ÿü„Ýž:oª¼ïüD`\0`T €ÿBe\x18$—À>\r¸t™°¦4=Ím€L\x03€}ÇH<-n\x1aÊ\fIþØÒ<\x0fn\x1aÈ\x04„çH\0\0r„!\x10\x10\x016\0“\0
„\x01L@\x10.\x05ÞZÈe>•Þ[¯ô<\x1dY:€\x06Ý!<\x1dY5€	Õ6.\x15ÞZ.\x05ÞYœIž\x01>\x15ÞZ>\x05ÞY¯ô<\x1dY:€\x06Ý!T\x0e\0?È\x05<\x1dY5„\x01Õ7<\rw•¤D\ð€ è\x04D\x10\0 Õ\x02–H>\r¸q\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x04;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x04[oüÿ\x01\x01û\0\x02Iþ(l„àÕ).\x15Þ[„AL\x11@\x0f>uÞ[¯ô<\x1dY9€\x06Ý!<\x1dY5€\aÝ!€àÕ#.%ÞZ.\x15ÞYž‘œI>\x15ÞY>%ÞZ¯ô<\x1dY9€\x06Ý!.\x05ÞZÈ\x05<\x1dY5Ý!€à.EÞZF\x10\x04\0€j„\x06D v‡Iþ¸ŠÕ\x02„ì€\aì\x04:oª„Ýž’\0;ÿü¼ïüIüÐ!’\0ì\x04;ÿü„Ýž;ÿü¼ïüIÿÿóD\0ü“„ Iý8jì\x04;ÿü„Ýž;ÿü¼ïü<\r`“„#L\0À\x14.\x15€ É\v.%€¡Ê\b</`“€"„\bIý8rÕ\x06IþÕ\x1dIÿꉒ\0ì\x04;ÿü„Ýž;ÿü¼ïü–H––Ø–\0IüÓ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x05¶ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x05àoüÿ\x01\x01û\0\x02’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÐK’\0ì\x04;ÿü„Ýž;ÿü¼ïü.\x05€¨È\x02Õ\x04„!L\0À\x06D\x01† Iû\x01.ì\x04;ÿü„Ýž:o˜¼>m€ ¦5„!L\0€	Iÿÿæ’\0„\0®1„\x01®5:o˜„Ýž:oœ¼ïü>m€ ¦5„!L\0€<§óLpÀ\x06IÿÿЯõÕ4„\x04Lp@\aIÿÿÉ„\x01®5Õ,„#Lp€*„\x02Lp@\r>-\f\01\0!\0\x01\0\x1e\0\x11\0\x1f\0!\0 Õ\x13„%LpÀ\x19\0\x03\0\bŒ\x10–\0æ\x04è\r¦·>\r\f˜ŒU¦×¦\x14¦U¦–Iÿÿ‰Õ\x06Iý2àIÿÿœ’\0„ >\x15€¢ì\x04:oœ„Ýž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\aEÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\apoüÿ\x01\x01û\0\x02;ÿü¼ïüIÿÿ³’\0ì\x04;ÿü„Ýž:oœ¼ïü—€—È–æÈNò\0­æçNò\0ªæGNò\0§„\x04L`@\x0e>\rµP„ „GIÿ7^.\x05j°>\x1dkoH\0\0r„"L`À\a<\x1dY\x0e„\0H\0\0m„cLaÀ\b<\x1dY\x0e.\x05koH\0\0dž5–\0æ\x03è\x15>\rµP˜¦ÐÃ\x04žÙ®ÐÕ	<MY	.%ko€&D\0p1Ý$>\x1dµP™ùÕ\x05Æ\b>-µP™ú¦8œ\x01®8Õ\b>=µP˜“¦\x10À\x03ž\x01®\x10>\rµP¦@Á\x06>\x1dko>\rj¬Õ ¦AÁ\x06>\x1dko>\rj­Õ\x19¦BÁ\a>\x1dko¦ˆD\0\0PÕ\x1f.\x15$oÉ\x03¦CÁ\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\bÊÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\bëoüÿ\x01\x01û\0\x02>\x1dko>\rj®Õ\a¦DÁ\b>\x1dko>\rj¯¦\0¦ˆÕ\f¦\x05>\x1dkoÀ\x05¦ˆD\0\0 Õ\x04¦ˆD\0\0\x1aL \0\x06®\b<\x1dY\x0eÝ!.\x05koD\x10\0\x1aL\0À\x10IÿO>À\f„DLa\0
F\b\x10\bX\0\0\x04´ B\x10Ð\bÕ\bF\b\x10\bX\0\0\x04´ B\x10Ð	¶ .\x15ko<\x1ffׄ\x01Õ\x02„\0ì\x04:oœ„Ýž’\0;ÿü¼ïü„G–H–\0’$L\x01@\x04„EÕ
„EL\x01\0\a„FL\x01\0\x04€AÕ\x02„DIÿÿ2ì\x04;ÿü„Ýž;ÿü¼ïü–\x01Iüï¸ì\x04;ÿü„Ýž;ÿü¼ïüIüìé’\0ì\x04;ÿü„Ýž;ÿü¼ïü¦@D \0PL\x11\0\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV
Aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV
foüÿ\x01\x01û\0\x02D\0\0\x11Õ\x04œ\x01Iÿÿê€ D\0ü_Iý6½ì\x04;ÿü„Ýž’\0:oª¼ïô€à.eµ\0@\0\x13D\0ÿý–IUÁ€ÿL€\0”œ\v–\x01D\x10à\x02\x12\x0f€\x03L€À\x05D€ÿýÕ\vD ÿüL\0\x05žIL€À\x05œ\x05\x12\x0f€\x03P\x0f€\x06IþµDTc\0\x03„A\x02Ÿ€\x03La@t€\a€(Iÿè‘L\x03@nT¤€\a€\x1f„ÀIúü“#@£(\x06‰I<S‹>\rotT\x14ÿ”K˜H€\x01\x1a€\0\x01@5$\0<?S‹D ÿü\x10 \0\0œ\vL\0\x06D à\x01L@\r\x11À\0\0F\b\x10\x02\x02o€\x03\x04\0\0\x0eŽÈ¨	Õ\x0f\x02€\x03\x03@„\0\x13ç\x06é
€'„E\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\vºÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\vâoüÿ\x01\x01û\0\x02Iÿ5õPd\x7fûý—±Õ\x05€H€'Iÿ5ìP„€\x01GÀ\0‡YÎ	4Õ\x19>\rot‰ €	æÉé\b„HŽÈIÿ5ی藱Õ\vIÿ5Ö@\x04˜\0R#\0\bD\x10\0ªÝ<„À\x01T”\x01ÿ€'€F@”Œ\bÎâ´\x1fIúü1ì\f:oª„Ýž’\0:o˜¼F\x10\0–X\x10Ž|„J>\rªpIÿ5³’\0>\rªÔ„ D \0%Iÿ5½>\r©x„ D \0%Iÿ5¶>\r¶\bD\x10\0ÿ„DIÿ5¯.\x14¢œ.4¢ŸD \0\x1f>%¶\fD \x05Ü</[\r„_</[\x0e˜Ù„\0>-'tD\x1fÿÄÕ\x048\x11\x01	– \x01à\x03éû:o˜„Ýž:oª¼ïìF\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\r;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\r[oüÿ\x01\x01û\0\x02\0®X\0	ø:\0\x04\0Po€\b:\x0f„ „D€\x06D\x10\0ÿIÿ5}D\0\0\x1f®4€?œ\x06€†…AÕ?8‚\x14\0@‘Œ\0AÄ\x1c\x0eUÎ\0\x01OÂ\0'QÄ€\x02$ækè\x04T>\0ÿÕ\x03T4€ÿ\x05À€\0@‘Œ	8ž$\0@u\x1c\fT1€\a@sœ\x05@4Œ\x0e@ƒ \x02T1€\x03„ãP\x7fÿL3€\x068‚\x14\bT\x04€ÿœ‘D0\0%L!€	–ÐTq\0\a@QŒ	æ\x06èÆœLL`€\x04„@ÕõP\x1f€\b„E>\r¶\bIÿ5\x1cì\x14:oª„Ýž:o¤¼ïü.5kN„á„\0>]ª\>M¨ –@T \0\a’#@#ˆ\f8b„\0–@ƒ\b\x02œ\x01N‚\0\x118’\x04\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x0e²ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x0eØoüÿ\x01\x01û\0\x02@\b\x05@!$\x02@d\x18\x02P€\x01Ê\x058b„\bT4\0ÿD\x10\0OL\0ÿá>5kN€$„J>\r%\Iÿ4äì\x04:o¤„Ýž:o¤¼ïüPp‚@X`\0\bIÿ÷ÃÀ)Iþ6\¦~Iþ5¹À\x03…\0Õ
 :È\x04>\rjrÕ\x03>\rjs\0€\0\0¦~„\x03€HIÿø>À\x06F\x03?óX\0\x03ÿÕ\v¦~€H„\x05Iÿø3À\aF\x03ÿóX\0\x0fÿ@c\0\x02<\x1dX„P\x03ýÀÝ!À\bT\x03\0\bÀ\x05æÉé\x03Bc\f	€\x06ì\x04:o¤„Ýž:oœ¼ïüP`\0'\x04\0\0	F\x10\0–X\x10Ž\b\0\0\0\bT\0\0\x0f8p€\0æâé'Iÿ÷sÀ$Iþ6\f¦uIþ5iÀ\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x10;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x10[oüÿ\x01\x01û\0\x02„@Õ\v¦7„!L\0À\x05>\rjrÕ\x03>\rjt¦€¦u€\aIÿ÷îÀ	.\x15jxÁ\x06žI>\x15jx„\0Õ\x06.\x15jw>\x15jx„\x01ì\x04:oœ„Ýž:o ¼—Á€\a\x01Iþ\aÁ€ÀÀ#\0\0\0HIýÏ—€àÈ\x02Õ5D\x10\0\x16\x14\x10\0J\0\x10\x02H„B\x10\x10\x02_ sL\x11@\v€\x06Iþ	ñ€\a€&€HIýVtÕ\x05€&€HIý^Ù„\0Õ\x1a€\aIýÏ‚À\x14\x02\x10\x01\r„GL\x11\0\x10´ „DL\x11@\a\x14€\0KIýôfÕ\x04€(Iý_\x0e€\x06Õ\x03D\0\0\x12:o „Ýž’\0:o¨¼ïðA€àIþ	½\0Iþ
¤€ÀNƒ\0\x05„\x02H\0\0¿È\x05D\0\0\x1f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x11ºÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x11Üoüÿ\x01\x01û\0\x02H\0\0º„\0P\x1f€\x04¬\vIþ\bၠÈ\x0eD \0\x1f€\aD\x10\x7f\fIýÄ€\a€(D \0\x1fH\0\0v€
Iþ\x0eɦ0¦q ±¤öIþ\b¯T\0ÿN“\0!\x02\x03^[„/L\0À\x1c\x02\x03\x1cD\x10#\x19L\0À\x16¤0„,L\0À\f 1Œ:L\0À\b¤6Œ6L\0À\x04…!Õ\aIþ\bªÀ\x04„\0Iþ\v,\0\x03\0\x14„#L\0À\x0f¦q¦0 ± òIþ	3P\x1f€\x04¬\vD\x06$@Iþ\v0„\x01L@9€\x06€'Iþ\x0e÷ À\a€\aD\x10\x7f\fIý¢ÕG\0£\0\x14„"L €	€\x06Iþ\x10ÿ„\x02\x10\x03\0\x14Õ\fIþ
KN\a\0\x0e\x10£\0\x14Iþ
ƒ®2Iþ
f€\a€&\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x134ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x13Qoüÿ\x01\x01û\0\x02IýZ´Õ\x0eD \0^[€\aD\x10\x7f\fIýN€\a€(D \0^[IýVÆ€	Õ,\x02”\0^[D@\x03è¦0¦q ± òB”$Iþ\bæá è\x03„\x03Õ\x02„\x04\x10\x03\0\x14Iþ\bE€ÀÀ\a€\a€(IýZ÷„\0Õ\x0fD \0\x1c€\aD\x10\x7f\fIý"€\a€(D \0\x1cIýVš€\x06ì\x10:o¨„Ýž’\0:o¨¼€á\0\0 €\0\0€\rIþ\fT€ÀÈ&\0\x04\x02H€*€I€hIý_ÿÈ\x06€\b€'IýbîÕ\x18„!L\0À\a€\b€'Iÿÿ\x10Õ\x10„"L\0À\a€\b€'Iýb0Õ\b„#L\0À\a€\b€'Iýap€À€\x06:o¨„Ýž’\0:o˜¼\0\x10\x02ˆ€À\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x14«ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x14Ëoüÿ\x01\x01û\0\x02Á\x15\0\0\x02À\x05P\x03\x02Iþ"™„@D\0\x1f@D\x15P4€f€‚„¡Iþ#5\x10\x03\x02ÕM\0 \x02Z\x10\x10\x02„#L €\x06Œ?IýnFÕ8\0\x10\x02aB „\vÂ\x05–ŒÊ\x03„&Õ+–
N\x04\0\x15T €@Ê\x11€\x06„)D \0"Iý·’\0\x03\x02À <-XˆD\x10\0"€\x06Ý"Õ\x19T\x10€@Á\x16N\x05\0\x15\0\x03\x02cD\x10\0&L\0€\x0f€\x06Iþ\x02h€ €\x06Iþ\x02V€\x06„*D \0"Iý·p„\0\x10\x03\x02b\x10\x03\x02aD\x10\0"€\x06Iýœþ:o˜„Ýž’\0;ÿü¼ïüÀ\rÁ\f ‚„bL!À	´@T!\x04\0Â\x04D\0\0:Õ\x03IþíXì\x04;ÿü„Ýž:o˜¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x16$ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x16Coüÿ\x01\x01û\0\x02€ÀIþî)´\x06À\v sD\0\0\x10L\x10@\a€\x06D\x10\0"Iÿé):o˜„Ýž:oœ¼ïü€À \x03€á„,L\0À\x04„\0Õ  ²„!L À\x16P\x10\x7fñæ#é\x11„DL\x01\0\x0f\0\x03\x017Iþìž„!L\0€\b\0\x03\x01<À
„DLq\0\b q„\0@pœ\x04©ñÕ\x02„\x01ì\x04:oœ„Ýž:o˜¼€ÀIþåù’\0È\a r„KL\x11@\x04„!¨r:o˜„Ýž;ÿü¼ïüIþæ—’\0ì\x04;ÿü„Ýž:o ¼ï°€á¦H€À„\x03L\x10@  2ž\x06æ\x02èg„\x01¨2P\x03\x019Iþ!·€\x06„ IþÒ\x05¦9P\x1f€\x04¶\x01„\0\x10\0€
\x02c\0‡<=Wë­Ž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x17›ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x17Äoüÿ\x01\x01û\0\x02„@„\bÝ#ÕTD\0\0\x16L\x10@\x1f 2P\x10\x7fñæ#é\b„!L\0ÀH 3„"L\0ÀDP\x03\x019Iþ!\0\x03\x01\x03„!¨rÈ\x04.\x05¶\aÈ7¦y€\x06Iÿè—Õ2„\x0fL\x10@* rœ\x04L\x10@&„\x01¨2P\x03\x019Iþ!u\x02\x13\0^[P€\x04\0\x03\x017\x12\x14\0\f\x02\x13\0\x1c\x12\x14\0\r\x02c\0\x1d\x12d\0\x0eIþÑs¦y\x12\x04\0\x0f\x14\x14\0\x05<=Wí€(„@„\x03Ý#Õ\a<-Y3€'€\x06Ý"Õ\x02„\0ìP:o „Ýž:o¤¼ïü€à\x01\x04\0\x02Iþçe€ÀÈ\x0e\0\x04\0\0È\v\0\x04\0\x01È\b„\x0fL@\x06€\a€&IÿèH€\x06ì\x04:o¤„Ýž’\0:o ¼\x04€\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x19\x1dÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x19<oüÿ\x01\x01û\0\x02€ÀT„\x01\0IþçÝ€àN‚\0\r qT\x10\0É\b 2„AL\x01@\x05€\x06Iÿè+´\x06\0\x13\x01]T\0\0€À\v–\f\x02\x13\0˜À\x04P\x10ÿÕ
P\x10ÿ´Õ\v–\f\x02\x13\0˜À\x05P\x10ÿ°#Õ\x05P\x10ÿԐ#˜I\x12\x13\0’\x02\x13\0‘\x02#\0’âAè\x02€"€\a\x12\x13\0’:o „Ýž:oœ¼ïü¦ˆ€À¦Ê§\vÊ\x1a¦‰Ê\x18 CD0\0\x10L\x11À\x05„\x01¨3Õ\v¡\x02D\x10\0\x10L@À\x05€"Iÿçæ„\x01¨2€\x06„ IþÝvÕL@\x02 \b\x02#\0†@\0\f\x04L\x01\04š‚–‘D0\x7fþàbé-¡3D \0\x10LA@\x05œ‘¨³Õ\x03œ‘¨²\0#\x01T\x12\x03\0šX\x01\0\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x1a”ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x1aÒoüÿ\x01\x01û\0\x02\x10\x03\x01T\0C\x017<\rlüD \0DB\x02\bs§	\x04\0\0\x0f„à\x10@\0K<\rlü\03\x017¦HB\x01ˆs\x04\0\0\x0f\x10\x10\0LÕ\x13D\x10\0(€\x06Iÿç €\x06„ IþÝ2´\x06X\0\x01\0¶\x06D\0\0(\x10\x03\x01=„ì¡3\03\x017„\x06„(D rÏIþ±6’\0€\aì\x04:oœ„Ýž:oœ¼ïü€À<\rlü\0#\x02FD\x10\0DB\x01\x04s„! \x01L\0€\x05„"L\0À%.\x05µ:T\0\0\x02À\x06<\x1dXZ€\x06Ý!Õ\r.5k:.\x05k;„%˜Ø–Ø„A@\x01\f^[@\0Œ\x1a\0\x13\x02„L\x10\0\v—À€'€\x06„@Iýâo’\0\x10s\x02„ì\x04:oœ„Ýž:oœ¼ïü.\x15µ:€À\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x1c(ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x1cOoüÿ\x01\x01û\0\x02T\x10€\x02Á\x06<\x1dXZÝ!—ÀÕ\r.%k:.\x05k;„%˜–„\x01@pˆ\x1a@p\b^[€\x06€'„@IýâI’\0„\x02\x14\x03\0”\x14\x03\0•„\0\x10s\x02„ì\x04:oœ„Ýž;ÿü¼ïü–HIüëTì\x04;ÿü„Ýž:o ¼€ÀD\0\0 €áL\x10@\x0e.\x15k:.\x05k;˜\b–\0È#´&„\x01L\x10@ Õ\v„(LpÀ\x16.\x15k:.\x05k;˜\b–\0Èf\0\x03\x01¨T\0\0\x02À	\0\x03\x02‚æ\x05è\x05€\x06„%IÿÿÍ„\x04Lp\0W„(Lp€T.…k:.\x05k;‰\0D\0\0 T„\0ÿLp\04”ALp€\x05Ž\x10Lp@?.\x05µ:–\x04À
ç\x02é\x1d\x04#\0“€\x06„!Iý\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x1d«ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x1dÍoüÿ\x01\x01û\0\x02óÕ\x16D\x10\0\x10LpÀ2N‚\00´\x06„!L\0€\x06\x04\x03\0’L\0À\r\x04#\0“€\x06„!Iýó{Õ\x05D\x10\0\x10LpÀ\x1dN‚\0^[€\x06Iÿÿ%Õ\x16€\x06Iÿÿ!Nƒ\0\x12´\x06„!L\0À\x0e\0\x13\x02‚\x04#\0“€\x06Iýó`Õ\x05€\x06€'IýáÕ:o „Ýž;ÿü¼ïü–H–\0Iüè\x01’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüèÉ’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÏ­’\0ì\x04;ÿü„Ýž:oœ¼ïü€ÀP\0\x02€áIþ\x1fQ„\0\x10\x03\x02b>\r„˜ AL\x13@\a„ „F¬@¨ƒ¨A\0\x03\x02aT\x10\0\x18É\x04–BN\x14\0HT\x10\0\bÁ\x10\x04\x13\0%V\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\x1f'ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x1fHoüÿ\x01\x01û\0\x02\0\bT €\x04\x10\x03\x02aÂ\aB\x10ˆ	X\x10€\b\x14\x13\0%\0\x03\x02aT\0\0\x10À\x1a\x04\x03\0%T\x10\0\x04Á\aB\0\b	X\0\0\b\x14\x03\0%\0\x03\x02aV\0\0\x10\x10\x03\x02a.\x05´üÈ\x06Ç\x06€\x06„&€GÕ\x15Ï\x16\0\x03\x02aT\x10\0ÀÉ\x04–\x02N\x04\0	.\x05³à–\x04À\x04„\x06\x10\x03\x02e€\x06D\x10\0\x18„@Iý´\x1c\0\x13\x02Z„C\0\x03\x02aL\x11\0\f’\x05”\x05\x10\x03\x02a€'€\x06Iýj«H\0\0¾B\x10\x04\vÁ3–DÉ1’\x05”\x05\x10\x03\x02a€G€\x06„&Iý³ý\0\x03\x02iN\x02\0¬\0\x03\x01­T\0\0\x04N\x02\0¦\0#\x02F>\x1d”Ü80Š\x02F\b\0\0B1ü\b80Š
Iþ\x13ó\0#\x02ÊED\0»€D\x15\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV  ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV Àoüÿ\x01\x01û\0\x02P4€f€‚„¡Iþ\x1fY\x10\x03\x02Õ9T\x10\0\x04Á\x05V\0\0\x04\x10\x03\x02a\0\x03\x02a–BN\x14\0I\0\x13\x01­T\x10€\x04Á,\0\x13\x02iÁ)\0#\x02F>\x1d”Ü80Š\x02F\x04\0\0B1ø\b80Š
Iþ\x13Â\0\x03\x02aD\x10\0€L\0Àa\0#\x02Ê\fD\0»€D\x15P4€f€‚„¡Iþ\x1f"\x10\x03\x02\x14s\0	€\x06Iý‘ãÕLD \0€L\x01@\x0e€\x06€G„)Iý³‘\0\x03\x02aDOÿ€@\0\x10\x03Õ\x05D\x1fÿÀ@\0\x04\x03\x10\x03\x02aÕ5T\x10\0@Á2\0\x13\x02iÁ\x06\x04#\0’„L"@\x06V\0\0@\x10\x03\x02a€\x06„*€GIý³oÏ^[\0S\x02i„\x01Ø\x1c\x04\x13\0’É\x19\0\x03\x02È\f€GD\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV"\x15ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV"Voüÿ\x01\x01û\0\x02»€D\x15P4€f€‡Iþ\x1eÛ\x10\x03\x02€\x06„ Iýš·Õ\x06\x02\x03\x01\x0e€'Iýkµì\x04:oœ„Ýž’\0;ÿü¼ïüIüä-’\0ì\x04;ÿü„Ýž:o¤¼ïü¦ˆD0\0\x11€ÀL!€\x06œÙL!À¦ÕG>}³´\0 \x02F\x04\x13€\x0f@ˆ\bB\x11 s\x04 \0\b\x04\x10€\x0e¨IÿÿÚ\x04\x13\0\b„bL\x11À!\0#
\x04\x03€\x0f„oB\x01 sP#\x01Ð\x04\0\0\x0e\x100\x01b\03
\x04\x03€\x0fB\x01 s\x04\0\0\x0e¨†\x04\x03€\x0f\0#
B\x01 s\x04\0\0\x0e¨G\x04s\0’ÏoF\x10 \x1c.\x05jc„AL\x01@i>ujc€\x06Iþ!Í€\aÕb>}³´\0 \x02F\x04\x13€\x0fD\0D\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV#°ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV#Ñoüÿ\x01\x01û\0\x02B\x11$s…\0\x04\x10€\x0e\x14€€\aIÿÿ”\x04\x03€\x0f\0\x13
B\0¤s\x04\0\0\x0e\x14€\0\a\0\x03\x02aT\0\0@À-\0\x13\x02F>\r”Ü8\0\x06\x02B\x10p\vÉ$B\x10t\vÉ!B\x10x\vÉ\x1eN\x05\0\x1d\0#\x02Ê\fD\0»€D\x15P4€f€‚„¡Iþ\x1e0\x10\x03\x02„\x01\x10\x03\x02i„!€\x06Iýš	\0\x03\x02aP\0\x7fÀ\x10\x03\x02a\x04\x03\0%À\x12\0#\x02F<\rlü€)B\x01\x04s„@\x04\x10\0\x0e„\0\x10 mÕ\x05Iý±HÕ\x02„\0ì\x04:o¤„Ýž:o ¼€À€á¦\b\x02\x13\x01\rL\x10@\x05„ \x12\x13\x01\rP\x10\x7fï–Iæ"è\x06€\x06€'Iÿÿ5Õ!P\0\x7fÔ–@æ7è\x17…\x01F \a`@\x04\0\f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV%6ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV%doüÿ\x01\x01û\0\x02@\x10\b\x02É\x05@\0 \x02È\aÕ\v€\x06€'IÿýËÕ\v\0\x03\x02FIþ\0ø·\0€\x06€'„@Iý…`:o „Ýž’\0;ÿü¼ïüIüÆM’\0ì\x04;ÿü„Ýž:o˜¼–\0À\x18IýÈÆ€ÀÀ\x14\0\0\x02À\x11IÿÿëÈ\x0e\x04\x03\0%T\x10\0@É	X\0\0@\x14\x03\0%€\x06Iý¼z’\0:o˜„Ýž:o¨¼€ÀIÿÿÕ’\0„AP\x13\0°L\x01@\x06„\bP#\x01\bÕ\x04„\bP#\0¸Iþ\x1e†\0\x13\x02F<\rlüD \0DB\0¨sP\x13\0°\x04\0\0\x0e…!\x14\x10\0\v<\x1dX‘\0\x03\x02FÝ!\x10“\x02\0\x13\x02F<\rlü„@B\0¨s\x04\x10\0\x0e€f\x10m>•$n„\x04F\x10\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV&¸ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV&æoüÿ\x01\x01û\0\x02X\x10‹ô€‚„¡Iþ\x1de.\x05µ5À$\x02\x03\x01\x1e„@<\x1dX†€‚€¢€f”\x04Iþ\x1dW\x10\x03\x02˜\x02\x03\x01\x1e„@<\x1dX…”\x04P\0\x7fœ€f€‚€¢Iþ\x1dH„ \x10\x13\x02\x10\x03\x02š\x10\x13\x02›\x10\x13\x02œ:o¨„Ýž;ÿü¼ïüIüÕë’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÒÓ’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüç\x7f’\0ì\x04;ÿü„Ýž:o˜¼—€Æ1<\rXrB\0h\vÈ\x03„\fÕ2>m¨8´F„\x1fD\x17_XL @\x1e 1Ý!¤t¤õ¶\x06˜Ù<\x1dl•\0\x03\0\x0ea„@¬ö\x10\0€^[€b„\x01F\x10\0«X\x10´€‚€¢Iþ\x1cò\x10\x03\0\x0fÕ\x04 1\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV(Jÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV(loüÿ\x01\x01û\0\x02Ý!¶\x06„\0Õ	>\r¨GIþ\x1c@„?<\x1fj\x0e€\x06:o˜„Ýž’\0:oª¼ïÜIÿô·„!L\0#À\aD \0^[L\x01A:H\0\x012<\r`“„aL\x01€	.\x15€¡É\x05.\x05€ N\x02\x01,„ „cPo€\x1c<?`“®r¬p„@®³P\x0f€\x1f/Ä¢œIþ&\x11€\x06Iþ(Z„\0Iÿÿ‘<\rXrB\0h\vÀ\x05F\0@\0Iþ\x11^„À…\x01€æÕ\x1aIýǦÀ\x14´ @ ¼\b’^D0\0\x10L\x11€\rŒpL\x11€
Ê\b\x02\0\x01\x0eD\x10\0\x13Iýiq„á\x01T„\0ÿ±€\x06ã\x1céä<\rXrT\x10\0\x02É	F \x05\0@\x10\b\x02Á\x1dT\0\0€È\x1a„\x04Po€\x04¨3Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV)Ãÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV)æoüÿ\x01\x01û\0\x020R<\x1dj%Á\x03€\x06Ý!„\x04Iýu|È\x03„ÁÕ
>\rk,Iþ^[»„ÁIýo\x1aÕ\x02„À<=g\x06„\x03L0@\vIþ0\x05.\x05œ4È\x02Õ\x03Iþ\x16ÄÁIþ\x12R<\x0f`”À\x04„\0Iþ\x14\.\x05€¡À\x04„\x02Iþ\x14V<\rm€B\0`\vÀ\x04IþÑ\x7f„Á„\0<-Y)€ Ý".\x15€ V\0\0\f…!@d€^[Á
D\0\x01@Iúø)<-Y)€	„ Ý"<\rm€T\0\0?À\x0f.\x05¸p„AL\x01\0\v.\x15€ >\r‚@É\x03€"Õ\x06„ Õ\x04„ >\r‚@\x10\x10\0\x15<\x1dY5„\0Ý!/Ä¢Ÿ.„¢žV\0\0\fAÄp\0„!@`€^[UÎ\0ÿÕ\x11IþË<À\v´ \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV+<ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV+goüÿ\x01\x01û\0\x02T\x10€\x02Á\a<-S¾D\x10\0\x13Ý"„á\x01T„\0ÿ€\bã\x1céî„\x01Lp@\x11„@<\r`‘€§F\x10\0¥X\x10‹œ€b€‚Iþ^[Ö>\x05‚@Õ\x10„!L`À\x11„@<\r`’€¦F\x10\0 X\x10ˆð€b€‚Iþ^[ÄD\0\0\x1fÕ*.\x15€ É\a.\x05€¡È\x04<\x0f`“Õ!IþÈšÕ\x1a>m‚@¡óÏ\x19 t¨3Á\x05€\x01Iþ\x13Á©ô.\x05‚UÀ\x0f<\x1dY5„\x01Ý!„\0>\x05‚UÕ\a.\x05€¡À\x04IÿÝì’\0„\0ì$:oª„Ýž;ÿü¼ïü¦@É\x05.\x15‚L„\aÕ\x0f„AL\x11@
¦\x01Iÿþ©È
.\x15‚L„\bÕ\x04„\bD\x10\0ÿIý+±ì\x04;ÿü„Ýž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV,Àÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV-\roüÿ\x01\x01û\0\x02’\0:o¤¼ïü D\0 \0\x01L\x10\0\x05”DL€ÀS<-YN€(€	Ý"D\x02\0\0L€@D\0\x04€,IþÊ£\x02`\0^[€àIþžP™¶T\x10\0\x03—±€@<\x0fI/Á\x05Iþ¦’\0€@œ” ü@\x01\x04	˜\x06’a@\0\x187¨¼@\x11˜wB0\x18s˜Ûž\x1câ\x02è\x03˜6˜ØR!\x7fü˜S’"–I’ÁâÁè\x03šN–I@`„^[<\x1dw䟱—±\x12`€
<\rwä\0\x13€3\x10\x10\0\x13\x12c€\x1a<-YO€(€	Ý"Õ\x06<\x1dYMD\0\0„Ý!ì\x04:o¤„Ýž:oª¼ïì\x04 \0’\0ñƒÊ\b€\x02Iþ¸“€@.eµ\x04Õ	\0\0\x02F„ Iþ. .eµ\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV.cÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV.¯oüÿ\x01\x01û\0\x02€@’Aö‚ò.E›Õ\x04$\0HÄ\bPA\0\x10<Rµ\b™$˜¥Õ
PA\x7f÷\ò\0)é\x04D \x01@Õ\x02”“€\x02>¯RhIþÂPe\x02‹„àƒ€D\0\x02¬B\x13€$\0%\0\0>\x0fRlù˜HÂ,L\x14\0+\0\x15\x02nÁ'\x04\x15\0\x01D \0\x10L\x11\0"¦0Iþ\x19¯.\x15ƒà<-`ó”K˜Q¦M’!Iþ\x03€ €\x1cIþaÀ\x0f¦0Iþ\x19.\x15ƒà<-`ó”K˜Q¦M’!Iþœñƒ€„	P¥\x02¬Pc\x02¬Lp\x7fÅIþ‘€ €\x1cIþœíñ\x01BP€	@@\x04	™%•ä’äð\x03€'Iþ^[»P\x04\x02‡Iþ\x19ßñ\x01ò\x02›ù›º„@€‚€h„¡\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV0\bÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV0)oüÿ\x01\x01û\0\x02F\x10\0¡X\x10@€\x06Iþ\x1av\x10\x04\x02‡.\x15´àš1IþU\x14\x04\0
\04\x02F€€„!„\x06D s€Iþ¨ˆì\x14:oª„Ýž;ÿü¼ïüIüÂ\x03’\0ì\x04;ÿü„Ýž;ÿü¼ïü<\r[\x18æ\x03é\x03„\0Õ\x14.\x05kGT\0\0\x03À\rIÿÿèÈ
<\rXrD\x11€\0@\0\x04\x02\\0\0\x01Õ\x02„\0–\0ì\x04;ÿü„Ýž:oª¼ïü.%k@@ƒÊ\x03„\x01Õ?>}š„Å@“\b\b\0\x03€\x10Ÿ±À3\0#€\x0e„\x01L \0\aÂ&„"L À+Õ\x11´\a y@\x0e\0\x03@\0\x04\x02È"€	Bc\0$>\rš@™°\0\x03\0\x0fÕ\x1cB#$$>=š@ŒH€
˜SIþ\x1aÆ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV1‚ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV1¤oüÿ\x01\x01û\0\x02À\x0f.\x05€¡„!L\0À\x04Iÿñò€	Bc\0$>=š@™³ÕæŽôÎÉ€\x06ì\x04:oª„Ýž:o˜¼ Â€ ´À\0 €\x10 \x01æcèT Kæ$èQæBèOF,Ñ\fX!\f\x18@\x10\b\x02ÁHT\0\0áÈE€\x06IýÅ\x1a€ À\x10´\0D \0\x10L\x01\0\fŒPL\x01\0	\x02\0\r„'L\0€7„\vÕ5€\x06>\x1d³¼Iþ\x1a~È+.\x05›ÌÀ+.\x05k:.\x15k;˜\x01–\0À\x11.\x05´öÀ!IýÿPÀ\x03„	Õ\x1dIýüŸ„BL\x01\0\x05.\x05k;È\x14<\x1dfçÉ\x04<\rfèÈ\x0e.\x15k(.\x05k)â è\bIÿÿ1È\x05Õ\x05D\0\0\x12Õ\x02„\f:o˜„Ýž:o ¼\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV2ýÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV3#oüÿ\x01\x01û\0\x02Iÿÿ™€À„\vL`\0\x03Î2„ €A<=fÛ8!„\bœID0\0øL\x11ÿù„\vL`@\x12´\bIýÄ·È\x04D`\0\x1fÕ\x1d\0 \x02H„ \x10 \x02_IýT„’\0Õ\x18<-Y\rD\x10\0P„\x01Ý"<-X.„!€\bÝ"€ÀÀ\v<-Y\r„\0D\x10\0PÝ"€\x06:o „Ýž„!<\x1aÍÚ„ÀÕø:o ¼\0IÿÿU€ÀÈ\x14<-Y\rD\x10\0P„\x01Ý"<-X.„"€\bÝ"€ÀÀ\a<-Y\r„\0D\x10\0PÝ"€\x06:o „Ýž;ÿü¼ïüIüÕ1’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüä\x05’\0ì\x04;ÿü„Ýž:oª¼ïì€À€\x01Iþ\x1a'\0P\x0f€\f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV4†ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV4©oüÿ\x01\x01û\0\x02Iúï\x1e\x02\x03\x01\x1dD\x10\0\x17L\0À\x05„\0\x12\x03\x01\x1dð\x03Iúï(.\x05jiN\x02\x01\x05\0\x03\x02bN\x03\x01\x01.\x05´ùÈ\x05.\x05jfN\x02\0ú\x02\x03\x01\rD \0\x17L\x01\0ô„\x04IýqôN\x03\0ï<\x1dXrF \x04\0@\x10ˆ\x02N\x13\0ç\x04#\0’Ê\x04Iþ¶_Õ\x05\0\x03\x02FIþ+ð ´&\0\x03\x02^„A\x10\x03\x02_L\x11@\a\x02\x03\x01\x19@\0\b\x02Õ\x03\0\x03\x02kÀ(\0\x03\x02jÀ\x03„ìÕ%.\x05³ØT\0\0 È\x04Dp\0\x1aÕ\x1d\0s\x01¨D\0\0(Ts€(Lp@\x14@\x04„	â\bè\x11@\x04\0\x01\ð'\x11é\x03•ÕÕ
.uk:.\x05k;™ø—øÇ\x03Dp\0!€\x06Iý÷ù„!L\0€\x0f\0\x03\x02iÈ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV64ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV6coüÿ\x01\x01û\0\x02.\x05´÷È
\x04#\0’Ê\a.\x05›Íæ\x02é\x03Dp\0!“!AÄ$\x01€\x1cIþ›]>Rh¶\x1föP¤\x02‹\0\x04\0\0À2\0\x04\x02nÀ/\x04\x04\0\x01D\x10\0\x10L\0€*\0\x05\0\0Iþ\x17Q.\x15ƒà<-`ó”K˜Q¦M’!Iþš¥€ ´\x1fIþ›\x03À\x16\0\x05\0\0Iþ\x17>€À.\x05ƒà<\x1d`ó”\x03˜\b¦E´\x1f’!Iþš€ €\x06IþšîÈMP„\x02¬>\x0fjtP¥\x02¬L€\x7fÆö\x01ÏE„\x01\x10\x03\x02jD\0\x02\0Iþ\fº\x04\x13\0’„AL\x11@
D\0\04€&IýSþ.¥µ\x03Õ\x03.¥µ\x04€\x06IýH
€\x06D\x10\0\x13Iý„ñ@Ž(\x01„@€f€‚„¡F\x10\0¡X\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV7Èÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV7îoüÿ\x01\x01û\0\x02@€\bIþ\x18\b\x10\x03\x02‡.\x05´à<\x12Ú[˜\b@\x04\0\x01Iþšã\x14\x03\0
\03\x02F€€„!„\x06D s€Iþ¦\x16Õ\x03Dp\0!€\aì\x14:oª„Ýž;ÿü¼ïü–I–‘–Ù—!IüÔ½’\0ì\x04;ÿü„Ýž:oœ¼ïô€ÀP\x0f€\x04€áIúíí\x02\x03\x01\x1dD\x10\0\x17L\0À\x05„\0\x12\x03\x01\x1dð\x01Iúí÷\0\x03\x02jN\x03\0‰\x02\x03\x01\rD \0+L\x01\0ƒD\x10\x7f\fL\0€\x7f\0#\x02^\x043\0’L!€\a\x02\x03\x01\x19T\0\0\x04Às\0\x03\x01NÀ
Ë	\0\x13\x02_L\x11\0\x06D\0\0#H\0\0j´F„!L ÀdÈ\a„\x1f\x12\x03\0£„\x04\x12\x03\0¢\0\x03\x01NÈ\x06<-XW„$€\x06Ý"\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV9Gÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV9hoüÿ\x01\x01û\0\x02\x02\x03\x01^[„JL\x01@\r\x02\x03\x01\x1cD\x10"÷L\0À\a\0\x03\x02FIýú ÈD€'€\x06IÿþY€àÀ\x17\x02#\0¡€\x06„$Iýìë\0#\x02^€\x06\x10#\x02_D\x10\0\x17Iý„F\0\x13\x01N„\0œI\x10\x13\x01NÕ*\0\x13\x02^\0\x03\x01N\x10\x13\x02_æ\x05è\x10\x02\x13\0¡\x023\0¤\x02C\0¦€A€\x06Iÿÿi€\x06Iýæ€\aÕ\x13\x10s\x01N<-XW„$€\x06Ý"€\x06€'D \0 IýçaD\0\0 Õ\x03D\0\0$ì\f:oœ„Ýž:o ¼\0P\x02j€À–I–\x11–Ù—!Å\b´FDP\0\x10Ò\x04D\0\02ÕU #\x01¨N%\0\x05D\0\0\x1aÕN´F„¡ÚJ\x02#\x01\r„§ÒF\x02#\x01\x19T!\0\x04ÂA\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV:Àÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV:æoüÿ\x01\x01û\0\x02\0#\x01NÊ>D ÿþ\x02S\x01\x13@\0\b\x02@pˆ\x02\x12s\0£\x12\x03\0¢Å	â§è\aâ è\x04D\0\0\x12Õ+€à\0\x13\x02FžI”L@\x10\x04\a@\x03„^[„ \x10\x13\x01N€@€'€\x06Iÿÿ\x02\0À\x04D\0\0 Õ\x15<-XW„$€\x06Ý"€\x06€G„$IýìS\0S\x02H€\x06\x10S\x02_IýæH€\bÕ\x02„\f:o „Ýž;ÿü¼ïü–\x01Iüà¼ì\x04;ÿü„Ýž:o˜¼.%k:.\x15k;€À˜\x11–\0„!L\0À&„\0Iýùí€ À \0\0\0Bæ\aè\x1c\0\0€MÈ\x19\0\0€H\03\x02FL0\0\x14<\x1dlüD \0D€B@\bs !„‚L\x02@	B\x11ˆs IL\x10@\x04„\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV<Aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV<`oüÿ\x01\x01û\0\x02Õ\x04€\x06IýÆ-:o˜„Ýž:o¤¼ï¼€à—ˆ ~É\x12.\x05³Ø–DÁ\x04„#L`€\x1fT\0\0\x02À\x04„\x05L`\0\x19„!L`À@Õ\x14.\x05³ÜT\0\x04€À\x04„\x03L`\0\r.\x05³ÝT\0\x05\x01À\x04„%L`€\x05„\x01L`@,.\x15k;.Ek:„\x03™!— D\x10\0\x10D \x10•€fIþ¤y.\x05µ:T\0\0\x02È\r.\x15k:.\x05k;˜\b–\0À-æÂé+D`\0$Õ\x0e<\x1dXZ€\aÝ!T€\0ÿã\x06è D`\0$Õ\x04D`\0 …\x01D\x10\0.€F€\aIý‚ÜD\x10\0$L`À\a\x10ƒ‚„€\a€(Õ\x04\0\x13‚„€\aIýï4„\0ìD:o¤„Ýž„c\x10c‚„\0\x03‚F\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV=µÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV=óoüÿ\x01\x01û\0\x02\x12?€\x0eD0\0.\x12?€\x05€?\0s‚_\x10\x7f€\bIýKÕé;ÿü¼ïü\00\x01N€@¦HÃ\b\0\0\x02_\x10\x01\x02^D\0\0*Õ
\x040\0’V1€\x01\x100\x02_Iÿÿg’\0ì\x04;ÿü„Ýž:oª¼ïü\0\x02FP`\x01d>\r'@8\0$\0€á„!L\0À\b@””\b>\r&@‰ Õ\x03P“\x7fÌœ;\x02„€	Iþ\x16ð@œ9Iþ\x16Úƒ€\x02\x03\0a§øÀ\bB\x13 $â\x01è\x04D\0\0\x1eÕ<\0\x03\0â„ ‰JIþ(à€*Iþ˜iÈ\x04D\0\0(Õ/\x02#\x7fýâ\è\x04\x13Ã\x7fþÕ\v\x02\x04€	˜\0à@è\x04\x12\x03\x7fþÕ\x03\x12#\x7fþ¦¶¯÷âGè	@\x03ˆ÷B! $B!\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV?Nÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV?roüÿ\x01\x01û\0\x02\0$¬²Õ\x04Bs $­ò\x04\x13\09Á\a€
„!Iþ—æ\x14\x03\x7fü\0\x03\0âIýÄ<„\0ì\x04:oª„Ýž’\0:oª¼ï¼P`\x01\\x02\0\x01\rƒD\x10\x7f\x15L\0À\x0f\x04#\0;Ê\v\0\x13\x01\x03\0\x03\x01\x02L\x10\0\x06D\0\0#H\0\0é\x043\x7f©„\x04L0\0\x06D\0\0$H\0\0à\0ƒ\0ê>\r'@8\0 \0„!L\0À\b@„\x14\b>-&@‰\x02Õ\x03Pƒ\x7fÔP\x03\0\x1d\x02t\0	Iþ\x14£P\x0e\0\x03Iþ\x16c@ \0\0P\x0e\0\x01Iþ\x16K \0\x03\0ê„ \x01Î\0\0Iþ([€*Iþ—ä\x02\x13\0eÁ	B.\x1c$â"è\x05D\0\0\x1eH\0\0©\x043\0;„A\\x10\0\x01L1@\fÈ
<\r[\x1aT\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV@Ëÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV@íoüÿ\x01\x01û\0\x02\0\x04È\x05D\0\0(H\0\0˜\03\x01\x02\x04\x03\0;\x11Ã\0\x0f\x103\x01\x03À\aÁ\x18<\r[\x1aT\0\0\x04À\x13 6ž\x02æ\x02è	\0\x13\0\x11\x04\x04\0\x02B\x13„$˜IÕ\x04\x04\x04\0\x02”{Iþ—FÕ\x05€
„!Iþ—K\x14\x03\x7fþ\0\x03\0\x13À\x1c¤5€'@\0\x1cW–\0IÿÕŸ\x10\x03\0\x0eÈ\x05.\x05j~\x10\x03\0\x0e¤1â	è\x02Õ\x19\x02\x14\0	˜Ià\x01è\x03¬rÕ\x14¬2Õ\x12.\x05j~B\x10\x1c$\x10\x03\0\x0e¬u.\x05j\x7f\x12“\0\x01¬0„\x01\x10\x03\0\x14\x12“\0\x02\03\0\x0e\0#\0\x0fâbè\b@\x01\fWBqœ$B#€$Õ\a@\x01\fwB!\x1c$B!\0$\0\x13\0\x0e¬¶\x10\x1f€,€ÿ¤°\x12/€\x13\x043\0;Ë	\x04\x03\x7fþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVBAÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVBcoüÿ\x01\x01û\0\x02„!Iþ–ò’\x01ðŠÕ\x04“A\x14¯€
\0\x13\0êó
>\r”¸80\x06
D0\x7f\x16\0\x03\0ê\x12?€\x0e€?\0c\x01\x03\x10o€\bIýx’\0„\0ìD:oª„Ýž:o ¼ïÀ\0€\x02F€À>\r'@8\0 \0„!L\0À\b@„\x14\b>-&@‰\x02Õ\x03Pƒ\x010P\x03\x01y\x02t\0	Iþ\x13½\x02\x03\0³€'@\0\x1cW–\0IÿÕ\x13\x04\x13\0]\x10\x03\x01jž
æ\x02è	\0\x13\x01m\x04\x04\0\x02B\x13„$˜IÕ\x04\x04\x04\0\x02”{Iþ–•\x14\x03\0U\0#\x01j\x04\x03\0U\x10/€,„!\x02#\0®€ÿ\x12/€\x13Iþ–‹@ \x04	\0\x03\x02FòŠD \x7f\x15\x12/€\x0e€?\0c\x02_\x10o€\bIý^[ì@:o „\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVF:ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVFŽoüÿ\x01\x01û\0\x02Ýž’\0;ÿü¼ïü\0@\x01­–ITB\0\x02–‘–ÙÌ\x04D\0\0\x1aÕk´€„¡Ô\x03„¤Üc\x02@\x01\r„§Ô_\x02@\x01\x19TB\0\x04ÄZ\x02@\x01\x13DPÿþ@\x10”\x02Ä\x06âè\x04D\0\0\x12ÕQD@ÿþ@!\x10\x02@1\x02É\x0fÊ\x0eË\r„A\x10\x10\x01o\x10 \x01p\x12\x10\0³\x12\x10\0®\x12\x10\0¯Õ!\0@\x01oÄ\r\x02@\0³L@À
\x02@\0®LA@\x06\x02@\0¯LA€\x10„\x12\x10\0³\x12 \0®\x120\0°\x10@\x01p\x120\0¯\x10@\x01oÕ\x04„ \x10\x10\x01p´ T\x10€\x04Á\x17\x04P\0LÅ\x14\0\x10\x01pÁ\x11\x02 \0³\x02\x10\0¡âAé\v\0\x10\x02H\x10\x10\x02_Iÿÿ3’\0Õ\x03„\fÕ\x02„\0ì\x04;ÿü„\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVGóÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVH1oüÿ\x01\x01û\0\x02Ýž;ÿü¼ïüÀ\x11\x020\0³\x02 \0¡„€\x10@\x01yâbé\b\0 \x02H\x10 \x02_Iÿÿ\x17’\0ì\x04;ÿü„Ýž:oœ¼ï¬\00\x02F>-”Ü81\x0e\x02B!ô\v€ÀÂ\x06\x14\x10\0	Iý†\x01ÕQF\x01\0\0@1€\x02Ã)\0\x03\x02d\x14\x13\0	D\x10\03L\0€\x13\x04#\0’ž	\x10\x03\x02dÊ\fD\0\x1f¤F\x10\0£X\x10ƒ@€f€‚„¡Iþ\x13^\0#\x02F>\x1d”Ü80Š\x02F\x02\0\0B1ô\b80Š
Iþ\aÞÕ$P\x0f€\x04P#\x02@\x123\x01\r¨„¶ <MWë\0\x13\x02H€C\x10\x10\0\v€ D\0\0\x12€ãÝ$F\0 \x1c.\x15jhÁ\v\0\x13\x02iÉ\x06€\x06„!Iý¯\x03Õ\x03>ujhìT:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVI†ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVI²oüÿ\x01\x01û\0\x02œ„Ýž;ÿü¼ïüIüÞ'’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüܽ’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÝ¡’\0ì\x04;ÿü„Ýž:o¨¼P`\00 \x04„-§ñL\0À\x12<\r`íT\0\0\bÀS€\aIý¾\x01ÀO\x04\0\0’ÈL„!®r®3ÕI„*L\0ÀF<\r`íT\0\0\x04À@\0\x03\0\x10È=.\x05$u„#L\0€9D\0DB“¤$<\rlüˆ	\x04\0\0\x0e\0\0\x01PÈ^[€\x01€'Iþ·ûÀ\x16.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01–\0€'Iþ·îÈ\x1a<\rlü‰ \x04\x04€\x0e\0\0\x01FÀ\x12<=RË„.P\x03\x7fЀGÝ#È
¦7¯ñ\x14\x03\x7fþ„\x0e\x14\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVK\vÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVK<oüÿ\x01\x01û\0\x02\x7fø„\x01Õ\x02„\0:o¨„Ýž:o¨¼\0<\re$—ˆ„?L\0À
€\x06„ Iþ%½<\x0fe$H\0\0y´\x02–\x04Àu ”D\0\0\x11L \0q\x04\x04\0\x0e\0\x10\x01PÉk.uƒðLs@\x04!Õ\x03@œ\x06„\0Iþ°\v@IÿÓX>\x1dƒ°Ls@	\00€0 ”[˜Q¦JÕ\a\00€0 ”[˜Q¦L@\x05\0\x01”\x04’\x04’\x01â èE<\r`ð„*L\0ÀA\x04\x04\0\x0e„%\0 \x01JB\x01\x04s\0\0\x01NÈ6„\x03€&Iþ·yÀ\x0e.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01–\0€&Iþ·lÈ^[<\rlüD\x10\0DB\x03\x04s\x04\0\0\x0e\0\0\x01gÈ\x10N’\0\x18.\x14¢œ.\x04¢Ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVL£ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVLâoüÿ\x01\x01û\0\x02˜IœK˜A˜\x01–\0€'Iþ·RÈ
„?<\x1fe$<=RÌ„\0€ €@Ý#:o¨„Ýž’\0:oª¼ïÜ<\rY%T\0\x10\0N\x02\0§=Ím\x01.\x14¢ŸP\x0e\06ñ‡ðƒP\x1e\0\P.\0dP>\0:PN\0\b„\0ñò‚ó„ô…ð†H\0\0Š´<T\x10€\x04Álñ\x05„B´!L\x11@\x04„!Õ\aó\x05 YV\x10€\x02\\x10€\x01É^¹\x01T €\x01N£\0Zô\x03€ª¤ ô\x01¬ ñ\x03\x02 ÿÿñ\x02¬ˆó\x03\01ÿý®Ê€jô\x04¤ ô\x01¬"ñ\x04\x02\x10ÿÿ¬a„'\x02.\0‰\x12"\x7fÿ€Š´Ü€JBcP\b¶Ü<mS´€\x1cÝ&´ÜBcP	¶Ü¿\x04ó\x03ô\x04¥˜\x02\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVNBÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVNjoüÿ\x01\x01û\0\x02\x7fÿ€G€&IÿÑÎB€l\v˜¶ €(€\aIþ”`€`ð\x02ñ\x01¥€¥È±•²@\x04˜\0€(˜¿¶\x7fIþ”R’\0´\x7f—Á—™€*€\x1cLc€\bò\x02„a®Ó<-S¹Ý"ð\x06ñ\x03œ\x01ò\x01ó\x02ô\x04ð†ð\x05P\x10dP!\x01dP1dPB\x01dP\0\x01dñƒòó‚ô„ð…QÎ\x01dñ\x06ò\aâ"Nóÿuì$:oª„Ýž:oª¼ï¼–I–‘–Ø— ð…ñŽò‚óŒô†>\¢œæ\x02è\x11§hÍ\x02„¡ð\x05—hõƒÀ\x03„ÀÕ\x03.d¢Ÿñ\x03™±—°öÕ\f¦è§kõƒË\x02„aô\x03„\x02˜ã–ØóðŒô\x03Dþœ>?^[\x18Rr\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVO¿ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVOóoüÿ\x01\x01û\0\x02B‚ $„ —øP\x01€\x10ñ‡ó\x14€
÷‰ðˆñ„H\0\x01ñ\x05„aL\x11€\bÁW„‚L\x12AH\0\0¢ð\x04N\x03\x01ˆ>\x1d•|´AæBNó\x01e\0\0€BN\x02\x01aó\x02N2\x01^\00€H<mlüD\0\0DBa€s¡É q„aL\x11À\x14\x02\x03\0\x14Iþ1t™\0D0\x02q@‚\fw µ„„›z„à@r\0^[@\x02 \x01™Ç.…•¾ñ\x06€H€\aIþ“¡<]eh<MeiF\x10\0–X\x10Ž\bTR€\x0fTB\0\x0f8@\08P”\0.e•É™l—\x04˜®NB\x01Ež\x01œ’H\0\x01Aô\x04ð\x03â€è%.\x04¢œâ€Nò\x011<-lÿó\a™“¦0N\x02\x01\r ±T\x01\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVQHÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVQqoüÿ\x01\x01û\0\x02N\x02\x01\b\x023\0£N2\x01\x04ô\x02NB\x01\x01\x04\x03\0Oñ\x06€C\x03Iþ“c\x023\0¦œÙH\0\0‡<-m\x01ð
™\x10´DT\x01\0\x04N\x02\0ì "N\x02\0é„"L\0À\x04„\x01Õ\x06 £V\x01\0\x02\\0\0\x01N\x03\0Ýó\x02N2\0Ú\x022\0^[ $@Œ\0ñ\x06€HIþ“:„DH\0\0òð\x04ñ\x03â\x01è?ô\x01´dN2\0ÆT!€\x04N"\0 "N\x02\0¿B\x01Ð\vN\x03\0»\x02‚\0^[N‚\0·ó\x02N2\0´\0\x02\0Y–\x04À\x04Pb\0LÕ\bô\x01\0\x02\0g–\x04À\x13Pb\0ZÆ\x10ð\b¤ñ´@¤2€#@Œ\0IÿÐk¥5ñ\x06œá”Ú˜\x03Õ\x05ô\bñ\x06´\x04‰\b€HIþ’ø„BH\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVRíÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVS"oüÿ\x01\x01û\0\x02\0°<mlÿñ	D\0\x02¬B`€s¦0N\x02\0‚ ±T\x01\0\x04À}\x023\0£Ãzô\x02Äx\x04\x03\0Oñ\x06€C\x03Iþ’Û\x023\0¦˜›H\0\0‘ò‹@€(ò\fð\x0eÕ\aô\f\x04¯€\x0eô‹ñ\x02ƒÈ@o\x04·Í9ó\x05„‚L2@-ã@è\x05@P(\x01æ£érâ
è$@U\0\x01æ£è Õk@1„·\x02@4ø—@r\x06@b\x14\x06@\x02˜\x1a@\x02\x18^[@2œ\x1a@2\x1c^[šØ@A„wÃVð\v@4(\0ã\0éçð\x0fQÎ\0\x02Õ\x02‡€@þ\b\x06è\x06…\0@ž\0\0ðÕï\ÿ\x01‘é"@Ox\0@R\x04—Ì\x1d˜\0‰J$AÀ(\x01Õ\x10âãé\x04@C\x04wÃ1jŸ²ô\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVT†ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVTÐoüÿ\x01\x01û\0\x02@2¨\0â¤éõ"QÎ\0\x02ã"è\x06@t€\0€Ü„ Õòñ\x04ó	œ	–\0œ™ô
ñ\aó\bð„ð\x01PB\x01dP\0\x01dP\x10‚¬–P1dôŠðñ‡ò‰óˆô\x04ð\râ€Nóþo„\0Õ\x02„\x01ìD:oª„Ýž\x05ï€\x02ã\x1eNóÿnHÿÿr:oª¼ïäT €ÿ\0–‘–Ù—!—iN¢\0\x06„\x01L @\x17Õ\vP\x10\04P\06P`\03ñ‚Pp\x01\x12Õ\x17P\x04\0VP”\0NPd\0Xð‚Pt\0LÕ\rP\x14\0d„\aP”\0\Pd\0fñ‚L \0;Pt\0Z˜š˜,A\x01\x12\x04€\0¬¸D\x10\0\x14\x02$€\0L €\x05„
L @\x05œ‘\x12$€\0\x02$\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVV%ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVVKoüÿ\x01\x01û\0\x02€\0–\x11â€è\x02€D\x12$€\0N£\0
Œ4L@À\x19D \0\x18Ú\x15ž	Õ\v„\x01L @\f”JL@À\x0eD \02Ú
ž
\x12\x04€\0Õ\x06çBé\x04„\aL @¹„\0Iþ¬ªð…\x024€\0.%µ\x06”Zñ„àCé\x03ž™–®°N£\0\vò\x05„ÁB!l\v¶_\x14¯€\x01ƒŠÕ5„\x01L \0\v„'L €\b„@¶_€Àòƒ‚Õ)\x04d\0\x04\x02\x14\0^[\x02\x04\0\x1c€FIÿÏ\x10ðB\0l\v„'<oI\x12¶\x1fL €\x16\x02$\0^[\x024€\0@A\f·Å\x04@AˆwË\v\x04\x04\0\x04´?˜’Iþ‘‘AÀ\0\x13„ÀÕ\x03„Á‡€.Uk:.5k;™k<2’.—h˜ÛóƒÅ\x0f.\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVW²ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVWÜoüÿ\x01\x01û\0\x02”™IýñúÀ
\0p\0Bò\x03Vs€\x06„¢@"œ\x1aòƒÆ!‡€´ÿÕ\x14IÿýLÈ\f\x02$€\0„\x02˜’–‘€<€`€‡IÿýAÀ\x10ð\x03@\x1e\0\0AÀ€\x13\x02T€\0€<™m„b€‡„\x01–©à¼èäN£\0
ð\x05ñ\x04€\Iÿξ\x14\x04\0\x04Õ=„!L €\x05„GL¡@8ñ\x04ð\x01€\Iÿΰ€@žÄð\x01ñ\x04@1€\x06B!„sR\0\x7fü˜‚’Bð\x02–‘¬€\x02\x04€\0â\x02è\x1f@\x11\0wB \x04uñ\x02¬ˆÕ\x18>\x1d³´\x02\0€‚ò\x02¬\x10\0 R®°<\rY%T\0\0€È
\x02$€\0\0\0Rà\x02é\x03ž\x11–\0®0ì\x1c:oª„Ýž’\0;ÿü¼ïü–\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVY2ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVYXoüÿ\x01\x01û\0\x02IüÁŒì\x04;ÿü„Ýž:o¤¼ïü.4¢ž—€!—Ð.„¢ŸâÃè\x03…\0Õ\x04‰\x03@ƒ \a€\x06T„\0ÿIÿÿâÀ#N‚\0L€\x06Iþ½l€ÀÀF´ T\x10€\x02ÁB\x02 \0Š\0\x10\x016œ‘\x12 \0ŠÉ\x06 „„"IþÂ:Õ\x05 „„"IþÜ;<\x1dXh\0\x03\x017Ý!Õ+Nƒ\0\x1a€\x06Iý¹\fÀ%´@Ta\0\x04Æ\a<=Xc€G€)Ý#Õ\x1c@!<\b’_Â\x17€\aIþ\x16¶@\x03\0\x06Õ\x12.\x05®õÈ\x0e€\x06Iþ½/À
´ T\x10€\x02Á\x06<-Xd€'Ý"Õ\x02„\0ì\x04:o¤„Ýž:o¨¼€à„\0Iþ«b€€D‡yÀ„\x06D\x11\0\0D u™„b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVZÏÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVZñoüÿ\x01\x01û\0\x02>mƒ°Ý(\0£\04N£\0º\x04“\0\x04L“€\x1c€‰„\x06D\x12\0\0D u—–ùÝ(Ï
 4„!L\0€\a\0\x03\0>À\x03\x10s\0><\x1dfÕ„Á˜N<\x1ffÕH\0\0Í¡5„\x06D u–D\x12\0\0@4€\x13Ý( µ„
L \0\x06P\x01\x7fñæ\x03è4.5ƒæË\b<MY	<\x1d`ðD\0p)Ý$€&\0\0€>À\x10 ŒÂ\a<\x1dfÖœI<\x1ffÖÕ\x03„\x01¨\f„@„!>%ƒîÕ\x10  	¨Œ–\x04„L¨À\b.eçÁÎ\x05Iý»¦€&Õ\x03„ €Á„_</e$ÁSH\0\0‰\0\x03\06À
 tæ*è\a<MY	€jD\0p+Ý$\0\x03\0>À\x16 tÁ\x0e<MY	 µ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\Fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\|oüÿ\x01\x01û\0\x02D\0p,„`Ý$<\x1dfÖœI<\x1ffÖÕ\x03„\x01¨4„ >\x15ƒîÕX.\x05›ÓÈ\b\0\x03\08È\x05\0\x13\0;æ"é\x15„\f<\x0f`ð<\x1dRÍF\0\x7fÿX\0\x0fÿÝ!.\x05ƒëæ\x02éKIýf˜„À@c\0\x06ÕF<}RÑ„,¨tIþª¨Ý'È\x03\0\x03\05<\x1dRÍ„ÀÝ!<\x1dRÊT\x04€ÿÝ!Õ2\0\x13\08.\x05›Ó„@@!\x04\x06˜Ê\x1f\0\x13\0;\0\x03\0<L\x10@\x1aF\0\x7fÿ©ö€b€‚F\x10\0X\x10‹ÔX\0\x0fÿ„¡Iþ\fï–ù„\x06D\x12\0\0D u˜„Ý(„ÁÕ\v–ù„\x06D\x12\0\0D u˜„€Iþœö„À€\x06:o¨„Ýž’\0;ÿü¼ïüIü×G\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV]Ùÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV]úoüÿ\x01\x01û\0\x02’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü´’\0ì\x04;ÿü„Ýž:oª¼ïü .\x05ƒáIý·Â€ÀÀ[\x04\0\0’È8„!L€\x06…\b@ \bÕ\x04D€\0`H„áGÀ\0£YÎ\x0fäÕ"Iý·«€ÀÀ\x1cIÿÿÕÀ\x19\x04\x03\0’È\x16€'„\x03Iþ±ÁÀ\x06€\x06Ý<\ð\x02€é\a„bL‘À\x05D€\0`H€\a€(€JIÿ׸ù—ø.4¢œ€\aâãéÛÕ!„!L€\x12.\x15ƒá„\x03Iþ± À\v€\x06Iÿÿž\ð\x02€è\x05„ì@ƒ„\bÕ\x04Dp\0`\a€\x06Iÿÿ›À\a.\x05ƒá€'€HIÿאì\x04:oª„Ýž:oœ¼ïü\0\x10\09„A\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV_Qÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV_{oüÿ\x01\x01û\0\x02P`\04´àL\x11@\x11T\x13€\bÁ\rIýdà€ Èk¦5¦¶œ\x01–\0®5â@è\x02®u„\x03Lp\0\x14„'Lp€\x11„KLq\0\x0e„\x02Lp\0\v„&Lp€\b„JLq\0\x05„\x0eLp@\r¦5È\x02Õ\x19„!L\0À\x03Õ0„BL\x01@IÕ\x1e„\rLp\0\x05„/LpÀ\x11¦5È\x02Õ\x15„AL\x01@\x03Õ\x1f„"L\0À8P\x03\x7fÌIýj Õ^[ž<æ\x02é\x04„LLq@\r¦5È\x06P\x03\x7fÌIýn¿Õ\x0e„!L\0À#Õ\x06Žèæâè\b¦5È\x1cP\x03\x7fÌIýd‡È\x13.%´¾\x10#\x7fý„*.%´¾<=RËP\x03\x7fÌÝ#<\x1dRÎP\x03\x7fÌÝ!„\0ì\x04:oœ„Ýž<MY	\x04\x13\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV`Ñÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV`öoüÿ\x01\x01û\0\x02\x7f󦵦öD\0p4Ý$Õá;ÿü¼ïüIü´Á’\0ì\x04;ÿü„Ýž:oœ¼ïü„! „\x10\x10\0E„,€ÀL €çæMè\bæGé\x11„jL!ÁxH\0\0ЄŽL"\0÷âDNó\x01pæRNò\x01mH\0\0ó E„
L\x10@0\0\x03\01N\x02\0–D\x10\0\x18B\x11\x04$>=‚À\0\x03\0>˜K¥ÈÀ\x06Ê\x05\x02\x01€\f™øü„\x03B!\0$€ƒœ‘@!\0\f˜”¦\x16>=š¤À\b\x04\x01€*˜8\x14\x01€*H\0\x01n\x04\x01€+˜8\x14\x01€+H\0\x01gP\0ÿñæ\x03èg„\x0fL\x10@
.5ƒà<\x1d`ó”^[˜\b¦\x06Õ\x15œÁ>\rƒ°L\x11À	\00\00 G”^[˜\b¦\aÕ	\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVbOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVbwoüÿ\x01\x01û\0\x02\0\x10\00 \a”K˜A¦\x0e¦O˜\b<=fÒ>M‚À˜Ã<?fÒD\x10\0\x18B!\x04$\03\0>˜”¤PÃ\a ´Ê\x05\x02"\0\f˜JœL ô„CB!ˆ$œ‘”“˜”¦–>=š¤Â\a\x04!€*˜Š\x14!€*Õ\x06\x04!€+˜Š\x14!€+˜\b t„BL\x11@ä.\x15›ÓN\x13\0à.\x15ƒë„aL\x11ÀÛ<"Áx<\x12Áy.5JÊšŠ@!ˆ\a@\0ˆ^[H\0\0΄\x03B\x01\0$>M‚Àœ\x01”\x03˜\x04¦\x06>=š¤À\x0eD\0\0\x18B!\0$\x04\x11€*˜”¤\x10˜\x01\x14\x01€*H\0\0¶D\0\0\x18B!\0$€\x04˜\x04\x11€+¤\x10˜\x01\x14\x01€+H\0\0¨.\x15›Ó„AL\x11@Ð.\x15ƒë\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVcÉÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVcñoüÿ\x01\x01û\0\x02N\x13\0Ì\0\x10\08N\x13\0ÈÕ'.\x05›ÓÈ\x16\0\x03\08È\x13.\x05ƒëÀ\x10.\x15ƒ,–LÉ\f.\x05ƒD–\x04È\b<}RÑIþ¨OÝ'N\x03\0‡\0\x03\05H\0\0}\x04\0\0
H\0\0y.\x15›ÓÉ	.\x15ƒëÉ\x06<\x1dRÎÝ!H\0\0o„oL!À
.%ƒà<\x1d`ó”\x13˜\b¦\x06Õ\x16D@\0\x10>\rƒ°L"@	\0 \00 G”\x13˜\b¦\aÕ	\0\x10\00 \a”K˜A¦\x0e¦O˜\b<-fÒ˜‚</fÒÕG\0\x10\x02F\0\x03\01L\x10@	 sÁ\x06„\0¨2\x14\x13\0
Õ$Iÿþ¨À\x03„\x02Õ\x02„\x01Iÿý°´\x06„M\x04\x13\0
L\x01\0\x05„oL\x01À\x14\0\x03\0@À\x10¡5„
L@@\r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVeLÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVesoüÿ\x01\x01û\0\x02 4æ\x02é	æ
è\a\ €QD\0\0P@\x10\b\x1a<-lü\03\01D\0\0DB!€s˜\x0f\01\0-\ñ€'è	œÚ>-š¤8A\x0e\x02˜L8\x11\x0e
È\x06P\x03\06Iþ	”Õ\x13\0#\06Â\a€ P\x03\06Iþ	ùÕ
<\x1dRÈ€b€‚€¢Iþ
)\x10\x03\06\0\x03\06\x02s\0\bIþ	\x11€€€g„\x06D\x14\0\0D u•Iþš2„\0\x10\x03\0Eì\x04:oœ„Ýž„à 2ÈŠHÿÿ–:oª¼ïü.%k:.\x15k;€À˜\x11–\0ÀC.\x05”™Iýí5€à\0\0\0HIþ\x1c| yž‰\ñ\x7fþè5IþŒ¡À2\0\x03\0,\x04£€\x01Iþ\x1cnƒ€\0\x03€H¡óIþ\x1chœ{\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVfÇÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVfèoüÿ\x01\x01û\0\x02˜H@\x0e(\0IþŒŽÀ\x1f.\x14¢ž\0\x03\0,.$¢Ÿâ\x01è\x03„ Õ\x04˜Q@\x10\x04\aÁ\x10Iþ¹\x13€à\0\0\x017IÿÝÌ’\0 y–LÉ\x06À\x04´\0¦\0À\x02„À€\x06ì\x04:oª„Ýž:oª¼ïô>}³´\0\0H\x04\x13€\x0f€À€	ñIþ\x1c0ƒ€\0\x03\0H€<Iý¹î\0 1€(IþŒQÀe 1€<IþŒLÈ`\0#\0BæGèAó\x01D@\0DB4s \x19„aL\x01À .4¢œ\x04S€\x0fžÙ–ØÕ\x12\0\x13\0HL\x11€\x0e A„aL\x11€\x05„bL\x11À\a\x04\0\0\x0e\0\0\x01PÈ3–ø€\x05B\x01sŸÙËëÕ\x1a„"L\0À\x18.4¢œ\x04\x13€\x0fžÙ–ØÕ\v\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVh=ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVhooüÿ\x01\x01û\0\x02 Á„áL3À\a\x04\0\0\x0e\0\0\x01PÈ\x19–è€\x01B\x01sŸYËò„ <\x1a’MÕ\x18„\0¬\x18€( 1Iþ‹Ë’\0¨1<\x1dX`\0\x03\0HÝ!Õ
>=$š¥\x18!—!­\x18\ò\0 èêì\f:oª„Ýž;ÿü¼ïü–Iüªì\x04;ÿü„Ýž:o¤¼ïü€à„
T€€ÿLp@->mƒ°€\bIý´(\0C\01D\x11\0\0 D u„\x06€hIþ™/\0\x03\01€(Iþ\x19ºN\x02\0‹€\x06Iýh\x11„\f„ ¨4\x10\x13\01¨5N’\0€\x04”€’N“\0v.\x05›ÏÈxH\0\0qP\x03ÿñ>mƒ°–ùæ\x03è+¡4D\x11\0\0„\x06D uƒIþ™\x05„/Lp\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pViÅÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pViäoüÿ\x01\x01û\0\x02À\x06\0\x03\08„>Õ\vœ	Lp@\x06\0\x03\08„=Õ\x04\0\x03\08„<@\0\x04\x02\x10\x03\08.\x15ƒèÉ\x05>\x1dJ„<\x1f`ó<\r`ðŽ\x0fæ\x03èFÕ?¡4„\x06D\x11\0\0D u‚Iþ˜ÛD\x10\0\x18B\x13„$>\r‚À˜HœO¦Ê	<MY	€'D\0p%€bÝ$Õ+T!\0\x04Â\x04„\0®\rÕ%¦\x0fÀ\x06\0\x03\0<ž\x01\x10\x03\0<€\x06\00\0;„@žÙ\x100\0;®æâè\x06\0\x10\0>Á\x03\x10 \0>€\x06 DL\x13À\f E¨D„,¨E<=RÌ„\0€ €@Ý#>mƒ°\0\x13\0=\0\x03\0;â é\x06Iý`é„\0\x10\x03\0=<\x1dZ1€\aÝ!„\0ì\x04:o¤„Ýž’\0;ÿü¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVk;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVk\oüÿ\x01\x01û\0\x02ïüIü¯Ã’\0ì\x04;ÿü„Ýž:o¤¼ïü€À.\x14¢ž\0\0\0,.$¢Ÿâ\x01è\x03„ Õ\x04˜Q@\x10\x04\aÁ\rIþ·–\x02p\0\x1c\x02\0\x1dù@””\b\x02€\0^[Õ\x1cIý³L\x02\x01\x13\x02€\0¡P\x10\x01g\x04\0\0]„B‰)“\x01L\x01\0\x04„áÕ\v§Í¦\x0eâàè\x03ùÕ\x02Á¦\x0fBs€$€\x06Iÿÿ¼€À„\0Iþ¥²@\x13\x18\x05@`\x04\x1aš\x06@\x04€\x01Bs $”\x04’\x04’\x02@\0\x1c÷æ
è\x06F\x10\0®X\x10‰àÕ\x0e\ð\0dé\x03„	Õ\x05Ž
„*@\0\x047F\x10\0®X\x10‰ì8\0€\0ì\x04:o¤„Ýž:o¨¼F\x10 \x1c<}Zÿ…\0€À\x14€\0\x04\x14€\0\x03Ï\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVl±ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVlÑoüÿ\x01\x01û\0\x02¨3¨4<\x0fZÿÕH¦6æ\x02è\aNƒ\0\b´\x06Iÿÿ€\0N‚\0\r¦>æ\x02è	´\aIÿÿwÀ\x05â\bé^[L€@\x13¤r¤:â\x01é\x15L\x10@\r 2„?L\0€\x10 z„_L\x11\0\x05IþŠtÈ\b <Lp@\x04„ Õ\x04€àÕÓ„! <L\x03À\aÉ\x05©´©ó©¼Õ\x11 ;L\x03À	Á\a©³©»©ô<oZÿÕ\a D¨3¨t D©‹©„:o¨„Ýž:oª¼ïì<m\x03.5´¿ƒ€@ €\x13T‘\0ÿó„àPo€\fÕ\x1aIúݧ€\b\f\x14\0\x05É\x0f„?\x15À\0\0\x12 \0\x02\x10\0\x06¨BIÿÿ…ð\x03IúݬÕ
ð\x03ùIúݧ—øñ\x01€\x06âáéä\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVn%ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVnMoüÿ\x01\x01û\0\x02ì\x14:oª„Ýž:o˜¼–I<mZÿÀ\x13Æ\x12´fL0\0\a ôLa€\r€ÃÕùÆ	¬r¨²€\x06Iý´m€\x06Iÿÿ\:o˜„Ýž’\0:oª¼ïü.\x15çÁ€À<}lü\x01Ã\x02FÁP„\0\x02“\0¡Iþ¤Ð@D\x10\0D€\aB\x0e\x04sIÿþ΀à„\x1fLp\0@.$¢œ.\x14¢Ÿ˜’<\ryòœ“˜Š˜Š\0\x10\0,–\x10\x02ƒ\0¡Iþ¬OÀ\v<\rk¨D\x10\x01\0L\0À\x06<\r`ðæ\x0fé#D \0(@!$v@\x15\x1c\x01”L’$’!„\0@\x10¡\x17@\0\f\x06˜\x02ž\x01–\0–Hâ è\x0f\0#\x02F<\rlüD\x10\0DB\x01\x04sIÿþš„)@\0€\x06Õ\x02„\x01ì\x04:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVo®ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVoÍoüÿ\x01\x01û\0\x02ª„Ýž’\0:oª¼ïìP`\x02@\0\0\x02FT¡\0ÿñƒIþ\x19j ¦6€)Iý·)€@ 2À\x04\x04s\x7f¿Õ\x03\x04s\x7f¾òEÇ^ì€\a€)Ý<\0ò\x01À
 ²„\x03„!@€ˆ\x1a@€\b^[„àÕ#€"€\aÝ<\x04#\x7f¼N\x02\0×Â\r„"L €\v<MY	¦vD\0p\x1f€h€èÝ$Õ\x0e„áÕ\f.\x05k3\x02\x13\x7fõ€âš\b\x12\x03\x7fõ„\x01ó\x03®\x18\aP\x03}ÀIÿÿQ€`È
<\rfëP\x14€\x04€ãIþ‰H@ÕDÏ\x03GÕA\x04\x03\x7f¾„!Iþˆâƒ€<-lü¦öN¢\0\v€*>\r”„òó‚Iý¾wó\x02ò\x01D\x10\0D€\x02B\x01„s@.$\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVqBÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVqloüÿ\x01\x01û\0\x02””’D€<Iþ\x17¥.\x05”œ’\x02”\x02„A‡>%k1>\x05”œ\x15Ã\x7f¼D\x04\0\0Iýúñ\x02#\x7f„\x15Ã\x7f¹\x12#\x7f…„\x1f<\x0fe%<-ZnP\x13}À„\x02Ý"…@N‚\0c\x02\x13\x7f„\x04\x03\x7f¾˜IIþˆ˜\x14\x03\x7f½\x02#\x7f\x04\x03\x7f¾€)“\x01Iþˆ¾T„\0ÿ\x14\x03\x7f¾N‚\0\a€)P\x03}ÀIý¼ý\x04ƒ\0\x02\x14\x03\x7f¿Nƒ\0.¦6>'@8\x14€\0„aL\x11À&”\x02>\x1d&@˜\x038\0ƒ\x02\x04\x13\x7f¾IþˆÍÀ\x1a¦v>\r&@”M˜HD \0 P\x03~ð\x05Ã\x7f¼Iÿ\x15Ѧ6\x15Ã\x7f¼8„€\b€H\x02\x13\x7fP\x03}ÀIýÖ%<\x1dXh¦6Ý!N¢\0\x0f„\0„?\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVrÃÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVräoüÿ\x01\x01û\0\x02Iþ\x18\x1d’\0¦6¡²Æ\x03„(Õ\x02„!IÿØ´€\aì\x14:oª„ÝžN"ÿ:€àHÿÿB:o ¼ïÀPp\x02?\x04\0\0’V\0\0\x01¦H<lü\x10\x03€ <\r[\x18§¿æ\x02é	>-%8\x01\x18\0T\0\0\x7f8\x01\x18\b.\x05´ÍÀ\x04.\x05kSÈ\v¦?Iþ\x15ÞÈ\x1d>\r%8\0\x18\x10N\x05\0\x18D0\0"¦?\x12?€\x0e€?\0s€ \x10\x7f€\bIýpï>\x1d%8\0˜\0D/ÿ€@\0\b\x048\0˜\b€\bD\x10\0DB\x03\x04s\0\0\02À	>\r%8\x10\x18\0T\x10€\x7f8\x10\x18\b>\x1d%8 ˜\0„\0B!\x18	8 ˜\bì@:o „Ýž:o ¼ïÀ\0 \x02HPp\x02?V!\0\x01¦H\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVt8ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVt\oüÿ\x01\x01û\0\x02<lü\x10#€ \x10/€\b<\r[\x18§¿æ\x02é	>-%8\x01\x18\0B\0\x18	8\x01\x18\b.\rjªä\x05é\x06\0\x03ÿjT\0\0\x02À\f¦?Iþ\x15iÈ\x18>\r%8\0\x18\0T\0\0@È\x11¦?€?D0\0!\x12?€\x0eIýp>\x1d%8\0˜\0X\0\0@8\0˜\bD\x10\0D€\bB\x03\x04s\0\x10\02.\x05´Ûâ è	>\r%8\x10\x18\0B\x10˜	8\x10\x18\b>\x1d%8 ˜\0„\0T!\0\x7f8 ˜\bì@:o „Ýž’\0;ÿü¼ïüIü¬’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü̏’\0ì\x04;ÿü„Ýž:o¤¼ïü–\0À,<bÔB–4À(.u¨ˆÇ\x03„ÀÕ-Tc\0\x02Æ\x11\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVu´ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVuÖoüÿ\x01\x01û\0\x02<\x02ÔCF\x10\0¥X\x10€L€G€g€‡€§Iþ\x04õ>\x05¨ˆ€ÇÕ\x1aD\0\x12ÀF\x10\0¥X\x10€L€F€f€†€¦Iþ\x04å>\x05¨ˆÕ\vIþ‚À€À>\r¨„¦DÁ\x04œ\x04Iþ\x042€\x06ì\x04:o¤„Ýž’\0:oœ¼ïü„À>}¨„D \x01šD\0\0&F\x10\0¤X\x10X¬¹­¸¯¼Iþ\x15\v„\x7f„ <?['<\x1f[(„a>5´Î>ekJ„A¬¸>ekƒ>ek„<\x1fI1<\x1fI2„\x01Iÿÿ—ì\x04:oœ„Ýž’\0:o˜¼IÿÅ È"<\rXrB\0l\vÈ\x1d>\r¨„¤Aœ\x04Iþ\x04ZF\0€\0Iýù\x1cIþ\x16Ž€ÀÀ\x05F\0€\0Iýù@<BÔC\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVw+ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVwNoüÿ\x01\x01û\0\x02–ñ„\x06„!D u@Iþ”—Õ\x06>\r¨ˆ„"Iþ\x04?:o˜„Ýž:o˜¼€À´\0„'L\0€\x05„-L\0À\x05€\x06Iÿú¯€\x06IýÂŽ:o˜„Ýž’\0:o˜¼€ÀIÿú£€\x06Iý¹è:o˜„Ýž’\0;ÿü¼ïüIüË=’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÌo’\0ì\x04;ÿü„Ýž:o ¼„@>%k,\0Iý3è€ÀÀK\x04p\0\bLt@H\0 \03Â\x1a.\x05ƒæÀ\x12<\x1dRÓ„\x04Ý!€à.\x05ƒæIþ\x03\x13€ €\aIþ†ÏÀ\x04IÿÿÔÕ0<\x1dRЄ\x04Ý!Õ+\00\02„‚P\x03‚@L2@\v.\x15k-\03€ €@€\aIý9½\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVx£ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVxÅoüÿ\x01\x01û\0\x02Õ\x05.\x15k-IýQ.€\aIý¯\x7f€\x06„ IýV1<\x02µáD ÿï<\x1dZ;@\0\b\x02Ý!<-Y\rD\x10\0P„\0Ý":o „Ýž’\0;ÿü¼ïü–HIüÍZì\x04;ÿü„Ýž;ÿü¼ïü–\x01IüÈ`ì\x04;ÿü„Ýž:oª¼ïì\0Iý3~€À„€\x04£\0\b>E$kP\x0f€\x04€(„FIÿ\x13„<}XrF\0\x05\0@s€\x02Ç8EÆ[\x18€\bP\x15\x02@Ý<€àÀ\x1aP\x0f€\fIúÙÉ<}XrEÀ\x05ìTs€\x02Ç\vIþ\x17ˆ€àð\x03…!Ý<„\x02IýøYÕ\x10ð\x03…!Ý<Õ\f\0“\03„!LÀ\x06 2€(Ý<È\x03… €é<-Y\rD\x10\0P„\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVz#ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVzOoüÿ\x01\x01û\0\x02Ý"„AL‘\0\x0f„ÀÕJ\0\x03\03„!L\0À‚ 2€(Iþ\x04AN\x02\0|€
Iý®ö<\x02µáD ÿï<\x1dZ;@\0\b\x02Ý!\0\x03\03À	„\0\x10\x03\03<-RÇ„ „\x04Ý"€\x06„ IýU”<mXrF\0\x01\0@c\0\x02Î\x06<\x02ÍÚ„!L\0€
„\0„+P/€\x04€`Iý9\x01„Á<\rXrB\0X\vÀ\v„@<*ÍÚ„AF\0\x04\0>%$kIý÷õ€\bIýUH À3 \x02€(Iþ\x03øÀ\r\x04\x04€\bÀ
.\x05ƒ,–\x04À\x06<-RÇ„ „\x04Ý"€	„!IýUWÎ\r\0\x04€2„!L\0€	€\x06„+P/€\x04€fIý8Ê<\rXrB\0X\vÀ\f„@<*\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV{¤ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV{Âoüÿ\x01\x01û\0\x02ÍÚ„AF\0\x04\0>%$kIý÷¿’\0€\aì\x14:oª„Ýž„à€ÇÕÂ:oœ¼ïü\0\x10\x02\Pp\x02@€\aIÿÿ\f€ÀÀF´\0D\x10\0 L\0€BŽ0L\0€?\x02\x03\x01\r„'L\0€=„\0\x10\x03\x02‹<\x1dlü\0C\x02FD \0DB\x12\bs\x04\x10€\x0e\x10\0F<\x1dlü\03\x02FB\x11ˆs\x04\x10€\x0e\x10\0GŒ\x13\x14\x03\0J\x04\x03\0’„!L\0À
´\x06T\0@ÀÀ\x05>\r›ÆIþ\x02\x14P\x03\x02†Iþ\x02\x10´\x06X\0\b\0¶\x06„\a\x12\x03\x01\r€\x06IýP\x1eÕ\x04€\aIÿþÖì\x04:oœ„Ýž:o˜¼\x04\x10\0’„BV\x10€\x01\x10 \x02Y\x10\x10\x02_€ÀIÿÿœ€\x06IýFy:o˜„Ýž\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV}\x1aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV}9oüÿ\x01\x01û\0\x02:o ¼€à´\0D\x10\x10\0L\0€\x05D`\0\x13Õ\x1d.\x15k:.\x05k;˜\b–\0À\x06.\x05´öÈ\x03„ÌÕ\x11€\aIÿÿÔ€À.\x05$k„!L\0À	€\a„ Iý=„\0>\x05$k€\x06:o „Ýž’\0;ÿü¼ïüIüÉ‘’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüÄ\r’\0ì\x04;ÿü„Ýž:oª¼ïô–\x05À€\0ó¶_€á€À…\0D—^T€\x06Nƒ\0\x06´?„BL\x11@\x05<\x1dSòÝ!´\x06@\0<\b’\x1fÀ
\x04\x13\0\x12\x02#\0†¤\fL \0\x04¤IÕ\x03\x02\x13\0^[´\a\x01Ý)¶\a@„\0\x13´'ð\x01Iþ„ÏÀÜ.\x05çÁÀG<\x02óêD\x10\0ÿL\0€B\0\x13\x016\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV~ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV~ºoüÿ\x01\x01û\0\x02É>Iý­$\x04\0\0’„AL\x01@8<\x1dlü\03\x017D \0D€\x01B\x01ˆsIÿùžæ
è*€\x1c€ID\x10\0\x10BÝ"¶\x1fEÇ^ìÕ\x1c<\x1dSò€\x06Ý!´\x06@\0<\b’\x1fÀ\v\x04#\0\x12\x02\x13\0†¤\x14L\x10\0\x05¤Q´\aÕ\x04´\a\x02\x13\0^[Ý*\x01¶\a@„\0\x13´\a´?Ý<ÈâP\x04\x7fÿ–\x01ì\f:oª„Ýž:o ¼–H€b€ÀÉB.\x04¢ž\0\x13\x017š\b–\0\ð\0 è\x06„F>\x1d¸(8 	„\0IþŸE<\x0fI0.\x05k|\x02\x13\0\x1aœ\x02˜I˜\x01Iþ„’¨4\0#\03.\x15k|˜’šQIþƒñ¨5 4„"Iþ„\x02´&’\x02”\x02X\x10\0ž¨´¶&\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV€\x1fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV€Eoüÿ\x01\x01û\0\x02<\x1dI/T €\x03ÊO<-I0@\x10ˆ\x03„AL\x11@Iœ\x03¨4ÕEž‰–æBèA€AP\x10\0\x10Iÿÿ0\x02#\0Š´&˜\x02T €\x04\x12\x03\0ŠÂ\x04B\x10°	¶&\x04\x03\0/–\x04È\x06´\x06@\0<\b’\x1fÀ'\x04#\0\x12\x023\0\x1a¤\x11\x12\x03\0^[¤S\x12\x13\0\x1d\0\x13\03¤\x12˜Y\x12\x03\0\x1c 4¤\x12#\0‰Iþƒ·\x02\x13\0\x1a¨5 4œIIþƒ°´&X\x10\0X\0\0\x03B\x10À	¨4¶&\03\x017¡4„\x06„(D r\0Iþ^ 4:o „Ýž:o¨¼€À!N\x02\0»´\0D!\0\0@\0\b\x02À\x17„\0Iþžµ„!Iþƒˆ’\x01”E’&”I>\r¨\x11Iþ\x02N>\x1d¨\x11\0\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV˜ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV»oüÿ\x01\x01û\0\x02\x02FœŒœÍH\0\0œIþž \0N“\0\v<MY	\0\x13\x02FD\0p2€I€iÝ$.\x05µ\x05…L@\0(\x02L\x05@
€\bD\x10\0 IþƒN€àH\0\0n´\x06T\0\0\x04À>€\x06IÿÁÖ€ €\bIþƒ@\x02\x13\0¤€àæ&é\x03„\x01Õ\x04œI@\x05\x046\x04\x13\0]æ"é\v\0#\x01l\0\x13\x01mâ"è\x02€"–H˜I˜\x01\0\x13\x02F>-'@8A\x04\0„¡Ü\f˜I˜M.Ej–”L>=&@˜K¤É˜\x04Õ\x06.\x15j–\x023\0¡˜\x01B\x10\f$€\bIþƒ\x05Õ .¥j—D\x10\x01à€\bIþƒ\x03\x04\x13\0HFB\x15\x04$€à€\bIþ‚ô\0Iýò?À\r.%ƒà<\x1d`ó”\x13˜\b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVƒ\x10ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVƒ9oüÿ\x01\x01û\0\x02¦E€\b˜IIþ‚å\0@„\x10\b“\x06@„\b\b€\a€(Iþƒ=@t\0^[„!€\aIþ‚ë’\x01”E’&”I€	Iþ\x01²\0\x03\x02F€)P$€\x04„`IþNä’\0:o¨„Ýž:o ¼€À\x01À,Á+\0\0€	„#L\0À'´(§È’á\ó€|é\x05¦	@s \b™øD\0\0<Lp@\v€\x06Iý0H´(€\x06œIIÿÿ\x1fÕ\x13D\0\0\x13Lp@\f€\x06œIIÿå<.\x05µ\x01È\b\x10s\x02ŽÕ\x05€\x06€(Iý¯J:o „Ýž’\0:o˜¼\x04\x10\0’É#<-lü\0@\x02FD0\0D€"B\x12\fs€\x04B\0\x0eF\x10 \x18\0R\x01L„.e$•@B\x14\f@B\x10\x05@B\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV„Žÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV„µoüÿ\x01\x01û\0\x02\x18\x02>E$•\0\0\x02FB \fs€\x02IþOí:o˜„Ýž:o¤¼ïü€À\0p\x02F´\0D\x10\0\x10L\0\v<\x02ÍÚ„AL\x01@!\0\x03\x02ŠÀ\x1dP\x03\x02ŠIýÿU<\rXrB\0\\vÀ\vPƒ\x02@€\b„ Iý6¶€\b„"„@Õ\b\x04#\0’Ê\a\x04\x13\0JP\x03\x02@IýM\x0f\0\x03\x02Z„ƒL\x02@\x12\0\x03\x02ŠÀ\bP\x03\x02ŠIýÿ1€\x06Iýhˆ\x04\x13\0J€\x06Iý6%ÕS\0\x03\x02Y„!L\0€#<[\x18Nƒ\0K<\x1dXrB\x10Ô\vÁ\fP“\x02@€(€	Iý6–€\x06€I€h„"Õ\v„bL\x01À8\x04\x13\0J\03\0 €\x06P#\x02@Iý5_Õ-\x04ƒ\0’Nƒ\0*<\rXr\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV†\fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV†.oüÿ\x01\x01û\0\x02B\0\\vÀ\vP“\x02@€(€	Iý6_€	€H„"Õ\x10\0\x13\x02ŠÉ\b.\x05›hÀ\x05P\x03\x02@€AÕ\x06P\x03\x02@D\x10\0\x13„@IýL°F\0\b\0Iýô:F\0\x04\0Iýô6€\aIüðK€\x06Iÿÿ<\x04\x03\0’„!L\0À	D\0\x04\0Iýô'€\x06Iþ\x03$„\bIýô!<\x1dX‰€\x06Ý!\x04\x03\0’Iýñ-\0\x13\x02F>\r”Ü80\x06\x02FHÿÿ.%›ÍXB\x0fÿ@1\x0280\x06
Ê$D\0\0€Iýô\x04<-XrF8ÿÿX1ÿ@!\f\x02</XrD\0\x02\0Iýóö<\r`“„ƒL\x02@\v.\x15¶\x17.\x05¶\x16˜\x01–\0È\x03IÿËÈ<\rY¸Ý \0\x03\x02p„"L\0À\b„A\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV‡„ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV‡¦oüÿ\x01\x01û\0\x02>%›Ì”\fIýóÚ\0\x03\x02jÀ\x05D\0\x02\0IýóÓ<\rlüD\x10\0DB\x03„s<\x1dXmÝ!<-RÇ€'„
Ý"„ €\aIý®É€\x06Iýª„<-Y\rD\x10\0a„\0Ý"ì\x04:o¤„Ýž:oª¼ïì<\x1d`“„CL\x11@c„à<\x7f`“/Ä¢œ„ÁD\0\x13Õ\x0fIý©ïÀ
´`D \0\x10L1\0\x06\x14\0JIÿþ͝±—°ù€\aâÜéï.\x14¢Ÿ.„¢žPo€\f@\x04\x04\0–\0ðEÀ\x05ìÕ+Iþ®\x0e€àÀ$´\0T\0\0\x02À €\x06IúÔÙ<-["Lq@\x12´\a'D0\0\x13X\0\x01\0\x103=\x1c\x04€Nð\x03Ý<€	Iýþ\x06Õ	ð\x03Ý<<-\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVˆúÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV‰\x1doüÿ\x01\x01û\0\x02Sµ€\aD\x10\0\x13Ý"\x01T„\0ÿò\x01€\bã\x02éÓ.\x15€ É\x05„\bIý\x0eÌÕ\x05Iþ«wIÿÀãì\x14:oª„Ýž’\0:o˜¼—€€\x06Iý©ŽÀ#\0\x10\x02dD \0.L\x11\0\x04Iý.[€\x06IþLš<\x1dlüD\0\0DB\x13\0sF\0 \x18\x04\x10€\x0e.5$•\0 L„!@\x10ˆ\f@\x10„\x05@\x10Œ\x02>\x15$•:o˜„Ýž:oª¼ïô\x01À\x02F>m³´D€\0DBŽ $\x04\x13\0\x0f„Hˆ(\x04\x10€\x0e \0@%LA@f\00L>}$•…A¦x@5\f\f@1„\x02ËZ´@D\x11\0\0@!\x04\x02Â\x10>\x1d¨\x16óIþ\x05øó\x01€	€#Iÿüû\0\x04‚FIþLK\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVŠrÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVŠ‘oüÿ\x01\x01û\0\x02ÕK€">=¨\x16€\x1côIþL\x04\x03\0\x0fD \0\x18ˆ\b\x04\x10\0\x0e€\x1c\x10 %D\x10\0<\x04#\0\x0f\0“€\0ˆH\x04Q\0\x0e>-¨\x10\02L@5\f\f@1¤\x04®øIýj‹ô\x01À$\x04\x13\0\x0f>\rkGˆ(\x04\x10€\x0e\x10@%\x04\x13\0\x0f¦ø‰\x01\x04$\0\x0e¦@\0!\x01LX\x10€\x01@¥\b\f@¥(\x05@¥\f\x02\x10£€\0Õ\x06>\rkG¦@X\x10€\x01®@ì\f:oª„Ýž:o¨¼T€\0ÿ€\bIý¨ÝP`\x01<N\x02\0Ž´\0„!P£\x7fôL\0Àˆ¤¶„à\x04\x13\0C¬·\x14s\x7fý\x10s\0\x12IýïÀ<\rlüD \0D<=XlB\x04\bs¤s€GÝ#\0\x03\x01
€'Iþ\x10Ô¤³\0\x13\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV‹êÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVŒ\x14oüÿ\x01\x01û\0\x02\0\x13¤ò Iþ€C€@\0\x03\03¶F\x14s\0\x0e\x14#\x7fÿÀ\x18\0\x03\0=È\x15\x04\x03\0C¤óÈ\x02Õ\x02˜Û„@€\x03F\x10\0£X\x10‚DP3~Ä€‚„¡Iýý‹\x10\x03\0=„\x04\x14\x03\x7f±<-RÇ\0\x13\x01
„
Ý"<\x1dZ/¤3Ý!\x04s\0CÏ/\x04\x03\x7fÿ\x04\x13\x7fùŠ	”\x04’\x04”Lâ è%\0\x03\x01
>-&@”\x05€*˜\x02D \0 Iÿ\r&\x02#\x7fò…\x01\0\x13\0\x13¬³\x12ƒ\0\x06­ò\x12s\0\b€	€gIþ\x7fï\0\x13\x01
¶\x06\x14\x03\x7fÿ>\r'@8€\x04\bÕ\a¤sP\x03~Ä„@IýÍg:o¨„Ýž:o ¼\0„\x04€áL€@)Iý,é€ÀÀ\x04\0\0\03È\x0e<MY	Î\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVlÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVoüÿ\x01\x01û\0\x02€FÕ\x03\0#\03.5k(€&D\0ñÝ$.\x15çÁÁ\x02Õ\r.%$m„aL!À\f\0#\02„bL!À\a>\x15$mP\x13 \0Õ\x02€'€\bIýb2:o „Ýž’\0:oª¼ïÜ.\x15çÁÁ
.\x05ƒðÀ\x03„!Õ\x05.\x15$g@\x10\x04\x06.\x04¢œ„Að†<\rlàL\x01@\x06„ÀFH\0\x01¢–H¶?Á\x06<\ryò\0\0,Õ\x0eô\x06.\x05k2ž¡L\x01@\x06„\x01ð… Õ\x06œ\x01T\0ÿ\x14Ÿ€\x05„!…\0ññƒñ‡ñ„\x14€\x02ƒˆH.%çÁÂ\f´\x1fÈ
<-yò\0!\0,@!$\x03\q\0\x01Õ\x02„à€	Iý§Æ€ÀN\x02\0Ý\x04 \0’N#\0Ù´@T1\0 \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVŽâÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV\x02oüÿ\x01\x01û\0\x02N3\0ÔNs\0ÒT!\0\x04N#\0Î\x04@\0FNC\0Ê<-XY´?Ý"´FT!^[áN"\0À"C\x01\x15NG\0\a.%k3š¢\x12#\x01\x15"C\x01\x0fNG\0\a.%k3š¢\x12#\x01\x0fD \0DBtˆ$<-lüô\x01˜—\x04!\0\x0e´f\0!\x01g–Ü@A\b\x1aò\x04„\x03@!Œ\x1a€)ôò„Iþ¡žÀ\x16<-lü˜—\x04!\0\x0e\0!\x01FÂ\x10.$¢œ.4¢Ÿ˜’œ“˜š˜š–\x10€)Iþ¡‰È\x03„€ô‡ð\x03À\x17Iÿ½6„?€`L\0€\x10>-'ð8!&\x02L €
€\x02€#Iþ~úÈ\x04„AòƒÕ\x03„€ôƒN£\0c€\x06Iý¾¥<-lüð‚˜—\x04!\0\x0e\0!\x01P\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV\ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV‰oüÿ\x01\x01û\0\x02Ê\x14"#\x01\x15N'\0\x0fÀ\x05"#\x01\x0fN'\0
€\x06IÿïV\ð\x02€è\x03„@Õ\x02„AÂC=Ílü´?AÎ\x1c\0É\x03>•k2º\x0e\0!\x01PÂ%\0#\x02\x7fÂ\x17º	„ƒ\0!\0	L"\0\x12\0#\x02}T!\0\bÊ\f€\x1cIýÅÈ\0#\x02}\x06X!\0\b\x10#\x02}Õ\x10<-XX€\x1cÝ"„A@¡\0^[\x06AÀ\0\x1aÕ\x14ð\x02À\x05¸‰\x06…AÕ\x0e€\x1cIþ{Ⱥ	\0\x13\x01$„b\x10\x11\0\b>5k3Õò\x06ò\x06!T”€ÿ@4ˆ\x06ô\x05„A@‘\f\x1aL’\0\x05´\x1fN\x02ÿ\x03€ÜN£\0$€
IýÀ½€@À\x11.\x15´¾<mlüD\0\0DB`€s„"\x14#\0	…A>\x15k3H\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV‘èÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV’\boüÿ\x01\x01û\0\x02\0iñ\x03Áf´_Â\x04.%$gÊa<-Xiñ\x04€\bÝ"Õ[\0\x0e\0,Iý¦°€àÀ9.%$gÂ#<-yò\0^\0,\0!\0,Ú\x1c" \x01\x15N&\0&<-I\fÂ\x06.%$f„L"@\v<-Zc€\aÝ"@ \x04	\x12#\x15Õ\x14<-ZcÝ"\x12\x03\x15Õ\x0eð\x02È\x0eº\x0e\0!\x01PÊ\x0e<-Zc€\aÝ"\x12\x03\x15Õ\añ\x02Á\x05\x02#€H\x12#\x0fô\x01Ì\x03ð\aÀ\x19ñ\x03Á\x17´_Â\x04.%$gÊ\x06<-Xiñ\x04€\bÝ".%çü„L"@	<-z\x04„ \!\0\x0f@ ˆ\x1aÎ\x03€fÕ\x03\03\0,@e(\x1a„\x06„!D tÀ€ŠIþ‰h’\0€\x06ì$:oª„Ýž:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV“dÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV“–oüÿ\x01\x01û\0\x02˜¼—€IÿÊQ€\x06Iý\:o˜„Ýž’\0:oª¼ïì„à\0„\f€ÁUÁ\0ÿ\x10\x7f€\x0fL\x10\x01\x14æ-è\v„*L`€øæËNò\x01\x17æÇNò\x01\x12Õ	æ/Nó\0îæ2Nó\x01\x1cH\0\x01	Dp\0\x18„\x06D\x12\0\0D uŠ€|€†Bs\x1c$Iþ‹\x1e>=‚À€\b€&P/€\x0f™ûIýT\x1f@€\bIýSÕÀ\x10\0\x03€\x0eÈ\r\0\x04\0<À
.\x05çÁÀ\a<\x1d`ó.\x05ƒà8 ƒ\x01„\x05L`@	.\x05ƒ,–\x04À\x04“A@¥\0\x13 ü€'œº€
Ý#DWyÀõD\x12\0\0D uŠ€j€† „\x06Ý%¤ø¥9õ\x01„\x06D\x12\0\0D uŠÝ%\0\x0f€\x0f„!\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV”îÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV•\x18oüÿ\x01\x01û\0\x02L\0À\x05„@</møN“\x01\x02\0\x13€\x0eN\x12\0þÀ\x04\x02$\0\x16¬¹„bLaÀ*\0\x0f€\x0fÈ6.\x05ƒ,–\x04À\x0e<\x12Ûð<\x02Ûî@\x10Œ\fà é\x06¤x„\vB\0€$Õ$.\x05ƒD–\x04À\v<\x02Ûð<\x12Ûî˜\0à\x01é\x04¤8”\x02Õ\x16<2Û<\x12ÛðÕ\f„\x03L`@\x0f\0\x0f€\x0fÈ\v<2Ü\0¤¸<\x12Ü\x01B\x01ˆ$@\0\x046¬9€G€\b€&IÿÀNc\0¸OÂ\0¶<\rfû<\x1dfüœ\x02„A–\x01L\x11@\x05˜\0œ\x02–\x01>\x1d›à Ï„AL1@\x06 N˜IœJÕ\x02 N˜\x01–\x01N¢\0\x05â
Nò\0˜>m‚À\x043\0
€
P\x13\0\x18P#\0\x1aÝ#N\x03\0Œ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV–pÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV–oüÿ\x01\x01û\0\x02\0\x03\0$T\x10\0\x02É
X\0\0\x02\x10\x03\0$\0\x04\0=œ\x01\x10\x04\0=„\x01\x10\x04\0>„!€\bP#\0\x18IÿÀXH\0\0s„\0Iþ—µIÿ»\a„\x7f<?e$€\x1c„!Iþ	Ò„\0\x10\x04\0@–ñ€œ„\x06D\x12\0\0D uˆÕ\b€„\x06D\x12\0\0D u‰„`IþŠ$… ÕP.\x05´¾„!Iþ	·\x10t\0@„\x06D\x12\0\0D u„`„‹Õî´h„\x01\x10t\0@L0@\b\0\x04\0<\0\x14\0;L\x10\0
.\x15ƒ,–LÉ\x05.\x05ƒD–\x04À\f.\x04¦PÀ\x1f„\0F\x10\0X\x10ŒÌIÿS‡Õ\x14<}`íTs€\x02Ï\x12<\x1dZ€„\x01Ý!.\x15$|V\x10€\x02@\x03„\x1a„/L`À\x06À\x04D\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV˜\0ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV˜'oüÿ\x01\x01û\0\x02\0\x1fÕ\x02… €†„\x06D\x12\0\0D uŒ@4€\x13Iþ‰Ó€	ì\x14:oª„Ýž:oœ¼ïü€à€ÁIý+1’\0\0\x03‚F§±>-%œ8a\0\b„\0ì\x04:oœ„Ýž;ÿü¼ïüIü¡-’\0ì\x04;ÿü„Ýž:o¤¼ïü!€À\0\x10\x02FP\x04€\x01¦À>-%œ81\x04\b\0t€\0\0€\0\0ž9–@æ"è
”\x03P\x10\x01˜˜q„\bP$€\x02Iýúk\0\x03\x02Y„!L\0À\x1e<-XrF0\b\0@!\f\x02ÊVâèè\x05æâè\x03˜yÕ2D\0\0=IüÜ»À\x06€\x06P\x13\x01˜Iÿÿ½€\x06„ Iý4{ÕA´\x06„!L\0€\b„DL\x01\0\x05„hL\x01À\x0f\0\x13\x02[„L\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV™ƒÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV™¤oüÿ\x01\x01û\0\x02T\x10€\fL\x11@\b€)€\x06„@Iý)–Õ*\x04#\0’Ê\x12„aL\x01€\x10âèè\aæâè\x05˜{–H€\x06Õ\x16D\0\03€&Iý5\bÕ\x16\0\x03\x02[„,T\0\0\fL\0€\x10âèè
æâè\bœy–H€\x06„@Iý*þÕ\x04€\x06Iý:ê´\x06„AL\x01\0\v„dL\x01€\b„(L\0€\x05\x01àèé\a\0\x03\x02[X\0\0\x04\x10\x03\x02[„\0ì\x04:o¤„Ýž:o¤¼ïü.5çÁ€Á—ÀÃ\x1f<\ryò\0\0\0,L\x03À\x1a€\aIý£õ\0À\x14<\x1dI\fÁ\x06.\x15$f„AL\x11@\b<\x1dZc€\bÝ!’\x01Õ\x04<\x1dZcÝ!\x12\x04\x01\x15€\a€&Iý°\x0e ÇB€\aIý£×\0À=\x04\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVšøÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV›\x1doüÿ\x01\x01û\0\x02\0’É:€\x01Iþ–U>\x1d'ð8\0ž
Æ2ž5æ\x04è\x05\x04\x04\0\x06È	Õ+D \0\x17La\0(„\fL`\0%„MLa\0"D\0\0&L`\0\x1eD \07La\0\x1aœ\x06L`\0\x17œ–La\0\x14\0\x14\x02F.5jy<mlü>-(8Œ\x1881\x04\bBc€s„\0Iþ–!’\0¶\x06€	ì\x04:o¤„Ýž;ÿü¼ïüIüª^[’\0ì\x04;ÿü„Ýž:o ¼ïÀ§È€À\0€\x02‚„\x01Lp\0
„CLq\0\a„\x05Lp\0\x04Œ\x19ÕG.\x15k:.\x05k;˜\b–\0À\x0fæâé\r.\x05µ:–\x04È\x03„!Õ\b<\x1dXZ€\x06Ý!–@Õ\x02€'\x04#\0“€\x06Iýˍ\0\x03\x02‚L\x03€\b\x10s\x02‚\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVœqÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVœ’oüÿ\x01\x01û\0\x02€'€\x06IýÍ]\03\x02‚€\x03L\x04\0\x1dã\0è\x1a\x02\x13\x01^[„JL\x11@\x16\0C\x02H\x10\x03\x02ƒ\x10C\x02_\0\x03\x02F€?\x10?€\x0fD0\0.\x10O€\b\x12?€\x0eIýcl’\0„\0ì@:o „Ýž:oª¼ïìPo€\f€\x06…@IúÎ7\x14¯€\x01EÀ\0\x14Õ:.ej‘>\r¡äBcp$™°¡ò\x04ƒ\0\x01Ç\x04\x04£\0\x03Õ\x05N‚\0\x04 sñ¦rð\x03>\x15j‘IúÎ0¦q„A”\x14@ \x04^[®°N‚\0\x05ð\x01Ý(Õ\bÇ\x04€
Ý'Õ\x04Œ\x13IüÚÖP\x0f€\fIúÎ\x04¦pD\0\0\x10L\x10@\b„ ®p¨q¨r¨s®r.\x15j‘Á
B\x10ð$>\r¡ä˜H \fIþzœÈ¼ð\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVíÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVž\x12oüÿ\x01\x01û\0\x02IúÎ\0ì\x14:oª„Ýž:oœ¼ïŒ€ÀÈ\x04D\0\0\x12Õb\x02\0\x01\r„'L\0€3Ps\x02@€\aIýx`È\x04D\0\0\x17ÕT\x04\x03\0\bÀ[\0\x03\x02iÈ\x02ÕK.\x15³ÞT\x10†\bÁR.\x05³à–\x04ÀN\0\x03\x01®T\0\0\bÀI\0\x03\x01˜–\x04ÀE\0\x03\x01­T\0\0\x04À\b€\a„ P/€\x04IýÙºÕ9\0\x03\x02dÈ6„\fÕ*\0#\x02Ê\f<\rZöD\x15P4€f€‚„¡Iý÷€\x10\x03\x02„\0D\x10\x04\x11IüÚK\0\x13\x02H„
\x10\x03\x02a\x10\x13\x02`€\x06IýtÓÈ\x11„\x06\x10\x03\x02a\0\x13\x02H€\x06Iýu Õ\bD\0\0#D\x10\x04\x11IüÚ1’\0„\0ìt:oœ„Ýž\x04\x03\0˜@\0 \b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVŸkÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVŸ›oüÿ\x01\x01û\0\x02’\x10ÀÈÕî:oœ¼ïü\x04 \0%€ÀT!\0\x02Â\x06<-XFÝ"€àÕ\x16Iýƒì€àÈ\x12€\x06IýÖ§È\x0e\0#\x02F„\fB!\0$>=(€P\x13\x02\x04˜“Iýø$’\0€\aì\x04:oœ„Ýž:o¤¼ïÜ\x04 \0%—ÈT\x11\0\x02€ÀÁ\rX!\0\x04„ \x10\x10\x02“\x14 \0%<-X=€'Ý"Õ?€\x1fIþ„™D\0\0\x10€_P\x13\x01°Iý÷þ€\x06IýÖqÀ\x04>\r›tÕ\x03P\x03\x01àP€\x1cPŸ€\x10€ €h€\x1fP#\x02@€‰IýšC€H„\x04P\x13\x02\0Iý÷ã€\x06IýÖVÈ\f\0\x13\x02F„\fB\x10€$>-(€˜J€IIý÷ÔD\0\0+\x10\x03\x02b€G€\x06„+€\x7f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV üÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¡+oüÿ\x01\x01û\0\x02Iý{\x06ì$:o¤„Ýž:o¤¼ïü„\x02„ Iþñ N\x02\0ˆ´ÀNb\0…\0\0\0\vIý¡É€à\0\x04€\vIþ¦\x02€ Ï^[È\f\x14\x04€\x01\x02$€\x06„\x02IþŸšD€\0\x1fH\0\0o<-Y/€&Ý"\0\x14€\f\0D à\x01€\x06„aIÿÐ\x01ÕW\0\x14€\f€\x06D ÿü„aIÿÏø¦0\x06–\x04\x10\x03‚^\bd\0\x01’Á\ó\0|é\x06\b\x04\0\x01@c \b™°\x02\x03\r„'L\0€:´\aŒ9L\0€6\ó\0\x7fè\x10\ó\0Lè\x06>\rKX8\0\x1a\x02È\b€\a–pD \0\x1aIýc\x1aÕ#€\x06€(€GIý\Š\ó\0|è\x14>\rKX8 \x1a\x02€(€\aÝ"\0À\x13\0\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¢Œÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¢¬oüÿ\x01\x01û\0\x02‚^–p\x10\x03‚_€H€\aIýbÿÕ	€(€\x06€GIý\E\0Õ\x02…\0\x02$€\x06„\x02„ IþŸ,’\0Õ\x02…\0€\bì\x04:o¤„Ýž;ÿü¼ïüIü»ÿ’\0ì\x04;ÿü„Ýž;ÿü¼ïü–\x01Iüµ”ì\x04;ÿü„Ýž:oœ¼ïü—À<\rx\aÈ\x03Iÿ\x01!>mà\x10 3„"L\0€\x0fæ\x03è\x05„!L\0ÀIÕO„#L\0€\x0e„$L\0ÀBÕ=Iÿ¶~È\x04Iÿ\0‘ÕB„\x01Õ6Œ2LpÀ>F\x18\x10\x02\x02#\0\x0f\x04\x10€\x0fR1\x019â#é\x05R1\x04ââaè\x03„\0Õ\x06R1\x02qâ#è\a„\x01Iÿ:@Iÿ\0’Õ
R!\x03ªâ"è\x02„\x02Iÿ:6Iÿ\0ˆ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¤\x02ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¤.oüÿ\x01\x01û\0\x02<mY\aIÿ:,€`„!„\x04D 2\x04Ý&Iÿ\0D„$Õ
„\x03¨3Õ	<\x1dYMD\0\0PÝ!„!<\x1fx\a<\rx\a„!L\0À
Iÿ:\x18„)L\0À\x05Iÿ\0}’\0ì\x04:oœ„Ýž;ÿü¼ïü.U´¾\0@\0,P \0\x1cÔ\x05Iÿ\x040’\0Õ\x0f \0\0"–Ê®\x17„! \x01\0\x05\x10\x11\0\x13®\x16 \x01\0\x04®\x15®Ôì\x04;ÿü„Ýž;ÿü¼ïüIü·¿’\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü¹¨ì\x04;ÿü„Ýž;ÿü¼ïüIü ¹’\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü²®ì\x04;ÿü„Ýž;ÿü¼ïüIÿ\x01Ý’\0<\x1dY\x1d„\x01Ý!ì\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¥„ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¥«oüÿ\x01\x01û\0\x02;ÿü„Ýž;ÿü¼ïüIü¯‹’\0ì\x04;ÿü„Ýž;ÿü¼ïüIüºE’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü¦	’\0ì\x04;ÿü„Ýž:o¤¼ïü\0€ÁT‘\0ÿÀtÁs\0\x10\x017€I„\x03Iþœ«€àÈ\bD\0\0QIüØ\x13„\aH\0\0i´\0È\x06D\0\0RIüØ
Õ]„#\x10\x13€	€I€&Iÿ\x04ܧ°„\vL`@\x05D\aí\x14Õ^[„\x06L`@\x05D\aî4Õ\x15„\fL`@\x05D\aí`Õ\x0f„\rL`@\x05D\aìøÕ	„\x02L`@\x05D\aîhÕ\x03D\aî\x10¨9\0\x13€\f´\aD à\x01„`IÿÎP\0\x14\x017„\x03Iþ SP\x04\x019IýôA„\x02L`\0$\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV§\0ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV§!oüÿ\x01\x01û\0\x02„	L`\0!„\x01L`\0\x1eÆ\x1cŒ\x14L`\0\x1aœ\x03L`\0\x17ž\aL`\0\x14„D\0ú\0„ F \0¡X!\x03ø€h€¤IýôÈ\x10\x04\x019Õ\x04D\0\0\x1fÕ\x02„\0ì\x04:o¤„Ýž’\0:oœ¼ïü„\x01„ „KIþœ.À^[´À„\x1f®0„	®1D\0\0)®2F\x12\x01€X\x10†\x11œ3Iü×\fF\x10\x01Rœ7X\x10XIü×\x05„\x01„ Iþ \x01ì\x04:oœ„Ýž’\0;ÿü¼ïüIü¯\x11’\0ì\x04;ÿü„Ýž:oœ¼ïü€À\x04\0\0/T\0\0\x03À .u$i„\x01Lp@\x1c„€>E$i€\a„ „GIþ›îÀ\x12´ „\x1f®\b„\x05®	D\0\0*®
œ\v\x04\x13\0/Iü\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¨vÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¨¡oüÿ\x01\x01û\0\x02Ö΀\a„ IþŸÊ€\x06IþÌ©€\x06Iþ˺\0\x03\x017Iÿ´œ€\x06IÿÿÃ’\0ì\x04:oœ„Ýž:o¨¼T€€ÿ"€ÀNƒ\0'€(„AIþ±œ€à\x023\0…„\x06„(D r\x06€‡Iþ‚^„\x1fLp@\f<MY	\0\x13\x017€HD\0p\x02€hÝ$Õ\x02ù\x02\x13\0\x1a€	œIIþvŠ¨5H\0\0’P\x14\x7fÿ–Hæ"é\x04„àH\0\0ž€H€iP\x10\0\x14IÿñÇ\x02\x13\0Š„@˜A–I\x12\x13\0Š€\x06Iþ±c€à\x023\0…D r\x06„\x06„(€‡Iþ‚%„_Lq@\b´\x06B\00	¶\x06H\0\0‹ 5€'IþvL¨6„!B\0\0	IþvF¨4€)Iþvš\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV©õÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVª5oüÿ\x01\x01û\0\x02À\x1f€i€\x06P\x13\0\x10„BIÿñ”\0\x02\x03\0Šˆ\b\x12\x03\0ŠÕ
 5\x02\x13\0^[\x01Iþv9¨5@„\0\x13Nƒÿ÷ 5€'Iþv$¨6´\x06T\x10\0\x04É\x10\0\x03\03™ÿ”\x02™ø 6€'Iþv\x12´&¨7X\0\0¶\x06Õ:\x04\x13\0/–LÉ\x05@\x108\b’?Á.@\0<\b’\x1f\x04#\0\x12À\x17¤\x11\x12\x03\0^[¤S\x12\x13\0\x1d\x02\x13\0\x1a¤\x12\x12\x03\0\x1c 5¤’\x12#\0ŒIþuý´&¨5B\0À	¶\x06 5€'Iþuè¨6B\0\0	„!Iþuâ\0\x13\03™ÿ”J¨4™ùÕÂB\00	¶\x06™ÿ\03\x017¡5„\x06„(D r\x02Iþš<-YL\x02\x13\0…€\aÝ"¡ô€\a:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV« ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV«Íoüÿ\x01\x01û\0\x02¨„Ýž’\0;ÿü¼ïü<\rmú>\x1dß „FP\0\x01HIÿ\x03 Iþ§úì\x04;ÿü„Ýž;ÿü¼ïü–H–\0Iü½o’\0ì\x04;ÿü„Ýž:o¨¼€À<}lü\0\x03\x017D\x10\0DBp\x04s\x04#€\x0f<­["\0\x11\0>Á\x04…\0H\0\0qIÿÇ9À\x10´\0„!¦\0L\0À\f´\x06B\x10L\vÁ\aB\0L	¶\x06.\x05$jÈ'\0\x13\x017„\x03D \0^[„aIþ!\0À\a<-Sô€(€\x06Ý"Õ'€\x06Iþ¢¨À\x13.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01\x02#\0’\0\x13\x017–\0„aIþ\x05\0È\x11€\aIÿ\0\\x04\x13€	D\0\0 \x10\0€\b„\x01\x04\x13€	…\0\x10\0€	\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV­1ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV­\oüÿ\x01\x01û\0\x02Õ(D\0\0!\x14ƒ€	\x10\x04\0\b\0\x04\0	\x04\x13€	„C\x10\0€	L\x01@\x17´(„E¦HL\x11@\x05\x04\x13€\x0fÕ\f\0\x03\x016„AL\x01@
„\vL\x10@\a\x04\x13€\x0f„\x05\x14\0€	„\x01\x10\x03\x01>\0\x13\x017„\x03Iþ—íÀ\x15.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01\0\x13\x017–\0Iþ—ßÈ\x05€\x06Iþ¢GÈ\x03… Õ\x02…!<\rY%–\x04À\x11\x04\x15\0\a\0\x05\x017P ÿú„ Iþ\x05Ä€ €
IþuL„ @€^[\x04\x03€\x0f„L\x10\0A sL\x11@\x06´\x06X\0\x01\0¶\x06\03\x017Nƒ\0\x04€ˆÕ\x03\0D\0	„\x06„!D sBIþ€£\0\x13\x017„\x03Iÿÿ$È\x13.\x14¢œ.\x04¢Ÿ˜IœK\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV®¸ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV®ëoüÿ\x01\x01û\0\x02˜A˜\x01\0\x13\x017–\0Iÿÿ\x16À\x06€\x06Iþ¡þÀ\x02…! 2„,L\0À\a´\x06T\0\x01\0@\0\x1a\x04\x03€\x0f\x10\0A:o¨„Ýž:o ¼—À<-Sõ€\a€ÁÝ"È\x04D s\x02Õ\x15„\x05Lp\0F„$Lp€\x05D s\x05ÕA\0\x03\x016À6€\x06IþÀ!„!L\0À1D s\bÎ"€fÕ"<\x1dS·€\x06Ý!„\x01>\x05$j<\x1dSó€\x06Ý!>u$j\x02C\0†\03\x017„\x06„"D s\x06Õ\x06\03\x017„\x06„"„Iþ‚0„\x01Õ	\03\x017„\x06„"„ŸIþ‚'„\0:o „Ýž<o["\0s\x016ÏßÕÑD s\x04Îä€fÕä;ÿü¼ïüIüº}’\0ì\x04;ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV°Qÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV°zoüÿ\x01\x01û\0\x02ü„Ýž:o˜¼€ÀIþáq„\vL`\0\x05„/L`À\x14.\x05$–„!L\0À\x0fF\0 \x18.\x15$tœI–H>\x15$t\ð€`é\x03Iÿ¼Å:o˜„Ýž;ÿü¼ïü–\0Iü¨Ôì\x04;ÿü„Ýž;ÿü¼ïü–\0Iüšì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü™ªì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü› ì\x04;ÿü„Ýž:oª¼ïô„àD€\0ÿPo€\x04GÀ\0§YÎ\x06\x10€\a€&„@òIÿÿæ’\0ñ\x01T\0€\x04–LÁ\x04€\aÝ<Õ\x10T£€ÿÀ\rN¢\0	€\bIÿÿÁD\0\0$L \0\x05œ9Iÿÿº\x01ùD \0%T„\0ÿLq\x7fÜì\f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV±òÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV²#oüÿ\x01\x01û\0\x02:oª„Ýž;ÿü¼ïü–\0IüšŒì\x04;ÿü„Ýž:o ¼€@\x04\0\0\x0f\x01\0`\08\0q\0,\ó\0%èLÂK\0\x01\0.ÀHIÿ\x17K.\x14¢œâáè\x03„ Õ\x06.$¢Ÿ˜Q@\x13„\a„DL\0\x05„§L‚À\x10Á\x0e>-'t8A\x1d\x11„c€ BR\fs„„@2–81\x1d	„EL\0\x1d„§L‚€\x10„\x04L€@\x1cÁ\x1a>\r't8\0\x1d\x11^ð\x7f±é\x13€\x06„!Õ\x03€\x06„ ŒK>=ªÔ>M©xIÿ¯^[Õ\x06€@€&„\x01Iÿ°g€\x06Iÿÿ :o „Ýž’\0:o˜¼<m[$Æ\x1c\x04\x13\0\x0f„\a\x14\0€\bF\b\x10\0\x04\0\x03ÀB\0x\vÈ\b€\x06„%Iÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV³xÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV³šoüÿ\x01\x01û\0\x02ÿ‘€\x06IþÖ\x04„@</[$€\x06IþÔÄ’\0Õ\x06<\x1dYMD\0\x01\x18Ý!:o˜„Ýž;ÿü¼ïüIüº\a’\0ì\x04;ÿü„Ýž:oª¼ïô<\x1d[	>\rkIIýð<\rY%T\0\x04\0À\a>\r®ŒIÿË\x12IÿÿäIÿÖtÀN.D¢œ<-Xr<=XÏôB!h\v>\r¨\x16>\x1d%\Ý#¶\x1f„ÀEůœ>­”ÜDp\0DÕ+Ý<À(\x04\x10\0’É%´ D.ÿú@\x10ˆ\x02É\x1f\0\x10\x01¬T\x10€\bÁ\x1a´?É\x0f\0 \x02F<\x1dlüB\x11\x1csD \b\0\x04\x10€\x0e\x02\x10€’L\x11@\v\0\x10\x02F8\x15\x06\x02B\x10ô\vÉ\x03Iÿò)±ñ\x01–0âÁéÓF\0 \x1c.\x15\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV´ñÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVµ\x19oüÿ\x01\x01û\0\x02kG’"”J>\x15kGì\f:oª„Ýž;ÿü¼ïü–\x01Iü´&ì\x04;ÿü„Ýž;ÿü¼ïüIü¯9’\0ì\x04;ÿü„Ýž:oª¼ïì.…ßÍ<\rwï>=³¼Po€\b„@PQ€Ô€&T„\0\x01\x12/€\x02¶_@q \x1a@r ^[IþÑ,<-S“¦pT!\x02\0Â
<\rSŒT\0\0\x10À\x05D\01©Iþ~^[¦0„!L\0€\rÀ\b„BL\x01\0\f„fL\x01ÁõÕ\f>\x05ßÜÕ\f>\x05ßÜÕ\x04„#>\x15ßÜ…\0Õ\x05„">\x15ßÜ…\x01P¯€\b\0\x15\0\x03>\rßàIþÑê\0\x15\0\x03>mßØžN\0¥\0\x01¦4… ®v„!\x10£\0\x05·&\x10“\06L\0À5ŒÎ€&\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¶sÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¶œoüÿ\x01\x01û\0\x02„F€\x1fIûjº§r¦q§:¦9@RÀ\b@\x10 \b@B@\b@\0 \b¦ð¦¸˜i˜ ˜K˜\x02L\x10@\x18¦s¦;L\x10@\x14¦5\0“€\x05¦´¦|@\0 \b@” \b˜\x02‰!@”€\x03@”€\x13\”€\x01Õ\x02… T”€ÿ/ÅßÔOÂ\0\x05Iþ\x15ƒ€.\x05j²„AL\x01@\x11>\rà\bœDIþ’¬€ –Œ>\x15à\x0eÂ\x06B\x10ˆ\vœJ>\x15ßÝ.\x15µõ„aL\x11€
Á\x12„\x02L\x10\0&„CL\x11@?Õ\x18IþÍ€ €ÀÈ\x06\0\x0f€\b„aL\x01À5\0\x0f€\b„AL\x01@-L@-É).\x05µõL\x04À&Õ&Iþ¶€ÀÈ\x06\0\x0f€\b„aL\x01À\x1f.eßÜ„\x01L`\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV·ûÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¸%oüÿ\x01\x01û\0\x02@\x17.\x05à\x0eT\0\0\x02È\x04„!LÀ\x06„ <\x1fwöÕ
\0\x0f€
€?Iÿ®±À\x06<owöÕ\x04„ÁÕ\x02„À.\x05€ „AL\x01@M.\x15€¢L\x10\0ILa@G\0\x0f€\bÀ\x04„bL\x01À2>ßØ\0¤€\x06„ €	\x10\x1f€\x0fIý	•P\x14€\x0e€JP\x0f€\x0fIý\b\x1cÀ\x1f>m€ \0\x7f€\x0f¦6L\x03€\x10¯ö„á„@„\x01¯òF\x10\0 X\x10Š8€b€‚€ Iýï4<MY\a\0?€\x0f„\x04„!D OàÕ\r.\x15€ „\x01L\x10@\f\0?€\b<MY\aD Oá„\x04Ý$H\0\0ã„!L€À–Ld@”.\x05ßÌL\x03@<¢ïäA@¥\0\x13<ªïäN£\0‡F\x18\x10\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¹€ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¹¸oüÿ\x01\x01û\0\x02\x04€O@”œ\b“7Iÿ3Ãâ	é\x03N“\0
<\rwÏ„ œ\x01<\x0fwÏH\0\0n.\x05®íÀ\x04€*H\0\0h.\x05ßÍæ\x02é3.%à\x0eT\x01\0\x03À\x0fT\x01\0\x10È\f>}ßØ<=wðT\0ÏB\x01\b\vP\x13€0Õ\x12Iÿ®\x1e„aL\x01À\x19>}ßØ\0ƒ€6\0\x0f€	<=wðT„\0ÏP\x13€\b\x10ƒ€6„@\x1cIþ¥@\0 \x04\x10\x03€6Õ
<\rwðÕ\x03<\rwð€'„FIûio>}ß´\0?€	 ;„F\x103€\x1a˜\x02>\x1dßàIûib :D\x10 \0IÿÓ-„\x03D\x10 \0¨<<\x1fk©IþÔ%<\rS“T\0\x02\0À\v<\rSŒT\0\0\x10À\x06€)D\01§Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV»\x12ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV»`oüÿ\x01\x01û\0\x02|l„!„A<*ïäÉ\x19IþÍÓ<\x1dZ\r„\0Ý!<\rS“„bT\0\x02\0<?wñÀ\v<\rSŒT\0\0\x10À\x06D\01¨€&Iþ|OOÃ\0\x1d„\x01L`@\x1a<\rwïIþÎ\<\rwï\0\x10\0/É\b.\x1dj’.\rj“˜H!Õ\x03 \x10\0 >\rßØ®G<\x1dwžÝ!<=wÊ<-S“œÙ<?wÊT!\0\x02<\x1dwñÂ
<\rSŒT\0\0\x10À\x05D\01ªIþ|\x1dì\x14:oª„Ýž’\0:o¨¼F(\x10\0P`\0\x1c„\x02\x01\x04‘\0\vL\x10\0\a<\rkÜ„&L\0À\x1fF\b\x10\0\x04\x10\0\fB\x10À\vÁ\x03H\0\0ßB”è\vN’\x02\x17<-k\x19„뜑</k\x19„E 7\00\x01K\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¼µÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¼Ýoüÿ\x01\x01û\0\x02B\x01ˆs\x10\x10\x01NH\0\x02\vTD\0\x0fD0Í\x18@1\x0e–ÜË\x1aD \0\x17L\06„¬L‚€3„\rL€\00D\x10\0&L€€,D \07L\0(NL‚€%œ\x16L€A¿Õ  7\x02\x10\0šœI\x12\x10\0š.\x05$n„!L\0€\x06.\x05$dL\0À\x12 7\0\x10\x01mÁ\r\0 \x01K„%B\x01\x04s„ P\0\x01H®F„ëH\0\x01Ë@\x14´\b’=N\x12\x01e<\r[\x18„£Ø\v 7„E\0P\x01KB\x14¼\vB\x02ˆs\x10\x10\x01O w…E\0 K€\x01B\x01(sBT¼\v\0\0\x01OÐ]Ê\<\r[\x18„¦ÐX„§ÐV„¨ÐT<\x1dk\x1aB”è\vœI<\x1fk\x1a\”€\x01 7\0\x10\x01KB\0¨s\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¾2ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¾Woüÿ\x01\x01û\0\x02\x01N\0\x03\0\x10¡÷Iý˜“ w\0\x10mÁ)\x04s€\x0fÏ&\x04\0’N“\0#<=X»€(P\x03\x7fä„FÝ#€àD\x10\0\x17 7LpÀ	\0\x10\x01KB\0¨s\x10\x01NÕ\x0f\0\x10\x01KB\0¨s„!\x10\x10\x01N<-XºP\x03\x7fä€(Ý"„æ<\x1dS’T\x10€\x04N\x12\x01[<\rSŒT\0\0\bN\x02\x01U€(D\0\x10!H\0\0ìF\b\x10\0\x04\0\0\fB\0@\vÀ^[„\x05B\x11\0s„\0P\x10H®\x0e<\x1dS’T\x10€\x04N\x12\x01:<\rSŒT\0\0\bN\x02\x014€(D\0\x10#Iþ{\x10H\0\x01-B\x04è\vT¤ƒÿÈ\v@\x04¬\b’\x1eÈRDPÏ\x18@B\x0e—$ÄL„\x05B\x11\0s„\0P\x10H®\x0eÃ\a 7\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV¿Âÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV¿äoüÿ\x01\x01û\0\x02\x02\x10\0›œI\x12\x10\0›<\x1dk\x19TE\0ÿœI<\x1fk\x19<]X˜„$P\x03\x7fä„@T4\0ÿÝ%<\x1dS’T\x10€\x04Á\v<\rSŒT\0\0\bÀ\x06€(D\0\x10 IþzÒ<\r[\x18„#L\0À	@”¬\b“>L\0\x04„äÕ\x02„ë 7\0\x10\x01KN\x12\0á\0 \x01IN#\0Ý„EB\0ˆs„!\x10\x10\x01NH\0\0Ñ<=[\x18„‡L2@\f„£Ð	„\x05B\x11\0s„\x01\x10\0NH\0\0Â\00GË\x10T”ƒÿN’\0\r„ƒL\x02\0
„\x05B\x11\0s„è\x100NH\0\0´<=X»€(P\x03\x7fä„DÝ#€à„¤ 7×\x1a\0 \x01K„%B\x01\x04s„ P\0\x01H®F<\x1dS’@\x10”\x02N\x12\0š\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÁAÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÁzoüÿ\x01\x01û\0\x02<\rSŒT\0\0\bN\x02\0”€(D\0\x10$Õ+\0\x10\x01KÉ\a\0\x10\x01OV\x10€\x01\x10\x10\x01O 7„%\0 \x01KTE\0ÿB\x01\x04s„!\x10\x10\x01N<]X˜P\x03\x7fä„'„@T4\0ÿÝ%<\x1dS’T\x10€\x04Ám<\rSŒT\0\0\bÀh€(D\0\x10\x1fIþzCÕb ·\0A\x01K@\x04¬\b„eB"\fs’\x1e„\x10\x11\x01NL\x02@\x10 wB$¼\v\0\x10lL €	<\x1dkg•ä˜L<\x1fkgÕFB\x14è\vÉ\x02È\x0e<\x1dk\x19„ëœI<\x1fk\x19 7\x02\x10\0›œI\x12\x10\0›Õ5 7B”¼\v\”€\x01\x10\x01lÕ) 7\0\x10\x01KÉ%@\x14´\b’=Á\x10\x05ç\x04è\r.\x15k;É
<-[\x18„c\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÂæÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÃ\voüÿ\x01\x01û\0\x02L!€\x06\x10\x10\x01N„èÕ\x02„ä 7„%\0 \x01KB”¼\vB\x01\x04sP\0\x01H¦GLÀ	„ ®FÕ\x05„äÕ\x03Dp\0\x16€\a:o¨„Ýž’\0;ÿü¼ïü–\0Iü“.ì\x04;ÿü„Ýž:\x0f”<:o ¼ïèPo€,P€@:\x13\x14 €€€ÿ:\x04\f\x04:\x03Œ$€\x04:\x13\x14\0µ\b·\aIü®ú’\0ì\x18:o „ì\x18Ýž:oª¼ï´\0@\0!>-³¼P`\0 P€D´\0P1\0Ô—$€(@q\x10\x1a@q^[IþÌ \0\x04\0\x01P£\x7fô®2P\x1f€\x1c„F€
Iþûs<\x1dS“\0$\0\0T\x10„\0Á\v<\rSŒT\0\0\x10À\x06D\01È„ IþyêQÏ€D\0\x0e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÄbÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÄ›oüÿ\x01\x01û\0\x02\0\0æ\x02Nò\x01ö\0\x1e\0\x03P\x0f€\x1cIþÍg.\x05µöÀ,Iþ‹´\0“\0\x06\0N’\0#P\x13\x7fø€
IþŽpT\x10\0\x03®7Á\aB\b\v"T”€ÿÕ\x03\0ž\0\x01QÏ€\x1c\0\x0f€E€<IÿÿyÀkN‚\x01Ë€
€<„FIþû+Õe\x10“\0\aÕ`¦6À\x06€
P\x13\x7føIþŽJ®7\0“\0\aT\x04€\x03À	B”ˆ\v"T”€ÿP\x13\x7fôÕ\x05\0Ÿ€EP\x1f€\x1c\0ƒ\x7fü\0#\x7fû§J¦	@„@\b@! \b@RÀ\b@\0 \b\0C\x7fú¦ÈˆH˜(˜”˜\x03L A’\0#\x7fý¦\vL A¦\r\0C\x7fÿ¦Œ\03\x7fþ@\x12 \b@\0 \b˜K˜\x02–I–\x01L\x10A}\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÅúÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÆ\x1eoüÿ\x01\x01û\0\x02¦6À\x14P€\x1c\0\x0f€E€(Iÿÿ\x1fÀ\f¦0–\x04L@	€
€(„FIþúÏH\0\x01z¦0L\x04ÁeH\0\x01uN‚\x01a.$¢Ÿ<\rm\x01„ Õ\x14´`œIT1€\x02Ã\r\x043\x7fý\x04@\0RL2@\b\x020\0¦\x02C\x7füLAJP\0\x01dâ"éìH\0\x01Y¦6ÀlIÿª+„!L\0À\x1aQÏ€0:\x0e\f\x04_PO€\x1c:\x05\f$P\x03\x7fà:\x12\x14\0\x05Î\0\0\x15Å\0\0\0£\0\aIÿþÝ@\x05\0\x04®7¦1æ\x02é
\0\x0f€FP\x1f€"IÿþÇ„ @€€^[\0¯€FQÏ€"€
€<Iÿ©òÀ\x06¦7T\0\0\x12@€\0\x1aP/€ \x01ã€\x02¦y§T¦\x13Aï@\b@\x10 \b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÇsÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÇ–oüÿ\x01\x01û\0\x02@RÀ\b@\0 \b§8¦Òˆ>˜(˜L˜\x03L\x10@\x18¦{¦\x15L\x10@\x14¦\x17¦}¦–¦ü@\x10 \b@\0 \b˜K˜\x02–I–\x01L\x10@\x06¦1–\x04L \09€
€<Iÿþ…N\x03\0ØÕ1P\x0f€ \0£€\x02¦ù\0€\0\x04¦ƒ@¥@\b@1 \b@„@\b@! \b§x§\x02ˆjˆH˜Ý˜”L1@¿¦û¦…L1@»¦½§G¦Æ§<@! \b@\x02 \b˜”˜\x03–‘–\x01L @­¦1¦J–\x04L\x10@¨Õ\x03N‚\0¥F\b\x10\x02\x04€\0O@„\x1c\b“\x17Iÿ/\x01â\bé\x03Nƒ\0	<\x1dwÑœI<\x1fwÑH\0\0‘¦1æ\x02éQ¦7T\x10\0\x10ÉMT\0\0\x03È/Iÿ©p„aL\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÈíÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÉ\x10oüÿ\x01\x01û\0\x02€+P\x0f€ \0£€\x02¦¹§D¦C@¥@\b@! \b@RÀ\b@\x10 \b§8¦ÂˆJ˜i˜”˜KL À/¦»¦EL À+¦}§\a¦†¦ü@\x10 \b@\x02 \b˜K˜\x02–I–\x01L\x10@\x1d¦6À\x1a\0\x0f€D„L\x02@\x04IþU§÷\x043\x7fùTs€Ï¯÷T\x04€\x01P\x13\x7fô„@\x1cIþ‹É@\0\x1c\x04®7Õ\a\x04\x03\x7fù€'„FIþù\x04\x03\x7fù„FP\x1f€\x1cœ\x06Iûd\x04\x03\x7føD\x12\0\0IÿÎYF\b\x10\0\x04 \x03ÀB!t	F\x18\x10\x02\x14 \x03À„\0\x14\0€	„\x01\x04\x13\x7føD2\0\0\x10\0€.„\x03\x14\x03\x7fú<\x1dS“T\x10„\0<?k©Á\v<\rSŒT\0\0\x10À\x06€(\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÊdÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÊŠoüÿ\x01\x01û\0\x02D\01ÅIþw‡<-S“\x04\x13\x7fúT!\0\x02Â\x17<\rSŒT\0\0\x10À\x12D\01ÉIþww’\0Õ\f…\x01HÿþŽP\x1f€D¦\b„L\x02\x7fDHÿþ£ìL:oª„Ýž;ÿü¼ïüIü•\x1d’\0ì\x04;ÿü„Ýž:o˜¼ïø€À<MY\a„!„\x04D 0\x01€fÝ$D\0\0~L`\0(D\0\0ÌL`\0$D\0\0îL`\0 D\0\0ÈL`\0\x1cœ\x06L`\0\x19Œ\bL`\0\x16€†<][\x13<mk¨„\0F\x10\0®X\x10ˆÜF \0®X!\bÀD0V	¶ßIúØ\v’\0ì\b:o˜„Ýž:oª¼QÏ€\x18ïì\x04\x10\0\x0f\x15þ\x7fö„J\x04`€\bPp\0(La@+\0€€H„b\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVËëÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÌ\x0foüÿ\x01\x01û\0\x02T„\0ÿLÀ\x19D\x10\0\x19Iþìº<\x1dw¼<=S“œI–Ü<\x1fw¼Ã
<\rSŒT\0\0\x10À\x05D\00iIþvô„Ë }\x10€€H<\x1dw»œI<\x1fw»H\0\x01\x0e„@\x10 €H¡AÅ\x0eF\b\x10\0 ý\x04\x10\x03Ç\0\x01€=B\x10È\vL\x10\0\x04>%$iP\x03ÿØFˆ\x10\0IþËû€ÀÕ\v¦|\x04$\x03ÉÄ\x0e–IÀ\fD\00jIþw-<MS“<\rSŒ—$T\0\0\x10\x04¤\x03ÉF8\x10\0T¥\0\x01X1$N£ÿ焤´\x03LbÀÕB\0\b\vN\x02\0Ñ =\x15þ\x7f÷€*\0\0G\x14>\x7fõP\x04€\x0eT\0\x01øAÿ€\x01€\x1f€I\x15þ\x7føIþøŠF\b\x10\0\x04\x10\x03å\x04\x0e\x7fø€I\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÍdÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÍ‹oüÿ\x01\x01û\0\x02Iþøc„\x01€*P$€8Iþ!\x04>\x7fõN\x02\0“´ÀP\x04€6®1„\x01®2D\0\0#®3„.D\0\0i®4®pF\b\x10\0\x04\x10\x03Ì\x14>\x7fõD„\x1e\œ5Ý(F\b\x10\0\x04\x10\x03ÍP\x03\0	Ý(F\b\x10\0\x04\x10\x03ÎP\x03\0\rÝ(F\b\x10\0\x04\x10\x03ÏP\x03\0\x11Ý(F\b\x10\0\x04\x10\x03ÊP\x03\0\x15Ý(F\b\x10\0\x04\x10\x03ÐP\x03\0\x19Ý(F\b\x10\0\x04\x10\x03ÑP\x03\0\x1dÝ(F\b\x10\0\x04\x10\x03ÅP\x03\0!Ý(F\b\x10\0\x04\x10\x02ƒP\x03\0%Ý(F\b\x10\0\x04\x10\x03ÔP\x03\0)Ý(F\b\x10\0\x04\x10\x03ÈP\x03\0-Ý(\x04>\x7fõP\x03\01´#Ý(D\0\0V\x10\x03\05\x10“\06\x10£\07Õ\x18§	¦Š\x04^\x7fø\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÎÞÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÏ\foüÿ\x01\x01û\0\x02@B \b82¨\0¦K@!@\b@"\b\x04@!\f\x04@\x10à\b@\x11\x04\x04DÝ(@¥\0\x13\x04\x0e\x7fø@\x10(\0P\x05\08˜0ãIéá„\x01„ Iþ“zP\x03ÿØD\x10\0\x1aIþë¢<-S“¦|–”Â
<\rSŒT\0\0\x10À\x05D\00kIþuà\x05þ\x7f÷„Ì }P\x03\x7fõ\x14`€\bæ\x02éf¦>„!L\0À%„DLa\0\x05„fLaÀ\x1f.\x05jÃÀ\b =\0\x10\0AÉ\x17\0\0\0BÈ\x14P\x03ÿØD\x10\0^[Iþëp<\x1dS“–LÁH<\rSŒT\0\0\x10ÀC€&D\00pÕ3F\b\x10\x02\x04`\0O<\rS“•·@\0<\b’\x1f’×À\v<\rSŒT\0\0\x10À\x06D\00r€&Iþu™Iÿ,w\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÐbÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVЇoüÿ\x01\x01û\0\x02â\x06é\x02Î^[P\x03ÿØD\x10\0^[IþëB<=wÒ<-S“œÙ–”<?wÒÂ\x15<\rSŒT\0\0\x10À\x10€&D\00qIþu{Õ
.\x05®íÈ\aD\0\0\x15IþîçIþÍ^[¦>„a>mÞìL\x01À	 3 t˜\x03˜K¨t¨3Õ
P\x03ÿØIþó¨\x04\x03\0\bœ\x01\x14\x03\0\b\x05þ\x7föQþ\x7fè:oª„Ýž:o¤¼ïü<\r[$À\x04<\rZ\x13Ý <m[$<k©Î\x06<\x1dYMD\0\0ˆÝ!\0\x03\0,Iþ–¡€à´\0@\x108\b’?Á\x05Ç\x04B\0D	¶\a<\r[\x13P\0\x7f7æ\vNò\0æ„!@\0€\fT\x10\x01ùN\x13\0¾T\x10\x06\0N\x13\0¸T\0\0\x02N\x02\0×>\x15jÆF\b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÑûÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÒ^[oüÿ\x01\x01û\0\x02\x10\0\x04\x03Æ\x04\x03\0\x0fB”ˆ\vN’\0\x04„*Õ\x02„$\x14\x10\0\b<\x1dS“T\x10€\x04Á\v<\rSŒT\0\0\x10À\x06D\00¤€)IþtýT\x04\0\x06À\x19N’\0\x05€\x06„$Õ\x03€\x06„'Iÿõ¥€\x06Iÿý΀\x06IþÇ\x01Ç	´\aT\x10\x01\x04É\x05À\x04B\0H\b¶\a„ <\x1f[$Iþí©\x04\x03\0\x0f\x04\0\b„\x04L@\x19„"L€À\x16F\b\x10\0 q„C\x04p\x03ÄL\x11\0\x05„\x04L\x10@\x05€\x06IþÉ/€\x06Tc€\aIþÊ°Õ\x02„À.\x05®í„!L\0À\x04H\0\0x+ç"é,<\rk©”ŒL\x01@\fœ\x15Iþî .\x05®í„!L\0À\x04H\0\0fIþÌM„ELa\0\bF\b\x10\0\x04`\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÓyÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÓ¨oüÿ\x01\x01û\0\x02\x03ÄTc\0\aD\x10\x01\0<\rk©L€À	„BL\x01@\x06„ <\x1fkµÕ	D\x10\x01\0L\0€\x06D\0\0\x15Iþï\rÎ\x16.\x05®í„AL\x01@\x03Õ>IþËÌF\b\x10\0\x04\0\x03ÆT\0\0\x03È\x02Õ2D\x10\0Ò<\x1f[\x13Õ2€\x06IþÐ\x06Õ.IþÅ×<-wÈœ‘<\x1d[\x13</wÈD\0\0ÌL\x10@
F\b\x10\0\x04 \x03ÆX!\0\x03\x14 \x03Æ<-S“–”Â\x15<\rSŒT\0\0\x10À\x10D\01jIþtIÕ\v<\x1dYMD\0\0ÉÝ!Iþé<\rYPÝ <\x1dYT„\x05Ý!ì\x04:o¤„Ýž;ÿü¼ïüIü±\x15’\0ì\x04;ÿü„Ýž;ÿü¼ïü–HIüœúì\x04;ÿü„Ýž:o¨¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÕ\0ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÕ$oüÿ\x01\x01û\0\x02–\0—ÈIþ•€€ÀN\x02\0´„\x1f¨7…\0\0£\x017<["€(\0\x03\x017Iý•í\03\x017„\x06„!D s@€‡IþtF.•k„\x01L@\x0fIúúŸL\x04À\b€(D\0\0G€HIúù\x19„ >\x15k.\x05k}T\0\0\x03À\a„ D\0\0P€AIúù\vD\x10\0\x1aLpÀ	´\x06X\0\x01\0¶\x06D\0\0=Õ\x1cž
Lp@\x1c s„\fL\x10@\x06´\x06X\0\x01\0¶\x06´&T\0€\x04È\x0f\x02#\0†.\x05µ\aœ‘à@é\bX\x10\0¶&D\0\0>\x10\x03\x01=´&T\0\0À\x19<-Sµ\0\x13\x01=€\x06Ý"<\r`“„#L\0À9.\x05›ÍÈ5.\x05¶\x17.\x15¶\x16˜\b–\0È.Iÿ²\Õ+\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÖ~ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÖ£oüÿ\x01\x01û\0\x02D\0\0\x1cLp@\x05T\x10\0É\x0e€\x06€'Iÿÿn<\x1dSò€\x06Ý!€\x06Iþ»Ÿ€ÀÀ\x1a<}lü\0\x13\x017\x02“\0^[D\0\0DBp€s<Xn‰)„\0Iþƒ+@”€\x13€@€)€\aÝ(„\0\x14\x03\0\x11<-S³€&„\x04Ý"„\0„?Iý÷¯<-ZQD\x10\0 €
Ý":o¨„Ýž;ÿü¼ïüF\b\x10\0\x04\0\x03ÆT\0\0\x03À\x11„\0Iÿ*3IþÄÏF\b\x10\0\x04\x10\x03ÀB\x10ü	\x14\x10\x03À„ >\x15µ\x13Iþ>ªì\x04;ÿü„Ýž;ÿü¼ïü–HIüæì\x04;ÿü„Ýž:oœ¼ïü€À\0\0\0.„!L\0À\x12F\b\x10\x02„à\x14p\0	„\x05<\x1dY\x1dÝ!F\b\x10\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV×÷ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVØ*oüÿ\x01\x01û\0\x02 DB\x10˜	¨DÕ%F\b\x10\0 ÄF\x18\x10\0X1€@¨Ä\x040€\bDIÿÿ@1\x02\x140€\b„\x02<\x1dY\x1dÝ!\x02s\0\x14D\0\x02q µLp\0\x03ž”F\x18\x10\x02F\b\x10\x02\x14 €\v\x14p\0	>\r³´\00\x01
\x04\x10\0\x0fD \0DB\x11ˆs ±„¨‰\0\x13\0.L\x12@\x06Œ\bIþ‚mÕ\f\x04\x13\0\x0eF\b\x10\0 Š¶@F\b\x10\0\x02\x10€–¨A<\x1dY\x1d„\x05Ý!F\b\x10\x02\x04@\0
\03\0.—%@B@\b@C\x04„\x03„!D \x10‘Iþs
ì\x04:oœ„Ýž;ÿü¼ïü–\0Iü¯ºì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü“ˆì\x04;ÿü„Ýž:oª¼ïôIÿ¢YIþÍ}\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÙ‚ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÙ¦oüÿ\x01\x01û\0\x02„!L\0À\x06IþÁ°H\0\x02UF\x18\x10\x02F\b\x10\x02X\0\0\x18\x04€\x04´@</[\x16@…\0>}c4>mN\x04AÄ \x05@\x0e$\x02T\x10\x04\0Á.D 	\0„$„\x02Iþrœ´'„\rÝ!Iþ%‹<\x1d[\x16F@@\0XB\x02\0@\x10\x04<\x1f[\x16´G¶*„\x0eÝ"\x04\x03\0\x10B\0h\vX„\x04\0<\x1d[\x13N\x02\x02\x01\x04\x03\0\vT\0\0\x04N\x02\x01ûD\0	\x01H\0\0ÓT\x10\0€Á0D 	\b„(„\x02Iþrl´'D\0\0\x10Ý!Iþ+p<\x1d[\x16F0(\0X1‚\0@\x10Œ\x04<\x1f[\x16´G¶*D\0\0\x11Ý"\x04\x03\0\x10B\0l\vX„\0€<\x1d[\x13N\x02\x01Ï\x04\x03\0\vT\0\0\x04N\x02\x01ÉD\0		H\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÚÿÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÛ)oüÿ\x01\x01û\0\x02\0¡T\x10\0@Á1D 	\x04D\x10\0\x10„\x02Iþr9´'D\0\0\x13Ý!Iþ-\x17<\x1d[\x16F@$\0B\x10¤	@\x10\x04<\x1f[\x16´G¶*D\0\0\x14Ý"\x04\x03\0\x10B\0p\vX„\0@<\x1d[\x13N\x02\x01œ\x04\x03\0\vT\0\0\x04N\x02\x01–D\0	\x05H\0\0nT0\x02\0Ã+„\x02D 	\x02€ Iþr\a´'D\0\0\x16Ý!Iþ,]<\x1d[\x16´GB\x10ä\b<\x1f[\x16¶*D\0\0\x17Ý"\x04\x03\0\x10B\0d\vX„\x02\0<\x1d[\x13N\x02\x01n\x04\x03\0\vT\0\0\x04N\x02\x01hD\0	\x03Õ@T\x10\0 ÁAD 	\x06„!„\x02óIþqÙ´'D\0\0\x19Ý!Iþ-{<\r[D„A\0\x10\0.ó\x01L\x11@\f\x04\0\0\x0e„%\0 \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÜ€ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVܧoüÿ\x01\x01û\0\x02\x01KB\x01\x04sP\0\x01H®Æ<\x1d[\x16´GB\x10Ô\b<\x1f[\x16¶*D\0\0\x1aÝ"\x04\x03\0\x10B\0`\vX„\0 <\x1d[\x13N\x02\x01.\x04\x03\0\vT\0\0\x04N\x02\x01(D\0	\aIþqŠH\0\x01"D@€\x10@\0\x10\x02À6D 	\fD\x10\0 „\x02Iþq”´'D\0\0\x1cÝ!IþyÜIþ%¤Iúùê´
´GB\0P\b¶
D0€\x10´*D\0\0\x1dB\x10ü\b¶*@„\f\x04Ý"\x04\x03\0\x10B\0t\v<\x1d[\x13N\x02\0ô\x04\x03\0\vT\0\0\x04N\x02\0îD\0	\rIþqPH\0\0èT\x04€\x0fN\x02\0äIþ$†È
´
F0\0ð@\0\f\x04¶
“$@”\b@”ð\x02UÄ€\x06„„MÂ@-D \b\x04€<„\x01Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÝÿÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÞ!oüÿ\x01\x01û\0\x02qI´'„\aÝ!<\x1dZN„\x01Ý!Iþ%²Iþ-Ê´'„\bÝ!\x04\x03\0\x0fB\0h\vX„\0\x04<\x1d[\x13N\x02\0 \x04\x03\0\vT\0\0\x02N\x02\0šD\0\b\x05Iþq\x0f€<H\0\0šT\x04€\bÀ$D \b\x06„(„\x01Iþq^[´'„
Ý!Iþ%>´'„\vÝ!\x04\x03\0\x0fB\0l\vX„\0\b<\x1d[\x13N\x02\0z\x04\x03\0\vT\0\0\x02ÀtD\0\b\aIþpèH\0\0oT\x04€\x01ÀDF\b\x10\0\x04\0\0\b@\04\b’\x1eÀ\x17\x043\0\x15F\x18\x10\x02F\b\x10`–Ü\x04\x10€\x0e\x04 \0(Ã\v\x04\x03\0\vT\0\0€À\x06–ID\0àIþq-„\x01D \b\0€ Iþp×´'„\x01Ý!<\x1dZN„\0Ý!Iþ&ê´'\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVßzÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVߝoüÿ\x01\x01û\0\x02„\x02Ý!\x04\x03\0\x0fB\0`\vX„\0\x01<\x1d[\x13À4\x04\x03\0\vT\0\0\x02À/D\0\b\x01Iþp¡Õ*T”€\x02N’\06D \b\x02„"„\x01Iþp®´'„\x04Ý!Iþ$\x17´'„\x05Ý!\x04\x03\0\x0fB\0d\vX„\0\x02<\x1d[\x13À\x11\x04\x03\0\vT\0\0\x02À\fD\0\b\x03Iþp|Õ\a„$Õ\x06„(Õ\x04„!Õ\x02„"´
FOÿ\x0fXB\x0fÿ@\x10À\b@\0\x10\x02@\x10€\x04¶*<\rl€„(L\0À\x04IþxÑ<\rl€„HL\x01@\x04… Õ\x05F\b\x10\x02\x04\0\x04@\x04 \x05–\x01@\0$\x02N\x03ýÀ<\rXÎÝ IÿŸèì\f:oª„Ýž;ÿü¼ïüIü“•’\0ì\x04;ÿü„Ýž:oœ¼ïü—€\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVàòÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVá\x12oüÿ\x01\x01û\0\x02€\x06IþÑÑ.\x05$h„!L\0À\aÎ\x05Iÿÿé>e$hì\x04:oœ„Ýž’\0;ÿü¼ïüIüŠ©’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü‰Ÿ’\0ì\x04;ÿü„Ýž:oœ¼ïü€ÀN\x02\0‚.\x15çÁN\x12\0~<\ryò\0\x13\0,\0\0\0,L\x10@v.\x05®õÈr<\rk¨„!L\0€\x11„CL\x01\0\x0eŒ/L\0€\vIÿÿÖÀ\x19<}k¨D \x01\0Lq@\x14<Mk¨D\x10\0\x10„\x03D \x10SœÌIþp!\0\x03\0,Iý\x01„ \x12\x10\x01\x15ÕLIÿÿ±À
<Mk¨D\x10\0\x10„\x03D \x10SœÍÕ&>\r®Ì\0 \0'„!L À#<Mk¨D\x10\x01\0L@À\x14<\x1dlü.U\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVârÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVâ¶oüÿ\x01\x01û\0\x02´¾D0\0DB\x12Œs Á¨C\01€-\0\x10€-L0€\x04\x10 \0!„\x03D\x10\0\x10D \x10SœÎIþoæÕ\x18 q„BL\x11@\b„A>%$g©ƒ„&Õ\x0f„AL\x11@\f.\x15´¾\0#\0,L €\x06©ƒD\x10\0@Õ\x02„ <\rk³„BL\x01@\x15„\x06L\x10@\x12<-Xê€\x06Ý"€ È\f€€D\x10\0\x10„\x03D \x10SœÏIþo¶Õ\x0fÁ\x0e„B</k¦F\b\x10\x02\x04 \0\x0e</I\x10„\x01>\x05$hÕ\x0f.\x05$h„!L\0À\aIÿÿ\x1a„ >\x15$h„ >\x15$g„ €\x01ì\x04:oœ„Ýž:o¨¼>\x1dç„\0`€=Nb\x01Ï\x02\0€(\x04`€\x11IýŒv\0´\0T\0\0\x04N\x03\x01Ã\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVä\rÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVä8oüÿ\x01\x01û\0\x02<\rk·\0\x13\0,\0\0\0,L\x10@\x12>\rƒ°\0 \0C\0\x10\0B˜Q–HÉ\x04\0\0\08È\x05„\0„!Iýðø<\rI\fÀ\x06.\x05$f„!L\0Àl>\r®Ì¡ÃLs@\x18´@„$L €\x14 \x02L\0€\x05„FL\x01@\x0e<MI\vŒ,„\x03D \x10“D0\0ÿIþoGH\0\x01µ>}$,´‡…!LD€\x06„\x02L@@LÕ\x1c@\x14\b„\x03D \x10S€aIþo3\0\x03\0.È\a„\x0fIþcï<\x0fI
Õ\b<\x1dZc€\bÝ!’\x01\x12\x04\x01\x15„"€\aÕ.”C„\x03€aD \x10SIþo\x19F\b\x10\x02\x04\x10\0\x0e<\rI\x10š\b”\x04’\x04æ\x10é\x1d<ŸI\f„@>%$f·'@\x14\b\x043\0\x0e„\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVåŽÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVå´oüÿ\x01\x01û\0\x02\x10!gD \x10S\x04C\0\x0e€a\x10’\x01F´‡Iþn÷Õ\x05>\r$,„!¶ <\ryñ¤@.\x05$xâ è\x17<-`ð„*L À\x05.\x05ƒðÈ\x0f<\x1dyò„\x02\0\x10€,IÿªæÈ\a„A</I\v€àH\0\x01E\0\x13\0,„\x03Iþ…ÖÀ\x0f.\x14¢œ.\x04¢Ÿ˜IœK˜A˜\x01\0\x13\0,–\0Iþ…ÈÈs<\rI\v„BL\x01\0o\0\x03\0.„!L\0ÀCF\b\x10\x02\x04\x10\0\x0e<\rI\x10š\b”\x04’\x04æ\rè7>|¢œ¦x¦;˜IœK˜A˜\x01\0\x13\0,–\0Iþ…µ„!L\0À(\x04\x03\0\x0e\0\0\x01PÀ"\x04\x03\0	„C\0\0\0	L\x01\0\x1c\0\x13\0,€\x02Iþ…¡¦¸¦{˜’œ“˜Š\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVç"ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVçHoüÿ\x01\x01û\0\x02˜Š\0\x13\0,@–\x10Iþ…•@@(\0D\x10\0\x10„\x03D \x10SœÉÕCÎ\x02Õ$F\b\x10\x02\x04\x10\0\x0e<\x1fI\x0f\0\x13\0,„\x03Iþ…\x7f.$¢œ.\x14¢Ÿ˜’œ“˜Š˜Š\0\x13\0, –\x10Iþ…q@@$\0D\x10\0\x10„\x03D \x109œÉIþnQ€æÕ\x1f\0\x13\0,„\x03Iþ…`.$¢œ.\x14¢Ÿ˜’œ“˜Š˜Š\0\x13\0, –\x10Iþ…R@@$\0D\x10\0\x10„\x03D \x10SœÊIþn2„à<myò„!\0\x03\0.L\0À7Ïj"t\x01\x15Nw\0\x18<\rk³À\x05D%\0\0L\x01@\x04ŸùÕ\x02Ÿú—ûNw\0\v.\x05$lÀ\x14<\rk¨D\x10\x01\0L\0À\x0f„\x01<\x0fI\v\x14\x04\0I<M\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVè¡ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVèÊoüÿ\x01\x01û\0\x02k¨”D„\x03D \x109œÊÕ,„\x03D\x10\0\x10D \x10SœË€‡Iþmù„À\x12t\x01\x15Õ7>­$(Ç\aD\0\0\x1eIþb°¶
Õ-´
IþbÀ\x15D\0\0\x1e<myòIþb¤„¡>U$e<Mk¨¶
”l„\x03D \x109œËIþmÕÕ\x16.\x05$eÀ\x12Ÿ„£>e$e<Mk¨<_I\v€\x05D\x10\0\x10D \x109œÌ<myòÕê€Ç>}ƒ°\0\x03€8À(<\ryñ¤@.\x05$xâ é! ¼„\x0fL @\x1e.\x05$vÈ\x1a.¥$u„!L À\x16\0ƒ€4Nƒ\0\x12€\bIþ}
P \0\x14<=ZW <€(Ý#<\x1dRÍ>¥$v„
Ý!€æ€\a:o¨„Ýž;ÿü¼\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVê"ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVêKoüÿ\x01\x01û\0\x02ïüIþÕµ’\0„!L\0€\x0f<\rk¨À	„"L\0€\aV\0\0\x0f\\0\0\x01Õ\x02„\x01–\0ì\x04;ÿü„Ýž:o¨¼T\0ÿIþ5X„À@>e$—>}®ÌIþ_:\x10c€&P\x03€\fIÿžV€ÀÆ\x0f.\x15k:.\x05k;˜\b–\0N\x02\0ù<\x1dj?„\x02Ý!H\0\0ó.\x15k:.\x05k;˜\b–\0È\x05IýŒ%\0À\f<\x1dXÕ„\x01Ý!\0È\r.\x15´¾>\x15®ìÕ\b.\x15´¾<\rj=\x10\x13€ Ý .\x15k:.\x05k;˜\b–\0À\x10„\x01L€@\x0e<\rj7Ý €àÀ	€(Iþ6Õ€ÀÀ\x04H\0\0À„àIý‹øÀ%„!L€À#.\x15²HL\x14@\x05<}l‰Õ^[\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVë¨ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVëÊoüÿ\x01\x01û\0\x02<\rI\x11Ý €àÀ\x16<\x1dj<„\0Ý!€àÀ\x10IÿÔÔ€àÈ\f<MY\aF333X1ƒ3„\x03„"D t\bÝ$<-Xé€)€\aÝ"€ÀN\x03\0>}®Ì.\x15´¾\0\x03€ L\x10\0\f\x04ƒ€\x06IýñA@\x04\0\x01”\x04’\x04¨?Õ\x06F\x10ÿÿX\x10ÿ¨\x7f<=kºæiè\x17.%®ì<\x1dlüD\0\0DB\x11\0s–Ù\0@€.„\x03@B@\b@B\b\x04D\x10\0\x10D \x10TIþl¼<-Xë„ „\x06Ý"ÀXIÿý"Iÿü`€ÀÈRIþ^‚„\x01L @\x0fF\x18\x10\0\x04\0€\b@\04\b’\x1eÀ\x06>¥®ñDp\0 Õ?€Ç„\0\x10\x03\0%<-XÚ€)P\x03\0\fÝ"€àÈ3\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVí\x1eÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVíCoüÿ\x01\x01û\0\x02 1\0\0\0.È#Iÿÿ\0\0„\x01L€@\x1e<-Xë€'„\bÝ"L\x04@\x17.\x05$—È\x13´&<=XÙ€IP\x03\0\fÝ#€À<MY\aD\x10\0\x10„\x03D \x10R€fÝ$Î\x0eIþ3JÈ
.\x05$—È\a<\x1dXè€	Ý!€ÀÕ\x02€Ç€\x06:o¨„Ýž’\0:o¤¼ïü>}®Ì„ÀT\0ÿ\x10c€&Iþ^:>-°$\0\x01\x01Ö…\x01L\x04@\x05 \x11„ÈÕ	\0\x01\x01ׄ!L\0À} \x11D`\0p¨;.\x15k:.\x05k;˜\b–\0Àl<\x1dj?„\x02Ý!H\0\0g<\rj7Ý À \0 \0,>%kb¨;>…ke\x10ƒ€!D \x10A A@\x04\x10\bV\x10€\x02\x10c€$@d\x04\x1a@`\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVîšÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVî¸oüÿ\x01\x01û\0\x02\x04^[<MY\a\x10ƒ€&„\x03„"€fÝ$ÕCIýŠçÀ3.\x05²H„!L\0À\x06<\rl‰È\x19Õ*<\x1dj<„\0Ý!À%IÿÓÊÈ\r<MY\aF1\x11\x11X1\x11„\x03„"D t\bÝ$Õ\x16„A>%®ò<-Xé€)Ý"€À<MY\a„"„\x03D \x10B€fÝ$Æ\x05„!>\x15®íÕ\x0e<\rk³D%\0\0L\x01\0\x04„ÀÕ\x06Iÿü:Iÿûx€À€\x06ì\x04:o¤„Ýž.\x15k:.\x05k;˜\b–\0À³Hÿÿ’\0:o¨¼„À>e$—>}®ÌT€ÿ@Iþ]š\x10c€&P\x03€\fIþ.È€ÀÆ\x0f.\x15k:.\x05k;˜\b–\0N\x02\x01\x06<\x1dj?„\x02Ý!H\0\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVð\x14ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVð5oüÿ\x01\x01û\0\x02.\x15k:.\x05k;˜\b–\0È\x05IýŠm\0À\x19<\x1dXÕ„\0Ý!\0.\x05$˜À	<\rk¨È\x06<\rkö„&L\0€\x04Nƒ\0\x0f.\x15´¾>\x15®ì…\0Õ\b.\x15´¾<\rj=\x10\x13€ Ý .\x15k:.\x05k;˜\b–\0À\x10„\x01L€@\x0e<\rj7Ý €àÀ	„ Iþ5\x10€ÀÀ\x04H\0\0À„àIýŠ3À%„!L€À#.\x15²HL\x14@\x05<}l‰Õ^[<\rI\x11Ý €àÀ\x16<\x1dj<„\0Ý!€àÀ\x10IÿÓ\x0f€àÈ\f<MY\aF2""X1‚"„\x03„"D t\bÝ$<-Xé€)€\aÝ"€ÀN\x03\0>}®Ì.\x15´¾\0\x03€ L\x10\0\f\x04ƒ€\x06Iýï|@\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVñŒÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVñ°oüÿ\x01\x01û\0\x02\0\x01”\x04’\x04¨?Õ\x06F\x10ÿÿX\x10ÿ¨\x7f<=kºæiè\x17.%®ì<\x1dlüD\0\0DB\x11\0s–Ù\0@€.„\x03@B@\b@B\b\x04D\x10\0\x10D \x10TIþj÷<-Xë„ „\x03Ý"ÀXD\0\0 L \0UD\x10\0`L €QIþ4ǁ\0<\rI\x11Ý À\x0eIÿûNIÿúŒ€ÀÀ\b„\x03D\x10\0\x10D \x10”„aÕ9>}®Ì<=XÙ´'P\x03€\f€IÝ#€ÀÈ\x1dIþ1ôÀ\x1aIþ-É„!L\0€\x04•Õ\x13<-XÚ\x10c€%€)P\x03€\fÝ"€À<MY\aD\x10\0\x10„\x03D \x10U€fÝ$Nƒ\0\x14Î\x12.\x05$—È\x0f<\x1dXè€	Ý!€ÀD\x10\0\x10„\x03D \x10”\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVó\bÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVó,oüÿ\x01\x01û\0\x02„b€†Iþjš€\x06:o¨„Ýž;ÿü¼ïü–HIü”Bì\x04;ÿü„Ýž;ÿü¼ïüIü¦/’\0ì\x04;ÿü„Ýž;ÿü¼ïü„\x06IÿÿòÀ\x03„\0Õ\x10<\rk¶À\f\0\0\0,Iý‡VÀ\a´\0V\0\0\x04B\0\b\vÕ\x02„\x01ì\x04;ÿü„Ýž:o¤¼ïÌ>}¯T >Po€\x1c \0 €\x06Iþ\vÍIþ_+\0C\0\x0f\0\x13\0\x10\0#\0\x0e\03\0\x11@B \b@\x10À\b˜a˜J@Aà\b˜L”K’&”K”\x04’\x06”\x02’!šH”L’$@\0Ü	’e”ÝT!\0\a•	@"\b\x04@0\f\x04@@œ	„\0’/\x10\x13\0\x10>\x05kf\x10#\0\x0e\x10C\0\x0f\x103\0\x11P€\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVôƒÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVô©oüÿ\x01\x01û\0\x02\x10”\0\x12¶È\x14\x04\0\x03IýÕL„"L\0À&¦7T\0\0\x04À!IþBíÈ\x1e¡?„\x04L@@^[´\aIþ^­€ÀÈ\x15Iÿÿ…À\x12<\x1dj*Á\x06€\bÝ!À\x03€\x06Õ\x12„!>\x15kf<\x1dY”„\x05Ý!„\0Õ	<\x1dj)É\x03€\x01Õ\x04P\x0f€\x04Ý!ì4:o¤„Ýž’\0:o¤¼ïü>\x1d¯T<-k´ Î\0!\0,\01€,T\0ÿL1\0\x0e \x0fæ\x03é
D \0@</k¦„\x05¨\x0f„ >\x15kf>m¯T 6 ÷\x04P\0\x0e<MY\aD\x10\x04\0„\x03D \x10_\0rEÝ$ ÷ËD v„\x01\x10\0€.D@\0\x11 6\x04\0\0\x0e\x10@\x01E¡6 4\x04B\0\x0e¡u¶\x04©a.\x05j¤\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVõýÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVö!oüÿ\x01\x01û\0\x02À\x18>5j¤D\0\0\x18Iþ\x01¡\x02\x03\0\x10D\x10\0\x18”\x04\x14\x13\0	Iþ^V\x02\x13\0\x10¨1”\rIþ^P¨2Õ\x05\x04\x03\0	Iþ\x01Œ 3ž\x02Iþ^F¶\x06<-X× v„\x02Ý"„\x05¨7<\x1dY”„\x02Ý!„ >\x15kf w„\x04L\x10\0:æ%è\a„bL\x11€m„£ÙgÕ\f„\x05L\x10\0\x06„fL\x11ÀaÕMIþC\x16„\x03ÕYN’\0\x06IþC\x10„\x04ÕS„¢ß\x03Iÿþð>m¯T 7„!L\0€O´\x06Iþ]ïF\x10 \x1cÀ\a„\x01¨7„\0>\x05kfÕB.\x05kf„aL\x01À\x04„\x06Õ6„\x05Õ4„¢ß\x03IÿþÑ>m¯T 7„!L\0€\x17´\x06Iþ]ÐF\x10 \x1cÀ\a„\x01¨7\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pV÷vÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pV÷£oüÿ\x01\x01û\0\x02„\0>\x05kfÕ
.\x05kf„aL\x01À\x04„\x06Õ\x02„\x03¨7.\x05k\x0fÀ\x17Õ\x13€\aIþB!¡w„\x01Ð\x10´\x06Iþ]±„!„E@1\0\x1a@0€^[€\x03¨7Õ\x04„!<\x1fkÜ<\rkÜ„¡Ø\x04IþBû’\0ì\x04:o¤„Ýž:o˜¼€ÀIþ%Ñ„\x01L`@\x15.\x05k‡–\x04À\fF\b\x10\0\x04\0\0\b@\04\b’\x1eÀ\x04<\rYÍÝ Iÿ«yH\0\0‚„GLa@\x15.\x15k‡F\b\x10\0T\x10€\x04\x04\0\0
ÁkT\0\0\x03Àh„"L\0€f<\rYÎÝ ÕaŒJLa@&.\x15çÁN\x12\0<\ryò<\x1d[CL\0À{\x04\x10\0\x0e\00EF\x10 \x18<?I\r.%$f\x04\0\0\x0e\0\0\x01g\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVø÷ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVù\x18oüÿ\x01\x01û\0\x02L \0k>\x05$fÈ\x03„\x01Õ\x03<\rI\f<\x0fI\fÕ`Œ\x12L`@\r>\rlL´ ÉY<\x1d[\x18„HL\x11@U„,Õ'œ\x01L`@'F\b\x10\0\x04\0\0\vF\x10\x01€@\0\x04\x02L\0€F.\x15çÁÁB<\ryò<\x1dI\x0eL\0À=<\x1dI\rD Ï\x18T\x10€\x0f@\x11\x04\x0e–LÁ2\x04\0\0\x0e\0\x10\x01F>\r$0¶ Õ*„GLa@	Iÿ¥\x03>\r$8<\x1d[CÕõ„\x01L`@\x05Iÿ¥\x0fÕ\x1a„%L`€\x05„KLa@\x15.\x05$–„!L\0À\x10F\0 \x18.\x15$tœI–H>\x15$t\ð€`é\x04Iÿ¥
’\0:o˜„Ýž;ÿü¼ïü–\0Iüƒ²ì\x04;ÿü„Ýž:o¨¼>}²øT \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVúlÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVú¿oüÿ\x01\x01û\0\x02\0ÿ„ÀÕ	¦8ùã@è\x04€\x06Iÿÿ靱.\x05kN\ð\0<é\x05D\0\0OL`\x7fñ:o¨„Ýž:o¨¼ï¨F \0®X¥
8:\x05\f\x04P\x7f€<€ÇFP\0®XRŠ\x1cP€ :\x03\f$F@\0®XB
\0PŸ€\x04:\x05\b\0€fH:\x01„$F`\0ªXc\x05t¬˜:\x02Œ\x04:\x05\f$:\x02ˆ\0€j€©:\x01„$¬˜:\x02\f\x04:\x02Œ$:\x02\b\0€e:\x01„$D\0\0#¬˜Ý&D\0\0\x1fÝ&D\0\0\x19Ý&D\0\0\x14Ý&<\r[\x10T\x10\0\aÁ
T\x10\0\bÉ\aT\0\0\x04@t€^[@t\0\x1a„ÀÕ\x068\x03˜\0±Iÿ˜s.\x05kN\ð\0<é\x05D \0\x1aLe\x7fôìX:o\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVü"ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVüIoüÿ\x01\x01û\0\x02¨„Ýž;ÿü¼ïü–\0Iü’ì\x04;ÿü„Ýž:oª¼ï´F\0\0®X\0
„:\0\f\0F`\0®Xc
tP\x7f€8P_€(:\x03Œ F@\0®XB
dQÏ€\x18F \0®X¥
T:\x03\f\0PŸ€\b„À\x06:\x02Œ €©:\x02\f\0F@\0ªXB\x06|:\x0e\f :\x05\f\0:\x04Œ P\x0f€88p\x18\x02„ P¯€(8•\x18\x02€\a€AÕ\x13¦Øæqè\rP¯€\x1885\x18\x02œ‘â\x03é\x0682˜\x02â`é\x02œIæNè\x19œ\x01>­²ø@0(\0ã èéÕ+<-[\x10„!@\x10 \f@\x10ˆ\x04<\x1f[\x10Õ#¶ŸõùÝ$õ\x01´Ÿ–8ã'èø„!<-[\x10@\x10 \f@\x10„\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVý¥ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVýÌoüÿ\x01\x01û\0\x02@\x10ˆ\x02<\x1f[\x10\x01„\x04´L€\x7fºIÿ³°’\0ìL:oª„Ýžæ'éÕ<\x1d[\x10„\x01@\0 \f@\0\x04\x02ÀÝÕê:o¤¼ïäF\0\0®X\0
”€ :\x02Œ\x04€Ÿ€ßPŸ€\x14:\x02\f$:\x02„\0@0À	¶\x04\x104€\x02\x12\x14€\0Õ\x05\b\x03\0\x01IýðÊ.\x05kQ\ð\0<é\x03Ldÿ÷ì\x1c:o¤„Ýž’\0;ÿü¼ïüIüŸS’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü¢ù’\0ì\x04;ÿü„Ýž;ÿü¼ïüIü¡ÿ’\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü‚ìì\x04;ÿü„Ýž;ÿü¼ïü–\0Iü‚jì\x04;ÿü„Ýž:oª¼ïô<=x—>\r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pVÿ!ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pVÿGoüÿ\x01\x01û\0\x02²l„@ò¡\x01N2\0€P\0\0l</x—„À \00ÿà§H”Ü€CB"˜s˜’Tq\0\aâ£è\x06@1\f	Ç\x03œ™Õ\x02’C\x18 €\x01>}²øL\x13ÿê¦à§¡…\x02›s¦€¦ALT@\x0f?Ͳø™ÊP®\0\x01@Q¨\0áˆ|®˜ˆÜ¯èÕ\x1e„ãß\x1d@€„\0?Ͳø@‘\b\0‰\x02P®\0\x02@„\x14ö‰!@q¨\0@¡ð\0\x10%\0\0ˆÜQÎ\0\x01ˆ|@$”¶®˜\x10ƒ€\0®pœ\x01>\x1d²÷!L\0ÿÉ„À>-²ø˜2¦\0\ð\0,é\x13€\x06Iÿþ\x14Æ	ž1–\0Iÿþ\x0fD0\0NLa€\x0e±—°€\x06Iÿþ\x06Õ\a\ð\0(è\x04€\x06Iÿþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\0Ÿÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\0Áoüÿ\x01\x01û\0\x02±—°\ó\0OéÝIÿþ„àƒ‡Po€\x04\x15Ï€\x01€\a€&Iÿÿd€\a€&IÿÿVð\x01–\x04À\x04€\aIÿþrùD\0\0OLp\x7fí„à'Po€\x04\x14Ÿ€\x01€\a€&Iÿæ7ùD\x10\0%Lpÿ÷Iÿýô.\x05kOÀ\f>\x1dª\>\r®Œ„JIþçœ.\x15kN>\x15kQ.\x05kPÀ\b>\rªp>\x1dª\„JIþçŽì\f:oª„Ýž:oª¼ïô„à÷€ßÕMIýôMùÈ\x03—øÕG„àD\0ÿPo€\x04D†‰tEƉЄ@€\a€&òIÿÿ\f€\a€&Iÿþþð\x01–DÁ\x04€\aÝ<Õ%T\0\0\x04À"T£€ÿN¢\0\x13€	Ý(ð\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x02\x18ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x02Eoüÿ\x01\x01û\0\x02T\0\0 À\b„\x01L \0
P\x04ÿÿ–\0Ý(D \0NL¡\0\x0eœ9Ý(ð\x01T\0\0 À\aD\0\0ML \0\x04œ:Ý(!ùD \0OT”€ÿLq\x7fÆÕ\b.4¢œ€\a„ €_âãé®Iÿþ¤Iÿþx.\x15kQ\\x10€3>\x15kTì\f:oª„Ýž:o ¼ïð.u›Í.„¢œ>mkOÏ\a¦0À\aIÿþž¯ðÕ\x03„\x01®0.u¶\x16>mkPÏ\a¦0À\aIÿ±K¯ðÕ\x03„\x01®0>\x1d®Œ„JP\x0f€\x04Iþæü„\0IþtÅ<\x1dx—Á\x03<\x0f[\f<\x1d[\f„_L\x11\0\x05šA”L’$.\x05´ÎÀ\a\ð’Àè\x04IÿþŒÕ\x12>\r%\>\x1d¨ „JIþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x03¢ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x03Àoüÿ\x01\x01û\0\x02æÜ.\x05kOÀ\x03IÿÿO.\x05kPÀ\x03Iÿåf„\0P?€\x04>-®Œ˜B¦H8!€\0œ\x01L €\x04„\x02Õ\x04„ªØô„\0.%kQF\x10 \x1c\ñ\03é\x1d>-³´\01\x01\x19„>EkSÃ\x18D\x10\0DBD\x04$„ Õ\f\x041\0\x0f˜Ù¡YÅ\x05\0Q\x01'\x10Q€2P\x10€DL\x12\x7fõÕ\x04„@>%kSIÿþ\x19’\0ì\x10:o „Ýž;ÿü¼ïü–\0Iü€Ôì\x04;ÿü„Ýž;ÿü¼ïüIü~\r’\0ì\x04;ÿü„Ýž:o¨¼€ÁŽ)\0T¡\0ÿæ"è\x06\x04\0\0\x0e\0p\x01pÕ\x05„\x02Iý÷‰€à\ó€OèEIýصÀ\bD\0\0ÿ€(„@Iýó.À;Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x058ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x05}oüÿ\x01\x01û\0\x02ü „\x06L`\0\x17æÇè
„\x04L`\0\x1dæÅè\x1e„\x03L`@(Õ#„	L`\0\x14„
L`\0\r„\aL`@\x1eÕ\b€*€I€h€\aIÿ•4Õ\x15€\aIÿ•DÕ\x11€\aIÿ”„Õ\r€\b„%Iÿÿ«€'€IIÿ”Õ\x04€\aIÿ”‡€\aIÿÿ–’\0:o¨„Ýž:o ¼ïè<\rl›„!L\0€\x05„ÀH\0\0¸.%´¾<\x1dlüD\0\0DB\x11\0s<-X×D\0\0\x10Ý".\x05kƒÈ\x1aIþsÓ<\x1d['„_L\x11\0\bšA”L’$\ð™\x01é
„B>%kƒ„@>%k„<\x0f['Õ\x04„\a>\x05kƒIýçv€àIýçw€À.\x05´¾L\x03€\r„\x1fL`\0
\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x06Õÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x06ùoüÿ\x01\x01û\0\x02€\aIý袛°•´’ÄæÇéuIÿ—\x19Èr>\x1d²l\0 €ÛÂ\a ‰\x10\0€Û 
¨Š¨	<-Yè 	P\x10€LÝ"„A>%$—À]”\x14IþXØ>-kƒ¦PžÊ–Ø<\x0fI1ædè\x04œI®PÕN„\x06L\x10\0\x05„\x01L\x10@\x06„'>\x15kƒÕD<mx—„\0®\x10Æ@.\x05´ÎÀ\v„#<\x1fj}<=)¡„ D\0\0I€AÝ#.\x05khÀ\x15>m²l¡ñPc\0L\bC\0\x01\b3€\x01„!„\x03D \x10Iþcè>\x1d²ØL`ÿôÕ\x19F\b\x10\x06\x04@\0Ø„!„\x03D \x10D0ƒ\Iþc×F\b\x10\x06\x04@\0Ù„!„\x03D \x10D0ƒ`IþcË„ÁÕ\x02„À\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\bOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\bˆoüÿ\x01\x01û\0\x02„"<\x1fl›>}²l´G„\x02L @\x17<\x1dXØ„\x01Ý!<\x1djID0\0\x1f„\0@ \x18^[@!˜\x1a¶\aÁ\aPs€Lòƒ÷€\x1fÝ!ì\x18:o „Ýž;ÿü¼ïüIü”\x13’\0ì\x04;ÿü„Ýž:o˜¼>m¯¬ 5IþX9À^[Iÿ“X.\x05çÁÀ\x06D\0\x18\0IþXMÕ\f.\x05$aÈ\x04D\0\x10\0Õ\x04\x02\x03\0\x1a”\x04IþXA¨5Iýû„<\x0fI	<\x1dXÒ<\rkóÝ!<\x1dY”„\x02Ý!<\rkó„$IÿUô’\0<\x1dY©„\bÝ!:o˜„Ýž:o¨¼ïè>m¯¬\x043\0\vT€\0ÿËI.\x05´òÀ1.\x05$c„L\x02@(>5$cD\0\0\x18IýûP.\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW	áÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW

oüÿ\x01\x01û\0\x02çÁD\x10\0\x18<\x1fI	À\x06D\0\x18\0IþX\x03Õ\f.\x05$aÈ\x04D\0\x10\0Õ\x04\x02\x03\0\x1a”\x04IþW÷¨5<\x02×ð”\x05IþWñ<\x0fkñÕ
<\rI	Iýû,Õ\x05D\0\0\x18Iýû'´\x06IþWâ¨3<-X×\x04\x13\0\b„\0Ý"<\x1dY”„\x02Ý!„\x03\x14\x03\0\v<\x1dk´<-kó\0\x10€,\0!\0,L €\x10<\rköžCæ"é\x04„,L\0À\b„$<\x1fk¦„#<\x1fkö<\rköž\x06æ\x03è\x05<\x1dY”„\x03Ý!N‚\0\x05Dp\0\x11Õ\a<\rkó\x04\0\0\x0e\0p\x01E<MY\a\x043\0\v„\x03D\x10\b\0D \x10bÝ$\x043\0\vË7.\x05´òÀ\x11\x04c\0\f„ˆLb@\x05D\0\0\x18Õ\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\vrÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\v’oüÿ\x01\x01û\0\x02„\bIýúÏIýúÑ<\x0fk÷Õ\x05D\0\0\x18IýúÆ>m¯¬\x02\x03\0\x1a”\x04IþW}\x02\x13\0\x1a¨5”\rIþWw¨6´\x06IþWs¨3<-X×\x04\x13\0\b„\0Ý"<\x1dY”„\x02Ý!„\x03\x14\x03\0\v>m¯¬\x04\x13\0\v…&L\x14€’æ'è\x13…CL\x15\0%æ$è\x06„\x01L\x10AYH\0\x01[„dL\x11€%„…L\x12AQH\0\0c…IL\x15\0åæ*è	„\aL\x10\0œ„hL\x11ÁDH\0\0È„ŠL\x12\0ÿ„\fL\x10A<Õ- 3IþW\x15À\x03H\0\0´IÿþÒH\0\x01+N‚\0	IÿþÌ„\f\x14\x03\0\vH\0\x01,”ZLpÀ“\x04#\0\bF\b\x10\x02\x04\x10\0\x0e \x15˜\bIýúÄ„H</k¦\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\fåÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\r\x0eoüÿ\x01\x01û\0\x02 1IþW\x10„%\x14\x13\0\v¨4H\0\x01\x13œÄLqÀ\f„H 1</k¦IþW\x01¨4\x14“\0\vÕ\x0e 3IþVÜÀ\a<\x1dYØ„\x02Ý!„\x01Õ\x02„\x04\x14\x03\0\v.\x05k\x0fN\x02\0õ„!H\0\0« 4IþVÈÀ\b 3IþVÄN\x02\0ÝH\0\0b<\x1dXÒ\x04\x03\0\bÝ!<\x1dY”€
Ý!\x04\x03\0\b„(IÿT4H\0\0UN‚\0\x0f<\x1dXÒ\x04\x03\0\bÝ!\x04\x03\0\b„(IÿT&„\aHÿÿšD@\0\x10Lr@\x12 2IþV¸„B</k¦¨7Iþ@:>\r³¼Iþq.„\bHÿÿ†„\x05HÿÿƒŒ	Lp@\x1c 2IþV¢„B¨7</k¦Iþ@$>\r³¼Iþq\x18<\x1dXÒ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x0edÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x0eƒoüÿ\x01\x01û\0\x02\x04\x03\0\bÝ!\x04\x03\0\bIÿR§\x14£\0\vH\0\0” 4IþVjÀ\r 3IþVfN\x02\0\x7f.\x05j¥Iýÿ\x12„\x01HÿÿV\x14“\0\vH\0\0€ 7IþVVÀÜ 3IþVRÀ\x02Õñ\x04\x13\0\b\x043\0
\x04\x10€\x0e\x04#\0	¨ÉÕYN‚\0\x0e<\x1dXÒ\x04\x03\0\bÝ!\x04\x03\0\bIÿRq„
Hÿÿ1Žðæâé\x13\x04\x03\0\b„E\x04\x10\0\x0e\00JB\x11ˆs\0\x10NÉ\a„+\x14\x13\0\v„"¨AÕI„(<\x1fköÕEŽðæâé\x1c\x04\x03\0\b„%\x04\0\0\x0e\0 \x01JB\x01\x04s\0p\x01NÏ\x10<\x1dYØ„\aÝ!\x04\x03\0\b„+\x14\x13\0\v„"¨A€\aIýþ´Õ' 7IþUþÀ\x1c 3Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x0fÛÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x10)oüÿ\x01\x01û\0\x02UúÀ\x03Hÿÿ•\x04\x13\0\b\x04C\0
\x04\x10€\x0e\x04#\0	©	¶A\x04\x13\0\b\x04\x10€\x0e\x10\0LIþ?Å„\x04HÿþÛ„	HÿþØD\0\0 Iüµû<mkö„\x01L`@#<\x1dXØ€\x06Ý!Iýÿ „"L\0À	<\x1dY”„\0Ý!€\x06Iýþx<mkóIýâ¨\0\x10\0\x0e\x04\x03\0\x0eT\x10€\a\x10\x10\x01L<\x1dj%„D€\x1fÕ\x1d„kLaÀ!<\x1dXØ„\0Ý!.%´¾<\rlüD\x10\0DB\x01\x04s„"¨AF\b\x10\x02\x04\x10\0\x0e<\rkó„@¶ <\x1dj$€\x1f¨ƒÁ\x02Ý!„"<\x1fköì\x18:o¨„Ýž’\0;ÿü¼ïüIü~í’\0ì\x04;ÿü„Ýž:o¤¼ïô<\x1dlü—€\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x11\x7fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x11»oüÿ\x01\x01û\0\x02D€\0DB\x13 s.t¢œ„\0¨	P\x0f€\x04Iú¨Ä<\rlü„!Õ\x02–X€@B  sœÉâ'è\x03 ‘ÂøL\x13À\x15>\x1d®˜ ŠD0\x01\0L!À\x05„A¶AÕ\x03„A¨‰.%´¾€(B\x01\x04s„ ¨Að\x01Iú¨µ€\x06IþR4„ >\r(88\x10\x18\b„?>\r'ð8\x10\x1a
ì\f:o¤„Ýž;ÿü¼ïü„&L\0À
F\x18\x10\0\x04 €
’B”’\x14 €
Iþ\x18 ì\x04;ÿü„Ýž:oª¼ïôF(\x10\0\x04\0\vP`\0\x1c@\x04,\b’\x1e¶\x1fñ„c\x01Ã\0\x10T”\x03ÿL\x01ÀXõ\x01„\bØ\x06F\b\x10\0X\0
`Õ\x05F\b\x10\0X\0\x0f”´\0<-j>¤@€\x1cÝ"\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x13\x11ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x13Ioüÿ\x01\x01û\0\x02€\x1cIý}>\x02\0\x01\x1d\ð\0Cè\x06F\x10\0–X\x10„°Õ\x1c@\x10 	D \0\x7fL\x11@^[@\0\b\x02æ\x12è
F\x10\0–X\x10…88\x10\0L\x14À\x0fÕ\x04\ð\0#è
Ž\x12F\x10\0–X\x10…\8\0\0L\x04€# w„E\0\0KB\x10\bs„\vP\x10H¦ÏV1€\x01®Ï w\00KB\x11ˆs„@P\x10H®ŽH\0\x01š.\x14¢Ÿ.¤¢œ‰ACT¥\0ÿÕ\x02…B<\r[\x18„cL\x01À\x0f´¿Ð0ð\x01„(L\0„P\x03\x7fä„!Iþ\x05éH\0\x01}„FL\x01\x01z„gL\x01À\x11´¿„\x03Ð\x1cF\b\x10\0\x04\x10\x03å\0\x03\0\x10€I„bIþX\x0eH\0\x01h„(L\0À\x0eIþ5È
F\b\x10\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x14«ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x14Íoüÿ\x01\x01û\0\x02\x04\0\x03å€)Iþ6_H\0\x01Yç$éX.\x14¢Ÿ.\x04¢œ˜\x01œ\x03L @S€\x1cIý|°F(\x10\0\x04A\x02˜>-(\x18¦ã¦b@1 \b@\x11„\x04¦Ð„¡Û\x03¤ÓÕ\a„¢Û\x03¤ÒÕ\x03Ã1„`¥Ñ\x02P\x01\x0eß,L0À+´\x1f„"L\0À/¦!¦`@\0 \b@\0\x04\x04P\x14ÿüL\x10@%œ$Iÿ>€@È\x1f w„e\0@K„\vB\x12\fsP\x10H§\x0fVB\0\x01¯\x0f w\0@KB\x12\fs\x10 NH\0\x01\a>=((L!€\x06ŒHÕÁN’\0<.\x14¢Ÿ.\x04¢œ˜\x01œ\x03L @\b 7¡ÅÇ\x04\x12“€\x06Õ\x1f€<€
€IIþxÁ€à.\x14¢Ÿ.\x04¢œ˜\x01œ\x03L \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x16&ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x16Eoüÿ\x01\x01û\0\x02@\x12<\x1dS’@\x10¼\b’?Á\v<\rSŒT\0\0\bÀ\x06D\0\x10-€'Iþ_\x10@44\b’}Ë\bÏ\x03€gÕ „\x01\x10\x03€
Õ\x1c\3€\x01Õ\x19 7\0\0\x01mÀ\x13@\x044\b’\x1dÀ\x0f<-Xºñ\x01P\x03\x7fäÝ"<\x1dX€iœI<\x1fX€éÕ\x03„`€ã´_„£Ò\r@\x044\b’\x1dÀ	 wB\x04T\v\x100e w\x10\0FÃ) w„E\0\0KB\x10\bsP\x10H¦ÏV1€\x01®Ï w\00KB\x11ˆsP H„ ®V<-S’\0\x13\0\x10–”N"\0€<\rSŒT\0\0\bN\x02\0zD\0\x10"Iþ^´H\0\0tÇr@„4\b“\x1dN‚\0\b<-Xºñ\x01P\x03\x7fäÝ"P\x03\x7fä\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x17œÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x17Áoüÿ\x01\x01û\0\x02Iýûö.\x05®íÈ\x03Iþ\x03#´\x7f„¢\x103€	L¢€\x06 7 \x05È7Õ
ð\x01„(L\0À\aF\b\x10\0\x04€\x02˜Õ	F\b\x10\0ò\x01„h\x04€\x03åL!À\x18 ·<\x1dX¾\0\x01\x01HÝ!È\a 7\0\0\x01HIýû4È
 7\0\0\x01HIýû6À\x03\fÕ\x02\x14´¿„\x03Ø\a´\a€(€IIþà8Õ\x06´\a€(€IIþà\x1e.\x14¢Ÿ.\x04¢œ˜\x01œ\x03L @\x14.\x05€œÀ\x06€
€<Iþw\x11Õ\x05€
€<Iþ{Р7 EÁ\b„ ¨EÕ\x05€
€<Iþ{Æ„\x04ì\f:oª„Ýž’\0;ÿü¼ïü–HIü˜\x02ì\x04;ÿü„Ýž:o ¼„\0Iþmׁ\0„\0€ Iþ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x19\x1aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x199oüÿ\x01\x01û\0\x02unÀv„\x01„ IþuiÈ\x03H\0\0p.\x15´ÿÉ(<\rm^[„"L\0€\x05„#L\0À\x19<\r;\Ý @\x04\0\x01”\x04’\x04<rÚO’\x01â\aè\f<\r;\Ý ‹\0@„\x10\b“\x04@d\x04	›¾Õ
<\rm^[„$L\0À\x05IþbõÀK„À<\rXrF\x1f\x1füX\x10\x7f@\0\x04\x02È\x06IýÉX„"L\0€7IýÆ\aÈ3<\rk¦„!L\0À/<\rXVÝ À*<\rm€È'<\rXrB\0h\vÈ"<\rj\x0e„?L\0À\x1e.\x05¨~È\x1aÎ\x19<\rm^[À\x16IþbÇÀ\a>\r›Ú„&IýÏ£Õ\x13>\r›ÚD\x10\x7fÿIýÏœ„ D\0\x7fßIÿÿyÕ\a>\r›ÚD\x10\x06@Iýϐ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x1aÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x1a½oüÿ\x01\x01û\0\x02:o „Ýž’\0:o¤¼ïô€À„\0€ IþtæN\x02\0ñ„\x01„ IþtàN\x02\0ë<\rm^[N\x02\0ç.\x15´ÿÉ\b„$L\0À\x06IþbŠN\x02\0Ý.\x05¨fN\x02\0Ù<\rX{Ý N\x02\0Ô.\x05›ÓN\x03\0Ð.\x15k:.\x05k;˜\b–\0N\x03\0ÈIý}ë€àN\x03\0ÃP\x0f€\x04IýââN\x02\0½<\rXVÝ N\x02\0¸<\x1dXh.\x05›ØÝ!Iý\x7fж\x1f€\aIþm\x04€à´?ð\x01€GIÿÊL¶\x1fÆ\x04âÀè\x02¶ß<\x1dRÑ€\aÝ!À\x05´?â\x01è\x02¶\x1fIþŸX´?€GIÿÊ8¶\x1f<=Xz€?„\x01€GÝ#.\x05›ÍÈ\x04.\x05¶\x16À
.\x05¨ˆIýÎ;\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x1c\x1fÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x1cCoüÿ\x01\x01û\0\x02´?€GIÿÊ#¶\x1f´\x1fž\x01\ð\x7fþèw.\x15´ÿÉ\x1f<\rm^[„"L\0€\x05„#L\0À\x18<\r;\Ý š8”\x04’\x04<’ÚO’\x01â	è\f<\r;\Ý ›ø•ü’ä@c„	@d˜\x01Õ\x02„Àµ\x1fIþaîâ\bèPÎ!IþaýÀ\v>}k7¦8È\x04€F„\x06Õ0€\a„&Õ@´Ÿ„\x06„!D t@€fIþ](<\rk´È\x03€&Õ\x03\0\x10\0,´\x1fIÿþ¤Õ/µ\x1fIþaȘ\x06â\bè).\x05´ÿÈ&>}k7\0ƒ€\0Nƒ\0\x15D tA„\x06„!€h€†Iþ]\x06€\x06€HD\x15³t€b€‚„¡IýÎÙ®8Õ\r„!„\x06€aD tA€†Iþ\ó€\a\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x1d™ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x1dáoüÿ\x01\x01û\0\x02€&IýΓì\f:o¤„Ýž’\0;ÿü¼ïüIü—\x19’\0ì\x04;ÿü„Ýž:oª¼ïü>m²\0´æ„\x04\x04“\0\x01Lp\0xäåè	„!Lp€\x13„bLqÀ”H\0\0kŒ\x1cLp\0|”CLp€yD0\0\x10LqÀˆH\0\0n.…ƒõNƒ\0O€\bIþl"ƒ€ 3€<IþQ?@À\b<\x1dXØ€\aÝ!·\x06H\0\0q\x04ƒ\0\x03‹\x1c@„\x10\b“\x04“\x02\x14ƒ\0\x02IþaMâ\bé\b<\x1dXØ€\aÝ!·FH\0\0]<\rk¦D\x10\b\0¨5L\0€\a<-X×€)„
Ý"<\x1dY”„\0Ý!F\b\x10\0\x04 \0\bD9ÿÿ@!\f\x02\x14 \0\bF\x18\x10\0\x04 €
’B”’\x14 \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\x1f8ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW\x1faoüÿ\x01\x01û\0\x02€
„\0IþkÛ<\x0fl†Õ\r<\rk¦D\x10\b\0L\0€/<-X×€)„
Ý"Õ(„$<\x1fl€Iþ\x19û 2„ ¨tIþb Iþ\x18¢„\b¶\x06Õ\x19Iýú{D\0\x01\0¶\x06Iþa†F\b\x10\x02\x04\x10\0\x1eX\x10€\x01\x14\x10\0\x1e<\x1dXØ„\x01Ý!„ <\x1fl€Iþ\x18;<\x1dl€É\x05<-Y\r„\x03Ý"ì\x04:oª„Ýž;ÿü¼ïü–\0Iüþì\x04;ÿü„Ýž;ÿü¼ïüIü‚U’\0ì\x04;ÿü„Ýž;ÿü¼ïüIÿÿó’\0ì\x04;ÿü„Ýž:o ¼ï°>}¨8Iþ[cT`\0\x0f¤>˜v˜\bIþPƁ\0´\aIþP¤È\x06´\a€(IþP‡È\x06<\rXr\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW Çÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW òoüÿ\x01\x01û\0\x02B\0h\vÈ\x12P\x03€\x0fIýÍ'„\x7fP\x1f€\x04„@<?j\x0e<=Wë¶AD\0\0OÝ#Õ\x19€\a¤FŒ\x0f˜qIýÍ‚Iÿÿ€ÀÈ\x05F\0 \0IýÂ@<Mj\x12–ñ„\x06„"D u\x01Iþ]Ã’\0ìP:o „Ýž;ÿü¼ïüIüM’\0ì\x04;ÿü„Ýž;ÿü¼ïüIÿÿó„\0IþrÚÈ\b€ <=)¡€AD\0\0=Ý#ì\x04;ÿü„Ýž;ÿü¼ïüD \0=L\x01@\x05IÿÿåÕ\x03Iúã@ì\x04;ÿü„Ýž:o ¼—À„\x05€ÁT\0ÿLp@\v¤\x0e„"IÿÛ¤6IýxzÈ\x06ÕV„HLq@GÕ\b\0\0\x02FIÿ’\x14Iÿ‘ÀÕK¤\x0eIý\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW"Lÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW"moüÿ\x01\x01û\0\x02xj\0 \x02F<\rlüD\x10\0DB\x01\x04s\x04\0\0\x0e\0\0\x01mÀ;€\aIü° À7„\x01„ „FIþtºÈ\x03„\aÕ4´ É\x04D\0\0\x1fÕ/„D¯È®‰¦°®Š\0#\0
®\0#\0\f®‹¤¶’H®Œ„A>%$dF\x10\0X\x10„̨A„\x01„ Iþx†„\0Õ\x13Œ\x0fLp@\f¤\x0eIýx*\0\0\x02F„@>\x1d'@8 €\b€\a€&€HIü´†:o „Ýž’\0:oª¼ï„§\x03¦Ä\0 \0\x05\0\0\x06§Ç\0P\0\bP/€p„@€€\x13D\0\b\v¯\x10®Ñ\x10¡\0\x02\x10‘\0\x03¯Ô¯UL€\0\x0eC@¥ \b‰D@¥\0\x13€
\x12¯€\x03Iýx\x16Õ\r\x10¡\0\x02¯\x10\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW#Àÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW#åoüÿ\x01\x01û\0\x02®Ñ\x10‘\0\x03¯Ô¯U€\x02…@IýxAPŸ€\x04‡€D\x10\b\v€à\x12„€\0\x15Ä€\x04L€€å\ô\b\fè\aD@\b\x03L‚A\x06H\0\0‡JL‚€\x06œ\x0eL€@þÕ;È
„B€	€'\x14$€\x04\x10t€\bH\0\0rPƒ\0\x02\0\x04\0\0±¦p@\0 \b˜\x01ä\x06é\x02Õ\x11.%k:.\x15k;˜Q–HÁ\x0fT\0\0\x04È\f€
Iÿô„!L\0À\aD\0\0\x12\x14\x04€\x04Õ	\0\x04\0\0¦p@\0 \b˜\x01\x12\x03\x19P\x0f€\x04„ Iü¸\x19H\0\0~´‡„¤Ü\x10\x04\x03€]„!L\0À\f„L\x14$€\x04€	€<Iü¸\b€üH\0\0½.\x05³ÝT\0\0\x02È\x05Dp\0\x11H\0\0´¦ö§q¦r\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW%;ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW%_oüÿ\x01\x01û\0\x02§3¦´¦5Nr\0¦@\x10 \b˜i–IDPÿÿL\x12€¢@! \b˜¢–‘L"€œ@1 \b˜Ã–ÙL2€–€\aIÿ¸!€àN\x03\0’P\x0f€\x04€'Iü·ÕH\0\0‹\0ƒ\0\b§1\0£\0\x02¦3\0“\0\x04¦µ¦ö¦wÇx@¥ \b@” \b‰D‰ @¥\0\x13@”€\x13ãIé^[D@ÿþ@\x04\x02À\x16@a \b™–—±Æ\x11–³N%\0\x0f@„ \b‰\x01@„\0\x13@\x14\0\x11N\x15\0\x06@\x14\x18\0à é	D\0\0\x12D\x10\b\x03Iü®Ñ„àÕP\x02\x03^[„ªØ\f\x02\x03\x1cD\x10"÷L\0À\a\0\x03‚FIý¯\x0fÈ=€\a€*€I€f€ˆIÿ´³€àÈ8D\x10\b\x03Õ&À.\x02\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW&»ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW&Ûoüÿ\x01\x01û\0\x02\x01^[D@\09L\x02@\x10\x02\x03\x1cDP\x05(Ð%D\x10\x06\x11L\0€"D@\x05\x06L\x02@\vÕ\x1c„ªØ\a\x02\x03\x1cD\x10\f\L\0€\x15¦u€\aIÿ®‡€àÈ\x12D\x10\b\vIü®Õ\rž4€(Iü .€àÕ\a„âÕ\x05„ìÕ\x03Dp\0\x12€\aì|:oª„Ýž’\0:o¨¼ï P \0\x04\0\x05\0\0Pt€\x03¦¸@\0 \b˜\x02—‰–\x01\x12o€\x02IþzêD\x10 \x1f\0L`€0\ó  è	D\0 \vL`\0‘œAL`À§Õ\bŒ/L`€[œLL`À ÕY¦8æ\x02è
\0\x15\0\0æ"è\x06<-Y)Ý"€ÀÕ\x03D`\0\x12¦8È\x04Nb\0”€ÀP/€\x04©”€\x02„ Iü¶ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW(6ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW(]oüÿ\x01\x01û\0\x02H\0\0Š<}m€F\x04\0\0@s€\x02Ï)„\x01€'„LIþrÏN\x02\0{´@„.®P„*´@€Ç®Q„!´@®RD \0\x1f´`€'®›œ‘´`®œ´@¯Õ´@¯Ö´@¯×´\0Œ\bIü­Ÿ„\x01€'Iþv›ÕZIþ˜\x1e€ÀÀV„\0€ €@Iþ˜5ÕOIþnˆÕF„%\x10\x14€\x02È\x04D`\0\x12Õ\x11¦z\x10\x10\x01\0¦{\x10\x10\x01\x01„!§ü\x10\x10\x01\x03\x10p\x01\x02<\x1dSÎÝ!€À€\x06D\x10 2Iü­ÛÎ/\x04\x04\0\x01T\0\x01\0È+\x04\x04\0\x02„!L\0À'€\b€&Iÿ‘hÕ!<\x1dm€D\x03\0\0@\x10€\x02É\x13>\x15j³¦º¦|\0E\0\0¦û@! \b@\x10 \b˜”\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW)¹ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW)áoüÿ\x01\x01û\0\x02˜KL À\x05„!>\x15j³€&€	Iü§`€ÀÕ\x02„À€\x06ìp:o¨„Ýž:o ¼ïˆ…\0—‰€àD\0\f\x1a\x14€\x04\x12o€\0L`\04\ó\f^[è\x06D\x10\f\x03L`ÀXÕJœÂLa€\x05œ\x04L`@Qœ;§\x01¦Ã¦B§@@B \b@1 \bP/€l˜Ù™%¨Ñ¶‚V\x03\f\x1c€"\\0\0\x01IýÃ(<=fý<\x1dfúð„<\x1fI-D\0\f5<?I.L`\0:Õ1<\x1dI-<=I.L\x11À\x10IþX\b<\x1dI-<-I.T\0\0\x1fšš\b</fý<\x0ffú¦;€ßæ\x04è\x04IýÕ\x03D\0\0\x12¨4Õ^[„%>\x14§Ý<-)Y„\x05€ Ý"IþRK€\bÕ\x14\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW+8ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW+Yoüÿ\x01\x01û\0\x02€\a€&Iü–¥Õ\x0fŒ\x1eL`\0\x06D\x10\f_L`À\x04ð\x04À\x06€\x1f„ Iüµó„\0ìx:o „Ýž;ÿü¼ïü–IIü‚ì\x04;ÿü„Ýž;ÿü¼ïü–IIÿÿòì\x04;ÿü„Ýž:oª¼ïŒ€ÀP \0\x03œ·\0E\0\0§Q¦ÄP\x0f€d¯E¯\0®Á@€€\x13¦u#®B@” \b¦ö‰$®Ã@”€\x13¦®„/Ä¢Ÿ\ô‚\0è\x03‡€Õ\aQÎ\x01ÿAÎ$\aWÎ\0\x01OÂ\0\a€	„àIþycÕ\x06€	IýuA€à€\x1cT\x14\x03ÿ\ð€Fé\x04„ÁH\0\x01 DP\x04\x19L‚\f\ô\x04\x1aè\x15D\x10\x04\x06L€€ä\ô\x04\aè\x06ž‰LA…H\0\0°\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW,¬ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW,Õoüÿ\x01\x01û\0\x02D0\x04\x11L€\x1aZL‚Á|Õ\x1cœ+L€\0n\ô\x04\x1dè\x05žAL€ÁrÕND \x04(L\x01\x03D0\x04CLÁiH\0\x01bNr\x01k€\aIÿÒ\x01H\0\x01dÏ\x03H\0\x01c¦uæ"Nò\x01a\0\x03‚iL\0À\rœZ„\0Iü¬Œ€\a„(„@Iý^5H\0\x01C\0\x03‚dP \x7fÑ–æBé\fDP\03Ð	ž©L\x01\0\aœÒL\x01€\x04SØ\vD\0\0#D\x10\x04\x13Iü¬mD`\0#H\0\x018€\aIýeh€ÀN\x03\x012D\x10\x04\x13H\0\0yNr\x01(\0\x03‚[„!–\x04L\0À\x0e€(„\0Iü¬S€\aP\x13¨„@Iüù½H\0\x01	€\aIý\x05¬Õ\Nr\x01\x10\0\x03‚[T\0\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW.,ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW.doüÿ\x01\x01û\0\x02À&\0“\0\x05„AL‘@"€(„\0Iü¬7\x023\x0e„À\x12?€\x06\x10Ÿ€=¶ßP#˜\0\x03‚Fò‡<=Wë>-%œ8\x01\0\0€?\x10\x0f€>€FD\0\0#Ý#H\0\0ê¦u€\a„AIüû(€ÀN\x03\0âD\x10\x04\x1cÕ)P\x13\0	¦	¦H@\0 \bP\x7f€L˜\x01P\x1f€d¶'Iü•2\0\x13\0\x0e\0C\0\r\03\0\v\0#\0\f@\x10 \b˜L¨9¨ú¨»¨}€\a\0c\0\x0f\x10c€\x10Iÿ¯Ú€ÀN\x03\0¸€(Iü«æH\0\0³¦u\ô\0Nò\0¬P ÿíæCé\vDP\0\x1aÑ\b„EL\x11\0\x06D0\0)L\x11ÀžÀ\x05<-S¾Ý"Õ\x04€	Iÿ¤]€ÀN\x03\0•D\x10\x04\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW/¿ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW/áoüÿ\x01\x01û\0\x02ÕÜ\0#\0\f\0\x03\0\v@! \bP\x1f€L\0C\0	\03\0
˜P_€d¶¡¨„¨„@©I©
¨Ë\x10 €\x10€\x01Iÿ¯RÕ¼¦4\0\x15\0\0@\0 \b˜\x01–\x01€F>\x1d‚XIüüÿ\x02\x03^[„ªØ\x13\x02\x03\x1cD\x10\x173L\0À\x0e€\a„!„@IýŠF„\x01\x10\x03‚„„!€\aIÿ¨\x05>m‚X\x04\x03\0\x11Iüø9À\x1f€	Iýs½\0\x13\0@\x043\0\x11P \x01¨T\0€\x03P\x1f€ló›Iý¬‚À\x0e\x04\x03\0\x11F\óÿXRÇ@\0\x14\x02„ \x10\x13\0B\x14\x03\0\x11Ç\x12\x02\x03^[„*L\0À\x0e\x02\x03\x1cD \x14óL\x01@\b„ >\x15‚š„'<\x1f`§„@<\rWêD\x14êÔ€b€‚\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW17ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW1noüÿ\x01\x01û\0\x02„¡IýÈr„ÀÕ\x10„\x01Iÿ«QHÿÿS€\x06€(IüŸw€ÀÕ\x05„ÂÕ\x03D`\0\x12€\x06ìt:oª„Ýž;ÿü¼ïüIü†/’\0ì\x04;ÿü„Ýž:oœ¼ïüD ü“–I€ÀL\x11\0=âAé\x13D\0ü_L\x10\0wâ\x01é\x06D ü\rL\x11@ƒÕ3Œ\fL\x10\0#ŽZL\x11@|Õ#D üÉL\x11\0\x13âAé\x06D\0ü¼L\x10@qÕYD üôL\x11\0^D ýYL\x11@hH\0\0bœ\x02IÿŠuœ3Iÿ¬ˆH\0\0cœ2Iü¿\x15H\0\0^œ2IÿžþH\0\0Yœ\x03IÿŸ¯ÕT³\0s\0\f\0#\0\r\0\x13\0\v@!@\b\0\x03\0\x0e@s \b™ú™ù@\0`\b™ø\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW2Êÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW2ðoüÿ\x01\x01û\0\x02€\x06IüÕ™D\x01\0\x02Lp@<¦2ž\x01–\0\ð\0þé5„!„\x04Iþe¯<\x1dY”„\0Ý!„\0Iýóž>\r³¼Iýs(€ÀÀ$\0\0\x02FIü¸¨€\x06IýsSÕ\x1c¦3Iÿž_Õ\x18œ3Iÿ¡\x13Õ\x14„C>%´—„_>%´–œ\x03Iü¿Õ
<-X^[Ý"Õ\a€\x06Iÿ?\x0f’\0Õ\x02„\0ì\x04:oœ„Ýž:oª¼ïì.\x15³ÙF \0¦X!\bŒ>\rKX\x14 \0-T\x10\x04F \0¢X!\r|\x14 \0.Á\x06F\x10\0¡X\x10‡ØÕ\x03D\x15%p\x14\x10\0#F\x10\0¢X\x10Œ\b<\x1fXZF\x10\0ªX\x10ŠÐ<\x1fX™F\x10\0ªX\x10Œ\x14<\x1fX˜F\0\0¬X\0\x02@<\x0fR\b\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW4Dÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW4ioüÿ\x01\x01û\0\x02F\0\0«X\0\x0f„<\x0fR\x02F\0\0¬X\0\x05\x14<\x0fR\x01>mKXIÿ¡qF \0ªX!\x03ì</XÍF \0ªX!\fÌ</XýF \0¦X!\x0e¸</YhF \0¢X!\vô</X-F\x10\0¢X\x10‡p\x14\x13\0\x13F\x10\0¢X\x10‡\¨t>\rkIIýÆž„@<\r[	€¢€b€‚F\x10\0§X\x10‡ÔIýÇ8>}K\x14>\x05kIF\x10\0X\x10ˆÐ<\x1fSô„a´§€ƒ„\x02F\x10\0§X\x10ˆ¤D'¼ôÝ%„`´§€ƒF \0¥X!\0ü„\x04F\x10\0¥X\x10ÔÝ%F\x10\0¥X\x10„Ü„
Iý×[F\x10\0«X\x10Š\b<\x1fXfF\0\0¤X\0\rÄ\x14\x03\0 F\0\0¡X\0\r€¨3\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW5Äÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW5ëoüÿ\x01\x01û\0\x02IÿÂ,F \0 X!\0 </ZIF \0 X!\0`</ZJF \0X!\x05„</X²F \0¡X!\x0eD</X‹F \0¡X!\x0e\b</X‡P\x0f€\fIúœôF\0\0¨X\0\x0fôIþOxð\x03Iú\x01F\x10\0¦X\x10,<\x1fX/F\x10\0¡X\x10ƒÌ<\x1fS¹F\x10\0 X\x10Ü<\x1fXXF\x10\0žX\x10†À<\x1fX·F\0\0¢X\0\x0eŒ<\x0fS8F\0\0¢X\0\r´<\x0fS9F\0\0¦X\0\r\x18¨2Iÿ’¶F\x10\0ŸX\x10À<\x1fZ6IÿƒXD\0\0\x10F\x10\0¥X\x10xIýÖâD@JJ<J¥…FP\0¥XRˆ¨<_XgFP\0¨XR†œ<_YM„ >UjzF@\0¦\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW7Dÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW7{oüÿ\x01\x01û\0\x02XB\x06d<OS'F@\0¦XB\x03,©>D@\0\x1e>EK	F0\0¦X1†(<?S&>\r%œ„ „HIþÖ<F@\0žXB	¤<O)¡F@\0 XB\vô<OY	>\r'ð„?„GIþÖ"„G>\r(8„ IþÖ\x1c„\0F\x10\0¦X\x10‡”IýÖ•F0\0žX1…h<?XYF0\0 X1‡„<?WüF0\0¨X1ì<?Y`F0\0¬X1ˆØ<?WìF0\0§X1ˆÌ<?YbF0\0§X1ˆ¸<?YcF0\0 X1†x<?X\x15F0\0¨X1†ˆ<?YN„\0F\x10\0§X\x10‚¼Iþ¡8F\x10\0ŸX\x10ˆÄ<\x1fZkF\x10\0X\x10ü<\x1fZlF\x10\0Ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW8Ôÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW8üoüÿ\x01\x01û\0\x02X\x10‹Ü<\x1fZWF\0\0¦X\0\x03\x14¨=F\x10\0ŸX\x10Šø<\x1fZnF\x10\0ŸX\x10ˆØ<\x1fZ;F\x10\0«X\x10Ž¤<\x1fWëIÿ‰?F \0ŸX!\x05¤</Z,F \0ŸX!\b°</ZrF \0ŸX!
¬</ZiF\x10\0¥X\x10„pF \0¥X!\0è\x14\x13\03</X_F \0¥X!\0Ð</X^.\x05$aF \0¥X!\0¨</X]F\x10\0¬X\x10…\0<\x1fR\x04È	D\x10\x15!<\x1aÚ\x16D\x10\x06\x11<\x1aÚ\x18FB\x01€XB\x06\x11FP\x01RXRX<OWï<_WðF@\0¬XB\x03è<OR\x03D@\b\0<OI-•!<OI.„Š>Eª}„e>5©ñF0\0¥X1\f…@<?\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW:Wÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW:xoüÿ\x01\x01û\0\x02RÆ>¥$“„h>5ªY>¥kO>¥kP„>¥k‚>EªÑ>¥$”„j>5ª|„…>E©ð„a„ˆ„Â>5ªÐ>EªX>eªi>eªhF\x10\0–X\x10Ž|„J>\r%\IþÕ\x1eIÿïÚF \0X!\b¼</YT>ej–F \0©X!\x0ed</XáF \0©X!
ð</XâF \0©X!\r$</XæF \0žX!\x04À</XiF \0§X!\x05è</YaF\x10\0¤X\x10‡4<\x1fRÇF\x10\0¤X\x10‡ <\x1fRÌF\x10\0¤X\x10‚\x04<\x1fRÏF\x10\0¤X\x10€Ü<\x1fRÕ>\rMØIþTH„Ä>=J„„Œ¯^[¯š€#P\x01€\bD \08IþÔÁ>e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW;Ñÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW;õoüÿ\x01\x01û\0\x02ƒåF \0¤X!\v¬</XcF \0ªX!\x0f\x10</XñF \0ªX!\x02\f</Xï„	Iÿ‰ZF0\0ŸX1‚ð<?Z-F0\0§X1…¨<?YUF0\0§X1…”>\x1dNÈ<?SºF \0§X!\x04ä¶AF \0£X!\x05\¨ŽF \0£X!
„¨ŠF \0žX!\x0e0¨F\x10\0§X\x10‚ø<\x1fSó>¥$j>\r›ÚIýÄ\x1a„@€b€‚€¢F\x10\0«X\x10ˆôD\0\x1f@IýÄ´F@\0¨XB\x0fà<OXðF@\0ŸXB\0T<OXßF@\0ŸXB	8<OZ7F0\0§X1€|<?SòF@\0¨XB\x0fÌ<OXõF@\0£XB\x03T<OS;F@\0žXB\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW=Nÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW=qoüÿ\x01\x01û\0\x02	0<O)œ„ˆ>EjúF@\0žXB\b„<O)›F@\0¦XB\x0e¤<OY^„>E$m>}KXF0\0£X1ƒh„À\x143€\v<o[*>ejR>]³´>¥$•„}\x102€âF0\0¢X1‰Ø\x10¢€ã\x10¢|>\x05›Ú\x143€\x17€&>\r”ÜD \0$IþÔ%€&„I>\r%IþÔ\x1fF@\0¦XB	D<OXyF@\0¨XB\fè<OYYF@\0¡XB	|<OXDD?  <:¥eF@\0¨XB\x0eÌ<OX¶F@\0¦XB\x0e|<OYVF@\0žXB\0\x18<OZ*F@\0ŸXB\x03Ä<OZ+F@\0¦XB\vì<OX:F0\0¤X1Ž€\x143€\x1fF@\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW>Êÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW>îoüÿ\x01\x01û\0\x02\0«XB\x04¨<OXËF@\0«XB\f\x18<OXöF@\0«XB\rx<OY\0F@\0¦XB\x0eh<OY;F@\0£XB\x04D<OXjD0\x02€<:¥b„\rF\x10\0¨X\x10\x10IþŸ\x0eIüÛ.Iÿ<D0»€<?XNF0\0ªX1€¬<?XéF0\0¤X1Š´<?XnF0\0¤X1ŠP<?XlD\0\0\x19F\x10\0¦X\x10ˆxIýÔ\x12F@\0XB\a°<OI\x11„Ÿ>¥$d>E${F@\0 XB\x01`<OZ!F0\0£X1Ü<?RÐPo€\x04>¥$nD\0\x01^€&„BIû\x1aÅÈ\x15¦0ž\x01–\0\ð\0þè\x0f¦1D\x10\0ÿL\0€\vÀ	T \00D’\x06>%\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW@Bÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW@goüÿ\x01\x01û\0\x02$y>\x05$z>\x1dH$\0@€\x1d\0P€\x1eFp\0ŸXs\x14<\x7fZQ’¥•mTB\0?Fp\0ŸXs´<\x7fZ/\x10P€\x1e\x10@€\x1d„aF`\0¡Xc\bD>\rOD<oXW>5IÏF`\0žXc\x068F\x10\0X\x10Œp<oXÜ\x14\x10\0\x16FP\0¡XR…¬F\x10\0X\x10˜<_SÐ\x14\x10\0\x17FP\0¡XR„|F\x10\0¡X\x10†l\x14P\0\f\x14\x10\0\x18F`\0¡Xc\x04 F\x10\0¡X\x10…è<oY-<\x1fSÎF\x10\0¡X\x10„°>5µ8\x14\x10\0\x11F`\0¦Xc\x0e(F\x10\0¡X\x10„œ<oYi¨AF\b\x10\0\x04 \0\x1cB!D\b\x14 \0\x1c<=XÝ<-XÞF@\x02\0@1\x04@!\x10\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWA¼ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWAßoüÿ\x01\x01û\0\x02FP\0¦XRŠì<_RâFP\0¨XRŽŒ<_XäDP»€<_XKFP\0¡XR‚Œ<_S/<?XÝ</XÞF\x10\0 X\x10‡˜FP\0¨XRŽà<_Xø<\x1fY7FP\0©XR„Ü<_YS<\rWûÝ ì\x14:oª„Ýž’\0:o ¼F€\0¬X„
,<Y\x01F€\0¬X„\bì<Y\x02F€\0X„\x02œ>\r³´<Y\x03F€\0 X„\vÀ„`<Y\r\x02 \0|„!„Ê„¢„…>5j™>\x15jp\x10`\x01\x12\x10P\x01\x13\x10\x10\x01\x15\x10@\x01\x14\x10`\x01\x0e\x10P\x01\x0f\x10\x10\x01\x11\x10@\x01\x10\x100\x01\x1aÂ\x05D\0ÿÿL @	.\x05´ÿÈ\x05IþOÛ<
ÚV:o „Ýž;ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWC6ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWCXoüÿ\x01\x01û\0\x02ü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x01\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x02\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWD´ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWDßoüÿ\x01\x01û\0\x02:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x03\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x04\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWF3ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWFVoüÿ\x01\x01û\0\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x05\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\x06\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWG¨ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWGôoüÿ\x01\x01û\0\x02>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04;ÿü|:\x0fˆ<:?¨<:ÿ¼<;ÿÿ¼d\x02\0\x02d\x12¤\x02d"\x04\x02:\x0fˆ<Tp\0\x06\ƒ€\x02Nƒ\0\bP\x7fþd’\0\x03d\0\0	>\x1d%0„\a\x14\0€\0>\x1d%,P\x0f€\x04\x14\0€\0>\r$Ô\x04\0\0\0Kà\0\x01:\x0fˆ\x04d\x02\0\x03d\x12¤\x03d"\x04\x03;ÿÿ„:ÿ¼\x04:?¨\x04:\x0fˆ\x04;ÿü@d\0\0\x04\0\0:o ¼>}%,´\a>l¤x B´FF\0\0®X\0\vÐÝ"´\a´F CF\0\0®X\0\väÝ"´\a´F DF\0\0®X\0\vøÝ"´\a\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWIJÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWIkoüÿ\x01\x01û\0\x02´F EF\0\0®X\0\f\fÝ"´\a´F FF\0\0®X\0\f Ý"´\a´F GF\0\0®X\0\f4Ý"´\a´F\x04\x10\0\bF\0\0®X\0\fHÝ"´\a´F\x04\x10\0	F\0\0®X\0\f\Ý"´\a´F\x04\x10\0
F\0\0®X\0\fpÝ"´\a´F\x04\x10\0\vF\0\0®X\0\f„Ý"´\a´F\x04\x10\0\fF\0\0®X\0\f˜Ý"´\a´F\x04\x10\0\rF\0\0®X\0\f¬Ý"´\a´F\x04\x10\0\x0eF\0\0®X\0\fÀÝ"´\a´F\x04\x10\0\x0fF\0\0®X\0\fÔÝ"´\a´F\x04\x10\0\x10F\0\0®X\0\fèÝ"´\a´F\x04\x10\0\x11F\0\0®X\0\füÝ"´\a´F AF\0\0®X\0\r\x10Ý"´\a´F´ F\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWJÆÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWJíoüÿ\x01\x01û\0\x02\0®X\0\r$Ý"´\a\x04p\0\x11Pƒ€'´f¢¹F\0\0®X\0\r8Ý#Lt\x7fø:o „Ýž:oœ¼ïü>}%,´\a>l¤x´@´fF\0\0®X\0\r\„ Ý#´\a´f „!F\0\0®X\0\rtÝ#´\a´f ‚„"F\0\0®X\0\rŒÝ#´\a´f ƒ„#F\0\0®X\0\r¤Ý#´\a´f „„$F\0\0®X\0\r¼Ý#´\a´f …„%F\0\0®X\0\rÔÝ#´\a´f †„&F\0\0®X\0\rìÝ#´\a´f ‡„'F\0\0®X\0\x0e\x04Ý#´\a´f\x04 \0\b„(F\0\0®X\0\x0e\x1cÝ#´\a´f\x04 \0	„)F\0\0®X\0\x0e4Ý#´\a´f\x04 \0
\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWLIÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWLloüÿ\x01\x01û\0\x02„*F\0\0®X\0\x0eLÝ#´\a´f\x04 \0\v„+F\0\0®X\0\x0edÝ#´\a´f\x04 \0\f„,F\0\0®X\0\x0e|Ý#´\a´f\x04 \0\r„-F\0\0®X\0\x0e”Ý#´\a´f\x04 \0\x0e„.F\0\0®X\0\x0e¬Ý#´\a´f\x04 \0\x0f„/F\0\0®X\0\x0eÄÝ#´\a´f\x04 \0\x10D\x10\0\x10F\0\0®X\0\x0eÜÝ#ì\x04:oœ„ÝžF\b lX\0\0d<-IM´ @!|\bB\x10ü	@\x10ˆ\x04¶ <-INF7\0\0@!p\b´ @!\f\x02F8ÿÿX1ÿ@\x10Œ\x02@\x11\x04\x04¶ Ýž’\0>\x1d(ì\0\0€\x14À\x14\0\0€,È\x03„\x01Õ\x0f\0\0€DÈ\x03„\x02Õ
\00€\„CD\x10\0ÿ\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWM×ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWMùoüÿ\x01\x01û\0\x02@\x01\f\x1a@\0Œ^[Ýž’\0<-IK>\x1d)\0„\0§\bœÁÄ\a§	Ä\x05\x04@ÿû´¢Ô\a–\x1a„dŒ8L\x01ÿô„\x1fÝž’\0:oª¼ïô>l¤x´&ƒ€F\0\0®X\0\x0eô>(ìÝ!\x15Ï€\x01FPt€\x14€É…\0¦8À\x0e¡q¦º¦ù´†\x05Å\0\0i€(F\0\0®X\0\x0f$Ý<\x01„\x04ŒøŒØL€\x7fí\x05Ï€\x01„\0·<ì\f:oª„Ýž:oœ¼ïü„Á<oIM<\rI7Ý <\x0fIO<\rI9Ý Iÿÿª<\x1dIOæ&è\aæ#è	„BL\x11@\x16Õ\a„gL\x11À\x12Õ\x0e„BÕ\x0f.\x1d$€L\x10@\x04„@Õ	N\x05\0
<oINÕ\x06„CÕ\x02„D</\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWOUÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWOxoüÿ\x01\x01û\0\x02IN.\x15%LÁ\x13<\x1dIN„cL\x11À\x0f„ >\x15%L<\rIK<\x1fIMœ\x04´ B\x10¬	¶ Õ^[<\x1dINÉ\b<\x1dI?–\0Ý!„?>\x15$€<\rILÀ\f„fL\x01€
F\b l\x04\x10\0\x19X\x10\0\x14\x10\0\x19Iÿÿ\x1f„\0ì\x04:oœ„Ýž;ÿü¼ïü–\0æ\x04é
<\x1d)\x1eF\0\0®X\0\x0fTÝ!„\x06Õ\x12D0\0\x18B0\f$>-(ì˜Ú€CªQ„\0P\x11€\x10„a¶\x02®Ì®\x0e®Íì\x04;ÿü„Ýž;ÿü¼ïü–\0æ\x04é
<\x1d)\x1eF\0\0®X\0\x0f|Ý!„\x06Õ\x0eD\x10\0\x18B\x10\x04$>\r(ì˜HŒ0¦\fÀ\x04„\x01®\r„\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWPðÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWQ\x14oüÿ\x01\x01û\0\x02æ\x04é
<\x1d)\x1eF\0\0®X\0\x0f|Ý!„\x06Õ\x0eD\x10\0\x18B\x10\x04$>\r(ì˜HŒ0¦\fÀ\x04„\0®\r„\0ì\x04;ÿü„Ýž;ÿü¼ïü–\0æ\x04é
<\x1d)\x1eF\0\0®X\0\x0fTÝ!„\x06Õ\x15D@\0\x18„cB0\f$B\0\x10$>M(ì˜\x04œÙªD”Û„!˜Ü®F®E®D¨™„\0ì\x04;ÿü„Ýž’\0;ÿü¼ïü–\0æ\x04é
<\x1d)\x1eF\0\0®X\0\x0f|Ý!„\x06Õ\x0eD \0\x18B\0\b$>=(옃\0\x01\0\x14À\x04žI¨Q„\0ì\x04;ÿü„Ýž;ÿü¼ïü<\rIMÈ
<\x1d)\x1eF\0\0®X\0\x0f¨Ý!„\x1fÕ\f<\x1dIKœL´„`BB,	¶<?IM\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWRjÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWRoüÿ\x01\x01û\0\x02€\x03ì\x04;ÿü„Ýž;ÿü¼ïü<\rIMÈ
<\x1d)\x1eF\0\0®X\0\x0fÀÝ!„\x1fÕ\f<\x1dIK„`œL´€\x03XB\b\0¶<?IMì\x04;ÿü„Ýž:oœ¼ïü<\rI:Ý Õ\x04<\rIQÝ <\rIM„!L\0¿ú<\rI;Ý ì\x04:oœ„Ýž;ÿü¼ïü<\rIMÈ
<\x1d)\x1eF\0\0®X\0\x0fÀÝ!„\x03Õ\x04Iÿü«„\0ì\x04;ÿü„Ýž–H€`@@\x04\x17À\x03„\x05Õ\x14„L\x12@\x04¦XÕ\x0e„‚L\x12@\x06B1€	¤XÕ\a„„L\x12@\x06’b”Ú´#¶"Ýž’\0–€`@@\b\x17À\x03„\x05Õ\x15„L"@\x05–H®XÕ\x0f„‚L"@\aB1€	\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWSçÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWT\x0eoüÿ\x01\x01û\0\x02–I¬XÕ\a„„L"@\x05’b”Ú¶#Ýž:o˜¼€`<?IP€\x01„ €Â€AÝ#¶\x06„\0:o˜„Ýž’\0„D</INF \0­X!\x0eh</I5F \0®X!\0x</I4F \0­X!\vl</I6F \0®X!\x03d</I7F \0®X!\x01ä</I8F \0®X!\x01´</I9F \0­X!\vÐ</I:F \0®X!\x03°</I;F \0­X!\f˜</I<F \0­X!\fà</I=F \0­X!\r </I>F \0®X!\x03p</I?F \0­X!\r`</I@F \0­X!\r°</IAF \0®X!\x03\x18</IDF \0­X!\rð</IE\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWUgÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWUŠoüÿ\x01\x01û\0\x02F \0­X!\x0e,</IFF \0®X!\0„</IBF \0®X!\x02t</ICF \0­X!\x0e”</IGF \0­X!\x0eÀ</IHF \0­X!\x0eø</IIF \0­X!\x0f0„\0</IJ<\x0fIMd\x06à\x03Ýž’\0F\b\0\0d\x06à\x03„\0Ýž€@æ\x12é\vD\0\0\x1fL \0\x04„\x02Õ
d\x12d\x03„\0Õ\x06<=IK„\08\x11Š
Ýž’\0;ÿü¼ïüD \09L\x11\0[\ð€:è!ŽHL\x11\0I\ð€2è\x12ž—L\x11\0:\ð€+è\x05ž‘L\x11@aÕ/œ‘L\x11\03œ‘L\x11@ZÕ1œ’L\x11\08â"é2œ‘L\x11@QÕ4ŒIL\x11\0D\ð€Cè\x12ž–L\x11\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWVÞÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWVýoüÿ\x01\x01û\0\x02\08\ð€=è\bž’L\x11\0,œ‘L\x11@>Õ*œ•L\x11@:Õ,œ‘L\x11\00œ‘L\x11@3Õ.d\x06\0\x03Õ5d\x06\x04\x03Õ2d\x06\b\x03Õ/d\x06\f\x03Õ,d\x06 \x03Õ)d\x06$\x03Õ&d\x06(\x03Õ#d\x06,\x03Õ d\x06@\x03Õ\x1dd\x06D\x03Õ\x1ad\x06H\x03Õ\x17d\x06L\x03Õ\x14d\x06`\x03Õ\x11d\x06d\x03Õ\x0ed\x06h\x03Õ\vd\x06l\x03Õ\b<-)\x1eF\0\0®X\0\x0fäÝ"ì\x04;ÿü„Ýž’\0:o ¼>})\0D`\0)¦8À\a¦9À\x05€&„\0Iÿÿp±D\0\0-ŒøL`\x7fô„\0:o „Ýž:oª¼ïü>(ìP”\0\x14QÄ\0\bD`\0)„àF \0®X¥\0¬\0\x04€\0À'\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWXXÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWXoüÿ\x01\x01û\0\x02\0\x04€\x01À$´\bP\x13\0\bÝ*\x04\x04\0\x01P\x13\0\x10Ý*´\x1cP\x13\0\x18Ý*\0\x04€\x02È\x03„âÕ\x0f¸\x01È\x03„ãÕ\v„!L\0À\x04„åÕ\x06V\0\0\x02„'@p€\x1a€\a€&Ý*±D\0\0-8\x18QÎ\0\x18L`\x7fЄ\0ì\x04:oª„Ýž’\0æ\x12éHD \0>L\x01\0B\ð\0?è\x12ž“L\x01\03\ð\0<è\x05Ž\L\x01@\x1aÕ\x1aœ‘L\x01\0,œ‘L\x01@\x13Õ*œ–L\x01\0\x19\ð\0Eè\x05ž‘L\x01@	Õ\fœ‘L\x01\0\x12œ‘L\x01\0\x12„BÕ$d\x02d\x02Õ\x03d\x06 \x02¶\x01„@Õ\x1cd\x06$\x02Õûd\x06(\x02Õød\x06,\x02Õõd\x06\0\x02Õòd\x06\x04\x02Õïd\x06\b\x02Õìd\x06\f\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWYÙÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWYúoüÿ\x01\x01û\0\x02Õé<=IK„@81‚\x02¶a€\x02Ýž’\0:o˜¼<\rIM„!L\0À\v<\x1d)\x1eF\0\0¯X\0\0\0Ý!„\x04Õ\x14Iÿûê<-I<>\x05$€d\x12¤\x02Ý".=$€„&^1€\0„@@\x01\f\x1a@\0Œ^[:o˜„Ýžd\x02d\x02T\0\0\x0fÝž’\0;ÿü¼ïüD \0\x18–@B\0ˆ$>=(ì˜\x03\00\0\x14Ë
<-)\x1eF\0\0¯X\0\0(Ý"„\x01Õ\x06„ Iû5Ò’\0„\0ì\x04;ÿü„Ýž:o˜¼I\0\0TD\x10\x11\bL\0€^[I\0\0ND\x10\x11\aL\0À\x12<\rINž\x01æ\x02è\f<\rIK„A>%%Lœ\x04´ X\x10ˆ\0¶ Õ\x04<\rI8Ý „$<\x1fINIÿûh„\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW[Nÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW[Žoüÿ\x01\x01û\0\x02<\x0fIL:o˜„ݞݞ’\0FH l€D€"€a„\0\x14\x02\0\x1a\x14\x01\0^[\x14\0€\x1c\x14\x01\0^[\x14\0€\x1c\x14\x01€\x19Ýž’\0;ÿü¼ïüF\x10\0®X\x10„Œ<\x1fIQD\x10Õ¸<\x1f)ñIÿÿß’\0ì\x04;ÿü„Ýž<\rI\x16Ýž’\0:o˜¼<\x1d)\x1e€ÀF\0\0¯X\0\0@Ý!„\0€f€ D \0ÿIú™­:o˜„Ýž:oœ¼ïôF\b l\x04\x10\0\x1a<\x1fI\x16N\x12\x01Ý„ÀD\0\x11\bö.5$™L\x10\0¿\ð‘	è7ž‡L\x11\0\ð‘\x02è^[D0\x10\x03L\x11€Ø\ð\x04è	ž\x1aL\x10\0¸œL\x11@pH\0\0ÃœÚL\x11€åâ#Nó\0ל\x19L\x10@eH\0\0è\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW\çÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW]
oüÿ\x01\x01û\0\x02ž„L\x11\x01Q\ð‘\x05è	žÆL\x11€mž\x05L\x10@WH\0\0\x7fž‚L\x11\0t\ð‘\aNò\0„ÕfŒ\bL\x10\x01	\ð‘\x11è^[ž…L\x11\x01\x1d\ð‘\fè	žÇL\x11€zž\x06L\x10@;H\0\0Ëž‚L\x11\0Û\ð‘\x0fNò\0äžÄL\x11À/H\0\0ÎD\0\x12\x01L\x10\0,\ð’\x02è\x0eD\0\x11\x19L\x10\x01\x1eœ\x01L\x10\x015D \x11\x11L\x11@^[H\0\0åD0\x1f\x01L\x11#œ\x19L\x10\0÷D \x12\x02L\x11\0\x03Õ\fF\b lF\x1e\x1e\x1eX\x10á\x14\x10\0^[„\0Iú¢±„ÀH\0\x01(F\b lF\x1e..X\x10‚â\x14\x10\0^[€\x06Iú§¯H\0\x01^[>\r$TÕ\x03>\r$д\0Ý €ÀH\0\x01\x11F\b l\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW^_ÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW^‚oüÿ\x01\x01û\0\x02\x04\0\0^[>\x1d$ôH\0\0×F\b l\x04\0\0^[>\x1d$øH\0\0ÏF\b l€ \x04\0\0^[\x04\x10€\x1c<-I<–\0Ý"Õ
>\r%\x14ÕÝ>\r%\x18ÕÚ<\rIDÝ €À<\rI8Ý H\0\0æFx l<=IH\x04\x03€^[„!P/€\x04Ý#ó\x01€À\x143€^[H\0\0ÖFx lXs€l<=IH´\a„"H\0\0ªFx l<=IH\x04\x03€^[„$@/„\0Ý#ñ\x01€À\x14\x13€^[H\0\0¼F\b l€ \x04\0\0^[<=II\x04\x10€\x1c„AÕ\x16F\b l€ \x04\0\0^[<=II\x04\x10€\x1c„BÕ\vF\b l€ \x04\0\0^[\x04\x10€\x1c<=II„DÝ#Hÿÿ‡Fx l<-IC\x04\x03€^[P\x1f\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pW_Ûÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pW`\x02oüÿ\x01\x01û\0\x02€\x04Ý"ò\x01€À\x14#€^[H\0\0Š>\r%\x1cHÿÿrF\b l\x04\0\0^[F\x18 l<=I@\x04\x10€\x1c–\0„AÕ\x19F\b l\x04\0\0^[F\x18 l<=I@\x04\x10€\x1c–\0€FÕ\fF\b l€ \x04\0\0^[\x04\x10€\x1c<=I@–\0„BÝ#Õ^F\b l€ \x04\0\0^[\x04\x10€\x1c<-IA–\0Ý"Hÿÿ)F\b l€ \x04\0\0^[<-IB\x04\x10€\x1cÝ"Hÿÿ4<\x1dI6P\x0f€\x04Ý!€Àó\x01F\b l\x140\0^[Õ9F\b l\x04\0\0^[>\x1d$ü´!–\0Ý!Hÿÿ\x1dFx lF\x18 lXs€l´\a<=IJ\x04\x10€\x1cP/€\x04Ý#€Àð\x01¶\aÕ\x1cF\b l\x04\0\0^[IÿþC’\0Õ\x14\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWagÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWaˆoüÿ\x01\x01û\0\x02F\b l\x04\0\0^[>\x1d)L8\0Ž
F\b lœÙ\x04@\0\x1c–Øœ\x198@Ž
>\x05$™<\rI\x16D\x10\x11\x1aL\0€\x05„ >\x15$™F\b l„ \x14\x10\0\x1aF\b lX\0\0d´ D/ÿ\x0f•´@\x10ˆ\x02—°@c\x04\x04¶À´@´ œ‘T!\0\x0f’$”L@\x11\x04\x04¶ ì\f:oœ„Ýž€`Â\a™J\b@€\x01\x18A€\x01ÙüÝž’\0€`™ZÓ\x04\x18\x11€\x01ÕýÝž’\0d\0\0\0patch/sys_patch_bin_t.c\0debug uart enabled in patch...
\0patch/btsys_patch_bin_t.c\0\0\00\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWbÛÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWbüoüÿ\x01\x01û\0\x02\0‘ãr\a–äu\x0eŸí|	˜ê{\x1cÿn^[Šøi\x12ƒñ`\x15„ög8©ÛJ?®ÜM6§ÕD1 ÒC$µÇV#²ÀQ*»ÉX-¼Î_pá“\x02wæ”\x05~ï\fyèš\vlý\x1ekúˆ\x19bó\x10eô†\x17HÙ«:OÞ¬=F×¥4AТ3TÅ·&S°!Z˹(]̾/àq\x03’çv\x04•î\x7f\rœéx
›üm\x1fŽûj\x18‰òc\x11€õd\x16‡ØI;ªßN<­ÖG5¤Ñ@2£ÄU'¶ÃR ±Ê[)¸Í\.¿\x01sâ—\x06tåž\x0f}ì™\bzëŒ\x1doþ‹\x1ahù‚\x13að…\x14f÷¨9KÚ¯>Lݦ7EÔ¡0BÓ´%WƳ"PÁº+\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWdPÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWd{oüÿ\x01\x01û\0\x02YȽ,^Ïd2!\x19\x14\x11\x0e\r\v
\0\0
\x05\x03\x03\x02\x02\x01\x01\x01\x01\0\0\…\x01\x02p
\x02\x0223456789:;10\x16\x17\x18\x19/.-,\x15\x14<\0\x13\x01\0\0\x16\x17\x18\x19./01-,\x15\x14\x1a^[\x1c\x1d+*)(\x1e\x1f'& %\0\0NMLKJIHG/0\x16\x171.\x18\x15F\x19\x14-2\0\x13\x01,3\0\0\x0f\0\0\0(\0\0\0A\0\0\0K\0\0\0\x05\0\0\0\x1e\0\0\07\0\0\0A\0\0\0\x14\0\0\0-\0\0\0F\0\0\0N\0\0\0\0\0\0\0\x19\0\0\02\0\0\0<\0\0\0NMLKJIHG/0\x16\x171.\x18\x15F\x19\x14-2,3\0\x19á\x1d@\x1e ,1 6\r\\x0e]H`CcÆglkÇuˆy\x0e\0\0\0\v\x01\b\x04\r\x04\x0e\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWeÍÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWeùoüÿ\x01\x01û\0\x02\f
\x0e\x0e\x0e\x16\x0e\x1f\b\x04\r\x04
\0\0\0\v\x01\b\x04\r\x04\x0e\x05\f
\x0e\x0e\x0e\x16\x0e\x1f\x0f\x1f	\0\x02\x01\x0f\0\x04\0\x03\0$%&%''&&%&
\0$%&%''&&0\0	\0\x15; \0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWgOÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWgwoüÿ\x01\x01û\0\x02\0\0[FDB] R.S R28 0x%x
\0[FDB] R.S R29 0x%x
\0[FDB] R.S R30 0x%x
\0[FDB] R.S R15 0x%x
\0[FDB] R.S R3 0x%x
\0\0[FDB] R.S R4 0x%x
\0\0[FDB] R.S R5 0x%x
\0\0[FDB] R.S R6 0x%x
\0\0[FDB] R.S R7 0x%x
\0\0[FDB] R.S R8 0x%x
\0\0[FDB] R.S R9 0x%x
\0\0[FDB] R.S R10 0x%x
\0[FDB] R.\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWhÖÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWhøoüÿ\x01\x01û\0\x02S R0 0x%x
\0\0[FDB] R.S R1 0x%x
\0\0[FDB] R.S R2 0x%x
\0\0[FDB] R.S R31 0x%x
\0[FDB] R.S PSW 0x%x
\0[FDB] R.S PC 0x%x
\0\0[FDB] D.S D:0x%x %%LE %%LONG 0x%x
\0\0[FDB] PC(0x%x) = 0x%x
\0\0[FDB] PSW(0x%x) = 0x%x
\0[FDB] R28(0x%x) = 0x%x
\0[FDB] R29(0x%x) = 0x%x
\0[FDB] \0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWjPÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWjwoüÿ\x01\x01û\0\x02R30(0x%x) = 0x%x
\0[FDB] R15(0x%x) = 0x%x
\0[FDB] R3(0x%x) = 0x%x
\0\0[FDB] R4(0x%x) = 0x%x
\0\0[FDB] R5(0x%x) = 0x%x
\0\0[FDB] R6(0x%x) = 0x%x
\0\0[FDB] R7(0x%x) = 0x%x
\0\0[FDB] R8(0x%x) = 0x%x
\0\0[FDB] R9(0x%x) = 0x%x
\0\0[FDB] R10(0x%x) = 0x%x
\0[FDB] R0(0x%x) =\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWkÎÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWk÷oüÿ\x01\x01û\0\x02 0x%x
\0\0[FDB] R1(0x%x) = 0x%x
\0\0[FDB] R2(0x%x) = 0x%x
\0\0[FDB] Num     Type      Enb Address    range
\0\0\0[FDB]   %d        %d        %d 0x%x    0x%x
\0\0\0\0[FDB] Too many hardware break point
\0\0\0\0[FDB] out of hardware break point range
\0\0\0\0[FDB] target i\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWmLÿ\x05\x02\x01\x01\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x02\0\0\0\0\0âL5pWmyoüÿ\x01\x01û\0\x02s runing
\0[FDB] target is not in debug state
\0[FDB] no such srname: 0x%x
\0[FDB] target is already in debug state
\0[FDB] No BP number %d
\0\0[DI] send_wmt_cmd
\0\0\0\0\0\0\0\0\0\0\0\0\0\0ØO\b\0äÄ\x06\0p\x18\b\0Ôn
\0д
\0n
\0\x02\x02\x06\0&\x10N\x10\0À	\0\b\0\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0°×	\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWnÑÿ\x05\x02\x01\x01\0\0\0\0\0H\0\0\0H\0\0\0\x02\0\0\0\0\0âL5pWo\x02oüE\x01\x01A\0\x03\0\0\0\0Pß
\0\0\0\0\0\x02\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x02\0\0ÿ\0\0\x02Ðÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWoÃÿ\x05\x02\x01\x01\0\0\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0âL5pWp\x1foü\x05\x01\a\x01\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pWp“ÿ\x05\x02\a\x01\0\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0âL5pWp»oü\x06\x01\x06\x02\0\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pY\0|ÿ\x05\x02\x06\x01\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY\0¸\x03\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY §\x0e\x04\x01\x03\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY È\x03\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âL5pY!l\x0e\f\x01\x03\x10\0¿>þÛÿ{‡\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY!ƒ\x01\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âL5pY"‡\x0e\f\x01\x01\x10\0\b!\x15\bF\0\x11\x06\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY"	\x10\0\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0âL5pY#<\x0e
\x01	\x10\0\x01"vF\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY#‰\x05\x10\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0âL5pY$\x0e\x0e\v\x01\x05\x10\0ý\x03¸\b\0\x01\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY$ #\f\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0âL5pY$Ä\x0e\a\x01#\f\0\0\x1f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY$Ü\x14\f\0\0\0\0þ\0\0\0þ\0\0\0\x03\0\0\0\0\0âL5pY%ÿ\x0eü\x01\x14\f\0MTK MT7622 #1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY&\x14%\f\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0âL5pY&£\x0e\x06\x01%\f\0`\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY&·8\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pY'G\x0e\x05\x018\f\0\x04\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY'_9\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âL5pY'ý\x0e\b\x019\f\0\x013‹ž\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âL5pY(\x13\x05\f\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY(¨\x0e\x04\x01\x05\f\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âL5pY(½\x16\f\x02\0}\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY)†\x0e\x04\x01\x16\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY)œ\x02 \0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0âL5pY*7\x0e\a\x01\x02 \0û\0\b\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY*J\x03 \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âL5pY*æ\x0e\f\x01\x03 \0ý\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY*ù\x1c \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0âL5pY+›\x0e\f\x01\x1c \0ÿÿÿ\x1f\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY+­\x02\x10\0\0\0\0F\0\0\0F\0\0\0\x03\0\0\0\0\0âL5pY,`\x0eD\x01\x02\x10\0ÿÿÿ\x03ÌÿÿÿÿÿüŸó\x0fèÿ?÷ÿ\x1c\0\x04\0\x01\0\0\0\08àõóÏÿÿ\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ô\0\0\0ô\0\0\0\x02\0\0\0\0\0âL5pY,tR\fñ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY-à\x0e\x04\x01R\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âL5pY-öE\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY.\x0e\x04\x01E\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY.«X\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pY/H\x0e\x05\x01X\f\0ÿ\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0âL5pY/]\x04\x10\x01\x01\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0âL5pY/ñ\x0e\x0e\x01\x04\x10\0\x01\x02\0\0\0\0\0\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âL5pY0$\x01\f\bÿÿûÿ\aø¿=\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY0¹\x0e\x04\x01\x01\f\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0âL5pY0Í\r\f\a\0\0\0\0\0\0\x01\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âL5pY1z\x0e\b\x01\r\f\0\x04\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0âL5pY1’\x0f\b\x02\x05\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY24\x0e\x04\x01\x0f\b\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY2I^[\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0âL5pY2ü\x0e\b\x01^[\f\0\0\b\x12\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY3\x13F\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0âL5pY3¦\x0e\x05\x01F\f\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0âL5pY3º\x01 \bÐ\r\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY4i\x0e\x04\x01\x01 \0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0âL5pY4ƒ/ \0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0âL5pY59\x0f\x04\x01\x01/ \0\0\0\0\0\0\0\0\0\0\0	\0\0\0\0\0âL5pYN„

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2018-06-14  3:10 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-15  8:52 [PATCH v2 0/7] add support for Bluetooth on MT7622 SoC sean.wang
2018-05-15  8:52 ` sean.wang at mediatek.com
2018-05-15  8:52 ` sean.wang
2018-05-15  8:52 ` [PATCH v2 1/7] dt-bindings: net: bluetooth: Add mediatek-bluetooth sean.wang
2018-05-15  8:52   ` sean.wang at mediatek.com
2018-05-15  8:52   ` sean.wang-NuS5LvNUpcJWk0Htik3J/w
2018-05-15  8:52 ` [PATCH v2 2/7] serdev: add dev_pm_domain_attach|detach() sean.wang
2018-05-15  8:52   ` sean.wang at mediatek.com
2018-05-15  8:52   ` sean.wang
2018-05-15  8:52 ` [PATCH v2 3/7] Bluetooth: Add new serdev based driver for UART attached controllers sean.wang
2018-05-15  8:52   ` sean.wang at mediatek.com
2018-05-15  8:52   ` sean.wang
2018-05-15  8:52 ` [PATCH v2 4/7] Bluetooth: Add new quirk for non-persistent setup settings sean.wang
2018-05-15  8:52   ` sean.wang at mediatek.com
2018-05-15  8:52   ` sean.wang
2018-05-22  7:21   ` Marcel Holtmann
2018-05-22  7:21     ` Marcel Holtmann
2018-05-22  8:05     ` Sean Wang
2018-05-22  8:05       ` Sean Wang
2018-05-22  8:05       ` Sean Wang
2018-05-23  6:37       ` [SPAM]Re: " Sean Wang
2018-05-23  6:37         ` Sean Wang
2018-05-23  6:37         ` Sean Wang
2018-05-23 12:31         ` Marcel Holtmann
2018-05-23 12:31           ` Marcel Holtmann
2018-05-23 14:09           ` Sean Wang
2018-05-23 14:09             ` Sean Wang
2018-05-23 14:09             ` Sean Wang
2018-05-24  7:47             ` Marcel Holtmann
2018-05-24  7:47               ` Marcel Holtmann
2018-05-24 15:30               ` Sean Wang
2018-05-24 15:30                 ` Sean Wang
2018-05-24 15:30                 ` Sean Wang
2018-05-30  6:26                 ` Marcel Holtmann
2018-05-30  6:26                   ` Marcel Holtmann
2018-06-12  9:58                   ` Sean Wang
2018-06-12  9:58                     ` Sean Wang
2018-06-12  9:58                     ` Sean Wang
2018-06-14  3:10                     ` Sean Wang
2018-06-14  3:10                       ` Sean Wang
2018-05-15  8:52 ` [PATCH v2 5/7] Bluetooth: Extend btuart driver for join more vendor devices sean.wang
2018-05-15  8:52   ` sean.wang at mediatek.com
2018-05-15  8:52   ` sean.wang
2018-05-15  8:52 ` [PATCH v2 6/7] Bluetooth: mediatek: Add protocol support for MediaTek serial devices sean.wang
2018-05-15  8:52   ` sean.wang at mediatek.com
2018-05-15  8:52   ` sean.wang
2018-05-15  8:52 ` [PATCH v2 7/7] MAINTAINERS: add an entry for MediaTek Bluetooth driver sean.wang
2018-05-15  8:52   ` sean.wang at mediatek.com
2018-05-15  8:52   ` sean.wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.