soc平台:RK3588
设备树:
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2023 Rockchip Electronics Co., Ltd.
*
*/
#include <dt-bindings/display/media-bus-format.h>
/ {
ns6601_dphy0_osc0: ns6601-dphy0-oscillator@0 {
compatible = "fixed-clock";
#clock-cells = <1>;
clock-frequency = <25000000>;
clock-output-names = "ns6601-dphy0-osc0";
};
ns6601_dcphy1_osc0: ns6601-dcphy1-oscillator@0 {
compatible = "fixed-clock";
#clock-cells = <1>;
clock-frequency = <25000000>;
clock-output-names = "ns6601-dcphy1-osc0";
};
};
/**
* ============================================================================
* Inno DPHY0: full mode
* ============================================================================
*/
&csi2_dphy0_hw {
status = "okay";
};
&csi2_dphy0 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_dphy0_in_ns6601: endpoint@1 {
reg = <1>;
remote-endpoint = <&ns6601_dphy0_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csidphy0_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi2_csi2_input>;
};
};
};
};
&mipi2_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi2_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&csidphy0_out>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi2_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi2_in>;
};
};
};
};
&rkcif_mipi_lvds2 {
status = "okay";
/* parameters for do cif reset detecting:
* index0: monitor mode,
0 for idle,
1 for continue,
2 for trigger,
3 for hotplug (for nextchip)
* index1: the frame id to start timer,
min is 2
* index2: frame num of monitoring cycle
* index3: err time for keep monitoring
after finding out err (ms)
* index4: csi2 err reference val for resetting
*/
rockchip,cif-monitor = <3 2 1 1000 5>;
port {
cif_mipi2_in: endpoint {
remote-endpoint = <&mipi2_csi2_output>;
};
};
};
/**
* ============================================================================
* Samsung DCPHY1: full mode
* ============================================================================
*/
&csi2_dphy1_hw {
status = "okay";
};
&csi2_dcphy1 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_dcphy1_in_ns6601: endpoint@1 {
reg = <1>;
remote-endpoint = <&ns6601_dcphy1_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csidcphy1_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi1_csi2_input>;
};
};
};
};
&mipi1_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi1_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&csidcphy1_out>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi1_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi1_in>;
};
};
};
};
&rkcif_mipi_lvds1 {
status = "okay";
/* parameters for do cif reset detecting:
* index0: monitor mode,
0 for idle,
1 for continue,
2 for trigger,
3 for hotplug (for nextchip)
* index1: the frame id to start timer,
min is 2
* index2: frame num of monitoring cycle
* index3: err time for keep monitoring
after finding out err (ms)
* index4: csi2 err reference val for resetting
*/
rockchip,cif-monitor = <3 2 1 1000 5>;
port {
cif_mipi1_in: endpoint {
remote-endpoint = <&mipi1_csi2_output>;
};
};
};
/**
* =============================================================================
* Common
* =============================================================================
*/
&rkcif {
status = "okay";
rockchip,android-usb-camerahal-enable;
};
&rkcif_mmu {
status = "okay";
};
&i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c2m4_xfer>;
clock-frequency = <400000>;
// AVM Camera x4
ns6601_dphy0: ns6601@29 {
compatible = "norelsys,ns6601";
status = "disabled";
reg = <0x29>;
clock-names = "xvclk";
clocks = <&ns6601_dphy0_osc0 0>;
pinctrl-names = "default";
pinctrl-0 = <&ns6601_dphy0_pwdn>, <&ns6601_dphy0_errb>, <&ns6601_dphy0_lock>;
power-domains = <&power RK3588_PD_VI>;
rockchip,grf = <&sys_grf>;
pwdn-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
lock-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "ns6601";
rockchip,camera-module-lens-name = "ns6601";
port {
ns6601_dphy0_out: endpoint {
remote-endpoint = <&mipi_dphy0_in_ns6601>;
data-lanes = <1 2>;
};
};
/* support mode config start */
support-mode-config {
status = "okay";
bus-format = <MEDIA_BUS_FMT_UYVY8_2X8>;
sensor-width = <1600>;
sensor-height = <1080>;
max-fps-numerator = <10000>;
max-fps-denominator = <300000>;
bpp = <16>;
link-freq-idx = <15>;
vc-array = <0x10 0x20 0x40 0x80>; // VC0~3: bit4~7
};
};
// DMS Camera x1 + OMS Camera x3
ns6601_dcphy1: ns6601@6b {
compatible = "norelsys,ns6601";
status = "okay";
reg = <0x6b>;
clock-names = "xvclk";
clocks = <&ns6601_dcphy1_osc0 0>;
pinctrl-names = "default";
pinctrl-0 = <&ns6601_dcphy1_pwdn>, <&ns6601_dcphy1_errb>, <&ns6601_dcphy1_lock>;
power-domains = <&power RK3588_PD_VI>;
rockchip,grf = <&sys_grf>;
pwdn-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
lock-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "ns6601";
rockchip,camera-module-lens-name = "ns6601";
port {
ns6601_dcphy1_out: endpoint {
remote-endpoint = <&mipi_dcphy1_in_ns6601>;
data-lanes = <1 2>;
};
};
/* support mode config start */
support-mode-config {
status = "okay";
bus-format = <MEDIA_BUS_FMT_UYVY8_2X8>;
sensor-width = <1600>;
sensor-height = <1080>;
max-fps-numerator = <10000>;
max-fps-denominator = <300000>;
bpp = <16>;
link-freq-idx = <15>;
vc-array = <0x10 0x20 0x40 0x80>; // VC0~3: bit4~7
};
};
};
&pinctrl {
norelsys-cameras {
ns6601_dphy0_pwdn: ns6601-dphy0-pwdn {
rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
};
ns6601_dphy0_errb: ns6601-dphy0-errb {
rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
};
ns6601_dphy0_lock: ns6601-dphy0-lock {
rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
};
ns6601_dcphy1_pwdn: ns6601-dcphy1-pwdn {
rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
};
ns6601_dcphy1_errb: ns6601-dcphy1-errb {
rockchip,pins = <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
};
ns6601_dcphy1_lock: ns6601-dcphy1-lock {
rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
};
ns6601.c文件
// SPDX-License-Identifier: GPL-2.0
/*
* ns6601 HSMT to CSI-2 Deserializer driver
*
* Copyright (C) 2024 Rockchip Electronics Co., Ltd.
*
* V0.0X01.0X00 first version.
* V1.0X00.0X00 Support New Driver Framework.
* V1.0X01.0X00 serdes read /write api depend on i2c id index.
*
*/
#include <linux/clk.h>
#include <linux/device.h>
#include <linux/delay.h>
#include <linux/iopoll.h>
#include <linux/gpio/consumer.h>
#include <linux/pinctrl/consumer.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/module.h>
#include <linux/pm_runtime.h>
#include <linux/regulator/consumer.h>
#include <linux/sysfs.h>
#include <linux/slab.h>
#include <linux/version.h>
#include <linux/compat.h>
#include <linux/rk-camera-module.h>
#include <linux/of_graph.h>
#include <media/media-entity.h>
#include <media/v4l2-async.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-subdev.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-fwnode.h>
#include <media/v4l2-subdev.h>
#include "ns6601_config.h"
#define DRIVER_VERSION KERNEL_VERSION(1, 0x01, 0x00)
#ifndef V4L2_CID_DIGITAL_GAIN
#define V4L2_CID_DIGITAL_GAIN V4L2_CID_GAIN
#endif
#define NS6601_LINK_FREQ_MHZ(x) ((x) * 1000000UL)
#define NS6601_XVCLK_FREQ 25000000
#define NS6601_NAME "ns6601"
struct ns6601_mode {
u32 width;
u32 height;
struct v4l2_fract max_fps;
u32 hts_def;
u32 vts_def;
u32 exp_def;
u32 link_freq_idx;
u32 bus_fmt;
u32 bpp;
u32 vc[PAD_MAX];
};
struct ns6601 {
struct i2c_client *client;
u16 i2c_addr;
struct clk *xvclk;
struct gpio_desc *power_gpio;
struct gpio_desc *reset_gpio;
struct gpio_desc *pwdn_gpio;
struct gpio_desc *pocen_gpio;
struct gpio_desc *lock_gpio;
struct gpio_desc *errb_gpio;
struct pinctrl *pinctrl;
struct pinctrl_state *pins_default;
struct pinctrl_state *pins_sleep;
struct v4l2_subdev subdev;
struct media_pad pad;
struct v4l2_ctrl_handler ctrl_handler;
struct v4l2_ctrl *exposure;
struct v4l2_ctrl *anal_gain;
struct v4l2_ctrl *digi_gain;
struct v4l2_ctrl *hblank;
struct v4l2_ctrl *vblank;
struct v4l2_ctrl *pixel_rate;
struct v4l2_ctrl *link_freq;
struct v4l2_ctrl *test_pattern;
struct v4l2_fwnode_endpoint bus_cfg;
struct mutex mutex;
bool streaming;
bool power_on;
bool hot_plug;
u8 is_reset;
int hot_plug_irq;
u32 link_mask;
struct ns6601_mode supported_modes;
const struct ns6601_mode *cur_mode;
u32 cfg_modes_num;
u32 module_index;
u32 auto_init_deskew_mask;
u32 frame_sync_period;
const char *module_facing;
const char *module_name;
const char *len_name;
struct regmap *regmap;
};
static const struct regmap_config ns6601_regmap_config = {
.reg_bits = 8,
.val_bits = 8,
.max_register = 0x1FFF,
};
static struct rkmodule_csi_dphy_param rk3588_dcphy_param = {
.vendor = PHY_VENDOR_SAMSUNG,
.lp_vol_ref = 3,
.lp_hys_sw = {3, 0, 0, 0},
.lp_escclk_pol_sel = {1, 0, 0, 0},
.skew_data_cal_clk = {0, 0, 0, 0},
.clk_hs_term_sel = 2,
.data_hs_term_sel = {2, 2, 2, 2},
.reserved = {0},
};
static const struct ns6601_mode ns6601_def_mode[] = {
{
.width = 1600,
.height = 1080,
.max_fps = {
.numerator = 10000,
.denominator = 300000,
},
.link_freq_idx = 15,// to do 750M
.bus_fmt = MEDIA_BUS_FMT_UYVY8_2X8,
.bpp = 16,
.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
.vc[PAD1] = V4L2_MBUS_CSI2_CHANNEL_1,
.vc[PAD2] = V4L2_MBUS_CSI2_CHANNEL_2,
.vc[PAD3] = V4L2_MBUS_CSI2_CHANNEL_3,
},
};
/* link freq = index * NS6601_LINK_FREQ_MHZ(50) */
static const s64 link_freq_items[] = {
NS6601_LINK_FREQ_MHZ(0),
NS6601_LINK_FREQ_MHZ(50),
NS6601_LINK_FREQ_MHZ(100),
NS6601_LINK_FREQ_MHZ(150),
NS6601_LINK_FREQ_MHZ(200),
NS6601_LINK_FREQ_MHZ(250),
NS6601_LINK_FREQ_MHZ(300),
NS6601_LINK_FREQ_MHZ(350),
NS6601_LINK_FREQ_MHZ(400),
NS6601_LINK_FREQ_MHZ(450),
NS6601_LINK_FREQ_MHZ(500),
NS6601_LINK_FREQ_MHZ(550),
NS6601_LINK_FREQ_MHZ(600),
NS6601_LINK_FREQ_MHZ(650),
NS6601_LINK_FREQ_MHZ(700),
NS6601_LINK_FREQ_MHZ(750),
NS6601_LINK_FREQ_MHZ(800),
NS6601_LINK_FREQ_MHZ(850),
NS6601_LINK_FREQ_MHZ(900),
NS6601_LINK_FREQ_MHZ(950),
NS6601_LINK_FREQ_MHZ(1000),
NS6601_LINK_FREQ_MHZ(1050),
NS6601_LINK_FREQ_MHZ(1100),
NS6601_LINK_FREQ_MHZ(1150),
NS6601_LINK_FREQ_MHZ(1200),
NS6601_LINK_FREQ_MHZ(1250),
};
static int ns6601_write_reg(struct ns6601 *ns6601,u16 val_len, u8* val)
{
struct i2c_client *client = ns6601->client;
u16 client_addr = ns6601->i2c_addr;
dev_dbg(&client->dev, "addr(0x%02x) write reg(0x%04x, %d, 0x%02x)\n",
client_addr, val[0], val_len, val[1]);
client->addr = client_addr;
if (i2c_master_send(client, val, val_len) != val_len) {
dev_err(&client->dev,
"%s: writing register 0x%04x from 0x%02x failed\n",
__func__, val[0], client->addr);
return -EIO;
}
return 0;
}
static int ns6601_read_reg(struct ns6601 *ns6601,u16 val_len, u8 *val)
{
struct i2c_client *client = ns6601->client;
u16 client_addr = ns6601->i2c_addr;
struct i2c_msg msgs[1];
int ret;
client->addr = client_addr;
/* Read data from register */
msgs[0].addr = client->addr;
msgs[0].flags = I2C_M_RD;
msgs[0].len = val_len;
msgs[0].buf = val;
ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
if (ret != ARRAY_SIZE(msgs)) {
dev_err(&client->dev,
"%s: reading register from 0x%x failed\n",
__func__, client->addr);
return -EIO;
}
#if 0
dev_info(&client->dev, "addr(0x%02x) read reg(0x%04x, %d, 0x%02x)\n",
client_addr, reg, reg_len, *val);
#endif
return 0;
}
static int ns6601_mipi_enable(struct ns6601 *ns6601, bool enable)
{
int ret = 0;
u8 mipi1_enable[] = {0x74, 0x88, 0x9e, 0x00, 0xff, 0xff, 0x00, 0x18, 0x5b, 0x82};
u8 mipi2_enable[] = {0x74, 0x88, 0x8e, 0x00, 0xff, 0xff, 0x00, 0x18, 0x19, 0x32};
u8 buf_enable[] = {0x74, 0x48, 0x1d, 0x00, 0xe0, 0x01, 0xe0, 0x01, 0x9a, 0xe8};
if (enable) {
ns6601_write_reg(ns6601,sizeof(mipi1_enable),mipi1_enable);
ns6601_write_reg(ns6601,sizeof(mipi2_enable),mipi2_enable);
ns6601_write_reg(ns6601,sizeof(buf_enable),buf_enable);
}else{
}
return ret;
}
static int ns6601_set_fmt(struct v4l2_subdev *sd,
struct v4l2_subdev_pad_config *cfg,
struct v4l2_subdev_format *fmt)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
const struct ns6601_mode *mode;
u64 pixel_rate = 0;
u8 data_lanes;
mutex_lock(&ns6601->mutex);
mode = &ns6601->supported_modes;
fmt->format.code = mode->bus_fmt;
fmt->format.width = mode->width;
fmt->format.height = mode->height;
fmt->format.field = V4L2_FIELD_NONE;
if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
*v4l2_subdev_get_try_format(sd, cfg, fmt->pad) = fmt->format;
#else
mutex_unlock(&ns6601->mutex);
return -ENOTTY;
#endif
} else {
if (ns6601->streaming) {
mutex_unlock(&ns6601->mutex);
return -EBUSY;
}
ns6601->cur_mode = mode;
__v4l2_ctrl_s_ctrl(ns6601->link_freq, mode->link_freq_idx);
/* pixel rate = link frequency * 2 * lanes / BITS_PER_SAMPLE */
data_lanes = ns6601->bus_cfg.bus.mipi_csi2.num_data_lanes;
pixel_rate = (u32)link_freq_items[mode->link_freq_idx] / mode->bpp * 2 * data_lanes;
__v4l2_ctrl_s_ctrl_int64(ns6601->pixel_rate, pixel_rate);
dev_info(&ns6601->client->dev, "mipi_freq_idx = %d, mipi_link_freq = %lld\n",
mode->link_freq_idx, link_freq_items[mode->link_freq_idx]);
dev_info(&ns6601->client->dev, "pixel_rate = %lld, bpp = %d\n",
pixel_rate, mode->bpp);
}
mutex_unlock(&ns6601->mutex);
return 0;
}
static int ns6601_get_fmt(struct v4l2_subdev *sd,
struct v4l2_subdev_pad_config *cfg,
struct v4l2_subdev_format *fmt)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
const struct ns6601_mode *mode = ns6601->cur_mode;
mutex_lock(&ns6601->mutex);
if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
fmt->format = *v4l2_subdev_get_try_format(sd, cfg, fmt->pad);
#else
mutex_unlock(&ns6601->mutex);
return -ENOTTY;
#endif
} else {
fmt->format.width = mode->width;
fmt->format.height = mode->height;
fmt->format.code = mode->bus_fmt;
fmt->format.field = V4L2_FIELD_NONE;
if (fmt->pad < PAD_MAX && fmt->pad >= PAD0)
fmt->reserved[0] = mode->vc[fmt->pad];
else
fmt->reserved[0] = mode->vc[PAD0];
}
mutex_unlock(&ns6601->mutex);
return 0;
}
static int ns6601_enum_mbus_code(struct v4l2_subdev *sd,
struct v4l2_subdev_pad_config *cfg,
struct v4l2_subdev_mbus_code_enum *code)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
const struct ns6601_mode *mode = ns6601->cur_mode;
if (code->index != 0)
return -EINVAL;
code->code = mode->bus_fmt;
return 0;
}
static int ns6601_enum_frame_sizes(struct v4l2_subdev *sd,
struct v4l2_subdev_pad_config *cfg,
struct v4l2_subdev_frame_size_enum *fse)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
if (fse->index >= ns6601->cfg_modes_num)
return -EINVAL;
if (fse->code != ns6601->supported_modes.bus_fmt)
return -EINVAL;
fse->min_width = ns6601->supported_modes.width;
fse->max_width = ns6601->supported_modes.width;
fse->max_height = ns6601->supported_modes.height;
fse->min_height = ns6601->supported_modes.height;
return 0;
}
static int ns6601_g_frame_interval(struct v4l2_subdev *sd,
struct v4l2_subdev_frame_interval *fi)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
const struct ns6601_mode *mode = ns6601->cur_mode;
mutex_lock(&ns6601->mutex);
fi->interval = mode->max_fps;
mutex_unlock(&ns6601->mutex);
return 0;
}
static void ns6601_get_module_inf(struct ns6601 *ns6601,
struct rkmodule_inf *inf)
{
memset(inf, 0, sizeof(*inf));
strscpy(inf->base.sensor, NS6601_NAME, sizeof(inf->base.sensor));
strscpy(inf->base.module, ns6601->module_name,
sizeof(inf->base.module));
strscpy(inf->base.lens, ns6601->len_name, sizeof(inf->base.lens));
}
static void
ns6601_get_vicap_rst_inf(struct ns6601 *ns6601,
struct rkmodule_vicap_reset_info *rst_info)
{
struct i2c_client *client = ns6601->client;
rst_info->is_reset = ns6601->hot_plug;
ns6601->hot_plug = false;
rst_info->src = RKCIF_RESET_SRC_ERR_HOTPLUG;
dev_info(&client->dev, "%s: rst_info->is_reset:%d.\n", __func__,
rst_info->is_reset);
}
static void
ns6601_set_vicap_rst_inf(struct ns6601 *ns6601,
struct rkmodule_vicap_reset_info rst_info)
{
ns6601->is_reset = rst_info.is_reset;
}
static long ns6601_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
struct rkmodule_csi_dphy_param *dphy_param;
long ret = 0;
u32 stream = 0;
switch (cmd) {
case RKMODULE_GET_MODULE_INFO:
ns6601_get_module_inf(ns6601, (struct rkmodule_inf *)arg);
break;
case RKMODULE_SET_QUICK_STREAM:
stream = *((u32 *)arg);
if (stream)
ret = ns6601_mipi_enable(ns6601, true);
else
ret = ns6601_mipi_enable(ns6601, false);
break;
case RKMODULE_GET_VICAP_RST_INFO:
ns6601_get_vicap_rst_inf(
ns6601, (struct rkmodule_vicap_reset_info *)arg);
break;
case RKMODULE_SET_VICAP_RST_INFO:
ns6601_set_vicap_rst_inf(
ns6601, *(struct rkmodule_vicap_reset_info *)arg);
break;
case RKMODULE_GET_START_STREAM_SEQ:
break;
case RKMODULE_SET_CSI_DPHY_PARAM:
dphy_param = (struct rkmodule_csi_dphy_param *)arg;
if (dphy_param->vendor == rk3588_dcphy_param.vendor)
rk3588_dcphy_param = *dphy_param;
dev_dbg(&ns6601->client->dev, "sensor set dphy param\n");
break;
case RKMODULE_GET_CSI_DPHY_PARAM:
dphy_param = (struct rkmodule_csi_dphy_param *)arg;
if (dphy_param->vendor == rk3588_dcphy_param.vendor)
*dphy_param = rk3588_dcphy_param;
dev_dbg(&ns6601->client->dev, "sensor get dphy param\n");
break;
default:
ret = -ENOIOCTLCMD;
break;
}
return ret;
}
#ifdef CONFIG_COMPAT
static long ns6601_compat_ioctl32(struct v4l2_subdev *sd, unsigned int cmd,
unsigned long arg)
{
void __user *up = compat_ptr(arg);
struct rkmodule_inf *inf;
struct rkmodule_awb_cfg *cfg;
struct rkmodule_vicap_reset_info *vicap_rst_inf;
struct rkmodule_csi_dphy_param *dphy_param;
long ret = 0;
int *seq;
u32 stream = 0;
switch (cmd) {
case RKMODULE_GET_MODULE_INFO:
inf = kzalloc(sizeof(*inf), GFP_KERNEL);
if (!inf) {
ret = -ENOMEM;
return ret;
}
ret = ns6601_ioctl(sd, cmd, inf);
if (!ret) {
ret = copy_to_user(up, inf, sizeof(*inf));
if (ret)
ret = -EFAULT;
}
kfree(inf);
break;
case RKMODULE_AWB_CFG:
cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
if (!cfg) {
ret = -ENOMEM;
return ret;
}
ret = copy_from_user(cfg, up, sizeof(*cfg));
if (!ret)
ret = ns6601_ioctl(sd, cmd, cfg);
else
ret = -EFAULT;
kfree(cfg);
break;
case RKMODULE_GET_VICAP_RST_INFO:
vicap_rst_inf = kzalloc(sizeof(*vicap_rst_inf), GFP_KERNEL);
if (!vicap_rst_inf) {
ret = -ENOMEM;
return ret;
}
ret = ns6601_ioctl(sd, cmd, vicap_rst_inf);
if (!ret) {
ret = copy_to_user(up, vicap_rst_inf,
sizeof(*vicap_rst_inf));
if (ret)
ret = -EFAULT;
}
kfree(vicap_rst_inf);
break;
case RKMODULE_SET_VICAP_RST_INFO:
vicap_rst_inf = kzalloc(sizeof(*vicap_rst_inf), GFP_KERNEL);
if (!vicap_rst_inf) {
ret = -ENOMEM;
return ret;
}
ret = copy_from_user(vicap_rst_inf, up, sizeof(*vicap_rst_inf));
if (!ret)
ret = ns6601_ioctl(sd, cmd, vicap_rst_inf);
else
ret = -EFAULT;
kfree(vicap_rst_inf);
break;
case RKMODULE_GET_START_STREAM_SEQ:
seq = kzalloc(sizeof(*seq), GFP_KERNEL);
if (!seq) {
ret = -ENOMEM;
return ret;
}
ret = ns6601_ioctl(sd, cmd, seq);
if (!ret) {
ret = copy_to_user(up, seq, sizeof(*seq));
if (ret)
ret = -EFAULT;
}
kfree(seq);
break;
case RKMODULE_SET_QUICK_STREAM:
ret = copy_from_user(&stream, up, sizeof(u32));
if (!ret)
ret = ns6601_ioctl(sd, cmd, &stream);
else
ret = -EFAULT;
break;
case RKMODULE_SET_CSI_DPHY_PARAM:
dphy_param = kzalloc(sizeof(*dphy_param), GFP_KERNEL);
if (!dphy_param) {
ret = -ENOMEM;
return ret;
}
ret = copy_from_user(dphy_param, up, sizeof(*dphy_param));
if (!ret)
ret = ns6601_ioctl(sd, cmd, dphy_param);
else
ret = -EFAULT;
kfree(dphy_param);
break;
case RKMODULE_GET_CSI_DPHY_PARAM:
dphy_param = kzalloc(sizeof(*dphy_param), GFP_KERNEL);
if (!dphy_param) {
ret = -ENOMEM;
return ret;
}
ret = ns6601_ioctl(sd, cmd, dphy_param);
if (!ret) {
ret = copy_to_user(up, dphy_param, sizeof(*dphy_param));
if (ret)
ret = -EFAULT;
}
kfree(dphy_param);
break;
default:
ret = -ENOIOCTLCMD;
break;
}
return ret;
}
#endif
static int __ns6601_tx_ready_check(struct ns6601 *ns6601)
{
int ret = -1,retry = 0;
u8 checkCmd[] = {0x33, 0x00, 0x03, 0x20, 0x61, 0x74};
u8 status[10] = {0};
while( retry < 6 ){
ret = ns6601_write_reg(ns6601,sizeof(checkCmd),checkCmd);
ret = ns6601_read_reg(ns6601,3,status);
retry++;
if( (status[0] == 0xe5) && ( status[1] == 0x22 ) && ( status[2] == 0x03 ) ){
dev_info(&ns6601->client->dev, "tx ready check status(0x%02x 0x%02x 0x%02x )\n",status[0], status[1], status[2]);
ret = 0;
break;
}
usleep_range(50000, 60000);
}
return ret;
}
static int __ns6601_tx_reinit_check(struct ns6601 *ns6601)
{
int ret = 0;
u8 status[10] = {0};
u8 retry = 0;
u8 tx0_reinit_check1[] = {0x1c, 0x01, 0x08, 0x58, 0x1c, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x18, 0x1e, 0x00, 0x01, 0x00, 0x18, 0x04, 0x11, 0x32, 0x3f, 0xe0};
u8 tx0_reinit_check2[] = {0x50, 0x00, 0x58, 0x04, 0x10, 0x00, 0x8e, 0x2f};
//u8 tx0_reinit[] = {0x54, 0x00, 0x18, 0x1e, 0x01, 0x01, 0xe3, 0x1b};
check_retry:
ret = ns6601_write_reg(ns6601,sizeof(tx0_reinit_check1),tx0_reinit_check1);
ret = ns6601_read_reg(ns6601,3,status);
if(ret)
goto err;
ret = ns6601_write_reg(ns6601,sizeof(tx0_reinit_check2),tx0_reinit_check2);
ret = ns6601_read_reg(ns6601,3,status);
if(ret)
goto err;
dev_info(&ns6601->client->dev, "__ns6601_tx_reinit_check read data(0x%02x)\n",status[0]);
if( status[0] == 0xea ){
ret = 0;
}else{
ret = -1;
//ret = ns6601_write_reg(ns6601,sizeof(tx0_reinit),tx0_reinit);
//ret = ns6601_read_reg(ns6601,3,status);
//dev_info(&ns6601->client->dev, "__ns6601_tx_reinit status data(0x%02x)\n",status[0]);
}
return ret;
err:
if(ret){
usleep_range(620000, 625000);
ns6601_read_reg(ns6601,3,status);
retry++;
if( retry <= 3 )
goto check_retry;
else
return ret;
}
return ret;
}
static int __ns6601_des_config(struct ns6601 *ns6601)
{
int ret;
int dataSize = 0,pCmdIndex = 0,txSize = 0,i =0;
u8 status[10] = {0};
u8 rewriteCnt = 0,recfgCnt = 0;
dataSize = sizeof(dms_des_cfg);
config_retry:
pCmdIndex = 0;
i = 0;
while( pCmdIndex < dataSize ){
txSize = (dms_des_cfg[pCmdIndex] << 8) | (dms_des_cfg[pCmdIndex+1]);
pCmdIndex += 2;
i++;
rewrite:
ret = ns6601_write_reg(ns6601,txSize,&dms_des_cfg[pCmdIndex]);
ret = ns6601_read_reg(ns6601,3,status);
if( ret ){
usleep_range(620000, 625000);
ns6601_read_reg(ns6601,3,status);
break;
}else if( status[0] == 0xe5 ){
usleep_range(10000, 15000);
rewriteCnt++;
dev_info(&ns6601->client->dev, "__ns6601_des_config data%d(0x%02x) failed,will go to retry!\n",i,status[0]);
if( rewriteCnt <= 3 )
goto rewrite;
}
pCmdIndex += txSize;
rewriteCnt = 0;
}
if( ret && ( recfgCnt < 3 ) ){
recfgCnt++;
goto config_retry;
}
return ret;
}
static int __ns6601_ser_config(struct ns6601 *ns6601)
{
int ret;
int dataSize = 0,pCmdIndex = 0,txSize = 0,i =0;
u8 status[10] = {0};
u8 rewriteCnt = 0,recfgCnt = 0;
dataSize = sizeof(dms_ser_cfg);
config_retry:
pCmdIndex = 0;
i = 0;
ret = __ns6601_tx_ready_check(ns6601);
if( ret == 0 ){
if(__ns6601_tx_reinit_check(ns6601) == 0){
while( pCmdIndex < dataSize ){
txSize = (dms_ser_cfg[pCmdIndex] << 8) | (dms_ser_cfg[pCmdIndex+1]);
pCmdIndex += 2;
i++;
rewrite:
ret = ns6601_write_reg(ns6601,txSize,&dms_ser_cfg[pCmdIndex]);
ret = ns6601_read_reg(ns6601,3,status);
if( ret ){
usleep_range(620000, 625000);
ns6601_read_reg(ns6601,3,status);
break;
}else if( status[0] == 0xe5 ){
usleep_range(10000, 15000);
dev_info(&ns6601->client->dev, "__ns6601_ser_config data%d(0x%02x) failed,will go to retry!\n",i,status[0]);
rewriteCnt++;
if( rewriteCnt <= 3 )
goto rewrite;
}
pCmdIndex += txSize;
rewriteCnt = 0;
}
}
}
if( ret && ( recfgCnt < 3 ) ){
recfgCnt++;
goto config_retry;
}
return ret;
}
static int __ns6601_start_stream(struct ns6601 *ns6601)
{
int ret;
if (!IS_ERR(ns6601->power_gpio)) {
gpiod_set_value_cansleep(ns6601->power_gpio, 1);
usleep_range(15000, 20000);
}
ret = __ns6601_des_config(ns6601);
if (ret)
return ret;
ret = __ns6601_ser_config(ns6601);
if (ret)
return ret;
/* In case these controls are set before streaming */
mutex_unlock(&ns6601->mutex);
ret = v4l2_ctrl_handler_setup(&ns6601->ctrl_handler);
mutex_lock(&ns6601->mutex);
if (ret)
return ret;
ret = ns6601_mipi_enable(ns6601, true);
return ret;
}
static int __ns6601_stop_stream(struct ns6601 *ns6601)
{
if (ns6601->hot_plug_irq > 0)
disable_irq(ns6601->hot_plug_irq);
return ns6601_mipi_enable(ns6601, false);
}
static int ns6601_s_stream(struct v4l2_subdev *sd, int on)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
struct i2c_client *client = ns6601->client;
int ret = 0;
dev_info(&client->dev, "%s: on: %d, %dx%d@%d\n", __func__, on,
ns6601->cur_mode->width, ns6601->cur_mode->height,
DIV_ROUND_CLOSEST(ns6601->cur_mode->max_fps.denominator,
ns6601->cur_mode->max_fps.numerator));
mutex_lock(&ns6601->mutex);
on = !!on;
if (on == ns6601->streaming)
goto unlock_and_return;
if (on) {
ret = pm_runtime_get_sync(&client->dev);
if (ret < 0) {
pm_runtime_put_noidle(&client->dev);
goto unlock_and_return;
}
ret = __ns6601_start_stream(ns6601);
if (ret) {
v4l2_err(sd, "start stream failed while write regs\n");
pm_runtime_put(&client->dev);
goto unlock_and_return;
}
} else {
__ns6601_stop_stream(ns6601);
pm_runtime_put(&client->dev);
}
ns6601->streaming = on;
unlock_and_return:
mutex_unlock(&ns6601->mutex);
return ret;
}
static int ns6601_s_power(struct v4l2_subdev *sd, int on)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
struct i2c_client *client = ns6601->client;
int ret = 0;
mutex_lock(&ns6601->mutex);
/* If the power state is not modified - no work to do. */
if (ns6601->power_on == !!on)
goto unlock_and_return;
if (on) {
ret = pm_runtime_get_sync(&client->dev);
if (ret < 0) {
pm_runtime_put_noidle(&client->dev);
goto unlock_and_return;
}
ns6601->power_on = true;
} else {
pm_runtime_put(&client->dev);
ns6601->power_on = false;
}
unlock_and_return:
mutex_unlock(&ns6601->mutex);
return ret;
}
static int ns6601_local_device_power_on(struct ns6601 *ns6601)
{
struct device *dev = &ns6601->client->dev;
if (!IS_ERR(ns6601->pwdn_gpio)) {
dev_info(dev, "local device pwdn gpio on\n");
gpiod_set_value_cansleep(ns6601->pwdn_gpio, 1);
usleep_range(10000, 11000);
}
return 0;
}
static int __ns6601_power_on(struct ns6601 *ns6601)
{
int ret;
struct device *dev = &ns6601->client->dev;
if (!IS_ERR(ns6601->power_gpio)) {
gpiod_set_value_cansleep(ns6601->power_gpio, 1);
usleep_range(5000, 10000);
}
if (!IS_ERR(ns6601->pocen_gpio)) {
gpiod_set_value_cansleep(ns6601->pocen_gpio, 1);
usleep_range(5000, 10000);
}
if (!IS_ERR_OR_NULL(ns6601->pins_default)) {
ret = pinctrl_select_state(ns6601->pinctrl,
ns6601->pins_default);
if (ret < 0)
dev_err(dev, "could not set pins\n");
}
if (!IS_ERR(ns6601->reset_gpio))
gpiod_set_value_cansleep(ns6601->reset_gpio, 0);
if (!IS_ERR(ns6601->reset_gpio)) {
gpiod_set_value_cansleep(ns6601->reset_gpio, 1);
usleep_range(500, 1000);
}
if (!IS_ERR(ns6601->pwdn_gpio))
gpiod_set_value_cansleep(ns6601->pwdn_gpio, 1);
return 0;
return ret;
}
static void __ns6601_power_off(struct ns6601 *ns6601)
{
int ret;
struct device *dev = &ns6601->client->dev;
if (!IS_ERR(ns6601->pwdn_gpio))
gpiod_set_value_cansleep(ns6601->pwdn_gpio, 0);
clk_disable_unprepare(ns6601->xvclk);
if (!IS_ERR(ns6601->reset_gpio))
gpiod_set_value_cansleep(ns6601->reset_gpio, 0);
if (!IS_ERR_OR_NULL(ns6601->pins_sleep)) {
ret = pinctrl_select_state(ns6601->pinctrl,
ns6601->pins_sleep);
if (ret < 0)
dev_dbg(dev, "could not set pins\n");
}
if (!IS_ERR(ns6601->pocen_gpio))
gpiod_set_value_cansleep(ns6601->pocen_gpio, 0);
if (!IS_ERR(ns6601->power_gpio))
gpiod_set_value_cansleep(ns6601->power_gpio, 0);
}
static int ns6601_runtime_resume(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);
struct v4l2_subdev *sd = i2c_get_clientdata(client);
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
return __ns6601_power_on(ns6601);
}
static int ns6601_runtime_suspend(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);
struct v4l2_subdev *sd = i2c_get_clientdata(client);
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
__ns6601_power_off(ns6601);
return 0;
}
#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
static int ns6601_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
struct v4l2_mbus_framefmt *try_fmt =
v4l2_subdev_get_try_format(sd, fh->pad, 0);
const struct ns6601_mode *def_mode = &ns6601->supported_modes;
mutex_lock(&ns6601->mutex);
/* Initialize try_fmt */
try_fmt->width = def_mode->width;
try_fmt->height = def_mode->height;
try_fmt->code = def_mode->bus_fmt;
try_fmt->field = V4L2_FIELD_NONE;
mutex_unlock(&ns6601->mutex);
/* No crop or compose */
return 0;
}
#endif
static int
ns6601_enum_frame_interval(struct v4l2_subdev *sd,
struct v4l2_subdev_pad_config *cfg,
struct v4l2_subdev_frame_interval_enum *fie)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
if (fie->index >= ns6601->cfg_modes_num)
return -EINVAL;
fie->code = ns6601->supported_modes.bus_fmt;
fie->width = ns6601->supported_modes.width;
fie->height = ns6601->supported_modes.height;
fie->interval = ns6601->supported_modes.max_fps;
return 0;
}
static int ns6601_g_mbus_config(struct v4l2_subdev *sd, unsigned int pad,
struct v4l2_mbus_config *config)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
u32 val = 0;
u8 data_lanes = ns6601->bus_cfg.bus.mipi_csi2.num_data_lanes;
val |= V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
val |= (1 << (data_lanes - 1));
switch (data_lanes) {
case 4:
val |= V4L2_MBUS_CSI2_CHANNEL_3;
fallthrough;
case 3:
val |= V4L2_MBUS_CSI2_CHANNEL_2;
fallthrough;
case 2:
val |= V4L2_MBUS_CSI2_CHANNEL_1;
fallthrough;
case 1:
default:
val |= V4L2_MBUS_CSI2_CHANNEL_0;
break;
}
config->type = V4L2_MBUS_CSI2_DPHY;
config->flags = val;
return 0;
}
static int ns6601_get_selection(struct v4l2_subdev *sd,
struct v4l2_subdev_pad_config *cfg,
struct v4l2_subdev_selection *sel)
{
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
if (sel->target == V4L2_SEL_TGT_CROP_BOUNDS) {
sel->r.left = 0;
sel->r.width = ns6601->cur_mode->width;
sel->r.top = 0;
sel->r.height = ns6601->cur_mode->height;
return 0;
}
return -EINVAL;
}
static const struct dev_pm_ops ns6601_pm_ops = { SET_RUNTIME_PM_OPS(
ns6601_runtime_suspend, ns6601_runtime_resume, NULL) };
#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
static const struct v4l2_subdev_internal_ops ns6601_internal_ops = {
.open = ns6601_open,
};
#endif
static const struct v4l2_subdev_core_ops ns6601_core_ops = {
.s_power = ns6601_s_power,
.ioctl = ns6601_ioctl,
#ifdef CONFIG_COMPAT
.compat_ioctl32 = ns6601_compat_ioctl32,
#endif
};
static const struct v4l2_subdev_video_ops ns6601_video_ops = {
.s_stream = ns6601_s_stream,
.g_frame_interval = ns6601_g_frame_interval,
};
static const struct v4l2_subdev_pad_ops ns6601_pad_ops = {
.enum_mbus_code = ns6601_enum_mbus_code,
.enum_frame_size = ns6601_enum_frame_sizes,
.enum_frame_interval = ns6601_enum_frame_interval,
.get_fmt = ns6601_get_fmt,
.set_fmt = ns6601_set_fmt,
.get_selection = ns6601_get_selection,
.get_mbus_config = ns6601_g_mbus_config,
};
static const struct v4l2_subdev_ops ns6601_subdev_ops = {
.core = &ns6601_core_ops,
.video = &ns6601_video_ops,
.pad = &ns6601_pad_ops,
};
static int ns6601_initialize_controls(struct ns6601 *ns6601)
{
const struct ns6601_mode *mode;
struct v4l2_ctrl_handler *handler;
u64 pixel_rate;
u8 data_lanes;
int ret;
handler = &ns6601->ctrl_handler;
mode = ns6601->cur_mode;
ret = v4l2_ctrl_handler_init(handler, 2);
if (ret)
return ret;
handler->lock = &ns6601->mutex;
ns6601->link_freq = v4l2_ctrl_new_int_menu(handler, NULL,
V4L2_CID_LINK_FREQ,
ARRAY_SIZE(link_freq_items) - 1, 0,
link_freq_items);
__v4l2_ctrl_s_ctrl(ns6601->link_freq, mode->link_freq_idx);
dev_info(&ns6601->client->dev, "mipi_freq_idx = %d, mipi_link_freq = %lld\n",
mode->link_freq_idx, link_freq_items[mode->link_freq_idx]);
/* pixel rate = link frequency * 2 * lanes / BITS_PER_SAMPLE */
data_lanes = ns6601->bus_cfg.bus.mipi_csi2.num_data_lanes;
pixel_rate = (u32)link_freq_items[mode->link_freq_idx] / mode->bpp * 2 * data_lanes;
ns6601->pixel_rate =
v4l2_ctrl_new_std(handler, NULL, V4L2_CID_PIXEL_RATE, 0,
pixel_rate, 1, pixel_rate);
dev_info(&ns6601->client->dev, "pixel_rate = %lld, bpp = %d\n",
pixel_rate, mode->bpp);
if (handler->error) {
ret = handler->error;
dev_err(&ns6601->client->dev, "Failed to init controls(%d)\n", ret);
goto err_free_handler;
}
ns6601->subdev.ctrl_handler = handler;
return 0;
err_free_handler:
v4l2_ctrl_handler_free(handler);
return ret;
}
static int ns6601_support_mode_init(struct ns6601 *ns6601)
{
struct device *dev = &ns6601->client->dev;
struct device_node *node = NULL;
struct ns6601_mode *mode = NULL;
u32 value = 0, vc_array[PAD_MAX];
int ret = 0, i = 0, array_size = 0;
dev_info(dev, "=== ns6601 support mode init ===\n");
ns6601->cfg_modes_num = 1;
ns6601->cur_mode = &ns6601->supported_modes;
mode = &ns6601->supported_modes;
// init using def mode
memcpy(mode, ns6601_def_mode, sizeof(struct ns6601_mode));
node = of_get_child_by_name(dev->of_node, "support-mode-config");
if (IS_ERR_OR_NULL(node)) {
dev_info(dev, "no mode config node, using default config.\n");
return 0;
}
if (!of_device_is_available(node)) {
dev_info(dev, "%pOF is disabled, using default config.\n", node);
of_node_put(node);
return 0;
}
ret = of_property_read_u32(node, "sensor-width", &value);
if (ret == 0) {
mode->width = value;
}
dev_info(dev, "support mode: width = %d\n", mode->width);
ret = of_property_read_u32(node, "sensor-height", &value);
if (ret == 0) {
mode->height = value;
}
dev_info(dev, "support mode: height = %d\n", mode->height);
ret = of_property_read_u32(node, "bus-format", &value);
if (ret == 0) {
mode->bus_fmt = value;
}
dev_info(dev, "support mode: bus_fmt = 0x%x\n", mode->bus_fmt);
ret = of_property_read_u32(node, "bpp", &value);
if (ret == 0) {
mode->bpp = value;
}
dev_info(dev, "support mode: bpp = %d\n", mode->bpp);
ret = of_property_read_u32(node, "max-fps-numerator", &value);
if (ret == 0) {
mode->max_fps.numerator = value;
}
dev_info(dev, "support mode: numerator = %d\n", mode->max_fps.numerator);
ret = of_property_read_u32(node, "max-fps-denominator", &value);
if (ret == 0) {
mode->max_fps.denominator = value;
}
dev_info(dev, "support mode: denominator = %d\n", mode->max_fps.denominator);
ret = of_property_read_u32(node, "link-freq-idx", &value);
if (ret == 0) {
mode->link_freq_idx = value;
}
dev_info(dev, "support mode: link_freq_idx = %d\n", mode->link_freq_idx);
ret = of_property_read_u32(node, "hts-def", &value);
if (ret == 0) {
mode->hts_def = value;
}
dev_info(dev, "support mode: hts_def = %d\n", mode->hts_def);
ret = of_property_read_u32(node, "vts-def", &value);
if (ret == 0) {
mode->vts_def = value;
}
dev_info(dev, "support mode: vts_def = %d\n", mode->vts_def);
ret = of_property_read_u32(node, "exp-def", &value);
if (ret == 0) {
mode->exp_def = value;
}
dev_info(dev, "support mode: exp_def = %d\n", mode->exp_def);
array_size = of_property_read_variable_u32_array(node,
"vc-array", vc_array, 1, PAD_MAX);
if (array_size > 0) {
if (array_size > PAD_MAX)
array_size = PAD_MAX;
for (i = 0; i < array_size; i++) {
dev_info(dev, "vc-array[%d] property: 0x%x\n", i, vc_array[i]);
mode->vc[i] = vc_array[i];
}
}
for (i = 0; i < PAD_MAX; i++)
dev_info(dev, "support mode: vc[%d] = 0x%x\n", i, mode->vc[i]);
of_node_put(node);
return 0;
}
static int ns6601_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
struct device *dev = &client->dev;
struct device_node *node = dev->of_node;
struct ns6601 *ns6601;
struct v4l2_subdev *sd;
struct device_node *endpoint;
char facing[2];
u8 mipi_data_lanes;
int ret;
dev_info(dev, "driver version: %02x.%02x.%02x", DRIVER_VERSION >> 16,
(DRIVER_VERSION & 0xff00) >> 8, DRIVER_VERSION & 0x00ff);
ns6601 = devm_kzalloc(dev, sizeof(*ns6601), GFP_KERNEL);
if (!ns6601)
return -ENOMEM;
ret = of_property_read_u32(node, RKMODULE_CAMERA_MODULE_INDEX,
&ns6601->module_index);
ret |= of_property_read_string(node, RKMODULE_CAMERA_MODULE_FACING,
&ns6601->module_facing);
ret |= of_property_read_string(node, RKMODULE_CAMERA_MODULE_NAME,
&ns6601->module_name);
ret |= of_property_read_string(node, RKMODULE_CAMERA_LENS_NAME,
&ns6601->len_name);
if (ret) {
dev_err(dev, "could not get module information!\n");
return -EINVAL;
}
ns6601->regmap = devm_regmap_init_i2c(client, &ns6601_regmap_config);
if (IS_ERR(ns6601->regmap)) {
dev_err(dev, "Failed to regmap initialize I2C\n");
return PTR_ERR(ns6601->regmap);
}
ns6601->client = client;
i2c_set_clientdata(client, ns6601);
/* i2c default address init */
ns6601->i2c_addr = client->addr;
ns6601->pwdn_gpio = devm_gpiod_get(dev, "pwdn", GPIOD_OUT_LOW);
if (IS_ERR(ns6601->pwdn_gpio))
dev_warn(dev, "Failed to get pwdn-gpios\n");
ns6601->lock_gpio = devm_gpiod_get(dev, "lock", GPIOD_IN);
if (IS_ERR(ns6601->lock_gpio))
dev_warn(dev, "Failed to get lock-gpios\n");
ns6601->errb_gpio = devm_gpiod_get(dev, "errb", GPIOD_IN);
if (IS_ERR(ns6601->errb_gpio))
dev_warn(dev, "Failed to get errb-gpios\n");
mutex_init(&ns6601->mutex);
/* Local device power on */
ns6601_local_device_power_on(ns6601);
/* Source : ns6601 --> remote endpoint */
endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
if (!endpoint) {
dev_err(dev, "Failed to get endpoint\n");
return -EINVAL;
}
ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(endpoint),
&ns6601->bus_cfg);
if (ret) {
dev_err(dev, "Failed to get bus config\n");
return -EINVAL;
}
mipi_data_lanes = ns6601->bus_cfg.bus.mipi_csi2.num_data_lanes;
dev_info(dev, "mipi csi2 phy data lanes %d\n", mipi_data_lanes);
ns6601_support_mode_init(ns6601);
/* norelsys ns6601 subdev init */
sd = &ns6601->subdev;
v4l2_i2c_subdev_init(sd, client, &ns6601_subdev_ops);
ret = ns6601_initialize_controls(ns6601);
if (ret)
goto err_destroy_mutex;
dev_info(dev, "zgp ns6601_initialize_controls end\n");
#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
sd->internal_ops = &ns6601_internal_ops;
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
#endif
#if defined(CONFIG_MEDIA_CONTROLLER)
ns6601->pad.flags = MEDIA_PAD_FL_SOURCE;
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
ret = media_entity_pads_init(&sd->entity, 1, &ns6601->pad);
if (ret < 0)
goto err_power_off;
#endif
memset(facing, 0, sizeof(facing));
if (strcmp(ns6601->module_facing, "back") == 0)
facing[0] = 'b';
else
facing[0] = 'f';
v4l2_set_subdevdata(sd, ns6601);
snprintf(sd->name, sizeof(sd->name), "m%02d_%s_%s %s",
ns6601->module_index, facing, NS6601_NAME,
dev_name(sd->dev));
ret = v4l2_async_register_subdev_sensor_common(sd);
if (ret) {
dev_err(dev, "v4l2 async register subdev failed\n");
goto err_clean_entity;
}
pm_runtime_set_active(dev);
pm_runtime_enable(dev);
pm_runtime_idle(dev);
return 0;
err_clean_entity:
#if defined(CONFIG_MEDIA_CONTROLLER)
media_entity_cleanup(&sd->entity);
#endif
err_power_off:
__ns6601_power_off(ns6601);
v4l2_ctrl_handler_free(&ns6601->ctrl_handler);
err_destroy_mutex:
mutex_destroy(&ns6601->mutex);
return ret;
}
static int ns6601_remove(struct i2c_client *client)
{
struct v4l2_subdev *sd = i2c_get_clientdata(client);
struct ns6601 *ns6601 = v4l2_get_subdevdata(sd);
v4l2_async_unregister_subdev(sd);
#if defined(CONFIG_MEDIA_CONTROLLER)
media_entity_cleanup(&sd->entity);
#endif
v4l2_ctrl_handler_free(&ns6601->ctrl_handler);
mutex_destroy(&ns6601->mutex);
pm_runtime_disable(&client->dev);
if (!pm_runtime_status_suspended(&client->dev))
__ns6601_power_off(ns6601);
pm_runtime_set_suspended(&client->dev);
return 0;
}
#if IS_ENABLED(CONFIG_OF)
static const struct of_device_id ns6601_of_match[] = {
{ .compatible = "norelsys,ns6601" },
{},
};
MODULE_DEVICE_TABLE(of, ns6601_of_match);
#endif
static const struct i2c_device_id ns6601_match_id[] = {
{ "norelsys,ns6601", 0 },
{},
};
static struct i2c_driver ns6601_i2c_driver = {
.driver = {
.name = NS6601_NAME,
.pm = &ns6601_pm_ops,
.of_match_table = of_match_ptr(ns6601_of_match),
},
.probe = &ns6601_probe,
.remove = &ns6601_remove,
.id_table = ns6601_match_id,
};
static int __init ns6601_mod_init(void)
{
return i2c_add_driver(&ns6601_i2c_driver);
}
static void __exit ns6601_mod_exit(void)
{
i2c_del_driver(&ns6601_i2c_driver);
}
module_init(ns6601_mod_init);
module_exit(ns6601_mod_exit);
MODULE_DESCRIPTION("Norelsys ns6601 deserializer driver");
MODULE_LICENSE("GPL");
配置头文件
ns6601_config.h
/* SPDX-License-Identifier: GPL-2.0 */
/*
* ns6601 serdes config data driver
*
*/
#ifndef _NS6601_CONFIG_H_
#define _NS6601_CONFIG_H_
static u8 dms_des_cfg[] = {
/* cmd package 1 */
0x00,0x19,0x5c, 0x01, 0x08, 0x98, 0x1d, 0x21, 0x10, 0xff, 0xff, 0x08, 0xd8, 0x1d, 0xff, 0xff, 0xff, 0xff, 0x08, 0x98, 0x1c, 0xff, 0xff, 0x1b, 0x1f, 0xb7, 0x68,
/* cmd package 2 */
0x00,0x50,0xcc, 0x04, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x18, 0x0c, 0x00, 0x00, 0x0f, 0x00, 0xd5, 0x18, 0x0d, 0x00, 0x00, 0x0f, 0x00, 0xd5, 0x18, 0x0e, 0x00, 0x00,
0x0f, 0x00, 0xd5, 0x18, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0d, 0x63, 0x00, 0x00, 0x00, 0xca, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x33, 0x00, 0x00, 0xff, 0xff, 0xc6, 0xc0, 0x01,
0x40, 0x81, 0x40, 0xec, 0x0c, 0x06, 0x00, 0x03, 0x12, 0x06, 0x00, 0x98, 0x06, 0x6b, 0x02, 0x46, 0x09, 0x6b, 0x4e, 0x87, 0x10, 0x6b, 0x14, 0x81,
/* cmd package 3 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x00, 0x00, 0x48, 0xbf, 0x02, 0x97, 0x48, 0x52, 0x58, 0x25, 0x62, 0x75, 0x20, 0x69, 0x6e, 0x74, 0x0a, 0x00, 0x52, 0x58, 0x25, 0x62, 0x75, 0x20, 0x69,
0x6e, 0x74, 0x63, 0x0a, 0x00, 0x52, 0x58, 0x25, 0x62, 0x75, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x46, 0x3d, 0x25, 0x62, 0x75, 0x0a, 0x00, 0x52, 0x58, 0x25, 0x62, 0x75, 0x20,
0x25, 0x62, 0x75, 0x47, 0x20, 0x43, 0x46, 0x4c, 0x0a, 0x00, 0x52, 0x58, 0x25, 0x62, 0x75, 0x20, 0x66, 0x63, 0x73, 0x0a, 0x00, 0x0a, 0x52, 0x58, 0x20, 0x48, 0x4f, 0x4f,
0x4b, 0x20, 0x76, 0x25, 0x62, 0x75, 0x2e, 0x25, 0x62, 0x75, 0x2e, 0x25, 0x62, 0x75, 0x2e, 0x25, 0x62, 0x75, 0x0a, 0x00, 0x48, 0x04, 0xc8, 0x01, 0x01, 0xff, 0xff, 0x00,
0x80, 0xc0, 0x01, 0x05, 0x08, 0x80, 0xc0, 0x41, 0x05, 0x31, 0x00, 0xc0, 0x81, 0x05, 0x80, 0x80, 0xc0, 0xc1, 0x05, 0x00, 0x28, 0xc0, 0x01, 0x06, 0x60, 0x80, 0xc0, 0x41,
0x06, 0x40, 0x22, 0xc8, 0x01, 0x0d, 0xff, 0xff, 0x02, 0x00, 0xc8, 0x01, 0x0d, 0xff, 0xff, 0x01, 0x00, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x0d, 0x00, 0x00, 0x02,
0x00, 0x0d, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x5f, 0x00, 0x00, 0xd8, 0x1a, 0x08, 0x9b, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x1b, 0x00, 0x04, 0x00, 0x00, 0x5b,
0x00, 0x08, 0x81, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x24, 0x00, 0x5b, 0x01, 0x30, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x20,
0x00, 0xdb, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0x00, 0x5b, 0x02, 0x10, 0x03, 0x00, 0xdb, 0x03, 0xdc, 0x77, 0x08, 0x1b, 0x04, 0x39, 0x00, 0x87, 0xff, 0x00,
0x5b, 0x04, 0x00, 0x00, 0x00, 0x9b, 0x04, 0x00, 0x00, 0x00, 0xdb, 0x04, 0x00, 0x00, 0x00, 0x1b, 0x05, 0x00, 0x00, 0x00, 0x5b, 0x05, 0x00, 0x00, 0x00, 0x9b, 0x05, 0x00,
0x80, 0x00, 0xdb, 0x05, 0x00, 0x00, 0x00, 0x5b, 0x06, 0x3e, 0x1b, 0x00, 0x9b, 0x06, 0x67, 0x77, 0x00, 0xdb, 0x06, 0x3e, 0x1b, 0x00, 0x1b, 0x07, 0x67, 0x77, 0x00, 0x5b,
0x07, 0x3e, 0x1b, 0x00, 0x9b, 0x07, 0x66, 0x77, 0x00, 0x5b, 0x08, 0x00, 0x46, 0x00, 0x9b, 0x08, 0x00, 0x00, 0x00, 0xdb, 0x08, 0x6c, 0x0c, 0x0d, 0x10, 0x27, 0x00, 0x00,
0x00, 0x5b, 0x00, 0x00, 0xc1, 0x00, 0xdb, 0x02, 0x10, 0x14, 0x00, 0x1b, 0x03, 0x10, 0xf4, 0x00, 0x5b, 0x03, 0x10, 0xf4, 0x00, 0x9b, 0x03, 0x88, 0x08, 0x00, 0x1b, 0x06,
0x10, 0xf4, 0x00, 0x9b, 0x02, 0x08, 0x80, 0x0d, 0x31, 0x00, 0x00, 0x00, 0x88, 0x1a, 0x00, 0xff, 0xff, 0x00, 0x1c, 0x80, 0x9a, 0x02, 0x40, 0x00, 0x88, 0x1a, 0x24, 0xff,
0xff, 0x0a, 0x00, 0x88, 0x1a, 0x00, 0xff, 0xbf, 0x01, 0x60, 0x80, 0x9a, 0x0d, 0x01, 0x00, 0x11, 0x99, 0x9a, 0x0d, 0xff, 0xff, 0x02, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x80, 0x9a,
0x0d, 0x00, 0x00, 0x88, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x9b, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x5b, 0x00, 0x00, 0x81, 0x0d, 0x88, 0x13, 0x00, 0x00, 0x00,
0x1b, 0x00, 0x34, 0xfc, 0x00, 0x5b, 0x00, 0x00, 0xff, 0x00, 0x9b, 0x00, 0xf0, 0x19, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x44, 0x00, 0x5b, 0x01, 0x30,
0x22, 0x00, 0x9b, 0x01, 0x3b, 0x26, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x02, 0xff, 0x00, 0x00, 0x5b, 0x02, 0x10, 0x03, 0x00, 0xdb, 0x03, 0x3f, 0x3f, 0x08, 0x1b,
0x04, 0xa9, 0x41, 0x87, 0xff, 0x00, 0x5b, 0x04, 0x00, 0x00, 0x00, 0x9b, 0x04, 0x30, 0x00, 0x00, 0xdb, 0x04, 0x00, 0x00, 0x00, 0x1b, 0x05, 0x10, 0x00, 0x00, 0x5b, 0x05,
0x00, 0x00, 0x00, 0x9b, 0x05, 0x00, 0x00, 0x00, 0xdb, 0x05, 0x00, 0x00, 0x08, 0x5b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x08, 0x1b, 0x01, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x14,
0x00, 0x00, 0x00, 0x08, 0xdb, 0x03, 0x00, 0x00, 0x00, 0x01, 0x08, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x80, 0x11, 0x19, 0xdb, 0x1a, 0xff, 0xff, 0x01, 0x00, 0xe8, 0x03, 0x00,
0x00, 0x08, 0x5b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x1b, 0x01, 0xff, 0xff, 0x00, 0x04, 0x08, 0xdb, 0x03, 0xff, 0xff, 0x00, 0x01, 0x00, 0x51, 0xea, 0x00, 0x00, 0xc8,
0x12, 0x40, 0x9b, 0x20, 0x10, 0x00, 0x40, 0xdb, 0x20, 0x00, 0x08, 0x40, 0xdb, 0x21, 0x08, 0x00, 0x40, 0x9b, 0x28, 0x40, 0x00, 0x40, 0xdb, 0x28, 0x88, 0x01, 0x40, 0x1b,
0x36, 0x10, 0x40, 0x40, 0xdb, 0x37, 0x00, 0x01, 0x40, 0x5b, 0x28, 0x50, 0x00, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38, 0x00, 0x02, 0x40, 0x5b, 0x24, 0xff, 0x80,
0x40, 0x1b, 0x28, 0x6f, 0x03, 0x40, 0x5b, 0x3c, 0x40, 0x10, 0x40, 0x9b, 0x3c, 0x3c, 0x10, 0x40, 0x5b, 0x36, 0x00, 0x00, 0x40, 0xdb, 0x36, 0xac, 0x00, 0x40, 0x1b, 0x37,
0xcc, 0xcc, 0x40, 0x5b, 0x37, 0x0b, 0x0b, 0x40, 0x9b, 0x37, 0x0b, 0x0b, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x5b,
0x00, 0x00, 0x00, 0x20, 0x00, 0x48, 0x1b, 0x20, 0x00, 0x00, 0x01, 0x00, 0x48, 0xdb, 0x25, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1b, 0x20, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b,
0x24, 0x01, 0x00, 0x01, 0x70, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x40, 0x09, 0x70, 0x0d, 0xb8, 0x0b, 0x00, 0x00, 0x48, 0x1b, 0x24, 0xff,
0xff, 0x02, 0x00, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x00, 0x00, 0x02, 0x00, 0x40, 0x5b, 0x36, 0x01, 0x00, 0x40, 0xdb, 0x36, 0xaa, 0x00, 0x40,
0x1b, 0x37, 0xaa, 0xaa, 0x48, 0x1b, 0x24, 0x01, 0x40, 0x09, 0x70, 0x0d, 0xb8, 0x0b, 0x00, 0x00, 0x48, 0x1b, 0x24, 0xff, 0xff, 0x02, 0x00, 0x55, 0x9b, 0x24, 0xff, 0xff,
0x01, 0x00, 0x48, 0x1b, 0x24, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x04, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x48, 0x1a, 0x00, 0xff, 0xff,
0x01, 0x00, 0x48, 0x1a, 0x01, 0x00, 0x00, 0x04, 0x00, 0x48, 0x9a, 0x00, 0xff, 0xff, 0x01, 0x00, 0x48, 0x5a, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x01,
0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x02, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x0a, 0xd6, 0x00, 0x00, 0xc8, 0x12,
0x40, 0x9b, 0x20, 0x10, 0x00, 0x40, 0xdb, 0x20, 0x00, 0x08, 0x40, 0xdb, 0x21, 0x08, 0x00, 0x40, 0x9b, 0x28, 0x40, 0x00, 0x40, 0xdb, 0x28, 0x88, 0x01, 0x40, 0x1b, 0x36,
0x10, 0x40, 0x40, 0xdb, 0x37, 0x00, 0x01, 0x40, 0x5b, 0x28, 0x50, 0x00, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38, 0x00, 0x02, 0x40, 0x5b, 0x24, 0xff, 0x80, 0x40,
0x1b, 0x28, 0x6f, 0x03, 0x40, 0x5b, 0x3c, 0x40, 0x10, 0x40, 0x9b, 0x3c, 0x3c, 0x10, 0x40, 0x5b, 0x36, 0x00, 0x00, 0x40, 0xdb, 0x36, 0xac, 0x00, 0x40, 0x1b, 0x37, 0xcc,
0xcc, 0x40, 0x5b, 0x37, 0x0b, 0x0b, 0x40, 0x9b, 0x37, 0x40, 0x74,
/* cmd package 4 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x40, 0x3f, 0x48, 0xbf, 0x0b, 0x0b, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x5b, 0x00, 0x00, 0x00,
0x20, 0x00, 0x48, 0x1b, 0x20, 0x00, 0x00, 0x01, 0x00, 0x48, 0xdb, 0x25, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1b, 0x20, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x00,
0x01, 0x70, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x40, 0x09, 0x70, 0x0d, 0xb8, 0x0b, 0x00, 0x00, 0x48, 0x1b, 0x24, 0xff, 0xff, 0x02, 0x00,
0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x00, 0x00, 0x02, 0x00, 0x40, 0x5b, 0x36, 0x01, 0x00, 0x40, 0xdb, 0x36, 0xaa, 0x00, 0x40, 0x1b, 0x37, 0xaa,
0xaa, 0x48, 0x1b, 0x24, 0x01, 0x40, 0x09, 0x70, 0x0d, 0xb8, 0x0b, 0x00, 0x00, 0x48, 0x1b, 0x24, 0xff, 0xff, 0x02, 0x00, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48,
0x1b, 0x24, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x04, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x48, 0x1a, 0x00, 0xff, 0xff, 0x01, 0x00, 0x48,
0x1a, 0x01, 0x00, 0x00, 0x04, 0x00, 0x48, 0x9a, 0x00, 0xff, 0xff, 0x01, 0x00, 0x48, 0x5a, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1a,
0x08, 0xff, 0xff, 0x02, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x0a, 0xd6, 0x00, 0x00, 0xc8, 0x12, 0x40, 0x9b, 0x20,
0x10, 0x00, 0x40, 0xdb, 0x20, 0x00, 0x08, 0x40, 0xdb, 0x21, 0x08, 0x00, 0x40, 0x9b, 0x28, 0x40, 0x00, 0x40, 0xdb, 0x28, 0x88, 0x01, 0x40, 0x1b, 0x36, 0x10, 0x40, 0x40,
0xdb, 0x37, 0x00, 0x01, 0x40, 0x5b, 0x28, 0x50, 0x00, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38, 0x00, 0x02, 0x40, 0x5b, 0x24, 0xff, 0x80, 0x40, 0x1b, 0x28, 0x6f,
0x03, 0x40, 0x5b, 0x3c, 0x40, 0x10, 0x40, 0x9b, 0x3c, 0x3c, 0x10, 0x40, 0x5b, 0x36, 0x00, 0x00, 0x40, 0xdb, 0x36, 0xac, 0x00, 0x40, 0x1b, 0x37, 0xcc, 0xcc, 0x40, 0x5b,
0x37, 0x0b, 0x0b, 0x40, 0x9b, 0x37, 0x0b, 0x0b, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x5b, 0x00, 0x00, 0x00, 0x20,
0x00, 0x48, 0x1b, 0x20, 0x00, 0x00, 0x01, 0x00, 0x48, 0xdb, 0x25, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1b, 0x20, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x00, 0x01,
0x70, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x40, 0x09, 0x70, 0x0d, 0xd0, 0x07, 0x00, 0x00, 0x48, 0x1b, 0x24, 0xff, 0xff, 0x02, 0x00, 0x55,
0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x00, 0x00, 0x02, 0x00, 0x40, 0x5b, 0x36, 0x01, 0x00, 0x40, 0xdb, 0x36, 0xaa, 0x00, 0x40, 0x1b, 0x37, 0xaa, 0xaa,
0x48, 0x1b, 0x24, 0x01, 0x40, 0x09, 0x70, 0x0d, 0xd0, 0x07, 0x00, 0x00, 0x48, 0x1b, 0x24, 0xff, 0xff, 0x02, 0x00, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b,
0x24, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x04, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x48, 0x1a, 0x00, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1a,
0x01, 0x00, 0x00, 0x04, 0x00, 0x48, 0x9a, 0x00, 0xff, 0xff, 0x01, 0x00, 0x48, 0x5a, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1a, 0x08,
0xff, 0xff, 0x02, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0xb5, 0xa9, 0x00, 0x00, 0xa8, 0x11, 0x40, 0x9b, 0x20, 0x10,
0x00, 0x40, 0xdb, 0x20, 0x00, 0x08, 0x40, 0xdb, 0x21, 0x08, 0x00, 0x40, 0x9b, 0x28, 0x40, 0x00, 0x40, 0xdb, 0x28, 0x88, 0x01, 0x40, 0x1b, 0x36, 0x10, 0x40, 0x40, 0xdb,
0x37, 0x00, 0x01, 0x40, 0x5b, 0x28, 0x68, 0x00, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38, 0x00, 0x02, 0x40, 0x5b, 0x24, 0xff, 0x80, 0x40, 0x1b, 0x28, 0x8f, 0x03,
0x40, 0x5b, 0x3c, 0x40, 0x10, 0x40, 0x9b, 0x3c, 0x3c, 0x10, 0x40, 0x5b, 0x36, 0x01, 0x00, 0x40, 0xdb, 0x36, 0xac, 0x00, 0x40, 0x1b, 0x37, 0xcc, 0xcc, 0x40, 0x5b, 0x37,
0x15, 0x15, 0x40, 0x9b, 0x37, 0x15, 0x15, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x5b, 0x00, 0x00, 0x00, 0x20, 0x00,
0x48, 0x1b, 0x20, 0x00, 0x00, 0x01, 0x00, 0x48, 0xdb, 0x25, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1b, 0x20, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x00, 0x01, 0x70,
0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x40, 0x09, 0x70, 0x0d, 0xd0, 0x07, 0x00, 0x00, 0x40, 0xdb, 0x36, 0xaa, 0x00, 0x40, 0x1b, 0x37, 0xaa,
0xaa, 0x40, 0x5b, 0x36, 0x07, 0x00, 0x0d, 0xe8, 0x03, 0x00, 0x00, 0x40, 0x5b, 0x36, 0xff, 0x01, 0x0d, 0xd0, 0x07, 0x00, 0x00, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x04,
0x48, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x48, 0x1a, 0x00, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1a, 0x01, 0x00, 0x00, 0x04, 0x00, 0x48, 0x9a, 0x00, 0xff, 0xff, 0x01, 0x00,
0x48, 0x5a, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1a, 0x08, 0xff, 0xff, 0x02, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x00, 0x48, 0x1a, 0x08,
0xff, 0xff, 0x04, 0x00, 0x48, 0x1b, 0x24, 0xff, 0xff, 0x02, 0x00, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x00, 0x00, 0x02, 0x00, 0x56, 0x57, 0x00, 0x00,
0x58, 0x02, 0x40, 0x1b, 0x36, 0x00, 0x40, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38, 0x00, 0x02, 0x40, 0xdb, 0x36, 0xa6, 0x00, 0x40, 0x1b, 0x37, 0x66, 0x66, 0x40,
0x5b, 0x24, 0xff, 0x89, 0x48, 0x1b, 0x24, 0x01, 0x40, 0x01, 0x70, 0x00, 0xb7, 0xc5, 0x00, 0x00, 0x38, 0x0a, 0x00, 0x1b, 0x00, 0x34, 0xfc, 0x00, 0x5b, 0x00, 0x00, 0xff,
0x00, 0x9b, 0x00, 0xf0, 0x19, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x44, 0x00, 0x5b, 0x01, 0x30, 0x22, 0x00, 0x9b, 0x01, 0x3b, 0x66, 0x00, 0xdb, 0x01,
0x00, 0x00, 0x00, 0x1b, 0x02, 0xff, 0x00, 0x00, 0x5b, 0x02, 0x14, 0x03, 0x00, 0xdb, 0x03, 0x3f, 0x3f, 0x08, 0x1b, 0x04, 0xa9, 0x41, 0x87, 0xff, 0x00, 0x5b, 0x04, 0x00,
0x00, 0x00, 0x9b, 0x04, 0x30, 0x00, 0x00, 0xdb, 0x04, 0x00, 0x00, 0x00, 0x1b, 0x05, 0x10, 0x00, 0x00, 0x5b, 0x05, 0x00, 0x00, 0x00, 0x9b, 0x05, 0x00, 0x00, 0x00, 0xdb,
0x05, 0x00, 0x00, 0x00, 0x5b, 0x06, 0x3e, 0xd2, 0x00, 0x9b, 0x06, 0x41, 0x77, 0x00, 0xdb, 0x06, 0x3e, 0x52, 0x00, 0x1b, 0x07, 0x67, 0x77, 0x00, 0x5b, 0x07, 0x3e, 0x52,
0x00, 0x9b, 0x07, 0x40, 0x77, 0x00, 0x5b, 0x08, 0x01, 0xa4, 0x00, 0x9b, 0x08, 0x00, 0x00, 0x00, 0xdb, 0x08, 0xc9, 0x8c, 0x08, 0x5b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x08,
0x1b, 0x01, 0x00, 0x00, 0x00, 0x04, 0x08, 0xf5, 0xbd,
/* cmd package 5 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x80, 0x7e, 0x48, 0xbf, 0xdb, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x54, 0x90, 0x00, 0x00, 0x38, 0x0a, 0x00, 0x1b, 0x00, 0xa6, 0xfb, 0x00,
0x5b, 0x00, 0xe0, 0x5e, 0x00, 0x9b, 0x00, 0xf0, 0x04, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x44, 0x00, 0x5b, 0x01, 0x30, 0x22, 0x00, 0x9b, 0x01, 0x5b,
0x66, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x02, 0xaa, 0x00, 0x00, 0x5b, 0x02, 0xf4, 0x01, 0x00, 0xdb, 0x03, 0x3f, 0x3f, 0x08, 0x1b, 0x04, 0xa9, 0x79, 0x87, 0xff,
0x00, 0x5b, 0x04, 0x00, 0x00, 0x00, 0x9b, 0x04, 0x30, 0x00, 0x00, 0xdb, 0x04, 0x00, 0x00, 0x00, 0x1b, 0x05, 0x08, 0x00, 0x00, 0x5b, 0x05, 0x00, 0x00, 0x00, 0x9b, 0x05,
0x00, 0x80, 0x00, 0xdb, 0x05, 0x00, 0x00, 0x00, 0x5b, 0x06, 0x3e, 0x9b, 0x00, 0x9b, 0x06, 0x41, 0x77, 0x00, 0xdb, 0x06, 0x3e, 0x1b, 0x00, 0x1b, 0x07, 0x67, 0x77, 0x00,
0x5b, 0x07, 0x3e, 0x1b, 0x00, 0x9b, 0x07, 0x40, 0x77, 0x00, 0x5b, 0x08, 0x01, 0xc6, 0x00, 0x9b, 0x08, 0x00, 0x00, 0x00, 0xdb, 0x08, 0x6d, 0xb8, 0x08, 0x5b, 0x00, 0xff,
0xff, 0x02, 0x00, 0x08, 0x1b, 0x01, 0x00, 0x00, 0x00, 0x04, 0x08, 0xdb, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0xe1, 0x00, 0x00, 0x38, 0x0a, 0x00, 0x1b,
0x00, 0xa6, 0xfb, 0x00, 0x5b, 0x00, 0xe0, 0x5e, 0x00, 0x9b, 0x00, 0xf0, 0x04, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x44, 0x00, 0x5b, 0x01, 0x30, 0x22,
0x00, 0x9b, 0x01, 0x5b, 0x66, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x02, 0xaa, 0x00, 0x00, 0x5b, 0x02, 0xf0, 0x01, 0x00, 0xdb, 0x03, 0x3f, 0x3f, 0x08, 0x1b, 0x04,
0xa9, 0x79, 0x87, 0xff, 0x00, 0x5b, 0x04, 0x00, 0x00, 0x00, 0x9b, 0x04, 0x30, 0x00, 0x00, 0xdb, 0x04, 0x00, 0x00, 0x00, 0x1b, 0x05, 0x08, 0x00, 0x00, 0x5b, 0x05, 0x00,
0x00, 0x00, 0x9b, 0x05, 0x00, 0x80, 0x00, 0xdb, 0x05, 0x00, 0x00, 0x00, 0x5b, 0x06, 0x3e, 0x9b, 0x00, 0x9b, 0x06, 0x41, 0x77, 0x00, 0xdb, 0x06, 0x3e, 0x9b, 0x00, 0x1b,
0x07, 0x41, 0x77, 0x00, 0x5b, 0x07, 0x3e, 0x1b, 0x00, 0x9b, 0x07, 0x40, 0x77, 0x00, 0x5b, 0x08, 0x00, 0xc6, 0x00, 0x9b, 0x08, 0x00, 0x00, 0x00, 0xdb, 0x08, 0x6d, 0x8c,
0x08, 0x5b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x08, 0x1b, 0x01, 0x00, 0x00, 0x00, 0x04, 0x08, 0xdb, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9e, 0x08, 0x00, 0x00,
0x38, 0x0a, 0x00, 0x1b, 0x00, 0xa6, 0xfb, 0x00, 0x5b, 0x00, 0xe0, 0x5e, 0x00, 0x9b, 0x00, 0xf0, 0x04, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x44, 0x00,
0x5b, 0x01, 0x30, 0x22, 0x00, 0x9b, 0x01, 0x5b, 0x66, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x02, 0xaa, 0x00, 0x00, 0x5b, 0x02, 0xf4, 0x01, 0x00, 0xdb, 0x03, 0x3f,
0x3f, 0x08, 0x1b, 0x04, 0xa9, 0x79, 0x87, 0xff, 0x00, 0x5b, 0x04, 0x00, 0x00, 0x00, 0x9b, 0x04, 0x30, 0x00, 0x00, 0xdb, 0x04, 0x00, 0x00, 0x00, 0x1b, 0x05, 0x00, 0x00,
0x00, 0x5b, 0x05, 0x00, 0x00, 0x00, 0x9b, 0x05, 0x00, 0x80, 0x00, 0xdb, 0x05, 0x00, 0x00, 0x00, 0x5b, 0x06, 0x3e, 0xd2, 0x00, 0x9b, 0x06, 0x41, 0x77, 0x00, 0xdb, 0x06,
0x3e, 0xd2, 0x00, 0x1b, 0x07, 0x41, 0x77, 0x00, 0x5b, 0x07, 0x3e, 0x52, 0x00, 0x9b, 0x07, 0x40, 0x77, 0x00, 0x5b, 0x08, 0x00, 0xa4, 0x00, 0x9b, 0x08, 0x00, 0x00, 0x00,
0xdb, 0x08, 0x49, 0xb8, 0x08, 0x5b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x08, 0x1b, 0x01, 0x00, 0x00, 0x00, 0x04, 0x08, 0xdb, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0xbe, 0x97, 0x00, 0x00, 0x38, 0x0a, 0x00, 0x1b, 0x00, 0xa6, 0xfb, 0x00, 0x5b, 0x00, 0xa0, 0x7e, 0x00, 0x9b, 0x00, 0xf0, 0x05, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x1b,
0x01, 0x00, 0x44, 0x00, 0x5b, 0x01, 0x30, 0x22, 0x00, 0x9b, 0x01, 0x5b, 0x66, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x02, 0xaa, 0x00, 0x00, 0x5b, 0x02, 0xf4, 0x01,
0x00, 0xdb, 0x03, 0x3f, 0x3f, 0x08, 0x1b, 0x04, 0xa9, 0x79, 0x87, 0xff, 0x00, 0x5b, 0x04, 0x00, 0x00, 0x00, 0x9b, 0x04, 0x30, 0x00, 0x00, 0xdb, 0x04, 0x00, 0x00, 0x00,
0x1b, 0x05, 0x00, 0x00, 0x00, 0x5b, 0x05, 0x00, 0x00, 0x00, 0x9b, 0x05, 0x00, 0x80, 0x00, 0xdb, 0x05, 0x00, 0x00, 0x00, 0x5b, 0x06, 0x3e, 0x9b, 0x00, 0x9b, 0x06, 0x41,
0x77, 0x00, 0xdb, 0x06, 0x3e, 0x9b, 0x00, 0x1b, 0x07, 0x41, 0x77, 0x00, 0x5b, 0x07, 0x3e, 0x1b, 0x00, 0x9b, 0x07, 0x40, 0x77, 0x00, 0x5b, 0x08, 0x00, 0xc6, 0x00, 0x9b,
0x08, 0x00, 0x00, 0x00, 0xdb, 0x08, 0x6d, 0xb8, 0x08, 0x5b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x08, 0x1b, 0x01, 0x00, 0x00, 0x00, 0x04, 0x08, 0xdb, 0x03, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0xc6, 0x21, 0x00, 0x00, 0x28, 0x10, 0x08, 0x9b, 0x05, 0x00, 0x00, 0x00, 0x80, 0x08, 0x1b, 0x04, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00,
0x00, 0x40, 0x1b, 0x3b, 0x00, 0x00, 0x40, 0x1b, 0x3a, 0x50, 0x15, 0x40, 0x5b, 0x3a, 0x1c, 0x24, 0x40, 0x9b, 0x26, 0x41, 0x3f, 0x40, 0x5b, 0x26, 0x52, 0x2e, 0x40, 0x1b,
0x26, 0x00, 0x00, 0x40, 0x1b, 0x27, 0x00, 0x00, 0x40, 0xdb, 0x26, 0x00, 0x00, 0x40, 0x5b, 0x20, 0x10, 0x00, 0x40, 0x5b, 0x21, 0x00, 0x00, 0x40, 0x9b, 0x20, 0x10, 0x01,
0x40, 0xdb, 0x20, 0x00, 0x08, 0x40, 0xdb, 0x21, 0x08, 0x00, 0x40, 0x9b, 0x28, 0x00, 0x00, 0x40, 0xdb, 0x28, 0x88, 0x01, 0x40, 0x1b, 0x3c, 0x20, 0x40, 0x40, 0x1b, 0x36,
0x80, 0x40, 0x40, 0xdb, 0x37, 0x00, 0x01, 0x40, 0x5b, 0x28, 0x50, 0x00, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38, 0x00, 0x02, 0x40, 0x5b, 0x24, 0xff, 0x80, 0x40,
0x5b, 0x3c, 0x40, 0x10, 0x40, 0x9b, 0x3c, 0x3c, 0x10, 0x40, 0x1b, 0x3d, 0x20, 0x20, 0x40, 0x5b, 0x36, 0x00, 0x00, 0x40, 0xdb, 0x36, 0xab, 0x00, 0x40, 0x1b, 0x37, 0xbb,
0xbb, 0x40, 0x5b, 0x37, 0x0b, 0x0b, 0x40, 0x9b, 0x37, 0x0b, 0x0b, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x5b, 0x00,
0x00, 0x00, 0x20, 0x00, 0x48, 0x1b, 0x20, 0x00, 0x00, 0x01, 0x00, 0x48, 0x1b, 0x28, 0xff, 0xff, 0x10, 0x00, 0x48, 0x1b, 0x20, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24,
0x01, 0x50, 0x01, 0x70, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x9b, 0x25, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x9b, 0x05, 0xff,
0xff, 0x00, 0x80, 0x08, 0x1b, 0x04, 0xff, 0xff, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0xfa, 0xb9, 0x00, 0x00, 0x28, 0x10, 0x08, 0x9b, 0x05, 0x00, 0x00, 0x00, 0x80,
0x08, 0x1b, 0x04, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x40, 0x1b, 0x3b, 0x00, 0x00, 0x40, 0x1b, 0x3a, 0x50, 0x25, 0x40, 0x5b, 0x3a, 0x1c, 0x24, 0x40,
0x9b, 0x26, 0x41, 0x3f, 0x40, 0x5b, 0x26, 0x52, 0x2e, 0x40, 0xd9, 0xa4,
/* cmd package 6 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0xc0, 0xbd, 0x48, 0xbf, 0x1b, 0x26, 0x01, 0x00, 0x40, 0x1b, 0x27, 0x00, 0x00, 0x40, 0xdb, 0x26, 0x00, 0x00, 0x40, 0x5b, 0x20, 0x10, 0x00, 0x40, 0x5b,
0x21, 0x00, 0x00, 0x40, 0x9b, 0x20, 0x10, 0x01, 0x40, 0xdb, 0x20, 0x00, 0x08, 0x40, 0xdb, 0x21, 0x08, 0x00, 0x40, 0x9b, 0x28, 0x00, 0x00, 0x40, 0xdb, 0x28, 0x88, 0x01,
0x40, 0x1b, 0x3c, 0x20, 0x40, 0x40, 0x1b, 0x36, 0x80, 0x40, 0x40, 0xdb, 0x37, 0x00, 0x01, 0x40, 0x5b, 0x28, 0x50, 0x00, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38,
0x00, 0x02, 0x40, 0x5b, 0x24, 0xff, 0x80, 0x40, 0x5b, 0x3c, 0x40, 0x10, 0x40, 0x9b, 0x3c, 0x3c, 0x10, 0x40, 0x1b, 0x3d, 0x20, 0x20, 0x40, 0x5b, 0x36, 0x00, 0x00, 0x40,
0xdb, 0x36, 0xab, 0x00, 0x40, 0x1b, 0x37, 0xbb, 0xbb, 0x40, 0x5b, 0x37, 0x0b, 0x0b, 0x40, 0x9b, 0x37, 0x0b, 0x0b, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b,
0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x5b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x48, 0x1b, 0x20, 0x00, 0x00, 0x01, 0x00, 0x48, 0x1b, 0x28, 0xff, 0xff, 0x10, 0x00, 0x48, 0x1b,
0x20, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x50, 0x01, 0x70, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x9b, 0x25, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1b, 0x00,
0x00, 0x00, 0x02, 0x00, 0x08, 0x9b, 0x05, 0xff, 0xff, 0x00, 0x80, 0x08, 0x1b, 0x04, 0xff, 0xff, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0xc4, 0xdc, 0x00, 0x00, 0xc8,
0x17, 0x08, 0x9b, 0x06, 0x00, 0x00, 0x01, 0x00, 0x08, 0x5b, 0x06, 0x00, 0x00, 0x80, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x08, 0x5b, 0x06, 0xff, 0xff, 0x80, 0x00, 0x08,
0x1b, 0x1c, 0xff, 0xff, 0x08, 0x00, 0x08, 0x1b, 0x1c, 0xff, 0xff, 0x04, 0x00, 0x08, 0x1b, 0x1c, 0xff, 0xff, 0x01, 0x00, 0x15, 0x1b, 0x1c, 0xff, 0xff, 0x10, 0x00, 0x08, 0x9b,
0x06, 0xff, 0xff, 0x01, 0x00, 0x08, 0x1b, 0x07, 0x00, 0x00, 0x01, 0x00, 0x08, 0xdb, 0x06, 0x00, 0x00, 0x80, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x08, 0xdb, 0x06, 0xff,
0xff, 0x80, 0x00, 0x08, 0x9b, 0x1c, 0xff, 0xff, 0x08, 0x00, 0x08, 0x9b, 0x1c, 0xff, 0xff, 0x04, 0x00, 0x08, 0x9b, 0x1c, 0xff, 0xff, 0x01, 0x00, 0x15, 0x9b, 0x1c, 0xff, 0xff,
0x10, 0x00, 0x08, 0x1b, 0x07, 0xff, 0xff, 0x01, 0x00, 0x08, 0x9b, 0x05, 0x00, 0x00, 0x00, 0x80, 0x08, 0x1b, 0x04, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00,
0x40, 0x1b, 0x3b, 0x00, 0x00, 0x40, 0x1b, 0x3a, 0x60, 0x16, 0x40, 0x5b, 0x3a, 0x1c, 0x24, 0x40, 0x9b, 0x26, 0x41, 0x3f, 0x40, 0x5b, 0x26, 0x52, 0x2e, 0x40, 0x1b, 0x26,
0x11, 0x00, 0x40, 0x1b, 0x27, 0x00, 0x00, 0x40, 0xdb, 0x26, 0x00, 0x00, 0x40, 0x5b, 0x20, 0x10, 0x00, 0x40, 0x5b, 0x21, 0x00, 0x00, 0x40, 0x9b, 0x20, 0x10, 0x01, 0x40,
0xdb, 0x20, 0x00, 0x08, 0x40, 0xdb, 0x21, 0x08, 0x00, 0x40, 0x9b, 0x28, 0x00, 0x00, 0x40, 0xdb, 0x28, 0x88, 0x01, 0x40, 0x1b, 0x3c, 0x20, 0x40, 0x40, 0x1b, 0x36, 0x80,
0x40, 0x40, 0xdb, 0x37, 0x00, 0x01, 0x40, 0x5b, 0x28, 0x50, 0x00, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38, 0x00, 0x02, 0x40, 0x5b, 0x24, 0xff, 0x80, 0x40, 0x5b,
0x3c, 0x40, 0x10, 0x40, 0x9b, 0x3c, 0x3c, 0x10, 0x40, 0x1b, 0x3d, 0x20, 0x20, 0x40, 0x5b, 0x36, 0x00, 0x00, 0x40, 0xdb, 0x36, 0xab, 0x00, 0x40, 0x1b, 0x37, 0xbb, 0xbb,
0x40, 0x5b, 0x37, 0x0b, 0x0b, 0x40, 0x9b, 0x37, 0x0b, 0x0b, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x5b, 0x00, 0x00,
0x00, 0x20, 0x00, 0x48, 0x1b, 0x20, 0x00, 0x00, 0x01, 0x00, 0x48, 0x1b, 0x28, 0xff, 0xff, 0x10, 0x00, 0x48, 0x1b, 0x20, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01,
0x50, 0x01, 0x70, 0x55, 0x9b, 0x24, 0xff, 0xff, 0x01, 0x00, 0x48, 0x9b, 0x25, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x9b, 0x05, 0xff, 0xff,
0x00, 0x80, 0x08, 0x1b, 0x04, 0xff, 0xff, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x42, 0x00, 0x00, 0xc8, 0x17, 0x08, 0x9b, 0x06, 0x00, 0x00, 0x01,
0x00, 0x08, 0x5b, 0x06, 0x00, 0x00, 0x80, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x08, 0x5b, 0x06, 0xff, 0xff, 0x80, 0x00, 0x08, 0x1b, 0x1c, 0xff, 0xff, 0x08, 0x00, 0x08,
0x1b, 0x1c, 0xff, 0xff, 0x04, 0x00, 0x08, 0x1b, 0x1c, 0xff, 0xff, 0x01, 0x00, 0x15, 0x1b, 0x1c, 0xff, 0xff, 0x10, 0x00, 0x08, 0x9b, 0x06, 0xff, 0xff, 0x01, 0x00, 0x08, 0x1b,
0x07, 0x00, 0x00, 0x01, 0x00, 0x08, 0xdb, 0x06, 0x00, 0x00, 0x80, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x08, 0xdb, 0x06, 0xff, 0xff, 0x80, 0x00, 0x08, 0x9b, 0x1c, 0xff,
0xff, 0x08, 0x00, 0x08, 0x9b, 0x1c, 0xff, 0xff, 0x04, 0x00, 0x08, 0x9b, 0x1c, 0xff, 0xff, 0x01, 0x00, 0x15, 0x9b, 0x1c, 0xff, 0xff, 0x10, 0x00, 0x08, 0x1b, 0x07, 0xff, 0xff,
0x01, 0x00, 0x08, 0x9b, 0x05, 0x00, 0x00, 0x00, 0x80, 0x08, 0x1b, 0x04, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x40, 0x1b, 0x3b, 0x00, 0x00, 0x40, 0x1b,
0x3a, 0x60, 0x26, 0x40, 0x5b, 0x3a, 0x1c, 0x24, 0x40, 0x9b, 0x26, 0x41, 0x3f, 0x40, 0x5b, 0x26, 0x52, 0x2e, 0x40, 0x1b, 0x26, 0x12, 0x00, 0x40, 0x1b, 0x27, 0x00, 0x00,
0x40, 0xdb, 0x26, 0x00, 0x00, 0x40, 0x5b, 0x20, 0x10, 0x00, 0x40, 0x5b, 0x21, 0x00, 0x00, 0x40, 0x9b, 0x20, 0x10, 0x01, 0x40, 0xdb, 0x20, 0x00, 0x08, 0x40, 0xdb, 0x21,
0x08, 0x00, 0x40, 0x9b, 0x28, 0x00, 0x00, 0x40, 0xdb, 0x28, 0xc0, 0x0f, 0x40, 0x1b, 0x3c, 0x20, 0x40, 0x40, 0x1b, 0x36, 0x80, 0x40, 0x40, 0xdb, 0x37, 0x00, 0x01, 0x40,
0x5b, 0x28, 0x50, 0x00, 0x40, 0x5b, 0x38, 0xa2, 0x01, 0x40, 0x1b, 0x38, 0x00, 0x02, 0x40, 0x5b, 0x24, 0xff, 0x80, 0x40, 0x5b, 0x3c, 0x40, 0x10, 0x40, 0x9b, 0x3c, 0x3c,
0x10, 0x40, 0x1b, 0x3d, 0x20, 0x20, 0x40, 0x5b, 0x36, 0x00, 0x00, 0x40, 0xdb, 0x36, 0xab, 0x00, 0x40, 0x1b, 0x37, 0xbb, 0xbb, 0x40, 0x5b, 0x37, 0x0b, 0x0b, 0x40, 0x9b,
0x37, 0x0b, 0x0b, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x48, 0x1b, 0x00, 0xff, 0xff, 0x02, 0x00, 0x48, 0x5b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x48, 0x1b, 0x20, 0x00,
0x00, 0x01, 0x00, 0x48, 0x1b, 0x28, 0xff, 0xff, 0x10, 0x00, 0x48, 0x1b, 0x20, 0xff, 0xff, 0x01, 0x00, 0x48, 0x1b, 0x24, 0x01, 0x50, 0x01, 0x70, 0x55, 0x9b, 0x24, 0xff, 0xff,
0x01, 0x00, 0x48, 0x9b, 0x25, 0xff, 0xff, 0x02, 0x00, 0x48, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08, 0x9b, 0x05, 0xff, 0xff, 0x00, 0x80, 0x08, 0x1b, 0x04, 0xff, 0xff, 0x00,
0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x55, 0x00, 0x00, 0x58, 0x09, 0xc8, 0x01, 0x07, 0x00, 0x00, 0x04, 0x00, 0xc8, 0x41, 0x07, 0x00, 0x00, 0x04, 0x00,
0x00, 0xdb, 0x04, 0x29, 0xa4,
/* cmd package 7 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x00, 0xfd, 0x48, 0xbf, 0x30, 0x00, 0x08, 0x9b, 0x02, 0x00, 0x00, 0x00, 0x80, 0x08, 0x1b, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x5b, 0x01, 0xff, 0xff,
0x10, 0x00, 0x08, 0x5b, 0x01, 0xff, 0xff, 0x20, 0x00, 0x08, 0xdb, 0x02, 0xff, 0xff, 0x00, 0x10, 0x08, 0xdb, 0x1f, 0xff, 0xff, 0x00, 0x01, 0x0d, 0xe8, 0x03, 0x00, 0x00, 0x08,
0xdb, 0x1f, 0xff, 0xff, 0x01, 0x00, 0x08, 0xdb, 0x1f, 0xff, 0xff, 0x02, 0x00, 0x08, 0xdb, 0x1f, 0xff, 0xff, 0x00, 0x02, 0x0d, 0xe8, 0x03, 0x00, 0x00, 0x08, 0xdb, 0x1f, 0x00,
0x00, 0x00, 0x02, 0x0d, 0xe8, 0x03, 0x00, 0x00, 0x08, 0xdb, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x08, 0xdb, 0x1f, 0xff, 0xff, 0x04, 0x00, 0x08, 0xdb, 0x1f, 0xff, 0xff, 0x00, 0x04,
0x0d, 0xe8, 0x03, 0x00, 0x00, 0x08, 0xdb, 0x1f, 0x00, 0x00, 0x00, 0x04, 0x0d, 0xe8, 0x03, 0x00, 0x00, 0x08, 0xdb, 0x1f, 0x00, 0x00, 0x04, 0x00, 0x00, 0xb1, 0xfa, 0x00,
0x00, 0x58, 0x09, 0xc8, 0xc1, 0x13, 0x02, 0x00, 0x0f, 0x00, 0xc8, 0x81, 0x13, 0x00, 0x00, 0x01, 0x00, 0xc8, 0x01, 0x07, 0x00, 0x00, 0x01, 0x00, 0xc8, 0x41, 0x07, 0x00,
0x00, 0x01, 0x00, 0xc8, 0x01, 0x12, 0x20, 0x00, 0x38, 0x00, 0xc8, 0x01, 0x12, 0xff, 0xff, 0x40, 0x00, 0xc8, 0x01, 0x12, 0xff, 0xff, 0x00, 0x08, 0xd5, 0x01, 0x12, 0xff, 0xff,
0x00, 0x10, 0xc8, 0x41, 0x07, 0xff, 0xff, 0x01, 0x00, 0xc8, 0x01, 0x07, 0xff, 0xff, 0x01, 0x00, 0xc8, 0xc1, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xc8, 0xc1, 0x0c, 0x00, 0x00, 0x01,
0x00, 0xc0, 0xc1, 0x01, 0x1d, 0x00, 0xc0, 0x01, 0x02, 0x00, 0x00, 0xc0, 0x41, 0x02, 0x00, 0x50, 0xc0, 0x81, 0x02, 0x40, 0x21, 0xc0, 0xc1, 0x02, 0x01, 0x00, 0xc0, 0x01,
0x03, 0x00, 0x00, 0xc0, 0x41, 0x03, 0x00, 0x00, 0xc0, 0x81, 0x03, 0x00, 0x00, 0xc0, 0xc1, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x04, 0x00, 0x00, 0xc0, 0x41, 0x04, 0x00, 0x00,
0xc0, 0x81, 0x04, 0x00, 0x00, 0xc0, 0xc1, 0x04, 0x00, 0x00, 0x00, 0xb5, 0x03, 0x00, 0x00, 0x58, 0x09, 0xc8, 0xc1, 0x17, 0x02, 0x00, 0x0f, 0x00, 0xc8, 0x81, 0x17, 0x00,
0x00, 0x01, 0x00, 0xc8, 0x01, 0x07, 0x00, 0x00, 0x01, 0x00, 0xc8, 0x41, 0x07, 0x00, 0x00, 0x01, 0x00, 0xc8, 0x01, 0x16, 0x20, 0x00, 0x38, 0x00, 0xc8, 0x01, 0x16, 0xff,
0xff, 0x40, 0x00, 0xc8, 0x01, 0x16, 0xff, 0xff, 0x00, 0x08, 0xd5, 0x01, 0x16, 0xff, 0xff, 0x00, 0x10, 0xc8, 0x41, 0x07, 0xff, 0xff, 0x01, 0x00, 0xc8, 0x01, 0x07, 0xff, 0xff,
0x01, 0x00, 0xc8, 0xc1, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xc8, 0xc1, 0x0c, 0x00, 0x00, 0x01, 0x00, 0xc0, 0xc1, 0x01, 0x1d, 0x00, 0xc0, 0x01, 0x02, 0x00, 0x00, 0xc0, 0x41,
0x02, 0x00, 0x50, 0xc0, 0x81, 0x02, 0x40, 0x21, 0xc0, 0xc1, 0x02, 0x01, 0x00, 0xc0, 0x01, 0x03, 0x00, 0x00, 0xc0, 0x41, 0x03, 0x00, 0x00, 0xc0, 0x81, 0x03, 0x00, 0x00,
0xc0, 0xc1, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x04, 0x00, 0x00, 0xc0, 0x41, 0x04, 0x00, 0x00, 0xc0, 0x81, 0x04, 0x00, 0x00, 0xc0, 0xc1, 0x04, 0x00, 0x00, 0x00, 0x67, 0xbd,
0x00, 0x00, 0x04, 0x04, 0x81, 0x08, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x10, 0x77, 0xdc, 0x00, 0x39, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0c, 0x34, 0x41, 0x00, 0x10, 0x08, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x3b, 0x00, 0x00,
0x00, 0xff, 0x03, 0x14, 0x3f, 0x3f, 0x41, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x34, 0x7f, 0x00, 0x19, 0xf8,
0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x3b, 0x00, 0x00, 0x00, 0xff, 0x03, 0x14, 0x3f, 0x3f, 0x41, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xfc, 0x34, 0x7e, 0x80, 0x19, 0xf8, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x3b, 0x00, 0x00, 0x00, 0xff, 0x03, 0x14, 0x3f, 0x3f, 0x41, 0xa9,
0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x81, 0x08, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x10, 0x77, 0xdc, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0xa6, 0x42, 0xe0,
0x05, 0xf8, 0x7e, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x1b, 0x00, 0x00, 0x00, 0xcc, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3b, 0xa6, 0x5e, 0xe0, 0x00, 0xb8, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0x74, 0x3f, 0x3f,
0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfb, 0xa6, 0x5e, 0xe0, 0x04, 0xf8, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30,
0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfb, 0xa6,
0x7e, 0xe0, 0x05, 0xf8, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x1e, 0xa6, 0x6e, 0x60, 0x05, 0xf8, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4,
0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfe, 0xa6, 0x7e, 0x60, 0x05, 0xf8, 0x00, 0x00, 0x44, 0x00,
0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
0xfe, 0xa6, 0x7e, 0x60, 0x05, 0xf8, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0xe6, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x04, 0x81, 0x08, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x10, 0x77, 0xdc, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0xa6, 0x42, 0xe0, 0x05, 0xf0, 0x7e, 0x00,
0x44, 0x00, 0x22, 0x30, 0x66, 0x1b, 0x00, 0x00, 0x00, 0xcc, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
0x00, 0x00, 0x3b, 0xa6, 0x5e, 0xe0, 0x00, 0xb0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0x74, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00,
0x00, 0x30, 0x00, 0x00, 0x00, 0x14, 0xb8,
/* cmd package 8 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x40, 0x3c, 0x49, 0xbf, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfb, 0xa6, 0x5e, 0xe0, 0x04, 0xf0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b,
0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfb, 0xa6, 0x7e, 0xe0,
0x05, 0xf0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x1e, 0xa6, 0x6e, 0x60, 0x05, 0xf0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f,
0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfe, 0xa6, 0x7e, 0x60, 0x05, 0xf0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30,
0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfe, 0xa6,
0x7e, 0x60, 0x05, 0xf0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0xe6, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x04, 0x81, 0x08, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x10,
0x77, 0xdc, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0xa6, 0x42, 0xe0, 0x05, 0xf0, 0x7e, 0x00, 0x44, 0x00,
0x22, 0x30, 0x66, 0x1b, 0x00, 0x00, 0x00, 0xcc, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
0x3b, 0xa6, 0x5e, 0xe0, 0x00, 0xb0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0x74, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfb, 0xa6, 0x5e, 0xe0, 0x04, 0xf0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa,
0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfb, 0xa6, 0x7e, 0xe0, 0x05, 0xf0, 0x00, 0x00,
0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
0x00, 0x00, 0xfb, 0xa6, 0x7e, 0xa0, 0x05, 0xf0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00,
0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfb, 0xa6, 0x7e, 0x80, 0x05, 0xf0, 0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00,
0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xfb, 0xa6, 0x7e, 0x80, 0x09, 0xf0,
0x00, 0x00, 0x44, 0x00, 0x22, 0x30, 0x66, 0x5b, 0x00, 0x00, 0x00, 0xaa, 0x01, 0xf4, 0x3f, 0x3f, 0x79, 0xa9, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0xef, 0x8d, 0xf0, 0xa4, 0xa8, 0xf0, 0xcf, 0x8c, 0xf0, 0xa4, 0x28, 0xce, 0x8d, 0xf0, 0xa4, 0x2e, 0xfe, 0x22, 0xc5, 0xf0, 0xf8, 0xa3, 0xe0, 0x28, 0xf0,
0xc5, 0xf0, 0xf8, 0xe5, 0x82, 0x15, 0x82, 0x70, 0x02, 0x15, 0x83, 0xe0, 0x38, 0xf0, 0x22, 0xe8, 0x8f, 0xf0, 0xa4, 0xcc, 0x8b, 0xf0, 0xa4, 0x2c, 0xfc, 0xe9, 0x8e, 0xf0, 0xa4,
0x2c, 0xfc, 0x8a, 0xf0, 0xed, 0xa4, 0x2c, 0xfc, 0xea, 0x8e, 0xf0, 0xa4, 0xcd, 0xa8, 0xf0, 0x8b, 0xf0, 0xa4, 0x2d, 0xcc, 0x38, 0x25, 0xf0, 0xfd, 0xe9, 0x8f, 0xf0, 0xa4, 0x2c,
0xcd, 0x35, 0xf0, 0xfc, 0xeb, 0x8e, 0xf0, 0xa4, 0xfe, 0xa9, 0xf0, 0xeb, 0x8f, 0xf0, 0xa4, 0xcf, 0xc5, 0xf0, 0x2e, 0xcd, 0x39, 0xfe, 0xe4, 0x3c, 0xfc, 0xea, 0xa4, 0x2d, 0xce,
0x35, 0xf0, 0xfd, 0xe4, 0x3c, 0xfc, 0x22, 0xeb, 0x9f, 0xf5, 0xf0, 0xea, 0x9e, 0x42, 0xf0, 0xe9, 0x9d, 0x42, 0xf0, 0xe8, 0x9c, 0x45, 0xf0, 0x22, 0xe8, 0x60, 0x0f, 0xef, 0xc3,
0x33, 0xff, 0xee, 0x33, 0xfe, 0xed, 0x33, 0xfd, 0xec, 0x33, 0xfc, 0xd8, 0xf1, 0x22, 0xa4, 0x25, 0x82, 0xf5, 0x82, 0xe5, 0xf0, 0x35, 0x83, 0xf5, 0x83, 0x22, 0x8a, 0x83, 0x89,
0x82, 0xe4, 0x73, 0xe7, 0x09, 0xf6, 0x08, 0xdf, 0xfa, 0x80, 0x46, 0xe7, 0x09, 0xf2, 0x08, 0xdf, 0xfa, 0x80, 0x3e, 0x88, 0x82, 0x8c, 0x83, 0xe7, 0x09, 0xf0, 0xa3, 0xdf, 0xfa,
0x80, 0x32, 0xe3, 0x09, 0xf6, 0x08, 0xdf, 0xfa, 0x80, 0x6e, 0xe3, 0x09, 0xf2, 0x08, 0xdf, 0xfa, 0x80, 0x66, 0x88, 0x82, 0x8c, 0x83, 0xe3, 0x09, 0xf0, 0xa3, 0xdf, 0xfa, 0x80,
0x5a, 0x89, 0x82, 0x8a, 0x83, 0xe0, 0xa3, 0xf6, 0x08, 0xdf, 0xfa, 0x80, 0x4e, 0x89, 0x82, 0x8a, 0x83, 0xe0, 0xa3, 0xf2, 0x08, 0xdf, 0xfa, 0x80, 0x42, 0x80, 0xd2, 0x80,
0xfa, 0x80, 0xc6, 0x80, 0xd4, 0x80, 0x55, 0x80, 0xf2, 0x80, 0x29, 0x80, 0x10, 0x80, 0xa6, 0x80, 0xea, 0x80, 0x9a, 0x80, 0xa8, 0x80, 0xda, 0x80, 0xe2, 0x80, 0xca, 0x80,
0x29, 0x88, 0x84, 0x8c, 0x85, 0x89, 0x82, 0x8a, 0x83, 0xe4, 0x93, 0xa3, 0x05, 0x92, 0xf0, 0xa3, 0x15, 0x92, 0xdf, 0xf5, 0xde, 0xf3, 0x80, 0x0b, 0x89, 0x82, 0x8a, 0x83,
0xe4, 0x93, 0xa3, 0xf6, 0x08, 0xdf, 0xf9, 0xec, 0xfa, 0xa9, 0xf0, 0xed, 0xfb, 0x22, 0x88, 0x84, 0x8c, 0x85, 0x89, 0x82, 0x8a, 0x83, 0xe0, 0xa3, 0x05, 0x92, 0xf0, 0xa3,
0x15, 0x92, 0xdf, 0xf6, 0xde, 0xf4, 0x80, 0xe3, 0x89, 0x82, 0x8a, 0x83, 0xe4, 0x93, 0xa3, 0xf2, 0x08, 0xdf, 0xf9, 0x80, 0xd6, 0x88, 0xf0, 0xef, 0x60, 0x01, 0x0e, 0x4e,
0x60, 0xcd, 0x88, 0xf0, 0xed, 0x24, 0x02, 0xb4, 0x04, 0x00, 0x50, 0xc3, 0xf5, 0x82, 0xeb, 0x24, 0x02, 0xb4, 0x04, 0x00, 0x50, 0xb9, 0x23, 0x23, 0x45, 0x82, 0x23, 0x90,
0x96, 0xb6, 0x73, 0x90, 0x40, 0x00, 0x7f, 0x00, 0x7e, 0x40, 0xe4, 0xf0, 0xa3, 0xdf, 0xfc, 0xde, 0xfa, 0x02, 0x97, 0x94, 0x02, 0xa8, 0x05, 0xe4, 0x93, 0xa3, 0xf8, 0xe4,
0x93, 0xa3, 0x40, 0x03, 0xf6, 0x80, 0x01, 0xf2, 0x08, 0xdf, 0xf4, 0x80, 0x29, 0xe4, 0x93, 0xa3, 0xf8, 0x54, 0x07, 0x24, 0x0c, 0xc8, 0xc3, 0x33, 0xc4, 0x54, 0x0f, 0x44,
0x20, 0xc8, 0x83, 0x40, 0x04, 0xf4, 0x56, 0x80, 0x01, 0x46, 0xf6, 0xdf, 0xe4, 0x80, 0x0b, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x90, 0x97, 0xe5, 0xe4, 0x7e,
0x01, 0x93, 0x60, 0xbc, 0xa3, 0xff, 0x54, 0x3f, 0x30, 0xe5, 0x09, 0x54, 0x1f, 0xfe, 0xe4, 0x93, 0xa3, 0x60, 0x01, 0x0e, 0xcf, 0x54, 0xc0, 0x25, 0xe0, 0x60, 0xa8, 0x40,
0xb8, 0xe4, 0x93, 0x8c, 0x0f,
/* cmd package 9 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x80, 0x7b, 0x49, 0xbf, 0xa3, 0xfa, 0xe4, 0x93, 0xa3, 0xf8, 0xe4, 0x93, 0xa3, 0xc8, 0xc5, 0x82, 0xc8, 0xca, 0xc5, 0x83, 0xca, 0xf0, 0xa3, 0xc8, 0xc5, 0x82,
0xc8, 0xca, 0xc5, 0x83, 0xca, 0xdf, 0xe9, 0xde, 0xe7, 0x80, 0xbe, 0xee, 0x30, 0xe7, 0x07, 0xc3, 0xe4, 0x9f, 0xff, 0xe4, 0x9e, 0xfe, 0x22, 0x01, 0x24, 0x00, 0x01, 0x53, 0x0f,
0x00, 0x7f, 0x01, 0x12, 0x6d, 0xde, 0x30, 0x0f, 0x1a, 0x12, 0x98, 0x43, 0xc3, 0x94, 0x20, 0x40, 0x0c, 0xef, 0xd3, 0x94, 0x70, 0x50, 0x06, 0x7e, 0x00, 0x7f, 0x01, 0x80,
0x1d, 0x7e, 0x00, 0x7f, 0x00, 0x80, 0x17, 0x11, 0x43, 0xc3, 0x94, 0x20, 0x40, 0x0c, 0xef, 0xd3, 0x94, 0x30, 0x50, 0x06, 0x7e, 0x00, 0x7f, 0x01, 0x80, 0x04, 0x7e, 0x00,
0x7f, 0x00, 0xef, 0x4e, 0x60, 0x07, 0xe4, 0xff, 0x12, 0x6d, 0xde, 0x80, 0x10, 0xe5, 0x17, 0x25, 0xe0, 0x25, 0xe0, 0x24, 0x33, 0xfd, 0xe4, 0xfb, 0x7f, 0x63, 0x12, 0x00,
0x3e, 0x7f, 0x00, 0x22, 0x90, 0x36, 0xd4, 0xe0, 0x54, 0xf0, 0xff, 0x22, 0x8f, 0x4a, 0x31, 0x09, 0xe0, 0xff, 0x75, 0xf0, 0x30, 0xa4, 0x24, 0x74, 0xf5, 0x82, 0xe5, 0xf0, 0x34,
0x2d, 0xf5, 0x83, 0xef, 0x25, 0x83, 0xaf, 0x82, 0xf5, 0x4d, 0x8f, 0x4e, 0x7e, 0x00, 0xe5, 0x17, 0x25, 0xe0, 0x25, 0xe0, 0xfb, 0xe5, 0x4a, 0xc8, 0xeb, 0xc8, 0x08, 0x80,
0x05, 0xc3, 0x33, 0xce, 0x33, 0xce, 0xd8, 0xf9, 0xfd, 0xcc, 0xee, 0xcc, 0x74, 0x0f, 0x7e, 0x00, 0xc8, 0xeb, 0xc8, 0x08, 0x80, 0x05, 0xc3, 0x33, 0xce, 0x33, 0xce, 0xd8, 0xf9,
0xfb, 0xca, 0xee, 0xca, 0x7f, 0x47, 0x7e, 0x63, 0x12, 0x00, 0x5c, 0xc3, 0x74, 0x6c, 0x95, 0x18, 0xfd, 0xe5, 0x4a, 0x75, 0xf0, 0x13, 0xa4, 0xf5, 0x4a, 0xe4, 0xfc, 0x12, 0xad,
0x22, 0xe0, 0xf5, 0x4c, 0x12, 0xad, 0x93, 0xe5, 0xf2, 0x30, 0xe0, 0xfb, 0x0c, 0xbc, 0x0a, 0xee, 0x7c, 0x0f, 0x12, 0xad, 0x22, 0xe0, 0xf5, 0x4c, 0xec, 0x64, 0x10, 0x70,
0x29, 0x75, 0xfc, 0x10, 0x8d, 0xff, 0xe5, 0xf2, 0x30, 0xe0, 0xfb, 0x53, 0xf8, 0x78, 0xe5, 0x4c, 0x54, 0x87, 0x42, 0xf8, 0x75, 0xf9, 0x00, 0xe5, 0x4b, 0x42, 0xf9, 0x75, 0xfc,
0x10, 0xed, 0x44, 0x80, 0xf5, 0xff, 0xe5, 0xf2, 0x20, 0xe0, 0x0c, 0x80, 0xf9, 0xe5, 0x4c, 0x12, 0xad, 0x93, 0xe5, 0xf2, 0x30, 0xe0, 0xfb, 0x0c, 0xbc, 0x18, 0xbe, 0x7f, 0x00,
0x22, 0x74, 0xc8, 0x25, 0x17, 0xf5, 0x82, 0xe4, 0x34, 0x36, 0xf5, 0x83, 0x22, 0xcd, 0xef, 0xcd, 0x31, 0x09, 0xe0, 0x70, 0x03, 0x7f, 0xff, 0x22, 0xed, 0x60, 0x0f, 0x30,
0x0c, 0x0c, 0xb1, 0x1e, 0x80, 0x02, 0xc3, 0x33, 0xd8, 0xfc, 0x42, 0x24, 0x80, 0x1c, 0x74, 0x01, 0x7e, 0x00, 0xa8, 0x17, 0x08, 0x80, 0x05, 0xc3, 0x33, 0xce, 0x33, 0xce,
0xd8, 0xf9, 0xff, 0xac, 0x24, 0xec, 0xfb, 0xef, 0x5b, 0x60, 0x19, 0x30, 0x0c, 0x05, 0xa8, 0x1d, 0xe6, 0xff, 0x22, 0xb1, 0x1e, 0x80, 0x02, 0xc3, 0x33, 0xd8, 0xfc, 0xff, 0xf4,
0x52, 0x24, 0xef, 0x42, 0x08, 0xad, 0x08, 0xed, 0x70, 0x02, 0x61, 0xde, 0xb1, 0x1e, 0x80, 0x02, 0xc3, 0x33, 0xd8, 0xfc, 0xf4, 0x52, 0x20, 0xf1, 0x85, 0x7b, 0x08, 0xe4,
0xfd, 0x12, 0x01, 0x59, 0xf1, 0x85, 0x7b, 0x04, 0xe4, 0xfd, 0x12, 0x01, 0x59, 0xf1, 0x85, 0x7b, 0x02, 0xe4, 0xfd, 0x12, 0x01, 0x9c, 0x90, 0x00, 0x0d, 0xe0, 0x70, 0x1c,
0x90, 0x00, 0x12, 0xe0, 0x54, 0x1f, 0xff, 0xbf, 0x10, 0x0b, 0xb1, 0x1e, 0x80, 0x02, 0xc3, 0x33, 0xd8, 0xfc, 0xf4, 0x52, 0x21, 0xa8, 0x1d, 0x76, 0x11, 0x7f, 0x11, 0x22,
0x12, 0xa7, 0xe1, 0x75, 0x16, 0xff, 0x90, 0x00, 0xe0, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x06, 0x90, 0x00, 0xe0, 0x12, 0xa5, 0x3e, 0xe5, 0x16, 0xb4, 0xff, 0x05, 0x12,
0x2d, 0x23, 0x8f, 0x16, 0x90, 0x00, 0xe2, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x06, 0x90, 0x00, 0xe2, 0x12, 0xa5, 0x3e, 0x12, 0xa5, 0x4c, 0x60, 0x4f, 0x7b, 0x80, 0x7d,
0x07, 0x7f, 0x07, 0x12, 0x01, 0x07, 0xef, 0x60, 0x18, 0x31, 0x09, 0xe0, 0xff, 0x64, 0x01, 0x60, 0x04, 0xef, 0xb4, 0x03, 0x06, 0x7e, 0x00, 0x7f, 0x01, 0x80, 0x14, 0x7e,
0x00, 0x7f, 0x00, 0x80, 0x0e, 0x31, 0x09, 0xe0, 0x7e, 0x00, 0xb4, 0x02, 0x04, 0x7f, 0x01, 0x80, 0x02, 0x7f, 0x00, 0xef, 0x4e, 0x70, 0x02, 0x61, 0x23, 0x7e, 0x80, 0x7f,
0x2b, 0x31, 0x09, 0xe0, 0xfd, 0x7c, 0x02, 0xb4, 0x03, 0x02, 0x7c, 0x03, 0xed, 0x2c, 0xfb, 0x12, 0xa7, 0xd7, 0xff, 0x22, 0x31, 0x09, 0xe0, 0xff, 0x64, 0x01, 0x60, 0x07,
0xef, 0x64, 0x03, 0x60, 0x02, 0x41, 0xf2, 0xef, 0x64, 0x01, 0x70, 0x66, 0xe5, 0x53, 0x64, 0x0d, 0x70, 0x60, 0x7d, 0xd5, 0x7c, 0x1f, 0x74, 0x07, 0xff, 0xfe, 0x91, 0x0a,
0x7f, 0x08, 0x91, 0x08, 0xf1, 0xdf, 0x7d, 0x05, 0x7c, 0x13, 0x7f, 0x0a, 0x91, 0x08, 0x7f, 0x0b, 0x91, 0x08, 0x7f, 0x0c, 0x91, 0x08, 0x7f, 0x0d, 0xf1, 0x7d, 0x7c, 0x80, 0x7f,
0x0e, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x74, 0x03, 0xfd, 0xfc, 0x12, 0xa7, 0xc0, 0x7d, 0x3f, 0x7c, 0x70, 0x7f, 0x10, 0xf1, 0x7d, 0x7c, 0x60, 0x7f, 0x11, 0x12, 0xad, 0x4d,
0x7c, 0x6d, 0xf1, 0xd8, 0x7d, 0xf6, 0x7c, 0x06, 0x12, 0xa6, 0xcd, 0xf1, 0xc1, 0x7d, 0x00, 0xf1, 0xa6, 0x7d, 0x00, 0xf1, 0x9d, 0x7d, 0x00, 0xf1, 0x94, 0x7d, 0x00, 0x80,
0x6b, 0x7d, 0xdd, 0x7c, 0x1f, 0x74, 0x07, 0xff, 0xfe, 0x91, 0x0a, 0x7f, 0x08, 0x91, 0x08, 0xf1, 0xdf, 0x7d, 0x45, 0x7c, 0x11, 0x7f, 0x0a, 0x91, 0x08, 0xf1, 0x7b, 0x12, 0xad,
0x49, 0x7c, 0x0d, 0x12, 0xa7, 0xaa, 0x7d, 0x3f, 0x7c, 0xc7, 0x71, 0xfc, 0xf1, 0xd8, 0x7d, 0xc0, 0x7c, 0x36, 0x12, 0xa6, 0xcd, 0xf1, 0xc1, 0x7d, 0x55, 0xf1, 0xa6, 0x7d, 0x55,
0xf1, 0x9d, 0x7d, 0x55, 0xf1, 0x94, 0x7d, 0x55, 0x80, 0x28, 0x31, 0x09, 0xe0, 0x64, 0x02, 0x70, 0x2a, 0x12, 0xa7, 0x18, 0x7d, 0x00, 0x7c, 0x20, 0x12, 0xa7, 0x74, 0x7d,
0x1f, 0x7c, 0x73, 0x12, 0xa6, 0xac, 0xf1, 0xc1, 0x7d, 0x45, 0xf1, 0xa6, 0x7d, 0x45, 0xf1, 0x9d, 0x7d, 0x45, 0xf1, 0x94, 0x7d, 0x45, 0x7c, 0x80, 0x7f, 0x95, 0x7e, 0x00,
0x12, 0x01, 0xea, 0x31, 0x09, 0xe0, 0x14, 0x60, 0x0f, 0x14, 0x60, 0x35, 0x14, 0x60, 0x3a, 0x24, 0x03, 0x70, 0x42, 0x90, 0x08, 0x3e, 0x80, 0x2c, 0xe5, 0x53, 0xb4, 0x0d,
0x05, 0x90, 0x42, 0xfe, 0x80, 0x03, 0x90, 0x09, 0x3e, 0xe0, 0xfe, 0xee, 0xff, 0x8f, 0xf9, 0xe5, 0x53, 0xb4, 0x0d, 0x05, 0x90, 0x42, 0xfe, 0x80, 0x03, 0x90, 0x09, 0x3e,
0xe0, 0xfe, 0xa3, 0xe0, 0xff, 0x8f, 0xf8, 0x80, 0x0e, 0x90, 0x0a, 0x3e, 0x12, 0xa7, 0xed, 0x80, 0x06, 0x90, 0x0b, 0x3e, 0x12, 0xa7, 0xed, 0x12, 0xa7, 0xc7, 0x12, 0x00,
0x03, 0x12, 0xa5, 0x6f, 0x12, 0xa7, 0xcf, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x09, 0x90, 0x00, 0xc0, 0xb1, 0x42, 0xf1, 0xed, 0x8f, 0x16, 0xe5, 0x16, 0xb4, 0xff, 0x09, 0xe4,
0xfd, 0x7f, 0x02, 0x12, 0x32, 0x8d, 0x8f, 0x16, 0x90, 0x00, 0xc2, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x09, 0x90, 0x00, 0xc2, 0xb1, 0x42, 0xf1, 0xed, 0x8f, 0x16, 0x7e,
0x81, 0x33,
/* cmd package 10 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0xc0, 0xba, 0x49, 0xbf, 0x80, 0x7f, 0x3b, 0xe4, 0xfb, 0xad, 0x17, 0x12, 0x02, 0xd3, 0x91, 0x1b, 0x12, 0xad, 0xa1, 0x7c, 0x60, 0x12, 0x01, 0x18, 0x12,
0xad, 0x85, 0x60, 0xfb, 0x12, 0xa7, 0xe1, 0xf1, 0xd1, 0x7b, 0x01, 0x7d, 0x6f, 0x12, 0x01, 0x9c, 0xb1, 0x1e, 0x80, 0x02, 0xc3, 0x33, 0xd8, 0xfc, 0xf4, 0x52, 0x08, 0x80,
0x1b, 0xf1, 0xd1, 0x7b, 0x01, 0x7d, 0x6f, 0x12, 0x00, 0xf6, 0xef, 0x60, 0x0f, 0x12, 0xad, 0x85, 0x60, 0x0a, 0x91, 0x1b, 0x12, 0xad, 0xa1, 0x7c, 0x60, 0x12, 0x01, 0x75,
0x7f, 0xff, 0x22, 0x7f, 0x10, 0x7e, 0x07, 0x12, 0x01, 0xea, 0xe4, 0xfd, 0xfc, 0x7f, 0x11, 0x7e, 0x07, 0x12, 0x01, 0xea, 0xe4, 0xfd, 0xfc, 0x22, 0xf5, 0x82, 0xe4, 0x35, 0x4f,
0xf5, 0x83, 0xe0, 0xf5, 0xf8, 0xc3, 0x74, 0x6a, 0x95, 0x18, 0xff, 0x22, 0xef, 0x64, 0x01, 0x60, 0x02, 0xa1, 0x1b, 0x90, 0x00, 0x0e, 0xe0, 0x30, 0xe7, 0x02, 0xa1, 0x1b,
0xe5, 0x17, 0xc4, 0x54, 0xf0, 0x24, 0x40, 0xf5, 0x82, 0xe4, 0x34, 0x00, 0xaf, 0x82, 0xf5, 0x4f, 0x8f, 0x50, 0xe5, 0x53, 0x24, 0xf4, 0x60, 0x32, 0x14, 0x60, 0x1e, 0x14,
0x70, 0x3e, 0x91, 0x1b, 0xe4, 0x94, 0x00, 0xef, 0xfe, 0x74, 0x3b, 0xff, 0x7d, 0xfc, 0x7c, 0x00, 0x12, 0x00, 0xa6, 0x91, 0x1b, 0xf1, 0xaf, 0x7b, 0xc0, 0x7a, 0x0f, 0x80, 0x1d,
0x91, 0x1b, 0xf1, 0xe6, 0x91, 0x1b, 0xf1, 0xaf, 0x7d, 0xf0, 0x7c, 0x00, 0x12, 0x00, 0xce, 0x80, 0x12, 0x91, 0x1b, 0xf1, 0xe6, 0x91, 0x1b, 0xf1, 0xaf, 0x7b, 0xc0, 0x7a, 0xff,
0xe4, 0xfd, 0xfc, 0x12, 0x00, 0x5c, 0x90, 0x00, 0x0e, 0xe0, 0x54, 0xfc, 0xf5, 0xf9, 0xe4, 0x91, 0x19, 0x7d, 0x3f, 0x12, 0x00, 0x03, 0xe5, 0x50, 0x24, 0x0c, 0xf5, 0x82,
0xe4, 0x35, 0x4f, 0xf5, 0x83, 0xe0, 0xf5, 0xf9, 0x75, 0xf8, 0x03, 0x91, 0x1b, 0x7d, 0x92, 0x12, 0x00, 0x03, 0xe5, 0x50, 0x24, 0x0e, 0xb1, 0x27, 0x24, 0x0d, 0x91, 0x11,
0x7d, 0x93, 0x12, 0x00, 0x03, 0xe5, 0x50, 0x24, 0x09, 0xb1, 0x27, 0x24, 0x08, 0x91, 0x11, 0x7d, 0x94, 0x12, 0x00, 0x03, 0xe5, 0x50, 0x24, 0x0b, 0xb1, 0x27, 0x24, 0x0a,
0x91, 0x11, 0x7d, 0x95, 0x12, 0x00, 0x03, 0xe5, 0x50, 0x24, 0x05, 0xb1, 0x27, 0x24, 0x04, 0x91, 0x11, 0x7d, 0x96, 0x12, 0x00, 0x03, 0xe5, 0x50, 0x24, 0x07, 0xb1, 0x27,
0x24, 0x06, 0x91, 0x11, 0x7d, 0x97, 0x12, 0x00, 0x03, 0xb1, 0x38, 0xb1, 0x34, 0x91, 0x18, 0x7d, 0x98, 0x12, 0x00, 0x03, 0xb1, 0x38, 0xa3, 0xa3, 0xb1, 0x34, 0xa3, 0xa3,
0x91, 0x18, 0x7d, 0x99, 0x12, 0x00, 0x03, 0x7f, 0x00, 0x22, 0xaf, 0x17, 0x74, 0x01, 0xc8, 0xef, 0xc8, 0x08, 0x22, 0xf5, 0x82, 0xe4, 0x35, 0x4f, 0xf5, 0x83, 0xe0, 0xf5,
0xf9, 0xe5, 0x50, 0x22, 0xa3, 0xe0, 0xf5, 0xf9, 0x85, 0x50, 0x82, 0x85, 0x4f, 0x83, 0x22, 0x90, 0x00, 0xe6, 0xe0, 0xfe, 0xa3, 0xe0, 0xf5, 0x82, 0x8e, 0x83, 0x22, 0x8f,
0x3b, 0x8d, 0x3c, 0xe5, 0x17, 0x7f, 0x00, 0xfe, 0xef, 0x24, 0x34, 0xf5, 0x82, 0x74, 0x32, 0x3e, 0xaf, 0x82, 0xf5, 0x3d, 0x8f, 0x3e, 0x31, 0x09, 0xe0, 0xff, 0x24, 0x70, 0xf5,
0x82, 0xe4, 0x34, 0x2d, 0xf5, 0x83, 0xe0, 0x24, 0xfe, 0x65, 0x3b, 0x60, 0x02, 0xe1, 0x55, 0xc2, 0x2a, 0xc2, 0x29, 0xc2, 0x28, 0xef, 0x64, 0x03, 0x60, 0x02, 0xc1, 0x5b,
0x90, 0x2d, 0x73, 0xe0, 0xd3, 0x94, 0x05, 0x50, 0x02, 0xc1, 0x5b, 0xe0, 0xf9, 0xf1, 0x8c, 0x24, 0xfd, 0xf1, 0x64, 0xe0, 0xfa, 0xa3, 0xe0, 0xfb, 0xed, 0x24, 0xfc, 0xf1, 0x64,
0xe0, 0xfe, 0xa3, 0xe0, 0xc3, 0x9b, 0xff, 0xee, 0x9a, 0xfe, 0xe4, 0x8f, 0x49, 0x8e, 0x48, 0xf5, 0x47, 0xf5, 0x46, 0xe9, 0xf1, 0x8c, 0x24, 0xfb, 0xf1, 0x64, 0xe0, 0xfa, 0xa3,
0xe0, 0xfb, 0xed, 0x24, 0xfa, 0xf1, 0x64, 0x12, 0xac, 0xce, 0xe9, 0xf1, 0x8c, 0x24, 0xf9, 0xf1, 0x64, 0xe0, 0xfa, 0xa3, 0xe0, 0xfb, 0xed, 0x24, 0xf8, 0xf1, 0x64, 0x12, 0xac,
0xce, 0x90, 0x00, 0x1b, 0xe0, 0xff, 0xe4, 0x12, 0xad, 0x38, 0x24, 0xec, 0x12, 0xad, 0x0c, 0xc3, 0x12, 0x96, 0x30, 0x40, 0x06, 0xd2, 0x29, 0xd2, 0x28, 0x80, 0x18, 0x90,
0x00, 0x1b, 0xe0, 0xff, 0xe4, 0xfc, 0xfd, 0x12, 0xad, 0x38, 0x24, 0x38, 0x12, 0xad, 0x0c, 0xc3, 0x12, 0x96, 0x30, 0x40, 0x02, 0xd2, 0x28, 0x90, 0x00, 0x1b, 0xe0, 0xf9,
0x75, 0xf0, 0x40, 0xa4, 0x24, 0xd4, 0xff, 0xe5, 0xf0, 0x34, 0xfe, 0xfe, 0xf1, 0xb8, 0xe0, 0xfc, 0xa3, 0xe0, 0xfd, 0x85, 0x3e, 0x82, 0x85, 0x3d, 0x83, 0x12, 0xad, 0x75, 0x40,
0x23, 0xe9, 0x75, 0xf0, 0x40, 0xa4, 0x24, 0xec, 0xff, 0xe5, 0xf0, 0x34, 0xff, 0xfe, 0xe5, 0x3e, 0x24, 0x06, 0xf1, 0x5c, 0xe0, 0xfc, 0xa3, 0xe0, 0xfd, 0xe5, 0x3e, 0x24, 0x04,
0xf1, 0x5c, 0x12, 0xad, 0x75, 0x50, 0x06, 0xd2, 0x2a, 0xd2, 0x29, 0xd2, 0x28, 0x85, 0x3e, 0x82, 0x85, 0x3d, 0x83, 0x12, 0xad, 0x65, 0xe5, 0x45, 0xd3, 0x95, 0x3b, 0x50,
0x42, 0x85, 0x3e, 0x82, 0x85, 0x3d, 0x83, 0xc0, 0x83, 0xc0, 0x82, 0xe5, 0x45, 0x65, 0x3b, 0x70, 0x04, 0xaf, 0x45, 0x80, 0x04, 0xe5, 0x45, 0x04, 0xff, 0xd0, 0x82, 0xd0,
0x83, 0x75, 0xf0, 0x04, 0xef, 0x12, 0x96, 0x54, 0x12, 0xac, 0xf0, 0xff, 0xe5, 0x43, 0x3e, 0xfe, 0x85, 0x3e, 0x82, 0x85, 0x3d, 0x83, 0x75, 0xf0, 0x04, 0xe5, 0x45, 0x12,
0x96, 0x54, 0xee, 0xf0, 0xa3, 0xef, 0x12, 0xad, 0x55, 0x80, 0xb7, 0xf1, 0xb8, 0x12, 0xad, 0x65, 0xe5, 0x45, 0xd3, 0x95, 0x3b, 0x50, 0x30, 0xe5, 0x45, 0x65, 0x3b, 0x70,
0x04, 0xaf, 0x45, 0x80, 0x04, 0xe5, 0x45, 0x04, 0xff, 0xef, 0xf1, 0xf4, 0xe4, 0x35, 0xf0, 0xf1, 0x68, 0x12, 0xac, 0xf0, 0xfd, 0xe5, 0x43, 0x3e, 0xfc, 0xe5, 0x45, 0xf1, 0xf4,
0xe4, 0x35, 0xf0, 0xf1, 0x68, 0xec, 0xf0, 0xa3, 0xed, 0x12, 0xad, 0x55, 0x80, 0xc9, 0x30, 0x28, 0x10, 0x85, 0x3e, 0x82, 0x85, 0x3d, 0x83, 0x74, 0xff, 0xf0, 0xa3, 0xf0, 0xf1,
0xb8, 0xf0, 0xa3, 0xf0, 0x30, 0x29, 0x16, 0xe5, 0x3e, 0x24, 0x04, 0xf1, 0x5c, 0x74, 0xff, 0xf0, 0xa3, 0xf0, 0xe5, 0x3e, 0x24, 0x06, 0xf1, 0x5c, 0x74, 0xff, 0xf0, 0xa3, 0xf0,
0x30, 0x2a, 0x3d, 0xe5, 0x3e, 0x24, 0x08, 0xf1, 0x5c, 0x74, 0xff, 0xf0, 0xa3, 0xf0, 0xe5, 0x3e, 0x24, 0x0a, 0xf1, 0x5c, 0x74, 0xff, 0xf0, 0xa3, 0xf0, 0xf1, 0x58, 0xe4, 0x75,
0xf0, 0x05, 0x12, 0x95, 0xcb, 0xe5, 0x3e, 0x24, 0x0c, 0xf1, 0x5c, 0xe0, 0xfe, 0xa3, 0xe0, 0xff, 0xf1, 0x58, 0xe0, 0xfc, 0xa3, 0xe0, 0xd3, 0x9f, 0xec, 0x9e, 0x40, 0x07, 0xf1,
0x58, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x7f, 0x00, 0x22, 0xe5, 0x3e, 0x24, 0x0e, 0xf5, 0x82, 0xe4, 0x35, 0x3d, 0xf5, 0x83, 0x22, 0xff, 0xec, 0x34, 0xff, 0xfe, 0xef, 0x25, 0xe0,
0xff, 0xee, 0x33, 0xfe, 0xe5, 0x3e, 0x2f, 0xf5, 0x82, 0xe5, 0x3d, 0x3e, 0xf5, 0x83, 0x22, 0x7f, 0x0b, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0x00, 0x22, 0xc3, 0x74, 0x6d,
0x95, 0x18, 0xff, 0x22, 0x75, 0xf0, 0x02, 0xa4, 0xfd, 0xac, 0xf0, 0x22, 0x7c, 0x80, 0x7f, 0x8b, 0x7e, 0x00, 0x02, 0x01, 0xea, 0x7c, 0x80, 0x7f, 0xe2, 0xff,
/* cmd package 11 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x00, 0xfa, 0x49, 0xbf, 0x94, 0x7e, 0x00, 0x02, 0x01, 0xea, 0x7c, 0x80, 0x7f, 0x8a, 0x7e, 0x00, 0x02, 0x01, 0xea, 0xe4, 0x94, 0x00, 0xef, 0xfe, 0x74,
0x3a, 0xff, 0x22, 0x85, 0x3e, 0x82, 0x85, 0x3d, 0x83, 0xa3, 0xa3, 0x22, 0x7b, 0x02, 0x7d, 0x33, 0x7f, 0x07, 0x12, 0x01, 0x9c, 0x7f, 0x64, 0x7e, 0x00, 0x02, 0x02, 0x21,
0xc3, 0x74, 0x6c, 0x95, 0x18, 0xff, 0x22, 0x7f, 0x12, 0x7e, 0x07, 0x02, 0x01, 0xea, 0x7f, 0x09, 0x7e, 0x07, 0x02, 0x01, 0xea, 0xe4, 0xfb, 0x7d, 0x3b, 0x02, 0x00, 0x20,
0xe4, 0xfd, 0x7f, 0x02, 0x02, 0x96, 0x64, 0x75, 0xf0, 0x02, 0xa4, 0x24, 0x01, 0xff, 0x22, 0x75, 0x26, 0x40, 0x75, 0x27, 0x40, 0x12, 0x9f, 0xd1, 0x51, 0xb7, 0xc0, 0xe0,
0xef, 0xc0, 0xe0, 0xe5, 0x26, 0xfc, 0x74, 0x78, 0xfd, 0xd0, 0xe0, 0xff, 0xd0, 0xe0, 0xfe, 0x12, 0x00, 0xa6, 0x12, 0x99, 0x09, 0x74, 0x03, 0xf0, 0xd1, 0x17, 0x70, 0x02,
0xa3, 0xe0, 0x60, 0x08, 0x90, 0x00, 0xd4, 0x12, 0x9d, 0x42, 0xd1, 0x0f, 0xe5, 0x16, 0xb4, 0xff, 0x07, 0x7f, 0x03, 0x12, 0x37, 0x66, 0x8f, 0x16, 0x90, 0x00, 0xd6, 0xe0,
0x70, 0x02, 0xa3, 0xe0, 0x60, 0x08, 0x90, 0x00, 0xd6, 0x12, 0x9d, 0x42, 0xd1, 0x0f, 0x7f, 0x04, 0x7e, 0x07, 0x12, 0x01, 0xd6, 0x8e, 0x2c, 0x8f, 0x2d, 0x7f, 0x05, 0x7e,
0x07, 0x12, 0x01, 0xd6, 0x8e, 0x2e, 0x8f, 0x2f, 0x7f, 0x06, 0x7e, 0x07, 0x12, 0x01, 0xd6, 0x8e, 0x30, 0x8f, 0x31, 0x7f, 0x00, 0x7e, 0x07, 0x12, 0x01, 0xd6, 0x8e, 0x32,
0x8f, 0x33, 0x7f, 0x01, 0x7e, 0x07, 0x12, 0x01, 0xd6, 0x8e, 0x34, 0x8f, 0x35, 0x7f, 0x02, 0x7e, 0x07, 0x12, 0x01, 0xd6, 0x8e, 0x36, 0x8f, 0x37, 0x7f, 0x03, 0x7e, 0x07,
0x12, 0x01, 0xd6, 0x8e, 0x38, 0x8f, 0x39, 0x7b, 0x07, 0x7d, 0x7b, 0x7f, 0x07, 0x12, 0x00, 0x3e, 0x7b, 0x20, 0x7d, 0x78, 0x7f, 0x07, 0x12, 0x01, 0x59, 0x7d, 0x08, 0x7c,
0xdc, 0x51, 0xd6, 0x7d, 0x7e, 0x7c, 0x50, 0x51, 0xcf, 0x7d, 0x03, 0x7c, 0x00, 0x7f, 0x06, 0x12, 0x9c, 0x08, 0xff, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0x09, 0x7c, 0xee,
0x7f, 0x01, 0x12, 0x9f, 0x7d, 0x7c, 0x0c, 0x51, 0xc8, 0x7d, 0x03, 0x7f, 0x07, 0x12, 0x00, 0x13, 0xf1, 0x2f, 0xf1, 0x2f, 0xe4, 0xfd, 0xfc, 0x51, 0xc1, 0x12, 0x9f, 0xd1, 0x7b,
0x20, 0x7d, 0x33, 0xd1, 0xe3, 0x75, 0x2a, 0x7f, 0x75, 0x2b, 0xff, 0xe4, 0xf5, 0x28, 0xf5, 0x29, 0xf5, 0x3a, 0x7d, 0x5f, 0x7c, 0x07, 0x7f, 0x60, 0x7e, 0x07, 0x12, 0x01,
0xea, 0x7d, 0x61, 0x7f, 0x07, 0x12, 0x00, 0x13, 0xe5, 0xf8, 0x30, 0xe0, 0xf4, 0xe5, 0xf9, 0x54, 0x07, 0xfe, 0xe5, 0xf8, 0x54, 0xfe, 0xfd, 0xed, 0xff, 0xee, 0xc3, 0x13, 0xfe,
0xef, 0x13, 0xff, 0x7c, 0x00, 0x7d, 0x03, 0x12, 0x95, 0xb9, 0xef, 0x25, 0x29, 0xf5, 0x29, 0xee, 0x35, 0x28, 0xf5, 0x28, 0x05, 0x3a, 0xe5, 0x3a, 0xc3, 0x94, 0x02, 0x40,
0xbc, 0x74, 0x42, 0x25, 0x29, 0xf5, 0x29, 0x74, 0xf0, 0x35, 0x28, 0xf5, 0x28, 0xaf, 0x2b, 0xae, 0x2a, 0x12, 0x97, 0xd9, 0xee, 0xc0, 0xe0, 0xef, 0xc0, 0xe0, 0xaf, 0x29,
0xae, 0x28, 0x12, 0x97, 0xd9, 0xd0, 0xe0, 0xfd, 0xd0, 0xe0, 0xfc, 0xc3, 0xef, 0x9d, 0xec, 0x64, 0x80, 0xf8, 0xee, 0x64, 0x80, 0x98, 0x40, 0x20, 0xd3, 0xe5, 0x2b, 0x94,
0x00, 0x51, 0xa9, 0x40, 0x60, 0x51, 0xb0, 0x50, 0x5c, 0xc3, 0xe4, 0x95, 0x29, 0xff, 0xe4, 0x95, 0x28, 0xfe, 0xef, 0x65, 0x2b, 0x70, 0x03, 0xee, 0x65, 0x2a, 0x70, 0x49,
0x85, 0x26, 0x27, 0xd3, 0xe5, 0x29, 0x94, 0x00, 0x51, 0xb0, 0x40, 0x13, 0xd3, 0xe5, 0x2b, 0x94, 0x00, 0x51, 0xa9, 0x40, 0x0a, 0xe5, 0x26, 0x94, 0x78, 0x50, 0x04, 0x74,
0x08, 0x80, 0x1e, 0xc3, 0x51, 0xb0, 0x50, 0x1d, 0xc3, 0x51, 0xa9, 0x40, 0x0b, 0xe5, 0x2b, 0xf4, 0x70, 0x04, 0xe5, 0x2a, 0x64, 0x7f, 0x70, 0x0d, 0xe5, 0x26, 0xd3, 0x94,
0x10, 0x40, 0x06, 0x74, 0xf8, 0x25, 0x26, 0xf5, 0x26, 0x85, 0x28, 0x2a, 0x85, 0x29, 0x2b, 0x80, 0x03, 0x85, 0x27, 0x26, 0xe5, 0x27, 0x65, 0x26, 0x70, 0x22, 0x12, 0x9f,
0xd1, 0x51, 0xba, 0xc0, 0xe0, 0xef, 0xc0, 0xe0, 0xe5, 0x26, 0x24, 0xf0, 0xff, 0xe4, 0x34, 0xff, 0xef, 0xfc, 0x74, 0x78, 0xfd, 0xd0, 0xe0, 0xff, 0xd0, 0xe0, 0xfe, 0x12, 0x00,
0xa6, 0x80, 0x22, 0x12, 0x9f, 0xd1, 0x51, 0xb7, 0xc0, 0xe0, 0xef, 0xc0, 0xe0, 0xe5, 0x26, 0xfc, 0x74, 0x78, 0xfd, 0xd0, 0xe0, 0xff, 0xd0, 0xe0, 0xfe, 0x12, 0x00, 0xa6, 0x7f,
0x14, 0x7e, 0x00, 0x12, 0x02, 0x21, 0x01, 0xf5, 0x7b, 0x20, 0x7d, 0x78, 0x7f, 0x07, 0x12, 0x01, 0xb9, 0x12, 0x9f, 0xd1, 0x7b, 0x20, 0x7d, 0x33, 0x12, 0x01, 0x9c, 0xad,
0x2d, 0xac, 0x2c, 0x51, 0xd6, 0xad, 0x2f, 0xac, 0x2e, 0x51, 0xcf, 0xad, 0x31, 0xac, 0x30, 0x7f, 0x06, 0x7e, 0x07, 0x12, 0x01, 0xea, 0xad, 0x33, 0xac, 0x32, 0x7f, 0x00,
0x7e, 0x07, 0x12, 0x01, 0xea, 0xad, 0x35, 0xac, 0x34, 0x7f, 0x01, 0x7e, 0x07, 0x12, 0x01, 0xea, 0xad, 0x37, 0xac, 0x36, 0x51, 0xc8, 0xad, 0x39, 0xac, 0x38, 0x51, 0xc1,
0xd1, 0x17, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x08, 0x90, 0x00, 0xd4, 0x12, 0x9d, 0x42, 0x51, 0xdd, 0xe5, 0x16, 0xb4, 0xff, 0x07, 0xe4, 0xff, 0x12, 0x37, 0x66, 0x8f, 0x16,
0x90, 0x00, 0xd6, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x08, 0x90, 0x00, 0xd6, 0x12, 0x9d, 0x42, 0x51, 0xdd, 0x12, 0x99, 0x09, 0xe4, 0xf0, 0x22, 0xe5, 0x2a, 0x64, 0x80,
0x94, 0x80, 0x22, 0xe5, 0x28, 0x64, 0x80, 0x94, 0x80, 0x22, 0xe4, 0x94, 0x00, 0xef, 0xfe, 0x74, 0x10, 0xff, 0xee, 0x22, 0x7f, 0x03, 0x7e, 0x07, 0x02, 0x01, 0xea, 0x7f,
0x02, 0x7e, 0x07, 0x02, 0x01, 0xea, 0x7f, 0x05, 0x7e, 0x07, 0x02, 0x01, 0xea, 0x7f, 0x04, 0x7e, 0x07, 0x02, 0x01, 0xea, 0xe4, 0xff, 0x12, 0x96, 0x64, 0x8f, 0x16, 0x22,
0xef, 0x70, 0x02, 0x81, 0x0a, 0x7f, 0x3c, 0x7e, 0x01, 0x12, 0x01, 0xd6, 0xef, 0x54, 0x0f, 0xf5, 0x53, 0x12, 0x9d, 0x1e, 0x80, 0x02, 0xc3, 0x33, 0xd8, 0xfc, 0xf4, 0x52,
0x20, 0x52, 0x24, 0xb1, 0xfc, 0xe0, 0xff, 0x64, 0x01, 0x60, 0x04, 0xef, 0xb4, 0x02, 0x05, 0xb1, 0xfc, 0x74, 0x03, 0xf0, 0xd1, 0xed, 0x7b, 0x40, 0x7d, 0x04, 0x12, 0x01,
0x9c, 0xf1, 0xe1, 0x20, 0x0c, 0x0a, 0xe5, 0x53, 0x64, 0x0c, 0x60, 0x04, 0xb1, 0x4c, 0x60, 0x75, 0x7b, 0x01, 0x7d, 0x34, 0xb1, 0x50, 0x60, 0x5d, 0xb1, 0xe0, 0x70, 0x02,
0xa3, 0xe0, 0x60, 0x0d, 0x90, 0x00, 0xe4, 0x12, 0x9d, 0x42, 0x7f, 0x01, 0x12, 0x96, 0x64, 0x8f, 0x16, 0xe5, 0x16, 0xb4, 0xff, 0x02, 0xb1, 0xd8, 0x90, 0x00, 0xe6, 0xe0,
0x70, 0x02, 0xa3, 0xe0, 0x60, 0x0a, 0x12, 0x9d, 0x3f, 0x7f, 0x01, 0x12, 0x96, 0x64, 0x8f, 0x16, 0xb1, 0xe8, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x05, 0x90, 0x00, 0xb4,
0xb1, 0x3e, 0xe5, 0x16, 0xb4, 0xff, 0x05, 0x12, 0x20, 0x84, 0x8f, 0x16, 0x90, 0x00, 0xb6, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x05, 0x90, 0x00, 0xb6, 0xb1, 0x3e, 0xa8,
0x1d, 0xa6, 0x16, 0x80, 0x0a, 0xb1, 0x57, 0x11, 0x49,
/* cmd package 12 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x40, 0x39, 0x4a, 0xbf, 0x7b, 0x01, 0x7d, 0x34, 0xb1, 0x50, 0x60, 0xf8, 0x7e, 0x80, 0x7f, 0x03, 0x80, 0x21, 0xd2, 0x0c, 0xe5, 0x53, 0x64, 0x0e, 0x70,
0x07, 0xb1, 0x87, 0x90, 0x41, 0xfe, 0x80, 0x05, 0xd1, 0x2b, 0x90, 0x40, 0xfe, 0xf1, 0xed, 0xf1, 0xc7, 0x12, 0x00, 0x03, 0xb1, 0x6f, 0x7e, 0x80, 0x7f, 0x0e, 0xe4, 0xfb,
0xad, 0x17, 0x12, 0x02, 0xd3, 0xb1, 0xfc, 0xe0, 0x64, 0x0a, 0x70, 0x02, 0xa1, 0x39, 0xf1, 0xcf, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x0a, 0x90, 0x00, 0xc0, 0x12, 0x9d, 0x42,
0xe4, 0xfd, 0x51, 0xde, 0xe5, 0x16, 0xb4, 0xff, 0x08, 0xe4, 0xfd, 0xff, 0x12, 0x32, 0x8d, 0x8f, 0x16, 0x90, 0x00, 0xc2, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x70, 0x02, 0xa1,
0x39, 0x90, 0x00, 0xc2, 0x12, 0x9d, 0x42, 0xe4, 0xfd, 0x51, 0xde, 0xa1, 0x39, 0xe5, 0x18, 0x24, 0x23, 0xfd, 0x7f, 0x05, 0x12, 0x00, 0x13, 0xe5, 0xf8, 0x20, 0xe0, 0x02,
0xa1, 0x39, 0xe5, 0xf9, 0x60, 0x0c, 0xc2, 0x0c, 0x7e, 0x80, 0x7f, 0x1a, 0xab, 0xf9, 0xf1, 0xd7, 0xff, 0x22, 0xe5, 0x18, 0x24, 0x21, 0xff, 0xe4, 0x33, 0x44, 0x05, 0xfe, 0x12,
0x01, 0xd6, 0x8e, 0x51, 0x8f, 0x52, 0xb1, 0xf2, 0x70, 0x03, 0xee, 0x65, 0x51, 0x70, 0x0f, 0xe5, 0x53, 0x64, 0x0d, 0x60, 0x09, 0xb1, 0x87, 0x90, 0x41, 0xfe, 0xb1, 0x5a,
0xa1, 0x39, 0x90, 0x41, 0xfe, 0xb1, 0xf5, 0x70, 0x03, 0xee, 0x65, 0x51, 0x60, 0x0f, 0xb1, 0xf2, 0x70, 0x03, 0xee, 0x65, 0x51, 0x70, 0x75, 0xe5, 0x53, 0x64, 0x0d, 0x70,
0x6f, 0xc2, 0x0c, 0x7b, 0x01, 0x7d, 0x34, 0xb1, 0x50, 0x60, 0x59, 0xb1, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x0d, 0x90, 0x00, 0xe4, 0x12, 0x9d, 0x42, 0x7f, 0x01, 0x12,
0x96, 0x64, 0x8f, 0x16, 0xe5, 0x16, 0xb4, 0xff, 0x02, 0xb1, 0xd8, 0x90, 0x00, 0xe6, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x0a, 0x12, 0x9d, 0x3f, 0x7f, 0x01, 0x12, 0x96,
0x64, 0x8f, 0x16, 0xb1, 0xe8, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x05, 0x90, 0x00, 0xb4, 0xb1, 0x3e, 0xe5, 0x16, 0xb4, 0xff, 0x05, 0x12, 0x20, 0x84, 0x8f, 0x16, 0x90,
0x00, 0xb6, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x6a, 0x90, 0x00, 0xb6, 0xb1, 0x3e, 0x80, 0x63, 0xb1, 0x57, 0x7b, 0x01, 0x7d, 0x34, 0xb1, 0x50, 0x70, 0x5d, 0x80, 0xf6,
0xb1, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x0d, 0x90, 0x00, 0xe4, 0x12, 0x9d, 0x42, 0x7f, 0x01, 0x12, 0x96, 0x64, 0x8f, 0x16, 0xe5, 0x16, 0xb4, 0xff, 0x02, 0xb1, 0xd8,
0x90, 0x00, 0xe6, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x0a, 0x12, 0x9d, 0x3f, 0x7f, 0x01, 0x12, 0x96, 0x64, 0x8f, 0x16, 0xb1, 0xe8, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60,
0x05, 0x90, 0x00, 0xb4, 0xb1, 0x3e, 0xe5, 0x16, 0xb4, 0xff, 0x05, 0x12, 0x20, 0x84, 0x8f, 0x16, 0x90, 0x00, 0xb6, 0xe0, 0x70, 0x02, 0xa3, 0xe0, 0x60, 0x05, 0x90, 0x00,
0xb6, 0xb1, 0x3e, 0xa8, 0x1d, 0xa6, 0x16, 0xa8, 0x1d, 0xe6, 0xff, 0x22, 0xe0, 0xfe, 0xa3, 0xe0, 0xca, 0xee, 0xca, 0xf9, 0x12, 0x96, 0x60, 0x8f, 0x16, 0x22, 0x7b, 0x01,
0x7d, 0x33, 0x7f, 0x07, 0x12, 0x00, 0xf6, 0xef, 0x22, 0x90, 0x02, 0x3e, 0xe0, 0xfc, 0xa3, 0xe0, 0xfd, 0xec, 0xf5, 0xf9, 0xed, 0xf5, 0xf8, 0xe5, 0x18, 0x24, 0x21, 0xfd, 0x7f,
0x05, 0x12, 0x00, 0x03, 0xe5, 0x18, 0x24, 0x20, 0xfd, 0x7b, 0x05, 0x7f, 0x05, 0x12, 0x01, 0x3d, 0xe5, 0x18, 0x24, 0x20, 0xfd, 0x7b, 0x02, 0x7f, 0x05, 0x02, 0x01, 0x3d,
0xf1, 0x18, 0x7d, 0x04, 0x7c, 0x60, 0xf1, 0x74, 0x7d, 0x1f, 0x7c, 0x70, 0xd1, 0xac, 0xd1, 0x1f, 0x7d, 0x51, 0xf1, 0x0e, 0x7f, 0x50, 0xf1, 0x04, 0x7f, 0x5f, 0xd1, 0xfc, 0xd1,
0x08, 0x7b, 0x01, 0x7d, 0x5e, 0xd1, 0xf4, 0x7d, 0x50, 0xd1, 0x23, 0x7d, 0x50, 0x7f, 0x07, 0x12, 0x01, 0x3d, 0x7b, 0x10, 0x7d, 0x50, 0xb1, 0x50, 0x60, 0xf8, 0x7b, 0x01,
0xd1, 0x08, 0x7f, 0x51, 0xf1, 0x23, 0x40, 0x0f, 0x7b, 0xc1, 0x7a, 0x03, 0x7d, 0x41, 0x7c, 0x01, 0x7f, 0x51, 0x7e, 0x07, 0x12, 0x00, 0x5c, 0x22, 0x7f, 0x01, 0x12, 0x46,
0x02, 0x8f, 0x16, 0x22, 0x75, 0x16, 0xff, 0x90, 0x00, 0xe4, 0xe0, 0x22, 0x12, 0x9f, 0xfc, 0x75, 0x16, 0xff, 0x90, 0x00, 0xb4, 0x22, 0x90, 0x40, 0xfe, 0xe0, 0xfe, 0xa3, 0xe0,
0x65, 0x52, 0x22, 0x74, 0x00, 0x25, 0x17, 0xf5, 0x82, 0xe4, 0x34, 0x00, 0xf5, 0x83, 0x22, 0x7d, 0x5e, 0x7f, 0x07, 0x02, 0x01, 0x9c, 0x7f, 0x03, 0x12, 0x96, 0x64, 0x8f,
0x16, 0x22, 0x75, 0x16, 0xff, 0x90, 0x00, 0xd4, 0xe0, 0x22, 0x7b, 0x03, 0x7d, 0x3f, 0x7f, 0x07, 0x12, 0x01, 0x3d, 0x7b, 0x01, 0x22, 0x7d, 0xdd, 0x7c, 0x1f, 0xf1, 0x1c,
0x7d, 0x04, 0x7c, 0x40, 0x7f, 0x08, 0x12, 0x9f, 0x7d, 0x7c, 0x50, 0x7f, 0x09, 0x12, 0x9f, 0x7d, 0x7c, 0x10, 0x7f, 0x0a, 0x12, 0x9c, 0x08, 0x12, 0x9f, 0x7b, 0x12, 0xad,
0x49, 0x7c, 0x0d, 0xf1, 0xaa, 0x7d, 0x3f, 0x7c, 0xc4, 0x12, 0x9b, 0xfc, 0x12, 0x9f, 0xd8, 0x7d, 0xc0, 0x7c, 0x36, 0xd1, 0xcd, 0xd1, 0x1f, 0x7d, 0x41, 0xf1, 0x0e, 0x7f, 0x40,
0xf1, 0x04, 0x7f, 0x4f, 0xd1, 0xfc, 0xd1, 0xa5, 0x7b, 0x01, 0x7d, 0x4e, 0xd1, 0xf4, 0x7d, 0x40, 0xd1, 0x23, 0x7d, 0x40, 0x7f, 0x07, 0x12, 0x01, 0x3d, 0x7b, 0x10, 0x7d,
0x40, 0xb1, 0x50, 0x60, 0xf8, 0x7b, 0x01, 0xd1, 0xa5, 0x7f, 0x41, 0xf1, 0x23, 0x40, 0x0f, 0x7b, 0xc1, 0x7a, 0x03, 0x7d, 0x41, 0x7c, 0x01, 0x7f, 0x41, 0x7e, 0x07, 0x12,
0x00, 0x5c, 0x22, 0x7d, 0x4e, 0x7f, 0x07, 0x02, 0x01, 0x9c, 0x7f, 0x10, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0x00, 0x7c, 0x50, 0x7f, 0x11, 0x7e, 0x07, 0x12, 0x01, 0xea,
0x7d, 0xdd, 0x7c, 0x24, 0x7f, 0x12, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0x92, 0x7c, 0x31, 0x7f, 0x13, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7b, 0x02, 0x7d, 0x33, 0x7f, 0x07,
0x12, 0x01, 0x3d, 0x7b, 0x01, 0x7d, 0x33, 0x7f, 0x07, 0x12, 0x01, 0x3d, 0x7f, 0x0a, 0x7e, 0x00, 0x02, 0x02, 0x21, 0xc3, 0x74, 0x69, 0x95, 0x18, 0xff, 0x22, 0x7f, 0x07,
0x12, 0x01, 0x3d, 0x7b, 0x04, 0x22, 0x7e, 0x07, 0x12, 0x00, 0xa6, 0x7b, 0x1e, 0x22, 0x7e, 0x07, 0x12, 0x00, 0xce, 0x7d, 0x0f, 0x7c, 0x02, 0x22, 0x7f, 0x07, 0x12, 0x01,
0x9c, 0x7d, 0xf0, 0x7c, 0x40, 0x22, 0x7d, 0xb1, 0x7c, 0x8f, 0x74, 0x07, 0xff, 0xfe, 0x02, 0x01, 0xea, 0x7e, 0x07, 0x12, 0x01, 0xd6, 0xef, 0x54, 0x1e, 0xd3, 0x94, 0x0a,
0x22, 0x43, 0xf9, 0x04, 0x7d, 0x03, 0x7f, 0x07, 0x12, 0x00, 0x03, 0x53, 0xf9, 0xfb, 0x7d, 0x03, 0x7f, 0x07, 0x02, 0x00, 0x03, 0xef, 0x70, 0x2b, 0xa8, 0x1d, 0xe6, 0x64,
0x10, 0x70, 0x24, 0xd1, 0xed, 0x7b, 0x04, 0x7d, 0x50, 0x12, 0x00, 0xf6, 0xef, 0x60, 0x04, 0x7f, 0xff, 0x80, 0x02, 0x7f, 0x00, 0xef, 0xfc, 0x74, 0x40, 0xfd, 0xd1, 0xed, 0xe4,
0x94, 0x00, 0xef, 0xfe, 0x74, 0x04, 0xff, 0x12, 0x00, 0xa6, 0x7f, 0x00, 0x22, 0x7f, 0x08, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0xc0, 0x7c, 0x51, 0x7f, 0x09, 0x7e, 0x07,
0x12, 0x01, 0xea, 0xe4, 0xfd, 0xdb, 0xf4,
/* cmd package 13 */
0x03,0xfd,0x9c, 0x3f, 0x86, 0x80, 0x78, 0x4a, 0xbf, 0xfc, 0x7f, 0x0a, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0x00, 0x7c, 0x10, 0x7f, 0x0b, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0x22,
0x7c, 0x01, 0x7f, 0x0c, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0xed, 0x7c, 0x06, 0x7f, 0x0d, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0x00, 0x7c, 0xe0, 0x7f, 0x0e, 0x7e, 0x07,
0x12, 0x01, 0xea, 0x7d, 0xc0, 0x7c, 0x00, 0x7f, 0x0f, 0x7e, 0x07, 0x02, 0x01, 0xea, 0xe5, 0x18, 0x24, 0x21, 0xfd, 0x7f, 0x05, 0x22, 0x75, 0x16, 0xff, 0x90, 0x00, 0xc0,
0xe0, 0x22, 0xad, 0x17, 0x12, 0x02, 0xd3, 0xa8, 0x1d, 0xe4, 0xf6, 0x22, 0xe5, 0x18, 0x24, 0x20, 0xfd, 0x7b, 0x04, 0x7f, 0x05, 0x02, 0x00, 0x20, 0xe0, 0xfc, 0xa3, 0xe0,
0xfd, 0xec, 0xf5, 0xf9, 0xed, 0xf5, 0xf8, 0x22, 0x7b, 0x02, 0x7d, 0xf6, 0xe4, 0xff, 0x12, 0x01, 0x59, 0x7f, 0x00, 0x22, 0x7d, 0x00, 0x7c, 0x03, 0x7f, 0x05, 0x7e, 0x63, 0x12,
0x01, 0xea, 0x7d, 0x22, 0x7c, 0x1c, 0x7f, 0x2d, 0x7e, 0x63, 0x12, 0x01, 0xea, 0x30, 0x0f, 0x02, 0x81, 0x6f, 0x91, 0x8e, 0xef, 0x64, 0x02, 0x60, 0x02, 0x81, 0x2e, 0x90,
0x00, 0xdc, 0x74, 0x97, 0xf0, 0xa3, 0x74, 0xec, 0xf0, 0x90, 0x00, 0xd4, 0x74, 0x98, 0xf0, 0xa3, 0x74, 0x4b, 0xf0, 0x90, 0x00, 0xda, 0x74, 0x9d, 0xf0, 0xa3, 0x74, 0x4b,
0xf0, 0x90, 0x00, 0xce, 0x74, 0x9c, 0xf0, 0xa3, 0x74, 0x22, 0xf0, 0x90, 0x00, 0x88, 0x74, 0xa2, 0xf0, 0xa3, 0x74, 0xe5, 0xf0, 0x90, 0x00, 0x92, 0x74, 0xa7, 0xf0, 0xa3,
0x74, 0x43, 0xf0, 0x90, 0x00, 0x94, 0x74, 0x99, 0xf0, 0xa3, 0x74, 0x15, 0xf0, 0x90, 0x00, 0xba, 0x74, 0xa7, 0xf0, 0xa3, 0x74, 0xf9, 0xf0, 0x78, 0x74, 0x7c, 0x2d, 0x7d,
0x01, 0x7b, 0xff, 0x7a, 0x91, 0x79, 0x91, 0x7e, 0x00, 0x7f, 0x98, 0x12, 0x97, 0x22, 0x90, 0x2d, 0x70, 0x74, 0x04, 0xf0, 0x78, 0xa4, 0x7c, 0x2e, 0x7d, 0x01, 0x7b, 0xff,
0x7a, 0x92, 0x79, 0x29, 0x91, 0xa3, 0x90, 0x2d, 0x71, 0x74, 0x08, 0xf0, 0x78, 0xd4, 0x7c, 0x2f, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x93, 0x79, 0x59, 0x91, 0xa3, 0x90, 0x2d,
0x72, 0x74, 0x08, 0xf0, 0x78, 0x04, 0x7c, 0x31, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x94, 0x79, 0x89, 0x91, 0xa3, 0x90, 0x2d, 0x73, 0x74, 0x08, 0xf0, 0x7a, 0x01, 0x79, 0x40,
0x7e, 0x01, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x02, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x01, 0x7d,
0x01, 0x7b, 0xff, 0x7a, 0x80, 0x79, 0x61, 0x7e, 0x00, 0x7f, 0x4c, 0x12, 0x97, 0x22, 0x7a, 0x02, 0x79, 0x40, 0x7e, 0x02, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3,
0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x04, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x02, 0x91, 0xbf, 0x7a, 0x07, 0x79, 0x40, 0x7e, 0x07, 0x7f, 0x40, 0x74,
0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x08, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x07, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x87,
0x79, 0x49, 0x91, 0x87, 0x7a, 0x08, 0x79, 0x40, 0x7e, 0x08, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x09, 0x3e, 0xee,
0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x08, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x87, 0x79, 0xf5, 0x91, 0x87, 0x7a, 0x09, 0x79, 0x40, 0x7e, 0x09, 0x7f, 0x40, 0x74, 0x40,
0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x0a, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x09, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x89, 0x79,
0x4d, 0x91, 0x87, 0x7a, 0x0a, 0x79, 0x40, 0x7e, 0x0a, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x0b, 0x3e, 0xee, 0xf0,
0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x0a, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x89, 0x79, 0xf9, 0x91, 0x87, 0x7a, 0x0b, 0x79, 0x40, 0x7e, 0x0b, 0x7f, 0x40, 0x74, 0x40, 0x78,
0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x0d, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x0b, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x8a, 0x79, 0xa5,
0x91, 0xb8, 0x7a, 0x0d, 0x79, 0x40, 0x7e, 0x0d, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x0f, 0x3e, 0xee, 0xf0, 0xa3, 0xef,
0xf0, 0x78, 0x40, 0x7c, 0x0d, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x8b, 0x79, 0xad, 0x91, 0xb8, 0x7a, 0x0f, 0x79, 0x40, 0x7e, 0x0f, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce,
0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x11, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x0f, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x8c, 0x79, 0xb5, 0x91, 0xb1,
0x7a, 0x11, 0x79, 0x40, 0x7e, 0x11, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x13, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0,
0x78, 0x40, 0x7c, 0x11, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x8e, 0x79, 0x39, 0x91, 0xb1, 0x7a, 0x13, 0x79, 0x40, 0x7e, 0x13, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3,
0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x15, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x13, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x82, 0x79, 0x61, 0x91, 0x9c, 0x7a,
0x15, 0x79, 0x40, 0x7e, 0x15, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x17, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78,
0x40, 0x7c, 0x15, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x83, 0x79, 0x95, 0x91, 0x9c, 0x7a, 0x17, 0x79, 0x40, 0x7e, 0x17, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13,
0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x19, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x17, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x84, 0x79, 0xc9, 0x91, 0x9c, 0x7a, 0x19,
0x79, 0x40, 0x7e, 0x19, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x1b, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c,
0x19, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x85, 0x79, 0xfd, 0x7e, 0x01, 0x7f, 0x20, 0x12, 0x97, 0x22, 0x7a, 0x1b, 0x79, 0x40, 0x7e, 0x1b, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02,
0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x1c, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x1b, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x87, 0x79, 0x1d, 0x7e,
0x00, 0x7f, 0x2c, 0x12, 0x97, 0x22, 0x7a, 0x1c, 0x79, 0x40, 0x7e, 0x1c, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x1e,
0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x1c, 0x91, 0xbf, 0x7a, 0x24, 0x79, 0x40, 0x7e, 0x24, 0x7f, 0x40, 0x74, 0x40, 0x78, 0x02, 0xce, 0xc3, 0x13, 0x6c, 0x21,
/* cmd package 14 */
0x02,0x47,0x3c, 0x24, 0x86, 0xc0, 0xb7, 0x0a, 0xa3, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x25, 0x3e, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x40, 0x7c, 0x24, 0x7d, 0x01, 0x7b, 0xff, 0x7a,
0x8f, 0x79, 0xbd, 0x91, 0x95, 0x7a, 0x40, 0x79, 0x00, 0x7e, 0x40, 0x7f, 0x00, 0x74, 0x00, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x40, 0xfe,
0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x00, 0x7c, 0x40, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x90, 0x79, 0x59, 0x91, 0x95, 0x7a, 0x41, 0x79, 0x00, 0x7e, 0x41, 0x7f, 0x00, 0x74,
0x00, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x41, 0xfe, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x00, 0x7c, 0x41, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x90,
0x79, 0xf5, 0x91, 0x95, 0x7a, 0x42, 0x79, 0x00, 0x7e, 0x42, 0x7f, 0x00, 0x74, 0x00, 0x78, 0x02, 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0xff, 0x90, 0x42, 0xfe, 0xee,
0xf0, 0xa3, 0xef, 0xf0, 0x78, 0x00, 0x7c, 0x42, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x88, 0x79, 0xa1, 0x91, 0x87, 0x90, 0x00, 0x0d, 0x74, 0x06, 0xf0, 0x90, 0x00, 0x08, 0x74,
0x19, 0xf0, 0xa3, 0xf0, 0xa3, 0xf0, 0xa3, 0xf0, 0x90, 0x00, 0x0e, 0xe0, 0x44, 0x40, 0xf0, 0x91, 0x8e, 0xef, 0x7f, 0x00, 0xfe, 0xef, 0xc0, 0xe0, 0xee, 0xc0, 0xe0, 0x91, 0x8e,
0xee, 0xfd, 0xd0, 0xe0, 0xfc, 0xd0, 0xe0, 0x4d, 0xfd, 0xec, 0xc0, 0xe0, 0xed, 0xc0, 0xe0, 0x91, 0xaa, 0xef, 0x7f, 0x00, 0xfe, 0xef, 0xc0, 0xe0, 0xee, 0xc0, 0xe0, 0x91, 0xaa,
0xee, 0xfd, 0xd0, 0xe0, 0xfa, 0xd0, 0xe0, 0x4d, 0xfb, 0x7e, 0x80, 0x7f, 0x46, 0xd0, 0xe0, 0xfd, 0xd0, 0xe0, 0xfc, 0x12, 0x02, 0xed, 0x7b, 0xc0, 0x7a, 0x06, 0x7d, 0x7f, 0x7c,
0xff, 0x7f, 0xf6, 0x7e, 0x00, 0x12, 0x00, 0x5c, 0x7b, 0x02, 0x7d, 0xf4, 0xe4, 0xff, 0x02, 0x01, 0xb9, 0x7e, 0x00, 0x7f, 0xac, 0x02, 0x97, 0x22, 0x7f, 0x04, 0x7e, 0x63, 0x02,
0x01, 0xd6, 0x7e, 0x00, 0x7f, 0x9c, 0x02, 0x97, 0x22, 0x7e, 0x01, 0x7f, 0x34, 0x02, 0x97, 0x22, 0x7e, 0x01, 0x7f, 0x30, 0x02, 0x97, 0x22, 0x7f, 0x05, 0x7e, 0x63, 0x02,
0x01, 0xd6, 0x7e, 0x01, 0x7f, 0x84, 0x02, 0x97, 0x22, 0x7e, 0x01, 0x7f, 0x08, 0x02, 0x97, 0x22, 0x7d, 0x01, 0x7b, 0xff, 0x7a, 0x80, 0x79, 0xad, 0x7e, 0x01, 0x7f, 0xb4,
0x02, 0x97, 0x22, 0xe0, 0xfe, 0xa3, 0xe0, 0xc3, 0x9b, 0xff, 0xee, 0x9a, 0xfe, 0xe4, 0xfc, 0xfd, 0xe5, 0x49, 0x2f, 0xf5, 0x49, 0xe5, 0x48, 0x3e, 0xf5, 0x48, 0xed, 0x35, 0x47,
0xf5, 0x47, 0xec, 0x35, 0x46, 0xf5, 0x46, 0x22, 0xe0, 0xf5, 0x43, 0xa3, 0xe0, 0xf5, 0x44, 0xe5, 0x42, 0x25, 0xe0, 0xff, 0xe5, 0x41, 0x33, 0xfe, 0xe5, 0x40, 0x2f, 0xff, 0xe5,
0x3f, 0x3e, 0xfe, 0xe5, 0x44, 0x2f, 0x22, 0xff, 0xee, 0x34, 0xff, 0xfe, 0xed, 0x34, 0xff, 0xfd, 0xec, 0x34, 0xff, 0xfc, 0xab, 0x49, 0xaa, 0x48, 0xa9, 0x47, 0xa8, 0x46, 0x22,
0x85, 0x4e, 0x82, 0x85, 0x4d, 0x83, 0xaf, 0x4a, 0x05, 0x4a, 0x75, 0xf0, 0x02, 0xef, 0x12, 0x96, 0x54, 0xe0, 0xf5, 0x4b, 0xa3, 0x22, 0xfe, 0x78, 0x06, 0x12, 0x96, 0x41,
0xe4, 0x7b, 0x03, 0xfa, 0xf9, 0xf8, 0x12, 0x95, 0xe1, 0xef, 0x22, 0x7c, 0x80, 0x7f, 0x0c, 0x7e, 0x07, 0x12, 0x01, 0xea, 0x7d, 0xb6, 0x22, 0xf0, 0x85, 0x41, 0x3f, 0x85,
0x42, 0x40, 0x85, 0x43, 0x41, 0x85, 0x44, 0x42, 0x05, 0x45, 0x22, 0xe0, 0xfe, 0xa3, 0xe0, 0x8e, 0x41, 0xf5, 0x42, 0x8e, 0x3f, 0xf5, 0x40, 0xe4, 0xf5, 0x45, 0x22, 0xe0,
0xfa, 0xa3, 0xe0, 0xc3, 0x9d, 0xfd, 0xea, 0x9c, 0xfc, 0xc3, 0xed, 0x9f, 0xec, 0x9e, 0x22, 0xe5, 0x18, 0x24, 0x23, 0xfd, 0x7b, 0x01, 0x7f, 0x05, 0x12, 0x00, 0xf6, 0xef, 0x22,
0xf5, 0xf8, 0xe5, 0x4b, 0xf5, 0xf9, 0x8c, 0xfc, 0xed, 0x44, 0x80, 0xf5, 0xff, 0x22, 0xe4, 0x94, 0x00, 0xef, 0x7f, 0x00, 0xfe, 0x7d, 0x01, 0x22, 0x00, 0x08, 0x00, 0x3d, 0xff,
0xff, 0x00, 0x02, 0x15, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x28, 0xf8,
/* cmd package 15 */
0x00,0x11,0xe4, 0xc2, 0x00, 0x04, 0x00, 0x80, 0x43, 0x09, 0xc2, 0x00, 0x06, 0x00, 0x80, 0x43, 0x09, 0xb1, 0x4c,
/* cmd package 16 */
0x00,0x09,0x62, 0x00, 0x02, 0x05, 0x00, 0x03, 0x00, 0xb2, 0x06,
/* cmd package 17 */
0x00,0x4a,0x6c, 0x04, 0x08, 0x00, 0x26, 0xff, 0xff, 0x01, 0x00, 0x08, 0x98, 0xc6, 0xff, 0xff, 0x08, 0x00, 0x08, 0x58, 0x24, 0xff, 0xff, 0x01, 0x00, 0x08, 0xd8, 0x24, 0x01, 0x00, 0x3f,
0x00, 0x08, 0xd8, 0x24, 0x00, 0x05, 0x00, 0x1f, 0x08, 0x58, 0x1c, 0xff, 0xff, 0x00, 0x20, 0x08, 0x18, 0x01, 0x05, 0x00, 0x3f, 0x00, 0x08, 0x58, 0x1c, 0x00, 0x00, 0x00,
0x20, 0x08, 0x18, 0x04, 0x10, 0x32, 0xff, 0xff, 0x08, 0x58, 0x04, 0x04, 0x00, 0xff, 0xff, 0xc9, 0xc5,
/* cmd package 18 */
0x00,0x19,0x5c, 0x01, 0xc8, 0xc1, 0x05, 0x00, 0x20, 0x00, 0x3c, 0xc8, 0x01, 0x06, 0x10, 0x00, 0x10, 0x00, 0x88, 0x41, 0x06, 0x00, 0x08, 0x00, 0x0e, 0x90, 0x63,
/* cmd package 19 */
0x02,0x90,0xcc, 0x28, 0xc8, 0x81, 0x07, 0x00, 0x00, 0x01, 0x00, 0xc8, 0xc1, 0x07, 0x00, 0x00, 0x01, 0x00, 0xc8, 0x81, 0x07, 0x00, 0x00, 0x04, 0x00, 0xc8, 0xc1, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x20,
0xbf, 0x0e, 0x00, 0xc0, 0x20, 0x03, 0x00, 0x08, 0xc0, 0x04, 0x00, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x04, 0xff, 0xff, 0x08, 0x00, 0xc0, 0x1f, 0x0b, 0x01, 0x00, 0xc0, 0x9f, 0x09,
0x07, 0x00, 0xc0, 0xdf, 0x09, 0x07, 0x00, 0xc0, 0x1f, 0x0a, 0x07, 0x00, 0xc0, 0x5f, 0x0a, 0x07, 0x00, 0xc0, 0xdf, 0x0a, 0x07, 0x00, 0xc0, 0x1f, 0x0e, 0x88, 0x9c, 0xc0, 0x5f, 0x0e, 0x0c, 0x00, 0xc0, 0x1f,
0x10, 0xe0, 0x80, 0xc0, 0x5f, 0x10, 0x40, 0x40, 0xc0, 0x9f, 0x10, 0x60, 0x80, 0xc8, 0x1f, 0x14, 0xff, 0xff, 0x01, 0x00, 0xc8, 0x1f, 0x14, 0xff, 0xff, 0x02, 0x00, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0xc8, 0x1f,
0x14, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x64, 0x00, 0x00, 0x00, 0xc8, 0x1f, 0x09, 0x60, 0x01, 0xff, 0xd5, 0xc0, 0x5f, 0x09, 0x60, 0x01, 0xc8, 0x1f, 0x09, 0x60, 0xc1, 0xff, 0xd5, 0xc0, 0x1f, 0x00, 0xc5, 0x63,
0xc0, 0x5f, 0x00, 0x01, 0x00, 0xc0, 0x9f, 0x00, 0x20, 0xc5, 0xc0, 0xdf, 0x00, 0xc5, 0x63, 0xc0, 0x1f, 0x01, 0x01, 0x00, 0xc0, 0x5f, 0x01, 0x20, 0xc5, 0xc0, 0x9f, 0x01, 0xc7, 0x63, 0xc0, 0xdf, 0x01, 0x01,
0x00, 0xc0, 0x1f, 0x02, 0x20, 0xc5, 0xc0, 0x5f, 0x02, 0xc7, 0x63, 0xc0, 0x9f, 0x02, 0x01, 0x00, 0xc0, 0xdf, 0x02, 0x20, 0xc5, 0xc0, 0x1f, 0x03, 0xc5, 0x63, 0xc0, 0x5f, 0x03, 0x01, 0x00, 0xc0, 0x9f, 0x03,
0x20, 0xc5, 0xc0, 0xdf, 0x03, 0xc5, 0x63, 0xc0, 0x1f, 0x04, 0x01, 0x00, 0xc0, 0x5f, 0x04, 0x20, 0xc5, 0xc0, 0x9f, 0x04, 0xc5, 0x63, 0xc0, 0xdf, 0x04, 0x01, 0x00, 0xc0, 0x1f, 0x05, 0x20, 0xc5, 0xc0, 0x5f,
0x05, 0xc5, 0x63, 0xc0, 0x9f, 0x05, 0x01, 0x00, 0xc0, 0xdf, 0x05, 0x20, 0xc5, 0xc0, 0x9f, 0x07, 0xc5, 0x63, 0xc0, 0xdf, 0x07, 0x01, 0x00, 0xc0, 0x1f, 0x08, 0x20, 0xc5, 0xc0, 0x5f, 0x08, 0xc5, 0x63, 0xc0,
0x9f, 0x08, 0x01, 0x00, 0xc0, 0xdf, 0x08, 0x20, 0xc5, 0xc8, 0x9f, 0x11, 0x00, 0x00, 0x11, 0x00, 0xc8, 0xdf, 0x11, 0x00, 0x00, 0x11, 0x00, 0xc8, 0x81, 0x07, 0x00, 0x00, 0x00, 0x02, 0xc8, 0xc1, 0x07,
0x00, 0x00, 0x00, 0x02, 0xc8, 0x81, 0x07, 0x00, 0x00, 0x04, 0x00, 0xc8, 0xc1, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x20, 0xbf, 0x0e, 0x00, 0xc0, 0x20, 0x03, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00,
0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0xff, 0xff, 0x08, 0x00, 0xc0, 0x0f, 0x0b, 0x01, 0x00, 0xc0, 0x8f, 0x09, 0x07, 0x00, 0xc0, 0xcf, 0x09, 0x07, 0x00, 0xc0, 0x0f, 0x0a, 0x07, 0x00,
0xc0, 0x4f, 0x0a, 0x07, 0x00, 0xc0, 0xcf, 0x0a, 0x07, 0x00, 0xc0, 0x0f, 0x0e, 0x88, 0x9c, 0xc0, 0x4f, 0x0e, 0x0c, 0x00, 0xc0, 0x0f, 0x10, 0xe0, 0x80, 0xc0, 0x4f, 0x10, 0x40, 0x40, 0xc0, 0x8f, 0x10, 0x60,
0x80, 0xc8, 0x0f, 0x14, 0xff, 0xff, 0x01, 0x00, 0xc8, 0x0f, 0x14, 0xff, 0xff, 0x02, 0x00, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0xc8, 0x0f, 0x14, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x64, 0x00, 0x00, 0x00, 0xc8, 0x0f,
0x09, 0x60, 0x01, 0xff, 0xd5, 0xc0, 0x4f, 0x09, 0x60, 0x01, 0xc8, 0x0f, 0x09, 0x60, 0xc1, 0xff, 0xd5, 0xc0, 0x0f, 0x00, 0xc5, 0x63, 0xc0, 0x4f, 0x00, 0x01, 0x00, 0xc0, 0x8f, 0x00, 0x20, 0xc5, 0xc0, 0xcf,
0x00, 0xc5, 0x63, 0xc0, 0x0f, 0x01, 0x01, 0x00, 0xc0, 0x4f, 0x01, 0x20, 0xc5, 0xc0, 0x8f, 0x01, 0xc7, 0x63, 0xc0, 0xcf, 0x01, 0x01, 0x00, 0xc0, 0x0f, 0x02, 0x20, 0xc5, 0xc0, 0x4f, 0x02, 0xc7, 0x63, 0xc0,
0x8f, 0x02, 0x01, 0x00, 0xc0, 0xcf, 0x02, 0x20, 0xc5, 0xc0, 0x0f, 0x03, 0xc5, 0x63, 0xc0, 0x4f, 0x03, 0x01, 0x00, 0xc0, 0x8f, 0x03, 0x20, 0xc5, 0xc0, 0xcf, 0x03, 0xc5, 0x63, 0xc0, 0x0f, 0x04, 0x01, 0x00,
0xc0, 0x4f, 0x04, 0x20, 0xc5, 0xc0, 0x8f, 0x04, 0xc5, 0x63, 0xc0, 0xcf, 0x04, 0x01, 0x00, 0xc0, 0x0f, 0x05, 0x20, 0xc5, 0xc0, 0x4f, 0x05, 0xc5, 0x63, 0xc0, 0x8f, 0x05, 0x01, 0x00, 0xc0, 0xcf, 0x05, 0x20,
0xc5, 0xc0, 0x8f, 0x07, 0xc5, 0x63, 0xc0, 0xcf, 0x07, 0x01, 0x00, 0xc0, 0x0f, 0x08, 0x20, 0xc5, 0xc0, 0x4f, 0x08, 0xc5, 0x63, 0xc0, 0x8f, 0x08, 0x01, 0x00, 0xc0, 0xcf, 0x08, 0x20, 0xc5, 0xc8, 0x8f, 0x11,
0x00, 0x00, 0x11, 0x00, 0xc8, 0xcf, 0x11, 0x00, 0x00, 0x11, 0x00, 0x80, 0x03,
/* cmd package 20 */
0x03,0x94,0x0c, 0x39, 0x08, 0x40, 0x04, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x04, 0xff, 0xff, 0x01, 0x00, 0x88, 0xde, 0x3f, 0x00, 0x00, 0x01, 0x00, 0x88, 0x1e, 0x04, 0x00, 0xa0,
0xff, 0xff, 0x88, 0x5e, 0x04, 0x00, 0x00, 0xff, 0xff, 0x88, 0x9e, 0x04, 0x0f, 0x00, 0xff, 0x00, 0x88, 0xde, 0x04, 0x32, 0x00, 0xff, 0x00, 0x88, 0xde, 0x04, 0x00, 0x28, 0x00, 0xff, 0x88, 0x1e, 0x05, 0x10,
0x00, 0xff, 0x00, 0x88, 0x5e, 0x05, 0x05, 0x00, 0xff, 0x00, 0x88, 0x5e, 0x05, 0x00, 0x1f, 0x00, 0xff, 0x88, 0x9e, 0x05, 0x06, 0x00, 0xff, 0x00, 0x88, 0x9e, 0x05, 0x00, 0x02, 0x00, 0xff, 0x88, 0xde, 0x05,
0x01, 0x00, 0xff, 0x00, 0x88, 0xde, 0x05, 0x00, 0x06, 0x00, 0xff, 0x88, 0x1e, 0x06, 0xff, 0x00, 0xff, 0x00, 0x88, 0x1e, 0x06, 0x00, 0xff, 0x00, 0xff, 0x88, 0x5e, 0x06, 0x05, 0x00, 0xff, 0x00, 0x88, 0x5e,
0x06, 0x00, 0x03, 0x00, 0xff, 0x88, 0x9e, 0x06, 0x05, 0x00, 0xff, 0x00, 0x88, 0xde, 0x06, 0x78, 0x09, 0xff, 0xff, 0x88, 0x1e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x88, 0xde, 0x07, 0xe0, 0x32, 0xff, 0xff, 0x88,
0x1e, 0x08, 0x29, 0x00, 0xff, 0xff, 0x88, 0x5e, 0x08, 0x00, 0x00, 0x10, 0x00, 0x88, 0x5e, 0x08, 0x00, 0x00, 0x80, 0x00, 0x88, 0x5e, 0x00, 0x03, 0x00, 0xff, 0x00, 0x88, 0x5e, 0x00, 0x00, 0x00, 0x00,
0x01, 0x88, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x88, 0xde, 0x0d, 0xff, 0xff, 0x04, 0x00, 0x88, 0x5e, 0x0c, 0x1f, 0x00, 0xff, 0x00, 0x88, 0x5e, 0x0e, 0xf8, 0x00, 0xff, 0x00, 0x88, 0x5e, 0x0e, 0x00, 0x81,
0x00, 0xff, 0x88, 0x5e, 0x0c, 0x00, 0x1f, 0x00, 0xff, 0x88, 0x9e, 0x0e, 0xf8, 0x00, 0xff, 0x00, 0x88, 0x9e, 0x0e, 0x00, 0x81, 0x00, 0xff, 0x88, 0x9e, 0x0c, 0x1f, 0x00, 0xff, 0x00, 0x88, 0xde, 0x0e, 0xf8,
0x00, 0xff, 0x00, 0x88, 0xde, 0x0e, 0x00, 0x81, 0x00, 0xff, 0x88, 0x9e, 0x0c, 0x00, 0x1f, 0x00, 0xff, 0x88, 0x1e, 0x0f, 0xf8, 0x00, 0xff, 0x00, 0x88, 0x1e, 0x0f, 0x00, 0x81, 0x00, 0xff, 0x88, 0x1e, 0x0c,
0x00, 0x00, 0x0f, 0x00, 0x88, 0x1e, 0x00, 0x00, 0x30, 0x00, 0xf0, 0x88, 0x9e, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x88, 0x9e, 0x00, 0xff, 0xff, 0x00, 0x06, 0x80, 0x5e, 0x05, 0x07, 0x14, 0x80, 0x9e, 0x05, 0x0f,
0x0f, 0xc8, 0x98, 0x10, 0x00, 0x13, 0xff, 0x1f, 0x08, 0xc0, 0x04, 0x00, 0x00, 0x00, 0x02, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x04, 0xff, 0xff, 0x00, 0x02, 0x08, 0xde, 0x3f, 0x00, 0x00, 0x07, 0x00,
0x08, 0x5e, 0x00, 0xff, 0xff, 0x04, 0x00, 0x08, 0x5e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x5e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x5e, 0x00, 0x01, 0x00, 0x03, 0x00, 0x08, 0x1e, 0x00, 0xff, 0xff, 0x04,
0x00, 0x08, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x9e, 0x01, 0xff, 0xff, 0x00, 0xde, 0x01, 0x00, 0x00, 0x08, 0x9e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08,
0x9e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x5e, 0x01, 0x00, 0x00, 0x08, 0x5e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x1e, 0x00, 0xff, 0xff,
0x02, 0x00, 0x08, 0x1e, 0x00, 0xff, 0xff, 0x01, 0x00, 0x08, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x00, 0xff, 0xff, 0x08, 0x00, 0x08, 0xc0, 0x05, 0x00, 0x00, 0x01,
0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x05, 0xff, 0xff, 0x01, 0x00, 0x88, 0xce, 0x3f, 0x00, 0x00, 0x01, 0x00, 0x88, 0x0e, 0x04, 0x00, 0xa0, 0xff, 0xff, 0x88, 0x4e, 0x04, 0x00, 0x00, 0xff, 0xff,
0x88, 0x8e, 0x04, 0x0f, 0x00, 0xff, 0x00, 0x88, 0xce, 0x04, 0x32, 0x00, 0xff, 0x00, 0x88, 0xce, 0x04, 0x00, 0x28, 0x00, 0xff, 0x88, 0x0e, 0x05, 0x10, 0x00, 0xff, 0x00, 0x88, 0x4e, 0x05, 0x05, 0x00, 0xff,
0x00, 0x88, 0x4e, 0x05, 0x00, 0x1f, 0x00, 0xff, 0x88, 0x8e, 0x05, 0x06, 0x00, 0xff, 0x00, 0x88, 0x8e, 0x05, 0x00, 0x02, 0x00, 0xff, 0x88, 0xce, 0x05, 0x0f, 0x00, 0xff, 0x00, 0x88, 0xce, 0x05, 0x00, 0x06,
0x00, 0xff, 0x88, 0x0e, 0x06, 0x01, 0x00, 0xff, 0x00, 0x88, 0x0e, 0x06, 0x00, 0x02, 0x00, 0xff, 0x88, 0x4e, 0x06, 0x02, 0x00, 0xff, 0x00, 0x88, 0x4e, 0x06, 0x00, 0x03, 0x00, 0xff, 0x88, 0x8e, 0x06, 0x05,
0x00, 0xff, 0x00, 0x88, 0xce, 0x06, 0x78, 0x09, 0xff, 0xff, 0x88, 0x0e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x88, 0xce, 0x07, 0xe0, 0x32, 0xff, 0xff, 0x88, 0x0e, 0x08, 0x29, 0x00, 0xff, 0xff, 0x88, 0x4e, 0x08, 0x00,
0x00, 0x10, 0x00, 0x88, 0x4e, 0x08, 0x00, 0x00, 0x80, 0x00, 0x88, 0x4e, 0x00, 0x03, 0x00, 0xff, 0x00, 0x88, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x88, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x88, 0xce,
0x0d, 0xff, 0xff, 0x04, 0x00, 0x88, 0x0e, 0x00, 0x00, 0x30, 0x00, 0xf0, 0x88, 0x8e, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x88, 0x8e, 0x00, 0xff, 0xff, 0x00, 0x06, 0x80, 0x4e, 0x05, 0x07, 0x14, 0x80, 0x8e, 0x05,
0x0f, 0x0f, 0xc8, 0x98, 0x10, 0x00, 0x43, 0xff, 0x4f, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0xff, 0xff, 0x00, 0x02, 0x08, 0xce, 0x3f, 0x00, 0x00, 0x07,
0x00, 0x08, 0x4e, 0x00, 0xff, 0xff, 0x04, 0x00, 0x08, 0x4e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x4e, 0x00, 0x01, 0x00, 0x03, 0x00, 0x08, 0x0e, 0x00, 0xff, 0xff, 0x04, 0x00, 0x08, 0x8e, 0x00, 0x00, 0x00,
0x00, 0x01, 0x08, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x8e, 0x01, 0xff, 0xff, 0x00, 0xce, 0x01, 0x00, 0x00,
0x08, 0x8e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x8e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x08, 0x4e, 0x00, 0x00,
0x00, 0x10, 0x00, 0x08, 0x0e, 0x00, 0xff, 0xff, 0x02, 0x00, 0x08, 0x0e, 0x00, 0xff, 0xff, 0x01, 0x00, 0x08, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x08, 0x0e, 0x00, 0xff, 0xff,
0x08, 0x00, 0xa7, 0xa9,
/* cmd package 21 */
0x03,0xfc,0x8c, 0x3f, 0x08, 0xc0, 0x04, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x04, 0xff, 0xff, 0x00, 0x01, 0x48, 0xdd, 0x3f, 0x00, 0x00, 0x07, 0x00,
0x48, 0xdd, 0x0e, 0x00, 0x00, 0xff, 0x03, 0x48, 0xdd, 0x02, 0x00, 0x00, 0x03, 0x00, 0x48, 0xdd, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x48, 0xdd, 0x02, 0x00, 0x00, 0x30, 0x00,
0x48, 0xdd, 0x02, 0x00, 0x00, 0xc0, 0x00, 0x48, 0xdd, 0x02, 0x00, 0x00, 0x00, 0x03, 0x48, 0xdd, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x48, 0xdd, 0x02, 0x00, 0x00, 0x00, 0x30,
0x48, 0xdd, 0x02, 0x00, 0x00, 0x00, 0xc0, 0x48, 0xdd, 0x02, 0x00, 0x08, 0xff, 0xff, 0x48, 0xdd, 0x0e, 0x30, 0x00, 0xff, 0x00, 0x48, 0x5d, 0x00, 0x55, 0x30, 0xff, 0xff, 0x48,
0x1d, 0x00, 0x0b, 0x02, 0xff, 0x03, 0x08, 0xc0, 0x04, 0x00, 0x00, 0x80, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x04, 0xff, 0xff, 0x80, 0x00, 0x08, 0xdd, 0x3f,
0x00, 0x00, 0x07, 0x00, 0x08, 0x1d, 0x0c, 0x00, 0x00, 0x01, 0x00, 0x08, 0x1d, 0x00, 0xff, 0xff, 0x01, 0x00, 0x08, 0x9d, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0xdd, 0x00,
0x00, 0x00, 0x40, 0x00, 0x08, 0x1d, 0x01, 0x00, 0x00, 0x40, 0x00, 0x08, 0x5d, 0x01, 0x00, 0x00, 0x40, 0x00, 0x08, 0x9d, 0x01, 0x00, 0x00, 0x40, 0x00, 0x08, 0xdd, 0x01,
0x00, 0x00, 0x40, 0x00, 0x08, 0x1d, 0x02, 0x00, 0x00, 0x40, 0x00, 0x08, 0x5d, 0x02, 0x00, 0x00, 0x40, 0x00, 0x08, 0x9d, 0x02, 0x00, 0x00, 0x40, 0x00, 0x08, 0xdd, 0x02,
0x00, 0x00, 0x40, 0x00, 0x08, 0x1d, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0x5d, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0xdd, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0x1d, 0x04,
0x00, 0x00, 0x40, 0x00, 0x08, 0x5d, 0x04, 0x00, 0x00, 0x40, 0x00, 0x08, 0x9d, 0x04, 0x00, 0x00, 0x40, 0x00, 0x08, 0xdd, 0x04, 0x00, 0x00, 0x40, 0x00, 0x08, 0x1d, 0x05,
0x0b, 0x00, 0x3f, 0x00, 0x08, 0x1d, 0x05, 0x00, 0x00, 0x40, 0x00, 0x08, 0x1d, 0x05, 0x00, 0x0c, 0x00, 0x3f, 0x08, 0x1d, 0x05, 0x00, 0x00, 0x00, 0x40, 0x08, 0x5d, 0x05,
0x0d, 0x00, 0x3f, 0x00, 0x08, 0x5d, 0x05, 0x00, 0x00, 0x40, 0x00, 0x08, 0x5d, 0x05, 0x00, 0x0e, 0x00, 0x3f, 0x08, 0x5d, 0x05, 0x00, 0x00, 0x00, 0x40, 0x08, 0x9d, 0x05,
0x0a, 0x00, 0x3f, 0x00, 0x08, 0x9d, 0x05, 0x00, 0x00, 0x40, 0x00, 0x08, 0x9d, 0x05, 0x00, 0x0a, 0x00, 0x3f, 0x08, 0x9d, 0x05, 0x00, 0x00, 0x00, 0x40, 0x08, 0xdd, 0x05,
0x0a, 0x00, 0x3f, 0x00, 0x08, 0xdd, 0x05, 0x00, 0x00, 0x40, 0x00, 0x08, 0xdd, 0x05, 0x00, 0x0a, 0x00, 0x3f, 0x08, 0xdd, 0x05, 0x00, 0x00, 0x00, 0x40, 0x08, 0x1d, 0x1c,
0x01, 0x00, 0xff, 0x00, 0x08, 0x1d, 0x1c, 0x00, 0x01, 0x00, 0xff, 0x08, 0x5d, 0x1c, 0x01, 0x00, 0xff, 0x00, 0x08, 0x5d, 0x1c, 0x00, 0x01, 0x00, 0xff, 0x08, 0x9d, 0x1c, 0x01,
0x00, 0xff, 0x00, 0x08, 0x9d, 0x1c, 0x00, 0x01, 0x00, 0xff, 0x08, 0xdd, 0x1c, 0x01, 0x00, 0xff, 0x00, 0x08, 0xdd, 0x1c, 0x00, 0x01, 0x00, 0xff, 0x08, 0x1d, 0x00, 0x00, 0x00,
0x02, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x1d, 0x14, 0x00, 0x00, 0x1f, 0x00, 0x08, 0x1d, 0x14, 0x00, 0x00, 0x00, 0x1f, 0x08, 0x5d, 0x14, 0x01, 0x00,
0x1f, 0x00, 0x08, 0x5d, 0x14, 0x00, 0x01, 0x00, 0x1f, 0x08, 0x9d, 0x14, 0x02, 0x00, 0x1f, 0x00, 0x08, 0x9d, 0x14, 0x00, 0x02, 0x00, 0x1f, 0x08, 0xdd, 0x14, 0x03, 0x00,
0x1f, 0x00, 0x08, 0xdd, 0x14, 0x00, 0x03, 0x00, 0x1f, 0x08, 0x1d, 0x14, 0x00, 0x00, 0x00, 0x20, 0x08, 0x5d, 0x14, 0x00, 0x00, 0x00, 0x20, 0x08, 0x9d, 0x14, 0x00, 0x00,
0x00, 0x20, 0x08, 0xdd, 0x14, 0x00, 0x00, 0x00, 0x20, 0x08, 0x1d, 0x15, 0x00, 0x00, 0x00, 0x20, 0x08, 0x5d, 0x15, 0x00, 0x00, 0x00, 0x20, 0x08, 0x9d, 0x15, 0x00, 0x00,
0x00, 0x20, 0x08, 0xdd, 0x15, 0x00, 0x00, 0x00, 0x20, 0x08, 0x1d, 0x16, 0x00, 0x00, 0x00, 0x20, 0x08, 0x5d, 0x16, 0x00, 0x00, 0x00, 0x20, 0x08, 0x9d, 0x16, 0x00, 0x00,
0x00, 0x20, 0x08, 0xdd, 0x16, 0x00, 0x00, 0x00, 0x20, 0x08, 0x9d, 0x28, 0xff, 0xff, 0x01, 0x00, 0x08, 0x9d, 0x28, 0xff, 0xff, 0x02, 0x00, 0x08, 0x9d, 0x28, 0xff, 0xff, 0x04,
0x00, 0x08, 0x9d, 0x28, 0xff, 0xff, 0x08, 0x00, 0x08, 0x1d, 0x3e, 0xff, 0xff, 0x01, 0x00, 0x08, 0x1d, 0x2d, 0x00, 0x00, 0x3f, 0x00, 0x08, 0x1d, 0x2d, 0xff, 0xff, 0x40, 0x00,
0x08, 0x1d, 0x2d, 0x00, 0x00, 0x00, 0x1f, 0x08, 0x1d, 0x2d, 0xff, 0xff, 0x00, 0x20, 0x08, 0x1d, 0x1c, 0x10, 0x10, 0xff, 0xff, 0x08, 0x5d, 0x1c, 0x10, 0x10, 0xff, 0xff, 0x08,
0x1d, 0x00, 0xff, 0xff, 0xc0, 0x30, 0x08, 0x00, 0x06, 0x00, 0x00, 0x80, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0xff, 0xff, 0x80, 0x00, 0x08, 0xcd, 0x3f, 0x00,
0x00, 0x07, 0x00, 0x08, 0x0d, 0x0c, 0x00, 0x00, 0x01, 0x00, 0x08, 0x0d, 0x00, 0xff, 0xff, 0x01, 0x00, 0x08, 0x8d, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0xcd, 0x00, 0x00,
0x00, 0x40, 0x00, 0x08, 0x0d, 0x01, 0x00, 0x00, 0x40, 0x00, 0x08, 0x4d, 0x01, 0x00, 0x00, 0x40, 0x00, 0x08, 0x8d, 0x01, 0x00, 0x00, 0x40, 0x00, 0x08, 0xcd, 0x01, 0x00,
0x00, 0x40, 0x00, 0x08, 0x0d, 0x02, 0x00, 0x00, 0x40, 0x00, 0x08, 0x4d, 0x02, 0x00, 0x00, 0x40, 0x00, 0x08, 0x8d, 0x02, 0x00, 0x00, 0x40, 0x00, 0x08, 0xcd, 0x02, 0x00,
0x00, 0x40, 0x00, 0x08, 0x0d, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0x4d, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0xcd, 0x03, 0x00, 0x00, 0x40, 0x00, 0x08, 0x0d, 0x04, 0x00,
0x00, 0x40, 0x00, 0x08, 0x4d, 0x04, 0x00, 0x00, 0x40, 0x00, 0x08, 0x8d, 0x04, 0x00, 0x00, 0x40, 0x00, 0x08, 0xcd, 0x04, 0x00, 0x00, 0x40, 0x00, 0x08, 0x0d, 0x05, 0x0b,
0x00, 0x3f, 0x00, 0x08, 0x0d, 0x05, 0x00, 0x00, 0x40, 0x00, 0x08, 0x0d, 0x05, 0x00, 0x0c, 0x00, 0x3f, 0x08, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x40, 0x08, 0x4d, 0x05, 0x0d,
0x00, 0x3f, 0x00, 0x08, 0x4d, 0x05, 0x00, 0x00, 0x40, 0x00, 0x08, 0x4d, 0x05, 0x00, 0x0e, 0x00, 0x3f, 0x08, 0x4d, 0x05, 0x00, 0x00, 0x00, 0x40, 0x08, 0x8d, 0x05, 0x0a,
0x00, 0x3f, 0x00, 0x08, 0x8d, 0x05, 0x00, 0x00, 0x40, 0x00, 0x08, 0x8d, 0x05, 0x00, 0x0a, 0x00, 0x3f, 0x08, 0x8d, 0x05, 0x00, 0x00, 0x00, 0x40, 0x08, 0xcd, 0x05, 0x0a,
0x00, 0x3f, 0x00, 0x08, 0xcd, 0x05, 0x00, 0x00, 0x40, 0x00, 0x08, 0xcd, 0x05, 0x00, 0x0a, 0x00, 0x3f, 0x08, 0xcd, 0x05, 0x00, 0x00, 0x00, 0x40, 0x08, 0x0d, 0x1c, 0x04,
0x00, 0xff, 0x00, 0x08, 0x0d, 0x1c, 0x00, 0x04, 0x00, 0xff, 0x08, 0x4d, 0x1c, 0x04, 0x00, 0xff, 0x00, 0x08, 0x4d, 0x1c, 0x00, 0x04, 0x00, 0xff, 0x08, 0x8d, 0x1c, 0x01, 0x00,
0xff, 0x00, 0x08, 0x8d, 0x1c, 0x00, 0x01, 0x00, 0xff, 0x08, 0xcd, 0x1c, 0x01, 0x00, 0xff, 0x00, 0x08, 0xcd, 0x1c, 0x00, 0x01, 0x00, 0xff, 0x08, 0x0d, 0x00, 0x00, 0x00, 0x02,
0x00, 0xc3, 0x7c,
/* cmd package 22 */
0x00,0xeb,0x7c, 0x0e, 0x08, 0x0d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x0d, 0x14, 0x00, 0x00, 0x1f, 0x00, 0x08, 0x0d, 0x14, 0x00, 0x00, 0x00, 0x1f, 0x08, 0x4d, 0x14, 0x01, 0x00,
0x1f, 0x00, 0x08, 0x4d, 0x14, 0x00, 0x01, 0x00, 0x1f, 0x08, 0x8d, 0x14, 0x02, 0x00, 0x1f, 0x00, 0x08, 0x8d, 0x14, 0x00, 0x02, 0x00, 0x1f, 0x08, 0xcd, 0x14, 0x03, 0x00,
0x1f, 0x00, 0x08, 0xcd, 0x14, 0x00, 0x03, 0x00, 0x1f, 0x08, 0x0d, 0x14, 0x00, 0x00, 0x00, 0x20, 0x08, 0x4d, 0x14, 0x00, 0x00, 0x00, 0x20, 0x08, 0x8d, 0x14, 0x00, 0x00,
0x00, 0x20, 0x08, 0xcd, 0x14, 0x00, 0x00, 0x00, 0x20, 0x08, 0x0d, 0x15, 0x00, 0x00, 0x00, 0x20, 0x08, 0x4d, 0x15, 0x00, 0x00, 0x00, 0x20, 0x08, 0x8d, 0x15, 0x00, 0x00,
0x00, 0x20, 0x08, 0xcd, 0x15, 0x00, 0x00, 0x00, 0x20, 0x08, 0x0d, 0x16, 0x00, 0x00, 0x00, 0x20, 0x08, 0x4d, 0x16, 0x00, 0x00, 0x00, 0x20, 0x08, 0x8d, 0x16, 0x00, 0x00,
0x00, 0x20, 0x08, 0xcd, 0x16, 0x00, 0x00, 0x00, 0x20, 0x08, 0x8d, 0x28, 0xff, 0xff, 0x01, 0x00, 0x08, 0x8d, 0x28, 0xff, 0xff, 0x02, 0x00, 0x08, 0x8d, 0x28, 0xff, 0xff, 0x04,
0x00, 0x08, 0x8d, 0x28, 0xff, 0xff, 0x08, 0x00, 0x08, 0x0d, 0x3e, 0xff, 0xff, 0x01, 0x00, 0x08, 0x0d, 0x2d, 0x00, 0x00, 0x3f, 0x00, 0x08, 0x0d, 0x2d, 0xff, 0xff, 0x40, 0x00,
0x08, 0x0d, 0x2d, 0x00, 0x00, 0x00, 0x1f, 0x08, 0x0d, 0x2d, 0xff, 0xff, 0x00, 0x20, 0x08, 0x0d, 0x1c, 0x20, 0x20, 0xff, 0xff, 0x08, 0x4d, 0x1c, 0x20, 0x20, 0xff, 0xff, 0x08,
0x0d, 0x00, 0xff, 0xff, 0xc0, 0x30, 0xe4, 0x23,
/* cmd package 23 */
0x01,0xb9,0x5c, 0x1b, 0x08, 0x40, 0x04, 0x00, 0x00, 0x20, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x04, 0xff, 0xff, 0x20, 0x00, 0x48, 0xd1, 0x3f, 0x00, 0x00, 0x03, 0x00,
0x08, 0xc0, 0x3d, 0xff, 0xff, 0x00, 0x80, 0x48, 0x51, 0x19, 0x00, 0x00, 0x1f, 0x00, 0x48, 0x51, 0x19, 0x00, 0x00, 0xe0, 0x03, 0x48, 0x91, 0x19, 0x00, 0x00, 0x1f, 0x00,
0x48, 0x91, 0x19, 0x00, 0x00, 0xe0, 0x03, 0x48, 0x91, 0x1a, 0xff, 0xff, 0x01, 0x00, 0x48, 0x91, 0x1a, 0xff, 0xff, 0x02, 0x00, 0x48, 0x91, 0x1a, 0xff, 0xff, 0x04, 0x00, 0x48,
0x91, 0x1a, 0xff, 0xff, 0x08, 0x00, 0x48, 0xd1, 0x1a, 0xff, 0xff, 0x01, 0x00, 0x48, 0xd1, 0x1a, 0xff, 0xff, 0x00, 0x02, 0x48, 0xd1, 0x1a, 0xff, 0xff, 0x00, 0x04, 0x48, 0xd1,
0x1a, 0xff, 0xff, 0x00, 0x08, 0x48, 0xd1, 0x1a, 0xff, 0xff, 0x00, 0x10, 0x48, 0x91, 0x1b, 0x01, 0x00, 0x03, 0x00, 0x48, 0x91, 0x1b, 0x04, 0x00, 0x0c, 0x00, 0x48, 0x91,
0x1b, 0x10, 0x00, 0x30, 0x00, 0x48, 0x91, 0x1b, 0x40, 0x00, 0xc0, 0x00, 0x48, 0x91, 0x1c, 0x01, 0x00, 0x0f, 0x00, 0x48, 0x91, 0x1c, 0x20, 0x00, 0xf0, 0x00, 0x48, 0x91,
0x1c, 0x00, 0x03, 0x00, 0x0f, 0x48, 0x91, 0x1c, 0x00, 0x40, 0x00, 0xf0, 0x48, 0xd1, 0x1d, 0xff, 0xff, 0x00, 0x10, 0x48, 0xd1, 0x1d, 0xff, 0xff, 0x00, 0x20, 0x48, 0xd1, 0x1d,
0xff, 0xff, 0x00, 0x40, 0x48, 0xd1, 0x1d, 0xff, 0xff, 0x00, 0x80, 0x48, 0x51, 0x1e, 0x01, 0x00, 0x0f, 0x00, 0x48, 0x51, 0x1e, 0x20, 0x00, 0xf0, 0x00, 0x48, 0x51, 0x1e, 0x00,
0x03, 0x00, 0x0f, 0x48, 0x51, 0x1e, 0x00, 0x40, 0x00, 0xf0, 0x48, 0x11, 0x00, 0xff, 0xff, 0x5f, 0x00, 0x48, 0x11, 0x20, 0x04, 0x00, 0x1f, 0x00, 0x48, 0x11, 0x20, 0x60,
0x00, 0xe0, 0x03, 0x48, 0x51, 0x20, 0x02, 0x00, 0x1f, 0x00, 0x48, 0x51, 0x20, 0x20, 0x00, 0xe0, 0x03, 0x40, 0x11, 0x21, 0x80, 0x01, 0x40, 0x51, 0x21, 0x80, 0x01, 0x40,
0x91, 0x21, 0x80, 0x01, 0x40, 0xd1, 0x21, 0x80, 0x01, 0x48, 0x11, 0x23, 0xff, 0xff, 0x01, 0x00, 0x48, 0x11, 0x23, 0xff, 0xff, 0x02, 0x00, 0x48, 0x11, 0x23, 0xff, 0xff, 0x04,
0x00, 0x48, 0x11, 0x23, 0xff, 0xff, 0x08, 0x00, 0x40, 0x91, 0x23, 0x00, 0x00, 0x40, 0xd1, 0x23, 0x00, 0x00, 0x40, 0x11, 0x24, 0x00, 0x00, 0x40, 0x51, 0x24, 0x00, 0x00,
0x48, 0x11, 0x00, 0xff, 0xff, 0x1f, 0x02, 0x08, 0x00, 0x36, 0x23, 0x01, 0xff, 0xff, 0x08, 0x40, 0x36, 0x00, 0x00, 0xff, 0xff, 0x08, 0xc0, 0x35, 0xff, 0xff, 0x40, 0x00, 0x08,
0xc0, 0x35, 0xff, 0xff, 0x20, 0x00, 0x08, 0x80, 0x37, 0x35, 0xb7, 0xff, 0xff, 0x08, 0xc0, 0x37, 0x0c, 0x00, 0xff, 0xff, 0x08, 0xc0, 0x36, 0xff, 0xff, 0x20, 0x00, 0x08, 0xc0,
0x36, 0xff, 0xff, 0x01, 0x00, 0x08, 0xc0, 0x36, 0xff, 0xff, 0x02, 0x00, 0x08, 0xc0, 0x36, 0xff, 0xff, 0x04, 0x00, 0x08, 0xc0, 0x36, 0xff, 0xff, 0x08, 0x00, 0x08, 0xc0, 0x36,
0xff, 0xff, 0x10, 0x00, 0x08, 0xc0, 0x35, 0x0f, 0x00, 0x0f, 0x00, 0xab, 0x25,
/* cmd package 24 */
0x00,0x18,0x4c, 0x01, 0xc0, 0x18, 0x10, 0x01, 0x01, 0xc0, 0x58, 0x10, 0x01, 0x01, 0xc0, 0x98, 0x10, 0x00, 0x10, 0xc0, 0xd8, 0x10, 0x01, 0x00, 0xf5, 0x14,
};
static u8 dms_ser_cfg[] = {
/* cmd package 1 */
0x00,0x0f,0xc4, 0x08, 0x18, 0x04, 0x01, 0x00, 0x0f, 0x00, 0x00, 0x18, 0x1e, 0x00, 0x01, 0x02, 0xbb,
/* cmd package 2 */
0x00,0x19,0x58, 0x01, 0x08, 0x58, 0x04, 0x10, 0x00, 0xff, 0xff, 0x88, 0xc1, 0x05, 0x00, 0x24, 0x00, 0x3c, 0x88, 0x41, 0x06, 0x40, 0x01, 0xc0, 0x03, 0x32, 0xa0,
/* cmd package 3 */
0x00,0xd7,0x38, 0x0d, 0x88, 0x41, 0x06, 0x00, 0x00, 0xc0, 0x01, 0x88, 0x01, 0x08, 0x00, 0x00, 0x00, 0x40, 0x88, 0x41, 0x08, 0x00, 0x00, 0x00, 0x40, 0x88, 0x81, 0x08, 0x00, 0x00,
0x04, 0x00, 0x88, 0xc1, 0x08, 0x00, 0x00, 0x04, 0x00, 0x08, 0x80, 0x04, 0x00, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x04, 0xff, 0xff, 0x02, 0x00,
0x88, 0xdf, 0x05, 0xff, 0xff, 0x01, 0x00, 0x80, 0x1f, 0x04, 0x70, 0x07, 0x80, 0x5f, 0x04, 0x00, 0x00, 0x80, 0x9f, 0x04, 0x00, 0x80, 0x80, 0x1f, 0x00, 0x70, 0x07, 0x80,
0x5f, 0x00, 0x00, 0x00, 0x80, 0x9f, 0x00, 0x00, 0x00, 0x80, 0xdf, 0x00, 0x03, 0x00, 0x80, 0x1f, 0x01, 0x70, 0x07, 0x80, 0x5f, 0x01, 0x00, 0x00, 0x80, 0x9f, 0x01, 0x00,
0x00, 0x80, 0xdf, 0x01, 0x03, 0x00, 0x80, 0x1f, 0x02, 0x70, 0x07, 0x80, 0x5f, 0x02, 0x00, 0x00, 0x80, 0x9f, 0x02, 0x00, 0x00, 0x80, 0xdf, 0x02, 0x03, 0x00, 0x80, 0x1f,
0x03, 0x70, 0x07, 0x80, 0x5f, 0x03, 0x00, 0x00, 0x80, 0x9f, 0x03, 0x00, 0x00, 0x80, 0xdf, 0x03, 0x03, 0x00, 0x80, 0x5f, 0x07, 0x00, 0x00, 0x88, 0x1f, 0x05, 0xff, 0xff,
0x80, 0x0f, 0x88, 0x5f, 0x08, 0x00, 0x00, 0x0f, 0x00, 0x88, 0x9f, 0x08, 0x00, 0x00, 0x0f, 0x00, 0x88, 0x5f, 0x08, 0x00, 0x00, 0x00, 0x0d, 0x88, 0x9f, 0x08, 0x00, 0x00,
0x00, 0x0d, 0x80, 0x1f, 0x0a, 0x00, 0x00, 0x80, 0x5f, 0x0a, 0x01, 0x00, 0x0d, 0xe8, 0x03, 0x00, 0x00, 0x7a, 0x21,
/* cmd package 4 */
0x00,0x25,0x18, 0x02, 0x08, 0x80, 0x04, 0x00, 0x00, 0x10, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x04, 0xff, 0xff, 0x10, 0x00, 0xc8, 0xdb, 0x3f, 0x00, 0x00, 0x07, 0x00,
0xc8, 0x1b, 0x00, 0xff, 0xff, 0x0f, 0x00, 0x12, 0x9b,
/* cmd package 5 */
0x01,0xe6,0x28, 0x1e, 0x08, 0x80, 0x04, 0x00, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x04, 0xff, 0xff, 0x08, 0x00, 0x48, 0xde, 0x3f, 0x00, 0x00, 0x07, 0x00,
0x48, 0x1e, 0x04, 0xff, 0xff, 0x80, 0x00, 0x48, 0x1e, 0x04, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x5e, 0x04, 0xff, 0xff, 0x80, 0x00, 0x48, 0x5e, 0x04, 0x00, 0x0a, 0x00, 0x3f, 0x48,
0x9e, 0x04, 0xff, 0xff, 0x80, 0x00, 0x48, 0x9e, 0x04, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0xde, 0x04, 0xff, 0xff, 0x80, 0x00, 0x48, 0xde, 0x04, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x1e,
0x05, 0xff, 0xff, 0x80, 0x00, 0x48, 0x1e, 0x05, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x5e, 0x05, 0xff, 0xff, 0x80, 0x00, 0x48, 0x5e, 0x05, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x9e, 0x05,
0xff, 0xff, 0x80, 0x00, 0x48, 0x9e, 0x05, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0xde, 0x05, 0xff, 0xff, 0x80, 0x00, 0x48, 0xde, 0x05, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x1e, 0x06, 0xff,
0xff, 0x80, 0x00, 0x48, 0x1e, 0x06, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x5e, 0x06, 0xff, 0xff, 0x80, 0x00, 0x48, 0x5e, 0x06, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x9e, 0x06, 0xff, 0xff,
0x80, 0x00, 0x48, 0x9e, 0x06, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0xde, 0x06, 0xff, 0xff, 0x80, 0x00, 0x48, 0xde, 0x06, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x1e, 0x07, 0xff, 0xff, 0x80,
0x00, 0x48, 0x1e, 0x07, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x5e, 0x07, 0xff, 0xff, 0x80, 0x00, 0x48, 0x5e, 0x07, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x9e, 0x07, 0xff, 0xff, 0x80, 0x00,
0x48, 0x9e, 0x07, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0xde, 0x07, 0xff, 0xff, 0x80, 0x00, 0x48, 0xde, 0x07, 0x00, 0x0a, 0x00, 0x3f, 0x48, 0x9e, 0x00, 0x03, 0x00, 0x03, 0x00,
0x48, 0x9e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x48, 0x9e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x48, 0x9e, 0x00, 0xff, 0xff, 0x10, 0x00, 0x48, 0x1e, 0x14, 0x00, 0x00, 0x00, 0x40,
0x48, 0x5e, 0x14, 0x00, 0x00, 0x00, 0x40, 0x48, 0x1e, 0x14, 0x00, 0x00, 0x1f, 0x00, 0x48, 0x1e, 0x14, 0x00, 0x00, 0x00, 0x3e, 0x48, 0x5e, 0x14, 0x01, 0x00, 0x1f, 0x00,
0x48, 0x5e, 0x14, 0x00, 0x02, 0x00, 0x3e, 0x48, 0x9e, 0x14, 0x02, 0x00, 0x1f, 0x00, 0x48, 0x9e, 0x14, 0x00, 0x04, 0x00, 0x3e, 0x48, 0xde, 0x14, 0x03, 0x00, 0x1f, 0x00,
0x48, 0xde, 0x14, 0x00, 0x06, 0x00, 0x3e, 0x48, 0x1e, 0x15, 0x04, 0x00, 0x1f, 0x00, 0x48, 0x1e, 0x15, 0x00, 0x08, 0x00, 0x3e, 0x48, 0x5e, 0x15, 0x05, 0x00, 0x1f, 0x00,
0x48, 0x5e, 0x15, 0x00, 0x0a, 0x00, 0x3e, 0x48, 0x9e, 0x15, 0x06, 0x00, 0x1f, 0x00, 0x48, 0x9e, 0x15, 0x00, 0x0c, 0x00, 0x3e, 0x48, 0xde, 0x15, 0x07, 0x00, 0x1f, 0x00,
0x48, 0xde, 0x15, 0x00, 0x0e, 0x00, 0x3e, 0x48, 0xde, 0x02, 0xff, 0xff, 0x10, 0x80, 0x48, 0x1e, 0x03, 0xff, 0xff, 0x10, 0x80, 0x48, 0x5e, 0x03, 0xff, 0xff, 0x80, 0x80, 0x48,
0x9e, 0x03, 0xff, 0xff, 0x80, 0x80, 0x48, 0x9e, 0x02, 0xff, 0xff, 0x11, 0x00, 0x40, 0x5e, 0x12, 0x4a, 0x04, 0x40, 0x9e, 0x12, 0x4a, 0x04, 0x40, 0x9e, 0x11, 0xff, 0x0f, 0x48,
0x1e, 0x00, 0xff, 0xff, 0x00, 0xf0, 0x48, 0x1e, 0x00, 0xff, 0xff, 0x00, 0x03, 0x48, 0x1e, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x48, 0x5e, 0x00, 0x00, 0x00, 0x10, 0x63, 0x92, 0x97,
/* cmd package 6 */
0x00,0xd2,0xe8, 0x0c, 0xc8, 0x98, 0x10, 0x01, 0x03, 0xff, 0x0f, 0x08, 0x40, 0x04, 0x00, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x04, 0xff, 0xff, 0x02, 0x00,
0xc8, 0x1e, 0x00, 0xff, 0xff, 0x02, 0x00, 0xc8, 0xde, 0x3f, 0x00, 0x00, 0x01, 0x00, 0xc8, 0x1e, 0x04, 0xc0, 0x00, 0xff, 0xff, 0xc8, 0x5e, 0x04, 0x00, 0x00, 0xff, 0xff, 0xc8,
0x9e, 0x04, 0x32, 0x00, 0xff, 0x00, 0xc8, 0x9e, 0x04, 0x00, 0x28, 0x00, 0xff, 0xc8, 0xde, 0x04, 0x10, 0x00, 0xff, 0x00, 0xc8, 0xde, 0x04, 0x00, 0x08, 0x00, 0xff, 0xc8, 0x1e,
0x05, 0x01, 0x00, 0xff, 0x00, 0xc8, 0x1e, 0x05, 0x00, 0x01, 0x00, 0xff, 0xc8, 0x5e, 0x05, 0x02, 0x00, 0xff, 0x00, 0xc8, 0x1e, 0x06, 0xe0, 0x32, 0xff, 0xff, 0xc8, 0x5e, 0x06,
0x29, 0x00, 0xff, 0xff, 0xc8, 0x9e, 0x06, 0x46, 0x05, 0xff, 0xff, 0xc8, 0xde, 0x06, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x1e, 0x07, 0x00, 0x00, 0x02, 0x00, 0xc8, 0x1e, 0x07, 0x00,
0x00, 0x80, 0x00, 0xc8, 0x9e, 0x00, 0x00, 0x00, 0xff, 0x00, 0xc8, 0x1e, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xc8, 0xde, 0x00, 0xff, 0xff, 0x03, 0x00, 0xc8, 0xde, 0x00, 0x00, 0x00,
0x3c, 0x00, 0xc8, 0xde, 0x00, 0x00, 0x07, 0x00, 0x07, 0xc8, 0x9e, 0x00, 0xff, 0xff, 0x00, 0x1f, 0xc8, 0xde, 0x00, 0xff, 0xff, 0x40, 0x00, 0x0d, 0x10, 0x27, 0x00, 0x00, 0xc8,
0x9e, 0x00, 0xff, 0xff, 0x00, 0x60, 0x74, 0x2a,
/* cmd package 7 */
0x01,0x69,0x58, 0x16, 0x48, 0x40, 0x0e, 0xff, 0xff, 0x10, 0x00, 0x08, 0x80, 0x25, 0xff, 0xff, 0x01, 0x00, 0x08, 0x80, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x80, 0x04, 0xff, 0xff, 0x00,
0x01, 0x88, 0x41, 0x08, 0xff, 0xff, 0x01, 0x00, 0x88, 0x01, 0x08, 0xff, 0xff, 0x01, 0x00, 0x88, 0xc1, 0x08, 0xff, 0xff, 0x00, 0x04, 0x88, 0x81, 0x08, 0xff, 0xff, 0x00, 0x04,
0x88, 0x01, 0x14, 0x00, 0x00, 0x01, 0x00, 0x80, 0x9d, 0x08, 0x00, 0x00, 0x80, 0x81, 0x06, 0x00, 0x12, 0x80, 0xc1, 0x06, 0x60, 0x67, 0x88, 0x01, 0x07, 0xff, 0xff, 0x08,
0x00, 0x88, 0x41, 0x05, 0x00, 0x00, 0x00, 0x80, 0x80, 0x01, 0x07, 0x00, 0x00, 0x80, 0x41, 0x07, 0x85, 0x00, 0x88, 0x1d, 0x00, 0xff, 0xff, 0x00, 0x04, 0x88, 0x01, 0x07,
0x00, 0x00, 0x08, 0x00, 0x88, 0x41, 0x05, 0xff, 0xff, 0x00, 0x80, 0x88, 0x81, 0x08, 0x00, 0x00, 0x00, 0x04, 0x88, 0xc1, 0x08, 0x00, 0x00, 0x00, 0x04, 0x88, 0x01, 0x08,
0x00, 0x00, 0x01, 0x00, 0x88, 0x41, 0x08, 0x00, 0x00, 0x01, 0x00, 0x88, 0xc1, 0x06, 0x00, 0x00, 0x20, 0x00, 0x88, 0x01, 0x14, 0xff, 0xff, 0x01, 0x00, 0x80, 0x9d, 0x08,
0x43, 0x00, 0x80, 0x9d, 0x06, 0x00, 0x00, 0x08, 0x80, 0x25, 0x00, 0x00, 0x01, 0x00, 0x48, 0x40, 0x0e, 0x00, 0x00, 0x10, 0x00, 0x08, 0x40, 0x04, 0x00, 0x00, 0x20, 0x00,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x04, 0xff, 0xff, 0x20, 0x00, 0x48, 0xd1, 0x3f, 0x00, 0x00, 0x03, 0x00, 0x00, 0xd1, 0x14, 0x00, 0x00, 0x00, 0xd1, 0x15, 0x08,
0x07, 0x08, 0x11, 0x16, 0xff, 0xff, 0x00, 0x80, 0x08, 0x11, 0x16, 0xff, 0xff, 0x08, 0x00, 0x08, 0x51, 0x17, 0xff, 0xff, 0x00, 0x10, 0x00, 0x11, 0x17, 0xff, 0xff, 0x08, 0x11,
0x00, 0xff, 0xff, 0x43, 0x00, 0x08, 0xc0, 0x3d, 0xff, 0xff, 0x00, 0x80, 0x00, 0x91, 0x10, 0x05, 0x00, 0x00, 0xd1, 0x11, 0x01, 0x00, 0x08, 0xd1, 0x12, 0xff, 0xff, 0x04, 0x00,
0x08, 0xd1, 0x12, 0xff, 0xff, 0x10, 0x00, 0x08, 0xd1, 0x12, 0xff, 0xff, 0x00, 0x20, 0x08, 0x51, 0x13, 0x10, 0x00, 0x30, 0x00, 0x08, 0x11, 0x00, 0xff, 0xff, 0x0b, 0x00, 0x00,
0x11, 0x17, 0x10, 0x27, 0x08, 0x11, 0x16, 0x00, 0x00, 0x00, 0x80, 0x48, 0xc0, 0x22, 0x08, 0x00, 0xff, 0x00, 0x48, 0x00, 0x1d, 0x66, 0x00, 0xff, 0x00, 0x48, 0x00, 0x1b,
0xff, 0xff, 0x00, 0x01, 0x48, 0x40, 0x0d, 0xff, 0xff, 0x01, 0x00, 0x48, 0x40, 0x0e, 0x00, 0x00, 0x01, 0x00, 0xde, 0x83,
/* cmd package 8 */
0x00,0x93,0xf8, 0x08, 0x88, 0x41, 0x06, 0x00, 0x00, 0x00, 0x20, 0x88, 0x41, 0x06, 0xff, 0xff, 0x00, 0x40, 0x0d, 0xe8, 0x03, 0x00, 0x00, 0x88, 0x41, 0x06, 0xff, 0xff, 0x00, 0x80,
0x0d, 0xe8, 0x03, 0x00, 0x00, 0x88, 0x41, 0x06, 0xff, 0xff, 0x00, 0x10, 0x08, 0x18, 0xc4, 0xff, 0xff, 0x0e, 0x00, 0x08, 0x18, 0xc4, 0x0e, 0x00, 0x0e, 0x00, 0x08, 0x58,
0x04, 0x10, 0x00, 0xff, 0xff, 0x08, 0x18, 0x40, 0xff, 0xff, 0x01, 0x00, 0x08, 0x18, 0xc9, 0xff, 0xff, 0x01, 0x00, 0x08, 0x98, 0xc9, 0xff, 0xff, 0x01, 0x00, 0x08, 0x58, 0xc9,
0xff, 0xff, 0x01, 0x00, 0x08, 0x58, 0xc4, 0xff, 0xff, 0x01, 0x00, 0x08, 0x18, 0x40, 0xff, 0xff, 0x01, 0x00, 0x08, 0x58, 0xc4, 0x00, 0x00, 0x04, 0x00, 0x08, 0x58, 0xc4, 0xff,
0xff, 0x08, 0x00, 0x08, 0x58, 0xc4, 0xff, 0xff, 0x02, 0x00, 0x08, 0x58, 0x44, 0xff, 0xff, 0x01, 0x00, 0x08, 0xd8, 0x44, 0x05, 0x00, 0x3f, 0x00, 0x08, 0xd8, 0x44, 0x00, 0x02,
0x00, 0x1f, 0xcf, 0xb4,
/* cmd package 9 */
0x00,0x18,0x48, 0x01, 0xc0, 0x18, 0x10, 0x01, 0x01, 0xc0, 0x58, 0x10, 0x01, 0x01, 0xc0, 0x98, 0x10, 0x01, 0x00, 0xc0, 0xd8, 0x10, 0x03, 0x00, 0xae, 0x97,
/* cmd package 10 */
0x00,0x11,0xe0, 0x88, 0xda, 0x04, 0xff, 0xff, 0x02, 0x00, 0x88, 0x9a, 0x1c, 0xff, 0xff, 0x01, 0x00, 0x1b, 0x03,
/* cmd package 11 */
0x00,0x11,0xe0, 0x08, 0x58, 0x04, 0x10, 0x00, 0xff, 0xff, 0x08, 0x18, 0x01, 0x01, 0x00, 0x3f, 0x00, 0x74, 0x5c,
};
#endif