Samsung SCH-I545 (Verizon) source updates

file:dcb27503de1d14629b4d6b8d37c5e1b6879263cb -> file:3086c83723e48bd214aab7a906aabdca66807878
--- a/arch/arm/configs/jactive_att_defconfig
+++ b/arch/arm/configs/jactive_att_defconfig
@@ -1,11 +1,8 @@
CONFIG_MACH_JACTIVE_ATT=y
-CONFIG_MACH_JACTIVE=y
CONFIG_EXTRA_FIRMWARE="audience-es325-fw-jactive_att.bin"
CONFIG_EXTRA_FIRMWARE_DIR="firmware"
CONFIG_AUTHENTEC_VPNCLIENT_INTERCEPTOR=m
CONFIG_FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT_PANEL=y
-CONFIG_SUPPORT_SECOND_POWER=y
-CONFIG_ESD_ERR_FG_RECOVERY=y
CONFIG_SUPPORT_DISPLAY_OCTA_TFT=y
CONFIG_S5K3H5XA=y
CONFIG_S5K6B2YX=y
file:8e2f1de545d0916e400e2d50b0096005ad172afd -> file:7a6179599e62ce7cd8395bf2f176ad0e74a655d3
--- a/arch/arm/configs/jactive_eur_defconfig
+++ b/arch/arm/configs/jactive_eur_defconfig
@@ -4,8 +4,6 @@ CONFIG_EXTRA_FIRMWARE_DIR="firmware"
CONFIG_FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT_PANEL=y
CONFIG_SUPPORT_DISPLAY_OCTA_TFT=y
-CONFIG_SUPPORT_SECOND_POWER=y
-CONFIG_ESD_ERR_FG_RECOVERY=y
# CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_VIDEO_FULL_HD_PT_PANEL is not set
# CONFIG_LCD_VDD3_BY_PMGPIO is not set
file:99516de8624467452b9513a8fbba6c257a341c8b -> file:b725fd59528ad52c816bc98abcb364ab30397565
--- a/arch/arm/configs/jfeng_factory_defconfig
+++ b/arch/arm/configs/jfeng_factory_defconfig
@@ -29,7 +29,6 @@ CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
CONFIG_DEBUG_PAGEALLOC=y
CONFIG_TOUCHSCREEN_FACTORY_PLATFORM=y
CONFIG_SAMSUNG_BATTERY_FACTORY=y
-CONFIG_PVS_IDDQ_FACTORY=y
# Overriding the rooting prevention feature as disable on ENG build
# CONFIG_SEC_RESTRICT_ROOTING is not set
file:1808c40aa47dd207d165791eaba2a89dcbccc165 -> file:a11d0a28a1a9c6a3c8b87b4a9fdbb51669ab85af
--- a/arch/arm/kernel/sys_arm.c
+++ b/arch/arm/kernel/sys_arm.c
@@ -212,7 +212,6 @@ asmlinkage int sys_execve(const char __u
"PPID = %d(%s)\n",
current->pid, current->comm,
current->parent->pid, current->parent->comm);
- panic("ROOTING_PREVENTION");
return -EACCES;
}
#endif // End of CONFIG_SEC_RESTRICT_FORK
file:207e1bd0d64618c79e823a1d233e1e43cadad1ce -> file:2c433d393ddc09d0472dd9680800a4ff7055f8af
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -488,12 +488,6 @@ config MSM_REMOTE_SPINLOCK_SFPB
config MSM_ADM3
bool
-config MACH_JACTIVE
- default n
- bool "APQ8064 Samsung JACTIVE"
- help
- Support for the Samsung J ACTIVE device.
-
menu "MSM Board Selection"
config MACH_HALIBUT
@@ -1019,7 +1013,6 @@ config MACH_JACTIVE_EUR
config MACH_JACTIVE_ATT
depends on ARCH_APQ8064
default n
- select MACH_JACTIVE
bool "APQ8064 Samsung JACTIVE_ATT"
help
Support for the Samsung J ACTIVE ATT device.
file:6f0d62a92418a7542ee0cda7ddab5a7800f27239 -> file:44e48d89efc3362465b41f0c2baeaa42280adb6e
--- a/arch/arm/mach-msm/acpuclock-krait.c
+++ b/arch/arm/mach-msm/acpuclock-krait.c
@@ -949,10 +949,10 @@ static void __init cpufreq_table_init(vo
for (i = 0; drv.acpu_freq_tbl[i].speed.khz != 0
&& freq_cnt < ARRAY_SIZE(*freq_table); i++) {
if (drv.acpu_freq_tbl[i].use_for_scaling) {
-#ifdef CONFIG_SEC_FACTORY
+#if 0
// if factory_condition, set the core freq limit.
//QMCK
- if (console_set_on_cmdline && drv.acpu_freq_tbl[i].speed.khz > 1000000) {
+ if (console_set_on_cmdline && drv.acpu_freq_tbl[i].speed.khz > 1242000) {
if(console_batt_stat == 1) {
continue;
}
file:88cbfb99fa673efa01e3277b52a388d2a15aa59e -> file:ee4f774ac0cc24d6942ae9b6c7de8faff925effc
--- a/arch/arm/mach-msm/board-8064-display.c
+++ b/arch/arm/mach-msm/board-8064-display.c
@@ -423,7 +423,7 @@ static int gpio27; /* LED_DRIVER */
static int gpio33;
#endif
static struct regulator *reg_L15;
-#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE)
+#if defined(CONFIG_MACH_JACTIVE_EUR)
static struct regulator *reg_LVS1;
#endif
#else
@@ -462,44 +462,6 @@ static struct pm8xxx_mpp_config_data MLC
.control = PM8XXX_MPP_DOUT_CTRL_LOW,
};
-static int mipi_dsi_power(int enable)
-{
- int rc = 0;
-
- if (enable) {
-
- pr_info("[lcd] DSI ON\n");
- rc = regulator_set_optimum_mode(reg_l2, 100000);
- if (rc < 0) {
- pr_err("set_optimum_mode L2 failed, rc=%d\n", rc);
- return -EINVAL;
- }
-
- rc = regulator_enable(reg_l2);
- if (rc) {
- pr_err("enable L2 failed, rc=%d\n", rc);
- return -ENODEV;
- }
- } else {
-
- pr_info("[lcd] DSI OFF\n");
- rc = regulator_set_optimum_mode(reg_l2, 100);
- if (rc < 0) {
- pr_err("set_optimum_mode L2 failed, rc=%d\n", rc);
- return -EINVAL;
- }
-
- rc = regulator_disable(reg_l2);
- if (rc) {
- pr_err("disable reg_L2 failed, rc=%d\n", rc);
- return -ENODEV;
- }
- }
-
- return rc;
-
-}
-
#if defined(CONFIG_SUPPORT_DISPLAY_OCTA_TFT)
static int mipi_dsi_power_tft_request(void)
{
@@ -608,11 +570,10 @@ static int mipi_dsi_power_tft_request(vo
return rc;
}
-static int mipi_panel_power_tft(int enable)
+static int mipi_dsi_power_tft(int enable)
{
int rc = 0;
- pr_info("%s %d", __func__, enable);
if (enable) {
#if defined(CONFIG_MACH_JACTIVE_EUR)
rc = regulator_set_optimum_mode(reg_LVS1, 100000); /*IOVDD */
@@ -625,19 +586,6 @@ static int mipi_panel_power_tft(int enab
pr_err("enable LVS1 failed, rc=%d\n", rc);
return -ENODEV;
}
-#elif defined(CONFIG_MACH_JACTIVE)
- if (system_rev >= 11) {
- rc = regulator_set_optimum_mode(reg_LVS1, 100000); /*IOVDD */
- if (rc < 0) {
- pr_err("set_optimum_mode LVS1 failed, rc=%d\n", rc);
- return -EINVAL;
- }
- rc = regulator_enable(reg_LVS1);
- if (rc) {
- pr_err("enable LVS1 failed, rc=%d\n", rc);
- return -ENODEV;
- }
- }
#endif
rc = regulator_set_optimum_mode(reg_L15, 100000); /*IOVDD */
@@ -651,6 +599,20 @@ static int mipi_panel_power_tft(int enab
return -ENODEV;
}
+ rc = regulator_set_optimum_mode(reg_l2, 100000);
+ if (rc < 0) {
+ pr_err("set_optimum_mode L2 failed, rc=%d\n", rc);
+ return -EINVAL;
+ }
+
+ rc = regulator_enable(reg_l2);
+ if (rc) {
+ pr_err("enable L2 failed, rc=%d\n", rc);
+ return -ENODEV;
+ }
+
+
+ msleep(20);
#if defined(CONFIG_MACH_JACTIVE_ATT)
if(system_rev < 10)
gpio_direction_output(gpio33, 1);
@@ -659,6 +621,7 @@ static int mipi_panel_power_tft(int enab
#else
gpio_direction_output(LCD_22V_EN, 1);
#endif
+ msleep(20);
/*active_reset_ldi(gpio43);*/
if (system_rev == 0)
@@ -679,6 +642,20 @@ static int mipi_panel_power_tft(int enab
PM8921_MPP_PM_TO_SYS(MLCD_RST_MPP2),
&MLCD_RESET_LOW_CONFIG);
+ msleep(200);
+
+ rc = regulator_set_optimum_mode(reg_l2, 100);
+ if (rc < 0) {
+ pr_err("set_optimum_mode L2 failed, rc=%d\n", rc);
+ return -EINVAL;
+ }
+
+ rc = regulator_disable(reg_l2);
+ if (rc) {
+ pr_err("disable reg_L2 failed, rc=%d\n", rc);
+ return -ENODEV;
+ }
+
rc = regulator_set_optimum_mode(reg_L15, 100);
if (rc < 0) {
pr_err("set_optimum_mode L15 failed, rc=%d\n", rc);
@@ -691,6 +668,8 @@ static int mipi_panel_power_tft(int enab
return -ENODEV;
}
+ msleep(20);
+
gpio_direction_output(gpio27, 0);/*LED_DRIVER(gpio27);*/
#if defined(CONFIG_MACH_JACTIVE_ATT)
if(system_rev < 10)
@@ -712,21 +691,8 @@ static int mipi_panel_power_tft(int enab
pr_err("disable reg_LVS1 failed, rc=%d\n", rc);
return -ENODEV;
}
-#elif defined(CONFIG_MACH_JACTIVE)
- if (system_rev >= 11) {
- rc = regulator_set_optimum_mode(reg_LVS1, 100);
- if (rc < 0) {
- pr_err("set_optimum_mode LVS1 failed, rc=%d\n", rc);
- return -EINVAL;
- }
- rc = regulator_disable(reg_LVS1);
- if (rc) {
- pr_err("disable reg_LVS1 failed, rc=%d\n", rc);
- return -ENODEV;
- }
- }
-#endif
msleep(20);
+#endif
}
return rc;
@@ -758,6 +724,44 @@ static int mipi_dsi_power_octa_request(v
return rc;
}
+static int mipi_dsi_power_oled(int enable)
+{
+ int rc = 0;
+
+ if (enable) {
+
+ pr_info("[lcd] DSI ON\n");
+ rc = regulator_set_optimum_mode(reg_l2, 100000);
+ if (rc < 0) {
+ pr_err("set_optimum_mode L2 failed, rc=%d\n", rc);
+ return -EINVAL;
+ }
+
+ rc = regulator_enable(reg_l2);
+ if (rc) {
+ pr_err("enable L2 failed, rc=%d\n", rc);
+ return -ENODEV;
+ }
+ } else {
+
+ pr_info("[lcd] DSI OFF\n");
+ rc = regulator_set_optimum_mode(reg_l2, 100);
+ if (rc < 0) {
+ pr_err("set_optimum_mode L2 failed, rc=%d\n", rc);
+ return -EINVAL;
+ }
+
+ rc = regulator_disable(reg_l2);
+ if (rc) {
+ pr_err("disable reg_L2 failed, rc=%d\n", rc);
+ return -ENODEV;
+ }
+ }
+
+ return rc;
+
+}
+
static int mipi_panel_power_oled(int enable)
{
int rc = 0;
@@ -910,15 +914,6 @@ static int mipi_oled_power_set(void)
PTR_ERR(reg_LVS1));
return -ENODEV;
}
-#elif defined(CONFIG_MACH_JACTIVE)
- if (system_rev >=11) {
- reg_LVS1 = regulator_get(NULL, "8921_lvs1");
- if (IS_ERR_OR_NULL(reg_LVS1)) {
- pr_err("could not get 8917_LVS1, rc = %ld\n",
- PTR_ERR(reg_LVS1));
- return -ENODEV;
- }
- }
#endif
#endif
@@ -953,35 +948,41 @@ static int mipi_power_samsung_common(voi
return 0;
}
-static int mipi_dsi_power_samsung(int on)
+static int mipi_dsi_power_samsung_oled(int on)
{
- if (on)
- mipi_dsi_power(1);
- else
- mipi_dsi_power(0);
+ if (on) {
+#if defined(CONFIG_SUPPORT_DISPLAY_OCTA_TFT)
+ mipi_dsi_power_tft(1);
+#else
+ mipi_dsi_power_oled(1);
+#endif
+ } else {
+#if defined(CONFIG_SUPPORT_DISPLAY_OCTA_TFT)
+ mipi_dsi_power_tft(0);
+#else
+ mipi_dsi_power_oled(0);
+#endif
+ }
return 0;
}
#if defined(CONFIG_SUPPORT_SECOND_POWER)
-static int mipi_panel_power_samsung(int on)
+static int mipi_panel_power_samsung_oled(int on)
{
int rc;
rc = 0;
#ifdef CONFIG_SUPPORT_DISPLAY_OCTA_TFT
- if (on)
- rc = mipi_panel_power_tft(1);
- else
- rc = mipi_panel_power_tft(0);
+ return rc;
#else
- if (on)
- rc = mipi_panel_power_oled(1);
- else
- rc = mipi_panel_power_oled(0);
-
-#endif
+ if (on) {
+ mipi_panel_power_oled(1);
+ } else {
+ mipi_panel_power_oled(0);
+ }
return rc;
+#endif
}
#endif
@@ -989,9 +990,9 @@ static char mipi_dsi_splash_is_enabled(v
static struct mipi_dsi_platform_data mipi_dsi_pdata = {
.power_common = mipi_power_samsung_common,
- .dsi_power_save = mipi_dsi_power_samsung,
+ .dsi_power_save = mipi_dsi_power_samsung_oled,
#if defined(CONFIG_SUPPORT_SECOND_POWER)
- .panel_power_save = mipi_panel_power_samsung,
+ .panel_power_save = mipi_panel_power_samsung_oled,
#endif
.splash_is_enabled = mipi_dsi_splash_is_enabled,
.active_reset = active_reset,
file:7b51b965b9b763e8abb357ddfe07e737eed367f9 -> file:940291c86124de69a0079d0b88cd82a0f8d4cd57
--- a/arch/arm/mach-msm/board-8064-storage.c
+++ b/arch/arm/mach-msm/board-8064-storage.c
@@ -634,7 +634,7 @@ void __init apq8064_init_mmc(void)
#if defined(CONFIG_MACH_JF_ATT) || defined(CONFIG_MACH_JF_TMO) || defined(CONFIG_MACH_JF_EUR) || \
defined(CONFIG_MACH_JF_DCM)
if (system_rev >= BOARD_REV09 && apq8064_sdc2_pdata) {
-#elif defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
+#elif defined(CONFIG_MACH_JACTIVE_EUR)
if (system_rev < BOARD_REV05 && apq8064_sdc2_pdata) {
#else /* VZW/SPT/USCC */
if (system_rev >= BOARD_REV10 && apq8064_sdc2_pdata) {
@@ -644,7 +644,7 @@ void __init apq8064_init_mmc(void)
}
#if defined(CONFIG_MACH_JF_ATT) || defined(CONFIG_MACH_JF_TMO) || defined(CONFIG_MACH_JF_EUR) || \
- defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
+ defined(CONFIG_MACH_JACTIVE_ATT)
if (system_rev < BOARD_REV08 && apq8064_sdc4_pdata)
#else /* VZW/SPT/USCC */
if (system_rev < BOARD_REV09 && apq8064_sdc4_pdata)
file:5e655069f8f76e81772d1e00a8ac6538f14f391e -> file:8b3be2a7fa3745cf9666a1fe11e60e22ad412d42
--- a/arch/arm/mach-msm/board-jactive_att-gpiomux.c
+++ b/arch/arm/mach-msm/board-jactive_att-gpiomux.c
@@ -1525,8 +1525,9 @@ void __init apq8064_init_gpiomux(void)
msm_gpiomux_install(mpq8064_ir_configs,
ARRAY_SIZE(mpq8064_ir_configs));
- msm_gpiomux_install(msm8064_sd_det_config,
- ARRAY_SIZE(msm8064_sd_det_config));
+ if (system_rev < BOARD_REV09)
+ msm_gpiomux_install(msm8064_sd_det_config,
+ ARRAY_SIZE(msm8064_sd_det_config));
#if defined(CONFIG_VIDEO_MHL_V2)
msm_gpiomux_install(msm8960_mhl_configs,
file:82f123f55442ccee3223babf15c00aa65aa71093 -> file:bd520c5d2c684a1e22d921a187869521fb5f308d
--- a/arch/arm/mach-msm/board-jactive_att.c
+++ b/arch/arm/mach-msm/board-jactive_att.c
@@ -1174,6 +1174,35 @@ static struct i2c_board_info touchkey_i2
},
};
+
+static struct i2c_gpio_platform_data cypress_touchkey_i2c_gpio_data = {
+ .sda_pin = GPIO_TOUCHKEY_SDA,
+ .scl_pin = GPIO_TOUCHKEY_SCL,
+ .udelay = 0,
+ .sda_is_open_drain = 0,
+ .scl_is_open_drain = 0,
+ .scl_is_output_only = 0,
+};
+static struct platform_device touchkey_i2c_gpio_device = {
+ .name = "i2c-gpio",
+ .id = MSM_TOUCHKEY_I2C_BUS_ID,
+ .dev.platform_data = &cypress_touchkey_i2c_gpio_data,
+};
+
+static struct i2c_gpio_platform_data cypress_touchkey_i2c_gpio_data_2 = {
+ .sda_pin = GPIO_TOUCHKEY_SDA,
+ .scl_pin = GPIO_TOUCHKEY_SCL_2,
+ .udelay = 0,
+ .sda_is_open_drain = 0,
+ .scl_is_open_drain = 0,
+ .scl_is_output_only = 0,
+};
+static struct platform_device touchkey_i2c_gpio_device_2 = {
+ .name = "i2c-gpio",
+ .id = MSM_TOUCHKEY_I2C_BUS_ID,
+ .dev.platform_data = &cypress_touchkey_i2c_gpio_data_2,
+};
+
#endif
static int apq8064_change_memory_power(u64 start, u64 size,
@@ -1930,11 +1959,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -1942,6 +1972,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -1977,6 +2008,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
@@ -5168,6 +5200,13 @@ static void __init apq8064_common_init(v
platform_add_devices(common_not_mpq_devices,
ARRAY_SIZE(common_not_mpq_devices));
+#ifdef CONFIG_KEYBOARD_CYPRESS_TOUCH_236
+ if (system_rev < 9)
+ platform_device_register(&touchkey_i2c_gpio_device);
+ else
+ platform_device_register(&touchkey_i2c_gpio_device_2);
+#endif
+
enable_ddr3_regulator();
msm_hsic_pdata.swfi_latency =
msm_rpmrs_levels[0].latency_us;
@@ -5214,8 +5253,12 @@ static void __init apq8064_common_init(v
#if defined(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) || defined(CONFIG_TOUCHSCREEN_ATMEL_MXTS)
printk(KERN_DEBUG"[TSP] System revision, LPM mode : %d %d\n",
system_rev, poweroff_charging);
- if (!poweroff_charging)
- S5000_tsp_input_init(lcd_tsp_panel_version);
+ if (!poweroff_charging) {
+ if (sec_tsp_synaptics_mode)
+ S5000_tsp_input_init(lcd_tsp_panel_version);
+ else
+ mxt540s_tsp_input_init();
+ }
#endif
#if defined(CONFIG_VIDEO_MHL_V2)
file:2eb2aba977fbef525bd767cc658cee9c4c29154e -> file:44b6d8cd3fd33b9f0e3abf30bd05c035d83eb283
--- a/arch/arm/mach-msm/board-jactive_eur.c
+++ b/arch/arm/mach-msm/board-jactive_eur.c
@@ -2087,38 +2087,32 @@ static void bcm2079x_sw_i2c_config(void)
GPIO_CFG_NO_PULL, GPIO_CFG_2MA), 1);
}
#endif
-#define GPIO_NFC_FIRMWARE_AP 12
static int __init bcm2079x_init(void)
{
struct pm_gpio nfc_irq_cfg = {
.direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
};
struct pm_gpio nfc_en_cfg = {
.direction = PM_GPIO_DIR_OUT,
- .pull = PM_GPIO_PULL_DN,
+ .pull = PM_GPIO_PULL_UP_31P5,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
};
struct pm_gpio nfc_firmware_cfg = {
.direction = PM_GPIO_DIR_OUT,
- .pull = PM_GPIO_PULL_NO,
+ .pull = PM_GPIO_PULL_UP_31P5,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
};
pm8xxx_gpio_config(GPIO_NFC_IRQ, &nfc_irq_cfg);
pm8xxx_gpio_config(GPIO_NFC_EN, &nfc_en_cfg);
- if (system_rev > BOARD_REV13)
- gpio_tlmm_config(GPIO_CFG(GPIO_NFC_FIRMWARE_AP, 0,
- GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL,
- GPIO_CFG_2MA), 1);
- else
- pm8xxx_gpio_config(GPIO_NFC_FIRMWARE, &nfc_firmware_cfg);
+ pm8xxx_gpio_config(GPIO_NFC_FIRMWARE, &nfc_firmware_cfg);
#ifdef NFC_SW_I2C
bcm2079x_sw_i2c_config();
#endif
@@ -2143,7 +2137,7 @@ static struct platform_device bcm2079x_i
static struct bcm2079x_platform_data bcm2079x_i2c_pdata = {
.irq_gpio = GPIO_NFC_IRQ,
.en_gpio = GPIO_NFC_EN,
- .wake_gpio = GPIO_NFC_FIRMWARE_AP,
+ .wake_gpio = GPIO_NFC_FIRMWARE,
};
static struct i2c_board_info nfc_bcm2079x_info[] __initdata = {
@@ -4257,6 +4251,15 @@ static struct gpio_keys_button gpio_keys
.debounce_interval = 5,
},
{
+ .code = KEY_HOMEPAGE,
+ .gpio = GPIO_KEY_HOME,
+ .desc = "home_key",
+ .active_low = 1,
+ .type = EV_KEY,
+ .wakeup = 1,
+ .debounce_interval = 5,
+ },
+ {
.code = KEY_MENU,
.gpio = GPIO_KEY_MENU,
.desc = "menu_key",
@@ -4274,15 +4277,6 @@ static struct gpio_keys_button gpio_keys
.wakeup = 0,
.debounce_interval = 5,
},
- {
- .code = KEY_HOMEPAGE,
- .gpio = GPIO_KEY_HOME,
- .desc = "home_key",
- .active_low = 1,
- .type = EV_KEY,
- .wakeup = 1,
- .debounce_interval = 5,
- },
};
static struct gpio_keys_platform_data gpio_keys_data = {
@@ -5141,11 +5135,6 @@ static void __init apq8064_gpio_keys_ini
pm8xxx_gpio_config(GPIO_KEY_BACK, &param);
}
-static void __init nfc_gpio_rev_init(void)
-{
- if (system_rev < BOARD_REV14)
- bcm2079x_i2c_pdata.wake_gpio = GPIO_NFC_FIRMWARE;
-}
static void __init samsung_jf_init(void)
{
#ifdef CONFIG_SEC_DEBUG
@@ -5202,7 +5191,6 @@ static void __init samsung_jf_init(void)
#endif
#ifdef CONFIG_BCM2079X_NFC_I2C
bcm2079x_init();
- nfc_gpio_rev_init();
#endif
change_memory_power = &apq8064_change_memory_power;
file:76a69f6a5e2c707eced46cff07acc098ec48e4a8 -> file:cac88b2dcd707782b1cd2686e66affa7f9dff8eb
--- a/arch/arm/mach-msm/board-jf_att.c
+++ b/arch/arm/mach-msm/board-jf_att.c
@@ -1993,11 +1993,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -2005,6 +2006,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -2040,6 +2042,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
file:91a7f5027e18eed75209cb5c9645b484f63e2076 -> file:118d67c97f12668fdc5dbab6269c5e4a3b01124f
--- a/arch/arm/mach-msm/board-jf_cri.c
+++ b/arch/arm/mach-msm/board-jf_cri.c
@@ -1925,11 +1925,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -1937,6 +1938,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -1972,6 +1974,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
file:09278c2dce46fbc63ffc421ac5859b885f542147 -> file:594370a1d40d723f708e0dc2e5c6815b3166a2b2
--- a/arch/arm/mach-msm/board-jf_dcm.c
+++ b/arch/arm/mach-msm/board-jf_dcm.c
@@ -1917,46 +1917,6 @@ struct pm8xxx_mpp_config_data mpp4_cfg =
#define MPP_MCU_NRST PM8921_MPP_PM_TO_SYS(4)
-static void clear_ssp_gpio(void)
-{
- struct pm_gpio ap_mcu_int_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
- .vin_sel = 2,
- .function = PM_GPIO_FUNC_NORMAL,
- .inv_int_pol = 0,
- };
- struct pm_gpio mcu_ap_int_2_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
- .vin_sel = 2,
- .function = PM_GPIO_FUNC_NORMAL,
- .inv_int_pol = 0,
- };
- struct pm_gpio mcu_ap_int_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
- .vin_sel = 2,
- .function = PM_GPIO_FUNC_NORMAL,
- .inv_int_pol = 0,
- };
- struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
- .vin_sel = 2,
- .function = PM_GPIO_FUNC_NORMAL,
- .inv_int_pol = 0,
- };
-
- pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
- pm8xxx_gpio_config(GPIO_MCU_AP_INT, &mcu_ap_int_cfg);
- pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
- if (system_rev >= 5)
- pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
- mdelay(1);
- pr_info("[SSP] %s done\n", __func__);
-}
-
static int initialize_ssp_gpio(void)
{
int err;
@@ -5575,7 +5535,6 @@ static void __init samsung_jf_init(void)
apq8064_init_cam();
#endif
#ifdef CONFIG_SENSORS_SSP
- clear_ssp_gpio();
sensor_power_on_vdd(SNS_PWR_ON, SNS_PWR_ON);
initialize_ssp_gpio();
#endif
file:847d0a6186dc7949cea98ef57b2725d8bb6cc652 -> file:bccf47f75359cc93ab694388b2a7bf6b1585d2c5
--- a/arch/arm/mach-msm/board-jf_eur.c
+++ b/arch/arm/mach-msm/board-jf_eur.c
@@ -1594,7 +1594,7 @@ struct sii8240_platform_data sii8240_pda
.power = sii8240_hw_onoff,
.hw_reset = sii8240_hw_reset,
.gpio_cfg = mhl_gpio_config,
- .swing_level = 0x26,
+ .swing_level = 0x36,
.vbus_present = muic77693_mhl_cb,
};
@@ -1957,11 +1957,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -1969,6 +1970,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -2004,6 +2006,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
@@ -2125,9 +2128,7 @@ static int ssp_check_changes(void)
*/
static void ssp_get_positions(int *acc, int *mag)
{
- if (system_rev == BOARD_REV13)
- *acc = MPU6500_TOP_RIGHT_UPPER;
- else if (system_rev > BOARD_REV09)
+ if (system_rev > BOARD_REV09)
*acc = K330_TOP_LEFT_UPPER;
else if (system_rev > BOARD_REV04)
*acc = MPU6500_TOP_RIGHT_UPPER;
file:d92096991645e9b4f0fdf20d7fd8978a906e2a97 -> file:a7f62d55930b12b1d805f6f5eeeb6e7e4764f1dc
--- a/arch/arm/mach-msm/board-jf_spr.c
+++ b/arch/arm/mach-msm/board-jf_spr.c
@@ -1928,11 +1928,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -1940,6 +1941,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -1975,6 +1977,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
file:8248b4e9fca1ed1a584428a2e7aae4f7131c0e0e -> file:084041fd493cb5ff0331c7748f6d36579a934e27
--- a/arch/arm/mach-msm/board-jf_tmo.c
+++ b/arch/arm/mach-msm/board-jf_tmo.c
@@ -1930,11 +1930,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -1942,6 +1943,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -1977,6 +1979,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
file:a29682724fd76b4535aff2ab1e6cb64f8cc942da -> file:c96933f357d8b7adadd16e01ec224ff5a0ea94eb
--- a/arch/arm/mach-msm/board-jf_usc.c
+++ b/arch/arm/mach-msm/board-jf_usc.c
@@ -1927,11 +1927,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -1939,6 +1940,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -1974,6 +1976,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
file:bc5159cfb0d9168a2c853e3f57c24836480147ac -> file:1e33c17d2326808f0712855c7a15df6d1f366df0
--- a/arch/arm/mach-msm/board-jf_vzw.c
+++ b/arch/arm/mach-msm/board-jf_vzw.c
@@ -1928,11 +1928,12 @@ static void clear_ssp_gpio(void)
.inv_int_pol = 0,
};
struct pm_gpio ap_mcu_nrst_cfg = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_DN,
+ .direction = PM_GPIO_DIR_OUT,
+ .pull = PM_GPIO_PULL_NO,
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pm8xxx_gpio_config(GPIO_AP_MCU_INT, &ap_mcu_int_cfg);
@@ -1940,6 +1941,7 @@ static void clear_ssp_gpio(void)
pm8xxx_gpio_config(GPIO_MCU_AP_INT_2, &mcu_ap_int_2_cfg);
if (system_rev >= 5)
pm8xxx_gpio_config(GPIO_MCU_NRST, &ap_mcu_nrst_cfg);
+ gpio_set_value_cansleep(GPIO_MCU_NRST, 0);
mdelay(1);
pr_info("[SSP] %s done\n", __func__);
}
@@ -1975,6 +1977,7 @@ static int initialize_ssp_gpio(void)
.vin_sel = 2,
.function = PM_GPIO_FUNC_NORMAL,
.inv_int_pol = 0,
+ .out_strength = PM_GPIO_STRENGTH_HIGH,
};
pr_info("[SSP]%s\n", __func__);
file:68e30ef7db41e21d6a4af77f8266a4e7fc3b181b -> file:cfd0f7e65dc6e0b9fce490d7a4be908e044cdbc1
--- a/arch/arm/mach-msm/board-s5000-tsp.c
+++ b/arch/arm/mach-msm/board-s5000-tsp.c
@@ -165,13 +165,8 @@ static struct synaptics_rmi_f1a_button_m
#define SYNAPTICS_MAX_X_SIZE 1079
#define SYNAPTICS_MAX_Y_SIZE 1919
#define SYNAPTICS_MAX_WIDTH SYNAPTICS_MAX_Y_SIZE
-#if defined(CONFIG_MACH_JACTIVE_EUR)
-#define NUM_RX 16
-#define NUM_TX 28
-#else
#define NUM_RX 28
#define NUM_TX 16
-#endif
static struct synaptics_rmi4_platform_data rmi4_platformdata = {
/*.irq_type = IRQF_TRIGGER_FALLING,*/
file:82d81170b9912fa7d2a365477301f1ba579f236e -> file:b45efadf510950e68760d1514054745974ab5e49
--- a/arch/arm/mach-msm/msm_bus/msm_bus_board_8064.c
+++ b/arch/arm/mach-msm/msm_bus/msm_bus_board_8064.c
@@ -439,6 +439,7 @@ static struct msm_bus_node_info system_f
static int mport_mdp[] = {
MSM_BUS_MASTER_PORT_MDP_PORT0,
+ MSM_BUS_MASTER_PORT_MDP_PORT1,
};
static int mport_mdp1[] = {MSM_BUS_MASTER_PORT_MDP_PORT1,};
static int mport_rotator[] = {MSM_BUS_MASTER_PORT_ROTATOR,};
file:adc2d2ff3310a17fb7b451cf006ab8f35f8dcab1 -> file:045dee6010356f9a563d4a9910316670ed7104c0
--- a/arch/arm/mach-msm/socinfo.c
+++ b/arch/arm/mach-msm/socinfo.c
@@ -325,52 +325,7 @@ char *socinfo_get_build_id(void)
{
return (socinfo) ? socinfo->v1.build_id : NULL;
}
-#ifdef CONFIG_PVS_IDDQ_FACTORY
-uint32_t socinfo_get_iddq(void)
-{
- void __iomem *pte_efuse;
- uint32_t pte_efuse_val;
- uint32_t qfprom_iddq;
-
- pte_efuse = ioremap(0x007000C4, 4);
- if (!pte_efuse) {
- pr_err("%s : Unable to map QFPROM base\n", __func__);
- return 0;
- }
-
- pte_efuse_val = readl_relaxed(pte_efuse);
- iounmap(pte_efuse);
- qfprom_iddq = pte_efuse_val & 0xFFFFFFFF;
-
- return qfprom_iddq;
-}
-
-uint32_t socinfo_get_pvs(void)
-{
- void __iomem *pte_efuse;
- uint32_t pte_efuse_val;
- uint32_t pvs_bin;
-
- pte_efuse = ioremap(0x007000C0, 4);
- if (!pte_efuse) {
- pr_err("%s : Unable to map QFPROM base\n", __func__);
- return 0;
- }
-
- pte_efuse_val = readl_relaxed(pte_efuse);
- iounmap(pte_efuse);
-
- pvs_bin = (pte_efuse_val >> 10) & 0x7;
- if (pvs_bin == 0x7)
- pvs_bin = (pte_efuse_val >> 13) & 0x7;
-
- if (pvs_bin == 0x7)
- pvs_bin = 0;
-
- return pvs_bin;
-}
-#endif
uint32_t socinfo_get_raw_id(void)
{
return socinfo ?
@@ -480,34 +435,8 @@ socinfo_show_build_id(struct sys_device
return snprintf(buf, PAGE_SIZE, "%-.32s\n", socinfo_get_build_id());
}
-#ifdef CONFIG_PVS_IDDQ_FACTORY
-static ssize_t
-socinfo_show_soc_iddq(struct sys_device *dev,
- struct sysdev_attribute *attr,
- char *buf)
-{
- if (!socinfo) {
- pr_err("%s: No socinfo found!\n", __func__);
- return 0;
- }
-
- return snprintf(buf, PAGE_SIZE, "%x\n", socinfo_get_iddq());
-}
static ssize_t
-socinfo_show_soc_pvs(struct sys_device *dev,
- struct sysdev_attribute *attr,
- char *buf)
-{
- if (!socinfo) {
- pr_err("%s: No socinfo found!\n", __func__);
- return 0;
- }
-
- return snprintf(buf, PAGE_SIZE, "%x\n", socinfo_get_pvs());
-}
-#endif
-static ssize_t
socinfo_show_raw_id(struct sys_device *dev,
struct sysdev_attribute *attr,
char *buf)
@@ -669,10 +598,6 @@ static struct sysdev_attribute socinfo_v
_SYSDEV_ATTR(id, 0444, socinfo_show_id, NULL),
_SYSDEV_ATTR(version, 0444, socinfo_show_version, NULL),
_SYSDEV_ATTR(build_id, 0444, socinfo_show_build_id, NULL),
-#ifdef CONFIG_PVS_IDDQ_FACTORY
- _SYSDEV_ATTR(soc_iddq, 0444, socinfo_show_soc_iddq, NULL),
- _SYSDEV_ATTR(soc_pvs, 0444, socinfo_show_soc_pvs, NULL),
-#endif
};
static struct sysdev_attribute socinfo_v2_files[] = {
file:86629ddca368c78f30f998a4dba85a8b8577a3f2 -> file:cb947bcba5330d385e8fe4353f37a8814bab68d9
--- a/drivers/battery/max77693_charger.c
+++ b/drivers/battery/max77693_charger.c
@@ -729,16 +729,10 @@ static int sec_chg_set_property(struct p
cancel_delayed_work_sync(&charger->wpc_work);
/* recheck after cancel_delayed_work_sync */
if (charger->wc_w_state) {
- union power_supply_propval cable_type;
- psy_do_property("battery", get,
- POWER_SUPPLY_PROP_ONLINE, cable_type);
wake_lock(&charger->wpc_wake_lock);
queue_delayed_work(charger->wqueue, &charger->wpc_work,
- msecs_to_jiffies(500));
- if (cable_type.intval != POWER_SUPPLY_TYPE_WIRELESS) {
- charger->wc_w_state = 0;
- pr_err("%s:cable removed,wireless connected\n", __func__);
- }
+ msecs_to_jiffies(0));
+ charger->wc_w_state = 0;
}
}
} else {
file:60b3c538e40c8e4f211f45caf53b2328e59118b0 -> file:985c2f02dcf1d20e5f42234e100531fd99c6f6ba
--- a/drivers/battery/sec_battery.c
+++ b/drivers/battery/sec_battery.c
@@ -2943,16 +2943,6 @@ static int __devinit sec_battery_probe(s
pdata->initial_check();
battery->present = battery->pdata->check_battery_callback();
-#ifdef CONFIG_SAMSUNG_BATTERY_FACTORY
- /* do not sleep in lpm mode & factory mode */
- if (battery->pdata->is_lpm()) {
- wake_lock_init(&battery->lpm_wake_lock, WAKE_LOCK_SUSPEND,
- "sec-lpm-monitor");
- wake_lock(&battery->lpm_wake_lock);
- }
-#endif
-
-
dev_dbg(battery->dev,
"%s: SEC Battery Driver Loaded\n", __func__);
return 0;
file:b84c219fbd437989805a261dd7b76fa3c9e0c21c -> file:207ec5f4ca7d08bdaf61aad849392c599bb35ccc
--- a/drivers/bluetooth/bluesleep.c
+++ b/drivers/bluetooth/bluesleep.c
@@ -285,8 +285,6 @@ static void bluesleep_sleep_work(struct
/*Deactivating UART */
hsuart_power(0);
- clear_bit(BT_EXT_WAKE, &flags);
-
/*Deactivating UART */
/* UART clk is not turned off immediately. Release
* wakelock after 500 ms.
@@ -484,7 +482,7 @@ static void bluesleep_tx_timer_expire(un
{
bluesleep_tx_timer_expired();
}
- //clear_bit(BT_EXT_WAKE, &flags);
+ clear_bit(BT_EXT_WAKE, &flags);
bluesleep_tx_idle();
} else {
BT_DBG("Tx data during last period");
file:9cb746fb6728a2b61f254ff2681996744443ced9 -> file:95750ddaa43a634f4b12d371646542ff46648e98
--- a/drivers/char/diag/diagchar_core.c
+++ b/drivers/char/diag/diagchar_core.c
@@ -351,7 +351,7 @@ void diag_clear_reg(int proc_num)
}
void diag_add_reg(int j, struct bindpkt_params *params,
- int *success, int *count_entries)
+ int *success, unsigned int *count_entries)
{
*success = 1;
driver->table[j].cmd_code = params->cmd_code;
@@ -376,79 +376,153 @@ void diag_add_reg(int j, struct bindpkt_
long diagchar_ioctl(struct file *filp,
unsigned int iocmd, unsigned long ioarg)
{
- int i, j, count_entries = 0, temp;
- int success = -1;
+ int i, j, temp, success = -1, status;
+ unsigned int count_entries = 0, interim_count = 0;
void *temp_buf;
uint16_t support_list = 0;
- struct diag_dci_client_tbl *params =
- kzalloc(sizeof(struct diag_dci_client_tbl), GFP_KERNEL);
+ struct diag_dci_client_tbl *dci_params;
struct diag_dci_health_stats stats;
- int status;
if (iocmd == DIAG_IOCTL_COMMAND_REG) {
- struct bindpkt_params_per_process *pkt_params =
- (struct bindpkt_params_per_process *) ioarg;
+ struct bindpkt_params_per_process pkt_params;
+ struct bindpkt_params *params;
+ struct bindpkt_params *head_params;
+ if (copy_from_user(&pkt_params, (void *)ioarg,
+ sizeof(struct bindpkt_params_per_process))) {
+ return -EFAULT;
+ }
+ if ((UINT32_MAX/sizeof(struct bindpkt_params)) <
+ pkt_params.count) {
+ pr_warning("diag: integer overflow while multiply\n");
+ return -EFAULT;
+ }
+ params = kzalloc(pkt_params.count*sizeof(
+ struct bindpkt_params), GFP_KERNEL);
+ if (!params) {
+ pr_err("diag: unable to alloc memory\n");
+ return -ENOMEM;
+ } else
+ head_params = params;
+
+ if (copy_from_user(params, pkt_params.params,
+ pkt_params.count*sizeof(struct bindpkt_params))) {
+ kfree(head_params);
+ return -EFAULT;
+ }
mutex_lock(&driver->diagchar_mutex);
for (i = 0; i < diag_max_reg; i++) {
if (driver->table[i].process_id == 0) {
- diag_add_reg(i, pkt_params->params,
- &success, &count_entries);
- if (pkt_params->count > count_entries) {
- pkt_params->params++;
+ diag_add_reg(i, params, &success,
+ &count_entries);
+ if (pkt_params.count > count_entries) {
+ params++;
} else {
mutex_unlock(&driver->diagchar_mutex);
+ kfree(head_params);
return success;
}
}
}
if (i < diag_threshold_reg) {
/* Increase table size by amount required */
- diag_max_reg += pkt_params->count -
+ if (pkt_params.count >= count_entries) {
+ interim_count = pkt_params.count -
count_entries;
+ } else {
+ pr_warning("diag: error in params count\n");
+ kfree(head_params);
+ mutex_unlock(&driver->diagchar_mutex);
+ return -EFAULT;
+ }
+ if (UINT32_MAX - diag_max_reg >=
+ interim_count) {
+ diag_max_reg += interim_count;
+ } else {
+ pr_warning("diag: Integer overflow\n");
+ kfree(head_params);
+ mutex_unlock(&driver->diagchar_mutex);
+ return -EFAULT;
+ }
/* Make sure size doesnt go beyond threshold */
if (diag_max_reg > diag_threshold_reg) {
diag_max_reg = diag_threshold_reg;
pr_info("diag: best case memory allocation\n");
}
+ if (UINT32_MAX/sizeof(struct diag_master_table) <
+ diag_max_reg) {
+ pr_warning("diag: integer overflow\n");
+ kfree(head_params);
+ mutex_unlock(&driver->diagchar_mutex);
+ return -EFAULT;
+ }
temp_buf = krealloc(driver->table,
diag_max_reg*sizeof(struct
diag_master_table), GFP_KERNEL);
if (!temp_buf) {
- diag_max_reg -= pkt_params->count -
- count_entries;
- pr_alert("diag: Insufficient memory for reg.");
+ pr_alert("diag: Insufficient memory for reg.\n");
mutex_unlock(&driver->diagchar_mutex);
+
+ if (pkt_params.count >= count_entries) {
+ interim_count = pkt_params.count -
+ count_entries;
+ } else {
+ pr_warning("diag: params count error\n");
+ mutex_unlock(&driver->diagchar_mutex);
+ kfree(head_params);
+ return -EFAULT;
+ }
+ if (diag_max_reg >= interim_count) {
+ diag_max_reg -= interim_count;
+ } else {
+ pr_warning("diag: Integer underflow\n");
+ mutex_unlock(&driver->diagchar_mutex);
+ kfree(head_params);
+ return -EFAULT;
+ }
+ kfree(head_params);
return 0;
} else {
driver->table = temp_buf;
}
for (j = i; j < diag_max_reg; j++) {
- diag_add_reg(j, pkt_params->params,
- &success, &count_entries);
- if (pkt_params->count > count_entries) {
- pkt_params->params++;
+ diag_add_reg(j, params, &success,
+ &count_entries);
+ if (pkt_params.count > count_entries) {
+ params++;
} else {
mutex_unlock(&driver->diagchar_mutex);
+ kfree(head_params);
return success;
}
}
+ kfree(head_params);
mutex_unlock(&driver->diagchar_mutex);
} else {
mutex_unlock(&driver->diagchar_mutex);
+ kfree(head_params);
pr_err("Max size reached, Pkt Registration failed for"
" Process %d", current->tgid);
}
success = 0;
} else if (iocmd == DIAG_IOCTL_GET_DELAYED_RSP_ID) {
- struct diagpkt_delay_params *delay_params =
- (struct diagpkt_delay_params *) ioarg;
-
- if ((delay_params->rsp_ptr) &&
- (delay_params->size == sizeof(delayed_rsp_id)) &&
- (delay_params->num_bytes_ptr)) {
- *((uint16_t *)delay_params->rsp_ptr) =
- DIAGPKT_NEXT_DELAYED_RSP_ID(delayed_rsp_id);
- *(delay_params->num_bytes_ptr) = sizeof(delayed_rsp_id);
+ struct diagpkt_delay_params delay_params;
+ uint16_t interim_rsp_id;
+ int interim_size;
+ if (copy_from_user(&delay_params, (void *)ioarg,
+ sizeof(struct diagpkt_delay_params)))
+ return -EFAULT;
+ if ((delay_params.rsp_ptr) &&
+ (delay_params.size == sizeof(delayed_rsp_id)) &&
+ (delay_params.num_bytes_ptr)) {
+ interim_rsp_id = DIAGPKT_NEXT_DELAYED_RSP_ID(
+ delayed_rsp_id);
+ if (copy_to_user((void *)delay_params.rsp_ptr,
+ &interim_rsp_id, sizeof(uint16_t)))
+ return -EFAULT;
+ interim_size = sizeof(delayed_rsp_id);
+ if (copy_to_user((void *)delay_params.num_bytes_ptr,
+ &interim_size, sizeof(int)))
+ return -EFAULT;
success = 0;
}
} else if (iocmd == DIAG_IOCTL_DCI_REG) {
@@ -456,7 +530,13 @@ long diagchar_ioctl(struct file *filp,
return DIAG_DCI_NO_REG;
if (driver->num_dci_client >= MAX_DCI_CLIENTS)
return DIAG_DCI_NO_REG;
- if (copy_from_user(params, (void *)ioarg,
+ dci_params = kzalloc(sizeof(struct diag_dci_client_tbl),
+ GFP_KERNEL);
+ if (dci_params == NULL) {
+ pr_err("diag: unable to alloc memory\n");
+ return -ENOMEM;
+ }
+ if (copy_from_user(dci_params, (void *)ioarg,
sizeof(struct diag_dci_client_tbl)))
return -EFAULT;
mutex_lock(&driver->dci_mutex);
@@ -469,9 +549,9 @@ long diagchar_ioctl(struct file *filp,
if (driver->dci_client_tbl[i].client == NULL) {
driver->dci_client_tbl[i].client = current;
driver->dci_client_tbl[i].list =
- params->list;
+ dci_params->list;
driver->dci_client_tbl[i].signal_type =
- params->signal_type;
+ dci_params->signal_type;
create_dci_log_mask_tbl(driver->
dci_client_tbl[i].dci_log_mask);
create_dci_event_mask_tbl(driver->
@@ -489,6 +569,7 @@ long diagchar_ioctl(struct file *filp,
}
}
mutex_unlock(&driver->dci_mutex);
+ kfree(dci_params);
return driver->dci_client_id;
} else if (iocmd == DIAG_IOCTL_DCI_DEINIT) {
success = -1;
@@ -513,25 +594,29 @@ long diagchar_ioctl(struct file *filp,
} else if (iocmd == DIAG_IOCTL_DCI_SUPPORT) {
if (driver->ch_dci)
support_list = support_list | DIAG_CON_MPSS;
- *(uint16_t *)ioarg = support_list;
+ if (copy_to_user((void *)ioarg, &support_list,
+ sizeof(uint16_t)))
+ return -EFAULT;
return DIAG_DCI_NO_ERROR;
} else if (iocmd == DIAG_IOCTL_DCI_HEALTH_STATS) {
if (copy_from_user(&stats, (void *)ioarg,
sizeof(struct diag_dci_health_stats)))
return -EFAULT;
for (i = 0; i < MAX_DCI_CLIENTS; i++) {
- params = &(driver->dci_client_tbl[i]);
- if (params->client &&
- params->client->tgid == current->tgid) {
- stats.dropped_logs = params->dropped_logs;
- stats.dropped_events = params->dropped_events;
- stats.received_logs = params->received_logs;
- stats.received_events = params->received_events;
+ dci_params = &(driver->dci_client_tbl[i]);
+ if (dci_params->client &&
+ dci_params->client->tgid == current->tgid) {
+ stats.dropped_logs = dci_params->dropped_logs;
+ stats.dropped_events =
+ dci_params->dropped_events;
+ stats.received_logs = dci_params->received_logs;
+ stats.received_events =
+ dci_params->received_events;
if (stats.reset_status) {
- params->dropped_logs = 0;
- params->dropped_events = 0;
- params->received_logs = 0;
- params->received_events = 0;
+ dci_params->dropped_logs = 0;
+ dci_params->dropped_events = 0;
+ dci_params->received_logs = 0;
+ dci_params->received_events = 0;
}
break;
}
@@ -544,7 +629,7 @@ long diagchar_ioctl(struct file *filp,
for (i = 0; i < driver->num_clients; i++)
if (driver->client_map[i].pid == current->tgid)
break;
- if (i == -1)
+ if (i == driver->num_clients)
return -EINVAL;
driver->data_ready[i] |= DEINIT_TYPE;
wake_up_interruptible(&driver->wait_q);
@@ -1026,7 +1111,7 @@ static int diagchar_write(struct file *f
struct diag_send_desc_type send = { NULL, NULL, DIAG_STATE_START, 0 };
struct diag_hdlc_dest_type enc = { NULL, NULL, 0 };
void *buf_copy = NULL;
- int payload_size;
+ unsigned int payload_size;
#ifdef CONFIG_DIAG_OVER_USB
if (((driver->logging_mode == USB_MODE) && (!driver->usb_connected)) ||
(driver->logging_mode == NO_LOGGING_MODE)) {
@@ -1037,8 +1122,17 @@ static int diagchar_write(struct file *f
/* Get the packet type F3/log/event/Pkt response */
err = copy_from_user((&pkt_type), buf, 4);
/* First 4 bytes indicate the type of payload - ignore these */
+ if (count < 4) {
+ pr_err("diag: Client sending short data\n");
+ return -EBADMSG;
+ }
payload_size = count - 4;
-
+ if (payload_size > USER_SPACE_DATA) {
+ pr_err("diag: Dropping packet, packet payload size crosses 8KB limit. Current payload size %d\n",
+ payload_size);
+ driver->dropped_count++;
+ return -EBADMSG;
+ }
if (pkt_type == DCI_DATA_TYPE) {
err = copy_from_user(driver->user_space_data, buf + 4,
payload_size);
file:d97eb9a9a65bac8111b1d6cce18f20bf674fb751 -> file:cd4fd12f63789d5f073e94af9655f153ff1b59ab
--- a/drivers/felica/felica.c
+++ b/drivers/felica/felica.c
@@ -1128,8 +1128,6 @@ static ssize_t felica_pon_read(struct fi
ret = gpio_get_value(GPIO_PINID_FELICA_PON);
#elif defined(CONFIG_ARCH_APQ8064)
ret = ice_gpiox_get(GPIO_PINID_FELICA_PON);
-#else
- ret = gpio_get_value(GPIO_PINID_FELICA_PON);
#endif
if (ret == GPIO_VALUE_HIGH) {
retparam = FELICA_PON_WIRED;
file:810eafcb847bdb82ea378b79db022600a27180e3 -> file:5457720fbd510afb16d2ea187ff143a9505178a8
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -440,7 +440,7 @@ static void gpio_keys_gpio_work_func(str
gpio_keys_gpio_report_event(bdata);
#ifdef KEY_BOOSTER
- if (button->code == KEY_HOMEPAGE)
+ if (button->code == KEY_HOME)
gpio_key_set_dvfs_lock(bdata, !!state);
#endif
}
@@ -959,6 +959,10 @@ static int __devinit gpio_keys_probe(str
error = gpio_keys_setup_key(pdev, input, bdata, button);
if (error)
goto fail2;
+
+ if (button->wakeup)
+ wakeup = 1;
+ }
#ifdef KEY_BOOSTER
error = gpio_key_init_dvfs(bdata);
if (error < 0) {
@@ -966,9 +970,6 @@ static int __devinit gpio_keys_probe(str
goto fail2;
}
#endif
- if (button->wakeup)
- wakeup = 1;
- }
error = sysfs_create_group(&pdev->dev.kobj, &gpio_keys_attr_group);
if (error) {
dev_err(dev, "Unable to export keys/switches, error: %d\n",
file:d560b989ea1f11116718798a2a3992e48b352ca8 -> file:877aa07a428a335c9f5bfa3bc83c627dc7951b43
--- a/drivers/input/touchscreen/rmi_f54.c
+++ b/drivers/input/touchscreen/rmi_f54.c
@@ -2173,11 +2173,7 @@ static void get_fw_ver_bin(void)
set_default_result(data);
sprintf(data->cmd_buff, "SY%02X%02X%02X",
rmi4_data->ic_revision_of_bin,
-#ifdef CONFIG_TOUCHSCREEN_FACTORY_PLATFORM
- rmi4_data->factory_read_panel_wakeup,
-#else
rmi4_data->board->panel_touch_type,
-#endif
rmi4_data->fw_version_of_bin);
set_cmd_result(data, data->cmd_buff, strlen(data->cmd_buff));
@@ -2194,11 +2190,7 @@ static void get_fw_ver_ic(void)
set_default_result(data);
sprintf(data->cmd_buff, "SY%02X%02X%02X",
rmi4_data->ic_revision_of_ic,
-#ifdef CONFIG_TOUCHSCREEN_FACTORY_PLATFORM
- rmi4_data->factory_read_panel_wakeup,
-#else
rmi4_data->board->panel_touch_type,
-#endif
rmi4_data->fw_version_of_ic);
set_cmd_result(data, data->cmd_buff, strlen(data->cmd_buff));
@@ -2216,14 +2208,9 @@ static void get_fac_fw_ver_bin(void)
const struct firmware *fw_entry = NULL;
set_default_result(data);
-#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
- retval = request_firmware(&fw_entry, FW_IMAGE_NAME_B0_HSYNC_FAC,
- &rmi4_data->i2c_client->dev);
-#else
+
retval = request_firmware(&fw_entry, FW_IMAGE_NAME_B0_FAC,
&rmi4_data->i2c_client->dev);
-#endif
-
if (retval < 0) {
dev_err(&rmi4_data->i2c_client->dev,
"%s: factory firmware request failed\n",
file:66c69da18039dfc57d30d628e8226eed4eff52d5 -> file:6522ed9337ffa8745c1407369dd52081fd3add68
--- a/drivers/input/touchscreen/rmi_fw_update.c
+++ b/drivers/input/touchscreen/rmi_fw_update.c
@@ -78,12 +78,6 @@
#define MIN_SLEEP_TIME_US 50
#define MAX_SLEEP_TIME_US 100
-#define STATUS_POLLING_PERIOD_US 3000
-
-#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
-#define FW_SUPPORT_HYNC(x) ((strncmp(x->product_id, "SY 03", 5))
-#define FW_NOT_SUPPORT_HYNC(x) ((strncmp(x->product_id, "SY 01", 5) == 0) || (strncmp(x->product_id, "S5000B", 6) == 0) || (strncmp(x->product_id, "SY 02", 5) == 0))
-#endif
static ssize_t fwu_sysfs_show_image(struct file *data_file,
struct kobject *kobj, struct bin_attribute *attributes,
@@ -210,7 +204,6 @@ struct synaptics_rmi4_fwu_handle {
char product_id[SYNAPTICS_RMI4_PRODUCT_ID_SIZE + 1];
const unsigned char *firmware_data;
const unsigned char *config_data;
- struct mutex status_mutex;
struct f34_flash_status flash_status;
struct synaptics_rmi4_fn_desc f01_fd;
struct synaptics_rmi4_fn_desc f34_fd;
@@ -404,8 +397,6 @@ static int fwu_read_f34_flash_status(voi
unsigned char status;
unsigned char command;
- mutex_lock(&(fwu->status_mutex));
-
retval = fwu->fn_ptr->read(fwu->rmi4_data,
fwu->f34_fd.data_base_addr + FLASH_STATUS_OFFSET,
&status,
@@ -414,7 +405,7 @@ static int fwu_read_f34_flash_status(voi
dev_err(&fwu->rmi4_data->i2c_client->dev,
"%s: Failed to read flash status\n",
__func__);
- goto exit;
+ return retval;
}
/* Program enabled bit not available - force bit to be set */
@@ -429,17 +420,12 @@ static int fwu_read_f34_flash_status(voi
dev_err(&fwu->rmi4_data->i2c_client->dev,
"%s: Failed to read flash command\n",
__func__);
- goto exit;
+ return retval;
}
fwu->command = command & MASK_4BIT;
- retval = 0;
-
-exit:
- mutex_unlock(&(fwu->status_mutex));
-
- return retval;
+ return 0;
}
static int fwu_write_f34_command(unsigned char cmd)
@@ -466,24 +452,14 @@ static int fwu_write_f34_command(unsigne
static int fwu_wait_for_idle(int timeout_ms)
{
int count = 0;
- int polling_period = STATUS_POLLING_PERIOD_US / MAX_SLEEP_TIME_US;
int timeout_count = ((timeout_ms * 1000) / MAX_SLEEP_TIME_US) + 1;
do {
usleep_range(MIN_SLEEP_TIME_US, MAX_SLEEP_TIME_US);
count++;
- if ((timeout_ms == WRITE_WAIT_MS) &&
- (count >= polling_period) &&
- ((count % polling_period) == 0)) {
- fwu_read_f34_flash_status();
- } else if (count == timeout_count) {
- dev_err(&fwu->rmi4_data->i2c_client->dev,
- "%s: wait usleep, in writing block [%d]\n",
- __func__, count);
-
+ if (count == timeout_count)
fwu_read_f34_flash_status();
- }
if ((fwu->command == 0x00) &&
(fwu->flash_status.status == 0x00))
@@ -961,52 +937,11 @@ static int fwu_start_reflash(bool mode,
memset(&fw_path, 0, SYNAPTICS_MAX_FW_PATH);
/* use factory test FW */
-#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
- if (factory_fw) {
- dev_info(&fwu->rmi4_data->i2c_client->dev,
- "%s: run fw update for FACTORY FIRMWARE\n",
- __func__);
- if (FW_NOT_SUPPORT_HYNC(fwu))
- snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
- "%s", FW_IMAGE_NAME_B0_NON_HSYNC_FAC);
- else
- snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
- "%s", FW_IMAGE_NAME_B0_HSYNC_FAC);
- } else {
- /* Read firmware according to ic revision */
- if ((fwu->rmi4_data->ic_revision_of_ic >> 4) == 0xB) {
- /* Read firmware according to panel ID */
- switch (fwu->rmi4_data->panel_revision) {
- case OCTA_PANEL_REVISION_34:
- if (FW_NOT_SUPPORT_HYNC(fwu))
- snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
- "%s", FW_IMAGE_NAME_B0_NON_HSYNC);
- else
- snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
- "%s", FW_IMAGE_NAME_B0_HSYNC);
- break;
- default:
- dev_info(&fwu->rmi4_data->i2c_client->dev,
- "%s: Do not request, not matched revision and FW.\n",
- __func__);
- goto out;
- }
- } else if ((fwu->rmi4_data->ic_revision_of_ic >> 4) == 0xA) {
- dev_info(&fwu->rmi4_data->i2c_client->dev,
- "%s: Do not request, not matched revision and FW.\n",
- __func__);
- goto out;
- } else { // force update when ic_revision_of_ic is NULL
- snprintf(fw_path, SYNAPTICS_MAX_FW_PATH, "%s", FW_IMAGE_NAME_B0_HSYNC);
- printk(KERN_ERR "%s, force update when ic_revision_of_ic is NULL\n", __func__);
- mode = true;
- }
- }
-#else
if (factory_fw) {
dev_info(&fwu->rmi4_data->i2c_client->dev,
"%s: run fw update for FACTORY FIRMWARE\n",
__func__);
+
if (fwu->rmi4_data->panel_revision < OCTA_PANEL_REVISION_51)
snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
"%s", FW_IMAGE_NAME_B0_FAC);
@@ -1050,8 +985,19 @@ static int fwu_start_reflash(bool mode,
snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
"%s", FW_IMAGE_NAME_B0_43);
}
- }
+#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
+ else // force update when ic_revision_of_ic is NULL
+ {
+ snprintf(fw_path, SYNAPTICS_MAX_FW_PATH, "%s", FW_IMAGE_NAME_B0_34);
+ printk(KERN_ERR "%s, force update when ic_revision_of_ic is NULL\n", __func__);
+ mode = true;
+ }
#endif
+ }
+/*
+ snprintf(fw_path, SYNAPTICS_MAX_FW_PATH,
+ "%s", FW_IMAGE_TEST);
+*/
dev_info(&fwu->rmi4_data->i2c_client->dev,
"%s: Requesting firmware image %s\n",
__func__, fw_path);
@@ -1666,7 +1612,6 @@ static int synaptics_rmi4_fwu_init(struc
if (retval < 0)
goto exit_free_mem;
- mutex_init(&(fwu->status_mutex));
fwu->initialized = true;
retval = sysfs_create_bin_file(&rmi4_data->input_dev->dev.kobj,
file:6b0663ead2a54a7861ae4850ae8afca8f2192b54 -> file:82cecbe336c792bd257c9128295a0f1582156c62
--- a/drivers/input/touchscreen/synaptics_i2c_rmi.c
+++ b/drivers/input/touchscreen/synaptics_i2c_rmi.c
@@ -841,7 +841,7 @@ static int synaptics_rmi4_glove_mode_set
int retval = 0;
unsigned char glove_enable = 0;
-#if !defined(CONFIG_MACH_JACTIVE_EUR) && !defined(CONFIG_MACH_JACTIVE_ATT)
+#if !defined(CONFIG_MACH_JACTIVE_EUR)
if (rmi4_data->panel_revision < OCTA_PANEL_REVISION_43) {
dev_info(&rmi4_data->i2c_client->dev,
"%s: do not support this FPCB version.\n", __func__);
@@ -1665,7 +1665,7 @@ static int synaptics_rmi4_f51_edge_swipe
f51->surface_data.angle = data->edge_swipe_dg - 180;
#endif
else if (data->edge_swipe_dg < 90)
-#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
+#if defined(CONFIG_MACH_JACTIVE_EUR)
f51->surface_data.angle = 90 - data->edge_swipe_dg;
#else
f51->surface_data.angle = data->edge_swipe_dg;
@@ -3269,49 +3269,6 @@ err_input_device:
return retval;
}
-#ifdef CONFIG_TOUCHSCREEN_FACTORY_PLATFORM
-#include <asm/uaccess.h>
-#define LCD_LDI_FILE_PATH "/sys/class/lcd/panel/window_type"
-static int synaptics_rmi4_open_lcd_ldi(struct synaptics_rmi4_data *rmi4_data)
-{
- int iRet = 0;
- mm_segment_t old_fs;
- struct file *window_type;
- unsigned char lcdtype[4] = {0,};
-
- old_fs = get_fs();
- set_fs(KERNEL_DS);
-
- window_type = filp_open(LCD_LDI_FILE_PATH, O_RDONLY, 0666);
- if (IS_ERR(window_type)) {
- iRet = PTR_ERR(window_type);
- if (iRet != -ENOENT)
- dev_err(&rmi4_data->i2c_client->dev, "%s: window_type file open fail\n", __func__);
- set_fs(old_fs);
- goto exit;
- }
-
- iRet = window_type->f_op->read(window_type, (u8 *)lcdtype, sizeof(u8) * 4, &window_type->f_pos);
- if (iRet != (sizeof(u8) * 4)) {
- dev_err(&rmi4_data->i2c_client->dev, "%s: Can't read the lcd ldi data\n", __func__);
- iRet = -EIO;
- }
-
- /* The variable of lcdtype has ASCII values(40 81 45) at 0x08 OCTA,
- * so if someone need a TSP panel revision then to read third parameter.*/
- rmi4_data->factory_read_panel_wakeup = lcdtype[3] & 0x0F;
- dev_info(&rmi4_data->i2c_client->dev,
- "%s: update factory_panel_revision 0x%02X\n",
- __func__, rmi4_data->factory_read_panel_wakeup);
-
- filp_close(window_type, current->files);
- set_fs(old_fs);
-
-exit:
- return iRet;
-}
-#endif
-
static int synaptics_rmi4_reinit_device(struct synaptics_rmi4_data *rmi4_data)
{
int retval;
@@ -4176,26 +4133,14 @@ static void synaptics_rmi4_late_resume(s
dev_info(&rmi4_data->i2c_client->dev, "%s: tsp int request failed, ret=%d", __func__, retval);
return ;
}
-#ifdef CONFIG_TOUCHSCREEN_FACTORY_PLATFORM
- retval = synaptics_rmi4_query_device(rmi4_data);
- if (retval < 0)
- dev_err(&rmi4_data->i2c_client->dev,
- "%s: Failed to query device\n",
- __func__);
- retval = synaptics_rmi4_open_lcd_ldi(rmi4_data);
- if (retval < 0)
- dev_err(&rmi4_data->i2c_client->dev,
- "%s: Failed to read ldi ID2\n",
- __func__);
-#else
retval = synaptics_rmi4_reinit_device(rmi4_data);
if (retval < 0) {
dev_err(&rmi4_data->i2c_client->dev,
"%s: Failed to reinit device\n",
__func__);
}
-#endif
+
if (rmi4_data->ta_status)
synaptics_charger_conn(rmi4_data, rmi4_data->ta_status);
file:4e86b41afd7024bcfc215c47c238aef3359aff11 -> file:856a8176ebcd692e3a201e6cb2c48145047cd856
--- a/drivers/input/touchscreen/synaptics_i2c_rmi.h
+++ b/drivers/input/touchscreen/synaptics_i2c_rmi.h
@@ -45,14 +45,8 @@
#define SYNAPTICS_PRODUCT_ID_B0_SPAIR "S5000B"
#if defined(CONFIG_MACH_JACTIVE_EUR) || defined(CONFIG_MACH_JACTIVE_ATT)
-#define FW_IMAGE_NAME_B0_HSYNC "tsp_synaptics/jactive/synaptics_b0_hsync.fw"
-#define FW_IMAGE_NAME_B0_HSYNC_FAC "tsp_synaptics/jactive/synaptics_b0_hsync_fac.fw"
-
-/* NON HYNC F/W will be removed */
-/* PRODUCT ID : SY 01, SY 02, S5000B */
-#define FW_IMAGE_NAME_B0_NON_HSYNC "tsp_synaptics/jactive/synaptics_b0_non_hsync.fw"
-#define FW_IMAGE_NAME_B0_NON_HSYNC_FAC "tsp_synaptics/jactive/synaptics_b0_non_hsync_fac.fw"
-
+#define FW_IMAGE_NAME_A1 "tsp_synaptics/synaptics_JA_a1.fw"
+#define FW_IMAGE_NAME_B0_34 "tsp_synaptics/synaptics_JA_b0_3_4.fw"
#else
#define FW_IMAGE_NAME_A1 "tsp_synaptics/synaptics_a1.fw"
#define FW_IMAGE_NAME_B0_34 "tsp_synaptics/synaptics_b0_3_4.fw"
@@ -292,7 +286,6 @@ struct synaptics_rmi4_data {
int fw_version_of_bin; /* firmware version of binary */
int fw_release_date_of_ic; /* Config release data from IC */
int panel_revision; /* Octa panel revision */
- int factory_read_panel_wakeup;
bool doing_reflash;
#ifdef CONFIG_GLOVE_TOUCH
file:901f1668bd327700144f1ce993e1fb82758820bc -> file:331994d8a3a8bfc2dfd2ffc13a0c1c9b3fbd7ff5
--- a/drivers/media/video/msm/sensors/jc_v4l2.c
+++ b/drivers/media/video/msm/sensors/jc_v4l2.c
@@ -31,7 +31,6 @@
#include <asm/mach-types.h>
#include <mach/vreg.h>
#include <linux/io.h>
-#include <linux/ctype.h>
#include "msm_sensor_common.h"
#include "msm.h"
@@ -144,8 +143,6 @@ struct jc_ctrl_t {
bool need_restart_caf;
bool is_isp_null;
bool isp_null_read_sensor_fw;
- bool samsung_app;
- bool factory_bin;
};
static struct jc_ctrl_t *jc_ctrl;
@@ -2369,6 +2366,7 @@ static int jc_set_ev(int mode)
static int jc_set_hjr(int mode)
{
int32_t rc = 0;
+ u32 isp_mode;
cam_info("Entered, hjr %d\n", mode);
@@ -2377,16 +2375,37 @@ static int jc_set_hjr(int mode)
return rc;
}
- if (mode == 0) {
- cam_info("HJR Off\n");
- jc_writeb(JC_CATEGORY_CAPCTRL,
- 0x0B, 0x00);
- } else if (mode == 1) {
- cam_info("HJR On\n");
- jc_writeb(JC_CATEGORY_CAPCTRL,
- 0x0B, 0x01);
- }
+ jc_readb(JC_CATEGORY_SYS, JC_SYS_MODE, &isp_mode);
+
+ if (isp_mode == JC_MONITOR_MODE) {
+ cam_info("monitor mode\n");
+
+ jc_set_mode(JC_PARMSET_MODE);
+
+ if (mode == 0) {
+ cam_info("HJR Off\n");
+ jc_writeb(JC_CATEGORY_CAPCTRL,
+ 0x0B, 0x00);
+ } else if (mode == 1) {
+ cam_info("HJR On\n");
+ jc_writeb(JC_CATEGORY_CAPCTRL,
+ 0x0B, 0x01);
+ }
+
+ jc_set_mode(JC_MONITOR_MODE);
+ } else {
+ cam_info("parameter mode\n");
+ if (mode == 0) {
+ cam_info("HJR Off\n");
+ jc_writeb(JC_CATEGORY_CAPCTRL,
+ 0x0B, 0x00);
+ } else if (mode == 1) {
+ cam_info("HJR On\n");
+ jc_writeb(JC_CATEGORY_CAPCTRL,
+ 0x0B, 0x01);
+ }
+ }
return rc;
}
@@ -2889,14 +2908,6 @@ void sensor_native_control(void __user *
jc_set_ocr_focus_mode(ctrl_info.value_1);
break;
- case EXT_CAM_SET_FACTORY_BIN:
- cam_info(" factory binary: %d", ctrl_info.value_1);
- if (ctrl_info.value_1 == 1)
- jc_ctrl->factory_bin = true;
- else
- jc_ctrl->factory_bin = false;
- break;
-
default:
break;
}
@@ -3080,6 +3091,7 @@ static int jc_sensor_power_up(struct msm
#endif
if (version_checked == false && jc_ctrl->fw_update == true) {
+ jc_ctrl->fw_update = false;
isp_ret = jc_get_isp_version();
jc_isp_boot();
jc_get_sensor_version();
@@ -3090,16 +3102,6 @@ static int jc_sensor_power_up(struct msm
return -ENOSYS;
}
- cam_info("isp_ret: %d, samsung app: %d, factory bin: %d\n",
- isp_ret, jc_ctrl->samsung_app, jc_ctrl->factory_bin);
-
- if (isp_ret == 0 && jc_ctrl->samsung_app == false && jc_ctrl->factory_bin == false) {
- cam_err("3rd party app. skip ISP FW update\n");
- goto start;
- }
-
- jc_ctrl->fw_update = false;
-
if (firmware_update_sdcard == true) {
cam_info("FW in sd card is higher priority than others!\n");
@@ -3126,7 +3128,7 @@ static int jc_sensor_power_up(struct msm
return -ENOSYS;
}
result_sensor_phone = jc_check_sensor_phone();
-
+
if (result_sensor_phone > 0) {
cam_info("Sensor > Phone, update from sensor\n");
jc_ctrl->isp_null_read_sensor_fw = true;
@@ -3186,7 +3188,6 @@ static int jc_sensor_power_up(struct msm
}
}
-start:
cam_info("nv12 output setting\n");
err = jc_writeb(JC_CATEGORY_CAPCTRL,
0x0, 0x0f);
@@ -3503,34 +3504,9 @@ static ssize_t jc_camera_check_fw_show(s
return sprintf(buf, "%s %s %s\n", sysfs_isp_fw_str, sysfs_phone_fw_str, sysfs_sensor_fw_str);
}
-static ssize_t jc_camera_check_app_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- return sprintf(buf, "%d\n", jc_ctrl->samsung_app);
-}
-
-static ssize_t jc_camera_check_app_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- unsigned long value = simple_strtoul(buf, NULL, 0);
-
- CAM_DEBUG(" received value: %d\n", (int)value);
-
- if (value == 0) {
- jc_ctrl->samsung_app = false;
- } else {
- CAM_DEBUG(" samsung app");
- jc_ctrl->samsung_app = true;
- }
-
- return size;
-}
-
static DEVICE_ATTR(rear_camtype, S_IRUGO, jc_camera_type_show, NULL);
static DEVICE_ATTR(rear_camfw, S_IRUGO, jc_camera_fw_show, NULL);
static DEVICE_ATTR(rear_checkfw, S_IRUGO, jc_camera_check_fw_show, NULL);
-static DEVICE_ATTR(rear_checkApp, S_IRUGO|S_IWUGO,
- jc_camera_check_app_show, jc_camera_check_app_store);
int32_t jc_init_vreg_port(struct msm_sensor_ctrl_t *s_ctrl)
{
@@ -3679,8 +3655,6 @@ static int jc_i2c_probe(struct i2c_clien
s_ctrl->sensor_v4l2_subdev.devnode->num;
jc_ctrl->fw_update = true;
- jc_ctrl->samsung_app = false;
- jc_ctrl->factory_bin = false;
jc_ctrl->system_rev = s_ctrl->sensordata->sensor_platform_info->sys_rev();
/* to solve sleep current issue */
@@ -3750,13 +3724,7 @@ static int __init jc_init(void)
if (device_create_file
(cam_dev_rear, &dev_attr_rear_checkfw) < 0) {
cam_err("failed to create device file, %s\n",
- dev_attr_rear_checkfw.attr.name);
- }
-
- if (device_create_file
- (cam_dev_rear, &dev_attr_rear_checkApp) < 0) {
- cam_err("failed to create device file, %s\n",
- dev_attr_rear_checkApp.attr.name);
+ dev_attr_rear_camfw.attr.name);
}
return i2c_add_driver(&jc_i2c_driver);
file:23818066f15f30ecc2480b4f559f3ab79de2e9fd -> file:603f928b2da37a524fb27e1616d0ae4d8a2e942d
--- a/drivers/media/video/msm/server/msm_cam_server.c
+++ b/drivers/media/video/msm/server/msm_cam_server.c
@@ -2777,40 +2777,6 @@ static unsigned int msm_poll_config(stru
return rc;
}
-static int msm_mmap_config(struct file *fp, struct vm_area_struct *vma)
-{
- struct msm_cam_config_dev *config_cam = fp->private_data;
- int rc = 0;
- int phyaddr;
- int retval;
- unsigned long size;
-
- D("%s: phy_addr=0x%x", __func__, config_cam->mem_map.cookie);
- phyaddr = (int)config_cam->mem_map.cookie;
- if (!phyaddr) {
- pr_err("%s: no physical memory to map", __func__);
- return -EFAULT;
- }
- memset(&config_cam->mem_map, 0,
- sizeof(struct msm_mem_map_info));
- size = vma->vm_end - vma->vm_start;
- vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
- retval = remap_pfn_range(vma, vma->vm_start,
- phyaddr >> PAGE_SHIFT,
- size, vma->vm_page_prot);
- if (retval) {
- pr_err("%s: remap failed, rc = %d",
- __func__, retval);
- rc = -ENOMEM;
- goto end;
- }
- D("%s: phy_addr=0x%x: %08lx-%08lx, pgoff %08lx\n",
- __func__, (uint32_t)phyaddr,
- vma->vm_start, vma->vm_end, vma->vm_pgoff);
-end:
- return rc;
-}
-
static int msm_open_config(struct inode *inode, struct file *fp)
{
int rc;
@@ -3087,12 +3053,6 @@ static long msm_ioctl_config(struct file
rc = msm_v4l2_evt_notify(config_cam->p_mctl, cmd, arg);
break;
- case MSM_CAM_IOCTL_SET_MEM_MAP_INFO:
- if (copy_from_user(&config_cam->mem_map, (void __user *)arg,
- sizeof(struct msm_mem_map_info)))
- rc = -EINVAL;
- break;
-
case MSM_CAM_IOCTL_SET_MCTL_SDEV:{
struct msm_mctl_set_sdev_data set_data;
if (copy_from_user(&set_data, (void __user *)arg,
@@ -3176,7 +3136,6 @@ static const struct file_operations msm_
.open = msm_open_config,
.poll = msm_poll_config,
.unlocked_ioctl = msm_ioctl_config,
- .mmap = msm_mmap_config,
.release = msm_close_config,
};
file:6aa661debffabf1d28ee6748ea0d550acb0da21a -> file:5f7029af863c84a47f114cf6e0652a21e02f922f
--- a/drivers/misc/max77693-muic.c
+++ b/drivers/misc/max77693-muic.c
@@ -2578,7 +2578,6 @@ static int __devinit max77693_muic_probe
MAX77693_MUIC_REG_CDETCTRL1, cdetctrl1);
pr_info("%s: CDETCTRL1(0x%02x)\n", __func__, cdetctrl1);
-
/* Show Register State */
max77693_muic_monitor_status();
@@ -2609,6 +2608,7 @@ static int __devinit max77693_muic_probe
INIT_DELAYED_WORK(&info->mhl_work, max77693_muic_mhl_detect);
schedule_delayed_work(&info->mhl_work, msecs_to_jiffies(25000));
+
return 0;
fail:
file:566c827256e25fdc6146395f1276b4081066b271 -> file:e558bcc907ccdae99c2b4df8c639e4145f8df684
--- a/drivers/misc/sec_param.c
+++ b/drivers/misc/sec_param.c
@@ -140,8 +140,8 @@ bool sec_get_param(enum sec_param_index
break;
case param_index_boot_alarm_value_h:
memcpy(value, &(param_data->boot_alarm_value_h), sizeof(unsigned int));
- break;
#endif
+ break;
default:
return false;
}
file:7ed89ec1ea3a31954f7a7cb11789a5b8d68c2886 -> file:5715d130006c6cb872e044a14e325a97a337e105
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -1136,8 +1136,7 @@ retry:
goto out;
}
- if (mmc_can_sanitize(card) &&
- (card->host->caps2 & MMC_CAP2_SANITIZE))
+ if (mmc_can_sanitize(card))
err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
EXT_CSD_SANITIZE_START, 1, 0);
out_retry:
file:357d714793dd972ffc163d916dffaa859298743d -> file:e802920232360ba7a0ec1757619e32815f8527e5
--- a/drivers/mmc/host/msm_sdcc.c
+++ b/drivers/mmc/host/msm_sdcc.c
@@ -2618,7 +2618,7 @@ static int msmsdcc_setup_vreg(struct msm
#ifdef CONFIG_MMC_MSM_SDC4_SUPPORT
if (!enable) {
#if defined(CONFIG_MACH_JF_ATT) || defined(CONFIG_MACH_JF_TMO) || defined(CONFIG_MACH_JF_EUR) || \
- defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
+ defined(CONFIG_MACH_JACTIVE_ATT)
if (system_rev != BOARD_REV07) { /* TI Level Shifter */
if (system_rev < BOARD_REV08 && host->pdev_id == 4)
#else /* VZW/SPT/USCC */
@@ -2628,7 +2628,7 @@ static int msmsdcc_setup_vreg(struct msm
/* Disable level shifter */
gpio_set_value(60, 0); /* TFLASH_LS_EN */
#if defined(CONFIG_MACH_JF_ATT) || defined(CONFIG_MACH_JF_TMO) || defined(CONFIG_MACH_JF_EUR) || \
- defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
+ defined(CONFIG_MACH_JACTIVE_ATT)
else if (system_rev >= BOARD_REV08 && host->pdev_id == 2)
#else /* VZW/SPT/USCC/KOR */
else if (system_rev >= BOARD_REV09 && host->pdev_id == 2)
@@ -2664,7 +2664,7 @@ static int msmsdcc_setup_vreg(struct msm
if (enable) {
mdelay(1);
#if defined(CONFIG_MACH_JF_ATT) || defined(CONFIG_MACH_JF_TMO) || defined(CONFIG_MACH_JF_EUR) || \
- defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
+ defined(CONFIG_MACH_JACTIVE_ATT)
if (system_rev < BOARD_REV08 && host->pdev_id == 4)
#else /* VZW/SPT/USCC */
if (system_rev < BOARD_REV09 && host->pdev_id == 4)
@@ -2672,7 +2672,7 @@ static int msmsdcc_setup_vreg(struct msm
/* Enable level shifter */
gpio_set_value(60, 1); /* TFLASH_LS_EN */
#if defined(CONFIG_MACH_JF_ATT) || defined(CONFIG_MACH_JF_TMO) || defined(CONFIG_MACH_JF_EUR) || \
- defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
+ defined(CONFIG_MACH_JACTIVE_ATT)
else if (system_rev >= BOARD_REV08 && host->pdev_id == 2)
#else /* VZW/SPT/USCC/KOR */
else if (system_rev >= BOARD_REV09 && host->pdev_id == 2)
@@ -2688,7 +2688,7 @@ static int msmsdcc_setup_vreg(struct msm
} else {
mdelay(1);
#if defined(CONFIG_MACH_JF_ATT) || defined(CONFIG_MACH_JF_TMO) || defined(CONFIG_MACH_JF_EUR) || \
- defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
+ defined(CONFIG_MACH_JACTIVE_ATT)
if (system_rev == BOARD_REV07) { /* Toshiba Level Shifter */
if (system_rev < BOARD_REV08 && host->pdev_id == 4)
#else /* VZW/SPT/USCC */
@@ -6302,7 +6302,7 @@ msmsdcc_probe(struct platform_device *pd
#else
#if defined(CONFIG_MACH_JF_ATT) || defined(CONFIG_MACH_JF_TMO) || defined(CONFIG_MACH_JF_EUR) || \
- defined(CONFIG_MACH_JACTIVE_ATT) || defined(CONFIG_MACH_JACTIVE_EUR)
+ defined(CONFIG_MACH_JACTIVE_ATT)
if (t_flash_detect_dev == NULL &&
(((host->pdev_id == 4) && (system_rev < BOARD_REV08)) ||
((host->pdev_id == 2) && (system_rev >= BOARD_REV08)))) {
file:d3c05d7de15b12f70970b89015ec0b77bbffc735 -> file:40bc790bc58a2b37376ee4144ccf31b0a98c7f13
--- a/drivers/net/wireless/bcmdhd/Makefile
+++ b/drivers/net/wireless/bcmdhd/Makefile
@@ -64,11 +64,7 @@ DHDCFLAGS += -DSUPPORT_SOFTAP_SINGL_DISA
DHDCFLAGS += -DUSE_STAMAC_4SOFTAP
# DPC priority
-ifeq ($(CONFIG_MACH_JF),y)
DHDCFLAGS += -DCUSTOM_DPC_PRIO_SETTING=49
-else
-DHDCFLAGS += -DCUSTOM_DPC_PRIO_SETTING=98
-endif
# WiFi turn off delay
DHDCFLAGS += -DWIFI_TURNOFF_DELAY=100
@@ -125,9 +121,6 @@ ifneq ($(CONFIG_BCM4335),)
DHDCFLAGS += -DWLTDLS
# DHDCFLAGS += -DTPUT_DEBUG
DHDCFLAGS += -DWLFBT
-ifeq ($(CONFIG_MACH_JF),y)
- DHDCFLAGS += -DCUSTOM_TXGLOM_SIZE=32 -DDHD_TXBOUND=32
-endif
DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=32
# For BT LOCK
ifeq ($(CONFIG_BCM4335BT),y)
@@ -228,10 +221,7 @@ DHDCFLAGS += -include "dhd_sec_feature.h
# Others
#########
-ifneq ($(CONFIG_ARCH_EXYNOS),y)
-# Not needed in Exynos
EXTRA_LDFLAGS += --strip-debug
-endif
EXTRA_CFLAGS += $(DHDCFLAGS) -DDHD_DEBUG
EXTRA_CFLAGS += -DSRCBASE=\"$(src)\"
file:16327a5fc0f041bdfac64dbab9dffc64d2f7a6d7 -> file:ea94da58d1454d6ab19bd79de4c7ec1d3e3194b2
--- a/drivers/net/wireless/bcmdhd/aiutils.c
+++ b/drivers/net/wireless/bcmdhd/aiutils.c
@@ -229,16 +229,16 @@ ai_scan(si_t *sih, void *regs, uint devi
(mpd & MPD_MUI_MASK) >> MPD_MUI_SHIFT));
}
-
+
asd = get_asd(sih, &eromptr, 0, 0, AD_ST_SLAVE, &addrl, &addrh, &sizel, &sizeh);
if (asd == 0) {
do {
-
- asd = get_asd(sih, &eromptr, 0, 0, AD_ST_BRIDGE, &addrl, &addrh,
+
+ asd = get_asd(sih, &eromptr, 0, 0, AD_ST_BRIDGE, &addrl, &addrh,
&sizel, &sizeh);
- if (asd != 0)
- br = TRUE;
- else {
+ if (asd != 0)
+ br = TRUE;
+ else {
if (br == TRUE) {
break;
}
@@ -256,7 +256,7 @@ ai_scan(si_t *sih, void *regs, uint devi
}
sii->coresba[idx] = addrl;
sii->coresba_size[idx] = sizel;
-
+
j = 1;
do {
asd = get_asd(sih, &eromptr, 0, j, AD_ST_SLAVE, &addrl, &addrh,
file:4e699708405a0b453c586d850839970a8ddba926 -> file:9e3922bd3ae19cbdafc6d4585ac3cb20da3857af
--- a/drivers/net/wireless/bcmdhd/bcmsdspi_linux.c
+++ b/drivers/net/wireless/bcmdhd/bcmsdspi_linux.c
@@ -2,13 +2,13 @@
* Broadcom SPI Host Controller Driver - Linux Per-port
*
* Copyright (C) 1999-2012, Broadcom Corporation
- *
+ *
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
* under the terms of the GNU General Public License version 2 (the "GPL"),
* available at http://www.broadcom.com/licenses/GPLv2.php, with the
* following added to such license:
- *
+ *
* As a special exception, the copyright holders of this software give you
* permission to link this software with independent modules, and to copy and
* distribute the resulting executable under terms of your choice, provided that
@@ -16,7 +16,7 @@
* the license of that module. An independent module is a module which is not
* derived from this software. The special exception does not apply to any
* modifications of the software.
- *
+ *
* Notwithstanding the above, under no circumstances may you combine this
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
file:95b667370eae2278e604b08fb6459dc7c9fcac80 -> file:2dd7c10ba6059ea2f79764624d8336a51f858fad
--- a/drivers/net/wireless/bcmdhd/bcmspibrcm.c
+++ b/drivers/net/wireless/bcmdhd/bcmspibrcm.c
@@ -2,13 +2,13 @@
* Broadcom BCMSDH to gSPI Protocol Conversion Layer
*
* Copyright (C) 1999-2012, Broadcom Corporation
- *
+ *
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
* under the terms of the GNU General Public License version 2 (the "GPL"),
* available at http://www.broadcom.com/licenses/GPLv2.php, with the
* following added to such license:
- *
+ *
* As a special exception, the copyright holders of this software give you
* permission to link this software with independent modules, and to copy and
* distribute the resulting executable under terms of your choice, provided that
@@ -16,7 +16,7 @@
* the license of that module. An independent module is a module which is not
* derived from this software. The special exception does not apply to any
* modifications of the software.
- *
+ *
* Notwithstanding the above, under no circumstances may you combine this
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
@@ -72,7 +72,7 @@ extern void spi_sendrecv(sdioh_info_t *s
uint sd_msglevel = SDH_ERROR_VAL;
#else
uint sd_msglevel = 0;
-#endif
+#endif
uint sd_hiok = FALSE; /* Use hi-speed mode if available? */
uint sd_sdmode = SDIOH_MODE_SPI; /* Use SD4 mode by default */
@@ -336,7 +336,7 @@ enum {
};
const bcm_iovar_t sdioh_iovars[] = {
- {"sd_msglevel", IOV_MSGLEVEL, 0, IOVT_UINT32, 0 },
+ {"sd_msglevel", IOV_MSGLEVEL, 0, IOVT_UINT32, 0 },
{"sd_blocksize", IOV_BLOCKSIZE, 0, IOVT_UINT32, 0 }, /* ((fn << 16) | size) */
{"sd_dma", IOV_DMA, 0, IOVT_BOOL, 0 },
{"sd_ints", IOV_USEINTS, 0, IOVT_BOOL, 0 },
file:45bde7c0f6fb869df5b4c703cab7daeef12fd87e -> file:0cbc1cb80718b0c1d49c41fa0bc9e314da963297
--- a/drivers/net/wireless/bcmdhd/bcmwifi_channels.c
+++ b/drivers/net/wireless/bcmdhd/bcmwifi_channels.c
@@ -884,7 +884,7 @@ wf_channel2chspec(uint ctl_ch, uint bw)
}
}
-
+
if (sb < 0) {
return 0;
}
file:c0998262bf9360829dc1cdcf97ee35289f657a8a -> file:d9884132443c2cefbd559bef477c09430cb9d628
--- a/drivers/net/wireless/bcmdhd/bcmwifi_channels.h
+++ b/drivers/net/wireless/bcmdhd/bcmwifi_channels.h
@@ -86,7 +86,7 @@ typedef uint16 chanspec_t;
((channel) + CH_10MHZ_APART) : 0)
#define LL_20_SB(channel) (((channel) > 3 * CH_10MHZ_APART) ? ((channel) - 3 * CH_10MHZ_APART) : 0)
-#define UU_20_SB(channel) (((channel) < (MAXCHANNEL - 3 * CH_10MHZ_APART)) ? \
+#define UU_20_SB(channel) (((channel) < (MAXCHANNEL - 3 * CH_10MHZ_APART)) ? \
((channel) + 3 * CH_10MHZ_APART) : 0)
#define LU_20_SB(channel) LOWER_20_SB(channel)
#define UL_20_SB(channel) UPPER_20_SB(channel)
@@ -191,7 +191,7 @@ typedef uint16 chanspec_t;
((channel) + CH_10MHZ_APART) : 0)
#define LL_20_SB(channel) (((channel) > 3 * CH_10MHZ_APART) ? ((channel) - 3 * CH_10MHZ_APART) : 0)
-#define UU_20_SB(channel) (((channel) < (MAXCHANNEL - 3 * CH_10MHZ_APART)) ? \
+#define UU_20_SB(channel) (((channel) < (MAXCHANNEL - 3 * CH_10MHZ_APART)) ? \
((channel) + 3 * CH_10MHZ_APART) : 0)
#define LU_20_SB(channel) LOWER_20_SB(channel)
#define UL_20_SB(channel) UPPER_20_SB(channel)
file:57e082a06cacf4965da27985ca32f8f4790e256d -> file:213fb93a2f107485fc70a65c0192a83b30165e04
--- a/drivers/net/wireless/bcmdhd/bcmwifi_rates.h
+++ b/drivers/net/wireless/bcmdhd/bcmwifi_rates.h
@@ -296,9 +296,9 @@ typedef enum clm_rates {
WL_RATE_3X3_VHT9SS3 = 115,
+
-
-
+
WL_RATE_1X2_TXBF_OFDM_6 = 116,
WL_RATE_1X2_TXBF_OFDM_9 = 117,
@@ -329,7 +329,7 @@ typedef enum clm_rates {
WL_RATE_1X2_TXBF_VHT8SS1 = 132,
WL_RATE_1X2_TXBF_VHT9SS1 = 133,
-
+
WL_RATE_2X2_TXBF_SDM_MCS8 = 134,
WL_RATE_2X2_TXBF_SDM_MCS9 = 135,
@@ -352,7 +352,7 @@ typedef enum clm_rates {
-
+
WL_RATE_1X3_TXBF_OFDM_6 = 142,
WL_RATE_1X3_TXBF_OFDM_9 = 143,
@@ -383,7 +383,7 @@ typedef enum clm_rates {
WL_RATE_1X3_TXBF_VHT8SS1 = 158,
WL_RATE_1X3_TXBF_VHT9SS1 = 159,
-
+
WL_RATE_2X3_TXBF_SDM_MCS8 = 160,
WL_RATE_2X3_TXBF_SDM_MCS9 = 161,
@@ -405,7 +405,7 @@ typedef enum clm_rates {
WL_RATE_2X3_TXBF_VHT8SS2 = 168,
WL_RATE_2X3_TXBF_VHT9SS2 = 169,
-
+
WL_RATE_3X3_TXBF_SDM_MCS16 = 170,
WL_RATE_3X3_TXBF_SDM_MCS17 = 171,
file:d5d23c075b8a2b950baaca4a8376a951ecb8b5a3 -> file:9e405b038f2192eeaf4704a7ef4325a7d51c7f45
--- a/drivers/net/wireless/bcmdhd/dhd_cdc.c
+++ b/drivers/net/wireless/bcmdhd/dhd_cdc.c
@@ -21,7 +21,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: dhd_cdc.c 391745 2013-03-19 08:35:39Z $
+ * $Id: dhd_cdc.c 390461 2013-03-12 07:21:34Z $
*
* BDC is like CDC, except it includes a header for data packets to convey
* packet priority over the bus, and flags (e.g. to indicate checksum status
file:ebb0f1b3ae520917741392f5663b737f7868ff27 -> file:ff8e6345a6912ac1b4fe801c3ac8f939a8d8022a
--- a/drivers/net/wireless/bcmdhd/dhd_linux.c
+++ b/drivers/net/wireless/bcmdhd/dhd_linux.c
@@ -2290,10 +2290,7 @@ dhd_dpc_thread(void *data)
#endif
#ifdef CUSTOM_DPC_CPUCORE
-#ifdef CONFIG_MACH_UNIVERSAL5410
- if (strstr(fw_path, "_apsta") == NULL)
-#endif
- set_cpus_allowed_ptr(current, cpumask_of(CUSTOM_DPC_CPUCORE));
+ set_cpus_allowed_ptr(current, cpumask_of(CUSTOM_DPC_CPUCORE));
#endif
/* Run until signal received */
@@ -5925,7 +5922,7 @@ int dhd_os_send_hang_message(dhd_pub_t *
if (!dhdp->hang_was_sent) {
dhdp->hang_was_sent = 1;
ret = schedule_work(&dhdp->info->work_hang);
- if (!ret)
+ if(!ret)
DHD_ERROR(("%s : schedule_task fail \n",__FUNCTION__));
else
DHD_ERROR(("%s : schedule_task success \n",__FUNCTION__));
file:5c4a8c156f3b911aad4deca3fb458ef73aabc4c0 -> file:933a78a1916aaaf251c0a644885636835434e757
--- a/drivers/net/wireless/bcmdhd/dhd_sec_feature.h
+++ b/drivers/net/wireless/bcmdhd/dhd_sec_feature.h
@@ -63,6 +63,12 @@
#define WIFI_TURNOFF_DELAY 200
#endif /* CONFIG_ARCH_MSM8960 */
+#ifdef CONFIG_MACH_JF
+#undef CUSTOM_TXGLOM_SIZE
+#define CUSTOM_TXGLOM_SIZE 32
+#define DHD_TXBOUND 32
+#endif /* CONFIG_MACH_JF */
+
#if defined(CONFIG_BCM4335) || defined (CONFIG_BCM4335_MODULE)
#define POWERUP_MAX_RETRY 5 /* Due to late start-up of FPGA in JF project */
#endif /* CONFIG_BCM4335 || CONFIG_BCM4335_MODULE */
file:a0610edf9883d3b41d59c56f30398899ee0cbf50 -> file:26da752186a20ba2d12c340716b19b577b346c4d
--- a/drivers/net/wireless/bcmdhd/include/bcm_cfg.h
+++ b/drivers/net/wireless/bcmdhd/include/bcm_cfg.h
@@ -21,7 +21,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: bcm_cfg.h 351867 2012-08-21 18:46:16Z $
+ * $Id: bcm_cfg.h 294399 2011-11-07 03:31:22Z $
*/
#ifndef _bcm_cfg_h_
file:01762fde6019d2aa3e68054e213a262dfa487ffd -> file:50e693a640611e6e54866fc2a536a38c46290a99
--- a/drivers/net/wireless/bcmdhd/include/bcmdevs.h
+++ b/drivers/net/wireless/bcmdhd/include/bcmdevs.h
@@ -152,25 +152,25 @@
#define BCM43131_D11N2G_ID 0x43aa
#define BCM4314_D11N2G_ID 0x4364
#define BCM43142_D11N2G_ID 0x4365
-#define BCM43143_D11N2G_ID 0x4366
+#define BCM43143_D11N2G_ID 0x4366
#define BCM4334_D11N_ID 0x4380
#define BCM4334_D11N2G_ID 0x4381
#define BCM4334_D11N5G_ID 0x4382
-#define BCM43342_D11N_ID 0x4383
-#define BCM43342_D11N2G_ID 0x4384
-#define BCM43342_D11N5G_ID 0x4385
-#define BCM43341_D11N_ID 0x4386
-#define BCM43341_D11N2G_ID 0x4387
-#define BCM43341_D11N5G_ID 0x4388
+#define BCM43342_D11N_ID 0x4383
+#define BCM43342_D11N2G_ID 0x4384
+#define BCM43342_D11N5G_ID 0x4385
+#define BCM43341_D11N_ID 0x4386
+#define BCM43341_D11N2G_ID 0x4387
+#define BCM43341_D11N5G_ID 0x4388
#define BCM4360_D11AC_ID 0x43a0
#define BCM4360_D11AC2G_ID 0x43a1
#define BCM4360_D11AC5G_ID 0x43a2
#define BCM4335_D11AC_ID 0x43ae
#define BCM4335_D11AC2G_ID 0x43af
#define BCM4335_D11AC5G_ID 0x43b0
-#define BCM4352_D11AC_ID 0x43b1
-#define BCM4352_D11AC2G_ID 0x43b2
-#define BCM4352_D11AC5G_ID 0x43b3
+#define BCM4352_D11AC_ID 0x43b1
+#define BCM4352_D11AC2G_ID 0x43b2
+#define BCM4352_D11AC5G_ID 0x43b3
#define BCM943228HMB_SSID_VEN1 0x0607
@@ -178,11 +178,11 @@
#define BCM94313HMG_SSID_VEN1 0x0609
#define BCM943142HM_SSID_VEN1 0x0611
-#define BCM43143_D11N2G_ID 0x4366
+#define BCM43143_D11N2G_ID 0x4366
-#define BCM43242_D11N_ID 0x4367
-#define BCM43242_D11N2G_ID 0x4368
-#define BCM43242_D11N5G_ID 0x4369
+#define BCM43242_D11N_ID 0x4367
+#define BCM43242_D11N2G_ID 0x4368
+#define BCM43242_D11N5G_ID 0x4369
#define BCM4350_D11AC_ID 0x43a3
#define BCM4350_D11AC2G_ID 0x43a4
@@ -225,8 +225,8 @@
#define BCM47XX_GIGETH_ID 0x471f
#define BCM4712_MIPS_ID 0x4720
#define BCM4716_DEVICE_ID 0x4722
-#define BCM47XX_USB30H_ID 0x472a
-#define BCM47XX_USB30D_ID 0x472b
+#define BCM47XX_USB30H_ID 0x472a
+#define BCM47XX_USB30D_ID 0x472b
#define BCM47XX_SMBUS_EMU_ID 0x47fe
#define BCM47XX_XOR_EMU_ID 0x47ff
#define EPI41210_DEVICE_ID 0xa0fa
@@ -282,26 +282,26 @@
#define BCM6362_CHIP_ID 0x6362
#define BCM4314_CHIP_ID 0x4314
#define BCM43142_CHIP_ID 43142
-#define BCM43143_CHIP_ID 43143
+#define BCM43143_CHIP_ID 43143
#define BCM4324_CHIP_ID 0x4324
#define BCM43242_CHIP_ID 43242
-#define BCM43243_CHIP_ID 43243
+#define BCM43243_CHIP_ID 43243
#define BCM4334_CHIP_ID 0x4334
-#define BCM4335_CHIP_ID 0x4335
+#define BCM4335_CHIP_ID 0x4335
#define BCM4360_CHIP_ID 0x4360
#define BCM4352_CHIP_ID 0x4352
#define BCM43526_CHIP_ID 0xAA06
-#define BCM43341_CHIP_ID 43341
-#define BCM43342_CHIP_ID 43342
+#define BCM43341_CHIP_ID 43341
+#define BCM43342_CHIP_ID 43342
#define BCM4335_CHIP_ID 0x4335
-#define BCM4350_CHIP_ID 0x4350
+#define BCM4350_CHIP_ID 0x4350
#define BCM4342_CHIP_ID 4342
#define BCM4402_CHIP_ID 0x4402
#define BCM4704_CHIP_ID 0x4704
#define BCM4706_CHIP_ID 0x5300
-#define BCM4707_CHIP_ID 53010
-#define BCM53018_CHIP_ID 53018
+#define BCM4707_CHIP_ID 53010
+#define BCM53018_CHIP_ID 53018
#define BCM4707_CHIP(chipid) (((chipid) == BCM4707_CHIP_ID) || ((chipid) == BCM53018_CHIP_ID))
#define BCM4710_CHIP_ID 0x4710
#define BCM4712_CHIP_ID 0x4712
@@ -364,17 +364,17 @@
#define BCM4314SDIO_FPBGA_PKG_ID (8 | 4)
#define BCM4314DEV_PKG_ID (8 | 6)
-#define BCM4707_PKG_ID 1
-#define BCM4708_PKG_ID 2
-#define BCM4709_PKG_ID 0
+#define BCM4707_PKG_ID 1
+#define BCM4708_PKG_ID 2
+#define BCM4709_PKG_ID 0
#define PCIXX21_FLASHMEDIA0_ID 0x8033
#define PCIXX21_SDIOH0_ID 0x8034
-#define BCM4335_WLCSP_PKG_ID (0x0)
-#define BCM4335_FCBGA_PKG_ID (0x1)
-#define BCM4335_WLBGA_PKG_ID (0x2)
-#define BCM4335_FCBGAD_PKG_ID (0x3)
+#define BCM4335_WLCSP_PKG_ID (0x0)
+#define BCM4335_FCBGA_PKG_ID (0x1)
+#define BCM4335_WLBGA_PKG_ID (0x2)
+#define BCM4335_FCBGAD_PKG_ID (0x3)
#define BCM4335_PKG_MASK (0x3)
@@ -389,7 +389,7 @@
#define BFL_CCKHIPWR 0x00000040
#define BFL_ENETADM 0x00000080
#define BFL_ENETVLAN 0x00000100
-#define BFL_LTECOEX 0x00000200
+#define BFL_LTECOEX 0x00000200
#define BFL_NOPCI 0x00000400
#define BFL_FEM 0x00000800
#define BFL_EXTLNA 0x00001000
@@ -404,7 +404,7 @@
#define BFL_PHASESHIFT 0x00100000
#define BFL_BUCKBOOST 0x00200000
#define BFL_FEM_BT 0x00400000
-#define BFL_RXCHAIN_OFF_BT 0x00400000
+#define BFL_RXCHAIN_OFF_BT 0x00400000
#define BFL_NOCBUCK 0x00800000
#define BFL_CCKFAVOREVM 0x01000000
#define BFL_PALDO 0x02000000
@@ -413,7 +413,7 @@
#define BFL_UCPWRCTL_MININDX 0x08000000
#define BFL_EXTLNA_5GHz 0x10000000
#define BFL_TRSW_1by2 0x20000000
-#define BFL_GAINBOOSTA01 0x20000000
+#define BFL_GAINBOOSTA01 0x20000000
#define BFL_LO_TRSW_R_5GHz 0x40000000
#define BFL_ELNA_GAINDEF 0x80000000
#define BFL_EXTLNA_TX 0x20000000
@@ -446,8 +446,8 @@
#define BFL2_ANAPACTRL_2G 0x00100000
#define BFL2_ANAPACTRL_5G 0x00200000
#define BFL2_ELNACTRL_TRSW_2G 0x00400000
-#define BFL2_BT_SHARE_ANT0 0x00800000
-#define BFL2_BT_SHARE_BM_BIT0 0x00800000
+#define BFL2_BT_SHARE_ANT0 0x00800000
+#define BFL2_BT_SHARE_BM_BIT0 0x00800000
#define BFL2_TEMPSENSE_HIGHER 0x01000000
#define BFL2_BTC3WIREONLY 0x02000000
#define BFL2_PWR_NOMINAL 0x04000000
@@ -455,31 +455,31 @@
#define BFL2_4313_RADIOREG 0x10000000
-#define BFL2_DYNAMIC_VMID 0x10000000
+#define BFL2_DYNAMIC_VMID 0x10000000
#define BFL2_SDR_EN 0x20000000
-#define BFL2_DYNAMIC_VMID 0x10000000
-#define BFL2_BT_SHARE_BM_BIT1 0x40000000
+#define BFL2_DYNAMIC_VMID 0x10000000
+#define BFL2_BT_SHARE_BM_BIT1 0x40000000
-#define BFL_SROM11_BTCOEX 0x00000001
-#define BFL_SROM11_WLAN_BT_SH_XTL 0x00000002
-#define BFL_SROM11_EXTLNA 0x00001000
-#define BFL_SROM11_EXTLNA_5GHz 0x10000000
-#define BFL_SROM11_GAINBOOSTA01 0x20000000
-#define BFL2_SROM11_APLL_WAR 0x00000002
-#define BFL2_SROM11_ANAPACTRL_2G 0x00100000
-#define BFL2_SROM11_ANAPACTRL_5G 0x00200000
-
-
-#define BFL3_FEMCTRL_SUB 0x00000007
-#define BFL3_RCAL_WAR 0x00000008
-#define BFL3_TXGAINTBLID 0x00000070
-#define BFL3_TXGAINTBLID_SHIFT 0x4
-#define BFL3_TSSI_DIV_WAR 0x00000080
-#define BFL3_TSSI_DIV_WAR_SHIFT 0x7
-#define BFL3_FEMTBL_FROM_NVRAM 0x00000100
-#define BFL3_FEMTBL_FROM_NVRAM_SHIFT 0x8
+#define BFL_SROM11_BTCOEX 0x00000001
+#define BFL_SROM11_WLAN_BT_SH_XTL 0x00000002
+#define BFL_SROM11_EXTLNA 0x00001000
+#define BFL_SROM11_EXTLNA_5GHz 0x10000000
+#define BFL_SROM11_GAINBOOSTA01 0x20000000
+#define BFL2_SROM11_APLL_WAR 0x00000002
+#define BFL2_SROM11_ANAPACTRL_2G 0x00100000
+#define BFL2_SROM11_ANAPACTRL_5G 0x00200000
+
+
+#define BFL3_FEMCTRL_SUB 0x00000007
+#define BFL3_RCAL_WAR 0x00000008
+#define BFL3_TXGAINTBLID 0x00000070
+#define BFL3_TXGAINTBLID_SHIFT 0x4
+#define BFL3_TSSI_DIV_WAR 0x00000080
+#define BFL3_TSSI_DIV_WAR_SHIFT 0x7
+#define BFL3_FEMTBL_FROM_NVRAM 0x00000100
+#define BFL3_FEMTBL_FROM_NVRAM_SHIFT 0x8
#define BOARD_GPIO_BTC3W_IN 0x850
file:653dd7731708765eccdf48912ccd6c8c6e3489e6 -> file:ba22becea6af6ffa91bd28f866fbf9b0034c214c
--- a/drivers/net/wireless/bcmdhd/include/bcmnvram.h
+++ b/drivers/net/wireless/bcmdhd/include/bcmnvram.h
@@ -129,7 +129,7 @@ extern int nvram_space;
#endif
#define MAX_NVRAM_SPACE NVRAM_SPACE
#define ROM_ENVRAM_SPACE 0x1000
-#define NVRAM_LZMA_MAGIC 0x4c5a4d41
+#define NVRAM_LZMA_MAGIC 0x4c5a4d41
#define NVRAM_MAX_VALUE_LEN 255
#define NVRAM_MAX_PARAM_LEN 64
file:1fa2e84f7a7bb0b2e5dfff1a6298dbea9b853682 -> file:2b5adf10bd136c2f1a8842d768101bb8d07f98a4
--- a/drivers/net/wireless/bcmdhd/include/bcmsdstd.h
+++ b/drivers/net/wireless/bcmdhd/include/bcmsdstd.h
@@ -21,7 +21,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: bcmsdstd.h 372377 2012-12-03 12:24:59Z $
+ * $Id: bcmsdstd.h 343301 2012-07-06 13:07:32Z $
*/
#ifndef _BCM_SD_STD_H
#define _BCM_SD_STD_H
file:8e8bf47b722d2d26f514437370b8b31f8756fd41 -> file:cb49421e49c956413224b728210753fe0c605509
--- a/drivers/net/wireless/bcmdhd/include/bcmsrom_tbl.h
+++ b/drivers/net/wireless/bcmdhd/include/bcmsrom_tbl.h
@@ -69,7 +69,7 @@ static const sromvar_t pci_sromvars[] =
{"devid", 0xffffff00, SRFL_PRHEX, PCI_F0DEVID, 0xffff},
#else
{"devid", 0xffffff00, SRFL_PRHEX|SRFL_NOVAR, PCI_F0DEVID, 0xffff},
-#endif
+#endif
{"boardrev", 0x0000000e, SRFL_PRHEX, SROM_AABREV, SROM_BR_MASK},
{"boardrev", 0x000000f0, SRFL_PRHEX, SROM4_BREV, 0xffff},
{"boardrev", 0xffffff00, SRFL_PRHEX, SROM8_BREV, 0xffff},
@@ -494,7 +494,7 @@ static const sromvar_t pci_sromvars[] =
{"tempsense_slope", 0xfffff800, SRFL_PRHEX, SROM11_TS_SLP_OPT_CORRX, 0x00ff},
{"tempcorrx", 0xfffff800, SRFL_PRHEX, SROM11_TS_SLP_OPT_CORRX, 0xfc00},
{"tempsense_option", 0xfffff800, SRFL_PRHEX, SROM11_TS_SLP_OPT_CORRX, 0x0300},
- {"xtalfreq", 0xfffff800, 0, SROM11_XTAL_FREQ, 0xffff},
+ {"xtalfreq", 0xfffff800, 0, SROM11_XTAL_FREQ, 0xffff},
{"phycal_tempdelta", 0xfffff800, 0, SROM11_PHYCAL_TEMPDELTA, 0x00ff},
{"temps_period", 0xfffff800, 0, SROM11_PHYCAL_TEMPDELTA, 0x0f00},
{"temps_hysteresis", 0xfffff800, 0, SROM11_PHYCAL_TEMPDELTA, 0xf000},
@@ -544,7 +544,7 @@ static const sromvar_t pci_sromvars[] =
{"mcslr5glpo", 0xfffff800, 0, SROM11_MCSLR5GLPO, 0xffff},
{"mcslr5gmpo", 0xfffff800, 0, SROM11_MCSLR5GMPO, 0xffff},
{"mcslr5ghpo", 0xfffff800, 0, SROM11_MCSLR5GHPO, 0xffff},
- {"sb20in40hrpo", 0xfffff800, 0, SROM11_SB20IN40HRPO, 0xffff},
+ {"sb20in40hrpo", 0xfffff800, 0, SROM11_SB20IN40HRPO, 0xffff},
{"sb20in80and160hr5glpo", 0xfffff800, 0, SROM11_SB20IN80AND160HR5GLPO, 0xffff},
{"sb40and80hr5glpo", 0xfffff800, 0, SROM11_SB40AND80HR5GLPO, 0xffff},
{"sb20in80and160hr5gmpo", 0xfffff800, 0, SROM11_SB20IN80AND160HR5GMPO, 0xffff},
@@ -596,11 +596,11 @@ static const sromvar_t pci_sromvars[] =
{"", 0xfffff800, SRFL_ARRAY, SROM11_RXGAINERR_5GM, 0xf800},
{"", 0xfffff800, SRFL_ARRAY, SROM11_RXGAINERR_5GH, 0xf800},
{"", 0xfffff800, 0, SROM11_RXGAINERR_5GU, 0xf800},
- {"rpcal2g", 0xfffff800, 0, SROM11_RPCAL_2G, 0xffff},
- {"rpcal5gb0", 0xfffff800, 0, SROM11_RPCAL_5GL, 0xffff},
- {"rpcal5gb1", 0xfffff800, 0, SROM11_RPCAL_5GM, 0xffff},
- {"rpcal5gb2", 0xfffff800, 0, SROM11_RPCAL_5GH, 0xffff},
- {"rpcal5gb3", 0xfffff800, 0, SROM11_RPCAL_5GU, 0xffff},
+ {"rpcal2g", 0xfffff800, 0, SROM11_RPCAL_2G, 0xffff},
+ {"rpcal5gb0", 0xfffff800, 0, SROM11_RPCAL_5GL, 0xffff},
+ {"rpcal5gb1", 0xfffff800, 0, SROM11_RPCAL_5GM, 0xffff},
+ {"rpcal5gb2", 0xfffff800, 0, SROM11_RPCAL_5GH, 0xffff},
+ {"rpcal5gb3", 0xfffff800, 0, SROM11_RPCAL_5GU, 0xffff},
{NULL, 0, 0, 0, 0}
};
@@ -903,7 +903,7 @@ static const cis_tuple_t cis_hnbuvars[]
"0rxgains5gelnagaina2 0rxgains2gtrelnabypa2 0rxgains2gtrisoa2 0rxgains2gelnagaina2 "
"0rxgains5ghtrelnabypa2 0rxgains5ghtrisoa2 0rxgains5ghelnagaina2 0rxgains5gmtrelnabypa2 "
"0rxgains5gmtrisoa2 0rxgains5gmelnagaina2"}, /* special case */
- {HNBU_TXDUTY, 0xfffff800, 9, "2tx_duty_cycle_ofdm_40_5g "
+ {HNBU_TXDUTY, 0xfffff800, 9, "2tx_duty_cycle_ofdm_40_5g "
"2tx_duty_cycle_thresh_40_5g 2tx_duty_cycle_ofdm_80_5g 2tx_duty_cycle_thresh_80_5g"},
{HNBU_PDOFF_2G, 0xfffff800, 3, "0pdoffset2g40ma0 0pdoffset2g40ma1 "
"0pdoffset2g40ma2 0pdoffset2g40mvalid"},
file:000651b6774798d48193b89f5ab8efe14219d1d1 -> file:1b21327b2e0866e463911cc8f36e98a41a061267
--- a/drivers/net/wireless/bcmdhd/include/bcmutils.h
+++ b/drivers/net/wireless/bcmdhd/include/bcmutils.h
@@ -121,8 +121,8 @@ typedef struct {
uint32 max_avail;
uint32 max_used;
uint32 queue_capacity;
- uint32 rtsfail;
- uint32 acked;
+ uint32 rtsfail;
+ uint32 acked;
} pktq_counters_t;
#endif
@@ -139,9 +139,9 @@ struct pktq {
struct pktq_prec q[PKTQ_MAX_PREC];
#ifdef PKTQ_LOG
- pktq_counters_t _prec_cnt[PKTQ_MAX_PREC];
- pktq_counters_t _prec_bytes[PKTQ_MAX_PREC];
- uint32 _logtime;
+ pktq_counters_t _prec_cnt[PKTQ_MAX_PREC];
+ pktq_counters_t _prec_bytes[PKTQ_MAX_PREC];
+ uint32 _logtime;
#endif
};
@@ -578,19 +578,19 @@ extern int bcm_format_ssid(char* buf, co
#ifndef LIMIT_TO_RANGE
#define LIMIT_TO_RANGE(x, min, max) \
((x) < (min) ? (min) : ((x) > (max) ? (max) : (x)))
-#endif
+#endif
#ifndef LIMIT_TO_MAX
#define LIMIT_TO_MAX(x, max) \
(((x) > (max) ? (max) : (x)))
-#endif
+#endif
#ifndef LIMIT_TO_MIN
#define LIMIT_TO_MIN(x, min) \
(((x) < (min) ? (min) : (x)))
-#endif
+#endif
#define CEIL(x, y) (((x) + ((y) - 1)) / (y))
#define ROUNDUP(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
@@ -622,7 +622,7 @@ extern void *_bcmutils_dummy_fn;
#ifndef setbit
-#ifndef NBBY
+#ifndef NBBY
#define NBBY 8
#endif
#define setbit(a, i) (((uint8 *)a)[(i) / NBBY] |= 1 << ((i) % NBBY))
@@ -689,7 +689,7 @@ extern void *_bcmutils_dummy_fn;
#else
#define MACDBG "%02x:%02x:%02x"
#define MAC2STRDBG(ea) (ea)[0], (ea)[4], (ea)[5]
-#endif
+#endif
typedef struct bcm_bit_desc {
file:810795ad57983d9e4414dc0345c39000b91e8d1e -> file:c41def6c7d8abf92a47c8a349abf68d924b62320
--- a/drivers/net/wireless/bcmdhd/include/hndpmu.h
+++ b/drivers/net/wireless/bcmdhd/include/hndpmu.h
@@ -21,7 +21,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: hndpmu.h 344142 2012-07-11 10:50:39Z $
+ * $Id: hndpmu.h 241182 2011-02-17 21:50:03Z $
*/
#ifndef _hndpmu_h_
file:a8cb086fa5f7a83fa57f566117351f89944e8fb7 -> file:149b74002f2019d98ce1c1d8264c053312e2936a
--- a/drivers/net/wireless/bcmdhd/include/linuxver.h
+++ b/drivers/net/wireless/bcmdhd/include/linuxver.h
@@ -22,7 +22,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: linuxver.h 387186 2013-02-24 08:45:22Z $
+ * $Id: linuxver.h 367714 2012-11-09 03:26:01Z $
*/
#ifndef _linuxver_h_
@@ -95,20 +95,20 @@
#ifndef flush_scheduled_work
#define flush_scheduled_work() flush_scheduled_tasks()
#endif
-#endif
+#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0))
#define DAEMONIZE(a) daemonize(a); \
allow_signal(SIGKILL); \
allow_signal(SIGTERM);
-#else
+#else
#define RAISE_RX_SOFTIRQ() \
cpu_raise_softirq(smp_processor_id(), NET_RX_SOFTIRQ)
#define DAEMONIZE(a) daemonize(); \
do { if (a) \
strncpy(current->comm, a, MIN(sizeof(current->comm), (strlen(a)))); \
} while (0);
-#endif
+#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
#define MY_INIT_WORK(_work, _func) INIT_WORK(_work, _func)
@@ -510,6 +510,7 @@ typedef struct {
#define SMP_RD_BARRIER_DEPENDS(x) smp_rmb(x)
#endif
+
#ifdef USE_KTHREAD_API
#define PROC_START(thread_func, owner, tsk_ctl, flags, name) \
{ \
file:e59cc00a0c3363d4ec1ddc015c5c7a3d4c4fb0b8 -> file:b7173fdf5f908b8a4723ebdbcfd9d0ec15863c4a
--- a/drivers/net/wireless/bcmdhd/include/osl.h
+++ b/drivers/net/wireless/bcmdhd/include/osl.h
@@ -87,7 +87,7 @@ typedef void (*osl_wreg_fn_t)(void *ctx
#define FOREACH_CHAINED_PKT(skb, nskb) \
for ((nskb) = NULL; (skb) != NULL; (skb) = (nskb))
#define PKTCFREE PKTFREE
-#endif
+#endif
#ifndef HNDCTF
#define PKTSETCHAINED(osh, skb)
file:ec8afc1b744ce462955ab9e632cd3c6a59f97324 -> file:aca93169f3fd91f04f56f5ec164a83be25e9f076
--- a/drivers/net/wireless/bcmdhd/include/proto/802.11.h
+++ b/drivers/net/wireless/bcmdhd/include/proto/802.11.h
@@ -412,28 +412,28 @@ BWL_PRE_PACKED_STRUCT struct dot11y_acti
BWL_PRE_PACKED_STRUCT struct dot11_wide_bw_channel_switch {
- uint8 id;
- uint8 len;
- uint8 channel_width;
- uint8 center_frequency_segment_0;
- uint8 center_frequency_segment_1;
+ uint8 id;
+ uint8 len;
+ uint8 channel_width;
+ uint8 center_frequency_segment_0;
+ uint8 center_frequency_segment_1;
} BWL_POST_PACKED_STRUCT;
typedef struct dot11_wide_bw_channel_switch dot11_wide_bw_chan_switch_ie_t;
-#define DOT11_WIDE_BW_SWITCH_IE_LEN 3
+#define DOT11_WIDE_BW_SWITCH_IE_LEN 3
BWL_PRE_PACKED_STRUCT struct dot11_channel_switch_wrapper {
- uint8 id;
- uint8 len;
+ uint8 id;
+ uint8 len;
dot11_wide_bw_chan_switch_ie_t wb_chan_switch_ie;
} BWL_POST_PACKED_STRUCT;
typedef struct dot11_channel_switch_wrapper dot11_chan_switch_wrapper_ie_t;
BWL_PRE_PACKED_STRUCT struct dot11_vht_transmit_power_envelope {
- uint8 id;
- uint8 len;
+ uint8 id;
+ uint8 len;
uint8 transmit_power_info;
uint8 local_max_transmit_power_20;
} BWL_POST_PACKED_STRUCT;
@@ -499,7 +499,7 @@ typedef struct dot11_extcap dot11_extcap
#define DOT11_MEASURE_TYPE_NOISE 4
#define DOT11_MEASURE_TYPE_BEACON 5
#define DOT11_MEASURE_TYPE_FRAME 6
-#define DOT11_MEASURE_TYPE_STAT 7
+#define DOT11_MEASURE_TYPE_STAT 7
#define DOT11_MEASURE_TYPE_LCI 8
#define DOT11_MEASURE_TYPE_TXSTREAM 9
#define DOT11_MEASURE_TYPE_PAUSE 255
@@ -1090,7 +1090,7 @@ typedef struct ti_ie ti_ie_t;
#define DOT11_MNG_EXT_RATES_ID 50
#define DOT11_MNG_AP_CHREP_ID 51
#define DOT11_MNG_NBR_REP_ID 52
-#define DOT11_MNG_RCPI_ID 53
+#define DOT11_MNG_RCPI_ID 53
#define DOT11_MNG_MDIE_ID 54
#define DOT11_MNG_FTIE_ID 55
#define DOT11_MNG_FT_TI_ID 56
@@ -1098,20 +1098,20 @@ typedef struct ti_ie ti_ie_t;
#define DOT11_MNG_EXT_CSA_ID 60
#define DOT11_MNG_HT_ADD 61
#define DOT11_MNG_EXT_CHANNEL_OFFSET 62
-#define DOT11_MNG_BSS_AVR_ACCESS_DELAY_ID 63
-#define DOT11_MNG_ANTENNA_ID 64
-#define DOT11_MNG_RSNI_ID 65
-#define DOT11_MNG_MEASUREMENT_PILOT_TX_ID 66
-#define DOT11_MNG_BSS_AVAL_ADMISSION_CAP_ID 67
-#define DOT11_MNG_BSS_AC_ACCESS_DELAY_ID 68
+#define DOT11_MNG_BSS_AVR_ACCESS_DELAY_ID 63
+#define DOT11_MNG_ANTENNA_ID 64
+#define DOT11_MNG_RSNI_ID 65
+#define DOT11_MNG_MEASUREMENT_PILOT_TX_ID 66
+#define DOT11_MNG_BSS_AVAL_ADMISSION_CAP_ID 67
+#define DOT11_MNG_BSS_AC_ACCESS_DELAY_ID 68
#define DOT11_MNG_WAPI_ID 68
#define DOT11_MNG_TIME_ADVERTISE_ID 69
#define DOT11_MNG_RRM_CAP_ID 70
-#define DOT11_MNG_MULTIPLE_BSSID_ID 71
+#define DOT11_MNG_MULTIPLE_BSSID_ID 71
#define DOT11_MNG_HT_BSS_COEXINFO_ID 72
#define DOT11_MNG_HT_BSS_CHANNEL_REPORT_ID 73
#define DOT11_MNG_HT_OBSS_ID 74
-#define DOT11_MNG_MMIE_ID 76
+#define DOT11_MNG_MMIE_ID 76
#define DOT11_MNG_CHANNEL_USAGE 97
#define DOT11_MNG_TIME_ZONE_ID 98
#define DOT11_MNG_LINK_IDENTIFIER_ID 101
@@ -1128,9 +1128,9 @@ typedef struct ti_ie ti_ie_t;
#define DOT11_MNG_EXT_CAP_ID 127
#define DOT11_MNG_VHT_CAP_ID 191
#define DOT11_MNG_VHT_OPERATION_ID 192
-#define DOT11_MNG_WIDE_BW_CHANNEL_SWITCH_ID 194
-#define DOT11_MNG_VHT_TRANSMIT_POWER_ENVELOPE_ID 195
-#define DOT11_MNG_CHANNEL_SWITCH_WRAPPER_ID 196
+#define DOT11_MNG_WIDE_BW_CHANNEL_SWITCH_ID 194
+#define DOT11_MNG_VHT_TRANSMIT_POWER_ENVELOPE_ID 195
+#define DOT11_MNG_CHANNEL_SWITCH_WRAPPER_ID 196
#define DOT11_MNG_WPA_ID 221
@@ -1142,23 +1142,23 @@ typedef struct ti_ie ti_ie_t;
-#define DOT11_RATE_1M 2
-#define DOT11_RATE_2M 4
-#define DOT11_RATE_5M5 11
-#define DOT11_RATE_11M 22
-#define DOT11_RATE_6M 12
-#define DOT11_RATE_9M 18
-#define DOT11_RATE_12M 24
-#define DOT11_RATE_18M 36
-#define DOT11_RATE_24M 48
-#define DOT11_RATE_36M 72
-#define DOT11_RATE_48M 96
-#define DOT11_RATE_54M 108
-#define DOT11_RATE_MAX 108
+#define DOT11_RATE_1M 2
+#define DOT11_RATE_2M 4
+#define DOT11_RATE_5M5 11
+#define DOT11_RATE_11M 22
+#define DOT11_RATE_6M 12
+#define DOT11_RATE_9M 18
+#define DOT11_RATE_12M 24
+#define DOT11_RATE_18M 36
+#define DOT11_RATE_24M 48
+#define DOT11_RATE_36M 72
+#define DOT11_RATE_48M 96
+#define DOT11_RATE_54M 108
+#define DOT11_RATE_MAX 108
-#define DOT11_RATE_BASIC 0x80
-#define DOT11_RATE_MASK 0x7F
+#define DOT11_RATE_BASIC 0x80
+#define DOT11_RATE_MASK 0x7F
@@ -1217,7 +1217,7 @@ typedef struct ti_ie ti_ie_t;
#define DOT11_ACTION_CAT_HT 7
#define DOT11_ACTION_CAT_SA_QUERY 8
#define DOT11_ACTION_CAT_PDPA 9
-#define DOT11_ACTION_CAT_WNM 10
+#define DOT11_ACTION_CAT_WNM 10
#define DOT11_ACTION_NOTIFICATION 17
#define DOT11_ACTION_CAT_VSP 126
#define DOT11_ACTION_CAT_VS 127
@@ -1870,27 +1870,27 @@ typedef struct dot11_lmrep dot11_lmrep_t
#define HT_T_GF_STF 8
#define HT_T_SYML 4
-#define HT_N_SERVICE 16
-#define HT_N_TAIL 6
+#define HT_N_SERVICE 16
+#define HT_N_TAIL 6
-#define APHY_SLOT_TIME 9
-#define APHY_SIFS_TIME 16
-#define APHY_DIFS_TIME (APHY_SIFS_TIME + (2 * APHY_SLOT_TIME))
-#define APHY_PREAMBLE_TIME 16
-#define APHY_SIGNAL_TIME 4
-#define APHY_SYMBOL_TIME 4
-#define APHY_SERVICE_NBITS 16
-#define APHY_TAIL_NBITS 6
-#define APHY_CWMIN 15
-
-
-#define BPHY_SLOT_TIME 20
-#define BPHY_SIFS_TIME 10
-#define BPHY_DIFS_TIME 50
-#define BPHY_PLCP_TIME 192
-#define BPHY_PLCP_SHORT_TIME 96
-#define BPHY_CWMIN 31
+#define APHY_SLOT_TIME 9
+#define APHY_SIFS_TIME 16
+#define APHY_DIFS_TIME (APHY_SIFS_TIME + (2 * APHY_SLOT_TIME))
+#define APHY_PREAMBLE_TIME 16
+#define APHY_SIGNAL_TIME 4
+#define APHY_SYMBOL_TIME 4
+#define APHY_SERVICE_NBITS 16
+#define APHY_TAIL_NBITS 6
+#define APHY_CWMIN 15
+
+
+#define BPHY_SLOT_TIME 20
+#define BPHY_SIFS_TIME 10
+#define BPHY_DIFS_TIME 50
+#define BPHY_PLCP_TIME 192
+#define BPHY_PLCP_SHORT_TIME 96
+#define BPHY_CWMIN 31
#define DOT11_OFDM_SIGNAL_EXTENSION 6
@@ -1951,8 +1951,8 @@ typedef int vht_group_id_t;
#define VHT_T_SIG_B 4
#define VHT_T_SYML 4
-#define VHT_N_SERVICE 16
-#define VHT_N_TAIL 6
+#define VHT_N_SERVICE 16
+#define VHT_N_TAIL 6
@@ -1978,7 +1978,7 @@ typedef struct d11cnt {
-#define BRCM_SYSCAP_WET_TUNNEL 0x0100
+#define BRCM_SYSCAP_WET_TUNNEL 0x0100
#define BRCM_OUI "\x00\x10\x18"
@@ -2010,7 +2010,7 @@ typedef struct brcm_ie brcm_ie_t;
#define BRF1_RX_LARGE_AGG 0x10
#define BRF1_RFAWARE_DCS 0x20
#define BRF1_SOFTAP 0x40
-#define BRF1_DWDS 0x80
+#define BRF1_DWDS 0x80
BWL_PRE_PACKED_STRUCT struct vndr_ie {
@@ -2291,8 +2291,8 @@ typedef struct vht_cap_ie vht_cap_ie_t;
#define VHT_CAP_MCS_MAP_0_8 1
#define VHT_CAP_MCS_MAP_0_9 2
#define VHT_CAP_MCS_MAP_NONE 3
-#define VHT_CAP_MCS_MAP_S 2
-#define VHT_CAP_MCS_MAP_M 0x3
+#define VHT_CAP_MCS_MAP_S 2
+#define VHT_CAP_MCS_MAP_M 0x3
#define VHT_CAP_MCS_MAP_NONE_ALL 0xffff
@@ -2367,9 +2367,9 @@ typedef enum vht_op_chan_width {
#define BRCM_VHT_FEATURES_OUITYPE 0x4
BWL_PRE_PACKED_STRUCT struct vht_features_ie_hdr {
- uint8 oui[3];
- uint8 type;
- uint8 rate_mask;
+ uint8 oui[3];
+ uint8 type;
+ uint8 rate_mask;
} BWL_POST_PACKED_STRUCT;
typedef struct vht_features_ie_hdr vht_features_ie_hdr_t;
@@ -2389,7 +2389,7 @@ typedef struct vht_features_ie_hdr vht_f
#define WPA_OUI "\x00\x50\xF2"
#define WPA_OUI_TYPE 1
-#define WPA_OUI_LEN 3
+#define WPA_OUI_LEN 3
#define WPA_VERSION 1
#define WPA2_OUI "\x00\x0F\xAC"
#define WPA2_OUI_LEN 3
@@ -2417,8 +2417,8 @@ typedef struct vht_features_ie_hdr vht_f
#define WFA_OUI_TYPE_TPC 8
#ifdef WLTDLS
-#define WFA_OUI_TYPE_TPQ 4
-#define WFA_OUI_TYPE_TPS 5
+#define WFA_OUI_TYPE_TPQ 4
+#define WFA_OUI_TYPE_TPS 5
#define WFA_OUI_TYPE_WFD 10
#endif
@@ -2454,7 +2454,7 @@ typedef struct vht_features_ie_hdr vht_f
#define AES_KEY_SIZE 16
#define AES_MIC_SIZE 8
#define BIP_KEY_SIZE 16
-#define BIP_MIC_SIZE 8
+#define BIP_MIC_SIZE 8
#define WCN_OUI "\x00\x50\xf2"
@@ -2515,11 +2515,11 @@ typedef struct dot11_gtk_ie dot11_gtk_ie
BWL_PRE_PACKED_STRUCT struct mmic_ie {
- uint8 id;
- uint8 len;
- uint16 key_id;
- uint8 ipn[6];
- uint8 mic[BIP_MIC_SIZE];
+ uint8 id;
+ uint8 len;
+ uint16 key_id;
+ uint8 ipn[6];
+ uint8 mic[BIP_MIC_SIZE];
} BWL_POST_PACKED_STRUCT;
typedef struct mmic_ie mmic_ie_t;
file:1d69529ac4b406540c2049b81ade7e70efd6796d -> file:243a97538fd3001ad429c2143349c6c15969899c
--- a/drivers/net/wireless/bcmdhd/include/proto/bcmevent.h
+++ b/drivers/net/wireless/bcmdhd/include/proto/bcmevent.h
@@ -188,23 +188,23 @@ typedef BWL_PRE_PACKED_STRUCT struct bcm
#define WLC_E_AUTH_REQ 91
#define WLC_E_TDLS_PEER_EVENT 92
#define WLC_E_SPEEDY_RECREATE_FAIL 93
-#define WLC_E_NATIVE 94
-#define WLC_E_PKTDELAY_IND 95
-#define WLC_E_AWDL_AW 96
-#define WLC_E_AWDL_ROLE 97
-#define WLC_E_AWDL_EVENT 98
+#define WLC_E_NATIVE 94
+#define WLC_E_PKTDELAY_IND 95
+#define WLC_E_AWDL_AW 96
+#define WLC_E_AWDL_ROLE 97
+#define WLC_E_AWDL_EVENT 98
#ifdef WLNIC
-#define WLC_E_NIC_AF_TXS 99
-#define WLC_E_NIC_NIC_REPORT 100
+#define WLC_E_NIC_AF_TXS 99
+#define WLC_E_NIC_NIC_REPORT 100
#endif
#define WLC_E_BEACON_FRAME_RX 101
-#define WLC_E_SERVICE_FOUND 102
-#define WLC_E_GAS_FRAGMENT_RX 103
-#define WLC_E_GAS_COMPLETE 104
-#define WLC_E_P2PO_ADD_DEVICE 105
-#define WLC_E_P2PO_DEL_DEVICE 106
-#define WLC_E_IBSS_COALESCE 107
-#define WLC_E_LAST 108
+#define WLC_E_SERVICE_FOUND 102
+#define WLC_E_GAS_FRAGMENT_RX 103
+#define WLC_E_GAS_COMPLETE 104
+#define WLC_E_P2PO_ADD_DEVICE 105
+#define WLC_E_P2PO_DEL_DEVICE 106
+#define WLC_E_IBSS_COALESCE 107
+#define WLC_E_LAST 108
typedef struct {
@@ -231,8 +231,8 @@ extern const int bcmevent_names_size;
#define WLC_E_STATUS_SUPPRESS 12
#define WLC_E_STATUS_NOCHANS 13
#ifdef BCMCCX
-#define WLC_E_STATUS_CCXFASTRM 14
-#endif
+#define WLC_E_STATUS_CCXFASTRM 14
+#endif
#define WLC_E_STATUS_CS_ABORT 15
#define WLC_E_STATUS_ERROR 16
@@ -266,20 +266,20 @@ extern const int bcmevent_names_size;
#define WLC_E_PRUNE_NO_COMMON_RATES 9
#define WLC_E_PRUNE_BASIC_RATES 10
#ifdef BCMCCX
-#define WLC_E_PRUNE_CCXFAST_PREVAP 11
-#endif
+#define WLC_E_PRUNE_CCXFAST_PREVAP 11
+#endif
#define WLC_E_PRUNE_CIPHER_NA 12
#define WLC_E_PRUNE_KNOWN_STA 13
#ifdef BCMCCX
-#define WLC_E_PRUNE_CCXFAST_DROAM 14
-#endif
+#define WLC_E_PRUNE_CCXFAST_DROAM 14
+#endif
#define WLC_E_PRUNE_WDS_PEER 15
#define WLC_E_PRUNE_QBSS_LOAD 16
#define WLC_E_PRUNE_HOME_AP 17
#ifdef BCMCCX
-#define WLC_E_PRUNE_AP_BLOCKED 18
-#define WLC_E_PRUNE_NO_DIAG_SUPPORT 19
-#endif
+#define WLC_E_PRUNE_AP_BLOCKED 18
+#define WLC_E_PRUNE_NO_DIAG_SUPPORT 19
+#endif
#define WLC_E_SUP_OTHER 0
@@ -336,7 +336,7 @@ typedef struct wl_event_data_if {
#define WLC_E_IF_ROLE_BTA_ACCEPTOR 6
#endif
-#define WLC_E_IF_FLAGS_BSSCFG_NOIF 0x1
+#define WLC_E_IF_FLAGS_BSSCFG_NOIF 0x1
#define WLC_E_LINK_BCN_LOSS 1
#define WLC_E_LINK_DISASSOC 2
@@ -354,23 +354,23 @@ typedef struct wl_event_data_if {
typedef BWL_PRE_PACKED_STRUCT struct wl_event_gas {
- uint16 channel;
- uint8 dialog_token;
- uint8 fragment_id;
- uint16 status_code;
- uint16 data_len;
- uint8 data[1];
+ uint16 channel;
+ uint8 dialog_token;
+ uint8 fragment_id;
+ uint16 status_code;
+ uint16 data_len;
+ uint8 data[1];
} BWL_POST_PACKED_STRUCT wl_event_gas_t;
typedef BWL_PRE_PACKED_STRUCT struct wl_event_sd {
- uint8 protocol;
- uint16 channel;
- uint8 dialog_token;
- uint8 fragment_id;
- uint16 status_code;
- uint16 data_len;
- uint8 data[1];
+ uint8 protocol;
+ uint16 channel;
+ uint8 dialog_token;
+ uint8 fragment_id;
+ uint16 status_code;
+ uint16 data_len;
+ uint8 data[1];
} BWL_POST_PACKED_STRUCT wl_event_sd_t;
file:e24074635c0beed5f02b7d7c61c13a04fb8c4519 -> file:02ddd37368589f7a5f8db22d66c174bcf7d02a3c
--- a/drivers/net/wireless/bcmdhd/include/proto/bcmip.h
+++ b/drivers/net/wireless/bcmdhd/include/proto/bcmip.h
@@ -52,16 +52,16 @@
#define IP_PROT_ICMP6 0x3a
-#define IPV4_VER_HL_OFFSET 0
-#define IPV4_TOS_OFFSET 1
-#define IPV4_PKTLEN_OFFSET 2
-#define IPV4_PKTFLAG_OFFSET 6
-#define IPV4_PROT_OFFSET 9
-#define IPV4_CHKSUM_OFFSET 10
-#define IPV4_SRC_IP_OFFSET 12
-#define IPV4_DEST_IP_OFFSET 16
-#define IPV4_OPTIONS_OFFSET 20
-#define IPV4_MIN_HEADER_LEN 20
+#define IPV4_VER_HL_OFFSET 0
+#define IPV4_TOS_OFFSET 1
+#define IPV4_PKTLEN_OFFSET 2
+#define IPV4_PKTFLAG_OFFSET 6
+#define IPV4_PROT_OFFSET 9
+#define IPV4_CHKSUM_OFFSET 10
+#define IPV4_SRC_IP_OFFSET 12
+#define IPV4_DEST_IP_OFFSET 16
+#define IPV4_OPTIONS_OFFSET 20
+#define IPV4_MIN_HEADER_LEN 20
#define IPV4_VER_MASK 0xf0
file:7debff4293a8cf43fa6dfaef245b05913ce3987b -> file:7b9b2e2b79480d6024e176a521a4026474935e86
--- a/drivers/net/wireless/bcmdhd/include/proto/ethernet.h
+++ b/drivers/net/wireless/bcmdhd/include/proto/ethernet.h
@@ -24,7 +24,7 @@
* $Id: ethernet.h 354714 2012-09-03 03:12:21Z $
*/
-#ifndef _NET_ETHERNET_H_
+#ifndef _NET_ETHERNET_H_
#define _NET_ETHERNET_H_
#ifndef _TYPEDEFS_H_
@@ -68,10 +68,10 @@
#define ETHER_TYPE_BRCM 0x886c
#define ETHER_TYPE_802_1X 0x888e
#ifdef PLC
-#define ETHER_TYPE_88E1 0x88e1
-#define ETHER_TYPE_8912 0x8912
-#define ETHER_TYPE_GIGLED 0xffff
-#endif
+#define ETHER_TYPE_88E1 0x88e1
+#define ETHER_TYPE_8912 0x8912
+#define ETHER_TYPE_GIGLED 0xffff
+#endif
#define ETHER_TYPE_802_1X_PREAUTH 0x88c7
#define ETHER_TYPE_WAI 0x88b4
#define ETHER_TYPE_89_0D 0x890d
@@ -99,7 +99,7 @@
((uint8 *)ea)[5] = ((mgrp_ip) >> 0) & 0xff; \
}
-#ifndef __INCif_etherh
+#ifndef __INCif_etherh
BWL_PRE_PACKED_STRUCT struct ether_header {
uint8 ether_dhost[ETHER_ADDR_LEN];
file:8134610dd5fb74a6ebc8856a0c6a52a6ee5d531d -> file:8f7652f0bf9b260ea8dfc2ece8e8371ab8a4372b
--- a/drivers/net/wireless/bcmdhd/include/proto/p2p.h
+++ b/drivers/net/wireless/bcmdhd/include/proto/p2p.h
@@ -376,7 +376,7 @@ typedef struct wifi_p2p_pub_act_frame wi
#define P2P_PAF_DEVDIS_RSP 6
#define P2P_PAF_PROVDIS_REQ 7
#define P2P_PAF_PROVDIS_RSP 8
-#define P2P_PAF_SUBTYPE_INVALID 255
+#define P2P_PAF_SUBTYPE_INVALID 255
#define P2P_TYPE_MNREQ P2P_PAF_GON_REQ
file:a3cb25b1f17ece2e29bc3378857ffa503520175c -> file:2eb483294f3bdfc14ad59372ce66fac79d66088c
--- a/drivers/net/wireless/bcmdhd/include/proto/vlan.h
+++ b/drivers/net/wireless/bcmdhd/include/proto/vlan.h
@@ -40,8 +40,8 @@
#define VLAN_PRI_MASK 7
-#define VLAN_TPID_OFFSET 12
-#define VLAN_TCI_OFFSET 14
+#define VLAN_TPID_OFFSET 12
+#define VLAN_TCI_OFFSET 14
#define VLAN_TAG_LEN 4
#define VLAN_TAG_OFFSET (2 * ETHER_ADDR_LEN)
@@ -49,8 +49,8 @@
#define VLAN_TPID 0x8100
struct vlan_header {
- uint16 vlan_type;
- uint16 vlan_tag;
+ uint16 vlan_type;
+ uint16 vlan_tag;
};
struct ethervlan_header {
file:9c73b545ece1cd2ac4b79220d03a484e078b7adc -> file:7ebeedacc198f8d136a2e77c2716aba221ac3535
--- a/drivers/net/wireless/bcmdhd/include/proto/wpa.h
+++ b/drivers/net/wireless/bcmdhd/include/proto/wpa.h
@@ -36,7 +36,9 @@
#ifdef CUSTOMER_HW4
#include <dhd_sec_feature.h>
-#endif
+#endif
+
+
#define DOT11_RC_INVALID_WPA_IE 13
@@ -118,9 +120,9 @@ typedef BWL_PRE_PACKED_STRUCT struct
#define WPA_CIPHER_BIP 6
#define WPA_CIPHER_TPK 7
#ifdef BCMCCX
-#define WPA_CIPHER_CKIP 8
-#define WPA_CIPHER_CKIP_MMH 9
-#define WPA_CIPHER_WEP_MMH 10
+#define WPA_CIPHER_CKIP 8
+#define WPA_CIPHER_CKIP_MMH 9
+#define WPA_CIPHER_WEP_MMH 10
#define IS_CCX_CIPHER(cipher) ((cipher) == WPA_CIPHER_CKIP || \
(cipher) == WPA_CIPHER_CKIP_MMH || \
file:e949ad660dc7597c2cf8b2edcbbd8412f5f68738 -> file:463c8afded1142e14b861248c1a33e9bdd007f22
--- a/drivers/net/wireless/bcmdhd/include/sbchipc.h
+++ b/drivers/net/wireless/bcmdhd/include/sbchipc.h
@@ -289,10 +289,10 @@ typedef volatile struct {
uint32 pllcontrol_data;
uint32 pmustrapopt;
uint32 pmu_xtalfreq;
- uint32 retention_ctl;
+ uint32 retention_ctl;
uint32 PAD[3];
- uint32 retention_grpidx;
- uint32 retention_grpctl;
+ uint32 retention_grpidx;
+ uint32 retention_grpctl;
uint32 PAD[94];
uint16 sromotp[512];
#ifdef NFLASH_SUPPORT
@@ -358,58 +358,58 @@ typedef volatile struct {
uint32 nand_cache_data;
uint32 nand_ctrl_config;
uint32 nand_ctrl_status;
-#endif
- uint32 gci_corecaps0;
+#endif
+ uint32 gci_corecaps0;
uint32 gci_corecaps1;
uint32 gci_corecaps2;
uint32 gci_corectrl;
- uint32 gci_corestat;
- uint32 gci_intstat;
- uint32 gci_intmask;
- uint32 gci_wakemask;
- uint32 gci_levelintstat;
- uint32 gci_eventintstat;
+ uint32 gci_corestat;
+ uint32 gci_intstat;
+ uint32 gci_intmask;
+ uint32 gci_wakemask;
+ uint32 gci_levelintstat;
+ uint32 gci_eventintstat;
uint32 PAD[6];
- uint32 gci_indirect_addr;
- uint32 gci_gpioctl;
+ uint32 gci_indirect_addr;
+ uint32 gci_gpioctl;
uint32 PAD;
- uint32 gci_gpiomask;
+ uint32 gci_gpiomask;
uint32 PAD;
- uint32 gci_miscctl;
+ uint32 gci_miscctl;
uint32 PAD[2];
- uint32 gci_input[32];
- uint32 gci_event[32];
- uint32 gci_output[4];
- uint32 gci_control_0;
- uint32 gci_control_1;
- uint32 gci_level_polreg;
- uint32 gci_levelintmask;
- uint32 gci_eventintmask;
+ uint32 gci_input[32];
+ uint32 gci_event[32];
+ uint32 gci_output[4];
+ uint32 gci_control_0;
+ uint32 gci_control_1;
+ uint32 gci_level_polreg;
+ uint32 gci_levelintmask;
+ uint32 gci_eventintmask;
uint32 PAD[3];
- uint32 gci_inbandlevelintmask;
- uint32 gci_inbandeventintmask;
+ uint32 gci_inbandlevelintmask;
+ uint32 gci_inbandeventintmask;
uint32 PAD[2];
- uint32 gci_seciauxtx;
- uint32 gci_seciauxrx;
- uint32 gci_secitx_datatag;
- uint32 gci_secirx_datatag;
- uint32 gci_secitx_datamask;
- uint32 gci_seciusef0tx_reg;
- uint32 gci_secif0tx_offset;
- uint32 gci_secif0rx_offset;
- uint32 gci_secif1tx_offset;
+ uint32 gci_seciauxtx;
+ uint32 gci_seciauxrx;
+ uint32 gci_secitx_datatag;
+ uint32 gci_secirx_datatag;
+ uint32 gci_secitx_datamask;
+ uint32 gci_seciusef0tx_reg;
+ uint32 gci_secif0tx_offset;
+ uint32 gci_secif0rx_offset;
+ uint32 gci_secif1tx_offset;
uint32 PAD[3];
- uint32 gci_uartescval;
+ uint32 gci_uartescval;
uint32 PAD[3];
- uint32 gci_secibauddiv;
- uint32 gci_secifcr;
- uint32 gci_secilcr;
- uint32 gci_secimcr;
+ uint32 gci_secibauddiv;
+ uint32 gci_secifcr;
+ uint32 gci_secilcr;
+ uint32 gci_secimcr;
uint32 PAD[2];
- uint32 gci_baudadj;
+ uint32 gci_baudadj;
uint32 PAD;
- uint32 gci_chipctrl;
- uint32 gci_chipsts;
+ uint32 gci_chipctrl;
+ uint32 gci_chipsts;
} chipcregs_t;
#endif
@@ -515,11 +515,11 @@ typedef volatile struct {
#define CC_CAP2_GSIO 0x00000002
-#define CC_CAP_EXT_SECI_PRESENT 0x00000001
-#define CC_CAP_EXT_GCI_PRESENT 0x00000004
+#define CC_CAP_EXT_SECI_PRESENT 0x00000001
+#define CC_CAP_EXT_GCI_PRESENT 0x00000004
-#define GCI_WL_CHN_INFO_MASK (0xFF00)
+#define GCI_WL_CHN_INFO_MASK (0xFF00)
#define PLL_NONE 0x00000000
#define PLL_TYPE1 0x00010000
@@ -556,7 +556,7 @@ typedef volatile struct {
#define NS_FAST_MEM_CLOCK 800000000
#define NS_MEM_CLOCK 533000000
#define NS_SLOW_MEM_CLOCK 400000000
-#endif
+#endif
#define HT_CLOCK 80000000
@@ -2125,7 +2125,7 @@ typedef volatile struct {
#define PMU_VREG4_LPLDO2_1p15V 1
#define PMU_VREG4_LPLDO2_1p20V 2
#define PMU_VREG4_LPLDO2_1p10V 3
-#define PMU_VREG4_LPLDO2_0p90V 4
+#define PMU_VREG4_LPLDO2_0p90V 4
#define PMU_VREG4_HSICLDO_BYPASS_SHIFT 27
#define PMU_VREG4_HSICLDO_BYPASS_MASK 0x1
@@ -2208,11 +2208,11 @@ typedef volatile struct {
#define CCTRL43341_BT_ISO_SEL (1 << 16)
-#define CCTRL1_4334_GPIO_SEL (1 << 0)
-#define CCTRL1_4334_ERCX_SEL (1 << 1)
-#define CCTRL1_4334_SDIO_HOST_WAKE (1 << 2)
-#define CCTRL1_4334_JTAG_DISABLE (1 << 3)
-#define CCTRL1_4334_UART_ON_4_5 (1 << 28)
+#define CCTRL1_4334_GPIO_SEL (1 << 0)
+#define CCTRL1_4334_ERCX_SEL (1 << 1)
+#define CCTRL1_4334_SDIO_HOST_WAKE (1 << 2)
+#define CCTRL1_4334_JTAG_DISABLE (1 << 3)
+#define CCTRL1_4334_UART_ON_4_5 (1 << 28)
#define CCTRL1_4324_GPIO_SEL (1 << 0)
@@ -2220,47 +2220,47 @@ typedef volatile struct {
-#define CST43143_REMAP_TO_ROM (3 << 0)
-#define CST43143_SDIO_EN (1 << 2)
-#define CST43143_SDIO_ISO (1 << 3)
-#define CST43143_USB_CPU_LESS (1 << 4)
-#define CST43143_CBUCK_MODE (3 << 6)
-#define CST43143_POK_CBUCK (1 << 8)
+#define CST43143_REMAP_TO_ROM (3 << 0)
+#define CST43143_SDIO_EN (1 << 2)
+#define CST43143_SDIO_ISO (1 << 3)
+#define CST43143_USB_CPU_LESS (1 << 4)
+#define CST43143_CBUCK_MODE (3 << 6)
+#define CST43143_POK_CBUCK (1 << 8)
#define CST43143_PMU_OVRSPIKE (1 << 9)
#define CST43143_PMU_OVRTEMP (0xF << 10)
#define CST43143_SR_FLL_CAL_DONE (1 << 14)
#define CST43143_USB_PLL_LOCKDET (1 << 15)
#define CST43143_PMU_PLL_LOCKDET (1 << 16)
-#define CST43143_CHIPMODE_SDIOD(cs) (((cs) & CST43143_SDIO_EN) != 0)
+#define CST43143_CHIPMODE_SDIOD(cs) (((cs) & CST43143_SDIO_EN) != 0)
#define CCTRL_43143_SECI (1<<0)
#define CCTRL_43143_BT_LEGACY (1<<1)
-#define CCTRL_43143_I2S_MODE (1<<2)
-#define CCTRL_43143_I2S_MASTER (1<<3)
-#define CCTRL_43143_I2S_FULL (1<<4)
-#define CCTRL_43143_GSIO (1<<5)
-#define CCTRL_43143_RF_SWCTRL_MASK (7<<6)
+#define CCTRL_43143_I2S_MODE (1<<2)
+#define CCTRL_43143_I2S_MASTER (1<<3)
+#define CCTRL_43143_I2S_FULL (1<<4)
+#define CCTRL_43143_GSIO (1<<5)
+#define CCTRL_43143_RF_SWCTRL_MASK (7<<6)
#define CCTRL_43143_RF_SWCTRL_0 (1<<6)
#define CCTRL_43143_RF_SWCTRL_1 (2<<6)
#define CCTRL_43143_RF_SWCTRL_2 (4<<6)
-#define CCTRL_43143_RF_XSWCTRL (1<<9)
-#define CCTRL_43143_HOST_WAKE0 (1<<11)
-#define CCTRL_43143_HOST_WAKE1 (1<<12)
-
-
-#define RES43143_EXT_SWITCHER_PWM 0
-#define RES43143_XTAL_PU 1
-#define RES43143_ILP_REQUEST 2
-#define RES43143_ALP_AVAIL 3
-#define RES43143_WL_CORE_READY 4
-#define RES43143_BBPLL_PWRSW_PU 5
-#define RES43143_HT_AVAIL 6
-#define RES43143_RADIO_PU 7
-#define RES43143_MACPHY_CLK_AVAIL 8
-#define RES43143_OTP_PU 9
-#define RES43143_LQ_AVAIL 10
+#define CCTRL_43143_RF_XSWCTRL (1<<9)
+#define CCTRL_43143_HOST_WAKE0 (1<<11)
+#define CCTRL_43143_HOST_WAKE1 (1<<12)
+
+
+#define RES43143_EXT_SWITCHER_PWM 0
+#define RES43143_XTAL_PU 1
+#define RES43143_ILP_REQUEST 2
+#define RES43143_ALP_AVAIL 3
+#define RES43143_WL_CORE_READY 4
+#define RES43143_BBPLL_PWRSW_PU 5
+#define RES43143_HT_AVAIL 6
+#define RES43143_RADIO_PU 7
+#define RES43143_MACPHY_CLK_AVAIL 8
+#define RES43143_OTP_PU 9
+#define RES43143_LQ_AVAIL 10
#define PMU43143_XTAL_CORE_SIZE_MASK 0x3F
@@ -2447,14 +2447,14 @@ typedef volatile struct {
#define CST4335_RES_INIT_MODE_SHIFT 7
#define CST4335_RES_INIT_MODE_MASK 0x00000180
#define CST4335_CHIPMODE_MASK 0xF
-#define CST4335_CHIPMODE_SDIOD(cs) (((cs) & (1 << 0)) != 0)
-#define CST4335_CHIPMODE_GSPI(cs) (((cs) & (1 << 1)) != 0)
-#define CST4335_CHIPMODE_USB20D(cs) (((cs) & (1 << 2)) != 0)
-#define CST4335_CHIPMODE_PCIE(cs) (((cs) & (1 << 3)) != 0)
+#define CST4335_CHIPMODE_SDIOD(cs) (((cs) & (1 << 0)) != 0)
+#define CST4335_CHIPMODE_GSPI(cs) (((cs) & (1 << 1)) != 0)
+#define CST4335_CHIPMODE_USB20D(cs) (((cs) & (1 << 2)) != 0)
+#define CST4335_CHIPMODE_PCIE(cs) (((cs) & (1 << 3)) != 0)
-#define CCTRL1_4335_GPIO_SEL (1 << 0)
-#define CCTRL1_4335_SDIO_HOST_WAKE (1 << 2)
+#define CCTRL1_4335_GPIO_SEL (1 << 0)
+#define CCTRL1_4335_SDIO_HOST_WAKE (1 << 2)
#define CR4_4335_RAM_BASE (0x180000)
#define CR4_4350_RAM_BASE (0x180000)
@@ -2562,7 +2562,7 @@ typedef volatile struct {
#define CC4350_FNSEL_GCI (7)
#define CC4350_FNSEL_MISC1 (8)
#define CC4350_FNSEL_MISC2 (9)
-#define CC4350_FNSEL_PWDOG (10)
+#define CC4350_FNSEL_PWDOG (10)
#define CC4350_FNSEL_IND (12)
#define CC4350_FNSEL_PDN (13)
#define CC4350_FNSEL_PUP (14)
file:811d68339247588487ce52c0e7794dd3912a6cb1 -> file:0b4460275eca0e7a558e638efd2671641abb0013
--- a/drivers/net/wireless/bcmdhd/include/sbhnddma.h
+++ b/drivers/net/wireless/bcmdhd/include/sbhnddma.h
@@ -264,7 +264,7 @@ typedef volatile struct {
#define D64_XP_LD_MASK 0x00001fff
-#define D64_XS0_CD_MASK (di->d64_xs0_cd_mask)
+#define D64_XS0_CD_MASK (di->d64_xs0_cd_mask)
#define D64_XS0_XS_MASK 0xf0000000
#define D64_XS0_XS_SHIFT 28
#define D64_XS0_XS_DISABLED 0x00000000
@@ -273,7 +273,7 @@ typedef volatile struct {
#define D64_XS0_XS_STOPPED 0x30000000
#define D64_XS0_XS_SUSP 0x40000000
-#define D64_XS1_AD_MASK (di->d64_xs1_ad_mask)
+#define D64_XS1_AD_MASK (di->d64_xs1_ad_mask)
#define D64_XS1_XE_MASK 0xf0000000
#define D64_XS1_XE_SHIFT 28
#define D64_XS1_XE_NOERR 0x00000000
@@ -312,7 +312,7 @@ typedef volatile struct {
#define D64_RP_LD_MASK 0x00001fff
-#define D64_RS0_CD_MASK (di->d64_rs0_cd_mask)
+#define D64_RS0_CD_MASK (di->d64_rs0_cd_mask)
#define D64_RS0_RS_MASK 0xf0000000
#define D64_RS0_RS_SHIFT 28
#define D64_RS0_RS_DISABLED 0x00000000
file:5e969215b42663aeb905a71fe87e13c40e4f490d -> file:6ad98b521e764108f19768933ea56807dee056bc
--- a/drivers/net/wireless/bcmdhd/include/sbpcmcia.h
+++ b/drivers/net/wireless/bcmdhd/include/sbpcmcia.h
@@ -21,7 +21,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: sbpcmcia.h 356305 2012-09-12 04:55:06Z $
+ * $Id: sbpcmcia.h 326494 2012-04-09 13:29:57Z $
*/
#ifndef _SBPCMCIA_H
file:35f06e4bee1f1bfca510865f14eb14ba25126555 -> file:30a891ed05864f6155592fc0736def064dcd0300
--- a/drivers/net/wireless/bcmdhd/include/sbsdio.h
+++ b/drivers/net/wireless/bcmdhd/include/sbsdio.h
@@ -119,7 +119,7 @@
*/
#define SBSDIO_DEVCTL_EN_F2_BLK_WATERMARK 0x10 /* Enable function 2 tx for each block */
#define SBSDIO_DEVCTL_F2WM_ENAB 0x10 /* Enable F2 Watermark */
-#define SBSDIO_DEVCTL_NONDAT_PADS_ISO 0x20 /* Isolate sdio clk and cmd (non-data) */
+#define SBSDIO_DEVCTL_NONDAT_PADS_ISO 0x20 /* Isolate sdio clk and cmd (non-data) */
/* SBSDIO_FUNC1_CHIPCLKCSR */
#define SBSDIO_FORCE_ALP 0x01 /* Force ALP request to backplane */
file:6f539bbd26552f2161fc1f232bdce37c6e8c5809 -> file:0c0ffd516590b215fd6455a13f836868aa53e71a
--- a/drivers/net/wireless/bcmdhd/siutils.c
+++ b/drivers/net/wireless/bcmdhd/siutils.c
@@ -343,7 +343,7 @@ si_doattach(si_info_t *sii, uint devid,
char *pvars = NULL;
uint origidx;
#if !defined(_CFEZ_) || defined(CFG_WL)
-#endif
+#endif
ASSERT(GOODREGS(regs));
bzero((uchar*)sii, sizeof(si_info_t));
@@ -469,7 +469,7 @@ si_doattach(si_info_t *sii, uint devid,
if (bustype == PCI_BUS) {
}
-#endif
+#endif
pvars = NULL;
BCM_REFERENCE(pvars);
@@ -1133,7 +1133,7 @@ si_watchdog(si_t *sih, uint ticks)
si_core_disable(sih, 1);
si_setcore(sih, CC_CORE_ID, 0);
}
-#endif
+#endif
nb = (sih->ccrev < 26) ? 16 : ((sih->ccrev >= 37) ? 32 : 24);
/* The mips compiler uses the sllv instruction,
@@ -2281,7 +2281,7 @@ si_chipcontrl_epa4331_wowl(si_t *sih, bo
}
si_setcoreidx(sih, origidx);
}
-#endif
+#endif
uint
si_pll_reset(si_t *sih)
file:0ef258811b013e3743a9bc42041d7a1b3b78ca68 -> file:3232e3b05043c57bd3c456f99c0682fad3dd9974
--- a/drivers/net/wireless/bcmdhd/wl_android.c
+++ b/drivers/net/wireless/bcmdhd/wl_android.c
@@ -21,7 +21,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: wl_android.c 393894 2013-03-29 07:14:35Z $
+ * $Id: wl_android.c 390499 2013-03-12 11:38:47Z $
*/
#include <linux/module.h>
@@ -1649,7 +1649,7 @@ int wl_android_priv_cmd(struct net_devic
#define PRIVATE_COMMAND_MAX_LEN 16384
#else
#define PRIVATE_COMMAND_MAX_LEN 8192
-#endif /* CUSTOMER_HW4 */
+#endif
int ret = 0;
char *command = NULL;
int bytes_written = 0;
file:66f8c9ffa372500d055968dbd6c3844406b0de0a -> file:95e7c4ab3d1f4a64f163ad416c6bacce6fd9b58b
--- a/drivers/net/wireless/bcmdhd/wl_cfgp2p.h
+++ b/drivers/net/wireless/bcmdhd/wl_cfgp2p.h
@@ -21,7 +21,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: wl_cfgp2p.h 392206 2013-03-21 04:02:54Z $
+ * $Id: wl_cfgp2p.h 383351 2013-02-06 13:05:50Z $
*/
#ifndef _wl_cfgp2p_h_
#define _wl_cfgp2p_h_
file:f9e93624b5b77cd8f64a47d9c3d9599fd2ae97c5 -> file:b5e708075b831821a9ff7704a32375e72602d2a9
--- a/drivers/net/wireless/bcmdhd/wl_dbg.h
+++ b/drivers/net/wireless/bcmdhd/wl_dbg.h
@@ -22,7 +22,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: wl_dbg.h 357993 2012-09-20 21:58:56Z $
+ * $Id: wl_dbg.h 326635 2012-04-10 03:15:29Z $
*/
file:6c063434dfb1c1da8a20092448bab6c3a4367094 -> file:b2acd6a6f5b7025f063c99e4cbcfa96714db9f6b
--- a/drivers/net/wireless/bcmdhd/wl_iw.c
+++ b/drivers/net/wireless/bcmdhd/wl_iw.c
@@ -21,7 +21,7 @@
* software in any way with any other Broadcom software provided under a license
* other than the GPL, without Broadcom's express prior written consent.
*
- * $Id: wl_iw.c 384655 2013-02-12 19:59:43Z $
+ * $Id: wl_iw.c 367054 2012-11-06 15:06:04Z $
*/
#if defined(USE_IW)
@@ -843,7 +843,7 @@ wl_iw_get_range(
if (dev_wlc_intvar_get(dev, "fbt_cap", &fbt_cap) == 0) {
if (fbt_cap == WLC_FBT_CAP_DRV_4WAY_AND_REASSOC) {
-
+
range->enc_capa |= IW_ENC_CAPA_4WAY_HANDSHAKE;
}
}
@@ -2692,7 +2692,7 @@ wl_iw_set_wpaauth(
if ((error = dev_wlc_intvar_set(dev, "wsec", val)))
return error;
-
+
if (dev_wlc_intvar_get(dev, "fbt_cap", &fbt_cap) == 0) {
if (fbt_cap == WLC_FBT_CAP_DRV_4WAY_AND_REASSOC) {
if ((paramid == IW_AUTH_CIPHER_PAIRWISE) && (val & AES_ENABLED)) {
@@ -3647,7 +3647,7 @@ static void wl_iw_send_scan_complete(isc
memset(&wrqu, 0, sizeof(wrqu));
-
+
wireless_send_event(iscan->dev, SIOCGIWSCAN, &wrqu, NULL);
}
file:f66c7cc37e0ebb30aaba326252fa91021d29e420 -> file:944d41ba5a96cd0b15c7b14cde8102b45a4a89a7
--- a/drivers/sensorhub/factory/accel_mpu6500.c
+++ b/drivers/sensorhub/factory/accel_mpu6500.c
@@ -44,19 +44,10 @@ static ssize_t accel_vendor_show(struct
{
#ifdef K330_REV
struct ssp_data *data = dev_get_drvdata(dev);
-#if defined(CONFIG_MACH_JF_EUR)
- if (data->ap_rev == 13)
- return sprintf(buf, "%s\n", VENDOR);
- else if (data->ap_rev >= K330_REV)
- return sprintf(buf, "%s\n", VENDOR_K330);
- else
- return sprintf(buf, "%s\n", VENDOR);
-#else
if (data->ap_rev >= K330_REV)
return sprintf(buf, "%s\n", VENDOR_K330);
else
return sprintf(buf, "%s\n", VENDOR);
-#endif
#else
return sprintf(buf, "%s\n", VENDOR);
#endif
@@ -67,19 +58,10 @@ static ssize_t accel_name_show(struct de
{
#ifdef K330_REV
struct ssp_data *data = dev_get_drvdata(dev);
-#if defined(CONFIG_MACH_JF_EUR)
- if (data->ap_rev == 13)
- return sprintf(buf, "%s\n", CHIP_ID);
- else if (data->ap_rev >= K330_REV)
- return sprintf(buf, "%s\n", CHIP_ID_K330);
- else
- return sprintf(buf, "%s\n", CHIP_ID);
-#else
if (data->ap_rev >= K330_REV)
return sprintf(buf, "%s\n", CHIP_ID_K330);
else
return sprintf(buf, "%s\n", CHIP_ID);
-#endif
#else
return sprintf(buf, "%s\n", CHIP_ID);
#endif
file:07d878b16941c609027ae31a3934d4dfdd9f4332 -> file:b1c85ec9c9c066331e4d3ef8359cfb5eb760484e
--- a/drivers/sensorhub/factory/gyro_mpu6500.c
+++ b/drivers/sensorhub/factory/gyro_mpu6500.c
@@ -55,19 +55,10 @@ static ssize_t gyro_vendor_show(struct d
{
#ifdef K330_REV
struct ssp_data *data = dev_get_drvdata(dev);
-#if defined(CONFIG_MACH_JF_EUR)
- if (data->ap_rev == 13)
- return sprintf(buf, "%s\n", VENDOR);
- else if (data->ap_rev >= K330_REV)
- return sprintf(buf, "%s\n", VENDOR_K330);
- else
- return sprintf(buf, "%s\n", VENDOR);
-#else
if (data->ap_rev >= K330_REV)
return sprintf(buf, "%s\n", VENDOR_K330);
else
return sprintf(buf, "%s\n", VENDOR);
-#endif
#else
return sprintf(buf, "%s\n", VENDOR);
#endif
@@ -78,19 +69,10 @@ static ssize_t gyro_name_show(struct dev
{
#ifdef K330_REV
struct ssp_data *data = dev_get_drvdata(dev);
-#if defined(CONFIG_MACH_JF_EUR)
- if (data->ap_rev == 13)
- return sprintf(buf, "%s\n", CHIP_ID);
- else if (data->ap_rev >= K330_REV)
- return sprintf(buf, "%s\n", CHIP_ID_K330);
- else
- return sprintf(buf, "%s\n", CHIP_ID);
-#else
if (data->ap_rev >= K330_REV)
return sprintf(buf, "%s\n", CHIP_ID_K330);
else
return sprintf(buf, "%s\n", CHIP_ID);
-#endif
#else
return sprintf(buf, "%s\n", CHIP_ID);
#endif
@@ -253,19 +235,10 @@ static ssize_t gyro_get_temp(struct devi
short temperature = 0;
struct ssp_data *data = dev_get_drvdata(dev);
#ifdef K330_REV
-#if defined(CONFIG_MACH_JF_EUR)
- if (data->ap_rev == 13)
- temperature = mpu6500_gyro_get_temp(data);
- else if (data->ap_rev >= K330_REV)
- temperature = (short)k330_gyro_get_temp(data);
- else
- temperature = mpu6500_gyro_get_temp(data);
-#else
if (data->ap_rev >= K330_REV)
temperature = (short)k330_gyro_get_temp(data);
else
temperature = mpu6500_gyro_get_temp(data);
-#endif
#else
temperature = mpu6500_gyro_get_temp(data);
#endif
@@ -643,19 +616,10 @@ static ssize_t gyro_selftest_show(struct
{
struct ssp_data *data = dev_get_drvdata(dev);
#ifdef K330_REV
-#if defined(CONFIG_MACH_JF_EUR)
- if (data->ap_rev == 13)
- return mpu6500_gyro_selftest(buf, data);
- else if (data->ap_rev >= K330_REV)
- return k330_gyro_selftest(buf, data);
- else
- return mpu6500_gyro_selftest(buf, data);
-#else
if (data->ap_rev >= K330_REV)
return k330_gyro_selftest(buf, data);
else
return mpu6500_gyro_selftest(buf, data);
-#endif
#else
return mpu6500_gyro_selftest(buf, data);
#endif
file:801c55ee47bd042ad1fd9d9df4f9c93d33ab3eea -> file:8ba6fa7d6a0d977669b3fb8822596d1b20692fad
--- a/drivers/sensorhub/factory/temphumidity_shtc1.c
+++ b/drivers/sensorhub/factory/temphumidity_shtc1.c
@@ -199,6 +199,33 @@ static ssize_t engine_version_store(stru
return size;
}
+static ssize_t engine_version2_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct ssp_data *data = dev_get_drvdata(dev);
+
+ pr_info("[SSP] %s - engine_ver2 = %s_%s\n",
+ __func__, MODEL_NAME, data->comp_engine_ver2);
+
+ return sprintf(buf, "%s_%s\n",
+ MODEL_NAME, data->comp_engine_ver2);
+}
+
+static ssize_t engine_version2_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t size)
+{
+ struct ssp_data *data = dev_get_drvdata(dev);
+
+ kfree(data->comp_engine_ver2);
+ data->comp_engine_ver2 =
+ kzalloc(((strlen(buf)+1) * sizeof(char)), GFP_KERNEL);
+ strncpy(data->comp_engine_ver2, buf, strlen(buf)+1);
+ pr_info("[SSP] %s - engine_ver2 = %s, %s\n",
+ __func__, data->comp_engine_ver2, buf);
+
+ return size;
+}
+
static ssize_t pam_adc_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -296,6 +323,8 @@ static DEVICE_ATTR(name, S_IRUGO, temphu
static DEVICE_ATTR(vendor, S_IRUGO, temphumidity_vendor_show, NULL);
static DEVICE_ATTR(engine_ver, S_IRUGO | S_IWUSR | S_IWGRP,
engine_version_show, engine_version_store);
+static DEVICE_ATTR(engine_ver2, S_IRUGO | S_IWUSR | S_IWGRP,
+ engine_version2_show, engine_version2_store);
static DEVICE_ATTR(cp_thm, S_IRUGO, pam_adc_show, NULL);
static DEVICE_ATTR(cp_temperature, S_IRUGO, pam_temp_show, NULL);
static DEVICE_ATTR(crc_check, S_IRUGO,
@@ -307,6 +336,7 @@ static struct device_attribute *temphumi
&dev_attr_name,
&dev_attr_vendor,
&dev_attr_engine_ver,
+ &dev_attr_engine_ver2,
&dev_attr_cp_thm,
&dev_attr_cp_temperature,
&dev_attr_crc_check,
@@ -324,5 +354,7 @@ void remove_temphumidity_factorytest(str
{
if (data->comp_engine_ver != NULL)
kfree(data->comp_engine_ver);
+ if (data->comp_engine_ver2 != NULL)
+ kfree(data->comp_engine_ver2);
sensors_unregister(data->temphumidity_device, temphumidity_attrs);
}
file:394c84f61a810ca8d423f43c82a6576618716dcf -> file:113504dc553de2fe7559b4be5bdfd0e4ec629402
--- a/drivers/sensorhub/ssp.h
+++ b/drivers/sensorhub/ssp.h
@@ -388,6 +388,7 @@ struct ssp_data {
int fw_dl_state;
#ifdef CONFIG_SENSORS_SSP_SHTC1
char *comp_engine_ver;
+ char *comp_engine_ver2;
struct mutex cp_temp_adc_lock;
#endif
};
file:f94d11ab75bf5a1b4d6e0efd7187e5f785d34f2d -> file:f6910e2ee1ed2435707afe8dd3896b4681f8a805
--- a/drivers/sensorhub/ssp_firmware.c
+++ b/drivers/sensorhub/ssp_firmware.c
@@ -15,7 +15,7 @@
#include "ssp.h"
#define SSP_FIRMWARE_REVISION 101901
-#define SSP_FIRMWARE_REVISION_03 13040800/*MCU L5, 6500*/
+#define SSP_FIRMWARE_REVISION_03 13041000/*MCU L5, 6500*/
/* Bootload mode cmd */
#define BL_FW_NAME "ssp.fw"
@@ -527,7 +527,6 @@ int check_fwbl(struct ssp_data *data)
{
int iRet;
unsigned int fw_revision;
- int iRetry = 20;
pr_info("[SSP] change_rev = %d\n", data->ssp_changes);
@@ -538,11 +537,9 @@ int check_fwbl(struct ssp_data *data)
data->client->addr = APP_SLAVE_ADDR;
data->uCurFirmRev = check_firmware_rev(data);
- while(data->uCurFirmRev == SSP_INVALID_REVISION && iRetry--) {
- pr_info("[SSP]: %s - retry check_firmware_rev\n",
- __func__);
- mdelay(100);
- data->uCurFirmRev = check_firmware_rev(data);
+ if (data->uCurFirmRev == SSP_INVALID_REVISION) {
+ toggle_mcu_reset(data);
+ msleep(SSP_SW_RESET_TIME);
}
if ((data->uCurFirmRev == SSP_INVALID_REVISION) \
file:c731b7d6bd7e2116660adfd772e62728f4721dd3 -> file:c6dfcb5876e1d0ac39767caf3b80ce5dd1e02c1b
--- a/drivers/staging/android/lowmemorykiller.c
+++ b/drivers/staging/android/lowmemorykiller.c
@@ -398,8 +398,6 @@ inline void cancel_soft_reclaim(void)
int get_soft_reclaim_status(void)
{
int kcompcache_running = atomic_read(&s_reclaim.kcompcached_running);
- if(kcompcache_running)
- set_user_nice(s_reclaim.kcompcached, 0);
return kcompcache_running;
}
@@ -452,7 +450,6 @@ static int do_compcache(void * nothing)
atomic_set(&s_reclaim.kcompcached_running, 0);
set_current_state(TASK_INTERRUPTIBLE);
- set_user_nice(s_reclaim.kcompcached, 15);
schedule();
}
file:979ea63ce03e1d67b440debc1d50a835535d9d55 -> file:97dd631241a4b6b1cbe67c35a2b8cf9da164d8b6
--- a/drivers/video/msm/Kconfig
+++ b/drivers/video/msm/Kconfig
@@ -1092,10 +1092,6 @@ config LCD_VDD3_BY_PMGPIO
bool "support externel dcdc for VDD3_IO"
default n
-config ESD_ERR_FG_RECOVERY
- bool "ESD RECOVERY BY ERR_FG"
- default n
-
if FB_MSM_MDSS
source "drivers/video/msm/mdss/Kconfig"
endif
file:bbcb4a21aa8c328c3c44fca069c51963d080a911 -> file:6f7cabf62cb81e82a3277e0324d5fb3b786d6cae
--- a/drivers/video/msm/mdp.c
+++ b/drivers/video/msm/mdp.c
@@ -2280,9 +2280,7 @@ static int mdp_off(struct platform_devic
mdp_clk_ctrl(0);
#ifdef CONFIG_MSM_BUS_SCALING
-
- mdp_bus_scale_update_request(0, 0, 0, 0);
-
+ mdp_bus_scale_update_request(0, 0);
#endif
if (mdp_rev >= MDP_REV_41 && mfd->panel.type == MIPI_CMD_PANEL)
mdp_dsi_cmd_overlay_suspend(mfd);
@@ -2405,8 +2403,8 @@ void mdp_hw_version(void)
#ifdef CONFIG_MSM_BUS_SCALING
-#ifndef MDP_BUS_VECTOR_ENTRY_P0
-#define MDP_BUS_VECTOR_ENTRY_P0(ab_val, ib_val) \
+#ifndef MDP_BUS_VECTOR_ENTRY
+#define MDP_BUS_VECTOR_ENTRY(ab_val, ib_val) \
{ \
.src = MSM_BUS_MASTER_MDP_PORT0, \
.dst = MSM_BUS_SLAVE_EBI_CH0, \
@@ -2414,51 +2412,17 @@ void mdp_hw_version(void)
.ib = (ib_val), \
}
#endif
-#ifndef MDP_BUS_VECTOR_ENTRY_P1
-#define MDP_BUS_VECTOR_ENTRY_P1(ab_val, ib_val) \
- { \
- .src = MSM_BUS_MASTER_MDP_PORT1, \
- .dst = MSM_BUS_SLAVE_EBI_CH0, \
- .ab = (ab_val), \
- .ib = (ib_val), \
- }
-#endif
-
-
/*
* Entry 0 hold 0 request
* Entry 1 and 2 do ping pong request
*/
-static struct msm_bus_vectors mdp_bus_init_vectors[] = {
- MDP_BUS_VECTOR_ENTRY_P0(0, 0),
- MDP_BUS_VECTOR_ENTRY_P1(0, 0),
-};
-
-static struct msm_bus_vectors mdp_bus_ping_vectors[] = {
- MDP_BUS_VECTOR_ENTRY_P0(128000000, 160000000),
- MDP_BUS_VECTOR_ENTRY_P1(128000000, 160000000),
-};
-
-static struct msm_bus_vectors mdp_bus_pong_vectors[] = {
- MDP_BUS_VECTOR_ENTRY_P0(128000000, 160000000),
- MDP_BUS_VECTOR_ENTRY_P1(128000000, 160000000),
-};
-
-static struct msm_bus_paths mdp_bus_usecases[] = {
- {
- ARRAY_SIZE(mdp_bus_init_vectors),
- mdp_bus_init_vectors,
- },
- {
- ARRAY_SIZE(mdp_bus_ping_vectors),
- mdp_bus_ping_vectors,
- },
- {
- ARRAY_SIZE(mdp_bus_pong_vectors),
- mdp_bus_pong_vectors,
- },
+static struct msm_bus_vectors mdp_bus_vectors[] = {
+ MDP_BUS_VECTOR_ENTRY(0, 0),
+ MDP_BUS_VECTOR_ENTRY( 128000000, 160000000),
+ MDP_BUS_VECTOR_ENTRY( 128000000, 160000000),
};
+static struct msm_bus_paths mdp_bus_usecases[ARRAY_SIZE(mdp_bus_vectors)];
static struct msm_bus_scale_pdata mdp_bus_scale_table = {
.usecase = mdp_bus_usecases,
.num_usecases = ARRAY_SIZE(mdp_bus_usecases),
@@ -2469,7 +2433,12 @@ static uint32_t mdp_bus_scale_handle;
static int mdp_bus_scale_register(void)
{
struct msm_bus_scale_pdata *bus_pdata = &mdp_bus_scale_table;
-
+ int i;
+ for (i = 0; i < bus_pdata->num_usecases; i++) {
+ mdp_bus_usecases[i].num_paths = 1;
+ mdp_bus_usecases[i].vectors = &mdp_bus_vectors[i];
+ }
+
if (!mdp_bus_scale_handle) {
mdp_bus_scale_handle = msm_bus_scale_register_client(bus_pdata);
if (!mdp_bus_scale_handle) {
@@ -2481,14 +2450,14 @@ static int mdp_bus_scale_register(void)
}
static int bus_index = 1;
-int mdp_bus_scale_update_request(u64 ab_p0, u64 ib_p0, u64 ab_p1, u64 ib_p1)
+int mdp_bus_scale_update_request(u64 ab, u64 ib)
{
if (mdp_bus_scale_handle < 1) {
pr_err("%s invalid bus handle\n", __func__);
return -EINVAL;
}
- if ((!ab_p0) && (!ab_p1))
+ if (!ab)
return msm_bus_scale_client_update_request
(mdp_bus_scale_handle, 0);
@@ -2496,23 +2465,14 @@ int mdp_bus_scale_update_request(u64 ab_
bus_index++;
bus_index = (bus_index > 2) ? 1 : bus_index;
- mdp_bus_usecases[bus_index].vectors[0].ab = min(ab_p0, mdp_max_bw);
- ib_p0 = max(ib_p0, ab_p0);
- mdp_bus_usecases[bus_index].vectors[0].ib = min(ib_p0, mdp_max_bw);
-
- mdp_bus_usecases[bus_index].vectors[1].ab = min(ab_p1, mdp_max_bw);
- ib_p1 = max(ib_p1, ab_p1);
- mdp_bus_usecases[bus_index].vectors[1].ib = min(ib_p1, mdp_max_bw);
-
+ mdp_bus_usecases[bus_index].vectors->ab = min(ab, mdp_max_bw);
+ ib = max(ib, ab);
+ mdp_bus_usecases[bus_index].vectors->ib = min(ib, mdp_max_bw);
+
pr_debug("%s: handle=%d index=%d ab=%llu ib=%llu\n", __func__,
(u32)mdp_bus_scale_handle, bus_index,
- mdp_bus_usecases[bus_index].vectors[0].ab,
- mdp_bus_usecases[bus_index].vectors[0].ib);
- pr_debug("%s: p1 handle=%d index=%d ab=%llu ib=%llu\n", __func__,
- (u32)mdp_bus_scale_handle, bus_index,
- mdp_bus_usecases[bus_index].vectors[1].ab,
- mdp_bus_usecases[bus_index].vectors[1].ib);
-
+ mdp_bus_usecases[bus_index].vectors->ab,
+ mdp_bus_usecases[bus_index].vectors->ib);
return msm_bus_scale_client_update_request
(mdp_bus_scale_handle, bus_index);
@@ -2522,25 +2482,15 @@ int mdp_bus_scale_restore_request(void)
{
u64 ab, ib;
if (!bus_index ||
- !mdp_bus_usecases[bus_index].vectors[0].ab) {
+ !mdp_bus_usecases[bus_index].vectors->ab) {
ab = mdp_max_bw;
ib = mdp_max_bw;
} else {
- ab = mdp_bus_usecases[bus_index].vectors[0].ab;
- ib = mdp_bus_usecases[bus_index].vectors[0].ib;
+ ab = mdp_bus_usecases[bus_index].vectors->ab;
+ ib = mdp_bus_usecases[bus_index].vectors->ib;
}
pr_info("%s: ab=%llu ib=%llu\n", __func__, ab, ib);
-
- pr_debug("%s: index=%d ab_p0=%llu ib_p0=%llu\n", __func__, bus_index,
- mdp_bus_usecases[bus_index].vectors[0].ab,
- mdp_bus_usecases[bus_index].vectors[0].ib);
- pr_debug("%s: index=%d ab_p1=%llu ib_p1=%llu\n", __func__, bus_index,
- mdp_bus_usecases[bus_index].vectors[1].ab,
- mdp_bus_usecases[bus_index].vectors[1].ib);
-
- return mdp_bus_scale_update_request(ab, ib,
- mdp_bus_usecases[bus_index].vectors[1].ab,
- mdp_bus_usecases[bus_index].vectors[1].ib);
+ return mdp_bus_scale_update_request(ab, ib);
}
#endif
@@ -3080,7 +3030,7 @@ static int mdp_probe(struct platform_dev
/* req bus bandwidth immediately */
if (!(mfd->cont_splash_done))
- mdp_bus_scale_update_request(mdp_max_bw, mdp_max_bw,mdp_max_bw,mdp_max_bw);
+ mdp_bus_scale_update_request(mdp_max_bw, mdp_max_bw);
#endif
/* set driver data */
file:7f957bd65c6445ef88da358761837c4c5e386613 -> file:605914e6f35e9b213f8d5fc0c2f4ea1bc8a48064
--- a/drivers/video/msm/mdp.h
+++ b/drivers/video/msm/mdp.h
@@ -834,18 +834,14 @@ int mdp_clk_round_rate(u32 rate);
unsigned long mdp_get_core_clk(void);
#ifdef CONFIG_MSM_BUS_SCALING
-int mdp_bus_scale_update_request(u64 ab_p0, u64 ib_p0, u64 ab_p1, u64 ib_p1);
-
+int mdp_bus_scale_update_request(u64 ab, u64 ib);
int mdp_bus_scale_restore_request(void);
#else
-static inline int mdp_bus_scale_update_request(u64 ab_p0,
- u64 ib_p0,
- u64 ab_p1,
- u64 ib_p1)
- {
- return 0;
- }
-
+static inline int mdp_bus_scale_update_request(u64 ab,
+ u64 ib)
+{
+ return 0;
+}
static int mdp_bus_scale_restore_request(void)
{
file:1c3f891f1c5056cd9cb9d283bb24a4ff53d27dac -> file:85eb79fb79fe569b719f09a405323f55d9cf3916
--- a/drivers/video/msm/mdp4.h
+++ b/drivers/video/msm/mdp4.h
@@ -962,7 +962,6 @@ int mdp4_update_base_blend(struct msm_fb
struct mdp_blend_cfg *mdp_blend_cfg);
u32 mdp4_get_mixer_num(u32 panel_type);
int mdp4_overlay_reset(void);
-void dump_underrun_pipe_info(void);
#ifndef CONFIG_FB_MSM_WRITEBACK_MSM_PANEL
static inline void mdp4_wfd_pipe_queue(int cndx, struct mdp4_overlay_pipe *pipe)
file:d4c608b4ac61c4cb657c45c11c72b0afb3375a47 -> file:c0267ac52510d6d0f4d1e5acd266423ff255f0fe
--- a/drivers/video/msm/mdp4_overlay.c
+++ b/drivers/video/msm/mdp4_overlay.c
@@ -61,7 +61,6 @@ struct mdp4_overlay_ctrl {
uint32 mixer_cfg[MDP4_MIXER_MAX];
uint32 flush[MDP4_MIXER_MAX];
struct iommu_free_list iommu_free[MDP4_MIXER_MAX];
- struct iommu_free_list iommu_free_prev[MDP4_MIXER_MAX];
uint32 cs_controller;
uint32 panel_3d;
uint32 panel_mode;
@@ -120,12 +119,8 @@ struct mdp4_overlay_perf {
u32 use_ov_blt[MDP4_MIXER_MAX];
u64 mdp_ov_ab_bw[MDP4_MIXER_MAX];
u64 mdp_ov_ib_bw[MDP4_MIXER_MAX];
- u64 mdp_ab_bw;
- u64 mdp_ib_bw;
- u64 mdp_ab_port0_bw;
- u64 mdp_ib_port0_bw;
- u64 mdp_ab_port1_bw;
- u64 mdp_ib_port1_bw;
+ u32 mdp_ab_bw;
+ u32 mdp_ib_bw;
u32 pipe_cnt;
};
@@ -133,7 +128,6 @@ struct mdp4_overlay_perf perf_request;
struct mdp4_overlay_perf perf_current;
static struct ion_client *display_iclient;
-static char *sec_underrun_log_buff;
/*
@@ -148,18 +142,18 @@ void mdp4_overlay_iommu_unmap_freelist(i
int i;
struct ion_handle *ihdl;
struct iommu_free_list *flist;
- struct iommu_free_list *pflist;
if (!display_iclient)
return;
mutex_lock(&iommu_mutex);
- pflist = &ctrl->iommu_free_prev[mixer];
- if (pflist->total == 0) {
- goto iommu_fill;
+ flist = &ctrl->iommu_free[mixer];
+ if (flist->total == 0) {
+ mutex_unlock(&iommu_mutex);
+ return;
}
for (i = 0; i < IOMMU_FREE_LIST_MAX; i++) {
- ihdl = pflist->ihdl[i];
+ ihdl = flist->ihdl[i];
if (ihdl == NULL || ihdl->buffer == NULL || ihdl->client == NULL)
continue;
pr_debug("%s: mixer=%d i=%d ihdl=0x%p\n", __func__,
@@ -171,24 +165,11 @@ void mdp4_overlay_iommu_unmap_freelist(i
(int)mdp4_stat.iommu_map, (int)mdp4_stat.iommu_unmap,
(int)mdp4_stat.iommu_drop);
ion_free(display_iclient, ihdl);
- pflist->ihdl[i] = NULL;
- }
-
- pflist->fndx = 0;
- pflist->total = 0;
-
-iommu_fill:
- flist = &ctrl->iommu_free[mixer];
- pflist = &ctrl->iommu_free_prev[mixer];
- pflist->fndx = flist->fndx;
- pflist->total = flist->total;
- for (i = 0; i < IOMMU_FREE_LIST_MAX; i++) {
- pflist->ihdl[i] = flist->ihdl[i];
flist->ihdl[i] = NULL;
}
- flist->fndx = 0;
- flist->total = 0;
-
+
+ flist->fndx = 0;
+ flist->total = 0;
mutex_unlock(&iommu_mutex);
}
@@ -2534,62 +2515,6 @@ static int mdp4_overlay_req2pipe(struct
return 0;
}
-/*
- [srcx,srcy,srcw,srch]->[dstx,dsty,dstw,dsth][flags]|src_format|bpp|pipe_ndx|mdp_clk|ab|ib|
- [cnt][total_ab_p0][total_ib_p0][total_ab_p0][total_ib_p0][mdp_clk]
-*/
-void dump_underrun_pipe_info(void)
-{
-
- struct mdp4_overlay_pipe *pipe = ctrl->plist;
- int i = 0;
- int cnt = 0;
- static int lindex = 0;
- if(!sec_underrun_log_buff) {
- sec_underrun_log_buff = kzalloc(4001,GFP_KERNEL);
- if(!sec_underrun_log_buff) {
- pr_err("Out of Memory: Failed to alloc underrun Buffer\n");
- return;
- }
-
- }
-
- for (i = 0; i < OVERLAY_PIPE_MAX; i++, pipe++) {
-
- if (!pipe)
- return ;
-
- if (!pipe->pipe_used)
- continue;
- cnt++;
- lindex += snprintf(sec_underrun_log_buff+lindex,4000-lindex,
- "[%d,%d,%d,%d]->[%d,%d,%d,%d]|%d|%d|%d|%d|%d|%llu|%llu|\n",
- pipe->src_x,pipe->src_y,pipe->src_w,pipe->src_h,
- pipe->dst_x,pipe->dst_y,pipe->dst_w,pipe->dst_h,
- pipe->flags,
- pipe->src_format,pipe->bpp,pipe->pipe_ndx,pipe->req_clk,
- pipe->bw_ab_quota,pipe->bw_ib_quota);
- pr_err("[%d,%d,%d,%d]->[%d,%d,%d,%d]|%d|%d|%d|%d|%d|%llu|%llu|\n",
- pipe->src_x,pipe->src_y,pipe->src_w,pipe->src_h,
- pipe->dst_x,pipe->dst_y,pipe->dst_w,pipe->dst_h,
- pipe->flags,
- pipe->src_format,pipe->bpp,pipe->pipe_ndx,pipe->req_clk,
- pipe->bw_ab_quota,pipe->bw_ib_quota);
-
- }
- lindex+=snprintf(sec_underrun_log_buff+lindex,4000-lindex,
- "**[%d][%llu|%llu|%llu|%llu|%d]**\n",cnt,
- perf_request.mdp_ab_port0_bw,perf_request.mdp_ib_port0_bw,
- perf_request.mdp_ab_port1_bw,perf_request.mdp_ib_port1_bw,
- perf_current.mdp_clk_rate);
- pr_err("**[%d][%llu|%llu|%llu|%llu|%d]**\n",cnt,
- perf_request.mdp_ab_port0_bw,perf_request.mdp_ib_port0_bw,
- perf_request.mdp_ab_port1_bw,perf_request.mdp_ib_port1_bw,
- perf_current.mdp_clk_rate);
- lindex = lindex % 4000;
-
-}
-
static int mdp4_calc_pipe_mdp_clk(struct msm_fb_data_type *mfd,
struct mdp4_overlay_pipe *pipe)
{
@@ -2674,7 +2599,7 @@ static int mdp4_calc_pipe_mdp_clk(struct
/*
* For the scaling cases, make more margin by removing porch
* values and adding extra 20%.
-
+ */
if ((pipe->src_h != pipe->dst_h) ||
(pipe->src_w != pipe->dst_w)) {
hsync = mfd->panel_info.xres;
@@ -2684,13 +2609,13 @@ static int mdp4_calc_pipe_mdp_clk(struct
__func__, hsync);
} else {
- */
- hsync = mfd->panel_info.lcdc.h_back_porch +
- mfd->panel_info.lcdc.h_front_porch +
- mfd->panel_info.lcdc.h_pulse_width +
- mfd->panel_info.xres;
- pr_debug("%s: panel hsync is %d.\n",
- __func__, hsync);
+ hsync = mfd->panel_info.lcdc.h_back_porch +
+ mfd->panel_info.lcdc.h_front_porch +
+ mfd->panel_info.lcdc.h_pulse_width +
+ mfd->panel_info.xres;
+ pr_debug("%s: panel hsync is %d.\n",
+ __func__, hsync);
+ }
if (!hsync) {
pipe->req_clk = mdp_max_clk;
@@ -2801,18 +2726,20 @@ static int mdp4_calc_pipe_mdp_bw(struct
quota >>= shift;
/* factor 1.15 for ab */
- quota = quota * MDP4_BW_AB_FACTOR / 100;
- /* downscaling factor for ab */
+ pipe->bw_ab_quota = quota * MDP4_BW_AB_FACTOR / 100;
+ /* factor 1.25 for ib */
+ pipe->bw_ib_quota = quota * MDP4_BW_IB_FACTOR / 100;
+ /* down scaling factor for ib */
if ((pipe->dst_h) && (pipe->src_h) &&
(pipe->src_h > pipe->dst_h)) {
- quota = quota * pipe->src_h / pipe->dst_h;
- pr_debug("%s: src_h=%d dst_h=%d mdp ab %llu\n",
- __func__, pipe->src_h, pipe->dst_h, ((u64)quota << 16));
+ u32 ib = quota;
+ ib *= pipe->src_h;
+ ib /= pipe->dst_h;
+ pipe->bw_ib_quota = max((u64)ib, pipe->bw_ib_quota);
+ pr_debug("%s: src_h=%d dst_h=%d mdp ib %u, ib_quota=%llu\n",
+ __func__, pipe->src_h, pipe->dst_h,
+ ib<<shift, pipe->bw_ib_quota<<shift);
}
- pipe->bw_ab_quota = quota;
-
- /*factor 1.5 for ib */
- pipe->bw_ib_quota = quota * MDP4_BW_IB_FACTOR / 100;
pipe->bw_ab_quota <<= shift;
pipe->bw_ib_quota <<= shift;
@@ -2870,50 +2797,6 @@ int mdp4_calc_blt_mdp_bw(struct msm_fb_d
return 0;
}
-static int mdp4_axi_port_read_client_pipe(struct mdp4_overlay_pipe *pipe)
-{
- u32 data = inpdw(MDP_BASE + 0x0404);
- u32 port = 0;
- if (pipe->pipe_ndx == 1) /* rgb1 */
- port = (data & 0x0010) ? 1 : 0;
- else if (pipe->pipe_ndx == 2) /* rgb2 */
- port = (data & 0x0080) ? 1 : 0;
- else if (pipe->pipe_ndx == 3) /* vg1 */
- port = (data & 0x0001) ? 1 : 0;
- else if (pipe->pipe_ndx == 4) /* vg2 */
- port = (data & 0x0004) ? 1 : 0;
- pr_debug("%s axi_rd=%x pipe_ndx=%d port=%d\n", __func__,
- data, pipe->pipe_ndx, port);
- return port;
-}
-
-static int mdp4_axi_port_read_client_mixer(int mixer)
-{
- u32 data = inpdw(MDP_BASE + 0x0404);
- u32 port = 0;
- if (mixer == MDP4_MIXER0) /* dmap */
- port = (data & 0x1000) ? 1 : 0;
- else if (mixer == MDP4_MIXER1) /* dmae */
- port = (data & 0x80000) ? 1 : 0;
- pr_debug("%s axi_rd=%x mixer=%d port=%d\n",
- __func__, data, mixer, port);
- return port;
-}
-
-static int mdp4_axi_port_write_client_mixer(int mixer)
-{
- u32 data = inpdw(MDP_BASE + 0x0408);
- u32 port = 0;
- if (mixer == MDP4_MIXER0) /* dmap */
- port = (data & 0x0001) ? 1 : 0;
- else if (mixer == MDP4_MIXER1) /* dmae */
- port = (data & 0x0004) ? 1 : 0;
- else if (mixer == MDP4_MIXER2)
- port = (data & 0x0004) ? 1 : 0;
- pr_debug("%s axi_wr=%x mixer=%d port=%d\n",
- __func__, data, mixer, port);
- return port;
-}
int mdp4_overlay_mdp_perf_req(struct msm_fb_data_type *mfd,
struct mdp4_overlay_pipe *plist)
@@ -2928,10 +2811,7 @@ int mdp4_overlay_mdp_perf_req(struct msm
int src_w_total = 0;
static u64 minimum_ab=0;
static u64 minimum_ib=0;
-
- u64 ab_quota_port0 = 0, ib_quota_port0 = 0;
- u64 ab_quota_port1 = 0, ib_quota_port1 = 0;
-
+
u32 cnt = 0;
int ret = -EINVAL;
u64 ab_quota_total = 0, ib_quota_total = 0;
@@ -2969,14 +2849,6 @@ int mdp4_overlay_mdp_perf_req(struct msm
if (pipe->pipe_type != OVERLAY_TYPE_BF) {
ab_quota_total += pipe->bw_ab_quota;
ib_quota_total += pipe->bw_ib_quota;
- if (mdp4_axi_port_read_client_pipe(pipe)) {
- ab_quota_port1 += pipe->bw_ab_quota;
- ib_quota_port1 += pipe->bw_ib_quota;
- } else {
- ab_quota_port0 += pipe->bw_ab_quota;
- ib_quota_port0 += pipe->bw_ib_quota;
- }
-
}
if(pipe->pipe_type == OVERLAY_TYPE_RGB){
@@ -2996,9 +2868,7 @@ int mdp4_overlay_mdp_perf_req(struct msm
* writeback (blt) mode to provide work around
* for dsi cmd mode interface hardware bug.
*/
-
-
- if (ctrl->panel_mode & MDP4_PANEL_DSI_CMD) {
+ if (ctrl->panel_mode & MDP4_PANEL_DSI_CMD) {
if (pipe->dst_x != 0)
perf_req->use_ov_blt[MDP4_MIXER0] = 1;
}
@@ -3016,30 +2886,16 @@ int mdp4_overlay_mdp_perf_req(struct msm
if (perf_req->use_ov_blt[i]) {
ab_quota_total += perf_req->mdp_ov_ab_bw[i];
ib_quota_total += perf_req->mdp_ov_ib_bw[i];
- if (mdp4_axi_port_read_client_mixer(i)) {
- ab_quota_port1 +=
- (perf_req->mdp_ov_ab_bw[i] >> 1);
- ib_quota_port1 +=
- (perf_req->mdp_ov_ib_bw[i] >> 1);
- } else {
- ab_quota_port0 +=
- (perf_req->mdp_ov_ab_bw[i] >> 1);
- ib_quota_port0 +=
- (perf_req->mdp_ov_ib_bw[i] >> 1);
- }
- if (mdp4_axi_port_write_client_mixer(i)) {
- ab_quota_port1 +=
- (perf_req->mdp_ov_ab_bw[i] >> 1);
- ib_quota_port1 +=
- (perf_req->mdp_ov_ib_bw[i] >> 1);
- } else {
- ab_quota_port0 +=
- (perf_req->mdp_ov_ab_bw[i] >> 1);
- ib_quota_port0 +=
- (perf_req->mdp_ov_ib_bw[i] >> 1);
- }
}
}
+
+#if 1
+ if (perf_req->use_ov_blt[0]) {
+ perf_req->mdp_clk_rate = mdp_clk_round_rate(mdp_max_clk);
+ perf_req->use_ov_blt[0] = 0;
+ pr_info("[SEC_DEBUG] Blt Mode : Enable -> Disable\n");
+ }
+#endif
if(minimum_ab == 0 ||minimum_ib == 0){
minimum_ab = (1920*1080*4*60)>>16;
@@ -3056,18 +2912,10 @@ int mdp4_overlay_mdp_perf_req(struct msm
if((verysmallarea+yuvcount)==(cnt-1)){
ab_quota_total +=MDP_BUS_SCALE_AB_STEP;
ib_quota_total +=MDP_BUS_SCALE_AB_STEP;
- ab_quota_port1 +=MDP_BUS_SCALE_AB_STEP;
- ib_quota_port1 +=MDP_BUS_SCALE_AB_STEP;
- ab_quota_port0 +=MDP_BUS_SCALE_AB_STEP;
- ib_quota_port0 +=MDP_BUS_SCALE_AB_STEP;
}
else{
ab_quota_total= minimum_ab;
ib_quota_total= minimum_ib;
- ab_quota_port1 = minimum_ab >> 1;
- ib_quota_port1 = minimum_ib >> 1;
- ab_quota_port0 = minimum_ab >> 1;
- ib_quota_port0 = minimum_ib >> 1;
}
}
@@ -3081,42 +2929,19 @@ int mdp4_overlay_mdp_perf_req(struct msm
int fact = ((int) (bw_extra>>16))/((int)(ab_quota_total>>16));
/* Do not increase bw for layers which require more than 3 folds */
- if(fact <= 3 ) {
+ if(fact <= 3) {
ab_quota_total += bw_extra;
ib_quota_total += bw_extra;
- ab_quota_port1 += bw_extra >> 1;
- ib_quota_port1 += bw_extra >> 1;
- ab_quota_port0 += bw_extra >> 1;
- ib_quota_port0 += bw_extra >> 1;
- }
+ }
}
perf_req->mdp_ab_bw = roundup(ab_quota_total, MDP_BUS_SCALE_AB_STEP);
perf_req->mdp_ib_bw = roundup(ib_quota_total, MDP_BUS_SCALE_AB_STEP);
-
- perf_req->mdp_ab_port0_bw =
- roundup(ab_quota_port0, MDP_BUS_SCALE_AB_STEP);
- perf_req->mdp_ib_port0_bw =
- roundup(ib_quota_total, MDP_BUS_SCALE_AB_STEP);
- perf_req->mdp_ab_port1_bw =
- roundup(ab_quota_port1, MDP_BUS_SCALE_AB_STEP);
- perf_req->mdp_ib_port1_bw =
- roundup(ib_quota_total, MDP_BUS_SCALE_AB_STEP);
- pr_debug("%s %d: ab_quota_total=(%llu, %llu) ib_quota_total=(%llu, %llu)\n",
+ pr_debug("%s %d: ab_quota_total=(%llu, %d) ib_quota_total=(%llu, %d)\n",
__func__, __LINE__,
ab_quota_total, perf_req->mdp_ab_bw,
ib_quota_total, perf_req->mdp_ib_bw);
- pr_debug("%s %d: ab_quota_port0=(%llu, %llu) ib_quota_port0=(%llu, %llu)\n",
- __func__, __LINE__,
- ab_quota_port0, perf_req->mdp_ab_port0_bw,
- ib_quota_port0, perf_req->mdp_ib_port0_bw);
-
- pr_debug("%s %d: ab_quota_port1=(%llu, %llu) ib_quota_port1=(%llu, %llu)\n",
- __func__, __LINE__,
- ab_quota_port1, perf_req->mdp_ab_port1_bw,
- ib_quota_port1, perf_req->mdp_ib_port1_bw);
-
if (ab_quota_total > mdp_max_bw)
pr_debug("%s: req ab bw=%llu is larger than max bw=%llu",
@@ -3181,17 +3006,13 @@ void mdp4_overlay_mdp_perf_upd(struct ms
if ((perf_req->mdp_ab_bw > perf_cur->mdp_ab_bw) ||
(perf_req->mdp_ib_bw > perf_cur->mdp_ib_bw)) {
mdp_bus_scale_update_request
- (perf_req->mdp_ab_port0_bw,
- perf_req->mdp_ib_port0_bw,
- perf_req->mdp_ab_port1_bw,
- perf_req->mdp_ib_port1_bw);
- pr_debug("%s mdp ab_bw is changed [%d] from %llu to %llu\n",
-
+ (perf_req->mdp_ab_bw, perf_req->mdp_ib_bw);
+ pr_debug("%s mdp ab_bw is changed [%d] from %d to %d\n",
__func__,
flag,
perf_cur->mdp_ab_bw,
perf_req->mdp_ab_bw);
- pr_debug("%s mdp ib_bw is changed [%d] from %llu to %llu\n",
+ pr_debug("%s mdp ib_bw is changed [%d] from %d to %d\n",
__func__,
flag,
perf_cur->mdp_ib_bw,
@@ -3229,17 +3050,14 @@ void mdp4_overlay_mdp_perf_upd(struct ms
}
if (perf_req->mdp_ab_bw < perf_cur->mdp_ab_bw ||
perf_req->mdp_ib_bw < perf_cur->mdp_ib_bw) {
- mdp_bus_scale_update_request
- (perf_req->mdp_ab_port0_bw,
- perf_req->mdp_ib_port0_bw,
- perf_req->mdp_ab_port1_bw,
- perf_req->mdp_ib_port1_bw);
- pr_debug("%s mdp ab bw is changed [%d] from %llu to %llu\n",
+ mdp_bus_scale_update_request
+ (perf_req->mdp_ab_bw, perf_req->mdp_ib_bw);
+ pr_debug("%s mdp ab bw is changed [%d] from %d to %d\n",
__func__,
flag,
perf_cur->mdp_ab_bw,
perf_req->mdp_ab_bw);
- pr_debug("%s mdp ib bw is changed [%d] from %llu to %llu\n",
+ pr_debug("%s mdp ib bw is changed [%d] from %d to %d\n",
__func__,
flag,
perf_cur->mdp_ib_bw,
file:51a6837ebc11ec0e0633198dfe5e8e3a9706c75d -> file:637d8aef983e32b084347166ddcde144fd1c5e04
--- a/drivers/video/msm/mdp4_overlay_dsi_cmd.c
+++ b/drivers/video/msm/mdp4_overlay_dsi_cmd.c
@@ -878,9 +878,7 @@ static void mdp4_overlay_update_dsi_cmd(
/* TE enabled */
mdp4_mipi_vsync_enable(mfd, pipe, 0);
-
- mdp4_overlay_mdp_pipe_req(pipe, mfd);
- mdp4_calc_blt_mdp_bw(mfd, pipe);
+
MDP_OUTP(MDP_BASE + 0x021c, 10); /* read pointer */
/*
file:836c18a27bcbb141834142d8ef349ce93f61a922 -> file:be241950481568b272594a73c1b7e7242dd11873
--- a/drivers/video/msm/mdp4_overlay_dsi_video.c
+++ b/drivers/video/msm/mdp4_overlay_dsi_video.c
@@ -204,6 +204,8 @@ int mdp4_dsi_video_pipe_commit(int cndx,
}
mutex_unlock(&vctrl->update_lock);
+ /* free previous committed iommu back to pool */
+ mdp4_overlay_iommu_unmap_freelist(mixer);
spin_lock_irqsave(&vctrl->spin_lock, flags);
if (vctrl->ov_koff != vctrl->ov_done) {
@@ -233,13 +235,16 @@ int mdp4_dsi_video_pipe_commit(int cndx,
cnt++;
real_pipe = mdp4_overlay_ndx2pipe(pipe->pipe_ndx);
if (real_pipe && real_pipe->pipe_used) {
- /*
- * commit pipes which are in pending queue
- * and not be unset yet
- */
+ /* pipe not unset */
mdp4_overlay_vsync_commit(pipe);
}
- }
+ /* free previous iommu to freelist
+ * which will be freed at next
+ * pipe_commit
+ */
+ mdp4_overlay_iommu_pipe_free(pipe->pipe_ndx, 0);
+ pipe->pipe_used = 0; /* clear */
+ }
}
mdp4_mixer_stage_commit(mixer);
@@ -247,35 +252,6 @@ int mdp4_dsi_video_pipe_commit(int cndx,
/* start timing generator & mmu if they are not started yet */
mdp4_overlay_dsi_video_start();
- /*
- * there has possibility that pipe commit come very close to next vsync
- * this may cause two consecutive pie_commits happen within same vsync
- * period which casue iommu page fault when previous iommu buffer
- * freed. Set ION_IOMMU_UNMAP_DELAYED flag at ion_map_iommu() to
- * add delay unmap iommu buffer to fix this problem.
- * Also ion_unmap_iommu() may take as long as 9 ms to free an ion buffer.
- * therefore mdp4_overlay_iommu_unmap_freelist(mixer) should be called
- * ater stage_commit() to ensure pipe_commit (up to stage_commit)
- * is completed within vsync period.
- */
-
- /* free previous committed iommu back to pool */
- mdp4_overlay_iommu_unmap_freelist(mixer);
-
- pipe = vp->plist;
- for (i = 0; i < OVERLAY_PIPE_MAX; i++, pipe++) {
- if (pipe->pipe_used) {
-
-
- /* free previous iommu to freelist
- * which will be freed at next
- * pipe_commit
- */
- mdp4_overlay_iommu_pipe_free(pipe->pipe_ndx, 0);
- pipe->pipe_used = 0; /* clear */
- }
- }
-
pipe = vctrl->base_pipe;
spin_lock_irqsave(&vctrl->spin_lock, flags);
if (pipe->ov_blt_addr) {
@@ -301,7 +277,7 @@ int mdp4_dsi_video_pipe_commit(int cndx,
if (pipe->ov_blt_addr)
mdp4_dsi_video_wait4ov(0);
else
- mdp4_dsi_video_wait4vsync(0);
+ mdp4_dsi_video_wait4dmap(0);
}
#ifdef MDP_ODD_RESOLUTION_CTRL
current_pipe_ndx = pipe->pipe_ndx;
@@ -475,9 +451,6 @@ ssize_t mdp4_dsi_video_show_event(struct
ssize_t ret = 0;
unsigned long flags;
u64 vsync_tick;
- ktime_t ctime;
- u32 ctick, ptick;
- int diff;
cndx = 0;
vctrl = &vsync_ctrl_db[0];
@@ -486,29 +459,6 @@ ssize_t mdp4_dsi_video_show_event(struct
if (atomic_read(&vctrl->suspend) > 0 ||
atomic_read(&vctrl->vsync_resume) == 0)
return 0;
- /*
- * show_event thread keep spinning on vctrl->vsync_comp
- * race condition on x.done if multiple thread blocked
- * at wait_for_completion(&vctrl->vsync_comp)
- *
- * if show_event thread waked up first then it will come back
- * and call INIT_COMPLETION(vctrl->vsync_comp) which set x.done = 0
- * then second thread wakeed up which set x.done = 0x7ffffffd
- * after that wait_for_completion will never wait.
- * To avoid this, force show_event thread to sleep 5 ms here
- * since it has full vsycn period (16.6 ms) to wait
- */
- ctime = ktime_get();
- ctick = (u32)ktime_to_us(ctime);
- ptick = (u32)ktime_to_us(vctrl->vsync_time);
- ptick += 5000; /* 5ms */
- diff = ptick - ctick;
- if (diff > 0) {
- if (diff > 1000) /* 1 ms */
- diff = 1000;
- usleep(diff);
- }
-
spin_lock_irqsave(&vctrl->spin_lock, flags);
if (vctrl->wait_vsync_cnt == 0)
@@ -813,7 +763,6 @@ int mdp4_dsi_video_off(struct platform_d
mdp4_dsi_video_wait4vsync(cndx);
complete_all(&vctrl->vsync_comp);
- vctrl->wait_vsync_cnt = 0;
if (pipe == NULL)
return -EINVAL;
@@ -1034,11 +983,13 @@ void mdp4_primary_vsync_dsi_video(void)
vctrl = &vsync_ctrl_db[cndx];
pr_debug("%s: cpu=%d\n", __func__, smp_processor_id());
- spin_lock(&vctrl->spin_lock);
+ spin_lock(&vctrl->spin_lock);
+ vctrl->vsync_time = ktime_get();
- vctrl->vsync_time = ktime_get();
- complete_all(&vctrl->vsync_comp);
- vctrl->wait_vsync_cnt = 0;
+ if (vctrl->wait_vsync_cnt) {
+ complete_all(&vctrl->vsync_comp);
+ vctrl->wait_vsync_cnt = 0;
+ }
spin_unlock(&vctrl->spin_lock);
}
@@ -1251,7 +1202,7 @@ void mdp4_dsi_video_overlay(struct msm_f
if (pipe->ov_blt_addr)
mdp4_dsi_video_wait4ov(cndx);
else
- mdp4_dsi_video_wait4vsync(cndx);
+ mdp4_dsi_video_wait4dmap(cndx);
}
mdp4_overlay_mdp_perf_upd(mfd, 0);
file:aa0f79d5b96d18a345b95e61a78d24ef63dd5f4c -> file:4ec45bc46bf58e8179e4270891451884dec4cf51
--- a/drivers/video/msm/mdp4_overlay_dtv.c
+++ b/drivers/video/msm/mdp4_overlay_dtv.c
@@ -200,6 +200,7 @@ int mdp4_dtv_pipe_commit(int cndx, int w
vp = &vctrl->vlist[undx];
pipe = vctrl->base_pipe;
mixer = pipe->mixer_num;
+ mdp4_overlay_iommu_unmap_freelist(mixer);
mdp_update_pm(vctrl->mfd, vctrl->vsync_time);
@@ -223,31 +224,6 @@ int mdp4_dtv_pipe_commit(int cndx, int w
/* pipe not unset */
mdp4_overlay_vsync_commit(pipe);
}
- }
- }
- mdp4_mixer_stage_commit(mixer);
-
- /* start timing generator & mmu if they are not started yet */
- mdp4_overlay_dtv_start();
-
- /*
- * there has possibility that pipe commit come very close to next vsync
- * this may cause two consecutive pie_commits happen within same vsync
- * period which casue iommu page fault when previous iommu buffer
- * freed. Set ION_IOMMU_UNMAP_DELAYED flag at ion_map_iommu() to
- * add delay unmap iommu buffer to fix this problem.
- * Also ion_unmap_iommu() may take as long as 9 ms to free an ion buffer.
- * therefore mdp4_overlay_iommu_unmap_freelist(mixer) should be called
- * ater stage_commit() to ensure pipe_commit (up to stage_commit)
- * is completed within vsync period.
- */
-
- /* free previous committed iommu back to pool */
- mdp4_overlay_iommu_unmap_freelist(mixer);
-
- pipe = vp->plist;
- for (i = 0; i < OVERLAY_PIPE_MAX; i++, pipe++) {
- if (pipe->pipe_used) {
/* free previous iommu to freelist
* which will be freed at next
* pipe_commit
@@ -256,6 +232,11 @@ int mdp4_dtv_pipe_commit(int cndx, int w
pipe->pipe_used = 0; /* clear */
}
}
+ mdp4_mixer_stage_commit(mixer);
+
+ /* start timing generator & mmu if they are not started yet */
+ mdp4_overlay_dtv_start();
+
pipe = vctrl->base_pipe;
spin_lock_irqsave(&vctrl->spin_lock, flags);
if (pipe->ov_blt_addr) {
@@ -390,9 +371,6 @@ ssize_t mdp4_dtv_show_event(struct devic
ssize_t ret = 0;
unsigned long flags;
u64 vsync_tick;
- ktime_t ctime;
- u32 ctick, ptick;
- int diff;
cndx = 0;
vctrl = &vsync_ctrl_db[0];
@@ -401,28 +379,6 @@ ssize_t mdp4_dtv_show_event(struct devic
!external_common_state->hpd_state ||
atomic_read(&vctrl->vsync_resume) == 0)
return 0;
- /*
- * show_event thread keep spinning on vctrl->vsync_comp
- * race condition on x.done if multiple thread blocked
- * at wait_for_completion(&vctrl->vsync_comp)
- *
- * if show_event thread waked up first then it will come back
- * and call INIT_COMPLETION(vctrl->vsync_comp) which set x.done = 0
- * then second thread wakeed up which set x.done = 0x7ffffffd
- * after that wait_for_completion will never wait.
- * To avoid this, force show_event thread to sleep 5 ms here
- * since it has full vsycn period (16.6 ms) to wait
- */
- ctime = ktime_get();
- ctick = (u32)ktime_to_us(ctime);
- ptick = (u32)ktime_to_us(vctrl->vsync_time);
- ptick += 5000; /* 5ms */
- diff = ptick - ctick;
- if (diff > 0) {
- if (diff > 1000) /* 1 ms */
- diff = 1000;
- usleep(diff);
- }
spin_lock_irqsave(&vctrl->spin_lock, flags);
if (vctrl->wait_vsync_cnt == 0)
@@ -699,7 +655,6 @@ int mdp4_dtv_off(struct platform_device
mdp4_dtv_wait4vsync(cndx);
complete_all(&vctrl->vsync_comp);
- vctrl->wait_vsync_cnt = 0;
pipe = vctrl->base_pipe;
if (pipe != NULL) {
@@ -938,9 +893,10 @@ void mdp4_external_vsync_dtv(void)
spin_lock(&vctrl->spin_lock);
vctrl->vsync_time = ktime_get();
- complete_all(&vctrl->vsync_comp);
- vctrl->wait_vsync_cnt = 0;
-
+ if (vctrl->wait_vsync_cnt) {
+ complete_all(&vctrl->vsync_comp);
+ vctrl->wait_vsync_cnt = 0;
+ }
spin_unlock(&vctrl->spin_lock);
}
file:caea7e1c193acecc76d2f89d9a059a96a456b049 -> file:e47eba0839e844b7ad019d52507dab721cb593f7
--- a/drivers/video/msm/mdp4_overlay_lcdc.c
+++ b/drivers/video/msm/mdp4_overlay_lcdc.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2013, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2009-2012, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -240,6 +240,12 @@ int mdp4_lcdc_pipe_commit(int cndx, int
/* pipe not unset */
mdp4_overlay_vsync_commit(pipe);
}
+ /* free previous iommu to freelist
+ * which will be freed at next
+ * pipe_commit
+ */
+ mdp4_overlay_iommu_pipe_free(pipe->pipe_ndx, 0);
+ pipe->pipe_used = 0; /* clear */
}
}
@@ -247,33 +253,6 @@ int mdp4_lcdc_pipe_commit(int cndx, int
/* start timing generator & mmu if they are not started yet */
mdp4_overlay_lcdc_start();
- /*
- * there has possibility that pipe commit come very close to next vsync
- * this may cause two consecutive pie_commits happen within same vsync
- * period which casue iommu page fault when previous iommu buffer
- * freed. Set ION_IOMMU_UNMAP_DELAYED flag at ion_map_iommu() to
- * add delay unmap iommu buffer to fix this problem.
- * Also ion_unmap_iommu() may take as long as 9 ms to free an ion buffer.
- * therefore mdp4_overlay_iommu_unmap_freelist(mixer) should be called
- * ater stage_commit() to ensure pipe_commit (up to stage_commit)
- * is completed within vsync period.
- */
-
- /* free previous committed iommu back to pool */
- mdp4_overlay_iommu_unmap_freelist(mixer);
-
- pipe = vp->plist;
- for (i = 0; i < OVERLAY_PIPE_MAX; i++, pipe++) {
- if (pipe->pipe_used) {
- /* free previous iommu to freelist
- * which will be freed at next
- * pipe_commit
- */
- mdp4_overlay_iommu_pipe_free(pipe->pipe_ndx, 0);
- pipe->pipe_used = 0; /* clear */
- }
- }
-
pipe = vctrl->base_pipe;
spin_lock_irqsave(&vctrl->spin_lock, flags);
@@ -427,9 +406,6 @@ ssize_t mdp4_lcdc_show_event(struct devi
ssize_t ret = 0;
unsigned long flags;
u64 vsync_tick;
- ktime_t ctime;
- u32 ctick, ptick;
- int diff;
cndx = 0;
vctrl = &vsync_ctrl_db[0];
@@ -437,28 +413,6 @@ ssize_t mdp4_lcdc_show_event(struct devi
if (atomic_read(&vctrl->suspend) > 0 ||
atomic_read(&vctrl->vsync_resume) == 0)
return 0;
- /*
- * show_event thread keep spinning on vctrl->vsync_comp
- * race condition on x.done if multiple thread blocked
- * at wait_for_completion(&vctrl->vsync_comp)
- *
- * if show_event thread waked up first then it will come back
- * and call INIT_COMPLETION(vctrl->vsync_comp) which set x.done = 0
- * then second thread wakeed up which set x.done = 0x7ffffffd
- * after that wait_for_completion will never wait.
- * To avoid this, force show_event thread to sleep 5 ms here
- * since it has full vsycn period (16.6 ms) to wait
- */
- ctime = ktime_get();
- ctick = (u32)ktime_to_us(ctime);
- ptick = (u32)ktime_to_us(vctrl->vsync_time);
- ptick += 5000; /* 5ms */
- diff = ptick - ctick;
- if (diff > 0) {
- if (diff > 1000) /* 1 ms */
- diff = 1000;
- usleep(diff);
- }
spin_lock_irqsave(&vctrl->spin_lock, flags);
if (vctrl->wait_vsync_cnt == 0)
@@ -759,7 +713,6 @@ int mdp4_lcdc_off(struct platform_device
msleep(20); /* >= 17 ms */
complete_all(&vctrl->vsync_comp);
- vctrl->wait_vsync_cnt = 0;
if (pipe == NULL)
return -EINVAL;
if (pipe->ov_blt_addr) {
@@ -878,8 +831,11 @@ void mdp4_primary_vsync_lcdc(void)
spin_lock(&vctrl->spin_lock);
vctrl->vsync_time = ktime_get();
- complete_all(&vctrl->vsync_comp);
- vctrl->wait_vsync_cnt = 0;
+ if (vctrl->wait_vsync_cnt) {
+ complete_all(&vctrl->vsync_comp);
+ vctrl->wait_vsync_cnt = 0;
+ }
+
spin_unlock(&vctrl->spin_lock);
}
file:cf9baf259a2cc95e54572d235dde00998e70d408 -> file:c81fee0c83ef39306e4eab49c533c07aa3b7d6a7
--- a/drivers/video/msm/mdp4_util.c
+++ b/drivers/video/msm/mdp4_util.c
@@ -636,7 +636,6 @@ irqreturn_t mdp4_isr(int irq, void *ptr)
if (isr & INTR_PRIMARY_INTF_UDERRUN) {
pr_info("%s: UNDERRUN -- primary\n", __func__);
mdp4_stat.intr_underrun_p++;
- dump_underrun_pipe_info();
/* When underun occurs mdp clear the histogram registers
that are set before in hw_init so restore them back so
that histogram works.*/
file:a39137ee3d8b024d209993ad8109e2e533ff0247 -> file:35ca9abf5335d4a01485cc126043c821867a27d2
--- a/drivers/video/msm/mipi_dsi.c
+++ b/drivers/video/msm/mipi_dsi.c
@@ -65,10 +65,6 @@ static struct platform_driver mipi_dsi_d
struct device dsi_dev;
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
-extern struct mutex power_state_chagne;
-static struct platform_device *pdev_for_esd;
-#endif
static int mipi_dsi_off(struct platform_device *pdev)
{
int ret = 0;
@@ -170,9 +166,6 @@ static int mipi_dsi_on(struct platform_d
pr_debug("%s+:\n", __func__);
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
- pdev_for_esd = pdev;
-#endif
mfd = platform_get_drvdata(pdev);
fbi = mfd->fbi;
var = &fbi->var;
@@ -376,64 +369,6 @@ static int mipi_dsi_late_init(struct pla
return panel_next_late_init(pdev);
}
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
-void esd_recovery(void)
-{
- struct msm_fb_data_type *mfd;
- u32 tmp, tmp2;
-
- if (pdev_for_esd) {
- mfd = platform_get_drvdata(pdev_for_esd);
-
- if (mfd->panel_power_on == TRUE) {
- mutex_lock(&power_state_chagne);
-
- panel_next_off(pdev_for_esd);
-
- if (mipi_dsi_pdata && mipi_dsi_pdata->active_reset)
- mipi_dsi_pdata->active_reset(0); /* low */
-
- if (mipi_dsi_pdata && mipi_dsi_pdata->panel_power_save)
- mipi_dsi_pdata->panel_power_save(0);
-
- msleep(10);
-
- if (mipi_dsi_pdata && mipi_dsi_pdata->panel_power_save)
- mipi_dsi_pdata->panel_power_save(1);
-
- /* LP11 */
- tmp2 = tmp = MIPI_INP(MIPI_DSI_BASE + 0xA8);
- tmp &= ~(1<<28);
- MIPI_OUTP(MIPI_DSI_BASE + 0xA8, tmp);
- wmb();
- /* LP11 */
-
- usleep(5000);
- if (mipi_dsi_pdata && mipi_dsi_pdata->active_reset)
- mipi_dsi_pdata->active_reset(1); /* high */
- msleep(10);
- if (mipi_dsi_pdata && mipi_dsi_pdata->active_reset)
- mipi_dsi_pdata->active_reset(0); /* low */
- msleep(10);
- if (mipi_dsi_pdata && mipi_dsi_pdata->active_reset)
- mipi_dsi_pdata->active_reset(1); /* high */
- msleep(10);
-
- MIPI_OUTP(MIPI_DSI_BASE + 0xA8, tmp2);
- wmb();
-
- panel_next_on(pdev_for_esd);
- mipi_dsi_late_init(pdev_for_esd);
-
-#if defined(CONFIG_MDNIE_LITE_TUNING)
- is_negative_on();
-#endif
- mutex_unlock(&power_state_chagne);
- }
- }
-}
-#endif
-
static int mipi_dsi_resource_initialized;
static int mipi_dsi_probe(struct platform_device *pdev)
file:47116e16b17ceacef9986651cbdef15b4db11217 -> file:1377e090f62be9596e1157a524c69a3e41ff21b4
--- a/drivers/video/msm/mipi_dsi.h
+++ b/drivers/video/msm/mipi_dsi.h
@@ -17,10 +17,6 @@
#include <mach/scm-io.h>
#include <linux/list.h>
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
-#include "mdnie_lite_tuning.h"
-#endif
-
#ifdef BIT
#undef BIT
#endif
@@ -375,8 +371,4 @@ int mipi_runtime_clk_change(int fps);
void mipi_dsi_irq_set(uint32 mask, uint32 irq);
void mdp4_dsi_video_wait4dmap_for_dsi(int cndx);
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
-void esd_recovery(void);
-#endif
-
#endif /* MIPI_DSI_H */
file:0d94fcde32f78beea1370fbcecf335f1cee7f653 -> file:76690c06df48b14b5966ca3d2db1ccd367cd3238
--- a/drivers/video/msm/mipi_renesas_tft_video_full_hd_pt.c
+++ b/drivers/video/msm/mipi_renesas_tft_video_full_hd_pt.c
@@ -20,30 +20,30 @@ static struct msm_panel_info pinfo;
static struct mipi_panel_data mipi_pd;
enum {
- GAMMA_30CD = 7, // MIN 10 from platform
- GAMMA_40CD = 14,
- GAMMA_50CD = 20,
- GAMMA_60CD = 24,
- GAMMA_70CD = 28,
- GAMMA_80CD = 32,
- GAMMA_90CD = 36,
- GAMMA_100CD = 40,
- GAMMA_110CD = 44,
- GAMMA_120CD = 48,
- GAMMA_130CD = 52,
- GAMMA_140CD = 56,
- GAMMA_150CD = 60, // DEF 150 from platform
- GAMMA_160CD = 72,
- GAMMA_170CD = 84,
- GAMMA_180CD = 96,
- GAMMA_190CD = 108,
- GAMMA_200CD = 120,
- GAMMA_210CD = 132,
- GAMMA_220CD = 144,
- GAMMA_230CD = 156,
- GAMMA_240CD = 168,
- GAMMA_250CD = 182, // MAX 255 from platform
- GAMMA_300CD = 182,
+ GAMMA_30CD = 8, // MIN 10 from platform
+ GAMMA_40CD = 16,
+ GAMMA_50CD = 22,
+ GAMMA_60CD = 28,
+ GAMMA_70CD = 34,
+ GAMMA_80CD = 40,
+ GAMMA_90CD = 46,
+ GAMMA_100CD = 52,
+ GAMMA_110CD = 58,
+ GAMMA_120CD = 64,
+ GAMMA_130CD = 70,
+ GAMMA_140CD = 76,
+ GAMMA_150CD = 82, // DEF 150 from platform
+ GAMMA_160CD = 94,
+ GAMMA_170CD = 106,
+ GAMMA_180CD = 118,
+ GAMMA_190CD = 130,
+ GAMMA_200CD = 142,
+ GAMMA_210CD = 154,
+ GAMMA_220CD = 166,
+ GAMMA_230CD = 178,
+ GAMMA_240CD = 190,
+ GAMMA_250CD = 202, // MAX 255 from platform
+ GAMMA_300CD = 202,
};
@@ -63,12 +63,12 @@ static char renesas_manufacture_cmd_acce
static char renesas_brightness_setting[] = {
0x51,
- 0xB6, /*0xFF,*/
+ 0xCA, /*0xFF,*/
};
static char renesas_brightness_packet[] = {
0x51,
- 0xB6, /*0xFF, */
+ 0xCA, /*0xFF, */
};
static char renesas_cabc_control[] = {
@@ -93,11 +93,6 @@ static char renesas_backlight_control[]
0x2C,
};
-static char renesas_teon_control[] = {
- 0x35,
- 0x01,
-};
-
static char renesas_memory_access_control[] = {
0x36,
0xC0,
@@ -119,9 +114,6 @@ static struct dsi_cmd_desc renesas_ready
sizeof(renesas_backlight_control), renesas_backlight_control},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
- sizeof(renesas_teon_control), renesas_teon_control},
-
- {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(renesas_sleep_out), renesas_sleep_out},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
@@ -287,10 +279,7 @@ static int brightness_control(int bl_lev
renesas_brightness_packet[1] = value & 0xFF;
renesas_brightness_packet[1] = (value >> 8) & 0xFF;
} else
- {
renesas_brightness_packet[1] = level & 0xFF;
- renesas_brightness_setting[1] = level & 0xFF;
- }
return 0;
}
@@ -363,8 +352,6 @@ static int __init mipi_cmd_samsung_tft_f
#endif
pinfo.xres = 1080;
pinfo.yres = 1920;
- pinfo.height = 111;
- pinfo.width = 62;
pinfo.type = MIPI_VIDEO_PANEL;
pinfo.pdest = DISPLAY_1;
file:6d864a73915f1cc79ec3b7b0d086971cd12e461e -> file:a6a581c4d781d24e44315cfda08234c3c7e0fe0e
--- a/drivers/video/msm/mipi_samsung_octa_video_full_hd_pt.c
+++ b/drivers/video/msm/mipi_samsung_octa_video_full_hd_pt.c
@@ -42,6 +42,11 @@ static char samsung_test_key_on1[] = {
0x5A, 0x5A,
};
+static char samsung_test_key_on2[] = {
+ 0xF1,
+ 0x5A, 0x5A,
+};
+
static char samsung_test_key_on3[] = {
0xFC,
0x5A, 0x5A,
@@ -114,6 +119,16 @@ static char samsung_lpts_1[] = {
0x04,
};
+static char samsung_lpts_2[] = {
+ 0xB0,
+ 0x02,
+};
+
+static char samsung_lpts_3[] = {
+ 0xCB,
+ 0x10,
+};
+
static char samsung_display_contol[] = {
0xF2,
0x00, 0x06, 0x0A,
@@ -634,6 +649,8 @@ static struct dsi_cmd_desc samsung_on_cm
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on1), samsung_test_key_on1},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_test_key_on2), samsung_test_key_on2},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on3), samsung_test_key_on3},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
@@ -707,6 +724,8 @@ static struct dsi_cmd_desc samsung_on_cm
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on1), samsung_test_key_on1},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_test_key_on2), samsung_test_key_on2},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on3), samsung_test_key_on3},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
@@ -784,6 +803,8 @@ static struct dsi_cmd_desc samsung_on_cm
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on1), samsung_test_key_on1},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_test_key_on2), samsung_test_key_on2},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on3), samsung_test_key_on3},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
@@ -827,6 +848,8 @@ static struct dsi_cmd_desc samsung_on_cm
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on1), samsung_test_key_on1},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_test_key_on2), samsung_test_key_on2},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on3), samsung_test_key_on3},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
@@ -874,6 +897,8 @@ static struct dsi_cmd_desc samsung_on_cm
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on1), samsung_test_key_on1},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_test_key_on2), samsung_test_key_on2},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on3), samsung_test_key_on3},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
@@ -929,6 +954,8 @@ static struct dsi_cmd_desc samsung_on_cm
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on1), samsung_test_key_on1},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_test_key_on2), samsung_test_key_on2},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on3), samsung_test_key_on3},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
@@ -942,6 +969,10 @@ static struct dsi_cmd_desc samsung_on_cm
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_lpts_1), samsung_lpts_1},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_lpts_2), samsung_lpts_2},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_lpts_3), samsung_lpts_3},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_display_contol), samsung_display_contol},
{DTYPE_DCS_LWRITE, 1, 0, 0, 100,
@@ -996,6 +1027,8 @@ static struct dsi_cmd_desc panel_mtp_ena
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on1), samsung_test_key_on1},
{DTYPE_DCS_LWRITE, 1, 0, 0, 0,
+ sizeof(samsung_test_key_on2), samsung_test_key_on2},
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 0,
sizeof(samsung_test_key_on3), samsung_test_key_on3},
};
file:5dbef2ecf91a6564de716a4239c3241344eaba7d -> file:25f19dd3d092fa13d8b5bd42e2b96008f6cde16e
--- a/drivers/video/msm/mipi_samsung_tft.c
+++ b/drivers/video/msm/mipi_samsung_tft.c
@@ -18,11 +18,6 @@
#include "mipi_samsung_tft.h"
#include "mdp4.h"
-#include <linux/mfd/pm8xxx/pm8921.h>
-#include <linux/mfd/pm8xxx/pm8821.h>
-#include "../../../arch/arm/mach-msm/board-8064.h"
-#include <linux/gpio.h>
-
#if defined(CONFIG_FB_MDP4_ENHANCE)
#include "mdp4_video_enhance.h"
#elif defined(CONFIG_MDNIE_LITE_TUNING)
@@ -45,39 +40,6 @@ static int is_disp_on = 0;
static int is_cabc_delayed = 0;
#endif
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
-struct work_struct err_fg_work;
-#define PMIC_GPIO_ERR_FG 8
-static int err_fg_gpio; /* PM_GPIO8 */
-struct pm_gpio gpio_get_param = {
- .direction = PM_GPIO_DIR_IN,
- .pull = PM_GPIO_PULL_NO,
- .vin_sel = 2,
- .function = PM_GPIO_FUNC_NORMAL,
- .inv_int_pol = 0,
-};
-static int err_fg_working;
-#endif
-
-#if defined(RUMTIME_MIPI_CLK_CHANGE)
-static int current_fps;
-#endif
-
-static int atoi(const char *name)
-{
- int val = 0;
-
- for (;; name++) {
- switch (*name) {
- case '0' ... '9':
- val = 10*val+(*name-'0');
- break;
- default:
- return val;
- }
- }
-}
-
static int mipi_samsung_disp_send_cmd(struct msm_fb_data_type *mfd,
enum mipi_samsung_cmd_list cmd,
unsigned char lock)
@@ -285,10 +247,6 @@ static int mipi_samsung_disp_on(struct p
#endif
#endif
-#if defined(RUMTIME_MIPI_CLK_CHANGE)
- current_fps = mfd->panel_info.mipi.frame_rate;
-#endif
-
#if defined(AUTO_BRIGHTNESS_CABC_FUNCTION)
is_disp_on = 1;
@@ -302,9 +260,6 @@ static int mipi_samsung_disp_on(struct p
printk(KERN_INFO "[lcd] mipi_samsung_disp_on end\n");
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
- enable_irq(PM8921_GPIO_IRQ(PM8921_IRQ_BASE, PMIC_GPIO_ERR_FG));
-#endif
return 0;
}
@@ -319,18 +274,8 @@ static int mipi_samsung_disp_off(struct
if (unlikely(mfd->key != MFD_KEY))
return -EINVAL;
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
- if (!err_fg_working)
- cancel_work_sync(&err_fg_work);
- disable_irq(PM8921_GPIO_IRQ(PM8921_IRQ_BASE, PMIC_GPIO_ERR_FG));
-#endif
mipi_samsung_disp_send_cmd(mfd, PANEL_OFF, false);
-#if defined(RUMTIME_MIPI_CLK_CHANGE)
- if (mfd->panel_info.mipi.frame_rate != current_fps)
- mipi_runtime_clk_change(mfd->panel_info.mipi.frame_rate);
-#endif
-
#if defined(AUTO_BRIGHTNESS_CABC_FUNCTION)
is_disp_on = 0;
#endif
@@ -518,100 +463,12 @@ static ssize_t mipi_samsung_auto_brightn
return size;
}
-static ssize_t mipi_samsung_disp_backlight_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int rc;
- struct msm_fb_data_type *mfd;
- mfd = platform_get_drvdata(msd.msm_pdev);
-
- rc = snprintf((char *)buf, sizeof(buf), "%d\n", mfd->bl_level);
-
- return rc;
-}
-
-static ssize_t mipi_samsung_disp_backlight_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct msm_fb_data_type *mfd;
- int level = atoi(buf);
-
- mfd = platform_get_drvdata(msd.msm_pdev);
-
- mfd->bl_level = level;
-
- if (mfd->resume_state == MIPI_RESUME_STATE) {
- mipi_samsung_disp_backlight(mfd);
- pr_info("%s : level (%d)\n",__func__,level);
- } else {
- pr_info("%s : panel is off state!!\n", __func__);
- }
- return size;
-}
static struct lcd_ops mipi_samsung_disp_props = {
.get_power = NULL,
.set_power = NULL,
};
-#if defined(RUMTIME_MIPI_CLK_CHANGE)
-static ssize_t mipi_samsung_fps_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int rc;
-
- rc = snprintf((char *)buf, 20, "%d\n", current_fps);
-
- return rc;
-}
-
-static ssize_t mipi_samsung_fps_store(struct device *dev,
- struct device_attribute *attr, const char *buf, size_t size)
-{
- struct msm_fb_data_type *mfd;
- int goal_fps;
- int level = atoi(buf);
-
- mfd = platform_get_drvdata(msd.msm_pdev);
-
- if (mfd->panel_power_on == FALSE) {
- pr_err("%s fps set error, panel power off 1", __func__);
- return size;
- }
-
- if (level == 0)
- goal_fps = 60;
- else if (level == 1)
- goal_fps = 42;
- else if (level == 2)
- goal_fps = 51;
- else {
- pr_info("%s fps set error : invalid level %d", __func__, level);
- return size;
- }
-
- if (current_fps != goal_fps)
- current_fps = goal_fps;
- else
- return size;
-
- mutex_lock(&dsi_tx_mutex);
-
- if (mfd->panel_power_on == FALSE) {
- mutex_unlock(&dsi_tx_mutex);
- pr_info("%s fps set error, panel power off 2", __func__);
- return size;
- } else {
- mipi_runtime_clk_change(current_fps);
- mutex_unlock(&dsi_tx_mutex);
- }
-
- pr_info("%s goal_fps : %d", __func__, goal_fps);
-
- return size;
-}
-#endif
-
static DEVICE_ATTR(lcd_power, S_IRUGO | S_IWUSR,
mipi_samsung_disp_get_power,
mipi_samsung_disp_set_power);
@@ -619,13 +476,8 @@ static DEVICE_ATTR(lcd_type, S_IRUGO, mi
static DEVICE_ATTR(auto_brightness, S_IRUGO | S_IWUSR | S_IWGRP,
mipi_samsung_auto_brightness_show,
mipi_samsung_auto_brightness_store);
-static DEVICE_ATTR(backlight, S_IRUGO | S_IWUSR | S_IWGRP,
- mipi_samsung_disp_backlight_show,
- mipi_samsung_disp_backlight_store);
#if defined(RUMTIME_MIPI_CLK_CHANGE)
-static DEVICE_ATTR(fps_change, S_IRUGO | S_IWUSR | S_IWGRP,
- mipi_samsung_fps_show,
- mipi_samsung_fps_store);
+static DEVICE_ATTR(fps_change, S_IRUGO | S_IWUSR | S_IWGRP, NULL, NULL);
#endif
#ifdef DDI_VIDEO_ENHANCE_TUNING
@@ -839,23 +691,6 @@ static ssize_t tuning_store(struct devic
static DEVICE_ATTR(tuning, 0664, tuning_show, tuning_store);
#endif
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
-static irqreturn_t err_fg_irq_handler(int irq, void *handle)
-{
- pr_info("%s start", __func__);
- schedule_work(&err_fg_work);
- return IRQ_HANDLED;
-}
-
-static void err_fg_work_func(struct work_struct *work)
-{
- err_fg_working = 1;
- esd_recovery();
- err_fg_working = 0;
- pr_info("%s end", __func__);
- return;
-}
-#endif
static int __devinit mipi_samsung_disp_probe(struct platform_device *pdev)
{
int ret;
@@ -893,34 +728,6 @@ static int __devinit mipi_samsung_disp_p
register_early_suspend(&msd.early_suspend);
#endif
-#if defined(CONFIG_ESD_ERR_FG_RECOVERY)
- INIT_WORK(&err_fg_work, err_fg_work_func);
-
- err_fg_gpio = PM8921_GPIO_PM_TO_SYS(PMIC_GPIO_ERR_FG);
-
- ret = gpio_request(err_fg_gpio, "err_fg");
-
- if (ret) {
- pr_err("request gpio err_fg failed, rc=%d\n", ret);
- return -ENODEV;
- }
-
- ret = pm8xxx_gpio_config(err_fg_gpio, &gpio_get_param);
-
- if (ret) {
- pr_err("gpio_config err_fg_gpio failed (3), rc=%d\n", ret);
- return -EINVAL;
- }
-
- ret = request_threaded_irq(PM8921_GPIO_IRQ(PM8921_IRQ_BASE, PMIC_GPIO_ERR_FG),
- NULL, err_fg_irq_handler, IRQF_TRIGGER_RISING | IRQF_ONESHOT, "esd_detect", NULL);
- if (ret) {
- pr_err("%s : Failed to request_irq.:ret=%d", __func__, ret);
- }
-
- disable_irq(PM8921_GPIO_IRQ(PM8921_IRQ_BASE, PMIC_GPIO_ERR_FG));
-#endif
-
#if defined(CONFIG_LCD_CLASS_DEVICE)
printk(KERN_INFO "[lcd] lcd_device_register for panel start\n");
@@ -950,13 +757,6 @@ static int __devinit mipi_samsung_disp_p
dev_attr_lcd_type.attr.name);
}
- ret = sysfs_create_file(&lcd_device->dev.kobj,
- &dev_attr_backlight.attr);
- if (ret) {
- pr_info("sysfs create fail-%s\n",
- dev_attr_backlight.attr.name);
- }
-
#if defined(RUMTIME_MIPI_CLK_CHANGE)
ret = sysfs_create_file(&lcd_device->dev.kobj,
&dev_attr_fps_change.attr);
file:aecfa65a2bf90eacf65514b22c41ea556f6ee08b -> file:ca72218099d3afe35e5f841a6f8006c4b843aafa
--- a/drivers/video/msm/msm_fb.c
+++ b/drivers/video/msm/msm_fb.c
@@ -137,7 +137,7 @@ struct dentry *msm_fb_debugfs_file[MSM_F
static int bl_scale, bl_min_lvl;
DEFINE_MUTEX(msm_fb_notify_update_sem);
-DEFINE_MUTEX(power_state_chagne);
+static DEFINE_MUTEX(power_state_chagne);
void msmfb_no_update_notify_timer_cb(unsigned long data)
{
@@ -1111,22 +1111,14 @@ static int msm_fb_mmap(struct fb_info *i
u32 len = PAGE_ALIGN((start & ~PAGE_MASK) + info->fix.smem_len);
unsigned long off = vma->vm_pgoff << PAGE_SHIFT;
struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
+
+ if ((vma->vm_end <= vma->vm_start) || (off >= len) ||
+ ((vma->vm_end - vma->vm_start) > (len - off)))
+ return -EINVAL;
msm_fb_pan_idle(mfd);
- if (off >= len) {
- /* memory mapped io */
- off -= len;
- if (info->var.accel_flags) {
- mutex_unlock(&info->lock);
- return -EINVAL;
- }
- start = info->fix.mmio_start;
- len = PAGE_ALIGN((start & ~PAGE_MASK) + info->fix.mmio_len);
- }
/* Set VM flags. */
start &= PAGE_MASK;
- if ((vma->vm_end - vma->vm_start + off) > len)
- return -EINVAL;
off += start;
vma->vm_pgoff = off >> PAGE_SHIFT;
/* This is an IO map - tell maydump to skip this VMA */
@@ -1380,9 +1372,7 @@ static int msm_fb_register(struct msm_fb
var->xres = panel_info->xres;
var->yres = panel_info->yres;
-
-#if defined (CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_VIDEO_FULL_HD_PT) \
- || defined (CONFIG_FB_MSM_MIPI_RENESAS_TFT_VIDEO_FULL_HD_PT_PANEL)
+#ifdef CONFIG_FB_MSM_MIPI_SAMSUNG_OCTA_VIDEO_FULL_HD_PT
var->height = panel_info->height; /* height of picture in mm*/
var->width = panel_info->width; /* width of picture in mm*/
#else
file:5f970bff9ae8721a8dff71f0d54bb6d7e8c1eaf3 -> file:4b70eeda0b7a544a96e290f28ec86ecc558bd41c
--- a/drivers/video/msm/vidc/common/vcd/vcd_power_sm.c
+++ b/drivers/video/msm/vidc/common/vcd/vcd_power_sm.c
@@ -342,6 +342,17 @@ u32 vcd_update_clnt_perf_lvl(
new_perf_lvl = frm_p_units *\
(fps->fps_numerator / fps->fps_denominator);
+ if ((fps->fps_numerator * 1000) / fps->fps_denominator
+ > VCD_MAXPERF_FPS_THRESHOLD_X_1000) {
+ u32 max_perf_level = 0;
+ if (res_trk_get_max_perf_level(&max_perf_level)) {
+ new_perf_lvl = max_perf_level;
+ VCD_MSG_HIGH("Using max perf level(%d) for >60fps\n",
+ new_perf_lvl);
+ } else {
+ VCD_MSG_ERROR("Failed to get max perf level\n");
+ }
+ }
if (cctxt->status.req_perf_lvl) {
dev_ctxt->reqd_perf_lvl =
dev_ctxt->reqd_perf_lvl - cctxt->reqd_perf_lvl +
file:5ca37215e2982cff172bb0ecd7d83e468bcd3a57 -> file:77a7d8fcf4514dba312839a07b4534db989b4520
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -156,17 +156,13 @@ fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTIC
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_b0_fac.fw
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_b0_5_1_fac.fw
ifdef CONFIG_MACH_JACTIVE_EUR
-fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_hsync.fw
-fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_hsync_fac.fw
-fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_non_hsync.fw
-fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_non_hsync_fac.fw
+fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_JA_a1.fw
+fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_JA_b0_3_4.fw
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_d0.fw
endif
ifdef CONFIG_MACH_JACTIVE_ATT
-fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_hsync.fw
-fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_hsync_fac.fw
-fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_non_hsync.fw
-fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/jactive/synaptics_b0_non_hsync_fac.fw
+fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_JA_a1.fw
+fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_JA_b0_3_4.fw
fw-shipped-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI) += tsp_synaptics/synaptics_d0.fw
endif
file:dc4537ee7039846ef3757e9a8df5b3cd768072c0 -> file:3694504d4e8e6a25e06d490d03b60f7e9e0fab1d
Binary files a/firmware/audience-es325-fw-eur.bin and b/firmware/audience-es325-fw-eur.bin differ
file:ed1fc388f6bd49d2354201845b9b377b3fdeb29f -> file:ab823b86a9f6fe38e9a6b78455e8fb4f5a3984af
Binary files a/firmware/audience-es325-fw-jactive_att.bin and b/firmware/audience-es325-fw-jactive_att.bin differ
file:5e2043df0f65190a07b67f12f812a84afcf6ea80 -> file:c519dc377e71059a732c66129c5796839796362c
--- a/firmware/ssp_rev03.fw.ihex
+++ b/firmware/ssp_rev03.fw.ihex
@@ -1,83 +1,83 @@
:10000000000D02F1EC5601002000010000E7F901AB
:100010000D02F1EC56030000000100482D483FD7C7
-:10002000030000000080008001C3C0EBCD40E01859
-:100030009730565907C235E06543C0EA150000ED18
+:10002000030000000080008001C54CEBCD40E018CB
+:100030009730565907C235E06543D8EA150000ED00
:10004000B70000C0C2301CAADCAAEC30CCAAFC0A63
-:100050009C2F8CE0A0B85418962F8630CCE0A0B727
-:10006000D5FE360005EB5601F45C86F9D6B010A932
+:100050009C2F8CE0A0B89018962F8630CCE0A0B8EA
+:1000600011FE360005EB5601F45C86F9D6B010A9F6
:100070004CAA8CAA96AAA7AABCAAC6E3CF90E080F5
-:100080000190E080018FECD401E0A02703E06B3603
-:1000900030EA1B00002B7C198CB68C169CD802E031
-:1000A0006C3630EA1C0000E06B00C6B88BE06B00D9
-:1000B000FCB89BE06B00A0B8AB5EFCEBCD408018B9
-:1000C000975807C031E3CF8080E0A0D409300BC03F
+:1000800001915880019064D401E0A02703E06B3611
+:1000900048EA1B00002B7C198CB68C169CD802E019
+:1000A0006C3648EA1C0000E06B00C6B88BE06B00C1
+:1000B000FDB89B368BB8AB5EFC0000EBCD408018E2
+:1000C000975807C031E3CF8080E0A0D4D7300BC071
:1000D00098EE0B070AF80B00092849B28A2FFB5C3F
:1000E0005B584BCF75E3CF90800000EBCD40E02014
-:1000F0001D1896300CBA8CE0A0D3F2189530075832
+:1000F0001D1896300CBA8CE0A0D4C0189530075863
:1001000006C031300CC1E8E0A026C42C0C988CED60
-:10011000BC0005C033301CC1580D8C009F39001342
+:10011000BC0005C033301CC1580D8C0015C2001343
:1001200002F1EC56040020000080010021000100D3
:1001300000CB7A010D02F1EC56030000000100EB48
:100140006C00800D9CEB6C0081301B1A9CE06A46B1
-:1001500050EA1A0000745A74BA746A5D1AC02030EA
+:1001500068EA1A0000745A74BA746A5D1AC02030D2
:10016000170E9C5C5C2FFDE3CD80E0D401201D1AAE
:100170009B300AB68AB69AB6AA580CC031300CC168
:1001800038198BBA8B199BBA9B19ACBAAC303A1A96
-:100190009B301CE0694650EA190000722972B9725E
+:100190009B301CE0694668EA190000722972B97246
:1001A000895D19301C2FFDD8020000D401201D1AD2
:1001B0009C300BB88BB89BB8AB303A1A9B300CE034
-:1001C000694650EA190000722972B972895D19E016
-:1001D0006C3630EA1C00001B8BB88B1B9BB89B1B3A
+:1001C000694668EA190000722972B972895D19E0FE
+:1001D0006C3648EA1C00001B8BB88B1B9BB89B1B22
:1001E000ABB8AB2FFDD802EBCD4080201D300BBA51
-:1001F0008B198CBA8CE06C4650EA1C000078476E74
+:1001F0008B198CBA8CE06C4668EA1C000078476E5C
:10020000BC782C5D1CC031300CC0D8301A1A9B3021
:100210005C6EB972895D19CF806EBC781C5D1CCF95
:1002200040301C2FFDE3CD80800000EBCD408018D6
-:10023000975807C031E3CF8080E0A0D3630F8B00D5
-:100240006575001302F1EC560400210000800100E6
+:10023000975807C031E3CF8080E0A0D4310F8B0006
+:100240006D2D001302F1EC56040021000080010026
:1002500022000100005EB1010D02F1EC5603000026
:10026000000100F96B0082F93C0082580CC060323A
-:100270002CE0A029A9E3CF9080E06B4650EA1B0058
+:100270002CE0A029A9E3CF9080E06B4668EA1B0040
:1002800000765C199A768C199C180A764C199C1881
:100290000A5C5AC041322CE0A029A6E3CF908080AE
:1002A00000756080007580D401E0A02617E06B36F1
-:1002B00030EA1B0000F91A0040A94AB68A2C0C98B3
+:1002B00048EA1B0000F91A0040A94AB68A2C0C989B
:1002C0008CB69C169CD802D431189030073006307A
-:1002D000053004E06345B9EA130000300CA68CE059
-:1002E000A0D3221892F9D0B008E0A06C05C080E03D
+:1002D000053004E06345D1EA130000300CA68CE041
+:1002E000A0D3F01892F9D0B008E0A06C05C080E06F
:1002F0006C00C8C6AC3C8CA68C3C87C288CA1CC0AB
-:10030000213016F9D0B008E0A073541891E56100CF
+:10030000213016F9D0B008E0A077521891E56100CD
:1003100064658C580CC060F9D0B008E0A06C04187B
:100320009529A2848C580CC040E0A0722918945CD6
:1003300061C0715C64C0515C65C0315C66C070E0D6
:100340006C00C4C42C3C473C4CA68C0E9C5C6CD806
-:1003500032D7038000FA908001094C8000FAC080F7
-:10036000010718009C84001302F1EC5604002200DF
+:1003500032D7038000FA90800111488000FAC080F3
+:10036000010718004730001302F1EC560400220088
:10037000008001002300010000E10A010D02F1EC00
-:1003800056030000000100EBCD4080E0A0D2DE1853
+:1003800056030000000100EBCD4080E0A0D3AC1884
:10039000976F8C580CC030E0A06C0229A78E8C5847
:1003A0000CC030E0A0721EE0A02702E0A029E458B3
:1003B0001CC061E0A029E6300CE0A029D3E3CF8087
:1003C00080D7038000FB14800107588000712480CF
-:1003D0000076EC800076F8800076D8E06B45B6EACF
-:1003E0001B0000F72C00005EFC0000E06B45B7EA44
+:1003D0000076EC800076F8800076D8E06B45CEEAB7
+:1003E0001B0000F72C00005EFC0000E06B45CFEA2C
:1003F0001B0000E04C00CFC071178AF4091518C02B
:1004000030B69AC038300AB69AB68C5EFD0000E06D
-:100410006C45B7EA1C0000198C5EFCD401E0A00911
-:100420000DCB3FD80A0000EBCD40C0E0673630EA84
+:100410006C45CFEA1C0000198C5EFCD401E0A009F9
+:100420000DCB3FD80A0000EBCD40C0E0673648EA6C
:100430001700003006EF6600FCE0A0063DC071AE7C
:1004400096E06C00C4AE8CEF6600FCEF6600FDEF3A
:100450006600FFEF6600FEEF6601000E9CE3CD80B4
-:10046000C00000E06C3630EA1C0000F93B00FD588B
+:10046000C00000E06C3648EA1C0000F93B00FD5873
:100470000B5E1DF93B00FF580B5E1DF93B00FE585B
-:100480000B5E1DF93C010000EEA2001302F1EC56D8
+:100480000B5E1DF93C0100004CDF001302F1EC563D
:1004900004002300008001002400010000F5220177
:1004A0000D02F1EC56030000000100580C5E1D5EC9
:1004B000FF0000D421580CC040F60A1518C021D8FE
:1004C0002A300AC138F20E00070FC7F13600FCF0DF
:1004D000060B07F13700FC2FF7F16700FC2FFE5CDD
:1004E0006E581ECF152FFA5C6A163AE08405F5F4B3
-:1004F0000910681809E0683630EA180000138EF118
+:1004F0000910681809E0683648EA180000138EF100
:100500003700FCF0070B0EF13E00FC2FFEF16E00F1
:10051000FC138E5C5EC0B0201EE08002AD201EE0A9
:10052000800519201EE0800288D82A13AEF137001A
@@ -88,7 +88,7 @@
:100570003E00FC2FFEF16E00FC922EF13700FCF0E5
:10058000070B0EF13E00FC2FFEF16E00FC923EA91F
:100590004EF13700FCF0070B0EF13E00FC2FFEF190
-:1005A0006E00FC923EF13700FCF00700314600136C
+:1005A0006E00FC923EF13700FCF007003C47001360
:1005B00002F1EC5604002400008001002500010037
:1005C000009F9A010D02F1EC560300000001000BA0
:1005D0000EF13E00FC2FFEF16E00FC924EA94EF192
@@ -294,48 +294,48 @@
:101250000D02F1EC5603000000010000FC2FFECE51
:10126000EB5C6E584EFE94FA18F20E00070FC7F1B1
:101270003600FCF0060B07F13700FC2FF7F1670092
-:10128000FC2FFECEFBDA2AEBCD40E0E0673630EAF9
-:10129000170000302CEF6C00FCE06638C8EA16003E
+:10128000FC2FFECEFBDA2AEBCD40E0E0673648EAE1
+:10129000170000302CEF6C00FCE06638E0EA160026
:1012A00000EF3B00FD0C9C298CFEB0F9DD1895EF9A
:1012B0003B00FF0C9CFEB0F9D71845EF3B00FE0C3D
:1012C0009CFE3CF980FEB0F9CF1845EF3B0100FED3
:1012D00036F9180C9CFEB0F9C718455815C0F1EF47
:1012E0003C00FCFE3CFF02EF6C00FCEF3C00FCAE5F
:1012F0009CE06C00C4AE8CE3CF90E0300CEF6C004F
-:10130000FCE3CF80E00000E06C43C0EA1C0000E09A
+:10130000FCE3CF80E00000E06C43D8EA1C0000E082
:101310006B00C8B88B311BB89B5EFCD401FEB0F7E4
-:10132000A7E06C43C0EA1C0000D802300CE06B431D
-:10133000C0EA1B0000F75C01F45EFFEBCD408020AB
+:10132000A7E06C43D8EA1C0000D802300CE06B4305
+:10133000D8EA1B0000F75C01F45EFFEBCD40802093
:101340001D1A9B300AB68AB69AB6AA590CC065CE49
-:101350006F1897CECF0E9CC1C8581C0060FA0013BE
+:101350006F1897CECF0E9CC1C8581C003D190013C2
:1013600002F1EC5604003000008001003100010061
:101370000018FF010D02F1EC56030000000100C14E
-:10138000911A9CE0A0CB68E06C3630EA1C00001B90
+:10138000911A9CE0A0CC2EE06C3648EA1C00001BB1
:101390008BB8DB1B9BB8EB1BABB8FB304BF96B007E
:1013A000FC300AB88AB89B3019B8A9B8BAB8CBC013
-:1013B00028300C2FFDE3CD8080D7038001C7D4D423
+:1013B00028300C2FFDE3CD8080D7038001C960D495
:1013C00031216D189716965807C040EC0C1518C0BF
:1013D00041300CE08F0213E0A01E8E1890300230D6
:1013E00005FB550054FB65002D30ACFB6C002EFB5B
-:1013F000650030FB650031E06438C4EA140000A8E1
+:1013F000650030FB650031E06438DCEA140000A8C9
:10140000853003C068A8953012098C2FFCA88CEC9D
:10141000031800E08201F15C53EE03070CE0613732
-:1014200034EA110000098BF60A1028020AB48C2F46
+:101420004CEA110000098BF60A1028020AB48C2F2E
:10143000F3E04C00A1C1815C53EE03070CB49C2F78
:10144000F35C53EE03070CB4CC2FF35C53EE0307AD
-:101450000CB4DC2FF315CB5C6B159C5C6CE0A06BC3
-:10146000FB1892CD3BE04C00A2C1815C53EE030718
+:101450000CB4DC2FF315CB5C6B159C5C6CE0A06FBF
+:10146000F91892CD3BE04C00A2C1815C53EE03071A
:101470000CB49C2FF35C53EE03070CB4CC2FF30099
-:10148000A436001302F1EC56040031000080010084
+:10148000CF00001302F1EC5604003100008001008F
:1014900032000100008D34010D02F1EC5603000012
:1014A0000001005C53EE03070CB4DC2FF315CB5C9A
-:1014B0006B159C5C6CE0A06BE91892CB9BE04C0038
+:1014B0006B159C5C6CE0A06FE71892CB9BE04C0036
:1014C000A4C1815C53EE03070CB49C2FF35C53EE74
:1014D00003070CB4CC2FF35C53EE03070CB4DC2FE2
-:1014E000F315CB5C6B159C5C6CE0A06BD71892C9B4
+:1014E000F315CB5C6B159C5C6CE0A06FD51892C9B2
:1014F000FBE04C00A8C2815C53EE03070CB49C2FA8
:10150000F35C53EE03070CB4CC2FF35C53EE0307EC
-:101510000CB4DC2FF3159C500CE06CE8B4EA1C8092
+:101510000CB4DC2FF3159C500CE06CEA74EA1C80D0
:1015200001E0A01F0F098CF80C1028180103CB0351
:101530009C5C6CE0A065F61892F7D2C008009CE0B5
:10154000A021F4C75BE04C00B8C1815C53EE0307F7
@@ -344,7 +344,7 @@
:101570006CE0A065451892C5BBE04C00B1E081016C
:10158000235C53EE03070CB49C2FF35C6CE0A0606B
:101590006B581C098CF80C1028E08100E0020C1933
-:1015A0009B583B001DC3001302F1EC5604003200AF
+:1015A0009B583B000D82001302F1EC560400320000
:1015B000008001003300010000328F010D02F1ECC8
:1015C00056030000000100C1415C53EE03070BF914
:1015D0006B00082FF35C53EE03070BF96B00092F28
@@ -384,204 +384,204 @@
:1017F00002F1EC56040034000080010035000100C5
:10180000004C1F010D02F1EC56030000000100FA2C
:10181000CCFFD41A9B32C9190A16AA2049CFD1E0AD
-:10182000A0A3CC1892C3AA301CA89C3012C36AE0B3
+:10182000A0A4081892C3AA301CA89C3012C36AE076
:101830004C00B2FE91FE335C53EE03070CB49C2FB8
:10184000F35C53EE03070CB4CC2FF35C53EE0307A9
:101850000CB4DC2FF3159C585CFE90FE1E301BFB75
:101860006B002CFB6C002D30BCFB6C002EFACCFF07
:10187000D41A9B32C9190A16AA2049CFD1E0A0A3D5
-:101880009D1892C0BA049C5C5C2EADD832D7038000
-:101890000109D4800109E4800109F48000709C8072
+:10188000D91892C0BA049C5C5C2EADD832D70380C4
+:101890000111D0800111E0800111F08000709C8066
:1018A00000FE7C800076848000FD588000F3C080BC
-:1018B000017CA8E06C38C4EA1C0000199C5EFCD4D2
-:1018C00021E0A0C9871897E0A01C5E18963005306B
-:1018D00004EF2C0064580CC0E0E06B3630EA1B00CB
-:1018E00000FE3BFF03E06C38C8EA1C0000298CE0D6
-:1018F000A09F54ED3C0056581CC235E06C3630EACF
-:101900001C0000E06A38C8EA1A0000F93B00FF003A
-:1019100074CE001302F1EC56040035000080010083
+:1018B000017D20E06C38DCEA1C0000199C5EFCD441
+:1018C00021E0A0CA551897E0A01C5E18963005309C
+:1018D00004EF2C0064580CC0E0E06B3648EA1B00B3
+:1018E00000FE3BFF03E06C38E0EA1C0000298CE0BE
+:1018F000A09F90ED3C0056581CC235E06C3648EA7B
+:101900001C0000E06A38E0EA1A0000F93B00FF0022
+:10191000C62D001302F1EC560400350000800100D2
:101920003600010000D9D4010D02F1EC560300008D
:10193000000100F60B1068140B303AB68AED3A003D
:1019400056B6AAED3A00562A962FCB1698580AC0DA
:10195000500D39201A10C9CFD1301BF96B00FFC0D0
-:10196000282FF45C6458A4C0A4E06C45BCEA1C00B9
+:10196000282FF45C6458A4C0A4E06C45D4EA1C00A1
:1019700000F804060B581BCF5130155C655815C094
-:10198000F5E06B3630EA1B0000FE3BFF02E06C38EE
-:10199000C8EA1C0000FE3CF980E0A0688F6F8C58FC
-:1019A0000CC0F0E06B3630EA1B0000FE3BFF00E0AD
-:1019B0006C38C8EA1C0000FE3CF918E0A062F6D8BA
-:1019C0002AD7038001C8C080006E748001748880AB
-:1019D0000107848000FC74EDBC00105F2C5C5C5E31
-:1019E000FC00003009F40B0D0AA19AC0382FF9A1B0
-:1019F0009AE04A0100C0435C595889CF955C595818
-:101A000089C0353F8C5EFCF40B1601F408160114F6
-:101A100028F7E8108B5C59F7E911C9F3EA110A9924
-:101A20001A300C5EFC0000EBCD40C018971696E112
-:101A3000BC000000100F001302F1EC560400360049
+:10198000F5E06B3648EA1B0000FE3BFF02E06C38D6
+:10199000E0EA1C0000FE3CF980E0A0688F6F8C58E4
+:1019A0000CC0F0E06B3648EA1B0000FE3BFF00E095
+:1019B0006C38E0EA1C0000FE3CF918E0A062F6D8A2
+:1019C0002AD7038001CA5C80006E74800175008094
+:1019D0000107848000FC74EBCD40C0201DE06CEA60
+:1019E000B9EA1C8001FACBFFFF198AB68A199AB6A8
+:1019F0009A19ACBA8C3006C0382FF65C56E06700F6
+:101A00008C58A6C184E06C0098EA1C0000F806001F
+:101A10000B2F0B178BBA9B0C0C198CBAAC3029FA14
+:101A2000CAFFFFF7D7C008304CE0A01D25CE6130BB
+:101A30000CC1B800E3D6001302F1EC5604003600E6
:101A4000008001003700010000666F010D02F1EC1B
-:101A500056030000000100CD2F300BE06A4F1CEA56
-:101A60001A0000950BF80B1518C020D3033FFB8F0D
-:101A70009B301B8F0BE06B00808F0B5C5C580CC0A5
-:101A800020D5033FFC8FBC303AE06B0280E06C4114
-:101A900064EA1C8000E0A0C2C1ED3C000C580CC000
-:101AA00050310C8F0C3FFC8F2C6C0A6C1B0E9CCAA7
-:101AB000CF5B8CC0413F8CE3CD80C0300CE3CD8048
-:101AC000C0D7038001BCC0EBCD40801897E1BC00BB
-:101AD00000C95F5C5C580CC020D3033FFC8F9C3F67
-:101AE000FC8FBCE3CF8080EBCD40C0201D18961644
-:101AF00097300C500C34BCE0A0BBBC302C8D0CE0FB
-:101B00006C4F10EA1C00009906E06C4F10EA1C00B4
-:101B100000780CCDAF6E3CE06B4F18EA1B000097CD
-:101B20000C6E4CE06B4F24EA1B0000970C300CE06D
-:101B30006B4F30EA1B0000B68C300CE06B4F1CEA98
-:101B40001B0000970CEF3C0008580CC570301CE0DF
-:101B50006B4F10EA1B000000E035001302F1EC5659
+:101A50005603000000010030181A99305AF7D7C019
+:101A600008304CE0A01D46CF601B8CA7BCBA8C3060
+:101A70005CBA9C1B8CBAAC3029FACAFFFFF7D7C0FE
+:101A800008304CE0A01D0ACE60301C2FFDE3CD8055
+:101A9000C00000D421203DE067E728EA178001FA62
+:101AA000CCFFFB0F8BB88B0F9BB89B0FACBACC6EE7
+:101AB0001C502C0E9C2F8CE0A01C9E305CBADCE0ED
+:101AC0006C0080BAECE066008C3029FACAFFFBF7A4
+:101AD000D6C008304CE0A01CE1C031300CC65832F2
+:101AE0002CE0A01EEB3004C1E85834C1A05844C11A
+:101AF000805854C160E0650098EA150000EA0400CF
+:101B00000C2F0C198CBADC08050B8CBAEC3029FAB6
+:101B1000CAFFFBF7D6C008304CE0A01CBFCDF02FA9
+:101B2000F45C5458A4CE253018FAC9FFFC305AF79B
+:101B3000D6C008304CE0A01CDDCD101BCCF9DCC0B9
+:101B400007BACC3019FACAFFFCF7D6C008304CE00F
+:101B5000A01CA4CC40E0A0007FA2001302F1EC5630
:101B600004003700008001003800010000F184010A
-:101B70000D02F1EC56030000000100760B970CE01B
-:101B80006C0080E06B4F10EA1B0000760B970C3066
-:101B90002CE06B4F10EA1B0000760B970C0E9C2F6D
-:101BA000CCE06B4F14EA1B0000970CE06C4F14EA7A
-:101BB0001C0000780CEF3B00085C3B160C2FCCE0BF
-:101BC0006B4F14EA1B0000970CEF3C0008E06B4FD2
-:101BD00020EA1B0000970CE06C0703E06B4F28EA3B
-:101BE0001B0000970C6E0CA17CEF3B0008F9EB1179
-:101BF0000CE81CA000E06B4F10EA1B0000760B976E
-:101C00003C6E0CA17C6E4BF9EB110CE81CE001E082
-:101C10006B4F10EA1B0000760B974CC1B8300CE0FC
-:101C20006B4F20EA1B0000970CE06C0701E06B4F44
-:101C300028EA1B0000970C6E0CA17C6E4BF9EB118F
-:101C40000CE81CE001E06B4F10EA1B0000760B97DC
-:101C50003CE06C4F28EA1C0000780CE06B4F10EA67
-:101C60001B0000760B978C301C8D0CD503E06C4F5D
-:101C70001CEA1C0000780C580CC10100DF9A00130C
+:101B70000D02F1EC5603000000010092E5E0650063
+:101B800098EA150000EB3C000C581CC1F1304BFAF0
+:101B9000CCFFF8CA2C581CC1C1FB3C000B500CFBFD
+:101BA00038000AFB390009FB3A0008E06B7710EABD
+:101BB0001B8000300CE0A0C399300CE0A01F4CE06B
+:101BC000A01F5A300C2F45AA8C301C2FDDD8222F95
+:101BD000470E9CE0A01C22300CCF9B80015DC8808A
+:101BE00001BF6C800076D8800076F8EBCD40802075
+:101BF0001DE06CEA04EA1C8001FACBFFFF198AB6EB
+:101C00008A199AB69A19ABBA8B2FCCE0A01C06E0C1
+:101C100067008C30181A99305AF7D7C008304CE05A
+:101C2000A01C7AC031300CC1B81B8CA7BCBA8C3058
+:101C30005CBA9C1B8CBAAC3029FACAFFFFF7D7C03C
+:101C400008304CE0A01C3CCEF0E0A0C8C7F93C0036
+:101C500082580CC041322CE0A01E52301C2FFDE3F4
+:101C6000CD8080EBCD4080201DE06CEAD1EA1C8065
+:101C700001FACBFFFF198AB68A199A0014280013BB
:101C800002F1EC5604003800008001003900010028
-:101C900000B13F010D02F1EC56030000000100E02D
-:101CA000A002C4580CC0C1FECFFFFC400B2FFB505C
-:101CB0000B400CEE5C4240CED33FDCC178302C8D23
-:101CC0000CE06C4F1CEA1C0000780C5BCCC080E080
-:101CD0006C4F1CEA1C0000780C5BECC0313FFCC070
-:101CE0005834BCE0A0BB0C300C2FFDE3CD80C0EB22
-:101CF000CD40F8201D189516971496129410933025
-:101D00000C500C34BCE0A0BAD9301C8B0CE06C0039
-:101D1000808B0C302C8B0CE06C4F10EA1C0000996F
-:101D200005E06C4F10EA1C0000780CCF2EE06C4FE1
-:101D300018EA1C00009907E06C4F24EA1C00009987
-:101D400006300CE06B4F30EA1B0000B68C300CE024
-:101D50006B4F1CEA1B0000970C5C535803C170E8E2
-:101D60000C1501E81CA800E06B4F10EA1B00007680
-:101D70000B973CA174E9E61106E816F801E06C4FF8
-:101D800010EA1C0000780C9946C0C8A174E9E6115D
-:101D900006E816E001E06C4F10EA1C0000780C0029
-:101DA000B475001302F1EC56040039000080010004
+:101C900000B13F010D02F1EC56030000000100B657
+:101CA0009A19ACBA8CE067008C30181A99305AF740
+:101CB000D7C008304CE0A01C41C031300CC1B81B6B
+:101CC0008CA7BCBA8C305CBA9C1B8CBAAC3029FA9D
+:101CD000CAFFFFF7D7C008304CE0A01C03CEF0E0ED
+:101CE000A0C88EF93C0082580CC041322CE0A01EE6
+:101CF00019301C2FFDE3CD80800000EBCD40801813
+:101D00009730480E99301AE06B008C304CE0A01CE4
+:101D100015C091E06CEA14EA1C8001E0A01B90E37E
+:101D2000CF80800E9CC0DC30080FB90FAA0F9B0F2C
+:101D30008CE0A08FCFE3CF9080D70380015930EBA8
+:101D4000CD40E0201DE067E8D4EA1780011A9B0F20
+:101D50008AB68A0F9AB69A300AC098300893A87249
+:101D6000A95839C035301997F92FFAE06B0098EA75
+:101D70001B0000584AC1341699F20A0029F80A07D4
+:101D8000085808CEC172A82FF893A872A8E0588608
+:101D9000A1CE75E07886A093A8CE3B76FC580C00C7
+:101DA00083B3001302F1EC560400390000800100F7
:101DB0003A0001000024F4010D02F1EC560300008A
-:101DC0000001009936E06C0701E06B4F28EA1B0028
-:101DD00000970CE06C4F28EA1C0000780CE06B4F79
-:101DE00010EA1B0000760B978C301CE06B4F10EA5A
-:101DF0001B0000760B970CD503E06C4F1CEA1C000F
-:101E000000780C580CC101E0A00222580CC0C1FEA1
-:101E1000CFFFFC400B2FFB500B400CEE5C4240CE42
-:101E2000D33FDCC178302C8B0CE06C4F1CEA1C00DB
-:101E300000780C5BCCC080E06C4F1CEA1C00007882
-:101E40000C5BECC0313FFCC05834BCE0A0BA6A3037
-:101E50000C2FFDE3CD80F8EBCD40C0201D18961669
-:101E600097300C500C34BCE0A0BA3A301C8D0CE01A
-:101E70006C00808D0C302C8D0CE06C4F10EA1C0037
-:101E8000009906E06C4F10EA1C0000780CC53E304B
-:101E90000CE06B4F1CEA1B0000970CE06C0702E0A3
-:101EA0006B4F28EA1B0000970C300CE06B4F30EAB8
-:101EB0001B0000B68CEF3C0008580CC2A00E9C2FF3
-:101EC000CCE06B00DB5C001302F1EC5604003A003E
+:101DC000000100C43076EC580CC401301C97ECE0E4
+:101DD0006600FFBA86354CBA9CE065008C30291A43
+:101DE0009AF7D5C008304CE0A01B8EBA8634DCBA16
+:101DF0009C30291A9AF7D5C008304CE0A01B8434D7
+:101E00005CBA8C305CBA9C30291A9AF7D5C008307D
+:101E10004CE0A01B79344CBA8C340CBA9C30291A93
+:101E20009AF7D5C008304CE0A01B6E345CBA8C30F9
+:101E30000CBA9C30291A9AF7D5C008304CE0A01B88
+:101E4000632FC70E9CE0A01B0D2FFDE3CF80E0D4D5
+:101E500001201D198BE06A0098EA1A0000B4AB1942
+:101E60008C500CE06CE910EA1C8001E0A01AFA2FFB
+:101E7000FDDA0AD421205D1894E067E640EA178075
+:101E800001FACCFFFC0E9BB709B928B709B9286E37
+:101E90004C500CE0A019D21896C33E3005C1681B07
+:101EA0008C401A180A501A1B9C402A180A502A1BE8
+:101EB000AC403A180A503A1BBC404A180A504A3003
+:101EC000AB0C9C00140A001302F1EC5604003A001B
:101ED000008001003B000100009B4F010D02F1EC6E
-:101EE000560300000001004F14EA1B0000970CE0AD
-:101EF0006C4F14EA1C0000780CEF3B00085C3B16AA
-:101F00000C2FCCE06B4F14EA1B0000970CEF3C0049
-:101F100008E06B4F20EA1B0000970C301CE06B4F71
-:101F200030EA1B0000B68CE06C4F2CEA1C000099D4
-:101F300007C0D86E3CE06B4F14EA1B0000970C6E94
-:101F40004CE06B4F20EA1B0000970C6E0BA17B6EE0
-:101F50004A2F870F8C180AF7EA110BE81BE0008D57
-:101F60003BE06C4F28EA1C0000780CE06B4F10EA55
-:101F70001B0000760B978C301CE06B4F10EA1B00A7
-:101F800000760B970CD503E06C4F1CEA1C00007820
-:101F90000C580CC0F1C6DD580CC0C1FECFFFFC4090
-:101FA0000B2FFB500B400CEE5C4240CEE33FDCC1FC
-:101FB00078302C8D0CE06C4F1CEA1C0000780C5B18
-:101FC000CCC080E06C4F1CEA1C0000780C5BECC0BD
-:101FD000313FFCC05834BCE0A0B9B6300C2FFDE353
-:101FE000CD80C0D421189400708B001302F1EC5600
+:101EE00056030000000100E0A01C942FF55835C0F7
+:101EF000C430481A99301AE06B008C304CE0A01BBB
+:101F000041CE11300CC158300CC0B8FACBFFFCF6F2
+:101F10000C032B303AF60A0C0AE80C0B0A2FFC587B
+:101F20004CCF55C9AE2EC70E9CE0A01AAD301C2F69
+:101F3000BDD82280006E7480007428D401300A5805
+:101F40005CC041169CC97F189A149CD8020000D42A
+:101F500001E06BE4D0EA1B8001304CE0A0B4E8D88B
+:101F60000A0000EBCD40E0201DE06CEACEEA1C80C8
+:101F700001FACBFFFF198AB68A199AB69A19ACBA38
+:101F80008CE0A0C76118973005C0382FF55C55E08C
+:101F900066008C58A5C174E06C0098EA1C00000A29
+:101FA0000CF93B0010BA9B2E4C198CBAAC3029FAB4
+:101FB000CAFFFFF7D6C008305CE0A01AB7CE713078
+:101FC0000CC41830181A99305AF7D6C008305CE0A3
+:101FD000A01AD8CF601B8CA1ACBA8C305CBA9C1B09
+:101FE0008CBAAC3029FACA00F277001302F1EC5631
:101FF00004003B00008001003C000100008F6701ED
-:102000000D02F1EC56030000000100169714961221
-:102010009534BCE0A0B988301C890CE06C00808944
-:102020000C302C890CE06C4F10EA1C00009904E085
-:102030006C4F10EA1C0000780CFEB0FDA1300CE0E3
-:102040006B4F30EA1B0000B68C300CE06B4F1CEA83
-:102050001B0000970CEA0C1518C1C0EF3C000C588F
-:102060000CC1806E0CA17CE81CA800893C6E0CA100
-:102070007C6E2BF9EB110CE81CB801894CC038FEC2
-:10208000CFFFFC687CEDBC0003CFB2308C89BCC0B4
-:10209000F86E0BA17B6E2CF7EC110B5C55F7E5107D
-:1020A000BBEF3C000C184BE81BA000893B6C0B6C91
-:1020B0002C5C550A9A5C555805C040ED39000CC09F
-:1020C000283009A17BF7EC110BF7EA10BBF7E910F8
-:1020D000CBED3C000C184BE81BE000894BEF3C00BB
-:1020E0000C580CC3106E1CE06B4F18EA1B000097D5
-:1020F0000CC138687CEDBC0000C0F2685CE06B4F3E
-:1021000018EA1B0000760BB68CE06C0021D9001396
+:102000000D02F1EC56030000000100FFFFF7D6C0FF
+:1020100008305CE0A01A9CCE603018FAC9FFFF308F
+:102020000AF7D6C008305CE0A01ABECDC01B8CA752
+:10203000BCBA8C305CBA9C1B8CBAAC3029FACAFF93
+:10204000FFF7D6C008305CE0A01A82CCC0300A305E
+:102050000B300CE0A01D38EF3C0082580CC0413220
+:102060002CE0A01C95301C2FFDE3CD80E00000D4B7
+:1020700021202DE066E514EA168001FACCFFFC0D64
+:102080008BB88B0D9BB89B0DACBAEC0C9C2FCCE0A5
+:10209000A01A0C322CE0A01C6B3005C0382FF55C68
+:1020A0005558A5C1D45865CFB05875CF905885CF35
+:1020B00070E0670098EA1700000A07EF3C0010BACA
+:1020C000CC2E470F8CBADC3029FACAFFFCE06B003B
+:1020D0008C305CE0A01A3CCE31300CC988E067003F
+:1020E00098EA1700006EEC500C0C9C2F8CE0A019A5
+:1020F000DDE065008C6EEC581CC461E06400FFBA42
+:10210000C4354CBADC3029FACAFFFC0032A10013F6
:1021100002F1EC5604003C00008001003D0001008B
-:1021200000E5DF010D02F1EC560300000001004F55
-:1021300018EA1C0000780B2FFB990B687CEDBC00A3
-:1021400003CEB2687CEDBC0000C422685CE06B4F3B
-:1021500018EA1B0000760BB68CE06C4F18EA1C00E6
-:1021600000780B2FFB990BC3386E1CE06B4F14EA01
-:102170001B0000970C6E2CE06B4F20EA1B000097B1
-:102180000CC228E06C4F20EA1C0000780C580CC1EF
-:10219000B0687CEDBC0001C172E06C4F14EA1C0019
-:1021A00000780C198CE06B4F14EA1B0000760A2FA4
-:1021B000FA970A5C5C896CE06C4F20EA1C0000789E
-:1021C0000B201B990B687CEDBC0003CDC2308C89C1
-:1021D000BCED3C000C580CC1E06C1CE06B4F18EAE5
-:1021E0001B0000970C687CEDBC0004C463687CEDA8
-:1021F000BC0000CF92685CE06B4F18EA1B000076D1
-:102200000BB68CE06C4F18EA1C0000780B2FFB9982
-:102210000BCEAB6C1CE06B4F14EA1B0000970C6CF0
-:102220002CE06B4F20EA1B0000970CC228E06C00EA
-:1022300050AF001302F1EC5604003D000080010095
+:1021200000E5DF010D02F1EC56030000000100F7AD
+:10213000D5C008304CE0A01A1DCE20BAC434DCBA99
+:10214000DC3029FACAFFFCF7D5C008304CE0A01AF1
+:1021500011CD60345CBACC305CBADC3029FACAFFED
+:10216000FCF7D5C008304CE0A01A04CC90344CBA2F
+:10217000CC3004BAD43029FACAFFFCF7D5C00830F5
+:102180004CE0A019F7CBC0345CBACCBAD43029FAF1
+:10219000CAFFFCF7D5C008304CE0A019EBCB002EED
+:1021A000C60C9CE0A019948FE43018FAC9FFFA30ED
+:1021B0005AF7D5C008305CE0A01A08CA101BECF929
+:1021C000DCC007BAEC3019FACAFFFAF7D5C00830FC
+:1021D0005CE0A019CFC9403018FAC9FFFA305AF7AD
+:1021E000D5C008305CE0A019F1C8A01BECA1ACBAC6
+:1021F000EC305CBACC1BECBADC3029FACAFFFCF735
+:10220000D5C008305CE0A019B5FE90FF7A3018FA0E
+:10221000C9FFFA300AF7D5C008305CE0A019D6FE35
+:1022200090FF6F300A301B300CE0A01C5F301C00A8
+:102230008629001302F1EC5604003D0000800100E5
:102240003E000100007014010D02F1EC5603000085
-:102250000001004F20EA1C0000780C580CC1B06847
-:102260007CEDBC0001C172E06C4F14EA1C000078E8
-:102270000C198CE06B4F14EA1B0000760A2FFA97BA
-:102280000A5C5C896CE06C4F20EA1C0000780B2033
-:102290001B990B687CEDBC0004CDC2687CEDBC00D2
-:1022A0000AC062E06C040089BC3FFCD822687CE272
-:1022B0001C0300580CC0A0683CEC1C8000893CE06A
-:1022C0006C030089BC3FFCD82234BCE0A0B872305B
-:1022D0000CD8228001AF188001AF5CE06C4F10EA8F
-:1022E0001C0000780C787CE21C0030580C5F1C5CF1
-:1022F0005C5EFCEBCD4080201D300CBA8CE0673278
-:102300009CEA1700001A9B6E1CE0A079F7C0903081
-:102310001CC67CFB2B0000AE8BEF2C0000AE9C2F6C
-:10232000FDE3CF9080D703800132A4EBCD4080E065
-:1023300067329CEA170000E0A0C4F48F2CE0A0C430
-:10234000EB8F1C300CAE8C6E2CE06BC260EA1B80F5
-:1023500001F94B00821F001302F1EC5604003E000D
+:102250000001002FEDD82280007560EBCD4080207A
+:102260001DE06CEA6CEA1C8001FACBFFFF198AB60C
+:102270008A199AB69A19ABBA8B2FCCE0A0193AE01A
+:1022800067008C30181A99305AF7D7C008305CE0D4
+:10229000A019AEC031300CC2081B8CA7BCBA8C3060
+:1022A0005CBA9C1B8CBAAC3029FACAFFFFF7D7C0C6
+:1022B00008305CE0A01970CEF0300A300B300CE032
+:1022C000A01C26E0A0C5F6F93C0082580CC04132A3
+:1022D0002CE0A01B81301C2FFDE3CD8080D7038034
+:1022E0000076B880007580EBCD4080201DE06CEA60
+:1022F000C8EA1C8001FACBFFFF198AB68A199AB680
+:102300009A19ACBA8CE067008C30181A99305AF7D9
+:10231000D7C008305CE0A0196BC031300CC1481B3D
+:102320008CA7BCBA8C305CBA9C1BAB1B8C184BBA0C
+:10233000AB3029FACAFFFFF7D7C008305CE0A0191C
+:102340002BCED0301C2FFDE3CD8080EBCD40C018CC
+:1023500097E06600F914001302F1EC5604003E0009
:10236000008001003F00010000CFAF010D02F1EC41
-:102370005603000000010000E8E06BC280EA1B8009
-:1023800001F94B00ECE06B3EA0EA1B8000F94B002A
-:10239000F0E06B3F40EA1B8000F94B00F4E06B3F3C
-:1023A00098EA1B8000F94B00F8E3CF9080D70380B8
-:1023B00001C8CC8001C8C0D401300BE06A329CEA6D
-:1023C0001A0000742AF53A00E1580AC021D80A5CC4
-:1023D0006CC031C10C189B169C5C6CD8020000D4F8
-:1023E00001300CE06B329CEA1B0000B68CC0BCDAFA
-:1023F0000A0000E06B32A8EA1B0000F72C00005E28
-:10240000FC0000E06B32A8EA1B0000B68C5EFDD435
-:1024100001189A301C1789F2091068F4090B0C177F
-:1024200089F20910681409B29C307C1789F20910EE
-:10243000681409B2ACE06C329CEA1C0000F9290077
-:1024400000178CF80C1068180AB4C9178C2FFCB64A
-:102450008CCC7FE06CE824EA1C8001E0A0185CD8FA
-:102460000AD7038000709C5C5B198A163A5E0C2FB9
-:10247000FC580ACFB15EFD006E98001302F1EC56D5
+:10237000560300000001001B98EA16000030180CFC
+:1023800099304AE06B008C305CE0A01943C091E0CA
+:102390006CEA64EA1C8001E0A018BEE3CF80C00DA7
+:1023A0008CE06B1B99EA1B0000B68CAE8CE3CF90DF
+:1023B000C0D703800071988000709CEBCD408020D6
+:1023C0001D1A9C300BB88BB89BE0A0C585308BBA2A
+:1023D0008BF93C0080BA9CE067008C30291A9AF790
+:1023E000D7C008305CE0A018E9C031300CC0E8303C
+:1023F0009CBA8C300CBA9C30291A9AF7D7C0083096
+:102400005CE0A018DBCF30301C2FFDE3CD80808056
+:1024100001CA5C80007140EBCD4080E067E464EA73
+:102420001780010E9B305CE0A0B2CA0E9B308CE09E
+:10243000A0B2C6E3CF80808001A544D401307A30B9
+:102440000B300CE0A09DF8582CC031302CD8021B6A
+:10245000CCE0A0C2D3DA0A8001C580D401307A3042
+:102460000B301CE0A09DE8583CC031303CD802DA6B
+:102470000AD70380017BBC00D058001302F1EC5650
:1024800004003F00008001004000010000CEC701B1
:102490000D02F1EC56030000000100D7F1C888D707
:1024A000F1C868D7F1C848D7F1C828D7F1C808D70C
@@ -608,79 +608,79 @@
:1025F0000F1710D603301CF01F000A580CF80F17E5
:1026000010D603302CF01F0007580CF80F1710D607
:1026100003303CF01F0003580CF80F1710D603804E
-:1026200001C428E06C4F10EA1C0000780C787BE0B5
-:102630006C4F10EA1C0000780C78AC166C189BE20A
+:1026200001C5B4E06C4F28EA1C0000780C787BE010
+:102630006C4F28EA1C0000780C78AC166C189BE2F2
:102640001B0700580BC340E21C0300580CC0803F1E
-:10265000CCE06B4F1CEA1B0000970CC0783FECE00D
-:102660006B4F1CEA1B0000970CE06C4F10EA1C003B
-:1026700000780C783CAFDCE06B4F10EA1B00007672
-:102680000B973C3FFCE06B4F10EA1B0000760B976A
-:10269000BC3FFCE06B4F10EA1B0000760B979C30B0
-:1026A0000CE06B4F30EA1B0000B68CD603EDBC008B
-:1026B00000C312E06C4F10EA1C0000780C785C003C
-:1026C000BB6B001302F1EC560400410000800100D6
+:10265000CCE06B4F34EA1B0000970CC0783FECE0F5
+:102660006B4F34EA1B0000970CE06C4F28EA1C000B
+:1026700000780C783CAFDCE06B4F28EA1B0000765A
+:102680000B973C3FFCE06B4F28EA1B0000760B9752
+:10269000BC3FFCE06B4F28EA1B0000760B979C3098
+:1026A0000CE06B4F48EA1B0000B68CD603EDBC0073
+:1026B00000C312E06C4F28EA1C0000780C785C0024
+:1026C000F940001302F1EC560400410000800100C3
:1026D000420001000037A0010D02F1EC560300009A
-:1026E000000100E06B4F18EA1B0000760BB68CE08F
-:1026F0006C4F18EA1C0000780B2FFB990BE06C4F15
-:1027000024EA1C0000780B201B990BE06C4F24EA94
+:1026E000000100E06B4F30EA1B0000760BB68CE077
+:1026F0006C4F30EA1C0000780B2FFB990BE06C4FFD
+:102700003CEA1C0000780B201B990BE06C4F3CEA64
:102710001C0000780C580CE081008C301CE06B4FE2
-:1027200010EA1B0000760B979C300CE06B4F30EAF0
+:1027200028EA1B0000760B979C300CE06B4F48EAC0
:102730001B0000B68CD603EDBC0004C1623EFCE079
-:102740006B4F10EA1B0000760B97BC3FFCE06B4F11
-:1027500010EA1B0000760B979C300CE06B4F30EAC0
+:102740006B4F28EA1B0000760B97BC3FFCE06B4FF9
+:1027500028EA1B0000760B979C300CE06B4F48EA90
:102760001B0000B68CD603EDBC0001C622E06C4F06
-:1027700020EA1C0000780C580CC161302CE06B4F33
-:1027800010EA1B0000760B979C310CE06B4F10EAAF
-:102790001B0000760B978C300CE06B4F30EA1B006F
-:1027A00000B68CD603E06C4F14EA1C0000780C19BC
-:1027B0008CE06B4F14EA1B0000760A2FFA970A5C34
-:1027C0005CE06B4F10EA1B0000760B976CE06C4FDF
-:1027D00020EA1C0000780B201B990BE06C4F20EACC
-:1027E0001C0000004149001302F1EC5604004200B5
+:1027700038EA1C0000780C580CC161302CE06B4F1B
+:1027800028EA1B0000760B979C310CE06B4F28EA7F
+:102790001B0000760B978C300CE06B4F48EA1B0057
+:1027A00000B68CD603E06C4F2CEA1C0000780C19A4
+:1027B0008CE06B4F2CEA1B0000760A2FFA970A5C1C
+:1027C0005CE06B4F28EA1B0000760B976CE06C4FC7
+:1027D00038EA1C0000780B201B990BE06C4F38EA9C
+:1027E0001C000000B92D001302F1EC560400420059
:1027F000008001004300010000881B010D02F1EC84
:1028000056030000000100780C580CC241E06C4FE8
-:1028100030EA1C0000198C580CC1D0300CE06B4F12
-:1028200030EA1B0000B68CE06C4F2CEA1C000078EC
-:102830000C784CE06B4F20EA1B0000970CE06C4FCB
-:102840002CEA1C0000780C783CE06B4F14EA1B006B
-:1028500000970CD6033000EBCD00C0E06C4F34EA9B
-:102860001C0000780C7867E06C4F34EA1C0000789C
+:1028100048EA1C0000198C580CC1D0300CE06B4FFA
+:1028200048EA1B0000B68CE06C4F44EA1C000078BC
+:102830000C784CE06B4F38EA1B0000970CE06C4FB3
+:1028400044EA1C0000780C783CE06B4F2CEA1B003B
+:1028500000970CD6033000EBCD00C0E06C4F4CEA83
+:102860001C0000780C7867E06C4F4CEA1C00007884
:102870000C78960E660E9CE21C70C0580CC180FE4F
-:102880006CFFFFE06B4F34EA1B0000760B978C3F28
-:10289000FCE06B4F34EA1B0000760B97AC302CE069
-:1028A0006B4F38EA1B0000762B5D1BCA580C9CE06E
+:102880006CFFFFE06B4F4CEA1B0000760B978C3F10
+:10289000FCE06B4F4CEA1B0000760B97AC302CE051
+:1028A0006B4F50EA1B0000762B5D1BCA580C9CE056
:1028B0001C0008E41C0040580CC1B0FE6CFFFFE097
-:1028C0006B4F34EA1B0000760B97ACFE6CFFFFE009
-:1028D0006B4F34EA1B0000760B978CEDB60003C0FB
-:1028E00082300CE06B4F38EA1B0000762B5D1BED4D
-:1028F000B60010C3D2308CEA1C0040E06B4F34EAC3
-:102900001B0000760B97AC00A59E001302F1EC565D
+:1028C0006B4F4CEA1B0000760B97ACFE6CFFFFE0F1
+:1028D0006B4F4CEA1B0000760B978CEDB60003C0E3
+:1028E00082300CE06B4F50EA1B0000762B5D1BED35
+:1028F000B60010C3D2308CEA1C0040E06B4F4CEAAB
+:102900001B0000760B97AC005681001302F1EC56C9
:10291000040043000080010044000100009C3301DA
:102920000D02F1EC56030000000100E07C0000E025
-:102930006B4F34EA1B0000760B97ACEDB70005C275
-:1029400012FC1C0080E06B4F34EA1B0000760B97F2
-:10295000ACE06C70C8EA1C0080E06B4F34EA1B00EE
-:1029600000760B977CE06C4F38EA1C0000781C5D09
-:102970001C5C5CE06B4F34EA1B0000760B974CC08C
-:1029800098E06C70C9E06B4F34EA1B0000760B973F
-:102990007CEDB60000C0E2E06C4F34EA1C00007829
-:1029A0000C783C5C5CE06B4F38EA1B0000F01B00CD
+:102930006B4F4CEA1B0000760B97ACEDB70005C25D
+:1029400012FC1C0080E06B4F4CEA1B0000760B97DA
+:10295000ACE06C70C8EA1C0080E06B4F4CEA1B00D6
+:1029600000760B977CE06C4F50EA1C0000781C5DF1
+:102970001C5C5CE06B4F4CEA1B0000760B974CC074
+:1029800098E06C70C9E06B4F4CEA1B0000760B9727
+:102990007CEDB60000C0E2E06C4F4CEA1C00007811
+:1029A0000C783C5C5CE06B4F50EA1B0000F01B00B5
:1029B00000EDB60017C322EDB70008C1A2FC1C0051
-:1029C00080E06B4F34EA1B0000760B978CFC1C00F8
-:1029D00080E06B4F34EA1B0000760B97ACE06C0193
-:1029E00000E06B4F34EA1B0000760B97ACC168FC2B
-:1029F0001C0080E06B4F34EA1B0000760B97ACE0C4
-:102A00006C4F38EA1C0000781C5D1C5C5CE06B4F6E
-:102A100034EA1B0000760B974CE3CD00C0D603E0F0
-:102A2000A03B6CD603D7038000BBCC00947E001380
+:1029C00080E06B4F4CEA1B0000760B978CFC1C00E0
+:1029D00080E06B4F4CEA1B0000760B97ACE06C017B
+:1029E00000E06B4F4CEA1B0000760B97ACC168FC13
+:1029F0001C0080E06B4F4CEA1B0000760B97ACE0AC
+:102A00006C4F50EA1C0000781C5D1C5C5CE06B4F56
+:102A10004CEA1B0000760B974CE3CD00C0D603E0D8
+:102A2000A03B6CD603D7038000BBCC002827001343
:102A300002F1EC5604004400008001004500010052
:102A400000F68B010D02F1EC56030000000100E0DE
:102A5000A03BF8D603D7038000BCF0E0A03C04D62E
:102A600003D7038000BD14E0A03B20D603D703802A
:102A700000BB58E0A03AAAD603D7038000BA78C0BA
:102A8000080000300BC0D85C5BF80B060AE0691048
-:102A90009CEA1900005C5B16092C89B28A2FFB5C4A
-:102AA0005B589BCF255EFDD401E06BE04CEA1B80B8
+:102A9000B4EA1900005C5B16092C89B28A2FFB5C32
+:102AA0005B589BCF255EFDD401E06BE230EA1B80D2
:102AB00001F80C003C180B169CCE5FD80A0000D41D
:102AC00031205D1897169630E8FAC9FFFCE06A00DD
:102AD0009035CB302CE0A01609580CC0313FFCCC0F
@@ -691,7 +691,7 @@
:102B200006FB3E0009A34EFB340009330CF9E40018
:102B300044FB35000AA5450845FB33000A378CF9EC
:102B4000E30033FB34000BA5540644FB33000B00B9
-:102B5000C31B001302F1EC56040045000080010085
+:102B50001730001302F1EC5604004500008001001C
:102B600046000100006340010D02F1EC5603000035
:102B700000010033ECF9E30013FB3C000CA75C18E8
:102B800043FB32000CFB3C000DA75CF9E21012FB8A
@@ -718,34 +718,34 @@
:102CD0004703E8C13430181A99E06A00B035CB30A8
:102CE0002CE0A01527580CC0313FFCC0881B8CED90
:102CF000BC0007CED3300CC0283FBC2FFDE3CD80F5
-:102D0000800000D401E06C109CEA1C00002ACC1961
-:102D10008C580CC150E06C109CEA1C00002ABC19B5
+:102D0000800000D401E06C10B4EA1C00002ACC1949
+:102D10008C580CC150E06C10B4EA1C00002ABC199D
:102D20008C580CC0D0CCFF580CC0343FBCD80230FB
-:102D30000CE06B109CEA1B00002ABBB68C300CD850
+:102D30000CE06B10B4EA1B00002ABBB68C300CD838
:102D4000020000EBCD4080201D14971A9A3009B480
:102D500089B499E06A0082BA8A301ABA9A580C5F2C
:102D60001C1B9A5C5CF5EC101CBA9C580B5F1C1B7E
:102D70009B5C5CF7EC102CBA9C30291A9A35CB304E
:102D80002CE0A014AB580CC0313FFCC1F85807C070
-:102D9000E0C99F580CC0340027DE001302F1EC5646
+:102D9000E0C99F580CC03400AC0A001302F1EC5695
:102DA000040047000080010048000100004B1001B2
:102DB0000D02F1EC560300000001003FBCC1883059
-:102DC0000CE06B109CEA1B00002ABBB68CC088305C
-:102DD0001CE06B109CEA1B00002ABBB68C301CE088
-:102DE0006B109CEA1B00002ACBB68C300C2FFDE345
+:102DC0000CE06B10B4EA1B00002ABBB68CC0883044
+:102DD0001CE06B10B4EA1B00002ABBB68C301CE070
+:102DE0006B10B4EA1B00002ACBB68C300C2FFDE32D
:102DF000CD8080D421202D1494129710964075E038
-:102E00006A109CEA1A00002ACA158A580AC0513072
+:102E00006A10B4EA1A00002ACA158A580AC051305A
:102E10001ACABF580CC62130881A99E06A00B0352A
-:102E2000CB302CE0A01498580CC091E06CE87CEA00
+:102E2000CB302CE0A01498580CC091E06CEA7CEAFE
:102E30001C8001E0A014123FFCC508300CE06B10B0
-:102E40009CEA1B00002ACBB68C1B8CA75C890C1B50
+:102E4000B4EA1B00002ACBB68C1B8CA75C890C1B38
:102E50008CA37CE21C03F81B9BA55B164CAE0C1BE1
:102E6000ACA76CE21C1FC01BBBA34B164CAC0C1BCD
:102E7000CCA76CE21C1FC01BDBA34B164CAC1C1B6D
:102E8000ECA76CE21C1FC01BFBA34B164CAC2C30F8
:102E90000C8B0C300BC1E85C5BEC0B041C580CC0B9
:102EA000916A0A301CF6091501F809094C184A8B79
-:102EB0000A5C5BEC0B041CE04C1FFE002975001340
+:102EB0000A5C5BEC0B041CE04C1FFE00DB5E0013A5
:102EC00002F1EC56040048000080010049000100B6
:102ED000000BAB010D02F1EC56030000000100C035
:102EE000A16A0A301CF60915012FF9F809094C18D6
@@ -758,19 +758,19 @@
:102F50002CE0A013E7580CC0313FFCC238E06C00F5
:102F600087BA8CEF2C0002BA9C30291A9A35CB30E4
:102F70002CE0A013D7580CC0313FFCC138300CC036
-:102F8000D85C5CEE0C060BE06A109CEA1A00005C50
+:102F8000D85C5CEE0C060BE06A10B4EA1A00005C38
:102F90005C180A2BFAB48B2FFC5C5C583CCF2530B4
:102FA0000C2FFDE3CD8080D401201D1A9C300BB87E
:102FB0008BB89BCCCE580CC0343FBCC118E06C0021
:102FC00081BA8C300CBA9C30291A9A35CB302CE05F
:102FD000A013A8580CC0313FFCC028300C2FFD00B6
-:102FE000A75A001302F1EC560400490000800100CA
+:102FE000F159001302F1EC56040049000080010081
:102FF0004A000100009E60010D02F1EC5603000042
:10300000000100D8020000EBCD40C020AD1897FAB7
:10301000CCFFFC300BB88BB89BB8ABCAAE580CC019
-:10302000343FBCC828300CE06B109CEA1B00002A1F
+:10302000343FBCC828300CE06B10B4EA1B00002A07
:10303000CBB68C3006C1C8FACBFFE4F60C032B5894
-:103040000BC120FACBFFE4F60C032BE06AE558EA4B
+:103040000BC120FACBFFE4F60C032BE06AE750EA51
:103050001A8001F406032AFAC9FFFC18091388F63E
:103060000A0348B2882FFC583CCE752FF65856C438
:1030700084FACCFFFCC59F580CC0343FFCC558FAFD
@@ -782,98 +782,98 @@
:1030D00001C065301BFACAFFE4F40C092BFACBFFE0
:1030E000F0F60C041BE04B1000C0643FFBFACAFF73
:1030F000E4F40C092B2FFC583CCDA5300CCB5BFA2B
-:10310000CCFFFC00CB2A001302F1EC5604004A006D
+:10310000CCFFFC000B94001302F1EC5604004A00C3
:10311000008001004B0001000021DB010D02F1ECF9
:1031200056030000000100C12F580CC0343FFCC002
:10313000E83006C098FACCFFFC0C0CF92B0000EE2E
:10314000060B0B2FF65836CF75300C2F6DE3CD8064
:10315000C00000EBCD40EC209D18961695E067105E
-:103160009CEA1700002F87300C504C300C503CC1AB
-:103170002E580CC0343FBCC798300CE06B109CEA52
+:10316000B4EA1700002F87300C504C300C503CC193
+:103170002E580CC0343FBCC798300CE06B10B4EA3A
:103180001B00002ACBB68CFACCFFF0500CFAC8FF1B
:10319000E4FAC9FFFCFACAFFF8300B301CC61E4027
:1031A0002C580CC0303FBCC618FACCFFF4500CFAB7
:1031B000C8FFECFAC9FFFCFACAFFF8301B301CC587
:1031C0000E402C580CC0303FBCC508FB0C001CFB4B
-:1031D0000B0014161CE0A08DAAE068999AEA1899D1
-:1031E00099E0699999EA193FB9E0A08CB214921656
-:1031F000936EBCE0A08D9B04980699E0A08CA9304A
-:1032000008FC194032E0A08CE1E0A08D768D0CFB2B
+:1031D0000B0014161CE0A08DE6E068999AEA189995
+:1031E00099E0699999EA193FB9E0A08CEE1492161A
+:1031F000936EBCE0A08DD704980699E0A08CE530D2
+:1032000008FC194032E0A08D1DE0A08DB28D0CFBB2
:103210000C001EFB0B0016161CFB0B0020161CFBE3
-:103220000B0018160CE0A000BE7F001302F1EC5654
+:103220000B0018160CE0A00040A8001302F1EC56A9
:1032300004004B00008001004C0001000035F30148
-:103240000D02F1EC560300000001008D82E068A938
+:103240000D02F1EC560300000001008DBEE068A9FC
:10325000FCEA18D2F1E069624DEA193F50E0A08C17
-:103260008A149216936EBC6E6BB73CE0A08D71040D
-:10327000980699E0A08C7F3008FC194032E0A08CC1
-:10328000B7E0A08D4C8B0C404C403B164C2F7DE39F
-:10329000CD80EC800165A0D401FEB0FD8F580CC03C
+:10326000C6149216936EBC6E6BB73CE0A08DAD0495
+:10327000980699E0A08CBB3008FC194032E0A08C85
+:10328000F3E0A08D888B0C404C403B164C2F7DE327
+:10329000CD80EC80016618D401FEB0FD8F580CC0C3
:1032A000343FBCD802300A300B300CFEB0FDA6D83B
:1032B000020000EBCD40FE209D189216931496124A
-:1032C000911094E067109CEA1700002F87300C5093
+:1032C000911094E06710B4EA1700002F87300C507B
:1032D0007C3005FACCFFE4500C0698FAC9FFFCFAE2
:1032E000CAFFE0300B300CFEB0FDCE580CC0343FAE
-:1032F000FCC859300BC2D8E60B041AE06CE88CEA23
-:103300001C8001E069109CEA190000160913B9F845
-:1033100009041C181AE06C109CEA1C0000160C2B07
-:10332000FCF9290000E068109CEA1800001608F17A
-:103330002C00001819E068109CEA180000F60C1523
-:10334000021808712CF20C034AEC0B009560001374
+:1032F000FCC859300BC2D8E60B041AE06CEA5CEA51
+:103300001C8001E06910B4EA190000160913B9F82D
+:1033100009041C181AE06C10B4EA1C0000160C2BEF
+:10332000FCF9290000E06810B4EA1800001608F162
+:103330002C00001819E06810B4EA180000F60C150B
+:10334000021808712CF20C034AEC0B00983B001396
:1033500002F1EC5604004C00008001004D00010019
:10336000005F4B010D02F1EC560300000001000963
-:103370002A2FFB583BCD359A2BE06A109CEA1A00A5
-:1033800000E06C109CEA1C000079CCA17C180A2A91
-:103390008AB40BE06C109CEA1C0000290C780B2FFF
-:1033A000FB990BE06C109CEA1C000079CC58ACC077
-:1033B00085300CE06B109CEA1B0000F74C0070E0BD
-:1033C0006C109CEA1C0000294C780B2FFB990BE039
-:1033D0006C109CEA1C000079BC58ACC08530ACE095
-:1033E0006B109CEA1B0000F74C006C300BC0C8E06F
-:1033F0006A109CEA1A0000F60C1501180A2A8A9431
-:103400000C18052FFBE06C109CEA1C000079BC181E
-:103410003BCEF5EA0C100AE06B109CEA1B0000772B
+:103370002A2FFB583BCD359A2BE06A10B4EA1A008D
+:1033800000E06C10B4EA1C000079CCA17C180A2A79
+:103390008AB40BE06C10B4EA1C0000290C780B2FE7
+:1033A000FB990BE06C10B4EA1C000079CC58ACC05F
+:1033B00085300CE06B10B4EA1B0000F74C0070E0A5
+:1033C0006C10B4EA1C0000294C780B2FFB990BE021
+:1033D0006C10B4EA1C000079BC58ACC08530ACE07D
+:1033E0006B10B4EA1B0000F74C006C300BC0C8E057
+:1033F0006A10B4EA1A0000F60C1501180A2A8A9419
+:103400000C18052FFBE06C10B4EA1C000079BC1806
+:103410003BCEF5EA0C100AE06B10B4EA1B00007713
:10342000BBF80B0D0A504A6C0C500C6C1C503C6CD9
:103430002C502C5804C1F040096E0B404CB93BE0B5
:103440006C03E8F60C0C0A1419500940396E1B4045
:103450004CB93BE06C03E8F60C0C0A1419503940E7
:10346000296E2B404CB93BE06C03E8F60C0C0A00CB
-:10347000CD8B001302F1EC5604004D0000800100DA
+:1034700000EC001302F1EC5604004D000080010046
:103480004E00010000CA80010D02F1EC560300005D
:1034900000010014195029403B402C181B506B4070
:1034A0003B5C3B402C181B505B400CF80C10646ECE
:1034B0003B406AF60A034C6E4B405AF60A034CE056
-:1034C000A08C6BE068999AEA189999E0699999EA51
-:1034D000193FB9E0A08B73149416956EBCE0A08CD4
-:1034E0005C08980A99E0A08B6AE0A08C3C504C6E76
+:1034C000A08CA7E068999AEA189999E0699999EA15
+:1034D000193FB9E0A08BAF149416956EBCE0A08C98
+:1034E0009808980A99E0A08BA6E0A08C78504C6EC2
:1034F0005C400BB73C6E6B406AF60A034C6E7B4037
-:103500005AF60A034CE0A08C48E068999AEA1899A8
-:1035100099E0699999EA193FB9E0A08B5014941683
-:10352000956EBCE0A08C3908980A99E0A08B47E022
-:10353000A08C19503C6E8C400BB73C6E9B406AF6D9
-:103540000A034C6EAB405AF60A034CE0A08C25E00F
+:103500005AF60A034CE0A08C84E068999AEA18996C
+:1035100099E0699999EA193FB9E0A08B8C14941647
+:10352000956EBCE0A08C7508980A99E0A08B83E0AA
+:10353000A08C55503C6E8C400BB73C6E9B406AF69D
+:103540000A034C6EAB405AF60A034CE0A08C61E0D3
:1035500068999AEA189999E0699999EA193FB9E046
-:10356000A08B2D149416956EBCE0A08C1608980ABA
-:1035700099E0A08B24E0A08BF6502CE06C109CEA24
+:10356000A08B69149416956EBCE0A08C5208980A42
+:1035700099E0A08B60E0A08C32502CE06C10B4EA93
:103580001C00002C8CF92B0000404CB93BE06C1067
-:103590009CEA1C00F915001302F1EC5604004E00E1
+:10359000B4EA1C00B72F001302F1EC5604004E00F1
:1035A000008001004F00010000753B010D02F1ECAD
:1035B0005603000000010000002C7CF92A000040A6
-:1035C0003CF40C034BE06C109CEA1C00002C6CF9E2
-:1035D0002A0000402CF40C034B850BE06C109CEA95
+:1035C0003CF40C034BE06C10B4EA1C00002C6CF9CA
+:1035D0002A0000402CF40C034B850BE06C10B4EA7D
:1035E0001C00002C5CF92B0000404CB93BE06C1037
-:1035F0009CEA1C00002C4CF92A0000403CF40C030F
-:103600004BE06C109CEA1C00002C3CF92A000040A6
-:103610002CF40C034B851BE06C109CEA1C00002C66
-:103620002CF92B0000404CB93BE06C109CEA1C00CC
+:1035F000B4EA1C00002C4CF92A0000403CF40C03F7
+:103600004BE06C10B4EA1C00002C3CF92A0000408E
+:103610002CF40C034B851BE06C10B4EA1C00002C4E
+:103620002CF92B0000404CB93BE06C10B4EA1C00B4
:10363000002C1CF92A0000403CF40C034BE06C10F9
-:103640009CEA1C00002C0CF92A0000402CF40C030E
+:10364000B4EA1C00002C0CF92A0000402CF40C03F6
:103650004B852B5801C0309A2CA20C408C580CC0C2
:10366000303FBCC028407C2F7DE3CD80FE0000D4DD
:1036700001201DFACCFFFF300BB88BB89BE06C45E6
-:1036800032EA1C8000198CBA8C300BC108E06CE85F
-:10369000F0EA1C8001160CF92A0000E06C109CEA8C
+:1036800032EA1C8000198CBA8C300BC108E06CEA5D
+:10369000CBEA1C8001160CF92A0000E06C10B4EA99
:1036A0001C0000160C2BFCB88A2FFB583BCF05E002
-:1036B0006C0088BA9C300C003E86001302F1EC5678
+:1036B0006C0088BA9C300C001654001302F1EC56D2
:1036C00004004F000080010050000100006553011C
:1036D0000D02F1EC56030000000100BAAC3029FAEB
:1036E000CAFFFF35CB302CE0A0109A580CC0313FF8
@@ -881,170 +881,170 @@
:10370000CAFFFF35CB302CE0A0108A580CC0313FE7
:10371000FCC51830181A99E06A008035CB302CE0CF
:10372000A010AA580CC0313FFCC4581B8CE06B1091
-:103730009CEA1B00002BCBB68CE06B109CEA1B00B4
-:10374000002F8BE06C109CEA1C0000FEB0FA805841
-:103750000CC315300BC118E06CE70CEA1C8001F8B3
-:103760000B032AE069109CEA190000F60C150218F8
+:10373000B4EA1B00002BCBB68CE06B10B4EA1B0084
+:10374000002F8BE06C10B4EA1C0000FEB0FA805829
+:103750000CC315300BC118E06CE91CEA1C8001F8A1
+:103760000B032AE06910B4EA190000F60C150218E0
:1037700009F34A00482FFB583BCEF5300CE06B10A4
-:103780009CEA1B00002ACBB68C300CE06B109CEA44
-:103790001B00002ABBB68C300CE06B109CEA1B00AF
-:1037A00000F74C0070E06B109CEA1B0000F74C0027
+:10378000B4EA1B00002ACBB68C300CE06B10B4EA14
+:103790001B00002ABBB68C300CE06B10B4EA1B0097
+:1037A00000F74C0070E06B10B4EA1B0000F74C000F
:1037B0006C300C2FFDD80280007140800071985849
:1037C0000CC1E0F92B0000E04B0020C194F92B0064
-:1037D00001E04B0020C144F92B0002003BBC001368
+:1037D00001E04B0020C144F92B000200B296001317
:1037E00002F1EC560400500000800100510001007D
:1037F0000071EE010D02F1EC56030000000100E043
:103800004B0020C0F4F92B00005A1BC0B5F92B0067
:10381000015A1BC0752FECF92B00005A1B5F4CC0DE
:1038200028300C5C5C5EFCEBCD40FC201D1896162D
-:10383000971494129310923005E06C1110EA1C005A
+:10383000971494129310923005E06C1128EA1C0042
:103840000078BC201CC040201CC400C7F8E06C11EC
-:1038500010EA1C0000790BE06C1110EA1C000078E3
-:10386000FC181BE04B01F4C713E06C1110EA1C00BC
-:1038700000790CE06B1110EA1B000097FCFEB0FC15
-:103880002518955805C625E06C1110EA1C00007833
-:10389000DC580CC091E06C1110EA1C00002C8CCAA2
-:1038A0002F580CC081302CE06B1110EA1B000097E0
-:1038B000BCC078300CE06B1110EA1B000097BCFE16
+:1038500028EA1C0000790BE06C1128EA1C000078B3
+:10386000FC181BE04B01F4C713E06C1128EA1C00A4
+:1038700000790CE06B1128EA1B000097FCFEB0FCFD
+:103880002518955805C625E06C1128EA1C0000781B
+:10389000DC580CC091E06C1128EA1C00002C8CCA8A
+:1038A0002F580CC081302CE06B1128EA1B000097C8
+:1038B000BCC078300CE06B1128EA1B000097BCFEFE
:1038C000B0FD46580CC424C8181A9CFEB0FC1C1845
-:1038D000955805C3B5E06C1110EA1C00002C8CF95A
-:1038E0002B0000FB2A0000143BC171E06C1110EAB0
+:1038D000955805C3B5E06C1128EA1C00002C8CF942
+:1038E0002B0000FB2A0000143BC171E06C1128EA98
:1038F0001C00002C7CF92B0000FB2A0001143B006B
-:10390000107F001302F1EC5604005100008001000A
+:103900005B18001302F1EC56040051000080010026
:103910005200010000E425010D02F1EC5603000005
-:10392000000100C0C1E06C1110EA1C00002C6CF911
+:10392000000100C0C1E06C1128EA1C00002C6CF9F9
:103930002B0000FB2A0002143BC0203405300CE0B1
-:103940006B1110EA1B000097BC300CC0E81A9B5C9E
-:103950005CF60C060AE06B1110EA1B00005C5C18B8
+:103940006B1128EA1B000097BC300CC0E81A9B5C86
+:103950005CF60C060AE06B1128EA1B00005C5C18A0
:103960000B2C8BB68A2FFC5C5C583CCF155805C0DD
:10397000340A9CC3D804980699089A0E9B0C9CFEA6
-:10398000B0FD06580CC345581CC275E06B1110EA17
-:103990001B000076DB580BC0B1E06B1110EA1B0076
-:1039A00000770BE06A1110EA1A000095FB301BE06B
-:1039B0006A1110EA1A000095DBE06B1110EA1B0097
-:1039C0000076BB580BC071301BE06A1110EA1A0078
-:1039D0000095BB1845C078300CE06B1110EA1B0055
+:10398000B0FD06580CC345581CC275E06B1128EAFF
+:103990001B000076DB580BC0B1E06B1128EA1B005E
+:1039A00000770BE06A1128EA1A000095FB301BE053
+:1039B0006A1128EA1A000095DBE06B1128EA1B0067
+:1039C0000076BB580BC071301BE06A1128EA1A0060
+:1039D0000095BB1845C078300CE06B1128EA1B003D
:1039E0000097DCFEB0FCC6580CC0250A9C2FFDE3F6
:1039F000CD80FCEBCD4080189716985807C0413811
-:103A00000CE3CD8080E06C1110EA1C0000780C58AB
-:103A10000CC0413FDCE3CD8080E06C1110EA1C005B
-:103A20000078CC0038DF001302F1EC56040052009D
+:103A00000CE3CD8080E06C1128EA1C0000780C5893
+:103A10000CC0413FDCE3CD8080E06C1128EA1C0043
+:103A20000078CC00280A001302F1EC560400520082
:103A30000080010053000100005B9E010D02F1ECCB
:103A400056030000000100580CC4200E992E090EE8
:103A50009A2ECA0E9B2F4B0E9CC0BF189B580BC3AF
:103A600075300AC2A85C5AF40C15010E0C9869E076
-:103A7000681110EA1800005C5AF40C15021808913D
-:103A8000495C5AF40C15020E0C7859E0681110EAE2
+:103A7000681128EA1800005C5AF40C150218089125
+:103A8000495C5AF40C15020E0C7859E0681128EACA
:103A90001800005C5AF40C1502180891795C5AEE73
-:103AA0000A0329E0681110EA1800005C5AF40C15AA
+:103AA0000A0329E0681128EA1800005C5AF40C1592
:103AB00002180891192FFA5C5A583ACD55E06C114A
-:103AC00010EA1C00002D8C980CEF5C0020E06C11BB
-:103AD00010EA1C000078CC580CC030580BC374306E
-:103AE0000AC2A8E0691110EA1900005C5AF40C152A
-:103AF000021809721C5C5AEE0A092CE0691110EADE
+:103AC00028EA1C00002D8C980CEF5C0020E06C11A3
+:103AD00028EA1C000078CC580CC030580BC3743056
+:103AE0000AC2A8E0691128EA1900005C5AF40C1512
+:103AF000021809721C5C5AEE0A092CE0691128EAC6
:103B00001900005C5AF40C15021809724C5C5AF446
-:103B10000915010E09B26CE0691110EA1900005C88
+:103B10000915010E09B26CE0691128EA1900005C70
:103B20005AF40C15021809727C5C5AF40915020E3D
-:103B300009935C2FFA5C5A583ACD55E06C1110EAA3
-:103B40001C00002D8C980C001E5A001302F1EC563C
+:103B300009935C2FFA5C5A583ACD55E06C1128EA8B
+:103B40001C00002D8C980C008FA3001302F1EC5682
:103B5000040053000080010054000100004FB60132
:103B60000D02F1EC560300000001002E07AE0CE040
-:103B70006C1110EA1C0000791CE06A1110EA1A00AE
+:103B70006C1128EA1C0000791CE06A1128EA1A007E
:103B8000002C0A740918099509169CE3CD8080D48D
-:103B900001300BC3A8E06CE8F3EA1C8001160CF9B5
-:103BA0002A0000E06C1110EA1C0000160C2C8CB8E6
-:103BB0008AE06CE718EA1C8001F80B032AE069111F
-:103BC00010EA190000F60C15021809934AE06CE798
-:103BD00018EA1C8001F80B032AE0691110EA1900A9
-:103BE00000F60C15021809931AE06CE718EA1C801D
-:103BF00001F80B032AE0691110EA190000F60C1510
+:103B900001300BC3A8E06CEAC2EA1C8001160CF9E4
+:103BA0002A0000E06C1128EA1C0000160C2C8CB8CE
+:103BB0008AE06CE928EA1C8001F80B032AE069110D
+:103BC00028EA190000F60C15021809934AE06CE97E
+:103BD00028EA1C8001F80B032AE0691128EA190081
+:103BE00000F60C15021809931AE06CE928EA1C800B
+:103BF00001F80B032AE0691128EA190000F60C15F8
:103C0000021809937A2FFB583BCC65300CE06B11FE
-:103C100010EA1B00002D8BB60C300CE06B1110EA83
-:103C20001B0000F74C0040332CE06B1110EA1B0026
-:103C300000F74C0044300CE06B1110EA1B000097B9
-:103C4000CC301CE06B1110EA1B000097BC3FFCE07D
-:103C50006B1110EA1B0000970C300CE06B1110EA9E
-:103C60001B000097DC303CFEB0F82E00628F001382
+:103C100028EA1B00002D8BB60C300CE06B1128EA53
+:103C20001B0000F74C0040332CE06B1128EA1B000E
+:103C300000F74C0044300CE06B1128EA1B000097A1
+:103C4000CC301CE06B1128EA1B000097BC3FFCE065
+:103C50006B1128EA1B0000970C300CE06B1128EA6E
+:103C60001B000097DC303CFEB0F82E002B7D0013CB
:103C700002F1EC56040054000080010055000100E0
:103C800000250E010D02F1EC56030000000100FEBC
-:103C9000B0FD5C580CC094E06CE7F4EA1C8001E0D5
-:103CA000A00DC6300CD802E06C1110EA1C00002CEC
-:103CB0008CFEB0FDE1580CC1C0E06C1110EA1C0094
-:103CC000002C8CFEB0F9F8580CC094E06CE81CEAAB
+:103C9000B0FD5C580CC094E06CE9B4EA1C8001E013
+:103CA000A00DC6300CD802E06C1128EA1C00002CD4
+:103CB0008CFEB0FDE1580CC1C0E06C1128EA1C007C
+:103CC000002C8CFEB0F9F8580CC094E06CEA84EA41
:103CD0001C8001E0A00DAC300CD802FEB0FA3E58BA
-:103CE0000C5F5CE06B1110EA1B000097BCC128FE62
-:103CF000B0FA34580CC084301CE06B1110EA1B0081
-:103D00000097BCC078302CE06B1110EA1B000097C4
-:103D1000BC301CE06B1110EA1B0000970C301CD863
-:103D2000020000D401301CE06B1110EA1B00009768
+:103CE0000C5F5CE06B1128EA1B000097BCC128FE4A
+:103CF000B0FA34580CC084301CE06B1128EA1B0069
+:103D00000097BCC078302CE06B1128EA1B000097AC
+:103D1000BC301CE06B1128EA1B0000970C301CD84B
+:103D2000020000D401301CE06B1128EA1B00009750
:103D3000CCFEB0FB55301CD8020000300CE06B11FB
-:103D400010EA1B000097CC300CE06B1158EA1B0006
+:103D400028EA1B000097CC300CE06B1170EA1B00D6
:103D500000B68C301C5EFC301C5EFCD401201D5C67
-:103D60005C187CC040201CC1B0C678E06C1110EA21
-:103D70001C00002C8CF92A0000B68AE06C1110EAB5
-:103D80001C00002C7CF92A0000B69AE06C1110008F
-:103D9000B03E001302F1EC56040055000080010013
+:103D60005C187CC040201CC1B0C678E06C1128EA09
+:103D70001C00002C8CF92A0000B68AE06C1128EA9D
+:103D80001C00002C7CF92A0000B69AE06C11280077
+:103D900095A4001302F1EC560400550000800100C8
:103DA0005600010000B0C5010D02F1EC5603000001
:103DB000000100EA1C00002C6CF92A0000B6AAC41D
-:103DC000E8E06C1110EA1C0000780C580CC0B13F00
-:103DD000DC500CE06CE79CEA1C8001E0A00D3A305E
+:103DC000E8E06C1128EA1C0000780C580CC0B13FE8
+:103DD000DC500CE06CE958EA1C8001E0A00D3A30A0
:103DE0000CC3E8300CC0D85C5CF60C070AE0691123
-:103DF00010EA1900005C5C18092C89B28A2FFC5C5F
-:103E00005C583CCF25E06C1110EA1C000078CC58BF
-:103E10000CC031301CC248E06C1110EA1C00002CB0
-:103E20008CFEB0FD3B580CC090E06C1110EA1C00F9
+:103DF00028EA1900005C5C18092C89B28A2FFC5C47
+:103E00005C583CCF25E06C1128EA1C000078CC58A7
+:103E10000CC031301CC248E06C1128EA1C00002C98
+:103E20008CFEB0FD3B580CC090E06C1128EA1C00E1
:103E3000002C8CFEB0F952C128FEB0F9A1580CC07C
-:103E400084301CE06B1110EA1B000097BCC0783076
-:103E50002CE06B1110EA1B000097BC301C2FFDD822
-:103E6000020000EBCD40E020BD1895E06CE844EA8C
-:103E70001C8001B90ABB1BE06C1158EA1C00001938
-:103E80008C580CC171E06C4650EA1C0000782B2E57
-:103E9000EBF72C0000E0A097AFE06B1110EA1B00DD
-:103EA00000F74C0044301CE06B1158EA1B0000B6D0
-:103EB0008CE06C00F277001302F1EC56040056001F
+:103E400084301CE06B1128EA1B000097BCC078305E
+:103E50002CE06B1128EA1B000097BC301C2FFDD80A
+:103E6000020000EBCD40E020BD1895E06CEA3CEA92
+:103E70001C8001B90ABB1BE06C1170EA1C00001920
+:103E80008C580CC171E06C4668EA1C0000782B2E3F
+:103E9000EBF72C0000E0A097EBE06B1128EA1B0089
+:103EA00000F74C0044301CE06B1170EA1B0000B6B8
+:103EB0008CE06C00241C001302F1EC560400560048
:103EC0000080010057000100000F7E010D02F1EC9F
-:103ED000560300000001004650EA1C0000782C2F19
+:103ED000560300000001004668EA1C0000782C2F01
:103EE0001C198C581CC2F1FEB0F82E580CC0B43FFF
-:103EF000BC500CE06CE790EA1C8001E0A00CBC30E8
+:103EF000BC500CE06CE8E0EA1C8001E0A00CBC3097
:103F00000CC798300BFACCFFF8FEB0FDCF1896FE28
-:103F1000B0F81A580CC0B43FBC500CE06CE778EA1B
+:103F1000B0F81A580CC0B43FBC500CE06CE8A4EAEE
:103F20001C8001E0A00CA8300CC658407CBA0C40A4
:103F30008B409C181BBA1B408B5C3B409C181BBAE7
:103F40002BC498301BFACCFFF8FEB0FDAF189630AA
-:103F500007C178FACCFFF8F807032CE0A087BFE090
+:103F500007C178FACCFFF8F807032CE0A087FBE054
:103F600068147BEA1847AEE0697AE1EA193F84E019
-:103F7000A086C7E0A087991A9BF6070A1C2FF7585E
+:103F7000A08703E0A087D51A9BF6070A1C2FF758E5
:103F800037CE955806C034300CC358EDB60000C08B
:103F900042E06C7FFFBA0CEDB60001C042FE7C80AF
:103FA00000BA0CEDB60002C042E06C7FFFBA1CED17
:103FB000B60003C042FE7C8000BA1CEDB60004C00F
:103FC00042E06C7FFFBA2CEDB60005C042FE7C805B
-:103FD00000BA2C9A0CAA8C0059E7001302F1EC5697
+:103FD00000BA2C9A0CAA8C00C491001302F1EC5682
:103FE000040057000080010058000100009895016E
:103FF0000D02F1EC560300000001009A0CA94CAA36
:104000009C9A1CAAAC9A1CA94CAABC9A2CAACC9A21
:104010002CA94CAADC301C2F5DE3CD80E0D70380B7
-:104020000186408000709CD42120DD18953007E087
-:104030006CE86CEA1C8001B90ABB1BE0A00B1A18E3
-:1040400094301CE06B1110EA1B000097CCE06C115F
-:1040500010EA1C0000780C580CC090E06C109CEA30
+:104020000186B88000709CD42120DD18953007E00F
+:104030006CE9C4EA1C8001B90ABB1BE0A00B1A188A
+:1040400094301CE06B1128EA1B000097CCE06C1147
+:1040500028EA1C0000780C580CC090E06C10B4EA00
:104060001C00002BCC198C582CC040FEB0FDDAC9C6
-:104070000EE06C109CEA1C00002BCC198CAA8CAAB8
-:1040800097AAA7AAB7303AE06BE8F3EA1B800130A1
+:104070000EE06C10B4EA1C00002BCC198CAA8CAAA0
+:1040800097AAA7AAB7303AE06BEAC2EA1B800130D0
:104090001CC9BE300BFACCFFF0FEB0FD19189758C2
:1040A00007C034300CCA080E9CE21C0015580CC026
:1040B000303FA7C138E217002A5807C0303F97C0E9
:1040C000D8404C580CC091405C580CC061406C58B2
-:1040D0000CC0313F87C0283007E06C109CEA1C0000
-:1040E000002BFCF92B0000AACBE06C109CEA1C0012
-:1040F000002BECF92B0000AADBE06C003F830013DF
+:1040D0000CC0313F87C0283007E06C10B4EA1C00E8
+:1040E000002BFCF92B0000AACBE06C10B4EA1C00FA
+:1040F000002BECF92B0000AADBE06C00E5D60013E6
:1041000002F1EC5604005800008001005900010043
:1041100000D82E010D02F1EC560300000001001042
-:104120009CEA1C00002BDCF92B0000AAEBAAF7305C
+:10412000B4EA1C00002BDCF92B0000AAEBAAF73044
:104130000CEB6C0008300CEB6C00093006C178FA0F
-:10414000CCFFF0F806032CE0A086EDE068A9FCEABD
-:1041500018D2F1E069624DEA193F50E0A085F5E020
-:10416000A086C71A9BF6060A1C2FF65836CE951A5B
+:10414000CCFFF0F806032CE0A08729E068A9FCEA80
+:1041500018D2F1E069624DEA193F50E0A08631E0E3
+:10416000A087031A9BF6060A1C2FF65836CE951A1E
:104170009B302CE0A056769A0CA94CEB6C000A9A66
:104180000CEB6C000B9A1CA94CEB6C000C9A1CEB12
:104190006C000D9A2CA94CEB6C000E9A2CEB6C0069
@@ -1054,12 +1054,12 @@
:1041D0009CE21C002A580CC0203F97403CA94CEBA5
:1041E0006C0011403CEB6C0012402CA94CEB6C00B5
:1041F00013402CEB6C00142EB5AA87300CE06B1129
-:1042000010EA1B000097CC301C2F3DD822D703802A
-:10421000006E748001670280016526800166CE0011
-:10422000A23A001302F1EC5604005900008001008C
+:1042000028EA1B000097CC301C2F3DD822D7038012
+:10421000006E748001677A8001659E8001674600A8
+:10422000FFED001302F1EC5604005900008001007C
:104230005A000100004DE5010D02F1EC56030000AB
:104240000001008001064080007428EBCD40E02092
-:104250001D3007E06CE8EAEA1C80011A9B198AB657
+:104250001D3007E06CEAC5EA1C80011A9B198AB67A
:104260008A199AB69A19ACBAACE06600D43018FA3A
:10427000C9FFFE30FAF7D6C008301CE0A00BB01B17
:10428000ACE04C00D4C0E1320CBA8C35FCBA9C30A6
@@ -1068,20 +1068,20 @@
:1042B0009C30291A9AF7D6C008301CE0A00B64186D
:1042C00097CF00322CBA8C3005BA9530291A9AF75C
:1042D000D6C008301CE0A00B571897CE30323CBA3D
-:1042E0008CE06C00C0EA1C0000198CA7BCBA9C30A2
+:1042E0008CE06C00D8EA1C0000198CA7BCBA9C308A
:1042F000291A9AF7D6C008301CE0A00B451897CDB4
:1043000010324CBA8C312CBA9C30291A9AF7D6C08C
:1043100008301CE0A00B381897CC40320CBA8CBA8D
:104320009530291A9AF7D6C008301CE0A00B2C183B
:1043300097CB8BEBCD4080201D1A9C300BB88BB8EF
-:104340009B320C0028F5001302F1EC5604005A00D1
+:104340009B320C00B2E1001302F1EC5604005A005B
:10435000008001005B00010000F25E010D02F1EC43
:1043600056030000000100BA8C35FCBA9CE06700DF
:10437000D430291A9AF7D7C008301CE0A00B16C019
:10438000412FFDE3CD8080321CBA8C310CBA9C30B9
:10439000291A9AF7D7C008301CE0A00B07CF2032AB
:1043A0002CBA8C300CBA9C30291A9AF7D7C0083036
-:1043B0001CE0A00AFBCE60323CBA8CE06C00C0EA84
+:1043B0001CE0A00AFBCE60323CBA8CE06C00D8EA6C
:1043C0001C0000198CA7BCBA9C30291A9AF7D7C0D8
:1043D00008301CE0A00AEACD50324CBA8C312CBA1D
:1043E0009C30291A9AF7D7C008301CE0A00ADECC0E
@@ -1090,9 +1090,9 @@
:104410001CE0A00ACB2FFDD8020000D401201D1AF9
:104420009C300BB88BB89B320CBA8C300CBA9C30D9
:10443000291A9AE06B00D4301CE0A00AB72FFDD8EF
-:10444000020000EBCD40F8201D18931694E067E7BA
-:1044500024EA1780011A9C0F8BB88B0F9BB89B30F6
-:1044600056E06500D4301800F6A3001302F1EC56B4
+:10444000020000EBCD40F8201D18931694E067E9B8
+:1044500034EA1780011A9C0F8BB88B0F9BB89B30E6
+:1044600056E06500D43018008D2D001302F1EC5693
:1044700004005B00008001005C00010000E67601A2
:104480000D02F1EC560300000001001A99327AF790
:10449000D5C008301CE0A00AC7581CC1611B8CEDB8
@@ -1106,71 +1106,71 @@
:104510001CBA8C3006BA9630291A9AF7D7C00830E0
:104520001CE0A00A55CF20322CBA8CBA9630291A3A
:104530009AF7D7C008301CE0A00A4ACE70323CBAC5
-:104540008CE06C00C0EA1C0000198CA7BCBA9C303F
+:104540008CE06C00D8EA1C0000198CA7BCBA9C3027
:10455000291A9AF7D7C008301CE0A00A39CD60327A
:104560004CBA8C340CBA9C30291A9AF7D7C0083050
:104570001CE0A00A2DCCABEBCD5EFF23AD1A9C3026
-:104580000BB88BB89BFACCFFFEE06B00BF72001338
+:104580000BB88BB89BFACCFFFEE06B00EB26001358
:1045900002F1EC5604005C00008001005D000100A7
-:1045A000008CCE010D02F1EC56030000000100DB8F
-:1045B0004CEA1B80012FEB178AB88A179AB89AFA2F
-:1045C000CCFFD8E06BDB4CEA1B80012FCBE06A000C
-:1045D000C0B709B928208ACFD13000E06CDB4CEAA3
+:1045A000008CCE010D02F1EC56030000000100DC8E
+:1045B000E8EA1B80012FEB178AB88A179AB89AFA93
+:1045C000CCFFD8E06BDCE8EA1B80012FCBE06A006F
+:1045D000C0B709B928208ACFD13000E06CDCE8EA06
:1045E0001C8001F8EA00C4FAEB0004F8EA00CCFAF7
-:1045F000EB000CFACCFFE4E06BDB4CEA1B8001FE25
+:1045F000EB000CFACCFFE4E06BDCE8EA1B8001FE88
:104600003BFF2CB709B928170818A8E0A0088C5060
-:104610006CC79FC0B1E06CDB4CEA1C8001FE3CFF24
+:104610006CC79FC0B1E06CDCE8EA1C8001FE3CFF87
:1046200020E0A00995300CC5F9E06B0320406CE058
:10463000A00B54C1083010300C507C508250924373
:10464000CC980CBA6C43CC981CBA7C43CC982CFB0D
:104650005C001032ECBA8C3002BA92E06700D430C1
:10466000291A9AF7D7C008301CE0A009C3C0B1E0EE
-:104670006CDB4CEA1C8001FE3CFF18E0A0096830AE
+:104670006CDCE8EA1C8001FE3CFF18E0A009683011
:104680000CC32932ECBA8C33FCBA9C30291A9AF745
-:10469000D7C008301CE0A009ADC0B1E06CDB4CEA2B
+:10469000D7C008301CE0A009ADC0B1E06CDCE8EA8E
:1046A0001C8001FE3CFF10E0A00952300CC1C90083
-:1046B0007C53001302F1EC5604005D000080010001
+:1046B000202E001302F1EC5604005D000080010082
:1046C0005E000100001905010D02F1EC5603000027
:1046D000000100E06B00C8406CE0A00B113018FA3C
:1046E000C9FFFE32FAF7D7C008301CE0A009C0C0ED
-:1046F000B1E06CDB4CEA1C8001FE3CFF08E0A00945
+:1046F000B1E06CDCE8EA1C8001FE3CFF08E0A009A8
:1047000039300CC0391BACEDBC0007C033300CCFC6
:10471000D8E06800C0FAC9FFD8E06A00A8F7D7C09F
:1047200008301CE0A009A4505C405C580CC0B1E00B
-:104730006CDB4CEA1C8001FE3CFF00E0A0091A3053
+:104730006CDCE8EA1C8001FE3CFF00E0A0091A30B6
:104740000CCE4830033001C0282FA1E06451ECEAC0
:10475000141EB8E065EB85EA153F91E04100C0C545
:10476000E4FACBFFD8020B179A178CF9EA108ABA31
:104770002A17BA17ACF9EA108ABA3A17DA17CCF93D
:10478000EA108ABA4A2FF343ECB8039A2CE0A075DA
-:1047900043E0A083BD08980A99E0A08330E0A0849C
-:1047A0000243EBB61C9A360C9CE0A07535E0A08362
-:1047B000AF08980A99E0A08322E0A083F443EBB607
-:1047C0002C9A470E9CE0A07527E0A083A1149816B0
-:1047D00099089A00D078001302F1EC5604005E00AC
+:104790007FE0A083F908980A99E0A0836CE0A084E8
+:1047A0003E43EBB61C9A360C9CE0A07571E0A083EA
+:1047B000EB08980A99E0A0835EE0A0843043EBB652
+:1047C0002C9A470E9CE0A07563E0A083DD14981638
+:1047D00099089A007AE2001302F1EC5604005E0098
:1047E000008001005F00010000A6BE010D02F1EC97
-:1047F000560300000001000A9BE0A08312E0A083A2
-:10480000E443EBB63C9A2C407A180A507A408B0C61
+:1047F000560300000001000A9BE0A0834EE0A08465
+:104800002043EBB63C9A2C407A180A507A408B0C25
:104810000B508B409B0E0B509B300CC0282FFC582C
:104820003CCA64FACBFFFCF60C041BFE3BF3BAE077
:104830004B188DCF53301C43BBB68C300CC7889AB5
-:104840002CE0A074FBE0A0837508980A99E0A08290
-:10485000E8E0A083BA43CBB60C9A3CE0A074EEE04B
-:10486000A0836808980A99E0A082DBE0A083AD43AA
-:10487000CBB61C9A4CE0A074E1E0A0835B08980AD8
-:1048800099E0A082CEE0A083A043CBB62C5C505828
+:104840002CE0A07537E0A083B108980A99E0A08316
+:1048500024E0A083F643CBB60C9A3CE0A0752AE096
+:10486000A083A408980A99E0A08317E0A083E943F5
+:10487000CBB61C9A4CE0A0751DE0A0839708980A5F
+:1048800099E0A0830AE0A083DC43CBB62C5C5058AF
:1048900010FE91FEF69A6B43CC980C181BBA6B9ADB
:1048A0007B43CC981C162CBA7CFB0A001043CB9699
:1048B0002B142BFB5B00109A6A2FCA589AC3525CC8
:1048C0008C2FCC589CC3125C8B2FCB589BC2D2FC34
-:1048D000173FA0407CE0A074B1E0A0832B30080E0D
-:1048E00099E0A0829EE0A0837043DBB60C408CE090
-:1048F000A074A4E0A0831E005C52001302F1EC56E9
+:1048D000173FA0407CE0A074EDE0A0836730080E95
+:1048E00099E0A082DAE0A083AC43DBB60C408CE018
+:1048F000A074E0E0A0835A004414001302F1EC56C7
:1049000004005F0000800100600001000039D50153
:104910000D02F1EC5603000000010030080E99E092
-:10492000A08291E0A0836343DBB61C409CE0A074AE
-:1049300097E0A0831130080E99E0A08284E0A08364
-:104940005643DBB62C301C43BBB68C405CA1AC5C40
+:10492000A082CDE0A0839F43DBB61C409CE0A07436
+:10493000D3E0A0834D30080E99E0A082C0E0A083B0
+:104940009243DBB62C301C43BBB68C405CA1AC5C04
:104950006C2C6DE3CDCEFFEBCD40C0201D1A9C30FA
:104960000BB88BB89B320CBA8C36FCBA9CE0670053
:10497000D430291A9AF7D7C008301CE0A00870C3B9
@@ -1182,8 +1182,8 @@
:1049D0009C30291A9AF7D7C008301CE0A00840C0C4
:1049E000B032ECBA8CBA9630291A9AF7D7C0083090
:1049F0001CE0A008352FFDE3CD80C0D431209D18E8
-:104A00009016913007E063E124EA1380011A9C07B5
-:104A10008BB88B079BB89BE6EA00040079E900138A
+:104A00009016913007E063E2C0EA1380011A9C0718
+:104A10008BB88B079BB89BE6EA000400484C001358
:104A200002F1EC560400600000800100610001000A
:104A3000008564010D02F1EC56030000000100FA4C
:104A4000EB0010E6EA000CFAEB001C3002E6EA008C
@@ -1219,12 +1219,12 @@
:104C20006F18975817CE715817C920316C810C81B5
:104C30001C812C830C831C832C0E9C5C6CC819FB80
:104C40002B0002581B3004C2655C645834C264E017
-:104C5000040027FB2C0002E0A0732618966E0CE0DF
-:104C6000A073220086DE001302F1EC5604006200FD
+:104C5000040027FB2C0002E0A0736218966E0CE0A3
+:104C6000A0735E008BDD001302F1EC5604006200BD
:104C7000008001006300010000AF14010D02F1EC9F
-:104C8000560300000001000C9BE0A071B3E0A0817E
-:104C900099E06851ECEA181EB8E069EB85EA193F23
-:104CA000B1E0A08106E0A081D88F0C2FF4CE0B30AC
+:104C8000560300000001000C9BE0A071EFE0A08142
+:104C9000D5E06851ECEA181EB8E069EB85EA193FE7
+:104CA000B1E0A08142E0A082148F0C2FF4CE0B3033
:104CB0000CE004092C2FF45C645834CFA5300CBAF6
:104CC000AC323CFB6C001CE06C00A2FB6C001D30A5
:104CD00029FACAFFE4E06B00D4301CE0A006F61805
@@ -1238,7 +1238,7 @@
:104D5000E03068FAC9FFF0E06A00A8E06B00D430E8
:104D60001CE0A006DF18975817CE715817C0B03254
:104D7000CC810C811C812C830C831C832C0E9C5CAD
-:104D80006CCF18FACCFFF00021AD001302F1EC5605
+:104D80006CCF18FACCFFF0007FD6001302F1EC567E
:104D900004006300008001006400010000BB3C01CE
:104DA0000D02F1EC56030000000100300A300BB98F
:104DB0001B30023004C368FB3B0011FB3C0010F9C0
@@ -1262,10 +1262,10 @@
:104ED00017CE715817C830337C810C811C812C830C
:104EE0000C831C832C0E9C5C6CC618FB2B00025898
:104EF0001B3004C2655C645834C264E2040027FBC2
-:104F00002C0002E0A0720618966E0CE0A072020C53
-:104F10009BE0A07093E0A08079E06851ECEA181E55
-:104F2000B8E069EB85EA193FB1E0A07FE6E0A08038
-:104F3000B88F0C2FF4CE0B300CE204092C2FF45C4C
+:104F00002C0002E0A0724218966E0CE0A0723E0CDB
+:104F10009BE0A070CFE0A080B5E06851ECEA181EDD
+:104F2000B8E069EB85EA193FB1E0A08022E0A080FB
+:104F3000F48F0C2FF4CE0B300CE204092C2FF45C10
:104F4000645834CFA5620C600B163CC055620B60F0
:104F50000C162CC048600B620C162C621B601A14D5
:104F60003BC055621A601B142BC048601A621B14A8
@@ -1273,32 +1273,32 @@
:104F8000486029622A122AFE79FF51120CE04C0275
:104F9000BDC0B2120BE04B02BDC072120AE04A0261
:104FA000BDC032301C506C406C5C6C2F7DD83280A0
-:104FB000006E74800074288001494080014668803A
-:104FC00001663880016526800166CED401198B0008
-:104FD000E702001302F1EC560400650000800100B6
+:104FB000006E7480007428800149B8800146E0804A
+:104FC0000166B08001659E80016746D401198B009F
+:104FD0001CA9001302F1EC560400650000800100DA
:104FE0006600010000444F010D02F1EC5603000081
:104FF000000100580BC031C56CD802198B581BC07A
:1050000031C05CD802C17CD8020000EBCD40C01892
-:1050100097E0661D44EA16000030180C99326AE0E9
+:1050100097E0661D5CEA16000030180C99326AE0D1
:105020006B00D4301CE0A005B30D8BAE8BE3CD80BC
:10503000C00000EBCD4080201D18971A9C300BB8A3
:105040008BB89B0F8CE21C00F0210CC040230CC1DC
-:1050500000C088300CE06B00C0EA1B0000B68CC0BA
-:10506000E8310CE06B00C0EA1B0000B68CC078325F
-:105070000CE06B00C0EA1B0000B68C323CBA8CE03E
-:105080006C00C0EA1C0000198CA7BCBA9C30291A1D
+:1050500000C088300CE06B00D8EA1B0000B68CC0A2
+:10506000E8310CE06B00D8EA1B0000B68CC0783247
+:105070000CE06B00D8EA1B0000B68C323CBA8CE026
+:105080006C00D8EA1C0000198CA7BCBA9C30291A05
:105090009AE06B00D4301CE0A0054EAE8C2FFDE3EF
-:1050A000CD8080EBCD40FC219D18973006E065DE79
-:1050B000DCEA158001AB0AFAEB005C300CFB6C00FB
+:1050A000CD8080EBCD40FC219D18973006E065E077
+:1050B00078EA158001AB0AFAEB005C300CFB6C005F
:1050C00040EAEA0008FAEB0010EAEA0010FAEB0006
:1050D00008EAEA0018BB1BFACBFFB00A9C2E0CB9F9
:1050E00009B728190816A8FACBFFBC0A9C2D4CB9A1
-:1050F00009B728005083001302F1EC560400660043
+:1050F00009B72800EE23001302F1EC560400660005
:10510000008001006700010000FBF4010D02F1ECDA
:1051100056030000000100190816A8EAEA0038FA50
:10512000EB0038EAEA0040FAEB0030EAEA0048FA1D
:10513000EB0028EAEA0050FAEB0020EAEA0058FA0D
-:10514000EB0018E06200D4E0631D48EA1300003071
+:10514000EB0018E06200D4E0631D60EA1300003059
:105150001806992F4930FAF7D2C008301CE0A00594
:1051600029E73C000CE04C00D4E08102CC0A9C2AE8
:105170000CE0A004A13058FAC9FFA4E06A00A0F72F
@@ -1309,9 +1309,9 @@
:1051C0000E3004C0382FF45C545854C184320CA6FD
:1051D0008CFACCFFA4080C198CA69C3029069AF7EF
:1051E000D2C008301CE0A004B91896CED129050A17
-:1051F0009CE0A00461300CE08F0286E0A0B06E2835
+:1051F0009CE0A00461300CE08F0286E0A0B13C2866
:105200003C198C588CF9BC02082FECFE0C001FC016
-:1052100098C398C6E8CA88009794001302F1EC5628
+:1052100098C398C6E8CA8800AACC001302F1EC56DD
:10522000040067000080010068000100006C1F019D
:105230000D02F1EC56030000000100CDD8C179C485
:10524000C9C869CC49414CFB5C0038415CFB5C003F
@@ -1405,41 +1405,41 @@
:1057C000007198800071408000709C009951001316
:1057D00002F1EC5604006C00008001006D00010035
:1057E000007844010D02F1EC560300000001008036
-:1057F00001C8C0D401FEB0E545D80280003790D47E
-:1058000001FEB0E61FD80280003950D401FEB0E698
-:10581000BBD80280003A94FE7C1000780CE9B000FE
+:1057F00001CA5CD401E0A04E99D80280010A38D4D5
+:1058000001E0A04F73D80280010BF8D401E0A05052
+:105810000FD80280010D3CFE7C1000780CE9B0002E
:10582000055EFDFE7C1000780CE9B000025EFDFE16
:105830007C1000780CE9B000015EFDFE7C10007861
-:105840000CE9B000005EFDE06C0CFCEA1C0000F905
+:105840000CE9B000005EFDE06C0D14EA1C0000F9EC
:105850002B00005C5BC060202BC070201BC0A05ED2
:10586000FDE07CC1385EFCE06C5A00EA1C02625E1E
:10587000FCE06C0E00EA1C07275EFCD401CE5FA39F
:105880008CD802D401F80B0648E06A03E7300B1409
:1058900008F20B0049109A129BE06803E83009E017
-:1058A000A0AB88149CD802D401F80B0648EE7A42CB
+:1058A000A0AC4E149CD802D401F80B0648EE7A4204
:1058B0003F300B1408F20B0049109A129BEE78420D
-:1058C000403009E0A0AB76149CD8028001C4C0E14E
+:1058C000403009E0A0AC3C149CD8028001C64CE1F9
:1058D000BA0042970A760A140C971C300C2F8BB62C
:1058E0008C5EFDE1BB0042F93A0008582AC0210055
-:1058F000C95B001302F1EC5604006D00008001004A
+:1058F0008AA3001302F1EC5604006D000080010041
:105900006E00010000ED8F010D02F1EC5603000066
:105910000001005EFDF93A0008581AC0215EFF78C8
:105920001A7809123A780AC0A2143B5E2D781A162A
:105930003A5E2D301B2F8CB88B5EFF143BCFB3CF5C
:105940007B0000D401203DCB0F1A9BCD4F1A9CCD7C
:10595000CFCFE02FDDD80AD401203DCB8F1A9BCCCE
-:10596000AF1A9CCD2FCFE02FDDD80AE06C3188EA4A
+:10596000AF1A9CCD2FCFE02FDDD80AE06C31A0EA32
:105970001C0000300A300B189831A9B12A2019CF29
-:10598000E1910A5EFC0000E06C3188EA1C00005ED8
+:10598000E1910A5EFC0000E06C31A0EA1C00005EC0
:10599000FC0000EBCD4080CEAF1897E0A025A40E10
:1059A0009CC2DC0E9CC25C0E9CC77C0E9CE0A002DC
:1059B000B50E9CC76C0E9CC28C0E9CC3CCE0A001A3
-:1059C000D3E0A04093346CE0A0A054343CE0A0A00D
-:1059D00051300CEF6C002AEF6C002BEF6C002C2D7B
+:1059C000D3E0A04093346CE0A0A138343CE0A0A127
+:1059D00035300CEF6C002AEF6C002BEF6C002C2D97
:1059E00037AE8CE3CF90808000B9D08000EFD4D464
:1059F00001300B998B999BC96CD802D401E0A03E71
:105A0000AFDA0A8000EC48EBCD40C0189730166E34
-:105A10008C5C6C00520F001302F1EC5604006E0017
+:105A10008C5C6C0078CF001302F1EC5604006E0031
:105A2000008001006F000100005234010D02F1EC12
:105A300056030000000100E0A03E3CC045301C8F32
:105A40005CC048300C8F5C30060C9C5C5CE3CD8005
@@ -1450,14 +1450,14 @@
:105A90000B581CC051301C8F3C8F2BC098582C8F3A
:105AA0003BC041301C8F2CC0388F2B30060C9C5CC7
:105AB0005CE3CD80C0D7038000EE7CD401E0A04041
-:105AC0003FDA0AD401E0A0A7ABDA0A8001BEE4D431
-:105AD00001300BE06A3188EA1A000074395809C0B5
+:105AC0003FDA0AD401E0A0A88FDA0A8001C0ACD482
+:105AD00001300BE06A31A0EA1A000074395809C09D
:105AE00030301BC058742A580AC020302B581CC2B2
:105AF00065189A20AAC08020AAC0B0228AC0E027D8
:105B00008AC110C1685C6B30ACE0A04147C1485C01
:105B10006B314CE0A04142C0F85C6B33CCE0A0415B
:105B20003DC0A85C6BE06C00B4E0A04137C0485CAD
-:105B30006BE0A04133E0A0001B0D001302F1EC5616
+:105B30006BE0A04133E0A000F320001302F1EC562B
:105B400004006F00008001007000010000425C0151
:105B50000D02F1EC560300000001004179DA0AE081
:105B6000A04166DA0AD7038000F260EBCD408018CE
@@ -1472,36 +1472,36 @@
:105BF000E000005EFF0000EBCD40C0240D18971AB6
:105C00009C30083009320BB928201BCFE1CE1E187A
:105C100096ED3C0056E04C0064C2B4FACAFEF40EA5
-:105C20009B1A9CE0A0A9441A9CE0A0ABB72FFCED06
+:105C20009B1A9CE0A0AA0A1A9CE0A0AC852FFCED70
:105C30003B0056180BE04B0065C055ED3C0056F894
:105C40000C116430AB1A9A180A201AB48B1A9AED08
-:105C50003900560C092A99189B129E00FF840013E4
+:105C50003900560C092A99189B129E00D28700130E
:105C600002F1EC5604007000008001007100010098
:105C70000056E1010D02F1EC56030000000100584E
:105C80000BC0501538201B1CC8CFD12AA60D8B186D
-:105C90000BAC8B2C0DE3CF80C0D7038001C35080A9
-:105CA00001C83CD401CA7E189B2A9B30091698363D
+:105C90000BAC8B2C0DE3CF80C0D7038001C4DC801C
+:105CA00001C9D8D401CA7E189B2A9B3009169836A0
:105CB0004A10C9201ACFE1300B2AACB88BD80AEBB6
:105CC000CD40C0207D1897A15B502B300CFB6C00A1
-:105CD00010505A506930260E9BE06C3188EA1C0047
+:105CD00010505A506930260E9BE06C31A0EA1C002F
:105CE00000C7DCFACBFFF8FE7C4400FEB0FDD8C054
-:105CF00035301CC0F80E9B189ABB1BE06CE7A8EA75
+:105CF00035301CC0F80E9B189ABB1BE06CE964EAB7
:105D00001C8001C8CF0C9CFE36FF015C5CCE51307C
:105D10000C2F9DE3CD80C0EBCD40C0207D1897A116
:105D20005B502B301CFB6C00105068503A505930BF
-:105D3000260E9BE06C3188EA1C0000C50CFACBFFF4
+:105D3000260E9BE06C31A0EA1C0000C50CFACBFFDC
:105D4000F8FE7C4400FEB0FD9FC035301CC0F80E4C
-:105D50009B189ABB1BE06CE7B4EA1C8001C5FF0CE2
+:105D50009B189ABB1BE06CE970EA1C8001C5FF0C24
:105D60009CFE36FF015C5CCE51300C2F9DE3CD8054
:105D7000C00000EBCD40FC202D1897149312960024
-:105D800056F4001302F1EC5604007100008001008B
+:105D80008F05001302F1EC56040071000080010041
:105D90007200010000C32A010D02F1EC560300005D
:105DA0000001001094A15B169230250E9BE06C312F
-:105DB00088EA1C0000C25CE80C15185F1804990CF6
+:105DB000A0EA1C0000C25CE80C15185F1804990CDE
:105DC0009A069BFE7C4400FEB0FD76C035301CC0B8
-:105DD000F80E9B189ABB1BE06CE7CCEA1C8001C351
+:105DD000F80E9B189ABB1BE06CE94CEA1C8001C3CF
:105DE0000F0A9CFE35FF015C5CCE11300C2FEDE3F9
-:105DF000CD80FCD401E0A0A4BFD80A8001BBD0D4E0
+:105DF000CD80FCD401E0A0A5A3D80A8001BD98D431
:105E000001580BC0B0581BC090582BC070583BC0F5
:105E100050584BC030585BC041300BC06CD80A3072
:105E20001BC03CD80A0000EBCD40801897D3035824
@@ -1511,26 +1511,26 @@
:105E600000EB9CD421189730053006C1380A9BFE00
:105E700035FF015C5BC601580CC091EF1C0040303F
:105E80001BF606094B168CEF5C004030052FF65CC4
-:105E90006658B6C7245806C181E0A0A951E06446FF
-:105EA00050EA1400B1DE001302F1EC560400720057
+:105E90006658B6C7245806C181E0A0AA17E0644638
+:105EA00068EA140026BC001302F1EC5604007200EC
:105EB0000080010073000100007C91010D02F1ECF3
:105EC000560300000001000000680C78BCF01C00C4
:105ED00000C0B0EF1C0040A1ACEF5C0040301C687B
-:105EE0000B2F2BB68CCE6BE0A0A9505816C181E0C9
-:105EF000A0AA26E0644650EA140000681C78BCF0B2
+:105EE0000B2F2BB68CCE6BE0A0AA165816C181E002
+:105EF000A0AAECE0644668EA140000681C78BCF0D4
:105F00001C0000C0B0EF1C0040A1BCEF5C004030A2
-:105F10001C681B2F2BB68CCCDBE0A0A9F95876C1EE
-:105F2000D1E0A0A9DDE0644650EA140000687C7866
+:105F10001C681B2F2BB68CCCDBE0A0AABF5876C127
+:105F2000D1E0A0AAA3E0644668EA140000687C7887
:105F3000BCF01C0000C0D0EF1C0040A7BCEF5C0010
:105F400040301CEF4C00D0687B2F2BB68CCB2BE065
-:105F5000A0A9EA300CEF4C00D05896C0B0E06C46D7
-:105F600050EA1C0000F806032C78BCF01C0000C0AE
+:105F5000A0AAB0300CEF4C00D05896C0B0E06C4610
+:105F600068EA1C0000F806032C78BCF01C0000C096
:105F700028301C581CC8E1EF1A0040301BF60609F7
-:105F80004B164AEF5A0040301BE06A4650EA1A00AE
+:105F80004B164AEF5A0040301BE06A4668EA1A0096
:105F900000F406032A2F2AB48BC81B301C2BE7AE53
-:105FA0008CD82A8001C5988001C5C08001C7748043
-:105FB00001C7448001C7148001C75C2CDCB88B5E2C
-:105FC000FD0000D401FEB000C539001302F1EC560B
+:105FA0008CD82A8001C7248001C74C8001C9008099
+:105FB00001C8D08001C8A08001C8E82CDCB88B5E85
+:105FC000FD0000D401FEB000BFB6001302F1EC5694
:105FD0000400730000800100740001000068B90132
:105FE0000D02F1EC56030000000100FC9BD80AD41E
:105FF00001E0A03D99D80A8000EF38D401FEB0FC42
@@ -1540,34 +1540,34 @@
:1060300097FEB0FCA3189BEE0C100AFEB0FCFAE32E
:10604000CF8080D4012D6CB88BC03CD80A0000EB07
:10605000CD40C0216DFEB0E09D1897FEB0FD021846
-:1060600096E0A0AA25300CFB5C0054FB6C002D30A0
+:1060600096E0A0AAF3300CFB5C0054FB6C002D30D2
:10607000ABFB6B002EFB6C0030FB6C00312D660D12
:106080008C580CC1705807C2A0300CFB6C002C302F
:106090005CFB6C002D30BCFB6C002EFACCFFD41ADC
-:1060A0009B32C9190A16AA2049CFD1E0A083F4C1B6
+:1060A0009B32C9190A16AA2049CFD1E0A08430C179
:1060B000685807C140301CFB6C002C305CFB6C0046
:1060C0002D30BCFB6C002EFACCFFD41A9B32C919C0
-:1060D0000A16AA2049CFD1E0A083DE2EADE3CF80FF
-:1060E000C0D703800035A480017CA8001BA2001348
+:1060D0000A16AA2049CFD1E0A0841A2EADE3CF80C2
+:1060E000C0D703800035A480017D200085110013F6
:1060F00002F1EC56040074000080010075000100FC
:10610000000201010D02F1EC56030000000100D471
-:1061100001348CE0A09D0A320CE0A0A8D1348CE0C0
-:10612000A09D26D80A0000D401348CE0A09CFE3249
-:106130000CE0A0A8B7348CE0A09D1AD80A0000D4C7
-:1061400001348CE0A09CF2321CE0A0A8B9348CE0B1
-:10615000A09D0ED80A0000D401348CE0A09CE63249
-:106160001CE0A0A89F348CE0A09D02D80A0000EBA0
-:10617000CD40801897348CE0A09CD80E9CE0A0A85D
-:106180009F348CE0A09CF4E3CF80808001C6ACEB10
-:10619000CD40801897348CE0A09CC80E9CE0A0A84D
-:1061A00081348CE0A09CE4E3CF80808001AF188034
-:1061B00001C6908001AF5CD401E0A03D2DD80A80DB
+:1061100001348CE0A09DEE320CE0A0A997348CE015
+:10612000A09E0AD80A0000D401348CE0A09DE2327F
+:106130000CE0A0A97D348CE0A09DFED80A0000D41C
+:1061400001348CE0A09DD6321CE0A0A97F348CE005
+:10615000A09DF2D80A0000D401348CE0A09DCA3280
+:106160001CE0A0A965348CE0A09DE6D80A0000EBF5
+:10617000CD40801897348CE0A09DBC0E9CE0A0A977
+:1061800065348CE0A09DD8E3CF80808001C838EBD7
+:10619000CD40801897348CE0A09DAC0E9CE0A0A967
+:1061A00047348CE0A09DC8E3CF80808001B0E080C0
+:1061B00001C81C8001B124D401E0A03D2DD80A8083
:1061C00000F004D5035EFDD401581CC041E0A03EA0
:1061D00099D80AE0A03E86D80AD7038000F2F08062
:1061E00000F2D02D6C198C5EFC00002D0CB88B5E7B
:1061F000FD00002D0C198C5EFC00002CECB88B5EB1
:10620000FD00002CEC198C5EFC00002D1C198C008C
-:106210009EB3001302F1EC560400750000800100EB
+:106210004021001302F1EC560400750000800100DB
:10622000760001000097CA010D02F1EC5603000050
:106230000001005EFC0000D401F96B002F5C5BC024
:1062400031301BC3ECD80A2D2C198C5EFC00002DBC
@@ -1595,22 +1595,22 @@
:1063A00097F95400C4FEB0FB93F95200C640B3FE07
:1063B000B0FB8EF95300C840C3FEB0FB89F953000F
:1063C000CA40D3FEB0FB84F95300CC5C845C85FAF0
-:1063D000E500085C865C87BB17E06CE3B8EA1C80CC
+:1063D000E500085C865C87BB17E06CE594EA1C80EE
:1063E00001FEB0FC892FCDE3CF80FCEBCD40C0187F
:1063F000973006C30FC02030160E9CC96FC0803086
:106400001CEF3B004CF80B094C18465C760E9CC305
:106410006FC030A3A65C760E9CC47FC030A5A65C7E
:10642000760C9C5C7CE3CD80C00000EBCD40E0208E
-:106430002D18973005300CBA8CE066E1E8EA16803A
+:106430002D18973005300CBA8CE066E384EA16809C
:10644000010C9C2F4CFEB0FC570E9CC18FE08000CD
-:1064500082300CBACC301800C638001302F1EC566A
+:1064500082300CBACC30180045DD001302F1EC5646
:1064600004007700008001007800010000BF9A015D
:106470000D02F1EC56030000000100FAC9FFFC30E8
:106480000AE06B008C305CFEB0FCC6C0B01BCCEDEB
:10649000BC0000C0720C9C2F0CFEB0FC3F301CBA3C
:1064A0008C1B8C580CC6C0301B0E9C2BCCE06A4653
-:1064B00050EA1A0000745A74BA745A5D1AE0A0A81F
-:1064C0003F1895EF3C004B580CEF3C0044500C0C2F
+:1064B00068EA1A0000745A74BA745A5D1AE0A0A906
+:1064C0000D1895EF3C004B580CEF3C0044500C0C61
:1064D0009CC2B12ECCFEB0FC21EB3C0080EF3B0017
:1064E00044163CC0D20C9CFEB0FC18301CEF6C0073
:1064F00043EB3B0081E06C00FFC4BCC128EF3C00D3
@@ -1621,7 +1621,7 @@
:10654000ED300CEF6C0043300BEB3C0080C21CC004
:10655000D82F760C9CFEB0FBE1301CEF6C0043EBB7
:106560003B0081E06C00FFC14CEF3C0043EF6C004E
-:10657000453015C0582DC60C9CFEB0007D9C001304
+:10657000453015C0582DC60C9CFEB000E13B001301
:1065800002F1EC560400780000800100790001005F
:1065900000FF21010D02F1EC56030000000100FB99
:1065A000CF300B0E9CC93E0A9C5C5C2FEDE3CD8086
@@ -1635,20 +1635,20 @@
:10662000CD40E0189616973005C4FCC1500C9CC5AF
:106630000CC3700E77C0402017C060C0883F4CFE6E
:10664000B0FB7CC0483F3CFEB0FB783015301B0CE3
-:106650009CC6DEC268E0A0A78529AC988C580CC205
-:10666000010C9CFEB0FE08C050E0A0A77B294C980E
+:106650009CC6DEC268E0A0A85329AC988C580CC236
+:10666000010C9CFEB0FE08C050E0A0A849294C983F
:106670008C0C9CC6EEE06B9C40F60C1900C0E30E3F
:1066800077C0402017C060C0883F4CFEB0FB56C0AA
:10669000483F3CFEB0FB523015300B0C9CC47E00D2
-:1066A000E17D001302F1EC56040079000080010046
+:1066A000D58C001302F1EC56040079000080010043
:1066B0007A000100006AEA010D02F1EC56030000C5
:1066C0000001000A9C5C5CE3CD80E0D401581BC053
:1066D00095301A2B9CB88AF9DBC010FEB0FAC0D8EE
:1066E0000A300BF96B0047C0ACD80A2B9C198C5EA2
:1066F000FC00002B8C198C5EFC0000EBCD40E018F8
-:10670000971696EC0C1518C0C1E0A0A73D1895305F
+:10670000971696EC0C1518C0C1E0A0A80B18953090
:106710000B0E9CFEB0FDDA29458A8CFEB0FAA02B48
-:1067200087AE86E3CF80E08001C8C0EBCD40C020BB
+:1067200087AE86E3CF80E08001CA5CEBCD40C0201D
:106730001D1897FEB0FE06C3A13006300CBA0C0E31
:106740009CFEB0FDAB5C6CFEB0D3F0C200FEB0D4DA
:106750007FE04C00C8C030FEB0D480FEB0FD4030B9
@@ -1658,15 +1658,15 @@
:106790008CE04C9C40C045300CEF6C0050300CEF4E
:1067A0006C004A300B0E9CFEB0FD7C2FFDE3CF80C9
:1067B000C0D70380002388EBCD40F8202D18971612
-:1067C00096301C003AF5001302F1EC5604007A00F2
+:1067C00096301C0094E2001302F1EC5604007A00AB
:1067D000008001007B00010000D551010D02F1ECA9
:1067E00056030000000100BADC3004300CBA3CBA99
:1067F000CCBACCC0481BCB2FFBBACB1BCC58ACC0FF
:1068000084EF1C00661BCBF80B0A4CA19CCF42E026
-:1068100065E358EA1580011BCC500C0A9CFEB0FAC7
+:1068100065E4F4EA1580011BCC500C0A9CFEB0FA2A
:10682000B31BCC58ACC0612F850A9CFEB0FAACCB30
:10683000F83003C128EF1C005CF8030A4CA19CC08F
-:10684000A2E06C4650EA1C0000F803032C78BC78E8
+:10684000A2E06C4668EA1C0000F803032C78BC78D0
:106850002C5D1C2FF35C5358B3CEE5EF1C0066EDA6
:10686000BC0004C0A3EF1C0066EDBC0007C053E0F1
:106870006B13880C9CC3DF1BDC580CC6A00E9CE07D
@@ -1676,7 +1676,7 @@
:1068B000B0FC30FEB0FCA6300CED6C004E2FF45C4A
:1068C000545834C2340C9CFEB0FD02C101301B0C84
:1068D0009CFEB0FC1F9ABB2FFBBA3B300B0C9CCC30
-:1068E0004EC0519ABCE04C0083E3001302F1EC5619
+:1068E0004EC0519ABCE04C00E5E6001302F1EC56B4
:1068F00004007B00008001007C00010000C17901E0
:106900000D02F1EC560300000001001388CEE50CE7
:106910009CC15FC0D1ED3C004E580CC051FEB0D3BD
@@ -1686,296 +1686,296 @@
:10695000F39ABB2FFBBA3B300B0C9CC98EC0519AEB
:10696000BCE04C0BB8CEE51BCC500C0A9C2F0CFEA7
:10697000B0FA1C3004EF5400663003C128EF1C004D
-:106980005CF8030A4CA19CC0A2E06C4650EA1C00D3
+:106980005CF8030A4CA19CC0A2E06C4668EA1C00BB
:1069900000F803032C78BC781C5D1C2FF35C535863
:1069A000B3CEE51BCC500C2E850A9CFEB0F9FE3010
:1069B0000CC068EE0C001B290BB6042FFC5C6C5855
:1069C0006CCF95300B0C9CCA6E300B0C9CFEB0FC4F
:1069D000E12FEDE3CF80F88000FED08000226480BC
:1069E000002394800023DCEBCD40E0189730063084
-:1069F00005C158E06C4650EA1C0000F805032C78ED
-:106A0000BC782C5D1CC090EF1C0040008E1400135D
+:1069F00005C158E06C4668EA1C0000F805032C78D5
+:106A0000BC782C5D1CC090EF1C00400025040013D6
:106A100002F1EC5604007C00008001007D000100C2
:106A200000ABC1010D02F1EC560300000001003083
:106A30001BF605094B168CEF5C00402FF55C655882
:106A400085CEB52C078E8C580CC02130160C9C5C62
:106A50005CE3CD80E00000D4211894169614970CC6
:106A60009CFEB0FD311895ED3C0039581CC0D1E0BA
-:106A70006CE7ECEA1C8001FEB0F9AA300CFEB0FC19
+:106A70006CE9ACEA1C8001FEB0F9AA300CFEB0FC57
:106A8000350C9B089CCCFE5805C2F0EDB50000C04B
:106A900052300B0C9CFEB0FC4FEDB50002C1020C55
-:106AA0009CFEB0FD31F9D5B008E0A04999F9D5B008
+:106AA0009CFEB0FD31F9D5B008E0A04D97F9D5B006
:106AB00008E0A03F255817C0310C9CC6EE0A9CE2A6
:106AC0001C0018590CC0D1EE0C1518C0305837C036
:106AD000810C9CFEB0FDDEF9D5B008E0A03F10307F
-:106AE0000B0C9CFEB0FC8AD82AD703800110AC8026
+:106AE0000B0C9CFEB0FC8AD82AD703800118A88022
:106AF00000FBCCEBCD40801897300CEF6C004FEFD3
:106B00006C0050303BEF6B0032EF6C004A301B0ED4
:106B10009CFEB0FBFDEF1C003A580CC050301B0E21
:106B20009CFEB0FC4D301CEF6C004E0E9CFEB00085
-:106B3000CC94001302F1EC5604007D0000800100AB
+:106B300086A0001302F1EC5604007D0000800100E5
:106B40007E000100003E0A010D02F1EC5603000038
:106B5000000100F891E3CD80800000EBCD40E02003
:106B60002D1897169530060A9C187CC040201CC230
-:106B700070C4D8E06C325CEA1C0000EF2B004A586D
+:106B700070C4D8E06C3274EA1C0000EF2B004A5855
:106B80001BC0A198BB2FFBB83B98BCE04C9C40C2FB
:106B9000653016C3C898AB2FFBB82B98BB2FFBB83A
:106BA0003B98ACE04C9C40C1A5EF3C00502FFCEF63
:106BB0006C0050301CEF6C004D3026C288E06C3207
-:106BC0005CEA1C0000EF3B0032582BC0D1989B2F91
+:106BC00074EA1C0000EF3B0032582BC0D1989B2F79
:106BD000FBB81B989CE04C9C40CDC4301B0E9CFE27
:106BE000B0FADAC148988B2FFBB80B989B2FFBB8F3
:106BF0001B988CE04C9C40CF25EF3C004F2FFCEFC6
:106C00006C004F301CEF6C004D3026EF3C004D58AF
:106C10000CC3010A75C0402015C1C0C508EF2C0087
:106C20004A582CC0305816C4A13005EF650050E01A
-:106C30006C325CEA1C0000B825B835EF3C003058D7
+:106C30006C3274EA1C0000B825B835EF3C003058BF
:106C40000CC3D1301B0E9CFEB0FB742B67AE85C30A
-:106C500068EF3C00D309001302F1EC5604007E00FB
+:106C500068EF3C00B494001302F1EC5604007E008F
:106C6000008001007F0001000081B1010D02F1EC04
:106C7000560300000001000032583CC0305816C3D3
-:106C80000130052B17AE85E06C325CEA1C0000B8C1
+:106C80000130052B17AE85E06C3274EA1C0000B8A9
:106C900005B815C268EF3C004D580CC220EF3C000F
:106CA0004F581CC054EF3C0050581CC175EF3A00BF
-:106CB00050EF3B004FBB1BE06CE7D8EA1C8001FEA5
-:106CC000B0F8AA0E9CC3BFE06C325CEA1C00003036
+:106CB00050EF3B004FBB1BE06CE97CEA1C8001FEFF
+:106CC000B0F8AA0E9CC3BFE06C3274EA1C0000301E
:106CD00005B825B835B805B815300C2B37AE8C0C77
:106CE0009C2FEDE3CD80E0D43120BD300C509C5082
-:106CF0007C506C508C505C50ACE06C284CEA1C0012
-:106D000000989C504C3003E06C284CEA1C0000B802
-:106D100013B803E06C1E4CEA1C00007802E06C1F04
-:106D200024EA1C00009902E06C1E48EA1C0000786E
-:106D300005E06C1E4CEA1C00009905E06C1E44EA5C
-:106D40001C0000780CE0A064A3189BFC1C447AE0B3
-:106D5000A063481894E06C1E48EA1C00009904E007
-:106D60006000FAE06C1E88EA1C0000780BE06C1FE3
-:106D700020EA1C0000780C00E4A6001302F1EC5697
+:106CF0007C506C508C505C50ACE06C2864EA1C00FA
+:106D000000989C504C3003E06C2864EA1C0000B8EA
+:106D100013B803E06C1E64EA1C00007802E06C1FEC
+:106D20003CEA1C00009902E06C1E60EA1C0000783E
+:106D300005E06C1E64EA1C00009905E06C1E5CEA2C
+:106D40001C0000780CE0A064DF189BFC1C447AE077
+:106D5000A063841894E06C1E60EA1C00009904E0B3
+:106D60006000FAE06C1EA0EA1C0000780BE06C1FCB
+:106D700038EA1C0000780C0003E5001302F1EC5621
:106D800004007F000080010080000100003CDA0167
:106D90000D02F1EC56030000000100181BFE3BFF42
:106DA00006E06C00FAF60C0D0AE3DBC010E04100CF
-:106DB0004CC094E06C1F38EA1C0000F8FC08A8588E
-:106DC0001CC4B10A9C089BE0A0631EE0A0730430C1
-:106DD00008FC193FE0E0A07161E0A0734818965CE0
-:106DE000765836E08400FAE0671F38EA170000EFB3
-:106DF0001C006A582CC094E06C1E3CEA1C00007811
-:106E00000C580CE08000EAF9D6C010E0A0735630B0
-:106E100008FC193FF8E0A07256BB1BEF1C0066E0AF
-:106E2000A0734CBB08E0A072F7E08200D729678E00
-:106E30008C0C0CAE0CF9D6C010E0A0643B089BE0B3
-:106E4000A0626EE06B1E48EA1B0000970CE06C2805
-:106E50004CEA1C0000B806E06C1E3CEA1C000078FE
-:106E60000C584CC2F3049C0A9BE0A063E7C2A2E06A
-:106E70006C1E48EA1C000078070A9C0E9BE0A06389
-:106E8000DDC2020E9CE0A072A714941695049CE04B
-:106E9000A072A2E068CCCDEA18CCCC0015E50013B6
+:106DB0004CC094E06C1F50EA1C0000F8FC08A85876
+:106DC0001CC4B10A9C089BE0A0635AE0A073403049
+:106DD00008FC193FE0E0A0719DE0A0738418965C68
+:106DE000765836E08400FAE0671F50EA170000EF9B
+:106DF0001C006A582CC094E06C1E54EA1C000078F9
+:106E00000C580CE08000EAF9D6C010E0A073923074
+:106E100008FC193FF8E0A07292BB1BEF1C0066E073
+:106E2000A07388BB08E0A07333E08200D729678E87
+:106E30008C0C0CAE0CF9D6C010E0A06477089BE077
+:106E4000A062AAE06B1E60EA1B0000970CE06C28B1
+:106E500064EA1C0000B806E06C1E54EA1C000078CE
+:106E60000C584CC2F3049C0A9BE0A06423C2A2E02D
+:106E70006C1E60EA1C000078070A9C0E9BE0A06470
+:106E800019C2020E9CE0A072E314941695049CE0D3
+:106E9000A072DEE068CCCDEA18CCCC00FB02001377
:106EA00002F1EC5604008000008001008100010026
:106EB000007049010D02F1EC56030000000100E0F2
-:106EC00069CCCCEA193FFCE0A0720F08980A99E05F
-:106ED000A072B4C092301BEA1B40400E9CE0A0633D
-:106EE000B3E0820382E0671F38EA170000EEFC0877
+:106EC00069CCCCEA193FFCE0A0724B08980A99E023
+:106ED000A072F0C092301BEA1B40400E9CE0A06301
+:106EE000EFE0820382E0671F50EA170000EEFC0823
:106EF00084EF4C0888EEFC0894EF4C0898F9D1C058
-:106F000010E0A063E91896FAE10008E06C1F20EA9F
+:106F000010E0A064251896FAE10008E06C1F38EA4A
:106F10001C0000780A0E9BFE3BFB6CBB1B0E98FE10
:106F200038FF540E99FE39F76C0E9AFE3AF77C142E
-:106F30009512941092EEFC08900C9BE0A0627618DB
-:106F40009B1691EEFC08800C9BE0A0626F049808F1
-:106F5000990A9A029BE0A02D5FE06C284CEA1C0085
-:106F600000988CF80B1510C120E0A063B51896EEC0
-:106F7000FC08840C9BE0A06259EF4C0884EEFC08EE
-:106F8000940C9BE0A06252EF4C0894E06C284CEA11
-:106F90001C0000787CE06B284CEA1B0000975CE04A
-:106FA0006C284CEA1C0000783C764BE0A06106E0BF
-:106FB0006B284CEA1B0000977CE06C1D60EA1C000B
-:106FC000D918001302F1EC56040081000080010082
+:106F30009512941092EEFC08900C9BE0A062B2189F
+:106F40009B1691EEFC08800C9BE0A062AB049808B5
+:106F5000990A9A029BE0A02D5FE06C2864EA1C006D
+:106F600000988CF80B1510C120E0A063F11896EE84
+:106F7000FC08840C9BE0A06295EF4C0884EEFC08B2
+:106F8000940C9BE0A0628EEF4C0894E06C2864EABD
+:106F90001C0000787CE06B2864EA1B0000975CE032
+:106FA0006C2864EA1C0000783C764BE0A06142E06B
+:106FB0006B2864EA1B0000977CE06C1D78EA1C00DB
+:106FC00084D2001302F1EC5604008100008001001D
:106FD0008200010000E582010D02F1EC5603000081
:106FE00000010000002D6C988C583CC224E06C1EFF
-:106FF00048EA1C0000780C301BEA1B4000E0A0634C
-:1070000035C173EEFC0884FC1B4120E0A0633AC14B
-:1070100002EEFC0894FC1B4220E0A06333C092E027
-:107020006C1F38EA1C0000296CB803E08F02EFE007
-:107030006C1E3CEA1C0000780B580BC1E1EF1A00F3
-:107040006A149C585CC195E06B1E3CEA1B000097DB
-:107050000AE06B284CEA1B000096891409B609E087
-:107060006B1E38EA1B0000760914099709E0A02B73
+:106FF00060EA1C0000780C301BEA1B4000E0A06334
+:1070000071C173EEFC0884FC1B4120E0A06376C1D3
+:1070100002EEFC0894FC1B4220E0A0636FC092E0EB
+:107020006C1F50EA1C0000296CB803E08F02EFE0EF
+:107030006C1E54EA1C0000780B580BC1E1EF1A00DB
+:107040006A149C585CC195E06B1E54EA1B000097C3
+:107050000AE06B2864EA1B000096891409B609E06F
+:107060006B1E50EA1B0000760914099709E0A02B5B
:1070700013EF53006AC058580BC030EF53006AEE4C
:10708000F20898EEF60894FC153FE00C9C049BE097
-:10709000A06114E0A071C430080A99E0A07137140F
-:1070A0009016913008FC19404EE0A071D9C1B3EEA2
-:1070B000FB0884EEFC0888E0A06100E0A071B01439
-:1070C000981699300A0A9BE0A07121149416953005
-:1070D00008FC194039E0A071C3C053EEFC08DC582D
-:1070E0003CC0A3000F43001302F1EC5604008200E1
+:10709000A06150E0A0720030080A99E0A07173145A
+:1070A0009016913008FC19404EE0A07215C1B3EE65
+:1070B000FB0884EEFC0888E0A0613CE0A071EC14C1
+:1070C000981699300A0A9BE0A0715D1494169530C9
+:1070D00008FC194039E0A071FFC053EEFC08DC58F1
+:1070E0003CC0A3004D03001302F1EC5604008200E3
:1070F0000080010083000100005A39010D02F1EC0B
-:1071000056030000000100E06C1E3CEA1C00007801
-:107110000C580CE081028DC96BE06C1E3CEA1C002F
+:1071000056030000000100E06C1E54EA1C000078E9
+:107110000C580CE081028DC96BE06C1E54EA1C0017
:1071200000780C580CC341009A029B3008E069C0FB
-:1071300000EA194062E0A071A5C1A3089A0A9B3039
-:1071400008FC194054E0A0719DC123E06C284CEA72
-:107150001C0000783CE06B284CEA1B0000764BE0FA
-:10716000A06050FC1B41A0E0A0629EC11229678E66
-:107170008C2FFCAE0CE06C1E88EA1C0000780CE042
-:107180006B1E40EA1B0000970CE08F0252EF1500C7
-:107190006AEA0C1510C2F00C9C049BE0A0616AFC2A
-:1071A0001B4040E0A06280C2420A9C583CC1B5E04E
-:1071B0006B1E38EA1B0000760A0A0A970AE06B1E6B
-:1071C0003CEA1B0000760A0A0A970AE06B284CEAA0
+:1071300000EA194062E0A071E1C1A3089A0A9B30FD
+:1071400008FC194054E0A071D9C123E06C2864EA1E
+:107150001C0000783CE06B2864EA1B0000764BE0E2
+:10716000A0608CFC1B41A0E0A062DAC11229678EEE
+:107170008C2FFCAE0CE06C1EA0EA1C0000780CE02A
+:107180006B1E58EA1B0000970CE08F0252EF1500AF
+:107190006AEA0C1510C2F00C9C049BE0A061A6FCEE
+:1071A0001B4040E0A062BCC2420A9C583CC1B5E012
+:1071B0006B1E50EA1B0000760A0A0A970AE06B1E53
+:1071C00054EA1B0000760A0A0A970AE06B2864EA70
:1071D0001B0000968A0A0AB60AE0A02A6FEF530045
-:1071E0006AC098E06C284CEA1C0000B815C038EF63
-:1071F00053006AE06C1E3CEA1C0000780C580CC37B
-:1072000061E06C1E48EA1C008EE3001302F1EC56AC
+:1071E0006AC098E06C2864EA1C0000B815C038EF4B
+:1071F00053006AE06C1E54EA1C0000780C580CC363
+:1072000061E06C1E60EA1C0090D6001302F1EC569F
:10721000040083000080010084000100004E110181
:107220000D02F1EC5603000000010000007806FC9E
-:107230001B3F800C9CE0A06249E083020CE06B667F
-:1072400067EA1B40160C9CE0A06234C203EF1B00EF
+:107230001B3F800C9CE0A06285E083020CE06B6643
+:1072400067EA1B40160C9CE0A06270C203EF1B00B3
:107250006C169C582CC06429478E8C2FFCAE0CCF2A
-:1072600099E06A1E38EA1A0000740916099509E0C7
-:107270006A1E3CEA1A0000950BE06A284CEA1A00E4
+:1072600099E06A1E50EA1A0000740916099509E0AF
+:107270006A1E54EA1A0000950BE06A2864EA1A00B4
:107280000094891609B409E0A02A2AEF53006CE0A3
-:107290006C1E3CEA1C000078025822C353E06C1EAE
-:1072A00048EA1C0000780C301BEA1B4080E0A0621A
-:1072B00001C2A3EEFC0898EEFB0894E0A060EC305D
-:1072C0001BEA1B40A0E0A061F5C1E3E06C1E4CEAA4
-:1072D0001C0000780CE06B1E48EA1B0000970CEEC7
-:1072E000FC0898EF4C0894E06C284CEA1C000078ED
-:1072F0005CE06B284CEA1B0000977CEEFC0888EFF2
+:107290006C1E54EA1C000078025822C353E06C1E96
+:1072A00060EA1C0000780C301BEA1B4080E0A06202
+:1072B0003DC2A3EEFC0898EEFB0894E0A0612830E4
+:1072C0001BEA1B40A0E0A06231C1E3E06C1E64EA4F
+:1072D0001C0000780CE06B1E60EA1B0000970CEEAF
+:1072E000FC0898EF4C0894E06C2864EA1C000078D5
+:1072F0005CE06B2864EA1B0000977CEEFC0888EFDA
:107300004C0884CA795822C1833016EA164170EEBF
-:10731000FC0898EEFB0894E0A060BE0C9BE0A06126
-:10732000C9C0B3EEFC0888EEFB088400CF980013B8
+:10731000FC0898EEFB0894E0A060FA0C9BE0A062E9
+:1073200005C0B3EEFC0888EEFB0884000D95001341
:1073300002F1EC5604008400008001008500010089
:107340000024A9010D02F1EC56030000000100E049
-:10735000A060B40C9BE0A061BFCCB25802C200E0B8
-:107360006C284CEA1C0000786CE0A0708FE0683359
-:1073700033EA183333E0693333EA193FD3E0A06FBF
-:10738000FC14941695E06C284CEA1C0000787CE014
-:10739000A0707C08980A99E0A07098CAA3E06C1EBF
-:1073A00048EA1C00007806301BEA1B40900C9CE069
-:1073B000A06192C0C2E06C1E50EA1C0000780C3044
-:1073C0001BEA1B4080E0A06187C1C3EEFC0894FC6F
-:1073D0001B43C8E0A0618CC0C3EEFC0884FC1B43C7
-:1073E00016E0A06185C053EF1C0066582CC0A5E0D4
-:1073F0006C1D60EA1C00002D6C988C583CE08401E8
-:107400003C301BEA1B40A00C9CE0A06165C083FCE3
-:107410001C40A0E06B1E48EA1B0000970CEEFC0825
-:107420008CFC1B43C8E0A06163C0D2EEFC08E8E01E
+:10735000A060F00C9BE0A061FBCCB25802C200E040
+:107360006C2864EA1C0000786CE0A070CBE0683305
+:1073700033EA183333E0693333EA193FD3E0A070BE
+:107380003814941695E06C2864EA1C0000787CE0C0
+:10739000A070B808980A99E0A070D4CAA3E06C1E47
+:1073A00060EA1C00007806301BEA1B40900C9CE051
+:1073B000A061CEC0C2E06C1E68EA1C0000780C30F0
+:1073C0001BEA1B4080E0A061C3C1C3EEFC0894FC33
+:1073D0001B43C8E0A061C8C0C3EEFC0884FC1B438B
+:1073E00016E0A061C1C053EF1C0066582CC0A5E098
+:1073F0006C1D78EA1C00002D6C988C583CE08401D0
+:107400003C301BEA1B40A00C9CE0A061A1C083FCA7
+:107410001C40A0E06B1E60EA1B0000970CEEFC080D
+:107420008CFC1B43C8E0A0619FC0D2EEFC08E8E0E2
:107430004C0029E0840121EEFC08ECE04C0029E03E
:1074400084011BE0646666EA146666E065666600B1
-:10745000AE0C001302F1EC56040085000080010020
+:10745000A683001302F1EC560400850000800100B1
:107460008600010000B162010D02F1EC560300003C
-:10747000000100EA153FE6EEE508E0E06C1E48EA90
-:107480001C00007806E0611E54EA1100005802C298
-:1074900041E0651E50EA1500008B068306EEFC08ED
+:10747000000100EA153FE6EEE508E0E06C1E60EA78
+:107480001C00007806E0611E6CEA1100005802C280
+:1074900041E0651E68EA1500008B068306EEFC08D5
:1074A00084EF4C088CEEFC0894EF4C089CE06C28B0
-:1074B0004CEA1C0000787CE06B284CEA1B0000972B
-:1074C0006CE06C1E5CEA1C00009906E06C1E60EA31
-:1074D0001C00009906C818620CE0A06FE908980A21
-:1074E00099E0A06F5C149416950C9CE0A06FE008E6
-:1074F000980A99E0A06FFCC2F2EF1C0066582CC2FB
-:10750000B5FC1C40000C9BE0A05F76E06B1E48EAD7
-:107510001B0000970CE06B1E3CEA1B0000760A2F54
+:1074B00064EA1C0000787CE06B2864EA1B000097FB
+:1074C0006CE06C1E74EA1C00009906E06C1E78EA01
+:1074D0001C00009906C818620CE0A0702508980AE4
+:1074E00099E0A06F98149416950C9CE0A0701C086D
+:1074F000980A99E0A07038C2F2EF1C0066582CC2BE
+:10750000B5FC1C40000C9BE0A05FB2E06B1E60EA83
+:107510001B0000970CE06B1E54EA1B0000760A2F3C
:10752000FA970A301B507BEEFB0884EF4B0888EE7D
-:10753000FB0894EF4B0898E06B1E4CEA1B00009789
-:107540000CE06C1E38EA1C0000780B2FFB990B3006
-:107550001CE0A028E9E0651E50EA1500000E9AFE26
+:10753000FB0894EF4B0898E06B1E64EA1B00009771
+:107540000CE06C1E50EA1C0000780B2FFB990B30EE
+:107550001CE0A028E9E0651E68EA1500000E9AFE0E
:107560003AF764EEFB0894FAEB0008EEFA08980E7E
-:107570009BFE3B006617001302F1EC5604008600E8
+:107570009BFE3B00A0FE001302F1EC5604008600C7
:107580000080010087000100000ED9010D02F1EC1E
:1075900056030000000100F774BB1BEEF80884EEF0
-:1075A000F908880A9AE06C1E48EA1C0000780BE093
-:1075B0006C1E4CEA1C0000780CE0A02AEBE06C1E6C
-:1075C00048EA1C000078076A0B0E9CE0A060B4C07B
-:1075D00043407C581CC0218307E06C284CEA1C0007
-:1075E00000785B787CE0A05EC3FC1B3F00E0A05FFE
-:1075F00015E06B284CEA1B0000976C407C580CC0CF
-:1076000080E06C284CEA1C0000988B2FFBB80BFA2A
+:1075A000F908880A9AE06C1E60EA1C0000780BE07B
+:1075B0006C1E64EA1C0000780CE0A02AEBE06C1E54
+:1075C00060EA1C000078076A0B0E9CE0A060F0C027
+:1075D00043407C581CC0218307E06C2864EA1C00EF
+:1075E00000785B787CE0A05EFFFC1B3F00E0A05FC2
+:1075F00051E06B2864EA1B0000976C407C580CC07B
+:1076000080E06C2864EA1C0000988B2FFBB80BFA12
:10761000C8FFD8FAC9FFECFACAFFE0FACBFFE8E0EE
-:107620006C284CEA1C0000988CE0A0295D404C5866
-:107630000CC350404CE06B1E3CEA1B0000760A185D
+:107620006C2864EA1C0000988CE0A0295D404C584E
+:107630000CC350404CE06B1E54EA1B0000760A1845
:107640000A970A404CE0A02881404C5C7CE0A06096
-:10765000AF1897405BE0A05EE1E06B1D60EA1B00A5
-:1076600000765BE0A05E84E06B1D60EA1B00009783
-:107670005C406C0E9BE0A05ED1E06B1D60EA1B00DD
-:1076800000766BE0A05E74E06B1D60EA1B00009763
-:107690006CE06C284CEA1C00FD6F001302F1EC5604
+:10765000EB1897405BE0A05F1DE06B1D78EA1B0014
+:1076600000765BE0A05EC0E06B1D78EA1B0000972F
+:107670005C406C0E9BE0A05F0DE06B1D78EA1B0088
+:1076800000766BE0A05EB0E06B1D78EA1B0000970F
+:107690006CE06C2864EA1C005377001302F1EC568E
:1076A0000400870000800100880001000099320179
:1076B0000D02F1EC560300000001000000B8134079
-:1076C00059408A406BE06C1E88EA1C0000780CE090
-:1076D000A028C2301C509CE06B1E84EA1B0000975F
-:1076E0000CE06C1E88EA1C0000780CE06B1F20EA9E
-:1076F0001B0000970CE06C1E44EA1C00009903E09C
-:10770000671F38EA170000300CEF4C0880EF4C0878
-:1077100090EF4308A8409C2F5DD832800166CE8050
-:1077200001671C8000DC548001652680016678803A
-:1077300000DCF88000DA4C8000D8B0800149148069
+:1076C00059408A406BE06C1EA0EA1C0000780CE078
+:1076D000A028C2301C509CE06B1E9CEA1B00009747
+:1076E0000CE06C1EA0EA1C0000780CE06B1F38EA6E
+:1076F0001B0000970CE06C1E5CEA1C00009903E084
+:10770000671F50EA170000300CEF4C0880EF4C0860
+:1077100090EF4308A8409C2F5DD8328001674680D7
+:107720000167948000DC548001659E800166F080D2
+:1077300000DCF88000DA4C8000D8B08001498C80F1
:1077400000D998D6B1205D1696300C502C3007E049
-:107750006C1E84EA1C00009907E060284CEA1000C7
+:107750006C1E9CEA1C00009907E0602864EA100097
:1077600000300381338143406CE0A0034FFB1B00DA
-:107770001E0C9CE0A04800E0661F38EA160000ECF2
-:10778000FC08AC585CC0F1301CE06B1E84EA1B00A6
+:107770001E0C9CE0A0483CE0661F50EA160000EC9E
+:10778000FC08AC585CC0F1301CE06B1E9CEA1B008E
:1077900000970C300BFB5B001EED4C08A8ED470872
-:1077A000ACCF09FB1C001EE06B1E44EA1B000076F8
-:1077B0000A180A970AE06C1E88EA1C0054B90013E4
+:1077A000ACCF09FB1C001EE06B1E5CEA1B000076E0
+:1077B0000A180A970AE06C1EA0EA1C006B2300134B
:1077C00002F1EC56040088000080010089000100ED
:1077D00000D989010D02F1EC560300000001000000
-:1077E00000780CE06B1F20EA1B0000760B163CC0F3
+:1077E00000780CE06B1F38EA1B0000760B163CC0DB
:1077F00041301CED4C08A8ECF108A0E202100C0C82
:1078000002406C780C850C406C781C851C406C78B0
-:107810002C852C6D5C406B760BE0A05D5FE0A06E6C
-:107820007D14941695BFD56D6C406B761BE0A05D02
-:1078300055E0A06E73BFDBFAEB000C6D7C406B76FD
-:107840002BE0A05D4BE0A06E69BFDBBB1B089A0A72
-:107850009BFAE8000CE0A06CC3BB08E0A06CC0E0A1
-:10786000A05F381894ED1C0068EC0C0025EAFB08BA
-:10787000B0089CE0A05D32ECFB08D8E0A05D9CED78
-:107880004C08D8EB4408B0FC1B4120E0A05E5EE051
-:107890006B1E80EA1B0000970C642C6415640418AE
-:1078A0009BE0A05DDF18920A9C0A9BE0A05DDA18BD
-:1078B00095089C089BE0A05DD50A9BE0A05D7C0438
-:1078C0009BE0A05D79E0A06E29E0A092D9E0A05FE6
-:1078D000011895ECFC08A4580CC121300CC06800BC
-:1078E000A985001302F1EC56040089000080010014
+:107810002C852C6D5C406B760BE0A05D9BE0A06E30
+:10782000B914941695BFD56D6C406B761BE0A05DC6
+:1078300091E0A06EAFBFDBFAEB000C6D7C406B7685
+:107840002BE0A05D87E0A06EA5BFDBBB1B089A0AFA
+:107850009BFAE8000CE0A06CFFBB08E0A06CFCE029
+:10786000A05F741894ED1C0068EC0C0025EAFB087E
+:10787000B0089CE0A05D6EECFB08D8E0A05DD8ED00
+:107880004C08D8EB4408B0FC1B4120E0A05E9AE015
+:107890006B1E98EA1B0000970C642C641564041896
+:1078A0009BE0A05E1B18920A9C0A9BE0A05E161843
+:1078B00095089C089BE0A05E110A9BE0A05DB804BF
+:1078C0009BE0A05DB5E0A06E65E0A093BDE0A05F89
+:1078D0003D1895ECFC08A4580CC121300CC0680080
+:1078E000BE10001302F1EC56040089000080010074
:1078F0008A000100004C42010D02F1EC5603000029
:10790000000100EC0C002BF74500702FFC5C7C584C
-:107910007CCF95FC1B40E00A9CE0A05DB5ED4C00DF
-:10792000A8EC01002163CB0A9CE0A05CE9ECFB0021
-:10793000A8E0A05D531894ED4400A8E3450070E072
-:107940006C1E88EA1C0000780CEC0C0022E5440058
-:10795000ACECFB0880089CE0A05D40ED4C0880E2A8
-:10796000FB008C089CE0A05CCB1895E5450494E3F3
-:1079700044008CECFB0890E0A05D30ED4C08900CCE
+:107910007CCF95FC1B40E00A9CE0A05DF1ED4C00A3
+:10792000A8EC01002163CB0A9CE0A05D25ECFB00E4
+:10793000A8E0A05D8F1894ED4400A8E3450070E036
+:107940006C1EA0EA1C0000780CEC0C0022E5440040
+:10795000ACECFB0880089CE0A05D7CED4C0880E26C
+:10796000FB008C089CE0A05D071895E5450494E3B6
+:1079700044008CECFB0890E0A05D6CED4C08900C92
:107980009C2ACC4069B30BB92A130A18AAECF40854
-:107990007C300B089CE0A05EF9C0B3300B0A9CE081
-:1079A000A05F00C062ED1C00662FFCED5C0066ED80
+:107990007C300B089CE0A05F35C0B3300B0A9CE044
+:1079A000A05F3CC062ED1C00662FFCED5C0066ED44
:1079B0001C00602FFCED5C0060ECFC08AC581CC0A7
:1079C00050ECFC08AC583CC431ED1C0060583CC382
-:1079D00004E06B1D60EA1B00002D6B968B584BC2B8
-:1079E00084E06C1E3CEA1C0000780C580CE081001E
-:1079F000EE3012EA1240C0089C049BE0A05ED2C0A8
-:107A0000620A9C00E159001302F1EC5604008A005E
+:1079D00004E06B1D78EA1B00002D6B968B584BC2A0
+:1079E00084E06C1E54EA1C0000780C580CE0810006
+:1079F000EE3012EA1240C0089C049BE0A05F0EC06B
+:107A0000620A9C0031CA001302F1EC5604008A009D
:107A1000008001008B00010000F3F9010D02F1EC80
-:107A200056030000000100049BE0A05EC1C0F2FC10
-:107A300012C0C0089C049BE0A05EBAE08300D90A93
-:107A40009C049BE0A05EC0E08200D3301CED4C089B
+:107A200056030000000100049BE0A05EFDC0F2FCD4
+:107A300012C0C0089C049BE0A05EF6E08300D90A57
+:107A40009C049BE0A05EFCE08200D3301CED4C085F
:107A5000A8CCE8E04C0027C0D5ED1B0062F60A1563
:107A600010C050160CE04C004BC045301CED4C08CB
:107A7000A8ECFC08AC580CC080581CC290582CC410
:107A8000E0583CC590C7B83012EA1240C0089C04C8
-:107A90009BE0A05E99C1520A9C049BE0A05E88C155
+:107A90009BE0A05ED5C1520A9C049BE0A05EC4C1DD
:107AA00003ED1C0060590CC033ED570060301CED35
:107AB0004C08AC601C813C602C814C8115C5F86081
-:107AC0002B0A9CE0A05E80C5A28125C588601C0AA7
-:107AD0009BE0A05E79C0228115FC123F80089C04C7
-:107AE0009BE0A05E65C4B30A9C049BE0A05E6CC4EE
+:107AC0002B0A9CE0A05EBCC5A28125C588601C0A6B
+:107AD0009BE0A05EB5C0228115FC123F80089C048B
+:107AE0009BE0A05EA1C4B30A9C049BE0A05EA8C476
:107AF00062ED1C0060ED5C0062ED570060FC1BC095
-:107B0000C00A9CE0A05E60C062303CED4C08AC81D5
+:107B0000C00A9CE0A05E9CC062303CED4C08AC8199
:107B100025C358302CED4C08ACC318FC12C0C0086B
-:107B20009C049BE0A05E440084FE001302F1EC562E
+:107B20009C049BE0A05E8000C33E001302F1EC5673
:107B300004008B00008001008C00010000E7D101EF
:107B40000D02F1EC56030000000100C2A30A9C04E0
-:107B50009BE0A05E4BC252CEBB602B0A9CE0A05EB5
-:107B600045C0228125E062FFFEEA12BF7F089C0427
-:107B70009BE0A05E3BC1520A9C049BE0A05E2AC130
+:107B50009BE0A05E87C252CEBB602B0A9CE0A05E79
+:107B600081C0228125E062FFFEEA12BF7F089C04EB
+:107B70009BE0A05E77C1520A9C049BE0A05E66C1B8
:107B800003ED1C0060ED5C0064ED570060301BEA03
-:107B90001B40C00A9CE0A05E1DC9C2ED4708ACECCA
+:107B90001B40C00A9CE0A05E59C9C2ED4708ACEC8E
:107BA000FC08AC581CC361ED1C0062F80B1510C337
:107BB00010ED1B0064F60A1510C2C0160CE04C0054
:107BC0003DC045301CED4C08A8ED1C0066584CC06B
@@ -1983,89 +1983,89 @@
:107BE000FB08F0ECFC08F4180BECFC08F8180BEDA3
:107BF0004B08E8ED4708F8ED4708F4ED4708F0FEBC
:107C0000B0F95E502CED4708DCED570064ED5700ED
-:107C100066E0641E40EA140000E06C1E88EA1C0066
+:107C100066E0641E58EA140000E06C1EA0EA1C0036
:107C200000780B680C181BFE3BFF06E06C00FAF6B0
-:107C30000C0D0AE04B0096C551E0681E3CEA1800A6
-:107C4000009107E06C1E50EA1C000000D4220013D3
+:107C30000C0D0AE04B0096C551E0681E54EA18008E
+:107C4000009107E06C1E68EA1C000000856A0013C2
:107C500002F1EC5604008C00008001008D00010050
:107C6000008D69010D02F1EC56030000000100993E
-:107C700003E06C1E58EA1C00009903E0691D60EAED
+:107C700003E06C1E70EA1C00009903E0691D78EABD
:107C800019000093739393F3570028ED57006A305F
-:107C90001CE06B1E84EA1B0000970CE06C1E10EACF
+:107C90001CE06B1E9CEA1B0000970CE06C1E28EA9F
:107CA0001C0000300A300BB91BF8EB0008F8EB00A1
-:107CB00010F8EB0018E06C1F28EA1C0000780C5844
-:107CC0001CC0A1E06B1E38EA1B0000760A700C187D
-:107CD0001A970A9107E06C1DC8EA1C0000783B580F
+:107CB00010F8EB0018E06C1F40EA1C0000780C582C
+:107CC0001CC0A1E06B1E50EA1B0000760A700C1865
+:107CD0001A970A9107E06C1DE0EA1C0000783B58F7
:107CE0000BC120781B721A160A931A782C2F8972EE
-:107CF0000B180B930BE06CE628EA1C8001FEB0F138
-:107D000087E0A02583E06C1E88EA1C0000780B68E1
+:107CF0000B180B930BE06CE864EA1C8001FEB0F1FA
+:107D000087E0A02583E06C1EA0EA1C0000780B68C9
:107D10000C181BF6C5FF06E06C00FAEA0C0D0AE031
-:107D20004B0064C4B1E0691D60EA190000937393CD
-:107D300093E06C1E10EA1C0000300A300BB91BF8EF
+:107D20004B0064C4B1E0691D78EA190000937393B5
+:107D300093E06C1E28EA1C0000300A300BB91BF8D7
:107D4000EB0008F8EB0010F8EB0018F357002A934B
-:107D500093301CE06B1E84EA1B0000970CED57006B
-:107D60006AE06C1F28EA1C0000780C581CC0E10077
-:107D70005FC1001302F1EC5604008D000080010089
+:107D500093301CE06B1E9CEA1B0000970CED570053
+:107D60006AE06C1F40EA1C0000780C581CC0E1005F
+:107D70001FE5001302F1EC5604008D0000800100A5
:107D80008E0001000018A2010D02F1EC5603000064
-:107D9000000100E06B1E38EA1B0000E0681E3CEAB0
+:107D9000000100E06B1E50EA1B0000E0681E54EA80
:107DA000180000760A700C181A970A9107E06C1DEB
-:107DB000C8EA1C0000783B580BC120781B721A16C9
-:107DC0000A931A782C2F89720B180B930BE06CE630
-:107DD00028EA1C8001FEB0F12DE0A02529E06C1EF0
-:107DE00080EA1C00007805E0641F34EA140000E01B
-:107DF0006BCCCDEA1B3E4C0A9CE0A05D1BC072FB25
+:107DB000E0EA1C0000783B580BC120781B721A16B1
+:107DC0000A931A782C2F89720B180B930BE06CE82E
+:107DD00064EA1C8001FEB0F12DE0A02529E06C1EB4
+:107DE00098EA1C00007805E0641F4CEA140000E0EB
+:107DF0006BCCCDEA1B3E4C0A9CE0A05D57C072FBE9
:107E00001C001E680B180B890BC0288907FC1B403F
-:107E1000000A9CE0A05D0EC142E06BFFFEEA1BBFC2
-:107E2000FF0A9CE0A05CFAC0C3FB1C001EE06B1DB7
-:107E300060EA1B00002D0B760A180A970AC068E05A
-:107E40006C1D60EA1C000099C7ED1C00682FFCED5A
+:107E1000000A9CE0A05D4AC142E06BFFFEEA1BBF86
+:107E2000FF0A9CE0A05D36C0C3FB1C001EE06B1D7A
+:107E300078EA1B00002D0B760A180A970AC068E042
+:107E40006C1D78EA1C000099C7ED1C00682FFCED42
:107E50005C0068ED1C006858ACC031ED570068E06C
-:107E60006C1E88EA1C0000780CEC0C002CF8FC045A
-:107E700094ED4C087CE06C1E88EA1C0000780B2F07
-:107E8000FB990B780CE04C00FAC061E06C1E88EAAC
-:107E90001C000000EEF7001302F1EC5604008E0007
+:107E60006C1EA0EA1C0000780CEC0C002CF8FC0442
+:107E700094ED4C087CE06C1EA0EA1C0000780B2FEF
+:107E8000FB990B780CE04C00FAC061E06C1EA0EA94
+:107E90001C000000559B001302F1EC5604008E00FC
:107EA000008001008F00010000A719010D02F1EC14
:107EB000560300000001009907ECFC08A02FFCED20
:107EC0004C08A0ECFC08A0587CC031ED4708A0ECA1
:107ED000FC08A42FFCED4C08A4402C2FBDDCB28084
-:107EE0000118B8800162FC800146688001AF9C8067
-:107EF0000147F0800144D48000709C8000D89880B5
-:107F0000014884EBCD40F81895E0671F38EA170068
-:107F100000EEF608FC6F540C9CE0A05CEF18936A2E
-:107F20000C089BE0A05A46069BE0A05B07300BE0E4
-:107F3000A05C92C1F2EEFB0908089CE0A05A3AE06E
-:107F4000A06B58BFDBE068999BEA189999E06999A2
-:107F500099EA193FC9E0A06B6BC063EEFC08F02FF3
+:107EE00001193080016374800146E08001B1648033
+:107EF0000148688001454C8000709C8000D89880C3
+:107F00000148FCEBCD40F81895E0671F50EA1700D8
+:107F100000EEF608FC6F540C9CE0A05D2B18936AF1
+:107F20000C089BE0A05A82069BE0A05B43300BE06C
+:107F3000A05CCEC1F2EEFB0908089CE0A05A76E0F6
+:107F4000A06B94BFDBE068999BEA189999E0699966
+:107F500099EA193FC9E0A06BA7C063EEFC08F02FB7
:107F6000FCEF4C08F06F5CEF4C09085C36EF4608FC
-:107F7000FCEEF609006F640C9CE0A05CBF18936AED
-:107F80001C089BE0A05A16069BE0A05AD7300BE0D5
-:107F9000A05C62C1F2EEFB090C089CE0A05A0AE06A
-:107FA000A06B28BFDBE068999BEA189999E0699972
-:107FB00099EA193FC9E0A0005A25001302F1EC56D6
+:107F7000FCEEF609006F640C9CE0A05CFB18936AB1
+:107F80001C089BE0A05A52069BE0A05B13300BE05C
+:107F9000A05C9EC1F2EEFB090C089CE0A05A46E0F2
+:107FA000A06B64BFDBE068999BEA189999E0699936
+:107FB00099EA193FC9E0A00051E0001302F1EC5624
:107FC00004008F00008001009000010000B77101E3
-:107FD0000D02F1EC560300000001006B3BC063EEA4
+:107FD0000D02F1EC560300000001006B77C063EE68
:107FE000FC08F42FFCEF4C08F46F6CEF4C090C5CB0
:107FF00036EF460900EEF609046F740C9CE0A05CB5
-:108000008F18936A2C089BE0A059E6069BE0A05AC3
-:10801000A7300BE0A05C32C1F2EEFB0910089CE037
-:10802000A059DAE0A06AF8BFDBE068999BEA1899EA
-:1080300099E0699999EA193FC9E0A06B0BC063EE1A
+:10800000CB18936A2C089BE0A05A22069BE0A05A4A
+:10801000E3300BE0A05C6EC1F2EEFB0910089CE0BF
+:10802000A05A16E0A06B34BFDBE068999BEA189970
+:1080300099E0699999EA193FC9E0A06B47C063EEDE
:10804000FC08F82FFCEF4C08F86F7CEF4C09105C33
-:1080500036EF460904E3CF80F8D70380014940801A
-:108060000145808001489C800143F880016638808A
-:10807000016674EBCD4080E0A0039AE0A0040630D6
+:1080500036EF460904E3CF80F8D703800149B880A2
+:108060000145F88001491480014470800166B080A8
+:108070000166ECEBCD4080E0A0039AE0A00406305E
:1080800007C0E8F3D7C008300A300B300CE0A00777
:1080900077F7D7C008305CE0A007802FF75C57590E
-:1080A000E7CF15300CE06B48ECEA1B0000F76C01E1
+:1080A000E7CF15300CE06B4904EA1B0000F76C01C8
:1080B000ACF74C01B8F74C01BCF74C01C0F74C01D0
:1080C000C4300AF74A01C8F74A01CCF74A01D03058
-:1080D0005AF76A01B130AAF76A01B000A6E50013A9
+:1080D0005AF76A01B130AAF76A01B000E8B4001398
:1080E00002F1EC56040090000080010091000100B4
:1080F00000A3CC010D02F1EC56030000000100F7D3
:108100006C01ADF76C01AEF74C01B4F76A01B2F740
-:108110006C01AFE3CF8080E06B48ECEA1B0000F716
+:108110006C01AFE3CF8080E06B4904EA1B0000F7FD
:108120006C01AF5EFD0000D431409240A340B6E048
-:108130006748ECEA170000EF3C01AF581CC0313033
+:10813000674904EA170000EF3C01AF581CC031301A
:1081400005C0283055EF3401AC59E4C144F3D4C024
:10815000080C9A069B049CE0A00724F7D4C008F9F9
:10816000D5C008E0A0072CEF3C01AC2FFCEF6C0160
@@ -2078,28 +2078,28 @@
:1081D000BCEE5C4241C143EE7C4240EF4C01BCC06E
:1081E000F8EEFC01B82FFCEF4C01B8EEFC01B8EE44
:1081F0005C4241C053EE7C4240EF4C01B8E0A0002D
-:10820000590A001302F1EC560400910000800100AD
+:108200009BE9001302F1EC5604009100008001008C
:1082100092000100003607010D02F1EC5603000048
:10822000000100062D1893E0A005EE1894E0A003CD
-:1082300063EEFC01B8E0A06A853008FC194034E028
-:10824000A06985E0A06A531896EEF001C4009CE096
-:10825000A06A783008FC194034E0A06978E0A06A90
-:10826000461892EF3C01B020ACC04020ACC550C7CE
+:1082300063EEFC01B8E0A06AC13008FC194034E0EC
+:10824000A069C1E0A06A8F1896EEF001C4009CE01E
+:10825000A06AB43008FC194034E0A069B4E0A06A18
+:10826000821892EF3C01B020ACC04020ACC550C792
:1082700048E061999AEA113F19069C029BE0A05BD5
-:1082800021C102089C029BE0A05B1CC0B25835C013
+:108280005DC102089C029BE0A05B58C0B25835C09B
:1082900094314CEF6C01B0A190009CE0A00446C565
:1082A000C8EEFC01C42FFCEF4C01C4EEFC01C4EE8F
:1082B0005C4241C053EE7C4240EF4C01C45845C47F
:1082C000C5E0A002A5EEFC01B4581CC461E0460361
-:1082D000E9C433EEF40184301B089CE0A05AE6C0E8
-:1082E00032EE148000FC134220089C069BE0A05A4A
-:1082F000DDC0F2EEF40188301B089CE0A05AD6C025
-:1083000032EE148000089C069BE0A05ACFC2533086
+:1082D000E9C433EEF40184301B089CE0A05B22C0AB
+:1082E00032EE148000FC134220089C069BE0A05B49
+:1082F00019C0F2EEF40188301B089CE0A05B12C0AC
+:1083000032EE148000089C069BE0A05B0BC2533049
:108310000CEF4C01B4C218E061999AEA113F1906BA
-:108320009C029B008B09001302F1EC5604009200A2
+:108320009C029B00C1A0001302F1EC5604009200D5
:1083300000800100930001000089BC010D02F1ECF6
-:1083400056030000000100E0A05AC2C062089C026F
-:108350009BE0A05ABDC05330ACEF6C01B0C0F8EE4A
+:1083400056030000000100E0A05AFEC062089C0233
+:108350009BE0A05AF9C05330ACEF6C01B0C0F8EE0E
:10836000FC01C02FFCEF4C01C0EEFC01C0EE5C42F2
:1083700041C053EE7C4240EF4C01C03004EF640139
:10838000ADEF3C01B1202C5C5C585CF9BC0205FEF1
@@ -2111,10 +2111,10 @@
:1083E000B0C67D581CC301E04603E9C0825806C0F0
:1083F00060EF3C01AEEF6C01ADC268E04203E9C042
:10840000325802CF71EEF50184301B0A9CE0A05A6D
-:108410005FC032EE158000FC1342200A9C069BE0F0
-:10842000A05A62C0F2EEF50188301B0A9CE0A05A07
-:108430004FC032EE1580000A9C069BE0A05A54CD36
-:1084400093EF4401B4EEFC00CF80001302F1EC5630
+:108410009BC032EE158000FC1342200A9C069BE0B4
+:10842000A05A9EC0F2EEF50188301B0A9CE0A05ACB
+:108430008BC032EE1580000A9C069BE0A05A90CDBE
+:1084400093EF4401B4EEFC0089A8001302F1EC564E
:10845000040093000080010094000100009D94013D
:108460000D02F1EC5603000000010001B4580CC1EC
:1084700091E0460191C0825806C060EF3C01AEEF2A
@@ -2129,15 +2129,15 @@
:10850000B4302CEF6C01B1EF4401BCCCF8EF440166
:10851000B8EF3C01B058ACC4B1EEFC01C458ACE0BB
:108520008300C5300BE0A002D5EF3C01AEE0A00512
-:108530002BEF4C01B4EEF601D4301B0C9CE0A0599B
-:10854000D90C9CC032EE1C80003015EA153FC00AE1
-:108550009BE0A059CFE08300AAEEF301D8301B06C0
-:108560009CE0A059C7069CC032EE1C009A6500131F
+:108530002BEF4C01B4EEF601D4301B0C9CE0A05A9A
+:10854000150C9CC032EE1C80003015EA153FC00AA5
+:108550009BE0A05A0BE08300AAEEF301D8301B0683
+:108560009CE0A05A03069CC032EE1C001CFD0013C8
:1085700002F1EC5604009400008001009500010017
:1085800000F72C010D02F1EC560300000001008001
-:10859000000A9BE0A059C0E083009B301B069CE0D2
-:1085A000A059BAC032EE138000301B0C9CE0A059D9
-:1085B000B3C032EE168000069C0C9BE0A059B8E0D8
+:10859000000A9BE0A059FCE083009B301B069CE096
+:1085A000A059F6C032EE138000301B0C9CE0A0599D
+:1085B000EFC032EE168000069C0C9BE0A059F4E060
:1085C000820087305CEF6C01B1CB9DEF4401C0C7E6
:1085D000F8EF4401C4C7C8EEFC01B8586CCA42EEBB
:1085E000FC01C0581CC0A1EEFC01C4E0A002D4EF05
@@ -2146,12 +2146,12 @@
:10861000F8EF3C01B0594CC5B1EEFC01B4581CC395
:1086200001E04603E9C0825806C060EF3C01AEEFAE
:108630006C01ADC268E04203E9C0325802CF71EE6E
-:10864000F50184301B0A9CE0A05966C032EE15800B
-:1086500000FC1342200A9C069BE0A05969C0F2EE80
-:10866000F50188301B0A9CE0A05956C032EE1580F7
-:10867000000A9C069BE0A0595BCD93EF4401B4EE49
+:10864000F50184301B0A9CE0A059A2C032EE1580CF
+:1086500000FC1342200A9C069BE0A059A5C0F2EE44
+:10866000F50188301B0A9CE0A05992C032EE1580BB
+:10867000000A9C069BE0A05997CD93EF4401B4EE0D
:10868000FC01B4580CC151E0460191C0825806006B
-:108690003269001302F1EC560400950000800100DD
+:10869000C658001302F1EC5604009500008001005A
:1086A000960001000062E7010D02F1EC56030000A4
:1086B000000100C060EF3C01AEEF6C01ADC0B8E05E
:1086C000420191C0325802CF71EF3C01B2C69CEF1B
@@ -2159,181 +2159,181 @@
:1086E000AEEF4401B8EF4401BCEF4401C4EF4401D4
:1086F000C0EF3C01AD581CC031301CC0A8582CC084
:1087000031302CC068583CC031303CC028300C5C43
-:108710005CD8328001671C800166C6EBCD40E0303A
-:108720000B58ACC0C1E06A48ECEA1A0000F4FC0146
+:108710005CD832800167948001673EEBCD40E03049
+:108720000B58ACC0C1E06A4904EA1A0000F4FC012D
:10873000C8F4F601CCF4F501D0C128594CC0C1E011
-:108740006A48ECEA1A0000F4FC01DCF4F601E0F4FB
+:108740006A4904EA1A0000F4FC01DCF4F601E0F4E2
:10875000F501E4C058300C30063005303B5C5B5806
:108760003BC194E067999AEA173E99E0A0048A0E0B
-:108770009BE0A058EFC1120C9CE0A004830E9BE08C
-:10878000A058E8C0A20A9CE0A0047C0E9BE0A05880
-:10879000E1C032300CC028301C5C5CE3CD80E0EBE3
-:1087A000CD40F8300B58ACC0D1E06C48ECEA1C006E
-:1087B00000F8F500A0F2001302F1EC560400960058
+:108770009BE0A0592BC1120C9CE0A004830E9BE04F
+:10878000A05924C0A20A9CE0A0047C0E9BE0A05942
+:108790001DC032300CC028301C5C5CE3CD80E0EBA7
+:1087A000CD40F8300B58ACC0D1E06C4904EA1C0055
+:1087B00000F8F50065FC001302F1EC560400960089
:1087C000008001009700010000DD5C010D02F1EC6A
:1087D0005603000000010001C8F8F401CCF8F301D1
-:1087E000D03006C168594CC101E06C48ECEA1C006D
+:1087E000D03006C168594CC101E06C4904EA1C0054
:1087F00000F8F501DCF8F401E0F8F301E4E0669933
:108800009AEA16BE99C058300530043003303B5CFC
-:108810005B583BC4640C9C0A9BE0A058ADC112E0BD
-:1088200067CCCCEA17BDCC089C0E9BE0A058A4C036
-:1088300082069C0E9BE0A0589FC032302BC3180CC0
-:108840009C0A9BE0A05898C112E067CCCDEA173D86
-:10885000CC089C0E9BE0A05883C083069C0E9BE036
-:10886000A0587EC033301BC1C80C9C0A9BE0A058A6
-:1088700083C092E06BCCCDEA1B3ECC069CE0A058B6
-:108880006FCF220C9C0A9BE0A05876C092E06BCC84
-:10889000CCEA1BBECC069CE0A0586ECD03303B1644
-:1088A0009C5C5CE3CD80F8E06C48ECEA1C00003096
+:108810005B583BC4640C9C0A9BE0A058E9C112E081
+:1088200067CCCCEA17BDCC089C0E9BE0A058E0C0FA
+:1088300082069C0E9BE0A058DBC032302BC3180C84
+:108840009C0A9BE0A058D4C112E067CCCDEA173D4A
+:10885000CC089C0E9BE0A058BFC083069C0E9BE0FA
+:10886000A058BAC033301BC1C80C9C0A9BE0A0586A
+:10887000BFC092E06BCCCDEA1B3ECC069CE0A0587A
+:10888000ABCF220C9C0A9BE0A058B2C092E06BCC0C
+:10889000CCEA1BBECC069CE0A058AACD03303B1608
+:1088A0009C5C5CE3CD80F8E06C4904EA1C0000307D
:1088B0000BF94B0168F94B016CF94B01705EFDEB54
-:1088C000CD40FEE06748ECEA170000EEFC01743092
-:1088D0000BE0A0971DC19100055A001302F1EC5660
+:1088C000CD40FEE0674904EA170000EEFC01743079
+:1088D0000BE0A097E3C191004168001302F1EC5650
:1088E000040097000080010098000100004AB701D1
:1088F0000D02F1EC56030000000100EEFC0178309F
-:108900000BE0A09717C131EEFC017C300BE0A09783
-:1089100011C0D1EEFC0168EF4C0174EEFC016CEF6C
+:108900000BE0A097DDC131EEFC017C300BE0A097BD
+:10891000D7C0D1EEFC0168EF4C0174EEFC016CEFA6
:108920004C0178EEFC0170EF4C017CEEF40168EE36
-:10893000FB0174089CE0A055DFCF3C1892EEF501D6
-:108940006CEEFB01780A9CE0A055D6CEAC1893EEF5
-:10895000F60170EEFB017C0C9CE0A055CDCE1C18FE
-:1089600091EEFC0180049BE0A05634CDACEF4C01AD
-:1089700080EEFC0184069BE0A0562CCD2CEF4C0130
-:1089800084EEFC0188029BE0A05624CCACEF4C01A5
+:10893000FB0174089CE0A0561BCF3C1892EEF50199
+:108940006CEEFB01780A9CE0A05612CEAC1893EEB8
+:10895000F60170EEFB017C0C9CE0A05609CE1C18C1
+:1089600091EEFC0180049BE0A05670CDACEF4C0171
+:1089700080EEFC0184069BE0A05668CD2CEF4C01F4
+:1089800084EEFC0188029BE0A05660CCACEF4C0169
:1089900088EF440174EF450178EF46017CE3CF8016
-:1089A000FED7038001C634E06C48ECEA1C000030BE
+:1089A000FED7038001C7C0E06C4904EA1C00003018
:1089B0000BF94B0180F94B0184F94B0188F94B010C
:1089C00074F94B0178F94B017C5EFDEBCD40FB2047
:1089D0005D31DBFACCFFF8E0A00352402CBFDCE0B5
-:1089E00066D70BEA163D230C9BE0A057D7C0323068
-:1089F0000C502C4037301B0E9CE0A000DDF500131E
+:1089E00066D70BEA163D230C9BE0A05813C032302B
+:1089F0000C502C4037301B0E9CE0A0000FFE0013E3
:108A000002F1EC560400980000800100990001007A
:108A1000000A0C010D02F1EC5603000000010057A2
-:108A2000C3C032EE1780000E9C0C9BE0A057C8C05C
-:108A300032300C503C4047301B0E9CE0A057B4C075
-:108A400032EE1780000E9C0C9BE0A057B9C032306C
+:108A2000FFC032EE1780000E9C0C9BE0A05804C0E3
+:108A300032300C503C4047301B0E9CE0A057F0C039
+:108A400032EE1780000E9C0C9BE0A057F5C0323030
:108A50000C504CE060C1F8EA101A63E061A5DCEA52
:108A600011404CE0654000EA15408FFC174034E0AF
-:108A70006348ECEA130000402CE0A0666F30080E5B
-:108A800099E0A065E230080A99E0A0661B00980210
-:108A900099E0A065DABB1BE6FC0168E0A0665EBB5E
-:108AA00008E0A064BDE0A05735E74C0168C4BCE70E
-:108AB0004C0168403CE0A0665130080E99E0A0658A
-:108AC000C430080A99E0A065FD00980299E0A0650D
-:108AD000BCBB1BE6FC016CE0A06640BB08E0A064E8
-:108AE0009FE0A05717E74C016CC2DCE74C016C40DB
-:108AF0004CE0A0663330080E99E0A065A630080A65
-:108B000099E0A065DF00980299E0A0659E14961692
-:108B100097E6FC0170E0A066210C980E99E0A00099
-:108B2000BBBC001302F1EC56040099000080010068
+:108A7000634904EA130000402CE0A066AB30080E06
+:108A800099E0A0661E30080A99E0A0665700980297
+:108A900099E0A06616BB1BE6FC0168E0A0669ABBE5
+:108AA00008E0A064F9E0A05771E74C0168C4BCE796
+:108AB0004C0168403CE0A0668D30080E99E0A0664D
+:108AC0000030080A99E0A0663900980299E0A06594
+:108AD000F8BB1BE6FC016CE0A0667CBB08E0A06470
+:108AE000DBE0A05753E74C016CC2DCE74C016C4063
+:108AF0004CE0A0666F30080E99E0A065E230080AED
+:108B000099E0A0661B00980299E0A065DA14961619
+:108B100097E6FC0170E0A0665D0C980E99E0A0005D
+:108B20005BFC001302F1EC56040099000080010088
:108B30009A000100009FC7010D02F1EC56030000EE
-:108B4000000100647FE0A056F7E74C0170C0DCE74D
-:108B50004C01702FBDE3CF80FBD703800165A0805F
-:108B6000016526800162FCEBCD40801897301BEA3E
-:108B70001B4334E0A0572AC083FC1CC3B40E9BE007
-:108B8000A0554C1897C0D8FC1BC3340E9CE0A057CE
-:108B900029C072FC1C43B40E9BE0A0553F18970EF1
+:108B400000010064BBE0A05733E74C0170C0DCE7D4
+:108B50004C01702FBDE3CF80FBD7038001661880E6
+:108B600001659E80016374EBCD40801897301BEA4D
+:108B70001B4334E0A05766C083FC1CC3B40E9BE0CB
+:108B8000A055881897C0D8FC1BC3340E9CE0A05792
+:108B900065C072FC1C43B40E9BE0A0557B18970E79
:108BA0009CE3CD80800000EBCD40FC169230073076
:108BB0000459FCC03331E6C0385C5C18963005C1FE
-:108BC000985812C1B1EA0C1118E06348ECEA13009E
-:108BD000005C5CE60C002367EC0E9BE0A0551E18C1
-:108BE00097E6FC00F0089BE0A0551818942FF55C60
+:108BC000985812C1B1EA0C1118E0634904EA130085
+:108BD000005C5CE60C002367EC0E9BE0A0555A1885
+:108BE00097E6FC00F0089BE0A0555418942FF55C24
:108BF000550C35C0645802CE51EA0C111DCE6B5C89
-:108C0000560C9CE0A0572A1896E06348ECEA130043
-:108C1000000E9C0C9BE0A055CBE74C01D4089C0CAB
-:108C20009BE0A055C5E74C01D8E3CF80FC0000E0F5
-:108C30006C48ECEA1C0000300BF94B01DCF94B01ED
-:108C4000E0F94B000C20001302F1EC5604009A00EE
+:108C0000560C9CE0A057661896E0634904EA1300EE
+:108C1000000E9C0C9BE0A05607E74C01D4089C0C6E
+:108C20009BE0A05601E74C01D8E3CF80FC0000E0B8
+:108C30006C4904EA1C0000300BF94B01DCF94B01D4
+:108C4000E0F94B00DB41001302F1EC5604009A00FE
:108C5000008001009B00010000207C010D02F1EC6E
:108C60005603000000010001E45EFDD431202D30E8
:108C70000B500B3000300159FCC04331DC501CC09C
:108C800058FE3CFF015C5C501C3007C148400C683A
-:108C90000BE0A054D5500C0A066DEC009BE0A054EC
-:108CA000CF1890ECFC00F0029BE0A054C918912F63
-:108CB000F75C77E06648ECEA160000401C1837C203
+:108C90000BE0A05511500C0A066DEC009BE0A055AE
+:108CA0000B1890ECFC00F0029BE0A0550518912FEA
+:108CB000F75C77E0664904EA160000401C1837C2EA
:108CC000C4ED3501AC59E5C0640E15FE35FF015CFD
:108CD00055C048EE05111D5C55A3650C940A046847
:108CE00003EC05000C204C7802069C049BE0A05489
-:108CF00039E06B999AEA1B3E99E0A05679CC833013
-:108D00001B069CE0A05674CC33300B049CE0A056AC
-:108D10007BCBE258B7CBC55C770E9CE0A056B01871
-:108D200097400C0E9BE0A05555ED4C01DC009C0ECD
-:108D30009BE0A0554FED4C01E0029C0E9BE0A0553E
-:108D400049ED4C01E42FEDD83AD70380014914D402
+:108CF00075E06B999AEA1B3E99E0A056B5CC83309B
+:108D00001B069CE0A056B0CC33300B049CE0A05670
+:108D1000B7CBE258B7CBC55C770E9CE0A056EC18F9
+:108D200097400C0E9BE0A05591ED4C01DC009C0E91
+:108D30009BE0A0558BED4C01E0029C0E9BE0A05502
+:108D400085ED4C01E42FEDD83AD7038001498CD44E
:108D500031208DE06C37BDEA1C3586506C505C507C
-:108D60004C300C503C502C0020A7001302F1EC5664
+:108D60004C300C503C502C00DF44001302F1EC5608
:108D700004009B00008001009C00010000345401AD
-:108D80000D02F1EC560300000001003000E06748DE
-:108D9000ECEA170000EF3C01AC59ECC034501CC0A9
+:108D80000D02F1EC560300000001003000E06749DD
+:108D900004EA170000EF3C01AC59ECC034501CC091
:108DA0003831EC501CEEFC01B8401B183BC092401F
:108DB0001CF80B161F160CA15C5C5C507CC048A113
:108DC0009C5C5C507C300CBA8CC158EE1C80000A54
-:108DD0009BE0A0561FC0C3009C0C9BE0A05442180F
-:108DE00090404BFC1C3F80E0A0543C504C1B8B2F10
+:108DD0009BE0A0565BC0C3009C0C9BE0A0547E1897
+:108DE00090404BFC1C3F80E0A05478504C1B8B2FD4
:108DF000FBBA8B1B8C407B163CE08400A4401C1B00
:108E0000861826FE36FF015C56ECC1FF015C51A3BB
:108E100061EE01000B7604A366EE0600056A0C768F
-:108E20000BE0A053B1301BE0A055F4C0736A0C08EE
-:108E30009BE0A053A91894C0686A0B089CE0A0535B
-:108E4000A318940E0163E30E066DEC63EBE0A053F0
-:108E50009B301BE0A055DEC0736DEC069BE0A05379
-:108E6000931893C0686DEB069CE0A0538D1893E2B5
-:108E7000F200F0ECFC00F0E2FB00F0E0A0538430E4
-:108E80001BE0A055C7C083ECFC00F00093F2001378
+:108E20000BE0A053ED301BE0A05630C0736A0C0875
+:108E30009BE0A053E51894C0686A0B089CE0A0531F
+:108E4000DF18940E0163E30E066DEC63EBE0A053B4
+:108E5000D7301BE0A0561AC0736DEC069BE0A05300
+:108E6000CF1893C0686DEB069CE0A053C91893E23D
+:108E7000F200F0ECFC00F0E2FB00F0E0A053C030A8
+:108E80001BE0A05603C083ECFC00F000D3C100132C
:108E900002F1EC5604009C00008001009D000100DE
:108EA000005EEC010D02F1EC56030000000100042D
-:108EB0009BE0A0537B1892C078ECFB00F0049CE090
-:108EC000A0537418923011EA1140A0089C029BE054
-:108ED000A055B2C0B3069C029BE0A055ADC0630490
-:108EE0009C029BE0A055A8C3F26A04301B089CE0DA
-:108EF000A055A2089CC032EE1C8000E065CCCDEAF3
-:108F0000153D4C0A9BE0A05597C0C3403C089BE030
-:108F1000A053BA503C406BFC1C3F80E0A053B450BF
-:108F20006C6DE4301B089CE0A05586089CC032EEB6
-:108F30001C80000A9BE0A0557FC0C3402C089BE02A
-:108F4000A053A2502C405BFC1C3F80E0A0539C50DF
-:108F50005CECF600F0301B0C9CE0A0556D0C9CFE08
-:108F600093FF48C48B403C406BE0A05457EF4C014A
-:108F7000C8402C405BE0A05451EF4C01CC404B006A
-:108F80009CE0A0544BEF4C01D02F8DD83A0000EB61
+:108EB0009BE0A053B71892C078ECFB00F0049CE054
+:108EC000A053B018923011EA1140A0089C029BE018
+:108ED000A055EEC0B3069C029BE0A055E9C0630418
+:108EE0009C029BE0A055E4C3F26A04301B089CE09E
+:108EF000A055DE089CC032EE1C8000E065CCCDEAB7
+:108F0000153D4C0A9BE0A055D3C0C3403C089BE0F4
+:108F1000A053F6503C406BFC1C3F80E0A053F05047
+:108F20006C6DE4301B089CE0A055C2089CC032EE7A
+:108F30001C80000A9BE0A055BBC0C3402C089BE0EE
+:108F4000A053DE502C405BFC1C3F80E0A053D85067
+:108F50005CECF600F0301B0C9CE0A055A90C9CFECC
+:108F600093FF48C48B403C406BE0A05493EF4C010E
+:108F7000C8402C405BE0A0548DEF4C01CC404B002E
+:108F80009CE0A05487EF4C01D02F8DD83A0000EB25
:108F9000CD40F830073006C2E8EC0C111D5C5CA334
-:108FA0006CE06A48ECEA1A0000F40C0009F2FB00DD
-:108FB000F407001302F1EC5604009D00008001004C
+:108FA0006CE06A4904EA1A0000F40C0009F2FB00C4
+:108FB0000415001302F1EC5604009D00008001002E
:108FC0009E00010000CB27010D02F1EC56030000CA
:108FD00000010000F073E3F40C0305169CE0A053BD
-:108FE000BB1894069C069BE0A053B618930A9C0AF3
-:108FF0009BE0A053B1069BE0A05358089BE0A05310
-:1090000055E0A06405E0A088B5E0A054DD0E9BE02B
-:10901000A0534C18972FF65C565866CD15FC1B4094
-:10902000C00E9CE0A0540CE3CD80F8EBCD40FC30AA
+:108FE000F71894069C069BE0A053F218930A9C0A7B
+:108FF0009BE0A053ED069BE0A05394089BE0A05398
+:1090000091E0A06441E0A08999E0A055190E9BE091
+:10901000A0538818972FF65C565866CD15FC1B4058
+:10902000C00E9CE0A05448E3CD80F8EBCD40FC306E
:109030000730063004C388E80C111D5C5CA36CE0AB
-:109040006A48ECEA1A0000F40C0009F2FB00F07325
-:10905000E3F40C0305169CE0A0537E1892069C06D0
-:109060009BE0A0537918930A9C0A9BE0A0537406D6
-:109070009BE0A0531B049BE0A05318E0A063C8E052
-:10908000A08878E0A054A018950E9C0A9BE0A053FD
-:109090000D18970A9C0A9BE0A0535E0C9BE0A0531E
-:1090A0000518962FF45C545864CC75FC1B40C00E18
-:1090B0009CE0A053C5189BE0A0534E1897FC1B40A2
-:1090C000C00C9CE0A053BC0E9BE0A05281E3CD807D
-:1090D000FCD703009197001302F1EC5604009E00A8
+:109040006A4904EA1A0000F40C0009F2FB00F0730C
+:10905000E3F40C0305169CE0A053BA1892069C0694
+:109060009BE0A053B518930A9C0A9BE0A053B0065E
+:109070009BE0A05357049BE0A05354E0A06404E09D
+:10908000A0895CE0A054DC18950E9C0A9BE0A053DC
+:109090004918970A9C0A9BE0A0539A0C9BE0A053A6
+:1090A0004118962FF45C545864CC75FC1B40C00EDC
+:1090B0009CE0A05401189BE0A0538A1897FC1B4029
+:1090C000C00C9CE0A053F80E9BE0A052BDE3CD8005
+:1090D000FCD703002E73001302F1EC5604009E002F
:1090E000008001009F00010000749C010D02F1EC62
-:1090F00056030000000100800166388001AF9C80AB
-:109100000147F0800144D480014668800143F8EBB8
+:1090F00056030000000100800166B08001B1648069
+:109100000148688001454C800146E080014470EBD5
:10911000CD40E03016582CC1613017EA173F00E00F
-:109120006548ECEA150000EAFC01D40E9BE0A0546F
-:10913000A7C1D3EAFC01D80E9BE0A054A1C17330B3
-:1091400006C158581CC131FC17BF00E06548ECEA65
-:10915000150000EAFC01D40E9BE0A0549DC072EA09
-:10916000FC01D80E9BE0A05497CEB30C9CE3CD80BD
-:10917000E0D70380014884A36BE06A48ECEA1A0058
+:10912000654904EA150000EAFC01D40E9BE0A05456
+:10913000E3C1D3EAFC01D80E9BE0A054DDC173303B
+:1091400006C158581CC131FC17BF00E0654904EA4C
+:10915000150000EAFC01D40E9BE0A054D9C072EACD
+:10916000FC01D80E9BE0A054D3CEB30C9CE3CD8081
+:10917000E0D703800148FCA36BE06A4904EA1A00C7
:1091800000F40B03099909140B77EA991AF6FB000E
-:10919000F0992B5EFD0000A369E06848ECEA180036
+:10919000F0992B5EFD0000A369E0684904EA18001D
:1091A00000F009090C1009F34B0078F34A00F05E57
-:1091B000FD0000E06A48ECEA1A0000140BF76C01AD
-:1091C0008C5EFDEBCD40801897300BE0A05464C05E
-:1091D00072FC1CBF800E9BE0A052D018970E9CE33F
-:1091E000CD80808001489C80014580EBCD4080206F
-:1091F0001DE06CE8F6EA1C00EEA4001302F1EC5648
+:1091B000FD0000E06A4904EA1A0000140BF76C0194
+:1091C0008C5EFDEBCD40801897300BE0A054A0C022
+:1091D00072FC1CBF800E9BE0A0530C18970E9CE302
+:1091E000CD808080014914800145F8EBCD4080207E
+:1091F0001DE06CEABFEA1C008182001302F1EC560C
:1092000004009F0000800100A000010000EBF701B6
:109210000D02F1EC560300000001008001198BBA29
:10922000AB1A9B2FFC198AB68A199AB69AE0670086
@@ -2346,12 +2346,12 @@
:10929000D7C008301CFEB0E863CD6031BCBA8C305A
:1092A0008CBA9C30291A9AF7D7C008301CFEB0E857
:1092B00057CCA031ACBA8C31BCBA9C30291A9AF781
-:1092C000D7C008301CFEB0E84BCBE0E06C0E59EA8A
+:1092C000D7C008301CFEB0E84BCBE0E06C0E71EA72
:1092D0001C0000198BA1BBB88B301C2FFDE3CD8087
-:1092E000800000EBCD40C0201DE06CE8F9EA1C8056
+:1092E000800000EBCD40C0201DE06CEABCEA1C8091
:1092F00001198BBAAB1A9B2FFC198AB68A199AB638
-:109300009AE06700D0E0660E59EA1600000D8CED79
-:10931000BC0000C0F336BCBA8C340C00756100137D
+:109300009AE06700D0E0660E71EA1600000D8CED61
+:10931000BC0000C0F336BCBA8C340C00AD8A00131C
:1093200002F1EC560400A00000800100A100010041
:10933000005746010D02F1EC56030000000100BA8F
:109340009C30291A9AF7D7C008301CFEB0E81AC022
@@ -2359,22 +2359,22 @@
:1093600008301CFEB0E83ACF5036CCBA8C1BACE8C3
:109370001C0007BA9C30291A9AF7D7C008301CFE87
:10938000B0E800CE700D8CA1DCAC8C301C2FFDE35E
-:10939000CD80C0EBCD4080201DE06CE8FCEA1C8055
+:10939000CD80C0EBCD4080201DE06CEAD4EA1C807B
:1093A00001198BBA8BFACBFFFF2FFC198AB68A19E9
:1093B0009AB69AE06700D030181A9936CAF7D7C023
:1093C00008301CFEB0E80AC031300CC11836CCBAE7
:1093D0009C1B8CE81C0007BAAC3029FACAFFFFF7C7
:1093E000D7C008301CFEB0E7CDCF00301C2FFDE306
-:1093F000CD8080EBCD40C0202D1897E066E698EA3E
+:1093F000CD8080EBCD40C0202D1897E066E854EA80
:10940000168001AD0ABB1B30681A99343AE06B0034
:10941000D0301CFEB0E7E2C0712F860C9CFEB0E796
:109420005F300CC0E81B9CAE8C1B8CAE9C1BBCAE92
:10943000AC1BACAEBC1BDCAECC1BCCAEDC301C0021
-:1094400032C0001302F1EC560400A10000800100BC
+:109440008189001302F1EC560400A10000800100A4
:10945000A200010000C28D010D02F1EC56030000D4
:109460000001002FEDE3CD80C00000198B199CF99D
:10947000EB108B169C5C8C5EFC0000EBCD40C0E0DA
-:109480006700D0E0661D58EA16000030280C9936B7
+:109480006700D0E0661D70EA16000030280C99369F
:10949000BAF7D7C008301CFEB0E7B2C031E3CF80C6
:1094A000C030180C992FC931AAF7D7C008301CFE5C
:1094B000B0E7A6CF5030180C992FB931BAF7D7C002
@@ -2384,11 +2384,11 @@
:1094F0007030182FE60C99319AF7D7C008301CFE4F
:10950000B0E77ECCD0E3CF90C00000EBCD40C020D0
:109510001D1A9C300BB88BB89B36BCBA8CE0671D0B
-:1095200058EA1700000F8CBA9CE06600D030291A68
+:1095200070EA1700000F8CBA9CE06600D030291A50
:109530009AF7D6C008301CFEB0E736C031300CC4F4
:10954000A836CCBA8C0F9CBA9C30291A9AF7D6C090
:1095500008301CFEB0E728CF3031ACBA8C0FCCBA43
-:109560009C302900140D001302F1EC560400A200F7
+:109560009C302900FB93001302F1EC560400A2008A
:1095700000800100A3000100007D36010D02F1EC26
:10958000560300000001001A9AF7D6C008301CFEEE
:10959000B0E71CCE7031BCBA8C0FDCBA9C30291AF3
@@ -2399,14 +2399,14 @@
:1095E0008C0FECBA9C30291A9AF7D6C008301CFEB2
:1095F000B0E6ECCB70301C2FFDE3CD80C00000EB5B
:10960000CD40E0201D1A9C300BB88BB89BE0670062
-:10961000D0E0661D58EA1600000D8CEDBC0006C0B7
+:10961000D0E0661D70EA1600000D8CEDBC0006C09F
:10962000F236BCBA8C300CBA9C30291A9AF7D7C0E3
:1096300008301CFEB0E6CAC031300CC5E836CCBAE2
:109640008C0D9CE01CFFF8BA9C30291A9AF7D7C001
:1096500008301CFEB0E6BACF1036ACBA8C3006BA71
:109660009630291A9AF7D7C008301CFEB0E6AECE65
:10967000503005C0E80A9C2EDCBA8CBA9630291A04
-:109680009AF7D7C008301C008A71001302F1EC561B
+:109680009AF7D7C008301C00A87D001302F1EC56F1
:109690000400A30000800100A400010000691E0175
:1096A0000D02F1EC56030000000100FEB0E6A0CD73
:1096B000702FF55865CF25319CBA8CBA9630291A8F
@@ -2416,7 +2416,7 @@
:1096F0008CBA9C30291A9AF7D7C008301CFEB0E605
:1097000077CAE0338CBA8CBA9630291A9AF7D7C048
:1097100008301CFEB0E66CCA30301C2FFDE3CD8053
-:10972000E00000D5B1E02D0E2C1892E06BC900EAE4
+:10972000E00000D5B1E02D0E2C1892E06BCA9CEA47
:109730001B80011A9C178AB88A179AB89AFACAFF2E
:10974000F8169C2FCC3148190914A92048CFD130E4
:1097500003FACAF684169C2E8CE06E04B0B909B5E3
@@ -2424,7 +2424,7 @@
:109770006E04B0B909B528208ECFD1FACCFFE4FE33
:109780003BF688E06A04B0B709B928208ACFD13007
:1097900000FEB0E4C7501CC0C8300CBA9C30291A77
-:1097A0009AF7D4C008301CFEB0E622006DE8001322
+:1097A0009AF7D4C008301CFEB0E6220051D800134E
:1097B00002F1EC560400A40000800100A5000100A5
:1097C0000003A6010D02F1EC56030000000100C1E8
:1097D000402FF05830E084008E36BCBA8C009C2FAD
@@ -2442,11 +2442,11 @@
:10989000B0E734323CBA8C300CBA9C30291A9AF7B3
:1098A000D4C008301CFEB0E5B5CA703028FAC9FF34
:1098B000F8372AF7D4C008301CFEB0E5D7C9D0FA73
-:1098C000CCFFF8C0AEE0A051A5E0A0601FE06800AA
-:1098D000F09C001302F1EC560400A500008001008A
+:1098C000CCFFF8C0AEE0A051E1E0A0605BE0680032
+:1098D0006101001302F1EC560400A50000800100B4
:1098E000A600010000966D010D02F1EC5603000088
:1098F000000100212DEA18F41FE069566CEA193FB7
-:10990000C5E0A05F8CE0A0605E1895248C581CCC4C
+:10990000C5E0A05FC8E0A0609A1895248C581CCCD4
:10991000053006CBBB5803C0300697C0283017303F
:109920000B300C850C851C852CC198F60A1501FAA4
:10993000C9F68414099209640812088508FAC9FB5B
@@ -2461,11 +2461,11 @@
:1099C000302FCC7808F20A03489908FACCFFE4F863
:1099D0000B040B642A162A642C181BFAFC0E302F79
:1099E0008C7809F40B034999092FF60636CD05FA50
-:1099F000FC0E3400A01B001302F1EC560400A6007C
+:1099F000FC0E340086A6001302F1EC560400A6000B
:109A000000800100A70001000029D6010D02F1EC41
:109A1000560300000001009903301CFE3DF1D4D92B
-:109A2000B2D70380014940800166388001652680F5
-:109A30000166CEEBCD40C0201D1A9C300BB88BB810
+:109A2000B2D703800149B8800166B08001659E808D
+:109A3000016746EBCD40C0201D1A9C300BB88BB897
:109A40009BFEB0E3A5189736BCBA8C340CBA9CE0E8
:109A50006600D030291A9AF7D6C008301CFEB0E450
:109A6000FDC031300CC21836BCBA8C301CBA9C30E8
@@ -2473,13 +2473,13 @@
:109A80009CFEB0E65F36CCBA8C300CBA9C30291AFA
:109A90009AF7D6C008301CFEB0E4E0CE4031EB0EA1
:109AA0009CFEB0E64F301C2FFDE3CD80C00000D4FB
-:109AB00031204D18951697E06CE6B8EA1C80011A23
+:109AB00031204D18951697E06CE874EA1C80011A65
:109AC0009B198AB68A199AB69AFACBFFFC2FCCB9A1
:109AD00009B728190816A8FEB0E35A1890338CBAB3
:109AE0008C3006BA96E06200D030291A9AF7D2C0BC
:109AF00008301CFEB0E4B2C0313FFCCD98323CBA15
:109B00008CBA9630291A9AF7D2C008301CFEB0E4FD
-:109B1000A5CF4036ACBA8C004E88001302F1EC564B
+:109B1000A5CF4036ACBA8C00205C001302F1EC56A5
:109B20000400A70000800100A800010000BE3D0164
:109B30000D02F1EC56030000000100BA9630291A1C
:109B40009AF7D2C008301CFEB0E49ACE9036ACBA78
@@ -2511,12 +2511,12 @@
:109CE0000A8F1A6E2CF80C107DA37C332BF80B0C0A
:109CF0000A8F2A301C2FCDD832D70380006E748093
:109D000000742880007140D431207D18921694147C
-:109D10009730103006E065D728EA1580011A9C0AB2
+:109D10009730103006E065D8C4EA1580011A9C0A15
:109D20009B3039173A18CA2019CFD130381A9930D8
:109D30000AE06B00D0301CFEB0E3E0C0213FF03001
:109D40000CC088300AFAC9FFF0F20B090A2FFC5C3C
:109D50006C583CC1041A9B180B178AF80B150200AB
-:109D6000C3FE001302F1EC560400A90000800100BC
+:109D6000A40B001302F1EC560400A90000800100CE
:109D7000AA000100006B4D010D02F1EC560300003A
:109D8000000100F4091518CF00EA0A0F8AFAC9FF8A
:109D9000F0F20B090ACEEB3003C218E06CFD30EA9A
@@ -2533,8 +2533,8 @@
:109E4000C50A9CFE3CFBFCFEB0E2EC301CF80309AA
:109E50004C1846CC2B5C66C070FE35FBE40A9CFEB9
:109E6000B0E2E03FD0009C2F9DD832EBCD40E02007
-:109E7000FD1897E066DFA8EA168001FACCFFF00C27
-:109E80009BB70900BB35001302F1EC560400AA0091
+:109E7000FD1897E066E0F0EA168001FACCFFF00CDE
+:109E80009BB709005CEC001302F1EC560400AA0039
:109E900000800100AB00010000D4F6010D02F1ECDE
:109EA00056030000000100B928170818A8FACBFFD4
:109EB000FC0C9C2F4CB909B728190816A86C6C50DB
@@ -2594,8 +2594,8 @@
:10A2100000010050DB6E0B2FCB8F0B2FF6C1585077
:10A22000D5C0E840DAE069FFFFEA197FFF123AC0C3
:10A230006030A9F409034B230B50DB2FF60D8B3D47
-:10A240000A160A58AACEF3FB5C003C0D8BE06CE8C2
-:10A25000ACEA1C8001FEB0C8D7C0200D3CFB6C00EE
+:10A240000A160A58AACEF3FB5C003C0D8BE06CE9C1
+:10A25000FCEA1C8001E0A08DC3C0200D3CFB6C001B
:10A260003E5C5CE04C0068C0910D8BE04B0068C028
:10A2700051362CFB6C003EC0A8E04C006CC0810D38
:10A280008CE04C006CC041FB60003E2FF6FACCFF26
@@ -2607,10 +2607,10 @@
:10A2E0001AC270203AC0E0202AE0800099203AE0AB
:10A2F000800096C469FACCFFC0406BF80B0B04C415
:10A30000F96E0C780C504C6E0B2FCB8F0B40DA583B
-:10A310000AC057005337001302F1EC560400AE0098
+:10A310000AC057000CA5001302F1EC560400AE0071
:10A3200000800100AF000100008016010D02F1EC79
-:10A3300056030000000100E0A08C9E189BC09830DE
-:10A340000BE0A08C71C040404B182BC02840DB5064
+:10A3300056030000000100E0A08D6C189BC098300F
+:10A340000BE0A08D37C040404B182BC02840DB509D
:10A350007BC3B96E0C780A300BBB1B6E0C2FCC8FF5
:10A360000CBB0AE61B0000BB1BFACCFFC0504C37ED
:10A370008B240CC90DC299FB3C003E262CC28020C8
@@ -2625,7 +2625,7 @@
:10A400000A0B02C138FB1A003CEDBA0001C072FA17
:10A41000CCFFC0406AF80A0B01C088A19AC092FA2A
:10A42000CAFFC04069F4090B0C406A2FFA506AFA5F
-:10A43000CAFFC0406C180A00B542001302F1EC5686
+:10A43000CAFFC0406C180A00968C001302F1EC565B
:10A440000400AF0000800100B000010000907E0118
:10A450000D02F1EC56030000000100504A1A9CCD99
:10A460008DCC58FB3C003EE04C006CC0516E0A1590
@@ -2667,7 +2667,7 @@
:10A6A00000010003DBFE91FDB0330A40BB1A9CC1E0
:10A6B0006CFE90FDAAFB1C003CA39CFE92FD8E321A
:10A6C0000A069B1A9CC0BCFE91FD88FE9FFD9D80E2
-:10A6D000003FF08001C83C8001C7ECD4A118971658
+:10A6D00001C9C88001C9D88001C978D4A1189716CA
:10A6E000963005C0282FF50C35C094301AFACBFFF0
:10A6F000F90E9CE0A003B2CF70D8AADAAA0000D469
:10A7000031189016957853E04B006FC0313082C0FD
@@ -2677,10 +2677,10 @@
:10A74000065C27C0F160DC580CC0C15882C3B1E17F
:10A750001C003CA58CC37233B4330CE76C003BC3C4
:10A7600028E8C1000120140C9A0E9B0498E40914F7
-:10A770001FE0A088F92D085C58E048003AC045EA7F
+:10A770001FE0A089BF2D085C58E048003AC045EAB8
:10A78000CCFF5118080601A2880C9A0E9B0498E48D
-:10A7900009141FE0A088E814961697580A5C2BC08D
-:10A7A00040604C001F72001302F1EC560400B2002E
+:10A7900009141FE0A089AE14961697580A5C2BC0C6
+:10A7A00040604C006577001302F1EC560400B200E3
:10A7B00000800100B300010000AEB3010D02F1EC16
:10A7C00056030000000100023CCDE35882C0D1E1F5
:10A7D0001C003CA58CC092038CE04C0030C0502083
@@ -2689,16 +2689,16 @@
:10A80000CCE15C003CD83A580CC117E11C003CE29A
:10A810001C0014590CC0B160EA606C181A609C18D6
:10A820001AF40B01045814C0258194D83AD7038038
-:10A8300001C4C08001C4C0D4311496169718933057
+:10A8300001C64C8001C64CD431149616971893303B
:10A84000043005EA154024C158EDB30000C0920C55
-:10A850009A0E9B08980A99E0A058CB14961697A1D7
-:10A8600053089A0A9B08980A99E0A058C2149416B3
+:10A850009A0E9B08980A99E0A0590714961697A19A
+:10A8600053089A0A9B08980A99E0A058FE14941677
:10A87000955803CEB10C9A0E9BD832D43120DD18F6
:10A88000921693FAC6FFF4B90AFAEB00040695A5EE
:10A89000B536170E35C0C078DC580CC037306CC0E8
:10A8A00068C061E0450067C031301C85DC049B1A3C
-:10A8B0009CE0A085A5189A39F90609E06BE678EACC
-:10A8C0001B80013038582C009FC9001302F1EC5650
+:10A8B0009CE0A08689189A39F90609E06BE7B4EAAA
+:10A8C0001B80013038582C0078B3001302F1EC568D
:10A8D0000400B30000800100B400010000BA9B0135
:10A8E0000D02F1EC56030000000100C0E18578592B
:10A8F000A9F7BB02FC644A1498303C173910C920F0
@@ -2710,13 +2710,13 @@
:10A950000AC0513007300CBA0CC3B9FAC0FFF3304B
:10A960000830090E35E081009164D75807F7B70722
:10A97000FFF9B706215C87EEC1FFFFA504FAEA00E4
-:10A9800004E0A058F1C032EE158000FAE500049A08
+:10A9800004E0A0592DC032EE158000FAE500049ACB
:10A990000B204BBA0B300CFB6C000C2FF6C0282F91
-:10A9A000965811C2F5FAEA000430183009E0A058B0
-:10A9B000D9C28331CBFACCFFFCE0A07BDBFAEA0002
-:10A9C00004E0A058FC189520715811C0B5E0A059BA
-:10A9D0001014981699FAEA0004E0A056D3FAEB0096
-:10A9E000042F96307CC058F7D5C00400335F0013A5
+:10A9A000965811C2F5FAEA000430183009E0A059AF
+:10A9B00015C28331CBFACCFFFCE0A07CBFFAEA00E1
+:10A9C00004E0A05938189520715811C0B5E0A0597D
+:10A9D0004C14981699FAEA0004E0A0570FFAEB001D
+:10A9E000042F96307CC058F7D5C0040021B3001363
:10A9F00002F1EC560400B40000800100B500010033
:10AA000000D023010D02F1EC560300000001000C00
:10AA1000FBA5455815C035201CCF97201CCD3630DE
@@ -2733,17 +2733,17 @@
:10AAC000A0F60C0C0ABA0AF9DAB010F80C1107E07B
:10AAD00069B370EA198000581CC055FAEA00045D99
:10AAE00019C0D85C3C300A300BEA1B3FF05D1914EA
-:10AAF000981699FAEA0004E0A057DCFAEB00043655
+:10AAF000981699FAEA0004E0A05818FAEB00043618
:10AB0000610235C0419A062F66C028306664DC00B9
-:10AB100040C8001302F1EC560400B50000800100AB
+:10AB10001A3A001302F1EC560400B500008001005F
:10AB2000B60001000045E8010D02F1EC56030000FB
:10AB300000010018065946F9B60413330CFB6C00EB
:10AB40000CFAC7FFF35816C2B5FAEA0004E0A058A1
-:10AB50005618992F87308C30ABF20B0D0A1499F6EA
+:10AB50009218992F87308C30ABF20B0D0A1499F6AE
:10AB6000C8FFD00EF8201CCF812F8720865816CE24
-:10AB7000B5FAEA0004E0A05842E0A0586B14981619
-:10AB800099FAEA0004E0A056213008E069D784EA87
-:10AB9000194197E0A05763FAEB0004CD7B0E20FA31
+:10AB7000B5FAEA0004E0A0587EE0A058A7149816A1
+:10AB800099FAEA0004E0A0565D3008E069D784EA4B
+:10AB9000194197E0A0579FFAEB0004CD7B0E20FAF5
:10ABA000C6FFF3C06820109A0B201BBA0B2FF60DBE
:10ABB0008C083CCF900235C0419A072FF7C048E07F
:10ABC0004500655F0764DC18075C870E30E00717F7
@@ -2752,12 +2752,12 @@
:10ABF0001BEC0B0709F8091800CFA0E04C0039C086
:10AC000051F2CCFFFFEC0B0B0C580BC06720162F3A
:10AC1000F79A0B2FFBBA0B9A08F3D7B0100C9A06D1
-:10AC20009B049CC1AC2F3DD83AD7038001BF348030
-:10AC300001667800AC0D001302F1EC560400B6007A
+:10AC20009B049CC1AC2F3DD83AD7038001C0FC8067
+:10AC30000166F000C40A001302F1EC560400B600ED
:10AC400000800100B700010000FA53010D02F1EC91
-:10AC500056030000000100800166748001AC84800E
-:10AC60000166CE80016702800165A0800166C68012
-:10AC700001671C8001629480016526D431203D1853
+:10AC500056030000000100800166EC8001AE4C80CC
+:10AC60000167468001677A800166188001673E802F
+:10AC70000167948001630C8001659ED431203D18EA
:10AC80009316971496109C66D85819C0643019E032
:10AC900066434EEA168000A5BB330232EE366A14D4
:10ACA0003BC0B03674083BE08100995BCCE0850086
@@ -2771,7 +2771,7 @@
:10AD20009B667C180A149E5809C0500D3C201B1CC1
:10AD3000CCCFD1102987B9CC38F8091900C1D41269
:10AD40009B0E945809C0500D3A201B08CACFD166FB
-:10AD50007B120B877B182900D646001302F1EC56B4
+:10AD50007B120B877B182900A935001302F1EC56F2
:10AD60000400B70000800100B8000100006DB801C8
:10AD70000D02F1EC5603000000010087A95818C02D
:10AD800054E71C003CA58CC082664C667BF80B0B1C
@@ -2794,94 +2794,94 @@
:10AE9000002D03010D02F1EC5603000000010087B4
:10AEA0007B102987A9664B667616060CC7580CC01E
:10AEB0004632BB0CCBC04832DB0CCB5C3C3004C010
-:10AEC0008830ABE0A08782FA040B0A169C2FF45C52
+:10AEC0008830ABE0A08848FA040B0A169C2FF45C8B
:10AED0008C581CCF745824C064A5B7E0470065C0E7
:10AEE000210CC25804C0910CC2C09820141A9CF8BE
:10AEF00004070C2D0C0CCC5814CF94664B667C18B0
:10AF00000B16168786E71C003CE21C0014590CC087
:10AF1000F1666B667C180B66AC180B668C180B66BA
:10AF2000BC160C66EB163CC034162C879C2FDDD863
-:10AF30003AD7038001C828D4211897783C6E2A5D3F
+:10AF30003AD7038001C9B4D4211897783C6E2A5DB2
:10AF40001A8F3CC0506ECC2FFC8FCCD82A3FFCD837
:10AF5000220000D421189616951497300CC0282092
:10AF6000175807C0500B3B0C9CCE7FCFA7D822EBC5
-:10AF7000CD4080E0674F44EA170000FEB0DA4C8F06
-:10AF80000CE0A0876F8F1CE3CF80808001C8C0EBEE
-:10AF9000CD40E021FD18971495360CE0A07A8E0084
-:10AFA0007781001302F1EC560400B9000080010023
+:10AF7000CD4080E0674F5CEA170000FEB0DA4C8FEE
+:10AF80000CE0A0883D8F1CE3CF80808001CA5CEB81
+:10AF9000CD40E021FD18971495360CE0A07B72009F
+:10AFA000B98A001302F1EC560400B90000800100D8
:10AFB000BA00010000B8C8010D02F1EC5603000010
-:10AFC000000100322CE0A07A8B321CE0A07A88E0ED
+:10AFC000000100322CE0A07B6F321CE0A07B6CE023
:10AFD000660008EA168080301937CA300B0C9CE0F6
-:10AFE000A05B8CA36550053019304A1A9B0C9CE07D
-:10AFF000A05C76300CC0780F0BFACAFFFCF40C0989
+:10AFE000A05BC8A36550053019304A1A9B0C9CE041
+:10AFF000A05CB2300CC0780F0BFACAFFFCF40C094D
:10B000002B2FFC59ECC044E0477FFCCF613019374F
-:10B010008AFACBFFFC2FC60C9CE0A05C61321CE0DE
-:10B02000A07A80322CE0A07A7D360CE0A07A7AC03B
-:10B0300008D7038001713480017318EBCD40C0FE46
-:10B04000B0DD66E0A01BDEE0A07DCE1897E0664F85
-:10B0500044EA1600005807C0906C1C298C988CFE9E
-:10B06000B0DA7E300CE0A086E5301B6C0CFEB0DD63
-:10B07000F16C0C300BF96B004D301BFEB0DDA66C93
-:10B080000CF93B0047580BC050301BFEB0DFB8C274
-:10B09000182C7C198C581CC131E06CE7FCEA1C8030
-:10B0A00001FEB0DADF300CFEB0DD6A6C0B6C1CFE0A
-:10B0B000B0E004300B6C0CFEB0DDEAC0B8E0A009D3
-:10B0C000CB303A0073C0001302F1EC560400BA0012
+:10B010008AFACBFFFC2FC60C9CE0A05C9D321CE0A2
+:10B02000A07B64322CE0A07B61360CE0A07B5EC08C
+:10B0300008D703800171AC80017390D421FEB0DD8C
+:10B0400067E0A01BDFE0A07EB31897E0664F5CEAE4
+:10B050001600006C1CF9150068296CF924000058D2
+:10B0600007C080300CE0A087B3F9D5C010FEB0DA7D
+:10B0700077301B6C0CFEB0DDED6C0C300BF96B0007
+:10B080004D301BFEB0DDA26C0CF93B0047580BC0E5
+:10B0900050301BFEB0DFB4C2182C7C198C581CC178
+:10B0A00031E06CEA44EA1C8001FEB0DADB300CFED1
+:10B0B000B0DD666C0B6C1CFEB0E000300B6C0CFE5F
+:10B0C000B0DDE600E33F001302F1EC560400BA00E5
:10B0D00000800100BB000100000773010D02F1ECCC
-:10B0E000560300000001006C0B6C1CFEB0E1126CFA
-:10B0F0000CFEB0DFAF5807C0A06C1CF91B0068F94C
-:10B100005B006CF92B006A292CB88BFEB0DD06E3DE
-:10B11000CF80C0800075488000F23C8001B620805E
-:10B12000006F988001C86C8000760480007A3880B7
+:10B0E00056030000000100C0B8E0A009C7303A6C68
+:10B0F0000B6C1CFEB0E10E6C0CFEB0DFAB5807C051
+:10B10000606C1CF955006C292CB884FEB0DD06D8A3
+:10B110002AD703800075488000F23C8001B7E880A0
+:10B1200001CA0880006F988000760480007A388019
:10B130000075B880007AF48000CE9080007530EB06
-:10B14000CD4080E0674F44EA170000301B6E0CFED4
-:10B15000B0DD626E0CFEB0DE33C070304CE0A02A71
-:10B160009B304CE0A020286E1CF91B006C580BC0D3
+:10B14000CD4080E0674F5CEA170000301B6E0CFEBC
+:10B15000B0DD626E0CFEB0DE33C070304CE0A02E6D
+:10B1600099304CE0A020286E1CF91B006C580BC0D5
:10B1700081300A6E0BFEB0E0CD6E0CFEB0DF6A349B
-:10B180006CE0A079BF301BFE7C2400E0A077343453
-:10B190006CE0A079D9E3CF8080D7038000762C8043
-:10B1A0000077D4800110AC8000FBCC80007D28802B
-:10B1B000007A68EBCD40C0201DE0674F44EA1700DD
+:10B180006CE0A07AA3301BFE7C2400E0A078183489
+:10B190006CE0A07ABDE3CF8080D7038000762C805E
+:10B1A0000077D4800118A88000FBCC80007D288027
+:10B1B000007A68EBCD40C0201DE0674F5CEA1700C5
:10B1C000006E0C301BF96B00523006300BBA0B309E
:10B1D0001BFEB0DC056E0CFEB0DD02583CC1409A8F
-:10B1E0008B2FFBBA0B301B00BDFD001302F1EC5698
+:10B1E0008B2FFBBA0B301B005368001302F1EC5697
:10B1F0000400BB0000800100BC00010000135B01E3
:10B200000D02F1EC560300000001006E0CFEB0E1EF
-:10B21000031896C0B19A8CE04C9C40CEF5E06CE6E9
-:10B22000C8EA1C8001FEB0DA415806C0519A8CE091
-:10B230004C9C40C225E06C0D00EA1C0000300BF96C
+:10B21000031896C0B19A8CE04C9C40CEF5E06CE8E7
+:10B2200084EA1C8001FEB0DA415806C0519A8CE0D5
+:10B230004C9C40C225E06C0D18EA1C0000300BF954
:10B240005B002EF95B0030F95B0034F95B0036F9E6
:10B250006B002B78FAB48B78FAB49B300AB91BF8E0
:10B26000EB0008F8EB0010F8EB0018F8EB00202DCD
:10B270008CB80BB8ABC058300C6E0B2B1BB68C3097
:10B280000B6E0CFEB0DCBA300B6E0CFEB0DBBA6E8F
-:10B290000CFEB0DCFB581CC0D1E06CE6C8EA1C8098
+:10B290000CFEB0DCFB581CC0D1E06CE884EA1C80DA
:10B2A000012F8CFEB0DA02303B6E0CFEB0DD14C014
-:10B2B00058301B6E0CFEB0DD0F346CE0A0793430DA
-:10B2C0002BFE7C2400E0A076A9346CE0A0794E30FF
+:10B2B00058301B6E0CFEB0DD0F346CE0A07A1830F5
+:10B2C0002BFE7C2400E0A0778D346CE0A07A323035
:10B2D0000C6E0B2AEBB68C2FFDE3CF80C0D703801A
:10B2E0000075F480007E08800075EC800073F480A7
:10B2F00000767C8000709C800076C8D401FEB0D8B7
-:10B30000C1301BFEB0DCB0346CE0A000315B001338
+:10B30000C1301BFEB0DCB0346CE0A000CB300013C9
:10B3100002F1EC560400BC0000800100BD000100F9
:10B320000079E3010D02F1EC560300000001007901
-:10B330000D304BFE7C2400E0A07682346CE0A079D6
-:10B3400027D80AD401FEB0D8AF301BFEB0DC9E3443
-:10B350006CE0A078FB305BFE7C2400E0A0767034CB
-:10B360006CE0A07915D80A80006E74800076588051
-:10B3700001AF188001AA0C8001AF5CEBCD4080F8D2
-:10B380000B1518C030582CC2C1E0670D00EA170039
-:10B3900000EF3C002D582CC0D1301BE06C4F44EA2C
+:10B33000F1304BFE7C2400E0A07766346CE0A07A0C
+:10B340000BD80AD401FEB0D8AF301BFEB0DC9E345F
+:10B350006CE0A079DF305BFE7C2400E0A077543401
+:10B360006CE0A079F9D80A80006E7480007658806D
+:10B3700001B0E08001ABD48001B124EBCD4080F876
+:10B380000B1518C030582CC2C1E0670D18EA170021
+:10B3900000EF3C002D582CC0D1301BE06C4F5CEA14
:10B3A0001C0000780CFEB0DC53E06C00FFEF6C007A
:10B3B0002D300CEF5C002EEF5C0030EF5C0032EFC4
:10B3C0006C002B300A300BAF1BEEEB0008EEEB00ED
:10B3D00010EEEB0018EEEB00202D87AE0CAEACE3C8
-:10B3E000CF80808000761CD421E0670D00EA170032
+:10B3E000CF80808000761CD421E0670D18EA17001A
:10B3F00000EF1B002E169A2FFAEF5A002EEE0B0BC1
:10B400000C0F8C2C2C5C5CE04C004EF9BC0201FE55
:10B410000C001C98CC180F009E06460646064606F1
:10B4200046064600E20646015A01BC0646064600AC
-:10B430001D9C001302F1EC560400BD0000800100C9
+:10B430003BF4001302F1EC560400BD000080010053
:10B44000BE00010000EC28010D02F1EC56030000E3
:10B4500000010005680646047602EC0326035A0341
:10B460008E064603D003D0040204020434064606C6
@@ -2894,18 +2894,18 @@
:10B4D00046064606460240EF1C002E582CE081022C
:10B4E000DA0F9CEF5C0032EF1C0032581CC065E0A4
:10B4F0006C0080EF6C0028C048370CEF6C002830DF
-:10B500001BE06C4F44EA1C0000780C2CECB88BEF6D
+:10B500001BE06C4F5CEA1C0000780C2CECB88BEF55
:10B510006B002B300C2D27AE0CD82AEF1C002E58B8
:10B520002CE08102B80F9CFEB0B906189B305A304F
:10B5300026C2308FFB19BBA96B19CC180BEF5B002F
-:10B5400034EF5A0036EF66002CE0644F44EA1400F2
-:10B5500000680C00B31B001302F1EC560400BE009F
+:10B5400034EF5A0036EF66002CE0644F5CEA1400DA
+:10B5500000680C0023EB001302F1EC560400BE005F
:10B5600000800100BF000100005393010D02F1ECC7
:10B5700056030000000100FEB0DBB4581CC171305E
:10B580002B680CFEB0DBB46EFC19ACF9DCC004EF28
:10B590005C0038300CEF5C003AC0980E9C2C0C8F8D
:10B5A000FC300CEF5C0034EF5A0036EF66002B30B5
-:10B5B0000C2D27AE0CD82AE0644F44EA140000306A
+:10B5B0000C2D27AE0CD82AE0644F5CEA1400003052
:10B5C0000B680CFEB0DB48680CF92B004A581BC016
:10B5D00041302BF96B004A303BEF6B002B3005EF0D
:10B5E00055002EFEB0DB7E582CE0810266EF1C0079
@@ -2917,64 +2917,64 @@
:10B640001C0032EF1B002EF80B1900E0810235EFD1
:10B650001B0032FE3BFF025C5B0E9C2FECFEB0B881
:10B66000ADC091370CEF6C0028C098300C2CE7AEC1
-:10B670000CD82AE06C0080002FCB001302F1EC56AE
+:10B670000CD82AE06C0080004E1D001302F1EC563D
:10B680000400BF0000800100C00001000052FB0167
:10B690000D02F1EC56030000000100EF6C002830B1
-:10B6A0002CE06B4F44EA1B0000760B2CEBB68C3081
+:10B6A0002CE06B4F5CEA1B0000760B2CEBB68C3069
:10B6B00005EF550032EF55002E301C2D57AE8CD8BB
:10B6C0002A3005E06C1981EA1C00DA8B0CFEB0B060
:10B6D0001D8FFC301BEF5B00363026EF66002BE041
-:10B6E000644F44EA140000680CF966004A303AF9E5
+:10B6E000644F5CEA140000680CF966004A303AF9CD
:10B6F0006A0032EF55002E2D37AE8B300BFEB0DADC
-:10B70000BD300A305B306CE0A0621CD82AFEB0B0BD
+:10B70000BD300A305B306CE0A06258D82AFEB0B081
:10B71000098FFC303BEF5B00363026EF66002BE0F4
-:10B72000644F44EA140000680CF966004AF96B00A3
+:10B72000644F5CEA140000680CF966004AF96B008B
:10B7300032300B2D27AE0BFEB0DAA0D82AFEB0B007
:10B74000D18FFC3026EF560036EF66002BE0644FB9
-:10B7500044EA140000680CF966004A303BF96B00BB
+:10B750005CEA140000680CF966004A303BF96B00A3
:10B7600032300B2D27AE0BFEB0DA88D82AE06C0001
-:10B7700080EF6C0028301CEF6C002BE0644F44EA33
+:10B7700080EF6C0028301CEF6C002BE0644F5CEA1B
:10B78000140000680C302BF96B0032301BFEB0DA6D
-:10B79000B7300B680CFEB0D9AF300C00E16C001371
+:10B79000B7300B680CFEB0D9AF300C00AB7500139E
:10B7A00002F1EC560400C00000800100C10001005D
:10B7B000003E57010D02F1EC56030000000100E0CD
-:10B7C000A083C2300C2D27AE0CD82AE06C0080EF8D
-:10B7D0006C0028301CEF6C002BE0644F44EA14002E
+:10B7C000A08490300C2D27AE0CD82AE06C0080EFBE
+:10B7D0006C0028301CEF6C002BE0644F5CEA140016
:10B7E00000680C302BF96B0032301BFEB0DA9A3057
:10B7F0001B680CFEB0D992300C2D27AE0CD82AE075
:10B800006C0080EF6C0028301CEF6C002BE0644F64
-:10B8100044EA140000680C302BF96B003230052D1F
-:10B820005CB885300A305B306CE0A0619D2D27AE9E
+:10B810005CEA140000680C302BF96B003230052D07
+:10B820005CB885300A305B306CE0A061D92D27AE62
:10B8300005D82AE06C0080EF6C0028301BEF6B000D
-:10B840002BE0644F44EA140000680C302AF96A00C7
+:10B840002BE0644F5CEA140000680C302AF96A00AF
:10B8500032F96B002B2D4C198C580CC091300A30EA
-:10B860005B306CE0A061D6301CE0A0836D300C2D05
+:10B860005B306CE0A06212301CE0A0843B300C2DF9
:10B8700027AE0CD82AE06C0080EF6C0028301CEF5B
-:10B880006C002BE0644F44EA140000680C302BF984
+:10B880006C002BE0644F5CEA140000680C302BF96C
:10B890006B00320F8BE04B00D65F0B2D4CB88B301A
:10B8A0000C2D27AE0CD82AE06C0080EF6C002830FD
-:10B8B0001CEF6C002BE0644F44EA140000680C009D
-:10B8C0007B69001302F1EC560400C1000080010006
+:10B8B0001CEF6C002BE0644F5CEA140000680C0085
+:10B8C000EEEE001302F1EC560400C100008001000E
:10B8D000C200010000AB9C010D02F1EC5603000018
:10B8E000000100302BF96B00320F8BE04B00D95F69
:10B8F0000B2D3CB88B300C2D27AE0CD82AE06C00F9
:10B9000080EF6C0028301CEF6C002B302CE06B4F6C
-:10B9100044EA1B0000760B2CEBB68CE06C4650EA38
+:10B910005CEA1B0000760B2CEBB68CE06C4668EA08
:10B920001C0000786CF90B0028581BCB35300B2D10
-:10B930008CB80B300A304B306CE0A0617DCAABE0B4
+:10B930008CB80B300A304B306CE0A061B9CAABE078
:10B940006C0080EF6C0028301CEF6C002BE0644F23
-:10B9500044EA140000680C302BF96B0032FEB0DDB5
+:10B950005CEA140000680C302BF96B0032FEB0DD9D
:10B9600031300C2D27AE0CD82AEF1C002E585CE08D
:10B970008100D90E9C2FFCFEB0AF06C0F1370CEF52
:10B980006C0028C0F8EF1C002E583CE08100CB0E64
:10B990009C2FFCFEB0AF10CF30E06C0080EF6C004D
-:10B9A00028302CE06B4F44EA1B0000760B2CEBB6E2
+:10B9A00028302CE06B4F5CEA1B0000760B2CEBB6CA
:10B9B0008C301CEF6C002B300C2D27AE0CD82AEFEE
:10B9C0001C002E584CE08100AE0E9C2FFCFEB0AF48
:10B9D00021CE41CD5BFEB0AF3D8FFC303BEF5B0035
-:10B9E00036302600F1BD001302F1EC560400C2000F
+:10B9E000363026002F39001302F1EC560400C20055
:10B9F00000800100C3000100001427010D02F1ECDA
-:10BA000056030000000100EF66002BE0644F44EA9B
+:10BA000056030000000100EF66002BE0644F5CEA83
:10BA1000140000680CF966004AF96B0032300B2DF7
:10BA200027AE0BFEB0D960D82AEF1C002E582CE0B0
:10BA300081008B0E9C2FFCFEB0AF3CCC11CB2BEFCA
@@ -2987,28 +2987,28 @@
:10BAA00088E06C00C46EFBB68C300C6EFBB69C302C
:10BAB0003CEF6C002CC0B8E06C00CF6EFBB68C3550
:10BAC0005C6EFBB69C303CEF6C002C6EFC199B58F6
-:10BAD0000BC0D1302CE06B4F44EA1B0000760B2BDF
+:10BAD0000BC0D1302CE06B4F5CEA1B0000760B2BC7
:10BAE0006BB68C300CEF5C0034C0D8198CE04C0085
-:10BAF000CFCF10301CE06B4F44EA1B0000760B2BBD
-:10BB00006BB68C3026EF560073CB001302F1EC5667
+:10BAF000CFCF10301CE06B4F5CEA1B0000760B2BA5
+:10BB00006BB68C3026EF5600FDDA001302F1EC56CE
:10BB10000400C30000800100C400010000000F0108
:10BB20000D02F1EC560300000001000036300CEF6E
-:10BB30005C002E2D57AE86E0644F44EA14000030BE
+:10BB30005C002E2D57AE86E0644F5CEA14000030A6
:10BB40001B680CFEB0D93A300B680CFEB0D8DE3062
:10BB50000CFEB0AF9FD82A370CEF6C0028301CEFDA
:10BB60006C002B300C2D27AE0CD82A800030E080E2
:10BB700000766880007674800031408000206C8000
:10BB80000020848000224480007660800074588009
-:10BB90000184A48001C8848001855080007CDC8001
+:10BB900001851C8001CA20800185C880007CDC8072
:10BBA0000020A0800020D08000212C8000216C800B
:10BBB0000021A8800021EC80002388800030AC8028
:10BBC0000023A0800023548000768C80002364EB47
-:10BBD000CD40C03006E0670D00EA170000EF3C00E2
+:10BBD000CD40C03006E0670D18EA170000EF3C00CA
:10BBE0002B581CC051311CEF6C002BC108EF3C00DE
:10BBF0002B582CC051312CEF6C002BC088EF3C002F
:10BC00002B583CC041313CEF6C002BEF3C002B210A
:10BC10001CC060201CC1C0201CC580C998EF360024
-:10BC200028321CEF6C002BE06C4F440087CD0013D2
+:10BC200028321CEF6C002BE06C4F5C00A9B30013B2
:10BC300002F1EC560400C40000800100C5000100C0
:10BC4000006AB7010D02F1EC56030000000100EAA2
:10BC50001C0000780CF93B0032582BE0810090303A
@@ -3017,25 +3017,25 @@
:10BC800036F60C1900C7B26EFCEF1B0030F80B073C
:10BC900006EF1C00302FFCEF5C0030EF1B0036F687
:10BCA0000C1900C6C1300CEF5C0030EF5C0036327E
-:10BCB0003CEF6C002BE06C4F44EA1C0000780C2B2E
-:10BCC0006CF92B0000582BC5A1301BE06C4F44EAE7
+:10BCB0003CEF6C002BE06C4F5CEA1C0000780C2B16
+:10BCC0006CF92B0000582BC5A1301BE06C4F5CEACF
:10BCD0001C0000780CFEB0D82B300C6EFBB68C6EBE
:10BCE000FBB69CC4C8323C2D57AE8CC488EF1C00F8
:10BCF00030EF1B0034F60C1900C412EF3C002C5836
:10BD00002CC1216EFBEF1C0030180B17D6E06C4FD6
-:10BD100044EA1C0000780CFEB0D826C0E1302CEFBD
+:10BD10005CEA1C0000780CFEB0D826C0E1302CEFA5
:10BD20006C002DC0A8EF3C002C583CC0616EFBEFAE
:10BD30001C0030180B17A6EF1C00302FFCEF5C0026
:10BD400030EF1B0034F60C1900C191300CEF5C0091
-:10BD5000B652001302F1EC560400C5000080010049
+:10BD500083E6001302F1EC560400C50000800100E8
:10BD6000C600010000FF7C010D02F1EC560300004B
:10BD70000001000030EF5C0034323CEF6C002BE03F
-:10BD80006C4F44EA1C0000780C2B6CF92B00005817
+:10BD80006C4F5CEA1C0000780C2B6CF92B000058FF
:10BD90002BC071CADB300CEF5C00302CC7AE0C0C32
:10BDA0009C5C5CE3CD80C0800075DC800076142054
-:10BDB0002DE06BE80CEA1B8001B70ABB1BF92B00D6
+:10BDB0002DE06BE9CCEA1B8001B70ABB1BF92B0015
:10BDC000005C5BC090201BE0800101201BE0800133
-:10BDD000C0E08F02A2E06B3184EA1B0000760B28E2
+:10BDD000C0E08F02A2E06B319CEA1B0000760B28CA
:10BDE0004B178B588BF9BB02001E0BF73B000AFE6A
:10BDF0000B001F061D36516A859EB9782BF92A0063
:10BE000004F60A041BBA0B782BF92A0004F60A0080
@@ -3045,7 +3045,7 @@
:10BE40000A041BF60B11FFBA1B782BF92A0004F623
:10BE50000A001B2D8B960BBA2BCA08782BF92A00E7
:10BE600004F60A041BF60B11FFBA0B782BF92A0013
-:10BE700004F60A004653001302F1EC560400C60013
+:10BE700004F60A002DFF001302F1EC560400C60080
:10BE800000800100C70001000040C7010D02F1EC75
:10BE900056030000000100001B2ECB960BF60B1181
:10BEA000FFBA1B782BF92A0004F60A001B2D8B968B
@@ -3071,7 +3071,7 @@
:10BFE0002B9A0B782AF9290004F4090A1B9A1B786A
:10BFF0002AF9290004F409001A2ECAB40B9A2B78E6
:10C000002A2FCCF9290000F409001A2D8AB40BCA92
-:10C0100079E06B3184EA1B0000760B283B178B58C4
+:10C0100079E06B319CEA1B0000760B283B178B58AC
:10C020008BF9BB02002FEBFE0B001FC0CBC078C109
:10C03000E8C368C4D8C658C7C8C948782BF92A00CD
:10C0400004F60A001B2ECB960BBA0B782BF92A00AC
@@ -3081,7 +3081,7 @@
:10C080000A001B2ECB960B5C3BBA1B782BF92A00BF
:10C0900004F60A001B2D8B960BBA2BCA3B782BF9A2
:10C0A0002A0004F60A001B2ECB960B5C3BBA0B78D9
-:10C0B0002BF92A0004F60A041BBA1B0095F300139F
+:10C0B0002BF92A0004F60A041BBA1B00D64F001302
:10C0C00002F1EC560400C80000800100C900010024
:10C0D000009797010D02F1EC560300000001007873
:10C0E0002BF92A0004F60A001B2D8B960BBA2BC8DD
@@ -3097,10 +3097,10 @@
:10C180003BBA2BC41B782BF92A0004F60A001B2E9D
:10C19000CB960B5C3BBA0B782BF92A0004F60A0409
:10C1A0001B5C3BBA1B782BF92A0004F60A001B2DF6
-:10C1B0008B960B5C3BBA2BC27BE06B3184EA1B0095
+:10C1B0008B960B5C3BBA2BC27BE06B319CEA1B007D
:10C1C00000760B282B178B588BF9BB02001E0BF740
:10C1D0003B000AFE0B001F061C334B627A91A9003C
-:10C1E000236A001302F1EC560400C900008001002C
+:10C1E000E324001302F1EC560400C90000800100B2
:10C1F000CA00010000025C010D02F1EC56030000D0
:10C20000000100782BF92A0004F60A041BBA0B7807
:10C210002BF92A0004F60A001B965BBA1B782BF94F
@@ -3131,67 +3131,67 @@
:10C3A0002AF9290004F4090A1B9A1B782AF92900A2
:10C3B00004F409001AB45B9A2B782A2FCCF92900CF
:10C3C00000F409001A2ECAB40B2FED5EFF0000EB3B
-:10C3D000CD40FC204D1897E06CE668EA1C8001B95E
+:10C3D000CD40FC204D1897E06CE764EA1C8001B961
:10C3E0000ABB1B2F8CB90AFAEB0008EF2C00005C8B
:10C3F0005C589CF9BC02042FECFE0C001FC098C5D1
:10C4000098CF68CD18C499C489C9D8C119C3896E99
:10C410002CEF2B0004F80B041CBA0C6E2CEF2B0035
-:10C4200004F80B001C2ECC009F46001302F1EC56C2
+:10C4200004F80B001C2ECC00A140001302F1EC56C6
:10C430000400CB0000800100CC00010000A9CF0166
:10C440000D02F1EC56030000000100980CBA1C6EBE
:10C450002B2FC7EF2A0000F60A001B2D8B960BBA74
:10C460002B9A0ABA4ABA5CBA6B300CC0F8F80B15B2
:10C4700001FACAFFF8160A948AE04A8001C0451AF8
:10C4800099F20B0A0A2FFC5C5C583CCF15E06C312A
-:10C4900084EA1C000078069A0CE0A03E79E06BF676
-:10C4A00060EA1B3A1CE0A03C938D0C9A1CE0A03E75
-:10C4B0006FE06BF660EA1B3A1CE0A03C898D1C9A89
-:10C4C0002CE0A03E65E06BF660EA1B3A1CE0A03C65
-:10C4D0007F8D2CCF486E2CEF2B0004F80B041CBA78
+:10C490009CEA1C000078069A0CE0A03EB5E06BF622
+:10C4A00060EA1B3A1CE0A03CCF8D0C9A1CE0A03E39
+:10C4B000ABE06BF660EA1B3A1CE0A03CC58D1C9A11
+:10C4C0002CE0A03EA1E06BF660EA1B3A1CE0A03C29
+:10C4D000BB8D2CCF486E2CEF2B0004F80B041CBA3C
:10C4E0000C6E2CEF2B0004F80B001C2ECC9805BA18
:10C4F000156E2C2FC7EF2B0000F80B001C2D8C980D
-:10C5000007BA27E06C3184EA1C00007806E06296E6
+:10C5000007BA27E06C319CEA1C00007806E06296CE
:10C51000A6EA121DA1E063044FEA133F349A0CE02F
-:10C52000A03E36E0A04CB004980699E0A04C23E071
-:10C53000A03D868D3C0A9CE0A03E2AE0A04CA404CD
-:10C54000980699E0A04C17E0A03D7A0048EE001351
+:10C52000A03E72E0A04CEC04980699E0A04C5FE0BD
+:10C53000A03DC28D3C0A9CE0A03E66E0A04CE00419
+:10C54000980699E0A04C53E0A03DB60022C5001328
:10C5500002F1EC560400CC0000800100CD00010087
:10C5600000C377010D02F1EC560300000001008DBD
-:10C570004C0E9CE0A03E1EE0A04C9804980699E06A
-:10C58000A04C0BE0A03D6E8D5CCAB8E06C3184EA33
+:10C570004C0E9CE0A03E5AE0A04CD404980699E0F2
+:10C58000A04C47E0A03DAA8D5CCAB8E06C319CEAA3
:10C590001C00007806E064147BEA1447AEE0657A7C
:10C5A000E1EA153F846E2CEF2B0004F80B041CE02D
-:10C5B000A03E00E0A04C7A08980A99E0A04BEDE07C
-:10C5C000A03D508DFC6E2C2FC7EF2B0000F80B0008
-:10C5D0001C985CE0A03DEEE0A04C6808980A99E049
-:10C5E000A04BDBE0A03D3EED4C0040C7A8E06C3125
-:10C5F00084EA1C000078066E2CEF2B0004F80B0474
-:10C600001CA96CE0A03DD68DCC6E2C2FC7EF2B0063
-:10C6100000F80B001C985CE0A03DCC6CCBE0A03B8C
-:10C62000938DCC6CCBE06CD70AEA1C3C23E0A03B9A
-:10C63000E18DCCC568E06C3184EA1C000078066EA0
+:10C5B000A03E3CE0A04CB608980A99E0A04C29E0C7
+:10C5C000A03D8C8DFC6E2C2FC7EF2B0000F80B00CC
+:10C5D0001C985CE0A03E2AE0A04CA408980A99E0D0
+:10C5E000A04C17E0A03D7AED4C0040C7A8E06C31AC
+:10C5F0009CEA1C000078066E2CEF2B0004F80B045C
+:10C600001CA96CE0A03E128DCC6E2C2FC7EF2B0026
+:10C6100000F80B001C985CE0A03E086CCBE0A03B4F
+:10C62000CF8DCC6CCBE06CD70AEA1C3C23E0A03C5D
+:10C630001D8DCCC568E06C319CEA1C000078066E4C
:10C640002CEF2B0004F80B041CED5C004A6E2CEF61
:10C650002B0004F80B001C2ECC980CED5C004C6EEB
:10C660002C2FC7EF2B0000F80B001C2D8C980C0012
-:10C6700074C9001302F1EC560400CD0000800100E3
+:10C670005EC6001302F1EC560400CD0000800100FC
:10C68000CE0001000056BC010D02F1EC5603000083
-:10C690000001002B26AC0CC368E06C3184EA1C005E
+:10C690000001002B26AC0CC368E06C319CEA1C0046
:10C6A0000078066E2CEF2B0004F80B041CED5C00E8
:10C6B000506E2CEF2B0004F80B001C985CED5C0016
:10C6C000526E2CEF2B0004F80B001C2ECC980CEDB6
:10C6D0005C00546E2C2FC7EF2B0000F80B001C2EB3
:10C6E0002C980C2AA6AC0CC0E86E2C2FC7EF2B00A0
-:10C6F00000F80B041CE06B3184EA1B0000760B2A67
-:10C700008BB60C2FCDE3CF90FCD703800166388029
-:10C71000016526800147F080014940800144D480B2
-:10C72000014580D42121DD300CBA9CBA8CBA9CC161
-:10C73000180E9CFEB0FBCE5826C0410E9CE0A01DFA
-:10C74000AD5825C0310E9CC7AEFB2B00012FFBBAA4
+:10C6F00000F80B041CE06B319CEA1B0000760B2A4F
+:10C700008BB60C2FCDE3CF90FCD703800166B080B1
+:10C7100001659E80014868800149B88001454C80D0
+:10C720000145F8D42121DD300CBA9CBA8CBA9CC1E9
+:10C73000180E9CFEB0FBCE5826C0410E9CE0A021F6
+:10C74000AB5825C0310E9CC7AEFB2B00012FFBBAA6
:10C750009BFB2B000158BBE0840160FB2B000158C0
:10C760005BCF40FB2B000158ABCF00FB2B000158E7
-:10C770009BCEC0E06C4650EA1C0000FB2A0001F88A
-:10C780000A0327EF0C0024580CC0D4E06C3184EA73
-:10C790001C0000008820001302F1EC560400CE00BB
+:10C770009BCEC0E06C4668EA1C0000FB2A0001F872
+:10C780000A0327EF0C0024580CC0D4E06C319CEA5B
+:10C790001C000000554B001302F1EC560400CE00C3
:10C7A00000800100CF00010000E907010D02F1EC5B
:10C7B00056030000000100780C294C988CEF0B0008
:10C7C00024180BEF5B0024300B0E9C6ECA746A5D5C
@@ -3214,7 +3214,7 @@
:10C8D0000D02F1EC56030000000100CC1BCAD8C9C0
:10C8E000F8FACCFFD4FB2A0000F80A001C199BA917
:10C8F0006BFACCFFD4FB290000F809071C180BE0E9
-:10C900006C0E50EA1C0000FB290000F809041C18FA
+:10C900006C0E68EA1C0000FB290000F809041C18E2
:10C910000BFACCFFCCFB290000F8090A1BCB3BFA31
:10C92000CCFFD4FB2A0000F80A001C199BA96BFA63
:10C93000CCFFD4FB290000F809071C180BFACCFF28
@@ -3227,7 +3227,7 @@
:10C9A000290000F8090A1BC6EBFB2B0000581BC02E
:10C9B000E1FACBFFD4FB2C0000180B179CFACBFF3D
:10C9C000CCFB290000F6090A1CC5DBFB2B00005834
-:10C9D0002BFE91FF59FACBFFD4FB2C00ADCF0013F7
+:10C9D0002BFE91FF59FACBFFD4FB2C001E55001300
:10C9E00002F1EC560400D00000800100D1000100EB
:10C9F00000EDD2010D02F1EC560300000001000031
:10CA000000180B179BA96BFACAFFD4FB2C00001867
@@ -3238,17 +3238,17 @@
:10CA5000CCFB290000F6090A1CC27BFACCFFD4FBF0
:10CA60002A0000F80A071BA96BFB290000F809003F
:10CA70001C199C180BFACCFFCCFB290000F8090A02
-:10CA80001BC13BE06C3184EA1C0000780C798B58A8
+:10CA80001BC13BE06C319CEA1C0000780C798B5890
:10CA90000BC1E0300BFB5B0070FB6B004930AAFB65
:10CAA0006A004AFB6B004CFB6B004D302BFB6B00AC
:10CAB00048294C988CFB5C0070FACCFFB81A9B326A
-:10CAC000C9190A16AA2049CFD1E0A0556F2E3DDA28
-:10CAD0002AD70380010A04800076EC80006E7480FF
-:10CAE000017CA8EBCD40E0203D1697407B500B40E9
-:10CAF0008B501B409B502BE0661F28EA160000005D
-:10CB0000FE5A001302F1EC560400D100008001002F
+:10CAC000C9190A16AA2049CFD1E0A055AB2E3DDAEC
+:10CAD0002AD70380011200800076EC80006E7480FB
+:10CAE000017D20EBCD40E0203D1697407B500B4070
+:10CAF0008B501B409B502BE0661F40EA1600000045
+:10CB00007AB8001302F1EC560400D1000080010055
:10CB1000D2000100007819010D02F1EC560300006B
-:10CB2000000100E0651D60EA150000EB3B00AB581A
+:10CB2000000100E0651D78EA150000EB3B00AB5802
:10CB30002BC111F5D7C010189B1A9CFEB0DB386CC6
:10CB40003CE04C03E9C213301CEB6C00AB300C8DA5
:10CB50003CC1B8F5D7C010189B1A9CE0A007DC6C4C
@@ -3259,121 +3259,121 @@
:10CBA0009B2CCB0A9C169E306AB909BD28201ACF4F
:10CBB000D178089D080A9C2CCCEB4C00AC300C8D35
:10CBC0000CC038301C8D0CEAFC012C0E0CEB4C0117
-:10CBD0002CEAFC012CE24CBF21C0A3E06CE85CEA2B
+:10CBD0002CEAFC012CE24CBF21C0A3E06CEA1CEA69
:10CBE0001C8001FEB0CEEE300CEB4C012C2FDDE3AF
-:10CBF000CF80E0800088888000E1F0E06C1D60EA72
-:10CC00001C0000F93C00AB5EFC0000E06B1D60EA1C
+:10CBF000CF80E0800088888000E1F0E06C1D78EA5A
+:10CC00001C0000F93C00AB5EFC0000E06B1D78EA04
:10CC10001B0000F6FB00AC3349170A18AA2049CFC5
-:10CC2000D15EFD000D79001302F1EC560400D20034
+:10CC2000D15EFD00A880001302F1EC560400D20092
:10CC300000800100D300010000C7A2010D02F1EC49
:10CC400056030000000100D42116971496E0651DDC
-:10CC500060EA150000300A300BAB1BEAEB0008EA73
+:10CC500078EA150000300A300BAB1BEAEB0008EA5B
:10CC6000EB0010EAEB0018EAEB0020EAEB00288B5F
:10CC7000CA0A9B2CCB30083009B719F6E90008F630
:10CC8000E90010F6E90018F6E90020F6E900289717
:10CC9000C80A9B298BB719F6E90008F6E90010F6D7
:10CCA000E90018F6E90020F6E9002897C80A9BFE7B
-:10CCB0003BFF64B7199728E0A03AD2EB4C00A00ED6
-:10CCC0009CE0A03ACDEB4C009CEB5600A43014EB5A
+:10CCB0003BFF64B7199728E0A03B0EEB4C00A00E99
+:10CCC0009CE0A03B09EB4C009CEB5600A43014EB1D
:10CCD0004400D0EB1A00A41497EAFC009CE0A03AB0
-:10CCE000A70E9AF7DCC01016971496EAFC00A0E095
-:10CCF000A03A9E0C9A0E9B5C7CE0A066F5EB1A00B5
-:10CD0000A41497EAFC009CE0A03A920E9AF7DCC0CB
-:10CD10001016971496EAFC00A0E0A03A890C9A0E2F
-:10CD20009B5C7CE0A06BBEE0A07264300CEB4C001E
+:10CCE000E30E9AF7DCC01016971496EAFC00A0E059
+:10CCF000A03ADA0C9A0E9B5C7CE0A06731EB1A003C
+:10CD0000A41497EAFC009CE0A03ACE0E9AF7DCC08F
+:10CD10001016971496EAFC00A0E0A03AC50C9A0EF3
+:10CD20009B5C7CE0A06CA2E0A07348300CEB4C0054
:10CD3000D4E06B2710EB5B002CEB5B002E300AEB92
-:10CD40005A0028EB5A002A00E427001302F1EC569F
+:10CD40005A0028EB5A002A008C90001302F1EC568E
:10CD50000400D30000800100D400010000D38A0148
:10CD60000D02F1EC56030000000100EB5B0060EBEC
:10CD70005B0062EB5A005CEB5A005EEB6400ABEBCD
:10CD80004A00D8EB4A00DCEB4C00F0EB4C00F4EB33
:10CD90004A00E4EB4C00E8EB4C00ECEB4C00F8EB09
-:10CDA0004C00FCEB4C0120E06C1F28EA1C000099B1
+:10CDA0004C00FCEB4C0120E06C1F40EA1C00009999
:10CDB0001AEB4A01240A9B2CCBEB4B00AC992AEBD3
:10CDC0006A00A9EB6A00AAEB4A01A8EB4A012CE031
-:10CDD0006CE6E8EA1C8001FEB0CE18D82AD70380A2
-:10CDE00001A19C800148E48001AB588001B8A8EB08
-:10CDF000CD40C0E067E4B8EA178001E0661D60EA54
+:10CDD0006CE994EA1C8001FEB0CE18D82AD70380F3
+:10CDE00001A2148001495C8001AD208001BA70EB82
+:10CDF000CD40C0E067E65CEA178001E0661D78EA96
:10CE00001600006DDC580CC1006DBC6C1B180B8D3E
:10CE10001B6DCC6C2B180B8D2BE0A001CDE0A0017D
:10CE2000F30E9CFEB0CDF2ED4600AC0C9B2CCB0C6F
:10CE30009C169E306AB909BD28201ACFD178089D6A
:10CE4000080C9C2CCCED4C00AC2F070E9CFEB0CDFA
-:10CE5000DDE3CF80C00000D401E06C1D60EA1C005F
-:10CE600000F93C00AB582CC041E0A0006C47001317
+:10CE5000DDE3CF80C00000D401E06C1D78EA1C0047
+:10CE600000F93C00AB582CC041E0A0001AC60013EA
:10CE700002F1EC560400D40000800100D50001004E
:10CE800000B932010D02F1EC5603000000010078F8
-:10CE900025D802E0A07872D802D7038001C5488067
-:10CEA00001C5E8D431202D189216961494129110D1
-:10CEB000903007FC153FC00A9BE0A039B9C0320A88
-:10CEC00092C0A8301BEA1B4080049CE0A039A4C09B
-:10CED00033FC124080E0651D60EA150000049CE010
-:10CEE000A04874BB1B049CE0A04870E068B8BBEA93
-:10CEF00018068DE06916F0EA193FB8E0A047DDBBDF
-:10CF000008E0A047DABB1B049CE0A0485FE068167D
-:10CF1000F0EA185048E06918FCEA193FE9E0A04738
-:10CF2000CCE0681134EA183C36E06952BDEA19BF1A
-:10CF3000DAE0A046ADBB08E0A04676E0A03922EAE0
-:10CF4000FB00A0E0A037E6E0A04840E068EDB8EACA
-:10CF5000181C22E0691818EA193F78E0A047ADE0F4
-:10CF6000A039101893EB1C00A4582CC091E06CC49D
-:10CF70001EEA1C3F7E069BE0A037CC18935854C194
+:10CE9000EBD802E0A07938D802D7038001C6D4804D
+:10CEA00001C774D431202D18921696149412911043
+:10CEB000903007FC153FC00A9BE0A039F5C0320A4C
+:10CEC00092C0A8301BEA1B4080049CE0A039E0C05F
+:10CED00033FC124080E0651D78EA150000049CE0F8
+:10CEE000A048B0BB1B049CE0A048ACE068B8BBEA1B
+:10CEF00018068DE06916F0EA193FB8E0A04819BBA2
+:10CF000008E0A04816BB1B049CE0A0489BE0681604
+:10CF1000F0EA185048E06918FCEA193FE9E0A04837
+:10CF200008E0681134EA183C36E06952BDEA19BFDE
+:10CF3000DAE0A046E9BB08E0A046B2E0A0395EEA2C
+:10CF4000FB00A0E0A03822E0A0487CE068EDB8EA51
+:10CF5000181C22E0691818EA193F78E0A047E9E0B8
+:10CF6000A0394C1893EB1C00A4582CC091E06CC461
+:10CF70001EEA1C3F7E069BE0A0380818935854C157
:10CF800014EC0409232FF430055C540835C1F40077
-:10CF90009F13001302F1EC560400D500008001003D
+:10CF90002DB3001302F1EC560400D500008001000F
:10CFA000D6000100002CF9010D02F1EC560300003F
-:10CFB000000100EC05032C0E9BE0A0376718972FAB
+:10CFB000000100EC05032C0E9BE0A037A318972F6F
:10CFC000F55C55CF5B3005C0A8781B990B780C0E2B
-:10CFD0009BE0A0375B18972FF55C55EC05002C58AB
-:10CFE00045CF459903780C0E9BE0A0374F18975C0E
-:10CFF00054089CE0A0396A189B0E9CE0A03810836E
-:10D000000C620C049BE0A03797FC1B4270E0A03739
-:10D0100093810C2FEDD83A80016294D42116961496
+:10CFD0009BE0A0379718972FF55C55EC05002C586F
+:10CFE00045CF459903780C0E9BE0A0378B18975CD2
+:10CFF00054089CE0A039A6189B0E9CE0A0384C83F6
+:10D000000C620C049BE0A037D3FC1B4270E0A037FD
+:10D01000CF810C2FEDD83A8001630CD421169614E1
:10D0200094300758743005C1B2C088EC050F8C0EDF
-:10D030009BE0A0372B18972FF55C550A34CF720A66
-:10D040009CE0A03943189B0E9CE0A037E9D822EC65
-:10D05000050F8C0E9BE0A0371918972FF55C5558DB
-:10D0600075CF75FC1B40E00E9CE0A037D9D822EBB1
+:10D030009BE0A0376718972FF55C550A34CF720A2A
+:10D040009CE0A0397F189B0E9CE0A03825D822ECEC
+:10D05000050F8C0E9BE0A0375518972FF55C55589F
+:10D0600075CF75FC1B40E00E9CE0A03815D822EB74
:10D07000CD42FF202D189516941492FC17400CFBFE
-:10D080001C005A584C0A9CC2C0E0A047B1E0689905
+:10D080001C005A584C0A9CC2C0E0A047EDE06899C9
:10D090009AEA189999E0699999EA193FB9E0A04785
-:10D0A0001E30080E99E0A04605E0A0387D189330A8
-:10D0B0000B089C0085DC001302F1EC560400D6003E
+:10D0A0005A30080E99E0A04641E0A038B9189330F4
+:10D0B0000B089C006712001302F1EC560400D60026
:10D0C00000800100D7000100009342010D02F1EC45
-:10D0D00056030000000100E0A038CEC2C230073085
-:10D0E0000B0A9CE0A07794C0C0E06C1D60EA1C00B5
-:10D0F00000F8F600F0300B0C9CE0A07789C35130AB
-:10D1000006C458E0A04786E068999AEA189999E021
-:10D11000699999EA193FC9E0A046F330080E99E0F1
-:10D12000A045DAE0A038521893300B089CE0A038F4
-:10D13000A3CD63089CE0A0476D149616970A9CE067
-:10D14000A04768E068CCCDEA18CCCCE069CCCCEA4A
-:10D15000193FFCE0A046D50C980E99E0A046D1E01E
-:10D16000A038341897CBDB0C9CE0A047533008FC68
-:10D1700019404EE0A046C514981699300AFC1B3F92
-:10D18000F0E0A046FBE0A038211896E064147BEAAA
+:10D0D00056030000000100E0A0390AC2C230073048
+:10D0E0000B0A9CE0A0785AC0C0E06C1D78EA1C00D6
+:10D0F00000F8F600F0300B0C9CE0A0784FC35130E4
+:10D1000006C458E0A047C2E068999AEA189999E0E5
+:10D11000699999EA193FC9E0A0472F30080E99E0B4
+:10D12000A04616E0A0388E1893300B089CE0A0387B
+:10D13000DFCD63089CE0A047A9149616970A9CE0EF
+:10D14000A047A4E068CCCDEA18CCCCE069CCCCEA0E
+:10D15000193FFCE0A047110C980E99E0A0470DE0A4
+:10D16000A038701897CBDB0C9CE0A0478F3008FCF0
+:10D1700019404EE0A0470114981699300AFC1B3F55
+:10D18000F0E0A04737E0A0385D1896E064147BEA31
:10D190001447AEE0657AE1EA153F740C9CE0A047C5
-:10D1A00039BB1B419CE0A0473514901691069C0E9C
-:10D1B0009BE0A0367DE0A0472D08980A99E0A046A4
-:10D1C000A000980299E0A0469CBB08E0A04699E028
-:10D1D000A037FC850C0C9C00D2C8001302F1EC5661
+:10D1A00075BB1B419CE0A0477114901691069C0E24
+:10D1B0009BE0A036B9E0A0476908980A99E0A0462C
+:10D1C000DC00980299E0A046D8BB08E0A046D5E074
+:10D1D000A03838850C0C9C00F47E001302F1EC564C
:10D1E0000400D70000800100D80001000004A9015C
-:10D1F0000D02F1EC56030000000100E0A0471C14F2
-:10D20000901691419CE0A0471714961697069CE053
-:10D21000A0471208980A99E0A046850C980E99E05C
-:10D22000A0468100980299E0A0467DE0A037E0404A
-:10D230003B970C2FEDE3CF82FFD703800162FC8088
-:10D240000165A0EBCD40E0E0671D60EA1700006ECD
+:10D1F0000D02F1EC56030000000100E0A0475814B6
+:10D20000901691419CE0A0475314961697069CE017
+:10D21000A0474E08980A99E0A046C10C980E99E0E4
+:10D22000A046BD00980299E0A046B9E0A0381C4095
+:10D230003B970C2FEDE3CF82FFD70380016374800F
+:10D24000016618EBCD40E0E0671D78EA1700006E3C
:10D250001B6E2C180B6E3616066E0C0C3CC160EE65
-:10D26000FC00D4300BE0A076E5C101E065E3D8EA2C
+:10D26000FC00D4300BE0A077ABC101E065E534EA07
:10D270001580010A9CFEB0CC116E0C0C3CC0628F74
:10D28000062F050A9CFEB0CC09E3CF80E0D70380CF
-:10D2900001C634E06C1D60EA1C0000300BF94B0045
+:10D2900001C7C0E06C1D78EA1C0000300BF94B00A0
:10D2A0006CF94B0070F94B00745EFDEBCD40E0185B
-:10D2B00097E0661D60EA1600006C0C0E0C8D0CECFD
-:10D2C000FC00D4E0A046B8BFDB30183009E0A0462F
-:10D2D000D1C3436DDC585CC2B4E0651F28EA150079
+:10D2B00097E0661D78EA1600006C0C0E0C8D0CECE5
+:10D2C000FC00D4E0A046F4BFDB30183009E0A047F2
+:10D2D0000DC3436DDC585CC2B4E0651F40EA150025
:10D2E000006A1B580BC241584CC0F10E0C6C3B1825
-:10D2F0000B8D3BE06CE4A0EA1C800100312200139E
+:10D2F0000B8D3BE06CE6BCEA1C800100B29400138D
:10D3000002F1EC560400D80000800100D9000100B1
:10D31000004412010D02F1EC56030000000100FE72
:10D32000B0CBCECCAF301C8B1CC0E8ED1C002A5813
@@ -3383,271 +3383,271 @@
:10D360002A584CC0506C1C0E0C8D1CC0486C2C0EE6
:10D370000C8D2C6DDC585CC132580CC1106DBC6C2E
:10D380001B180B8D1B6DCC2F866C0B180B8D0BE0B7
-:10D390006CE4A0EA1C80012F4CFEB0CB91C8DF30BA
-:10D3A0000CE06B1F28EA1B0000971CE3CF80E08095
-:10D3B0000166748000709CEBCD40E016961295E0FB
-:10D3C000671D60EA170000EEFB00D82FFBEF4B0053
+:10D390006CE6BCEA1C80012F4CFEB0CB91C8DF309C
+:10D3A0000CE06B1F40EA1B0000971CE3CF80E0807D
+:10D3B0000166EC8000709CEBCD40E016961295E083
+:10D3C000671D78EA170000EEFB00D82FFBEF4B003B
:10D3D000D8EEFB00DC2FFBEF4B00DCEF4C00E03025
-:10D3E0001CC77F6E5B0A9CE0A035868F5C6E6C0C60
-:10D3F0009BE0A035818F6C8F45EEFC00F8E0A046E5
-:10D400002DE0681EB8EA18EB85E069B851EA193FCB
-:10D41000AEE0A0459AE0A036FD8F7C301BEA1B00F1
-:10D420006FEA001302F1EC560400D90000800100FD
+:10D3E0001CC77F6E5B0A9CE0A035C28F5C6E6C0C24
+:10D3F0009BE0A035BD8F6C8F45EEFC00F8E0A046A9
+:10D4000069E0681EB8EA18EB85E069B851EA193F8F
+:10D41000AEE0A045D6E0A037398F7C301BEA1B0078
+:10D420008346001302F1EC560400D900008001008D
:10D43000DA00010000D1D9010D02F1EC5603000021
-:10D4400000010041C8E0A03741C043FC1C41C88F27
+:10D4400000010041C8E0A0377DC043FC1C41C88FEB
:10D450007CEEF600D48F86EEFC00F08F9C301B0C27
-:10D460009CE0A03733C063306C2D67AE0CE3CF80F7
-:10D47000E0300B0C9CE0A03735C042307C2D67AE0D
-:10D480000CE3CF80E0D70380016638800147F0EBE2
+:10D460009CE0A0376FC063306C2D67AE0CE3CF80BB
+:10D47000E0300B0C9CE0A03771C042307C2D67AED1
+:10D480000CE3CF80E0D703800166B080014868EBF1
:10D49000CD4EFF210D1890109130063004E0671D2D
-:10D4A00060EA170000EEF300E8EEFB00FC069CE0EB
-:10D4B000A03534FC1B3F00E0A035861892EEF50045
-:10D4C000F0069C0A9BE0A0370DC042EF4200FCC072
+:10D4A00078EA170000EEF300E8EEFB00FC069CE0D3
+:10D4B000A03570FC1B3F00E0A035C21892EEF500CD
+:10D4C000F0069C0A9BE0A03749C042EF4200FCC036
:10D4D00038EF420100E0636667EA1340160A9C06D3
-:10D4E0009BE0A036FFC052303CEF5C0028C0980A99
-:10D4F0009C069BE0A036EACF83304CEF5C0028EF1F
+:10D4E0009BE0A0373BC052303CEF5C0028C0980A5C
+:10D4F0009C069BE0A03726CF83304CEF5C0028EFE2
:10D500001C0028EEFB00D8169AF5DAC003EE0A00DC
:10D510002AF54C00B0E00A1510C080201BF7DBC0D4
:10D5200003EE0B002BF74C00B0300CC068583BC02A
:10D53000212FF42FFC5C7C588CC094EE0C002BF651
-:10D54000FB00B000614B001302F1EC560400DA005E
+:10D54000FB00B00084E3001302F1EC560400DA00A3
:10D5500000800100DB000100006E62010D02F1ECB1
:10D5600056030000000100584BCF412FF6CF5B5C03
-:10D57000765C74EC04000CE0A045F93008FC193F1F
-:10D58000E0E0A04506149216930C9CE0A045FC1424
-:10D59000981699049A069BE0A045A4C052304CEF1F
-:10D5A0005C002AC0E8089CE0A045EE149816990497
-:10D5B0009A069BE0A04596C042303CEF5C002AE012
-:10D5C0006B3334EA1B40530A9CE0A03691C063E001
+:10D57000765C74EC04000CE0A046353008FC193FE2
+:10D58000E0E0A04542149216930C9CE0A0463814AB
+:10D59000981699049A069BE0A045E0C052304CEFE3
+:10D5A0005C002AC0E8089CE0A0462A14981699045A
+:10D5B0009A069BE0A045D2C042303CEF5C002AE0D6
+:10D5C0006B3334EA1B40530A9CE0A036CDC063E0C5
:10D5D0006C3333EA1C4053C0280A9C02984139EF4F
:10D5E0003A00A80E9BFE3BFE54FEB0FCC9EEFA00CA
:10D5F000DC620C307BF40B0D08EE09002BF74C01BC
:10D6000004E00C1510C0B0620C149B201B3079F69E
:10D61000090D08EE09002BF74C01040E9BFE3BFEA2
:10D62000FC620CFEB0FD56EF4C00F8620CE0A01F4F
-:10D6300069189BEF4B00D40E9CFE3CFF64780950A8
+:10D63000A5189BEF4B00D40E9CFE3CFF647809506C
:10D64000D9781950E9782950F90E9C1A9A3348195B
:10D650000914A92048CFD14129411AEEFC00F8FE57
-:10D66000B0FD62E00C151000C6BE001302F1EC56CE
+:10D66000B0FD62E00C15100007B6001302F1EC5695
:10D670000400DB0000800100DC000100007A4A01A8
:10D680000D02F1EC56030000000100C170009CE0A7
-:10D69000A03688411B760BE0A034BA6E6BE0A03454
-:10D6A000618F6C009CE0A0367D413B760BE0A0349E
-:10D6B000AF6E5BE0A034568F5C2F0DE3CF8EFF8002
-:10D6C00001489C80016702800165268001671C80FB
-:10D6D0000166788001488480011A9880014914D736
+:10D69000A036C4411B760BE0A034F66E6BE0A034DC
+:10D6A0009D8F6C009CE0A036B9413B760BE0A03426
+:10D6B000EB6E5BE0A034928F5C2F0DE3CF8EFF808A
+:10D6C0000149148001677A8001659E80016794801A
+:10D6D0000166F0800148FC80011B108001498CD755
:10D6E00031201D14901291109440C540D7300C8108
:10D6F0000C830C3003C2C82FF740FC1837C0213010
:10D7000007EE061502E8060002640C402BE0A03389
-:10D71000BB500C640C402BE0A033B6400BE0A034AF
-:10D7200077600BE0A0341E810C0A066C0C403BE0D5
-:10D73000A033AA18926C0C403BE0A033A5049BE0F8
-:10D74000A03466620BE0A0340D830C2FF340EC187C
-:10D7500033CD3540ECE0A0363B189B600CE0A034A4
-:10D76000CB810C40ECE0A03633189B620CE0A03477
-:10D77000C3830C2FFDDB32800143F88001494080D8
-:10D78000014668EBCD40E0149712960023FD00138C
+:10D71000F7500C640C402BE0A033F2400BE0A03437
+:10D72000B3600BE0A0345A810C0A066C0C403BE05D
+:10D73000A033E618926C0C403BE0A033E1049BE080
+:10D74000A034A2620BE0A03449830C2FF340EC1804
+:10D7500033CD3540ECE0A03677189B600CE0A03567
+:10D7600007810C40ECE0A0366F189B620CE0A034FF
+:10D77000FF830C2FFDDB3280014470800149B880AB
+:10D780000146E0EBCD40E014971296005ACE00130C
:10D7900002F1EC560400DC0000800100DD00010015
:10D7A0000010F2010D02F1EC560300000001001020
-:10D7B00095E0A033E9FC1B3F00E0A0343B8F0C0A4E
-:10D7C0009C0C9BE0A033E0FC1B3F00E0A034324007
-:10D7D0004B970C406C405BE0A033D6FC1B3F00E055
-:10D7E000A03428407B970CE3CF80E0800144D480B4
-:10D7F000014580D431209D300C507C506C505C50E1
-:10D800004C508C3000E067286CEA1700003005EFC0
-:10D8100055004AE06C1E48EA1C00007806E06C1EC9
-:10D820004CEA1C00009906E06C1E44EA1C000078DB
-:10D830000CE0A035C9189BFC1C447AE0A0346E189B
-:10D8400094E06C1E48EA1C00009904E06C1F20EA7A
+:10D7B00095E0A03425FC1B3F00E0A034778F0C0AD5
+:10D7C0009C0C9BE0A0341CFC1B3F00E0A0346E408E
+:10D7D0004B970C406C405BE0A03412FC1B3F00E018
+:10D7E000A03464407B970CE3CF80E08001454C80FF
+:10D7F0000145F8D431209D300C507C506C505C5069
+:10D800004C508C3000E0672884EA1700003005EFA8
+:10D8100055004AE06C1E60EA1C00007806E06C1EB1
+:10D8200064EA1C00009906E06C1E5CEA1C000078AB
+:10D830000CE0A03605189BFC1C447AE0A034AA1822
+:10D8400094E06C1E60EA1C00009904E06C1F38EA4A
:10D850001C00007803EEFC032C061C2ADC353BF888
:10D860000B0D0AE5DBC01059A2C054EEFC033C5876
-:10D870001CC3D10C9C089BE0A03450E0A0358C1850
+:10D870001CC3D10C9C089BE0A0348CE0A035C818D8
:10D88000965C765846E084009DEF1C0046582CC0FC
-:10D8900094E06C1E3CEA1C0000780C580CE0800000
-:10D8A00091F9D6C010E0A044933008FC193FF8006D
-:10D8B0006800001302F1EC560400DD000080010056
+:10D8900094E06C1E54EA1C0000780C580CE08000E8
+:10D8A00091F9D6C010E0A044CF3008FC193FF80031
+:10D8B000C36A001302F1EC560400DD000080010091
:10D8C000DE000100008539010D02F1EC5603000075
-:10D8D000000100E0A04393BB1BEF1C0042E0A0440A
-:10D8E00089BB08E0A04434C7E2EF1C00460C0CEFF3
-:10D8F0005C0046F9D6C010E0A03578089BE0A03364
-:10D90000ABE06B1E48EA1B0000970CEF56004AEE96
+:10D8D000000100E0A043CFBB1BEF1C0042E0A044CE
+:10D8E000C5BB08E0A04470C7E2EF1C00460C0CEF7B
+:10D8F0005C0046F9D6C010E0A035B4089BE0A03328
+:10D90000E7E06B1E60EA1B0000970CEF56004AEE42
:10D91000FC0310EF4C0314EEFC0320EF4C0324F93E
-:10D92000D2C010E0A035621896353A049BFAEB009D
+:10D92000D2C010E0A0359E1896353A049BFAEB0061
:10D93000080E9BFE3BFE44069ABB1B0E9829080E60
:10D9400099FE39FCE00E9AFE3AFCF0149212941003
-:10D9500093EEFC031C0C9BE0A033F2189B1691EE97
-:10D96000FC030C0C9BE0A033EB06980899049A0288
+:10D9500093EEFC031C0C9BE0A0342E189B1691EE5A
+:10D96000FC030C0C9BE0A0342706980899049A024B
:10D970009BFEB0FEDBEF1C004AF80B1510C120E047
-:10D98000A035341896EEFC03100C9BE0A033D8EFC2
-:10D990004C0310EEFC03200C9BE0A033D1EF4C03B2
-:10D9A00020E06C1E48EA1C0000780C301BEA1B408B
-:10D9B00000E0A034D3C1A3EEFC0310FC1B4120E027
-:10D9C000A034D8C132EEFC0320FC1B4220E0A0347E
-:10D9D000D1C0C2006631001302F1EC560400DE0033
+:10D98000A035701896EEFC03100C9BE0A03414EF49
+:10D990004C0310EEFC03200C9BE0A0340DEF4C0375
+:10D9A00020E06C1E60EA1C0000780C301BEA1B4073
+:10D9B00000E0A0350FC1A3EEFC0310FC1B4120E0EA
+:10D9C000A03514C132EEFC0320FC1B4220E0A03540
+:10D9D0000DC0C200AECE001302F1EC560400DE0012
:10D9E00000800100DF000100003A82010D02F1EC2D
-:10D9F00056030000000100E06C1D60EA1C00002DD1
+:10D9F00056030000000100E06C1D78EA1C00002DB9
:10DA00006C988C583CC044EF550046C439E0611E08
-:10DA10003CEA110000620B580BC181EF1A0046145A
-:10DA20009C583CC135E06B1E38EA1B000076091497
+:10DA100054EA110000620B580BC181EF1A00461442
+:10DA20009C583CC135E06B1E50EA1B00007609147F
:10DA3000099709830AEF1B004A140BEF5B004AFEAB
:10DA4000B0FCB4EF550046C058580BC030EF55003D
:10DA500046EEF60320FC133FE0EEFB03240C9CE0B3
-:10DA6000A032B6E0A0436630080699E0A042D93063
-:10DA700008FC194020E0A0437DC153EEFB0310EEEB
-:10DA8000FC0314E0A032A4E0A0435414981699308B
-:10DA90000A069BE0A042C53008FC193FF8E0A0430D
-:10DAA00069C0A2EF1C0042582CC065620C580CE003
+:10DA6000A032F2E0A043A230080699E0A0431530AE
+:10DA700008FC194020E0A043B9C153EEFB0310EEAF
+:10DA8000FC0314E0A032E0E0A04390149816993013
+:10DA90000A069BE0A043013008FC193FF8E0A043D0
+:10DAA000A5C0A2EF1C0042582CC065620C580CE0C7
:10DAB0008100F1CAAB620C580CC1B1FC1B42480C8E
-:10DAC0009CE0A03469C083EEFC0310FC1B420CE018
-:10DAD000A03462C0E2EF1C00462FFCEF5C0046EE73
-:10DAE000FC032CE06B1E40EA1B0000970CCD28EFD6
-:10DAF0001C0046F80B151000BEEE001302F1EC56A8
+:10DAC0009CE0A034A5C083EEFC0310FC1B420CE0DC
+:10DAD000A0349EC0E2EF1C00462FFCEF5C0046EE37
+:10DAE000FC032CE06B1E58EA1B0000970CCD28EFBE
+:10DAF0001C0046F80B151000F868001302F1EC56F4
:10DB00000400DF0000800100E000010000A5E90141
:10DB10000D02F1EC56030000000100C140E06B1E55
-:10DB200038EA1B0000760A180A970A620B180B8362
+:10DB200050EA1B0000760A180A970A620B180B834A
:10DB30000BEF1B004A180BEF5B004AFEB0FC48EFEE
-:10DB4000550046E06C1E48EA1C00007806620C583E
-:10DB50000CC1D1FC1B3F800C9CE0A0342FE0830063
-:10DB6000ACE06B6667EA1B40160C9CE0A0341AC060
+:10DB4000550046E06C1E60EA1C00007806620C5826
+:10DB50000CC1D1FC1B3F800C9CE0A0346BE0830027
+:10DB6000ACE06B6667EA1B40160C9CE0A03456C024
:10DB7000C3EF1C0048582CC074EF1C00482FFCEF6A
-:10DB80005C0048C998830CEF550048E0641E50EAD9
+:10DB80005C0048C998830CEF550048E0641E68EAC1
:10DB9000140000620C580CC0B18906EEFC0310EFB3
:10DBA0004C0318EEFC0320EF4C0328C648680CE039
-:10DBB000A042D2E068CCCDEA18CCCCE069CCCCEA6B
-:10DBC000193FE4E0A0423F149216930C9CE0A0425F
-:10DBD000C304980699E0A042DFC2F2EF1C0042584D
-:10DBE0002CC2B5FC1C40000C9BE0A03259E06B1E1F
-:10DBF00048EA1B0000970CE06C1E38EA1C00007815
+:10DBB000A0430EE068CCCDEA18CCCCE069CCCCEA2E
+:10DBC000193FE4E0A0427B149216930C9CE0A04223
+:10DBD000FF04980699E0A0431BC2F2EF1C004258D4
+:10DBE0002CC2B5FC1C40000C9BE0A03295E06B1EE3
+:10DBF00060EA1B0000970CE06C1E50EA1C000078E5
:10DC00000B2FFB990B301CFEB0FBE2620C2FFC8348
-:10DC10000C3010EEFC0310EF4C031400A71300139C
+:10DC10000C3010EEFC0310EF4C031400E3EA001389
:10DC200002F1EC560400E00000800100E100010078
:10DC3000001958010D02F1EC56030000000100EE3E
-:10DC4000FC0320EF4C0324E06C1E48EA1C00007823
-:10DC50000CE06B1E4CEA1B0000970C0E9AFE3AFC7F
+:10DC4000FC0320EF4C0324E06C1E60EA1C0000780B
+:10DC50000CE06B1E64EA1B0000970C0E9AFE3AFC67
:10DC6000D8EEFB0320FAEB0008EEFA03240E9BFE2D
:10DC70003BFCE8BB1BEEF80310EEF90314089AE036
-:10DC80006C1E48EA1C0000780BE06C1E4CEA1C007D
+:10DC80006C1E60EA1C0000780BE06C1E64EA1C004D
:10DC900000780CFEB0FDD25800C060EF1C004A2F87
:10DCA000FCEF5C004AFAC8FFE0FAC9FFF0FACAFFCD
:10DCB000ECFACBFFE8EF1C004AFEB0FC694049409B
:10DCC0005A406BEEFC032CFEB0FC08301C507CE08C
-:10DCD0006B1E84EA1B0000970CEEFC032CE06B1F0C
-:10DCE00020EA1B0000970CE06C1E44EA1C0000991F
+:10DCD0006B1E9CEA1B0000970CEEFC032CE06B1FF4
+:10DCE00038EA1B0000970CE06C1E5CEA1C000099EF
:10DCF00005300CEF4C030CEF4C031CEF45033C408C
-:10DD00007C2F7DD832D703800148E48001671C80D6
-:10DD100000DC54800149148001652680016678800A
+:10DD00007C2F7DD832D7038001495C8001679480E5
+:10DD100000DC548001498C8001659E800166F080A2
:10DD200000D8B08000DCF88000DA4C8000D998D6AA
:10DD300031205D169C1491300B502B3005E06B00A8
-:10DD40007B0E001302F1EC560400E100008001009C
+:10DD4000203F001302F1EC560400E10000800100C6
:10DD5000E2000100008C93010D02F1EC560300007B
-:10DD60000001001E84EA1B00009705F7D1C010E0F7
-:10DD7000A01B56E067286CEA170000EEFC03405831
-:10DD80005CC0D1301CE06B1E84EA1B0000970C3095
+:10DD60000001001E9CEA1B00009705F7D1C010E0DF
+:10DD7000A01B92E0672884EA170000EEFC034058DD
+:10DD80005CC0D1301CE06B1E9CEA1B0000970C307D
:10DD900001EF4C033CEF450340CDB9E04100C9C061
-:10DDA00045301CEF4C033CE06C1E44EA1C0000783C
-:10DDB0000B020B990BEEFC032CE06B1F20EA1B00FF
+:10DDA00045301CEF4C033CE06C1E5CEA1C00007824
+:10DDB0000B020B990BEEFC032CE06B1F38EA1B00E7
:10DDC00000760B163CC041301CEF4C033CEEFC03CC
:10DDD00030F800100C0E00406C780C810C406C7810
:10DDE0001C811C406C782C812C6ECC406B760BE037
-:10DDF000A030B6E0A041D414921693BFD36EDC409D
-:10DE00006B761BE0A030ACE0A041CABFDBFAEB00B0
-:10DE10000C6EEC406B762BE0A030A2E0A041C0BFBE
-:10DE2000DBBB1B049A069BFAE8000CE0A0401ABB7F
-:10DE300008E0A04017E0A0328F1896EF1C0044EED7
-:10DE40000C0024E8FB03440C9CE0A03089EEFB03AB
-:10DE50006CE0A030F3EF4C036CE9460344FC1B413B
-:10DE600020E0A000E182001302F1EC560400E20081
+:10DDF000A030F2E0A0421014921693BFD36EDC4024
+:10DE00006B761BE0A030E8E0A04206BFDBFAEB0037
+:10DE10000C6EEC406B762BE0A030DEE0A041FCBF46
+:10DE2000DBBB1B049A069BFAE8000CE0A04056BB43
+:10DE300008E0A04053E0A032CB1896EF1C0044EE5F
+:10DE40000C0024E8FB03440C9CE0A030C5EEFB036F
+:10DE50006CE0A0312FEF4C036CE9460344FC1B41FE
+:10DE600020E0A00067EB001302F1EC560400E20092
:10DE700000800100E3000100003328010D02F1ECF5
-:10DE80005603000000010031B5E06B1E80EA1B0064
-:10DE900000970CE06C2BECEA1C0000780C0C9BE06B
-:10DEA000A030DEE06B2BECEA1B0000970C602C60CE
-:10DEB000146006189BE0A031291893089C089BE089
-:10DEC000A0312418940C9C0C9BE0A0311F089BE00F
-:10DED000A030C6069BE0A030C3E0A04173E0A0667E
-:10DEE00023E0A0324B1896EEFC0338580CC12130C9
+:10DE80005603000000010031F1E06B1E98EA1B0010
+:10DE900000970CE06C2C04EA1C0000780C0C9BE052
+:10DEA000A0311AE06B2C04EA1B0000970C602C6078
+:10DEB000146006189BE0A031651893089C089BE04D
+:10DEC000A0316018940C9C0C9BE0A0315B089BE097
+:10DED000A03102069BE0A030FFE0A041AFE0A067C8
+:10DEE00007E0A032871896EEFC0338580CC12130A9
:10DEF0000CC068EE0C002BF746004C2FFC5C7C58E5
-:10DF00004CCF95FC1B40800C9CE0A030FFEF4C00F8
+:10DF00004CCF95FC1B40800C9CE0A0313BEF4C00BB
:10DF10006CEEFC0330EE0C0022653B0C9CE0A03064
-:10DF2000316FBBE0A0309C1894EF44006CE54600D4
+:10DF20006D6FBBE0A030D81894EF44006CE546005C
:10DF30004CEEFC032CEE0C0023E7440070EEFB03D8
-:10DF40000C089CE0A0308CEF4C030C657B089CE037
-:10DF5000A030181896E74601BCE544005CEEFB03D0
-:10DF60001CE0A0307DEF4C031C0E9C2D0C4069B3CF
+:10DF40000C089CE0A030C8EF4C030C657B089CE0FB
+:10DF5000A030541896E74601BCE544005CEEFB0394
+:10DF60001CE0A030B9EF4C031C0E9C2D0C4069B393
:10DF70000BB92A130A18AAEEFC0334580CC070EE31
-:10DF8000FC0334201CEF4C000C91001302F1EC5602
+:10DF8000FC0334201CEF4C0058F8001302F1EC564F
:10DF90000400E30000800100E4000100002700010C
:10DFA0000D02F1EC560300000001000334CF58EEDF
-:10DFB000F30308300B069CE0A0323CC0B3300B0CDE
-:10DFC0009CE0A03243C062EF1C00422FFCEF5C00DB
+:10DFB000F30308300B069CE0A03278C0B3300B0CA2
+:10DFC0009CE0A0327FC062EF1C00422FFCEF5C009F
:10DFD00042EF1C003C2FFCEF5C003CEEFC03405881
:10DFE0001CC050EEFC0340583CC411EF1C003C58D0
-:10DFF0002CC304E06B1D60EA1B00002D6B968B5850
-:10E000004BC284E06C1E3CEA1C0000780C580CE00B
+:10DFF0002CC304E06B1D78EA1B00002D6B968B5838
+:10E000004BC284E06C1E54EA1C0000780C580CE0F3
:10E010008100C43014EA144060069C089BE0A032E2
-:10E0200015C0620C9C089BE0A03204C0F2FC14C036
-:10E0300040069C089BE0A031FDE08300AF0C9C08EB
-:10E040009BE0A03203E08200A9301CEF4C033CCAE5
+:10E0200051C0620C9C089BE0A03240C0F2FC14C0BE
+:10E0300040069C089BE0A03239E08300AF0C9C08AE
+:10E040009BE0A0323FE08200A9301CEF4C033CCAA9
:10E050004858ECC0C5EF1B003EF60A1510C040162C
:10E060000C599CC045301CEF4C033CEEFC0340585F
:10E070000CC080581CC1D0582CC3D0583CC480C69A
-:10E08000483014EA144060069C089BE0A031DEC5CD
-:10E09000C20C9C089BE0A031CDC573EF1C003C581E
-:10E0A0006CC033EF55003C301CEF4C006A7100131C
+:10E08000483014EA144060069C089BE0A0321AC590
+:10E09000C20C9C089BE0A03209C573EF1C003C58E1
+:10E0A0006CC033EF55003C301CEF4C0060E70013B0
:10E0B00002F1EC560400E40000800100E5000100DC
:10E0C000004DB8010D02F1EC560300000001000301
:10E0D00040C4D8E064CCCDEA143E4C069C089BE0DA
-:10E0E000A031BAC4430C9C089BE0A031C1C3F2EF3D
+:10E0E000A031F6C4430C9C089BE0A031FDC3F2EFC5
:10E0F0001C003CEF5C003EEF55003CFC1BC0400C9C
-:10E100009CE0A031B5C052303CEF4C0340C2F83027
+:10E100009CE0A031F1C052303CEF4C0340C2F830EB
:10E110002CEF4C0340C2B8FC14C040069C089BE0A6
-:10E12000A0319AC2430C9C089BE0A031A1C1F2CE61
+:10E12000A031D6C2430C9C089BE0A031DDC1F2CEE9
:10E13000CBE064CCCCEA14BE4C069C089BE0A0313A
-:10E1400097C1520C9C089BE0A03186C103EF1C00D4
+:10E14000D3C1520C9C089BE0A031C2C103EF1C005C
:10E150003CEF5C0040EF55003C301BEA1B40600C7C
-:10E160009CE0A03179CB32EF450340EEFC034058F0
+:10E160009CE0A031B5CB32EF450340EEFC034058B4
:10E170001CC251EF1C003EF80B1510C200EF1B0033
:10E1800040F60A1510C1B0160C595CC045301CEFA2
:10E190004C033CEF1C0042584CC045301CEF4C0374
-:10E1A0003CFEB0FBB9502C300CE06B2BECEA1B00B2
-:10E1B00000970CEF550040EF550042E0661E40EA24
+:10E1A0003CFEB0FBB9502C300CE06B2C04EA1B0099
+:10E1B00000970CEF550040EF550042E0661E58EA0C
:10E1C000160000EEFB032C6C0C181B2ADB353C0000
-:10E1D000A6F8001302F1EC560400E50000800100EF
+:10E1D0007B8F001302F1EC560400E5000080010083
:10E1E000E600010000D873010D02F1EC56030000B7
:10E1F000000100F60C0D0AE04B0032C561E0681E1C
-:10E200003CEA1800009105300CE06B1E50EA1B0040
-:10E2100000970CE06B1E58EA1B0000970CE0691D8C
-:10E2200060EA190000937C939CF3550028EF550099
-:10E2300046301CE06B1E84EA1B0000970CE06C1E4D
-:10E2400010EA1C0000300A300BB91BF8EB0008F88C
-:10E25000EB0010F8EB0018E06C1F28EA1C000078B7
-:10E260000C581CC0A1E06B1E38EA1B0000760A7037
-:10E270000C181A970A9105E06C1DC8EA1C0000787A
+:10E2000054EA1800009105300CE06B1E68EA1B0010
+:10E2100000970CE06B1E70EA1B0000970CE0691D74
+:10E2200078EA190000937C939CF3550028EF550081
+:10E2300046301CE06B1E9CEA1B0000970CE06C1E35
+:10E2400028EA1C0000300A300BB91BF8EB0008F874
+:10E25000EB0010F8EB0018E06C1F40EA1C0000789F
+:10E260000C581CC0A1E06B1E50EA1B0000760A701F
+:10E270000C181A970A9105E06C1DE0EA1C00007862
:10E280003B580BC120781B721A160A931A782C2F50
-:10E2900089720B180B930BE06CE608EA1C8001FEF8
+:10E2900089720B180B930BE06CE824EA1C8001FEDA
:10E2A000B0C4F8FEB0F8F4EEFB032C6C0C181B2A7B
:10E2B000DB353CF60C0D0AE04B0021C4A1E0691DE2
-:10E2C00060EA190000300C937C939CE0681E10EA11
+:10E2C00078EA190000300C937C939CE0681E28EAE1
:10E2D000180000300A300BB11BF0EB0008F0EB0027
:10E2E00010F0EB0018F355002A939C301CE06B1ED5
-:10E2F00084EA1B0027F4001302F1EC560400E60048
+:10E2F0009CEA1B00B81F001302F1EC560400E60074
:10E3000000800100E70001000067C8010D02F1EC88
-:10E31000560300000001000000970CE06C1F28EA83
-:10E320001C0000780C581CC0E1E06B1E38EA1B0092
-:10E3300000E0681E3CEA180000760A700C181A9774
-:10E340000A9105E06C1DC8EA1C0000783B580BC11F
+:10E31000560300000001000000970CE06C1F40EA6B
+:10E320001C0000780C581CC0E1E06B1E50EA1B007A
+:10E3300000E0681E54EA180000760A700C181A975C
+:10E340000A9105E06C1DE0EA1C0000783B580BC107
:10E3500020781B721A160A931A782C2F89720B18C0
-:10E360000B930BE06CE608EA1C8001FEB0C4A4FE2F
-:10E37000B0F8A0E06C1E80EA1C00007806FC1B4090
-:10E38000000C9CE0A03098C132E06BFFFEEA1BBF9E
-:10E39000FF0C9CE0A03084C0B35C71E06C1D60EAAF
+:10E360000B930BE06CE824EA1C8001FEB0C4A4FE11
+:10E37000B0F8A0E06C1E98EA1C00007806FC1B4078
+:10E38000000C9CE0A030D4C132E06BFFFEEA1BBF62
+:10E39000FF0C9CE0A030C0C0B35C71E06C1D78EA5B
:10E3A0001C00002D0C780B020B990BC068E06C1D53
-:10E3B00060EA1C000099C5E06C1D60EA1C00002D9D
+:10E3B00078EA1C000099C5E06C1D78EA1C00002D6D
:10E3C0006C988C580CC110301BEA1B41700C9CE0FF
-:10E3D000A03066C0A35C71E06C1F30EA1C000078BE
-:10E3E0000B020B990BC068E06C1F30EA1C0000990F
-:10E3F00005E0641F34EA140000301BEA1B3F000CE8
-:10E400009CE0A0304DC0635C71680C020C890CC0AC
-:10E41000288905EF1C0044004DB5001302F1EC56AD
+:10E3D000A030A2C0A35C71E06C1F48EA1C0000786A
+:10E3E0000B020B990BC068E06C1F48EA1C000099F7
+:10E3F00005E0641F4CEA140000301BEA1B3F000CD0
+:10E400009CE0A03089C0635C71680C020C890CC070
+:10E41000288905EF1C0044003F19001302F1EC5657
:10E420000400E70000800100E800010000F0230183
:10E430000D02F1EC560300000001002FFCEF5C0020
:10E4400044EF1C004458ACC031EF550044EEFC03CF
@@ -3655,17 +3655,17 @@
:10E460002C2FFCEF4C032CEEFC032CE04C0053C093
:10E4700031EF45032CEEFC03302FFCEF4C0330EE64
:10E48000FC0330584CC031EF450330EEFC03382F0D
-:10E49000FCEF4C0338402C2FBDDC32800118B880D3
-:10E4A0000162FC80014668800166388001AF9C8073
-:10E4B0000147F080014580800143F8800144D48009
-:10E4C00000709C8000D8988001489C80014884B1ED
+:10E49000FCEF4C0338402C2FBDDC3280011930805A
+:10E4A000016374800146E0800166B08001B1648040
+:10E4B000014868800145F8800144708001454C8026
+:10E4C00000709C8000D89880014914800148FCB1FC
:10E4D0008CF9DCC001EC1C00015EFCD401201CC0E6
-:10E4E00060201CC070201CC080D80AE0A064EAD85C
-:10E4F0000AE0A06505D80AE0A06520D80AD7038005
-:10E5000001B2848001B2C08001B2FCD401201CC0E1
-:10E5100060201CC070201CC080D80AE0A064E0D835
-:10E520000AE0A064FBD80AE0A06516D80AD70380E9
-:10E5300001B2A08001B2DC8001B31800F8CE001354
+:10E4E00060201CC070201CC080D80AE0A065CED877
+:10E4F0000AE0A065E9D80AE0A06604D80AD703803C
+:10E5000001B44C8001B4888001B4C4D401201CC083
+:10E5100060201CC070201CC080D80AE0A065C4D850
+:10E520000AE0A065DFD80AE0A065FAD80AD7038020
+:10E5300001B4688001B4A48001B4E000056900134F
:10E5400002F1EC560400E80000800100E90001003F
:10E5500000B098010D02F1EC56030000000100200C
:10E560001CC080201CC0C0201CC0F0201C5E0F5EA0
@@ -3682,155 +3682,155 @@
:10E61000C48D2CE46C00048D3C300C8D4CE3CF8019
:10E62000E00000FE7C1814780CA99CF9DCC0015EA7
:10E63000FC0000EBCD408018970E9CCF4FCFE0E35D
-:10E64000CF8080E06C0CFCEA1C0000F92B00005C21
+:10E64000CF8080E06C0D14EA1C0000F92B00005C08
:10E650005BC060202BC070201BC0A05EFDE07C0072
-:10E6600075CE001302F1EC560400E90000800100B1
+:10E660001431001302F1EC560400E90000800100AF
:10E67000EA000100002553010D02F1EC56030000F1
:10E68000000100C1385EFCE06C5A00EA1C02625EC8
:10E69000FCE06C0E00EA1C07275EFCD401CE5FA3F1
-:10E6A0008CD802D401189B302CE0A0578FD80A8058
-:10E6B000019944EBCD40C018961697CF0F8F0CFEF2
+:10E6A0008CD802D401189B302CE0A057CBD80A801C
+:10E6B0000199BCEBCD40C018961697CF0F8F0CFE7A
:10E6C0007C44001836C04130BCCEDFC078FE7C48A8
-:10E6D000001836C03130CCCE6F0E9B0C9CFEB0A61D
-:10E6E0004DE3CD80C0D703800036F4EBCD4080E011
+:10E6D000001836C03130CCCE6F0E9B0C9CE0A00FE2
+:10E6E000A1E3CD80C0D7038001099CEBCD4080E041
:10E6F0006C0160EA1CAA004B5B970C4B1C780CA1C8
-:10E70000DC4B0B970C300CE0A06214E0A042CE3141
+:10E70000DC4B0B970C300CE0A062F8E0A0430A3120
:10E710001CEA1CA500FE6B0000971C3007FE6C0075
:10E72000009907304CEA1CAA004A9B970CFE7C1407
:10E73000049907308CEA1CAA00970C4A5C990730B0
:10E74000CCEA1CAA00970C4A3C9907310CEA1CAA97
-:10E7500000970C4A1C9907E0A066044A1C9907FC24
+:10E7500000970C4A1C9907E0A066E84A1C9907FC40
:10E760001C0FF84A0B970C4A1C780C3447EA17AA7E
:10E77000004A0B9707A5DC49DB970CFE7C1800E0EC
-:10E78000A0026200E8F2001302F1EC560400EA0075
+:10E78000A0026200E5FB001302F1EC560400EA006F
:10E7900000800100EB000100009AE8010D02F1EC9D
-:10E7A00056030000000100E0A06608499C780CE8D0
+:10E7A00056030000000100E0A066EC499C780CE8EC
:10E7B0001C0017498B9707496B970C496B9707B358
:10E7C000CC494B970C34CCEA1CAA00492B970C4936
-:10E7D0002C780CE01CFFF0490B970CE0A06604E3DA
-:10E7E000CF9080FFFF15608001AEAC80017024FFE8
+:10E7D0002C780CE01CFFF0490B970CE0A066E8E3F6
+:10E7E000CF9080FFFF15608001B0748001709CFFA6
:10E7F000FF1458FFFF1408FFFF140CFFFF141080D4
-:10E8000001B6DCFFFF2C70FFFF2E708001B710FFF8
-:10E81000FF1844FFFF1818FFFF184C8001B73CD4C5
-:10E8200001204D1A9CE06BE6A8EA1B8001B709B9EC
+:10E8000001B8A4FFFF2C70FFFF2E708001B8D8FF65
+:10E81000FF1844FFFF1818FFFF184C8001B904D4FB
+:10E8200001204D1A9CE06BE7F4EA1B8001B709B99F
:10E8300028B709B9281A9BFE7C4400C4EF5C6C2FF2
-:10E84000CDD802EBCD40C0201D1897348CE0A061DC
-:10E85000B9E066E83CEA1680015C57C0E0305CE055
-:10E86000A06D4E304CE0A06D4B6C0C500C302B1A50
-:10E870009CE0A06265C0D8315CE0A06D41314CE005
-:10E88000A06D3E6C1C500C302B1A9CE0A0625834DA
-:10E890008CE0A061B92FFDE3CF80C0D401206DFAD8
-:10E8A000CCFFF4E06BE7C000546A001302F1EC56B1
+:10E84000CDD802EBCD40C0201D1897348CE0A062DB
+:10E850009DE066EA4CEA1680015C57C0E0305CE05F
+:10E86000A06E14304CE0A06E116C0C500C302B1AC2
+:10E870009CE0A06349C0D8315CE0A06E07314CE059
+:10E88000A06E046C1C500C302B1A9CE0A0633C342E
+:10E890008CE0A0629D2FFDE3CF80C0D401206DFAF3
+:10E8A000CCFFF4E06BE98800DFAA001302F1EC561C
:10E8B0000400EB0000800100EC000100008EC001AC
:10E8C0000D02F1EC56030000000100EA1B8001B7C5
:10E8D00009B928170818A8C06F503CE06CBDB8EA09
:10E8E0001C8000500CE06CC4A4EA1C8000501CE0AA
:10E8F0006CBD4CEA1C8000502C1A9AFACBFFF4FE37
-:10E900007C4C00E0A063925C6C2FADD802D70380F2
-:10E9100001B35CEBCD4080202D306CE0A06D023067
-:10E920001B306CE0A066FC309CE0A06CFB301B3020
-:10E930009CE0A066F530BCE0A06CF4301B30BCE07D
-:10E94000A066EE30ECE0A06CED301B30ECE0A06691
-:10E95000E7316CE0A06CE6301B316CE0A066E03281
-:10E960005CE0A06CDF301B325CE0A066D9329CE03A
-:10E97000A06CD8301B329CE0A066D232BCE0A06C08
-:10E98000D1301B32BCE0A066CB32CCE0A06CCA30E8
-:10E990001B32CCE0A066C432DCE0A06CC3301B327A
-:10E9A000DCE0A066BD32ECE0A06CBC301B32ECE0D9
-:10E9B000A066B6310CE0A06CB5301B310CE0A0664F
-:10E9C000AF323CE0A06CAE301B323C00A999001382
+:10E900007C4C00E0A064765C6C2FADD802D703800D
+:10E9100001B524EBCD4080202D306CE0A06DC830D7
+:10E920001B306CE0A067E0309CE0A06DC1301B3074
+:10E930009CE0A067D930BCE0A06DBA301B30BCE0D1
+:10E94000A067D230ECE0A06DB3301B30ECE0A067E4
+:10E95000CB316CE0A06DAC301B316CE0A067C432F1
+:10E960005CE0A06DA5301B325CE0A067BD329CE08E
+:10E97000A06D9E301B329CE0A067B632BCE0A06D5B
+:10E9800097301B32BCE0A067AF32CCE0A06D903076
+:10E990001B32CCE0A067A832DCE0A06D89301B32CE
+:10E9A000DCE0A067A132ECE0A06D82301B32ECE02D
+:10E9B000A0679A310CE0A06D7B301B310CE0A067A2
+:10E9C00093323CE0A06D74301B323C006ED60013D5
:10E9D00002F1EC560400EC0000800100ED000100A3
:10E9E00000E478010D02F1EC56030000000100E0A4
-:10E9F000A066A8313CE0A06CA7301B313CE0A066CB
-:10EA0000A1326CE0A06CA0301B326CE0A0669A30A2
-:10EA1000DCE0A06C99300B30DCE0A06693300CE0B9
-:10EA2000A06C92301B300CE0A0668C301CE0A06C17
-:10EA30008B301B301CE0A06685302CE0A06C84304D
-:10EA40001B302CE0A0667E303CE0A06C7D301B309B
-:10EA50003CE0A06677307CE0A06C76301B307CE038
-:10EA6000A06670308CE0A06C6F301B308CE0A0662C
-:10EA700069320CE0A06C68301B320CE0A066623298
-:10EA80001CE0A06C61301B321CE0A0665B324CE0E5
-:10EA9000A06C5A300B324CE0A06654311CE0A06CE4
-:10EAA00053300B311CE0A0664D314CE0A06C4C3073
-:10EAB0000B314CE0A06646315CE0A06C45300B3178
-:10EAC0005CE0A0663F304CE0A06C3E300B304CE088
-:10EAD000A06638305CE0A06C37300B305CE0A0669C
-:10EAE00031322CE0A06C30301B322CE0A0662A00C2
-:10EAF0002423001302F1EC560400ED000080010015
+:10E9F000A0678C313CE0A06D6D301B313CE0A0671E
+:10EA000085326CE0A06D66301B326CE0A0677E3012
+:10EA1000DCE0A06D5F300B30DCE0A06777300CE00D
+:10EA2000A06D58301B300CE0A06770301CE0A06D6A
+:10EA300051301B301CE0A06769302CE0A06D4A30DB
+:10EA40001B302CE0A06762303CE0A06D43301B30EF
+:10EA50003CE0A0675B307CE0A06D3C301B307CE08C
+:10EA6000A06754308CE0A06D35301B308CE0A0677F
+:10EA70004D320CE0A06D2E301B320CE0A067463208
+:10EA80001CE0A06D27301B321CE0A0673F324CE039
+:10EA9000A06D20300B324CE0A06738311CE0A06D37
+:10EAA00019300B311CE0A06731314CE0A06D123001
+:10EAB0000B314CE0A0672A315CE0A06D0B300B31CC
+:10EAC0005CE0A06723304CE0A06D04300B304CE0DC
+:10EAD000A0671C305CE0A06CFD300B305CE0A067F0
+:10EAE00015322CE0A06CF6301B322CE0A0670E0033
+:10EAF0004E26001302F1EC560400ED0000800100E8
:10EB0000EE0001000071B3010D02F1EC56030000AC
-:10EB100000010030FCE0A06C29300B30FCE0A06666
-:10EB200023327CE0A06C22300B327CE0A0661C31EA
-:10EB30002CE0A06C1B300B312CE0A0661532ACE051
-:10EB4000A06C14300B32ACE0A0660E328CE0A06CEE
-:10EB50000D300B328CE0A06607E067E814EA1780FE
-:10EB6000016E0C501C302BFACCFFFCE0A0611E6E35
-:10EB70001C500C302B1A9CE0A061182FEDE3CF80C5
-:10EB800080D7038001C6548001BA508001B094EB55
+:10EB100000010030FCE0A06CEF300B30FCE0A0679F
+:10EB200007327CE0A06CE8300B327CE0A06700315B
+:10EB30002CE0A06CE1300B312CE0A066F932ACE0A7
+:10EB4000A06CDA300B32ACE0A066F2328CE0A06C44
+:10EB5000D3300B328CE0A066EBE067EA8CEA1780DA
+:10EB6000016E0C501C302BFACCFFFCE0A062026E50
+:10EB70001C500C302B1A9CE0A061FC2FEDE3CF80E1
+:10EB800080D7038001C7E08001BC188001B25CEB34
:10EB9000CD40C03016FE771C003009300A301BFE15
-:10EBA0007C1C00E0A06562C0C13009300A300BFE59
-:10EBB0007C1C00E0A0655AC031E3CF80C03026CB7A
+:10EBA0007C1C00E0A06646C0C13009300A300BFE74
+:10EBB0007C1C00E0A0663EC031E3CF80C03026CB95
:10EBC0006DCC7DCA2D301AE06B0120E06C4524EA43
-:10EBD0001C8000E0A0670048BC780CEDBC0018CF9A
+:10EBD0001C8000E0A067E448BC780CEDBC0018CFB6
:10EBE000C36E0CA9AC8F0C487C780CEDBC0018CF20
:10EBF000C3E0A001F90C9C5C6CE3CD80C0D703801E
-:10EC000001B954FFFF1C08300BC0B8FE6A0400F4C1
-:10EC10000B002A00BE54001302F1EC560400EE0073
+:10EC000001BB1CFFFF1C08300BC0B8FE6A0400F4F7
+:10EC10000B002A009349001302F1EC560400EE00A9
:10EC200000800100EF00010000CE08010D02F1ECB0
:10EC3000560300000001007409E019FFF8A1A9952E
:10EC4000092FFB584BCF53300BC0F8FE6A0440F439
:10EC50000B002A7409E419FFFCE2780000F1EC01D2
:10EC600008104995092FFB584BCF135EFD0000D4C7
-:10EC700001300CCDCF340CE0A0600E345CE0A0601D
-:10EC80000B347CE0A06008349CE0A0600534ACE06C
-:10EC9000A0600234CCE0A05FFF34ECE0A05FFC3564
-:10ECA0007CE0A05FF9359CE0A05FF6360CE0A05F49
-:10ECB000F3361CE0A05FF0320CE0A05FED322CE0F8
-:10ECC000A05FEA324CE0A05FE7340CEA1CAA0048DF
+:10EC700001300CCDCF340CE0A060F2345CE0A06039
+:10EC8000EF347CE0A060EC349CE0A060E934ACE0C0
+:10EC9000A060E634CCE0A060E334ECE0A060E035B6
+:10ECA0007CE0A060DD359CE0A060DA360CE0A0607E
+:10ECB000D7361CE0A060D4320CE0A060D1322CE04A
+:10ECC000A060CE324CE0A060CB340CEA1CAA004815
:10ECD0009B970C300C487B970C310CEA1CAA00481F
:10ECE0005B970CE06C0081FE7B1410970CD80AFF38
:10ECF000FF1440FFFF1458791B344AEA1AAA0099FE
:10ED00006AA5DBF94B00445EFD0000D401E1BC00C4
:10ED100000FEB0FC5DD303E06B0160EA1BAA00FEBD
:10ED20007A1458950BE06B00C0484A950B5C5CC0A8
-:10ED300020D503D80AD703007CC5001302F1EC5696
+:10ED300020D503D80AD703003E2C001302F1EC566D
:10ED40000400EF0000800100F000010000DE60011F
:10ED50000D02F1EC56030000000100FFFF1560EB0F
-:10ED6000CD4080301CE0674EF0EA170000AE9C30CA
+:10ED6000CD4080301CE0674F08EA170000AE9C30B1
:10ED70000BAEFBEF6B000DEF6B0019EF6B0013AEEA
:10ED8000ABEF6B0008EF6B000EEF6B001AEF6B0040
:10ED900014AECBEF6B000AEF6B0010EF6B001CEFB3
:10EDA0006B0016AEDCEF6C000BEF6C0011EF6C002B
:10EDB0001DEF6C0017AE8C302CAEEC303CEF6C00CD
:10EDC0000C305CEF6C0018304CEF6C0012306B3282
-:10EDD0007CE0A0601F306B328CE0A0601B306B3099
-:10EDE000FCE0A06017306B312CE0A06013306B3278
-:10EDF000ACE0A0600F305A0E9BFE7C2400E0A05CCB
-:10EE000033E3CF8080D7038001B0B48001A908D458
+:10EDD0007CE0A06103306B328CE0A060FF306B30D0
+:10EDE000FCE0A060FB306B312CE0A060F7306B32B0
+:10EDF000ACE0A060F3305A0E9BFE7C2400E0A05DE6
+:10EE000017E3CF8080D7038001B27C8001AAD0D4E1
:10EE1000211895169714960A942FF45C64346CE0CC
-:10EE2000A05F2AEA0C1518C261EC0C1518C08130DD
-:10EE30000CE06B4EF0EA1B0000B6BCC0985816C040
-:10EE400071301CE06B4EF0EA1B0000B6BCE06C4E6B
-:10EE5000F0EA1C0000301B198AF60A0015DF0013C7
+:10EE2000A0600EEA0C1518C261EC0C1518C08130F8
+:10EE30000CE06B4F08EA1B0000B6BCC0985816C027
+:10EE400071301CE06B4F08EA1B0000B6BCE06C4F51
+:10EE500008EA1C0000301B198AF60A0005CF0013CF
:10EE600002F1EC560400F00000800100F100010006
:10EE700000CADD010D02F1EC56030000000100099B
:10EE80004B19BC581C4B6C780CC031184BC0381651
:10EE90008C189B4B2C990B5C57C4B0089BFE7C24B0
-:10EEA00000E0A05C555815C101301AE06B0161E02B
-:10EEB0006C44F4EA1C8000E0A065C4089BFE7C243E
-:10EEC00000E0A05C51C468EA0C1518C101301AE0DA
-:10EED0006B0160E06C4518EA1C8000E0A065B20898
-:10EEE0009BFE7C2400E0A05C3FC3485835C1013044
-:10EEF0001AE06B0163E06C4500EA1C8000E0A0654D
-:10EF0000A1089BFE7C2400E0A05C2EC2385845C2BC
+:10EEA00000E0A05D395815C101301AE06B0161E046
+:10EEB0006C44F4EA1C8000E0A066A8089BFE7C2459
+:10EEC00000E0A05D35C468EA0C1518C101301AE0F5
+:10EED0006B0160E06C4518EA1C8000E0A0669608B3
+:10EEE0009BFE7C2400E0A05D23C3485835C101305F
+:10EEF0001AE06B0163E06C4500EA1C8000E0A0664C
+:10EF000085089BFE7C2400E0A05D12C2385845C2F3
:10EF100011301AE06B0180E06C450CEA1C8000E0C7
-:10EF2000A06590089BFE7C2400E0A05C1DC12858D1
+:10EF2000A06674089BFE7C2400E0A05D01C1285807
:10EF300015C060EA0C1518C0305835C061089BFE3A
-:10EF40007C2400E0A05C16089BFE7C2400E0A05C12
-:10EF500005346CE0A05EC4D82AD703FFFF241C80D0
-:10EF600001A9CC8001BCC08001A9E48001A9F08086
-:10EF700001A9D8FE7C1C08780BEDBB0018CFB300AC
-:10EF8000FDB4001302F1EC560400F1000080010012
+:10EF40007C2400E0A05CFA089BFE7C2400E0A05C2E
+:10EF5000E9346CE0A05FA8D82AD703FFFF241C8007
+:10EF600001AB948001BE888001ABAC8001ABB8805E
+:10EF700001ABA0FE7C1C08780BEDBB0018CFB300E2
+:10EF8000813A001302F1EC560400F1000080010008
:10EF9000F2000100005F16010D02F1EC56030000C3
:10EFA000000100485B760BA9AB484A950B780BED46
:10EFB000BB0018CFD35EFDFFFF1C10FE7C1C087841
@@ -3838,199 +3838,199 @@
:10EFD0000B780BEDBB0018CFD35EFDFFFF1C1CFEB2
:10EFE0007C1C08780BEDBB0018CFB3485B760BA9EF
:10EFF000AB484A950B780BEDBB0018CFD35EFDFFF5
-:10F00000FF1C0CEBCD4080581BC0D1E0A02B56E07C
-:10F010006B126FEA1B4183E0A02986E0A02B281821
-:10F020009BC0A8E0A02B4AFC1B4266E0A0297CE024
-:10F03000A02B1E189B4A0C780CEDBC0018CFC3FE09
-:10F040007C1C00E0A0639449BC780CEDBC0018CF98
-:10F05000C3300BFE7C1C00E0A0637CE3CF8080808B
-:10F0600001491480014580800148C88001B9C880E9
-:10F0700001B9AC490C780CEDBC0018CFC3FE7C1C68
+:10F00000FF1C0CEBCD4080581BC0D1E0A02B92E040
+:10F010006B126FEA1B4183E0A029C2E0A02B6418A9
+:10F020009BC0A8E0A02B86FC1B4266E0A029B8E0AC
+:10F03000A02B5A189B4A0C780CEDBC0018CFC3FECD
+:10F040007C1C00E0A0647849BC780CEDBC0018CFB3
+:10F05000C3300BFE7C1C00E0A06460E3CF808080A6
+:10F0600001498C800145F8800149408001BB9080B6
+:10F0700001BB74490C780CEDBC0018CFC3FE7C1C9E
:10F0800000780BA1CB990B48BC780CEDBC0018CFD5
:10F09000C35EFD488C780CEDBC0018CFC3FE7C1C11
-:10F0A00000780B00FD2A001302F1EC560400F20078
+:10F0A00000780B009AA0001302F1EC560400F20065
:10F0B00000800100F300010000E0AD010D02F1EC61
:10F0C00056030000000100A1AB990B483C780CED01
:10F0D000BC0018CFC35EFDFFFF1C08300CFE7B1C7C
:10F0E00000760BEDBB0000C022301C5C5C5EFCD4E3
-:10F0F00001340CFE6B0000970CE0A05369DA0A8023
-:10F10000019A04D401205D343CE0A05DEB301CFE8C
+:10F0F00001340CFE6B0000970CE0A053A5DA0A80E7
+:10F10000019A7CD401205D343CE0A05ECF301CFE2F
:10F11000B0FAACE06904C4301A301B1A9CFEB0FB94
-:10F120001B301CFEB0FAF0300B1A9CE0A04AC23033
-:10F130002A302B302CE0A05305300CFEB0FB3030D1
-:10F140002CE0A0532F303CFEB0FAA8343CE0A05D88
-:10F15000EB2FBDDA0AD7038001AF18800188E88061
-:10F16000019978800199D88001AF5C3FFB5C5C20FD
+:10F120001B301CFEB0FAF0300B1A9CE0A04AFE30F7
+:10F130002A302B302CE0A05341300CFEB0FB303095
+:10F140002CE0A0536B303CFEB0FAA8343CE0A05E4B
+:10F15000CF2FBDDA0AD7038001B0E080018960803B
+:10F160000199F080019A508001B1243FFB5C5C2042
:10F170001CC083203CC053E088000520DCC0223046
:10F180001B169C5C6C5EFC300B201C5C5C58DCF934
:10F19000BC02011E0C19EC180F10121012121212E0
:10F1A00012101012101000301B169C5C6C5EFC3F9D
:10F1B000FB591CF9BC02111E0C19EC180F14141881
-:10F1C000141418141418180085E5001302F1EC56F5
+:10F1C0001414181414181800CC04001302F1EC568F
:10F1D0000400F30000800100F400010000F4850148
:10F1E0000D02F1EC5603000000010018141C182059
-:10F1F000141422302BC068301BC048304BC028305C
-:10F200003B169C5C6C5EFCEBCD40C0E0673264EA70
-:10F21000170000E0A06A4C8F0CE0A04D81E0A06ACE
-:10F220004D8F1C3006C0D85906C071E06AA6A8EA06
+:10F1F000201422302BC068301BC048304BC0283050
+:10F200003B169C5C6C5EFCEBCD40C0E067327CEA58
+:10F21000170000E0A06B1A8F0CE0A04DBDE0A06BC2
+:10F220001B8F1C3006C0D85906C071E06AA720EABF
:10F230001A8001F74A021C787C5D1C2FF65C665927
:10F2400016E08400AF6E1BEC0C1505160C300AB8E6
:10F250008AB89A3FF9B8A9B8BAB83AB8CA5836C005
-:10F2600081E06A39C8EA1A8001F74A007CCE5B580F
-:10F2700016C071E06AC1D8EA1A800197FACDDB584E
-:10F2800026C081E06ABE70EA1A8001F74A005CCDB0
-:10F290004B5806C03058D6C201E06BC8E0EA1B806C
-:10F2A00001992BE06BC8E4EA1B8001993BE06BC835
-:10F2B000F4EA1B8001994BE06BC8F0EA1B800199CE
-:10F2C0005BE06BC8ECEA1B8001996BE06BC8E4EA79
-:10F2D0001B8001997BCB1B5846C081E06ABFE0EAE6
-:10F2E0001A8001F74A009CCA8B58560070420013DE
+:10F2600081E06A3A40EA1A8001F74A007CCE5B5896
+:10F2700016C071E06AC3A0EA1A800197FACDDB5884
+:10F2800026C081E06AC038EA1A8001F74A005CCDE6
+:10F290004B5806C03058D6C201E06BCA7CEA1B80CE
+:10F2A00001992BE06BCA80EA1B8001993BE06BCA95
+:10F2B00090EA1B8001994BE06BCA8CEA1B80019994
+:10F2C0005BE06BCA88EA1B8001996BE06BCA80EA3D
+:10F2D0001B8001997BCB1B5846C081E06AC1A8EA1C
+:10F2E0001A8001F74A009CCA8B585600292B00133C
:10F2F00002F1EC560400F40000800100F50001006A
:10F30000009E3D010D02F1EC56030000000100C01B
-:10F3100081E06A7878EA1A8001F74A00BCC9FB5894
-:10F3200066C081E06ABF8CEA1A8001F74A00DCC936
-:10F330006B5876C081E06A3ED8EA1A8000F74A002E
-:10F34000FCC8DB5886C081E06A8DBCEA1A8001F7F0
-:10F350004A011CC84B5896C081E06A67D4EA1A80FB
-:10F3600001F74A013CC7BB58A6C081E06AC088EAE1
-:10F370001A8001F74A015CC72B58B6C081E06AC108
-:10F3800030EA1A8001F74A017CC69B58C6C081E06A
-:10F390006ABE0CEA1A8001F74A019CC60B58E6C007
-:10F3A00081E06A8088EA1A8001F74A01DCC57B584F
-:10F3B000F6FE91FF4DE06AA3D4EA1A8001F74A01F4
-:10F3C000FCC4DBE3CF90C08001C8C080018F3080D7
-:10F3D00001C8CCEBCD40FC209D189716943016EE5A
-:10F3E000051505E0633264EA13000058B4C1F16604
+:10F3100081E06A78F0EA1A8001F74A00BCC9FB581C
+:10F3200066C081E06AC154EA1A8001F74A00DCC96C
+:10F330006B5876C081E06AA854EA1A8001F74A0047
+:10F34000FCC8DB5886C081E06A8E34EA1A8001F777
+:10F350004A011CC84B5896C081E06A684CEA1A8082
+:10F3600001F74A013CC7BB58A6C081E06AC250EA17
+:10F370001A8001F74A015CC72B58B6C081E06AC207
+:10F38000F8EA1A8001F74A017CC69B58C6C081E0A2
+:10F390006ABFD4EA1A8001F74A019CC60B58E6C03E
+:10F3A00081E06A8100EA1A8001F74A01DCC57B58D6
+:10F3B000F6FE91FF4DE06AA44CEA1A8001F74A017B
+:10F3C000FCC4DBE3CF90C08001CA5C80018FA880C1
+:10F3D00001CA68EBCD40FC209D189716943016EEBC
+:10F3E000051505E063327CEA13000058B4C1F166EC
:10F3F000120A02059C581CC1A5F9D7B008CDBE5809
:10F400001CC1550592F9D7B008CD5EF8021900006D
-:10F41000CCA1001302F1EC560400F50000800100BD
+:10F41000B064001302F1EC560400F5000080010016
:10F42000F6000100000BF6010D02F1EC560300009E
:10F43000000100C0E50E9CC08D1896300C661B0ABA
-:10F440000BB69CE06CE414EA1C8001FEB0BD426681
+:10F440000BB69CE06CE5D0EA1C8001FEB0BD4266C4
:10F450001C0A0C198B581BC184199B581BC15430B2
:10F460000BB88BB89BFACCFFC01A9B3249190A160D
:10F47000AA2049CFD10E9CC3CC582CC031302CC30C
:10F4800038583CC021303658A4C071661C0A0C198B
:10F490008B2FFBB88BC12858B4C1015837C0816687
-:10F4A0001C29FC198C580CC031E0A0221F661C0AD4
+:10F4A0001C29FC198C580CC031E0A0225B661C0A98
:10F4B0000C2FFC198B2FFBB88B661C1805660C797A
:10F4C0008A2A4C988BFAEB000C0B9A0B8BFAEB0008
-:10F4D000045007E06CE414EA1C80012F8CFEB0BCE1
-:10F4E000F90C9C5C6C2F7DE3CD80FC80013AB4D498
-:10F4F00021209D18973016E0653264EA1500006AF5
+:10F4D000045007E06CE5D0EA1C80012F8CFEB0BC24
+:10F4E000F90C9C5C6C2F7DE3CD80FC80013B2CD41F
+:10F4F00021209D18973016E065327CEA1500006ADD
:10F500001CEE0415051804F9D7C008C88EA8AC3045
:10F510000CA8BCA83CFACCFFC81A9B3249190A16A1
:10F52000AA2049CFD1682C5D1C582CC031302CC08A
-:10F53000F8583C0094A1001302F1EC560400F600C8
+:10F53000F8583C002E4B001302F1EC560400F60084
:10F5400000800100F700010000B44D010D02F1EC54
:10F5500056030000000100C0313036C0986A0B77B6
:10F560008A301CF807094C184AF74A00600C9C5C6A
:10F570006C2F7DD8220000EBCD40FE205D18971641
-:10F58000943016EE051505E0633264EA1300006658
+:10F58000943016EE051505E063327CEA1300006640
:10F59000120A02059C582CC175F9D7B008C2FE5852
:10F5A0001CC1250591F9D7B008C29EF8011900C009
-:10F5B000B5F9D7B008C23EA49CE06CE430EA1C80E8
+:10F5B000B5F9D7B008C23EA49CE06CE624EA1C80F2
:10F5C00001FEB0BC99661BF605000C198A581AC0DA
:10F5D00044199A581AC30558A4C0C1198B581BC0A6
:10F5E00065198BFE3BFF01B88BC198300BB88BC1FE
:10F5F0006858B4C141199A581AC0752FFC198AFE6F
:10F600003AFF01B88AC038300AB89A5837C0712911
-:10F61000FB178C580CC031E0A0218C661C0A0C1919
+:10F61000FB178C580CC031E0A021C8661C0A0C19DD
:10F620008B580BC091199C580CC0610E9CC1FC58A2
:10F630003CC0213036661C1805660C798A2A4C9825
:10F640008BFAEB000C0B9A0B8BFAEB00045007E0E3
-:10F650006CE430EA1C800100B57B001302F1EC562B
+:10F650006CE624EA1C800100707D001302F1EC5678
:10F660000400F70000800100F80001000023A6015B
:10F670000D02F1EC560300000001002F8CFEB0BC1F
-:10F680004D0C9C5C6C2FBDE3CD80FE80013AD8D43C
-:10F690002118973016EE051505E0643264EA14006F
+:10F680004D0C9C5C6C2FBDE3CD80FE80013B50D4C3
+:10F690002118973016EE051505E064327CEA140057
:10F6A00000681C0A0C783C5D1C583CC0213036F9BF
:10F6B000D7B008C8CD583CC0213036681C18053F6B
:10F6C000FCAAAC300CAABCAA3C680C798B301AF4AA
:10F6D00007094A148BF94B00600C9C5C6CD822EB38
-:10F6E000CD40C0202D1897E0663264EA1600006C09
+:10F6E000CD40C0202D1897E066327CEA1600006CF1
:10F6F0001BEE0C1505160C300BB88BB89BF9D7B068
-:10F7000010CC7F6C0C7986BB17E06CE784EA1C8018
+:10F7000010CC7F6C0C7986BB17E06CE940EA1C805A
:10F7100001FEB0BC032FEDE3CF90C0EBCD40F8224B
-:10F72000FD18961697301CFB6C005DE0653264EAAC
+:10F72000FD18961697301CFB6C005DE065327CEA94
:10F73000150000FACCFFA06A0B35C9170A18AA20D9
:10F7400049CFD1FACCFFA01A9B35C9190A16AA20B5
:10F7500049CFD10A9C2F8CE0A002583004C0E85851
:10F760003CC061FB64005C303CFB6C005D300C6AAB
-:10F770001B1603A6BC2FF45C645914006D4B0013D8
+:10F770001B1603A6BC2FF45C64591400BAFB0013DB
:10F7800002F1EC560400F80000800100F9000100CD
:10F7900000631D010D02F1EC56030000000100C2E0
:10F7A000F4301CF804094B6A0C798C186BCF60E8B4
:10F7B0000315056A1B060BF72C0002580CCEE52F2B
-:10F7C000EBF72C0000E0A0468D6A1B060B17BA2F42
+:10F7C000EBF72C0000E0A046C96A1B060B17BA2F06
:10F7D000FAB6BA17BAAF3A183ACE05764C5D1C584D
:10F7E0002CCD11FB64005C302CFB6C005DFACCFF6F
:10F7F000A4198BAC8B199BAC9B0C9CC088FACCFFDA
:10F80000A4198BAC8B199BAC9B0C9C2D1DE3CD805C
-:10F81000F8D70380018640300B586CC022301B168D
+:10F81000F8D703800186B8300B586CC022301B1615
:10F820009C5C6C5EFC0000EBCD40FC204DFB360088
-:10F83000305C66FB23002DE6071505E0653264EABF
+:10F83000305C66FB23002DE6071505E065327CEAA7
:10F840001500006A140E04E92C00020C3CC0915013
-:10F8500003E06CDFFCEA1C8001FEB0BB71C638F926
+:10F8500003E06CE198EA1C8001FEB0BB71C638F988
:10F86000D6B008CDAFC0F12FE4E9270000FAE700D9
-:10F87000045003E06CDFFCEA1C80012F4CFEB0BB9F
+:10F87000045003E06CE198EA1C80012F4CFEB0BB01
:10F880005FC5183004C2386A1C0E0C98BCF8040A14
:10F890004CA19CC1B2301AF7D6B008F9D4B0080018
-:10F8A000FD86001302F1EC560400F900008001000F
+:10F8A0003142001302F1EC560400F900008001001F
:10F8B000FA00010000F6D6010D02F1EC560300003B
-:10F8C000000100E0A045525C6CC1216A1C0E0C2FA7
+:10F8C000000100E0A0458E5C6CC1216A1C0E0C2F6B
:10F8D000ECF92B00000C9AFAEB00080892BB13E03D
-:10F8E0006CDFFCEA1C80012E0CFEB0BB3B2FF45CED
+:10F8E0006CE198EA1C80012E0CFEB0BB3B2FF45C4F
:10F8F0006458B4CDC53004C22898BBF6040A4BA1A5
:10F900009BC1C2301A2FECF92B0000F9D4B008E0EB
-:10F91000A045825C6CC1216A1C0E0C2FECF92B00F7
-:10F92000000C9AFAEB00080892BB13E06CDFFCEACB
+:10F91000A045BE5C6CC1216A1C0E0C2FECF92B00BB
+:10F92000000C9AFAEB00080892BB13E06CE198EA2D
:10F930001C80012C8CFEB0BB152FF46A1C0E0C5CD5
:10F940006458B4CDB5B8A62FCDE3CF80FCD70380E3
-:10F950000184A4EBCD40803007E06C3264EA1C00E7
+:10F9500001851CEBCD40803007E06C327CEA1C0056
:10F9600000780C798CEDBC000CC072E06C00C8E033
-:10F97000A06068C02030170E9C5C6CE3CD80808056
-:10F9800001BB7CEBCD40F8189730063005C1E8EAA2
-:10F99000041505E0633264EA130000661B080B30AF
+:10F97000A0614CC02030170E9C5C6CE3CD80808071
+:10F9800001BD44EBCD40F8189730063005C1E8EAD8
+:10F99000041505E063327CEA130000661B080B3097
:10F9A0000CB6CC301CF805094A660C798C186AC074
:10F9B000B0F9D7B008765B5D1BC060301C661B16C3
-:10F9C00004A8CC00ADCD001302F1EC560400FA00FF
+:10F9C00004A8CC0051C7001302F1EC560400FA0061
:10F9D00000800100FB00010000496D010D02F1EC07
:10F9E0005603000000010030162FF55C655915CE56
:10F9F000250C9C5C6CE3CD80F80000300BC0C83057
-:10FA00000AE06C3264EA1C00007819F60C1505183F
+:10FA00000AE06C327CEA1C00007819F60C15051827
:10FA100009B2CA2FFB5C6B591BCF355EFD0000306D
-:10FA20001BF60C094BE06C3264EA1C0000780C7980
+:10FA20001BF60C094BE06C327CEA1C0000780C7968
:10FA30008C186B5F1C5EFCEBCD40FC202D189330C6
-:10FA400015E6071505E0663264EA1600006C1C0E28
+:10FA400015E6071505E066327CEA1600006C1C0E10
:10FA50000C98BC581CC2653004C04830352FF45C8B
:10FA60006458B4C1F46C190E0992BB301CF8040937
:10FA70004C186BF604084C5C6C581CCF11301A2FD4
-:10FA8000E9F32B0000F9D4B008E0A044D7CE700809
-:10FA900092BB13E06CE76CEA1C8001FEB0BA74CD37
-:10FAA000FB0A9C5C6C2FEDE3CD80FC8001855080CF
+:10FA8000E9F32B0000F9D4B008E0A04513CE7008CC
+:10FA900092BB13E06CE904EA1C8001FEB0BA74CD9D
+:10FAA000FB0A9C5C6C2FEDE3CD80FC800185C88057
:10FAB00000709CEBCD4080216D1897300CFB5C00F2
:10FAC00054FB6C002D30ABFB6B002EFB6C0030FB4D
:10FAD0006C0031EDB70002C272305CCA2FC1103029
-:10FAE0004CFB6C002C305C009A24001302F1EC56A5
+:10FAE0004CFB6C002C305C00E6CC001302F1EC56B1
:10FAF0000400FB0000800100FC000100005D4501E6
:10FB00000D02F1EC56030000000100FB6C002DFA21
:10FB1000CCFFD41A9B32C9190A16AA2049CFD1E0CA
-:10FB2000A0404A302CC8FFC110304CFB6C002C3078
+:10FB2000A04086302CC8FFC110304CFB6C002C303C
:10FB30002CFB6C002DFACCFFD41A9B32C9190A1683
-:10FB4000AA2049CFD1E0A04037EDB70004C1423030
+:10FB4000AA2049CFD1E0A04073EDB70004C14230F4
:10FB50008CC79FC110303CFB6C002C308CFB6C00C0
:10FB60002DFACCFFD41A9B32C9190A16AA2049CF04
-:10FB7000D1E0A040212EADE3CF808080017CA8D4CD
+:10FB7000D1E0A0405D2EADE3CF808080017D20D418
:10FB800021E02D03AC18971696300CFB6C00683002
-:10FB900005C1C8E06B3264EA1B0000301CF805099F
+:10FB900005C1C8E06B327CEA1B0000301CF8050987
:10FBA0004A760C798C186AC0F0761CEA0A1505189A
:10FBB0000AF52C0004581CC071FACBFF98FACCFF50
:10FBC00094746A5D1A2FF55C655915CE450D8BFB53
:10FBD0003C0068180B58BBC2450D8CFB35006818FB
:10FBE0000520A55C65E9D5B008C158E80C10680E81
:10FBF0000C189B1A9A3688170914A92048CFD1E807
-:10FC000005010BF60B10680E0B19AC00DB8200131C
+:10FC000005010BF60B10680E0B19AC00ACFF0013CE
:10FC100002F1EC560400FC0000800100FD00010030
:10FC20000037FD010D02F1EC560300000001005CFD
:10FC30006CC65C2FF45C640D8C1834CEA50D8C184A
@@ -4039,8 +4039,8 @@
:10FC60008BF60B10680E0B19AC5C6CC48C0D8C2FD2
:10FC7000FCAC8C2FF55C65FB3C00681835CE55FE5E
:10FC80003DFC54D82A0000D401300A589CC0615869
-:10FC90001BC041E0A035B2301A149C5C6CD80280C5
-:10FCA0000168C8E06B3264EA1B00002F8B32C91771
+:10FC90001BC041E0A035EE301A149C5C6CD8028089
+:10FCA000016940E06B327CEA1B00002F8B32C917E0
:10FCB0000A18AA2049CFD122CC5EFC400B990B40F8
:10FCC0001B991B402B992B403B993B404B994B4038
:10FCD0005B995BFB0B004AF95B0018FB0B004CF9CE
@@ -4049,7 +4049,7 @@
:10FD0000FCF9BC02021E0C19EC180F70129E7070E8
:10FD100070705270708270707070001B8CB68C1B8B
:10FD20009CB69C1BACB6AC1BCCEDBC0007C0B300B2
-:10FD30005B22001302F1EC560400FD00008001007C
+:10FD3000BB3C001302F1EC560400FD000080010002
:10FD4000FE00010000A236010D02F1EC5603000096
:10FD5000000100B6CC2F8BFACCFFF830C9192A1657
:10FD6000BA2029CFD15EFDE06C0080B6CC2F8BFA93
@@ -4059,56 +4059,56 @@
:10FDA0008C1B9CB69C1BACB6AC1BCCB6CC5EFD1BB6
:10FDB0008CB68C1B9CB69C1BACB6AC2FCBFACCFF84
:10FDC000FC30A9192A16BA2029CFD15EFD0000D433
-:10FDD00021201D189616973005E0A0651D1894E99E
+:10FDD00021201D189616973005E0A065EB1894E9D0
:10FDE0001B0066301CF806094C184BE95B0066E9FD
-:10FDF0001C0066500CE06CE730EA1C8001FEB0B8D5
-:10FE0000F95866C071E06C45BCEA1C0000F9670057
+:10FDF0001C0066500CE06CE9A0EA1C8001FEB0B863
+:10FE0000F95866C071E06C45D4EA1C0000F967003F
:10FE10009229A4888C581CC02530150A9C5C5C2F44
:10FE2000FDD822EBCD40F8204D18943006FEB0B737
-:10FE3000CD1893E065E484EA1580010A9CFEB0B811
+:10FE3000CD1893E065E5B4EA1580010A9CFEB0B8E0
:10FE4000D93007C0282FF75C6758A7E0840107E97D
-:10FE50001C0066008CA3001302F1EC560400FE00A7
+:10FE50001C006600A229001302F1EC560400FE000B
:10FE600000800100FF000100001D8D010D02F1EC7A
:10FE700056030000000100F8070A4CA19CCF620E57
:10FE80009C5C5C58ACF9BC020A2FECFE0C001FC055
:10FE9000B8C1C8C348C498C5A8C948CAA8CC68C6D0
-:10FEA000B8CD28CE38E06C4650EA1C0000780BE054
-:10FEB0006445BCEA140000089C2F6C300AB88A76AE
-:10FEC000BB767B5D1B1896CD18E06C4650EA1C0093
-:10FED00000781BE06445BCEA140000300CE96C00BB
+:10FEA000B8CD28CE38E06C4668EA1C0000780BE03C
+:10FEB0006445D4EA140000089C2F6C300AB88A7696
+:10FEC000BB767B5D1B1896CD18E06C4668EA1C007B
+:10FED00000781BE06445D4EA140000300CE96C00A3
:10FEE0000B089C2F5C30091898324A10C9201ACF91
-:10FEF000E176BB767B5D1B1896CB88E06C4650EABA
-:10FF00001C0000782BE06445BCEA140000089C2D1E
+:10FEF000E176BB767B5D1B1896CB88E06C4668EAA2
+:10FF00001C0000782BE06445D4EA140000089C2D06
:10FF10001C30091898316A10C9201ACFE176BB76D7
-:10FF20007B5D1B1896CA28E06C4650EA1C000078DE
-:10FF30003BE06445BCEA140000089C2BBC300AB8C6
-:10FF40008A76BB767B5D1B1896C908E06445BCEADF
+:10FF20007B5D1B1896CA28E06C4668EA1C000078C6
+:10FF30003BE06445D4EA140000089C2BBC300AB8AE
+:10FF40008A76BB767B5D1B1896C908E06445D4EAC7
:10FF5000140000660CE96C0046663CE96C004766DC
:10FF60005CE96C0048666CE96C0049301C2B64A8A5
-:10FF70008C3016C7B8E06C00BED6001302F1EC5608
+:10FF70008C3016C7B8E06C000C1E001302F1EC5672
:10FF80000400FF0000800101000001000058E501AD
-:10FF90000D02F1EC560300000001004650EA1C007F
-:10FFA00000784BE06445BCEA140000089C2B5C30F0
+:10FF90000D02F1EC560300000001004668EA1C0067
+:10FFA00000784BE06445D4EA140000089C2B5C30D8
:10FFB0000AB88AB89AB8AAB8BA089C2B5C76BB76FD
:10FFC0007B5D1B1896E93A004EE93B004DFAEB00C9
:10FFD00008E93A004C2B54098BBB1B2F850A9CFE69
-:10FFE000B0B82CC558E06C4650EA1C0000781BE005
-:10FFF0006445BCEA140000089C2B1C300AB88A3007
+:10FFE000B0B82CC558E06C4668EA1C0000781BE0ED
+:10FFF0006445D4EA140000089C2B1C300AB88A30EF
:020000021000EC
:100000001CE96C004F2B14089C76BB767B5D1B189B
-:1000100096C3E8E06C4650EA1C0000781BE064459B
-:10002000BCEA140000089C2B0C300AB88A301CE98A
+:1000100096C3E8E06C4668EA1C0000781BE0644583
+:10002000D4EA140000089C2B0C300AB88A301CE972
:100030003A00922FCAF80A094CA1BCE96C00502B77
:1000400004089C76BB767B5D1B1896C218E06A4557
-:10005000BCEA1A00002AFA300B1499340C12CB2097
-:100060001CCFE1C24C1896C138E06C4650EA1C0027
-:1000700000786BE06445BCEA140000089CFE3CFF7D
+:10005000D4EA1A00002AFA300B1499340C12CB207F
+:100060001CCFE1C24C1896C138E06C4668EA1C000F
+:1000700000786BE06445D4EA140000089CFE3CFF65
:100080006F300AB88A76BB767B5D1B1896F5D6C0B2
-:1000900008F7D7B008E06C45BCEA1C009F44001389
+:1000900008F7D7B008E06C45D4EA1C00BF4F001346
:1000A00002F1EC5604010000008001010100010092
:1000B000005408010D02F1EC56030000000100009D
:1000C00000E0A003270C9C5C5C2FCDE3CD80F8D42E
-:1000D0003120CD300CBACCE060E378EA108001FA30
+:1000D0003120CD300CBACCE060E554EA108001FA52
:1000E000CCFFF8009B3149170A18AA2049CFD1301C
:1000F00007FEB0B6A118963005C2C8169AA17AFAC2
:10010000C9FFF814091388A96813991009FAC8FFE0
@@ -4116,17 +4116,17 @@
:10012000F75C67E807000C2AFCB8892FF72FFB5C07
:100130006B089C5C670E0C582BCE15300B2AFCB854
:100140008B2FF766BC782C5D1CE08101B02FF55C2D
-:10015000655885E084024FE06445BCEA1400005C09
-:1001600067E807000C2AFCB8852FF7E0614650EAE3
+:10015000655885E084024FE06445D4EA1400005CF1
+:1001600067E807000C2AFCB8852FF7E0614668EACB
:10017000110000E20503230A9C588CF9BC0208FE1A
:100180000C001C984C180F001400AE013A01C60276
:10019000B4032A043603C0FFC866BC781C5D1CCDBE
:1001A00070E06B02BC0C9CFEB0B920306BFACCFF47
:1001B000F866BA745A5D1ACCB0300BC178F60A00F2
-:1001C000108A001302F1EC560401010000800101C5
+:1001C0002E2C001302F1EC56040101000080010105
:1001D0000200010000C1C3010D02F1EC5603000052
:1001E0000001001501FACCFFF8140C1999A969193E
-:1001F0008C1809E06C0E50EA1C0000140C980C18C6
+:1001F0008C1809E06C0E68EA1C0000140C980C18AE
:1002000009FACCFFE4F80A0A092FFB5C6B583BCED5
:1002100095FACBFFE4300CE0A00206300BC158FA8F
:10022000CCFFE4F80B041CF80A14085C67E807002C
@@ -4141,7 +4141,7 @@
:1002B0000B041CF80A14085C67E80700092AF9B265
:1002C0008A2FF75C67E807000A2AFAB48C2FF72F09
:1002D000FB5C6B583BCEB566BC782C5D1CFE91FF79
-:1002E0004ACB9B002F18001302F1EC5604010200C8
+:1002E0004ACB9B006321001302F1EC56040102008B
:1002F0000080010103000100007E78010D02F1EC95
:100300005603000000010066BC781C5D1CFE90FFD7
:1003100044332B0C9CFEB0B88D306BFACCFFF866E2
@@ -4184,7 +4184,7 @@
:10056000960C9CFEB0B78A3001C0282FF158A1C16B
:1005700064306BFACCFFF866BA745A5D1A314B0CD2
:100580009CFEB0B77BFB3C0008500C009C2ECCFEC0
-:10059000B0B5AEFB3200085862CE94E0A061BA5C00
+:10059000B0B5AEFB3200085862CE94E0A062885C31
:1005A00067E807000BF93C0080043CC064301C2A5B
:1005B000FBB68C2FF7C058300C2AFBB68C2FF75C9B
:1005C000670E042AF4A8822FF766BC782C5D1CFE07
@@ -4196,14 +4196,14 @@
:100620000700092AF9B28C2FF75C67E807000C2A4B
:10063000FCB88A2FF72FFB5C6B584BCE1566BC7845
:100640002C5D1CFE91FF7BFE9FFDCB66BC781C00E1
-:100650001448001302F1EC5604010500008001016A
+:10065000C061001302F1EC560401050000800101A5
:1006600006000100009523010D02F1EC5603000085
:100670000001005D1CFE90FDC6300C66BB764B5D34
:100680001B301CE76C001033CB0C9CFEB0B708305D
:100690006BFACCFFF866BA745A5D1AFE90FDB3305F
:1006A0000BFE9FFDA21BCC2F4DD83280006E7480B4
-:1006B000007428EBCD40C0202D18961697E0A0615D
-:1006C0003BE06BE8D4EA1B8001B70ABB1B300B5838
+:1006B000007428EBCD40C0202D18961697E0A0625C
+:1006C00009E06BEA94EA1B8001B70ABB1B300B58A8
:1006D00006C031E06BFFFF180628460D8C588CF9D8
:1006E000BC02001E0C19EC180F0A18283A4A5C6C60
:1006F0007E8E0CBA0C8E1CBA1C8E2CBA2CC3D88ED3
@@ -4214,3586 +4214,3586 @@
:100740002BC1B88E1CBA0C8E0CBA1C8E2C181BBA7E
:100750002BC1388E0CBA0C8E1C162CBA1C8E2C1881
:100760001BBA2BC0A88E1C162CBA0C8E0C162CBAD9
-:100770001C8E2C0051D2001302F1EC56040106002D
+:100770001C8E2C00B493001302F1EC560401060009
:100780000080010107000100002A98010D02F1EC30
:1007900056030000000100181BBA2B9A0CAE0C9AED
:1007A0001CAE1C9A2CAE2C2FEDE3CF80C00000EBCA
-:1007B000CD40803007E06CE8C4EA1C8001FEB0B494
-:1007C000BB300CC0B8E06B45BCEA1B0000F60C0661
+:1007B000CD40803007E06CEA54EA1C8001FEB0B402
+:1007C000BB300CC0B8E06B45D4EA1B0000F60C0649
:1007D0000A580AC02030172FFC5C6C58ACCF450E6D
:1007E0009C5C6CE3CD8080F80B0B0A5EFD0000D4AE
-:1007F00001E06CE8A4EA1C8001FEB0B49D300CC09E
-:1008000098300BE06A45BCEA1A0000F40C0B0B2F81
+:1007F00001E06CEA2CEA1C8001FEB0B49D300CC014
+:1008000098300BE06A45D4EA1A0000F40C0B0B2F69
:10081000FC5C6C58ACCF65D80A0000EBCD40E0180A
-:10082000961697E0A0609A1895E06CE894EA1C8010
+:10082000961697E0A061681895E06CE9D4EA1C8000
:1008300001FEB0B481300CC0382FFC5C6C58ACE0C9
:100840008400C5301BF60C094BEB1A0066166ACF04
:1008500050302A0F89F2091068EC090B0A0F8AF44C
:100860000A10680C0AB4AC58ACF9BC020A1E0CF9A8
:100870003C000AFE0C001F081526374455626F80A5
-:1008800093A000E06A45BCEA1A00002F6A0F8CF8BA
-:100890000C106818062FC600848D001302F1EC5668
+:1008800093A000E06A45D4EA1A00002F6A0F8CF8A2
+:100890000C106818062FC6008757001302F1EC569B
:1008A00004010700008001010800010000BD730180
:1008B0000D02F1EC56030000000100158CAC8CC851
-:1008C000C8E06945BCEA1900002F590F8CF80C10DC
+:1008C000C8E06945D4EA1900002F590F8CF80C10C4
:1008D0006818062FC60C98324A133C10CC201ACF49
-:1008E000D1C7B8E06945BCEA1900002D190F8CF892
+:1008E000D1C7B8E06945D4EA1900002D190F8CF87A
:1008F0000C106818062FC60C98316A133C10CC20D7
-:100900001ACFD1C6A8E06A45BCEA1A00002BBA0F7C
+:100900001ACFD1C6A8E06A45D4EA1A00002BBA0F64
:100910008CF80C106818062FC6158CAC8CC5D8E066
-:100920006945BCEA1900002BA90F8CF80C10681857
+:100920006945D4EA1900002BA90F8CF80C1068183F
:10093000062FC60C98305A133C10CC201ACFD1C4C5
-:10094000C8E06A45BCEA1A00002B1A0F8CF80C109C
-:100950006818062FC6158CAC8CC3F8E06A45BCEA53
+:10094000C8E06A45D4EA1A00002B1A0F8CF80C1084
+:100950006818062FC6158CAC8CC3F8E06A45D4EA3B
:100960001A00002B0A0F8CF80C106818062FC615F9
-:100970008CAC8CC328E06945BCEA1900002AF90F49
+:100970008CAC8CC328E06945D4EA1900002AF90F31
:100980008CF80C106818062FC60C98340A133C100B
-:10099000CC201ACFD1C218E06A45BCEA1A00002B5D
+:10099000CC201ACFD1C218E06A45D4EA1A00002B45
:1009A0005A0F8CF80C106818062FC6158CAC8C15D5
-:1009B0009CAC9C15ACACAC15BCACBC00A4CF00137B
+:1009B0009CAC9C15ACACAC15BCACBC00B2CD00136F
:1009C00002F1EC5604010800008001010900010059
:1009D00000FDC8010D02F1EC56030000000100C04B
-:1009E000E8E06A45BCEA1A0000FE3AFF6F0F8CF897
+:1009E000E8E06A45D4EA1A0000FE3AFF6F0F8CF87F
:1009F0000C106818062FC6158CAC8C0F8C2FFCAE13
:100A00008CEB1C0066168CEB5C0066300C29A5AAEA
-:100A10000C300CE06B45BCEA1B0000F76C0092E365
-:100A2000CF80E08001C8C08000709CD401FEB0B2CD
-:100A3000932D5C198C580CC2C0E06C4650EA1C0027
-:100A400000785BF72A0022581AC0652F3B178B5895
-:100A50001BC025DA0A787BF72A0022581AC0552FC6
-:100A60003B178B581BCF74786CF92B0022581BC294
-:100A700005F93B000D581BC1C5F92B0014584BC09C
-:100A8000512D8C980C581CCE64585BC121DA0A3069
-:100A90000CC0C8E06B4650EA1B0000F60C032B2F7D
-:100AA0003B178B581BCD742FFC5C6C58BCCF35D8D2
-:100AB0000A0000D401300AE0A03D66D802D70380C6
-:100AC0000184A4D401300AE0A03DB4D802D7038049
-:100AD000018550D401300AE0A03E02D802D70300BD
-:100AE0002121001302F1EC560401090000800101EC
+:100A10000C300CE06B45D4EA1B0000F76C0092E34D
+:100A2000CF80E08001CA5C8000709CEDBC00105F4C
+:100A30002C5C5C5EFC00003009F40B0D0AA19AC02E
+:100A4000382FF9A19AE04A0100C0435C595889CF78
+:100A5000955C595889C0353F8C5EFCF40B1601F447
+:100A60000816011428F7E8108B5C59F7E911C9F34F
+:100A7000EA110A991A300C5EFC0000EBCD40C01858
+:100A8000971696E1BC0000CD2F300BE06A4F34EA98
+:100A90001A0000950BF80B1518C020D3033FFB8FED
+:100AA0009B301B8F0BE06B00808F0B5C5C580CC085
+:100AB00020D5033FFC8FBC303AE06B0280E06C41F4
+:100AC00064EA1C8000E0A05A51ED3C000C580CC0B8
+:100AD00050310C8F0C3FFC8F2C6C0A6C1B0E9C0051
+:100AE0008D7C001302F1EC56040109000080010125
:100AF0000A000100006803010D02F1EC560300003A
-:100B0000000100800185FCEBCD4080189BF73C0084
-:100B10000D585CE0840176F7290004F73C000DF7DE
-:100B20002A00005C5A589AF9BA0205FE0A001A9483
-:100B3000CA140F0014005A00A000E60164067802EF
-:100B40008E0216026EE06A2FC0EA1A0000F80C103E
-:100B500006180A762CF809041CF55C00AC762CF714
-:100B600038000C1208F808041CF55C00AE762CF76F
-:100B700038000CF2080019F809041CF55C00B02FCD
-:100B80003B178C2FFCB68CE3CF8080E06A2FC0EA45
-:100B90001A0000F80C1006180A762CF809041CF547
-:100BA0005C00CC762CF738000C1208F808041CF511
-:100BB0005C00CE762CF738000CF2080019F8090416
-:100BC0001CF55C00D02F3B178C2FFCB68CE3CF803C
-:100BD00080E06A2FC0EA1A0000F80C1006180A76A6
-:100BE0002CF809041CF55C00EC762CF738000C128C
-:100BF00008F808041CF55C00EE762CF738000CF2BF
-:100C000008001900126A001302F1EC5604010A00F0
+:100B0000000100CACF5B8CC0413F8CE3CD80C03078
+:100B10000CE3CD80C0D7038001BE88EBCD408018A8
+:100B200097E1BC0000C95F5C5C580CC020D3033F58
+:100B3000FC8F9C3FFC8FBCE3CF8080EBCD40C0207E
+:100B40001D18961697300C500C34BCE0A0534C3056
+:100B50002C8D0CE06C4F28EA1C00009906E06C4FCD
+:100B600028EA1C0000780CCDAF6E3CE06B4F30EAF9
+:100B70001B0000970C6E4CE06B4F3CEA1B0000978B
+:100B80000C300CE06B4F48EA1B0000B68C300CE0D8
+:100B90006B4F34EA1B0000970CEF3C0008580CC563
+:100BA00070301CE06B4F28EA1B0000760B970CE0BE
+:100BB0006C0080E06B4F28EA1B0000760B970C302E
+:100BC0002CE06B4F28EA1B0000760B970C0E9C2F35
+:100BD000CCE06B4F2CEA1B0000970CE06C4F2CEA2A
+:100BE0001C0000780CEF3B00085C3B160C2FCCE09F
+:100BF0006B4F2CEA1B0000970CEF3C0008E06B4F9A
+:100C000038EA1B00E853001302F1EC5604010A0015
:100C1000008001010B00010000D7B8010D02F1ECCA
-:100C200056030000000100F809041CF55C00F02FD9
-:100C30003B178C2FFCB68CE3CF8080F20815017631
-:100C40002A100A940A580AC131762AF73E000C127B
-:100C50000EF40E041A580AC0B1762AF73E000CF2C0
-:100C60000E001EF40E041A580AE08002B2E06A2F49
-:100C7000C0EA1A0000F40C003A762CF808040CA91B
-:100C80006CF54C0084762CF738000C1208F8080438
-:100C90001CF4F800841808F5480084762CF7380016
-:100CA0000CF2080019F809041CF55C00882F3B17AA
-:100CB0008C2FFCB68CE3CF8080E06A2FC0EA1A004C
-:100CC00000F80C1012180A762CF809041CB40C76E3
-:100CD0002CF738000C1208F808041CB41C762CF70A
-:100CE00038000CF2080018F808041CB42C762CF715
-:100CF00038000C303E1297F00E0347F807041CB47E
-:100D00003C762CF738000CF2080028F808041CB4D4
-:100D10004C762CF738000C305E1297F00E0347F833
-:100D200007041CB45C762C000DF8001302F1EC569D
+:100C2000560300000001000000970CE06C0703E091
+:100C30006B4F40EA1B0000970C6E0CA17CEF3B0051
+:100C400008F9EB110CE81CA000E06B4F28EA1B0030
+:100C500000760B973C6E0CA17C6E4BF9EB110CE807
+:100C60001CE001E06B4F28EA1B0000760B974CC19B
+:100C7000B8300CE06B4F38EA1B0000970CE06C07B3
+:100C800001E06B4F40EA1B0000970C6E0CA17C6EDC
+:100C90004BF9EB110CE81CE001E06B4F28EA1B005C
+:100CA00000760B973CE06C4F40EA1C0000780CE0AB
+:100CB0006B4F28EA1B0000760B978C301C8D0CD5EF
+:100CC00003E06C4F34EA1C0000780C580CC101E0C2
+:100CD000A002C4580CC0C1FECFFFFC400B2FFB503C
+:100CE0000B400CEE5C4240CED33FDCC178302C8D03
+:100CF0000CE06C4F34EA1C0000780C5BCCC080E048
+:100D00006C4F34EA1C0000780C5BECC0313FFCC037
+:100D10005834BCE0A0529C300C2FFDE3CD80C0EBDA
+:100D2000CD40F8201D1895001739001302F1EC563C
:100D300004010B00008001010C00010000C39001C0
-:100D40000D02F1EC56030000000100F738000C30F2
-:100D50006E1297F00E0347F807041CB46C762CF75C
-:100D600038000C307E1297F00E0347F807041CB4CD
-:100D70007C762CF738000CF2080039F809041C2F97
-:100D80000AB40C2F3B178C2FFCB68CE3CF8080E08D
-:100D90006A2FC0EA1A0000F40C003A762CF8090415
-:100DA0001CF55C005C762CF738000C1208F808047F
-:100DB0001CF55C005E762CF738000CF2080018F881
-:100DC00008041CF55C0060762CF738000C303EF00F
-:100DD0000E0349F809041C29EAB40C2F3B178C2F89
-:100DE000FCB68CE3CF8080762AF409041AE0692FE0
-:100DF000C0EA190000120CF96A012C2F3B178C2F46
-:100E0000FCB68CE3CF8080E06A2FC0EA1A0000F8BD
-:100E10000C1006180A762CF809041CF55C010C76F7
-:100E200028F73C000C1809F009041CF55C010EF7CA
-:100E30000C0028581C5F4CF56C01102F3B178C2FB1
-:100E4000FCB68CE3CF8080F73C000D0025740013C6
+:100D40000D02F1EC560300000001001697149612F4
+:100D5000941093300C500C34BCE0A05269301C8BC2
+:100D60000CE06C00808B0C302C8B0CE06C4F28EA74
+:100D70001C00009905E06C4F28EA1C0000780CCF9D
+:100D80002EE06C4F30EA1C00009907E06C4F3CEA03
+:100D90001C00009906300CE06B4F48EA1B0000B6BF
+:100DA0008C300CE06B4F34EA1B0000970C5C5358FE
+:100DB00003C170E80C1501E81CA800E06B4F28EA9D
+:100DC0001B0000760B973CA174E9E61106E816F8C3
+:100DD00001E06C4F28EA1C0000780C9946C0C8A1BD
+:100DE00074E9E61106E816E001E06C4F28EA1C0001
+:100DF00000780C9936E06C0701E06B4F40EA1B006D
+:100E000000970CE06C4F40EA1C0000780CE06B4F40
+:100E100028EA1B0000760B978C301CE06B4F28EA09
+:100E20001B0000760B970CD503E06C4F34EA1C00D6
+:100E300000780C580CC101E0A00222580CC0C1FE81
+:100E4000CFFFFC400B2FFB500B400C004AED001372
:100E500002F1EC5604010C00008001010D000100BC
-:100E600000A928010D02F1EC560300000001005812
-:100E70005CE08101D2F7290004F72C00005C5C588B
-:100E80009CF9BC0205FE0C001C98CC180F00140045
-:100E90007400D40134019203840326028202FC30E0
-:100EA00018C128F00C1006180AF50C00ACF55C000F
-:100EB000A6F50C00AEF55C00A8F50C00B0F55C00E2
-:100EC000AA2FF85C68E06A2FC0EA1A00005858CED2
-:100ED000A5762CF809041CF55C00C4762CF73800C4
-:100EE0000C1208F808041CF55C00C6762CF73800D4
-:100EF0000CF2080019F809041CF55C00C8C8993008
-:100F000018C128F00C1006180AF50C00CCF55C008E
-:100F1000C6F50C00CEF55C00C8F50C00D0F55C0001
-:100F2000CA2FF85C68E06A2FC0EA1A00005858CE51
-:100F3000A5762CF809041CF55C00E4762CF7380043
-:100F40000C1208F808041CF55C00E6762CF7380053
-:100F50000CF2080019F809041CF55C00E8C599308A
-:100F600018C128F00C1006180AF50C00ECF55C000E
-:100F700089FB001302F1EC5604010D000080010111
+:100E600000A928010D02F1EC56030000000100EE7C
+:100E70005C4240CED33FDCC178302C8B0CE06C4F11
+:100E800034EA1C0000780C5BCCC080E06C4F34EA84
+:100E90001C0000780C5BECC0313FFCC05834BCE057
+:100EA000A051FA300C2FFDE3CD80F8EBCD40C020EF
+:100EB0001D18961697300C500C34BCE0A051CA3067
+:100EC0001C8D0CE06C00808D0C302C8D0CE06C4F78
+:100ED00028EA1C00009906E06C4F28EA1C00007804
+:100EE0000CC53E300CE06B4F34EA1B0000970CE061
+:100EF0006C0702E06B4F40EA1B0000970C300CE0DF
+:100F00006B4F48EA1B0000B68CEF3C0008580CC23F
+:100F1000A00E9C2FCCE06B4F2CEA1B0000970CE03E
+:100F20006C4F2CEA1C0000780CEF3B00085C3B1671
+:100F30000C2FCCE06B4F2CEA1B0000970CEF3C0011
+:100F400008E06B4F38EA1B0000970C301CE06B4F39
+:100F500048EA1B0000B68CE06C4F44EA1C00009984
+:100F600007C0D86E3CE06B4F2CEA1B0000970C00CA
+:100F700005F4001302F1EC5604010D00008001019C
:100F80000E000100003CE3010D02F1EC56030000ED
-:100F900000010000E6F50C00EEF55C00E8F50C0041
-:100FA000F0F55C00EA2FF85C68E06A2FC0EA1A00EE
-:100FB000005858CEA5762CF809041CF55C0104767F
-:100FC0002CF738000C1208F808041CF55C010676B2
-:100FD0002CF738000CF2080019F809041CF55C0124
-:100FE00008C299301CC0D8F40C003AF4F80084F51B
-:100FF00048007CF5080088F55800802FFC5C6CE008
-:101000006A2FC0EA1A0000585CCEF5762CF8090465
-:101010001CA96CF54C00A4762CF738000C1208F8CB
-:1010200008041CF4F800A41808F54800A4762CF76E
-:1010300038000CF2080019F809041CF55C00A8CF70
-:10104000A83018C1C8F00C1012180A149C212C9456
-:101050000EB80E2FEA940EB81E941EB82E942EB819
-:101060003E943EB84E944EB85E945EB86E946EB8A0
-:101070007E947A2F0CB80A2FF85C68E06A2FC0EAD9
-:101080001A00005858CE05762CF809041CF55C00AF
-:1010900048762C007C84001302F1EC5604010E000B
+:100F90000001006E4CE06B4F38EA1B0000970C6EAE
+:100FA0000BA17B6E4A2F870F8C180AF7EA110BE80A
+:100FB0001BE0008D3BE06C4F40EA1C0000780CE029
+:100FC0006B4F28EA1B0000760B978C301CE06B4FB0
+:100FD00028EA1B0000760B970CD503E06C4F34EA2F
+:100FE0001C0000780C580CC0F1C6DD580CC0C1FEC6
+:100FF000CFFFFC400B2FFB500B400CEE5C4240CE71
+:10100000E33FDCC178302C8D0CE06C4F34EA1C00DF
+:1010100000780C5BCCC080E06C4F34EA1C00007898
+:101020000C5BECC0313FFCC05834BCE0A0514630F2
+:101030000C2FFDE3CD80C0D421189416971496127E
+:101040009534BCE0A05118301C890CE06C008089FC
+:101050000C302C890CE06C4F28EA1C00009904E04D
+:101060006C4F28EA1C0000780CFEB0FDA1300CE0AB
+:101070006B4F48EA1B0000B68C300CE06B4F34EA33
+:101080001B0000970CEA0C1518C1C0EF3C000C586F
+:101090000CC18000074A001302F1EC5604010E0057
:1010A000008001010F000100008358010D02F1ECE6
-:1010B00056030000000100F738000C1208F808047D
-:1010C0001CF55C004A762CF738000CF2080018F882
-:1010D00008041CF55C004C762CF738000C303E12EE
-:1010E00097F00E0347F807041CF55C004E762CF7CA
-:1010F00038000CF2080028F808041CF55C00507653
-:101100002CF738000C305E1297F00E0347F80704F6
-:101110001CF55C0052762CF738000C306E1297F0FC
-:101120000E0347F807041CF55C0054762CF73800D2
-:101130000C307E1297F00E0347F807041CF55C0094
-:1011400056762CF738000CF2080039F809041C2AEE
-:101150008AB40CC828301CC158F40C003AF50800B9
-:101160005CF5580054F508005EF5580056F5080087
-:1011700060F5580058F50800622A6AB4082FFC5C34
-:101180006CE06A2FC0EA1A0000585CCE75762CF825
-:1011900009041CF55C007C762CF738000C1208F86A
-:1011A00008041CF55C007E762CF738000CF2080071
-:1011B00018F808041CF55C00E6B3001302F1EC56C5
+:1010B000560300000001006E0CA17CE81CA800890A
+:1010C0003C6E0CA17C6E2BF9EB110CE81CB801896D
+:1010D0004CC038FECFFFFC687CEDBC0003CFB230C3
+:1010E0008C89BCC0F86E0BA17B6E2CF7EC110B5CED
+:1010F00055F7E510BBEF3C000C184BE81BA000892E
+:101100003B6C0B6C2C5C550A9A5C555805C040ED45
+:1011100039000CC0283009A17BF7EC110BF7EA105D
+:10112000BBF7E910CBED3C000C184BE81BE0008945
+:101130004BEF3C000C580CC3106E1CE06B4F30EAB8
+:101140001B0000970CC138687CEDBC0000C0F26841
+:101150005CE06B4F30EA1B0000760BB68CE06C4F06
+:1011600030EA1C0000780B2FFB990B687CEDBC006B
+:1011700003CEB2687CEDBC0000C422685CE06B4F1B
+:1011800030EA1B0000760BB68CE06C4F30EA1C0096
+:1011900000780B2FFB990BC3386E1CE06B4F2CEAC9
+:1011A0001B0000970C6E2CE06B4F38EA1B00009779
+:1011B0000CC228E06C4F380005EC001302F1EC562D
:1011C00004010F00008001011000010000933001B4
-:1011D0000D02F1EC560300000001000080762CF7B0
-:1011E00038000C303EF00E0349F809041CF55C0091
-:1011F00082C458301CC088180AF538012CF56801E3
-:101200002B2FFC5C6CE06A2FC0EA1A0000585CCF00
-:1012100045762CF809041CF56C0130C3083018C160
-:1012200028F00C1006180AF50C010CF55C0106F507
-:101230000C010EF55C0108F53C0110F56C010A2F5C
-:10124000F85C68E06A2FC0EA1A00005858CEA5760C
-:101250002CF809041CF55C0124762CF738000C12DC
-:1012600008F808041CF55C0126762CF738000CF20F
-:10127000080019F809041CF56C0128305C2F3BB6F6
-:101280008CE3CF80800000EBCD40801897FEB0AE9D
-:10129000E1EDB70002C382E06B4650EA1B00007626
-:1012A0005B179A581AC305F73A000DE06930F4EA63
-:1012B000190000585AC0F4F20A0019F93A0043B272
-:1012C0008A2BCC198CB29C2F3B178C2FFCB68CE34D
-:1012D000CF8080301AC0B8F20A0018000ECE00137A
+:1011D0000D02F1EC56030000000100EA1C0000784B
+:1011E0000C580CC1B0687CEDBC0001C172E06C4FC2
+:1011F0002CEA1C0000780C198CE06B4F2CEA1B00C9
+:1012000000760A2FFA970A5C5C896CE06C4F38EA2A
+:101210001C0000780B201B990B687CEDBC0003CDF3
+:10122000C2308C89BCED3C000C580CC1E06C1CE059
+:101230006B4F30EA1B0000970C687CEDBC0004C4C7
+:1012400063687CEDBC0000CF92685CE06B4F30EAD5
+:101250001B0000760BB68CE06C4F30EA1C00007867
+:101260000B2FFB990BCEAB6C1CE06B4F2CEA1B00D9
+:1012700000970C6C2CE06B4F38EA1B0000970CC2F7
+:1012800028E06C4F38EA1C0000780C580CC1B0689C
+:101290007CEDBC0001C172E06C4F2CEA1C000078B0
+:1012A0000C198CE06B4F2CEA1B0000760A2FFA9782
+:1012B0000A5C5C896CE06C4F38EA1C0000780B20FB
+:1012C0001B990B687CEDBC0004CDC2687CEDBC00B2
+:1012D0000AC062E06C040089BC3FFC001D4F001393
:1012E00002F1EC5604011000008001011100010020
-:1012F00000878D010D02F1EC560300000001001083
-:101300009E202E1187BC871198BC982FFA5C6A58D2
-:101310005ACF55F93A0043F36A00082BCC198C2FA9
-:1013200079B28C305C2F3BB68CE3CF8080D70380C2
-:10133000006E74EBCD40C0201DE06CE8EDEA1C802F
-:1013400001FACBFFFF198AB68A199AB69A19ACBA74
-:101350008C3006C0382FF65C56E067008C58A6C16A
-:1013600084E06C0098EA1C0000F806000B2F0B17B5
-:101370008BBA9B0C0C198CBAAC3029FACAFFFFF758
-:10138000D7C008304CFEB0AFDDCE61300CC1B830F4
-:10139000181A99305AF7D7C008304CFEB0AFFECFBC
-:1013A000601B8CA7BCBA8C305CBA9C1B8CBAAC306E
-:1013B00029FACAFFFFF7D7C008304CFEB0AFC2CE43
-:1013C00060301C2FFDE3CD80C00000D421203DE023
-:1013D00067E530EA178001FACCFFFB0F8BB88B0F63
-:1013E0009BB89B0FACBACC6E1C502C0E9C2F8CFE65
-:1013F000B0AF56305CBADCE06C0080BAECE066005E
-:10140000251A001302F1EC560401110000800101BD
+:1012F00000878D010D02F1EC56030000000100D8BB
+:1013000022687CE21C0300580CC0A0683CEC1C80E6
+:1013100000893CE06C030089BC3FFCD82234BCE06F
+:10132000A05002300CD8228001B0E08001B124E04E
+:101330006C4F28EA1C0000780C787CE21C003058C6
+:101340000C5F1C5C5C5EFCD401FEB0AE952D5C199C
+:101350008C580CC2C0E06C4668EA1C0000785BF751
+:101360002A0022581AC0652F3B178B581BC025DA5C
+:101370000A787BF72A0022581AC0552F3B178B5842
+:101380001BCF74786CF92B0022581BC205F93B0067
+:101390000D581BC1C5F92B0014584BC0512D8C980A
+:1013A0000C581CCE64585BC121DA0A300CC0C8E06E
+:1013B0006B4668EA1B0000F60C032B2F3B178B587B
+:1013C0001BCD742FFC5C6C58BCCF35D80A0000D400
+:1013D00001300AE0A039A4D802D7038001851CD4CB
+:1013E00001300AE0A039F2D802D703800185C8D4C1
+:1013F00001300AE0A03A40D802D703800186740089
+:10140000BB80001302F1EC560401110000800101C1
:1014100012000100001246010D02F1EC560300001B
-:10142000000100008C3029FACAFFFBF7D6C0083053
-:101430004CFEB0AF99C031300CC658322CFEB0B162
-:10144000A33004C1E85834C1A05844C1805854C1E5
-:1014500060E0650098EA150000EA04000C2F0C1902
-:101460008CBADC08050B8CBAEC3029FACAFFFBF702
-:10147000D6C008304CFEB0AF77CDF02FF45C545896
-:10148000A4CE253018FAC9FFFC305AF7D6C0083070
-:101490004CFEB0AF95CD101BCCF9DCC007BACC30F8
-:1014A00019FACAFFFCF7D6C008304CFEB0AF5CCCCE
-:1014B00040E0A02561E0650098EA150000EB3C00E3
-:1014C0000C581CC1F1304BFACCFFF8CA2C581CC187
-:1014D000C1FB3C000B500CFB38000AFB390009FB38
-:1014E0003A0008E06B7710EA1B8000300CE0A05552
-:1014F0006D300CFEB0B204FEB0B212300C2F45AA13
-:101500008C301C2FDDD8222F470E9CFEB0AEDA3077
-:101510000CCF9B80015D508001BDA4800076D880F7
-:101520000076F800E477001302F1EC560401120093
+:10142000000100EBCD4080189BF73C000D585CE0BC
+:10143000840176F7290004F73C000DF72A00005CD0
+:101440005A589AF9BA0205FE0A001A94CA140F00F3
+:1014500014005A00A000E601640678028E0216020B
+:101460006EE06A2FD8EA1A0000F80C1006180A7607
+:101470002CF809041CF55C00AC762CF738000C1233
+:1014800008F808041CF55C00AE762CF738000CF266
+:10149000080019F809041CF55C00B02F3B178C2FCD
+:1014A000FCB68CE3CF8080E06A2FD8EA1A0000F8FF
+:1014B0000C1006180A762CF809041CF55C00CC7692
+:1014C0002CF738000C1208F808041CF55C00CE76E6
+:1014D0002CF738000CF2080019F809041CF55C0020
+:1014E000D02F3B178C2FFCB68CE3CF8080E06A2F87
+:1014F000D8EA1A0000F80C1006180A762CF809042D
+:101500001CF55C00EC762CF738000C1208F8080487
+:101510001CF55C00EE762CF738000CF2080019F888
+:1015200009041C00D613001302F1EC56040112004A
:10153000008001011300010000ADFD010D02F1EC7E
-:1015400056030000000100EBCD4080201DE06CE858
-:1015500084EA1C8001FACBFFFF198AB68A199AB671
-:101560009A19ABBA8B2FCCFEB0AEBEE067008C30C0
-:10157000181A99305AF7D7C008304CFEB0AF32C0B5
-:1015800031300CC1B81B8CA7BCBA8C305CBA9C1B28
-:101590008CBAAC3029FACAFFFFF7D7C008304CFE2E
-:1015A000B0AEF4CEF0E0A05AB1F93C0082580CC0C5
-:1015B00041322CFEB0B10A301C2FFDE3CD8080EB10
-:1015C000CD4080201DE06CE8E7EA1C8001FACBFFEB
-:1015D000FF198AB68A199AB69A19ACBA8CE06700D4
-:1015E0008C30181A99305AF7D7C008304CFEB0AE7C
-:1015F000F9C031300CC1B81B8CA7BCBA8C305CBAB6
-:101600009C1B8CBAAC3029FACAFFFFF7D7C0083050
-:101610004CFEB0AEBBCEF0E0A05A78F93C00825848
-:101620000CC041322CFEB0B0D1301C2FFDE3CD8078
-:10163000800000EBCD4080189730480E99301AE0BA
-:101640006B008C304CFEB000E17B001302F1EC56D5
+:1015400056030000000100F55C00F02F3B178C2FC4
+:10155000FCB68CE3CF8080F2081501762A100A943D
+:101560000A580AC131762AF73E000C120EF40E0416
+:101570001A580AC0B1762AF73E000CF20E001EF48B
+:101580000E041A580AE08002B2E06A2FD8EA1A0064
+:1015900000F40C003A762CF808040CA96CF54C0009
+:1015A00084762CF738000C1208F808041CF4F800B4
+:1015B000841808F5480084762CF738000CF20800EF
+:1015C00019F809041CF55C00882F3B178C2FFCB61A
+:1015D0008CE3CF8080E06A2FD8EA1A0000F80C1064
+:1015E00012180A762CF809041CB40C762CF7380073
+:1015F0000C1208F808041CB41C762CF738000CF206
+:10160000080018F808041CB42C762CF738000C30AD
+:101610003E1297F00E0347F807041CB43C762CF7F3
+:1016200038000CF2080028F808041CB44C762CF79B
+:1016300038000C305E1297F00E0347F807041CB414
+:101640005C762CF738000C00D611001302F1EC5632
:1016500004011300008001011400010000B9D5014C
-:101660000D02F1EC56030000000100AECDC091E088
-:101670006CE8CCEA1C8001FEB0AE48E3CF8080303D
-:10168000080FB90FAA0F9B0F8CE0A0224DE3CF905B
-:1016900080D703800158B8D401201D198BE06A005F
-:1016A00098EA1A0000B4AB198C500CE06CE73CEAE5
-:1016B0001C8001FEB0AE2A2FFDDA0AD421205D186D
-:1016C00094E067E44CEA178001FACCFFFC0E9BB76C
-:1016D00009B928B709B9286E4C500CFEB0AD0218F4
-:1016E00096CABE3005C1681B8C401A180A501A1BD6
-:1016F0009C402A180A502A1BAC403A180A503A1B40
-:10170000BC404A180A504A30AB0C9CFEB0AFC42F04
-:10171000F55835C0C430481A99301AE06B008C3047
-:101720004CFEB0AE71CE11300CC158300CC0B8FABE
-:10173000CBFFFCF60C032B303AF60A0C0AE80C0B34
-:101740000A2FFC584CCF55C12F2EC70E9CFEB0ADB2
-:10175000DD301C2FBDD82280006E7480007428D428
-:1017600001300A585CC041169CC97F003F4F0013EE
+:101660000D02F1EC56030000000100306E1297F0FD
+:101670000E0347F807041CB46C762CF738000C30C6
+:101680007E1297F00E0347F807041CB47C762CF703
+:1016900038000CF2080039F809041C2F0AB40C2F8A
+:1016A0003B178C2FFCB68CE3CF8080E06A2FD8EA02
+:1016B0001A0000F40C003A762CF809041CF55C00C2
+:1016C0005C762CF738000C1208F808041CF55C0056
+:1016D0005E762CF738000CF2080018F808041CF5A8
+:1016E0005C0060762CF738000C303EF00E0349F8B1
+:1016F00009041C29EAB40C2F3B178C2FFCB68CE391
+:10170000CF8080762AF409041AE0692FD8EA1900FC
+:1017100000120CF96A012C2F3B178C2FFCB68CE3BE
+:10172000CF8080E06A2FD8EA1A0000F80C10061863
+:101730000A762CF809041CF55C010C7628F73C00AD
+:101740000C1809F009041CF55C010EF70C00285870
+:101750001C5F4CF56C01102F3B178C2FFCB68CE3F3
+:10176000CF8080F73C000D585CE081007D43001382
:1017700002F1EC5604011400008001011500010083
-:1017800000D36D010D02F1EC5603000000010018BA
-:101790009A149CD8020000D401E06BE334EA1B8069
-:1017A00001304CE0A047DCD80A0000EBCD40E0203F
-:1017B0001DE06CE90EEA1C8001FACBFFFF198AB626
-:1017C0008A199AB69A19ACBA8CE0A059C318973006
-:1017D00005C0382FF55C55E066008C58A5C174E053
-:1017E0006C0098EA1C00000A0CF93B0010BA9B2E12
-:1017F0004C198CBAAC3029FACAFFFFF7D6C00830B2
-:101800005CFEB0ADE7CE71300CC41830181A9930B8
-:101810005AF7D6C008305CFEB0AE08CF601B8CA172
-:10182000ACBA8C305CBA9C1B8CBAAC3029FACAFFBB
-:10183000FFF7D6C008305CFEB0ADCCCE603018FAF1
-:10184000C9FFFF300AF7D6C008305CFEB0ADEECD60
-:10185000C01B8CA7BCBA8C305CBA9C1B8CBAAC3059
-:1018600029FACAFFFFF7D6C008305CFEB0ADB2CC93
-:10187000C0300A300B300CFEB0B068EF3C0082582C
-:101880000CC041322CFEB0AFC5301C2FFDE3CD00A3
-:1018900043DB001302F1EC56040115000080010146
+:1017800000D36D010D02F1EC5603000000010001D1
+:10179000D2F7290004F72C00005C5C589CF9BC02CD
+:1017A00005FE0C001C98CC180F0014007400D40126
+:1017B00034019203840326028202FC3018C128F00F
+:1017C0000C1006180AF50C00ACF55C00A6F50C0030
+:1017D000AEF55C00A8F50C00B0F55C00AA2FF85C33
+:1017E00068E06A2FD8EA1A00005858CEA5762CF87F
+:1017F00009041CF55C00C4762CF738000C1208F8BC
+:1018000008041CF55C00C6762CF738000CF20800C2
+:1018100019F809041CF55C00C8C8993018C128F0F3
+:101820000C1006180AF50C00CCF55C00C6F50C008F
+:10183000CEF55C00C8F50C00D0F55C00CA2FF85C52
+:1018400068E06A2FD8EA1A00005858CEA5762CF81E
+:1018500009041CF55C00E4762CF738000C1208F83B
+:1018600008041CF55C00E6762CF738000CF2080042
+:1018700019F809041CF55C00E8C5993018C128F076
+:101880000C1006180AF50C00ECF55C00E6F50C00EF
+:10189000FF0B001302F1EC5604011500008001015A
:1018A000160001000046A6010D02F1EC56030000EF
-:1018B00000010080E00000EBCD4080201DE06CE8DE
-:1018C000BCEA1C8001FACBFFFF198AB68A199AB6C6
-:1018D0009A19ABBA8B2FCCFEB0AD3C322CFEB0AF18
-:1018E0009B3007C0382FF75C5758A7C1D45867CF33
-:1018F000B05877CF905887CF70E06C0098EA1C0002
-:10190000000E0CF93B0010BA9B2E4C198CBAAC306F
-:1019100029FACAFFFFE06B008C305CFEB0AD6CCEE4
-:1019200031300CC408E067008C30181A99305AF72F
-:10193000D7C008305CFEB0AD8BCF401B8CF9DCC04B
-:1019400007BA8C30191A9AF7D7C008305CFEB0ADD0
-:1019500053CE8030181A99305AF7D7C008305CFE41
-:10196000B0AD76CDF01B8CA1ACBA8C305CBA9C1BB0
-:101970008CBAAC3029FACAFFFFF7D7C008305CFE3A
-:10198000B0AD3ACCF030181A99300AF7D7C0083009
-:101990005CFEB0AD5DCC60300A301B300CFEB0AFE9
-:1019A000E7301C2FFDE3CD8080D70380007560EB0E
-:1019B000CD408000AB9F001302F1EC5604011600ED
+:1018B00000010000EEF55C00E8F50C00F0F55C00BE
+:1018C000EA2FF85C68E06A2FD8EA1A00005858CE70
+:1018D000A5762CF809041CF55C0104762CF7380079
+:1018E0000C1208F808041CF55C0106762CF7380089
+:1018F0000CF2080019F809041CF55C0108C29930C3
+:101900001CC0D8F40C003AF4F80084F548007CF5CB
+:10191000080088F55800802FFC5C6CE06A2FD8EA3C
+:101920001A0000585CCEF5762CF809041CA96CF559
+:101930004C00A4762CF738000C1208F808041CF4AC
+:10194000F800A41808F54800A4762CF738000CF22B
+:10195000080019F809041CF55C00A8CFA83018C1CC
+:10196000C8F00C1012180A149C212C940EB80E2FDB
+:10197000EA940EB81E941EB82E942EB83E943EB82B
+:101980004E944EB85E945EB86E946EB87E947A2F84
+:101990000CB80A2FF85C68E06A2FD8EA1A000058E1
+:1019A00058CE05762CF809041CF55C0048762CF717
+:1019B00038000C00F194001302F1EC5604011600FB
:1019C000008001011700010000F91D010D02F1EC7A
-:1019D00056030000000100201DE06CE7E4EA1C80D3
-:1019E00001FACBFFFF198AB68A199AB69A19ABBACF
-:1019F0008B2FCCFEB0ACC0E067008C30181A993049
-:101A00005AF7D7C008305CFEB0AD34C031300CC2DC
-:101A1000081B8CA7BCBA8C305CBA9C1B8CBAAC304F
-:101A200029FACAFFFFF7D7C008305CFEB0ACF6CE8B
-:101A3000F0300A300B300CFEB0AFACE0A058AEF97D
-:101A40003C0082580CC041322CFEB0AF07301C2F36
-:101A5000FDE3CD8080D703800076B880007580EBF1
-:101A6000CD4080201DE06CE8E4EA1C8001FACBFF49
-:101A7000FF198AB68A199AB69A19ACBA8CE067002F
-:101A80008C30181A99305AF7D7C008305CFEB0ACC9
-:101A9000F1C031300CC1481B8CA7BCBA8C305CBA89
-:101AA0009C1BAB1B8C184BBAAB3029FACAFFFFF753
-:101AB000D7C008305CFEB0ACB1CED0301C2FFDE3F7
-:101AC000CD8080EBCD40C01897E0661B80EA160001
-:101AD0000030180C99304A0012BB001302F1EC568A
+:1019D000560300000001001208F808041CF55C0022
+:1019E0004A762CF738000CF2080018F808041CF5A9
+:1019F0005C004C762CF738000C303E1297F00E034A
+:101A000047F807041CF55C004E762CF738000CF202
+:101A1000080028F808041CF55C0050762CF7380004
+:101A20000C305E1297F00E0347F807041CF55C00BB
+:101A300052762CF738000C306E1297F00E0347F8F0
+:101A400007041CF55C0054762CF738000C307E122D
+:101A500097F00E0347F807041CF55C0056762CF748
+:101A600038000CF2080039F809041C2A8AB40CC8A2
+:101A700028301CC158F40C003AF508005CF55800F9
+:101A800054F508005EF5580056F5080060F558005A
+:101A900058F50800622A6AB4082FFC5C6CE06A2FD3
+:101AA000D8EA1A0000585CCE75762CF809041CF5AB
+:101AB0005C007C762CF738000C1208F808041CF542
+:101AC0005C007E762CF738000CF2080018F8080449
+:101AD0001CF55C0080762C00DADE001302F1EC5677
:101AE000040117000080010118000100006EF601DA
-:101AF0000D02F1EC56030000000100E06B008C3099
-:101B00005CFEB0ACC9C091E06CE89CEA1C8001FEB0
-:101B1000B0AC44E3CF80C00D8CE06B1B81EA1B00AE
-:101B200000B68CAE8CE3CF90C0D703800071988054
-:101B300000709CEBCD4080201D1A9C300BB88BB8F8
-:101B40009BE0A0583D308BBA8BF93C0080BA9CE0FA
-:101B500067008C30291A9AF7D7C008305CFEB0AC09
-:101B60006FC031300CC0E8309CBA8C300CBA9C305D
-:101B7000291A9AF7D7C008305CFEB0AC61CF30307C
-:101B80001C2FFDE3CD80808001C8C080007140EB38
-:101B9000CD4080E067E2C8EA1780010E9B305CE030
-:101BA000A046140E9B308CE0A04610E3CF808080CE
-:101BB00001A4CCD431202D1896E0672BF0EA170051
-:101BC000008ECC160CAE4C8EDC160CAE5C0FEC59B5
-:101BD0009CC0640FEC2FFCAEECEF4601D03015EA50
-:101BE0001543FA0C9C0A9BE0A017CCE08300CDEED5
-:101BF000F401C4089C0A9BE0A017C4002E8D0013BA
+:101AF0000D02F1EC56030000000100F738000C3035
+:101B00003EF00E0349F809041CF55C0082C458300D
+:101B10001CC088180AF538012CF568012B2FFC5CD5
+:101B20006CE06A2FD8EA1A0000585CCF45762CF892
+:101B300009041CF56C0130C3083018C128F00C10E2
+:101B400006180AF50C010CF55C0106F50C010EF502
+:101B50005C0108F53C0110F56C010A2FF85C68E0A7
+:101B60006A2FD8EA1A00005858CEA5762CF8090436
+:101B70001CF55C0124762CF738000C1208F80804D8
+:101B80001CF55C0126762CF738000CF2080019F8D9
+:101B900009041CF56C0128305C2F3BB68CE3CF8028
+:101BA000800000EBCD40801897FEB0AAE3EDB700AF
+:101BB00002C382E06B4668EA1B0000765B179A5806
+:101BC0001AC305F73A000DE069310CEA1900005814
+:101BD0005AC0F4F20A0019F93A0043B28A2BCC1920
+:101BE0008CB29C2F3B178C2FFCB68CE3CF808030BF
+:101BF0001AC0B8F20A0018109E202E005AD5001301
:101C000002F1EC56040118000080010119000100E6
-:101C1000002E4D010D02F1EC56030000000100E022
-:101C20008300C50FEC599CE08500C18EC3E04300E2
-:101C3000AFE08500BC0C9C089BE0A0156FE0640041
-:101C4000C4EA140000892CEF4601C4E0A02686BF38
-:101C5000DBE068999BEA189999E0699999EA193F3C
-:101C6000C9E0A02699C033EEF601D00F92E40C151E
-:101C700018C061EF4601C8EF4601CCC4486805FCB6
-:101C8000113FF00C9CE0A02669BB1B0A9CE0A0263B
-:101C90006514981699300A029BE0A0248DBB08E0D9
-:101CA000A025D3BB1BEEFC01C80A9BE0A015FAE0FF
-:101CB000A02654BB08E0A024B3E0A0172BEF4C01F2
-:101CC000C86815E0A0264ABB1B0A9CE0A026461463
-:101CD000981699300A029BE0A0246EBB08E0A0256C
-:101CE000B414901691EEFC01CC0A9BE0A015DAE04A
-:101CF000A0263400980299E0A02492E0A0170AEFF1
-:101D00004C01CC8EDCE04C03E9C185EEFC01CC0F2C
-:101D1000ABEE0B002BF74C01240FAC2FFCAEAC004C
-:101D2000683B001302F1EC56040119000080010128
+:101C1000002E4D010D02F1EC5603000000010011F1
+:101C200087BC871198BC982FFA5C6A585ACF55F92F
+:101C30003A0043F36A00082BCC198C2F79B28C3010
+:101C40005C2F3BB68CE3CF8080D70380006E74D4CA
+:101C500031202D1896E0672C08EA1700008ECC166C
+:101C60000CAE4C8EDC160CAE5C0FEC599CC0640FB5
+:101C7000EC2FFCAEECEF4601D03015EA1543FA0C20
+:101C80009C0A9BE0A017CCE08300CDEEF401C408D1
+:101C90009C0A9BE0A017C4E08300C50FEC599CE0B0
+:101CA0008500C18EC3E04300AFE08500BC0C9C08FA
+:101CB0009BE0A0156FE06400DCEA140000892CEFC3
+:101CC0004601C4E0A02686BFDBE068999BEA18992C
+:101CD00099E0699999EA193FC9E0A02699C033EEC5
+:101CE000F601D00F92E40C1518C061EF4601C8EF61
+:101CF0004601CCC4486805FC113FF00C9CE0A026CE
+:101D000069BB1B0A9CE0A0266514981699300A024C
+:101D10009BE0A0248DBB08E0A025D3BB1BEEFC00FC
+:101D2000132C001302F1EC5604011900008001018C
:101D30001A00010000BB86010D02F1EC5603000001
-:101D40000001000FAC594CC031300CAEAC0FBC5987
-:101D50004CC0440FBC2FFCAEBC300CAE5C5942C032
-:101D6000440F9C2FFCAE9C0F8A1495EE050024E9CD
-:101D7000460084EEFC01CC893C0F96F7D6C0080ED5
-:101D80009CFE3CFF7CC65DE94C00D4EE05001C2A9D
-:101D90004CB8030E9CFE3CFE28500C0E98FE38FEFC
-:101DA0002C0A99F5D6C008314B0E9CFE3CFF7CE016
-:101DB000A00254EEFC01D4EF4C01D00F8C2FFCAEEE
-:101DC0008C300C0F8B594BC021AE8CAE4C2FEDD804
-:101DD0003AD7038001667480016294EBCD40FE2007
-:101DE0006D18913003300630053002300C502C5005
-:101DF0005C503C504CE0672BF0EA1700000F945900
-:101E000044E081011C0FBC585CE0850118301B02C6
-:101E10009CE0A016DBE0830112FACCFFF8500CFA2C
-:101E2000C8FFEC0F892019F5D4C008314B0E9CFE79
-:101E30003CFF7CE0A00212E064CCCDEA143D4C40B3
-:101E40002C089B00804D001302F1EC5604011A008F
+:101D400000010001C80A9BE0A015FAE0A02654BBE0
+:101D500008E0A024B3E0A0172BEF4C01C86815E001
+:101D6000A0264ABB1B0A9CE0A02646149816993070
+:101D70000A029BE0A0246EBB08E0A025B4149016D4
+:101D800091EEFC01CC0A9BE0A015DAE0A02634001D
+:101D9000980299E0A02492E0A0170AEF4C01CC8EA3
+:101DA000DCE04C03E9C185EEFC01CC0FABEE0B008F
+:101DB0002BF74C01240FAC2FFCAEAC0FAC594CC030
+:101DC00031300CAEAC0FBC594CC0440FBC2FFCAE34
+:101DD000BC300CAE5C5942C0440F9C2FFCAE9C0F33
+:101DE0008A1495EE050024E9460084EEFC01CC89B6
+:101DF0003C0F96F7D6C0080E9CFE3CFF7CC65DE902
+:101E00004C00D4EE05001C2A4CB8030E9CFE3CFE90
+:101E100028500C0E98FE38FE2C0A99F5D6C00831D1
+:101E20004B0E9CFE3CFF7CE0A00254EEFC01D4EF84
+:101E30004C01D00F8C2FFCAE8C300C0F8B594BC04B
+:101E400021AE8C00D2EA001302F1EC5604011A0014
:101E5000008001011B00010000043D010D02F1ECB6
-:101E600056030000000100E0A016CEC062E064123C
-:101E70006FEA143B03C178402C089BE0A016B8C061
-:101E8000E3402CE06B3334EA1B3F33E0A016BCC0C8
-:101E900062E0649BA6EA143B44C058E064CCCDEAFF
-:101EA000143DCCFACCFFF0500CFAC8FFF40F892097
-:101EB000190F9A314B0E9CFE3CFF2CCE0D0FAB162A
-:101EC0009C201C580CC0242ECC204B580BC0242E18
-:101ED000CBEE0C002CF8FC0124EE0B002BF6FB01E2
-:101EE00024E0A0143FE0A0255DBFDBE0A01636E0B3
-:101EF0006BC290EA1B3CF5E0A0167AC123403CE09F
-:101F0000A02550BFDBBB1B089CE0A0254BBB08E015
-:101F1000A02568C0620F9B0F8C201CC1ED18935C3C
-:101F2000535813E0850098300BC088EE0B001C2A34
-:101F30004C988C18065C762FFB5C7B594BCF750256
-:101F40009CE0A0252FE0689204EA186FB0E06911C8
-:101F500027EA193F91E0A0249CE0A015FF18945CAB
-:101F6000760C9CE0A02590006F20001302F1EC5647
+:101E600056030000000100AE4C2FEDD83AD7038096
+:101E70000166EC8001630CEBCD40FE206D189130C3
+:101E800003300630053002300C502C505C503C5072
+:101E90004CE0672C08EA1700000F945944E08101D8
+:101EA0001C0FBC585CE0850118301B029CE0A0169A
+:101EB000DBE0830112FACCFFF8500CFAC8FFEC0FFC
+:101EC000892019F5D4C008314B0E9CFE3CFF7CE004
+:101ED000A00212E064CCCDEA143D4C402C089BE0FB
+:101EE000A016CEC062E064126FEA143B03C17840D2
+:101EF0002C089BE0A016B8C0E3402CE06B3334EA1A
+:101F00001B3F33E0A016BCC062E0649BA6EA143B12
+:101F100044C058E064CCCDEA143DCCFACCFFF0507C
+:101F20000CFAC8FFF40F8920190F9A314B0E9CFE52
+:101F30003CFF2CCE0D0FAB169C201C580CC0242E41
+:101F4000CC204B580BC0242ECBEE0C002CF8FC01FF
+:101F500024EE0B002BF6FB0124E0A0143FE0A025AB
+:101F60005DBFDBE0A0163600580D001302F1EC5601
:101F700004011B00008001011C000100001015017C
-:101F80000D02F1EC56030000000100E068A9FCEA34
-:101F900018D2F1E069624DEA193F50E0A0248BE0CD
-:101FA000A015EE089BE0A014B318960F8A149C208D
-:101FB0001C580CC0242ECC0F9B142B580BC0242E65
-:101FC000CBEE0C002C783CEE0B002B763BE0A01304
-:101FD000DBFC1BBF80E0A0149BE0A024F5E0681EA2
-:101FE000B8EA18EB85E069B851EA193FBEE0A024D1
-:101FF0009FE0A015C50C9BE0A014FE0FCBEE0B00DC
-:102000002BF74C01740FCC2FFCAECC0FCC594CC02D
-:1020100031300CAECC0FDC594CC0440FDC2FFCAE81
-:10202000DC3006C0B85C76EE06002CF8FC01740AC1
-:102030009BE0A0141718952FF60FDCF8061900CFB7
-:1020400033E0A0162F1897FC1C41200A9BE0A01437
-:102050005F0E9BE0A014D0E0A024B6E068999AEA55
-:10206000189999E0699999EA193FB9E0A02423E009
-:10207000A015861892C048300CAECCAEDC049CC0D3
-:1020800028300C2FADE3CD80FED703002BDF0013EB
+:101F80000D02F1EC56030000000100E06BC290EA84
+:101F90001B3CF5E0A0167AC123403CE0A02550BFD1
+:101FA000DBBB1B089CE0A0254BBB08E0A02568C05C
+:101FB000620F9B0F8C201CC1ED18935C535813E0EB
+:101FC000850098300BC088EE0B001C2A4C988C18AA
+:101FD000065C762FFB5C7B594BCF75029CE0A025FD
+:101FE0002FE0689204EA186FB0E0691127EA193F00
+:101FF00091E0A0249CE0A015FF18945C760C9CE076
+:10200000A02590E068A9FCEA18D2F1E069624DEAE7
+:10201000193F50E0A0248BE0A015EE089BE0A0142F
+:10202000B318960F8A149C201C580CC0242ECC0F79
+:102030009B142B580BC0242ECBEE0C002C783CEEBE
+:102040000B002B763BE0A013DBFC1BBF80E0A01451
+:102050009BE0A024F5E0681EB8EA18EB85E069B8BB
+:1020600051EA193FBEE0A0249FE0A015C50C9BE0FB
+:10207000A014FE0FCBEE0B002BF74C01740FCC2FEE
+:10208000FCAECC0FCC594CC031300C009535001350
:1020900002F1EC5604011C00008001011D0001004A
-:1020A000007AAD010D02F1EC560300000001008042
-:1020B0000166788001671C80016526D5311890146F
-:1020C0009230043005300130063007C2685943C0F1
-:1020D0002521430E9CE0A0160D089BE0A013D41808
-:1020E00094E0030023660C0A9BE0A013CD18950E24
-:1020F0009CE0A015FF660BE0A0141C029BE0A0135F
-:10210000C31891EE07024CE0A015F40C9BE0A0135D
-:10211000BB18962FF75C571BFC1837C0941BF304B1
-:10212000230E032FF35803CD342EC3CD4B089C0848
-:102130009BE0A013FF18971BFCE0A015C50C9BE0CB
-:10214000A013F80E9BE0A01331E0A0244FE068ED4F
-:102150008DEA18A0B5E069C6F7EA193EB0E0A02202
-:10216000A714961697089C0A9BE0A013E318951BEA
-:10217000FCE0A015A9029BE0A013DC0A9BE0A013E1
-:1021800015E0A024330C980E99E0A023E3E0A015FD
-:1021900009D93280014940800162FC800165A0EBD1
-:1021A000CD40FE1894169330075804C0342EC40056
-:1021B000808A001302F1EC5604011D000080010129
+:1020A000007AAD010D02F1EC56030000000100AE14
+:1020B000CC0FDC594CC0440FDC2FFCAEDC3006C02A
+:1020C000B85C76EE06002CF8FC01740A9BE0A014C4
+:1020D0001718952FF60FDCF8061900CF33E0A0167D
+:1020E0002F1897FC1C41200A9BE0A0145F0E9BE078
+:1020F000A014D0E0A024B6E068999AEA189999E073
+:10210000699999EA193FB9E0A02423E0A01586183F
+:1021100092C048300CAECCAEDC049CC028300C2FF2
+:10212000ADE3CD80FED703800166F0800167948027
+:1021300001659ED53118901492300430053001307D
+:10214000063007C2685943C02521430E9CE0A01603
+:102150000D089BE0A013D41894E0030023660C0A3A
+:102160009BE0A013CD18950E9CE0A015FF660BE038
+:10217000A0141C029BE0A013C31891EE07024CE0D0
+:10218000A015F40C9BE0A013BB18962FF75C571B0F
+:10219000FC1837C0941BF304230E032FF35803CD10
+:1021A000342EC3CD4B089C089BE0A013FF1897006A
+:1021B0003FFF001302F1EC5604011D0000800101F5
:1021C0001E00010000EF66010D02F1EC5603000055
-:1021D000000100C0485944C0252144300630053074
-:1021E00002C0C8E06B126FEA1B3B03029CE0A01523
-:1021F00035C0332FF55C752FF2E803010B5C5206F6
-:102200009C201C1832C264040B2FFB580BC0342EC8
-:10221000CBC048594BC025214B169C2FFC594CC0B4
-:1022200025214CE06A2BF0EA1A0000F40C002C780F
-:102230003CF40B002A743BE0A012CA1891E06B1228
-:102240006EEA1BBB03E0A01515CCD22FF65C76CD51
-:102250004B2FFB580BC0242ECBE06A2BF0EA1A0060
-:1022600000F404002C783CF40B002A743BE0A0122C
-:10227000AFE0A023CDBFDBE0A014A618945C755896
-:10228000B5C125E06BC290EA1B3D75E0A014E6C025
-:10229000B3E06BCCCDEA1B3ECC089CE0A014EAC0B6
-:1022A000323017C1585C7658B6C125E06BC290EA4F
-:1022B0001B3D75089CE0A014D1C0A3E06BCCCDEA17
-:1022C0001B3ECC089CE0A014D5C02230270E9C5C9D
-:1022D0005CE3CD00E3F1001302F1EC5604011E00B3
+:1021D0000001001BFCE0A015C50C9BE0A013F80E4D
+:1021E0009BE0A01331E0A0244FE068ED8DEA18A039
+:1021F000B5E069C6F7EA193EB0E0A022A71496162A
+:1022000097089C0A9BE0A013E318951BFCE0A0151F
+:10221000A9029BE0A013DC0A9BE0A01315E0A02418
+:10222000330C980E99E0A023E3E0A01509D9328081
+:102230000149B88001637480016618EBCD40FE1837
+:1022400094169330075804C0342EC4C0485944C073
+:10225000252144300630053002C0C8E06B126FEA19
+:102260001B3B03029CE0A01535C0332FF55C752F96
+:10227000F2E803010B5C52069C201C1832C2640475
+:102280000B2FFB580BC0342ECBC048594BC0252117
+:102290004B169C2FFC594CC025214CE06A2C08EAB7
+:1022A0001A0000F40C002C783CF40B002A743BE07C
+:1022B000A012CA1891E06B126EEA1BBB03E0A015D6
+:1022C00015CCD22FF65C76CD4B2FFB580BC0242EAD
+:1022D000CBE06A005DE2001302F1EC5604011E003F
:1022E000008001011F0001000050DD010D02F1EC32
-:1022F0005603000000010080FED70380016638808D
-:102300000147F0800148848001489CEBCD42FF18D2
-:1023100095169714931091300230063004C0E840AF
-:102320001C5C54081C580CC0240E0CEA0C032C0432
-:102330009BE0A012CD18922FF4E6041800CF1306EC
-:102340009CE0A014E5189B049CE0A0138B830C3048
-:1023500004C1B8401B5C54089C162C580CC0240EB9
-:102360000CEA0C0022620C640BE0A012431890628D
-:102370000C640BE0A0123E009BE0A012FF0C9BE05F
-:10238000A012A618962FF4E6041800CE43069CE08F
-:10239000A014BE189B0C9CE0A0136440AB970CE308
-:1023A000CF82FF800143F880014580800144D480C2
-:1023B00001491480014668EBCD40E0201D1A9C3095
-:1023C0000BB88BB89B3007E06C0E59EA1C0000B8C4
-:1023D00097FEB0A74D189636BCBA8CE06C0080BA58
-:1023E0009CE06500D030291A9AF7D5C008300CFE61
-:1023F000B0A8A4C031300C0000F6001302F1EC5676
+:1022F000560300000001002C08EA1A0000F4040054
+:102300002C783CF40B002A743BE0A012AFE0A02331
+:10231000CDBFDBE0A014A618945C7558B5C125E0CC
+:102320006BC290EA1B3D75E0A014E6C0B3E06BCC35
+:10233000CDEA1B3ECC089CE0A014EAC0323017C1A5
+:10234000585C7658B6C125E06BC290EA1B3D750813
+:102350009CE0A014D1C0A3E06BCCCDEA1B3ECC081E
+:102360009CE0A014D5C02230270E9C5C5CE3CD809D
+:10237000FED703800166B080014868800148FC8078
+:10238000014914EBCD42FF18951697149310913024
+:102390000230063004C0E8401C5C54081C580CC0D5
+:1023A000240E0CEA0C032C049BE0A012CD18922FF3
+:1023B000F4E6041800CF13069CE0A014E5189B0473
+:1023C0009CE0A0138B830C3004C1B8401B5C540804
+:1023D0009C162C580CC0240E0CEA0C0022620C64D3
+:1023E0000BE0A012431890620C640BE0A0123E00B8
+:1023F0009BE0A012FF0C9B007A62001302F1EC56E6
:1024000004011F00008001012000010000CFB6017F
-:102410000D02F1EC56030000000100C448364B0CDD
-:102420009CFEB0AA1136BCBA8CBA9730291A9AF71A
-:10243000D5C008300CFEB0A893CF00328B0C9CFEA8
-:10244000B0AA02319CBA8C309CBA9C30291A9AF7F7
-:10245000D5C008300CFEB0A883CE00319CBA8C30B9
-:10246000ACBA9C30291A9AF7D5C008300CFEB0A837
-:1024700077CD4031ACBA8C303CBA9C30291A9AF7EF
-:10248000D5C008300CFEB0A86BCC8036ACBA8CBA84
-:102490009730291A9AF7D5C008300CFEB0A860CB47
-:1024A000D0301C2FFDE3CD80E00000EBCD4080E07C
-:1024B000670E58EA1700000F8C580CC071C8FFC097
-:1024C00031E3CF8080301CAE8CE3CF90800000EBF6
-:1024D000CD40E0201DE06CE90BEA1C8001198BBAAD
-:1024E000AB1A9B2FFC198AB68A199AB69AFEB0A627
-:1024F000D11897E0660E59EA1600000D9CEDBC005D
-:1025000001C563E06500D03018FAC9FFFE36BAF79E
-:10251000D5C008300CFEB0A84FC03100D51600134E
+:102410000D02F1EC56030000000100E0A012A61826
+:10242000962FF4E6041800CE43069CE0A014BE18D4
+:102430009B0C9CE0A0136440AB970CE3CF82FF8021
+:10244000014470800145F88001454C8001498C8031
+:102450000146E0EBCD40E0201D1A9C300BB88BB854
+:102460009B3007E06C0E71EA1C0000B897FEB0A725
+:1024700011189636BCBA8CE06C0080BA9CE06500FE
+:10248000D030291A9AF7D5C008300CFEB0A868C021
+:1024900031300CC448364B0C9CFEB0A9D536BCBAC2
+:1024A0008CBA9730291A9AF7D5C008300CFEB0A81C
+:1024B00057CF00328B0C9CFEB0A9C6319CBA8C3031
+:1024C0009CBA9C30291A9AF7D5C008300CFEB0A8E7
+:1024D00047CE00319CBA8C30ACBA9C30291A9AF79E
+:1024E000D5C008300CFEB0A83BCD4031ACBA8C3022
+:1024F0003CBA9C30291A9AF7D5C008300CFEB0A817
+:102500002FCC8036ACBA8CBA9730291A9AF7D5C03E
+:1025100008300CFEB0A824CBD0301C0054CC0013E3
:1025200002F1EC56040120000080010121000100AD
-:10253000007307010D02F1EC5603000000010030AA
-:102540000CC4C81BACEDBC0006C0E236BCBA8C1B88
-:10255000ACA7CCBA9C30291A9AF7D5C008300CFE2B
-:10256000B0A810CEE0302B0E9CFEB0A97F3018FA38
-:10257000C9FFFE36CAF7D5C008300CFEB0A82ECE73
-:102580000036CCBA8C1BACE01CFFC7BA9C30291AB1
-:102590009AF7D5C008300CFEB0A7F4CD2031DCBAD4
-:1025A0008C303CBA9C30291A9AF7D5C008300CFE02
-:1025B000B0A7E8CC6031CCBA8C300CBA9C30291A68
-:1025C0009AF7D5C008FEB0A7DDCBB00D8CA1ACAC9E
-:1025D0008C0D9CA1ACAC9C301C2FFDE3CD80E0EBBE
-:1025E000CD40E0201DE06CE914EA1C8001198BBA93
-:1025F000AB1A9B2FFC198AB68A199AB69AE0670E15
-:1026000059EA1700000F96A1C6EC0C1518C301E09B
-:102610006500D00F8CEDBC0001C0F336BCBA8C3421
-:102620000CBA9C30291A9AF7D5C008300CFEB0A716
-:10263000A9C031300CC1E83018FAC9FFFE36CA0013
-:102640006FA7001302F1EC56040121000080010184
+:10253000007307010D02F1EC560300000001002FAB
+:10254000FDE3CD80E00000EBCD4080E0670E70EA57
+:102550001700000F8C580CC071C8FFC031E3CF804A
+:1025600080301CAE8CE3CF90800000EBCD40E020AB
+:102570001DE06CEAA4EA1C8001198BBAAB1A9B2FF0
+:10258000FC198AB68A199AB69AFEB0A6951897E0F1
+:10259000660E71EA1600000D9CEDBC0001C563E0FB
+:1025A0006500D03018FAC9FFFE36BAF7D5C008303A
+:1025B0000CFEB0A813C031300CC4C81BACEDBC007D
+:1025C00006C0E236BCBA8C1BACA7CCBA9C30291A28
+:1025D0009AF7D5C008300CFEB0A7D4CEE0302B0E51
+:1025E0009CFEB0A9433018FAC9FFFE36CAF7D5C021
+:1025F00008300CFEB0A7F2CE0036CCBA8C1BACE093
+:102600001CFFC7BA9C30291A9AF7D5C008300CFEB7
+:10261000B0A7B8CD2031DCBA8C303CBA9C30291A36
+:102620009AF7D5C008300CFEB0A7ACCC6031CCBA5C
+:102630008C300CBA9C30291A9AF7D5C008FEB0002D
+:102640006825001302F1EC5604012100008001010D
:102650002200010000E6CC010D02F1EC560300005F
-:10266000000100F7D5C008300CFEB0A7C9CF503626
-:10267000CCBA8C1BACE81C0038BA9C30291A9AF7EB
-:10268000D5C008300CFEB0A78FCE700F8CA1CCAE99
-:102690008CAE96301C2FFDE3CD80E0EBCD40E020EA
-:1026A0001DE06CE911EA1C8001198BBA8BFACBFF93
-:1026B000FF2FFC198AB68A199AB69AE0670E59EA72
-:1026C0001700000F96A1C6EC0C1518C221E065009A
-:1026D000D030181A9936CAF7D5C008300CFEB0A70A
-:1026E0008FC031300CC17836CCBA9C1B8CE81C00F2
-:1026F00038BAAC3029FACAFFFFF7D5C008300CFE53
-:10270000B0A752CF00301A300B303CFEB0AA08AE52
-:1027100096301C2FFDE3CD80E00000EBCD40C020C3
-:102720002D1897E066E658EA168001AD08BB19F14E
-:10273000DBC0081A9933BAE06B00D0300CFEB0A7AA
-:102740005FC0712F860C9CFEB0A6DC300CC0E81B6D
-:102750009CAE8C1B8CAE9C1BBCAEAC1BACAEBC1B35
-:10276000DCAECC003B5F001302F1EC56040122000A
+:10266000000100A7A1CBB00D8CA1ACAC8C0D9CA13E
+:10267000ACAC9C301C2FFDE3CD80E0EBCD40E020E6
+:102680001DE06CEAA7EA1C8001198BBAAB1A9B2FDC
+:10269000FC198AB68A199AB69AE0670E71EA170091
+:1026A000000F96A1C6EC0C1518C301E06500D00F11
+:1026B0008CEDBC0001C0F336BCBA8C340CBA9C3033
+:1026C000291A9AF7D5C008300CFEB0A76DC031307A
+:1026D0000CC1E83018FAC9FFFE36CAF7D5C0083079
+:1026E0000CFEB0A78DCF5036CCBA8C1BACE81C00CA
+:1026F00038BA9C30291A9AF7D5C008300CFEB0A71A
+:1027000053CE700F8CA1CCAE8CAE96301C2FFDE357
+:10271000CD80E0EBCD40E0201DE06CEAAAEA1C8011
+:1027200001198BBA8BFACBFFFF2FFC198AB68A19D5
+:102730009AB69AE0670E71EA1700000F96A1C6ECF0
+:102740000C1518C221E06500D030181A9936CAF766
+:10275000D5C008300CFEB0A753C031300CC178365C
+:10276000CCBA9C0066E6001302F1EC56040122008C
:102770000080010123000100005977010D02F1ECF6
-:10278000560300000001001BCCAEDC301C2FEDE333
-:10279000CD80C0EBCD40C0201DE06CE8FFEA1C807E
-:1027A00001FACBFFFF198AB68A199AB69A19ACBA00
-:1027B0008CFEB0A5A5189736BCBA9C301CBAACE00C
-:1027C0006600D03029FACAFFFFF7D6C008300CFEE9
-:1027D000B0A6FCC031300CC5B836CCBA9C347CBA3B
-:1027E000AC3029FACAFFFFF7D6C008300CFEB0A6FD
-:1027F000EDCF20332B0E9CFEB0A85C30181A993612
-:10280000CAF7D6C008300CFEB0A70CCE50305B0E15
-:102810009CFEB0A84F31DCBA9C308CBAAC3029FA9F
-:10282000CAFFFFF7D6C008300CFEB0A6CFCD4036A9
-:10283000CCBA9C1B8CA7BCE81C0007E01CFFC7BAE5
-:102840008C1B8CBAAC3029FACAFFFFF7D6C008300F
-:102850000CFEB0A6BBCC0030181A9936BAF7D6C019
-:1028600008300CFEB0A6DECB7036BCBA9C1B8CA721
-:10287000CCA5BCBA8C1B8CBAAC3029FACAFFFFF7C6
-:10288000D6C008300CFEB000945D001302F1EC5687
+:10278000560300000001001B8CE81C0038BAAC3076
+:1027900029FACAFFFFF7D5C008300CFEB0A716CF44
+:1027A00000301A300B303CFEB0A9CCAE96301C2F56
+:1027B000FDE3CD80E00000EBCD40C0202D1897E078
+:1027C00066E784EA168001AD08BB19F1DBC0081A80
+:1027D0009933BAE06B00D0300CFEB0A723C0712F44
+:1027E000860C9CFEB0A6A0300CC0E81B9CAE8C1BD7
+:1027F0008CAE9C1BBCAEAC1BACAEBC1BDCAECC1B15
+:10280000CCAEDC301C2FEDE3CD80C0EBCD40C02042
+:102810001DE06CEAB6EA1C8001FACBFFFF198AB60C
+:102820008A199AB69A19ACBA8CFEB0A5691897366F
+:10283000BCBA9C301CBAACE06600D03029FACAFFA2
+:10284000FFF7D6C008300CFEB0A6C0C031300CC5B2
+:10285000B836CCBA9C347CBAAC3029FACAFFFFF740
+:10286000D6C008300CFEB0A6B1CF20332B0E9CFE94
+:10287000B0A82030181A9936CAF7D6C008300CFE16
+:10288000B0A6D0CE50305B00C54A001302F1EC5622
:10289000040123000080010124000100004D5F01BC
-:1028A0000D02F1EC56030000000100A6A1CA603041
-:1028B0001C2FFDE3CD80C080007198EBCD408020BF
-:1028C0001D1A9C300BB88BB89BC77FC031300CC42D
-:1028D0001831FCBA8C34BCBA9CE06700D030291A9D
-:1028E0009AF7D7C008300CFEB0A682CF1031ECBAF0
-:1028F0008C304CBA9C30291A9AF7D7C008300CFE9D
-:10290000B0A676CE50369CBA8CE06C00C0BA9C3033
-:10291000291A9AF7D7C008300CFEB0A669CD8030CE
-:102920001A301B303CFEB0A91F338CBA8C340CBA61
-:102930009C30291A9AF7D7C008300CFEB0A658CCA4
-:1029400070E06C0E59EA1C0000199BA1BBB89B30CB
-:102950001C2FFDE3CD8080EBCD40C0201D1A9C30A4
-:102960000BB88BB89B301A303CFEB0A8FD338CBA44
-:102970008C3007BA97E06600D030291A9AF7D6C093
-:1029800008300CFEB0A634C031300CC23836BCBAA8
-:102990008CBA9730291A9AF7D6C008300CFEB0A628
-:1029A00027CF4031DCBA8CBA97302900AFCF001363
+:1028A0000D02F1EC560300000001000E9CFEB0A8E2
+:1028B0001331DCBA9C308CBAAC3029FACAFFFFF76E
+:1028C000D6C008300CFEB0A693CD4036CCBA9C1BC7
+:1028D0008CA7BCE81C0007E01CFFC7BA8C1B8CBA95
+:1028E000AC3029FACAFFFFF7D6C008300CFEB0A6FC
+:1028F0007FCC0030181A9936BAF7D6C008300CFED3
+:10290000B0A6A2CB7036BCBA9C1B8CA7CCA5BCBA17
+:102910008C1B8CBAAC3029FACAFFFFF7D6C008303E
+:102920000CFEB0A665CA60301C2FFDE3CD80C080D0
+:10293000007198EBCD4080201D1A9C300BB88BB8ED
+:102940009BC77FC031300CC41831FCBA8C34BCBA80
+:102950009CE06700D030291A9AF7D7C008300CFEE7
+:10296000B0A646CF1031ECBA8C304CBA9C30291A44
+:102970009AF7D7C008300CFEB0A63ACE50369CBAB3
+:102980008CE06C00C0BA9C30291A9AF7D7C0083086
+:102990000CFEB0A62DCD80301A301B303CFEB0A806
+:1029A000E3338CBA8C340CBA9C3029002A03001310
:1029B00002F1EC5604012400008001012500010011
:1029C0000027E7010D02F1EC560300000001001A98
-:1029D0009AF7D6C008300CFEB0A61CCE9036CCBA02
-:1029E0008CBA9730291A9AF7D6C008300CFEB0A6D8
-:1029F00011CDE0301C2FFDE3CD80C0EBCD40F820A1
-:102A00001D1893E067E594EA1780011A9C0F8BB8B4
-:102A10008B0F9BB89B300CBA1CFEB0A4951896E0A7
-:102A2000650E59EA1500000B9CEDBC0001C0E233B5
-:102A30008CBA8C300CBA9C30291A9AE06B00D0FE0C
-:102A4000B0A5E8C031300CC808CC9ECFD031FCBA5C
-:102A50008C310CBA9CE06400D030291A9AF7D4C0AB
-:102A600008300CFEB0A5D6CEF031ECBA8C304CBAA2
-:102A70009C30291A9AF7D4C008300CFEB0A5CACEF3
-:102A800030369CBA8CE06C00C0BA9C30291A9AF798
-:102A9000D4C008300CFEB0A5BDCD60301A301B305C
-:102AA0003CFEB0A873338CBA8C340CBA9C30291A13
-:102AB0009AF7D4C008300CFEB0A5ACCC50301CA6A0
-:102AC0008C0C9CFEB0A82E581CC190301B0C9C0096
-:102AD0005A7C001302F1EC5604012500008001012C
+:1029D0009AF7D7C008300CFEB0A61CCC70E06C0E85
+:1029E00071EA1C0000199BA1BBB89B301C2FFDE3B2
+:1029F000CD8080EBCD40C0201D1A9C300BB88BB829
+:102A00009B301A303CFEB0A8C1338CBA8C3007BA68
+:102A100097E06600D030291A9AF7D6C008300CFE2D
+:102A2000B0A5F8C031300CC23836BCBA8CBA973079
+:102A3000291A9AF7D6C008300CFEB0A5EBCF40316A
+:102A4000DCBA8CBA9730291A9AF7D6C008300CFE37
+:102A5000B0A5E0CE9036CCBA8CBA9730291A9AF746
+:102A6000D6C008300CFEB0A5D5CDE0301C2FFDE35C
+:102A7000CD80C0EBCD40F8201D1893E067E73CEA1D
+:102A80001780011A9C0F8BB88B0F9BB89B300CBA28
+:102A90001CFEB0A4591896E0650E71EA1500000BF3
+:102AA0009CEDBC0001C0E2338CBA8C300CBA9C3077
+:102AB000291A9AE06B00D0FEB0A5ACC031300CC82A
+:102AC00008CC9ECFD031FCBA8C310CBA9CE06400AB
+:102AD000350D001302F1EC560401250000800101C0
:102AE0002600010000B22C010D02F1EC560300009B
-:102AF000000100FEB0A7149A9B2FFBBA1B0C9CFE92
-:102B0000B0AA12C0602FC70E9CFEB0A543C0989A11
-:102B10009CE04C0032CE852F470E9CFEB0A53A308B
-:102B20001A300B303CFEB0A843300B0C9CFEB0A812
-:102B30000FC37FC9B00B9CEDBC0001C0B23037CED3
-:102B40002E581CC1300E9CFE37FF015C5CCF91C03B
-:102B5000D85C5CC0B13037FEB0FD28581CC0600E98
-:102B60009CFE37FF015C5CCF81301C2FFDE3CD80E4
-:102B7000F8D70380006E748000714080007650802A
-:102B800000742880007A308000709C800076B880C5
-:102B9000007658EBCD40C0206D1A9C300A300BB93E
-:102BA0001BF8EB0008F8EB0010E06600EE30181A96
-:102BB00099E06A00D0F7D6C008303CFEB0A5681B8B
-:102BC0008BE04B0055C671581CC651E0670ED8EA21
-:102BD000170000304C8F7C303CEF5C0020EF5C0035
-:102BE00022355CEF6C001631681A99E06A00AAF78A
-:102BF000D6C00800EB3B001302F1EC56040126009E
+:102AF00000010000D030291A9AF7D4C008300CFE2B
+:102B0000B0A59ACEF031ECBA8C304CBA9C30291A70
+:102B10009AF7D4C008300CFEB0A58ECE30369CBAE1
+:102B20008CE06C00C0BA9C30291A9AF7D4C00830E7
+:102B30000CFEB0A581CD60301A301B303CFEB0A831
+:102B400037338CBA8C340CBA9C30291A9AF7D4C01B
+:102B500008300CFEB0A570CC50301CA68C0C9CFE2E
+:102B6000B0A7F2581CC190301B0C9CFEB0A6D89A9E
+:102B70009B2FFBBA1B0C9CFEB0A9D6C0602FC70EC2
+:102B80009CFEB0A507C0989A9CE04C0032CE852FE1
+:102B9000470E9CFEB0A4FE301A300B303CFEB0A8AD
+:102BA00007300B0C9CFEB0A7D3C37FC9B00B9CEDC4
+:102BB000BC0001C0B23037CE2E581CC1300E9CFE76
+:102BC00037FF015C5CCF91C0D85C5CC0B13037FE90
+:102BD000B0FD28581CC0600E9CFE37FF015C5CCF26
+:102BE00081301C2FFDE3CD80F8D70380006E748008
+:102BF0000071400090AA001302F1EC560401260077
:102C00000080010127000100000D97010D02F1EC89
-:102C100056030000000100303CFEB0A54BC0412F20
-:102C2000ADE3CD80C01B8A1B9BF7EA108AAE0A1B5E
-:102C3000AA1BBBF7EA108AAE1A1BCA1BDBF7EA1005
-:102C40008AAE2A1BEA1BFBF7EA108AAE3AFB3A006F
-:102C500008FB3B0009F7EA108AAE4AFB3A000AFB80
-:102C60003B000BF7EA108AAE5AFB3A000CFB3B0024
-:102C70000DF7EA108AAE6AFB3A000EFB3B000FF735
-:102C8000EA108AAE7AFB3A0010FB3B0011F7EA101B
-:102C90008AEF5A0010FB3A0012FB3B0013F7EA10D0
-:102CA0008AEF5A0012FB3A0014FB3B0015F7EA10BA
-:102CB0008A2EC7AE0ACB5B300CCB3BEBCD40E0207D
-:102CC0001DE067E700EA1780011A9C0F8BB88B0F95
-:102CD0009BB89BE0660038EA160000300C8D0CAC07
-:102CE000CC301C8D3CE06C00F4BA8C32ECBA9C30D9
-:102CF000291A9AE06B00EE303CFEB0A4AF1895584C
-:102D000015C0502FC70E9CFEB0A4560C9C2F0C3043
-:102D10000B990BB8CB300C00F42E001302F1EC56DB
+:102C10005603000000010080007650800074288078
+:102C2000007A308000709C800076B880007658EB87
+:102C3000CD40C0206D1A9C300A300BB91BF8EB0058
+:102C400008F8EB0010E06600EE30181A99E06A0010
+:102C5000D0F7D6C008303CFEB0A52C1B8BE04B0053
+:102C600055C671581CC651E0670EF0EA17000030D7
+:102C70004C8F7C303CEF5C0020EF5C0022355CEF39
+:102C80006C001631681A99E06A00AAF7D6C00830BD
+:102C90003CFEB0A50FC0412FADE3CD80C01B8A1B09
+:102CA0009BF7EA108AAE0A1BAA1BBBF7EA108AAE92
+:102CB0001A1BCA1BDBF7EA108AAE2A1BEA1BFBF7BA
+:102CC000EA108AAE3AFB3A0008FB3B0009F7EA102B
+:102CD0008AAE4AFB3A000AFB3B000BF7EA108AAEC9
+:102CE0005AFB3A000CFB3B000DF7EA108AAE6AFB78
+:102CF0003A000EFB3B000FF7EA108AAE7AFB3A006F
+:102D000010FB3B0011F7EA108AEF5A0010FB3A0063
+:102D100012FB3B0013F7EA001B75001302F1EC569F
:102D2000040127000080010128000100009A7C01B5
-:102D30000D02F1EC560300000001002F86AC8C0A56
-:102D40009C2FFDE3CD80E0D401201D1A9C300BB8F0
-:102D50008BB89BE06C00F4BA8C32ECBA9C30291A28
-:102D60009AE06B00EE303CFEB0A48A2FFDD802EB57
-:102D7000CD4080187CC050201CC190E3CF9080E0F3
-:102D8000670038EA1700000E9C2F0CCE0CC2010F12
-:102D90008C580CC0410F9C580CC1A0300CE06B004B
-:102DA00038EA1B0000973CE3CF9080E0670038EAE8
-:102DB0001700000E9C2EECC94CC0A10FAC580CCED5
-:102DC000E10FBC580CCEB10FCC580CCE81E3CF90A4
-:102DD000800000EBCD40E0202D18973006300C50DD
-:102DE0001C5C5BC0A0E06C0ED8EA1C0000786CF3A1
-:102DF000BC0004501CC228E065E6F4EA1580011A04
-:102E00009C0B8BB88B0B9BB89B30281A99E06A00FF
-:102E1000F6E06B00EE303CFEB0A45E18965816C08B
-:102E2000500A9C2FCCFEB0A3D95816CEF11B8C1B98
-:102E30009BF7EC108CCFFC501C401C00F6050013D7
+:102D30000D02F1EC56030000000100108AEF5A006A
+:102D400012FB3A0014FB3B0015F7EA108A2EC7AEBF
+:102D50000ACB5B300CCB3BEBCD40E0201DE067E8BD
+:102D6000BCEA1780011A9C0F8BB88B0F9BB89BE0B5
+:102D7000660038EA160000300C8D0CACCC301C8D8F
+:102D80003CE06C00F4BA8C32ECBA9C30291A9AE020
+:102D90006B00EE303CFEB0A47318955815C0502F50
+:102DA000C70E9CFEB0A41A0C9C2F0C300B990BB8CC
+:102DB000CB300C2F86AC8C0A9C2FFDE3CD80E0D469
+:102DC00001201D1A9C300BB88BB89BE06C00F4BA44
+:102DD0008C32ECBA9C30291A9AE06B00EE303CFE43
+:102DE000B0A44E2FFDD802EBCD4080187CC05020FF
+:102DF0001CC190E3CF9080E0670038EA1700000E16
+:102E00009C2F0CCE0CC2010F8C580CC0410F9C584B
+:102E10000CC1A0300CE06B0038EA1B0000973CE3CB
+:102E2000CF9080E0670038EA1700000E9C2EECC9B6
+:102E30004CC0A10FAC580CCEE10FBC0082ED0013CA
:102E400002F1EC5604012800008001012900010074
-:102E500000DAC7010D02F1EC56030000000100F892
-:102E60000C100A501C401CA94CAECC401CAEDC0C13
-:102E70009C2FEDE3CD80E0300CE06B0038EA1B00C6
-:102E8000002F8BB68C5EFF300CE06B0038EA1B0025
-:102E9000002F8BB68C5EFFEBCD40C01897E066002C
-:102EA00038EA1600000C9C2F0CC9DCED3B000858DA
-:102EB0002BC0B40C9B2F0B300A970AB6CAED3B000F
-:102EC000082FFBED6B00086C3B580BC0910C9B0E60
-:102ED00098305A173910C9201ACFD1C0F80C9A2F40
-:102EE0000A0E98305B153910C9201BCFD10C9B2FCF
-:102EF0000B760A8D0A17CAACCA301B8D3BE3CD8016
-:102F0000C00000EBCD40C0201DE067E56CEA1780F3
-:102F1000011A9B0F8AB68A0F9AB69AE06600EE30C5
-:102F2000381899E06A00F6F7D6C008303CFEB0A326
-:102F3000E5C0712FC70E9CFEB0A362300CC158E0F3
-:102F40006C00F4BA8C32ECBA9C30291A9AF7D6C0CD
-:102F500008303CFEB0A3A618965816C0502F470064
-:102F6000B53D001302F1EC56040129000080010177
+:102E500000DAC7010D02F1EC560300000001005832
+:102E60000CCEB10FCC580CCE81E3CF90800000EB9C
+:102E7000CD40E0202D18973006300C501C5C5BC014
+:102E8000A0E06C0EF0EA1C0000786CF3BC0004506B
+:102E90001CC228E065E8C8EA1580011A9C0B8BB8B3
+:102EA0008B0B9BB89B30281A99E06A00F6E06B0008
+:102EB000EE303CFEB0A42218965816C0500A9C2F43
+:102EC000CCFEB0A39D5816CEF11B8C1B9BF7EC10CB
+:102ED0008CCFFC501C401CF80C100A501C401CA944
+:102EE0004CAECC401CAEDC0C9C2FEDE3CD80E03032
+:102EF0000CE06B0038EA1B00002F8BB68C5EFF30B5
+:102F00000CE06B0038EA1B00002F8BB68C5EFFEBE9
+:102F1000CD40C01897E0660038EA1600000C9C2FE0
+:102F20000CC9DCED3B0008582BC0B40C9B2F0B30B8
+:102F30000A970AB6CAED3B00082FFBED6B00086C40
+:102F40003B580BC0910C9B0E98305A173910C92072
+:102F50001ACFD1C0F80C9A2F0A0E98305B153900A1
+:102F60000FFD001302F1EC5604012900008001015D
:102F70002A000100004F0C010D02F1EC5603000085
-:102F80000001000E9CFEB0A34D0C9C2FFDE3CD80F4
-:102F9000C00000EBCD40C0201DE067E580EA17804F
-:102FA000011A9B0F8AB68A0F9AB69AE06600EE3035
-:102FB000281899E06A00F6F7D6C008303CFEB0A3A6
-:102FC000AFC0712FC70E9CFEB0A32C300CC148E0DF
-:102FD0006C00F4BA8CBA9C30291A9AF7D6C0083023
-:102FE0003CFEB0A37118965816C0502F470E9CFE99
-:102FF000B0A3180C9C2FFDE3CD80C0800071988099
-:103000000071408000709CEBCD4080203D189730CF
-:103010000C501C500C502C501C0F8B0F9CF9EB10BB
-:103020008B501B401CC2BC500C0FABB16B0FBCF7DC
-:10303000EC108B0FCC184BE06C0ED8EA1C00002E65
-:103040000C980CF80C1108F60C0A4B502B402CC3B2
-:103050004C501C401CB14CAE8C401CA94CAE9C404A
-:103060001CAEAC400CF80C100A500C400CA94CAE35
-:10307000BC400CAECC2FDDE3CF9080E0690ED8EAE7
-:103080001900000034C2001302F1EC5604012A00BA
+:102F800000010010C9201BCFD10C9B2F0B760A8D9E
+:102F90000A17CAACCA301B8D3BE3CD80C00000EBE2
+:102FA000CD40C0201DE067E700EA1780011A9B0FA3
+:102FB0008AB68A0F9AB69AE06600EE30381899E021
+:102FC0006A00F6F7D6C008303CFEB0A3A9C0712F46
+:102FD000C70E9CFEB0A326300CC158E06C00F4BABA
+:102FE0008C32ECBA9C30291A9AF7D6C008303CFED5
+:102FF000B0A36A18965816C0502F470E9CFEB0A377
+:10300000110C9C2FFDE3CD80C00000EBCD40C02013
+:103010001DE067E714EA1780011A9B0F8AB68A0F32
+:103020009AB69AE06600EE30281899E06A00F6F742
+:10303000D6C008303CFEB0A373C0712FC70E9CFEF3
+:10304000B0A2F0300CC148E06C00F4BA8CBA9C30ED
+:10305000291A9AF7D6C008303CFEB0A33518965806
+:1030600016C0502F470E9CFEB0A2DC0C9C2FFDE337
+:10307000CD80C080007198800071408000709CEB12
+:10308000CD4080005503001302F1EC5604012A00E4
:10309000008001012B00010000F0B7010D02F1ECEE
-:1030A00056030000000100F33B0016E04B0055C141
-:1030B0000192DB161C92CBB73CAF5CF30B0012AB5A
-:1030C0007BF30A0014180AF60A0C0A140C936C72AB
-:1030D0006CF3BC00045C8C5EFC0000EBCD40C0E0F7
-:1030E000690ED8EA1900007268E0280FA0F0080203
-:1030F0004EAD4E92BB9227B137AD57926ABD3AB1F1
-:103100004A0E0AF3BA0002FE3A8000B73AAF9AF3C9
-:103110000700209206927BB73EAB5EFC06002B9226
-:1031200019B338AB581608F007094BF3BB00021669
-:103130001CE06BC350F607084BB73CFC1B80001625
-:103140003CC062A17CF80A0D0A149CC058F80A0D14
-:103150000A149CA17CF80A1408B53AE06B0BDEB7A0
-:103160003AB14AFE7BE343B93BB14B160AFE3AF152
-:1031700031A54A140CE3CD80C00000D401206D308D
-:103180001B300AE0690ED8EA1900009208F00E150B
-:1031900010C0505BF85F185008C0383008500892D3
-:1031A00018F00E1510C050000DF8001302F1EC5687
+:1030A00056030000000100203D1897300C501C50C2
+:1030B0000C502C501C0F8B0F9CF9EB108B501B40AD
+:1030C0001CC2BC500C0FABB16B0FBCF7EC108B0FDC
+:1030D000CC184BE06C0EF0EA1C00002E0C980CF89B
+:1030E0000C1108F60C0A4B502B402CC34C501C40C2
+:1030F0001CB14CAE8C401CA94CAE9C401CAEAC40EC
+:103100000CF80C100A500C400CA94CAEBC400CAE94
+:10311000CC2FDDE3CF9080E0690EF0EA190000F3D8
+:103120003B0016E04B0055C10192DB161C92CBB759
+:103130003CAF5CF30B0012AB7BF30A0014180AF6E9
+:103140000A0C0A140C936C726CF3BC00045C8C5E69
+:10315000FC0000EBCD40C0E0690EF0EA19000072FF
+:1031600068E0280FA0F008024EAD4E92BB9227B146
+:1031700037AD57926ABD3AB14A0E0AF3BA0002FE61
+:103180003A8000B73AAF9AF30700209206927BB7D5
+:103190003EAB5EFC06002B9219B338AB581608F014
+:1031A00007094BF3BB0002009110001302F1EC562B
:1031B00004012B00008001012C00010000E49F01AC
-:1031C0000D02F1EC560300000001005BF85F18509F
-:1031D00018C038300850189228F00E1510C0505BF7
-:1031E000F85F185028C0383008502892B8F00E15F3
-:1031F00010C060E048FFFF5F185038C038300850FA
-:103200003892C8F00E1510C060E048FFFF5F1850FC
-:1032100048C0383008504892D9F2081510C060E014
-:1032200049FFFF5F195059C038300950593009C063
-:10323000881A98F00903285808C0212FFA2FF95846
-:1032400069CF85586AC021300BB88B169C2FADD83A
-:10325000020000D4011699300B201CC040201CC075
-:1032600060C0B8FEB0FDBA189BC0785C5A5F1B12F4
-:103270009CFEB0FDF9189B169CD802300BF96B0030
-:103280000DE06B4650EA1B000076BBF71A005C307D
-:1032900019F9280000F208094C184A2A4BB60A5EB0
-:1032A000FF0000300BF96B000DE06B4650EA1B008D
-:1032B0000076BBF71A005C3019F9280000F2080903
-:1032C0004C188A2A4BB60A5EFF000000A7BF001305
+:1031C0000D02F1EC56030000000100161CE06BC379
+:1031D00050F607084BB73CFC1B8000163CC062A1B0
+:1031E0007CF80A0D0A149CC058F80A0D0A149CA118
+:1031F0007CF80A1408B53AE06B0BDEB73AB14AFE28
+:103200007BE343B93BB14B160AFE3AF131A54A14B0
+:103210000CE3CD80C00000D401206D301B300AE0EB
+:10322000690EF0EA1900009208F00E1510C0505B0C
+:10323000F85F185008C038300850089218F00E1582
+:1032400010C0505BF85F185018C038300850189202
+:1032500028F00E1510C0505BF85F185028C03830A9
+:1032600008502892B8F00E1510C060E048FFFF5FCC
+:10327000185038C0383008503892C8F00E1510C0B9
+:1032800060E048FFFF5F185048C03830085048924F
+:10329000D9F2081510C060E049FFFF5F195059C00E
+:1032A00038300950593009C0881A98F00903285855
+:1032B00008C0212FFA2FF95869CF85586AC02130EC
+:1032C0000BB88B169C2FADD802000000A46A001327
:1032D00002F1EC5604012C00008001012D000100D8
-:1032E000008E27010D02F1EC560300000001005E84
-:1032F000FF0000EBCD40F8204D189516941297EA88
-:103300000A001C0E0C5817C050F92B0016580BC1A0
-:10331000012EACF92B00002FFBB88BEA07000C2D17
-:10332000ECF92B00002FFBB88B0B9C2FFCAA9CEA1E
-:10333000070003E7260022FAE700080B9AEB2B00B0
-:1033400000BB1BE06CE5A8EA1C8001FEB0A1A03028
-:103350000CC0282FFC5C6C586CC104EA0C001B0EDE
-:103360000B2EABF72A0000581ACF555804C024186A
-:1033700094E76400122EC3A68C2FCDE3CF80F8EB28
-:10338000CD40F8204D189516941297EA0A001C0EAD
-:103390000CEA070003F92B0016581BC1252EACF9C7
-:1033A0002B0000201BB88BE72C0022201CE76C00B0
-:1033B000220B9C581CC0550B9CFE3CFF01AA9CE7AD
-:1033C000260022FAE700080B9AEB2B0000BB1BE05B
-:1033D0006CE5B8EA1C8001FEB0A15A300CC0282F61
-:1033E000FC5C6C586CC114EA0C001B0E0B2EAB007D
-:1033F000DE1E001302F1EC5604012D0000800101D5
+:1032E000008E27010D02F1EC56030000000100D40E
+:1032F000011699300B201CC040201CC060C0B8FED5
+:10330000B0FDBA189BC0785C5A5F1B129CFEB0FDE2
+:10331000F9189B169CD802300BF96B000DE06B4638
+:1033200068EA1B000076BBF71A005C3019F9280028
+:1033300000F208094C184A2A4BB60A5EFF0000301A
+:103340000BF96B000DE06B4668EA1B000076BBF7DB
+:103350001A005C3019F9280000F208094C188A2A72
+:103360004BB60A5EFF00005EFF0000EBCD40F82088
+:103370004D189516941297EA0A001C0E0C5817C0A7
+:1033800050F92B0016580BC1012EACF92B00002F61
+:10339000FBB88BEA07000C2DECF92B00002FFBB8D3
+:1033A0008B0B9C2FFCAA9CEA070003E7260022FA5D
+:1033B000E700080B9AEB2B0000BB1BE06CE894EADB
+:1033C0001C8001FEB0A164300CC0282FFC5C6C583E
+:1033D0006CC104EA0C001B0E0B2EABF72A00005840
+:1033E0001ACF555804C0241894E76400122EC30065
+:1033F000EAFE001302F1EC5604012D0000800101E9
:103400002E000100001BEC010D02F1EC5603000040
-:10341000000100F72A0000581ACF555804C024189C
-:1034200094E76400122EC3A68CC0683FFCE76C00D2
-:10343000122EC3A68C2FCDE3CF80F88000709C188D
-:103440000BF72A0012580A5E5DE06A4650EA1A003D
-:103450000074BA2ECBF7290000F409001A290A9447
-:103460000B2DCC980C580CC0245EFD5C8B5E1D307F
-:103470002C5EFCD401F3DAB008F5DBB0083FFBC4E6
-:10348000CFD80AD401F3DAB008F5DBB0083FFBC8A7
-:10349000AFD80A584CC0415C6B5F0CC028300C5C44
-:1034A0005C5EFCEBCD40E018951497585BC0303063
-:1034B00046C0283056F7D7B008F9D6B008CEBFC0FE
-:1034C000403FFCEB5C0028F3D7B008F5D6B00830DD
-:1034D0002B0A9CC22FE3CF80E00000EBCD40E01828
-:1034E000951497585BC0303046C0283056F7D7B097
-:1034F00008F9D6B008CCFFC110EB0C0028580CC05E
-:10350000A4E06C0144EA1C0000980C2D85AA0CE391
-:10351000CF80E00038AD001302F1EC5604012E001C
+:10341000000100A68C2FCDE3CF80F