Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/do.bat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/do.bat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/do.bat	(working copy)
@@ -0,0 +1,52 @@
+@set FPGA_PATH=fpgajic\fpga
+@set ROM_PATH=.
+@set MV_PATCH=mv\src\yichip
+@set YC_PATCH_FILE=yc_patch_yc1021.h
+@set enc=1
+@set enckey=0000000000000000
+@echo off
+setlocal enabledelayedexpansion
+
+copy patch\patch.prog output\bt_program23.meta
+copy rom\rom.format  + rom\label.format + patch\patch.format + rom\command.format output\bt_format.meta
+perl util/mergepatch.pl output/bt_program23.meta
+perl util/memalloc.pl output/bt_format.meta
+
+perl util/transform_memmap2btreg.pl output/memmap.format format/memblocks.format ..\c51\btreg.h
+
+cd output
+osiuasm bt_program23 -O-W
+copy  ..\sched\patch.dat +  ..\sched\rf.dat + ..\sched\user.dat ..\output\sched.rom
+
+
+if "%1" equ "eep" (
+	goto genromrevc
+)else (
+  goto downloadram
+)
+
+:genromrevc
+@echo Start to generate EEPROM code
+
+..\util\geneep ramcode.rom fwram.rom sched.rom 0 %enckey% c
+cd ..\output
+
+:gen_eep_end
+cd ..
+echo **********************************
+echo EEPROM Generated.
+echo The Device is %device_option%. 
+echo Use command "e ep" to download EEPROM.
+echo **********************************
+
+@copy .\output\ramcode.rom ..\c51\patch
+
+@copy .\output\sched.rom ..\c51\patch
+
+@copy .\output\memmap.format ..\c51\patch
+
+@copy .\sched\*.*	..\c51\patch
+
+goto end
+
+:end
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_format.meta
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_format.meta	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_format.meta	(working copy)
@@ -0,0 +1,11016 @@
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4130 mem_current_amaddr
+0x4131 mem_lpm_mode
+0x4132 mem_device_option
+0x4133 mem_scan_mode
+0x4134 mem_last_clkn
+0x4138 mem_features
+0x4140 mem_lap
+0x4143 mem_uap
+0x4144 mem_nap
+0x4146 mem_npage
+0x4147 mem_glap
+0x414a mem_class
+0x414d mem_iscan_window
+0x414f mem_iscan_interval
+0x4151 mem_pscan_window
+0x4153 mem_pscan_interval
+0x4155 mem_page_interval
+0x4157 mem_page_window
+0x4159 mem_page_to
+0x415b mem_inq_window
+0x415d mem_fcomp_mul
+0x415e mem_fcomp_div
+0x415f mem_rx_window_init
+0x4161 mem_rx_window_sniff
+0x4163 mem_rf_init_ptr
+0x4165 mem_last_type
+0x4166 mem_last_type_esco
+0x4167 mem_last_type_saved
+0x4168 mem_retransmission_cnt
+0x416a mem_next_btclk
+0x416e mem_rf_rccal
+0x416f mem_handle_num
+0x4170 mem_max_slot
+0x4171 mem_eir_enable
+0x4172 mem_afh_instant
+0x4176 mem_afh_error_total
+0x4178 mem_afh_cfg
+0x4179 mem_afh_new_mod
+0x417a mem_afh_map_lo
+0x417f mem_afh_map_hi
+0x4184 mem_afh_used
+0x4185 mem_afh_index
+0x4187 mem_afh_map_new
+0x4192 mem_afh_map
+0x41e2 mem_afh_timer
+0x41e6 mem_afh_classify_channel_map
+0x41f0 mem_chip_functions
+0x41f2 mem_lpm_wake_lock
+0x41f4 mem_lpm_interval
+0x41f6 mem_lpm_overhead
+0x41f7 mem_lpm_hibernate_switch
+0x41f8 mem_esco_addr
+0x41f9 mem_sniff_unint_lost
+0x41fa mem_ptt
+0x41fb mem_sleep_counter//should be 0x41fc in REVC
+0x41ff mem_sleep_counter_all
+0x4203 mem_sleep_clkn
+0x4209 mem_sniff_rcv
+0x420c mem_sniff_lost
+0x420f mem_clks_per_lpo
+0x4212 mem_lpm_mult
+0x4213 mem_lpm_mult_timeout
+0x4214 mem_lpm_mult_cnt
+0x4215 mem_lpm_config
+0x4218 mem_lpm_xtalcnt
+0x4219 mem_lpm_buckcnt
+0x421a mem_lpm_ldocnt
+0x421b mem_lpm_isogate
+0x421c mem_lpm_isogate_final
+0x421d mem_saved_gpio// should be 0x421e in REVC
+0x422d mem_saved_gsel
+0x4230 mem_saved_mark
+0x4238 mem_saved_spidctrl
+0x4239 mem_patch_ptr
+0x423b mem_patch_len
+0x423d mem_timers
+0x425d mem_link_key_exists
+0x425e mem_link_key_eeprom_head
+0x4261 mem_link_key
+0x4271 mem_hci_cmd
+0x4272 mem_hci_conn_handle
+0x4273 mem_hci_plap
+0x4276 mem_hci_puap
+0x4277 mem_hci_pnap
+0x4279 mem_uartd_rxitems_got_data
+0x427a mem_uartd_rxitems_threshold
+0x427b mem_uartd_rx_timeout
+0x427d mem_tx_lch
+0x427e mem_tx_len
+0x4280 mem_tx_power
+0x4281 mem_context_number
+0x4282 mem_rf_init_data
+0x4283 mem_app_handshake_flag
+0x4284 mem_sniff_param_interval
+0x4286 mem_sniff_param_attempt
+0x4288 mem_sniff_param_timeout
+0x428a mem_cb_check_wakelock
+0x428c mem_cb_before_hibernate
+0x428e mem_cb_before_lpm
+0x4290 mem_cb_le_process
+0x4292 mem_cb_bt_process
+0x4294 mem_cb_idle_process
+0x4296 mem_cb_bb_event_process
+0x4298 mem_cb_discovry_timeout
+0x429a mem_cb_att_write
+0x429c mem_cb_update_notify_value
+0x429e mem_cb_update_notify_continue
+0x42a0 mem_cb_event_timer
+0x42a2 mem_cb_le_set_mult
+0x42a4 mem_cb_bt_set_mult
+0x42a6 mem_soft_version_num
+0x42a8 mem_eeprom_base
+0x42aa mem_unsniff2sniff_timer_count
+0x42ab mem_wake_up_delay_timer
+0x42ac mem_app_connection_options
+0x42ad mem_app_disconn_reason
+0x42af mem_app_disconn_reason_flag
+0x42b1 mem_lpm_delay_after_sniff
+0x42b5 mem_xrecord_mode
+0x42b6 mem_eeprom_block_size
+0x42b8 mem_wakup_from_power_flag
+0x42b9 mem_spi_init_clk
+0x42ba mem_spi_init_delay_time
+0x42bb mem_spi_ncs_gpio
+0x42bc mem_nv_data_ptr
+0x42be mem_nv_data_number
+0x42bf mem_0_5_adc_io_data
+0x42c1 mem_1v_adc_hvin_data
+0x42c3 mem_2v_adc_vinlpm_data
+0x42c5 mem_1v_adc_io_data
+0x42c7 mem_5v_adc_hvin_data
+0x42c9 mem_3v_adc_vinlpm_data
+0x42cb mem_otp_adc_flag
+0x42cd mem_reference_voltage
+0x42cf mem_adc_config_flag
+0x42d0 mem_adc_channel
+0x42d1 mem_adc_current_value
+0x42d3 mem_baud
+0x42d5 mem_hci_lt_rx_state
+0x42d6 mem_l2cap_xmem_start
+0x42d6 mem_l2cap_tx_multi_offset//0 means single packet
+0x42d8 mem_sdp_remote_cid
+0x42da mem_rfcomm_remote_cid
+0x42dc mem_hid_ctrl_remote_cid
+0x42de mem_hid_int_remote_cid
+0x42e0 mem_sdp_state
+0x42e1 mem_rfcomm_state
+0x42e2 mem_hid_control_state
+0x42e3 mem_hid_interrupt_state
+0x42e4 mem_spp_state
+0x42e5 mem_ML2CAP_comm_id
+0x42e6 mem_used_map
+0x42e7 mem_tx_fifo0
+0x42e7 mem_tx_fifo0_map
+0x42e8 mem_tx_fifo0_ptr
+0x42ea mem_tx_fifo1
+0x42ea mem_tx_fifo1_map
+0x42eb mem_tx_fifo1_ptr
+0x42ed mem_tx_fifo2
+0x42ed mem_tx_fifo2_map
+0x42ee mem_tx_fifo2_ptr
+0x42f0 mem_tx_fifo3
+0x42f0 mem_tx_fifo3_map
+0x42f1 mem_tx_fifo3_ptr
+0x42f3 mem_tx_fifo_end
+0x42f3 mem_l2cap_lpm_txbuf
+0x43f3 mem_l2cap_flow_ctrl_flag
+0x43f4 mem_l2cap_pending_item
+0x43f5 mem_l2cap_xmem_end
+0x43f5 mem_le_dsniff
+0x43f7 mem_le_conn_interval
+0x43f9 mem_le_scan_enable
+0x43fa mem_le_scan_interval
+0x43fc mem_le_scan_window
+0x43fe mem_le_adv_led
+0x43ff mem_le_adv_enable
+0x4400 mem_le_adv_data_len
+0x4401 mem_le_adv_data
+0x4420 mem_le_scan_data_len
+0x4421 mem_le_scan_data
+0x4440 mem_le_name_len
+0x4441 mem_le_name
+0x4455 mem_le_led_on_time
+0x4456 mem_le_new_map
+0x445b mem_le_new_param
+0x445b mem_le_new_transmitwindowsize
+0x445c mem_le_new_transmitwindowoffset
+0x445e mem_le_new_conninterval
+0x4460 mem_le_new_connslavelatency
+0x4462 mem_le_new_connsupervisiontimeout
+0x4464 mem_le_temp
+0x4465 mem_le_txheader
+0x4466 mem_le_txlen
+0x4467 mem_le_txpayload
+0x4469 mem_le_txcid
+0x446b mem_le_l2cap
+0x446c mem_le_l2cap_response
+0x446d mem_le_txbdy
+0x448c mem_le_pcnt_tx
+0x4491 mem_le_pcnt_rx
+0x4496 mem_le_last_mic
+0x449a mem_le_ivm
+0x449e mem_le_ivs
+0x44a2 mem_le_ltk
+0x44b2 mem_ltk_exists
+0x44b3 mem_le_rconfirm
+0x44c3 mem_le_srand
+0x44d3 mem_le_iat
+0x44d4 mem_le_rat
+0x44d5 mem_le_preq
+0x44d6 mem_le_preq_iocap
+0x44d7 mem_le_preq_oob
+0x44d8 mem_le_preq_auth
+0x44d9 mem_le_preq_max_keysize
+0x44da mem_le_preq_init_key_distribution
+0x44db mem_le_preq_resp_key_distribution
+0x44dc mem_le_pres
+0x44dd mem_le_pres_iocap
+0x44de mem_le_pres_oob
+0x44df mem_le_pres_auth
+0x44e0 mem_le_pres_max_keysize
+0x44e1 mem_le_pres_init_key_distribution
+0x44e2 mem_le_pres_resp_key_distribution
+0x44e3 mem_le_search_handle_start
+0x44e5 mem_le_search_handle_end
+0x44e7 mem_le_att_offset
+0x44e7 mem_le_search_att_type_length
+0x44e8 mem_le_search_att_type
+0x44f8 mem_le_notify_handle
+0x44fa mem_le_search_uuid_length
+0x44fb mem_le_search_uuid
+0x450b mem_le_handle_data_len
+0x450c mem_le_handle_data
+0x451c mem_le_adv_param
+0x451c mem_le_adv_interval_min
+0x451e mem_le_adv_interval_max
+0x4520 mem_le_adv_type
+0x4521 mem_le_adv_own_addr_type
+0x4522 mem_le_adv_direct_addr_type
+0x4523 mem_le_adv_direct_addr
+0x4529 mem_le_adv_channel_map
+0x452a mem_le_adv_filter_policy
+0x452b mem_le_conn_param
+0x452b mem_le_conn_peer_addr_type
+0x452c mem_le_conn_peer_addr
+0x4532 mem_le_conn_own_addr_type
+0x4533 mem_le_conn_interval_min
+0x4535 mem_le_conn_interval_max
+0x4537 mem_le_conn_latency
+0x4539 mem_le_conn_superto
+0x453b mem_le_scan_params
+0x453b mem_le_scan_type
+0x453c mem_le_scan_own_addr_type
+0x453d mem_le_scan_filter_policy
+0x453e mem_le_lap
+0x4541 mem_le_uap
+0x4542 mem_le_nap
+0x4544 mem_le_xtype_fifo
+0x454c mem_le_local_mtu
+0x454e mem_le_remote_mtu
+0x4550 mem_le_ll_cur_opcode
+0x4551 mem_le_skdm
+0x4559 mem_le_skds
+0x4561 mem_le_init_superto
+0x4563 mem_le_secure_connect_enable
+0x4564 mem_le_secure_connect_flag
+0x4565 mem_le_sc_calc
+0x4566 mem_le_secure_connect_state
+0x4567 mem_le_sc_confirm_gkey_flag
+0x4568 mem_le_sc_local_key_invalid
+0x4569 mem_le_continue_flag
+0x456a mem_le_pairing_state
+0x456b mem_le_enc_state
+0x456c mem_le_pairing_mode
+0x456d mem_le_tk
+0x4571 mem_le_ediv
+0x4573 mem_le_rand
+0x457b mem_le_irk
+0x458b mem_le_pairing_handle
+0x458d mem_le_interal_min
+0x458f mem_le_interal_max
+0x4591 mem_le_latency
+0x4593 mem_le_timeout
+0x4595 mem_le_switch_send_data
+0x4596 mem_le_transmit_window
+0x459a mem_le_buff_len
+0x459c mem_le_buff_len_all
+0x459e mem_le_buff_data_len_all
+0x45a0 mem_prepare_write_len
+0x45a2 mem_le_prepare_write_req_offset
+0x45a4 mem_prepare_handle
+0x45a6 mem_prepare_write_offest
+0x45a8 mem_le_flag
+0x45a9 mem_lmp_version
+0x45ac mem_lmp_subversion
+0x45ae mem_local_name_length
+0x45af mem_local_name
+0x45b2 mem_local_name2
+0x45f2 mem_local_name_end
+0x45f3 mem_unsniff2sniff_timer
+0x45f4 mem_switch_flag
+0x45f5 mem_pn_dlci
+0x45f6 mem_pn_max_frame_size
+0x45f8 memFCStemp1
+0x45f9 memFCStemp2
+0x45fa memFCStemp3
+0x45fb mem_rfcomm_initiator
+0x45fc mem_remote_spp_channel
+0x45fd mem_HIUfcs_SPP
+0x45fe mem_HIUfcs_SPP_WCredits
+0x45ff mem_rfcomm_send_more_pkt
+0x4600 mem_remote_credits
+0x4601 mem_credit_given
+0x4602 mem_ms_channel
+0x4603 mem_credit_flag
+0x4604 mem_rfcomm_max_frame_size
+0x4606 mem_rfcomm_credit_init_data
+0x4607 mem_cb_receive_spp_data
+0x4609 mem_nl_rx_data_src
+0x460b mem_nl_rx_len_all
+0x460d mem_ui_uuid_table
+0x460f mem_all_uuid_16bits
+0x4625 mem_all_uuid_128bits
+0x4637 mem_ui_le_uuid_table
+0x4639 mem_sp_local_key_invalid
+0x463a mem_le_private_key_256
+0x465a mem_le_pubkey_local_x_256
+0x467a mem_le_pubkey_local_y_256
+0x469a mem_sp_private_key
+0x46b2 mem_sp_pubkey_local
+0x46b2 mem_sp_pubkey_local_x
+0x46ca mem_sp_pubkey_local_x_end
+0x46ca mem_sp_pubkey_local_y
+0x46e2 mem_ssp_enable
+0x46e3 mem_sp_iocap_local
+0x46e6 mem_sp_iocap_remote
+0x46e9 mem_flag_mode_ssp_pin
+0x46ea mem_ssp_mode_flag
+0x46eb mem_authentication_passkey_times
+0x46ec mem_passkey_1bit
+0x46ed mem_flag_pairing_state
+0x46ee mem_ipc_lock_bt
+0x46ef mem_ipc_lock_c51
+0x46f0 mem_ipc_fifo_bt2c51
+0x46f8 mem_ipc_fifo_c512bt
+0x4700 mem_led_switch
+0x4701 mem_ui_button_timer
+0x4702 mem_ui_button_last_state
+0x4703 mem_ui_timer_last_btclk
+0x4707 mem_discovery_timeout_timer_count
+0x4709 mem_hid_handshake_timer_count
+0x470a memui_reconnect_mode
+0x470b mem_ui_state_map
+0x470d mem_ui_profile_supported
+0x470e mem_led_gpio
+0x470f mem_led_dark_time
+0x4711 mem_led_light_time
+0x4713 mem_led_blink_count
+0x4714 mem_ui_button_timeout
+0x4715 mem_ui_button_gpio
+0x4716 mem_discovery_timeout
+0x4718 mem_pin_length
+0x4719 mem_pin
+0x4729 mem_24g_tx_btclk
+0x472d mem_24g_interval
+0x472e mem_24g_txfail_cnt
+0x472f mem_24g_attempt_cnt
+0x4730 mem_24g_attempt_flag
+0x4731 mem_24g_rxfail_cnt
+0x4734 mem_24g_retry
+0x4735 mem_24g_pid
+0x4736 mem_24g_datalen
+0x4737 mem_24g_crc
+0x4739 mem_24g_rxbuf
+0x4779 mem_24g_addr
+0x477d mem_24g_len
+0x477f mem_24g_txpayload
+0x4789 mem_24g_txdata
+0x4793 mem_24g_ch
+0x4794 mem_24g_scremble
+0x47a4 mem_24g_current_ch_number
+0x47a5 mem_24g_ch_map1
+0x47a9 mem_24g_ch_map2
+0x47ad mem_24g_ch_map3
+0x47b1 mem_24g_ch_map4
+0x47b5 mem_24g_interval_min
+0x47b6 mem_24g_interval_max
+0x47b7 mem_24g_ensure
+0x47b8 mem_24g_enter_hibernate
+0x47c0 mem_24g_enter_lpm_timer
+0x47c1 mem_24g_pairing_sm
+0x47c2 mem_24g_addr_copy
+0x47c6 mem_24g_sifs
+0x47c7 mem_24g_rxcnt
+0x47c8 mem_24g_addr_private_dongle
+0x47cc mem_24g_map_buff0_dongle
+0x47cd mem_24g_channel_cnt_dongle
+0x47ce mem_24g_pairing_sm_dongle
+0x47cf mem_24g_tx_btclk_dongle
+0x47d3 mem_24g_interval_dongle
+0x47d4 mem_24g_ch_update_dongle
+0x47d5 mem_24g_rx_sync_dongle
+0x47d6 mem_24g_ch_cnt_dongle
+0x47d7 mem_24g_rxbuf_temp_dongle
+0x47dd mem_24g_rxbuf_dongle
+0x47e3 mem_24g_rxfail_cnt_dongle
+0x47e6 mem_24g_spi_enable_flag
+0x4729 mem_acl_credits
+0x472b mem_allow_switch
+0x472c mem_hci_acl_queue_start/*param_acl_pktcnt+2 byte*/
+0x4730 mem_hci_wake_clk
+0x4729 mem_kb_state
+0x472b mem_kb_report_data
+0x4731 mem_kb_keys
+0x4732 mem_kb_rcv_led_data
+0x4733 mem_kb_fast_wake_last
+0x4737 mem_led_cap_gpio
+0x4738 mem_led_num_gpio
+0x4739 mem_led_scl_gpio
+0x473a mem_kb_current_vdd_value_10times
+0x473c mem_kb_read_adc_cnt_100ms
+0x473d mem_kb_current_vdd_value
+0x473f mem_led_power_blink_count
+0x4740 mem_led_power_500ms_cnt
+0x4741 mem_kb_map2
+0x49fd mem_3v1_adc_default
+0x49ff mem_kb_map
+0x4a9d mem_kb_discovery_timer
+0x4a9f mem_kb_direct_timer
+0x4aa1 mem_kb_no_data_timer
+0x4aa3 mem_kb_direct_timeout
+0x4aa5 mem_kscn_event_last
+0x4aa6 mem_kscan_event_num_last
+0x4aa7 mem_auto_enable_mult_timer
+0x4aa8 mem_auto_enable_mult_timer_init
+0x4aa9 mem_kb_temp_flag
+0x4aaa mem_map2_out_report0
+0x4ab2 mem_map2_out_report1
+0x4aba mem_table_last_repory_data0
+0x4ac2 mem_table_last_repory_data1
+0x4aca mem_kb_down
+0x4ad4 mem_kb_down_last
+0x4ade mem_table_temp
+0x4ae6 mem_pincode_vk_last
+0x4ae7 mem_kb_device_button_last
+0x4ae8 mem_kb_device_button_timer
+0x4ae9 mem_kb_current_status
+0x4aea mem_seq
+0x4aeb mem_dorx_cnt
+0x4aec mem_matched_btclk
+0x4aee mem_master_sniff_interval
+0x4aef mem_led_power_gpio
+0x4af0 mem_kb_check_vdd_count
+0x4af2 mem_0v_adc_data
+0x4af4 mem_2v2_adc_data
+0x4af6 mem_3v_adc_data
+0x4af8 mem_select_system_led_timer
+0x4af9 mem_led_cap_gpio_status
+0x4afa mem_kb_no_data_timeout
+0x4afc mem_kb_gpio_last_val
+0x4b00 mem_store_current_status
+0x4b01 mem_kb_led_on_timer
+0x4b02 mem_kb_debug_sm
+0x4b03 mem_kb_mode
+0x4b05 mem_kb_mode_revese
+0x4b07 mem_master_addr
+0x4b0d mem_led_device_blink_count
+0x4b0e mem_led_device_500ms_cnt
+0x4b0f mem_kb_caps_led_status
+0x4b10 mem_kb_reconnection_ssp
+0x4b11 mem_kb_rcv_hid_control_rsp
+0x4b12 mem_kb_down_regroup
+0x4b17 mem_kb_get_fn_flag
+0x4b18 mem_kb_kscan_cnt
+0x4b19 mem_kb_down_test
+0x4b23 mem_kb_release_fn_data
+0x4b24 mem_led_cap_delay_timer
+0x4b25 mem_led_cap_mult_timer
+0x4b26 mem_led_cap_flag
+0x4b27 mem_hid_rx_data
+0x4b28 mem_kb_fn_c
+0x4b29 mem_kb_c_fn
+0x4b2a mem_keyboard_uuid_list
+0x4db4 mem_keyboard_uuid_list_end
+0x4db4 mem_keyboard_le_att_list
+0x4fa8 mem_keyboard_le_att_list_end
+0x4729 mem_module_wake_up_gpio
+0x472a mem_module_state_gpio
+0x472b mem_module_connect_state_gpio
+0x472c mem_current_packet_length
+0x472e mem_module_state
+0x472f mem_module_task
+0x4730 mem_cmode_addr
+0x4736 mem_module_mcu_wake_pin
+0x4737 mem_module_mcu_wake_delay_us
+0x473b mem_module_spp_lpm_mult
+0x473c mem_module_le_lpm_mult
+0x473d mem_module_bluetooth_stauts_by_command
+0x473e mem_module_uart_rx_buffer
+0x4740 mem_module_uart_rx_buffer_end
+0x4742 mem_module_uart_tx_buffer
+0x4744 mem_module_uart_tx_buffer_end
+0x4746 mem_module_read_vdd_flag
+0x4747 mem_module_read_vdd_count
+0x4748 mem_module_vdd_quotient
+0x4749 mem_module_vdd_remainder
+0x474a mem_module_le_buff_len
+0x474c mem_module_le_buff_len_all
+0x474e mem_module_le_buff_data_len_all
+0x4750 mem_module_le_continue_flag
+0x4751 mem_module_le_rx_data_len
+0x4752 mem_module_le_rx_data_address
+0x4754 mem_module_le_rx_data_handle
+0x4756 mem_module_data_write_handle
+0x4758 mem_module_data_write_handle2
+0x475a mem_module_flag
+0x475b mem_le_notify_type
+0x475c mem_module_hci_notify_start
+0x475e mem_module_hci_notify_offset
+0x4760 mem_module_hci_notify_len
+0x4762 mem_module_hci_notify_att
+0x4764 mem_module_hci_notify_original_len
+0x4766 mem_module_uuid_list
+0x4892 mem_module_uuid_list_end
+0x4892 mem_module_le_att_list
+0x4a86 mem_module_le_att_list_end
+0x4a86 mem_nv_data
+0x4a86 mem_nv_data0
+0x4aa8 mem_nv_data1
+0x4aca mem_nv_data2
+0x4aec mem_nv_data3
+0x4b0e mem_nv_data4
+0x4729 mem_mouse_key
+0x472a mem_mouse_x
+0x472c mem_mouse_y
+0x472e mem_mouse_z
+0x472f mem_mouse_tz
+0x4730 mem_mouse_xy_h
+0x4731 mem_sensor_shutter_hi
+0x4732 mem_sensor_shutter_lo
+0x4733 mem_sensor_smart_flag
+0x4734 mem_sensor_squal_reg
+0x4735 mem_mouse_move_flag
+0x4736 mem_reconnect_timeout
+0x4737 mem_mouse_direct_timeout
+0x4739 mem_mouse_no_data_timeout
+0x473b mem_mouse_blank_data_timeout
+0x473d mem_mouse_discovery_timer
+0x473f mem_mouse_direct_timer
+0x4741 mem_mouse_no_data_timer
+0x4743 mem_mouse_blank_data_timer
+0x4745 mem_mouse_send_blank_timer
+0x4746 mem_mouse_dpi
+0x4747 mem_mouse_dpi_button_state
+0x4748 mem_mouse_test_cnt
+0x4749 mem_le_hibernate_timer
+0x474b mem_mouse_mode_state
+0x474c mem_mouse_le_notify_handle
+0x474d mem_lbutton_gpio
+0x474e mem_rbutton_gpio
+0x474f mem_mbutton_gpio
+0x4750 mem_sbutton1_gpio
+0x4751 mem_sbutton2_gpio
+0x4752 mem_dpi_button_gpio
+0x4753 mem_sensor_data_gpio
+0x4754 mem_whee_a_data_gpio
+0x4755 mem_whee_b_data_gpio
+0x4756 mem_sensor_reset_gpio
+0x4757 mem_device1_led_gpio
+0x4758 mem_device2_led_gpio
+0x4759 mem_device3_led_gpio
+0x475a mem_conn_cnt
+0x475b mem_whee_ta_data_gpio
+0x475c mem_whee_tb_data_gpio
+0x475d mem_wheel_tb_old_pinlevel
+0x475e mem_wheel_tb_new_pinlevel
+0x475f mem_wheel_tog
+0x4760 mem_mouse_tz_data
+0x4761 mem_mouse_tz_data_count
+0x4762 mem_mouse_tz_data_count1
+0x4763 mem_mwhee_a_data_gpio
+0x4764 mem_mwhee_b_data_gpio
+0x4765 mem_mwheel_b_old_pinlevel
+0x4766 mem_mwheel_b_new_pinlevel
+0x4767 mem_mwheel_tog
+0x4768 mem_mouse_z_data
+0x4769 mem_mouse_z_data_count
+0x476a mem_mouse_z_data_count1
+0x476b mem_reconn_mode
+0x476c mem_mouse_statue_led_timer
+0x476d mem_device_flag
+0x476e mem_mouse_uuid_list
+0x4a5c mem_mouse_uuid_list_end
+0x4a5c mem_mouse_le_att_list
+0x4cb4 mem_mouse_le_att_list_end
+0x4729 mem_shutter_send_data
+0x472d mem_shutter_key_temp
+0x472e mem_shutter_send_length
+0x472f mem_shutter_clkn_bt_last
+0x4733 mem_shutter_key
+0x4734 mem_shutter_flag
+0x4735 mem_shutter_cable_unplug_conut
+0x4736 mem_shutter_hid_disconn_count
+0x4737 mem_shutter_1key_send_sm
+0x4738 mem_shutter_iphonekey_gpio
+0x4739 mem_shutter_androidkey_gpio
+0x473a mem_shutter_key_number
+0x473b mem_read_eeprom_temp
+0x473c mem_read_eeprom_mac_addr
+0x473f mem_scale_tx_length
+0x4740 mem_scale_txbuff_inuse
+0x4741 mem_adv_lap_ptr
+0x4743 mem_le_sleep_flag
+0x4744 mem_rx_window_sniff_inc
+0x4746 mem_pair_state
+0x4747 mem_exchange_mtu_req
+0x4748 mem_le_sleep_timeout
+0x474a mem_le_sleep_timeout_timer_count
+0x474c mem_le_fast_adv_timeout
+0x474e mem_le_fast_adv_timeout_timer_count
+0x4750 mem_led_fast_dark_time
+0x4752 mem_led_fast_light_time
+0x4754 mem_power_on_pin
+0x4755 mem_hard_soft_switch_case
+0x4756 mem_shutter_powerup_flag
+0x4757 mem_shutter_button_timeout
+0x4758 mem_shutter_button_timer
+0x4759 mem_power_timeout
+0x475a mem_power_timer
+0x475b mem_enable_key_scan
+0x475c mem_packet_interval_set
+0x475e mem_shutter_led_num
+0x475f mem_led_map
+0x4763 mem_fast_adv_led_style
+0x4763 mem_fa_led_type
+0x4764 mem_fa_led_pin
+0x4765 mem_fa_led_on_time
+0x4767 mem_fa_led_off_time
+0x4769 mem_fa_blink_count
+0x476a mem_slow_adv_led_style
+0x476a mem_sa_led_type
+0x476b mem_sa_led_pin
+0x476c mem_sa_led_on_time
+0x476e mem_sa_led_off_time
+0x4770 mem_sa_blink_count
+0x4771 mem_power_on_led_style
+0x4771 mem_po_led_type
+0x4772 mem_po_led_pin
+0x4773 mem_po_led_on_time
+0x4775 mem_po_led_off_time
+0x4777 mem_po_blink_count
+0x4778 mem_powe_off_led_style
+0x4778 mem_pf_led_type
+0x4779 mem_pf_led_pin
+0x477a mem_pf_led_on_time
+0x477c mem_pf_led_off_time
+0x477e mem_pf_blink_count
+0x477f mem_connected_led_style
+0x477f mem_co_led_type
+0x4780 mem_co_led_pin
+0x4781 mem_co_led_on_time
+0x4783 mem_co_led_off_time
+0x4785 mem_co_blink_count
+0x4786 mem_key_led_style
+0x4786 mem_key_led_style_ind_0
+0x4786 mem_key_led_style_ind_0_data
+0x478d mem_key_led_style_ind_1
+0x478d mem_key_led_style_ind_1_data
+0x4794 mem_key_led_style_ind_2
+0x4794 mem_key_led_style_ind_2_data
+0x479b mem_key_led_style_ind_3
+0x479b mem_key_led_style_ind_key_release
+0x479b mem_key_led_style_ind_3_data
+0x47a2 mem_temp_led_style
+0x47a2 mem_temp_led_type
+0x47a3 mem_temp_led_pin
+0x47a4 mem_temp_led_on_time
+0x47a6 mem_temp_led_off_time
+0x47a8 mem_temp_blink_count
+0x47a9 mem_shutter_key_num
+0x47aa mem_key_conf0
+0x47aa mem_key_conf0_pin
+0x47ab mem_key_conf0_led
+0x47ac mem_key_conf1
+0x47ac mem_key_conf1_pin
+0x47ad mem_key_conf1_led
+0x47ae mem_key_conf2
+0x47ae mem_key_conf2_pin
+0x47af mem_key_conf2_led
+0x47b0 mem_key_conf3
+0x47b0 mem_key_conf3_pin
+0x47b1 mem_key_conf3_led
+0x47b2 mem_key_conf4
+0x47b2 mem_key_conf4_pin
+0x47b3 mem_key_conf4_led
+0x47b4 mem_key_conf5
+0x47b4 mem_key_conf5_pin
+0x47b5 mem_key_conf5_led
+0x47b6 mem_key_value_temp
+0x47b8 mem_key_value
+0x47ba mem_key_packet_count
+0x47bb mem_key_next_addr
+0x47bd mem_key_value_temp1
+0x47be mem_key_value_temp2
+0x47bf mem_key_value_temp3
+0x47c0 mem_key_value_temp4
+0x47c1 mem_key_value_temp5
+0x47c2 mem_key_value_temp6
+0x47c3 mem_key0_press
+0x47d7 mem_key0_release
+0x47eb mem_key1_press
+0x47f9 mem_key1_release
+0x4807 mem_key2_press
+0x4815 mem_key2_release
+0x4823 mem_key3_press
+0x4831 mem_key3_release
+0x483f mem_key4_press
+0x484d mem_key4_release
+0x485b mem_key5_press
+0x4869 mem_key5_release
+0x4877 mem_queue_ele_num
+0x4878 mem_queue_read
+0x487a mem_queue_write
+0x487c mem_queue_start
+0x487c mem_data_ele0
+0x4886 mem_data_ele1
+0x4890 mem_data_ele2
+0x489a mem_data_ele3
+0x48a4 mem_data_ele4
+0x48ae mem_data_ele5
+0x48b8 mem_queue_end
+0x48b8 mem_queue_temp
+0x48ba mem_shutter_key_data_flag
+0x48bb mem_shutter_key_data_flag_1
+0x48bc mem_le_find_type_value_start_handle
+0x48be mem_le_find_type_value_end_handle
+0x48c0 mem_shutter_find_type_value_flag
+0x48c1 mem_le_uuid
+0x48c2 mem_send_updata_le_param_timer
+0x48c3 mem_le_smp_key_dist
+0x48c6 mem_ltk_states
+0x48c7 mem_shutter_conn_update_timer
+0x48c8 mem_empty_count
+0x48c9 mem_shutter_notification_len
+0x48ca mem_shutter_notification_addr
+0x48cc mem_shutter_le_att_list
+0x4729 mem_current_event
+0x472a mem_ipc_lock_rx_data_bt
+0x472b mem_ipc_lock_rx_data_c51
+0x472c mem_ipc_lock_tx_data_bt
+0x472d mem_ipc_lock_tx_data_c51
+0x472e mem_ipc_2bt_fifo_head
+0x47c4 mem_ipc_2bt_fifo_end
+0x47c4 mem_ipc_2bt_read_index
+0x47c6 mem_ipc_2bt_write_index
+0x47c8 mem_ipc_2C51_fifo_head
+0x482c mem_ipc_2C51_fifo_end
+0x482c mem_ipc_2C51_read_index
+0x482e mem_ipc_2C51_write_index
+0x4830 mem_c51_private_area
+0x4894 mem_ipc_tx_evt_buff
+0x4896 mem_ipc_tx_evt
+0x4897 mem_ipc_rx_type
+0x4898 mem_ipc_bt_timer
+0x489a mem_ipc_c51_timer
+0x489c mem_ipc_bt_100ms_timer
+0x489d mem_ipc_c51_100ms_timer
+0x489e mem_ipc_last_check_timer
+0x48a2 mem_new_24g_rxbuf
+0x48c4 mem_new_24g_txbuf
+0x48e4 mem_new_24g_txpayload
+0x4906 mem_new_24g_rxpayload
+0x4926 mem_new_24g_rxdata_length
+0x4927 mem_new_24g_pid
+0x4928 mem_new_24g_datalen
+0x4929 mem_new_24g_data_type
+0x492a mem_new_24g_txlen
+0x492b mem_new_24g_rx_window
+0x492d mem_new_24g_ensure
+0x492e mem_new_24g_txfail_cnt
+0x4930 mem_new_24g_get_ack_fail
+0x4931 mem_new_24g_retry
+0x4932 mem_new_24g_ch
+0x4933 mem_new_24g_current_ch_number
+0x4934 mem_new_24g_paring_addr
+0x4938 mem_new_24g_pairing_sm
+0x4939 mem_new_24g_ch_map1
+0x493d mem_new_24g_ch_map2
+0x4941 mem_new_24g_ch_map3
+0x4945 mem_new_24g_ch_map4
+0x4949 mem_new_24g_tx_btclk
+0x494d mem_new_24g_interval
+0x494e mem_new_24g_interval_min
+0x494f mem_new_24g_interval_max
+0x4950 mem_new_24g_addr
+0x4954 mem_new_24g_abort_pac
+0x4955 mem_new_24g_sync_pac
+0x4956 mem_new_24g_check_dongle_times
+0x4958 mem_new_24g_enter_hibernate
+0x4960 mem_new_24g_device_addr
+0x4964 mem_new_24g_pac_index
+0x4965 mem_new_24g_no_ack
+0x4966 mem_new_24g_sta_crc
+0x4969 mem_new_24g_last_crc
+0x496c mem_new_24g_sta_pid
+0x496d mem_new_24g_last_pid
+0x496e mem_new_24g_max_retry
+0x496f mem_new_24g_mode
+0x4970 mem_new_uart_packet
+0x4990 mem_new_24g_common_temp
+0x49b0 mem_new_24g_rf_last_sta
+0x49b1 mem_new_24g_rf_hop_ch
+0x49b2 mem_new_24g_sync_cnt
+0x49b3 mem_new_24g_hop_pac_retry
+0x49b4 mem_new_24g_rf_work_stage
+0x49b5 mem_new_24g_hop_fastly_cnt
+0x49b6 mem_new_24g_auto_paring_switch
+0x49b7 mem_new_24g_key_wheel_event
+0x49b8 mem_new_24g_delay_long_sleep_cnt
+0x49b9 mem_new_24g_delay_long_sleep_maxcnt
+0x49ba mem_new_24g_enter_lpm_timer
+0x49bb mem_new_24g_syncword
+0x49bd mem_new_24g_syncword_crc8
+0x49be mem_new_24g_get_syncword_crc8
+0x49bf mem_new_24g_paccnt
+0x49c0 mem_new_24g_ota_enable
+0x49c1 mem_bt_wakeup_from_long_mult
+0x49c2 mem_bt_motion_event
+0x49c3 mem_tx_power_temp
+0x49c4 mem_power_ctrl_level
+0x49c5 mem_power_ctrl_pac_succ_cnt
+0x49c6 mem_rssi_signal_buf
+0x49ce mem_rssi_signal_index
+0x49cf mem_rssi_hex_received
+0x49d0 mem_rssi_avg_received
+0x49d1 mem_last_txlch
+0x49d2 mem_last_txlen
+0x49d4 mem_last_txdata
+0x49e8 mem_device_uuid_list
+0x4c40 mem_device_uuid_list_end
+0x4c40 mem_device_le_att_list
+0x4e20 mem_device_le_att_list_end
+0x4e20 mem_empty_count_user
+0x4e21 mem_hid_buff
+0x4e41 mem_adc_0v
+0x4e43 mem_adc_3v
+0x4e45 mem_hibernate_flag
+0x4e46 mem_new_supervision_to
+0x4e48 mem_le_rx_winsows
+0x4e4c mem_le_att_report1
+0x4e4e mem_le_att_report2
+0x4e50 mem_le_slave_update_param_timer
+0x4e51 mem_le_slave_update_mult_timer
+0x4e52 mem_le_reconn_enable_notify_timer
+0x4e53 mem_le_reconn_flag
+0x4e54 mem_le_buff_temp
+0x4e60 mem_le_rx_window_inc
+0x4e62 mem_le_prepare_tx_retransmited_number
+0x4e63 mem_last_check_clk
+0x4e67 mem_hid_send_handshake
+0x4e68 mem_feature_ext_page_number
+0x4e69 mem_rf_init_data_new
+0x4e74 mem_short_lpm_interval_param
+0x4e78 mem_short_lpm_enable
+0x4e79 mem_short_lpm_tx_cnt
+0x4e7a mem_ckln_24g_short_lpm
+0x4e7d mem_send_data_24g_short_lpm
+0x4e7e mem_short_lpm_interval_cnt
+0x4e7f mem_ipc_is_ready
+0x4e80 mem_short_data_wheel
+0x4e81 mem_ble_data_wheel
+0x4e82 mem_ble_data_wheel_lpm_timer
+0x4e83 mem_bt_read_ipc_count
+0x4e84 mem_51_read_sensor_count
+0x4e85 mem_queue_write_prt
+0x4e86 mem_queue_read_ptr
+0x4e87 mem_queue_buffer0
+0x4e8e mem_queue_buffer1
+0x4e95 mem_queue_buffer2
+0x4e9c mem_queue_buffer3
+0x4ea3 mem_ble_read_ipc_fifo_once
+0x4ea4 mem_ble_send_flag
+0x4ea5 mem_mouse_le_pairing_flag
+0x4ea6 mem_le_mouse_fast_conn_flag
+0x4ea7 mem_le_start_adv
+0x4ea8 mem_le_start_fast_conn_count
+0x4ea9 mem_mouse_eeprom_base
+0x4eab mem_mouse_reconn_addr
+0x4ead mem_mouse_le_reconn_addr_data
+0x4eb3 mem_mouse_24g_reconn_addr_data
+0x4eb9 mem_le_fast_conn_finished
+0x4eba mem_le_init_eeprom_base_count
+0x4ebb mem_32asm_data_end
+0x4ebb mem_mult_time_arrive_flag
+
+	width = 32
+	const length = 12000
+
+	/* ========= memory ============== */
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_inquiryscan_waitcnt
+0x0007 mem_inquiryscan_rcvcnt
+0x0008 mem_pagescan_waitcnt
+0x0009 mem_pagescan_rcvcnt
+0x000a mem_pagescan_rcvfhscnt
+0x000b mem_slave_rcvcnt
+0x000c mem_page_transmit
+0x000d mem_page_rcv
+0x000e mem_page_rcv_fhs
+0x000f mem_master_rcvcnt
+0x0010 mem_fhs_wait_counter
+0x0011 mem_newconnto_counter
+0x0012 mem_inquiry_transmit
+0x0013 mem_inquiry_rcv
+0x0014 mem_fw_ver
+0x0015 mem_current_context
+0x0016 mem_le_ch_mapped
+0x0017 mem_last_freq
+0x0018 mem_rssi
+0x0019 mem_rx_type
+0x001a mem_rx_hec_err
+0x001c mem_rx_crc_err
+0x001e mem_context_ptr
+0x0020 mem_display
+0x0028 mem_bcd
+0x0030 mem_state
+0x0031 mem_mode
+0x0032 mem_tsniff
+0x0034 mem_sniff_anchor
+0x0038 mem_clk_offset
+0x003e mem_rx_window
+0x0040 mem_plap
+0x0043 mem_puap
+0x0044 mem_pnap
+0x0046 mem_conn_handle
+0x0047 mem_arq
+0x0048 mem_lmp_to_send
+0x0049 mem_lmi_opcode
+0x004a mem_lmo_reason
+0x004b mem_op
+0x004c mem_state_map
+0x004d mem_supervision_timer
+0x0051 mem_supervision_to
+0x0053 mem_name_offset
+0x0054 mem_key_size
+0x0055 mem_conn_sm
+0x0056 mem_aco
+0x0062 mem_kc
+0x0072 mem_conn_timer
+0x0073 mem_sniff_attempt
+0x0074 mem_sniff_timeout
+0x0075 mem_dsniff
+0x0077 mem_amaddr
+0x0078 mem_lmo_opcode1
+0x0079 mem_lmi_opcode1
+0x007a mem_lmo_reason1
+0x007b mem_lmo_tid1
+0x007c mem_lmo_opcode2
+0x007d mem_lmi_opcode2
+0x007e mem_lmo_reason2
+0x007f mem_lmo_tid2
+0x0080 mem_hci_version
+0x0083 mem_acl_pktlen
+0x0085 mem_sco_pktlen
+0x0086 mem_acl_pktcnt
+0x0088 mem_sco_pktcnt
+0x008a mem_current_sniff_attempt
+0x008b mem_current_sniff_timeout
+0x008c mem_nfreq_index_inq
+0x008d mem_nfreq_index_page
+0x008e mem_ninqy_index
+0x008f mem_fhs_misc
+0x0090 mem_subsniff_instant
+0x0094 mem_subsniff_rate
+0x0095 mem_subsniff_tcmax
+0x0097 mem_subsniff_tsniff
+0x0098 mem_lpm_adjust
+0x0099 mem_sync_clke
+0x009f mem_lpm_current_mult
+0x00a0 mem_gpio_wakeup_low
+0x00a4 mem_gpio_wakeup_high
+0x00a8 mem_air_mode
+0x00a9 mem_sco_asso_handle
+0x00aa mem_sco_handle
+0x00ac mem_esco_desco
+0x00ad mem_esco_type
+0x00ae mem_neogotiation_state
+0x00af mem_saved_amaddr
+0x00b0 mem_esco_arq
+0x00b1 mem_esco_saved_arq
+0x00b2 mem_sco_obuf
+0x00d0 mem_sco_ibuf
+0x00ee mem_sco_poll
+0x00ef mem_npage_index
+0x00f0 mem_page_mode
+0x00f1 mem_page_clk
+0x00f5 mem_tst_pktcnt_sync
+0x00f7 mem_tst_pktcnt_hec
+0x00f9 mem_tst_pktcnt_crc
+0x00fb mem_tst_pktcnt_dmh
+0x00fd mem_tmp_buffer_head
+0x0100 mem_tmp_buffer
+0x0150 mem_tester_emulate
+0x0151 mem_temp_payload
+0x0151 test_mode_scenario
+0x0152 test_mode_hopping_mode
+0x0153 test_mode_tx_freq
+0x0154 test_mode_rx_freq
+0x0155 test_mode_power_mode
+0x0156 test_mode_poll_period
+0x0157 test_mode_packet_type
+0x0158 test_mode_data_length
+0x015a mem_test_mode_old_debug_config
+0x015b mem_tester_cnt
+0x015c mem_temp_am_addr
+0x015d mem_temp_arq
+0x015e mem_len
+0x0160 mem_clkn_bt
+0x0164 mem_clke_bt
+0x0168 mem_dpll_clkn
+0x016c mem_connection_options
+0x016d mem_nameres_cnt
+0x016e mem_txptr
+0x0170 mem_slot_offset
+0x0172 extm_fhs_misc
+0x0173 extm_newconn_am_addr
+0x0174 extm_class
+0x0177 extm_lap
+0x017a extm_uap
+0x017b extm_nap
+0x017e mem_debug_config
+0x017f mem_lch_code
+0x0180 mem_fhs_am_addr
+0x0181 mem_dpll_error
+0x0183 mem_bdaddr_list_buff
+0x01a7 mem_select_list_item
+0x01a8 mem_temp_reconn_record
+0x01a8 mem_record_bt_mode
+0x01a9 mem_temp_lap
+0x01af mem_list_item_ptr
+0x01b1 mem_eir
+
+
+
+(//bluetooth tx power
+0 TX_POWER_0DB
+1 TX_POWER_3DB
+2 TX_POWER_5DB
+3 TX_POWER_f3DB
+4 TX_POWER_f5DB
+20 TX_POWER_PAIR
+)
+
+
+0x3b17 rom_lpm_sleep
+0x59e0 rom_save_ucode
+
+0x4219 rom_mem_lpm_xtalcnt
+0x423b rom_mem_patch_ptr
+0x423d rom_mem_patch_len
+
+0x5b1a rom_otpd_read_data
+0x5ada rom_otp_write
+	/* context */
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	/* 3.0 only */
+0x18 coffset_lmp_to_send
+0x1b coffset_op
+0x1c coffset_state_map
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+
+80 context_size
+3 context_num
+)
+
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+
+/* ========= parameters ============== */
+(
+0x0050 param_newconn_arq
+0x0007 param_esco_addr
+0x0010 param_conn_handle
+0x01f0 param_conn_handle_comp
+0x0020 param_newconnto
+0x0008 param_pagerespto
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+0x00ff param_ninquiry
+0x2000 param_page_to
+0x0005 param_max_slot
+0x0010 param_sco_poll
+
+/* 6Mhz clock setting */
+/* 12Mhz clock setting */
+0x0e43 param_tx_setup
+0x09d0 param_rx_setup_earlier
+0x0600 param_rf_setup
+0x03bb param_clke_cal
+0x0600 param_conn_access 
+0x0800 param_conn_access_wider
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+3000 param_chgpump_delay
+
+3 param_featrue_ssp
+0x0101 param_lmpext_ssp_enable
+339 param_acl_pktlen
+30   param_sco_pktlen
+1     param_acl_pktcnt		/*buffer acl pkt cnt*/
+7     param_sco_pktcnt
+
+
+0x8fffff param_features0
+0x9d83fe param_features1  // not support afh
+0x8359     param_features2
+0x000033 param_unap
+0x001177 param_lap
+0x9e8b33 param_glap
+0x002540 param_class//0x180208 //0x002580//402500//240404
+0x12e904 param_hci_version
+0x000a04 param_lmp_version//0x0a04
+0x000a06 param_lmp_version0
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+0x0020 param_page_window
+0x0020 param_inq_window
+0x1c80 param_supervision_to
+39 param_fcomp_div
+2 param_fcomp_mul
+6     param_name_len
+0x535442 param_name
+0x344950 param_name1
+
+
+)
+
+/* ======= packet types  ========= */
+(
+0x0      type_null    
+0x1      type_poll   
+0x2      type_fhs    
+0x3      type_dm1    
+0x4      type_dh1    
+0x5      type_hv1    
+0x6      type_hv2    
+0x7      type_hv3    
+0x8      type_3dh1     
+0x9      type_aux1   
+0xa      type_dm3    
+0xb      type_dh3    
+0xe      type_dm5    
+0xf      type_dh5    
+0x10     type_id
+0x11     type_shutdown
+0x13     type_lmp
+)
+
+/* ========== flag[6] =============== */
+(
+0        always        /* always 1 */
+1        true          /* set/rstn by verify,compare,icompare (true) */
+2        positive      /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output >= 0 */
+3        timeout       /* read only, the timeout from timers */
+5        zero          /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output == 0 */
+6        crc_failed    /* level, cleared by hop_start */
+7        enable_white  /* outside mux decide whether to load bt_clk or response_X */
+8        enable_parity /* level */
+9        enable_crc    /* level */
+10       enable_hec    /* level */
+11       decode_fec1   /* level */
+12       decode_fec2   /* level */
+13       decode_fec0   /* level */
+14       encrypt       /* level */
+15       crc16       /* for caculate ccitt crc16 */
+16       swfine	/* =0 stop_watch count based on oneslot =1 on 1 clock */
+20       rqst_freq    /* pulse, to start calculating frequency */
+21       recalc        /* pulse, to recalculate the fhs_parity */
+22       init_encrypt  /* pulse, issued to initialize encrption */
+23       mhalfbnd    /* half slot boundary of clke_rt, or when clke_bt[0] toggles */
+24       sync          /* sync found as a result of correlation,set/rstn by correlate opcode */
+25       user10    /* user10 */
+26       kc_p_activate  /* pulse to recalc the kc_p */
+27       encode_fec1   /* level */
+28       encode_fec2   /* level */
+29       encode_fec0   /* level */
+30       packet_end    /* pulse */
+32       is_tx         /* level */
+33       is_rx         /* level */
+34       halfslot     /* pulse, read only, when clkn_bt[0] toggles */
+35       oneslot      /* pulse, read only, when clkn_bt[1] toggles */
+36       mslotbnd     /* pulse, read only, when clke_bt[1] toggles */
+37       expire       /* level, read only, when selected clock source exceed timeup value */
+38       meet         /* level, read only, when selected clock source meet timeup value */
+39       tx_clear     /* level, read only, indicate tx pipe is cleared */
+40       user         /* user0 */
+41       master        /* user1 */
+42       slave2         /* user2 */
+43       wake           /* user3 */
+44       user2        /* user4 */
+45       match         /* user5 */
+46       attempt        /* user6 */
+47       user3          /* user7 */
+48       clknt         /* user8 */
+49	   user7 	/* user9 */
+50       synchronize   /* synchronize lpo and regular version of the clock */
+51       lpo_edge  /* read only, 3 clocks after risling edge of lpo clock */
+52       blank         /* C0 only, means pdata == 0 */
+53       modone          /* set divide operation is done */
+54       le		/* bluetooth 4.0 LE enable */
+55       aes_ready	/* set when aes is ok */
+63       never         /* read only, always 0 */
+)
+
+default flag = always
+
+/* ========== reg[6] =============== */
+(
+0        mark   /* for keeping strobes, more permanent */
+1        type   /* save and verify during rx */     /* rw */
+2        temp   /* general purpose register, 64 bits */
+3        contru  /* contr uart */
+4        am_addr      /* verify during rx, read and send during tx */ /* ro */
+5        contw        /* last mem_addr during write */
+6        contr        /* last mem_addr during read */
+7        queue    /* the index of qset*,qisolate* commands, ie, if queue = 3, qset/qisolate operate on bit3 */
+8        debug    /* can be wired out for observation */
+9        access   /* the 72 bit access word */
+10       contwu   /* contw uart */
+11       timeup        /* when does certain counter expire */
+12       pwindow       /* bit 71-61 of pdata; because on rx, bits shifts in from 71 down */
+13       fhs_parity    /* re-gernated based on bt_adr( {nap,uap,lap} ) when recalc flag is pulsed */
+14       white_init    /* init value of the whitening */
+15       crc24_init        /* init crc24 lfsr, 24 bits */
+16       interrupts    /* set interrupts, 40 bits */
+17       rega          /* general purpose register, 32 bits */
+18       regb          /* general purpose register, 32 bits */
+19       regc          /* general purpose register, 17 bits */
+20       regab         /* concat of {rega,regb}, thus 64 bits */
+21       radio_ctrl   /* radio i/f direct i/o ctrl, check following "radio_ctrl" section */
+21       ctrl_reg     /* 2023 and after */
+22       jtag_addr    /* load jtag address field, lsb */
+23       freq_index   /* 7 bit read only */
+24       jtag_data    /* wdata to and rdata from jtag */
+25       clkn              /* {clkn_bt, clkn_rt} */
+26       clke              /* {clke_bt, clke_rt} */
+27       stop_watch
+28       fhs_misc   /* SR, SP, pscan mode */
+29       fhs_class  /* class field in fhs */
+30       fhs0   /* read only, bit 0-71 of fhs word */
+31       fhs1   /* read only, bit 72-142 of fhs word */
+32       bt_adr /* r/w, the bt_addr to access gen and freq hopping, contain only lap and uap */
+33       bt_clk /* r/w, the bt_clk for freq hopping */
+34       clkn_bt  /* read only, native bluetooth clock, free running 3.2KHz  or controlled by RTHALFSLOT register */
+35       clkn_rt  /* read only, native realtime clock, free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+36       freq_mode
+/* wire even_train    = freq_mode[4];    // odd even train                            */
+/* wire conn_mode     = 3;    // connection                                           */
+/* wire iqpgscan_mode = 2;    // slave in inquiry and page (not response)             */
+/* wire iqpgresp_mode = 1;    // slave in inquriy and page (response only)            */
+/* wire inqypage_mode = 0;    // master in inquiry and page(response or not response) */
+37       xin   /* x parameter, read only */
+38       N_tx_slot /* the N factor in equations for Xi,Xp,Xprm,Xprs */
+39 	   auxcnt
+40       clke_bt  /* r/w,  external bluetooth clock , free running 3.2KHz or controlled by RTHALFSLOT register */
+41       clke_rt  /* r/w,  external realtime clock, , free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+43       host_mode         /* generic stuff for kick starts */
+44       lap
+45       uap
+46       nap         
+47       regext		/* r/w extended 12x32bit registers,  indexed by regext_index */
+48       alarm             /* r/w, lpo wake up time, this is also how lpo and current clock keep sync */
+49       lpo_time          /* read only, this is the value to be copied back to clkn/clke after wakeup */
+50       kc_ls             /* secret key,                71: 0 */
+51       kc_ms             /* secret key,               127:72 */
+52       g1l               /* encryption length                */
+53		mask3ff		/* for mask 0x3ff operation */
+54       aes_ctrl		
+56       regext_index   /* index of regext */
+57	     loopcnt
+58      stack			/* current return address */
+59       stack_ptr		/* stack depth */
+61         pc /* direct goto */
+62       null              /* to nowhere */
+63       pdata /* the shift register */
+)
+default reg = pdata
+
+/* regext_index */
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+/* ========== radio_ctrl========= */
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+/* assign BPWR = radio_ctrl[0]; */
+/* assign PARAMP = radio_ctrl[1]; */
+/* assign XTALPU = radio_ctrl[2]; */
+/* assign SYNTHPU = radio_ctrl[3]; */
+/* assign TXPU = radio_ctrl[4]; */
+/* assign RXPU = radio_ctrl[5]; */
+/* assign SLCTRL = radio_ctrl[6]; */
+/* assign XTALSEL_MUX_SEL = radio_ctrl[7] */
+
+
+/* =========== destination[4] ============== */
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+
+/* =========== source[4] ============= */
+(
+1 txf
+3 demod
+)
+default source = 0
+
+
+/* ============== mark ============= *//*0 - 47 */
+(
+
+0  mark_fhs_eir  
+1  mark_rxbuf_inuse
+2  mark_tx_l2cap
+3  mark_switch_initiated
+4  mark_accept_switch
+5  mark_loopback
+7  mark_esco
+8  mark_esco_rxok
+9  mark_context
+10 mark_am_addr_broadcast
+11 mark_fhs_already_good
+12 mark_page_trainb
+13 mark_lpm_mult_enable
+14 mark_usb_flag
+15 mark_old_packet
+16 mark_longpacket
+17 mark_testmode
+18 mark_ar2
+19 mark_h5tx_rp
+20 mark_h5tx_crc	
+21 mark_h5tx_retransmit
+22 mark_h5rx_pstart
+23 mark_h5_sync
+24 mark_h5_reinit
+28 mark_inquiry_on
+29 mark_inquiry_state
+30 mark_inquiry_trainb
+31 mark_periodical_diac
+32 mark_all_diac
+33 mark_slave_in_rand_accepted
+34 mark_reconn_recieve_switch
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_conext
+40 mark_24g_search_pair
+41 mark_24g_normal_rcv
+42 mark_eeprom_size
+// REVAB:max 35, REVC:max 63
+
+)
+
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+
+
+/* ============== soft timers ============== */
+(
+0 h5_reinit_timer
+1 hci_retransmit_timer
+1 le_adv_interval_timer
+2 inquiry_length_timer
+3 le_scan_interval_timer
+4 page_length_timer
+5 iscan_interval_timer
+6 pscan_interval_timer
+7 lpo_delay_timer
+8 ui_hundred_millisecond_timer
+9 ui_led_blink
+10 switch_wait_timer
+11 enpt_delay_timer
+12 temp_timer
+13 page_interval_timer
+14 uart_rx_timer
+)
+(
+0 ui_led_stop
+1 ui_led_start
+2 ui_led_dark_time
+3 ui_led_light_time
+)
+(
+1 hci_cmd_inquiry
+2 hci_cmd_inquiry_cancel
+3 hci_cmd_remote_name_req
+4 hci_cmd_remote_feature_req
+5 hci_cmd_create_conn
+6 hci_cmd_disconn
+7 hci_cmd_accept_conn
+8 hci_cmd_reject_conn
+9 hci_cmd_pair
+10 hci_cmd_nopair
+11 hci_cmd_linkkey
+12 hci_cmd_nokey
+13 hci_cmd_auth
+14 hci_cmd_stopencrypt
+15 hci_cmd_startencrypt
+16 hci_cmd_setup_sco
+17 hci_cmd_disconn_sco
+18 hci_cmd_in_sniff
+19 hci_cmd_exit_sniff
+20 hci_cmd_remote_version_req
+21 hci_cmd_remote_ext_features_req
+22 hci_cmd_io_cap
+23 hci_cmd_role_discovery
+24 hci_cmd_role_switch
+25 hci_cmd_accept_with_switch
+26 hci_cmd_detach
+27 hci_cmd_le_create_conn
+28 hci_cmd_accept_sco_conn
+80 hci_cmd_wait_remote_feature
+81 hci_cmd_wait_remote_ext_feature
+82 hci_cmd_wait_remote_name
+)
+
+
+
+/* ============== debug ============= */
+(
+0 debug_neg_skew
+1 debug_bitbucket
+2 debug_dont_clear_got_tx
+3 debug_scatter_enabled
+4 debug_tx_fixed_freq
+5 debug_rx_fixed_freq
+6 debug_tx_pattern
+)
+
+/* ============== tester_emulator ============= */
+(
+0 tester_fixed_flow
+1 tester_fixed_flow_polarity
+2 tester_change
+3 tester_exit
+4 tester_pattern_test
+5 tester_whitening_change
+6 tester_fixed_freq
+7 tester_no_whitening
+)
+
+/* ============== mode ==========*/
+(
+0 mode_le
+1 mode_master
+2 afh_enable
+3 afh_change
+4 send_sco_when_slave
+5 first_seqnx
+)
+
+/* ============== state_map ==========*/
+(
+0 smap_lmptidinit
+1 smap_lmptid
+2 smap_encryption
+3 smap_name_res
+4 smap_name_req
+5 smap_edr
+6 smap_rxlmp
+7 smap_rxl2cap
+)
+(
+0 state_inconn
+1 state_insniff
+2 state_insco 
+3 state_inpage
+4 state_conn_comp
+5 state_init_seq
+6 state_combkey
+7 state_linkkey
+)
+(
+0 op_send_sres
+1 op_auth_req
+2 op_inrand_req
+3 op_disconn
+4 op_stop_enc
+5 op_start_enc
+6 op_txl2cap
+7 op_pkt_comp
+)
+
+
+/* ============== arq [3] ================ */
+(
+0 flow
+1 arqn
+2 seqn
+3 wack
+4 flowx              /* out */  /* not really in memory */
+5 arqnx              /* out */
+6 seqnx              /* out */
+7 bcast1             /* first broadcast received */
+)
+
+/* arq          {flow,arqn,seqn}, read/write */
+/* [0] flow r/w  acl full status of the other, store during rx, checked during tx */
+/* [1] arqn r/w  ack of the other during rx (ack tx fifo),                        */
+/* [2] seqn r/w  seqn of the other, check during rx                               */ 
+/* arqx         {flowx,arqnx,seqnx} */
+/* [0] flowx r/o flow back to the other, 1 alow send, 0 not to send, read only tx */
+/* [1] arqnx r/w ack to the other, set by rx, send back on tx                     */
+/* [2] seqnx r/w toggled by arqn, to be send during tx                            */ 
+
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+)
+
+/* AFH flags */
+(
+0 AFH_CFG_ON
+1 AFH_CFG_TIMER
+2 send_lmp_set_afh
+3 AFH_CFG_REPORT_MODE
+4 AFH_CFG_MASTER_SENT_REQ
+)
+
+/* LLID CODE */
+(	
+1 LLID_L2CAP_CONT
+2 LLID_L2CAP_START
+3 LLID_LMP
+)
+
+/* ============== master_state ==========*/
+(
+0  master_in_idle
+1  master_in_inquiry
+2  master_in_page
+10 master_in_becoming_slave
+15 master_in_conn
+)
+(
+0 newrev_feature_bettx
+1 newrev_feature_betplltx
+2 newrev_feature_skip_retransmit
+3 newrev_feature_init_radio_after_sleep
+4 newrev_feature_no_lpolog
+)
+/*************mem_pincode_state****************/
+(
+0 pincode_state_ilde
+1 pincode_state_wait_pincode
+2 pincode_state_pincode_ready
+)
+
+
+// lpm_write
+(
+1 lpmreg_sel_ctrl
+2 lpmreg_sel_ctrl2
+4 lpmreg_sel_gpiolow
+8 lpmreg_sel_gpiohigh
+16 lpmreg_sel_counter
+)
+
+//scan_mode
+(
+0 inq_scan_mode
+1 page_scan_mode
+2 page_inq_enable
+)
+//mem_neogotiation_state
+(
+ 0 default_neogotiation_state
+ 1 prarm_neogotiation
+)
+
+//mem_lpm_wake_lock
+(
+
+2 wake_lock_hci_host
+3 wake_link_key_exists
+4 wake_lock_delay
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+10 wake_lock_lmp_tx
+11 wake_lock_lmp_rx
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+
+)
+
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+
+
+//sniff UART_TX UART_RX
+(
+6 UART_WAKEUP_TX
+7 UART_WAKEUP_RX
+)
+
+
+
+
+(
+0 P24G_SM_PAIRING_SUCC
+1 P24G_SM_PAIRING_REQUEST
+2 P24G_SM_PAIRING_WAIT_ADDR
+3 P24G_SM_PAIRING_COMPLETE
+4 P24G_SM_PAIRING_WAIT_SUCC
+)
+
+(
+0 P24G_PAIRING_REQ_HEAD
+1 P24G_PAIRING_COMPLETE_HEAD
+)
+
+(
+0 ENSURE_OFF_24G
+1 ENSURE_ON_24G
+)
+
+/* 24g */
+(
+6 dlen_24g
+14 plen_24g
+90 blen_tx_24g
+106 blen_rx_24g
+42 blen_txack_24g
+58 blen_rxack_24g
+4 retry_24g
+0xaaf08e acc_24g
+0x15c4 crc_data_3byte
+0xbb81 crc_data_6byte
+0x4160 crc_ack
+41390 crc_ack_4byte
+
+1 NO_ACK_24g
+0 with_ack_24g
+
+0x10 ABORT_DATA
+0x40 RSSI_SENSITIVITY
+
+0x4e G24_PAIR_CH
+
+81000 G24_8125_INTERVAL_PARAM
+78000 G24_78125_INTERVAL_PARAM
+
+)
+
+(
+0 disable_24g
+1 tx_24g
+2 rx_24g
+
+0 bit_ack_24g
+)
+
+//mem_24g_interrupt
+(
+0 rx_dr
+1 rx_sync
+4 tx_ds
+5 tx_fail
+)
+
+//mem_24g_data_type
+(
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+//mem_send_data_24g_short_lpm
+(
+0 SHORT_LPM_STATE_POLLING 	
+1 SHORT_LPM_STATE_DATA
+2 SHORT_LPM_STATE_NODATA
+3 SHORT_LPM_STATE_BUTTON_WHEEL
+)
+
+
+
+0x0215 mem_ucode_status
+0x0216 mem_otp_ucode_flag
+0x0218 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x0219 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x0219 mem_addr_hi
+0x021a mem_addr_mi
+0x021b mem_addr_lo
+0x021c mem_iicd_addr
+0x021d mem_spid_rbuf
+0x0221 mem_ucode_buf
+0x0223 mem_ucode_len
+0x0225 mem_sched_addr
+0x0227 mem_ucode_ptr
+0x0229 mem_ucode_keybuf
+0x0239 mem_check_plap_temp
+0x024b mem_sensor_id
+0x024c mem_reconnect_flag
+0x024d mem_switch_fail_master_count
+0x024e mem_app_evt_timer_count
+
+//adc read
+(
+0 ADC_CONFIG_VINLPM
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+
+0x0000 otp_ucode_flag
+0x07f0 otp_ucode_aeskey
+
+/* adc data addr and flag */
+(
+0x07e0 OTP_CHIP_FUNCTIONS
+0x07e2 otp_adc_io_0_5V_addr
+0x07e4 otp_adc_hvin_1V_addr
+0x07e6 otp_adc_vinlpm_2V_addr
+0x07e8 otp_adc_io_1V_addr
+0x07ea otp_adc_hvin_5V_addr
+0x07ec otp_adc_vinlpm_3V_addr
+0x07ee otp_adc_flag_addr
+0xaa55 OTP_ADC_FLAG
+)
+
+/* data stored in eeprom */
+(
+0	eeprom_bdaddr_list
+0	eeprom_nv_ram
+28	eeprom_last_record
+29	eeprom_le_reconn_local_addr
+35	eeprom_linkkey_list//64
+
+99	eeprom_module_bt_adss//6
+105	eeprom_module_le_adss//6
+111	eeprom_module_pincode_length//1
+112	eeprom_module_pincode//15
+127	eeprom_module_bt_name_length//1
+128	eeprom_module_bt_name//32
+160	eeprom_module_ble_name_length//1
+161	eeprom_module_ble_name//31
+192	eeprom_module_trans_baud//3
+195	eeprom_module_init_flag//2
+197	eeprom_module_uuid//6
+203 eeprom_module_ssp_enable//1
+204 eeprom_module_end//2
+
+//dpi eeprom addr
+198 eeprom_mouse_dpi
+)
+
+/*mem_app_handshake_flag*/
+(
+0 APP_HANDSHAKE_NULL
+1 APP_HANDSHAKE_DONE
+
+)
+/*mem_device_option*/
+(
+1 dvc_op_hci
+3 dvc_op_kb
+4 dvc_op_dongle
+5 dvc_op_spp
+6 dvc_op_ukey
+7 dvc_op_ir
+
+9 dvc_op_shutter
+10 dvc_op_module
+11 dvc_op_ble_mouse
+12 dvc_op_ble_kb
+13 dvc_op_ble_prcp
+255 dvc_op_test
+//device option hight 4
+6 dvc_op_mouse
+7 dvc_op_keyboard
+//device option low 2
+(
+0 MODE_3_MOUSE
+1 MODE_4_MOUSE
+)
+)
+
+(
+3 twspi_sclk
+4 twspi_sdio
+)
+
+(
+4 pan_clk_bit
+5 pan_dat_bit
+6 pan_mov_bit
+)
+
+(
+7 otp_uflag_aes
+6 otp_uflag_skip_eep
+5 otp_uflag_skip_flash
+4 otp_uflag_hci
+)
+
+/* ir command */
+(
+1 ircmd_record
+2 ircmd_play
+3 ircmd_write_pulse
+4 ircmd_write_seq
+5 ircmd_write_next
+
+8 ircmd_test_play
+9 ircmd_test_rec
+
+10 ircmd_report_pulse
+11 ircmd_report_seq
+12 ircmd_report_raw
+
+20 ircmd_screen_on
+21 ircmd_screen_off
+)
+
+(
+7 gpio_active_bit
+)
+(
+2 HID_HANDSHAKE_TIMEOUT
+
+)
+
+(
+1 APP_FLAG_RECONNECT
+)
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+
+
+//mem_app_disconn_reason
+//mem_app_disconn_reason_flag
+//bit map
+(
+2 APP_DISC_RSN_SIZE
+)
+(
+0 APP_DISC_BY_BUTTON
+1 APP_DISC_AFTER_PAIRING
+2 APP_DISC_AFTER_RECONN
+3 APP_DISC_AFTER_SNIFF
+4 APP_DISC_AFTER_SETUP_DONE
+5 APP_DISC_AFTER_HANDSHAKE
+6 APP_DISC_BT
+7 APP_DISC_BLE
+8 APP_DISC_L2CAP_REFUSED
+9 APP_DISC_SWITCH_FAIL
+)
+//eeprom init flag
+(
+	0xaa55 EEPROM_INIT_FLAG
+)
+
+(
+0x01 IPC_TYPE_CMD
+0x02 IPC_TYPE_EVT
+0x03 IPC_TYPE_HID
+0x04 IPC_TYPE_SPP
+0x05 IPC_TYPE_BLE
+0x06 IPC_TYPE_24G
+)
+
+(
+0x01 SYC_TASK_LPM
+0x02 SYC_TASK_TIMER
+0x03 SYC_TASK_HIBERNATE
+)
+
+
+
+0x024f mem_h5rx_ackcnt
+0x0250 mem_check_err_acl_cont
+0x0251 mem_rp_packets
+0x0252 mem_packet_type
+0x0254 mem_hci_sniff_conn_handle
+0x0256 mem_hci_sniff_max_interval
+0x0258 mem_hci_sniff_min_interval
+0x025a mem_hci_sniff_attempt
+0x025c mem_hci_sniff_timeout
+0x025e mem_voice_setting
+0x0260 mem_retransmission_effort
+0x0261 mem_sco_ptype
+0x0263 mem_extm_uap_restore
+0x0266 mem_h5rx_rptr
+0x0268 mem_h5rx_ack
+0x0269 mem_h5tx_ack
+0x026a mem_h5tx_rptr
+0x026c mem_h5tx_wptr
+0x026e mem_h5tx_free
+0x0270 mem_h5rx_tmp
+0x0271 mem_h5tx_seq
+0x0272 mem_hci_acl_queue_wptr
+0x0274 mem_hci_acl_queue_rptr
+0x0276 mem_hci_acl_queue_end
+0x0278 mem_hci_acl_queue_wcnt
+0x0279 mem_hci_acl_cnt
+0x027a mem_hci_acl_tx_trigger_wptr//tx via uart
+0x027c mem_ucode_id_local
+0x027d mem_ucode_id_remote
+0x027e mem_check_sum
+0x027f mem_ucode_temp
+0x0280 mem_ucode_temp1
+0x0281 mem_lock_in_enc//boolean
+0x0282 mem_hci_disconn_reason
+0x0283 mem_hci_curr_len
+0x0284 mem_hci_curr_target
+
+
+15 hci_flag_rp
+//mem_hci_options bit map
+(
+1 hci_option_h4
+2 hci_option_protocol2
+3 hci_option_protocol3
+4 hci_option_uart
+5 hci_option_usb
+6 hci_option_phy2
+7 hci_option_phy3
+)
+// UART baud rate @6MHz
+(
+0 uart_ctrl_bit_enable
+3 uart_ctrl_bit_slip_protocol
+
+)
+
+//bit map of core_uart_ctrl
+(
+
+)
+//bit map of core_uart_status
+(
+0 uart_status_tx_fifo_full
+1 uart_status_tx_fifo_empty
+2 uart_status_tx_busy
+3 uart_status_rx_fifo_empty
+
+)
+//HCI H4 LOG related
+(
+0x4850 mem_hci_log
+8 hci_log_size
+100 hci_log_cnt
+
+)
+//HCI H4 Packet TYPE
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+
+)
+// HCI command opcode group field values
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_BASEBAND
+0x04 HCI_OGF_INFO
+0x05 HCI_OGF_STATUS
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LOW_ENERGY
+0x3e HCI_OGF_LOGO_TESTING
+0x3f HCI_OGF_VENDOR_SPECIFIC
+)
+
+// HCI link control opcode command field values, OGF=1
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+
+
+// HCI link policy commands OCF value, OGF=2
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+
+// HCI host controller and baseband commands OCF values, OGF=3
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+
+
+// HCI informational parameters OCF values, OGF=4
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+
+// HCI status parameters OCF values, OGF=5
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+
+// HCI testing command OCF values, OGF=6
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+
+// HCI vendor specific command OCF values -OGF=3F
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+)
+
+//HCI LE controller command OCF values, OGF=8
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+// HCI event code
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+//HCI LE SUBEVENT CODE
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+//HCI ErrorCodes
+(    
+0x00 HCI_SUCCESS
+0x01 HCI_ERROR_UNKNOWN_HCI_COMMAND
+0x02 HCI_ERROR_NO_CONNECTION
+0x03 HCI_ERROR_HARDWARE_FAILURE
+0x04 HCI_ERROR_PAGE_TIMEOUT
+0x05 HCI_ERROR_AUTHENTICATION_FAILURE
+0x06 HCI_ERROR_KEY_MISSING
+0x07 HCI_ERROR_MEMORY_FULL
+0x08 HCI_ERROR_CONNECTION_TIMEOUT
+0x09 HCI_ERROR_MAX_CONNECTIONS
+0x0A HCI_ERROR_MAX_SCO_CONNECTIONS
+0x0B HCI_ERROR_MAX_ACL_CONNECTIONS
+0x0C HCI_ERROR_COMMAND_DISALLOWED
+0x0D HCI_ERROR_HOST_REJECT_LIMITED_RESOURCES
+0x0E HCI_ERROR_HOST_REJECT_SECURITY_REASONS
+0x0F HCI_ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+0x10 HCI_ERROR_HOST_TIMEOUT
+0x11 HCI_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+0x12 HCI_ERROR_INVALID_HCI_COMMAND_PARAMETERS
+0x13 HCI_ERROR_REMOTE_USER_ENDED_CONNECTION
+0x14 HCI_ERROR_REMOTE_LOW_RESOURCES
+0x15 HCI_ERROR_REMOTE_POWERING_OFF
+0x16 HCI_ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+0x17 HCI_ERROR_REPEATED_ATTEMPTS
+0x18 HCI_ERROR_PAIRING_NOT_ALLOWED
+0x19 HCI_ERROR_UNKNOWN_LMP_PDU
+0x1A HCI_ERROR_UNSUPPORTED_REMOTE_FEATURE
+0x1B HCI_ERROR_SCO_OFFSET_REJECTED
+0x1C HCI_ERROR_SCO_INTERVAL_REJECTED
+0x1D HCI_ERROR_SCO_AIR_MODE_REJECTED
+0x1E HCI_ERROR_INVALID_LMP_PARAMETER
+0x1F HCI_ERROR_UNSPECIFIED_ERROR
+0x20 HCI_ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+0x21 HCI_ERROR_ROLE_CHANGE_NOT_ALLOWD
+0x22 HCI_ERROR_LMP_RESPONSE_TIMEOUT
+0x23 HCI_ERROR_ERROR_TRANSACTION_COLLISION
+0x24 HCI_ERROR_LMP_PDU_NOT_ALLOWED
+0x25 HCI_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+0x26 HCI_ERROR_UNIT_KEY_USED
+0x27 HCI_ERROR_QOS_NOT_SUPPORTED
+0x28 HCI_ERROR_INSTANT_PASSED
+0x29 HCI_ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+0x2a HCI_ERROR_DIFFERENT_TRANSACTION_COLLISION
+0x2c HCI_ERROR_QOS_UNACCEPTABLE_PARAMETER
+0x2d HIC_ERROR_QOS_REJECTED
+0x2e HIC_ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+0x2f HIC_ERROR_INSUFFICIENT_SECURITY
+0x30 HIC_ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+0x32 HIC_ERROR_ROLE_SWITCH_PENDING
+0x34 HIC_ERROR_RESERVED_SLOT_VIOLATION
+0x35 HIC_ERROR_ROLE_SWITCH_FAILED
+0x36 HIC_ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+0x37 HIC_ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+0x38 HIC_ERROR_HOST_BUSY_PAIRING
+)
+
+(
+0x00 HCI_LPM_OFF
+0x01 HCI_LPM_ON
+)
+
+
+(
+33 HOST_WAKE_TIME
+)
+
+(
+1 HCI_RX_WAKE
+0 HCI_RX_READY
+)
+
+
+(
+/*HID TYPE*/
+0x01 HID_TYPE_CONTROL
+0x04 HID_TYPE_GET_REPORT
+0x05 HID_TYPE_SET_REPORT
+0x07 HID_TYPE_SET_PROTOCOL
+0x09 HID_TYPE_SET_IDLE
+0x0a HID_TYPE_DATA
+/*HID REPORT ID*/
+0x01 HID_REPORT_ID_KB
+0x41 HID_DISCONNECT
+
+0x00 HID_CONTROL_P_NOOPERATION
+0x01 HID_CONTROL_P_HARDRESET
+0x02 HID_CONTROL_P_SOFTRESET
+0x03 HID_CONTROL_P_SUSPEND
+0x04 HID_CONTROL_P_EXITSUSPEND
+0x05 HID_CONTROL_P_VIRTUALCABLEUNPLUG
+)
+
+
+
+
+
+8 KB_KSCAN_ROW 
+7 KB_KSCAN_ROW_1
+20 KB_KSCAN_COL
+19 KB_KSCAN_COL_1
+
+/* ks_ctrl */
+(
+0x01 KB_KSCAN_CTRL_ENABLE					
+0x02 KB_KSCAN_CTRL_FREEZE					
+0x04 KB_KSCAN_CTRL_GHOST					
+0x08 KB_KSCAN_CTRL_INT						
+0x10 KB_KSCAN_CTRL_CLKON					
+0x20 KB_KSCAN_CTRL_FIFO_CLR				
+                  
+0 KB_KSCAN_STAT_EMPTY
+1 KB_KSCAN_STAT_FULL 					
+2 KB_KSCAN_STAT_OVERFLOW				
+6 KB_KSCAN_STAT_GHOST 
+
+0 KB_KSCAN_KEY_EVENT_STAT
+0 KB_KSCAN_KEY_PRESS	
+1 KB_KSCAN_KEY_RELEASE
+
+)
+(
+0 CACEL_RECONN_FLAG
+1 KEY_EVENT_FLAG
+2 KEY_SEARCH_M_KEY_FLAG
+3 CHECK_VDD_LOW_FLAG
+)
+
+// MACRO for map2
+
+// MACRO for map2
+
+//map2 Functions definition
+ 0x00 KB_MAP2_FUNC_REPORT0
+ 0x01 KB_MAP2_FUNC_REPORT1
+ 0x02 KB_MAP2_FUNC_REPORT2
+ 0x80 KB_MAP2_FUNC_IGNORE
+ 0x81 KB_MAP2_FUNC_DISCOV
+ 0x82 KB_MAP2_FUNC_WIN
+ 0x83 KB_MAP2_FUNC_ANDROID
+ 0x84 KB_MAP2_FUNC_IOS
+ 0x85 KB_MAP2_FUNC_DEV1
+ 0x86 KB_MAP2_FUNC_DEV2
+ 0x87 KB_MAP2_FUNC_DEV3
+ 
+//map2 Status definition (bit map)
+ 0x01 KB_MAP2_STATUS_WIN
+ 0x02 KB_MAP2_STATUS_ANDROID
+ 0x04 KB_MAP2_STATUS_IOS
+ 0x10 KB_MAP2_STATUS_CONN
+ 0x20 KB_MAP2_STATUS_UNCONN
+ 
+ 0x00 KB_MAP2_STATUS_BIT_WIN
+ 0x01 KB_MAP2_STATUS_BIT_ANDROID
+ 0x02 KB_MAP2_STATUS_BIT_IOS
+ 0x04 KB_MAP2_STATUS_BIT_CONN
+ 0x05 KB_MAP2_STATUS_BIT_UNCONN
+
+// map2 report length
+8 KB_MAP2_REPORT_LENGTH
+0x08 KB_VK_MAX_LEN
+
+//map2 device button state
+0 KB_DEVICE_BUTTON_UP
+1 KB_DEVICE_BUTTON_DEVICE1
+2 KB_DEVICE_BUTTON_DEVICE2
+3 KB_DEVICE_BUTTON_DEVICE3
+0xff KB_DEVICE_BUTTON_ALREADY_LONG
+)
+
+//
+(
+0x01 REPORT_ID_1
+0x02 REPORT_ID_2
+0x03 REPORT_ID_3
+)
+
+(
+1 FLAG_VDD_LOW
+0 FLAG_VDD_NOT_LOW
+
+0x1fe9 EEPROM_ADDR_VDD_FLAG
+0x1fea EEPROM_ADDR_VDD_LOW_FLAG
+0x1fec EEPROM_SYSTEM_FALG
+
+)
+
+//Specil Function Key
+(
+0XFF SFK_ANDROID_MAP
+0XFE SFK_IOS_SCREENSHOT
+
+)
+0x39 CAPS_LOCK_DATA
+)
+
+(
+2 KB_TEST_MODE
+)
+/* special key codes */
+(
+0x1d KB_KCODE_1_M1
+0x27 KB_KCODE_0
+0x28 KB_KCODE_ENTER
+0x2a KB_KCODE_BKSP
+)
+
+/*DATA OUTPUT report id = 1*/
+0 KB_NUM_LOCK_SELECTED
+1 KB_CAPS_LOCK_SELECTED
+2 KB_SCROLL_LOCK_SELECTED
+
+
+0x1f  KB_UI_BUTTON_GPIO
+
+
+
+
+0x0286 mem_l2cap_mem_start
+0x0286 mem_l2cap_rxbuff1_len
+0x0288 mem_l2cap_rxbuff2_len
+0x028a mem_l2cap_rxbuff_new
+0x028c mem_l2cap_rxbuff_inuse
+0x028d mem_l2cap_payload_ptr
+0x028f mem_l2cap_rx_pkt_length
+0x0291 mem_l2cap_rx_cid
+0x0293 mem_l2cap_rx_done
+0x0294 mem_l2cap_signal_tx_buff_ptr
+0x0296 mem_l2cap_signal_tx_payload_ptr
+0x0298 mem_l2cap_signal_tx_length
+0x029a mem_sdp_tx_buff_ptr
+0x029c mem_sdp_tx_payload_ptr
+0x029e mem_sdp_tx_pkt_length
+0x02a0 mem_rfcomm_tx_buff_ptr
+0x02a2 mem_rfcomm_tx_payload_ptr
+0x02a4 mem_rfcomm_tx_pkt_length
+0x02a6 memL2CAP_T1
+0x02a8 mem_CONTROL_tasks
+0x02a9 mem_send_config_req
+0x02aa mem_config_identifier
+0x02ab mem_config_req_dest_CID
+0x02ad mem_rfcomm_malloc_fail_flag
+0x02ae mem_message_to_uppersm
+0x02af mem_upper_sm_remote_page
+0x02b0 mem_upper_sm_reconn
+0x02b1 mem_upper_sm_ss
+0x02b2 mem_tx_malloc_log
+0x02f2 mem_l2cap_mem_end
+0x02f2 mem_scid
+0x02f4 mem_cmd_length
+0x02f6 mem_tt2
+0x02f8 mem_tt3
+0x02fa mem_id
+0x02fc mem_psm
+0x02fe mem_l2cap_sdpres_delay_time
+
+
+
+//mem_l2cap_lpm_txbuf
+(
+256 l2cap_lpm_txbuf_len
+)
+
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0x0002 L2CAP_SIG_EXT_FEATRUE
+0x0003 L2CAP_SIG_FIX_FEATRUE
+)
+
+
+(
+0 HS_IDLE
+1 AG_INIT_CALL
+2 HS_INIT_CALL
+)
+(
+0 M_ACL_LINK_ABSENT
+1 M_ACL_LINK_EXIST
+)
+
+(
+0 L2CAP_INUSE_BUFF1
+1 L2CAP_INUSE_BUFF2
+)
+/* upper layer interface w/ lower layer */
+(
+1 MAX_NUM_LINKS_ALLOWED
+1 MAX_NUM_SCO_ALLOWED
+1 ACL_LINK_PRESENT
+0 ACL_LINK_ABSENT
+)
+(
+1 L2CAP_RX_DONE 
+0 L2CAP_RX_CLEAR
+)
+/* Scheduler */
+(
+0 L2CAP_DISCONNECT_INTERRUPT
+1 RFCOMM_wants_service
+2 L2CAP_sig_Tx_buff_full
+3 RFCOMM_Tx_buff_full
+4 SDP_Tx_buff_full
+5 got_complete_L2CAP_pkt	
+6 L2CAP_init_Config_Req
+7 L2CAP_DISCONNECT_CONTROL
+)
+
+/* mem_CONTROL_tasks2 */
+(
+0 UI_NEED_SERVICE
+)
+/* L2CAP logic channel identifiers (2 bytes) p.261 */
+(
+0x0001 L2CAP_signal_channel
+0x0050 L2CAP_SDP_channel
+0x0051 L2CAP_RFCOMM_channel
+0x0052 L2CAP_HID_Control_channel   
+0x0053 L2CAP_HID_Interrupt_channel
+0x0077 L2CAP_AVDTP_signal_channel		//------avdtp
+0x0078 L2CAP_AVDTP_media_channel
+0x0079 L2CAP_AVDTP_report_channel
+0x0080 L2CAP_AVDTP_recovery_channel
+0x00dd L2CAP_AVCTP_Control_channel
+)
+/* L2CAP signalling command codes (1 byte) p.284 */
+(
+0x00 reserved
+0x01 signal_cmd_reject
+0x02 signal_connect_req
+0x03 signal_connect_rsp
+0x04 signal_config_req
+0x05 signal_config_rsp
+0x06 signal_disconnect_req
+0x07 signal_disconnect_rsp
+0x08 signal_echo_req
+0x09 signal_echo_rsp
+0x0a signal_info_req
+0x0b signal_info_rsp
+)
+/* L2CAP signal_command_reject reason code (2 bytes), p.285 */
+(
+0x0000 cmd_not_understood
+0x0001 signalling_MTU_exceeded
+0x0002 invalid_CID_in_req
+)
+/* L2CAP PSM values used in signal_connect_req (2 bytes), p.286 */
+(
+0x0001 PSM_SDP
+0x0003 PSM_RFCOMM
+0x0005 PSM_TCS
+0x0011 PSM_HID_control
+0x0013 PSM_HID_interrupt
+0x0017 PSM_AVCTP
+0x0019 PSM_AVDTP
+)
+/* L2CAP connection response result code (2 bytes), p.288 */
+(
+0x0000 L2CAP_connect_successful
+0x0001 L2CAP_connect_pending
+0x0002 L2CAP_connect_refused_PSM_unsupported
+0x0003 L2CAP_connect_refused_security_block
+0x0004 L2CAP_connect_refused_no_resources
+)
+/* L2CAP connection status values (2 bytes), p.288 */
+(
+0x0000 L2CAP_no_info_available
+0x0001 L2CAP_authentication_pending
+0x0002 L2CAP_authorization_pending
+)
+/* L2CAP configuration response result code (2 bytes), p.292 */
+(
+0x0000 L2CAP_config_success
+0x0001 L2CAP_config_failure_bad_parameters
+0x0002 L2CAP_config_failure_no_reason
+0x0003 L2CAP_config_failure_unknown_options
+)
+/* L2CAP constant definitions */
+(
+128 L2CAP_Rx_buff_size
+48  L2CAP_signal_Tx_buff_size
+128 SDP_Tx_buff_size
+128 RFCOMM_Tx_buff_size
+1 AM_ADDRESS
+3 DM1TYPE
+4 DH1TYPE
+11 DH3TYPE
+8 DVTYPE
+0 channel_state_closed
+1 channel_state_config
+2 channel_state_open
+0x0030 L2CAP_config_MTU_SDP
+0xffff L2CAP_config_ftimeout_SDP
+0x03e3 L2CAP_config_MTU_RFCOMM
+0xffff L2CAP_config_ftimeout_RFCOMM
+260 l2cap_max_pkt_len
+)
+
+(
+0 FAILURE
+1 SUCCESS
+2 IN_PROGRESS
+)
+(
+0x00	IDLE
+0x01	WAIT_4_BB_PAGE
+0x02	WAIT_4_LMP_CONN
+0x03	WAIT_4_SCO_CONN
+0x04	WAIT_4_SCO_KILLED
+)
+
+/*mem_master_mss*/
+(
+0 STOP_ENC
+1 SEND_SWITCH_REQ
+)
+(
+0 HF_HS_READY
+1 HF_AG_READY
+)
+/* mem_hf_state */
+(
+0 HF_STATE_WAITING_RFCOMM_CONN
+1 HF_STATE_HF_SEND_FEATURE
+2 HF_STATE_WAITING_AG_FEATURE_OK
+3 HF_STATE_HF_SEND_INDICATORS
+4 HF_STATE_WAITING_AG_INDICATORS_OK
+5 HF_STATE_HF_SEND_CURR_STATUS
+6 HF_STATE_WAITING_AG_STATUS_OK
+7 HF_STATE_HF_SEND_UPDATE_STATUS
+8 HF_STATE_WAITING_AG_UPDATE_STATUS_OK
+9 HF_STATE_CONNECTED
+0x0a HF_STATE_HF_SEND_RECEIVE_INFO
+0x0b HF_STATE_WAITING_AG_INFO
+0x0c HF_STATE_HF_SEND_AT_CLIP
+0x0d HF_STATE_WAITING_AT_CLIP
+0x0e HF_STATE_HF_SEND_AT_CCWA
+0x0f HF_STATE_WAITING_AT_CCWA
+)
+/*mem_hf_call_state*/
+(
+0 HF_CALL_STATE_INACTIVE
+1 HF_CALL_STATE_SETUP
+2 HF_CALL_STATE_ACTIVE 
+)
+/* mem_pairing_state bit definition */
+(
+0 PAIR_INQUIRY_START
+1 PAIR_INQUIRY_TIME_OUT
+2 PAIR_INQUIRY_FAILED
+3 PAIR_INQUIRY_SUCCESS
+4 PAIR_READY_CONN
+5 PAIR_WAIT_CANCEL_RESPONSE
+6 PAIR_CONN_SUCCESS
+7 PAIR_WAIT_DETACH
+)  
+
+/* mem_pairing_mode bit definition */
+(
+0 FORCE_AUTHENTICATION
+)
+/* mem_hid_protecol_type */
+(
+0 PROTECOL_BOOT /*default*/
+1 PROTECOL_REPORT
+)
+
+/* mem_upper_sm_reconn */
+(
+1 UPPERSM_SEND_SDP_CONN_REQ
+2 UPPERSM_SEND_SDP_CFG_REQ
+3 UPPERSM_SEND_SDP_HF_SS
+4 UPPERSM_SEND_SDP_DISC_REQ
+5 UPPERSM_SEND_RFCOMM_CONN_REQ
+6 UPPERSM_SEND_RFCOMM_CFG_REQ
+7 UPPERSM_SEND_SABM_CMD
+8 UPPERSM_SEND_DISC
+9 UPPERSM_SEND_WAIT
+10 UPPERSM_SEND_HID_CONTROL_CONN_REQ
+11 UPPERSM_SEND_HID_CONTROL_CFG_REQ
+12 UPPERSM_SEND_HID_INTERRUPT_CONN_REQ
+13 UPPERSM_SEND_HID_INTERRUPT_CFG_REQ
+14 UPPERSM_SEND_SDP_HS_SS
+15 UPPERSM_SEND_SDP_PBAP_SS
+16 UPPERSM_SEND_SDP_AVTARG_SS
+)
+/* mem_upper_sm_remote_page */
+(
+1 UPPERSM_RP_SEND_SDP_CONN_REQ
+2 UPPERSM_RP_SEND_SDP_CFG_REQ
+3 UPPERSM_RP_SEND_SDP_HF_SS
+4 UPPERSM_RP_SEND_SDP_HS_SS
+5 UPPERSM_RP_SEND_SDP_PBAP_SS
+6 UPPERSM_RP_SEND_SDP_AVTARG_SS
+7 UPPERSM_RP_SEND_SDP_DISC_REQ
+8 UPPERSM_RP_SEND_AVCTP_CONN_REQ
+9 UPPERSM_RP_SEND_AVCTP_CFG_REQ
+)
+
+/* mem_ML2CAP_flag */
+(
+0 MSCHEDULER_HID_CONTROL_CONN_DONE
+1 MSCHEDULER_HID_INTERRUPT_CONN_DONE
+2 MSCHEDULER_HID_CONTROL_CFG_REQ_DONE
+3 MSCHEDULER_HID_CONTROL_CFG_RSP_DONE
+4 MSCHEDULER_HID_INTERRUPT_CFG_REQ_DONE
+5 MSCHEDULER_HID_INTERRUPT_CFG_RSP_DONE
+6 MSCHEDULER_HID_CONTROL_DISC_DONE
+7 MSCHEDULER_HID_INTERRUPT_DISC_DONE
+)
+/*    ui event    --add by lj*/
+(
+0x00 UI_DATA_EVNET_NONE
+0x01 UI_DATA_EVNET_HID
+0x02 UI_DATA_EVNET_AVDTP_S
+0x03 UI_DATA_EVNET_AVDTP_M
+0x04 UI_DATA_EVNET_AVCTP
+0x05 UI_DATA_EVNET_HS
+0x06 UI_DATA_EVNET_HF
+0x07 UI_DATA_EVNET_SPP
+0x08 UI_DATA_EVNET_OBEX
+)
+/*    ui ack --add by lj*/
+(
+0x00 UI_DATA_TX_NONE
+0x01 UI_DATA_TX_HID
+0x02 UI_DATA_TX_AVDTP_S
+0x03 UI_DATA_TX_AVDTP_M
+0x04 UI_DATA_TX_AVCTP
+0x05 UI_DATA_TX_HS
+0x06 UI_DATA_TX_HF
+0x07 UI_DATA_TX_SPP
+0x08 UI_DATA_TX_OBEX
+0x10 ACL_TX_L2CAP_SIGNAL
+0x11 ACL_TX_SDP
+0x12 ACL_TX_RFCOMM
+
+)
+
+(
+0 L2CAP_SDP_interface_conn
+1 L2CAP_SDP_interface_cfg
+)
+
+(                                   
+0 L2CAP_CHANNEL_STATE_CONN_REQ      
+1 L2CAP_CHANNEL_STATE_CONN_RES      
+2 L2CAP_CHANNEL_STATE_SND_CFG_REQ   
+3 L2CAP_CHANNEL_STATE_SND_CFG_RES   
+4 L2CAP_CHANNEL_STATE_RCV_CFG_REQ   
+5 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+6 L2CAP_CHANNEL_RFCOMM_ONLY_SABM
+7 L2CAP_CHANNEL_RFCOMM_ONLY_UA
+6 L2CAP_CHANNEL_AVDTP_SIGNAL_INIT //set avdtp init complete
+6 L2CAP_CHANNEL_HID_HANDSHAKE_DONE
+0x3f L2CAP_CHANNEL_SETUP_COMPLETE
+0x7f L2CAP_CHANNEL_AVDTP_SIGNAL_COMPLETE
+0xff L2CAP_CHANNEL_RFCOMM_DLCI0_OPENED
+)                                     
+
+/*  AVDTP---lj*/
+(
+0 L2CAP_AVDTP_SIGNAL_CONNECT
+1 L2CAP_AVDTP_SIGNAL_CONFIG
+2 L2CAP_AVDTP_MEDIA_CONNECT
+3 L2CAP_AVDTP_MEDIA_CONFIG
+4 L2CAP_AVDTP_REPORT_CONNECT
+5 L2CAP_AVDTP_REPORT_CONFIG
+6 L2CAP_AVDTP_RECOVERY_CONNECT
+7 L2CAP_AVDTP_RECOVERY_CONFIG
+)
+/*  AVCTP---lj*/
+(
+0 L2CAP_AVCTP_SIGNAL_CONNECT
+1 L2CAP_AVCTP_SIGNAL_CONFIG
+)
+
+127 L2CAP_SIGNAL_MALLOC_SIZE
+
+//1 mem_rfcomm_malloc_fail_flag
+(
+0 RFCOMM_MALLOC_SUCCEED
+1 RFCOMM_MALLOC_FAIL
+)
+
+//mem_l2cap_flow_ctrl_flag
+(
+0 L2CAP_FLOW_CTRL_DISABLE
+1 L2CAP_FLOW_CTRL_ENABLE
+)
+
+
+0x0302 mem_le_rxbuf
+0x033a mem_le_mic
+0x033e mem_le_peer_mic
+0x0342 mem_le_peer_ltk
+0x0352 mem_le_mrand
+0x0362 mem_le_state
+0x0363 mem_le_mode
+0x0364 mem_le_tsniff
+0x0366 mem_le_anchor
+0x036a mem_le_clk_offset
+0x0370 mem_le_receive_window
+0x0372 mem_le_plap
+0x0378 mem_le_conn_handle
+0x0379 mem_le_arq
+0x037a mem_le_ch
+0x037b mem_le_hop
+0x037c mem_le_event_count
+0x037e mem_le_supervision_timer
+0x0382 mem_le_instant
+0x0384 mem_le_channels
+0x0385 mem_le_op
+0x0386 mem_le_access
+0x038a mem_le_crcinit
+0x038d mem_le_window_size
+0x038e mem_le_slave_latency
+0x0390 mem_le_superto
+0x0392 mem_le_channel_map
+0x0397 mem_le_no_using
+0x0399 mem_le_peer_sca
+0x039a mem_le_att_opcode
+0x039b mem_le_att_handle
+0x039d mem_le_err_code
+0x039e mem_le_l2cap_pdu_length
+0x03a0 mem_le_sk
+0x03b0 mem_le_testtype
+0x03b1 mem_le_test_sync
+0x03b3 mem_le_test_pcnt
+0x03b5 mem_le_rxon_ts
+0x03bb mem_le_rx_ll_opcode
+0x03bc mem_le_notify_attr_start
+0x03be mem_le_notify_len
+0x03bf mem_cmd_le_create_conn
+0x03c0 mem_24g_id
+0x03c1 mem_le_cur_attlist_start_ptr
+0x03c3 mem_le_cur_handle_start
+0x03c5 mem_le_cur_handle_end
+0x03c7 mem_le_cur_uuid_lenth
+0x03c8 mem_le_cur_uuid
+0x03d8 mem_le_search_len
+0x03d9 mem_le_search_res
+0x03da mem_le_continue_type
+0x03db mem_le_public_length
+
+
+
+(
+20 notify_handle
+2 param_max_slaves
+1636 param_sifs
+0x000a06 param_le_version
+0x1d87 param_le_subversion
+0x000001 param_le_features
+23 param_le_mtu
+16 param_le_scan_interval
+16 param_le_scan_window
+0x1e0 param_clke_cal_le
+0x1000302 param_smp_paring_response		/* for mouse, noinputnooutput */
+0x010410 param_smp_key_dist	
+0x010010 param_smp_key_dist0
+0xa0 param_le_sca
+)
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+(
+0 FLAG_BLE_INSUFFICIENT_AUTHENTICATION
+1 FLAG_BLE_COPY_MASTER_DATA_TO_ATT_LIST
+)
+
+/*LE MOUSE-KB*/
+(
+1 LE_CONTEXT_STATE_KB
+2 LE_CONTEXT_STATE_MOUSE
+
+3 USB_MOUSE_DATA_CMD
+
+1 SEND_MOUSE_DATA_CMD
+2 SEND_KB_DATA_CMD
+)
+
+
+  (
+  	0 LE_M_STATE_SLAVE1_STANDBY
+  	1 LE_M_STATE_SLAVE1_ADVERTISING
+  	2 LE_M_STATE_SLAVE1_SCANNING
+  	3 LE_M_STATE_SLAVE1_INITIATING
+  	4 LE_M_STATE_SLAVE1_CONNECTED
+  	5 LE_M_STATE_SLAVE1_RFU_1
+  	6 LE_M_STATE_SLAVE1_RFU_2
+  	7 LE_M_STATE_SLAVE1_RFU_3
+  )
+
+  (
+  	0 LE_M_STATE_SLAVE2_STANDBY
+  	1 LE_M_STATE_SLAVE2_ADVERTISING
+  	2 LE_M_STATE_SLAVE2_SCANNING
+  	3 LE_M_STATE_SLAVE2_INITIATING
+  	4 LE_M_STATE_SLAVE2_CONNECTED
+  	5 LE_M_STATE_SLAVE2_CONNECT_INIT
+  	6 LE_M_STATE_SLAVE2_RFU_2
+  	7 LE_M_STATE_SLAVE2_RFU_3
+  )
+
+  	(
+	0 LE_SM_IDLE
+	1 LE_SM_FBTV_1800
+	2 LE_SM_FBTV_1800_WAIT
+	3 LE_SM_RBT_DEVICE_NAME
+	4 LE_SM_RBT_DEVICE_NAME_WAIT
+	5 LE_SM_FBTV_1801
+	6 LE_SM_FBTV_1801_WAIT
+	7 LE_SM_RBT_DEVICE_CHARACTER
+	8 LE_SM_RBT_DEVICE_CHARACTER_WAIT
+	
+  	)
+
+/* advertising channel PDU type */
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+6 ADV_SCAN_IND
+)
+
+	/* tx packet type */
+	(
+	0x20 XT_LL_CONNECTION_UPDATE_REQ
+	0x21 XT_LL_CHANNEL_MAP_REQ
+	0x22 XT_LL_TERMINATE_IND
+	0x23 XT_LL_ENC_REQ
+	0x24 XT_LL_ENC_RSP
+	0x25 XT_LL_START_ENC_REQ
+	0x26 XT_LL_START_ENC_RSP
+	0x27 XT_LL_UNKNOWN_RSP
+	0x28 XT_LL_FEATURE_REQ
+	0x29 XT_LL_FEATURE_RSP
+	0x2A XT_LL_PAUSE_ENC_REQ
+	0x2B XT_LL_PAUSE_ENC_RSP
+	0x2C XT_LL_VERSION_IND
+	0x2D XT_LL_REJECT_IND
+	0x2E XT_LL_SLAVE_FEATURE_REQ
+	0x2F XT_LL_CONNECTION_PARAM_REQ
+	0x30 XT_LL_CONNECTION_PARAM_RSP
+	0x31 XT_LL_REJECT_IND_EXT
+	0x32 XT_LL_PING_REQ
+	0x33 XT_LL_PING_RSP
+	0x41 XT_SMP_PAIRING_REQUEST
+	0x42 XT_SMP_PAIRING_RESPONSE
+	0x43 XT_SMP_PAIRING_CONFIRM
+	0x44 XT_SMP_PAIRING_RANDOM
+	0x45 XT_SMP_PAIRING_FAILED
+	0x46 XT_SMP_ENCRYPTION_INFORMATION
+	0x47 XT_SMP_MASTER_IDENTIFICATION
+	0x48 XT_SMP_IDENTITY_INFORMATION
+	0x49 XT_SMP_IDENTITY_ADDRESS_INFORMATION
+	0x4A XT_SMP_SIGNING_INFORMATION
+	0x4B XT_SMP_SECURITY_REQUEST
+	0x4c XT_SMP_PAIRING_PUBLIC_KEY
+	0x4d XT_SMP_PAIRING_DHKEY_CHECK
+	)
+
+
+	/* LE control packet type */
+	(
+	0x00 LL_CONNECTION_UPDATE_REQ
+	0x01 LL_CHANNEL_MAP_REQ
+	0x02 LL_TERMINATE_IND
+	0x03 LL_ENC_REQ
+	0x04 LL_ENC_RSP
+	0x05 LL_START_ENC_REQ
+	0x06 LL_START_ENC_RSP
+	0x07 LL_UNKNOWN_RSP
+	0x08 LL_FEATURE_REQ
+	0x09 LL_FEATURE_RSP
+	0x0A LL_PAUSE_ENC_REQ
+	0x0B LL_PAUSE_ENC_RSP
+	0x0C LL_VERSION_IND
+	0x0D LL_REJECT_IND
+	0x0E LL_SLAVE_FEATURE_REQ
+	0x0F LL_CONNECTION_PARAM_REQ
+	0x10 LL_CONNECTION_PARAM_RSP
+	0x11 LL_REJECT_IND_EXT
+	0x12 LL_PING_REQ
+	0x13 LL_PING_RSP
+	)
+
+	/* Security Manager Protocol Code */
+	(
+	0x01 SMP_PAIRING_REQUEST
+	0x02 SMP_PAIRING_RESPONSE
+	0x03 SMP_PAIRING_CONFIRM
+	0x04 SMP_PAIRING_RANDOM
+	0x05 SMP_PAIRING_FAILED
+	0x06 SMP_ENCRYPTION_INFORMATION
+	0x07 SMP_MASTER_IDENTIFICATION
+	0x08 SMP_IDENTITY_INFORMATION
+	0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+	0x0A SMP_SIGNING_INFORMATION
+	0x0B SMP_SECURITY_REQUEST
+	0x0c SMP_PAIRING_PUBLIC_KEY
+	0x0d SMP_PAIRING_DHKEY_CHECK
+	)
+
+	/* ATT OPCODE */
+	(
+	0x01 ATTOP_ERROR_RESPONSE
+	0x02 ATTOP_EXCHANGE_MTU_REQUEST
+	0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+	0x04 ATTOP_FIND_INFORMATION_REQUEST
+	0x05 ATTOP_FIND_INFORMATION_RESPONSE
+	0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+	0x08 ATTOP_READ_BY_TYPE_REQUEST
+	0x09 ATTOP_READ_BY_TYPE_RESPONSE
+	0x0A ATTOP_READ_REQUEST
+	0x0B ATTOP_READ_RESPONSE
+	0x0C ATTOP_READ_BLOB_REQUEST
+	0x0D ATTOP_READ_BLOB_RESPONSE
+	0x0E ATTOP_READ_MULTIPLE_REQUEST
+	0x0F ATTOP_READ_MULTIPLE_RESPONSE
+	0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+	0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+	0x12 ATTOP_WRITE_REQUEST
+	0x13 ATTOP_WRITE_RESPONSE
+	0x16 ATTOP_PREPARE_WRITE_REQUEST
+	0x17 ATTOP_PREPARE_WRITE_RESPONSE
+	0x18 ATTOP_EXECUTE_WRITE_REQUEST
+	0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+	0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+	0x1D ATTOP_HANDLE_VALUE_INDICATION
+	0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+	0x52 ATTOP_WRITE_COMMAND
+	0xD2 ATTOP_SIGNED_WRITE_COMMAND
+	0x1f ATTOP_CONTINUE
+	0x9e EMPTY_LE_DATA_PRE
+	0x9f EMPTY_LE_DATA
+	)
+
+	/* ATT error code */
+	(
+	0x01 ATT_ERR_INVALID_HANDLE
+	0x02 ATT_ERR_READ_NOT_PERMITTED
+	0x03 ATT_ERR_WRITE_NOT_PERMITTED
+	0x04 ATT_ERR_INVALID_PDU
+	0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+	0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+	0x07 ATT_ERR_INVALID_OFFSET
+	0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+	0x09 ATT_ERR_PREPARE_QUEUE_FULL
+	0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+	0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+	0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+	0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+	0x0E ATT_ERR_UNLIKELY_ERROR
+	0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+	0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+	0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+	)
+	/*	SERVICE UUID	*/
+	(
+	0x1800 UUID_SERVICE_GENERIC_ACC
+	0x1801 UUID_SERVICE_GENERIC_ATT
+	0x180a UUID_SERVICE_DEVICE_INFO
+	0x180f UUID_SERVICE_BATTERY
+	0x1812 UUID_SERVICE_HIDS
+	0x2800 UUID_GATT_PRIMARY_SERVICE
+	0x2801 UUID_GATT_SECONDARY_SERVICE
+	0X2802 UUID_GATT_INCLUDE
+	0X2803 UUID_GATT_CHARACTERISTIC
+	0X2A00 UUID_CHRCTR_DEVICE_NAME
+	0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+	0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+	0X2A23 UUID_CHRCTR_SYSTEM_ID 
+	0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+	0X2A26 UUID_CHRCTR_FIRMWARE
+	0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+	0X2A33 UUID_CHRCTR_MOUSE_INPUT
+	0X2A4A UUID_CHRCTR_HID_INFO
+	0X2A4B UUID_CHRCTR_REPORT_MAP
+	0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+	0X2A4D UUID_CHRCTR_REPORT
+	0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+	)
+
+	(// pairing failed reason
+	0x00 PAIRING_FAILED_RESERVED
+	0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+	0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+	0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+	0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+	0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+	0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+	0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+	0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+	0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+	0X0A PAIRING_FAILED_INVALID_PARAMETERS
+	0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+	0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+	0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+	0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+	)
+
+	//modified_name
+	(
+	0x14 MAX_NAME_LEN
+	0x16 ADV_DATA_NAME_LEN
+	0X20 SPACE
+	
+	)
+	/* GATT Specifications*/
+	(
+	0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+	0X2901 CHARACTERTIC_USER_DESCRIPTION
+	0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+	0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+	0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+	0X2905 CHARACTERTIC_AGGREGATE
+	0X2906 VALID_RANGE
+	0X2907 EXTERNAL_REPORT_REFERENCE
+	0X2908 REPORT_REFERENCE
+	0X290B ENVIR_SENSING_CONFIGURATION
+	0X290C ENVIR_SENSING_MEASUREMENT
+	0X290D ENVIR_SENSING_TRIGGER_SETTING
+	)
+	/* LE L2CAP CID */
+	(
+	0x04 LE_L2CAP_CID_ATT
+	0x05 LE_L2CAP_CID_SIGNAL
+	0x06 LE_L2CAP_CID_SMP
+	)
+
+	//LE address type
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	//LE address type bitmap
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	//LE SCAN TYPE
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+
+	//LE SCAN ENABLE
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+
+
+//	le_state_map 0-2 is reserved for state_inconn,state_insniff and state_sco
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+)
+
+// 	le mode
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+)
+
+(
+0 LE_CONTINUE_TYPE_NULL
+1 LE_CONTINUE_TYPE_NOTIFICATION
+2 LE_CONTINUE_TYPE_PREPARE_WRITE_RESPONSE 
+)
+
+
+(
+0 LE_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_BIT
+)
+
+(
+0X00	LE_PAIRING_MODE_NONE
+0X01	LE_PAIRING_MODE_LAGACY_JUSTWORK
+0X02	LE_PAIRING_MODE_LAGACY_PASSKEY
+0x81	LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82	LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0X83	LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+
+
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+
+(
+0X00 FLAG_LE_NO_BONDING_NO_MITM
+0X01 FLAG_LE_BONDING_NO_MITM
+0X04 FLAG_LE_NO_BONDING_MITM
+0X05 FLAG_LE_BONDING_MITM
+0X09 FLAG_LE_BONDING_NO_MITM_SECURE
+0X0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+
+//mem_le_enc_state
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_ENC_END
+)
+
+//mem_le_pairing_state
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_AFTER_AUTH
+3 FLAG_LE_PAIRING_END
+)
+
+/*LE secure connect state */
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+
+
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+
+
+(
+3 LE_CONTINUE_TYPE_PUBLIC_KEY
+)
+
+//mem_le_continue_flag
+(
+0 LE_CONTINUE_FLAG_NULL
+1 LE_CONTINUE_FLAG_RX
+2 LE_CONTINUE_FLAG_TX
+)
+
+(
+0x2902  ATT_Configuration
+)
+
+0x03dc mem_lmo_header_length
+0x03dd mem_lmo_header_opcode
+0x03de mem_lmo_payload
+0x03ef mem_lmi_accepted_opcode
+0x03f0 mem_disconn_reason_send
+0x03f1 mem_tx_fixed_freq
+0x03f2 mem_rx_fixed_freq
+0x03f3 mem_ext_features_page
+0x03f4 mem_lmpext_ssp_enable
+0x03f6 mem_remote_sppcap
+0x03f7 mem_lmp_conn_state
+0x03f8 mem_soft_timer
+0x03fa mem_pincode_state
+0x03fb mem_sres_tid
+0x03fc mem_accptsco_tid
+0x03fd mem_auth_enable
+0x03fe mem_wait_encryption
+0x03ff mem_sniff_payload
+0x040f mem_aurand_send_delay_time
+
+	(
+	//bit map
+	0 pair_state_inrand
+	1 pair_state_inrand_acpt
+	2 pair_state_send_comb
+	3 pair_state_recv_comb
+	4 pair_state_send_aurand
+	5 pair_state_recv_sres
+	6 pair_state_recv_aurand
+	7 pair_state_send_sres	
+	)
+	/* LMP opcodes */
+	(
+	1 LMP_NAME_REQ 
+	2 LMP_NAME_RES 
+	3 LMP_ACCEPTED 
+	4 LMP_NOT_ACCEPTED 
+	5 LMP_CLKOFFSET_REQ 
+	6 LMP_CLKOFFSET_RES 
+	7 LMP_DETACH 
+	8 LMP_IN_RAND 
+	9 LMP_COMB_KEY 
+	10 LMP_UNIT_KEY 
+	11 LMP_AU_RAND 
+	12 LMP_SRES 
+	13 LMP_TEMP_RAND 
+	14 LMP_TEMP_KEY 
+	15 LMP_ENCRYPTION_MODE_REQ 
+	16 LMP_ENCRYPTION_KEY_SIZE_REQ 
+	17 LMP_START_ENCRYPTION_REQ 
+	18 LMP_STOP_ENCRYPTION_REQ 
+	19 LMP_SWITCH_REQ 
+	20 LMP_HOLD
+	21 LMP_HOLD_REQ
+	23 LMP_SNIFF_REQ 
+	24 LMP_UNSNIFF_REQ 
+	26 LMP_PARK_REQ 
+	27 LMP_SET_BROADCAST_SCAN_WINDOW 
+	28 LMP_MODIFY_BEACON 
+	29 LMP_UNPARK_BD_ADDR_REQ 
+	30 LMP_UNPARK_PM_ADDR_REQ 
+	31 LMP_INCR_POWER_REQ 
+	32 LMP_DECR_POWER_REQ 
+	33 LMP_MAX_POWER 
+	34 LMP_MIN_POWER 
+	35 LMP_AUTO_RATE 
+	36 LMP_PREFERRED_RATE 
+	37 LMP_VERSION_REQ 
+	38 LMP_VERSION_RES 
+	39 LMP_FEATURES_REQ 
+	40 LMP_FEATURES_RES 
+	41 LMP_QUALITY_OF_SERVICE 
+	42 LMP_QUALITY_OF_SERVICE_REQ 
+	43 LMP_SCO_LINK_REQ 
+	44 LMP_REMOVE_SCO_LINK_REQ 
+	45 LMP_MAX_SLOT 
+	46 LMP_MAX_SLOT_REQ 
+	47 LMP_TIMING_ACCURACY_REQ 
+	48 LMP_TIMING_ACCURACY_RES 
+	49 LMP_SETUP_COMPLETE 
+	50 LMP_USE_SEMI_PERMANENT_KEY 
+	51 LMP_HOST_CONNECTION_REQ 
+	52 LMP_SLOT_OFFSET 
+	53 LMP_PAGE_MODE_REQ 
+	54 LMP_PAGE_SCAN_MODE_REQ 
+	55 LMP_SUPERVISION_TIMEOUT 
+	56 LMP_TEST_ACTIVATE
+	57 LMP_TEST_CONTROL
+	58 LMP_ENC_KEY_SIZE_MASK_REQ
+	59 LMP_ENC_KEY_SIZE_MASK_RES
+	60 LMP_SET_AFH
+
+	/* simple pairing support */
+	61 LMP_ENCAPSULATED_HEADER
+	62 LMP_ENCAPSULATED_PAYLOAD
+	63 LMP_SIMPLE_PAIRING_CONFIRM
+	64 LMP_SIMPLE_PAIRING_NUMBER
+	65 LMP_DHKEY_CHECK
+	127 LMP_ESCAPE
+	127 LMP_ESCAPE_4   /* add 2bytes LMP header support  */   
+	)
+	/* LMP EXT opcodes, ORed with bit 7 to make difference to nonEXT */
+	(
+	129 LMP_EXT_ACCEPTED
+	130 LMP_NOT_ACCEPTED_EXT
+	131 LMP_EXT_FEATURES_REQ
+	132 LMP_EXT_FEATURES_RES
+	139 LMP_PACKET_TYPE_TABLE_REQ
+	140 LMP_EXT_ESCO_LINK_REQ
+	141 LMP_EXT_REMOVE_ESCO_REQ
+	144 LMP_EXT_CHN_CLASSIFICATION_REQ
+	145 LMP_EXT_CHN_CLASSIFICATION
+	149 LMP_SNIFF_SUBRATING_REQ
+	150 LMP_SNIFF_SUBRATING_RES
+	151 LMP_PAUSE_ENCRYPTION_REQ
+	152 LMP_RESUME_ENCRYPTION_REQ
+	153 LMP_IO_CAP_REQ
+	154 LMP_IO_CAP_RES
+	)
+	/* LMP reason codes */
+	(
+	0x05 AUTHENTICATION_FAILURE_ERROR
+	0x06 KEY_MISSING
+	0x0b ACL_CONNECTION_ALREADY_EXISTS
+	0x13 OTHER_END_TERMINATED
+	0x15 ABOUT_TO_POEWR_OFF
+	0x16 LOCAL_HOST
+	0x18 PAIRING_NOT_ALLOWED
+	0x19 UNKNOWN_LMP_PDU
+	0x1A UNSUPPORTED_LMP_FEATURE 
+	0x1F UNSPECIFIED_ERROR
+	0x20 UNSUPPORTED_PARAMETERS
+	0x21 SWITCH_NOT_ALLOWED
+	0x23 TRANSACTION_COLLISION
+	0x24 PDU_NOT_ALLOWED
+	0x25 ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x2e NOT_SUPPORT_CHN_CLASSIFICATION
+	0x37 NOT_SUPPORT_SSP
+	)
+
+	/* test mode scenarios */
+	(
+	0 PAUSE_TEST_MODE
+	1 ZERO_PATTERN
+	2 ONE_PATTERN
+	3 ALT_PATTERN
+	4 PSEUDORANDOM
+	5 CLOSED_LOOP_BACK_ACL
+	6 CLOSED_LOOP_BACK_SCO
+	7 ACL_WITHOUT_WHITENING
+	8 SCO_WITHOUT_WHITENING
+	9 ALT2_PATTERN
+	255 EXIT_TEST_MODE
+	)
+	/* test mode hoppig modes */
+	(
+	0 FIXED_FREQ
+	1 NORMAL_HOP
+	)
+
+	/* mem_lmp_tid indicates which type of LMP will be sent */
+	(
+	0 TID_NORM_REPLY
+	1 TID_NORM_SEND
+	2 TID_ONE
+	3 TID_ZERO
+	4 TID_PAIRING
+	5 TID_ENCRYPTION
+	6 TID_VARIABLE
+	7 TID_RX
+	)
+
+	/* ============== lmp status ==========*/
+	(
+	0 lmp_incoming
+	1 lmp_outgoing
+	2 lmp_reject_msg
+	3 lmp_clear_msg
+	4 upper_reject_msg
+	5 upper_clear_msg
+	)
+
+(
+0x2ee00 TIMER_ONE_MINUTE //96000*2
+80 TIMER_SWITCH_WAITE
+12 TIMER_ENPT_WAITE
+)
+
+(
+0 SWITCH_FLAG_INIT
+1 SWITCH_FLAG_ACCEPT
+2 SWITCH_FLAG_NOT_ACCEPT
+)
+(
+0 NULL_ENCRYP
+1 DONE_ENCRYP
+)
+
+//
+//
+//Large memory blocks defined in this file.
+//Blocks Shall be defined with absolute address.
+//Blocks' length Shall be specified in comment following Blocks' names.
+//Different blocks MAY be overlap.
+//Blocks defined in this file Shall NOT be overlap with variable in memmap.format.
+
+// USB C51 exchange area
+(
+0xff0 mem_mcmd
+0xff1 mem_mouse_data
+)
+
+//l2cap RX buffers
+(
+0x1000 mem_l2cap_rxbuff1		//0x400
+0x1400 mem_l2cap_rxbuff2		//0x400
+//end address:0x17ff
+)
+//l2cap TX buffers
+(
+0x1800 mem_tx_buff0		//128
+0x1880 mem_tx_buff1		//128
+0x1900 mem_tx_buff2		//128
+0x1980 mem_tx_buff3		//128
+0x1a00 mem_tx_buff4		//128
+0x1a80 mem_tx_buff5		//128
+0x1b00 mem_tx_buff6		//128
+0x1b80 mem_tx_buff7		//128
+//end address: 0x1bff
+)
+
+//uart buffer
+(
+0x1800 mem_h5rx_buf//0x400
+0x1bff mem_h5rx_buf_end
+0x1c00 mem_h5tx_buf
+0x1fff mem_h5tx_buf_end
+)
+
+(
+0x4c00 mem_module_rx_buf//0x400
+0x4c00 mem_module_rx_buf_little
+0x4fff mem_module_rx_buf_end
+0x1c00 mem_module_tx_buf
+0x1fff mem_module_tx_buf_end
+)
+
+(
+0x1800 mem_ir_record
+0x1c      mem_ir_record_max
+)
+
+
+0x0413 mem_module_temp_len
+0x0415 mem_uart_cmd
+0x0416 mem_uart_opcode
+0x0417 mem_uart_len
+0x0418 mem_module_temp_nl_discard_packet
+0x0419 mem_module_le_md_flag
+
+
+(
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_RECEIVED_DATA
+2 MODULE_FLAG_BLE_SEND_MTU23
+3 MODULE_FLAG_BLE_SEND_DATA
+)
+
+
+
+
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+
+
+
+(
+	10 FLAG_MODULE_READ_VDD_COUNT
+)
+
+	(
+		110  DM_REFCOM_BUFF_LEN
+		230  NL_RFCOMM_BUFF_LEN
+		220  NL_RFCOMM_BUFF_LEN_220
+		20 DM_LE_BUFF_LEN
+	)
+	(
+		0x200 UART_AIR_CONTROL_THRESHOLD
+		0x150 UART_RX_CONTROL_THRESHOLD
+	)
+	(
+		0 MODULE_LED_DISABLE
+		1 MODULE_LED_BLINK
+	)
+
+
+
+
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+
+
+)
+
+
+
+(//Command
+0x00 HCI_CMD_SET_BT_ADDR_REQ
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x03 HCI_CMD_SET_BT_NAME_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x05 HCI_CMD_SPP_DATA_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0c HCI_CMD_SET_PAIRING_REQ
+0x0d HCI_CMD_SET_PINCODE_REQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x11 HCI_CMD_BT_DISCONNECT
+0x12 HCI_CMD_BLE_DISCONNECT
+0x13 HCI_CMD_DELETE_DEVICE
+0x14 HCI_CMD_CREATE_CONNECT
+0x26 HCI_CMD_SET_NVRAM_REQ
+0x27 HCI_CMD_SLEEP
+0x28 HCI_CMD_CONFIRM_GKEY
+0x29 HCI_CMD_SET_CREDIT_GIVEN
+0x2a HCI_CMD_AUTO_ADV_SCAN
+0x2b HCI_CMD_POWER_REQ
+0x2c HCI_CMD_POWER_SET
+0x30 HCI_CMD_PASSKEY_ENTRY
+0x31 HCI_CMD_SET_GPIO
+0x32 HCI_CMD_READ_GPIO
+0x33 HCI_CMD_LE_SET_PAIRING
+0x34 HCI_CMD_LE_SET_ADV_DATA
+0x35 HCI_CMD_LE_SET_SCAN_DATA
+0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
+0x38 HCI_CMD_LE_START_PAIRING
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+
+)
+
+(//event
+0x00 HCI_EVENT_SPP_CONN_REP
+0x01 HCI_EVENT_HID_CONN_REP
+0x02 HCI_EVENT_LE_CONN_REP
+0x03 HCI_EVENT_SPP_DIS_REP
+0x04 HCI_EVENT_HID_DIS_REP
+0x05 HCI_EVENT_LE_DIS_REP
+0x06 HCI_EVENT_CMD_RES
+0x07 HCI_EVENT_SPP_DATA_REP
+0x08 HCI_EVENT_LE_DATA_REP
+0x09 HCI_EVENT_STANDBY_REP
+0x0a HCI_EVENT_STATUS_RES
+0x0b HCI_EVENT_FINISH_PACK_NUM
+0X0C HCI_EVENT_SNIFF_MD_CHANGE
+0x0D HCI_EVENT_NVRAM_REP
+0x0e HCI_EVENT_GKEY
+0x0F HCI_EVENT_INVALID_PACKET
+0x10 HCI_EVENT_GET_PASSKEY
+0x11 HCI_EVENT_LE_TK
+0x12 HCI_EVENT_REMOTE_MTU
+0x14 HCI_EVENT_LE_PAIRING_STATE
+0X15 HCI_EVENT_LE_ENCRYPTION_STATE
+0x17 HCI_EVENT_LE_CONNECTION_UPDATE
+0x1d HCI_EVENT_LE_GKEY
+
+)
+
+
+
+
+(
+0x7e0 OTP_ADDR_RF_PARAM_FIX
+//struct of RF_PARAM_FIX
+// uint8       //length = param_pair_count * 2 
+// uint16     //param-pair-1
+// uint16     //param-pair-2
+// uint16     //param-pair-3
+// uint16     //param-pair-4
+// uint16     //param-pair-5
+// uint16     //param-pair-6
+// uint16     //param-pair-7
+)
+(
+0x0270 FW_VERSION_NUMBER
+)
+
+(
+0	PAIRING_PINCODE
+1	PAIRING_JUSTWORK
+2	PAIRING_PASSKEY
+3	PAIRING_CONFIRM
+)
+
+
+(
+0x0001	FLAG_BT_PAIRING_SUCCESS
+0x0101	FLAG_BT_PAIRING_FAIL
+0x0080	FLAG_BLE_PAIRING_SUCCESS
+0x0180	FLAG_BLE_PAIRING_FAIL
+)
+
+
+(
+1	FLAG_EVENT_START_ENC
+0	FLAG_EVENT_PAUSE_ENC
+)
+
+(
+	0 MOUDLE_STATE_BT_BIT
+	1 MOUDLE_STATE_BLE_BIT
+)
+
+(
+	0 MOUDLE_TASK_UNSINFF
+)
+
+
+
+0x041a mem_init_cnt
+//dpi eeprom addr
+198 mouse_dpi_eeprom_addr
+
+(
+0x00 DPI_BUTTON_STATE_DOWN
+0x01 DPI_BUTTON_STATE_UP
+
+)
+
+(
+1 ONE_TRADITION_MOUSE
+2 ONE_BLE_MOUSE
+)
+
+
+(
+1 SENSOR_TYPE_A7530
+2 SENSOR_TYPE_P3204
+)
+0x30 P3204_ID
+0x31 P3065_ID
+0x3e P3610_ID
+
+0x00 PAN_REG_PID_L
+0x01 PAN_REG_PID_H
+0x02 PAN_REG_MOTION_STAUS
+0x03 PAN_REG_DELTA_X
+0x04 PAN_REG_DELTA_Y
+0x05 PAN_REG_OPRATION_MODE
+0x06 PAN_REG_CONFIG
+0x07 PAN_REG_IMAGE_QUALITY
+0x08 PAN_REG_OPRATION_STATE
+0x09 PAN_REG_WRITE_PROTECT
+0x0A PAN_REG_SLEEP_1
+0x0B PAN_REG_ENTER_TIME
+0x0C PAN_REG_SLEEP_2
+0x0D PAN_REG_IMAGE_THRESHOLD
+0x0E PAN_REG_IMAGE_RECGNITION
+
+7 pan_bit_motion
+
+(
+1000      MOUSE_LPM_CLR_LOCK_TIME
+0x06      MOUSE_DPI_ADDRESS
+       2       MOUSE_DPI_MAX_DECR
+)
+(
+80 MOUSE_SEND_BLANK_TIMER
+)
+
+
+//mem_mouse_mode_state
+(
+0x00 MOUSE_MODE_STATE_IDLE
+0x01 MOUSE_MODE_STATE_BT
+0x02 MOUSE_MODE_STATE_BLE
+)
+
+
+(
+	  0 patch00_0
+	  1 patch00_1
+	  2 patch00_2
+	  3 patch00_3
+	  4 patch00_4
+	  5 patch00_5
+	  6 patch00_6
+	  7 patch00_7
+	  8 patch01_0
+	  9 patch01_1
+	 10 patch01_2
+	 11 patch01_3
+	 12 patch01_4
+	 13 patch01_5
+	 14 patch01_6
+	 15 patch01_7
+	 16 patch02_0
+	 17 patch02_1
+	 18 patch02_2
+	 19 patch02_3
+	 20 patch02_4
+	 21 patch02_5
+	 22 patch02_6
+	 23 patch02_7
+	 24 patch03_0
+	 25 patch03_1
+	 26 patch03_2
+	 27 patch03_3
+	 28 patch03_4
+	 29 patch03_5
+	 30 patch03_6
+	 31 patch03_7
+	 32 patch04_0
+	 33 patch04_1
+	 34 patch04_2
+	 35 patch04_3
+	 36 patch04_4
+	 37 patch04_5
+	 38 patch04_6
+	 39 patch04_7
+	 40 patch05_0
+	 41 patch05_1
+	 42 patch05_2
+	 43 patch05_3
+	 44 patch05_4
+	 45 patch05_5
+	 46 patch05_6
+	 47 patch05_7
+	 48 patch06_0
+	 49 patch06_1
+	 50 patch06_2
+	 51 patch06_3
+	 52 patch06_4
+	 53 patch06_5
+	 54 patch06_6
+	 55 patch06_7
+	 56 patch07_0
+	 57 patch07_1
+	 58 patch07_2
+	 59 patch07_3
+	 60 patch07_4
+	 61 patch07_5
+	 62 patch07_6
+	 63 patch07_7
+	 64 patch08_0
+	 65 patch08_1
+	 66 patch08_2
+	 67 patch08_3
+	 68 patch08_4
+	 69 patch08_5
+	 70 patch08_6
+	 71 patch08_7
+	 72 patch09_0
+	 73 patch09_1
+	 74 patch09_2
+	 75 patch09_3
+	 76 patch09_4
+	 77 patch09_5
+	 78 patch09_6
+	 79 patch09_7
+	 80 patch0a_0
+	 81 patch0a_1
+	 82 patch0a_2
+	 83 patch0a_3
+	 84 patch0a_4
+	 85 patch0a_5
+	 86 patch0a_6
+	 87 patch0a_7
+	 88 patch0b_0
+	 89 patch0b_1
+	 90 patch0b_2
+	 91 patch0b_3
+	 92 patch0b_4
+	 93 patch0b_5
+	 94 patch0b_6
+	 95 patch0b_7
+	 96 patch0c_0
+	 97 patch0c_1
+	 98 patch0c_2
+	 99 patch0c_3
+	100 patch0c_4
+	101 patch0c_5
+	102 patch0c_6
+	103 patch0c_7
+	104 patch0d_0
+	105 patch0d_1
+	106 patch0d_2
+	107 patch0d_3
+	108 patch0d_4
+	109 patch0d_5
+	110 patch0d_6
+	111 patch0d_7
+	112 patch0e_0
+	113 patch0e_1
+	114 patch0e_2
+	115 patch0e_3
+	116 patch0e_4
+	117 patch0e_5
+	118 patch0e_6
+	119 patch0e_7
+	120 patch0f_0
+	121 patch0f_1
+	122 patch0f_2
+	123 patch0f_3
+	124 patch0f_4
+	125 patch0f_5
+	126 patch0f_6
+	127 patch0f_7
+	128 patch10_0
+	129 patch10_1
+	130 patch10_2
+	131 patch10_3
+	132 patch10_4
+	133 patch10_5
+	134 patch10_6
+	135 patch10_7
+	136 patch11_0
+	137 patch11_1
+	138 patch11_2
+	139 patch11_3
+	140 patch11_4
+	141 patch11_5
+	142 patch11_6
+	143 patch11_7
+	144 patch12_0
+	145 patch12_1
+	146 patch12_2
+	147 patch12_3
+	148 patch12_4
+	149 patch12_5
+	150 patch12_6
+	151 patch12_7
+	152 patch13_0
+	153 patch13_1
+	154 patch13_2
+	155 patch13_3
+	156 patch13_4
+	157 patch13_5
+	158 patch13_6
+	159 patch13_7
+	160 patch14_0
+	161 patch14_1
+	162 patch14_2
+	163 patch14_3
+	164 patch14_4
+	165 patch14_5
+	166 patch14_6
+	167 patch14_7
+	168 patch15_0
+	169 patch15_1
+	170 patch15_2
+	171 patch15_3
+	172 patch15_4
+	173 patch15_5
+	174 patch15_6
+	175 patch15_7
+	176 patch16_0
+	177 patch16_1
+	178 patch16_2
+	179 patch16_3
+	180 patch16_4
+	181 patch16_5
+	182 patch16_6
+	183 patch16_7
+	184 patch17_0
+	185 patch17_1
+	186 patch17_2
+	187 patch17_3
+	188 patch17_4
+	189 patch17_5
+	190 patch17_6
+	191 patch17_7
+	192 patch18_0
+	193 patch18_1
+	194 patch18_2
+	195 patch18_3
+	196 patch18_4
+	197 patch18_5
+	198 patch18_6
+	199 patch18_7
+	200 patch19_0
+	201 patch19_1
+	202 patch19_2
+	203 patch19_3
+	204 patch19_4
+	205 patch19_5
+	206 patch19_6
+	207 patch19_7
+	208 patch1a_0
+	209 patch1a_1
+	210 patch1a_2
+	211 patch1a_3
+	212 patch1a_4
+	213 patch1a_5
+	214 patch1a_6
+	215 patch1a_7
+	216 patch1b_0
+	217 patch1b_1
+	218 patch1b_2
+	219 patch1b_3
+	220 patch1b_4
+	221 patch1b_5
+	222 patch1b_6
+	223 patch1b_7
+	224 patch1c_0
+	225 patch1c_1
+	226 patch1c_2
+	227 patch1c_3
+	228 patch1c_4
+	229 patch1c_5
+	230 patch1c_6
+	231 patch1c_7
+	232 patch1d_0
+	233 patch1d_1
+	234 patch1d_2
+	235 patch1d_3
+	236 patch1d_4
+	237 patch1d_5
+	238 patch1d_6
+	239 patch1d_7
+	240 patch1e_0
+	241 patch1e_1
+	242 patch1e_2
+	243 patch1e_3
+	244 patch1e_4
+	245 patch1e_5
+	246 patch1e_6
+	247 patch1e_7
+	248 patch1f_0
+	249 patch1f_1
+	250 patch1f_2
+	251 patch1f_3
+	252 patch1f_4
+	253 patch1f_5
+	254 patch1f_6
+	255 patch1f_7
+	  0 patch20_0
+	  1 patch20_1
+	  2 patch20_2
+	  3 patch20_3
+	  4 patch20_4
+	  5 patch20_5
+	  6 patch20_6
+	  7 patch20_7
+	  8 patch21_0
+	  9 patch21_1
+	 10 patch21_2
+	 11 patch21_3
+	 12 patch21_4
+	 13 patch21_5
+	 14 patch21_6
+	 15 patch21_7
+	 16 patch22_0
+	 17 patch22_1
+	 18 patch22_2
+	 19 patch22_3
+	 20 patch22_4
+	 21 patch22_5
+	 22 patch22_6
+	 23 patch22_7
+	 24 patch23_0
+	 25 patch23_1
+	 26 patch23_2
+	 27 patch23_3
+	 28 patch23_4
+	 29 patch23_5
+	 30 patch23_6
+	 31 patch23_7
+	 32 patch24_0
+	 33 patch24_1
+	 34 patch24_2
+	 35 patch24_3
+	 36 patch24_4
+	 37 patch24_5
+	 38 patch24_6
+	 39 patch24_7
+	 40 patch25_0
+	 41 patch25_1
+	 42 patch25_2
+	 43 patch25_3
+	 44 patch25_4
+	 45 patch25_5
+	 46 patch25_6
+	 47 patch25_7
+	 48 patch26_0
+	 49 patch26_1
+	 50 patch26_2
+	 51 patch26_3
+	 52 patch26_4
+	 53 patch26_5
+	 54 patch26_6
+	 55 patch26_7
+	 56 patch27_0
+	 57 patch27_1
+	 58 patch27_2
+	 59 patch27_3
+	 60 patch27_4
+	 61 patch27_5
+	 62 patch27_6
+	 63 patch27_7
+	 64 patch28_0
+	 65 patch28_1
+	 66 patch28_2
+	 67 patch28_3
+	 68 patch28_4
+	 69 patch28_5
+	 70 patch28_6
+	 71 patch28_7
+	 72 patch29_0
+	 73 patch29_1
+	 74 patch29_2
+	 75 patch29_3
+	 76 patch29_4
+	 77 patch29_5
+	 78 patch29_6
+	 79 patch29_7
+	 80 patch2a_0
+	 81 patch2a_1
+	 82 patch2a_2
+	 83 patch2a_3
+	 84 patch2a_4
+	 85 patch2a_5
+	 86 patch2a_6
+	 87 patch2a_7
+	 88 patch2b_0
+	 89 patch2b_1
+	 90 patch2b_2
+	 91 patch2b_3
+	 92 patch2b_4
+	 93 patch2b_5
+	 94 patch2b_6
+	 95 patch2b_7
+	 96 patch2c_0
+	 97 patch2c_1
+	 98 patch2c_2
+	 99 patch2c_3
+	100 patch2c_4
+	101 patch2c_5
+	102 patch2c_6
+	103 patch2c_7
+	104 patch2d_0
+	105 patch2d_1
+	106 patch2d_2
+	107 patch2d_3
+	108 patch2d_4
+	109 patch2d_5
+	110 patch2d_6
+	111 patch2d_7
+	112 patch2e_0
+	113 patch2e_1
+	114 patch2e_2
+	115 patch2e_3
+	116 patch2e_4
+	117 patch2e_5
+	118 patch2e_6
+	119 patch2e_7
+	120 patch2f_0
+	121 patch2f_1
+	122 patch2f_2
+	123 patch2f_3
+	124 patch2f_4
+	125 patch2f_5
+	126 patch2f_6
+	127 patch2f_7
+	128 patch30_0
+	129 patch30_1
+	130 patch30_2
+	131 patch30_3
+	132 patch30_4
+	133 patch30_5
+	134 patch30_6
+	135 patch30_7
+	136 patch31_0
+	137 patch31_1
+	138 patch31_2
+	139 patch31_3
+	140 patch31_4
+	141 patch31_5
+	142 patch31_6
+	143 patch31_7
+	144 patch32_0
+	145 patch32_1
+	146 patch32_2
+	147 patch32_3
+	148 patch32_4
+	149 patch32_5
+	150 patch32_6
+	151 patch32_7
+	152 patch33_0
+	153 patch33_1
+	154 patch33_2
+	155 patch33_3
+	156 patch33_4
+	157 patch33_5
+	158 patch33_6
+	159 patch33_7
+	160 patch34_0
+	161 patch34_1
+	162 patch34_2
+	163 patch34_3
+	164 patch34_4
+	165 patch34_5
+	166 patch34_6
+	167 patch34_7
+	168 patch35_0
+	169 patch35_1
+	170 patch35_2
+	171 patch35_3
+	172 patch35_4
+	173 patch35_5
+	174 patch35_6
+	175 patch35_7
+	176 patch36_0
+	177 patch36_1
+	178 patch36_2
+	179 patch36_3
+	180 patch36_4
+	181 patch36_5
+	182 patch36_6
+	183 patch36_7
+	184 patch37_0
+	185 patch37_1
+	186 patch37_2
+	187 patch37_3
+	188 patch37_4
+	189 patch37_5
+	190 patch37_6
+	191 patch37_7
+	192 patch38_0
+	193 patch38_1
+	194 patch38_2
+	195 patch38_3
+	196 patch38_4
+	197 patch38_5
+	198 patch38_6
+	199 patch38_7
+	200 patch39_0
+	201 patch39_1
+	202 patch39_2
+	203 patch39_3
+	204 patch39_4
+	205 patch39_5
+	206 patch39_6
+	207 patch39_7
+	208 patch3a_0
+	209 patch3a_1
+	210 patch3a_2
+	211 patch3a_3
+	212 patch3a_4
+	213 patch3a_5
+	214 patch3a_6
+	215 patch3a_7
+	216 patch3b_0
+	217 patch3b_1
+	218 patch3b_2
+	219 patch3b_3
+	220 patch3b_4
+	221 patch3b_5
+	222 patch3b_6
+	223 patch3b_7
+	224 patch3c_0
+	225 patch3c_1
+	226 patch3c_2
+	227 patch3c_3
+	228 patch3c_4
+	229 patch3c_5
+	230 patch3c_6
+	231 patch3c_7
+	232 patch3d_0
+	233 patch3d_1
+	234 patch3d_2
+	235 patch3d_3
+	236 patch3d_4
+	237 patch3d_5
+	238 patch3d_6
+	239 patch3d_7
+	240 patch3e_0
+	241 patch3e_1
+	242 patch3e_2
+	243 patch3e_3
+	244 patch3e_4
+	245 patch3e_5
+	246 patch3e_6
+	247 patch3e_7
+	248 patch3f_0
+	249 patch3f_1
+	250 patch3f_2
+	251 patch3f_3
+	252 patch3f_4
+	253 patch3f_5
+	254 patch3f_6
+	255 patch3f_7
+
+)
+(
+  0x8000 core_chipid
+  0x8003 core_kick
+  0x8005 core_lpm_wr
+  0x8006 core_misc_ctrl
+  0x8007 core_otp_rdata
+  0x8009 core_pcmoutfifo
+  0x8010 core_reset
+  0x8011 core_encrypt
+  0x8015 core_uart_txd
+  0x8022 core_ucode_hi
+  0x8023 core_ucode_ctrl
+  0x8024 core_ucode_low
+  0x8025 core_ucode_data
+  0x8040 core_halfslot
+  0x8042 core_clksel
+  0x8043 core_uart_clksel
+  0x8043 core_config 
+  0x8044 core_xtal_stable_time
+  0x8045 core_otp_addr
+  0x8046 core_otp_din
+  0x8047 core_otp_ctrl
+  0x8048 core_otpd_addr
+  0x804a core_otpd_len
+  0x804b core_otpd_ctrl
+  0x804c core_lpm_reg
+  0x804f core_lpm_isogate
+  0x8050 core_clkoff
+  0x8052 core_uart_baud
+  0x8054 core_uart_rsaddr
+  0x8056 core_uart_readdr
+  0x8058 core_uart_rrptr
+  0x805a core_uart_tsaddr
+  0x805c core_uart_teaddr
+  0x805e core_uart_twptr
+  0x8060 core_uart_trptrp
+  0x8062 core_uart_ctrl
+  0x8063 core_kscn_ksctrl
+  0x8064 core_kscn_rctc
+  0x8065 core_kscn_scancycle_timer_l
+  0x8066 core_kscn_scancycle_timer_h
+  0x8067 core_kscn_m_debounce          
+  0x8068 core_kscn_modkey
+  0x806f core_kscn_rowmask
+  0x8070 core_gpio_oe0
+  0x8071 core_gpio_oe1
+  0x8072 core_gpio_oe2
+  0x8073 core_gpio_oe3
+  0x8074 core_gpio_out0
+  0x8075 core_gpio_out1
+  0x8076 core_gpio_out2
+  0x8077 core_gpio_out3
+  0x8078 core_gpio_pu0
+  0x8079 core_gpio_pu1
+  0x807a core_gpio_pu2
+  0x807b core_gpio_pu3
+  0x807c core_gpio_pd0
+  0x807d core_gpio_pd1
+  0x807e core_gpio_pd2
+  0x807f core_gpio_pd3
+  0x8080 core_gpio_sel
+  0x8081 core_gpio_sel1
+  0x8082 core_gpio_sel2
+  0x8083 core_gpio_key0
+  0x8084 core_gpio_key1
+  0x8085 core_gpio_key2
+  0x8086 core_spid_ctrl
+  0x8087 core_spid_delay
+  0x8088 core_spid_txlen
+  0x808a core_spid_txaddr
+  0x808c core_spid_rxaddr
+  0x808e core_spid_rxlen
+  0x8090 core_iicd_ctrl
+  0x8091 core_iicd_scl_low
+  0x8092 core_iicd_scl_high
+  0x8093 core_iicd_start_setup
+  0x8094 core_iicd_start_hold
+  0x8095 core_iicd_stop_setup
+  0x8096 core_iicd_data_setup
+  0x8097 core_iicd_data_hold
+  0x8098 core_iicd_txlen
+  0x809a core_iicd_txaddr
+  0x809c core_iicd_rxaddr
+  0x809e core_iicd_rxlen
+  0x80a0 core_pwm_pcnt0
+  0x80a2 core_pwm_ncnt0
+  0x80a4 core_pwm_pcnt1
+  0x80a6 core_pwm_ncnt1
+  0x80b0 core_enc_ctrl
+  0x80b1 core_cvsd_ctrl
+  0x80b2 core_codec_ctrl
+  0x80b3 core_dec_ctrl
+  0x80b4 core_bist_ctrl
+
+
+
+  
+  0x8108 core_misc_status
+  0x8109 core_qdec_cntx
+  0x810a core_qdec_cnty
+  0x810b core_qdec_cntz
+  0x810c core_uart_status
+  0x810d core_uart_rbaud
+  0x810e core_uart_txitems
+  0x8110 core_uart_trptr
+  0x8112 core_uart_rxitems
+  0x8114 core_uart_rdptr
+  0x8116 core_uart_rwptr
+  0x8119 core_kscn_kstat
+  0x811a core_kscn_event
+  0x811b core_kscn_event_num
+  0x811c core_gpio_in
+  0x811d core_gpio_in1
+  0x8124 core_current_otp_addr
+  0x8126 core_otpd_remain
+  0x8128 core_spid_remain
+  0x812a core_iicd_remain
+  0x812c core_dma_status
+  0x812d core_perf_status
+  0x812e core_adc_in
+  0x8134 core_pcminfifo
+  0x8135 core_pcminfifo_remain
+  0x8136 core_pcmoutfifo_remain
+  0x8138 core_lpm_ctrl
+  0x813c core_lpm_xtalcnt
+  0x813d core_lpm_buckcnt
+  0x813e core_lpm_ldocnt
+  0x813f core_lpm_latch
+  0x8140 core_gpio_wakeup_low
+  0x8144 core_gpio_wakeup_high
+  0x8149 core_clk_counter
+  0x8150 core_adc_sum
+// dummy regs  
+
+  0x8203 core_ice_ctrl
+  0x8204 core_ice_status
+  0x8205 core_ice_break0
+  0x8207 core_ice_break1
+  
+  0x8280 core_docd_ctrl
+  0x8288 core_docd_paddr
+  0x828a core_docd_pdata
+
+  0x8300 iic_prer_low		
+  0x8301 iic_slave_addr	
+  0x8302 iic_ctr					
+  0x8303 iic_cr					
+  0x8304 iic_rxr					
+  0x8305 iic_txr					
+  0x8306 iic_sr					
+  0x8307 iic_fifo				
+
+  0x8400   mem_b_box          /* entire bank */
+  0x8500   mem_e_box          /* entire bank */
+  0x8600   mem_l_box          /* entire bank */
+
+  0x8700 memk
+
+  0x8900 rfen_rx
+  0x8901 rfen_tx
+  0x8902 rfen_mdm
+  0x8903 rfen_sn
+  0x8904 rfen_msc
+  0x8905 rfen_ck
+  0x8906 rfen_adc
+  0x8912 rf_agc_ctrl
+  0x8914 rfen_ulp
+  0x8973 rfen_chgpump
+  0x894b rf_rx_vctrl_reg1
+  0x894c rf_rx_vctrl_reg2
+  0x894d rf_rx_ib_lna
+  0x894e rf_rx_lna_ctrim
+
+  0x8950 rf_bpf_ctrim
+  0x8951 rf_bpf_ib
+  0x8952 rf_adc_rccal
+  0x8952 rf_rccal_ctrl
+  0x8953 rf_rccal_sel
+  0x8955 rf_tx_pa
+  0x895f rf_pll_rstn
+  0x8964 rf_sdm_en
+  0x8960 rf_pll_intg
+  0x8961 rf_pll_frac
+  0x8963 rf_pll_frachi
+  0x896c rf_afc_cap
+  0x8967 rf_clkpll_bias
+  0x896f rf_clkpll_en
+  0x8968 rf_clkpll_int
+  0x8969 rf_clkpll_frac
+  0x896d rf_balun_ctrim
+  0x8971 rf_adc_mode
+  0x8972 rf_adc_gc
+  0x8973 rf_adc_ch
+  0x8980 rf_rccal_result
+  0x8981 rf_afc_d2a
+  0x8982 rf_rssi
+
+
+0x8c00 core_usb_config		
+0x8c01 core_usb_int_mask	
+0x8c10 core_usb_trig	
+0x8c11 core_usb_stall		
+0x8c12 core_usb_clear		
+0x8c18 core_usb_ep
+0x8c18 core_usb_dfifo0 
+0x8c19 core_usb_dfifo1  
+0x8c1a core_usb_dfifo2 
+0x8c20 core_usb_ep_len
+0x8c26 core_usb_status		
+0x8c27 core_usb_fifo_empty
+0x8c28 core_usb_fifo_full
+
+
+4 rx_freq_offset
+2 tx_freq_offset
+
+/* bit difinitions */
+  4 whiteoff_bit
+  6 clksel_rc
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+
+(
+  7 cold_wake
+  3 gpio_latch
+  4 enable_retmem
+  0xef isogate_mask
+  0xe0 cs_mask
+)
+
+// misc ctrl
+(
+  0x01 otpd_start
+  0x02 spid_start
+  0x04 iicd_start
+  0x08 lock_otp
+  0x10 x_sethi
+  0x20 y_sethi
+  0x40 z_sethi
+  0x80 ccnt_start
+)
+// dma status bit
+(
+  0 otpd_crcok
+  1 otpd_done
+  2 spid_crcok
+  3 spid_done
+  4 iicd_crcok
+  5 iicd_done
+)
+
+0x8b uart_ctrl_default //BCSP
+0x81 uart_ctrl_h4 //H4
+0x81 uart_ctrl_normal
+0x91 uart_ctrl_5line
+0x81 uart_ctrl_57600
+2 uart_baud_len
+0x00 uartclk_crystal
+0x01 uartclk_dpll
+0x1a0 uart_baud_115200
+0xbb uart_baud_256000
+0x340 uart_baud_57600
+0x34 uart_baud_921600
+0x9c4 uart_baud_9600
+0x2dc6c00 uart_clk
+0x16E3600 uart_clk_24
+
+//core_clkoff
+(
+	0 CLOCK_OFF_AUTH_ROM
+	1 CLOCK_OFF_UC_ROM
+	2 CLOCK_OFF_DEBUG_UART
+	3 CLOCK_OFF_SCHED_RAM
+	4 CLOCK_OFF_TRANCE_FIFO
+	5 CLOCK_OFF_CORDIC
+	6 CLOCK_OFF_OTPD
+	7 CLOCK_OFF_I2C
+	8 CLICK_OFF_8051
+	9 CLOCK_OFF_KEYSCAN
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_CODEC
+	0x0f CLOCK_OFF_UART
+)
+
+
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_rfcomm_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $ */
+/* Orisil Technology                                                      */
+/*****************************************************************************/
+
+/**********/
+/* memory */
+/**********/
+
+0x041c memRemoteRPNBitRate
+0x041d memRemotePRNDataBits
+0x041e memRemotePRNStopBit
+0x041f memRemotePRNParity
+0x0420 memRemotePRNFlowControl
+0x0421 memRemotePRNXon
+0x0422 memRemotePRNXoff
+0x0423 mem_mod2div_temp
+0x0426 mem_contw_temp
+0x0428 mem_attrib_list
+0x042a mem_current_adss
+0x042b mem_current_channel
+0x042c mem_current_frame_type
+0x042d mem_current_fcs
+0x042e mem_current_length
+0x0430 mem_rfcomm_uih_payload_ptr
+0x0432 mem_uih_cmd_type
+0x0433 mem_uih_length
+0x0435 mem_param_payload_ptr
+0x0437 mem_ms_param
+0x0438 mem_pn_credit_flow_type_info
+0x0439 mem_pn_priority
+0x043a mem_pn_acknowledg_timer
+0x043b mem_pn_max_retrans
+0x043c mem_rfcomm_send_adss
+0x043d mem_rfcomm_send_frame_type
+0x043e mem_rfcomm_send_fcs
+0x043f mem_rfcomm_send_offset
+
+
+
+(
+0 CREDIT_DISABLE
+1 CREDIT_ENABLE
+)
+
+
+/************************************************************************/
+  
+
+ 
+/************/
+/* constant */
+/************/
+
+/* RFCOMM state for Headset (memRFCOMM_State) */ 
+  (
+    0 RFCOMM_IDLE           /* before the responsor HS receive SABM            */
+    1 RFCOMM_W4_DLCI0_OPEN
+    2 RFCOMM_W4_DLCI0_CLOSE
+    3 RFCOMM_START_DLCI0    /* After respond SABM frame (DLCI=0)               */
+    4 RFCOMM_W4_DLCI_OPEN
+    5 RFCOMM_W4_DLCI_CLOSE
+    6 RFCOMM_DLCI_OPENED    
+   
+  )
+  
+/* RFCOMM timer constants   */
+  (
+    1000  RFCOMM_T1         /* Used by SABM and DISC frames,100*20ms = 20s     */     
+    1000  RFCOMM_T2         /* Used by commands send in UIH on DLCI0,          */
+    300   RFCOMM_T3_RINGON  /* 6s for ring fade time                           */
+  
+  )
+
+/* Command Type */
+  (
+    0x3F RSP_RX_SABM        /*responsor expect SABM from initiator             */
+    0x3F INI_TX_SABM
+	
+    0x73 RSP_TX_UA          /*responsor send out UA command                    */
+    0x73 UA_WFBIT_SET	    /* UA control field with F bit set                 */
+	
+    0xEF RSP_RX_UIH         /*responsor expect UIH from initiator              */
+
+    0xEF RSP_TX_UIH         /*responsor send UIH to initiator                  */
+     
+    0x1F RSP_TX_DM          /*responsor send DM to initiator                   */
+    0x1F DM_WFBIT_SET       /* DM control field with F bit set                 */
+    0x0F DM_WFBIT_CLEAR     /* DM control field with F bit clear               */
+
+    0x53 RSP_RX_DISC        /*responsor expect DISC from initiator             */
+    0x53 INI_TX_DISC	    /*initiator send DISC control type command         */
+     
+    0xFF RSP_RX_UIH_WDATA   /*UIH data with credit flow control info           */
+    
+    
+  )
+
+/* Multiplexor commands and responses frames */
+  (
+    0x83 PN_COMMAND           /* Bit 0 EA C/R Type = 000001         */
+    0x81 PN_RESPONSOR         /* Bit 0 EA C/R Type = 000001         */
+    
+    0xE3 MSC_COMMAND          /* Bit 0 EA C/R Type = 000111         */
+    0xE1 MSC_RESPONSOR
+ 
+    0x13 NSC_COMMAND          /* Bit 0 EA C/R Type = 001000         */
+    0x11 NSC_RESPONSOR        /* Bit 0 EA C/R Type = 001000         */
+
+    0x23 TEST_COMMAND         /* Bit 0 EA C/R Type = 000111         */
+    0x21 TEST_RESPONSOR 
+    
+    0x93 RPN_COMMAND          /* Bit 0 EA C/R Type = 001001         */
+    0x91 RPN_RESPONSOR 
+    
+    0x53 RLS_COMMAND          /* Bit 0 EA C/R Type = 001010         */
+    0x51 RLS_RESPONSOR 
+
+    0xA3 FCON_COMMAND         /* Bit 0 EA C/R Type = 000101         */
+    0xA1 FCON_RESPONSOR 
+    
+    0x63 FCOFF_COMMAND        /* Bit 0 EA C/R Type = 000110         */
+    0x61 FCOFF_RESPONSOR 
+    	
+    0x03 RLS_OVERRUN
+    0x05 RLS_PARITY_ERROR
+    0x09 RLS_FRAMING_ERROR
+  )
+
+/* memLocalCredit */
+  (
+    0x01 RFCOMM_CREDIT
+  )
+
+  (
+  	0x007f RFCOMM_MAX_FRAME_SIZE
+  )
+
+/* UIH received Data length */
+  (
+    0  LENGTH_ZERO
+    
+    6  LENGTH_OK
+    7  LENGTH_HOT
+    8  LENGTH_RING
+    9  LENGTH_ERROR
+    9  LENGTH_AGVOL_ONEBYTE
+    10 LENGTH_AGVOL_TWOBYTE
+    10 LENGTH_VOL_ONEBYTE
+    11 LENGTH_VOL_TWOBYTE
+    12 LENGTH_BRSF
+    13 LENGTH_PLUS_CIEV
+    15 LENGTH_INBANDRING
+    14 LENGTH_CIEV_CALL
+    17 LENGTH_CRING
+    20 LENGTH_BRSF_OK
+    24 LENGTH_CIND0
+    28 LENGTH_CIEV_TWO
+    32 LENGTH_CIND_OK
+    59 LENGTH_CIND_OK2
+    100 LENGTH_DISCARD
+  )
+  
+/************/
+/* flags    */
+/************/
+  
+/* memRFCOMM_L2CAP_Interface */
+  (
+    0 RFCOMM_TX_W4BUF_FLAG    /* Wait for Tx buffer empty flag */
+    1 RFCOMM_CLOSE_LINK_FLAG
+  )
+  
+
+    
+/* memRemoteMSC		*/
+  (
+    0 MSC_EA_BIT
+    1 MSC_FC_BIT
+    2 MSC_RTC_BIT
+    3 MSC_RTR_BIT
+    6 MSC_IC_BIT
+    7 MSC_DV_BIT
+  )
+
+/* memRemoteRLS         */
+  (
+    0x0C OVERRUN_ERROR
+    0x0A PARITY_ERROR
+    0x09 FRAMING_RERROR
+  )
+  
+/* memRemoteRPNBitRate  */
+  (
+    0x00 BITS2400
+    0x01 BITS4800
+    0x02 BITS7200
+    0x03 BITS9600
+    0x04 BITS19200
+    0x05 BITS38400
+    0x06 BITS57600
+    0x07 BITS115200
+    0x08 BITS230400
+  )
+  
+/* memRemotePRNDataBits	*/
+  (
+    0x00 DATABITS5
+    0x01 DATABITS6
+    0x02 DATABITS7
+    0x03 DATABITS8
+  )
+  
+/* memRemotePRNStopBit	*/
+  (
+    0    ONESTOP
+    1    ONEHALFSTOP
+  )
+  
+/* memRemotePRNParity   */
+  (
+    0    ODDPARITY
+    1    EVENPARITY
+    2    MARKPARITY
+    3    SPACEPARITY
+    
+    7    PARITY_ENABLE_BIT
+  )
+
+/* RPN bit mask(in)     */
+  (
+     0   BIT_RATE_MASK_BIT
+     1   DATA_BITS_MASK_BIT
+     2   STOP_BITS_MASK_BIT
+     3   PARITY_MASK_BIT
+     4   PARITY_TYPE_MASK_BIT
+     5   XON_CHAR_MASK_BIT
+     6   XOFF_CHAR_MASK_BIT
+  )
+  
+/* RPN bit mask(in) 2    */
+  (
+     0   XON_XOFF_INPUT_MASK_BIT
+     1   XON_XOFF_OUTPUT_MASK_BIT
+     2	 RTR_INPUT_MASK_BIT
+     3   RTR_OUTPUT_MASK_BIT
+     4   RTC_INPUT_MASK_BIT
+     5   RTC_OUTPUT_MASK_BIT
+
+  )
+
+/* memRFCOMM_Request	*/
+  (
+    0 SEND_MSC_CMD_REQ_FLAG
+    1 SEND_AT_CKPD_REQ_FLAG
+    2 SEND_RING_REQ_FLAG
+    3 SEND_SABM_CMD
+  )
+  
+/* memRFCOMM_Misc_Flag  */
+  (
+    0 MSC_CDM_ALREADY_SEND_FLAG
+    1 CREDIT_FLOW_USED_FLAG
+    2 DONT_EMBEDDED_CREDIT_FLAG 
+    3 MSC_EXCHANGE_DONE_FLAG
+    4 FLOW_CONTROL_FCOFF_BIT            /* set when receive FCoff, clear when FCon   */
+  )
+  
+/* memRemoteMSC		*/
+  (
+    1 FLOW_CONTROL_FC_BIT		/* received MSC FC bits                      */
+  
+  )
+/* Address filed        */
+  (
+    0 ADDR_EA_BIT
+    1 ADDR_CR_BIT
+    2 ADDR_D_BIT
+  )
+//should be same as descripted in SDP
+(
+    1 SPP_SLAVE_CHANNEL
+    7 OBEX_SERVER_CHANNEL
+    8 HF_SERVER_CHANNEL 
+    9 HS_SERVER_CHANNEL
+)
+/* memRFCOMM_Flag */
+(
+	0 USING_HF_PROFILE
+	1 USING_HS_PROFILE
+	2 USING_SPP_PROFILE
+)
+/*RFCOMM Frame Type*/
+(
+	0x3f RFCOMM_FRAME_TYPE_SABM
+	0x73 RFCOMM_FRAME_TYPE_UA
+	0xEF RFCOMM_FRAME_TYPE_UIH
+	0xFF RFCOMM_FRAME_TYPE_UIH_CREDITS
+	0x53 RFCOMM_FRAME_TYPE_DISCONN
+)
+/*RFCOMM UIH CMD TYPE*/
+(
+	0x41 UIH_PARAM_NEG_CMD
+	0x40 UIH_PARAM_NEG_RES
+	0x49 UIH_PARAM_CMD_REMOVE_PORT
+	0x71 UIH_MODEM_STATUS_CMD
+	0x70 UIH_MODEM_STATUS_RES
+)
+
+/*bits in rfcomm address*/
+(
+	0 RFCOMM_ADDRESS_EXT_LEN
+	1 RFCOMM_ADDRESS_CR
+	2 RFCOMM_ADDRESS_DERECTION
+
+
+)
+
+	(                                   
+	0 RFCOMM_CHANNEL_STATE_PN_CMD
+	1 RFCOMM_CHANNEL_STATE_PN_RES
+	2 RFCOMM_CHANNEL_STATE_SABM
+	3 RFCOMM_CHANNEL_STATE_UA
+	4 RFCOMM_CHANNEL_STATE_SND_MS_CMD
+	5 RFCOMM_CHANNEL_STATE_RCV_MS_CMD
+	6 RFCOMM_CHANNEL_STATE_SND_MS_RES
+	7 RFCOMM_CHANNEL_STATE_RCV_MS_RES
+	0xff RFCOMM_CHANNEL_SETUP_COMPLETE
+	) 
+
+	/*mem_rfcomm_send_more_pkt*/
+	(
+	1 MORE_PKT_MSC_CMD_HF
+	2 MORE_PKT_MSC_CMD_HS
+	3 MORE_PKT_MSC_CMD_SPP
+	4 MORE_PKT_MSC_CMD_OBEX
+	)
+
+	(
+	127 RFCOMM_MALLOC_SIZE
+	)
+0x0440 mem_sdp_mem_start
+0x0440 mem_uuid_search_pat
+0x0444 mem_sdp_continue_byte
+0x0446 mem_sdp_pduid
+0x0447 mem_sdp_transactionid
+0x0449 mem_sdp_attribute_maxbyte
+0x044b mem_sdp_record_maxcnt
+0x044d mem_sdp_error_code
+0x0455 mem_sdp_record_handle
+0x0459 mem_sdp_search_failed
+0x045a mem_sdp_LACAP_found
+0x045b mem_sdp_RFCOMM_found
+0x045c mem_handle_list
+0x0474 mem_handle_humber
+0x0475 mem_sdp_mem_end
+(
+0 AGORHS_SERVICE
+1 GENAUDIO_SERVICE
+2 HANDSFREE_SERVICE
+)
+(
+0 ATTRIBUTEID_0000
+1 ATTRIBUTEID_0001
+2 ATTRIBUTEID_0004
+3 ATTRIBUTEID_0009
+4 ATTRIBUTEID_0100
+5 ATTRIBUTEID_0302
+6 ATTRIBUTEID_0006
+7 ATTRIBUTEID_0311
+)
+/* mem_sdp_search_profile */
+(
+1	SDP_SS_HEADSET
+2  	SDP_SS_HANDSFREE
+)
+(
+0x06 sdp_pduid_serviceSearchAttrib
+)
+0x2600 sdp_max_amount
+767 SDP_MALLOC_SIZE
+0x6e sdp_tid_spp //any number
+
+ 
+
+0x0475 mem_rxbuf
+0x0486 mem_random_number
+0x0496 mem_round_key
+0x04a6 mem_kinit
+0x04b6 mem_input_store
+0x04c6 mem_x
+0x04d6 mem_y
+0x04e5 mem_y15
+0x04e6 mem_key_store
+0x04f7 mem_key_store_end
+0x04f8 memp_ar_key
+0x04fa memp_ar_input
+0x04fc mem_ar_hround
+0x0506 mem_ec_infinite
+0x0507 mem_ec_loopc
+0x0509 mem_aes_cmac_data_length
+0x050a memdat
+0x050a mem_ax
+0x0522 mem_ay
+0x053a mem_az
+0x0552 mem_bx
+0x056a mem_ax_256//32 bytes
+0x056a mem_by
+0x0582 mem_bz
+0x058a mem_ay_256// 32 bytes
+0x059a mem_cx
+0x05aa mem_az_256// 32 bytes
+0x05b2 mem_cy
+0x05c9 mem_cy5
+0x05ca mem_bx_256// 32 bytes
+0x05ca mem_cz
+0x05e2 mem_k
+0x05ea mem_by_256// 31 bytes
+0x05fa mem_align
+0x060a mem_bz_256//32 bytes
+0x060a mem_tmp1
+0x060a memahbak
+0x0622 mem_tmp5
+0x062a mem_cx_256//32 bytes
+0x062a memahsave
+0x063a mem_tmp2
+0x064a mem_cy_256// 32 bytes
+0x064a memahsave_end
+0x064a mem_addr_padding
+0x064b mem_addr_value/* 12 bytes     */ 
+0x0652 mem_tmp3
+0x0652 mem_t1
+0x0657 mem_addr_value_end
+0x065a mem_addr_iocap_end
+0x0669 mem_cy5_256// 1 byte
+0x066a mem_cz_256// 32 bytes
+0x066a mem_tmp0
+0x066a mem_t0
+0x0672 mem_tmp0a
+0x0682 mem_t2
+0x068a mem_k_256//32 bytes
+0x069a mem_t3
+0x06aa mem_tmp1_256//32 bytes
+0x06b2 mem_t7
+0x06ca mem_tmp5_256
+0x06ea mem_tmp2_256
+0x070a mem_tmp3_256
+0x070a mem_t1_256
+0x072a mem_tmp0_256
+0x072a mem_t0_256
+0x074a mem_t2_256
+0x076a mem_t3_256
+0x078a mem_t7_256
+0x07aa mem_p
+0x07c2 mem_a
+0x07da mem_b
+0x07f2 mem_gx
+0x080a mem_gy
+0x0822 memh0
+0x0842 mem_p_256
+0x0862 mem_a_256
+0x0882 mem_gx_256
+0x08a2 mem_gy_256
+0x08c2 mem_le_slat
+
+
+
+
+
+
+(
+6 QUEUE_ELE_COUNT
+10 QUEUE_ELE_LENGTH
+)
+
+(
+0 PAIR_UNKNOWN
+1 PAIR_ING
+2 PAIR_DONE
+)
+
+(
+0x18 ATT_WRITE_REQUEST_HANDLE
+)
+
+(
+0x13	HANDLE_VOLUM_UP_KEY	
+0x17	HANDLE_ENTER_KEY
+)
+	
+(
+0x010210 param_smp_key_dist1
+0x010010 param_smp_key_dist2
+)
+
+(
+0 INITATOR_LTK
+1 INITATOR_IRK
+2 INITATOR_CSRK
+)
+
+(
+//100ms
+0x00a0	FAST_ADV_INTERVAL_VALUE
+//200ms
+0x0140	SLOW_ADV_INTERVAL_VALUE
+)
+
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+///////////////////////////////////////////////////////////////////////////////////////
+(
+13 MAX_SHUTER_KEY_NUM
+4  MAX_SHUTTER_LED_NUM
+0xFF INVALID_PIN_NUM
+)
+(
+0 KEY_DEFAULT
+1 kEY_1
+2 kEY_2
+3 KEY_3
+4 KEY_4
+)
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+(
+0 LED_OFF
+1 LED_ON
+2 LED_BLINK
+0xFF LED_INVALID
+)
+
+/*struct led_style*/
+(
+7 LED_STYLE_STRUCT_LEN
+0 LED_TYPE_OFFSET
+1 LED_PIN_OFFSET
+2 LED_ON_TIME_OFFSET
+4 LED_OFF_TIME_OFFSET
+6 LED_BLINK_COUNT_OFFSET
+)
+
+/*struct key_conf*/
+(
+2 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+1 KEY_STYLE_IND_OFFSET
+)
+
+(
+0 SHUTTER_POWER_UP
+1 SHUTTER_POWER_ON
+2 SHUTTER_POWER_OFF
+)
+
+(
+0xf00 EEP_LAP_ADDR
+)
+
+(
+0x33 PAIRED_DEVICE_TYPE_BT
+0x44 PAIRED_DEVICE_TYPE_BLE
+5 PAIRED_DEVICE_DEFAULT_LEN
+0x5a5a PAIRED_DEVICE_MAGIC
+)
+
+(
+0 FLAG_SHUTTER_DEFAULT
+1 FLAG_SHUTTER_IPHONEKEY_SEND
+2 FLAG_SHUTTER_ANDROIDKEY_SEND
+)
+
+(
+0 FLAG_SHUTTER_IPHONEKEY_PRESS
+1 FLAG_SHUTTER_ANDROIDKEY_PRESS
+)
+
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+
+(
+1 FLAG_SHUTTER_1KEY
+2 FLAG_SHUTTER_2KEY
+)
+
+(
+0 FLAG_SHUTTER_1KEY_SEND_NULL
+1 FLAG_SHUTTER_1KEY_SEND_STEP1
+2 FLAG_SHUTTER_1KEY_SEND_STEP2
+3 FLAG_SHUTTER_1KEY_SEND_STEP3
+4 FLAG_SHUTTER_1KEY_SEND_STEP4
+)
+
+
+//mem_shutter_find_type_value_flag
+(
+0X00 LE_FIND_TYPE_VALUE_HID_BIT
+0X01 LE_FIND_TYPE_VALUE_BATTERY_BIT
+0X02 LE_FIND_TYPE_VALUE_DEVICE_INFO_BIT
+0x03 LE_FIND_TYPE_VALUE_GATT_BIT
+)
+
+
+/* simple pairing page */
+
+0x08d2 mem_sp_state_start
+0x08d2 mem_sp_state
+0x08d3 mem_master_sp_state
+0x08d4 mem_sp_flag
+0x08d5 mem_master_sp_flag
+0x08d6 mem_sp_calc
+0x08d7 mem_sp_dh_ready
+0x08d8 mem_sp_localsm
+0x08d9 mem_pairing_auth
+0x08da mem_sp_flag_start
+0x08da mem_sp_local_key_send_count
+0x08db mem_sp_remote_key_recv_count
+0x08dc mem_sp_remote_key_invalid
+0x08dd mem_sp_dhkey_invalid
+0x08de mem_gkey
+0x08e2 mem_le_pubkey_remote_x_256
+0x08ea mem_sp_pubkey_remote
+0x08ea mem_sp_pubkey_remote_x
+0x0902 mem_sp_pubkey_remote_x_end
+0x0902 mem_le_pubkey_remote_y_256
+0x090a mem_sp_pubkey_remote_y
+0x0922 mem_le_dhkey_256
+0x092a mem_sp_dhkey
+0x0942 mem_sp_dhkey_end
+0x0942 mem_sp_random_local
+0x0952 mem_sp_random_local_end
+0x0952 mem_sp_random_remote
+0x0962 mem_sp_random_remote_end
+0x0962 memresult
+0x0962 mem_sp_calc_result
+0x0962 memh
+0x0966 memg
+0x096a memf
+0x096e meme
+0x0972 mem_sp_calc_result_high
+0x0972 memd
+0x0976 memc
+0x097a memb
+0x097e mema
+0x0982 mem_sp_check_result
+0x0992 mem_sp_confirm_remote
+0x09a2 mem_sp_prarm_stack
+
+/* simple pairing status flag */
+(
+  0x00   SP_FLAG_STANDBY
+  0x01   SP_FLAG_COMMIT
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+
+/* simple pairing calc flag */
+(
+  0x00   SP_CALC_STANDBY
+  0x01   SP_CALC_PUBKEY
+  0x02   SP_CALC_DHKEY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+
+/* simple pairing state */
+(
+  0x00   SP_STAT_NULL
+  0x01   SP_STAT_KEY_RECV
+  0x02   SP_STAT_KEY_GENERATE
+  0x03   SP_STAT_KEY_SEND
+  0x04   SP_STAT_COMMIT_CALC
+  0x05   SP_STAT_COMMIT_SEND
+  0x06   SP_STAT_RANDOM_RECV
+  0x07   SP_STAT_RANDOM_SEND
+  0x08   SP_STAT_CONFIRM_RECV
+  0x09   SP_STAT_CONFIRM_CHECK
+  0x0A   SP_STAT_CONFIRM_CALC
+  0x0B   SP_STAT_CONFIRM_SEND
+  0x0C   SP_STAT_LINK_KEY_CALC
+  0x0F   SP_STAT_DONE
+  0x10   SP_STAT_FEATURE_EXT_SEND
+  0x11   SP_STAT_GKEY_CALC
+  /*simple pairing master only*/
+  0x12   SP_MASTER_STAT_START_SKIP
+  0x13   SP_MASTER_STAT_START_DONE
+  0x14   SP_STAT_COMMITMENT_COMPARE
+  0x15   SP_STATE_END
+)
+
+
+/* simple paring invalid flag */
+(
+  0x00   SP_KEY_INVALID
+  0x01   SP_KEY_VALID
+  0x03   SP_KEY_VALID_256
+
+)
+
+/* encapsulated defination for P-192 key */
+(
+  0x01  ENCAPSULATED_MAJOR_TYPE_P192
+  0x01  ENCAPSULATED_MINOR_TYPE_P192
+  0x30  ENCAPSULATED_LEN_P192
+)
+
+/* bluetooth 2.1 support flag */
+(
+  0x00  SIMPLE_PAIRING_ENABLE
+  0x01  ENCRYPTION_PAUSE_ENABLE
+  0x02  EXTENDED_INQUIRY_RESPOSE_ENABLE
+  0x03  SNIFF_SUBRATING_ENABLE
+)
+
+/*mem_sp_localsm*/
+(
+  0x00 DEFAULT_STATEMACHINE
+  0x01 LOCAL_STATEMACHINE
+)
+
+(
+ 0x00 DEFALT_PAIRING_AUTH
+ 0x01 PAIRING_AUTH
+)
+
+(
+1 SSP_MODE_SSP_PIN_FLAG
+2 SSP_MODE_PASSKEY_ENTRY_FLAG
+3 SSP_MODE_JUST_WORK_FLAG
+)
+
+(//ssp mode
+0x040003 SSP_MODE_JUST_WORK_IO_CAP_DATA
+0X040001 SSP_MODE_SSP_PIN_IO_CAP_DATA
+0X040002 SSP_MODE_PASSKEY_IO_CAP_DATA
+)
+
+(
+0x00 DISPLAY_ONLY
+0x01 DISPLAY_YESNO
+0x02 KEYBOARD_ONLY
+0x03 NO_INPUT_NO_OUTPUT
+)
+
+(
+7 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT
+6 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT
+0 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT
+)
+(
+1 FLAG_PAIRING_STATE_PAIRING
+0 FLAG_PAIRING_STATE_NOT_PAIRING
+)
+
+  
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_ui_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $     */
+/************************************************************************/
+
+
+	/* ========= memory ============== */
+0x09b2 mem_UI_data_txbuff_length
+0x09b4 mem_ipc_skip_continue_proc
+0x09b5 mem_ui_timer_temp//length 4
+0x09b5 mem_ipc_rega_temp
+
+/************/
+/* constant */
+/************/
+
+//mem_ui_state_map
+(
+0 UI_STATE_BT_CONNECTED
+1 UI_STATE_BT_SETUP_COMPLETE
+2 UI_STATE_BT_HID_CONN
+3 UI_STATE_BT_HID_HANDSHAKE
+4 UI_STATE_BT_SPP_CONN
+5 UI_STATE_BT_SNIFF
+6 UI_STATE_BT_DISCOVERY
+7 UI_STATE_BT_RECONNECT
+8 UI_STATE_BT_SLAVE_ROLE
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+13 UI_STATE_LED_BLINK
+14 UI_STATE_LED_ON
+)
+(
+0xFF LED_FLASH_INFINITE
+)
+
+(
+1 UI_STATE_SPP_NL_AUTO_DISCOVER
+
+)
+
+/* UI state for Headset (memui_HS_State) */ 
+   (
+    0 UI_HEADSET_DISCONNECT
+    1 UI_HEADSET_IDLE                   /* before the responsor HS receive SABM      */
+    2 UI_HEADSET_W4CONNECT
+    3 UI_HEADSET_RINGING
+    4 UI_HEADSET_CONNECTED
+    5 UI_HEADSET_PARING
+  )
+/* memui_BB_State */
+(
+  0 UI_BB_OFF
+  1 UI_BB_IDLE
+  2 UI_BB_DISCOVERY
+  3 UI_BB_CONNECTED_ACTIVE_NO_SCO
+  4 UI_BB_CONNECTED_ACTIVE_WITH_SCO
+  5 UI_BB_CONNECTED_ACTIVE_WAIT_SNIFF
+  6 UI_BB_CONNECTED_SNIFF
+  7 UI_BB_RECONNECT
+  8 UI_BB_CONNECTED_SNIFF_WITH_SCO
+)
+
+/************/
+/* flags    */
+/************/
+  
+/* memui_Misc_Flags */
+  (
+    5 NO_IDLE_TURN_OFF
+    7 ANSWER_RING_FLAG               /* 1 Answer,0 no*/
+  )
+
+/* mem_UI_SCH_Interface */
+  (
+    0  UI_HS_PAIRING 
+    2  UI_REQ_CLOSE_RFCOMM
+    3  UI_LINK_LOST
+    4  UI_REQ_OPEN_SCO
+    6  UI_REQ_CLOSE_SCO
+  )
+  
+/* memui_PassOverKey */
+  (
+    0  ANSWER_RING_BIT
+    0  AG_SEND_RING_BIT
+    1  VOL_UP_BIT
+    2  VOL_DOWN_BIT
+    3  INI_CALL_BIT
+    4  DAIL_LAST_CALL
+    5  END_CALL_BIT
+    6  NOKIA_VOICE_ACTIVE 
+    7  REJECT_CALL_BIT
+  )
+  
+/* memui_reconnect_mode */
+(
+  0 NO_RECONNECTION
+  1 RECONNECT_HID
+  2 RECONNECT_HF
+  3 RECONNECT_HS
+  4 RECONNECT_HID_HF
+  5 RECONNECT_HID_HS
+)
+/* memui_Commands */
+(
+0 BT_CMD_STANDBY
+1 BT_CMD_START_DISCOVERY
+2 BT_CMD_STOP_DISCOVERY
+3 BT_CMD_RECONNECT
+4 BT_CMD_DISCONNECT
+5 BT_CMD_ENTER_SNIFF
+6 BT_CMD_EXIT_SNIFF
+7 BT_CMD_ENTER_SNIFF_SUBRATING
+8 BT_CMD_EXIT_SNIFF_SUBRATING
+9 BT_CMD_SNIFF_TEST
+10 BT_CMD_SET_PIN_CODE
+11 BT_CMD_START_INQUIRY
+12 BT_CMD_STOP_INQUIRY
+13 BT_CMD_START_ADV
+14 BT_CMD_STOP_ADV
+15 BT_CMD_START_DIRECT_ADV
+16 BT_CMD_STOP_DIRECT_ADV
+17 BT_CMD_LE_DISCONNECT
+18 BT_CMD_LE_UPDATE_CONN
+19 BT_CMD_LED_OFF
+20 BT_CMD_LED_ON
+21 BT_CMD_LED_BLINK
+22 BT_CMD_LE_START_CONN
+23 BT_CMD_LE_START_SCAN
+24 BT_CMD_LE_STOP_SCAN
+25 BT_CMD_ENTER_HIBERNATE
+27 BT_CMD_LE_SMP_SECURITY_REQUEST
+28 BT_CMD_LE_START_WRITE
+29 BT_CMD_ROLE_SWITCH
+30 BT_CMD_BB_RECONN_CANCEL
+31 BT_CMD_STORE_RECONN_INFO_LE
+32 BT_CMD_STORE_RECONN_INFO_BT
+33 BT_CMD_DHKEY_NOT_ACCEPT
+34 BT_CMD_UPDATE_SUPERVISION_TO
+35 BT_CMD_START_24G
+36 BT_CMD_STOP_24G
+37 BT_CMD_PAIR_24G
+38 BT_CMD_TEST_MODE
+39 BT_CMD_START_ADV_RECONN
+40 BT_CMD_AUTO_PAIR_24G
+)
+
+(
+0x00 BT_EVT_NULL
+0x01 BT_EVT_BB_CONNECTED
+0x02 BT_EVT_BB_DISCONNECTED
+0x03 BT_EVT_RECONN_STARTED
+0x04 BT_EVT_RECONN_FAILED
+0x05 BT_EVT_SETUP_COMPLETE
+0x06 BT_EVT_HID_CONNECTED
+0x07 BT_EVT_HID_DISCONNECTED
+0x08 BT_EVT_SPP_CONNECTED
+0x09 BT_EVT_SPP_DISCONNECTED
+0x0A BT_EVT_PINCODE_REQ
+0x0B BT_EVT_ENTER_SNIFF
+0x0C BT_EVT_EXIT_SNIFF
+0x0D BT_EVT_ENTER_SNIFF_SUB
+0x0E BT_EVT_EXIT_SNIFF_SUB
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x12 BT_EVT_HID_HANDSHAKE
+0X13 BT_EVT_RECONN_PAGE_TIMEOUT
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x16 BT_EVT_ML2CAP_CONN_REFUSED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x18 BT_EVT_LINKKEY_GENERATE
+0x19 BT_EVT_SWITCH_NOT_ACCEPT
+0x20 BT_EVT_SWITCH_ACCEPT
+0x21 BT_EVT_SNIFF_NOT_ACCEPT
+0x22 BT_EVT_SNIFF_ACCEPT
+0x23 BT_EVT_UNSNIFF_ACCEPT
+0x24 BT_EVT_UNSNIFF_NOT_ACCEPT
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x26 BT_EVT_SEND_UNSNIFF_ACCEPT
+0x27 BT_EVT_VIRTUAL_CABLE_UNPLUG
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2a BT_EVT_SWITCH_FAIL_MASTER
+0x2b BT_EVT_SWITCH_SUCCESS_MASTER
+0x2c BT_EVT_BUTTON_DOWN
+0x2d BT_EVT_BUTTON_UP
+0x2e BT_EVT_REMOTE_UNSNIFF
+0x2f BT_EVT_RESET
+0x30 BT_EVT_LE_PAIRING_FAIL
+0x31 BT_EVT_LE_PAIRING_SUCCESS
+0x32 BT_EVT_LE_START_ENC
+0x33 BT_EVT_LE_PAUSE_ENC
+0x34 BT_EVT_LE_TK_GENERATE
+0x35 BT_EVT_BT_GKEY_GENERATE
+0x36 BT_EVT_BT_GET_PASSKEY
+0x37 BT_EVT_BT_PAIRING_FAIL
+0x38 BT_EVT_BT_PAIRING_SUCCESS
+0x39 BT_EVT_24G_PAIRING_COMPLETE
+0x3a BT_EVT_24G_ATTEMPT_SUCCESS
+0x3b BT_EVT_24G_ATTEMPT_FAIL
+0x3c BT_EVT_WAKEUP
+0x3d BT_EVT_HIBERNATE_WAKE
+0x3e BT_EVT_CLEAR_LINKKEY
+0x3f BT_EVT_24G_CHEAK_DONGLE_EXIST
+0x40 BT_EVT_LE_NOTIFY_ENABLE
+
+0x50 BT_EVT_TIMER_INIT
+0xF0 BT_EVT_TIMER_MASK
+0x51 BT_EVT_TIMER_100MS
+0x52 BT_EVT_TIMER_200MS
+0x53 BT_EVT_TIMER_300MS
+0x54 BT_EVT_TIMER_400MS
+0x55 BT_EVT_TIMER_500MS
+0x56 BT_EVT_TIMER_600MS
+0x57 BT_EVT_TIMER_700MS
+0x58 BT_EVT_TIMER_800MS
+0x59 BT_EVT_TIMER_900MS
+0x5A BT_EVT_TIMER_1KMS
+0x5B BT_EVT_TIMER_1K1MS
+0x5C BT_EVT_TIMER_1K2MS
+0x5D BT_EVT_TIMER_1K3MS
+0x5E BT_EVT_TIMER_1K4MS
+0x5F BT_EVT_TIMER_1K5MS
+)
+//switch
+(
+0 OFF
+1 ON
+)
+/* memui_mem_lock */
+(
+    0 MEM_UNLOCK
+    1 MEM_LOCK
+)
+/* memui_flag0 */
+(
+    0 UI_USER_DATA_FLAG
+    1 UI_WII_WAITING_SLEEP
+    2 UI_KEYBOARD_SNIFF_SKIP
+)
+/* mem_master_type */
+(
+    0 MTYPE_HID_DEFAULT
+    1 MTYPE_HID_SSP
+    2 MTYPE_SPP
+)
+
+	(	
+	0x01 RECIEVE_SDP_CONN_RES
+	0x02 RECIEVE_SDP_CFG_REQ
+	0x03 RECIEVE_SDP_CFG_RES
+	0x04 RECIEVE_RFCOMM_CONN_RES
+	0x05 RECIEVE_RFCOMM_CFG_REQ
+	0x06 RECIEVE_RFCOMM_CFG_RES
+	0x07 RECIEVE_HID_CTRL_CONN_RES
+	0x08 RECIEVE_HID_CTRL_CFG_REQ
+	0x09 RECIEVE_HID_CTRL_CFG_RES
+	0x0A RECIEVE_HID_INT_CONN_RES
+	0x0B RECIEVE_HID_INT_CFG_REQ
+	0x0C RECIEVE_HID_INT_CFG_RES
+	0x0D RECIEVE_AVCTP_CONN_RES
+	0x0E RECIEVE_AVCTP_CFG_REQ
+	0x0F RECIEVE_AVCTP_CFG_RES
+	0x10 RECIEVE_AVDTP_SIGNAL_CONN_RES
+	0x11 RECIEVE_AVDTP_SIGNAL_CFG_REQ
+	0x12 RECIEVE_AVDTP_SIGNAL_CFG_RES
+	0x13 RECIEVE_AVDTP_MEDIA_CONN_RES
+	0x14 RECIEVE_AVDTP_MEDIA_CFG_REQ
+	0x15 RECIEVE_AVDTP_MEDIA_CFG_RES
+	0x16 RECIEVE_SS_REASULT_HS                  
+	0x17 RECIEVE_SS_REASULT_HF                  
+	0x18 RECIEVE_SS_REASULT_AVTARG		          
+	0x19 RECIEVE_SS_REASULT_OBEX		            
+	0x1A RECIEVE_DLCI0_UA
+	0x1B RECIEVE_HS_PARAM_NEG_RES
+	0x1C RECIEVE_HS_UA
+	0x1D RECIEVE_HS_MODEM_STATUS_RES
+	0x1E RECIEVE_HS_MODEm_STATUS_CMD
+	0x1F RECIEVE_HF_PARAM_NEG_RES   
+	0x20 RECIEVE_HF_UA              
+	0x21 RECIEVE_HF_MODEM_STATUS_RES
+	0x22 RECIEVE_HF_MODEm_STATUS_CMD 
+	0x23 RECIEVE_OBEX_PARAM_NEG_RES     
+	0x24 RECIEVE_OBEX_UA              
+	0x25 RECIEVE_OBEX_MODEM_STATUS_RES
+	0x26 RECIEVE_OBEX_MODEm_STATUS_CMD    
+	0x27 RECIEVE_SPP_PARAM_NEG_RES   
+	0x28 RECIEVE_SPP_UA              
+	0x29 RECIEVE_SPP_MODEM_STATUS_RES
+	0x2A RECIEVE_SPP_MODEm_STATUS_CMD
+	0x2b RECIEVE_SDP_DISCONN_RES
+	)
+
+
+
+	(
+	0 UPPERSM_RP_IDLE
+	1 UPPERSM_RP_SDP_CONN
+	2 UPPERSM_RP_SDP_CONN_WAIT
+	3 UPPERSM_RP_SDP_CFG
+	4 UPPERSM_RP_SDP_CFG_WAIT
+	5 UPPERSM_RP_SS_AVTARG
+	6 UPPERSM_RP_SS_AVTARG_WAIT
+	7 UPPERSM_RP_SS_OBEX
+	8 UPPERSM_RP_SS_OBEX_WAIT
+	9 UPPERSM_RP_SDP_DISCONN
+	10 UPPERSM_RP_SDP_DISCONN_WAIT
+	11 UPPERSM_RP_AVDTP_CONN_WAIT
+	12 UPPERSM_RP_AVCTP_CONN
+	13 UPPERSM_RP_AVCTP_CONN_WAIT
+	14 UPPERSM_RP_AVCTP_CFG
+	15 UPPERSM_RP_AVCTP_CFG_WAIT
+	16 UPPERSM_RP_OBEX_CMD_PN
+	17 UPPERSM_RP_OBEX_CMD_PN_WAIT
+	18 UPPERSM_RP_OBEX_SABM
+	19 UPPERSM_RP_OBEX_SABM_WAIT
+	20 UPPERSM_RP_OBEX_CMD_MS
+	21 UPPERSM_RP_OBEX_CMD_MS_WAIT
+	)
+	(		/*mem_upper_sm_reconn*/
+	0 UPPERSM_RECONN_IDLE		
+	1 UPPERSM_RECONN_SDP_CONN		
+	2 UPPERSM_RECONN_SDP_CONN_WAIT		
+	3 UPPERSM_RECONN_SDP_CFG		
+	4 UPPERSM_RECONN_SDP_CFG_WAIT		
+	5 UPPERSM_RECONN_SS_HS
+	6 UPPERSM_RECONN_SS_HS_WAIT
+	7 UPPERSM_RECONN_SS_HF
+	8 UPPERSM_RECONN_SS_HF_WAIT
+	9 UPPERSM_RECONN_SS_AVTARG		
+	10 UPPERSM_RECONN_SS_AVTARG_WAIT		    
+	11 UPPERSM_RECONN_SS_OBEX		            
+	12 UPPERSM_RECONN_SS_OBEX_WAIT		      
+	13 UPPERSM_RECONN_SDP_DISCONN		        
+	14 UPPERSM_RECONN_SDP_DISCONN_WAIT      
+	15 UPPERSM_RECONN_HID_CTRL_CONN		      
+	16 UPPERSM_RECONN_HID_CTRL_CONN_WAIT		
+	17 UPPERSM_RECONN_HID_CTRL_CFG		      
+	18 UPPERSM_RECONN_HID_CTRL_CFG_WAIT     
+	19 UPPERSM_RECONN_HID_INT_CONN		      
+	20 UPPERSM_RECONN_HID_INT_CONN_WAIT		  
+	21 UPPERSM_RECONN_HID_INT_CFG		        
+	22 UPPERSM_RECONN_HID_INT_CFG_WAIT      
+	23 UPPERSM_RECONN_RFCOMM_CONN		        
+	24 UPPERSM_RECONN_RFCOMM_CONN_WAIT		  
+	25 UPPERSM_RECONN_RFCOMM_CFG		        
+	26 UPPERSM_RECONN_RFCOMM_CFG_WAIT       
+	27 UPPERSM_RECONN_RFCOMM_SABM		        
+	28 UPPERSM_RECONN_RFCOMM_SABM_WAIT		  
+	29 UPPERSM_RECONN_SPP_CMD_PN		        
+	30 UPPERSM_RECONN_SPP_CMD_PN_WAIT		    
+	31 UPPERSM_RECONN_SPP_SABM		          
+	32 UPPERSM_RECONN_SPP_SABM_WAIT		      
+	33 UPPERSM_RECONN_SPP_CMD_MS		        
+	34 UPPERSM_RECONN_SPP_CMD_MS_WAIT       
+	35 UPPERSM_RECONN_HF_CMD_PN		          
+	36 UPPERSM_RECONN_HF_CMD_PN_WAIT		    
+	37 UPPERSM_RECONN_HF_SABM		            
+	38 UPPERSM_RECONN_HF_SABM_WAIT		      
+	39 UPPERSM_RECONN_HF_CMD_MS		          
+	40 UPPERSM_RECONN_HF_CMD_MS_WAIT        
+	41 UPPERSM_RECONN_AVDTPs_CONN		        
+	42 UPPERSM_RECONN_AVDTPs_CONN_WAIT		  
+	43 UPPERSM_RECONN_AVDTPs_CFG		        
+	44 UPPERSM_RECONN_AVDTPs_CFG_WAIT       
+	45 UPPERSM_RECONN_AVDTPm_CONN		        
+	46 UPPERSM_RECONN_AVDTPm_CONN_WAIT		  
+	47 UPPERSM_RECONN_AVDTPm_CFG		        
+	48 UPPERSM_RECONN_AVDTPm_CFG_WAIT       
+	49 UPPERSM_RECONN_AVCTP_CONN		        
+	50 UPPERSM_RECONN_AVCTP_CONN_WAIT		    
+	51 UPPERSM_RECONN_AVCTP_CFG		          
+	52 UPPERSM_RECONN_AVCTP_CFG_WAIT		    
+	53 UPPERSM_RECONN_OBEX_CMD_PN		        
+	54 UPPERSM_RECONN_OBEX_CMD_PN_WAIT		  
+	55 UPPERSM_RECONN_OBEX_SABM		          
+	56 UPPERSM_RECONN_OBEX_SABM_WAIT		    
+	57 UPPERSM_RECONN_OBEX_CMD_MS		        
+	58 UPPERSM_RECONN_OBEX_CMD_MS_WAIT     
+	59 UPPERSM_RECONN_SS_SPP
+	60 UPPERSM_RECONN_SS_SPP_WAIT
+	)
+	(/*mem_UI_profile_supported*/
+	0 support_HID
+	1 support_A2DP
+	2 support_AVRCP
+	3 support_HF
+	4 support_HS
+	5 support_PBAP
+	6 support_SPP
+	)
+	/*mem_upper_sm_ss*/
+	(
+	0 UPPERSM_SS_HS
+	1 UPPERSM_SS_HF
+	2 UPPERSM_SS_AVTARG
+	3 UPPERSM_SS_OBEX
+	)
+
+	(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+	)
+	(
+	0x01 UI_BB_INCONNECT
+	0x10 UI_BB_DISCONNECT
+	)
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+
+//mem_ipc_skip_continue_proc
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+
+
+//C51 synchronous task
+(
+3 START_C51_CORE
+)
+
+
+//bt mode device number
+(
+0X01 MODE_BT_DEVICE1
+0X02 MODE_BT_DEVICE2
+0X03 MODE_BT_DEVICE3
+0X04 MODE_24G_DEVICE
+)
+
+//mem_24g_rx_packet_flag
+(
+0 FLAG_24G_NOT_RX_PACKET
+1 FLAG_24G_RX_PACKET
+)
+
+//mem_24g_pairing_sm
+(
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+
+(
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+0 INIT_CLEAR
+)
+
+(
+1 NEW_QUEUE_ELE_COUNT
+32 NEW_QUEUE_ELE_LENGTH
+
+0x4f50 p_mem_hci_log
+)
+
+(
+7 RSSI_BUF_LEN
+0x77 RSSI_DIS_MIN_24G
+0x82 RSSI_DIS_MAX_24G
+
+0x75 RSSI_DIS_MIN_BLE
+0x80 RSSI_DIS_MAX_BLE
+)
+
+(
+0x60 BLE_FAST_CONN_CHARACTER_HANDLE
+)
+
+(
+48  EEPROM_INIT_FLAG_OFFSET
+)
+
+/**
+*  @file:bt_utility_format.upper
+*  @author: lei.zhu
+*  utility header file. inlcude timer
+*  Copyright:  (C)Hanlynn Technology    
+*/
+
+0x09b9 mem_hold_contr
+0x09bb mem_hold_contw
+0x09bd mem_fifo_temp
+0x09be mem_pdatatemp
+0x09c6 mem_temp//8 bytes
+0x09ce mem_timeup// 4 bytes
+0x09d2 mem_rega//4 bytes
+0x09d6 mem_regb//4 bytes
+0x09da mem_regc//3 bytes
+0x09dd mem_contr//2 bytes
+0x09df mem_contw//2 bytes
+0x09e1 mem_le_data_len_temp//1byte
+0x09e1 mem_tx_fifo_map_temp
+0x09e1 mem_rpn_dlci//1byte
+0x09e1 mem_event_cmd_response_content//2byte
+0x09e1 mem_le_prand//16byte
+0x09e1 mem_AES_CMAC_k//16 bytes
+0x09e1 mem_regext_index//1 bytes
+0x09e1 mem_temp_block0
+0x09e2 mem_le_data_temp//15bytes
+0x09e2 mem_temp_block1
+0x09f1 mem_le_aes_128//16byte
+0x09f1 mem_regext//64 bytes
+0x09f1 mem_AES_CMAC_k1//16 bytes
+0x09f1 mem_temp_block2
+0x0a01 mem_AES_CMAC_k2//16 bytes
+0x0a01 mem_temp_block3
+0x0a11 mem_AES_CMAC_temp// 16 bytes
+0x0a11 mem_temp_block4
+0x0a21 mem_AES_CMAC_M_last// 16 bytes
+0x0a21 mem_temp_block5
+0x0a31 mem_le_mackey//16 bytes
+0x0a31 mem_temp_block6
+0x0a41 mem_temp_prepare_write_request
+
+
+(
+/*mem_util_timer_flag0_7*/
+    0   UTIL_TIMER_0_USED
+    1   UTIL_TIMER_1_USED
+    2   UTIL_TIMER_2_USED
+    3   UTIL_TIMER_3_USED
+    4   UTIL_TIMER_4_USED
+    5   UTIL_TIMER_5_USED
+    6   UTIL_TIMER_6_USED
+    7   UTIL_TIMER_7_USED
+/*mem_util_timer_flag8_15*/
+    0   UTIL_TIMER_8_USED
+    1   UTIL_TIMER_9_USED
+    2   UTIL_TIMER_10_USED
+    3   UTIL_TIMER_11_USED
+    4   UTIL_TIMER_12_USED
+    5   UTIL_TIMER_13_USED
+    6   UTIL_TIMER_14_USED
+    7   UTIL_TIMER_15_USED
+)
+
+//util fifo param
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+
+0x0b09 mem_kb_map2_temp_start
+0x0b09 mem_kb_map2_vk
+0x0b0c mem_kb_current_vk
+0x0b0f mem_kb_vk_offset
+0x0b10 mem_kb_vk_processed_cnt
+0x0b11 mem_kb_map2_current_cell_ptr
+0x0b13 mem_kb_device_button
+0x0b14 mem_table_temp0
+0x0b1c mem_table_temp1
+0x0b24 mem_kb_map2_temp_end
+0x0b24 mem_check_count
+0x0b25 mem_store_key_count
+0x0b26 mem_kb_gpio_val
+0x0b2a mem_c51_flag
+0x0b2b mem_c51_lmp_lock
+0x0b2c mem_lmp_bb_disconnect_reason
+
+/************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                           */
+/* $Author: Administrator $                                                     */
+/* $Id: bt_var.osi,v 1.1 2009-09-28 04:06:18 Administrator Exp $   */
+/* Orisil Technology                                                 */
+/************************************************************************/
+
+
+/* packet types */
+(
+  0x02 FHS_PACKET 
+  0x03 DM1_PACKET 
+  0x03 DM1_LMP_PACKET 
+  0x04 DH1_PACKET 
+  0x05 HV1_PACKET 
+  0x06 HV2_PACKET 
+  0x07 HV3_PACKET 
+  0x08 DV_PACKET 
+  0x09 AUX1_PACKET 
+  0x0a DM3_PACKET 
+  0x0b DH3_PACKET 
+  0x0e DM5_PACKET 
+  0x0f DH5_PACKET 
+)
+
+
+/* mem_lmp_respond */
+(
+  0 RESPOND_TO_ALL
+  1 PASS_EVERYTHING
+  2 PASS_ONLY_UNKNOWNS
+  3 RESPOND_TO_LMPS
+)
+/* SCO algorithm defines */
+(
+  0 ULAW
+  1 ALAW
+  2 CVSD
+)
+/* encryption modes */
+(
+  0 NO_ENCRYPTION
+  1 PT_PT_ENCRYPTION
+  2 PT_BROADCAST_ENCRYPTION
+)
+
+/* bits used in mem_lmp_state1 variable */
+(
+  0 LMP_STATE_DETACH
+  1 LMP_STATE_HOLD
+  2 LMP_STATE_SNIFF
+  3 LMP_STATE_PARK
+  4 LMP_STATE_WAIT_SCO_CREATE
+  5 LMP_STATE_WAIT_SCO_KILL
+  6 LMP_STATE_SCO3
+  7 LMP_STATE_WAIT_SCO_START
+)
+/* mem_lmp_state2 */
+(
+  0 LMP_WAIT_FOR_SNIFF_ACCEPT
+  1 LMP_WAIT_FOR_PARK_ACCEPT
+  2 LMP_SEND_UNPARK_ACCEPTED
+  3 LMP_SEND_ENCRYPTION_START
+  4 LMP_SEND_ENCRYPTION_STOP
+  5 MESSAGE_QUEUE
+  7 LMP_STATE_WAIT_BEACON
+)
+/* mem_lmp_state3 */
+(
+ 0 INQUIRY_STATE_CHECK
+ 1 HOST_DELAY_MESSAGE
+ 2 VARIABLE_DELAY
+ 3 TEST_MODE_START_LOOPBACK
+ 4 TEST_MODE_START_PATTERN
+ 5 PARSE_TEST_CONTROL_MESSAGE
+ 6 H_AUTH_SEND_COMB_KEY
+)
+/* mem_rx_status */
+(
+  0 FROM_MASTER
+)
+/* mem_ms_flag */
+(
+  0 MS_RECEIVE_SWITCH_REQ
+  1 MS_SEND_SETUP_COMPLATE
+)
+/* mem_conn_sm */
+(
+  0 CONN_SM_STANDBY
+  1 CONN_SM_WAIT_PAGE
+  2 CONN_SM_SEND_FEATURES
+  3 CONN_SM_WAIT_FEATURES_RES
+  4 CONN_SM_SEND_CONN_REQ
+  5 CONN_SM_WAIT_CONN_ACCEPT
+  6 CONN_SM_AUTH_PAIR
+  7 CONN_SM_AUTH_PAIR_WAIT
+  8 CONN_SM_WAIT_MUTAL_AUTH
+  9 CONN_SM_ENCRYPT
+  0xa CONN_SM_ENCRYPT_WAIT
+  0xb CONN_SM_ENCRYPT_WAIT_CLEAR
+  0xc CONN_SM_SEND_SETUP_COMPLETE
+  0xd CONN_SM_WAIT_SETUP_COMPLETE 
+  0xe CONN_SM_SEND_SWITCH
+  0xf CONN_SM_DETACH_DELAY
+  0x10 CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION
+  0x11 CONN_SM_DELAY_RESTART_CONNECTION
+  0x12 CONN_SM_SEND_VERSION
+  0X13 CONN_SM_WAIT_VERSION
+  0x14 CONN_SM_SEND_FEATURES_EXT
+  0x15 CONN_SM_WAIT_FEATURES_EXT
+  0x16 CONN_SM_PAIRING
+  0x17 CONN_SM_AUTH
+  0x18 CONN_SM_PAIRING_WAIT
+  0x19 CONN_SM_AUTH_WAIT
+  0x1a CONN_SM_DONE
+  0x1b CONN_SM_WAIT_DONE
+)
+
+/* btStateConn1 */
+(
+  0 CONN_STANDBY
+  1 CONN_MASTER_SEND_CONN_REQ
+  2 CONN_MASTER_WAIT_FOR_CONN_ACCEPTED
+  3 CONN_MASTER_AUTH
+  4 CONN_MASTER_WAIT_FOR_FEATURES
+  5 CONN_MASTER_WAIT_FOR_SETUP_COMPLETE
+  6 CONN_MASTER_WAIT_FOR_MAX_SLOT
+  7 CONN_SLAVE_CONN_REQUESTED
+  8 CONN_SLAVE_WAIT_FOR_SETUP_COMPLETE
+  9 CONN_SLAVE_AUTH
+  10 CONN_USING_HOST_OPCODE
+  11 CONN_SLAVE_AUTH_WAIT
+  12 CONN_SLAVE_ENCRYPT_WAIT
+)
+
+/* mem_lmp_conn_state */
+(
+  0 RECEIVED_CONN_REQ
+  1 SENT_CONN_REQ
+  2 RECEIVED_SETUP_COMPLETE
+  3 SENT_SETUP_COMPLETE
+  4 HOST_CONNECTION_MADE
+  6 INIT_COMPLETE
+  7 SNIFF_NEGOTIATE
+)
+/* btStateAuth1 */
+(
+  0 WAIT_FOR_KINIT
+  1 WAIT_FOR_LKA
+  2 WAIT_FOR_LKB
+  3 WAIT_FOR_SRES
+  4 EXAMINE_RECEIVED_SRES
+  5 SEND_AU_RAND
+  6 WAIT_FOR_KC
+  7 DELAYED_ENCRYPT_RESPONSE
+)
+/* btStateAuth2 */
+(
+  0 SENT_SRES
+  1 RECEIVED_IN_RAND
+  2 SENT_AU_RAND
+  3 AUTHENTICATION_FAILED
+  4 AUTHENTICATION_PASSED
+  5 STARTED_AUTH
+  6 SENT_COMB_KEY
+  7 SENT_IN_RAND
+)
+/* btStateAuth3 */
+(
+  0 RECEIVED_AU_RAND
+  1 RECEIVED_SRES
+  2 MUTUALLY_AUTHENTICATE
+)
+/* btStateHost */
+(
+  0 H_AUTH_STARTED
+  2 H_ENCRYPTION_MODE_REQ_PT
+  3 H_ENCRYPTION_KEY_SIZE
+  4 H_ENCRYPTION_START
+  5 H_ENCRYPTION_STOP
+  6 H_AUTH_SECOND_TRY
+)
+/* btStateEncrypt2 */
+(
+  0 RECEIVED_ENCRYPT_MODE_REQ_PT
+  1 RECEIVED_ENCRYPT_KEY_SIZE
+  2 RECEIVED_ENCRYPT_START
+  3 RECEIVED_ENCRYPT_STOP
+  4 STARTED_ENCRYPT_START
+)
+/* mem_ms_state */
+(
+  0x00 MS_STANDBY
+  0x11 M_MINIT_1
+  0x12 M_MINIT_2
+  0x20 M_SINIT_0
+  0x30 S_MINIT_0
+  0x31 S_MINIT_1
+  0x32 S_MINIT_2
+  0x41 S_SINIT_1
+  0x42 S_SINIT_2
+  0x43 S_SINIT_3
+)
+/* mem_test_mode */
+(
+  0 TEST_MODE_ALLOWED
+  1 TEST_MODE_ACTIVE
+)
+/* values for mem_tester_emulate */
+(
+  0x00 NO_TEST_MODE
+  0x00 CONTINUOUS_TRANSMIT
+  0x10 TRANSMIT_TEST
+  0x08 LOOPBACK
+)
+
+/* mem_tx_misc */
+(
+  1 SEND_TX_ADDR
+)
+/* BBHWREG_page_stat */
+(
+  5 PAGE_MODE_END
+)
+/* host_return_parameters_status codes */
+(
+  0x00 HOST_RETURN_SUCCESS
+  0x01 HOST_RETURN_SLAVE_CANT_ISSUE
+  0x02 HOST_RETURN_NO_CONNECTION
+  0x04 HOST_RETURN_PAGE_TIMEOUT
+  0x05 HOST_RETURN_INQUIRY_TIMEOUT
+  0x08 HOST_RETURN_CONNECTION_TIMEOUT
+  0x09 HOST_RETURN_MAX_NUM_CONNECTIONS
+  0x0a HOST_RETURN_MAX_NUM_SCO
+  0x0b HOST_RETURN_MAX_NUM_ACL
+  0x0c HOST_RETURN_SECURITY_REASONS
+  0x10 HOST_RETURN_HOST_TIMEOUT
+  0x11 HOST_RETURN_UNSUPPORTED_FEATURE_PARAMETER
+  0x13 HOST_RETURN_OTHER_END_USER
+  0x14 HOST_RETURN_OTHER_END_LOW_RESOURCE
+  0x15 HOST_RETURN_OTHER_END_POWER_OFF
+  0x16 HOST_RETURN_LOCAL_HOST
+  0x18 HOST_RETURN_PAIRING_NOT_ALLOWED
+  0x19 HOST_RETURN_UNKNOWN_PDU
+  0x1a HOST_RETURN_UNSUPPORTED_REMOTE_FEATURE
+  0x1d HOST_RETURN_SCO_AIR_MODE_REJECTED
+  0x20 HOST_RETURN_UNSUPPORTED_LMP_VALUE
+  0x21 HOST_RETURN_AUTHENTICATION_FAILURE
+  0x22 HOST_RETURN_CHANGED_EXISTING_SCO
+  0x23 HOST_RETURN_HOST_REJECTED
+  0x24 HOST_RETURN_UNSPECIFIED_ERROR
+  0x25 HOST_RESET
+  0x26 HOST_RETURN_BAD_HANDLE
+
+  0x00 HOST_RETURN_ACCEPT_COMMAND
+  0x01 HOST_RETURN_REJECT_COMMAND
+)
+/* host_present */
+(
+  0 HOST_IS_PRESENT
+  1 BCI_IS_PRESENT
+  2 DONT_INIT_RADIO
+)
+/* mem_master_state */
+(
+  0 MASTER_STATE_STANDBY
+  1 MASTER_INQUIRY
+)
+/* misc */
+(
+  92 SECOND_SWITCH_REQ
+  93 SLAVE_DELAY_DETACH
+  94 MASTER_DELAY_DETACH
+  95 UNSNIFF_DELAY_DETACH
+  0 WE_STARTED_AS_MASTER
+  1 WE_STARTED_AS_SLAVE
+)
+/* mem_host_commands */
+(
+  0x01 HOST_INQUIRY
+  0x02 HOST_INQUIRY_CANCEL
+  0x03 HOST_CREATE_CONNECTION
+  0x04 HOST_DISCONNECT_CONNECTION
+  0x05 HOST_ADD_SCO_REQUEST
+  0x06 HOST_REMOTE_NAME_REQUEST
+  0x07 HOST_WRITE_SUPPORTED_FEATURES
+  0x08 HOST_SET_TX_LEVEL
+  0x09 HOST_SET_RX_LEVEL
+  0x0a HOST_SNIFF_REQUEST
+  0x0b HOST_UNSNIFF_REQUEST
+  0x0c HOST_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0e HOST_WRITE_SCAN_ENABLE
+  0x0f HOST_READ_AUDIO_QUALITY
+  0x10 HOST_ENABLE_DEVICE_UNDER_TEST
+  0x14 HOST_BUTTON_CONFIGURE
+  0x15 HOST_SET_LOW_BATTERY_LEVEL
+  0x16 HOST_WRITE_LOCAL_NAME
+  0x17 HOST_WRITE_LOCAL_PIN
+  0x18 HOST_KILL_SCO_REQUEST
+  0x19 HOST_QOS_REQ
+
+  0x1a HOST_FEATURES_REQUEST
+  0x1b HOST_VERSION_REQUEST
+  0x1c HOST_TIMING_REQUEST
+  0x1d HOST_CLK_OFFSET_REQUEST
+  0x1e HOST_AUTHENTICATE
+  0x1f HOST_START_ENCRYPTION
+  0x20 HOST_STOP_ENCRYPTION
+  0x21 HOST_HOLD_REQUEST
+  0x22 HOST_HOLD_FORCE
+  0x23 HOST_PARK_REQUEST
+  0x24 HOST_MOD_BEACON
+  0x25 HOST_SET_BROADCAST_SCAN_WINDOW
+  0x26 HOST_UNPARK_PM_REQUEST
+  0x27 HOST_UNPARK_BD_REQUEST
+  0x28 HOST_SLAVE_REQUEST_UNPARK
+  0x29 HOST_DECREASE_POWER_REQUEST
+  0x2a HOST_INCREASE_POWER_REQUEST
+  0x2b HOST_SEND_PREFERRED_RATE
+  0x2c HOST_MAX_SLOT_REQ
+  0x2d HOST_MAX_SLOT_FORCE
+  0x2e HOST_PAGE_MODE_REQUEST
+  0x2f HOST_PAGE_SCAN_MODE_REQUEST
+  0x30 HOST_MASTER_SLAVE_SWITCH
+  0x31 HOST_SEND_AUTO_RATE
+  0x32 HOST_PAGE_CANCEL
+  0x33 HOST_CHANGE_LINK_KEY
+  0x34 HOST_RADIO_READ
+  0x35 HOST_RADIO_WRITE
+  0x36 HOST_REMOTE_SLAVE_INIT_UNPARK_REQUESTED
+
+  0x40 HOST_REMOTE_CONNECTION_REQUESTED
+  0x41 HOST_REMOTE_DETACH
+  0x42 HOST_REMOTE_SCO_CREATE_REQUESTED
+  0x43 HOST_REMOTE_SCO_KILL_REQUESTED
+  0x44 HOST_REMOTE_PARK_REQUESTED
+  0x45 HOST_REMOTE_UNPARK_REQUESTED
+  0x46 HOST_REMOTE_SNIFF_REQUESTED
+  0x47 HOST_REMOTE_UNSNIFF_REQUESTED
+  0x48 HOST_REMOTE_HOLD_REQUESTED
+  0x49 HOST_REMOTE_AUTHENTICATION
+  0x4a HOST_REMOTE_START_ENCRYPTION_REQUESTED
+  0x4b HOST_REMOTE_STOP_ENCRYPTION_REQUESTED
+  0x4c HOST_MODE_CHANGE_EVENT
+  0x4d HOST_REMOTE_TEST_ACTIVATE
+  0x4e HOST_REMOTE_TEST_CONTROL
+  0x4f HOST_REMOTE_TIMING_REQUEST
+)
+/* BCI interface (not used if not compiled in ) */
+(
+  0x01 BCI_INQUIRY
+  0x02 BCI_INQUIRY_CANCEL
+  0x03 BCI_CREATE_CONNECTION
+  0x04 BCI_DISCONNECT
+  0x05 BCI_ADD_SCO_CONNECTION
+  0x06 BCI_REMOTE_NAME_REQUEST
+  0x07 BCI_WRITE_SUPPORTED_FEATURES
+  0x08 BCI_SET_TX_POWER_LEVEL
+  0x09 BCI_SET_RX_POWER_LEVEL
+  0x0a BCI_SNIFF_MODE
+  0x0b BCI_EXIT_SNIFF_MODE
+  0x0c BCI_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0d BCI_WRITE_PAGE_TIMEOUT
+  0x0e BCI_WRITE_SCAN_ENABLE
+  0x0f BCI_GET_AUDIO_QUALITY
+  0x10 BCI_ENABLE_DEVICE_UNDER_TEST
+  0x11 BCI_SEND_DATA
+  0x12 BCI_REGISTER_SERVICE_RECORD
+  0x13 BCI_SERVICE_SEARCH_ATTRIB_REQ
+  0x14 BCI_BUTTON_CONFIGURE
+  0x15 BCI_SET_LOW_BATTERY_LEVEL
+  0x16 BCI_WRITE_LOCAL_NAME
+  0x17 BCI_WRITE_LOCAL_PIN
+  0x18 BCI_REMOVE_SCO_CONNECTION
+  0x19 BCI_QUALITY_OF_SERVICE
+  0x40 BCI_REMOTE_CONNECTION_REQUEST
+  0x41 BCI_REMOTE_DETACH
+  0x42 BCI_REMOTE_ADD_SCO_REQUEST
+  0x43 BCI_REMOTE_REMOVE_SCO_REQUEST
+  0x44 BCI_REMOTE_PARK_REQUEST
+  0x45 BCI_REMOTE_UNPARK_REQUEST
+  0x46 BCI_REMOTE_SNIFF_REQUEST
+  0x47 BCI_REMOTE_UNSNIFF_REQUEST
+  0x48 BCI_REMOTE_HOLD_REQUEST
+  0x49 BCI_REMOTE_AUTHENTICATION_PAIRING_REQUEST
+  0x4a BCI_REMOTE_START_ENCRYPTION_REQUEST
+  0x4b BCI_REMOTE_STOP_ENCRYPTION_REQUEST
+  0x4c BCI_MODE_CHANGE_EVENT
+)
+/* mode changes */
+(
+  0 MODE_CHANGE_ACTIVE
+  1 MODE_CHANGE_SNIFFING
+  2 MODE_CHANGE_PARKED
+  3 MODE_CHANGE_HOLDING
+  4 MODE_CHANGE_SCO_ADDED
+  5 MODE_CHANGE_SCO_REMOVED
+  6 MODE_CHANGE_ACL_CONNECTION
+  7 MODE_CHANGE_DISCONNECT
+  8 MODE_CHANGE_SCO_CHANGED
+  9 MODE_CHANGE_ENCRYPTING
+  10 MODE_CHANGE_NOT_ENCRYPTING
+  11 MODE_CHANGE_BUTTON_UP
+  12 MODE_CHANGE_BUTTON_DOWN
+  13 MODE_CHANGE_BATTERY_LOW
+  14 MODE_CHANGE_RESET
+  15 MODE_CHANGE_INQUIRY_CANCELED_RMTCMD
+  16 MODE_ACTIVE_MSSWITCH_PASSED
+  17 MODE_ACTIVE_MSSWITCH_FAILED
+)
+/* mem_battery - low nibble is level information, upper nibble is status info */
+(
+  6 BATTERY_CHECK_LEVEL
+  7 BATTERY_SENT_STATUS
+)
+/* mem_radio_version */
+(
+  0x02 RADIO_2001
+  0x12 RADIO_2002
+  0x32 RADIO_2002_DDM
+  0x42 RADIO_1008A1
+  0x52 RADIO_1018A0
+)
+/* mem_slave_initiated_conn */
+(
+  0 SLAVE_INIT_AUTHENTICATION
+  1 SLAVE_INIT_ENCRYPTION
+  2 SLAVE_INIT_MASTER_SLAVE_SWITCH
+)
+/* connection_options */
+(
+  0 CONNECTION_AUTH
+  1 CONNECTION_ENCRYPT
+  2 CONNECTION_SWITCH
+  3 CONNECTION_ACL
+  4 CONNECTION_FEATURE_EXT
+)
+/* mem_debug_config */
+(
+  7 AA_INSERTION
+)
+0x3000 start
+0x3001 soft_reset
+0x3019 main_loop
+0x3029 connection_dispatch
+0x302e connection_incontext
+0x3038 connection_nosniff
+0x3043 idle_dispatch
+0x304e idle_exit
+0x3050 idle_le_create_conn
+0x3053 idle_inquiry
+0x3058 idle_inquiry_cancel
+0x305b idle_remote_name_req
+0x3060 idle_create_conn
+0x3062 idle_create_conn_device
+0x3067 idle_create_conn_cont
+0x3068 idle_start_page
+0x306f idle_page_mode_r0
+0x3091 idle_page_fail
+0x3098 idle_name_fail
+0x309e inquiry_dispatch
+0x30a4 inquiry_start
+0x30ac inquiry_restart
+0x30af inquiry_rx_restart
+0x30b4 inquiry_transmit
+0x30c2 inquiry_check_train
+0x30d0 inquiry_receive
+0x30db inquiry_sync
+0x30e2 inquiry_receive_rtn
+0x30e4 inquiry_receive_eir_rtn
+0x30e8 master_page
+0x30f1 master_page_no_interval
+0x30fd master_npage_timeout
+0x3100 master_page_timeout
+0x3108 page_start
+0x3115 page_restart
+0x311b page_rx_restart
+0x312f page_exit
+0x3136 page_check_train
+0x3145 page_receive
+0x314e page_sync
+0x3154 page_send_fhs
+0x3159 page_send_fhs_continue
+0x3165 page_wait_fhs_reply
+0x3175 page_wait_fhs_reply_ok
+0x317b master_newconn_loop
+0x3180 newconn_poll_responded
+0x3188 master_dispatch
+0x319a master_loop
+0x31a4 master_notmatch
+0x31ab master_exit
+0x31ad master_attempt
+0x31b0 check_master_disconnect
+0x31b3 check_master_match
+0x31c1 master_disconnect
+0x31c8 master_name_disconnect
+0x31ca master_name_error
+0x31cd check_disconnect_timeout
+0x31d4 disable_usr
+0x31d6 conn_timer_expired
+0x31da linkkey_ready
+0x31e4 linkkey_set
+0x31ed linkkey_set_continue
+0x31ee generate_linkkey_continue
+0x31ef clear_linkstate
+0x31f3 role_switch_check
+0x31fe role_switch_clkn
+0x31ff role_switch_clke
+0x3206 role_switch_prepare
+0x320a role_switch_prepare0
+0x321a role_switch_master
+0x3221 roles_waitfhs_loop
+0x3226 role_switch_fail_master
+0x322f roles_replyto_fhs
+0x3237 roles_newconns_loop
+0x323e roles_newconns_responded
+0x3246 context_load
+0x3259 context_load_master
+0x3260 context_save
+0x3269 context_get_next
+0x326c context_get_next_loop
+0x3270 context_get_next_cont
+0x3278 context_get_next_sniff
+0x327a context_new
+0x3283 context_check_all_wack
+0x328b context_check_esco_wack
+0x3290 context_esco_wack
+0x3292 context_check_idle
+0x3294 context_traverse_linkkey
+0x3297 context_search_conn_handle
+0x3298 context_search_conn_handle2
+0x329a context_search_plap
+0x329d context_search_plap2
+0x329f context_search_insniff
+0x32a1 context_search_sniff_window
+0x32a2 context_search
+0x32a7 context_search_loop
+0x32a9 context_search_next
+0x32ad context_search_empty
+0x32b1 context_search_lap
+0x32b3 context_search_lap_cont
+0x32b8 context_search_handle
+0x32be context_search_sniff
+0x32bf context_search_sniff_loop
+0x32cc context_search_sniff_sc
+0x32cf context_search_meet1
+0x32d0 context_search_meet
+0x32d4 context_search_sniff_miss
+0x32da sign_pdata_temp
+0x32e4 sign_pdata_temp_p0
+0x32ea context_check_inconn
+0x32ed context_check_a_wack
+0x32f6 context_get_anchor
+0x3302 context_next_anchor
+0x3309 context_search_window
+0x3312 context_traverse_clearkey
+0x331d master_conn_send_packet
+0x3320 master_send_packet
+0x3328 master_conn_recv_packet
+0x332b master_recv_packet
+0x3333 master_rx_conn_finish_packet
+0x3337 master_newconn_once
+0x333e inquiry_scan_dispatch
+0x334e inquiry_scan_start
+0x337a send_eir
+0x339d get_all_uuid
+0x33a1 lshift_loop
+0x33b3 page_scan_dispatch
+0x33c3 page_scan_start
+0x33e6 page_scan_wait_fhs_restart
+0x33f0 page_scan_wait_fhs_again
+0x33f8 page_scan_reply_to_fhs
+0x3406 slave_apply_clke_bt
+0x340a slave_apply_clke_bt_now
+0x340d start_slave_connection
+0x3412 slave_newconn_loop
+0x3417 sconn_successful
+0x341f slave_dispatch
+0x3424 slave_loop
+0x3434 slave_notmatch
+0x343e slave_disconnect
+0x3447 role_switch_slave
+0x3450 roles_sendfhs_loop
+0x3463 roles_got_fhs_reply
+0x3466 roles_newconn_loop
+0x3470 roles_newconn_responded
+0x3476 roles_newconn_nolmp
+0x3481 init_rx_packet_flags
+0x348d prepare_newconn
+0x3499 newconn_init
+0x34a9 clear_linkkey
+0x34b0 new_conn_timeout
+0x34b4 new_conn_handle
+0x34b8 quit_connection
+0x34be quit_connection_name
+0x34c2 quit_connection_cont
+0x34d3 quit_connection_not_clear_mark
+0x34d5 quit_connection_not_clear_tx
+0x34d9 slave_newconn_once
+0x34e7 prepare_tx
+0x34f4 prepare_tx_not_esco
+0x34f5 prepare_tx_not_sco
+0x34fb prepare_tx_retransmit
+0x3505 prepare_tx_nomore_retransmit
+0x3508 prepare_tx_no_retransmit
+0x3511 prepare_tx_pollnull
+0x3515 prepare_tx_loopback
+0x351c prepare_tx_txpat
+0x3520 prepare_tx_sendlmp
+0x3522 prepare_tx_sendl2cap
+0x3523 set_wait_ack
+0x352d tx_l2cap_type
+0x3544 tx_l2cap_type_edr
+0x3554 slave_receive_master_slot
+0x3559 slave_receive_notsniff
+0x355a slave_receive_access
+0x355b slave_receive_sniff
+0x3579 slave_conn_recv_packet
+0x3582 receive_packet
+0x3584 receive_packet_whitened
+0x359a receive_packet_noedr
+0x35a4 receive_packet_amchk
+0x35b4 am_addr_match
+0x35b5 am_addr_ok
+0x35c5 arqn_bypass
+0x35d3 failed_seqn
+0x35d4 rx_type_dispatch
+0x35e4 process_hev
+0x35eb process_hev_loop
+0x35f4 process_poll
+0x35f5 process_dm5
+0x35f6 process_dm1
+0x35f8 process_dh5
+0x35f9 process_3dh1
+0x35fa process_dh1
+0x35fb process_dmh
+0x3608 process_dmh_noedr
+0x3614 process_dmh_long
+0x3617 process_dmh_common
+0x362b process_lmp
+0x3630 process_dmh_data_l2cap_start_pkt
+0x363b process_dmh_data_into_buff1
+0x3640 process_dmh_data_into_buff2
+0x3645 process_dmh_data_l2cap_continue_pkt
+0x3650 process_dmh_data_l2cap_continue_pkt1
+0x3654 process_dmh_data_l2cap_continue_pkt2
+0x3657 process_dmh_data
+0x365b process_dmh_data_end
+0x366e process_l2cap_pass_crc_buff1
+0x3678 process_l2cap_pass_crc_buff2
+0x3682 process_dmh_cont
+0x368c process_dmh_cont_rxbuf_not_use
+0x3696 ack_payload
+0x36a8 error_header
+0x36af error_payload_crc
+0x36b5 error_payload
+0x36b6 discard_pkt
+0x36bb discard_pkt_lmp
+0x36bf discard_pkt_l2cap
+0x36c3 redundant_payload
+0x36c6 end_of_packet
+0x36d3 process_fhs
+0x36e9 fhs_parity_ok
+0x3703 clear_got_tx
+0x3719 clear_got_txlmp
+0x3726 clear_lmp_escape
+0x3729 clear_send_setup_complete
+0x372e sco_link_req_by_slave
+0x3733 clean_mem_mode
+0x3736 start_encryption
+0x373f stop_encryption
+0x3746 sniff_init
+0x374d sniff_init_master
+0x3757 sniff_init_nowrap
+0x376a sniff_exit
+0x3775 check_attempt
+0x3781 check_attempt_nomore
+0x3783 check_attempt_sniff
+0x3789 check_attempt_sniff_restore_sco
+0x378c check_attempt_sco_master
+0x3792 check_attempt_not_sco
+0x379b check_attempt_notimeout
+0x379f sniff_check_window
+0x37a9 check_esco_amaddr
+0x37ac parse_l2cap
+0x37af parse_l2cap_cont
+0x37c1 parse_l2cap_release_buff1
+0x37c7 parse_l2cap_release_buff2
+0x37cd l2cap_buff1_inuse
+0x37d1 l2cap_buff2_inuse
+0x37d5 slave_send_access
+0x37de slave_conn_send_packet
+0x37e9 slave_conn_send_access
+0x37ec transmit_packet
+0x37ee transmit_packet_whitened
+0x3816 transmit_hev
+0x381d transmit_ev_loop
+0x3822 transmit_fhs
+0x3840 transmit_lmp
+0x3849 transmit_lmp_loop
+0x384f transmit_lmp_finish
+0x3852 transmit_dm1
+0x3854 transmit_dm5
+0x3857 transmit_3dh1
+0x3858 transmit_dh1
+0x385a transmit_dh5
+0x385d transmit_dmh
+0x386d transmit_edr3m
+0x3871 transmit_edr_sync_end
+0x3873 transmit_noedr
+0x387d transmit_long
+0x387e transmit_stuff
+0x3882 transmit_stuff_loop
+0x3885 transmit_end
+0x388e transmit_loopback
+0x3891 transmit_loopback_short
+0x3897 transmit_loopback_long
+0x389c transmit_loopback_cont
+0x389d transmit_loopback_loop
+0x38a3 transmit_loopback_end
+0x38a7 apply_switch_clke
+0x38ad apply_switch_nozero
+0x38b0 apply_switch_loop
+0x38b4 apply_switch_bt
+0x38b5 apply_switch_wait_loop
+0x38bc calc_slot_offset
+0x38c7 calc_bt_portion
+0x38c9 calc_slot_offset_loop
+0x38cb calc_skip_bt
+0x38d1 calc_clke_offset
+0x38dd calc_clke_pos
+0x38e1 calc_clke
+0x38e5 calc_clke2
+0x38ed calc_clke_pos2
+0x38ef calc_clke_pos_adj
+0x38f1 calc_radio_freq
+0x38fb freq_not_connection
+0x38fc do_hop_mod_now
+0x3904 odd_half
+0x3906 freq_result
+0x390a afh_process_0
+0x3918 afh_process_con
+0x3925 afh_process_1
+0x3931 afh_process_end
+0x3934 afh_same_channel
+0x3937 afh_clear
+0x393c afh_process_freq_map
+0x3944 process_freq_3
+0x3949 process_freq_1
+0x394d process_freq_0
+0x3956 process_freq_2
+0x3960 rx_radio_freq
+0x3966 rx_radio_freq_now
+0x3967 tx_radio_freq
+0x396d tx_radio_freq_now
+0x396e fetch_giac
+0x3972 fetch_page_bt_adr
+0x3979 fetch_self_bt_adr
+0x3982 fetch_extm_bt_adr
+0x398b fetch_diac
+0x398e fetch_diac_do
+0x3992 shutdown_radio
+0x399c shutdown_radio_select
+0x39a1 shutdown_radio_0db
+0x39a3 shutdown_radio0
+0x39ae shutdown_radio_3db
+0x39ae shutdown_radio_pair
+0x39b1 set_sync_on
+0x39b9 set_freq_rx
+0x39bf rf_rx_enable
+0x39c9 set_freq_tx
+0x39d0 txon
+0x39dc txon_power_select
+0x39e1 set_tx_power_0db
+0x39e5 set_tx_power_3db
+0x39e9 set_tx_power_5db
+0x39ed set_tx_power_f3db
+0x39f1 set_tx_power_f5db
+0x39f5 txon_common
+0x39fc initialize_radio
+0x39fe initialize_radio_wait
+0x3a02 initialize_radio_loop
+0x3a08 initialize_radio_cont
+0x3a13 rf_write_freq
+0x3a2b do_rccal
+0x3a37 do_rccal_loop
+0x3a3a do_rccal_end
+0x3a3f set_rccal
+0x3a50 save_rssi
+0x3a5f switchto_dpllclk
+0x3a7b xtal_fast_wake
+0x3a7d init_lpm_ctrl
+0x3a7f start_receiver
+0x3a86 prep_crypt
+0x3a95 wait_access_end
+0x3a9d wait_access_mhalfbnd
+0x3a9e wait_access_mhalfbnd_correlate
+0x3aa3 wait_access_clkn_rt
+0x3aab wait_access_forever
+0x3ab4 reserve_slot
+0x3abd ahead_window
+0x3acd setup_clk
+0x3ad1 skip_setup_clke
+0x3ad3 setup_clkn
+0x3ad5 skip_setup_clkn
+0x3ad6 setup_clknbt
+0x3ad9 setup_complete
+0x3ae3 setup_clk11
+0x3ae6 rf_setup_time
+0x3aea rf_setup_time_slave_slot
+0x3aec rf_setup_time_master_slot
+0x3aee start_transmitter
+0x3af4 start_tx_native
+0x3afa start_rx_native
+0x3aff start_tx_external
+0x3b05 send_access_word
+0x3b0d scan_mode_whiten
+0x3b11 get_free_amaddr
+0x3b17 get_free_amaddr_cont
+0x3b1a get_clk
+0x3b1e get_clkbt
+0x3b22 supervision_update
+0x3b2c supervision_flush
+0x3b31 assert
+0x3b34 loop
+0x3b35 sleep
+0x3b38 sleep_loop
+0x3b3c init_param
+0x3b64 init_rf_param
+0x3bab lpmstate
+0x3bb6 lpmwake
+0x3bc7 lpm_load_context
+0x3bd7 lpm_save_context
+0x3be2 lpo_calibration
+0x3be8 lpo_cal_inited
+0x3bed lpm_adjust_clk
+0x3bfe lpm_adjust_positive
+0x3c01 lpm_clear_counter
+0x3c04 lpm_hibernate
+0x3c0b lpm_hibernate_normal
+0x3c11 lpm_sleep
+0x3c24 lpm_enter_sleep
+0x3c29 lpm_recover_clk
+0x3c33 lpm_recover_xtal
+0x3c35 lpm_recover_timeout
+0x3c53 lpm_dispatch
+0x3c5e lpm_dispatch_next
+0x3c6a lpm_dispatch_next2
+0x3c7f lpm_dispatch_sleep
+0x3c80 lpm_dispatch_lpo
+0x3c8a lpm_dispatch_unconn
+0x3c93 lpm_unconn_nossp
+0x3c99 lpm_unconn_cont
+0x3c9b lpm_sleep_btclk
+0x3ca0 lpm_set_mult
+0x3cb0 lpm_mult_wait_timeout
+0x3cb7 lpm_match
+0x3cbc lpm_not_match
+0x3cc3 lpm_lost
+0x3ccb lpm_mult_short
+0x3ccf lpm_mult_long
+0x3cd2 lpm_cal_xtal_startup
+0x3ceb lpm_write_config
+0x3cf4 lpm_write_ctrl
+0x3cf6 lpm_write_ctrl2
+0x3cf7 lpm_write
+0x3cfc lpm_write_gpio_wakeup
+0x3d06 lpm_get_wake_lock
+0x3d0a lpm_put_wake_lock
+0x3d0e lpm_check_wake_lock
+0x3d2c lpm_uart_wake_lock
+0x3d31 lpm_check_wake_lock_nothci
+0x3d33 lpm_check_wake_lock_end
+0x3d39 lpm_shut_down
+0x3d3e lpm_disable_exen_output
+0x3d42 check_bt_disabled
+0x3d45 check_ble_disabled
+0x3d48 check_module_disabled
+0x3d4b app_init
+0x3d55 app_lpm_init
+0x3d5f app_lpm_init0
+0x3d60 app_process_idle
+0x3d65 app_process_bt
+0x3d67 app_process_ble
+0x3d69 app_process_bb_event
+0x3d71 app_discard_event
+0x3d73 app_event_normal_process
+0x3d88 app_evt_bt_conn
+0x3d8f app_event_switch_success
+0x3d91 app_event_switch_fail_master
+0x3d9b app_process_bb_event_priority
+0x3d9d app_check_wake_lock
+0x3d9f app_will_enter_lpm
+0x3da1 app_event_linkkey_generate
+0x3da5 app_event_reconn_start
+0x3dac app_evt_setup_complete
+0x3db3 app_evt_hid_handshake
+0x3db7 app_event_enter_sniff
+0x3dbe app_event_exit_sniff
+0x3dc2 app_le_event_bb_connected
+0x3dc6 app_le_event_bb_disconn
+0x3dcb app_bb_event_hid_connected
+0x3dcf app_evt_button_long_pressed
+0x3dd3 app_event_ml2cap_conn_refused
+0x3dd7 app_evt_timer
+0x3dda app_evt_100ms_loop
+0x3de5 app_unsniff_delay_timer
+0x3ded app_discovery_timer
+0x3df6 app_bb_event_reconn_failed
+0x3df7 app_clear_reconnect_flag
+0x3dfb app_bb_event_bb_disconn
+0x3e00 app_bb_event_bb_reconn_disconn
+0x3e0a app_bb_hibernate
+0x3e0c app_disconn_reason_clear
+0x3e0f app_disconn_reason_flag_clear
+0x3e12 app_disconn_reason_collect_bt
+0x3e17 app_disconn_reason_collect_ble
+0x3e1d app_check_sniff
+0x3e20 app_initflag_store
+0x3e21 app_flag_store
+0x3e28 app_initflag_check
+0x3e32 app_start_auto_sniff
+0x3e35 app_get_lpm_wake_lock
+0x3e37 app_put_lpm_wake_lock
+0x3e39 app_lpm_wake_auto_lock
+0x3e3b app_lpm_wake_auto_lock_timer
+0x3e41 app_l2cap_flow_control_enable
+0x3e43 app_l2cap_flow_control_disable
+0x3e45 app_bt_set_pincode
+0x3e47 app_bt_role_switch
+0x3e49 app_bt_start_reconnect
+0x3e50 app_bt_reconnect_cancel
+0x3e52 app_bt_disconnect
+0x3e54 app_bt_start_discovery_short
+0x3e56 app_bt_start_discovery_led_blink
+0x3e57 app_bt_start_discovery
+0x3e59 app_bt_stop_discovery
+0x3e5d app_ble_start_direct_adv
+0x3e5f app_ble_stop_direct_adv
+0x3e61 app_ble_stop_adv
+0x3e63 app_ble_start_adv
+0x3e65 app_ble_start_scan
+0x3e67 app_ble_stop_scan
+0x3e69 app_ble_start_conn
+0x3e6b app_ble_disconnect
+0x3e6d app_ble_start_write
+0x3e6f app_led_start_blink
+0x3e71 app_led_on
+0x3e73 app_led_off
+0x3e75 app_enter_hibernate
+0x3e77 app_bt_sniff_exit
+0x3e79 app_bt_enter_sniff
+0x3e7b app_ble_store_reconn_info
+0x3e7d app_bt_store_reconn_info
+0x3e7f app_lpm_mult_enable
+0x3e81 app_lpm_mult_disable
+0x3e83 hci_rx_h4
+0x3e87 hci_rx_h4_1
+0x3e8a hci_h4_parse_packet
+0x3e95 hci_h4_parse_packet_wait_len
+0x3e9c hci_h4_parse_packet_wait
+0x3ea3 h4_rx_discard_packet
+0x3eac h4_get_rx_payload_len
+0x3eb1 h4_get_rx_payload_len_acl
+0x3eb3 h4_get_tx_ptr
+0x3eb7 h4_send_packet_event
+0x3eb9 h4_send_packet_acl
+0x3eba h4_send_packet
+0x3eca h4_send_acl_trigger_clear
+0x3ecd hci_init
+0x3ed4 hci_lpm_init
+0x3edd hci_reinit
+0x3ee4 hci_init_common
+0x3eed hci_sel_init
+0x3ef4 hci_rx_packet
+0x3efe hci_rx_packet_cont
+0x3f01 uart_send_byte
+0x3f06 process_hci_cmd
+0x3f0c process_hci_cmd_cont
+0x3f15 phci_grp_vendor_specific
+0x3f23 phci_grp_vendor_enter_lpm
+0x3f26 hci_enter_lpm
+0x3f29 hci_exit_lpm
+0x3f2d phci_grp_vendor_chipid
+0x3f32 phci_grp_vendor_baud
+0x3f36 phci_grp_vendor_patch
+0x3f40 phci_grp_vendor_patch_loop
+0x3f49 phci_grp_vendor_done
+0x3f4c phci_grp_vendor_done_loop
+0x3f58 phci_grp_vendor_patch_bad
+0x3f5a phci_grp_vendor_bdaddr
+0x3f5d phci_grp_vendor_mem
+0x3f65 phci_grp_vendor_eep
+0x3f70 hci_normal_reply
+0x3f73 hci_command_complete
+0x3f79 hci_send_event
+0x3f80 hci_send_event_raw
+0x3f82 hci_send_packet
+0x3f83 hci_send_commu_ready_event
+0x3f89 hci_get_cmd_complete_ptr
+0x3f8b hci_get_payload_ptr
+0x3f8d hci_get_packet_ptr
+0x3f8e hci_get_tx_ptr
+0x3f8f calc_tx_crc16
+0x3f91 crcloop
+0x3f9b cmd_exit
+0x3f9d cmd_check_plap
+0x3fa1 cmd_pair
+0x3fa6 cmd_pair_passive
+0x3fae cmd_in_sniff
+0x3fbd cmd_exit_sniff
+0x3fbf hci_idle_dispatch
+0x3fc6 uart_wake_up
+0x3fca hid_rx_process
+0x3fd7 hid_rx_process_hid_control
+0x3fdb hid_rx_process_virtual_cable_unplug
+0x3fe2 hid_rx_process_suspend
+0x3fe3 hid_rx_process_set_report
+0x3feb hid_rx_process_handshake
+0x3ff5 hid_handshake_event
+0x3ff7 hid_rx_process_data
+0x3ffa hid_rx_process_data_hid_kb
+0x4005 hid_malloc_tx_buff
+0x400c kb_init
+0x4021 kb_check_reconn_target
+0x4024 kb_3_check_reconn_target
+0x4027 kb_init_environment
+0x4032 kb_load_eeprom_param
+0x4034 kb_init_common
+0x4055 kb_led_int
+0x4058 kb_led_cap_init
+0x405c kb_led_num_init
+0x4060 kb_led_scl_init
+0x4064 kb_led_cap_delay_timer
+0x4069 kb_led_capslock
+0x4077 kb_enble_mult_timer
+0x407d kb_auto_disable_mult
+0x4080 kb_led_cap_status
+0x4082 kb_send_process
+0x4097 kb_debug_send_keydata
+0x40aa fn_test
+0x40ac bt_send_kb_data_by_report0
+0x40bb fill_kb_send_data
+0x40be store_key
+0x40c3 not_key_status
+0x40c4 store_key_next
+0x40c7 bt_send_kb_data_by_report1
+0x40d6 fill_kb_send_report1_data
+0x40e0 init_kb_no_data_timer
+0x40e3 kb_check_no_data_timer
+0x40ea kb_disconnect
+0x40f1 bt_send_kb_data_by_report0_ptr
+0x40f8 bt_send_kb_data_by_report1_ptr
+0x40ff android_search_m_key_releas
+0x4109 ios_screenshot
+0x410d android_search_m_key
+0x4119 kb_pincode
+0x4128 kb_pincode_rtn
+0x412a kb_pincode_bksp
+0x4134 kb_pincode_data
+0x413d kb_pincode_0
+0x4143 kb_send_pin
+0x414f kb_kscan_check_if_empty
+0x4153 kb_kscan_check_ghost
+0x4159 kb_kscan_process_event
+0x416b kb_kscan_check_report_data
+0x416f kb_kscan_store_a_key_data
+0x4179 kb_kscan_check_nextevent
+0x4180 kb_kscan_prepare_send
+0x4182 kb_kscan_release_a_key_data
+0x4187 kb_kscan_find_same_key_data
+0x418c kb_kscan_check_nextevent2
+0x4191 kb_kscan_read_statekey
+0x4196 kb_clear_keys
+0x419a kb_clean_kscan_fifo
+0x41a1 kb_process_idle
+0x41a3 kb_process
+0x41ac kb_ui_check_paring_button
+0x41bb check_bb_reconn_cancel
+0x41bf kb_read_gpio
+0x41dd kb_pairing_button_check
+0x41e6 kb_process_bb_event
+0x41f4 kb_bb_event_timer
+0x41f7 kb_bb_event_100ms_loop
+0x4201 kb_bb_event_reconn_failed
+0x420c kb_bb_disconnected
+0x4214 kb_event_light_state_pairing
+0x4217 kb_event_light_state_hibernate
+0x421a kb_bb_discon_clear_stack
+0x421d kb_check_hid_handshake_timer
+0x4223 kb_bb_event_discovery_btn
+0x422a led_cap_darking
+0x422d kb_3_0_bb_event_discovery_btn
+0x423a kb_stop_discovery
+0x423e kb_start_discovery
+0x4246 kb_discovery_timeout_sleep
+0x4247 kb_process_pincode
+0x424b kb_before_hibernate
+0x4251 kb_before_hibernate_wait
+0x4254 kb_before_hibernate_cont
+0x425b kb_wake_common
+0x4268 kb_process_lpm_before
+0x426d kb_hid_connected
+0x4271 kb_bt_hid_handshake
+0x427d store_current_status
+0x4284 read_current_status
+0x4291 kb_kscan_release_foundkey
+0x4299 kb_recover_kb_down_data
+0x429c kb_kscan_fn
+0x42a1 kb_kscan_fn_loop
+0x42b0 kb_get_fn
+0x42b3 select_system_led_timer
+0x42b9 kb_current_status_regroup
+0x42bd kb_clear_fn_lock_flag
+0x42c0 kb_kscan_check
+0x42ca kb_kscan_no_data
+0x42cc kb_down_data
+0x42cf kb_clear_data
+0x42d4 kb_kscan_read_event
+0x42ea l2cap_init
+0x42eb l2cap_init_work
+0x42ef l2cap_init_wake
+0x42fa process_rx_l2cap_pkt
+0x4307 l2cap_rx_multiplexing
+0x430d l2cap_rx_multiplexing0
+0x4312 l2cap_check_map
+0x431f set_pdata_0
+0x4321 l2cap_call_proc_signal
+0x4323 l2cap_call_proc_signal0
+0x432d l2cap_call_proc_sigal_pending
+0x433c l2cap_sdp_conn_succ
+0x4348 l2cap_reset_sdp_map
+0x4359 check_l2cap_map
+0x435b check_l2cap_map_loop
+0x4360 check_l2cap_map_used
+0x4364 check_l2cap_map_used2
+0x4366 l2cap_call_proc_sdp
+0x436e ml2cap_call_proc_sdp
+0x4372 l2cap_call_proc_sdp_common
+0x4379 l2cap_call_proc_hid
+0x437b l2cap_call_proc_rfcomm
+0x4382 l2cap_call_proc_no_reply
+0x4383 l2cap_rx_reset_state
+0x4388 l2cap_process_signal_pkt
+0x4390 l2cap_process_signal_pkt_loop
+0x4398 l2cap_process_one_signal
+0x43a7 l2cap_process_one_signal_rtn
+0x43a8 l2cap_proc_signal_info_req
+0x43b3 l2cap_proc_signal_info_req_reply
+0x43b6 l2cap_proc_signal_info_req_ext
+0x43bc l2cap_proc_signal_info_req_fix
+0x43c1 l2cap_proc_signal_info_req_common
+0x43c3 ml2cap_proc_signal_info_req
+0x43d2 l2cap_proc_signal_cmd_reject
+0x43d9 l2cap_proc_signal_cmd_reject_rtn
+0x43da l2cap_proc_signal_connect_req
+0x43ee l2cap_proc_signal_connect_req_sdp
+0x43f8 store_l2cap_req_param
+0x4404 restore_l2cap_req_param
+0x4410 l2cap_proc_signal_connect_req_rfcomm
+0x441c l2cap_proc_signal_connect_req_hid_ctrl
+0x4427 l2cap_proc_signal_connect_req_hid_int
+0x4433 send_connection_pending
+0x4437 send_connection_sdp_res
+0x443b send_connection_res
+0x443d send_connection_res0
+0x444f connect_suc
+0x4454 connect_pending
+0x4459 already_connected
+0x445b connect_req_update_byte_counts
+0x445f l2cap_proc_signal_connect_req_rtn
+0x4460 l2cap_proc_signal_connect_rsp
+0x4479 l2cap_proc_signal_connect_rsp_sdp
+0x447f l2cap_proc_signal_connect_rsp_rfcomm
+0x4485 l2cap_proc_signal_connect_rsp_hid_int
+0x448b l2cap_proc_signal_connect_rsp_hid_ctrl
+0x4491 l2cap_proc_signal_config_req
+0x44a9 l2cap_proc_signal_config_req_sdp
+0x44b3 l2cap_proc_signal_config_req_hid_ctrl
+0x44bd l2cap_proc_signal_config_req_hid_int
+0x44c7 l2cap_proc_signal_config_req_rfcomm
+0x44d0 l2cap_send_config_rsp
+0x44e7 l2cap_send_config_rsp_is_sdp
+0x44e8 l2cap_check_channel_state
+0x44f2 l2cap_send_config_req_sdp
+0x44f9 l2cap_send_config_req_rfcomm
+0x4500 l2cap_send_config_req_hid_ctrl
+0x4507 l2cap_send_config_req_hid_int
+0x450d l2cap_generate_config_req
+0x4526 l2cap_generate_config_req_rfcomm
+0x4528 l2cap_generate_config_req_done
+0x4530 l2cap_proc_signal_config_req_rtn
+0x4531 l2cap_proc_signal_config_rsp
+0x454a l2cap_proc_signal_config_rsp_sdp
+0x454e l2cap_proc_signal_config_rsp_rfcomm
+0x4552 l2cap_proc_signal_config_rsp_hid_ctrl
+0x4556 l2cap_proc_signal_config_rsp_hid_int
+0x455b l2cap_proc_signal_disconnect_req
+0x4577 l2cap_proc_signal_disconnect_req_hid_ctrl
+0x457d l2cap_proc_signal_disconnect_req_hid_int
+0x4583 l2cap_proc_signal_disconnect_req_sdp
+0x4589 l2cap_disconnect_hid_control_now
+0x458b l2cap_disconnect_hid_interrupt_now
+0x458f l2cap_disconnect_sdp_now
+0x4593 l2cap_proc_signal_disconnect_req_rfcomm
+0x4599 l2cap_disconnect_rfcomm_now
+0x459b l2cap_send_disconnect_rsp_pkt
+0x45a8 l2cap_proc_signal_disconnect_req_err_rtn
+0x45aa l2cap_proc_signal_disconnect_req_rtn
+0x45ac l2cap_proc_signal_disconnect_rsp
+0x45c7 l2cap_proc_signal_disconnect_rsp_sdp
+0x45cd l2cap_proc_signal_disconnect_rsp_rfcomm
+0x45d3 l2cap_proc_signal_disconnect_rsp_hid_ctrl
+0x45d9 l2cap_proc_signal_disconnect_rsp_hid_int
+0x45df l2cap_proc_signal_disconnect_rsp_rtn
+0x45e1 l2cap_proc_signal_disconnect_rsp_err_rtn
+0x45e2 l2cap_proc_signal_echo_req
+0x45f2 l2cap_proc_signal_echo_rsp
+0x45f3 l2cap_proc_signal_info_rsp
+0x45f4 l2cap_reject_command
+0x4601 l2cap_reset_rfcomm_channel_state
+0x4606 l2cap_reset_sdp_channel_state
+0x460b l2cap_reset_hid_ctrl_state
+0x4611 l2cap_reset_hid_int_state
+0x4617 l2cap_reset_hid_disconnected
+0x4619 l2cap_disconnect_interrupt_req
+0x4623 l2cap_disconnect_control_req
+0x462c l2cap_generate_disconnect_req
+0x463a ml2cap_send_signal_connect_req
+0x464a ml2cap_send_signal_config_req
+0x4660 ml2cap_send_signal_disconn_req
+0x4673 ml2cap_send_signal
+0x467c msdp_send_req_done
+0x4684 ml2cap_rx_multiplexing
+0x468f ml2cap_call_proc_signal
+0x4699 ml2cap_proc_one_comm_loop
+0x469f ml2cap_proc_one_comm
+0x46aa ml2cap_proc_signal_connect_req
+0x46ad ml2cap_proc_signal_cmd_reject
+0x46b3 mvptr
+0x46b7 ml2cap_proc_signal_connect_rsp
+0x46c5 ml2cap_proc_signal_connect_refused_result
+0x46c7 ml2cap_proc_signal_connect_rsp_mnosucc
+0x46c9 ml2cap_proc_signal_connect_rsp_sucessful
+0x46d9 ml2cap_proc_signal_connect_rsp_sdp
+0x46df ml2cap_proc_signal_connect_rsp_rfcomm
+0x46e5 ml2cap_proc_signal_connect_rsp_hid_ctrl
+0x46eb ml2cap_proc_signal_connect_rsp_hid_int
+0x46f0 mnosucc1
+0x46f1 mnosucc
+0x46f4 ml2cap_proc_signal_config_rsp
+0x470f ml2cap_proc_signal_config_rsp_sdp
+0x4713 ml2cap_proc_signal_config_rsp_rfcomm
+0x4717 ml2cap_proc_signal_config_rsp_hid_ctrl
+0x471b ml2cap_proc_signal_config_rsp_hid_int
+0x4720 mcfrsdone
+0x4721 mcrsdone1
+0x4722 mloop2
+0x4726 mcrsdone
+0x4727 ml2cap_proc_signal_config_req
+0x4747 ml2cap_proc_signal_config_req_sdp
+0x4755 ml2cap_proc_signal_config_req_sdp_nsndreq
+0x4758 ml2cap_proc_signal_config_req_rfcomm
+0x475e ml2cap_proc_signal_config_req_hid_ctrl
+0x4764 ml2cap_proc_signal_config_req_hid_int
+0x4769 mcfgrq_done
+0x4774 mloop1
+0x477a mcrqdone
+0x477b ml2cap_proc_signal_disconn_req
+0x4795 ml2cap_proc_signal_disconn_sdp
+0x479a ml2cap_proc_signal_disconn_hid_ctrl
+0x479c ml2cap_proc_signal_disconn_hid_int
+0x479e mclsrfc
+0x47a0 mclssdp
+0x47ae ml2cap_proc_signal_disconn_rsp
+0x47c3 ml2cap_proc_signal_disconn_rsp_sdp
+0x47c6 mdisdone
+0x47ca ml2cap_proc_send_reject
+0x47d6 l2cap_get_req_id
+0x47da l2cap_get_req_id_ok
+0x47dc l2cap_malloc
+0x47e4 l2cap_malloc_loop
+0x47ec l2cap_malloc_next
+0x47f2 l2cap_malloc_rtn
+0x47f5 l2cap_malloc_fifo_out
+0x47fb l2cap_malloc_free
+0x4803 l2cap_malloc_discard
+0x480e l2cap_malloc_is_fifo_full
+0x4812 l2cap_malloc_is_fifo_nearly_full
+0x4816 l2cap_malloc_is_fifo_empty
+0x481a l2cap_malloc_fifo_get_first_ptr
+0x481d l2cap_malloc_free_loop
+0x4821 l2cap_malloc_get_full_map
+0x4826 l2cap_malloc_get_full_map_loop
+0x482c l2cap_malloc_into_fifo
+0x483a l2cap_malloc_into_fifo_no_push
+0x483d l2cap_malloc_into_fifo_loop
+0x4845 l2cap_malloc_enough
+0x484b l2cap_malloc_enough_loop
+0x4856 l2cap_malloc_enough_end
+0x485c l2cap_malloc_enough_rtn
+0x485e l2cap_malloc_signal_channel
+0x4868 l2cap_get_signal_tx_buff
+0x486a l2cap_get_signal_tx_payload
+0x486c l2cap_malloc_sdp_channel
+0x4876 l2cap_get_sdp_tx_buff
+0x4878 l2cap_get_sdp_tx_payload
+0x487a l2cap_malloc_rfcomm_channel
+0x4889 l2cap_get_rfcomm_tx_buff
+0x488b l2cap_util_pdata_to_contw
+0x488e l2cap_lpm_save_calc_len
+0x4893 l2cap_lpm_save_calc_len_loop
+0x489f l2cap_lpm_save_calc_len_end
+0x48a1 l2cap_lpm_get_wake_lock
+0x48a3 l2cap_lpm_put_wake_lock
+0x48a5 l2cap_lpm_save_txbuf
+0x48b1 l2cap_lpm_save_txbuf_loop
+0x48ba l2cap_lpm_save_txbuf_nempty
+0x48c3 l2cap_lpm_load_txbuf
+0x48cb l2cap_lpm_load_txbuf_loop
+0x48da le_secure_connection_enable
+0x48de le_secure_connection_disable
+0x48e2 le_init_conn
+0x48f5 le_init_master
+0x4902 le_init_slave
+0x4911 le_dispatch
+0x4915 le_conn_dispatch
+0x491c le_master_dispatch
+0x492f le_master_disconn
+0x4932 le_slave_dispatch
+0x4940 le_slave_match
+0x4949 le_slave_transmit_last
+0x494c le_slave_cont
+0x494f le_slave_unsync
+0x4955 le_slave_more_data
+0x495b le_disconnect
+0x495d le_disconnect0
+0x4962 le_clear_connection_info
+0x4968 le_got_first_packet
+0x4976 le_enable
+0x497d le_disable
+0x4985 le_prep
+0x498e lerx_setfreq
+0x4993 letx_setfreq
+0x4994 letx_setfreq0
+0x4996 le_setfreq
+0x49a4 le_ctf_normal
+0x49a7 le_ctf_low
+0x49aa le_ctf_test
+0x49ad le_sca_map
+0x49bd le_adv_access
+0x49c4 le_setup
+0x49ce le_setup_master
+0x49d4 le_next_adv_channel
+0x49dc le_context_nexthop
+0x49ed le_nexthop_nowrap
+0x49ef le_calc_channel_map
+0x49f4 le_count_channels_loop
+0x49f6 le_count_channels_notused
+0x49fb le_map_channel
+0x4a02 le_map_channel_next
+0x4a09 le_map_channel_cont
+0x4a0b le_map_channel_loop
+0x4a0e le_map_channel_skip
+0x4a13 le_map_channel_end
+0x4a16 le_wait_tx
+0x4a19 le_wait_master
+0x4a1c le_receive_adv
+0x4a20 le_receive_slave
+0x4a26 le_receive_packet
+0x4a27 le_receive_rxon
+0x4a33 le_receive_on_attempt
+0x4a3a le_receive_skip
+0x4a47 lerx_loop
+0x4a4b lerx_nopayload
+0x4a5a le_transmit_receive_sifs
+0x4a63 le_transmit_norx
+0x4a65 le_transmit
+0x4a6d le_transmit0
+0x4a80 letr_loop
+0x4a83 letr_nopayload
+0x4a8a le_send_adv_ind
+0x4a9b le_send_adv_direct_ind
+0x4aab le_send_adv_transmit
+0x4ab3 le_send_scan_request
+0x4ac5 le_send_scan_response
+0x4ad4 le_connect_request
+0x4adf le_con_req_hop_retry
+0x4b1e le_init_adv
+0x4b22 le_update_param
+0x4b2d le_update_param_common
+0x4b43 le_update_channel_map
+0x4b51 le_acknowledge
+0x4b61 le_ack_unenc
+0x4b66 le_check_wak
+0x4b79 le_set_enc
+0x4b7d le_clear_enc
+0x4b89 le_wait_adv
+0x4b91 le_scan
+0x4bb4 le_create_conn
+0x4bc9 le_scan_check_sender_addr_type
+0x4bce le_xtype_fifo_count
+0x4bd0 le_xtype_fifo_is_empty
+0x4bd2 le_xtype_fifo_is_full
+0x4bd4 le_xtype_fifo_is_near_full
+0x4bd6 le_xtype_fifo_in
+0x4bd8 le_prepare_tx
+0x4bde le_prepare_tx_1
+0x4be2 le_prepare_tx_shutter
+0x4be9 le_send_empty_shutter
+0x4bed le_tx_4
+0x4bf0 in_le_tx_4
+0x4bf1 le_prepare_tx_cmd
+0x4bfb le_prepare_tx_ll
+0x4c0d le_prepare_l2cap
+0x4c18 le_prepare_smp0
+0x4c26 le_prepare_att
+0x4c4b le_send_empty_le_data_pre
+0x4c4d le_send_empty_le_data
+0x4c54 le_send_connection_update_req
+0x4c56 le_send_channel_map_req
+0x4c58 le_send_terminate_ind
+0x4c5a le_send_enc_req
+0x4c6b le_send_enc_rsp
+0x4c7e le_ltk_lost
+0x4c84 le_send_start_enc_req
+0x4c86 le_send_start_enc_rsp
+0x4c8f le_send_start_enc_rsp_end
+0x4c90 le_send_start_enc_rsp_common
+0x4c92 le_send_start_enc_rsp_shutter
+0x4c97 le_send_start_enc_rsp0
+0x4c9c le_send_unknown_rsp
+0x4ca0 le_send_feature
+0x4ca4 le_send_ping_response
+0x4ca6 le_send_version_ind
+0x4caa le_send_reject_ind
+0x4cae le_send_conn_param_req
+0x4cbb le_send_smp_pairing_request
+0x4cc3 le_send_smp_pairing_response
+0x4ccd le_send_smp_pairing_response_common
+0x4cd1 le_parse_smp_pairing_request_check_irk
+0x4cda le_send_smp_pairing_confirm
+0x4ce1 le_send_smp_pairing_confirm_sc
+0x4ce8 le_send_smp_pairing_random
+0x4ceb le_send_smp_mrandom
+0x4ced le_send_smp_pairing_failed
+0x4cf2 le_send_smp_encryption_information
+0x4d01 le_send_smp_encryption_information_shutter
+0x4d10 le_send_smp_master_identification
+0x4d17 le_send_smp_master_identification_only
+0x4d19 le_send_smp_master_identification_common
+0x4d22 le_send_smp_master_identification_shutter
+0x4d27 le_send_smp_identity_information
+0x4d2d le_send_smp_identity_address_information
+0x4d32 le_send_smp_signing_information
+0x4d35 le_send_smp_security_request
+0x4d39 le_send_smp_pairing_public_key
+0x4d4e le_send_public_key_continue
+0x4d58 le_send_smp_publickey_continue_common
+0x4d5e le_send_public_key_continue2
+0x4d64 le_send_smp_pairing_dhkey_check
+0x4d69 le_send_smp_128
+0x4d6e le_send_att_error_response_notfound
+0x4d6f le_send_att_error_response
+0x4d75 le_send_att_exchange_mtu_req
+0x4d78 le_send_att_find_information_request
+0x4d7d le_send_att_find_information_response
+0x4d81 le_send_att_find_information_res_loop
+0x4d8b le_send_att_find_information_res_cont
+0x4d8e le_send_att_find_information_res_next
+0x4d91 le_send_att_find_information_res_end
+0x4d93 le_send_att_find_by_type_value_request
+0x4d9d le_start_end_handle_check_1
+0x4da4 le_start_end_handle_check_1_fail
+0x4da7 le_send_att_find_by_type_value_response
+0x4db7 le_send_att_find_by_type_value_res_primary
+0x4dbc le_send_att_find_primary_search_loop
+0x4dcc le_send_att_find_primary_search_loop1
+0x4dd0 le_send_att_error_response_notfound2
+0x4dd3 le_send_att_find_primary_search_end_start_handle_found
+0x4ddb le_send_att_find_primary_search_end_ending_handle_found
+0x4de1 le_send_att_find_primary_search_end
+0x4dec le_send_att_read_by_type_request
+0x4df4 le_send_att_read_by_type_response
+0x4e02 le_send_att_read_by_type_response_loop
+0x4e11 le_send_att_read_by_type_response_next_handle
+0x4e13 le_send_att_read_by_type_response_end
+0x4e15 le_send_att_read_by_type_res_found_next
+0x4e28 le_send_att_read_by_type_write_properties
+0x4e2f le_send_att_read_by_type_write_uuid
+0x4e3d le_send_att_read_by_type_res_not_characteristic
+0x4e3f le_send_att_read_by_type_res_not_char_loop
+0x4e45 le_check_if_name_uuid
+0x4e4d le_send_att_read_by_type_res_not_name
+0x4e4e le_send_att_read_by_type_res_not_char_common
+0x4e56 le_send_att_read_by_type_res_not_char_next
+0x4e58 le_send_att_read_request
+0x4e60 le_send_att_read_response
+0x4e66 le_send_att_read_response_common
+0x4e6e le_send_att_read_response_less
+0x4e71 le_send_att_read_response_error_insufficient_authentication
+0x4e77 le_send_att_read_blob_request
+0x4e7c le_send_att_read_blob_response
+0x4e87 le_send_att_read_blob_response_less
+0x4e8b le_send_att_read_multiple_request
+0x4e92 le_send_att_read_multiple_response
+0x4e98 le_send_att_read_multiple_response_loop
+0x4ea3 le_copy_att_value_loop_3
+0x4eab le_send_att_read_multiple_response_end
+0x4eb0 le_send_att_read_multiple_response_end_1
+0x4eb6 le_send_att_read_multiple_response_fail
+0x4eb8 le_send_att_read_by_group_type_request
+0x4ec0 le_send_att_read_by_group_type_response
+0x4ecd le_send_att_read_by_group_type_response_loop
+0x4edd le_send_att_read_by_group_type_store_write_record
+0x4ee8 le_send_att_read_by_group_type_store_record
+0x4eed le_send_att_read_by_group_type_next_handle
+0x4eef le_send_att_read_by_group_type_last_find
+0x4ef1 le_send_att_read_by_group_type_end0
+0x4ef4 le_send_att_read_by_group_type_end1
+0x4ef8 le_send_att_read_by_group_type_end_common
+0x4efb le_att_next_handle
+0x4eff le_att_check_handle_end
+0x4f03 le_att_same_type
+0x4f05 le_att_check_same_common
+0x4f0b le_att_same_uuid
+0x4f0e le_store_att_record
+0x4f13 le_send_auto_len_by_mem
+0x4f15 le_write_att_record
+0x4f1a le_write_att_record_common
+0x4f1e le_send_att_write_request
+0x4f25 le_send_att_write_response
+0x4f27 le_send_att_prepare_write_request
+0x4f29 le_send_att_continue
+0x4f2e le_send_att_notify_continue
+0x4f30 le_send_att_prepare_write_response_continue
+0x4f46 le_send_att_prepare_write_response
+0x4f59 le_send_not_fill_l2cap_len
+0x4f5e le_send_att_insert_continue
+0x4f62 le_send_att_insert_cont_next
+0x4f66 le_send_att_execute_write_request
+0x4f68 le_send_att_execute_write_response
+0x4f6a le_att_check_notification_enable
+0x4f77 le_send_att_handle_value_notification
+0x4f79 le_send_att_handle_value_indication
+0x4f7b le_send_att_handle_value_confirmation
+0x4f7d le_send_att_write_command
+0x4f7f le_send_att_signed_write_command
+0x4f81 le_send_autolen
+0x4f87 le_send_empty
+0x4f89 le_send_packet
+0x4f90 le_send_non_l2cap
+0x4f92 le_send_non_l2cap1
+0x4f93 le_send_non_l2cap2
+0x4fa0 le_send_no_txlen
+0x4fa5 le_parse
+0x4fb3 le_parse0
+0x4fcb le_parse_l2cap
+0x4fd4 le_parse_continue_att
+0x4fdb le_parse_l2cap_continue_common
+0x4fe6 le_parse_l2cap_continue_write_command
+0x4fea le_parse_l2cap_continue_write_request
+0x4fee le_parse_l2cap_continue_prepare_write_request
+0x4ffb le_parse_smp
+0x500d le_parse_att
+0x501f le_parse_connection_update_req
+0x502b le_parse_channel_map_req
+0x5033 le_parse_terminate_ind
+0x5036 le_parse_terminate_ind_common
+0x5039 le_parse_enc_req
+0x504a le_parse_enc_rsp
+0x504f le_parse_start_enc_req
+0x5054 le_parse_start_enc_rsp
+0x5059 le_parse_unknown_rsp
+0x505a le_parse_feature_req
+0x505c le_parse_feature_rsp
+0x505d le_parse_pause_enc_req
+0x5062 le_parse_pause_enc_rsp
+0x5063 le_parse_ping_req
+0x5065 le_parse_version_ind
+0x5068 le_parse_reject_ind
+0x5069 le_parse_smp_pairing_request
+0x5078 le_set_tk_0
+0x507b le_parse_smp_pairing_request_shutter
+0x507d le_genernate_tk
+0x5086 le_check_master_support_secure_connect
+0x508b le_parse_smp_pairing_response
+0x5090 le_parse_smp_pairing_confirm
+0x509a le_parse_smp_pairing_confirm_secure_passkey
+0x50a0 le_parse_smp_pairing_random
+0x50a6 le_pairing_failed
+0x50a8 le_parse_smp_pairing_failed
+0x50ab le_parse_smp_pairing_random_sc
+0x50b6 le_parse_smp_pairing_random_sc_passkey
+0x50c0 le_parse_smp_pairing_random_success
+0x50c9 le_parse_smp_public_key
+0x50d0 le_parse_smp_dhkey_check
+0x50d5 le_parse_smp_encryption_information
+0x50d7 le_parse_smp_master_identification
+0x50d8 le_parse_smp_identity_information
+0x50e0 le_parse_smp_identity_address_information
+0x50e3 le_parse_smp_signing_information
+0x50e4 le_parse_smp_security_request
+0x50e5 le_parse_att_exchange_mtu_response
+0x50e8 le_parse_att_exchange_mtu_request
+0x50eb le_parse_att_find_information_request
+0x50ee le_parse_att_find_by_type_value_request
+0x50f8 le_parse_att_read_by_type_request
+0x50fc le_get_search_handle_start_end_common
+0x5101 le_get_search_att_type
+0x5103 le_get_search_common
+0x5105 le_get_search_common2
+0x5109 le_get_search_att_uuid
+0x510c le_parse_att_read_request
+0x5110 le_parse_att_read_blob_request
+0x5114 le_parse_att_read_multiple_request
+0x511a le_parse_att_read_by_group_type_request
+0x511e le_parse_att_write_command
+0x5120 le_parse_att_write_request
+0x5123 le_parse_att_write_request_end
+0x5125 le_check_long_packet_patch
+0x512f le_parse_att_write_common
+0x513c le_parse_att_write_common0
+0x5140 le_parse_att_write_common1
+0x5142 le_parse_att_prepare_write_request
+0x5157 le_parse_att_prepare_write_request0
+0x515b le_parse_att_prepare_write_request1
+0x5169 le_parse_att_prepare_write_request_end
+0x516b le_parse_att_execute_write_request
+0x516d le_writeatt_cb
+0x5170 le_supervision_update
+0x5179 le_supervision_flush
+0x517c le_adv
+0x517d le_adv_loop
+0x5193 le_adv_not_match
+0x5199 le_receive_window_size
+0x51af le_parse_connect_req
+0x51e0 le_init_attlist_search
+0x51ea le_att_handle_inrange
+0x51f3 le_att_handle_blank
+0x51f5 le_att_get_handle_ptr
+0x51f8 le_att_get_handle_ptr2
+0x51fc le_att_get_handle_loop1
+0x5205 le_att_get_handle_ptr_found
+0x5208 le_att_get_short_uuid_ptr
+0x520c le_att_get_short_uuid_loop
+0x5217 le_att_get_handle_info_from_ptr
+0x521a le_att_get_handle_info
+0x521f le_att_get_handle_loop
+0x5228 le_att_unfind_handle
+0x522a le_att_finded_handle
+0x5234 le_modified_name
+0x5238 le_modified_name_att_list
+0x5247 le_name_length_longer_than_att
+0x524a le_modified_name_adv
+0x5257 le_modified_name_adv_and_scan
+0x526a le_modified_name_adv_and_scan_store_data
+0x5270 le_modified_name_adv_and_scan_name_overflow
+0x5272 le_modified_name_adv_loop
+0x527d le_modified_name_adv_loop2
+0x5281 le_modified_name_adv_found_name
+0x5283 memcpy_empty
+0x5287 le_lpm_set_mult
+0x528c le_lpm_set_mult_attempt
+0x529a le_lpm_lost
+0x52a0 le_clean_att_list_handle_enable
+0x52a9 le_secure_connect_sm
+0x52b8 le_sc_passkey_wait_confirm
+0x52c2 le_sc_wait_confirm_gkey
+0x52c7 le_sc_confirm_gkey_ok
+0x52ca le_sc_receive_dhkey
+0x52ce le_dhkey_ready
+0x52d2 le_dhkey_ready_common
+0x52d8 le_dhkey_check_fail
+0x52d9 le_sc_confirm_gkey_ok_passkey
+0x52da le_dhkey_check_ok
+0x52e1 le_sc_send_public_key
+0x52e4 le_sc_ready_send_pairing_confirm
+0x52e6 le_sc_send_public_key_passkey
+0x52e8 le_sc_receive_public_key
+0x52ec le_public_key_ready
+0x52f0 le_sc_wait_send_public_key
+0x52f4 le_public_key_ready_send
+0x52fa le_pairing_public_key_continue
+0x5307 le_parse_continue
+0x530c init_lmp
+0x530d init_lmp_work
+0x531b init_lmp_reinit
+0x531e parse_rx_done
+0x531f parse_lmp
+0x536b reject_unknown_packet
+0x536c reject_lmp_packet
+0x536e parse_lmp_clkoffset_req
+0x5370 parse_enc_key_size_mask_req
+0x5372 parse_lmp_set_afh
+0x537f parse_lmp_escape
+0x5391 reject_unknown_ext_packet
+0x5394 parse_lmpext_chn_classification_req
+0x5397 parse_lmpext_iocap_req
+0x539a parse_lmpext_iocap_res
+0x539c iocap_lmpext_load
+0x53a0 iocap_lmpext_common
+0x53a2 parse_lmpext_accepted
+0x53a7 parse_lmpext_not_accepted
+0x53ac parse_lmpext_accepted_ptt
+0x53b0 parse_lmpext_not_accepted_ptt
+0x53b8 parse_lmpext_pause_encrypt
+0x53bb parse_lmpext_pause_encrypt_slave
+0x53bd parse_lmpext_resume_encrypt
+0x53bf parse_lmpext_features_req
+0x53c1 parse_lmpext_features_res
+0x53c7 parse_lmpext_features_res_not_hci
+0x53cb parse_lmp_accepted
+0x53dd parse_lmp_not_accepted
+0x53eb parse_lmp_accepted_switch
+0x53ee parse_lmp_not_accepted_switch
+0x53f4 parse_lmp_accepted_hostconn
+0x53fa parse_lmp_accepted_hostconn_ctn
+0x53fe parse_lmp_not_accepted_hostconn
+0x5403 parse_lmp_accepted_inrand
+0x540a parse_lmp_accepted_enc_mode
+0x5410 parse_lmp_accepted_enc_keysize
+0x5411 parse_lmp_accepted_start_enc
+0x5419 parse_lmp_accepted_stop_enc
+0x541a parse_lmp_not_accepted_aurand_send_detach
+0x541d parse_lmp_not_accepted_inrand
+0x5423 parse_lmp_inrand_key_missing
+0x5426 parse_lmp_not_accepted_name_req
+0x5427 parse_lmp_not_accepted_simple_pairing_number
+0x542a parse_lmp_not_accepted_dhkey_check
+0x542d parse_lmp_not_accepted_unsniff_req
+0x542f parse_lmp_accepted_unsniff_req
+0x5432 parse_lmp_accepted_sniff_req
+0x543e parse_lmp_not_acdcept_sniff_req
+0x5440 parse_lmp_crypt_key
+0x5443 parse_lmp_setup_complete
+0x5449 parse_lmp_max_slot
+0x544a parse_lmp_max_slot_req
+0x5452 parse_lmp_detach
+0x5454 accept_lmp_msg
+0x5456 parse_lmp_incr_power
+0x5458 parse_lmp_decr_power
+0x545a parse_lmp_version_res
+0x545e parse_lmp_auto_rate
+0x545f parse_lmp_in_rand
+0x546a parse_lmp_inrand_res
+0x546e pop_tid_follow
+0x5472 push_tid_follow
+0x5476 parse_lmp_au_rand_moudle
+0x547b parse_lmp_au_rand
+0x5486 parse_lmp_sres
+0x548f authentication_ok
+0x5493 authentication_ok_common
+0x549d authentication_ok_conn_sm
+0x54a2 parse_lmp_comb_key
+0x54ac parse_lmp_name_res
+0x54bc parse_lmp_name_res_end
+0x54c1 parse_lmp_name_req
+0x54c5 parse_lmp_conn_req
+0x54c6 parse_lmp_timing_accuracy_req
+0x54c8 parse_lmp_features_req
+0x54ca parse_lmp_version_req
+0x54cc parse_lmp_supervision_timeout
+0x54cd parse_lmp_sniff_subrating_req
+0x54db parse_lmpext_packet_type_table_req
+0x54e6 parse_lmp_min_power
+0x54e7 parse_lmp_page_mode_req
+0x54e8 parse_lmp_page_scan_mode_req
+0x54e9 parse_lmp_slot_offset
+0x54ec parse_lmp_sniff_req_check_sniff_para
+0x54f2 parse_lmp_sniff_req
+0x5504 set_big_value_to_attempt
+0x5507 lmp_reject_sniff
+0x5509 parse_lmp_start_encryption_req
+0x550d parse_lmp_stop_encryption_req
+0x550f parse_lmp_switch_req
+0x5514 parse_lmp_switch_req_not_accept
+0x5518 parse_lmp_switch_req_clear_mark
+0x551b parse_lmp_switch_accept
+0x5521 parse_lmp_use_semi_permanend_key
+0x5522 parse_lmp_unsniff_req
+0x5527 parse_lmp_encapsulated_header
+0x5530 parse_lmp_encapsulated_header_master
+0x5533 parse_lmp_encapsulated_header_reject
+0x5535 parse_lmp_accepted_encapsulated_header
+0x5537 parse_lmp_accepted_simple_pairing_number
+0x553a parse_lmp_accepted_simple_pairing_number_common
+0x553e parse_lmp_accepted_simple_pairing_number_ssp_pin
+0x5542 parse_lmp_accepted_simple_pairing_number_passkey
+0x5548 authentication_passkey
+0x5552 authentication_passkey_end
+0x5554 parse_lmp_accepted_dhkey_check
+0x5555 pairing_success
+0x555a parse_lmp_accepted_dhkey_check_common
+0x5562 parse_simple_pairing_confirm
+0x5568 parse_lmp_encapsulated_payload
+0x556c parse_encapsulated_payload_master
+0x5579 parse_lmp_encapsulated_payload_completed
+0x557f parse_lmp_encapsulated_payload_reject
+0x5581 parse_lmp_accepted_encapsulated_payload
+0x5585 parse_lmp_encapsulated_payload_all_accepted
+0x558c parse_lmp_encapsulated_payload_all_accepted_get_passkey
+0x558e parse_lmp_encapsulated_payload_all_accepted_master
+0x558f parse_lmp_simple_pairing_number
+0x5593 parse_lmp_simple_pairing_number_master
+0x559d parse_lmp_simple_pairing_number_master0
+0x559f parse_lmp_simple_pairing_number_reject
+0x55a1 parse_dhkey_check
+0x55a5 parse_dhkey_check_master
+0x55ac number_comparison_successed
+0x55b1 parse_dhkey_check_master0
+0x55b4 parse_lmp_dhkey_check_reject
+0x55b6 number_comparison_mode
+0x55bb comparison_result
+0x55be parse_lmp_clkoffset_res
+0x55bf parse_lmp_encryption_mode_req
+0x55ca parse_lmp_features_res
+0x55cb parse_lmp_features_res_not_hci
+0x55d1 parse_lmp_send_conn
+0x55d3 parse_lmp_test_activate
+0x55d8 parse_lmp_test_control
+0x55dd parse_lmp_test_xor
+0x55f1 parse_lmp_test_control_exit
+0x55f6 parse_lmp_test_control_pattern
+0x55fd parse_lmp_test_control_loopback_nowhite
+0x55fe parse_lmp_test_control_loopback
+0x560a parse_lmp_test_control_pause
+0x5610 lmp_copy_rand
+0x5613 lmp_generate_key
+0x5615 lmp_start_encryption
+0x5618 lmp_accept_inrand
+0x561d lmp_disconnect
+0x5621 send_lmp
+0x5628 send_lmp0
+0x5655 send_lmp_error
+0x5657 send_lmp_escape
+0x5662 send_lmp_accepted
+0x5672 send_create_conn_start_l2cap_timer_sm
+0x5678 send_lmp_accept_sniff_req
+0x5679 send_lmp_not_accepted
+0x5681 send_not_accept_aurand
+0x5686 send_lmpext_accepted
+0x568f send_lmpext_not_accepted
+0x5699 send_lmp_accepted_inrand
+0x569d send_lmp_accepted_enc_mode
+0x56a4 send_lmp_accepted_enc_start
+0x56a6 send_lmp_accepted_enc_exit
+0x56a8 send_lmp_accepted_enc_key
+0x56ab send_lmp_accepted_connection
+0x56b1 send_lmp_accept_dhkey_check
+0x56b2 send_lmpext_features_res
+0x56bd send_lmpext_io_cap_res
+0x56c8 responder_iocap_keyboard_only
+0x56ce responder_iocap_display_yesno
+0x56d4 responder_iocap_no_input_no_output
+0x56da set_ssp_mode_justwork
+0x56dc set_ssp_mode_numeric_comparison
+0x56de set_ssp_mode_passkey
+0x56e0 send_lmp_io_cap_req
+0x56e5 send_lmpext_sniff_subrating_req
+0x56e6 send_lmpext_sniff_subrating_res
+0x56ef send_lmp_name_res
+0x56f7 send_lmp_name_res_offset_ok
+0x56ff send_lmp_timing_accuracy_res
+0x5704 send_lmp_clkoffset_res
+0x570a send_lmp_clkoffset_res_master
+0x570e send_lmp_version_res
+0x5713 send_lmp_features_res
+0x5718 send_lmpext_features_req
+0x5723 send_lmpext_packet_type_table_req
+0x572f ssp_enable
+0x5737 ssp_disable
+0x573f afh_init
+0x5749 afh_open_all_channels
+0x574d afh_reset_map
+0x5754 afh_clear_error_counter
+0x5757 afh_set_send_flag
+0x575b send_lmpext_pause_encryption_req
+0x575f send_lmp_detach
+0x5764 prepare_disconnect
+0x5769 send_lmp_no_payload
+0x576c send_lmp_nopayload_reply
+0x576f send_lmp_encryption_mode_req
+0x5777 send_lmp_superto
+0x577c send_lmp_name_req
+0x5782 send_lmp_test_control
+0x5786 send_lmp_test_control_loop
+0x578b send_lmp_quality_of_service_req
+0x578c send_lmp_unit_key
+0x578d send_lmp_slot_offset
+0x579e send_lmp_slot_offset_reply
+0x57a2 send_lmp_switch_req
+0x57a6 switch_on_native
+0x57a7 switch_slack
+0x57b1 send_lmp_sniff_req
+0x57b7 send_lmp_timing_accuracy_req
+0x57bc send_lmp_unsniff_req
+0x57bf send_lmp_max_slot
+0x57c4 send_lmp_max_slot_req
+0x57c9 send_lmp_inc_power
+0x57ce send_lmp_setup_complete
+0x57dd send_lmp_setup_complete_has_sent
+0x57df send_lmp_version_req
+0x57e4 send_lmp_features_req
+0x57e9 sp_master_send_io_cap_get
+0x57ee sp_master_send_io_cap_send
+0x57f2 sp_master_send_lmp_encapsulated_header
+0x57f6 sp_master_commitment_compare
+0x5800 sp_master_commitment_compare_success
+0x5804 sp_master_send_lmp_simple_pairing_number
+0x5806 sp_send_lmp_encapsulated_header
+0x5808 send_lmp_encapsulated_header
+0x5814 send_lmp_encapsulated_payload
+0x5823 sp_send_lmp_simple_pairing_comfirm
+0x5826 send_lmp_simple_pairing_comfirm
+0x582e sp_send_lmp_simple_pairing_number
+0x5830 send_lmp_simple_pairing_number
+0x583c master_sp_sm_end
+0x583d sp_aurand_send
+0x5842 master_sp_send_lmp_dhkey_check
+0x5843 sp_send_lmp_dhkey_check
+0x5845 send_lmp_dhkey_check
+0x584f send_lmp_enc_key_size_mask_res
+0x5854 send_lmp_auto_rate
+0x5855 send_lmp_clkoffset_req
+0x5856 send_lmp_quality_of_service
+0x5857 send_lmp_test_activate
+0x5858 send_lmp_comb_key
+0x5862 send_lmp_inrand
+0x5865 send_lmp_rand
+0x586d send_lmp_aurand
+0x5873 send_lmp_aurand_notpairing
+0x5874 send_lmp_aurand_common
+0x5876 send_lmp_sres
+0x5885 send_lmp_sres_master
+0x5887 send_lmp_sres_startenc
+0x588d send_lmp_sres_startenc_slave
+0x5891 send_lmp_start_encryption
+0x5898 send_lmp_stop_encryption_req
+0x589b send_lmp_encryption_key_size_req
+0x58a1 msg_send_lmp
+0x58a9 send_lmpext
+0x58b0 send_lmp_follow
+0x58b6 send_lmp_tid
+0x58b9 send_lmp_reply
+0x58bb send_lmp_request
+0x58bc send_lmp_end
+0x58c0 send_lmp_exit
+0x58c5 lmo_fifo_check
+0x58ca lmo_fifo_process
+0x58d1 lmo_fifo_process_lmo0empty
+0x58db lmo_fifo_process_lmo2to1
+0x58e1 lmo_fifo_process_lmo1_empty
+0x58ec special_tid_store
+0x58f6 tid_reply
+0x58fa tid_initiate
+0x58fe tid_check
+0x5903 tid_set_reply
+0x5907 check_localsm
+0x590a setlocalsm_master
+0x590e setlocalsm_slave
+0x5912 check_localsm_master
+0x5916 generate_random_number
+0x5917 generate_random
+0x5918 generate_random_loop
+0x591c generate_linkkey
+0x5926 process_conn_sm
+0x592a process_conn_sm_continue
+0x5946 host_create_conn_done
+0x594c host_conn_judge_encrypt
+0x5950 host_create_conn_done_wait
+0x5955 host_create_conn_auth
+0x595b host_create_conn_auth_wait
+0x595c host_create_conn_pairing
+0x5961 host_create_conn_pairing_wait
+0x5962 host_creat_conn_send_feat_ext
+0x5965 host_create_conn_send_version
+0x5968 host_creat_conn_wait_switch
+0x5970 host_create_conn_switch_accept
+0x5972 host_create_conn_send_features
+0x5975 host_create_conn_send_switch
+0x597b host_create_conn_send_conn_req
+0x5980 host_create_conn_wait_accept
+0x5986 host_create_conn_resend
+0x5988 host_create_conn_waiting
+0x5989 host_create_conn_switch
+0x5992 host_create_conn_send_setup_complete
+0x5995 host_create_conn_wait_setup_complete
+0x5999 host_create_conn_wait_setup_complete_rtn
+0x599b host_create_conn_master_detach
+0x59a0 host_create_conn_send_detach
+0x59a4 host_create_conn_auth_pair
+0x59a7 host_create_conn_sm_done
+0x59a9 host_create_conn_auth_pair_true
+0x59b5 host_create_conn_auth_pair_nokey
+0x59bc host_create_conn_auth_pair_wait
+0x59bd host_create_conn_encrypt
+0x59c1 host_create_conn_encrypt_start
+0x59c6 host_create_conn_encrypt_wait
+0x59ca host_create_conn_encrypt_wait_clear
+0x59cc host_auth
+0x59d1 remote_auth
+0x59d7 pincode_reinit
+0x59dd module_init
+0x59fa module_lpm_uart_init
+0x5a12 module_lpm_init
+0x5a13 module_gpio_init
+0x5a18 module_lpm_lock
+0x5a1c module_app_dispatch
+0x5a22 module_process_bb_event
+0x5a3e module_process_bb_event_disconned
+0x5a44 module_process_spp_connected
+0x5a4b module_spp_disconnected
+0x5a4f module_sniff_param_check
+0x5a55 module_sniff_param_check_unsniff
+0x5a5a module_process_exit_sniff
+0x5a5b module_process_setup_complete
+0x5a5c module_process_bb_even_le_disconn
+0x5a5e module_process_evt_pincode_req
+0x5a5f module_process_unsniff_accept
+0x5a62 module_process_unsniff_not_accept
+0x5a63 module_process_le_conn
+0x5a67 module_process_bb_conn
+0x5a69 module_disconn_start
+0x5a6b module_set_conn_pin_high
+0x5a6d module_conn_start
+0x5a6f module_stop_adv_discovery
+0x5a76 module_set_conn_pin_low
+0x5a78 module_process_with_credit
+0x5a7b module_process
+0x5a93 module_hci_in_excp
+0x5a96 module_hci_release_except
+0x5aa5 module_hci_dicard_packet
+0x5aa9 module_hci_dicard_bytes
+0x5aaa module_hci_cmd_control
+0x5acc module_hci_cmd_set_bt_addr
+0x5ad1 module_hci_cmd_set_le_addr
+0x5ad6 module_hci_cmd_set_visibility
+0x5adf module_start_adv_discovery_by_command
+0x5ae5 moudle_start_adv_by_command
+0x5aec module_hci_cmd_set_bt_name
+0x5af5 module_hci_cmd_set_le_name
+0x5aff module_hci_cmd_receive_spp_data
+0x5b0d module_hci_cmd_pass_init_ng_rx_len_all
+0x5b0f module_hci_cmd_spp_exut_sniff
+0x5b11 module_hci_cmd_get_current_packet_len_and_remain_len
+0x5b17 module_hci_cmd_get_current_patcket_len
+0x5b20 module_hci_command_tx_spp_tx_complete
+0x5b23 module_hci_cmd_receive_le_data
+0x5b38 module_hci_cmd_gatt_notify_seperate
+0x5b47 module_hci_cmd_gatt_notify_clear_len
+0x5b4a module_hci_cmd_gatt_notify_start_packet
+0x5b55 module_hci_cmd_gatt_notify_start_packet1
+0x5b5e module_hci_cmd_notify_start_packet_mtu23
+0x5b60 module_le_tx_update_data
+0x5b71 module_le_tx_no_continue
+0x5b78 module_le_send_att_notify_common
+0x5b8c module_le_send_non_l2cap_last
+0x5b8e module_set_le_tx_data_flag
+0x5b91 module_clear_le_tx_data_flag
+0x5b94 module_le_check_if_send_once_more
+0x5b9a module_le_send_att_insert_continue
+0x5b9e module_le_send_att_insert_cont_next
+0x5ba2 module_le_tx_update_notify_continue
+0x5bb9 module_le_send_not_fill_l2cap_len
+0x5bbe module_le_send_md_notify
+0x5bd3 module_hci_cmd_inquire_status
+0x5bd4 module_hci_cmd_set_pairing_mode
+0x5bdb module_hci_pairing_pincode_mode
+0x5bde module_hci_pairing_just_work_mode
+0x5bdf module_hci_sspairing_mode
+0x5be4 module_hci_pairing_passkey
+0x5be6 module_hci_pairing_numeric_comparison
+0x5be8 module_hci_cmd_set_pincode
+0x5bf0 module_hci_cmd_set_uart_control_mode
+0x5bf6 module_hci_cmd_set_uart_baud
+0x5bfe module_hci_cmd_set_uart_baud_ok
+0x5c02 module_hci_cmd_version_request
+0x5c06 module_hci_event_set_cmd_send_response
+0x5c0a module_hci_cmd_bt_disconnect
+0x5c0c module_hci_cmd_bt_disconnect_doing
+0x5c0e module_hci_cmd_ble_disconnect
+0x5c10 module_hci_cmd_ble_disconnect_doing
+0x5c12 module_hci_cmd_set_nvram
+0x5c19 module_hci_cmd_confirm_gkey
+0x5c24 dhkey_not_accept
+0x5c27 module_hci_cmd_spp_number_comparison_result_is1
+0x5c29 module_hci_cmd_set_credit_given
+0x5c32 module_hci_cmd_auto_adv
+0x5c38 module_hci_cmd_auto_adv_loop
+0x5c42 module_hci_cmd_auto_adv_store_adv
+0x5c4c module_hci_cmd_auto_adv_store_scan
+0x5c55 module_hci_cmd_auto_adv_store_common
+0x5c62 module_hci_cmd_auto_adv_adv_analys
+0x5c67 module_hci_cmd_power_request
+0x5c6d module_hci_cmd_power_set
+0x5c74 module_hci_cmd_passkey_entry
+0x5c7a module_hci_cmd_set_gpio
+0x5c80 module_set_gpio_input
+0x5c85 module_set_gpio_output
+0x5c8b module_hci_cmd_read_gpio
+0x5c93 module_hci_cmd_le_set_pairing_mode
+0x5ca2 module_le_set_pairing_mode_secure_justwork
+0x5ca4 module_le_set_pairing_mode_secure_numeric
+0x5ca7 module_le_set_pairing_mode_secure_passkey
+0x5ca9 module_le_set_no_pairing
+0x5caa module_le_set_noinputnooutput
+0x5cac module_le_set_pairing_mode_lagacy_just_work
+0x5cae module_le_set_pairing_mode_lagacy_passkey
+0x5caf module_le_set_displayonly
+0x5cb1 module_hci_cmd_le_set_adv_data
+0x5cb9 module_hci_cmd_le_set_scan_data
+0x5cc1 module_hci_cmd_le_send_conn_update_req
+0x5ccb module_hci_cmd_le_start_pairing
+0x5cd3 module_hci_cmd_le_confirm_gkey
+0x5cda module_hci_cmd_le_confirm_gkey_ok
+0x5cdc module_hci_cmd_le_confirm_gkey_fail
+0x5cde module_hci_event_receive_invalid_cmd
+0x5ce1 module_hci_event_receive_valid_cmd
+0x5ce4 module_hci_event_spp_connect
+0x5ce6 module_hci_event_le_connect
+0x5ce8 module_hci_event_spp_disconnect
+0x5cea module_hci_event_le_disconnect
+0x5cec module_hci_event_set_cmd
+0x5cf9 module_hci_event_receive_spp_data
+0x5d03 module_hci_event_receive_le_data
+0x5d0e module_hci_event_enter_standby_mode
+0x5d0f module_hci_event_enter_standby_mode_len0
+0x5d12 module_hci_event_status_res
+0x5d23 module_hci_read_bt_status
+0x5d30 module_hci_event_store_device
+0x5d39 module_hci_event_gkey_generate
+0x5d3f module_hci_event_invalid_packet
+0x5d41 module_hci_event_passkey_entry_mode
+0x5d43 module_hci_event_le_tk
+0x5d49 module_hci_event_le_pairing_fail
+0x5d4b module_hci_event_le_pairing_success
+0x5d4d module_hci_event_bt_pairing_fail
+0x5d4f module_hci_event_bt_pairing_success
+0x5d50 module_hci_event_pairing_completed
+0x5d57 module_hci_event_pause_enc
+0x5d59 module_hci_event_start_enc
+0x5d5a module_hci_event_enc
+0x5d60 module_hci_event_le_gkey
+0x5d66 module_hci_prepare_tx
+0x5d71 module_set_mcu_wake_pin_high_delay
+0x5d73 module_set_mcu_wake_pin_h_delay
+0x5d78 module_set_mcu_wake_pin_high
+0x5d7a module_check_mcu_wake_pin_high
+0x5d7c module_set_mcu_wake_pin_low
+0x5d7e delay
+0x5d81 module_le_receive_data
+0x5d8c module_le_receive_data_ok
+0x5d8e module_le_transmit
+0x5d90 module_le_transmit1
+0x5d94 module_hci_event_send_le_data
+0x5d98 module_set_le_rx_data_flag
+0x5d9a module_store_moule_flag
+0x5d9c module_clear_le_rx_data_flag
+0x5d9f module_exit_sniff
+0x5da3 module_bb_event_timer
+0x5da4 module_bb_event_100ms_loop
+0x5dac module_read_vdd_timer
+0x5dbd module_set_unsniff_task_flag
+0x5dc1 module_clear_unsniff_task_flag
+0x5dc5 module_control_air_flow
+0x5dca mouse_init
+0x5de5 mouse_init_environment
+0x5dea mouse_load_eeprom_param
+0x5ded mouse_dpi_init
+0x5def mouse_idle
+0x5df2 mouse_check_dpi
+0x5df5 mouse_dpi_down
+0x5df9 mouse_dpi_up
+0x5e01 mouse_modified_dpi
+0x5e0a mouse_init_common
+0x5e10 mouse_gpio_init
+0x5e24 mouse_before_hibernate
+0x5e27 mouse_process_lpm_before
+0x5e3e mouse_wheel_check
+0x5e4d mouse_t_wheel_scan
+0x5e5b p_mouse_t_wheel_scan_judge1
+0x5e5f p_mouse_t_wheel_scan_judge2
+0x5e63 p_mouse_t_wheel_scan_judge11
+0x5e65 p_mouse_t_wheel_scan_judge12
+0x5e67 p_mouse_t_wheel_scan_judge21
+0x5e69 p_mouse_t_wheel_scan_judge22
+0x5e6b p_mouse_t_wheel_scan_judge3
+0x5e74 p_mouse_t_wheel_scan_judge30
+0x5e77 p_mouse_t_wheel_scan_judge31
+0x5e7a p_mouse_t_wheel_scan_judge32
+0x5e7d p_mouse_t_wheel_scan_judge33
+0x5e80 p_mouse_wheel_t_forward
+0x5e8a p_mouse_wheel_t_back
+0x5e94 mouse_wheel_scan
+0x5ea2 mouse_wheel_scan_judge1
+0x5ea6 mouse_wheel_scan_judge2
+0x5eaa mouse_wheel_scan_judge11
+0x5eac mouse_wheel_scan_judge12
+0x5eae mouse_wheel_scan_judge21
+0x5eb0 mouse_wheel_scan_judge22
+0x5eb2 mouse_wheel_scan_judge3
+0x5ebb mouse_wheel_scan_judge30
+0x5ebe mouse_wheel_scan_judge31
+0x5ec1 mouse_wheel_scan_judge32
+0x5ec4 mouse_wheel_scan_judge33
+0x5ec7 mouse_wheel_forward
+0x5ed1 mouse_wheel_back
+0x5edb le_mouse_bb_event_write_request
+0x5ede le_mouse_bb_event_enc_info
+0x5edf mouse_hid_connected
+0x5ee2 mouse_send_process
+0x5ee9 mouse_send_data
+0x5ef2 bt_send_empty_data
+0x5ef6 p_le_send_empty_data
+0x5efa mouse_no_data_timer_init
+0x5efd mouse_le_notify_update_data
+0x5f0c mouse_fill_data_le
+0x5f11 mouse_fill_data
+0x5f14 mouse_motion
+0x5f1e sensor_motion
+0x5f36 mouse_read_sensor3610_data
+0x5f42 mouse_3610_smart_enable
+0x5f4e mouse_3610_smart_disable
+0x5f5a mouse_read_sensor_common
+0x5f61 mouse_zwheel
+0x5f67 mouse_t_zwheel
+0x5f6d mouse_check_key_gpio
+0x5f7f mouse_key
+0x5f87 mouse_sensor_sdio_low
+0x5f8e mouse_init_sunt
+0x5f90 mouse_init_p3204
+0x5f98 mouse_init_p3204_cont
+0x5f9c mouse_init_sensor_reset
+0x5fa2 mouse_init_p3610
+0x5fb0 set_sensor_reg
+0x5fbb extsign
+0x5fbf extsign_bit3
+0x5fc3 le_mouse
+0x5fd4 mouse_priority_bb_event
+0x5fe7 le_mouse_bb_event_connected
+0x5fee mouse_bb_event_pincode
+0x5ff0 mouse_bb_event_reconn_failed
+0x5ff3 mouse_bt_hid_connected
+0x5ff5 mouse_bt_event_setup_complete
+0x5ff6 mouse_bb_disconnected
+0x6000 mouse_bb_discon_clear_stack
+0x600a mouse_event_light_state_pairing
+0x600d mouse_event_light_state_hibernate
+0x6010 mouse4_0_event_bb_disconn
+0x6014 mouse_bb_event_timer
+0x6017 mouse_bb_event_100ms_loop
+0x6021 mouse_check_mouse_state_timer
+0x6027 mouse_check_hid_handshake_timer
+0x602d mouse_check_discovery_timeout_timer
+0x6034 mouse_check_direct_timeout_timer
+0x603b mouse_check_blank_data_timeout_timer
+0x6042 mouse_check_no_data_timeout_timer
+0x6048 mouse_bb_event_discovery_btn
+0x6057 mouse3_0_check_reconn_target
+0x605a mouse4_0_check_reconn_target
+0x6060 mouse4_0_no_reconn_target
+0x6062 mouse3_0_bb_event_discovery_btn
+0x6066 mouse4_0_bb_event_discovery_btn
+0x6068 mouse_bt_hid_handshake
+0x6070 mouse_check_reconn_target
+0x6074 mouse_start_discovery
+0x607a mouse_start_discovery_norandom
+0x6084 mouse_stop_discovery
+0x608f mouse_disconnect
+0x6098 eeprom_store_mouse_dpi
+0x609e eeprom_load_mouse_dpi
+0x60a4 mouse_check_mouse_statue
+0x60aa mouse_devce_led_off
+0x60b0 mouse_statue_up
+0x60ba mouse_device1_led_on
+0x60bc mouse_device2_led_on
+0x60be mouse_device3_led_on
+0x60c0 twspi_reset
+0x60d1 sensor_read
+0x60db sensor_write
+0x60e3 spi_ncs_gpio_init
+0x60e7 spi_ncs_enable
+0x60e9 spi_ncs_disable
+0x60eb twspi_write
+0x60ec twspi_read
+0x60ed read_function_aes
+0x60f1 read_function
+0x60f4 read_fuction_zero
+0x60f6 get_block_header
+0x60f7 get_block_header0
+0x6101 read_first_block
+0x6108 get_iv
+0x6114 load_storage
+0x6124 load_storage_loop
+0x612b reload_eeprom
+0x6132 reload_eeprom_loop
+0x613b loadcode
+0x6140 loadcode_lpm
+0x6150 loadcode_otp
+0x615e loadcode_spi
+0x616d loadcode_iic
+0x6178 loadcode_iic_eeprom_2k
+0x6180 loadcode_hci
+0x6186 loadcode_hci_loop
+0x6188 loadcode_iic_by_eeprom
+0x618e set_ucode_status
+0x6195 decrypt_code
+0x6198 decrypt_code_loop
+0x619b decrypt_code_skip
+0x619f load_ucode
+0x61a7 load_ucode_loop
+0x61ac spid_init
+0x61bb spid_reset
+0x61c1 spid_write_reg
+0x61c9 spid_read_reg
+0x61ca spid_read_regs
+0x61d3 wait_spid_done
+0x61d9 spid_init_flash
+0x61e2 spid_unlock_flash
+0x61eb spid_write_flash
+0x61fb spid_read_flash
+0x6208 spi_read_flash_wait
+0x621d iicd_init_12m
+0x6224 wait_iicd_done
+0x6227 iicd_read_data
+0x6233 set_eeprom_size_2k
+0x6236 clear_eeprom_size_2k
+0x6239 iicd_read_eep_data_size_2k
+0x623d iicd_read_eep_size_2k_lcadcode
+0x6240 iicd_read_eep_size_2k
+0x6245 iicd_read_eep_data
+0x624c iicd_read_eep
+0x6254 iicd_read_eep_common
+0x626a iicd_read_eep_load_code_size_2k
+0x626f iicd_write_eep_data
+0x6271 iicd_write_ota_data
+0x6277 iicd_write_eep_loop
+0x6287 iicd_eep_transparency
+0x629a iicd_eep_deal_short_packet
+0x629f iicd_write_eep_size_2k
+0x62a8 iicd_write_eep
+0x62b7 iicd_write_eep_common
+0x62c4 otp_enable_chgpump
+0x62c7 otp_disable_chgpump
+0x62c9 otp_set_addr
+0x62cd otp_write
+0x62cf otp_program
+0x62d2 otp_program_bit
+0x62f1 otp_skip_0
+0x62fa otp_ce
+0x6300 otpd_read_init
+0x630a otpd_wait_end
+0x630d otpd_read_data
+0x6312 otpd_read_code
+0x631c uartd_prepare_tx
+0x631f uartd_send
+0x6322 uartd_rxdone
+0x6325 uart_set_baud_by_mem
+0x6328 uart_copy_tx_bytes_fast
+0x632a uart_copy_tx_bytes_fast_loop
+0x632f uart_copy_tx_bytes_fast_loop_four
+0x6335 uart_tx_8_bytes
+0x6338 uart_tx_4_bytes
+0x633b uart_copy_tx_bytes
+0x633d uart_copy_tx_bytes_loop
+0x6341 uart_copy_rx_bytes_fast
+0x6343 uart_copy_rx_bytes_fast_loop
+0x6348 uart_copy_rx_bytes_fast_loop_four
+0x634e uart_rx_8_bytes
+0x6351 uart_rx_4_bytes
+0x6354 uart_copy_rx_bytes
+0x6356 uart_copy_rx_bytes_loop
+0x635a check_51cmd_update_device_record
+0x6361 write_device_record
+0x6365 write_device_loop_find
+0x6371 write_device_loop_find0
+0x6375 set_index_finded_device
+0x637b set_index_find_device_master_addr
+0x6380 store_rec_data_common
+0x6383 set_index_finded_device_ble_mode
+0x6387 set_index_finded_device_irk
+0x6389 store_ble_rec_data_common
+0x638b set_index_finded_device_ediv
+0x638e nvram_find_addr_from_bd_list
+0x6393 find_addr_from_bd_list_ble_mode
+0x639c find_addr_from_bd_list_static_addr
+0x639f find_addr_from_bd_list_random_non_resolvable_private_address
+0x63a1 find_addr_from_bd_list_random_addr
+0x63a3 find_addr_from_bd_list_spp_mode
+0x63a7 find_addr_from_bd_list_common
+0x63af nvram_find_addr_from_list
+0x63bf nvram_find_addr_from_list_compare
+0x63c1 find_master_addr_from_list_compare
+0x63c6 find_addr_from_list_compare_ble_mode
+0x63c9 find_irk_form_list_compare
+0x63db genernate_master_macaddress
+0x63e4 find_ediv_form_list_compare
+0x63f3 check_nvram
+0x63f9 init_device_list
+0x63fd init_device_list_loop
+0x6402 load_device_list
+0x640a clear_key_exists
+0x640c load_device_list_mode_4
+0x6418 load_device_list_mode_4_shutter
+0x641c load_device_list_mode_4_shutter_label
+0x642b clear_ltk_exists_iphone_lost_ltk
+0x642c clear_ltk_exists
+0x642e eeprom_store_le_reconn_info
+0x6432 eeprom_store_bd_reconn_info
+0x6435 eeprom_store_reconn_info
+0x643f eeprom_store_rec_4_mode
+0x6441 eeprom_load_reconn_info
+0x644d eeprom_load_reconn_bdaddr
+0x6451 eeprom_load_rec_3_mode
+0x6453 eeprom_load_rec_4_mode
+0x6455 eeprom_erase_reconn_info
+0x645b eeprom_load_last_record_index
+0x645f eeprom_store_last_record_index
+0x6463 eeprom_store_remote_bdaddr
+0x6469 eeprom_store_remote_addr_unfind
+0x6472 eeprom_store_le_local_addr
+0x6476 eeprom_load_le_loacal_addr
+0x647a eeprom_load_remote_bdaddr
+0x6483 eeprom_linkkey_addr
+0x6489 eeprom_store_le_ltl
+0x648b eeprom_store_link_key
+0x648c eeprom_store_link_key_common
+0x6490 eeprom_load_ltk_key
+0x6492 eeprom_load_link_key
+0x6493 eeprom_load_link_key_common
+0x6497 eeprom_load_bdaddr_list
+0x649b find_addr_from_bd_list
+0x64a1 find_addr_from_list
+0x64b1 check_link_key_load
+0x64b7 check_ltk_load
+0x64bb find_addr_from_list_compare
+0x64c0 enable_usr
+0x64c2 gpio_set_wake_by_current_state
+0x64c7 gpio_set_wake
+0x64d2 gpio_clr_wake
+0x64dd gpio_config_input_nowake
+0x64df gpio_config_input
+0x64e0 gpio_config_input_without_wake
+0x64e8 gpio_config_output
+0x64ea gpio_config_output0
+0x64ed gpio_common
+0x64f3 gpio_check_active
+0x64f5 gpio_get_bit
+0x64f6 get_bit_common
+0x64fb gpio_get_bit_reverse
+0x64fd gpio_out_inactive
+0x64ff gpio_out_active
+0x6500 gpio_out_flag
+0x6503 gpio_out
+0x6504 gpio_set_bit
+0x6509 gpio_set_before_lpm_common
+0x6549 neglect2_from_6_pin
+0x654b neglect4_from_9_pin
+0x654d neglact4_from_23_pin
+0x654f neglact2_form_25_pin
+0x6551 neglact2_form_27_pin
+0x6553 neglact2_form_2_pin
+0x6555 neglact_1_pin
+0x6557 neglact_4_pin
+0x6559 neglect_2_pin
+0x655a neglect_pin_loop
+0x655e gpio_cfg_uart_tx_output
+0x6561 gpio_pu_uart_tx
+0x6564 gpio_rx_config_input_with_pu
+0x656a gpio_uart2gpio
+0x656e gpio_check_uart_state
+0x6571 load_chip_option
+0x6577 adc_init_data
+0x6584 adc_init_data_vinlpm
+0x658d adc_check_data_vinlpm
+0x6591 adc_check_2v_vinlpm
+0x6595 set_vdd_reference_voltage_1v
+0x6598 adc_init_data_hvin
+0x65a1 adc_check_data_hvin
+0x65a5 adc_check_1v_hvin
+0x65a9 set_vdd_reference_voltage_4v
+0x65ac adc_init_data_io
+0x65b5 adc_check_data_io
+0x65b9 adc_check_0_5v_io
+0x65bd set_vdd_reference_voltage_0_5v
+0x65c0 adc_set_mode
+0x65c5 adc_check_vinlpm
+0x65c7 adc_check_hvin
+0x65c9 adc_check_gpio
+0x65cd read_adc
+0x65de vdd_calculate_by_mode
+0x65e5 vdd_calculate_vinlpm
+0x65e9 vdd_calculate_hvin
+0x65ed vdd_calculate_io
+0x65f1 vdd_calculate
+0x65fa vdd_calculate2
+0x65fe vdd_calculate1
+0x6607 rfcomm_init
+0x6611 rfcomm_init_spp
+0x661b rfcomm_init_spp_with_credit
+0x661d set_cr_bit
+0x661f rfcomm_calculate_fcs_sabm
+0x662b rfcomm_calculate_fcs_ua
+0x6634 rfcomm_calculate_fcs_dlci0
+0x6638 rfcomm_calculate_fcs_dlci0_res
+0x663a rfcomm_save_fcs_uih
+0x6649 caculate_uihdata_fcs
+0x6655 caculate_fcs
+0x6662 mod2div
+0x6666 mod2div_loop
+0x666b mod2div_not_enough_reduction
+0x6675 mod2div_end
+0x6677 get_rfcomm_snd_adss
+0x6678 dlci_to_address_cmd
+0x667e channel_to_dlci
+0x6682 rfcomm_rx_process_dlci0_sabm
+0x668b rfcomm_rx_process_dlci0_ua
+0x668f rfcomm_rx_process
+0x6694 rfcomm_rx_process_remote_page
+0x669a parse_dlci0_rp
+0x66a2 parse_dlci0_rp_uih
+0x66ac parse_dlci0_rp_uih_pn_cmd
+0x66ae parse_dlci0_rp_uih_pn_cmd_spp
+0x66b4 parse_dlci0_rp_uih_pn_res
+0x66b6 parse_dlci0_rp_uih_pn_res_common
+0x66b8 get_rfcomm_param_modem_status
+0x66bf get_rfcomm_head_struct
+0x66c5 get_rfcomm_current_length
+0x66ca get_rfcomm_uih_head_struct
+0x66d2 get_param_payload_ptr
+0x66d5 get_rfcomm_length_common
+0x66de get_rfcomm_prarmer_negotiation
+0x66ed parse_dlci0_rp_uih_ms_cmd
+0x66ef parse_dlci0_rp_uih_ms_cmd_spp
+0x66f9 parse_dlci0_rp_uih_ms_res
+0x6700 parse_dlci0_rp_uih_ms_res_spp
+0x6704 parse_dlci0_rp_uih_cmd_port
+0x6720 parse_uih_rp
+0x6721 parse_uih_rp_spp
+0x672a parse_uih_rp_spp_ua
+0x672e parse_uih_rp_spp_sabm
+0x6740 parse_uih_spp_uih_credits
+0x6748 parse_uih_spp_uih
+0x6749 parse_uih_spp_uih_cont
+0x674d parse_uih_rp_spp_disconn_send_event
+0x674f parse_uih_rp_spp_disconn
+0x6755 rfcomm_rx_process_reconn
+0x675b parse_dlci0_reconn
+0x6762 parse_dlci0_reconn_uih
+0x676b parse_dlci0_reconn_uih_pn_cmd
+0x6772 parse_dlci0_reconn_uih_pn_cmd_spp
+0x6776 parse_dlci0_reconn_uih_ms_cmd
+0x677d parse_dlci0_reconn_uih_ms_cmd_spp
+0x6786 parse_dlci0_reconn_uih_ms_res
+0x678c parse_dlci0_reconn_uih_ms_res_spp
+0x6790 parse_uih_reconn
+0x6796 parse_uih_reconn_spp
+0x679b parse_uih_reconn_spp_ua
+0x679f parse_uih_reconn_spp_sabm
+0x67a0 parse_uih_reconn_spp_disconn
+0x67a1 rfcomm_rx_process_end
+0x67a2 rfcomm_send_more_pkt
+0x67a6 rfcomm_send_more_pkt_msc_cmd_spp
+0x67ab rfcomm_send_more_pkt_msc_cmd_spp0
+0x67b3 rfcomm_send_sabm
+0x67c1 rfcomm_send_ua
+0x67d0 rfcomm_send_param_neg_cmd
+0x67ed rfcomm_send_param_neg_res
+0x680a rfcomm_send_modem_status_cmd
+0x6820 rfcomm_send_modem_status_res
+0x6838 rfcomm_send_uih_without_payload
+0x6853 rfcomm_increase_credit_given
+0x685d spp_process_rx_data
+0x685f spp_tx_rfcomm_packet
+0x686a ssp_tx_rfcomm_from_uart
+0x6872 ssp_tx_rfcomm_from_uart_without_credit
+0x6877 ssp_tx_rfcomm_from_uart_common
+0x687f ssp_tx_rfcomm_from_uart_common0
+0x68aa ssp_tx_write_length
+0x68b3 ssp_tx_write_long_packet
+0x68bc ssp_tx_write_given_credit
+0x68c0 scheduler_process
+0x68d4 scheduler_process0
+0x68d8 scheduler_tx_disconnect_hid
+0x68dc scheduler_tx_l2cap_pkt
+0x68f9 scheduler_tx_l2cap_start_pkt
+0x6907 scheduler_tx_l2cap_last_pkt
+0x6909 scheduler_tx_l2cap_pkt_end
+0x690d scheduler_start_upper_sm
+0x6911 scheduler_start_upper_sm_hid
+0x6913 process_upper_sm
+0x6915 process_upper_sm_remote_page
+0x6918 process_upper_sm_rp_wait
+0x6919 process_upper_sm_reconn
+0x6939 process_upper_sm_reconn_wait
+0x693a process_upper_sm_reconn_sdp_conn
+0x6940 process_upper_sm_reconn_sdp_cfg
+0x694a process_upper_sm_reconn_ss_spp
+0x694f process_upper_sm_reconn_sdp_disconn
+0x6952 process_upper_sm_reconn_hid_ctrl_conn
+0x6958 process_upper_sm_reconn_hid_ctrl_cfg
+0x695e process_upper_sm_reconn_hid_int_conn
+0x6964 process_upper_sm_reconn_hid_int_cfg
+0x696a process_upper_sm_reconn_rfcomm_conn
+0x6970 process_upper_sm_reconn_rfcomm_cfg
+0x6976 process_upper_sm_reconn_rfcomm_sabm
+0x697c process_upper_sm_reconn_spp_cmd_pn
+0x6982 process_upper_sm_reconn_spp_sabm
+0x698d process_upper_sm_reconn_spp_cmd_ms
+0x6993 process_upper_sm_reconn_sdp_conn_wait
+0x6997 process_upper_sm_reconn_sdp_cfg_wait
+0x699a process_upper_sm_reconn_ss_spp_wait
+0x699f process_upper_sm_reconn_sdp_disconn_wait
+0x69a5 process_upper_sm_reconn_hid_ctrl_conn_wait
+0x69a9 process_upper_sm_reconn_hid_ctrl_cfg_wait
+0x69ad process_upper_sm_reconn_hid_int_conn_wait
+0x69b1 process_upper_sm_reconn_hid_int_cfg_wait
+0x69b6 process_upper_sm_reconn_rfcomm_conn_wait
+0x69ba process_upper_sm_reconn_rfcomm_cfg_wait
+0x69be process_upper_sm_reconn_rfcomm_sabm_wait
+0x69c3 process_upper_sm_reconn_spp_cmd_pn_wait
+0x69c7 process_upper_sm_reconn_spp_sabm_wait
+0x69cb process_upper_sm_reconn_spp_cmd_ms_wait
+0x69ce process_upper_sm_reconn_setup_hid
+0x69d0 process_upper_sm_reconn_setup_rfcomm
+0x69d2 process_upper_sm_reconn_setup_spp
+0x69d4 process_upper_sm_reconn_termination
+0x69d6 upper_sm_send_sdp_conn
+0x69de upper_sm_send_sdp_cfg
+0x69e4 upper_sm_send_sdp_disconn
+0x69ef upper_sm_send_ss_spp
+0x69f4 upper_sm_send_rfcomm_conn
+0x69fc upper_sm_send_rfcomm_cfg
+0x6a02 upper_sm_send_hid_ctrl_conn
+0x6a0a upper_sm_send_hid_ctrl_cfg
+0x6a10 upper_sm_send_hid_int_conn
+0x6a18 upper_sm_send_hid_int_cfg
+0x6a1e upper_sm_send_rfcomm_sabm
+0x6a26 upper_sm_send_spp_cmd_pn
+0x6a2d upper_sm_send_spp_sabm
+0x6a38 upper_sm_send_spp_cmd_ms
+0x6a3e sdp_process
+0x6a53 servicesearch_req
+0x6a73 servicesearch_req_loop
+0x6a76 servicesearch_req_blank
+0x6a7c patch_serviceattribute_req
+0x6a89 patch_serviceattribute_isnot_wholerangle
+0x6a8c patch_serviceattribute_judge_wholerangle
+0x6a96 patch_serviceattribute_judge_wholerangle_false3
+0x6a98 patch_serviceattribute_judge_wholerangle_false2
+0x6a9a patch_serviceattribute_judge_wholerangle_false1
+0x6a9c patch_serviceattribute_req_loop
+0x6a9f patch_serviceattribute_req_range_id
+0x6aa5 patch_serviceattribute_req_range_id_increase
+0x6aae patch_serviceattribute_req_range_id_finish
+0x6ab1 patch_serviceattribute_req_one_id
+0x6ab6 patch_serviceattribute_req_check_next_id
+0x6abd patch_answer_handle_attributelist_next
+0x6acf patch_answer_handle_attributelist_notfound
+0x6ad2 answer_handle_attributelist_end
+0x6af2 serviceattribute_req_all
+0x6aff continue_zero
+0x6b02 continue_one_byte
+0x6b06 continue_two_byte
+0x6b0a continue_end
+0x6b2b fisrt_fragment
+0x6b2f parlength_continue_byte
+0x6b32 parlength_continue_byte_end
+0x6b38 fragment_sdp
+0x6b46 answer_attributelist_full_loop
+0x6b51 last_frag_continue
+0x6b53 sdp_frag_end
+0x6b5d patch_servicesearchattribute_req
+0x6b68 patch_servicesearchattribute_req_loop
+0x6b6a patch_servicesearchattribute_req_uuid
+0x6b73 patch_servicesearchattribute_req_search
+0x6b78 patch_answer_attributelist_next
+0x6b83 patch_answer_attributelist_attrib_loop
+0x6b86 patch_answer_attributelist_notfound
+0x6b88 patch_servicesearchattribute_req_all
+0x6b9f patch_servicesearchattribute_req_all_continue
+0x6bae patch_answer_attributelist_end
+0x6bd2 patch_no_attribute_return
+0x6bdf servicesearchattribute_req_attributelist_loop
+0x6be5 servicesearchattribute_req_check_next_ctn
+0x6bed servicesearchattribute_req_check_handle
+0x6bf2 servicesearchattribute_req_attributelist_loop_continue
+0x6bf8 servicesearchattribute_req_check_next_ctn_continue
+0x6c00 servicesearchattribute_req_check_handle_continue
+0x6c05 servicesearchattribute_req_next_handle
+0x6c14 servicesearchattribute_req_next_handle_continue
+0x6c26 answer_attributelist_with_ctn_bytes
+0x6c28 answer_attributelist_calc_attribute_length
+0x6c61 answer_attributelist_with_ctn_bytes_continue
+0x6c63 answer_attributelist_calc_attribute_length_continue
+0x6c85 answer_attributelist_with_ctn_end
+0x6ca4 answer_attributelist_end_long
+0x6ccc answer_attributelist_end_long_continue
+0x6cea patch_sdp_data_len
+0x6cf3 patch_sdp_data_len_6
+0x6cf5 patch_sdp_get_data_6
+0x6cfa patch_sdp_get_data_6_8bit
+0x6cfd patch_sdp_get_data_6_16bit
+0x6d01 sdp_send_spp_request
+0x6d18 servicesearchattribute_res
+0x6d1c servicesearchattribute_res_spp
+0x6d25 srchfail
+0x6d26 find_rfcomm_channel_number
+0x6d29 find_rfcomm_channel_number_loop
+0x6d2f find_rfcomm_channel_number_find_adl
+0x6d30 find_rfcomm_channel_number_loop2
+0x6d36 find_rfcomm_channel_number_find_rfcomm
+0x6d3a sdp_invalid_service_record_handle
+0x6d3d sdp_invalid_pdu_size
+0x6d40 sdp_insufficient_resource
+0x6d43 sdp_invalid_reqest_syntax
+0x6d45 sdp_error_response
+0x6d4f ask_serviceclassid
+0x6d55 classidloop
+0x6d5d skip2bytes
+0x6d66 frstbwrong
+0x6d69 scndbwrong
+0x6d72 cmp032
+0x6d75 cmp016
+0x6d77 cmpuuid
+0x6d7b uuidsize
+0x6d98 wrong12b
+0x6d99 wrong12b1
+0x6d9d chck12dn
+0x6d9f loopornot
+0x6da4 asksrv_error
+0x6da6 dataelementtype6
+0x6db4 dsize32
+0x6db6 dsize16
+0x6db9 dsize
+0x6dbb dsize_error
+0x6dbd empth_sa_rsp
+0x6dc0 empty_ssa_rsp
+0x6dc2 empty_response
+0x6dd2 fullsearch
+0x6dd6 outempty
+0x6dd8 sdp_data_len
+0x6de0 sdp_data_len_rtn
+0x6de2 sdp_data_len_1
+0x6de5 sdp_data_len_5
+0x6de7 sdp_data_len_6
+0x6dea sdp_get_data
+0x6df1 sdp_get_data_1
+0x6df4 sdp_get_data_1_loop
+0x6df9 sdp_get_data_6
+0x6dfe sdp_get_data_6_8bit
+0x6e00 sdp_get_data_6_16bit
+0x6e03 sdp_data_size
+0x6e06 sdp_data_size_loop
+0x6e09 search_uuid
+0x6e10 search_uuid_next
+0x6e14 search_uuid_loop
+0x6e18 search_uuid_not_found
+0x6e1d search_uuid_nomatch
+0x6e20 search_handle
+0x6e24 search_handle_loop
+0x6e2e search_attrib
+0x6e32 search_attrib_next
+0x6e35 search_attrib_loop
+0x6e3d search_attrib_found_uuid
+0x6e43 search_attrib_loop_attribs
+0x6e4f search_attrib_end
+0x6e52 search_handle_attrib
+0x6e56 search_handle_attrib_next
+0x6e60 search_handl_attrib_found_handle
+0x6e62 search_handle_attrib_loop_attribs
+0x6e6c search_handle_attrib_end
+0x6e6e function_g2
+0x6e86 function_f6_eb
+0x6e96 get_r
+0x6e9a function_f6_ea
+0x6eae function_f5
+0x6ec0 function_f5_common
+0x6ed2 store_addr_common_b
+0x6ed7 store_addr_common_a
+0x6edc function_f4_ca
+0x6ee7 function_f4_cb
+0x6ef2 function_aes_cmac
+0x6ef7 function_ceil16
+0x6f05 function_aes_cmac_set_flag_0_balnk
+0x6f08 function_aes_cmac_set_flag_0
+0x6f09 function_aes_cmac_set_flag_0_common
+0x6f13 function_aes_cmac_aes
+0x6f16 function_aes_cmac_aes_loop
+0x6f1c function_aes_cmac_aes_loop_end
+0x6f24 load_inverse_result
+0x6f28 store_inverse_k
+0x6f2a inverse_k
+0x6f2d inverse_memdat
+0x6f31 bn_lshift_0_inverse
+0x6f3b function_aes_cmac_k1_inverse
+0x6f3c function_aes_cmac_inverse_common
+0x6f40 function_aes_cmac_k2_inverse
+0x6f42 function_aes_cmac_generate_subkey
+0x6f4a function_aes_cmac_k1
+0x6f54 function_aes_cmac_k1_0
+0x6f55 function_aes_cmac_k2
+0x6f5e function_aes_cmac_xor_rb
+0x6f5f function_aes_cmac_xor_rb_loop
+0x6f65 function_aes_cmac_xor_loop_common
+0x6f69 function_aes_cmac_padding
+0x6f6d function_aes_cmac_padding_loop
+0x6f72 function_aes_cmac_padding_loop2
+0x6f75 function_aes_cmac_padding_beq_length
+0x6f76 function_aes_cmac_padding_common
+0x6f78 function_aes_cmac_padding_big_length
+0x6f7a generate_kinit
+0x6f7e function_e21
+0x6f8d function_e22
+0x6f93 function_e22_pin_init
+0x6f94 function_e22_genx_pin
+0x6f97 function_e22_genx_loop
+0x6fa1 function_e22_genx_end
+0x6fad function_e1
+0x6fb0 function_e3
+0x6fb7 function_hash
+0x6fcd function_ar
+0x6fd6 function_ar_loop
+0x6fde function_ar_original
+0x6ff4 key_scheduling
+0x6ffa key_rotateloop
+0x7005 key_select_octet_loop
+0x700a key_select_octet_nwrap
+0x7014 bias_round_key_loop
+0x701b key_sched_zero
+0x701d create_byte_16_loop
+0x7025 xor_mod32
+0x7026 xor_mod32_ar2
+0x7029 xor_mod32_loop
+0x702f xor_mod32_invert
+0x7032 xor_even
+0x7038 el_boxes
+0x703b el_box_loop
+0x7041 e_boxes
+0x7047 pht
+0x704a pht_loop
+0x7056 permute
+0x7065 permute_exchange
+0x7066 permute_loop
+0x7075 add16
+0x7077 xor16
+0x7078 xor_add16
+0x7079 xoradd_loop
+0x707e xoradd_add
+0x707f xoradd_store
+0x7084 function_expand
+0x708a expand_12
+0x708b expand_cont
+0x708f key_offset
+0x709e key_addxor
+0x709f key_addxor_loop
+0x70a3 key_add
+0x70a5 key_high
+0x70a6 key_xor
+0x70a7 key_store
+0x70ab copy_aco
+0x70b0 concatenate_temp24
+0x70b1 concatenate_temp16
+0x70b4 loop1
+0x70b5 generate_stk
+0x70ba authenticate_rconfirm
+0x70bd authenticate_mconfirm
+0x70c2 generate_confirm
+0x70c5 generate_mrand
+0x70c8 generate_sk
+0x70d1 first_block_counter
+0x70d3 first_block_data
+0x70d4 first_block
+0x70e7 generate_mic
+0x70f6 generate_mic_loop
+0x70fb generate_mic_end
+0x70ff aes_crypt_data
+0x7109 le_encrypt
+0x7122 le_decrypt
+0x7127 le_dec_cont
+0x7145 wait_aes
+0x7147 do_aes_ocb
+0x714a do_aes_cbc
+0x714d do_aes_ctr
+0x7150 aes_init
+0x7153 function_s1
+0x7168 function_c1
+0x716f function_c1_master
+0x717f function_c1_irat
+0x7184 function_c1_loop1
+0x7197 padding_data
+0x719c padding_loop
+0x71a1 aes_load_data
+0x71a2 load_data_loop
+0x71a6 load_data_padding
+0x71ab aes_load_xor
+0x71ad load_key
+0x71af load_data128
+0x71b0 load_regext
+0x71b1 load_regext_loop
+0x71b6 load_sk
+0x71b8 clear_hidata
+0x71ba aes_clear_data
+0x71bb aes_clear
+0x71bc clear_loop
+0x71bd clear_data_rest
+0x71c0 store_aes_result
+0x71c2 send_aes_result_loop
+0x71c7 store_enc_data
+0x71cd store_enc_loop
+0x71d5 store_enc_byte
+0x71d9 compare_res
+0x71db compare_res_loop
+0x71e2 enable_authrom
+0x71e6 disable_authrom
+0x71ea init_memp
+0x7241 init_memp_256
+0x7293 shutter_init
+0x72b8 shutter_le_hard_switch_power_on_signal
+0x72bd in_poweron_hard_switch_led
+0x72c0 shutter_le_soft_switch_power_on_signal
+0x72cd shutter_le_adv_interval_set
+0x72d2 shutter_updata_mac
+0x72d6 shutter_byteswap
+0x72e5 shutter_le_fast_advertise
+0x72ec in_shutter_skip_set
+0x72ef shutter_le_scale_lpm_lock
+0x72f4 scale_process_bb_event
+0x72fd shutter_le_bb_event_timer
+0x72fe shutter_le_bb_event_100ms_loop
+0x730c shutter_conn_update_timer
+0x7313 shutter_app_updata_le_param_timer
+0x731c shutter_app_updata_le_param
+0x731f shutter_le_shutter_fast_adv_timer
+0x732a in_is_connected
+0x732c shutter_le_sleep_timer
+0x7334 scale_process_le_conn
+0x734c scale_process_le_discon
+0x735f shutter_le_tx_buff_inuse
+0x7361 shutter_le_check_tx_buff
+0x7363 shutter_le_tx_buff_unuse
+0x7365 shutter_le_discovery_timeout_sleep
+0x7366 shutter_le_sleep_req_hibernate
+0x7367 shutter_le_sleep_req_ok
+0x7369 shutter_le_sleep_enter
+0x736d shutter_le_sleep_clr
+0x7371 scale_process
+0x7375 shutter_le_parse_att_exchange_mtu_request
+0x7378 shutter_le_parse_att_exchange_mtu_request_save
+0x737a scale_process_idle
+0x737c shutter_le_before_hibernate
+0x7380 in_enter_hibernate
+0x7382 shutter_ui_led_init
+0x7386 in_lp1
+0x738c in_lp1_end
+0x738d shutter_ui_led_init_end
+0x738e shutter_ui_led_send
+0x73a3 shutter_ui_led_send_end
+0x73a4 shutter_ui_led_off
+0x73a5 shutter_key_init
+0x73aa shutter_key_lp1
+0x73ae shutter_key_init_end
+0x73af shutter_shutter_scan_key
+0x73b2 in_scan_key_lp1
+0x73c5 shutter_le_key_process
+0x73df shutter_le_key_lp1
+0x73f5 in_le_key_process_end
+0x73f9 shutter_le_send_key_data
+0x7404 in_le_send_lable
+0x740d in_le_send_lp1
+0x7419 in_le_key_is_release
+0x7423 in_le_send_key0_press
+0x7427 in_le_send_key1_press
+0x742b in_le_send_key2_press
+0x742f in_le_send_key3_press
+0x7433 in_le_send_key4_press
+0x7437 in_le_send_key5_press
+0x743b in_le_send_key0_rel
+0x743f in_le_send_key1_rel
+0x7443 in_le_send_key2_rel
+0x7447 in_le_send_key3_rel
+0x744b in_le_send_key4_rel
+0x744f in_le_send_key5_rel
+0x7453 shutter_le_disble_key_led
+0x7457 shutter_le_key_led_index
+0x745b in_le_light_led
+0x745c in_le_key_led_0
+0x745e in_le_key_led_1
+0x7460 in_le_key_led_2
+0x7462 in_le_key_led_3
+0x7464 shutter_ui_power_timeout_timer
+0x746c shutter_ui_button_timeout_timer
+0x7472 shutter_shuuter_led_on
+0x7475 shutter_bb_event_button_up
+0x7478 in_power_release
+0x747a shutter_evt_button_long_pressed
+0x747e shutter_shutter_power_on_off
+0x7481 shutter_le_power_off
+0x7487 shutter_shutter_power_off_end
+0x748a shutter_shutter_power_off_signal
+0x748c shutter_le_process_lpm_before
+0x7491 in_shutter_process_lpm_before_lp1
+0x7495 shutter_le_process_lpm_before_end
+0x7496 shutter_le_queue_init
+0x749b shutter_le_queue_clear
+0x749c shutter_le_queue_put
+0x74ab shutter_le_queue_increase
+0x74b2 shutter_le_queue_put_end
+0x74b4 shutter_le_queue_get
+0x74c1 shutter_le_queue_read_point
+0x74c7 shutter_le_packet_interval_set
+0x74ca shutter_le_send_packet
+0x74d0 shutter_le_shutter_send_keydata
+0x74d5 shutter_le_tx_indication
+0x74d7 shutter_le_tx_notification
+0x74dc shutter_le_tx_common
+0x74de shutter_shutter_cancel_key_shake
+0x74e5 shutter_le_send_att_handle_value_notification
+0x74f4 shutter_le_receive_data
+0x74f8 shutter_le_parse_att_write_request
+0x74fb shutter_key_data_send
+0x74fd init_shutter_le_att_list
+0x75c9 shutter_init_param
+0x75e0 publickey_init
+0x75e3 publickey_calc
+0x75f2 stop_publickey_calc_256
+0x75f4 sp_initialize
+0x75fb sp_clear_flags
+0x7600 sp_generate_local_key
+0x7602 sp_master_generate_local_key
+0x7605 sp_generate_local_key0
+0x7608 sp_start_send_pubkey
+0x760d sp_calculate_commitment
+0x7618 master_sp_calculate_commitment
+0x761f sp_calculate_commitment0
+0x7625 master_sp_calculate_commitment0
+0x7628 sp_local_random_key_generator
+0x762b sp_calculate_commitment_wait_dhkey_calc
+0x762d sp_confirm_check
+0x763f sp_confirm_check_success
+0x7645 sp_confirm_check_success_master
+0x7648 sp_confirm_check_failed
+0x764e sp_confirm_check_failed_master
+0x7651 sp_confirm_calc
+0x7655 sp_confirm_calc_ready
+0x7662 sp_confirm_calc_master
+0x7665 sp_master_key_prarm_push
+0x766f sp_link_key_prarm_push
+0x7679 sp_link_key_calc
+0x7684 sp_pubkey_calc
+0x769c sp_pubkey_generated
+0x76a2 sp_dhkey_calc
+0x76b4 sp_dhkey_generated
+0x76bb random_generator
+0x76c0 compare4
+0x76ca compare4_failed
+0x76cc compare4_success
+0x76ce simple_pairing_sequence
+0x76e0 master_simple_paring_sequence
+0x76f3 master_set_mem_master_sp_flag
+0x76f5 master_clear_mem_master_sp_flag
+0x76f7 sp_calc_sequence
+0x7703 sp_calc_sequence_done
+0x7708 bn_testbit
+0x770e ec_copy
+0x7711 bn_eq_zero
+0x7717 bn_eq_0
+0x7720 bn_bigeq
+0x7723 bn_bigeq_0
+0x772d bn_add
+0x772f bn_add_0
+0x773b bn_sub
+0x773d bn_sub_0
+0x7749 bn_rshift6
+0x774b bn_rshift
+0x774c bn_rshift_0
+0x7757 bn_lshift
+0x7759 bn_lshift_0
+0x7764 bn_lshiftmod
+0x7765 bn_lshiftmod_ismod
+0x776d bn_lshiftmod_0
+0x7771 bn_addmod
+0x7774 bn_submod
+0x777b bn_p192mod
+0x779c bn_load
+0x779d bn_load_0
+0x77a2 bn_mulmod
+0x77ac bn_mulmod_1
+0x77ae bn_mulmod_0
+0x77c4 bn_sqrmod
+0x77c6 bn_rshifteven
+0x77c7 bn_rshifteven_1
+0x77d6 bn_rshifteven_0
+0x77da bn_invmod
+0x77e9 bn_invmod_2
+0x7804 bn_invmod_1
+0x7812 bn_invmod_0
+0x781f ecdbl
+0x7870 ecadd
+0x78dc eckp_0
+0x78ea eckp_1
+0x78ef ecunmapz
+0x7901 sha_endian_swap2
+0x7904 sha_endian_loop
+0x790c sha_getw
+0x7910 sha_r
+0x7912 sha_r_loop
+0x7927 sha_init
+0x7929 sha_init_0
+0x792e sha
+0x7933 sha_0
+0x793c sha_loop
+0x7965 sha_1
+0x796b sha_result
+0x796d sha_regext_save
+0x7972 pad_xor
+0x7975 pad_xor_0
+0x797c pad_xor_1
+0x797f g_noninit_number_confirm
+0x7982 g_noninit
+0x7984 g_noninit0
+0x7992 g_init
+0x79a1 g_common
+0x79aa g_common0
+0x79bb function_f1_no_key
+0x79bd function_f1
+0x79bf function_f1_common
+0x79f5 function_f2
+0x7a2b function_f3a
+0x7a2d function_f3a_common
+0x7a3d function_f3a_no_pin
+0x7a40 function_f3b_no_pin
+0x7a43 function_f3b
+0x7a45 function_f3b_common
+0x7a52 function_f3_common
+0x7a7c eckp_calc_init
+0x7a7d eckp_calc_init_1
+0x7a87 eckp_calc
+0x7a8f memcpy_dword_swap4
+0x7a90 memcpy_dword_swap
+0x7a91 memcpy_dword_swap_loop
+0x7a96 sp_initialize_256
+0x7a9d sp_pubkey_calc_256
+0x7ab3 sp_pubkey_generated_256
+0x7ab9 sp_dhkey_calc_256
+0x7ac9 sp_dhkey_generated_256
+0x7acf sp_calc_sequence_256
+0x7ad9 sp_calc_sequence_done_256
+0x7ae0 eckp_calc_256
+0x7ae8 eckp_calc_init_256
+0x7aec eckp_calc_init_256_1
+0x7af6 ecunmapz_256
+0x7b08 ecdbl_256
+0x7b59 ecadd_256
+0x7bc5 bn_invmod_256
+0x7bd3 bn_invmod_256_2
+0x7bee bn_invmod_256_1
+0x7bfc bn_invmod_256_0
+0x7c03 bn_mulmod_256
+0x7c11 bn_mulmod_256_1
+0x7c17 bn_mulmod_256_0
+0x7c2c bn_p256mod
+0x7c96 bn_load_mem
+0x7c9a bn_load_256
+0x7c9c bn_sqrmod_256
+0x7c9e bn_add_256
+0x7ca0 bn_addmod_256
+0x7ca3 bn_lshiftmod_256
+0x7ca4 bn_lshiftmod_ismod_256
+0x7cad bn_lshiftmod_p_256
+0x7cb5 sub_p2_256
+0x7cb9 bn_submod_256
+0x7cc3 bn_submod_256_np
+0x7ccc bn_sub_256
+0x7cce bn_rshift_256
+0x7cd1 bn_lshift_256
+0x7cd4 bn_bigeq_256
+0x7cd8 bn_eq_zero_256
+0x7cdb bn_rshifteven_256
+0x7cdc bn_rshifteven_256_1
+0x7ceb bn_rshifteven_256_0
+0x7cef ui_init
+0x7cf4 ui_dispatch
+0x7cf6 ui_button_init
+0x7d02 ui_button_polling
+0x7d09 ui_button_down
+0x7d15 ui_button_up
+0x7d1f ui_button_check_long_press
+0x7d26 lpm_button_get_wake_lock
+0x7d28 lpm_button_clean_wake_lock
+0x7d2a ui_led_init
+0x7d2f ui_led_blink_stop
+0x7d33 ui_led_off
+0x7d38 ui_led_on
+0x7d3e ui_led_blink_start
+0x7d3f ui_led_blink_start1
+0x7d44 ui_led_blink_polling
+0x7d53 in_ui_led_blink_polling_dark
+0x7d58 in_ui_led_infinite
+0x7d5a in_ui_led_blink_timer_start
+0x7d5c ui_timer_timeout
+0x7d60 ui_timer_check
+0x7d68 ui_timer_check_loop
+0x7d72 ui_timer_init
+0x7d75 ui_timer_check_end
+0x7d7d ui_timer_check_send_evt
+0x7d80 ui_ipc_get_lock
+0x7d81 ui_ipc_get_lock_wait
+0x7d84 ui_ipc_put_lock
+0x7d86 ui_ipc_send_event
+0x7d90 ui_ipc_send_cmd
+0x7d9a ui_ipc_clean_all_fifo
+0x7d9e check_51cmd
+0x7daa check_51cmd_once
+0x7dce check_51cmd_once_continue
+0x7ddb check_51cmd_dhkey_not_accept
+0x7dde check_51cmd_ble_update_connect_param
+0x7de0 check_51cmd_check_idle
+0x7de5 check_51cmd_restore
+0x7de7 check_51cmd_role_switch
+0x7df0 check_51cmd_start_discovery
+0x7df5 check_51cmd_stop_discovery
+0x7dfb check_51cmd_reconnect
+0x7dfd check_51cmd_disconnect
+0x7e00 check_51cmd_enter_sniff_subrating
+0x7e01 check_51cmd_exit_sniff_subrating
+0x7e02 check_51cmd_sniff_test
+0x7e03 check_51cmd_pincode
+0x7e05 check_51cmd_inq
+0x7e06 check_51cmd_stop_inq
+0x7e07 check_51cmd_adv
+0x7e0d check_51cmd_stop_adv
+0x7e12 check_51cmd_direct_adv
+0x7e18 check_51cmd_stop_direct_adv
+0x7e1d check_51cmd_le_disconnect
+0x7e21 check_51cmd_le_start_con
+0x7e24 check_51cmd_start_scan
+0x7e26 check_51cmd_stop_scan
+0x7e29 check_51cmd_le_smp_sec_req
+0x7e2b check_51cmd_hibernate
+0x7e38 check_51cmd_hibernate_btn_disabled
+0x7e3b check_51cmd_le_start_write
+0x7e3d check_51cmd_bb_reconn_cancel
+0x7e3f ui_check_paring_button
+0x7e43 right_shift_n
+0x7e45 right_shift_n_loop
+0x7e48 push_stack
+0x7e56 pop_stack
+0x7e64 get_contw
+0x7e67 get_contr
+0x7e6a store_contw
+0x7e6d store_contr
+0x7e70 save_cont_pointers
+0x7e75 load_cont_pointers
+0x7e7a memcpy96
+0x7e7b memcpy64
+0x7e7d memcpy12
+0x7e7e memcpy4
+0x7e81 memcpy8
+0x7e84 memcpy48
+0x7e85 memcpy32
+0x7e86 memcpy24
+0x7e87 memcpy16
+0x7e89 delay_10ms
+0x7e8c delay_ms_wait
+0x7e90 bn_zero
+0x7e91 memset0
+0x7e92 memset8
+0x7e95 memset0_8
+0x7e98 memset0_4
+0x7e9b clear_mem_256
+0x7e9d clear_mem_512
+0x7e9f clear_mem
+0x7ea2 clear_mem_loop
+0x7ea5 clear_temp_block
+0x7ea8 xor_loop
+0x7eb0 inverse_data
+0x7eb8 inverse_loop
+0x7ec0 memcpy_fast
+0x7ec2 memcpy_fast_loop
+0x7ec7 memcpy_fast_loop_four
+0x7ecd memcpy
+0x7ecf memcpy_loop
+0x7ed3 timer_stop
+0x7ed4 timer_init
+0x7ede timer_check_timeout
+0x7ee2 timer_check
+0x7eee timer_loop
+0x7ef2 timer_counting
+0x7ef9 clk_add
+0x7f04 clk_diff_rt
+0x7f06 clk_diff
+0x7f0b clk_diff_pos
+0x7f10 clk2rt
+0x7f16 clk2lpo
+0x7f1d clk2bt
+0x7f25 string2dec_from_uart
+0x7f26 string2dec_from_uart_done
+0x7f31 uchar2dialog
+0x7f3a uchar2dialog_number
+0x7f3d uchar2dialog_a2f
+0x7f40 pn9
+0x7f43 pn9_loop
+0x7f53 wait_div_end
+0x7f55 string_compare
+0x7f5e ceiling
+0x7f62 swap
+0x7f66 clean_mem
+0x7f69 callback_func
+0x7f6b wait_uarttx
+0x7f6e get_uart_rrptr
+0x7f71 ice_break
+0x7f73 ice_setbp
+0x7f78 ice_setbp2
+0x7f7d ice_set_write_bp
+0x7f80 test_enable_white
+0x7f84 check_uart_tx_buff
+0x7f86 pdata_sub_temp
+0x7f88 fifo_in
+0x7f8f fifo_in_push
+0x7f95 fifo_out
+0x7f9a fifo_out_loop
+0x7f9f fifo_out_end
+0x7fa2 fifo_is_empty
+0x7fa4 fifo_is_full
+0x7fa6 fifo_is_near_full
+0x7fa8 fifo_content_count
+0x7fa9 fifo_content_count_loop
+0x7faf not_greater_than
+
+/* Parse Command:
+TX: take bits from tx fifo, jam it into shift and a destination (rf,bucket)
+RX: take bits from demod,  jam it into shift and a destination (acl,sco,bucket) */
+
+/* Inject Command:
+TX: 0 into shift, send tail of shift into a destination (rf,bucket)
+RX: 0 into shift, send tail of shift into a destination (acl,sco,bucket) */
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ /* High 5 bytes of channel map */
+format
+  ! 15 pulse   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   /* set flag to 0 */
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  /* set selected bit of reg to 0 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  /* set selected bit of reg to 1 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          /* alu op demux */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  /* set selected bit of the reg to the polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  /* set the selected bit of the reg to the opposite polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    /* invert the selected bit of the reg */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            /* this is alu op */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      /* demux the lowest 4 bit of queue and OR it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 1 */
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      /* demux the lowest 4 bit of queue and AND it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 0 */
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   /* set the bit in reg index by queue to same as flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   /* set the bit in the reg index by queue to opposite of flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      /* flip the bit in reg index by queue */
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       /* take bits out of source (sco_tx,tx_buffer,rx-elas) into pdata and dest (sco_rx,rx_fifo,tx-elas) */
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      /* voice, data, demod */
+  [2] 0
+  [6] 0    
+  [2] 0           /* parse or inject */ 
+  [4] dest        /* acl, sco, mod, bucket */
+  [9] immediate   /* number of bits to parse off */
+end
+
+format
+  ! 1 inject      /* shift data from pdata into destination (tx-elas,rx_fifo,sco_rx) */
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] immediate   /* number of bits to be injected */
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       /* contain the number of bits to inject */
+  [6] 3
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] 0 
+end
+
+format
+  ! 1 stuff  /* automatic parse, stuff_counter decrement on every bit until hits zero */
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] immediate
+end
+
+format    /* force whatever is on shift_reg to regsiters */
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    /* alu operation add */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  /* pdata */
+  [6] 1   /* alu add */
+  [6] -1  /* back to pdata */
+  [9] immediate
+end
+
+format    /* force immediate value into registers */
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    /* pdata & regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] 0
+end
+  
+
+format    /* and whatever is in shiftreg with reg */
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   /* jump to location stored in reg */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   /* alu operation copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   /* copy the register content thru alu to shift register, not prealigned like preload */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] -1  /* pdata */
+  [9] 0
+end
+
+format
+  ! 3 icopy     /* copy the shift register lsb content directly to register, not aligned */
+  % regw
+  [5] opcode
+  [6] -1  /* pdata */
+  [6]  4  /* alu copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 add
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 iadd       /* regr + pdata -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          /* immediate - regr -> regw */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       /* pdata - regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 flip
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 iflip  /* use shift register as immediate to do xor */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 xor
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 3 xor_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 ixor  /* pdata xor regr and store result in regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 invert
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 8
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 pinvert    /* invert pdata into itself */
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 /* regr div immediate div */
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           /* pdata div regr data ready at most after 41 nops */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            /* harvest div remainder */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 quotient             /* harvest div quotient */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 15
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 6
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 22
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 18
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 35
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 25
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 34
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift32
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 30
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 7
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 23
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 26
+  [6] regw
+  [9] 0
+end
+
+  
+format
+  ! 3 lshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 19
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 36
+  [6] regw
+  [9] 0
+end
+  
+
+format
+  ! 3 lshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 32
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 random               /* random number into regw */
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     /* bit reverse within a byte */
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    /* priority encode reg into regw, lsb is the top priority, ie, priority(8'b00010000) = 4 */
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   /* set a section of pdata */
+  % section    /* 0 sets 17:0 of pdata with set_data, 1 sets 35:18, 2 sets 53:36, 3 sets 71:54 */
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   /* load stuff into pdata according to fhs format, check us.v */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  /* load register with pdata content, according to fhs format, check us.v */
+  ! 10 ialigned   /* all bits are in position */
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format  /* load register to another according to fhs format */
+  ! 10 aligned
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 4 branch
+  % addr
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 call
+  % addr
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 rtn
+  % flag
+  [5] opcode
+  [6] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstore          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        /* write to memory, data from pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d crc         /* read from memory, count from loopcnt, put crc result into pdata */
+  % addr
+  [5] opcode
+  [6] 0
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         /* read from memory, address from reg, count from loopcnt, put crc result into pdata */
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] 0
+end
+
+
+format
+  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstoret          /* write to corereg, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istoret        /* write to memory, data from temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetcht          /* read from corereg, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [1] 0   /* msb */
+  [15] addr
+  [8] immediate
+end
+
+format
+  ! 0x0e hjam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [1] 1   /* msb */
+  [15] addr
+  [8] immediate
+end
+
+format			/* 0x242... */
+  ! 4 nbranch
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 ncall
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 nrtn
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 4 nop
+  % addr  /* no-op for addr+2 clocks */
+  [5] opcode
+  [6] 0     
+  [6] 0     /* always */ 
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    /* always */
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   /* quit if 1. flag is true 2, regr time up 3, found sync,(cond_true) */
+  % reg          /* expire counter to check against */
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           /* correlate */
+  [9] 0           
+end
+
+format
+  ! 5 compare   /* sets cond flag,  if reg equals immediate */
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   /* sets cond flag,  if reg equals pdata */
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   /* sets cond. flag, if reg equals LS half of shift reg with MS half of reg being mask */
+  ! 5 iverify
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 2
+  [18] 0
+end
+
+format
+  ! 0x15 qisolate1
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] -1
+end
+
+format
+  ! 0x15 qisolate0
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] 0
+end
+
+	/* REVAB bug: cannot access bit above 35 */
+format
+  ! 5 isolate1
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] -1
+  [9] addr
+end
+
+format
+  ! 5 isolate0
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] 0
+  [9] addr
+end
+
+format
+  ! 11 setarg
+  % immediate
+  [5] opcode
+  [27] immediate
+end
+
+format
+  ! 0x1b arg
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [21] immediate
+end
+
+  
+format
+  ! 0 sleep
+  [5] opcode
+  [27] 0
+end
+
+format
+  ! 0 snooze
+  [5] opcode
+  [6] -1
+  [21] 0
+end
+
+format
+  ! 0 revision
+  % rev_num
+  [5] opcode
+  [27] rev_num
+end
+
+format
+  ! 0x18 loop   /* branch when loopcnt is NOT zero, and decrease loopcnt */
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   /* branch when pdata is equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   /* branch when pdata is NOT equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   /* return when pdata is equal to immediate */
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   /* return when pdata is NOT equal to immediate */
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   /* branch when pdata's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   /* branch when pdata's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 8
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 8	bpatch
+  % imme
+  % addr
+  [5] opcode
+  [4] 9
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark1   /* branch when mark's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   /* branch when mark's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+
+format
+  ! 3 mult                  /* immediate mult regr */  /* the product will be ready 17 clks later */
+  % immediate                                   /* use "product" instruction to get the result */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 imult           /* pdata mult regr */  /* the product will be ready after 15 nops */
+  % reg                                         /* use product opcode to get the result */
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate mult pulse to multiplier */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 mul32                  /* immediate mult regr */ 
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32           /* pdata mult regr 32x32=64bit */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 product              /* harvest mult product */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 17
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          /* SHA256 Sx operation, immediate is Sx */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	/* regext[0] <- regext[7], regext[1] <- regext[0], regext[2] <- regext[1] ... */
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.icode
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.icode	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.icode	(working copy)
@@ -0,0 +1,1618 @@
+ 00000000  0x00000018 bmark1  0x00000025 , 0x00000011 
+ 00000001  0x00000019 beq  0x00000000 , 0x00000026 
+ 00000002  0x0000001a beq  0x00000003 , 0x00000031 
+ 00000003  0x0000001b beq  0x00000086 , 0x00000036 
+ 00000004  0x0000001c beq  0x0000008a , 0x00000040 
+ 00000005  0x0000001d beq  0x0000008b , 0x00000062 
+ 00000006  0x0000001e beq  0x000000a7 , 0x0000006e 
+ 00000007  0x0000001f beq  0x000000a8 , 0x00000075 
+ 00000008  0x00000020 beq  0x000000a9 , 0x00000089 
+ 00000009  0x00000021 beq  0x000000ac , 0x0000009c 
+ 00000010  0x00000022 beq  0x000000b4 , 0x00000341 
+ 00000011  0x00000023 beq  0x000000b5 , 0x000000b5 
+ 00000012  0x00000024 beq  0x000000b6 , 0x000000bc 
+ 00000013  0x00000025 beq  0x000000b7 , 0x000000de 
+ 00000014  0x00000026 beq  0x000000b9 , 0x00000226 
+ 00000015  0x00000027 beq  0x000000ba , 0x0000022a 
+ 00000016  0x00000028 branch  0x00003b34 
+ 00000017  0x0000002b beq  0x00000005 , 0x00000118 
+ 00000018  0x0000002c beq  0x00000016 , 0x0000011d 
+ 00000019  0x0000002d beq  0x0000001b , 0x00000121 
+ 00000020  0x0000002e beq  0x00000023 , 0x00000124 
+ 00000021  0x0000002f beq  0x0000002f , 0x00000148 
+ 00000022  0x00000030 beq  0x00000031 , 0x0000015d 
+ 00000023  0x00000031 beq  0x00000032 , 0x0000016f 
+ 00000024  0x00000032 beq  0x00000033 , 0x00000182 
+ 00000025  0x00000033 beq  0x00000039 , 0x00000193 
+ 00000026  0x00000034 beq  0x0000003c , 0x000001a0 
+ 00000027  0x00000035 beq  0x0000003d , 0x000001b3 
+ 00000028  0x00000036 beq  0x0000003e , 0x000001b9 
+ 00000029  0x00000037 beq  0x0000003f , 0x000001d2 
+ 00000030  0x00000038 beq  0x00000042 , 0x000001f0 
+ 00000031  0x00000039 beq  0x0000004d , 0x000001f5 
+ 00000032  0x0000003a beq  0x00000095 , 0x00000232 
+ 00000033  0x0000003b beq  0x000000f3 , 0x00000239 
+ 00000034  0x0000003c beq  0x000000f7 , 0x00000245 
+ 00000035  0x0000003d beq  0x000000f8 , 0x0000026f 
+ 00000036  0x0000003e beq  0x000000f9 , 0x00000275 
+ 00000037  0x0000003f branch  0x00003b34 
+ 00000038  0x00000042 clear_stack 
+ 00000039  0x00000043 nbranch  0x00003004 , 0x0000002b 
+ 00000040  0x00000044 fetch  0x00000001 , 0x00004595 
+ 00000041  0x00000045 nbranch  0x0000002f , 0x00000034 
+ 00000042  0x00000046 fetch  0x00000001 , 0x00004e78 
+ 00000043  0x00000047 branch  0x00003004 , 0x00000034 
+ 00000044  0x00000048 jam  0x00000000 , 0x00004e7f 
+ 00000045  0x00000049 bmark0  0x00000026 , 0x00003004 
+ 00000046  0x0000004a nbranch  0x00003004 , 0x0000002b 
+ 00000047  0x0000004c hjam  0x00000003 , 0x00008280 
+ 00000048  0x0000004d branch  0x00003004 
+ 00000049  0x00000050 call  0x0000027f 
+ 00000050  0x00000051 call  0x000002bb 
+ 00000051  0x00000052 fetch  0x00000001 , 0x00004e78 
+ 00000052  0x00000053 nbranch  0x0000037a , 0x00000034 
+ 00000053  0x00000054 branch  0x0000301b 
+ 00000054  0x00000058 branch  0x000039a3 , 0x00000021 
+ 00000055  0x00000059 hjam  0x000000d4 , 0x00000955 
+ 00000056  0x0000005a nop  0x00000004 
+ 00000057  0x0000005b hjam  0x000000d2 , 0x00000955 
+ 00000058  0x0000005c nop  0x00000004 
+ 00000059  0x0000005d hjam  0x000000d1 , 0x00000955 
+ 00000060  0x0000005e nop  0x00000004 
+ 00000061  0x0000005f fetch  0x00000001 , 0x00004280 
+ 00000062  0x00000060 beq  0x00000014 , 0x000039ae 
+ 00000063  0x00000061 branch  0x0000399c 
+ 00000064  0x00000064 storet  0x00000001 , 0x00000017 
+ 00000065  0x00000065 add  0x00000002 , 0x00000000 , 0x00000011 
+ 00000066  0x00000066 call  0x00003a13 
+ 00000067  0x00000067 setarg  0x00000500 
+ 00000068  0x00000068 call  0x00003b35 
+ 00000069  0x0000006a hjam  0x00000001 , 0x00008906 
+ 00000070  0x0000006b hjam  0x0000003c , 0x00008900 
+ 00000071  0x0000006c hjam  0x000000e0 , 0x00008901 
+ 00000072  0x0000006d hjam  0x00000012 , 0x0000096d 
+ 00000073  0x0000006e nop  0x0000000a 
+ 00000074  0x0000006f hjam  0x00000001 , 0x00008902 
+ 00000075  0x00000070 hjam  0x0000003d , 0x00008902 
+ 00000076  0x00000071 nop  0x0000000a 
+ 00000077  0x00000072 hjam  0x000000b7 , 0x00008903 
+ 00000078  0x00000073 nop  0x0000000a 
+ 00000079  0x00000074 hjam  0x0000007f , 0x00008902 
+ 00000080  0x00000075 fetch  0x00000001 , 0x00004280 
+ 00000081  0x00000076 beq  0x00000014 , 0x0000005f 
+ 00000082  0x00000077 bbit1  0x00000001 , 0x00000059 
+ 00000083  0x00000078 bbit1  0x00000002 , 0x00000059 
+ 00000084  0x0000007a hjam  0x0000005b , 0x0000894c 
+ 00000085  0x0000007b hjam  0x00000096 , 0x0000894d 
+ 00000086  0x0000007c hjam  0x0000002c , 0x0000894e 
+ 00000087  0x0000007d hjam  0x00000046 , 0x0000894f 
+ 00000088  0x0000007e branch  0x0000005d 
+ 00000089  0x00000080 hjam  0x000000fb , 0x0000894c 
+ 00000090  0x00000081 hjam  0x000000ef , 0x0000894d 
+ 00000091  0x00000082 hjam  0x000000ec , 0x0000894e 
+ 00000092  0x00000083 hjam  0x0000005e , 0x0000894f 
+ 00000093  0x00000085 fetch  0x00000001 , 0x00004280 
+ 00000094  0x00000086 branch  0x000039dc 
+ 00000095  0x00000089 hjam  0x000000c2 , 0x00008956 
+ 00000096  0x0000008a hjam  0x000000d0 , 0x00008955 
+ 00000097  0x0000008b rtn 
+ 00000098  0x0000008e call  0x00003cd2 
+ 00000099  0x0000008f call  0x00003a5f 
+ 00000100  0x00000090 hjam  0x00000006 , 0x00008042 
+ 00000101  0x00000091 hfetch  0x00000001 , 0x00008968 
+ 00000102  0x00000092 set1  0x00000007 , 0x0000003f 
+ 00000103  0x00000093 hstore  0x00000001 , 0x00008968 
+ 00000104  0x00000094 set0  0x00000007 , 0x0000003f 
+ 00000105  0x00000095 hstore  0x00000001 , 0x00008968 
+ 00000106  0x00000096 set1  0x00000007 , 0x0000003f 
+ 00000107  0x00000097 hstore  0x00000001 , 0x00008968 
+ 00000108  0x00000098 hjam  0x00000005 , 0x00008042 
+ 00000109  0x00000099 branch  0x00003a0c 
+ 00000110  0x0000009c call  0x00003c2b 
+ 00000111  0x0000009d fetch  0x00000001 , 0x00004e45 
+ 00000112  0x0000009e rtn  0x00000034 
+ 00000113  0x0000009f jam  0x00000000 , 0x00004e45 
+ 00000114  0x000000a0 copy  0x00000022 , 0x0000003f 
+ 00000115  0x000000a1 store  0x00000004 , 0x0000489e 
+ 00000116  0x000000a2 rtn 
+ 00000117  0x000000a5 rtnmark1  0x00000026 
+ 00000118  0x000000a6 call  0x00003be2 
+ 00000119  0x000000a7 fetch  0x00000003 , 0x0000420f 
+ 00000120  0x000000a8 rtn  0x00000034 
+ 00000121  0x000000a9 fetch  0x00000002 , 0x00004042 
+ 00000122  0x000000aa arg  0x0000ffff , 0x00000002 
+ 00000123  0x000000ab isub  0x00000002 , 0x0000003e 
+ 00000124  0x000000ac rtn  0x00000005 
+ 00000125  0x000000ad fetch  0x00000001 , 0x00004131 
+ 00000126  0x000000ae rtn  0x00000034 
+ 00000127  0x000000af call  0x00004816 
+ 00000128  0x000000b0 nrtn  0x00000034 
+ 00000129  0x000000b1 call  0x00003d0e 
+ 00000130  0x000000b2 nrtn  0x00000034 
+ 00000131  0x000000b3 call  0x00003a7b 
+ 00000132  0x000000b4 fetch  0x00000001 , 0x000046e2 
+ 00000133  0x000000b5 branch  0x00003c5e , 0x00000034 
+ 00000134  0x000000b6 fetch  0x00000001 , 0x00004639 
+ 00000135  0x000000b7 rtn  0x00000034 
+ 00000136  0x000000b8 branch  0x00003c5e 
+ 00000137  0x000000bb fetch  0x00000001 , 0x00004595 
+ 00000138  0x000000bc branch  0x00000096 , 0x00000034 
+ 00000139  0x000000bd fetch  0x00000001 , 0x0000009f 
+ 00000140  0x000000be nbranch  0x00000096 , 0x00000034 
+ 00000141  0x000000bf fetch  0x00000001 , 0x00004e83 
+ 00000142  0x000000c0 fetcht  0x00000001 , 0x00004e84 
+ 00000143  0x000000c1 isub  0x00000002 , 0x0000003e 
+ 00000144  0x000000c2 nrtn  0x00000005 
+ 00000145  0x000000c3 fetch  0x00000001 , 0x00004e81 
+ 00000146  0x000000c4 nrtn  0x00000034 
+ 00000147  0x000000c5 setarg  0x00000000 
+ 00000148  0x000000c6 store  0x00000008 , 0x000000a0 
+ 00000149  0x000000c7 branch  0x00003c6a 
+ 00000150  0x000000c9 call  0x000000a1 
+ 00000151  0x000000ca nrtn  0x00000028 
+ 00000152  0x000000cb fetch  0x00000001 , 0x00000b2b 
+ 00000153  0x000000cc nrtn  0x00000034 
+ 00000154  0x000000cd jam  0x00000000 , 0x000049c1 
+ 00000155  0x000000ce branch  0x00003c6a 
+ 00000156  0x000000d1 call  0x000000a1 
+ 00000157  0x000000d2 nrtn  0x00000028 
+ 00000158  0x000000d3 fetch  0x00000001 , 0x00000b2b 
+ 00000159  0x000000d4 nrtn  0x00000034 
+ 00000160  0x000000d5 branch  0x00003c8c 
+ 00000161  0x000000d8 call  0x000000ac 
+ 00000162  0x000000d9 nrtn  0x00000028 
+ 00000163  0x000000da call  0x000000a9 
+ 00000164  0x000000db nrtn  0x00000028 
+ 00000165  0x000000dc jam  0x00000001 , 0x00000b2b 
+ 00000166  0x000000dd jam  0x00000001 , 0x00000b2a 
+ 00000167  0x000000de call  0x000000b1 
+ 00000168  0x000000df branch  0x000000ac 
+ 00000169  0x000000e4 fetch  0x00000002 , 0x0000482c 
+ 00000170  0x000000e5 fetcht  0x00000002 , 0x0000482e 
+ 00000171  0x000000e6 branch  0x000000ae 
+ 00000172  0x000000e8 fetch  0x00000002 , 0x000047c4 
+ 00000173  0x000000e9 fetcht  0x00000002 , 0x000047c6 
+ 00000174  0x000000eb isub  0x00000002 , 0x0000003e 
+ 00000175  0x000000ec branch  0x000064c0 , 0x00000005 
+ 00000176  0x000000ed branch  0x000031d4 
+ 00000177  0x000000f0 fetch  0x00000001 , 0x00000b2a 
+ 00000178  0x000000f1 nop  0x0000000a 
+ 00000179  0x000000f2 bne  0x00000000 , 0x000000b1 
+ 00000180  0x000000f3 rtn 
+ 00000181  0x000000f7 jam  0x00000027 , 0x00000016 
+ 00000182  0x000000f8 jam  0x00000000 , 0x00000150 
+ 00000183  0x000000f9 jam  0x00000000 , 0x0000017e 
+ 00000184  0x000000fa jam  0x00000000 , 0x0000017f 
+ 00000185  0x000000fb setarg  0x00000000 
+ 00000186  0x000000fc store  0x00000005 , 0x000008d2 
+ 00000187  0x000000fd rtn 
+ 00000188  0x00000100 arg  0x000046f0 , 0x00000011 
+ 00000189  0x00000101 call  0x00007f95 
+ 00000190  0x00000102 rtn  0x00000034 
+ 00000191  0x00000104 copy  0x0000003f , 0x00000013 
+ 00000192  0x00000105 call  0x000000c2 
+ 00000193  0x00000106 branch  0x00003d9b 
+ 00000194  0x00000108 rtneq  0x00000018 
+ 00000195  0x00000109 beq  0x00000014 , 0x000000c7 
+ 00000196  0x0000010a beq  0x00000015 , 0x000000d1 
+ 00000197  0x0000010b beq  0x00000029 , 0x000000dc 
+ 00000198  0x0000010c branch  0x00003d73 
+ 00000199  0x00000110 jam  0x00000000 , 0x00004e83 
+ 00000200  0x00000111 jam  0x00000000 , 0x00004212 
+ 00000201  0x00000112 jam  0x00000000 , 0x00004ebb 
+ 00000202  0x00000113 jam  0x00000014 , 0x00004e51 
+ 00000203  0x00000114 call  0x00003e61 
+ 00000204  0x00000115 call  0x00003e59 
+ 00000205  0x00000116 call  0x00003e7f 
+ 00000206  0x00000117 call  0x00003e20 
+ 00000207  0x00000118 jam  0x00000001 , 0x00004eb9 
+ 00000208  0x00000119 branch  0x00003dc2 
+ 00000209  0x0000011c jam  0x00000000 , 0x00004ea4 
+ 00000210  0x0000011d call  0x000002fc 
+ 00000211  0x0000011e jam  0x00000000 , 0x000044b2 
+ 00000212  0x0000011f jam  0x00000000 , 0x00004212 
+ 00000213  0x00000120 jam  0x00000000 , 0x00004ebb 
+ 00000214  0x00000121 jam  0x00000000 , 0x00004e51 
+ 00000215  0x00000123 jam  0x00000000 , 0x0000456a 
+ 00000216  0x00000124 fetcht  0x00000002 , 0x00004e4e 
+ 00000217  0x00000125 storet  0x00000002 , 0x000044f8 
+ 00000218  0x00000126 call  0x000052a0 
+ 00000219  0x00000127 branch  0x00003dc6 
+ 00000220  0x0000012a call  0x00000106 
+ 00000221  0x0000012b branch  0x00007e3b 
+ 00000222  0x0000012e storet  0x00000001 , 0x0000024e 
+ 00000223  0x0000012f fetch  0x00000001 , 0x0000489c 
+ 00000224  0x00000130 increase  0x00000001 , 0x0000003f 
+ 00000225  0x00000131 store  0x00000001 , 0x0000489c 
+ 00000226  0x00000133 fetch  0x00000001 , 0x0000024e 
+ 00000227  0x00000134 rtn  0x00000034 
+ 00000228  0x00000135 increase  0xffffffff , 0x0000003f 
+ 00000229  0x00000136 store  0x00000001 , 0x0000024e 
+ 00000230  0x00000138 call  0x00000109 
+ 00000231  0x00000139 call  0x000000ec 
+ 00000232  0x0000013a call  0x00000112 
+ 00000233  0x0000013b call  0x000000f8 
+ 00000234  0x0000013c call  0x000000ff 
+ 00000235  0x0000013d branch  0x000000e2 
+ 00000236  0x00000140 fetch  0x00000001 , 0x00004ebb 
+ 00000237  0x00000141 rtn  0x00000034 
+ 00000238  0x00000142 fetch  0x00000001 , 0x00004212 
+ 00000239  0x00000143 compare  0x00000020 , 0x0000003f , 0x000000ff 
+ 00000240  0x00000144 ncall  0x000000f6 , 0x00000001 
+ 00000241  0x00000145 fetch  0x00000001 , 0x00004131 
+ 00000242  0x00000146 call  0x000000f4 , 0x00000034 
+ 00000243  0x00000147 rtn 
+ 00000244  0x00000149 jam  0x00000001 , 0x00004131 
+ 00000245  0x0000014a rtn 
+ 00000246  0x0000014c jam  0x00000020 , 0x00004212 
+ 00000247  0x0000014d rtn 
+ 00000248  0x0000014f fetch  0x00000001 , 0x000049ba 
+ 00000249  0x00000150 rtn  0x00000034 
+ 00000250  0x00000151 jam  0x00000000 , 0x00004e80 
+ 00000251  0x00000152 increase  0xffffffff , 0x0000003f 
+ 00000252  0x00000153 store  0x00000001 , 0x000049ba 
+ 00000253  0x00000154 nrtn  0x00000034 
+ 00000254  0x00000155 rtn 
+ 00000255  0x00000158 fetch  0x00000001 , 0x00004e82 
+ 00000256  0x00000159 rtn  0x00000034 
+ 00000257  0x0000015a increase  0xffffffff , 0x0000003f 
+ 00000258  0x0000015b store  0x00000001 , 0x00004e82 
+ 00000259  0x0000015c nrtn  0x00000034 
+ 00000260  0x0000015d jam  0x00000000 , 0x00004e81 
+ 00000261  0x0000015e rtn 
+ 00000262  0x00000167 call  0x00003e7f 
+ 00000263  0x00000168 jam  0x00000012 , 0x000009bd 
+ 00000264  0x00000169 branch  0x00007d90 
+ 00000265  0x0000016c fetch  0x00000001 , 0x00004e51 
+ 00000266  0x0000016d rtn  0x00000034 
+ 00000267  0x0000016e increase  0xffffffff , 0x0000003f 
+ 00000268  0x0000016f store  0x00000001 , 0x00004e51 
+ 00000269  0x00000170 nrtn  0x00000034 
+ 00000270  0x00000171 jam  0x00000020 , 0x00004212 
+ 00000271  0x00000172 jam  0x00000001 , 0x00004131 
+ 00000272  0x00000173 jam  0x00000001 , 0x00004ebb 
+ 00000273  0x00000174 rtn 
+ 00000274  0x00000177 fetch  0x00000001 , 0x00004e52 
+ 00000275  0x00000178 rtn  0x00000034 
+ 00000276  0x00000179 increase  0xffffffff , 0x0000003f 
+ 00000277  0x0000017a store  0x00000001 , 0x00004e52 
+ 00000278  0x0000017b nrtn  0x00000034 
+ 00000279  0x0000017c branch  0x00003e6d 
+ 00000280  0x00000181 call  0x00004968 
+ 00000281  0x00000182 call  0x00004b51 
+ 00000282  0x00000183 call  0x00004bd8 
+ 00000283  0x00000184 call  0x000005a7 
+ 00000284  0x00000185 branch  0x00004945 
+ 00000285  0x00000188 call  0x00003a50 
+ 00000286  0x00000189 copy  0x0000003f , 0x00000011 
+ 00000287  0x0000018a call  0x000005e5 
+ 00000288  0x0000018b branch  0x00004a3d 
+ 00000289  0x0000018e fetch  0x00000004 , 0x00004e48 
+ 00000290  0x0000018f store  0x00000004 , 0x00004596 
+ 00000291  0x00000190 branch  0x00004a8c 
+ 00000292  0x00000193 jam  0x00000001 , 0x00004131 
+ 00000293  0x00000194 fetch  0x00000002 , 0x0000037c 
+ 00000294  0x00000195 fetcht  0x00000002 , 0x00000382 
+ 00000295  0x00000196 isub  0x00000002 , 0x0000003f 
+ 00000296  0x00000197 store  0x00000002 , 0x000009be 
+ 00000297  0x00000198 fetch  0x00000001 , 0x00000362 
+ 00000298  0x00000199 set0  0x00000005 , 0x0000003f 
+ 00000299  0x0000019a set0  0x00000003 , 0x0000003f 
+ 00000300  0x0000019b store  0x00000001 , 0x00000362 
+ 00000301  0x0000019c fetch  0x00000004 , 0x00000366 
+ 00000302  0x0000019d fetcht  0x00000002 , 0x00000364 
+ 00000303  0x0000019e storet  0x00000002 , 0x000009c6 
+ 00000304  0x0000019f isub  0x00000002 , 0x00000011 
+ 00000305  0x000001a0 fetch  0x00000001 , 0x0000445b 
+ 00000306  0x000001a1 store  0x00000001 , 0x0000038d 
+ 00000307  0x000001a2 ifetcht  0x00000002 , 0x00000006 
+ 00000308  0x000001a3 ifetch  0x00000002 , 0x00000006 
+ 00000309  0x000001a4 lshift2  0x0000003f , 0x0000003f 
+ 00000310  0x000001a5 store  0x00000002 , 0x00000364 
+ 00000311  0x000001a6 lshift2  0x00000002 , 0x00000002 
+ 00000312  0x000001a7 iadd  0x00000002 , 0x0000003f 
+ 00000313  0x000001a8 ifetcht  0x00000004 , 0x00000006 
+ 00000314  0x000001a9 storet  0x00000004 , 0x0000038e 
+ 00000315  0x000001aa iadd  0x00000011 , 0x0000003f 
+ 00000316  0x000001ab copy  0x0000003f , 0x00000014 
+ 00000317  0x000001ac fetch  0x00000002 , 0x00000364 
+ 00000318  0x000001ad fetcht  0x00000002 , 0x000009c6 
+ 00000319  0x000001ae isub  0x00000002 , 0x0000003f 
+ 00000320  0x000001af fetcht  0x00000002 , 0x000009be 
+ 00000321  0x000001b0 imul32  0x00000002 , 0x0000003f 
+ 00000322  0x000001b1 iadd  0x00000014 , 0x0000003f 
+ 00000323  0x000001b2 store  0x00000004 , 0x00000366 
+ 00000324  0x000001b3 call  0x00005199 
+ 00000325  0x000001b4 fetch  0x00000002 , 0x00000390 
+ 00000326  0x000001b5 store  0x00000002 , 0x00004561 
+ 00000327  0x000001b6 rtn 
+ 00000328  0x000001b9 fetch  0x00000001 , 0x00000379 
+ 00000329  0x000001ba bbit1  0x00000005 , 0x00000159 
+ 00000330  0x000001bb call  0x00000599 
+ 00000331  0x000001bc jam  0x00000000 , 0x00004e62 
+ 00000332  0x000001bd fetch  0x00000001 , 0x00004e20 
+ 00000333  0x000001be nbranch  0x00000153 , 0x00000034 
+ 00000334  0x000001bf fetch  0x00000001 , 0x00004ea5 
+ 00000335  0x000001c0 beq  0x00000001 , 0x00000157 
+ 00000336  0x000001c1 fetch  0x00000001 , 0x00000303 
+ 00000337  0x000001c2 branch  0x00004bde , 0x00000034 
+ 00000338  0x000001c3 branch  0x00004f87 
+ 00000339  0x000001c5 fetch  0x00000001 , 0x00004e20 
+ 00000340  0x000001c6 increase  0xffffffff , 0x0000003f 
+ 00000341  0x000001c7 store  0x00000001 , 0x00004e20 
+ 00000342  0x000001c8 branch  0x00004f87 
+ 00000343  0x000001ca jam  0x00000003 , 0x00004e20 
+ 00000344  0x000001cb branch  0x00004bde 
+ 00000345  0x000001ce fetch  0x00000001 , 0x00004e62 
+ 00000346  0x000001cf increase  0x00000001 , 0x0000003f 
+ 00000347  0x000001d0 store  0x00000001 , 0x00004e62 
+ 00000348  0x000001d1 branch  0x0000059d 
+ 00000349  0x000001d4 fetch  0x00000001 , 0x00004467 
+ 00000350  0x000001d5 beq  0x00000006 , 0x00000161 
+ 00000351  0x000001d6 beq  0x00000002 , 0x00000168 
+ 00000352  0x000001d7 branch  0x00004bfb 
+ 00000353  0x000001da fetch  0x00000001 , 0x00004e53 
+ 00000354  0x000001db beq  0x00000001 , 0x00000165 
+ 00000355  0x000001dc call  0x00003e6d 
+ 00000356  0x000001e2 branch  0x00004c86 
+ 00000357  0x000001e4 call  0x00000106 
+ 00000358  0x000001e5 jam  0x00000003 , 0x00004e52 
+ 00000359  0x000001e6 branch  0x00004c90 
+ 00000360  0x000001e9 setarg  0x00000013 
+ 00000361  0x000001ea istore  0x00000001 , 0x00000005 
+ 00000362  0x000001eb call  0x00004c58 
+ 00000363  0x000001ec setarg  0x0000000a 
+ 00000364  0x000001ed store  0x00000002 , 0x00000390 
+ 00000365  0x000001ee store  0x00000002 , 0x00004561 
+ 00000366  0x000001ef rtn 
+ 00000367  0x000001f2 fetch  0x00000001 , 0x0000446b 
+ 00000368  0x000001f3 beq  0x00000002 , 0x00000176 
+ 00000369  0x000001f4 beq  0x00000006 , 0x0000017d 
+ 00000370  0x000001f5 beq  0x00000007 , 0x00000174 
+ 00000371  0x000001f6 branch  0x00004c18 
+ 00000372  0x000001f8 jam  0x00000000 , 0x00004ea5 
+ 00000373  0x000001f9 branch  0x00004d17 
+ 00000374  0x000001fc setarg  0x01000302 
+ 00000375  0x000001fd store  0x00000003 , 0x000044dc 
+ 00000376  0x000001fe setarg  0x00000001 
+ 00000377  0x000001ff istore  0x00000001 , 0x00000005 
+ 00000378  0x00000200 setarg  0x00010010 
+ 00000379  0x00000201 istore  0x00000003 , 0x00000005 
+ 00000380  0x00000202 branch  0x00004ccd 
+ 00000381  0x00000205 jam  0x00000029 , 0x000009bd 
+ 00000382  0x00000206 call  0x00007d86 
+ 00000383  0x00000207 jam  0x00000047 , 0x000009bd 
+ 00000384  0x00000208 call  0x00004bd6 
+ 00000385  0x00000209 branch  0x00004d01 
+ 00000386  0x0000020c fetch  0x00000001 , 0x0000446b 
+ 00000387  0x0000020d beq  0x0000001b , 0x00000186 
+ 00000388  0x0000020e beq  0x0000001d , 0x00000186 
+ 00000389  0x0000020f branch  0x00004c2b 
+ 00000390  0x00000213 fetcht  0x00000002 , 0x00004e4e 
+ 00000391  0x00000214 storet  0x00000002 , 0x0000446c 
+ 00000392  0x00000215 fetch  0x00000001 , 0x00004e86 
+ 00000393  0x00000216 add  0x0000003f , 0x00000001 , 0x00000002 
+ 00000394  0x00000217 and  0x00000002 , 0x00000003 , 0x00000002 
+ 00000395  0x00000218 storet  0x00000001 , 0x00004e86 
+ 00000396  0x00000219 mul32  0x0000003f , 0x00000007 , 0x0000003f 
+ 00000397  0x0000021a arg  0x00004e87 , 0x00000006 
+ 00000398  0x0000021b iadd  0x00000006 , 0x00000006 
+ 00000399  0x0000021c ifetch  0x00000007 , 0x00000006 
+ 00000400  0x0000021d store  0x00000007 , 0x0000446e 
+ 00000401  0x0000021e arg  0x0000000e , 0x00000002 
+ 00000402  0x0000021f branch  0x00004f89 
+ 00000403  0x00000222 storet  0x00000001 , 0x00004466 
+ 00000404  0x00000223 compare  0x00000002 , 0x00000001 , 0x00000003 
+ 00000405  0x00000224 nbranch  0x00000198 , 0x00000001 
+ 00000406  0x00000225 add  0x00000002 , 0xfffffffc , 0x0000003f 
+ 00000407  0x00000226 store  0x00000002 , 0x00004467 
+ 00000408  0x00000228 fetcht  0x00000001 , 0x00000379 
+ 00000409  0x00000229 call  0x0000019b 
+ 00000410  0x0000022a branch  0x00004f92 
+ 00000411  0x0000022c fetch  0x00000001 , 0x00004ea5 
+ 00000412  0x0000022d beq  0x00000001 , 0x0000019e 
+ 00000413  0x0000022e branch  0x00004bd0 
+ 00000414  0x00000230 setarg  0x00000000 
+ 00000415  0x00000231 rtn 
+ 00000416  0x00000234 copy  0x00000013 , 0x0000003f 
+ 00000417  0x00000235 beq  0x00000000 , 0x000001a6 
+ 00000418  0x00000236 beq  0x00000002 , 0x000001a9 
+ 00000419  0x00000237 beq  0x00000003 , 0x000001ad 
+ 00000420  0x00000238 beq  0x0000000a , 0x000001b1 
+ 00000421  0x00000239 branch  0x00004fb9 
+ 00000422  0x0000023c jam  0x00000000 , 0x00004131 
+ 00000423  0x0000023d jam  0x0000003c , 0x00004e51 
+ 00000424  0x0000023e branch  0x0000501f 
+ 00000425  0x00000241 call  0x00005033 
+ 00000426  0x00000243 setarg  0x00000000 
+ 00000427  0x00000244 store  0x00000008 , 0x00004544 
+ 00000428  0x00000245 rtn 
+ 00000429  0x00000248 call  0x00005039 
+ 00000430  0x00000249 fetch  0x00000001 , 0x0000456a 
+ 00000431  0x0000024a rtneq  0x00000002 
+ 00000432  0x0000024b branch  0x00006418 
+ 00000433  0x0000024e jam  0x0000002b , 0x000009bd 
+ 00000434  0x0000024f branch  0x00004bd6 
+ 00000435  0x00000252 ifetch  0x00000001 , 0x00000006 
+ 00000436  0x00000253 beq  0x00000001 , 0x000001b6 
+ 00000437  0x00000254 branch  0x00004ffe 
+ 00000438  0x00000256 jam  0x00000001 , 0x00004ea5 
+ 00000439  0x00000257 jam  0x00000003 , 0x00004e20 
+ 00000440  0x00000258 branch  0x00005069 
+ 00000441  0x0000025b ifetch  0x00000003 , 0x00000006 
+ 00000442  0x0000025c store  0x00000003 , 0x0000039a 
+ 00000443  0x0000025d beq  0x00000012 , 0x000001bd 
+ 00000444  0x0000025e branch  0x00005011 
+ 00000445  0x00000261 jam  0x00000001 , 0x00004131 
+ 00000446  0x00000262 call  0x000001c9 
+ 00000447  0x00000263 fetch  0x00000001 , 0x0000039b 
+ 00000448  0x00000264 sub  0x0000003f , 0x00000060 , 0x0000003e 
+ 00000449  0x00000265 branch  0x000001ce , 0x00000005 
+ 00000450  0x00000266 jam  0x00000000 , 0x00004ea6 
+ 00000451  0x00000268 call  0x00005125 
+ 00000452  0x00000269 nrtn  0x00000005 
+ 00000453  0x0000026b fetch  0x00000001 , 0x00004ea6 
+ 00000454  0x0000026c ncall  0x000001d0 , 0x00000034 
+ 00000455  0x0000026d jam  0x00000013 , 0x000009bd 
+ 00000456  0x0000026e branch  0x00004bd6 
+ 00000457  0x00000270 fetch  0x00000001 , 0x00000303 
+ 00000458  0x00000271 increase  0xfffffff9 , 0x0000003f 
+ 00000459  0x00000272 icopy  0x00000039 
+ 00000460  0x00000273 copy  0x00000039 , 0x00000012 
+ 00000461  0x00000274 branch  0x00005135 
+ 00000462  0x00000277 jam  0x00000001 , 0x00004ea6 
+ 00000463  0x00000278 branch  0x000001c3 
+ 00000464  0x0000027b jam  0x00000029 , 0x000009bd 
+ 00000465  0x0000027c branch  0x00007d86 
+ 00000466  0x00000280 fetch  0x00000001 , 0x000043ff 
+ 00000467  0x00000281 rtn  0x00000034 
+ 00000468  0x00000282 arg  0x00000001 , 0x00000007 
+ 00000469  0x00000283 call  0x00007ee2 
+ 00000470  0x00000284 nrtn  0x00000034 
+ 00000471  0x00000285 disable  0x00000029 
+ 00000472  0x00000286 enable  0x00000010 
+ 00000473  0x00000287 call  0x00004b1e 
+ 00000474  0x00000288 call  0x000049d4 
+ 00000475  0x00000289 call  0x00004a8a 
+ 00000476  0x0000028a nbranch  0x000001e4 , 0x0000002d 
+ 00000477  0x0000028b fetch  0x00000001 , 0x00000003 
+ 00000478  0x0000028c increase  0x00000001 , 0x0000003f 
+ 00000479  0x0000028d store  0x00000001 , 0x00000003 
+ 00000480  0x0000028e fetch  0x00000001 , 0x00000302 
+ 00000481  0x0000028f and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00000482  0x00000290 beq  0x00000003 , 0x000001ee 
+ 00000483  0x00000291 beq  0x00000005 , 0x000051af 
+ 00000484  0x00000293 fetch  0x00000001 , 0x00000016 
+ 00000485  0x00000294 bne  0x00000027 , 0x0000517d 
+ 00000486  0x00000295 random  0x0000003f 
+ 00000487  0x00000296 arg  0x000001ff , 0x00000002 
+ 00000488  0x00000297 iand  0x00000002 , 0x0000003f 
+ 00000489  0x00000298 add  0x0000003f , 0x000000fa , 0x0000003f 
+ 00000490  0x0000029a increase  0xffffffff , 0x0000003f 
+ 00000491  0x0000029b nop  0x00000026 
+ 00000492  0x0000029c nbranch  0x000001ea , 0x00000034 
+ 00000493  0x0000029d branch  0x00005196 
+ 00000494  0x000002a0 call  0x00004ac5 
+ 00000495  0x000002a1 branch  0x000001e4 
+ 00000496  0x000002a4 fetch  0x00000004 , 0x00004596 
+ 00000497  0x000002a5 arg  0x0000ea60 , 0x00000002 
+ 00000498  0x000002a6 iadd  0x00000002 , 0x0000003f 
+ 00000499  0x000002a7 store  0x00000004 , 0x00004596 
+ 00000500  0x000002a8 branch  0x000051a9 
+ 00000501  0x000002ac disable  0x0000002b 
+ 00000502  0x000002ad branch  0x000001f8 , 0x0000002e 
+ 00000503  0x000002ae nbranch  0x00000207 , 0x0000002d 
+ 00000504  0x000002b0 call  0x00003cb7 
+ 00000505  0x000002b1 fetch  0x00000002 , 0x00004161 
+ 00000506  0x000002b2 store  0x00000002 , 0x00000370 
+ 00000507  0x000002b3 fetch  0x00000001 , 0x00000302 
+ 00000508  0x000002b4 compare  0x00000001 , 0x0000003f , 0x00000003 
+ 00000509  0x000002b5 nbranch  0x00003ccb , 0x00000001 
+ 00000510  0x000002b6 fetch  0x00000001 , 0x00004465 
+ 00000511  0x000002b7 compare  0x00000001 , 0x0000003f , 0x00000003 
+ 00000512  0x000002b8 nbranch  0x00003ccb , 0x00000001 
+ 00000513  0x000002b9 call  0x00004bd0 
+ 00000514  0x000002ba nbranch  0x00003ccb , 0x00000034 
+ 00000515  0x000002bb fetch  0x00000001 , 0x00004e62 
+ 00000516  0x000002bc sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00000517  0x000002bd nbranch  0x00003ccb , 0x00000002 
+ 00000518  0x000002be branch  0x00005297 
+ 00000519  0x000002c1 fetcht  0x00000002 , 0x00004161 
+ 00000520  0x000002c2 fetch  0x00000002 , 0x00004e60 
+ 00000521  0x000002c3 iadd  0x00000002 , 0x00000002 
+ 00000522  0x000002c4 rshift  0x00000002 , 0x00000002 
+ 00000523  0x000002c5 fetch  0x00000002 , 0x00000370 
+ 00000524  0x000002c6 iadd  0x00000002 , 0x0000003f 
+ 00000525  0x000002c7 store  0x00000002 , 0x00000370 
+ 00000526  0x000002c8 branch  0x00003cc3 
+ 00000527  0x000002cb call  0x0000021d 
+ 00000528  0x000002cc arg  0x00000003 , 0x00000039 
+ 00000529  0x000002cd arg  0x00004ead , 0x00000006 
+ 00000530  0x000002cf setarg  0x0000ffff 
+ 00000531  0x000002d0 call  0x00000221 
+ 00000532  0x000002d1 nrtn  0x00000005 
+ 00000533  0x000002d3 fetch  0x00000001 , 0x00004ea8 
+ 00000534  0x000002d4 rtn  0x00000034 
+ 00000535  0x000002d5 increase  0xffffffff , 0x0000003f 
+ 00000536  0x000002d6 store  0x00000001 , 0x00004ea8 
+ 00000537  0x000002d7 call  0x0000022a 
+ 00000538  0x000002d8 rtn  0x00000005 
+ 00000539  0x000002d9 jam  0x00000001 , 0x00004ea7 
+ 00000540  0x000002da rtn 
+ 00000541  0x000002dd arg  0x0000000c , 0x00000002 
+ 00000542  0x000002de arg  0x00004ead , 0x00000011 
+ 00000543  0x000002df fetch  0x00000002 , 0x00004eab 
+ 00000544  0x000002e0 branch  0x0000624a 
+ 00000545  0x000002e2 ifetcht  0x00000002 , 0x00000006 
+ 00000546  0x000002e3 isub  0x00000002 , 0x0000003e 
+ 00000547  0x000002e4 nrtn  0x00000005 
+ 00000548  0x000002e5 loop  0x00000221 
+ 00000549  0x000002e6 rtn 
+ 00000550  0x000002e9 arg  0x00000002 , 0x00000002 
+ 00000551  0x000002ea arg  0x000009ce , 0x00000011 
+ 00000552  0x000002eb arg  0x00000030 , 0x00000012 
+ 00000553  0x000002ec branch  0x0000626f 
+ 00000554  0x000002ef arg  0x00000002 , 0x00000002 
+ 00000555  0x000002f0 arg  0x000009be , 0x00000011 
+ 00000556  0x000002f1 arg  0x00000030 , 0x00000012 
+ 00000557  0x000002f2 call  0x00006245 
+ 00000558  0x000002f3 fetch  0x00000002 , 0x000009be 
+ 00000559  0x000002f4 arg  0x0000aa55 , 0x00000002 
+ 00000560  0x000002f5 isub  0x00000002 , 0x0000003e 
+ 00000561  0x000002f6 rtn 
+ 00000562  0x000002fd hfetch  0x00000004 , 0x00008078 
+ 00000563  0x000002fe hfetcht  0x00000004 , 0x0000807c 
+ 00000564  0x000002ff ior  0x00000002 , 0x0000003f 
+ 00000565  0x00000300 invert  0x0000003f , 0x0000003f 
+ 00000566  0x00000301 iand  0x00000011 , 0x0000003f 
+ 00000567  0x00000302 hstore  0x00000004 , 0x00008070 
+ 00000568  0x00000303 rtn 
+ 00000569  0x00000306 copy  0x00000011 , 0x0000003f 
+ 00000570  0x00000307 rtn  0x00000034 
+ 00000571  0x00000308 increase  0xffffff60 , 0x00000002 
+ 00000572  0x00000309 increase  0xffffff60 , 0x00000002 
+ 00000573  0x0000030a set0  0x0000001c , 0x00000002 
+ 00000574  0x0000030b storet  0x00000004 , 0x00004703 
+ 00000575  0x0000030c copy  0x0000003f , 0x00000002 
+ 00000576  0x0000030d arg  0x000046f0 , 0x00000011 
+ 00000577  0x0000030e call  0x00007fa6 
+ 00000578  0x0000030f nrtn  0x00000034 
+ 00000579  0x00000310 copy  0x00000002 , 0x0000003f 
+ 00000580  0x00000311 branch  0x00007d7d 
+ 00000581  0x00000315 call  0x00007d80 
+ 00000582  0x00000316 arg  0x000046f8 , 0x00000011 
+ 00000583  0x00000317 call  0x00007f95 
+ 00000584  0x00000318 copy  0x0000003f , 0x00000002 
+ 00000585  0x00000319 call  0x00007d84 
+ 00000586  0x0000031a copy  0x00000002 , 0x0000003f 
+ 00000587  0x0000031b rtn  0x00000034 
+ 00000588  0x00000321 beq  0x0000000d , 0x0000024f 
+ 00000589  0x00000322 beq  0x00000027 , 0x0000025e 
+ 00000590  0x00000323 branch  0x00007db3 
+ 00000591  0x00000338 set0  0x00000026 , 0x00000000 
+ 00000592  0x00000339 jam  0x00000000 , 0x00004131 
+ 00000593  0x0000033a random  0x0000003f 
+ 00000594  0x0000033b store  0x00000001 , 0x0000453e 
+ 00000595  0x0000033d setarg  0x0026100e 
+ 00000596  0x0000033e store  0x00000003 , 0x00004541 
+ 00000597  0x0000033f jam  0x00000000 , 0x00004e53 
+ 00000598  0x00000340 fetcht  0x00000002 , 0x00004e4e 
+ 00000599  0x00000341 storet  0x00000002 , 0x000044f8 
+ 00000600  0x00000342 call  0x000052a0 
+ 00000601  0x00000343 arg  0x00000005 , 0x00000012 
+ 00000602  0x00000345 call  0x00000268 
+ 00000603  0x00000347 copy  0x00000012 , 0x0000003f 
+ 00000604  0x00000348 istore  0x00000001 , 0x00000006 
+ 00000605  0x00000349 branch  0x00007e07 
+ 00000606  0x0000034c set0  0x00000026 , 0x00000000 
+ 00000607  0x0000034d jam  0x00000000 , 0x00004131 
+ 00000608  0x0000034e jam  0x00000001 , 0x00004e53 
+ 00000609  0x0000034f fetcht  0x00000002 , 0x00004e4e 
+ 00000610  0x00000350 call  0x00004f6a 
+ 00000611  0x00000351 copy  0x00000011 , 0x00000005 
+ 00000612  0x00000352 setarg  0x00000001 
+ 00000613  0x00000353 istore  0x00000001 , 0x00000005 
+ 00000614  0x00000354 arg  0x00000004 , 0x00000012 
+ 00000615  0x00000355 branch  0x0000025a 
+ 00000616  0x0000035c arg  0x00004401 , 0x00000011 
+ 00000617  0x0000035e ifetch  0x00000001 , 0x00000011 
+ 00000618  0x0000035f rtn  0x00000034 
+ 00000619  0x00000360 iadd  0x00000006 , 0x00000011 
+ 00000620  0x00000361 ifetch  0x00000001 , 0x00000006 
+ 00000621  0x00000362 rtneq  0x00000001 
+ 00000622  0x00000363 branch  0x00000269 
+ 00000623  0x00000367 call  0x000058c5 
+ 00000624  0x00000368 nbranch  0x00007de5 , 0x00000034 
+ 00000625  0x0000036a fetch  0x00000001 , 0x000009bd 
+ 00000626  0x0000036b bmark0  0x00000009 , 0x00007de0 
+ 00000627  0x0000036e beq  0x0000001f , 0x00000295 
+ 00000628  0x00000370 branch  0x00007dd0 
+ 00000629  0x00000382 jam  0x00000003 , 0x00000b2a 
+ 00000630  0x00000383 call  0x000000b1 
+ 00000631  0x00000386 jam  0x0000005a , 0x00004e45 
+ 00000632  0x00000387 call  0x00003cfc 
+ 00000633  0x00000388 hfetch  0x00000004 , 0x00008138 
+ 00000634  0x00000389 set0  0x0000000f , 0x0000003f 
+ 00000635  0x0000038a hstore  0x00000004 , 0x0000804c 
+ 00000636  0x0000038b call  0x00003cf4 
+ 00000637  0x0000038c arg  0xffffffff , 0x00000002 
+ 00000638  0x0000038d branch  0x00003c11 
+ 00000639  0x00000391 fetcht  0x00000004 , 0x0000489e 
+ 00000640  0x00000392 copy  0x00000022 , 0x0000003f 
+ 00000641  0x00000393 isub  0x00000002 , 0x0000003f 
+ 00000642  0x00000395 arg  0x00000640 , 0x00000002 
+ 00000643  0x00000396 idiv  0x00000002 
+ 00000644  0x00000397 call  0x00007f53 
+ 00000645  0x00000398 quotient  0x0000003f 
+ 00000646  0x00000399 rtn  0x00000034 
+ 00000647  0x0000039a copy  0x00000022 , 0x00000002 
+ 00000648  0x0000039b storet  0x00000004 , 0x0000489e 
+ 00000649  0x0000039c fetcht  0x00000002 , 0x00004898 
+ 00000650  0x0000039d byteswap  0x00000002 , 0x00000002 
+ 00000651  0x0000039e iadd  0x00000002 , 0x0000003f 
+ 00000652  0x0000039f byteswap  0x0000003f , 0x0000003f 
+ 00000653  0x000003a0 store  0x00000002 , 0x00004898 
+ 00000654  0x000003a1 byteswap  0x0000003f , 0x0000003f 
+ 00000655  0x000003a2 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00000656  0x000003a3 rtnne  0x00000000 
+ 00000657  0x000003a4 call  0x000002b3 
+ 00000658  0x000003a5 nrtn  0x0000002c 
+ 00000659  0x000003a7 fetch  0x00000001 , 0x000042cf 
+ 00000660  0x000003a8 bbit1  0x00000002 , 0x00000296 
+ 00000661  0x000003aa rtn 
+ 00000662  0x000003af hfetch  0x00000001 , 0x00008078 
+ 00000663  0x000003b0 set0  0x00000005 , 0x0000003f 
+ 00000664  0x000003b1 hstore  0x00000001 , 0x00008078 
+ 00000665  0x000003b2 hjam  0x0000008f , 0x00008971 
+ 00000666  0x000003b3 fetch  0x00000001 , 0x000042d0 
+ 00000667  0x000003b4 hstore  0x00000001 , 0x00008973 
+ 00000668  0x000003b5 call  0x000002a1 
+ 00000669  0x000003b6 hfetch  0x00000001 , 0x00008078 
+ 00000670  0x000003b7 set1  0x00000005 , 0x0000003f 
+ 00000671  0x000003b8 hstore  0x00000001 , 0x00008078 
+ 00000672  0x000003b9 rtn 
+ 00000673  0x000003bc hfetch  0x00000001 , 0x00008053 
+ 00000674  0x000003bd set1  0x00000007 , 0x0000003f 
+ 00000675  0x000003be hstore  0x00000001 , 0x00008053 
+ 00000676  0x000003bf hfetch  0x00000001 , 0x00008973 
+ 00000677  0x000003c0 or_into  0x00000030 , 0x0000003f 
+ 00000678  0x000003c1 hstore  0x00000001 , 0x00008973 
+ 00000679  0x000003c2 hjam  0x0000007c , 0x00008906 
+ 00000680  0x000003c3 hjam  0x000000aa , 0x00008972 
+ 00000681  0x000003c4 nop  0x00001388 
+ 00000682  0x000003c5 hfetcht  0x00000002 , 0x00008150 
+ 00000683  0x000003c6 hfetch  0x00000001 , 0x00008053 
+ 00000684  0x000003c7 set0  0x00000007 , 0x0000003f 
+ 00000685  0x000003c8 hstore  0x00000001 , 0x00008053 
+ 00000686  0x000003c9 byteswap  0x00000002 , 0x00000002 
+ 00000687  0x000003ca storet  0x00000002 , 0x000042d1 
+ 00000688  0x000003cb rtn 
+ 00000689  0x000003ce enable  0x0000002c 
+ 00000690  0x000003cf rtn 
+ 00000691  0x000003d1 disable  0x0000002c 
+ 00000692  0x000003d2 call  0x00004bd0 
+ 00000693  0x000003d3 call  0x000002b1 , 0x00000034 
+ 00000694  0x000003d8 rtn 
+ 00000695  0x000003db jam  0x00000001 , 0x00004ea3 
+ 00000696  0x000003dc call  0x000002bb 
+ 00000697  0x000003dd jam  0x00000000 , 0x00004ea3 
+ 00000698  0x000003de rtn 
+ 00000699  0x000003e1 call  0x000000ac 
+ 00000700  0x000003e2 rtn  0x00000028 
+ 00000701  0x000003e3 byteswap  0x0000003f , 0x0000003f 
+ 00000702  0x000003e4 copy  0x0000003f , 0x00000006 
+ 00000703  0x000003e5 call  0x000002e0 
+ 00000704  0x000003e6 store  0x00000001 , 0x00004897 
+ 00000705  0x000003e7 beq  0x00000001 , 0x000002cb 
+ 00000706  0x000003eb copy  0x0000003f , 0x00000002 
+ 00000707  0x000003ec copy  0x00000006 , 0x00000011 
+ 00000708  0x000003ed fetch  0x00000001 , 0x00004040 
+ 00000709  0x000003ee bbit0  0x00000000 , 0x000002d5 
+ 00000710  0x000003ef copy  0x00000011 , 0x00000006 
+ 00000711  0x000003f0 rtnmark0  0x00000009 
+ 00000712  0x000003f1 copy  0x00000002 , 0x0000003f 
+ 00000713  0x000003f2 beq  0x00000005 , 0x0000030e 
+ 00000714  0x000003f3 branch  0x00003b31 
+ 00000715  0x000003f6 call  0x000002e0 
+ 00000716  0x000003f7 call  0x000002e0 
+ 00000717  0x000003f8 store  0x00000001 , 0x000009bd 
+ 00000718  0x000003f9 call  0x000002d0 
+ 00000719  0x000003fa branch  0x00007d90 
+ 00000720  0x000003fd call  0x000002e3 
+ 00000721  0x000003fe copy  0x00000006 , 0x00000002 
+ 00000722  0x000003ff byteswap  0x00000002 , 0x00000002 
+ 00000723  0x00000400 storet  0x00000002 , 0x000047c4 
+ 00000724  0x00000401 rtn 
+ 00000725  0x00000404 copy  0x00000011 , 0x00000006 
+ 00000726  0x00000405 arg  0x000000f5 , 0x00000005 
+ 00000727  0x00000406 branch  0x000002d8 
+ 00000728  0x00000409 call  0x000002e0 
+ 00000729  0x0000040a copy  0x0000003f , 0x00000039 
+ 00000730  0x0000040c call  0x000002dc 
+ 00000731  0x0000040d branch  0x000002d0 
+ 00000732  0x00000410 call  0x000002e0 
+ 00000733  0x00000411 istore  0x00000001 , 0x00000005 
+ 00000734  0x00000412 loop  0x000002dc 
+ 00000735  0x00000413 rtn 
+ 00000736  0x00000416 call  0x000002e3 
+ 00000737  0x00000417 ifetch  0x00000001 , 0x00000006 
+ 00000738  0x00000418 rtn 
+ 00000739  0x0000041b setarg  0x000047c4 
+ 00000740  0x0000041c isub  0x00000006 , 0x0000003e 
+ 00000741  0x0000041d nrtn  0x00000005 
+ 00000742  0x0000041e arg  0x0000472e , 0x00000006 
+ 00000743  0x0000041f rtn 
+ 00000744  0x00000422 arg  0x00000003 , 0x00000039 
+ 00000745  0x00000423 arg  0x00004894 , 0x00000006 
+ 00000746  0x00000425 copy  0x00000006 , 0x00000011 
+ 00000747  0x00000426 fetch  0x00000002 , 0x0000482e 
+ 00000748  0x00000427 byteswap  0x0000003f , 0x0000003f 
+ 00000749  0x00000428 copy  0x0000003f , 0x00000005 
+ 00000750  0x00000429 copy  0x00000011 , 0x00000006 
+ 00000751  0x0000042b ifetch  0x00000001 , 0x00000006 
+ 00000752  0x0000042c istore  0x00000001 , 0x00000005 
+ 00000753  0x0000042d call  0x000002f7 
+ 00000754  0x0000042e loop  0x000002ef 
+ 00000755  0x0000042f copy  0x00000005 , 0x0000003f 
+ 00000756  0x00000430 byteswap  0x0000003f , 0x0000003f 
+ 00000757  0x00000431 store  0x00000002 , 0x0000482e 
+ 00000758  0x00000432 rtn 
+ 00000759  0x00000434 setarg  0x0000482c 
+ 00000760  0x00000435 isub  0x00000005 , 0x0000003e 
+ 00000761  0x00000436 nrtn  0x00000005 
+ 00000762  0x00000437 arg  0x000047c8 , 0x00000005 
+ 00000763  0x00000438 rtn 
+ 00000764  0x00000445 setarg  0x00000000 
+ 00000765  0x00000446 store  0x00000003 , 0x00004e85 
+ 00000766  0x00000447 rtn 
+ 00000767  0x0000044a rtnmark1  0x00000026 
+ 00000768  0x0000044b fetch  0x00000001 , 0x00004595 
+ 00000769  0x0000044c rtn  0x00000034 
+ 00000770  0x0000044d call  0x000000ac 
+ 00000771  0x0000044e rtn  0x00000028 
+ 00000772  0x0000044f byteswap  0x0000003f , 0x0000003f 
+ 00000773  0x00000450 copy  0x0000003f , 0x00000006 
+ 00000774  0x00000451 call  0x000002e0 
+ 00000775  0x00000452 store  0x00000001 , 0x00004897 
+ 00000776  0x00000453 copy  0x00000006 , 0x00000011 
+ 00000777  0x00000454 bne  0x00000005 , 0x000002d5 
+ 00000778  0x00000455 copy  0x00000006 , 0x00000012 
+ 00000779  0x00000456 call  0x00004bd4 
+ 00000780  0x00000457 nrtn  0x00000034 
+ 00000781  0x00000458 branch  0x00000313 
+ 00000782  0x0000045b copy  0x00000006 , 0x00000012 
+ 00000783  0x0000045c fetch  0x00000001 , 0x00004ea3 
+ 00000784  0x0000045d rtn  0x00000034 
+ 00000785  0x0000045e call  0x00004bd0 
+ 00000786  0x0000045f nrtn  0x00000034 
+ 00000787  0x00000461 fetcht  0x00000002 , 0x00004e4e 
+ 00000788  0x00000462 call  0x00004f6a 
+ 00000789  0x00000463 rtnbit0  0x00000000 
+ 00000790  0x00000464 fetch  0x00000001 , 0x00004595 
+ 00000791  0x00000465 rtneq  0x00000000 
+ 00000792  0x00000466 fetch  0x00000001 , 0x00004e83 
+ 00000793  0x00000467 pincrease  0x00000001 
+ 00000794  0x00000468 store  0x00000001 , 0x00004e83 
+ 00000795  0x00000469 fetch  0x00000001 , 0x00004e85 
+ 00000796  0x0000046a add  0x0000003f , 0x00000001 , 0x00000002 
+ 00000797  0x0000046b and  0x00000002 , 0x00000003 , 0x00000002 
+ 00000798  0x0000046c storet  0x00000001 , 0x00004e85 
+ 00000799  0x0000046d mul32  0x0000003f , 0x00000007 , 0x0000003f 
+ 00000800  0x0000046e arg  0x00004e87 , 0x00000005 
+ 00000801  0x0000046f iadd  0x00000005 , 0x00000005 
+ 00000802  0x00000470 copy  0x00000012 , 0x00000006 
+ 00000803  0x00000471 call  0x000002e0 
+ 00000804  0x00000472 icopy  0x00000039 
+ 00000805  0x00000473 call  0x000002da 
+ 00000806  0x00000474 call  0x0000032a 
+ 00000807  0x00000475 rtn  0x0000002c 
+ 00000808  0x00000476 jam  0x0000001b , 0x000009bd 
+ 00000809  0x00000477 branch  0x00004bd6 
+ 00000810  0x0000047a disable  0x0000002c 
+ 00000811  0x0000047b fetch  0x00000001 , 0x00004ea4 
+ 00000812  0x0000047c rtneq  0x00000005 
+ 00000813  0x0000047d enable  0x0000002c 
+ 00000814  0x0000047e increase  0x00000001 , 0x0000003f 
+ 00000815  0x0000047f store  0x00000001 , 0x00004ea4 
+ 00000816  0x00000480 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00000817  0x00000481 nrtn  0x00000002 
+ 00000818  0x00000482 jam  0x00000040 , 0x00004896 
+ 00000819  0x00000483 branch  0x000002e8 
+ 00000820  0x0000048c setarg  0x0000472e 
+ 00000821  0x0000048d byteswap  0x0000003f , 0x0000003f 
+ 00000822  0x0000048e store  0x00000002 , 0x000047c4 
+ 00000823  0x0000048f store  0x00000002 , 0x000047c6 
+ 00000824  0x00000490 setarg  0x000047c8 
+ 00000825  0x00000491 byteswap  0x0000003f , 0x0000003f 
+ 00000826  0x00000492 store  0x00000002 , 0x0000482c 
+ 00000827  0x00000493 store  0x00000002 , 0x0000482e 
+ 00000828  0x00000494 rtn 
+ 00000829  0x00000497 fetch  0x00000002 , 0x00004ea9 
+ 00000830  0x00000498 add  0x0000003f , 0x0000001c , 0x0000003f 
+ 00000831  0x00000499 store  0x00000002 , 0x00004eab 
+ 00000832  0x0000049a rtn 
+ 00000833  0x0000049d call  0x0000524a 
+ 00000834  0x000004a0 jam  0x00000000 , 0x00000b2a 
+ 00000835  0x000004a1 jam  0x00000006 , 0x0000016c 
+ 00000836  0x000004a2 call  0x00003e7f 
+ 00000837  0x000004a5 setarg  0x000003bf 
+ 00000838  0x000004a6 store  0x00000002 , 0x00004296 
+ 00000839  0x000004a9 setarg  0x000002b7 
+ 00000840  0x000004ab store  0x00000002 , 0x00004290 
+ 00000841  0x000004ac setarg  0x000003b8 
+ 00000842  0x000004ad store  0x00000002 , 0x0000428c 
+ 00000843  0x000004ae ncall  0x00000334 , 0x0000002b 
+ 00000844  0x000004af call  0x00000380 , 0x0000002b 
+ 00000845  0x000004b0 call  0x00003d3e 
+ 00000846  0x000004b2 fetch  0x00000001 , 0x00004eba 
+ 00000847  0x000004b3 branch  0x0000035a , 0x00000034 
+ 00000848  0x000004b4 increase  0xffffffff , 0x0000003f 
+ 00000849  0x000004b5 store  0x00000001 , 0x00004eba 
+ 00000850  0x000004b6 setarg  0x00003f80 
+ 00000851  0x000004b7 store  0x00000002 , 0x00004ea9 
+ 00000852  0x000004b8 call  0x0000033d 
+ 00000853  0x000004ba fetch  0x00000001 , 0x00004e53 
+ 00000854  0x000004bb nbranch  0x0000035a , 0x00000034 
+ 00000855  0x000004bc fetch  0x00000001 , 0x00004eb9 
+ 00000856  0x000004bd nbranch  0x0000035a , 0x00000034 
+ 00000857  0x000004be call  0x0000020f 
+ 00000858  0x000004c0 fetch  0x00000001 , 0x00004e45 
+ 00000859  0x000004c1 beq  0x0000005a , 0x00000394 
+ 00000860  0x000004c2 branch  0x00000392 , 0x0000002b 
+ 00000861  0x000004c3 fetch  0x00000001 , 0x00004280 
+ 00000862  0x000004c4 store  0x00000001 , 0x000049c3 
+ 00000863  0x000004c5 call  0x00000596 
+ 00000864  0x000004c6 fetch  0x00000002 , 0x00004e41 
+ 00000865  0x000004c7 byteswap  0x0000003f , 0x0000003f 
+ 00000866  0x000004c8 store  0x00000002 , 0x00004e41 
+ 00000867  0x000004c9 fetch  0x00000002 , 0x00004e43 
+ 00000868  0x000004ca byteswap  0x0000003f , 0x0000003f 
+ 00000869  0x000004cb store  0x00000002 , 0x00004e43 
+ 00000870  0x000004cc call  0x0000039f 
+ 00000871  0x000004d0 fetch  0x00000008 , 0x000009c6 
+ 00000872  0x000004d1 nbranch  0x0000036d , 0x00000034 
+ 00000873  0x000004d2 fetch  0x00000002 , 0x00004ad4 
+ 00000874  0x000004d3 byteswap  0x0000003f , 0x0000003f 
+ 00000875  0x000004d4 branch  0x0000036d , 0x00000034 
+ 00000876  0x000004d5 store  0x00000002 , 0x00004e43 
+ 00000877  0x000004d7 jam  0x0000002f , 0x00004896 
+ 00000878  0x000004d9 fetch  0x00000001 , 0x00004e78 
+ 00000879  0x000004da nbranch  0x00000375 , 0x00000034 
+ 00000880  0x000004db call  0x00000293 
+ 00000881  0x000004dc call  0x000002e8 
+ 00000882  0x000004dd call  0x000002ff 
+ 00000883  0x000004de hjam  0x00000003 , 0x00008280 
+ 00000884  0x000004df rtn 
+ 00000885  0x000004e1 call  0x00003c29 , 0x0000002b 
+ 00000886  0x000004e2 arg  0x00000d00 , 0x0000000b 
+ 00000887  0x000004e3 until  0x00000023 , 0x00000026 
+ 00000888  0x000004e4 copy  0x00000022 , 0x0000003f 
+ 00000889  0x000004e5 store  0x00000003 , 0x00004e7a 
+ 00000890  0x000004e7 fetch  0x00000002 , 0x0000470b 
+ 00000891  0x000004e8 rtnbit1  0x0000000b 
+ 00000892  0x000004e9 rtnbit1  0x00000006 
+ 00000893  0x000004ea call  0x00003d60 
+ 00000894  0x000004eb call  0x00000493 
+ 00000895  0x000004ec branch  0x0000037a 
+ 00000896  0x000004ef copy  0x00000027 , 0x0000003f 
+ 00000897  0x000004f0 bmark0  0x00000026 , 0x0000038a 
+ 00000898  0x000004f3 branch  0x00000385 , 0x00000034 
+ 00000899  0x000004f5 jam  0x000000bb , 0x000049b9 
+ 00000900  0x000004f6 rtn 
+ 00000901  0x000004f8 jam  0x00000000 , 0x000049b9 
+ 00000902  0x000004f9 fetch  0x00000001 , 0x000049b7 
+ 00000903  0x000004fa rtn  0x00000034 
+ 00000904  0x000004fb jam  0x00000000 , 0x000049b7 
+ 00000905  0x000004fc branch  0x00000383 
+ 00000906  0x00000500 branch  0x0000038d , 0x00000034 
+ 00000907  0x00000501 jam  0x00000002 , 0x000049c1 
+ 00000908  0x00000502 rtn 
+ 00000909  0x00000504 fetch  0x00000001 , 0x000049c2 
+ 00000910  0x00000505 rtn  0x00000034 
+ 00000911  0x00000506 jam  0x00000000 , 0x000049c2 
+ 00000912  0x00000507 jam  0x00000001 , 0x000049c1 
+ 00000913  0x00000508 rtn 
+ 00000914  0x0000050b jam  0x0000003c , 0x00004896 
+ 00000915  0x0000050c branch  0x0000036e 
+ 00000916  0x0000050e copy  0x00000027 , 0x0000003f 
+ 00000917  0x0000050f branch  0x00000277 , 0x00000034 
+ 00000918  0x00000510 call  0x0000530d 
+ 00000919  0x00000511 call  0x000042eb 
+ 00000920  0x00000512 setarg  0x00000000 
+ 00000921  0x00000513 store  0x00000008 , 0x00004040 
+ 00000922  0x00000514 store  0x00000002 , 0x0000470b 
+ 00000923  0x00000515 store  0x00000002 , 0x00004898 
+ 00000924  0x00000516 store  0x00000002 , 0x0000489a 
+ 00000925  0x00000517 jam  0x0000003d , 0x00004896 
+ 00000926  0x00000518 branch  0x0000036e 
+ 00000927  0x0000051b call  0x000062c4 
+ 00000928  0x0000051c setarg  0x000007e2 
+ 00000929  0x0000051d arg  0x000009c6 , 0x00000011 
+ 00000930  0x0000051e arg  0x0000000c , 0x00000002 
+ 00000931  0x0000051f call  0x0000630d 
+ 00000932  0x00000520 call  0x000062c7 
+ 00000933  0x00000521 fetch  0x00000008 , 0x000009c6 
+ 00000934  0x00000522 rtn  0x00000034 
+ 00000935  0x00000523 fetch  0x00000001 , 0x000042cf 
+ 00000936  0x00000524 bbit1  0x00000002 , 0x000003aa 
+ 00000937  0x00000525 rtn 
+ 00000938  0x0000052a fetcht  0x00000002 , 0x000009c6 
+ 00000939  0x0000052b fetch  0x00000002 , 0x000009cc 
+ 00000940  0x0000052c copy  0x00000002 , 0x00000012 
+ 00000941  0x0000052d copy  0x0000003f , 0x00000011 
+ 00000942  0x0000052e isub  0x00000002 , 0x00000013 
+ 00000943  0x0000052f copy  0x00000012 , 0x0000003f 
+ 00000944  0x00000530 isub  0x00000013 , 0x0000003f 
+ 00000945  0x00000531 byteswap  0x0000003f , 0x0000003f 
+ 00000946  0x00000532 store  0x00000002 , 0x00004e41 
+ 00000947  0x00000533 lshift2  0x00000013 , 0x0000003f 
+ 00000948  0x00000534 iadd  0x00000011 , 0x0000003f 
+ 00000949  0x00000535 byteswap  0x0000003f , 0x0000003f 
+ 00000950  0x00000536 store  0x00000002 , 0x00004e43 
+ 00000951  0x00000537 rtn 
+ 00000952  0x0000053b enable  0x00000028 
+ 00000953  0x0000053c hfetch  0x00000004 , 0x00008138 
+ 00000954  0x0000053d setflag  0x00000028 , 0x0000001a , 0x0000003f 
+ 00000955  0x0000053e hstore  0x00000004 , 0x0000804c 
+ 00000956  0x0000053f call  0x00003cf4 
+ 00000957  0x00000540 jam  0x00000001 , 0x0000009f 
+ 00000958  0x00000542 rtn 
+ 00000959  0x00000548 copy  0x00000013 , 0x0000003f 
+ 00000960  0x00000549 and_into  0x000000f0 , 0x0000003f 
+ 00000961  0x0000054a rtneq  0x00000050 
+ 00000962  0x0000054b copy  0x00000013 , 0x0000003f 
+ 00000963  0x0000054c store  0x00000001 , 0x00004896 
+ 00000964  0x0000054d branch  0x000002e8 
+ 00000965  0x00000551 jam  0x00000000 , 0x00004927 
+ 00000966  0x00000552 jam  0x0000004e , 0x00004932 
+ 00000967  0x00000553 fetch  0x00000004 , 0x00004934 
+ 00000968  0x00000555 store  0x00000004 , 0x00004950 
+ 00000969  0x00000556 branch  0x00000459 
+ 00000970  0x0000055a fetcht  0x00000001 , 0x00004933 
+ 00000971  0x0000055b call  0x000003d0 
+ 00000972  0x0000055c increase  0x00000001 , 0x00000002 
+ 00000973  0x0000055d and_into  0x00000003 , 0x00000002 
+ 00000974  0x0000055e storet  0x00000001 , 0x00004933 
+ 00000975  0x0000055f rtn 
+ 00000976  0x00000562 fetch  0x00000001 , 0x00004950 
+ 00000977  0x00000563 and_into  0x00000003 , 0x0000003f 
+ 00000978  0x00000564 mul32  0x0000003f , 0x00000004 , 0x00000011 
+ 00000979  0x00000565 setarg  0x00004939 
+ 00000980  0x00000566 iadd  0x00000011 , 0x0000003f 
+ 00000981  0x00000567 iadd  0x00000002 , 0x00000006 
+ 00000982  0x00000568 ifetch  0x00000001 , 0x00000006 
+ 00000983  0x00000569 store  0x00000001 , 0x00004932 
+ 00000984  0x0000056a rtn 
+ 00000985  0x00000576 jam  0x00000001 , 0x000049b0 
+ 00000986  0x00000577 jam  0x00000000 , 0x000049b2 
+ 00000987  0x00000579 fetch  0x00000001 , 0x00004929 
+ 00000988  0x0000057a and_into  0x00000007 , 0x0000003f 
+ 00000989  0x0000057b store  0x00000001 , 0x00004929 
+ 00000990  0x0000057c rtn 
+ 00000991  0x0000057f fetch  0x00000001 , 0x00004929 
+ 00000992  0x00000580 set1  0x00000004 , 0x0000003f 
+ 00000993  0x00000581 store  0x00000001 , 0x00004929 
+ 00000994  0x00000583 store  0x00000001 , 0x000048e4 
+ 00000995  0x00000584 rtn 
+ 00000996  0x00000586 fetch  0x00000001 , 0x00004929 
+ 00000997  0x00000587 set0  0x00000004 , 0x0000003f 
+ 00000998  0x00000588 store  0x00000001 , 0x00004929 
+ 00000999  0x00000589 rtn 
+ 00001000  0x0000058c call  0x0000059d 
+ 00001001  0x0000058d fetch  0x00000001 , 0x000049b4 
+ 00001002  0x0000058e beq  0x00000001 , 0x000003ed 
+ 00001003  0x0000058f beq  0x00000002 , 0x000003f1 
+ 00001004  0x00000590 rtn 
+ 00001005  0x00000592 jam  0x00000002 , 0x000049b2 
+ 00001006  0x00000594 jam  0x00000000 , 0x000049b3 
+ 00001007  0x00000595 jam  0x00000000 , 0x000049b0 
+ 00001008  0x00000596 branch  0x000003db 
+ 00001009  0x00000599 jam  0x00000000 , 0x000049b1 
+ 00001010  0x0000059a branch  0x000003ee 
+ 00001011  0x0000059d fetch  0x00000002 , 0x0000492e 
+ 00001012  0x0000059e increase  0x00000001 , 0x0000003f 
+ 00001013  0x0000059f store  0x00000002 , 0x0000492e 
+ 00001014  0x000005a0 bbit1  0x0000000a , 0x00000502 
+ 00001015  0x000005a1 fetch  0x00000001 , 0x000049b1 
+ 00001016  0x000005a2 beq  0x00000001 , 0x000003fc 
+ 00001017  0x000005a3 jam  0x00000001 , 0x000049b1 
+ 00001018  0x000005a5 fetch  0x00000001 , 0x000049b1 
+ 00001019  0x000005a6 bne  0x00000001 , 0x000003db 
+ 00001020  0x000005a8 fetch  0x00000001 , 0x000049b5 
+ 00001021  0x000005a9 increase  0x00000001 , 0x0000003f 
+ 00001022  0x000005aa store  0x00000001 , 0x000049b5 
+ 00001023  0x000005ab beq  0x00000004 , 0x00000403 
+ 00001024  0x000005ac call  0x000003ca 
+ 00001025  0x000005ad jam  0x00000002 , 0x0000496e 
+ 00001026  0x000005ae branch  0x000004c3 
+ 00001027  0x000005b1 call  0x0000059d 
+ 00001028  0x000005b2 jam  0x00000000 , 0x000049b5 
+ 00001029  0x000005b3 branch  0x000003db 
+ 00001030  0x000005b6 jam  0x00000002 , 0x000049b2 
+ 00001031  0x000005b8 jam  0x00000001 , 0x000049b0 
+ 00001032  0x000005b9 jam  0x00000000 , 0x000049b1 
+ 00001033  0x000005ba branch  0x000003db 
+ 00001034  0x000005bd fetch  0x00000001 , 0x000049b4 
+ 00001035  0x000005be beq  0x00000003 , 0x00000407 
+ 00001036  0x000005bf fetch  0x00000001 , 0x00004929 
+ 00001037  0x000005c0 isolate0  0x00000004 , 0x0000003f 
+ 00001038  0x000005c1 branch  0x000003d9 , 0x00000001 
+ 00001039  0x000005c2 fetch  0x00000001 , 0x000049b4 
+ 00001040  0x000005c3 beq  0x00000001 , 0x00000406 
+ 00001041  0x000005c4 beq  0x00000002 , 0x00000407 
+ 00001042  0x000005c5 rtn 
+ 00001043  0x000005c8 fetch  0x00000001 , 0x00004938 
+ 00001044  0x000005c9 rtnne  0x000000ff 
+ 00001045  0x000005ca call  0x00000418 
+ 00001046  0x000005cb ncall  0x00000420 , 0x0000002c 
+ 00001047  0x000005cc rtn 
+ 00001048  0x000005cf disable  0x0000002c 
+ 00001049  0x000005d0 fetch  0x00000001 , 0x000049b0 
+ 00001050  0x000005d1 rtnne  0x00000001 
+ 00001051  0x000005d2 fetch  0x00000001 , 0x000049b2 
+ 00001052  0x000005d3 rtnne  0x00000000 
+ 00001053  0x000005d4 jam  0x00000001 , 0x000049b4 
+ 00001054  0x000005d5 jam  0x00000004 , 0x0000496e 
+ 00001055  0x000005d6 branch  0x000002b1 
+ 00001056  0x000005d9 fetch  0x00000001 , 0x000049b2 
+ 00001057  0x000005da branch  0x00000428 , 0x00000034 
+ 00001058  0x000005db increase  0xffffffff , 0x0000003f 
+ 00001059  0x000005dc store  0x00000001 , 0x000049b2 
+ 00001060  0x000005dd jam  0x00000002 , 0x000049b4 
+ 00001061  0x000005de call  0x000003ca 
+ 00001062  0x000005df jam  0x00000004 , 0x0000496e 
+ 00001063  0x000005e0 rtn 
+ 00001064  0x000005e3 jam  0x00000003 , 0x000049b4 
+ 00001065  0x000005e4 fetch  0x00000001 , 0x000049b1 
+ 00001066  0x000005e5 nbranch  0x000003fa , 0x00000034 
+ 00001067  0x000005e6 call  0x000003ca 
+ 00001068  0x000005e7 jam  0x00000002 , 0x0000496e 
+ 00001069  0x000005e8 rtn 
+ 00001070  0x00000620 fetch  0x00000001 , 0x00004938 
+ 00001071  0x00000621 bne  0x000000ff , 0x00000602 
+ 00001072  0x00000623 call  0x000002bb 
+ 00001073  0x00000624 branch  0x00000440 , 0x00000028 
+ 00001074  0x00000625 fetch  0x00000001 , 0x00004897 
+ 00001075  0x00000626 bne  0x00000006 , 0x000064c0 
+ 00001076  0x00000628 fetch  0x00000001 , 0x00004e80 
+ 00001077  0x00000629 call  0x00000479 , 0x00000034 
+ 00001078  0x0000062b fetch  0x00000001 , 0x00004e80 
+ 00001079  0x0000062c ncall  0x0000043c , 0x00000034 
+ 00001080  0x0000062d call  0x00000445 
+ 00001081  0x0000062e call  0x00000466 
+ 00001082  0x00000630 jam  0x00000001 , 0x0000492d 
+ 00001083  0x00000631 rtn 
+ 00001084  0x00000634 jam  0x00000000 , 0x00004e79 
+ 00001085  0x00000635 jam  0x00000000 , 0x00004e78 
+ 00001086  0x00000636 jam  0x0000000a , 0x000049ba 
+ 00001087  0x00000637 rtn 
+ 00001088  0x0000063a fetch  0x00000001 , 0x00004e78 
+ 00001089  0x0000063b nbranch  0x00000445 , 0x00000034 
+ 00001090  0x0000063d fetch  0x00000001 , 0x0000492d 
+ 00001091  0x0000063e beq  0x00000001 , 0x000031d4 
+ 00001092  0x0000063f rtn 
+ 00001093  0x00000644 fetch  0x00000001 , 0x000049b9 
+ 00001094  0x00000645 store  0x00000001 , 0x000049b8 
+ 00001095  0x00000647 fetch  0x00000001 , 0x00004970 
+ 00001096  0x00000648 copy  0x0000003f , 0x00000011 
+ 00001097  0x00000649 arg  0x00004971 , 0x00000012 
+ 00001098  0x0000064a jam  0x00000000 , 0x00004954 
+ 00001099  0x0000064c call  0x000003db 
+ 00001100  0x0000064d store  0x00000001 , 0x00004990 
+ 00001101  0x0000064f add  0x00000011 , 0x00000001 , 0x00000002 
+ 00001102  0x00000650 arg  0x00004991 , 0x00000005 
+ 00001103  0x00000653 copy  0x00000011 , 0x00000039 
+ 00001104  0x00000654 copy  0x00000012 , 0x00000006 
+ 00001105  0x00000655 call  0x00007ecd 
+ 00001106  0x00000656 arg  0x00004990 , 0x00000011 
+ 00001107  0x00000658 rtnmark0  0x00000027 
+ 00001108  0x00000659 storet  0x00000001 , 0x00004928 
+ 00001109  0x0000065a copy  0x00000002 , 0x00000039 
+ 00001110  0x0000065b arg  0x000048c4 , 0x00000005 
+ 00001111  0x0000065c copy  0x00000011 , 0x00000006 
+ 00001112  0x0000065d branch  0x00007ecd 
+ 00001113  0x00000662 arg  0x00000000 , 0x00000011 
+ 00001114  0x00000663 arg  0x00000004 , 0x00000039 
+ 00001115  0x00000664 arg  0x00004950 , 0x00000006 
+ 00001116  0x00000666 ifetch  0x00000001 , 0x00000006 
+ 00001117  0x00000667 iadd  0x00000011 , 0x00000011 
+ 00001118  0x00000668 loop  0x0000045c 
+ 00001119  0x00000669 copy  0x00000011 , 0x0000003f 
+ 00001120  0x0000066a store  0x00000002 , 0x000049bb 
+ 00001121  0x0000066b fetch  0x00000001 , 0x000049bb 
+ 00001122  0x0000066c fetcht  0x00000001 , 0x000049bc 
+ 00001123  0x0000066d iadd  0x00000002 , 0x0000003f 
+ 00001124  0x0000066e store  0x00000001 , 0x000049bd 
+ 00001125  0x0000066f rtn 
+ 00001126  0x00000673 fetch  0x00000001 , 0x00004928 
+ 00001127  0x00000674 increase  0x00000002 , 0x0000003f 
+ 00001128  0x00000675 store  0x00000001 , 0x0000492a 
+ 00001129  0x00000677 fetch  0x00000001 , 0x00004929 
+ 00001130  0x00000678 store  0x00000001 , 0x000048e4 
+ 00001131  0x0000067a fetch  0x00000001 , 0x00004928 
+ 00001132  0x0000067b lshift3  0x0000003f , 0x0000003f 
+ 00001133  0x0000067c fetcht  0x00000001 , 0x00004927 
+ 00001134  0x0000067d and  0x00000002 , 0x00000003 , 0x00000002 
+ 00001135  0x0000067e lshift  0x00000002 , 0x00000002 
+ 00001136  0x0000067f ior  0x00000002 , 0x0000003f 
+ 00001137  0x00000680 fetcht  0x00000001 , 0x00004965 
+ 00001138  0x00000681 iadd  0x00000002 , 0x0000003f 
+ 00001139  0x00000682 istore  0x00000001 , 0x00000005 
+ 00001140  0x00000684 fetch  0x00000001 , 0x00004928 
+ 00001141  0x00000685 iforce  0x00000039 
+ 00001142  0x00000686 arg  0x000048c4 , 0x00000006 
+ 00001143  0x00000687 branch  0x00007ecd 
+ 00001144  0x0000069d rtn 
+ 00001145  0x000006be fetch  0x00000001 , 0x000042b8 
+ 00001146  0x000006bf isolate0  0x00000002 , 0x0000003f 
+ 00001147  0x000006c0 branch  0x00000483 , 0x00000001 
+ 00001148  0x000006c1 fetch  0x00000001 , 0x00004e79 
+ 00001149  0x000006c2 rtneq  0x00000005 
+ 00001150  0x000006c3 increase  0x00000001 , 0x0000003f 
+ 00001151  0x000006c4 store  0x00000001 , 0x00004e79 
+ 00001152  0x000006c5 rtnne  0x00000005 
+ 00001153  0x000006c7 jam  0x00000001 , 0x00004e78 
+ 00001154  0x000006c8 rtn 
+ 00001155  0x000006cb fetch  0x00000001 , 0x00004e79 
+ 00001156  0x000006cc rtneq  0x00000014 
+ 00001157  0x000006cd increase  0x00000001 , 0x0000003f 
+ 00001158  0x000006ce store  0x00000001 , 0x00004e79 
+ 00001159  0x000006cf rtnne  0x00000014 
+ 00001160  0x000006d0 fetch  0x00000001 , 0x000042b8 
+ 00001161  0x000006d1 set1  0x00000002 , 0x0000003f 
+ 00001162  0x000006d2 store  0x00000001 , 0x000042b8 
+ 00001163  0x000006d3 branch  0x00000481 
+ 00001164  0x000006d6 fetch  0x00000001 , 0x00004e79 
+ 00001165  0x000006d7 rtn  0x00000034 
+ 00001166  0x000006d8 increase  0xffffffff , 0x0000003f 
+ 00001167  0x000006d9 store  0x00000001 , 0x00004e79 
+ 00001168  0x000006da nrtn  0x00000034 
+ 00001169  0x000006db jam  0x00000000 , 0x00004e78 
+ 00001170  0x000006dc rtn 
+ 00001171  0x000006df set1  0x00000027 , 0x00000000 
+ 00001172  0x000006e0 call  0x000002bb 
+ 00001173  0x000006e1 branch  0x00000498 , 0x00000028 
+ 00001174  0x000006e2 fetch  0x00000001 , 0x00004897 
+ 00001175  0x000006e3 beq  0x00000006 , 0x0000049e 
+ 00001176  0x000006e5 fetch  0x00000001 , 0x00004e7d 
+ 00001177  0x000006e6 beq  0x00000001 , 0x0000049d 
+ 00001178  0x000006e7 beq  0x00000002 , 0x00000478 
+ 00001179  0x000006e8 beq  0x00000003 , 0x0000049d 
+ 00001180  0x000006e9 rtn 
+ 00001181  0x000006ef rtn 
+ 00001182  0x000006fe rtn 
+ 00001183  0x00000704 call  0x00003be2 
+ 00001184  0x00000705 fetch  0x00000003 , 0x0000420f 
+ 00001185  0x00000706 rtn  0x00000034 
+ 00001186  0x00000707 fetch  0x00000001 , 0x00004131 
+ 00001187  0x00000708 rtn  0x00000034 
+ 00001188  0x00000709 fetch  0x00000001 , 0x00004e80 
+ 00001189  0x0000070a beq  0x00000001 , 0x000004a8 
+ 00001190  0x0000070b setarg  0x00000000 
+ 00001191  0x0000070c store  0x00000008 , 0x000000a0 
+ 00001192  0x0000070e call  0x000004b8 
+ 00001193  0x0000070f arg  0x00000d00 , 0x0000000b 
+ 00001194  0x00000710 until  0x00000023 , 0x00000026 
+ 00001195  0x00000711 fetcht  0x00000003 , 0x00004e7a 
+ 00001196  0x00000712 copy  0x00000022 , 0x0000003f 
+ 00001197  0x00000713 isub  0x00000002 , 0x0000003f 
+ 00001198  0x00000714 and_into  0x000000ff , 0x0000003f 
+ 00001199  0x00000715 arg  0x00000ea6 , 0x00000002 
+ 00001200  0x00000716 imul32  0x00000002 , 0x00000002 
+ 00001201  0x00000717 fetch  0x00000004 , 0x00004e74 
+ 00001202  0x00000718 isub  0x00000002 , 0x0000003f 
+ 00001203  0x00000719 branch  0x00003c7f , 0x00000002 
+ 00001204  0x0000071a fetch  0x00000001 , 0x00004218 
+ 00001205  0x0000071b increase  0x00000001 , 0x0000003f 
+ 00001206  0x0000071c store  0x00000004 , 0x000041fb 
+ 00001207  0x0000071d branch  0x00003c86 
+ 00001208  0x0000071f setarg  0x00013c68 
+ 00001209  0x00000720 store  0x00000004 , 0x00004e74 
+ 00001210  0x00000721 fetch  0x00000001 , 0x00004e7e 
+ 00001211  0x00000722 increase  0x00000001 , 0x0000003f 
+ 00001212  0x00000723 bne  0x00000005 , 0x000004be 
+ 00001213  0x00000724 setarg  0x00000000 
+ 00001214  0x00000726 store  0x00000001 , 0x00004e7e 
+ 00001215  0x00000727 rtnbit0  0x00000000 
+ 00001216  0x00000728 setarg  0x000130b0 
+ 00001217  0x00000729 store  0x00000004 , 0x00004e74 
+ 00001218  0x0000072a rtn 
+ 00001219  0x0000072e jam  0x00000000 , 0x00004931 
+ 00001220  0x00000730 arg  0x00000d00 , 0x0000000b 
+ 00001221  0x00000731 until  0x00000023 , 0x00000026 
+ 00001222  0x00000732 call  0x000004db 
+ 00001223  0x00000733 fetch  0x00000001 , 0x00004965 
+ 00001224  0x00000734 rtneq  0x00000001 
+ 00001225  0x00000735 nbranch  0x000004ea , 0x00000018 
+ 00001226  0x00000736 nbranch  0x000004ea , 0x0000002f 
+ 00001227  0x00000737 call  0x00000509 
+ 00001228  0x00000738 call  0x00000599 
+ 00001229  0x0000073a fetch  0x00000001 , 0x00004927 
+ 00001230  0x0000073b increase  0x00000001 , 0x0000003f 
+ 00001231  0x0000073c store  0x00000001 , 0x00004927 
+ 00001232  0x0000073d fetch  0x00000001 , 0x00004938 
+ 00001233  0x0000073e bne  0x000000ff , 0x000004d9 
+ 00001234  0x0000073f call  0x0000040a 
+ 00001235  0x00000741 setarg  0x00000000 
+ 00001236  0x00000742 store  0x00000002 , 0x0000492e 
+ 00001237  0x00000743 store  0x00000001 , 0x00004930 
+ 00001238  0x00000744 store  0x00000001 , 0x000049b3 
+ 00001239  0x00000745 jam  0x00000000 , 0x0000492d 
+ 00001240  0x00000746 rtn 
+ 00001241  0x00000748 call  0x00000596 
+ 00001242  0x00000749 branch  0x0000061d 
+ 00001243  0x0000074c disable  0x0000002f 
+ 00001244  0x0000074d call  0x00000529 
+ 00001245  0x0000074e fetch  0x00000001 , 0x00004965 
+ 00001246  0x0000074f beq  0x00000001 , 0x000004e8 
+ 00001247  0x00000750 force  0x00000000 , 0x00000015 
+ 00001248  0x00000751 fetch  0x00000004 , 0x00004950 
+ 00001249  0x00000752 iforce  0x00000009 
+ 00001250  0x00000753 fetcht  0x00000001 , 0x00000017 
+ 00001251  0x00000754 call  0x000039b9 
+ 00001252  0x00000755 call  0x000039bf 
+ 00001253  0x00000756 call  0x00000553 
+ 00001254  0x00000757 call  0x00000592 , 0x0000002f 
+ 00001255  0x00000758 rtn 
+ 00001256  0x0000075a call  0x00000592 
+ 00001257  0x0000075b branch  0x000004cd 
+ 00001258  0x0000075e fetch  0x00000001 , 0x00004930 
+ 00001259  0x0000075f increase  0x00000001 , 0x0000003f 
+ 00001260  0x00000760 store  0x00000001 , 0x00004930 
+ 00001261  0x00000761 fetch  0x00000001 , 0x00004938 
+ 00001262  0x00000762 bne  0x000000ff , 0x000004fe 
+ 00001263  0x00000763 fetcht  0x00000001 , 0x00004931 
+ 00001264  0x00000764 increase  0x00000001 , 0x00000002 
+ 00001265  0x00000765 storet  0x00000001 , 0x00004931 
+ 00001266  0x00000766 fetch  0x00000001 , 0x0000496e 
+ 00001267  0x00000767 isub  0x00000002 , 0x0000003f 
+ 00001268  0x00000768 nbranch  0x000004c4 , 0x00000034 
+ 00001269  0x00000769 fetch  0x00000001 , 0x000049b4 
+ 00001270  0x0000076a beq  0x00000003 , 0x000003f3 
+ 00001271  0x0000076b fetch  0x00000001 , 0x000049b3 
+ 00001272  0x0000076c increase  0x00000001 , 0x0000003f 
+ 00001273  0x0000076d store  0x00000001 , 0x000049b3 
+ 00001274  0x0000076e beq  0x00000002 , 0x000003e8 
+ 00001275  0x0000076f call  0x000003df 
+ 00001276  0x00000770 jam  0x00000001 , 0x0000496e 
+ 00001277  0x00000771 branch  0x000004c3 
+ 00001278  0x00000774 fetch  0x00000001 , 0x00004930 
+ 00001279  0x00000775 rtnne  0x000000ff 
+ 00001280  0x00000776 jam  0x00000000 , 0x00004930 
+ 00001281  0x00000777 branch  0x00000507 
+ 00001282  0x0000077a setarg  0x00000000 
+ 00001283  0x0000077b store  0x00000002 , 0x0000492e 
+ 00001284  0x0000077c jam  0x00000000 , 0x00004131 
+ 00001285  0x0000077d jam  0x00000000 , 0x00004e79 
+ 00001286  0x0000077e jam  0x00000000 , 0x00004e78 
+ 00001287  0x00000780 jam  0x0000003b , 0x00004896 
+ 00001288  0x00000781 branch  0x000002e8 
+ 00001289  0x00000784 call  0x00000510 
+ 00001290  0x00000785 fetch  0x00000001 , 0x00004926 
+ 00001291  0x00000786 rtn  0x00000034 
+ 00001292  0x00000787 iforce  0x00000039 
+ 00001293  0x00000788 arg  0x000048a4 , 0x00000006 
+ 00001294  0x00000789 arg  0x00004906 , 0x00000005 
+ 00001295  0x0000078a branch  0x00007ecd 
+ 00001296  0x0000078e fetch  0x00000001 , 0x000048a3 
+ 00001297  0x0000078f rshift3  0x0000003f , 0x0000003f 
+ 00001298  0x00000790 store  0x00000001 , 0x00004926 
+ 00001299  0x00000792 increase  0x00000001 , 0x0000003f 
+ 00001300  0x00000793 arg  0x000048a3 , 0x00000006 
+ 00001301  0x00000794 iadd  0x00000006 , 0x00000006 
+ 00001302  0x00000795 ifetch  0x00000003 , 0x00000006 
+ 00001303  0x00000796 store  0x00000003 , 0x00004966 
+ 00001304  0x00000798 fetch  0x00000001 , 0x000048a3 
+ 00001305  0x00000799 rshift  0x0000003f , 0x0000003f 
+ 00001306  0x0000079a and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00001307  0x0000079b store  0x00000001 , 0x0000496c 
+ 00001308  0x0000079c rtn 
+ 00001309  0x000007a0 disable  0x00000009 
+ 00001310  0x000007a1 disable  0x00000007 
+ 00001311  0x000007a2 setarg  0x00555555 
+ 00001312  0x000007a3 iforce  0x0000000f 
+ 00001313  0x000007a4 fetch  0x00000001 , 0x00004932 
+ 00001314  0x000007a5 reverse  0x0000003f , 0x00000002 
+ 00001315  0x000007a6 set1  0x00000001 , 0x00000002 
+ 00001316  0x000007a7 rshift  0x00000002 , 0x0000000e 
+ 00001317  0x000007a8 rtn 
+ 00001318  0x000007ab call  0x000039b1 
+ 00001319  0x000007ac fetcht  0x00000001 , 0x00004932 
+ 00001320  0x000007ad branch  0x000039c9 
+ 00001321  0x000007b0 call  0x00004976 
+ 00001322  0x000007b1 fetch  0x00000004 , 0x00004950 
+ 00001323  0x000007b2 iforce  0x00000009 
+ 00001324  0x000007b3 call  0x0000051d 
+ 00001325  0x000007b4 call  0x00000526 
+ 00001326  0x000007b5 set1  0x00000000 , 0x00000015 
+ 00001327  0x000007b6 enable  0x0000001d 
+ 00001328  0x000007b7 enable  0x00000020 
+ 00001329  0x000007b8 disable  0x00000021 
+ 00001330  0x000007b9 rshift16  0x00000009 , 0x0000003f 
+ 00001331  0x000007ba rshift8  0x0000003f , 0x0000003f 
+ 00001332  0x000007bb rshift4  0x0000003f , 0x0000003f 
+ 00001333  0x000007bc inject  0x00000003 , 0x00000028 
+ 00001334  0x000007bd disable  0x0000001d 
+ 00001335  0x000007be enable  0x0000001b 
+ 00001336  0x000007bf enable  0x00000007 
+ 00001337  0x000007c0 enable  0x00000009 
+ 00001338  0x000007c2 fetch  0x00000001 , 0x000049bd 
+ 00001339  0x000007c3 inject  0x00000003 , 0x00000008 
+ 00001340  0x000007c5 fetch  0x00000001 , 0x0000492a 
+ 00001341  0x000007c6 iforce  0x00000039 
+ 00001342  0x000007c7 arg  0x000048e4 , 0x00000006 
+ 00001343  0x000007c9 ifetch  0x00000001 , 0x00000006 
+ 00001344  0x000007ca inject  0x00000003 , 0x00000008 
+ 00001345  0x000007cb loop  0x0000053f 
+ 00001346  0x000007cc enable  0x00000008 
+ 00001347  0x000007cd inject  0x00000003 , 0x00000018 
+ 00001348  0x000007ce disable  0x00000008 
+ 00001349  0x000007cf until  0x0000003e , 0x00000027 
+ 00001350  0x000007d0 nop  0x00000064 
+ 00001351  0x000007d1 disable  0x0000001d 
+ 00001352  0x000007d2 disable  0x0000001b 
+ 00001353  0x000007d3 rtn 
+ 00001354  0x000007d6 call  0x00004976 
+ 00001355  0x000007d7 fetch  0x00000004 , 0x00004950 
+ 00001356  0x000007d8 iforce  0x00000009 
+ 00001357  0x000007d9 call  0x000039b1 
+ 00001358  0x000007da fetcht  0x00000001 , 0x00004932 
+ 00001359  0x000007db call  0x000039b9 
+ 00001360  0x000007dc setarg  0x00000500 
+ 00001361  0x000007dd call  0x00003b35 
+ 00001362  0x000007de call  0x000039bf 
+ 00001363  0x000007e0 call  0x0000051d 
+ 00001364  0x000007e1 disable  0x0000002f 
+ 00001365  0x000007e2 enable  0x0000000d 
+ 00001366  0x000007e3 enable  0x00000021 
+ 00001367  0x000007e4 disable  0x00000020 
+ 00001368  0x000007e5 enable  0x00000010 
+ 00001369  0x000007e6 fetch  0x00000002 , 0x0000492b 
+ 00001370  0x000007e7 iforce  0x0000001b 
+ 00001371  0x000007e8 correlate  0x0000003e , 0x00000003 
+ 00001372  0x000007e9 nbranch  0x00000595 , 0x00000018 
+ 00001373  0x000007ea disable  0x0000000d 
+ 00001374  0x000007eb enable  0x0000000b 
+ 00001375  0x000007ec enable  0x00000007 
+ 00001376  0x000007ed enable  0x00000009 
+ 00001377  0x000007ef parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001378  0x000007f0 rshift3  0x0000000c , 0x0000003f 
+ 00001379  0x000007f1 store  0x00000001 , 0x000049be 
+ 00001380  0x000007f2 call  0x00000459 
+ 00001381  0x000007f3 fetcht  0x00000001 , 0x000049be 
+ 00001382  0x000007f4 isub  0x00000002 , 0x0000003e 
+ 00001383  0x000007f5 nbranch  0x00000592 , 0x00000005 
+ 00001384  0x000007f7 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001385  0x000007f8 rshift3  0x0000000c , 0x0000003f 
+ 00001386  0x000007f9 store  0x00000001 , 0x000048a2 
+ 00001387  0x000007fa fetch  0x00000001 , 0x0000496f 
+ 00001388  0x000007fb sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00001389  0x000007fc branch  0x00000572 , 0x00000005 
+ 00001390  0x000007fd fetch  0x00000001 , 0x000048a2 
+ 00001391  0x000007fe fetcht  0x00000001 , 0x00004929 
+ 00001392  0x000007ff icompare  0x00000007 , 0x00000002 
+ 00001393  0x00000800 nbranch  0x00000592 , 0x00000001 
+ 00001394  0x00000802 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001395  0x00000803 rshift3  0x0000000c , 0x0000003f 
+ 00001396  0x00000804 istore  0x00000001 , 0x00000005 
+ 00001397  0x00000805 rshift3  0x0000003f , 0x0000003f 
+ 00001398  0x00000806 and  0x0000003f , 0x0000001f , 0x00000039 
+ 00001399  0x00000807 branch  0x0000057c , 0x00000005 
+ 00001400  0x00000809 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001401  0x0000080a rshift3  0x0000000c , 0x0000003f 
+ 00001402  0x0000080b istore  0x00000001 , 0x00000005 
+ 00001403  0x0000080c loop  0x00000578 
+ 00001404  0x0000080f copy  0x00000005 , 0x00000011 
+ 00001405  0x00000810 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001406  0x00000811 rshift3  0x0000000c , 0x0000003f 
+ 00001407  0x00000812 store  0x00000001 , 0x000049cf 
+ 00001408  0x00000813 copy  0x00000011 , 0x00000005 
+ 00001409  0x00000815 parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00001410  0x00000816 enable  0x00000010 
+ 00001411  0x00000817 arg  0x00000664 , 0x0000001b 
+ 00001412  0x00000818 rshift32  0x0000003f , 0x0000003f 
+ 00001413  0x00000819 rshift16  0x0000003f , 0x0000003f 
+ 00001414  0x0000081a istore  0x00000003 , 0x00000005 
+ 00001415  0x0000081b disable  0x0000000b 
+ 00001416  0x0000081c branch  0x00000592 , 0x00000006 
+ 00001417  0x0000081d enable  0x0000002f 
+ 00001418  0x0000081e fetch  0x00000001 , 0x00000017 
+ 00001419  0x0000081f add  0x0000003f , 0x00000000 , 0x00000011 
+ 00001420  0x00000820 call  0x00003a13 
+ 00001421  0x00000821 disable  0x0000000d 
+ 00001422  0x00000822 call  0x000039b1 
+ 00001423  0x00000823 fetch  0x00000001 , 0x000049cf 
+ 00001424  0x00000824 copy  0x0000003f , 0x00000011 
+ 00001425  0x00000825 branch  0x000005e5 
+ 00001426  0x00000828 disable  0x0000001b 
+ 00001427  0x00000829 disable  0x0000000b 
+ 00001428  0x0000082a branch  0x000036c6 
+ 00001429  0x0000082d branch  0x00000592 
+ 00001430  0x00000830 jam  0x00000001 , 0x000049c4 
+ 00001431  0x00000831 jam  0x00000000 , 0x000049c5 
+ 00001432  0x00000832 rtn 
+ 00001433  0x00000834 fetch  0x00000001 , 0x000049c5 
+ 00001434  0x00000835 increase  0x00000001 , 0x0000003f 
+ 00001435  0x00000836 store  0x00000001 , 0x000049c5 
+ 00001436  0x00000837 rtn 
+ 00001437  0x00000839 fetch  0x00000001 , 0x000049c5 
+ 00001438  0x0000083a sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00001439  0x0000083b ncall  0x000005a5 , 0x00000002 
+ 00001440  0x0000083c fetch  0x00000001 , 0x000049c5 
+ 00001441  0x0000083d rtneq  0x00000000 
+ 00001442  0x0000083e increase  0xffffffff , 0x0000003f 
+ 00001443  0x0000083f store  0x00000001 , 0x000049c5 
+ 00001444  0x00000840 rtn 
+ 00001445  0x00000842 jam  0x00000002 , 0x000049c5 
+ 00001446  0x00000843 rtn 
+ 00001447  0x00000846 arg  0x000049c6 , 0x00000011 
+ 00001448  0x00000847 call  0x000005ee 
+ 00001449  0x00000848 storet  0x00000001 , 0x000049d0 
+ 00001450  0x00000849 isolate1  0x00000026 , 0x00000000 
+ 00001451  0x0000084a call  0x000005b5 , 0x00000001 
+ 00001452  0x0000084b ncall  0x000005b9 , 0x00000001 
+ 00001453  0x0000084c isub  0x00000002 , 0x0000003e 
+ 00001454  0x0000084d nbranch  0x000005d2 , 0x00000002 
+ 00001455  0x0000084f fetch  0x00000001 , 0x000049c5 
+ 00001456  0x00000850 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00001457  0x00000851 nbranch  0x000005bd , 0x00000002 
+ 00001458  0x00000852 fetch  0x00000001 , 0x000049c5 
+ 00001459  0x00000853 beq  0x00000000 , 0x000005d2 
+ 00001460  0x00000854 rtn 
+ 00001461  0x00000857 setarg  0x00000082 
+ 00001462  0x00000858 rtn 
+ 00001463  0x0000085a setarg  0x00000077 
+ 00001464  0x0000085b rtn 
+ 00001465  0x0000085d setarg  0x00000080 
+ 00001466  0x0000085e rtn 
+ 00001467  0x00000860 setarg  0x00000075 
+ 00001468  0x00000861 rtn 
+ 00001469  0x00000864 fetch  0x00000001 , 0x000049c5 
+ 00001470  0x00000865 rtnne  0x00000046 
+ 00001471  0x00000866 jam  0x00000000 , 0x000049c5 
+ 00001472  0x00000868 fetcht  0x00000001 , 0x000049d0 
+ 00001473  0x00000869 isolate1  0x00000026 , 0x00000000 
+ 00001474  0x0000086a call  0x000005b7 , 0x00000001 
+ 00001475  0x0000086b ncall  0x000005bb , 0x00000001 
+ 00001476  0x0000086c isub  0x00000002 , 0x0000003e 
+ 00001477  0x0000086d nrtn  0x00000002 
+ 00001478  0x0000086e fetch  0x00000001 , 0x000049c4 
+ 00001479  0x0000086f beq  0x00000000 , 0x000005de 
+ 00001480  0x00000870 increase  0xffffffff , 0x0000003f 
+ 00001481  0x00000871 store  0x00000001 , 0x000049c4 
+ 00001482  0x00000872 beq  0x00000000 , 0x000005de 
+ 00001483  0x00000875 hjam  0x000000d0 , 0x00008955 
+ 00001484  0x00000876 hjam  0x000000e0 , 0x00008956 
+ 00001485  0x00000877 hjam  0x0000004c , 0x00008957 
+ 00001486  0x00000878 hjam  0x0000006c , 0x00008958 
+ 00001487  0x00000879 hjam  0x00000050 , 0x00008959 
+ 00001488  0x0000087a jam  0x00000001 , 0x00004280 
+ 00001489  0x0000087b rtn 
+ 00001490  0x0000087e fetch  0x00000001 , 0x000049c4 
+ 00001491  0x0000087f beq  0x00000002 , 0x000005d7 
+ 00001492  0x00000880 increase  0x00000001 , 0x0000003f 
+ 00001493  0x00000881 store  0x00000001 , 0x000049c4 
+ 00001494  0x00000882 beq  0x00000001 , 0x000005cb 
+ 00001495  0x00000884 hjam  0x000000d0 , 0x00008955 
+ 00001496  0x00000885 hjam  0x000000e0 , 0x00008956 
+ 00001497  0x00000886 hjam  0x0000004c , 0x00008957 
+ 00001498  0x00000887 hjam  0x0000003c , 0x00008958 
+ 00001499  0x00000888 hjam  0x00000010 , 0x00008959 
+ 00001500  0x00000889 jam  0x00000004 , 0x00004280 
+ 00001501  0x0000088a rtn 
+ 00001502  0x0000088d hjam  0x000000d0 , 0x00008955 
+ 00001503  0x0000088e hjam  0x000000c0 , 0x00008956 
+ 00001504  0x0000088f hjam  0x0000004c , 0x00008957 
+ 00001505  0x00000890 hjam  0x0000006c , 0x00008958 
+ 00001506  0x00000891 hjam  0x00000050 , 0x00008959 
+ 00001507  0x00000892 jam  0x00000010 , 0x00004280 
+ 00001508  0x00000893 rtn 
+ 00001509  0x00000896 fetcht  0x00000001 , 0x000049ce 
+ 00001510  0x00000897 setarg  0x000049c6 
+ 00001511  0x00000898 iadd  0x00000002 , 0x00000005 
+ 00001512  0x00000899 copy  0x00000011 , 0x0000003f 
+ 00001513  0x0000089a istore  0x00000001 , 0x00000005 
+ 00001514  0x0000089b increase  0x00000001 , 0x00000002 
+ 00001515  0x0000089c and_into  0x00000007 , 0x00000002 
+ 00001516  0x0000089d storet  0x00000001 , 0x000049ce 
+ 00001517  0x0000089e rtn 
+ 00001518  0x000008a0 arg  0x00000000 , 0x00000002 
+ 00001519  0x000008a1 arg  0x00000008 , 0x00000039 
+ 00001520  0x000008a2 copy  0x00000011 , 0x00000006 
+ 00001521  0x000008a4 ifetch  0x00000001 , 0x00000006 
+ 00001522  0x000008a5 iadd  0x00000002 , 0x00000002 
+ 00001523  0x000008a6 loop  0x000005f1 
+ 00001524  0x000008a7 rshift3  0x00000002 , 0x0000003f 
+ 00001525  0x000008a8 copy  0x0000003f , 0x00000002 
+ 00001526  0x000008a9 rtnmark0  0x00000026 
+ 00001527  0x000008ab div  0x0000003f , 0x0000000a 
+ 00001528  0x000008ac call  0x00007f53 
+ 00001529  0x000008ad quotient  0x0000003f 
+ 00001530  0x000008ae lshift4  0x0000003f , 0x0000003f 
+ 00001531  0x000008af remainder  0x00000002 
+ 00001532  0x000008b0 ior  0x00000002 , 0x00000002 
+ 00001533  0x000008b1 rtn 
+ 00001534  0x000008b5 set1  0x00000026 , 0x00000000 
+ 00001535  0x000008b6 call  0x000003c5 
+ 00001536  0x000008b8 jam  0x00000001 , 0x00004938 
+ 00001537  0x000008b9 rtn 
+ 00001538  0x000008bc fetch  0x00000001 , 0x0000492d 
+ 00001539  0x000008bd beq  0x00000001 , 0x000031d4 
+ 00001540  0x000008be fetch  0x00000001 , 0x00004938 
+ 00001541  0x000008bf beq  0x00000001 , 0x00000609 
+ 00001542  0x000008c0 beq  0x00000002 , 0x0000060c 
+ 00001543  0x000008c1 beq  0x00000003 , 0x0000060f 
+ 00001544  0x000008c2 branch  0x00003b31 
+ 00001545  0x000008c5 jam  0x00000011 , 0x00004938 
+ 00001546  0x000008c6 jam  0x000000aa , 0x00004990 
+ 00001547  0x000008c7 branch  0x00000611 
+ 00001548  0x000008c9 jam  0x00000012 , 0x00004938 
+ 00001549  0x000008ca jam  0x00000055 , 0x00004990 
+ 00001550  0x000008cb branch  0x00000611 
+ 00001551  0x000008cd jam  0x00000013 , 0x00004938 
+ 00001552  0x000008ce jam  0x00000022 , 0x00004990 
+ 00001553  0x000008d0 fetch  0x00000001 , 0x00004929 
+ 00001554  0x000008d1 and_into  0x00000007 , 0x0000003f 
+ 00001555  0x000008d2 store  0x00000001 , 0x00004991 
+ 00001556  0x000008d3 fetch  0x00000004 , 0x00004960 
+ 00001557  0x000008d4 store  0x00000004 , 0x00004992 
+ 00001558  0x000008d6 jam  0x00000000 , 0x00004996 
+ 00001559  0x000008d7 arg  0x00004990 , 0x00000011 
+ 00001560  0x000008d8 arg  0x00000007 , 0x00000002 
+ 00001561  0x000008d9 call  0x00000453 
+ 00001562  0x000008da call  0x00000466 
+ 00001563  0x000008db call  0x0000043a 
+ 00001564  0x000008dc branch  0x000031d4 
+ 00001565  0x000008df fetch  0x00000001 , 0x00004938 
+ 00001566  0x000008e0 rtneq  0x000000ff 
+ 00001567  0x000008e1 beq  0x00000011 , 0x00000623 
+ 00001568  0x000008e2 beq  0x00000012 , 0x00000625 
+ 00001569  0x000008e3 beq  0x00000013 , 0x00000627 
+ 00001570  0x000008e4 rtn 
+ 00001571  0x000008e7 jam  0x00000002 , 0x00004938 
+ 00001572  0x000008e8 branch  0x000004d3 
+ 00001573  0x000008ea jam  0x00000003 , 0x00004938 
+ 00001574  0x000008eb branch  0x000004d3 
+ 00001575  0x000008ed jam  0x000000ff , 0x00004938 
+ 00001576  0x000008ee jam  0x00000039 , 0x00004896 
+ 00001577  0x000008ef call  0x000002e8 
+ 00001578  0x000008f0 fetch  0x00000004 , 0x00004908 
+ 00001579  0x000008f1 call  0x000003c8 
+ 00001580  0x000008f2 branch  0x000004d3 
+ 00001581  0x000008f5 set0  0x00000026 , 0x00000000 
+ 00001582  0x000008f6 call  0x000003ca 
+ 00001583  0x000008f7 fetch  0x00000004 , 0x00004950 
+ 00001584  0x000008f8 call  0x00000459 
+ 00001585  0x000008f9 fetch  0x00000001 , 0x00004938 
+ 00001586  0x000008fa rtnne  0x000000ff 
+ 00001587  0x000008fb call  0x00000643 
+ 00001588  0x000008fd setarg  0x00000000 
+ 00001589  0x000008fe store  0x00000002 , 0x00004956 
+ 00001590  0x00000900 nop  0x000007d0 
+ 00001591  0x00000901 fetch  0x00000001 , 0x00004956 
+ 00001592  0x00000902 beq  0x000000ff , 0x00000507 
+ 00001593  0x00000903 call  0x000004db 
+ 00001594  0x00000904 nbranch  0x0000064d , 0x00000018 
+ 00001595  0x00000905 nbranch  0x0000064d , 0x0000002f 
+ 00001596  0x00000907 jam  0x00000001 , 0x00004131 
+ 00001597  0x00000908 set1  0x00000026 , 0x00000000 
+ 00001598  0x00000909 setarg  0x00000000 
+ 00001599  0x0000090a store  0x00000002 , 0x00004956 
+ 00001600  0x0000090b jam  0x0000003a , 0x000009bd 
+ 00001601  0x0000090c call  0x00007d86 
+ 00001602  0x0000090d branch  0x00007e0d 
+ 00001603  0x00000910 set1  0x00000027 , 0x00000000 
+ 00001604  0x00000911 jam  0x000000ff , 0x00004990 
+ 00001605  0x00000912 fetch  0x00000001 , 0x00004929 
+ 00001606  0x00000913 store  0x00000001 , 0x00004991 
+ 00001607  0x00000914 fetch  0x00000004 , 0x00004960 
+ 00001608  0x00000915 store  0x00000004 , 0x00004992 
+ 00001609  0x00000916 arg  0x00000006 , 0x00000002 
+ 00001610  0x00000917 arg  0x00004990 , 0x00000011 
+ 00001611  0x00000918 call  0x00000453 
+ 00001612  0x00000919 branch  0x00000466 
+ 00001613  0x0000091c fetch  0x00000002 , 0x00004956 
+ 00001614  0x0000091d increase  0x00000001 , 0x0000003f 
+ 00001615  0x0000091e store  0x00000002 , 0x00004956 
+ 00001616  0x0000091f call  0x000003ca 
+ 00001617  0x00000920 branch  0x00000636 
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.list
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.list	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.list	(working copy)
@@ -0,0 +1,1881 @@
+              include "bt_format "
+              org 0x0000
+0x0000 000024 bmark1 mark_ext_patch ,patch_ext 
+0x0001 000025 beq patch00_0 ,p_soft_reset 
+0x0002 000026 beq patch00_3 ,p_main_loop 
+0x0003 000027 beq patch10_6 ,p_shutdown_radio 
+0x0004 000028 beq patch11_2 ,p_set_freq_tx 
+0x0005 000029 beq patch11_3 ,p_initialize_radio_cont 
+0x0006 000030 beq patch14_7 ,p_lpm_recover_clk 
+0x0007 000031 beq patch15_0 ,p_lpm_dispatch 
+0x0008 000032 beq patch15_1 ,p_lpm_dispatch_next2 
+0x0009 000033 beq patch15_4 ,p_lpm_dispatch_unconn 
+0x000a 000034 beq patch16_4 ,p_device_init 
+0x000b 000035 beq patch16_5 ,p_app_lpm_init 
+0x000c 000036 beq patch16_6 ,p_app_process_bb_event 
+0x000d 000037 beq patch16_7 ,p_app_evt_timer 
+0x000e 000038 beq patch17_1 ,p_app_flag_store 
+0x000f 000039 beq patch17_2 ,p_app_initflag_check 
+0x0010 000040 branch loop 
+:      000042 patch_ext:
+0x0011 000043 beq patch20_5 ,p_le_slave_match 
+0x0012 000044 beq patch22_6 ,p_le_receive_skip 
+0x0013 000045 beq patch23_3 ,p_le_send_adv_ind 
+0x0014 000046 beq patch24_3 ,p_le_update_param 
+0x0015 000047 beq patch25_7 ,p_le_prepare_tx 
+0x0016 000048 beq patch26_1 ,p_le_prepare_tx_ll 
+0x0017 000049 beq patch26_2 ,p_le_prepare_smp0 
+0x0018 000050 beq patch26_3 ,p_le_prepare_att 
+0x0019 000051 beq patch27_1 ,p_le_send_packet 
+0x001a 000052 beq patch27_4 ,p_le_parse0 
+0x001b 000053 beq patch27_5 ,p_le_parse_smp 
+0x001c 000054 beq patch27_6 ,p_le_parse_att 
+0x001d 000055 beq patch27_7 ,p_le_adv 
+0x001e 000056 beq patch28_2 ,p_le_receive_window_size 
+0x001f 000057 beq patch29_5 ,p_le_lpm_set_mult 
+0x0020 000058 beq patch32_5 ,p_gpio_set_before_lpm_common 
+0x0021 000059 beq patch3e_3 ,p_ui_timer_check_end 
+0x0022 000060 beq patch3e_7 ,p_check_51cmd_once 
+0x0023 000061 beq patch3f_0 ,p_check_51cmd_once_continue0 
+0x0024 000062 beq patch3f_1 ,p_check_enter_hibernate 
+0x0025 000063 branch loop 
+:      000065 p_soft_reset:
+0x0026 000066 clear_stack 
+0x0027 000067 nbranch soft_reset + 3 ,wake 
+0x0028 000068 fetch 1 ,mem_le_switch_send_data 
+0x0029 000069 nbranch p_soft_reset_start_51 ,blank 
+0x002a 000070 fetch 1 ,mem_short_lpm_enable 
+0x002b 000071 branch soft_reset + 3 ,blank 
+0x002c 000072 jam 0 ,mem_ipc_is_ready 
+0x002d 000073 bmark0 mark_24g ,soft_reset + 3 
+0x002e 000074 nbranch soft_reset + 3 ,wake 
+:      000075 p_soft_reset_start_51:
+0x002f 000076 hjam start_c51_core ,core_docd_ctrl 
+0x0030 000077 branch soft_reset + 3 
+:      000079 p_main_loop:
+0x0031 000080 call p_ipc_timer_check 
+0x0032 000081 call p_ipc_rx 
+0x0033 000082 fetch 1 ,mem_short_lpm_enable 
+0x0034 000083 nbranch p_24g_short_lpm_process_loop ,blank 
+0x0035 000084 branch main_loop + 2 
+:      000087 p_shutdown_radio:
+0x0036 000088 branch shutdown_radio0 ,is_rx 
+0x0037 000089 hjam 0xd4 ,0x955 
+0x0038 000090 nop 4 
+0x0039 000091 hjam 0xd2 ,0x955 
+0x003a 000092 nop 4 
+0x003b 000093 hjam 0xd1 ,0x955 
+0x003c 000094 nop 4 
+0x003d 000095 fetch 1 ,mem_tx_power 
+0x003e 000096 beq tx_power_pair ,shutdown_radio_pair 
+0x003f 000097 branch shutdown_radio_select 
+:      000099 p_set_freq_tx:
+0x0040 000100 storet 1 ,mem_last_freq 
+0x0041 000101 add temp ,0 ,rega 
+0x0042 000102 call rf_write_freq 
+0x0043 000103 setarg param_pll_setup 
+0x0044 000104 call sleep 
+:      000105 p_txon:
+0x0045 000106 hjam 0x1 ,rfen_adc 
+0x0046 000107 hjam 0x3c ,rfen_rx 
+0x0047 000108 hjam 0xe0 ,rfen_tx 
+0x0048 000109 hjam 0x12 ,0x96d 
+0x0049 000110 nop 10 
+0x004a 000111 hjam 0x01 ,rfen_mdm 
+0x004b 000112 hjam 0x3d ,rfen_mdm 
+0x004c 000113 nop 10 
+0x004d 000114 hjam 0xb7 ,rfen_sn 
+0x004e 000115 nop 10 
+0x004f 000116 hjam 0x7f ,rfen_mdm 
+0x0050 000117 fetch 1 ,mem_tx_power 
+0x0051 000118 beq tx_power_pair ,p_set_tx_power_pair 
+0x0052 000119 bbit1 tx_power_3db ,p_rx_high_sens 
+0x0053 000120 bbit1 tx_power_5db ,p_rx_high_sens 
+:      000121 p_rx_low_sens:
+0x0054 000122 hjam 0x5b ,0x894c 
+0x0055 000123 hjam 0x96 ,0x894d 
+0x0056 000124 hjam 0x2c ,0x894e 
+0x0057 000125 hjam 0x46 ,0x894f 
+0x0058 000126 branch p_txon_select_power_level 
+:      000127 p_rx_high_sens:
+0x0059 000128 hjam 0xfb ,0x894c 
+0x005a 000129 hjam 0xef ,0x894d 
+0x005b 000130 hjam 0xec ,0x894e 
+0x005c 000131 hjam 0x5e ,0x894f 
+:      000132 p_txon_select_power_level:
+0x005d 000133 fetch 1 ,mem_tx_power 
+0x005e 000134 branch txon_power_select 
+:      000136 p_set_tx_power_pair:
+0x005f 000137 hjam 0xc2 ,0x8956 
+0x0060 000138 hjam 0xd0 ,0x8955 
+0x0061 000139 rtn 
+:      000141 p_initialize_radio_cont:
+0x0062 000142 call lpm_cal_xtal_startup 
+0x0063 000143 call switchto_dpllclk 
+0x0064 000144 hjam clksel_rc ,core_clksel 
+0x0065 000145 hfetch 1 ,rf_clkpll_int 
+0x0066 000146 set1 7 ,pdata 
+0x0067 000147 hstore 1 ,rf_clkpll_int 
+0x0068 000148 set0 7 ,pdata 
+0x0069 000149 hstore 1 ,rf_clkpll_int 
+0x006a 000150 set1 7 ,pdata 
+0x006b 000151 hstore 1 ,rf_clkpll_int 
+0x006c 000152 hjam clksel_dpll ,core_clksel 
+0x006d 000153 branch initialize_radio_cont + 4 
+:      000155 p_lpm_recover_clk:
+0x006e 000156 call lpm_recover_clk + 2 
+0x006f 000157 fetch 1 ,mem_hibernate_flag 
+0x0070 000158 rtn blank 
+0x0071 000159 jam 0 ,mem_hibernate_flag 
+0x0072 000160 copy clkn_bt ,pdata 
+0x0073 000161 store 4 ,mem_ipc_last_check_timer 
+0x0074 000162 rtn 
+:      000164 p_lpm_dispatch:
+0x0075 000165 rtnmark1 mark_24g 
+0x0076 000166 call lpo_calibration 
+0x0077 000167 fetch 3 ,mem_clks_per_lpo 
+0x0078 000168 rtn blank 
+0x0079 000169 fetch 2 ,mem_context + coffset_tsniff 
+0x007a 000170 arg 0xffff ,temp 
+0x007b 000171 isub temp ,null 
+0x007c 000172 rtn zero 
+0x007d 000173 fetch 1 ,mem_lpm_mode 
+0x007e 000174 rtn blank 
+0x007f 000175 call l2cap_malloc_is_fifo_empty 
+0x0080 000176 nrtn blank 
+0x0081 000177 call lpm_check_wake_lock 
+0x0082 000178 nrtn blank 
+0x0083 000179 call xtal_fast_wake 
+0x0084 000180 fetch 1 ,mem_ssp_enable 
+0x0085 000181 branch lpm_dispatch_next ,blank 
+0x0086 000182 fetch 1 ,mem_sp_local_key_invalid 
+0x0087 000183 rtn blank 
+0x0088 000184 branch lpm_dispatch_next 
+:      000186 p_lpm_dispatch_next2:
+0x0089 000187 fetch 1 ,mem_le_switch_send_data 
+0x008a 000188 branch p_lpm_dispatch_long_mult ,blank 
+0x008b 000189 fetch 1 ,mem_lpm_current_mult 
+0x008c 000190 nbranch p_lpm_dispatch_long_mult ,blank 
+0x008d 000191 fetch 1 ,mem_bt_read_ipc_count 
+0x008e 000192 fetcht 1 ,mem_51_read_sensor_count 
+0x008f 000193 isub temp ,null 
+0x0090 000194 nrtn zero 
+0x0091 000195 fetch 1 ,mem_ble_data_wheel 
+0x0092 000196 nrtn blank 
+0x0093 000197 setarg 0 
+0x0094 000198 store 8 ,mem_gpio_wakeup_low 
+0x0095 000199 branch lpm_dispatch_next2 
+:      000200 p_lpm_dispatch_long_mult:
+0x0096 000201 call p_check_ipc_for_lpm 
+0x0097 000202 nrtn user 
+0x0098 000203 fetch 1 ,mem_c51_lmp_lock 
+0x0099 000204 nrtn blank 
+0x009a 000205 jam 0 ,mem_bt_wakeup_from_long_mult 
+0x009b 000206 branch lpm_dispatch_next2 
+:      000208 p_lpm_dispatch_unconn:
+0x009c 000209 call p_check_ipc_for_lpm 
+0x009d 000210 nrtn user 
+0x009e 000211 fetch 1 ,mem_c51_lmp_lock 
+0x009f 000212 nrtn blank 
+0x00a0 000213 branch lpm_dispatch_unconn + 2 
+:      000215 p_check_ipc_for_lpm:
+0x00a1 000216 call p_check_ipc_2bt 
+0x00a2 000217 nrtn user 
+0x00a3 000218 call p_check_ipc_2c51 
+0x00a4 000219 nrtn user 
+0x00a5 000220 jam 1 ,mem_c51_lmp_lock 
+0x00a6 000221 jam syc_task_lpm ,mem_c51_flag 
+0x00a7 000222 call p_c51_wait 
+0x00a8 000223 branch p_check_ipc_2bt 
+:      000227 p_check_ipc_2c51:
+0x00a9 000228 fetch 2 ,mem_ipc_2c51_read_index 
+0x00aa 000229 fetcht 2 ,mem_ipc_2c51_write_index 
+0x00ab 000230 branch p_check_ipc_common 
+:      000231 p_check_ipc_2bt:
+0x00ac 000232 fetch 2 ,mem_ipc_2bt_read_index 
+0x00ad 000233 fetcht 2 ,mem_ipc_2bt_write_index 
+:      000234 p_check_ipc_common:
+0x00ae 000235 isub temp ,null 
+0x00af 000236 branch enable_usr ,zero 
+0x00b0 000237 branch disable_usr 
+:      000239 p_c51_wait:
+0x00b1 000240 fetch 1 ,mem_c51_flag 
+0x00b2 000241 nop 10 
+0x00b3 000242 bne 0 ,p_c51_wait 
+0x00b4 000243 rtn 
+:      000246 p_app_lpm_init:
+0x00b5 000247 jam 39 ,mem_le_ch_mapped 
+0x00b6 000248 jam 0 ,mem_tester_emulate 
+0x00b7 000249 jam 0 ,mem_debug_config 
+0x00b8 000250 jam 0 ,mem_lch_code 
+0x00b9 000251 setarg 0 
+0x00ba 000252 store 5 ,mem_sp_state_start 
+0x00bb 000253 rtn 
+:      000255 p_app_process_bb_event:
+0x00bc 000256 arg mem_ipc_fifo_bt2c51 ,rega 
+0x00bd 000257 call fifo_out 
+0x00be 000258 rtn blank 
+0x00bf 000260 copy pdata ,regc 
+0x00c0 000261 call p_app_event_normal_process 
+0x00c1 000262 branch app_process_bb_event_priority 
+:      000263 p_app_event_normal_process:
+0x00c2 000264 rtneq bt_evt_linkkey_generate 
+0x00c3 000265 beq bt_evt_le_connected ,p_device_le_conn 
+0x00c4 000266 beq bt_evt_le_disconnected ,p_device_le_discon 
+0x00c5 000267 beq bt_evt_le_enc_info ,p_device_le_enc_info 
+0x00c6 000268 branch app_event_normal_process 
+:      000271 p_device_le_conn:
+0x00c7 000272 jam 0 ,mem_bt_read_ipc_count 
+0x00c8 000273 jam 0 ,mem_lpm_mult 
+0x00c9 000274 jam 0 ,mem_mult_time_arrive_flag 
+0x00ca 000275 jam 20 ,mem_le_slave_update_mult_timer 
+0x00cb 000276 call app_ble_stop_adv 
+0x00cc 000277 call app_bt_stop_discovery 
+0x00cd 000278 call app_lpm_mult_enable 
+0x00ce 000279 call app_initflag_store 
+0x00cf 000280 jam 1 ,mem_le_fast_conn_finished 
+0x00d0 000281 branch app_le_event_bb_connected 
+:      000283 p_device_le_discon:
+0x00d1 000284 jam 0 ,mem_ble_send_flag 
+0x00d2 000285 call queue_init 
+0x00d3 000286 jam 0 ,mem_ltk_exists 
+0x00d4 000287 jam 0 ,mem_lpm_mult 
+0x00d5 000288 jam 0 ,mem_mult_time_arrive_flag 
+0x00d6 000289 jam 0 ,mem_le_slave_update_mult_timer 
+0x00d7 000291 jam flag_le_pairing_null ,mem_le_pairing_state 
+0x00d8 000292 fetcht 2 ,mem_le_att_report2 
+0x00d9 000293 storet 2 ,mem_le_notify_handle 
+0x00da 000294 call le_clean_att_list_handle_enable 
+0x00db 000295 branch app_le_event_bb_disconn 
+:      000297 p_device_le_enc_info:
+0x00dc 000298 call p_app_updata_le_param 
+0x00dd 000299 branch check_51cmd_le_start_write 
+:      000301 p_app_evt_timer:
+0x00de 000302 storet 1 ,mem_app_evt_timer_count 
+0x00df 000303 fetch 1 ,mem_ipc_bt_100ms_timer 
+0x00e0 000304 increase 1 ,pdata 
+0x00e1 000305 store 1 ,mem_ipc_bt_100ms_timer 
+:      000306 p_app_evt_100ms_loop:
+0x00e2 000307 fetch 1 ,mem_app_evt_timer_count 
+0x00e3 000308 rtn blank 
+0x00e4 000309 increase -1 ,pdata 
+0x00e5 000310 store 1 ,mem_app_evt_timer_count 
+0x00e6 000312 call p_le_slave_update_mult_timer 
+0x00e7 000313 call p_check_mult_parameter 
+0x00e8 000314 call p_le_reconn_enable_notify_timer 
+0x00e9 000315 call p_24g_enter_lpm_timer 
+0x00ea 000316 call p_ble_data_wheel_lpm_timer 
+0x00eb 000317 branch p_app_evt_100ms_loop 
+:      000319 p_check_mult_parameter:
+0x00ec 000320 fetch 1 ,mem_mult_time_arrive_flag 
+0x00ed 000321 rtn blank 
+0x00ee 000322 fetch 1 ,mem_lpm_mult 
+0x00ef 000323 compare 0x20 ,pdata ,0xff 
+0x00f0 000324 ncall p_set_mult_para ,true 
+0x00f1 000325 fetch 1 ,mem_lpm_mode 
+0x00f2 000326 call p_set_multmode ,blank 
+0x00f3 000327 rtn 
+:      000328 p_set_multmode:
+0x00f4 000329 jam 1 ,mem_lpm_mode 
+0x00f5 000330 rtn 
+:      000331 p_set_mult_para:
+0x00f6 000332 jam 0x20 ,mem_lpm_mult 
+0x00f7 000333 rtn 
+:      000334 p_24g_enter_lpm_timer:
+0x00f8 000335 fetch 1 ,mem_new_24g_enter_lpm_timer 
+0x00f9 000336 rtn blank 
+0x00fa 000337 jam 0 ,mem_short_data_wheel 
+0x00fb 000338 increase -1 ,pdata 
+0x00fc 000339 store 1 ,mem_new_24g_enter_lpm_timer 
+0x00fd 000340 nrtn blank 
+0x00fe 000341 rtn 
+:      000343 p_ble_data_wheel_lpm_timer:
+0x00ff 000344 fetch 1 ,mem_ble_data_wheel_lpm_timer 
+0x0100 000345 rtn blank 
+0x0101 000346 increase -1 ,pdata 
+0x0102 000347 store 1 ,mem_ble_data_wheel_lpm_timer 
+0x0103 000348 nrtn blank 
+0x0104 000349 jam 0 ,mem_ble_data_wheel 
+0x0105 000350 rtn 
+:      000358 p_app_updata_le_param:
+0x0106 000359 call app_lpm_mult_enable 
+0x0107 000360 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0x0108 000361 branch ui_ipc_send_cmd 
+:      000363 p_le_slave_update_mult_timer:
+0x0109 000364 fetch 1 ,mem_le_slave_update_mult_timer 
+0x010a 000365 rtn blank 
+0x010b 000366 increase -1 ,pdata 
+0x010c 000367 store 1 ,mem_le_slave_update_mult_timer 
+0x010d 000368 nrtn blank 
+0x010e 000369 jam 0x20 ,mem_lpm_mult 
+0x010f 000370 jam 1 ,mem_lpm_mode 
+0x0110 000371 jam 1 ,mem_mult_time_arrive_flag 
+0x0111 000372 rtn 
+:      000374 p_le_reconn_enable_notify_timer:
+0x0112 000375 fetch 1 ,mem_le_reconn_enable_notify_timer 
+0x0113 000376 rtn blank 
+0x0114 000377 increase -1 ,pdata 
+0x0115 000378 store 1 ,mem_le_reconn_enable_notify_timer 
+0x0116 000379 nrtn blank 
+0x0117 000380 branch app_ble_start_write 
+:      000384 p_le_slave_match:
+0x0118 000385 call le_got_first_packet 
+0x0119 000386 call le_acknowledge 
+0x011a 000387 call le_prepare_tx 
+0x011b 000388 call power_ctrl_start 
+0x011c 000389 branch le_slave_match + 5 
+:      000391 p_le_receive_skip:
+0x011d 000392 call save_rssi 
+0x011e 000393 copy pdata ,rega 
+0x011f 000394 call rssi_signal 
+0x0120 000395 branch le_receive_skip + 3 
+:      000397 p_le_send_adv_ind:
+0x0121 000398 fetch 4 ,mem_le_rx_winsows 
+0x0122 000399 store 4 ,mem_le_transmit_window 
+0x0123 000400 branch le_send_adv_ind + 2 
+:      000402 p_le_update_param:
+0x0124 000403 jam 1 ,mem_lpm_mode 
+0x0125 000404 fetch 2 ,mem_le_event_count 
+0x0126 000405 fetcht 2 ,mem_le_instant 
+0x0127 000406 isub temp ,pdata 
+0x0128 000407 store 2 ,mem_pdatatemp 
+0x0129 000408 fetch 1 ,mem_le_state 
+0x012a 000409 set0 lestate_update_param ,pdata 
+0x012b 000410 set0 lestate_got_first_packet ,pdata 
+0x012c 000411 store 1 ,mem_le_state 
+0x012d 000412 fetch 4 ,mem_le_anchor 
+0x012e 000413 fetcht 2 ,mem_le_tsniff 
+0x012f 000414 storet 2 ,mem_temp 
+0x0130 000415 isub temp ,rega 
+0x0131 000416 fetch 1 ,mem_le_new_param 
+0x0132 000417 store 1 ,mem_le_window_size 
+0x0133 000418 ifetcht 2 ,contr 
+0x0134 000419 ifetch 2 ,contr 
+0x0135 000420 lshift2 pdata ,pdata 
+0x0136 000421 store 2 ,mem_le_tsniff 
+0x0137 000422 lshift2 temp ,temp 
+0x0138 000423 iadd temp ,pdata 
+0x0139 000424 ifetcht 4 ,contr 
+0x013a 000425 storet 4 ,mem_le_slave_latency 
+0x013b 000426 iadd rega ,pdata 
+0x013c 000427 copy pdata ,regab 
+0x013d 000428 fetch 2 ,mem_le_tsniff 
+0x013e 000429 fetcht 2 ,mem_temp 
+0x013f 000430 isub temp ,pdata 
+0x0140 000431 fetcht 2 ,mem_pdatatemp 
+0x0141 000432 imul32 temp ,pdata 
+0x0142 000433 iadd regab ,pdata 
+0x0143 000434 store 4 ,mem_le_anchor 
+0x0144 000435 call le_receive_window_size 
+0x0145 000436 fetch 2 ,mem_le_superto 
+0x0146 000437 store 2 ,mem_le_init_superto 
+0x0147 000438 rtn 
+:      000440 p_le_prepare_tx:
+0x0148 000441 fetch 1 ,mem_le_arq 
+0x0149 000442 bbit1 wak ,p_le_prepare_tx_retansmited 
+0x014a 000443 call power_ctrl_pac_succ_incrs 
+0x014b 000444 jam 0 ,mem_le_prepare_tx_retransmited_number 
+0x014c 000445 fetch 1 ,mem_empty_count_user 
+0x014d 000446 nbranch p_le_send_empyt ,blank 
+0x014e 000447 fetch 1 ,mem_mouse_le_pairing_flag 
+0x014f 000448 beq 1 ,p_le_smp_empty 
+0x0150 000449 fetch 1 ,mem_le_rxbuf + 1 
+0x0151 000450 branch le_prepare_tx_1 ,blank 
+0x0152 000451 branch le_send_empty 
+:      000452 p_le_send_empyt:
+0x0153 000453 fetch 1 ,mem_empty_count_user 
+0x0154 000454 increase -1 ,pdata 
+0x0155 000455 store 1 ,mem_empty_count_user 
+0x0156 000456 branch le_send_empty 
+:      000457 p_le_smp_empty:
+0x0157 000458 jam 3 ,mem_empty_count_user 
+0x0158 000459 branch le_prepare_tx_1 
+:      000461 p_le_prepare_tx_retansmited:
+0x0159 000462 fetch 1 ,mem_le_prepare_tx_retransmited_number 
+0x015a 000463 increase 1 ,pdata 
+0x015b 000464 store 1 ,mem_le_prepare_tx_retransmited_number 
+0x015c 000465 branch power_ctrl_pac_succ_decrs 
+:      000467 p_le_prepare_tx_ll:
+0x015d 000468 fetch 1 ,mem_le_txpayload 
+0x015e 000469 beq ll_start_enc_rsp ,p_le_send_start_enc_rsp 
+0x015f 000470 beq ll_terminate_ind ,p_le_send_terminate_ind 
+0x0160 000471 branch le_prepare_tx_ll 
+:      000473 p_le_send_start_enc_rsp:
+0x0161 000474 fetch 1 ,mem_le_reconn_flag 
+0x0162 000475 beq 1 ,p_le_send_reconn_start_enc_rsp 
+0x0163 000476 call app_ble_start_write 
+0x0164 000482 branch le_send_start_enc_rsp 
+:      000483 p_le_send_reconn_start_enc_rsp:
+0x0165 000484 call p_app_updata_le_param 
+0x0166 000485 jam 3 ,mem_le_reconn_enable_notify_timer 
+0x0167 000486 branch le_send_start_enc_rsp_common 
+:      000488 p_le_send_terminate_ind:
+0x0168 000489 setarg 0x13 
+0x0169 000490 istore 1 ,contw 
+0x016a 000491 call le_send_terminate_ind 
+0x016b 000492 setarg 10 
+0x016c 000493 store 2 ,mem_le_superto 
+0x016d 000494 store 2 ,mem_le_init_superto 
+0x016e 000495 rtn 
+:      000497 p_le_prepare_smp0:
+0x016f 000498 fetch 1 ,mem_le_l2cap 
+0x0170 000499 beq smp_pairing_response ,p_le_send_smp_pairing_response 
+0x0171 000500 beq smp_encryption_information ,p_le_send_smp_encryption_information 
+0x0172 000501 beq smp_master_identification ,p_le_send_smp_master_identification_only 
+0x0173 000502 branch le_prepare_smp0 
+:      000503 p_le_send_smp_master_identification_only:
+0x0174 000504 jam 0 ,mem_mouse_le_pairing_flag 
+0x0175 000505 branch le_send_smp_master_identification_only 
+:      000507 p_le_send_smp_pairing_response:
+0x0176 000508 setarg param_smp_paring_response 
+0x0177 000509 store 3 ,mem_le_pres 
+0x0178 000510 setarg 0x01 
+0x0179 000511 istore 1 ,contw 
+0x017a 000512 setarg param_smp_key_dist0 
+0x017b 000513 istore 3 ,contw 
+0x017c 000514 branch le_send_smp_pairing_response_common 
+:      000516 p_le_send_smp_encryption_information:
+0x017d 000517 jam bt_evt_le_enc_info ,mem_fifo_temp 
+0x017e 000518 call ui_ipc_send_event 
+0x017f 000519 jam xt_smp_master_identification ,mem_fifo_temp 
+0x0180 000520 call le_xtype_fifo_in 
+0x0181 000521 branch le_send_smp_encryption_information_shutter 
+:      000523 p_le_prepare_att:
+0x0182 000524 fetch 1 ,mem_le_l2cap 
+0x0183 000525 beq attop_handle_value_notification ,p_le_send_att_handle_value_notification 
+0x0184 000526 beq attop_handle_value_indication ,p_le_send_att_handle_value_indication 
+0x0185 000527 branch le_prepare_att + 5 
+:      000529 p_le_send_att_handle_value_indication:
+:      000530 p_le_send_att_handle_value_notification:
+0x0186 000531 fetcht 2 ,mem_le_att_report2 
+0x0187 000532 storet 2 ,mem_le_l2cap + 1 
+0x0188 000533 fetch 1 ,mem_queue_read_ptr 
+0x0189 000534 add pdata ,1 ,temp 
+0x018a 000535 and temp ,0x03 ,temp 
+0x018b 000536 storet 1 ,mem_queue_read_ptr 
+0x018c 000537 mul32 pdata ,7 ,pdata 
+0x018d 000538 arg mem_queue_buffer0 ,contr 
+0x018e 000539 iadd contr ,contr 
+0x018f 000540 ifetch 7 ,contr 
+0x0190 000541 store 7 ,mem_le_l2cap + 3 
+0x0191 000542 arg 14 ,temp 
+0x0192 000543 branch le_send_packet 
+:      000545 p_le_send_packet:
+0x0193 000546 storet 1 ,mem_le_txlen 
+0x0194 000547 compare 2 ,type ,3 
+0x0195 000548 nbranch p_le_send_non_l2cap ,true 
+0x0196 000549 add temp ,-4 ,pdata 
+0x0197 000550 store 2 ,mem_le_txpayload 
+:      000551 p_le_send_non_l2cap:
+0x0198 000552 fetcht 1 ,mem_le_arq 
+0x0199 000553 call p_le_send_check_md 
+0x019a 000554 branch le_send_non_l2cap1 
+:      000555 p_le_send_check_md:
+0x019b 000556 fetch 1 ,mem_mouse_le_pairing_flag 
+0x019c 000557 beq 1 ,enable_blank 
+0x019d 000558 branch le_xtype_fifo_is_empty 
+:      000559 enable_blank:
+0x019e 000560 setarg 0 
+0x019f 000561 rtn 
+:      000563 p_le_parse0:
+0x01a0 000564 copy regc ,pdata 
+0x01a1 000565 beq ll_connection_update_req ,p_le_parse_connection_update_req 
+0x01a2 000566 beq ll_terminate_ind ,p_le_parse_terminate_ind 
+0x01a3 000567 beq ll_enc_req ,p_le_parse_enc_req 
+0x01a4 000568 beq ll_pause_enc_req ,p_le_parse_pause_enc_rsq 
+0x01a5 000569 branch le_parse0 + 6 
+:      000571 p_le_parse_connection_update_req:
+0x01a6 000572 jam 0 ,mem_lpm_mode 
+0x01a7 000573 jam 60 ,mem_le_slave_update_mult_timer 
+0x01a8 000574 branch le_parse_connection_update_req 
+:      000576 p_le_parse_terminate_ind:
+0x01a9 000577 call le_parse_terminate_ind 
+:      000578 le_clear_xtype_fifo:
+0x01aa 000579 setarg 0 
+0x01ab 000580 store 8 ,mem_le_xtype_fifo 
+0x01ac 000581 rtn 
+:      000583 p_le_parse_enc_req:
+0x01ad 000584 call le_parse_enc_req 
+0x01ae 000585 fetch 1 ,mem_le_pairing_state 
+0x01af 000586 rtneq flag_le_pairing_after_auth 
+0x01b0 000587 branch load_device_list_mode_4_shutter 
+:      000589 p_le_parse_pause_enc_rsq:
+0x01b1 000590 jam xt_ll_pause_enc_rsp ,mem_fifo_temp 
+0x01b2 000591 branch le_xtype_fifo_in 
+:      000593 p_le_parse_smp:
+0x01b3 000594 ifetch 1 ,contr 
+0x01b4 000595 beq smp_pairing_request ,p_le_parse_smp_pairing_request 
+0x01b5 000596 branch le_parse_smp + 3 
+:      000597 p_le_parse_smp_pairing_request:
+0x01b6 000598 jam 1 ,mem_mouse_le_pairing_flag 
+0x01b7 000599 jam 3 ,mem_empty_count_user 
+0x01b8 000600 branch le_parse_smp_pairing_request 
+:      000602 p_le_parse_att:
+0x01b9 000603 ifetch 3 ,contr 
+0x01ba 000604 store 3 ,mem_le_att_opcode 
+0x01bb 000605 beq attop_write_request ,p_le_parse_att_write_request 
+0x01bc 000606 branch le_parse_att + 4 
+:      000608 p_le_parse_att_write_request:
+0x01bd 000609 jam 1 ,mem_lpm_mode 
+0x01be 000610 call p_le_parse_att_write_common 
+0x01bf 000611 fetch 1 ,mem_le_att_handle 
+0x01c0 000612 sub pdata ,ble_fast_conn_character_handle ,null 
+0x01c1 000613 branch p_le_mouse_fast_conn_character_set ,zero 
+0x01c2 000614 jam 0 ,mem_le_mouse_fast_conn_flag 
+:      000615 p_le_parse_att_write_request_next:
+0x01c3 000616 call le_check_long_packet_patch 
+0x01c4 000617 nrtn zero 
+:      000618 p_le_parse_att_write_request_end:
+0x01c5 000619 fetch 1 ,mem_le_mouse_fast_conn_flag 
+0x01c6 000620 ncall p_le_set_enc_info_flag ,blank 
+0x01c7 000621 jam attop_write_response ,mem_fifo_temp 
+0x01c8 000622 branch le_xtype_fifo_in 
+:      000623 p_le_parse_att_write_common:
+0x01c9 000624 fetch 1 ,mem_le_rxbuf + 1 
+0x01ca 000625 increase -7 ,pdata 
+0x01cb 000626 icopy loopcnt 
+0x01cc 000627 copy loopcnt ,regb 
+0x01cd 000628 branch le_parse_att_write_common + 6 
+:      000630 p_le_mouse_fast_conn_character_set:
+0x01ce 000631 jam 1 ,mem_le_mouse_fast_conn_flag 
+0x01cf 000632 branch p_le_parse_att_write_request_next 
+:      000634 p_le_set_enc_info_flag:
+0x01d0 000635 jam bt_evt_le_enc_info ,mem_fifo_temp 
+0x01d1 000636 branch ui_ipc_send_event 
+:      000639 p_le_adv:
+0x01d2 000640 fetch 1 ,mem_le_adv_enable 
+0x01d3 000641 rtn blank 
+0x01d4 000642 arg le_adv_interval_timer ,queue 
+0x01d5 000643 call timer_check 
+0x01d6 000644 nrtn blank 
+0x01d7 000645 disable master 
+0x01d8 000646 enable swfine 
+0x01d9 000647 call le_init_adv 
+0x01da 000648 call le_next_adv_channel 
+0x01db 000649 call le_send_adv_ind 
+0x01dc 000650 nbranch p_le_adv_not_match ,match 
+0x01dd 000651 fetch 1 ,mem_le_req_rcv 
+0x01de 000652 increase 1 ,pdata 
+0x01df 000653 store 1 ,mem_le_req_rcv 
+0x01e0 000654 fetch 1 ,mem_le_rxbuf 
+0x01e1 000655 and pdata ,0x0f ,pdata 
+0x01e2 000656 beq scan_req ,p_le_send_scan_response 
+0x01e3 000657 beq connect_req ,le_parse_connect_req 
+:      000658 p_le_adv_not_match:
+0x01e4 000659 fetch 1 ,mem_le_ch_mapped 
+0x01e5 000660 bne 39 ,le_adv_loop 
+0x01e6 000661 random pdata 
+0x01e7 000662 arg 0x1ff ,temp 
+0x01e8 000663 iand temp ,pdata 
+0x01e9 000664 add pdata ,250 ,pdata 
+:      000665 p_adv_delay:
+0x01ea 000666 increase -1 ,pdata 
+0x01eb 000667 nop 38 
+0x01ec 000668 nbranch p_adv_delay ,blank 
+0x01ed 000669 branch le_adv_not_match + 3 
+:      000671 p_le_send_scan_response:
+0x01ee 000672 call le_send_scan_response 
+0x01ef 000673 branch p_le_adv_not_match 
+:      000675 p_le_receive_window_size:
+0x01f0 000676 fetch 4 ,mem_le_transmit_window 
+0x01f1 000677 arg 60000 ,temp 
+0x01f2 000678 iadd temp ,pdata 
+0x01f3 000679 store 4 ,mem_le_transmit_window 
+0x01f4 000680 branch le_receive_window_size + 16 
+:      000683 p_le_lpm_set_mult:
+0x01f5 000684 disable wake 
+0x01f6 000685 branch p_le_lpm_set_mult_attempt ,attempt 
+0x01f7 000686 nbranch p_le_lpm_lost ,match 
+:      000687 p_le_lpm_set_mult_attempt:
+0x01f8 000688 call lpm_match 
+0x01f9 000689 fetch 2 ,mem_rx_window_sniff 
+0x01fa 000690 store 2 ,mem_le_receive_window 
+0x01fb 000691 fetch 1 ,mem_le_rxbuf 
+0x01fc 000692 compare 1 ,pdata ,3 
+0x01fd 000693 nbranch lpm_mult_short ,true 
+0x01fe 000694 fetch 1 ,mem_le_txheader 
+0x01ff 000695 compare 1 ,pdata ,3 
+0x0200 000696 nbranch lpm_mult_short ,true 
+0x0201 000697 call le_xtype_fifo_is_empty 
+0x0202 000698 nbranch lpm_mult_short ,blank 
+0x0203 000699 fetch 1 ,mem_le_prepare_tx_retransmited_number 
+0x0204 000700 sub pdata ,1 ,null 
+0x0205 000701 nbranch lpm_mult_short ,positive 
+0x0206 000702 branch le_lpm_set_mult_attempt + 11 
+:      000704 p_le_lpm_lost:
+0x0207 000705 fetcht 2 ,mem_rx_window_sniff 
+0x0208 000706 fetch 2 ,mem_le_rx_window_inc 
+0x0209 000707 iadd temp ,temp 
+0x020a 000708 rshift temp ,temp 
+0x020b 000709 fetch 2 ,mem_le_receive_window 
+0x020c 000710 iadd temp ,pdata 
+0x020d 000711 store 2 ,mem_le_receive_window 
+0x020e 000712 branch lpm_lost 
+:      000714 p_mouse_init_environment:
+0x020f 000715 call p_mouse_iicd_read_eep_data 
+0x0210 000716 arg 0x03 ,loopcnt 
+0x0211 000717 arg mem_mouse_le_reconn_addr_data ,contr 
+0x0212 000719 setarg 0xffff 
+0x0213 000720 call p_mouse_reconn_addr_empty_check 
+0x0214 000721 nrtn zero 
+0x0215 000723 fetch 1 ,mem_le_start_fast_conn_count 
+0x0216 000724 rtn blank 
+0x0217 000725 increase -1 ,pdata 
+0x0218 000726 store 1 ,mem_le_start_fast_conn_count 
+0x0219 000727 call p_app_initflag_check 
+0x021a 000728 rtn zero 
+0x021b 000729 jam 1 ,mem_le_start_adv 
+0x021c 000730 rtn 
+:      000732 p_mouse_iicd_read_eep_data:
+0x021d 000733 arg 0x0c ,temp 
+0x021e 000734 arg mem_mouse_le_reconn_addr_data ,rega 
+0x021f 000735 fetch 2 ,mem_mouse_reconn_addr 
+0x0220 000736 branch iicd_read_eep_data + 5 
+:      000737 p_mouse_reconn_addr_empty_check:
+0x0221 000738 ifetcht 2 ,contr 
+0x0222 000739 isub temp ,null 
+0x0223 000740 nrtn zero 
+0x0224 000741 loop p_mouse_reconn_addr_empty_check 
+0x0225 000742 rtn 
+:      000744 p_app_flag_store:
+0x0226 000745 arg 2 ,temp 
+0x0227 000746 arg mem_timeup ,rega 
+0x0228 000747 arg eeprom_init_flag_offset ,regb 
+0x0229 000748 branch iicd_write_eep_data 
+:      000750 p_app_initflag_check:
+0x022a 000751 arg 2 ,temp 
+0x022b 000752 arg mem_pdatatemp ,rega 
+0x022c 000753 arg eeprom_init_flag_offset ,regb 
+0x022d 000754 call iicd_read_eep_data 
+0x022e 000755 fetch 2 ,mem_pdatatemp 
+0x022f 000756 arg eeprom_init_flag ,temp 
+0x0230 000757 isub temp ,null 
+0x0231 000758 rtn 
+:      000764 p_gpio_set_before_lpm_common:
+0x0232 000765 hfetch 4 ,core_gpio_pu0 
+0x0233 000766 hfetcht 4 ,core_gpio_pd0 
+0x0234 000767 ior temp ,pdata 
+0x0235 000768 invert pdata ,pdata 
+0x0236 000769 iand rega ,pdata 
+0x0237 000770 hstore 4 ,core_gpio_oe0 
+0x0238 000771 rtn 
+:      000773 p_ui_timer_check_end:
+0x0239 000774 copy rega ,pdata 
+0x023a 000775 rtn blank 
+0x023b 000776 increase -160 ,temp 
+0x023c 000777 increase -160 ,temp 
+0x023d 000778 set0 28 ,temp 
+0x023e 000779 storet 4 ,mem_ui_timer_last_btclk 
+0x023f 000780 copy pdata ,temp 
+0x0240 000781 arg mem_ipc_fifo_bt2c51 ,rega 
+0x0241 000782 call fifo_is_near_full 
+0x0242 000783 nrtn blank 
+0x0243 000784 copy temp ,pdata 
+0x0244 000785 branch ui_timer_check_send_evt 
+:      000788 p_check_51cmd_once:
+0x0245 000789 call ui_ipc_get_lock 
+0x0246 000790 arg mem_ipc_fifo_c512bt ,rega 
+0x0247 000791 call fifo_out 
+0x0248 000792 copy pdata ,temp 
+0x0249 000793 call ui_ipc_put_lock 
+0x024a 000794 copy temp ,pdata 
+0x024b 000795 rtn blank 
+0x024c 000801 beq bt_cmd_start_adv ,p_check_51cmd_adv 
+0x024d 000802 beq bt_cmd_start_adv_reconn ,p_check_51cmd_adv_reconn 
+0x024e 000803 branch check_51cmd_once + 9 
+:      000823 p_check_51cmd_adv:
+0x024f 000824 set0 mark_24g ,mark 
+0x0250 000825 jam 0 ,mem_lpm_mode 
+0x0251 000826 random pdata 
+0x0252 000827 store 1 ,mem_le_lap 
+0x0253 000829 setarg 0x26100e 
+0x0254 000830 store 3 ,mem_le_lap + 3 
+0x0255 000831 jam 0 ,mem_le_reconn_flag 
+0x0256 000832 fetcht 2 ,mem_le_att_report2 
+0x0257 000833 storet 2 ,mem_le_notify_handle 
+0x0258 000834 call le_clean_att_list_handle_enable 
+0x0259 000835 arg adv_flag_bredr_not_supported | adv_flag_limited_discoverable ,regb 
+:      000836 p_le_start_adv:
+0x025a 000837 call p_le_check_adv_flag 
+0x025b 000839 copy regb ,pdata 
+0x025c 000840 istore 1 ,contr 
+0x025d 000841 branch check_51cmd_adv 
+:      000843 p_check_51cmd_adv_reconn:
+0x025e 000844 set0 mark_24g ,mark 
+0x025f 000845 jam 0 ,mem_lpm_mode 
+0x0260 000846 jam 1 ,mem_le_reconn_flag 
+0x0261 000847 fetcht 2 ,mem_le_att_report2 
+0x0262 000848 call le_att_check_notification_enable 
+0x0263 000849 copy rega ,contw 
+0x0264 000850 setarg 1 
+0x0265 000851 istore 1 ,contw 
+0x0266 000852 arg adv_flag_bredr_not_supported ,regb 
+0x0267 000853 branch p_le_start_adv 
+:      000859 p_le_check_adv_flag:
+0x0268 000860 arg mem_le_adv_data ,rega 
+:      000861 p_le_check_adv_flag_loop:
+0x0269 000862 ifetch 1 ,rega 
+0x026a 000863 rtn blank 
+0x026b 000864 iadd contr ,rega 
+0x026c 000865 ifetch 1 ,contr 
+0x026d 000866 rtneq 0x01 
+0x026e 000867 branch p_le_check_adv_flag_loop 
+:      000870 p_check_51cmd_once_continue0:
+0x026f 000871 call lmo_fifo_check 
+0x0270 000872 nbranch check_51cmd_restore ,blank 
+:      000873 p_check_51cmd_once_continue:
+0x0271 000874 fetch 1 ,mem_fifo_temp 
+0x0272 000875 bmark0 mark_context ,check_51cmd_check_idle 
+0x0273 000878 beq bt_cmd_store_reconn_info_le ,p_rtn 
+0x0274 000880 branch check_51cmd_once_continue + 2 
+:      000897 p_check_enter_hibernate:
+0x0275 000898 jam syc_task_hibernate ,mem_c51_flag 
+0x0276 000899 call p_c51_wait 
+:      000900 p_enter_hibernate_continue:
+0x0277 000902 jam 0x5a ,mem_hibernate_flag 
+0x0278 000903 call lpm_write_gpio_wakeup 
+0x0279 000904 hfetch 4 ,core_lpm_ctrl 
+0x027a 000905 set0 15 ,pdata 
+0x027b 000906 hstore 4 ,core_lpm_reg 
+0x027c 000907 call lpm_write_ctrl 
+0x027d 000908 arg param_hibernate_clks ,temp 
+0x027e 000909 branch lpm_sleep 
+:      000912 p_ipc_timer_check:
+0x027f 000913 fetcht 4 ,mem_ipc_last_check_timer 
+0x0280 000914 copy clkn_bt ,pdata 
+0x0281 000915 isub temp ,pdata 
+0x0282 000917 arg 1600 ,temp 
+0x0283 000918 idiv temp 
+0x0284 000919 call wait_div_end 
+0x0285 000920 quotient pdata 
+0x0286 000921 rtn blank 
+0x0287 000922 copy clkn_bt ,temp 
+0x0288 000923 storet 4 ,mem_ipc_last_check_timer 
+0x0289 000924 fetcht 2 ,mem_ipc_bt_timer 
+0x028a 000925 byteswap temp ,temp 
+0x028b 000926 iadd temp ,pdata 
+0x028c 000927 byteswap pdata ,pdata 
+0x028d 000928 store 2 ,mem_ipc_bt_timer 
+0x028e 000929 byteswap pdata ,pdata 
+0x028f 000930 and pdata ,0x3 ,pdata 
+0x0290 000931 rtnne 0 
+0x0291 000932 call p_read_adc_enable 
+0x0292 000933 nrtn user2 
+:      000934 p_adc_check_process:
+0x0293 000935 fetch 1 ,mem_adc_config_flag 
+0x0294 000936 bbit1 adc_config_gpio ,p_adc_check_gpio 
+:      000937 p_rtn:
+0x0295 000938 rtn 
+:      000942 p_adc_check_gpio:
+0x0296 000943 hfetch 1 ,core_gpio_pu0 
+0x0297 000944 set0 5 ,pdata 
+0x0298 000945 hstore 1 ,core_gpio_pu0 
+0x0299 000946 hjam 0x8f ,rf_adc_mode 
+0x029a 000947 fetch 1 ,mem_adc_channel 
+0x029b 000948 hstore 1 ,rf_adc_ch 
+0x029c 000949 call p_read_adc 
+0x029d 000950 hfetch 1 ,core_gpio_pu0 
+0x029e 000951 set1 5 ,pdata 
+0x029f 000952 hstore 1 ,core_gpio_pu0 
+0x02a0 000953 rtn 
+:      000955 p_read_adc:
+0x02a1 000956 hfetch 1 ,core_uart_baud + 1 
+0x02a2 000957 set1 7 ,pdata 
+0x02a3 000958 hstore 1 ,core_uart_baud + 1 
+0x02a4 000959 hfetch 1 ,rf_adc_ch 
+0x02a5 000960 or_into 0x30 ,pdata 
+0x02a6 000961 hstore 1 ,rf_adc_ch 
+0x02a7 000962 hjam 0x7c ,rfen_adc 
+0x02a8 000963 hjam 0xaa ,rf_adc_gc 
+0x02a9 000964 nop 5000 
+0x02aa 000965 hfetcht 2 ,core_adc_sum 
+0x02ab 000966 hfetch 1 ,core_uart_baud + 1 
+0x02ac 000967 set0 7 ,pdata 
+0x02ad 000968 hstore 1 ,core_uart_baud + 1 
+0x02ae 000969 byteswap temp ,temp 
+0x02af 000970 storet 2 ,mem_adc_current_value 
+0x02b0 000971 rtn 
+:      000973 enable_usr2:
+0x02b1 000974 enable user2 
+0x02b2 000975 rtn 
+:      000976 p_read_adc_enable:
+0x02b3 000977 disable user2 
+0x02b4 000978 call le_xtype_fifo_is_empty 
+0x02b5 000979 call enable_usr2 ,blank 
+0x02b6 000984 rtn 
+:      000986 p_user_le_connect_process:
+0x02b7 000987 jam 1 ,mem_ble_read_ipc_fifo_once 
+0x02b8 000988 call p_ipc_rx 
+0x02b9 000989 jam 0 ,mem_ble_read_ipc_fifo_once 
+0x02ba 000990 rtn 
+:      000992 p_ipc_rx:
+0x02bb 000993 call p_check_ipc_2bt 
+0x02bc 000994 rtn user 
+0x02bd 000995 byteswap pdata ,pdata 
+0x02be 000996 copy pdata ,contr 
+0x02bf 000997 call p_ipc_rx_byte 
+0x02c0 000998 store 1 ,mem_ipc_rx_type 
+0x02c1 000999 beq ipc_type_cmd ,p_ipc_rx_cmd 
+0x02c2 001003 copy pdata ,temp 
+0x02c3 001004 copy contr ,rega 
+0x02c4 001005 fetch 1 ,mem_context 
+0x02c5 001006 bbit0 state_inconn ,p_ipc_abondon_rx_data 
+0x02c6 001007 copy rega ,contr 
+0x02c7 001008 rtnmark0 mark_context 
+0x02c8 001009 copy temp ,pdata 
+0x02c9 001010 beq ipc_type_ble ,p_ipc_rx_ble 
+0x02ca 001011 branch assert 
+:      001013 p_ipc_rx_cmd:
+0x02cb 001014 call p_ipc_rx_byte 
+0x02cc 001015 call p_ipc_rx_byte 
+0x02cd 001016 store 1 ,mem_fifo_temp 
+0x02ce 001017 call p_ipc_next_rx 
+0x02cf 001018 branch ui_ipc_send_cmd 
+:      001020 p_ipc_next_rx:
+0x02d0 001021 call p_ipc_rx_updata_contr 
+0x02d1 001022 copy contr ,temp 
+0x02d2 001023 byteswap temp ,temp 
+0x02d3 001024 storet 2 ,mem_ipc_2bt_read_index 
+0x02d4 001025 rtn 
+:      001027 p_ipc_abondon_rx_data:
+0x02d5 001028 copy rega ,contr 
+0x02d6 001029 arg mem_tst_pktcnt_sync ,contw 
+0x02d7 001030 branch p_ipc_rx_cpy 
+:      001032 p_ipc_rx_cpy:
+0x02d8 001033 call p_ipc_rx_byte 
+0x02d9 001034 copy pdata ,loopcnt 
+:      001035 p_ipc_copy:
+0x02da 001036 call p_ipc_cpy_loop 
+0x02db 001037 branch p_ipc_next_rx 
+:      001039 p_ipc_cpy_loop:
+0x02dc 001040 call p_ipc_rx_byte 
+0x02dd 001041 istore 1 ,contw 
+0x02de 001042 loop p_ipc_cpy_loop 
+0x02df 001043 rtn 
+:      001045 p_ipc_rx_byte:
+0x02e0 001046 call p_ipc_rx_updata_contr 
+0x02e1 001047 ifetch 1 ,contr 
+0x02e2 001048 rtn 
+:      001050 p_ipc_rx_updata_contr:
+0x02e3 001051 setarg mem_ipc_2bt_fifo_end 
+0x02e4 001052 isub contr ,null 
+0x02e5 001053 nrtn zero 
+0x02e6 001054 arg mem_ipc_2bt_fifo_head ,contr 
+0x02e7 001055 rtn 
+:      001057 p_ipc_tx_evt:
+0x02e8 001058 arg 3 ,loopcnt 
+0x02e9 001059 arg mem_ipc_tx_evt_buff ,contr 
+:      001060 p_ipc_tx_cpy:
+0x02ea 001061 copy contr ,rega 
+0x02eb 001062 fetch 2 ,mem_ipc_2c51_write_index 
+0x02ec 001063 byteswap pdata ,pdata 
+0x02ed 001064 copy pdata ,contw 
+0x02ee 001065 copy rega ,contr 
+:      001066 p_ipc_tx_loop:
+0x02ef 001067 ifetch 1 ,contr 
+0x02f0 001068 istore 1 ,contw 
+0x02f1 001069 call p_ipc_tx_updata_contw 
+0x02f2 001070 loop p_ipc_tx_loop 
+0x02f3 001071 copy contw ,pdata 
+0x02f4 001072 byteswap pdata ,pdata 
+0x02f5 001073 store 2 ,mem_ipc_2c51_write_index 
+0x02f6 001074 rtn 
+:      001075 p_ipc_tx_updata_contw:
+0x02f7 001076 setarg mem_ipc_2c51_fifo_end 
+0x02f8 001077 isub contw ,null 
+0x02f9 001078 nrtn zero 
+0x02fa 001079 arg mem_ipc_2c51_fifo_head ,contw 
+0x02fb 001080 rtn 
+:      001092 queue_init:
+0x02fc 001093 setarg 0 
+0x02fd 001094 store 3 ,mem_queue_write_prt 
+0x02fe 001095 rtn 
+:      001097 p_ipc_rx_ble_data:
+0x02ff 001098 rtnmark1 mark_24g 
+0x0300 001099 fetch 1 ,mem_le_switch_send_data 
+0x0301 001100 rtn blank 
+0x0302 001101 call p_check_ipc_2bt 
+0x0303 001102 rtn user 
+0x0304 001103 byteswap pdata ,pdata 
+0x0305 001104 copy pdata ,contr 
+0x0306 001105 call p_ipc_rx_byte 
+0x0307 001106 store 1 ,mem_ipc_rx_type 
+0x0308 001107 copy contr ,rega 
+0x0309 001108 bne ipc_type_ble ,p_ipc_abondon_rx_data 
+0x030a 001109 copy contr ,regb 
+0x030b 001110 call le_xtype_fifo_is_near_full 
+0x030c 001111 nrtn blank 
+0x030d 001112 branch p_ipc_rx_ble_read_fifo 
+:      001114 p_ipc_rx_ble:
+0x030e 001115 copy contr ,regb 
+0x030f 001116 fetch 1 ,mem_ble_read_ipc_fifo_once 
+0x0310 001117 rtn blank 
+0x0311 001118 call le_xtype_fifo_is_empty 
+0x0312 001119 nrtn blank 
+:      001120 p_ipc_rx_ble_read_fifo:
+0x0313 001121 fetcht 2 ,mem_le_att_report2 
+0x0314 001122 call le_att_check_notification_enable 
+0x0315 001123 rtnbit0 0 
+0x0316 001124 fetch 1 ,mem_le_switch_send_data 
+0x0317 001125 rtneq 0 
+0x0318 001126 fetch 1 ,mem_bt_read_ipc_count 
+0x0319 001127 pincrease 1 
+0x031a 001128 store 1 ,mem_bt_read_ipc_count 
+0x031b 001129 fetch 1 ,mem_queue_write_prt 
+0x031c 001130 add pdata ,1 ,temp 
+0x031d 001131 and temp ,0x03 ,temp 
+0x031e 001132 storet 1 ,mem_queue_write_prt 
+0x031f 001133 mul32 pdata ,7 ,pdata 
+0x0320 001134 arg mem_queue_buffer0 ,contw 
+0x0321 001135 iadd contw ,contw 
+0x0322 001136 copy regb ,contr 
+0x0323 001137 call p_ipc_rx_byte 
+0x0324 001138 icopy loopcnt 
+0x0325 001139 call p_ipc_copy 
+0x0326 001140 call p_ipc_rx_ble_read_fifo_first_time 
+0x0327 001141 rtn user2 
+0x0328 001142 jam attop_handle_value_notification ,mem_fifo_temp 
+0x0329 001143 branch le_xtype_fifo_in 
+:      001145 p_ipc_rx_ble_read_fifo_first_time:
+0x032a 001146 disable user2 
+0x032b 001147 fetch 1 ,mem_ble_send_flag 
+0x032c 001148 rtneq 5 
+0x032d 001149 enable user2 
+0x032e 001150 increase 1 ,pdata 
+0x032f 001151 store 1 ,mem_ble_send_flag 
+0x0330 001152 sub pdata ,1 ,null 
+0x0331 001153 nrtn positive 
+0x0332 001154 jam bt_evt_le_notify_enable ,mem_ipc_tx_evt 
+0x0333 001155 branch p_ipc_tx_evt 
+:      001163 p_ipc_init:
+0x0334 001164 setarg mem_ipc_2bt_fifo_head 
+0x0335 001165 byteswap pdata ,pdata 
+0x0336 001166 store 2 ,mem_ipc_2bt_read_index 
+0x0337 001167 store 2 ,mem_ipc_2bt_write_index 
+0x0338 001168 setarg mem_ipc_2c51_fifo_head 
+0x0339 001169 byteswap pdata ,pdata 
+0x033a 001170 store 2 ,mem_ipc_2c51_read_index 
+0x033b 001171 store 2 ,mem_ipc_2c51_write_index 
+0x033c 001172 rtn 
+:      001174 p_mouse_reconn_addr_calculate:
+0x033d 001175 fetch 2 ,mem_mouse_eeprom_base 
+0x033e 001176 add pdata ,0x1c ,pdata 
+0x033f 001177 store 2 ,mem_mouse_reconn_addr 
+0x0340 001178 rtn 
+:      001180 p_device_init:
+0x0341 001181 call le_modified_name_adv 
+0x0342 001184 jam 0 ,mem_c51_flag 
+0x0343 001185 jam 6 ,mem_connection_options 
+0x0344 001186 call app_lpm_mult_enable 
+0x0345 001189 setarg p_c51_user_event 
+0x0346 001190 store 2 ,mem_cb_bb_event_process 
+0x0347 001193 setarg p_user_le_connect_process 
+0x0348 001195 store 2 ,mem_cb_le_process 
+0x0349 001196 setarg p_device_before_hibernate 
+0x034a 001197 store 2 ,mem_cb_before_hibernate 
+0x034b 001198 ncall p_ipc_init ,wake 
+0x034c 001199 call p_device_wakeup ,wake 
+0x034d 001200 call lpm_disable_exen_output 
+0x034e 001202 fetch 1 ,mem_le_init_eeprom_base_count 
+0x034f 001203 branch p_device_init_next ,blank 
+0x0350 001204 increase -1 ,pdata 
+0x0351 001205 store 1 ,mem_le_init_eeprom_base_count 
+0x0352 001206 setarg 0x3f80 
+0x0353 001207 store 2 ,mem_mouse_eeprom_base 
+0x0354 001208 call p_mouse_reconn_addr_calculate 
+0x0355 001210 fetch 1 ,mem_le_reconn_flag 
+0x0356 001211 nbranch p_device_init_next ,blank 
+0x0357 001212 fetch 1 ,mem_le_fast_conn_finished 
+0x0358 001213 nbranch p_device_init_next ,blank 
+0x0359 001214 call p_mouse_init_environment 
+:      001215 p_device_init_next:
+0x035a 001216 fetch 1 ,mem_hibernate_flag 
+0x035b 001217 beq 0x5a ,p_device_init_init_hibwake 
+0x035c 001218 branch p_deveice_init_wake ,wake 
+0x035d 001219 fetch 1 ,mem_tx_power 
+0x035e 001220 store 1 ,mem_tx_power_temp 
+0x035f 001221 call power_ctrl_pac_succ_cnt_init 
+0x0360 001222 fetch 2 ,mem_adc_0v 
+0x0361 001223 byteswap pdata ,pdata 
+0x0362 001224 store 2 ,mem_adc_0v 
+0x0363 001225 fetch 2 ,mem_adc_3v 
+0x0364 001226 byteswap pdata ,pdata 
+0x0365 001227 store 2 ,mem_adc_3v 
+0x0366 001228 call p_init_adc_from_otp 
+0x0367 001232 fetch 8 ,mem_temp 
+0x0368 001233 nbranch p_deveice_init_reset ,blank 
+0x0369 001234 fetch 2 ,0x4ad4 
+0x036a 001235 byteswap pdata ,pdata 
+0x036b 001236 branch p_deveice_init_reset ,blank 
+0x036c 001237 store 2 ,mem_adc_3v 
+:      001238 p_deveice_init_reset:
+0x036d 001239 jam bt_evt_reset ,mem_ipc_tx_evt 
+:      001240 p_device_init_common:
+0x036e 001241 fetch 1 ,mem_short_lpm_enable 
+0x036f 001242 nbranch p_24g_short_lpm_process ,blank 
+0x0370 001243 call p_adc_check_process 
+0x0371 001244 call p_ipc_tx_evt 
+0x0372 001245 call p_ipc_rx_ble_data 
+0x0373 001246 hjam start_c51_core ,core_docd_ctrl 
+0x0374 001247 rtn 
+:      001248 p_24g_short_lpm_process:
+0x0375 001249 call lpm_recover_clk ,wake 
+0x0376 001250 arg param_rx_setup ,timeup 
+0x0377 001251 until clkn_rt ,meet 
+0x0378 001252 copy clkn_bt ,pdata 
+0x0379 001253 store 3 ,mem_ckln_24g_short_lpm 
+:      001254 p_24g_short_lpm_process_loop:
+0x037a 001255 fetch 2 ,mem_ui_state_map 
+0x037b 001256 rtnbit1 ui_state_ble_adv 
+0x037c 001257 rtnbit1 ui_state_bt_discovery 
+0x037d 001258 call app_process_idle 
+0x037e 001259 call g24_short_lpm_transmit_process 
+0x037f 001260 branch p_24g_short_lpm_process_loop 
+:      001262 p_device_wakeup:
+0x0380 001263 copy auxcnt ,pdata 
+0x0381 001264 bmark0 mark_24g ,p_device_bt_wakeup 
+:      001265 g24_delay_long_sleep:
+0x0382 001267 branch g24_direct_long_sleep ,blank 
+:      001268 g24_delay_long_sleep2:
+0x0383 001269 jam 0xbb ,mem_new_24g_delay_long_sleep_maxcnt 
+0x0384 001270 rtn 
+:      001271 g24_direct_long_sleep:
+0x0385 001272 jam 0x00 ,mem_new_24g_delay_long_sleep_maxcnt 
+0x0386 001273 fetch 1 ,mem_new_24g_key_wheel_event 
+0x0387 001274 rtn blank 
+0x0388 001275 jam 0 ,mem_new_24g_key_wheel_event 
+0x0389 001276 branch g24_delay_long_sleep2 
+:      001278 p_device_bt_wakeup:
+0x038a 001280 branch p_device_bt_wakeup_check ,blank 
+0x038b 001281 jam 2 ,mem_bt_wakeup_from_long_mult 
+0x038c 001282 rtn 
+:      001283 p_device_bt_wakeup_check:
+0x038d 001284 fetch 1 ,mem_bt_motion_event 
+0x038e 001285 rtn blank 
+0x038f 001286 jam 0 ,mem_bt_motion_event 
+0x0390 001287 jam 1 ,mem_bt_wakeup_from_long_mult 
+0x0391 001288 rtn 
+:      001290 p_deveice_init_wake:
+0x0392 001291 jam bt_evt_wakeup ,mem_ipc_tx_evt 
+0x0393 001292 branch p_device_init_common 
+:      001293 p_device_init_init_hibwake:
+0x0394 001294 copy auxcnt ,pdata 
+0x0395 001295 branch p_enter_hibernate_continue ,blank 
+0x0396 001296 call init_lmp_work 
+0x0397 001297 call l2cap_init_work 
+0x0398 001298 setarg 0 
+0x0399 001299 store 8 ,mem_context 
+0x039a 001300 store 2 ,mem_ui_state_map 
+0x039b 001301 store 2 ,mem_ipc_bt_timer 
+0x039c 001302 store 2 ,mem_ipc_c51_timer 
+0x039d 001303 jam bt_evt_hibernate_wake ,mem_ipc_tx_evt 
+0x039e 001304 branch p_device_init_common 
+:      001306 p_init_adc_from_otp:
+0x039f 001307 call otp_enable_chgpump 
+0x03a0 001308 setarg 0x7e2 
+0x03a1 001309 arg mem_temp ,rega 
+0x03a2 001310 arg 12 ,temp 
+0x03a3 001311 call otpd_read_data 
+0x03a4 001312 call otp_disable_chgpump 
+0x03a5 001313 fetch 8 ,mem_temp 
+0x03a6 001314 rtn blank 
+0x03a7 001315 fetch 1 ,mem_adc_config_flag 
+0x03a8 001316 bbit1 adc_config_gpio ,p_calc_adc_check_gpio 
+0x03a9 001317 rtn 
+:      001321 p_calc_adc_check_gpio:
+0x03aa 001322 fetcht 2 ,mem_temp 
+0x03ab 001323 fetch 2 ,mem_temp + 6 
+0x03ac 001324 copy temp ,regb 
+0x03ad 001325 copy pdata ,rega 
+0x03ae 001326 isub temp ,regc 
+0x03af 001327 copy regb ,pdata 
+0x03b0 001328 isub regc ,pdata 
+0x03b1 001329 byteswap pdata ,pdata 
+0x03b2 001330 store 2 ,mem_adc_0v 
+0x03b3 001331 lshift2 regc ,pdata 
+0x03b4 001332 iadd rega ,pdata 
+0x03b5 001333 byteswap pdata ,pdata 
+0x03b6 001334 store 2 ,mem_adc_3v 
+0x03b7 001335 rtn 
+:      001338 p_device_before_hibernate:
+0x03b8 001339 enable user 
+0x03b9 001340 hfetch 4 ,0x8138 
+0x03ba 001341 setflag user ,26 ,pdata 
+0x03bb 001342 hstore 4 ,core_lpm_reg 
+0x03bc 001343 call lpm_write_ctrl 
+0x03bd 001344 jam 1 ,mem_lpm_current_mult 
+:      001345 p_device_bt_lpm_before:
+0x03be 001346 rtn 
+:      001351 p_c51_user_event:
+0x03bf 001352 copy regc ,pdata 
+0x03c0 001353 and_into bt_evt_timer_mask ,pdata 
+0x03c1 001354 rtneq bt_evt_timer_init 
+0x03c2 001355 copy regc ,pdata 
+0x03c3 001356 store 1 ,mem_ipc_tx_evt 
+0x03c4 001357 branch p_ipc_tx_evt 
+:      001360 g24_pair_init:
+0x03c5 001361 jam 0 ,mem_new_24g_pid 
+0x03c6 001362 jam g24_pair_ch ,mem_new_24g_ch 
+0x03c7 001363 fetch 4 ,mem_new_24g_paring_addr 
+:      001364 g24_update_addr_and_synccrc8:
+0x03c8 001365 store 4 ,mem_new_24g_addr 
+0x03c9 001366 branch g24_syncword_crc8 
+:      001369 g24_ch:
+0x03ca 001370 fetcht 1 ,mem_new_24g_current_ch_number 
+0x03cb 001371 call g24_ch_calc 
+0x03cc 001372 increase 1 ,temp 
+0x03cd 001373 and_into 3 ,temp 
+0x03ce 001374 storet 1 ,mem_new_24g_current_ch_number 
+0x03cf 001375 rtn 
+:      001377 g24_ch_calc:
+0x03d0 001378 fetch 1 ,mem_new_24g_addr 
+0x03d1 001379 and_into 0x03 ,pdata 
+0x03d2 001380 mul32 pdata ,4 ,rega 
+0x03d3 001381 setarg mem_new_24g_ch_map1 
+0x03d4 001382 iadd rega ,pdata 
+0x03d5 001383 iadd temp ,contr 
+0x03d6 001384 ifetch 1 ,contr 
+0x03d7 001385 store 1 ,mem_new_24g_ch 
+0x03d8 001386 rtn 
+:      001397 g24_transmit_rf_sta_init:
+0x03d9 001398 jam 1 ,mem_new_24g_rf_last_sta 
+0x03da 001399 jam 0 ,mem_new_24g_sync_cnt 
+:      001400 g24_transmit_rf_ctrl_clear:
+0x03db 001401 fetch 1 ,mem_new_24g_data_type 
+0x03dc 001402 and_into bits_data ,pdata 
+0x03dd 001403 store 1 ,mem_new_24g_data_type 
+0x03de 001404 rtn 
+:      001406 g24_hop_ch_enable:
+0x03df 001407 fetch 1 ,mem_new_24g_data_type 
+0x03e0 001408 set1 bit_hop ,pdata 
+0x03e1 001409 store 1 ,mem_new_24g_data_type 
+0x03e2 001411 store 1 ,mem_new_24g_txpayload 
+0x03e3 001412 rtn 
+:      001413 g24_hop_ch_disable:
+0x03e4 001414 fetch 1 ,mem_new_24g_data_type 
+0x03e5 001415 set0 bit_hop ,pdata 
+0x03e6 001416 store 1 ,mem_new_24g_data_type 
+0x03e7 001417 rtn 
+:      001419 g24_transmit_hop_pac_fail:
+0x03e8 001420 call power_ctrl_pac_succ_decrs 
+0x03e9 001421 fetch 1 ,mem_new_24g_rf_work_stage 
+0x03ea 001422 beq 1 ,g24_transmit_hop_pac_fail_wo_hop 
+0x03eb 001423 beq 2 ,g24_transmit_hop_pac_fail_hop_stage2 
+0x03ec 001424 rtn 
+:      001425 g24_transmit_hop_pac_fail_wo_hop:
+0x03ed 001426 jam 2 ,mem_new_24g_sync_cnt 
+:      001427 g24_transmit_hop_pac_fail_stage1:
+0x03ee 001428 jam 0 ,mem_new_24g_hop_pac_retry 
+0x03ef 001429 jam 0 ,mem_new_24g_rf_last_sta 
+0x03f0 001430 branch g24_transmit_rf_ctrl_clear 
+:      001432 g24_transmit_hop_pac_fail_hop_stage2:
+0x03f1 001433 jam 0 ,mem_new_24g_rf_hop_ch 
+0x03f2 001434 branch g24_transmit_hop_pac_fail_stage1 
+:      001436 g24_transmit_pac_fail_hop_stage3:
+0x03f3 001437 fetch 2 ,mem_new_24g_txfail_cnt 
+0x03f4 001438 increase 1 ,pdata 
+0x03f5 001439 store 2 ,mem_new_24g_txfail_cnt 
+0x03f6 001440 bbit1 10 ,g24_tx_attempt_fail 
+0x03f7 001441 fetch 1 ,mem_new_24g_rf_hop_ch 
+0x03f8 001442 beq 1 ,g24_rf_hop_fastly 
+0x03f9 001443 jam 1 ,mem_new_24g_rf_hop_ch 
+:      001444 g24_rf_hop_attemp_again:
+0x03fa 001445 fetch 1 ,mem_new_24g_rf_hop_ch 
+0x03fb 001446 bne 1 ,g24_transmit_rf_ctrl_clear 
+:      001447 g24_rf_hop_fastly:
+0x03fc 001448 fetch 1 ,mem_new_24g_hop_fastly_cnt 
+0x03fd 001449 increase 1 ,pdata 
+0x03fe 001450 store 1 ,mem_new_24g_hop_fastly_cnt 
+0x03ff 001451 beq 4 ,g24_rf_hop_fastly_exit 
+0x0400 001452 call g24_ch 
+0x0401 001453 jam 2 ,mem_new_24g_max_retry 
+0x0402 001454 branch g24_transmit_packet 
+:      001456 g24_rf_hop_fastly_exit:
+0x0403 001457 call power_ctrl_pac_succ_decrs 
+0x0404 001458 jam 0 ,mem_new_24g_hop_fastly_cnt 
+0x0405 001459 branch g24_transmit_rf_ctrl_clear 
+:      001461 g24_transmit_hop_pac_succ_wo_hop:
+0x0406 001462 jam 2 ,mem_new_24g_sync_cnt 
+:      001463 g24_transmit_hop_pac_succ:
+0x0407 001464 jam 1 ,mem_new_24g_rf_last_sta 
+0x0408 001465 jam 0 ,mem_new_24g_rf_hop_ch 
+0x0409 001466 branch g24_transmit_rf_ctrl_clear 
+:      001468 g24_transmit_succ_rf_config:
+0x040a 001469 fetch 1 ,mem_new_24g_rf_work_stage 
+0x040b 001470 beq 3 ,g24_transmit_hop_pac_succ 
+0x040c 001471 fetch 1 ,mem_new_24g_data_type 
+0x040d 001472 isolate0 bit_hop ,pdata 
+0x040e 001473 branch g24_transmit_rf_sta_init ,true 
+0x040f 001474 fetch 1 ,mem_new_24g_rf_work_stage 
+0x0410 001475 beq 1 ,g24_transmit_hop_pac_succ_wo_hop 
+0x0411 001476 beq 2 ,g24_transmit_hop_pac_succ 
+0x0412 001477 rtn 
+:      001479 g24_rf_sta_check:
+0x0413 001480 fetch 1 ,mem_new_24g_pairing_sm 
+0x0414 001481 rtnne state_24g_pairing_success 
+0x0415 001482 call g24_rf_laststa_synccnt_check 
+0x0416 001483 ncall g24_rf_sync_cnt_check ,user2 
+0x0417 001484 rtn 
+:      001486 g24_rf_laststa_synccnt_check:
+0x0418 001487 disable user2 
+0x0419 001488 fetch 1 ,mem_new_24g_rf_last_sta 
+0x041a 001489 rtnne 1 
+0x041b 001490 fetch 1 ,mem_new_24g_sync_cnt 
+0x041c 001491 rtnne 0 
+0x041d 001492 jam 1 ,mem_new_24g_rf_work_stage 
+0x041e 001493 jam 4 ,mem_new_24g_max_retry 
+0x041f 001494 branch enable_usr2 
+:      001496 g24_rf_sync_cnt_check:
+0x0420 001497 fetch 1 ,mem_new_24g_sync_cnt 
+0x0421 001498 branch g24_rf_hop_attemp ,blank 
+0x0422 001499 increase -1 ,pdata 
+0x0423 001500 store 1 ,mem_new_24g_sync_cnt 
+0x0424 001501 jam 2 ,mem_new_24g_rf_work_stage 
+0x0425 001502 call g24_ch 
+0x0426 001503 jam 4 ,mem_new_24g_max_retry 
+0x0427 001504 rtn 
+:      001506 g24_rf_hop_attemp:
+0x0428 001507 jam 3 ,mem_new_24g_rf_work_stage 
+0x0429 001508 fetch 1 ,mem_new_24g_rf_hop_ch 
+0x042a 001509 nbranch g24_rf_hop_attemp_again ,blank 
+0x042b 001510 call g24_ch 
+0x042c 001511 jam 2 ,mem_new_24g_max_retry 
+0x042d 001512 rtn 
+:      001567 g24_txdata_prep:
+0x042e 001568 fetch 1 ,mem_new_24g_pairing_sm 
+0x042f 001569 bne state_24g_pairing_success ,g24_pairing_sm 
+0x0430 001571 call p_ipc_rx 
+0x0431 001572 branch g24_txdata_prep_ipc_nodata ,user 
+0x0432 001573 fetch 1 ,mem_ipc_rx_type 
+0x0433 001574 bne ipc_type_24g ,enable_usr 
+:      001575 g24_txdata_prep_packeage_data:
+0x0434 001576 fetch 1 ,mem_short_data_wheel 
+0x0435 001577 call g24_lpm_short_increase ,blank 
+:      001578 g24_txdata_skip_short_lpm:
+0x0436 001579 fetch 1 ,mem_short_data_wheel 
+0x0437 001580 ncall g24_enter_long_sleep ,blank 
+0x0438 001581 call g24_package_data 
+0x0439 001582 call g24_transmit_prep 
+:      001583 g24_txdata_enable_tx:
+0x043a 001584 jam ensure_on_24g ,mem_new_24g_ensure 
+0x043b 001585 rtn 
+:      001587 g24_enter_long_sleep:
+0x043c 001588 jam 0 ,mem_short_lpm_tx_cnt 
+0x043d 001589 jam 0 ,mem_short_lpm_enable 
+0x043e 001590 jam 10 ,mem_new_24g_enter_lpm_timer 
+0x043f 001591 rtn 
+:      001593 g24_txdata_prep_ipc_nodata:
+0x0440 001594 fetch 1 ,mem_short_lpm_enable 
+0x0441 001595 nbranch g24_short_lpm_txdata_prep ,blank 
+:      001596 g24_txdata_last_pac:
+0x0442 001597 fetch 1 ,mem_new_24g_ensure 
+0x0443 001598 beq ensure_on_24g ,disable_usr 
+0x0444 001599 rtn 
+:      001602 g24_short_lpm_txdata_prep:
+:      001603 g24_package_data:
+0x0445 001604 fetch 1 ,mem_new_24g_delay_long_sleep_maxcnt 
+0x0446 001605 store 1 ,mem_new_24g_delay_long_sleep_cnt 
+0x0447 001607 fetch 1 ,mem_new_uart_packet 
+0x0448 001608 copy pdata ,rega 
+0x0449 001609 arg mem_new_uart_packet + 1 ,regb 
+0x044a 001610 jam 0 ,mem_new_24g_abort_pac 
+:      001611 g24_package_data_pc_bind:
+0x044b 001612 call g24_transmit_rf_ctrl_clear 
+0x044c 001613 store 1 ,mem_new_24g_common_temp 
+0x044d 001615 add rega ,1 ,temp 
+0x044e 001616 arg mem_new_24g_common_temp + 1 ,contw 
+:      001617 g24_package_user_data:
+0x044f 001619 copy rega ,loopcnt 
+0x0450 001620 copy regb ,contr 
+0x0451 001621 call memcpy 
+0x0452 001622 arg mem_new_24g_common_temp ,rega 
+:      001623 g24_put_data_in_buff:
+0x0453 001624 rtnmark0 mark_24g_conext 
+0x0454 001625 storet 1 ,mem_new_24g_datalen 
+0x0455 001626 copy temp ,loopcnt 
+0x0456 001627 arg mem_new_24g_txbuf ,contw 
+0x0457 001628 copy rega ,contr 
+0x0458 001629 branch memcpy 
+:      001633 g24_syncword_crc8:
+0x0459 001634 arg 0 ,rega 
+0x045a 001635 arg 4 ,loopcnt 
+0x045b 001636 arg mem_new_24g_addr ,contr 
+:      001637 g24_syncword_crc8_loop:
+0x045c 001638 ifetch 1 ,contr 
+0x045d 001639 iadd rega ,rega 
+0x045e 001640 loop g24_syncword_crc8_loop 
+0x045f 001641 copy rega ,pdata 
+0x0460 001642 store 2 ,mem_new_24g_syncword 
+0x0461 001643 fetch 1 ,mem_new_24g_syncword 
+0x0462 001644 fetcht 1 ,mem_new_24g_syncword + 1 
+0x0463 001645 iadd temp ,pdata 
+0x0464 001646 store 1 ,mem_new_24g_syncword_crc8 
+0x0465 001647 rtn 
+:      001649 g24_transmit_prep:
+0x0466 001651 fetch 1 ,mem_new_24g_datalen 
+0x0467 001652 increase 2 ,pdata 
+0x0468 001653 store 1 ,mem_new_24g_txlen 
+0x0469 001655 fetch 1 ,mem_new_24g_data_type 
+0x046a 001656 store 1 ,mem_new_24g_txpayload 
+0x046b 001658 fetch 1 ,mem_new_24g_datalen 
+0x046c 001659 lshift3 pdata ,pdata 
+0x046d 001660 fetcht 1 ,mem_new_24g_pid 
+0x046e 001661 and temp ,0x03 ,temp 
+0x046f 001662 lshift temp ,temp 
+0x0470 001663 ior temp ,pdata 
+0x0471 001664 fetcht 1 ,mem_new_24g_no_ack 
+0x0472 001665 iadd temp ,pdata 
+0x0473 001666 istore 1 ,contw 
+0x0474 001668 fetch 1 ,mem_new_24g_datalen 
+0x0475 001669 iforce loopcnt 
+0x0476 001670 arg mem_new_24g_txbuf ,contr 
+0x0477 001671 branch memcpy 
+:      001692 g24_no_data_to_tx:
+0x0478 001693 rtn 
+:      001725 g24_lpm_short_increase:
+0x0479 001726 fetch 1 ,mem_wakup_from_power_flag 
+0x047a 001727 isolate0 2 ,pdata 
+0x047b 001728 branch g24_lpm_short_increase_poweron ,true 
+0x047c 001729 fetch 1 ,mem_short_lpm_tx_cnt 
+0x047d 001730 rtneq 5 
+0x047e 001731 increase 1 ,pdata 
+0x047f 001732 store 1 ,mem_short_lpm_tx_cnt 
+0x0480 001733 rtnne 5 
+:      001734 g24_lpm_short_enable:
+0x0481 001735 jam 1 ,mem_short_lpm_enable 
+0x0482 001736 rtn 
+:      001738 g24_lpm_short_increase_poweron:
+0x0483 001739 fetch 1 ,mem_short_lpm_tx_cnt 
+0x0484 001740 rtneq 20 
+0x0485 001741 increase 1 ,pdata 
+0x0486 001742 store 1 ,mem_short_lpm_tx_cnt 
+0x0487 001743 rtnne 20 
+0x0488 001744 fetch 1 ,mem_wakup_from_power_flag 
+0x0489 001745 set1 2 ,pdata 
+0x048a 001746 store 1 ,mem_wakup_from_power_flag 
+0x048b 001747 branch g24_lpm_short_enable 
+:      001749 g24_lpm_short_decrease:
+0x048c 001750 fetch 1 ,mem_short_lpm_tx_cnt 
+0x048d 001751 rtn blank 
+0x048e 001752 increase -1 ,pdata 
+0x048f 001753 store 1 ,mem_short_lpm_tx_cnt 
+0x0490 001754 nrtn blank 
+0x0491 001755 jam 0 ,mem_short_lpm_enable 
+0x0492 001756 rtn 
+:      001758 g24_short_lpm_transmit_process:
+0x0493 001759 set1 mark_24g_conext ,mark 
+0x0494 001760 call p_ipc_rx 
+0x0495 001761 branch g24_short_lpm_transmit_process_ipc_nodata ,user 
+0x0496 001762 fetch 1 ,mem_ipc_rx_type 
+0x0497 001763 beq ipc_type_24g ,g24_short_lpm_txdata_data_ready 
+:      001764 g24_short_lpm_transmit_process_ipc_nodata:
+0x0498 001765 fetch 1 ,mem_send_data_24g_short_lpm 
+0x0499 001766 beq short_lpm_state_data ,g24_short_lpm_txdata_prep_buff_data 
+0x049a 001767 beq short_lpm_state_nodata ,g24_no_data_to_tx 
+0x049b 001768 beq short_lpm_state_button_wheel ,g24_short_lpm_transmit_process_button_wheel 
+0x049c 001769 rtn 
+:      001771 g24_short_lpm_transmit_process_button_wheel:
+:      001774 g24_short_lpm_txdata_prep_buff_data:
+0x049d 001775 rtn 
+:      001789 g24_short_lpm_txdata_data_ready:
+0x049e 001790 rtn 
+:      001795 g24_short_lpm_sleep:
+0x049f 001796 call lpo_calibration 
+0x04a0 001797 fetch 3 ,mem_clks_per_lpo 
+0x04a1 001798 rtn blank 
+0x04a2 001799 fetch 1 ,mem_lpm_mode 
+0x04a3 001800 rtn blank 
+0x04a4 001801 fetch 1 ,mem_short_data_wheel 
+0x04a5 001802 beq 1 ,g24_short_lpm_sleep2 
+0x04a6 001803 setarg 0 
+0x04a7 001804 store 8 ,mem_gpio_wakeup_low 
+:      001805 g24_short_lpm_sleep2:
+0x04a8 001806 call g24_short_lpm_select_param 
+0x04a9 001807 arg param_rx_setup ,timeup 
+0x04aa 001808 until clkn_rt ,meet 
+0x04ab 001809 fetcht 3 ,mem_ckln_24g_short_lpm 
+0x04ac 001810 copy clkn_bt ,pdata 
+0x04ad 001811 isub temp ,pdata 
+0x04ae 001812 and_into 0xff ,pdata 
+0x04af 001813 arg 3750 ,temp 
+0x04b0 001814 imul32 temp ,temp 
+0x04b1 001815 fetch 4 ,mem_short_lpm_interval_param 
+0x04b2 001816 isub temp ,pdata 
+0x04b3 001817 branch lpm_dispatch_sleep ,positive 
+0x04b4 001818 fetch 1 ,mem_lpm_xtalcnt 
+0x04b5 001819 increase 1 ,pdata 
+0x04b6 001820 store 4 ,mem_sleep_counter 
+0x04b7 001821 branch lpm_dispatch_sleep + 7 
+:      001822 g24_short_lpm_select_param:
+0x04b8 001823 setarg g24_8125_interval_param 
+0x04b9 001824 store 4 ,mem_short_lpm_interval_param 
+0x04ba 001825 fetch 1 ,mem_short_lpm_interval_cnt 
+0x04bb 001826 increase 1 ,pdata 
+0x04bc 001827 bne 5 ,g24_short_lpm_select_param_cont 
+0x04bd 001828 setarg 0 
+:      001829 g24_short_lpm_select_param_cont:
+0x04be 001830 store 1 ,mem_short_lpm_interval_cnt 
+0x04bf 001831 rtnbit0 0 
+0x04c0 001832 setarg g24_78125_interval_param 
+0x04c1 001833 store 4 ,mem_short_lpm_interval_param 
+0x04c2 001834 rtn 
+:      001837 g24_transmit_packet:
+0x04c3 001838 jam 0 ,mem_new_24g_retry 
+:      001839 g24_transmit_loop:
+0x04c4 001840 arg param_rx_setup ,timeup 
+0x04c5 001841 until clkn_rt ,meet 
+0x04c6 001842 call g24_transmit_receive_ack 
+0x04c7 001843 fetch 1 ,mem_new_24g_no_ack 
+0x04c8 001844 rtneq no_ack_24g 
+0x04c9 001845 nbranch g24_retransmit ,sync 
+0x04ca 001846 nbranch g24_retransmit ,user3 
+0x04cb 001847 call g24_ackpayload_parse 
+0x04cc 001848 call power_ctrl_pac_succ_incrs 
+:      001849 g24_transmit_next_packet:
+0x04cd 001850 fetch 1 ,mem_new_24g_pid 
+0x04ce 001851 increase 1 ,pdata 
+0x04cf 001852 store 1 ,mem_new_24g_pid 
+0x04d0 001853 fetch 1 ,mem_new_24g_pairing_sm 
+0x04d1 001854 bne state_24g_pairing_success ,g24_paring_mode_start 
+0x04d2 001855 call g24_transmit_succ_rf_config 
+:      001856 g24_transmit_abandon:
+0x04d3 001857 setarg 0 
+0x04d4 001858 store 2 ,mem_new_24g_txfail_cnt 
+0x04d5 001859 store 1 ,mem_new_24g_get_ack_fail 
+0x04d6 001860 store 1 ,mem_new_24g_hop_pac_retry 
+0x04d7 001861 jam ensure_off_24g ,mem_new_24g_ensure 
+0x04d8 001862 rtn 
+:      001863 g24_paring_mode_start:
+0x04d9 001864 call power_ctrl_pac_succ_cnt_init 
+0x04da 001865 branch g24_paring_mode 
+:      001867 g24_transmit_receive_ack:
+0x04db 001868 disable user3 
+0x04dc 001869 call g24_transmit 
+0x04dd 001870 fetch 1 ,mem_new_24g_no_ack 
+0x04de 001871 beq no_ack_24g ,g24_transmit_no_ack 
+0x04df 001872 force 0 ,radio_ctrl 
+0x04e0 001873 fetch 4 ,mem_new_24g_addr 
+0x04e1 001874 iforce access 
+0x04e2 001875 fetcht 1 ,mem_last_freq 
+0x04e3 001876 call set_freq_rx 
+0x04e4 001877 call rf_rx_enable 
+0x04e5 001878 call g24_receive_rxon 
+0x04e6 001879 call g24_end_of_packet ,user3 
+0x04e7 001880 rtn 
+:      001881 g24_transmit_no_ack:
+0x04e8 001882 call g24_end_of_packet 
+0x04e9 001883 branch g24_transmit_next_packet 
+:      001885 g24_retransmit:
+0x04ea 001886 fetch 1 ,mem_new_24g_get_ack_fail 
+0x04eb 001887 increase 1 ,pdata 
+0x04ec 001888 store 1 ,mem_new_24g_get_ack_fail 
+0x04ed 001889 fetch 1 ,mem_new_24g_pairing_sm 
+0x04ee 001890 bne state_24g_pairing_success ,g24_tx_paring_retry 
+0x04ef 001891 fetcht 1 ,mem_new_24g_retry 
+0x04f0 001892 increase 1 ,temp 
+0x04f1 001893 storet 1 ,mem_new_24g_retry 
+0x04f2 001894 fetch 1 ,mem_new_24g_max_retry 
+0x04f3 001895 isub temp ,pdata 
+0x04f4 001896 nbranch g24_transmit_loop ,blank 
+0x04f5 001897 fetch 1 ,mem_new_24g_rf_work_stage 
+0x04f6 001898 beq 3 ,g24_transmit_pac_fail_hop_stage3 
+0x04f7 001899 fetch 1 ,mem_new_24g_hop_pac_retry 
+0x04f8 001900 increase 1 ,pdata 
+0x04f9 001901 store 1 ,mem_new_24g_hop_pac_retry 
+0x04fa 001902 beq 2 ,g24_transmit_hop_pac_fail 
+0x04fb 001903 call g24_hop_ch_enable 
+0x04fc 001904 jam 1 ,mem_new_24g_max_retry 
+0x04fd 001905 branch g24_transmit_packet 
+:      001907 g24_tx_paring_retry:
+0x04fe 001908 fetch 1 ,mem_new_24g_get_ack_fail 
+0x04ff 001909 rtnne 0xff 
+0x0500 001910 jam 0 ,mem_new_24g_get_ack_fail 
+0x0501 001911 branch g24_stop_24g_mode 
+:      001913 g24_tx_attempt_fail:
+0x0502 001914 setarg 0 
+0x0503 001915 store 2 ,mem_new_24g_txfail_cnt 
+0x0504 001916 jam 0 ,mem_lpm_mode 
+0x0505 001917 jam 0 ,mem_short_lpm_tx_cnt 
+0x0506 001918 jam 0 ,mem_short_lpm_enable 
+:      001919 g24_stop_24g_mode:
+0x0507 001920 jam bt_evt_24g_attempt_fail ,mem_ipc_tx_evt 
+0x0508 001921 branch p_ipc_tx_evt 
+:      001923 g24_ackpayload_parse:
+0x0509 001924 call g24_read_len_pid_crc 
+0x050a 001925 fetch 1 ,mem_new_24g_rxdata_length 
+0x050b 001926 rtn blank 
+0x050c 001927 iforce loopcnt 
+0x050d 001928 arg mem_new_24g_rxbuf + 2 ,contr 
+0x050e 001929 arg mem_new_24g_rxpayload ,contw 
+0x050f 001930 branch memcpy 
+:      001932 g24_read_len_pid_crc:
+0x0510 001934 fetch 1 ,mem_new_24g_rxbuf + 1 
+0x0511 001935 rshift3 pdata ,pdata 
+0x0512 001936 store 1 ,mem_new_24g_rxdata_length 
+0x0513 001938 increase 1 ,pdata 
+0x0514 001939 arg mem_new_24g_rxbuf + 1 ,contr 
+0x0515 001940 iadd contr ,contr 
+0x0516 001941 ifetch 3 ,contr 
+0x0517 001942 store 3 ,mem_new_24g_sta_crc 
+0x0518 001944 fetch 1 ,mem_new_24g_rxbuf + 1 
+0x0519 001945 rshift pdata ,pdata 
+0x051a 001946 and pdata ,0x03 ,pdata 
+0x051b 001947 store 1 ,mem_new_24g_sta_pid 
+0x051c 001948 rtn 
+:      001951 g24_prep:
+0x051d 001952 disable enable_crc 
+0x051e 001953 disable enable_white 
+0x051f 001954 setarg 0x555555 
+0x0520 001955 iforce crc24_init 
+0x0521 001956 fetch 1 ,mem_new_24g_ch 
+0x0522 001957 reverse pdata ,temp 
+0x0523 001958 set1 1 ,temp 
+0x0524 001959 rshift temp ,white_init 
+0x0525 001960 rtn 
+:      001962 g24_set_freq_tx:
+0x0526 001963 call set_sync_on 
+0x0527 001964 fetcht 1 ,mem_new_24g_ch 
+0x0528 001965 branch set_freq_tx 
+:      001967 g24_transmit:
+0x0529 001968 call le_enable 
+0x052a 001969 fetch 4 ,mem_new_24g_addr 
+0x052b 001970 iforce access 
+0x052c 001971 call g24_prep 
+0x052d 001972 call g24_set_freq_tx 
+0x052e 001973 set1 txgfsk ,radio_ctrl 
+0x052f 001974 enable encode_fec0 
+0x0530 001975 enable is_tx 
+0x0531 001976 disable is_rx 
+0x0532 001977 rshift16 access ,pdata 
+0x0533 001978 rshift8 pdata ,pdata 
+0x0534 001979 rshift4 pdata ,pdata 
+0x0535 001980 inject mod ,40 
+0x0536 001981 disable encode_fec0 
+0x0537 001982 enable encode_fec1 
+0x0538 001983 enable enable_white 
+0x0539 001984 enable enable_crc 
+0x053a 001986 fetch 1 ,mem_new_24g_syncword_crc8 
+0x053b 001987 inject mod ,8 
+0x053c 001989 fetch 1 ,mem_new_24g_txlen 
+0x053d 001990 iforce loopcnt 
+0x053e 001991 arg mem_new_24g_txpayload ,contr 
+:      001992 g24tr_loop:
+0x053f 001993 ifetch 1 ,contr 
+0x0540 001994 inject mod ,8 
+0x0541 001995 loop g24tr_loop 
+0x0542 001996 enable enable_parity 
+0x0543 001997 inject mod ,24 
+0x0544 001998 disable enable_parity 
+0x0545 001999 until null ,tx_clear 
+0x0546 002000 nop 100 
+0x0547 002001 disable encode_fec0 
+0x0548 002002 disable encode_fec1 
+0x0549 002003 rtn 
+:      002005 g24_receive_packet:
+0x054a 002006 call le_enable 
+0x054b 002007 fetch 4 ,mem_new_24g_addr 
+0x054c 002008 iforce access 
+0x054d 002009 call set_sync_on 
+0x054e 002010 fetcht 1 ,mem_new_24g_ch 
+0x054f 002011 call set_freq_rx 
+0x0550 002012 setarg param_pll_setup 
+0x0551 002013 call sleep 
+0x0552 002014 call rf_rx_enable 
+:      002015 g24_receive_rxon:
+0x0553 002016 call g24_prep 
+0x0554 002017 disable user3 
+0x0555 002018 enable decode_fec0 
+0x0556 002019 enable is_rx 
+0x0557 002020 disable is_tx 
+0x0558 002021 enable swfine 
+0x0559 002022 fetch 2 ,mem_new_24g_rx_window 
+0x055a 002023 iforce stop_watch 
+0x055b 002024 correlate null ,timeout 
+0x055c 002025 nbranch g24_sync_timeout ,sync 
+0x055d 002026 disable decode_fec0 
+0x055e 002027 enable decode_fec1 
+0x055f 002028 enable enable_white 
+0x0560 002029 enable enable_crc 
+0x0561 002031 parse demod ,bucket ,8 
+0x0562 002032 rshift3 pwindow ,pdata 
+0x0563 002033 store 1 ,mem_new_24g_get_syncword_crc8 
+0x0564 002034 call g24_syncword_crc8 
+0x0565 002035 fetcht 1 ,mem_new_24g_get_syncword_crc8 
+0x0566 002036 isub temp ,null 
+0x0567 002037 nbranch g24_end_of_packet ,zero 
+0x0568 002039 parse demod ,bucket ,8 
+0x0569 002040 rshift3 pwindow ,pdata 
+0x056a 002041 store 1 ,mem_new_24g_rxbuf 
+0x056b 002042 fetch 1 ,mem_new_24g_mode 
+0x056c 002043 sub pdata ,rx_24g ,null 
+0x056d 002044 branch g24_receive_skip ,zero 
+0x056e 002045 fetch 1 ,mem_new_24g_rxbuf 
+0x056f 002046 fetcht 1 ,mem_new_24g_data_type 
+0x0570 002047 icompare bits_data ,temp 
+0x0571 002048 nbranch g24_end_of_packet ,true 
+:      002049 g24_receive_skip:
+0x0572 002050 parse demod ,bucket ,8 
+0x0573 002051 rshift3 pwindow ,pdata 
+0x0574 002052 istore 1 ,contw 
+0x0575 002053 rshift3 pdata ,pdata 
+0x0576 002054 and pdata ,0x1f ,loopcnt 
+0x0577 002055 branch g24rx_nopayload ,zero 
+:      002056 g24rx_loop:
+0x0578 002057 parse demod ,bucket ,8 
+0x0579 002058 rshift3 pwindow ,pdata 
+0x057a 002059 istore 1 ,contw 
+0x057b 002060 loop g24rx_loop 
+:      002061 g24rx_nopayload:
+0x057c 002063 copy contw ,rega 
+0x057d 002064 parse demod ,bucket ,8 
+0x057e 002065 rshift3 pwindow ,pdata 
+0x057f 002066 store 1 ,mem_rssi_hex_received 
+0x0580 002067 copy rega ,contw 
+0x0581 002069 parse demod ,bucket ,24 
+0x0582 002070 enable swfine 
+0x0583 002071 arg param_sifs ,stop_watch 
+0x0584 002072 rshift32 pdata ,pdata 
+0x0585 002073 rshift16 pdata ,pdata 
+0x0586 002074 istore 3 ,contw 
+0x0587 002075 disable decode_fec1 
+0x0588 002076 branch g24_end_of_packet ,crc_failed 
+0x0589 002077 enable user3 
+0x058a 002078 fetch 1 ,mem_last_freq 
+0x058b 002079 add pdata ,0 ,rega 
+0x058c 002080 call rf_write_freq 
+0x058d 002081 disable decode_fec0 
+0x058e 002082 call set_sync_on 
+0x058f 002083 fetch 1 ,mem_rssi_hex_received 
+0x0590 002084 copy pdata ,rega 
+0x0591 002085 branch rssi_signal 
+:      002087 g24_end_of_packet:
+0x0592 002088 disable encode_fec1 
+0x0593 002089 disable decode_fec1 
+0x0594 002090 branch end_of_packet 
+:      002092 g24_sync_timeout:
+0x0595 002093 branch g24_end_of_packet 
+:      002095 power_ctrl_pac_succ_cnt_init:
+0x0596 002096 jam 1 ,mem_power_ctrl_level 
+0x0597 002097 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0x0598 002098 rtn 
+:      002099 power_ctrl_pac_succ_incrs:
+0x0599 002100 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x059a 002101 increase 1 ,pdata 
+0x059b 002102 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0x059c 002103 rtn 
+:      002104 power_ctrl_pac_succ_decrs:
+0x059d 002105 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x059e 002106 sub pdata ,1 ,null 
+0x059f 002107 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+0x05a0 002108 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x05a1 002109 rtneq 0 
+0x05a2 002110 increase -1 ,pdata 
+0x05a3 002111 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0x05a4 002112 rtn 
+:      002113 power_ctrl_pac_succ_cnt_reinit:
+0x05a5 002114 jam 2 ,mem_power_ctrl_pac_succ_cnt 
+0x05a6 002115 rtn 
+:      002117 power_ctrl_start:
+0x05a7 002118 arg mem_rssi_signal_buf ,rega 
+0x05a8 002119 call rssi_average 
+0x05a9 002120 storet 1 ,mem_rssi_avg_received 
+0x05aa 002121 isolate1 mark_24g ,mark 
+0x05ab 002122 call power_ctrl_24g_dis_max ,true 
+0x05ac 002123 ncall power_ctrl_le_dis_max ,true 
+0x05ad 002124 isub temp ,null 
+0x05ae 002125 nbranch power_ctrl_txpower_incrs ,positive 
+0x05af 002127 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x05b0 002128 sub pdata ,1 ,null 
+0x05b1 002129 nbranch power_ctrl_txpower_decrs_check ,positive 
+0x05b2 002130 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x05b3 002131 beq 0 ,power_ctrl_txpower_incrs 
+0x05b4 002132 rtn 
+:      002134 power_ctrl_24g_dis_max:
+0x05b5 002135 setarg rssi_dis_max_24g 
+0x05b6 002136 rtn 
+:      002137 power_ctrl_24g_dis_min:
+0x05b7 002138 setarg rssi_dis_min_24g 
+0x05b8 002139 rtn 
+:      002140 power_ctrl_le_dis_max:
+0x05b9 002141 setarg rssi_dis_max_ble 
+0x05ba 002142 rtn 
+:      002143 power_ctrl_le_dis_min:
+0x05bb 002144 setarg rssi_dis_min_ble 
+0x05bc 002145 rtn 
+:      002147 power_ctrl_txpower_decrs_check:
+0x05bd 002148 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x05be 002149 rtnne 70 
+0x05bf 002150 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+:      002151 power_ctrl_txpower_decrs:
+0x05c0 002152 fetcht 1 ,mem_rssi_avg_received 
+0x05c1 002153 isolate1 mark_24g ,mark 
+0x05c2 002154 call power_ctrl_24g_dis_min ,true 
+0x05c3 002155 ncall power_ctrl_le_dis_min ,true 
+0x05c4 002156 isub temp ,null 
+0x05c5 002157 nrtn positive 
+0x05c6 002158 fetch 1 ,mem_power_ctrl_level 
+0x05c7 002159 beq 0 ,power_ctrl_decrs_level0 
+0x05c8 002160 increase -1 ,pdata 
+0x05c9 002161 store 1 ,mem_power_ctrl_level 
+0x05ca 002162 beq 0 ,power_ctrl_decrs_level0 
+:      002163 power_ctrl_decrs_level1:
+:      002164 power_ctrl_incrs_level1:
+0x05cb 002165 hjam 0xd0 ,0x8955 
+0x05cc 002166 hjam 0xe0 ,0x8956 
+0x05cd 002167 hjam 0x4c ,0x8957 
+0x05ce 002168 hjam 0x6c ,0x8958 
+0x05cf 002169 hjam 0x50 ,0x8959 
+0x05d0 002170 jam 0x01 ,mem_tx_power 
+0x05d1 002171 rtn 
+:      002173 power_ctrl_txpower_incrs:
+0x05d2 002174 fetch 1 ,mem_power_ctrl_level 
+0x05d3 002175 beq 2 ,power_ctrl_incrs_level2 
+0x05d4 002176 increase 1 ,pdata 
+0x05d5 002177 store 1 ,mem_power_ctrl_level 
+0x05d6 002178 beq 1 ,power_ctrl_incrs_level1 
+:      002179 power_ctrl_incrs_level2:
+0x05d7 002180 hjam 0xd0 ,0x8955 
+0x05d8 002181 hjam 0xe0 ,0x8956 
+0x05d9 002182 hjam 0x4c ,0x8957 
+0x05da 002183 hjam 0x3c ,0x8958 
+0x05db 002184 hjam 0x10 ,0x8959 
+0x05dc 002185 jam 0x04 ,mem_tx_power 
+0x05dd 002186 rtn 
+:      002188 power_ctrl_decrs_level0:
+0x05de 002189 hjam 0xd0 ,0x8955 
+0x05df 002190 hjam 0xc0 ,0x8956 
+0x05e0 002191 hjam 0x4c ,0x8957 
+0x05e1 002192 hjam 0x6c ,0x8958 
+0x05e2 002193 hjam 0x50 ,0x8959 
+0x05e3 002194 jam 0x10 ,mem_tx_power 
+0x05e4 002195 rtn 
+:      002197 rssi_signal:
+0x05e5 002198 fetcht 1 ,mem_rssi_signal_index 
+0x05e6 002199 setarg mem_rssi_signal_buf 
+0x05e7 002200 iadd temp ,contw 
+0x05e8 002201 copy rega ,pdata 
+0x05e9 002202 istore 1 ,contw 
+0x05ea 002203 increase 1 ,temp 
+0x05eb 002204 and_into rssi_buf_len ,temp 
+0x05ec 002205 storet 1 ,mem_rssi_signal_index 
+0x05ed 002206 rtn 
+:      002207 rssi_average:
+0x05ee 002208 arg 0 ,temp 
+0x05ef 002209 arg rssi_buf_len + 1 ,loopcnt 
+0x05f0 002210 copy rega ,contr 
+:      002211 rssi_average_loop:
+0x05f1 002212 ifetch 1 ,contr 
+0x05f2 002213 iadd temp ,temp 
+0x05f3 002214 loop rssi_average_loop 
+0x05f4 002215 rshift3 temp ,pdata 
+0x05f5 002216 copy pdata ,temp 
+0x05f6 002217 rtnmark0 mark_24g 
+0x05f7 002219 div pdata ,10 
+0x05f8 002220 call wait_div_end 
+0x05f9 002221 quotient pdata 
+0x05fa 002222 lshift4 pdata ,pdata 
+0x05fb 002223 remainder temp 
+0x05fc 002224 ior temp ,temp 
+0x05fd 002225 rtn 
+:      002228 g24_start_pairing_sm1:
+0x05fe 002229 set1 mark_24g ,mark 
+0x05ff 002230 call g24_pair_init 
+:      002231 g24_set_pairing_sm_1:
+0x0600 002232 jam state_24g_pairing_1 ,mem_new_24g_pairing_sm 
+0x0601 002233 rtn 
+:      002235 g24_pairing_sm:
+0x0602 002236 fetch 1 ,mem_new_24g_ensure 
+0x0603 002237 beq ensure_on_24g ,disable_usr 
+0x0604 002238 fetch 1 ,mem_new_24g_pairing_sm 
+0x0605 002239 beq state_24g_pairing_1 ,g24_pairing_sm_1 
+0x0606 002240 beq state_24g_pairing_2 ,g24_pairing_sm_2 
+0x0607 002241 beq state_24g_pairing_3 ,g24_pairing_sm_3 
+0x0608 002242 branch assert 
+:      002244 g24_pairing_sm_1:
+0x0609 002245 jam state_24g_pairing_1_waiting_ack ,mem_new_24g_pairing_sm 
+0x060a 002246 jam 0xaa ,mem_new_24g_common_temp 
+0x060b 002247 branch g24_pairing_sm_common 
+:      002248 g24_pairing_sm_2:
+0x060c 002249 jam state_24g_pairing_2_waiting_ack ,mem_new_24g_pairing_sm 
+0x060d 002250 jam 0x55 ,mem_new_24g_common_temp 
+0x060e 002251 branch g24_pairing_sm_common 
+:      002252 g24_pairing_sm_3:
+0x060f 002253 jam state_24g_pairing_3_waiting_ack ,mem_new_24g_pairing_sm 
+0x0610 002254 jam 0x22 ,mem_new_24g_common_temp 
+:      002255 g24_pairing_sm_common:
+0x0611 002256 fetch 1 ,mem_new_24g_data_type 
+0x0612 002257 and_into bits_data ,pdata 
+0x0613 002258 store 1 ,mem_new_24g_common_temp + 1 
+0x0614 002259 fetch 4 ,mem_new_24g_device_addr 
+0x0615 002260 store 4 ,mem_new_24g_common_temp + 2 
+:      002261 g24_put_pairing_data_in_buff:
+0x0616 002262 jam 0 ,mem_new_24g_common_temp + 6 
+0x0617 002263 arg mem_new_24g_common_temp ,rega 
+0x0618 002264 arg 7 ,temp 
+0x0619 002265 call g24_put_data_in_buff 
+0x061a 002266 call g24_transmit_prep 
+0x061b 002267 call g24_txdata_enable_tx 
+0x061c 002268 branch disable_usr 
+:      002270 g24_paring_mode:
+0x061d 002271 fetch 1 ,mem_new_24g_pairing_sm 
+0x061e 002272 rtneq state_24g_pairing_success 
+0x061f 002273 beq state_24g_pairing_1_waiting_ack ,g24_pairing_sm_1_waiting_ack 
+0x0620 002274 beq state_24g_pairing_2_waiting_ack ,g24_pairing_sm_2_waiting_ack 
+0x0621 002275 beq state_24g_pairing_3_waiting_ack ,g24_pairing_sm_3_waiting_ack 
+0x0622 002276 rtn 
+:      002278 g24_pairing_sm_1_waiting_ack:
+0x0623 002279 jam state_24g_pairing_2 ,mem_new_24g_pairing_sm 
+0x0624 002280 branch g24_transmit_abandon 
+:      002281 g24_pairing_sm_2_waiting_ack:
+0x0625 002282 jam state_24g_pairing_3 ,mem_new_24g_pairing_sm 
+0x0626 002283 branch g24_transmit_abandon 
+:      002284 g24_pairing_sm_3_waiting_ack:
+0x0627 002285 jam state_24g_pairing_success ,mem_new_24g_pairing_sm 
+0x0628 002286 jam bt_evt_24g_pairing_complete ,mem_ipc_tx_evt 
+0x0629 002287 call p_ipc_tx_evt 
+0x062a 002288 fetch 4 ,mem_new_24g_rxpayload + 2 
+0x062b 002289 call g24_update_addr_and_synccrc8 
+0x062c 002290 branch g24_transmit_abandon 
+:      002292 g24_start_24g_mode:
+0x062d 002293 set0 mark_24g ,mark 
+0x062e 002294 call g24_ch 
+0x062f 002295 fetch 4 ,mem_new_24g_addr 
+0x0630 002296 call g24_syncword_crc8 
+0x0631 002297 fetch 1 ,mem_new_24g_pairing_sm 
+0x0632 002298 rtnne state_24g_pairing_success 
+0x0633 002299 call g24_tx_attemp_data_prep 
+:      002300 g24_tx_attemp_dongle:
+0x0634 002301 setarg 0 
+0x0635 002302 store 2 ,mem_new_24g_check_dongle_times 
+:      002303 g24_tx_attemp_dongle_loop:
+0x0636 002304 nop 2000 
+0x0637 002305 fetch 1 ,mem_new_24g_check_dongle_times 
+0x0638 002306 beq 0xff ,g24_stop_24g_mode 
+0x0639 002307 call g24_transmit_receive_ack 
+0x063a 002308 nbranch g24_attemp_txdata_retry ,sync 
+0x063b 002309 nbranch g24_attemp_txdata_retry ,user3 
+:      002310 g24_tx_attemp_dongle_succ:
+0x063c 002311 jam 1 ,mem_lpm_mode 
+0x063d 002312 set1 mark_24g ,mark 
+0x063e 002313 setarg 0 
+0x063f 002314 store 2 ,mem_new_24g_check_dongle_times 
+0x0640 002315 jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+0x0641 002316 call ui_ipc_send_event 
+0x0642 002317 branch check_51cmd_stop_adv 
+:      002319 g24_tx_attemp_data_prep:
+0x0643 002320 set1 mark_24g_conext ,mark 
+0x0644 002321 jam 0xff ,mem_new_24g_common_temp 
+0x0645 002322 fetch 1 ,mem_new_24g_data_type 
+0x0646 002323 store 1 ,mem_new_24g_common_temp + 1 
+0x0647 002324 fetch 4 ,mem_new_24g_device_addr 
+0x0648 002325 store 4 ,mem_new_24g_common_temp + 2 
+0x0649 002326 arg 6 ,temp 
+0x064a 002327 arg mem_new_24g_common_temp ,rega 
+0x064b 002328 call g24_put_data_in_buff 
+0x064c 002329 branch g24_transmit_prep 
+:      002331 g24_attemp_txdata_retry:
+0x064d 002332 fetch 2 ,mem_new_24g_check_dongle_times 
+0x064e 002333 increase 1 ,pdata 
+0x064f 002334 store 2 ,mem_new_24g_check_dongle_times 
+0x0650 002335 call g24_ch 
+0x0651 002336 branch g24_tx_attemp_dongle_loop 
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.meta
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.meta	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.meta	(working copy)
@@ -0,0 +1,2351 @@
+define REVD
+define ROMCODE
+define PATCH
+INCLUDE "bt_format"
+org 0x0000		// start from patch ram address start
+
+
+//define HID
+define BLE
+define P24G_YC
+//define P24G_LOG
+//define P24G_AUTO
+define ADC_GPIO
+//define ADC_VINLPM
+//define ADC_HVIN
+//define TEST_MODE
+//define MS_TEST
+//define HCILOG
+//define KEYBORD_DATA
+//define TP_MAX
+//define OTA_ENABLE
+define BLE_FAST_CONN_ENABLE
+
+	bmark1 mark_ext_patch,patch_ext
+	beq patch00_0,p_soft_reset
+	beq patch00_3,p_main_loop
+	beq patch10_6,p_shutdown_radio
+	beq patch11_2,p_set_freq_tx
+	beq patch11_3,p_initialize_radio_cont
+	beq patch14_7,p_lpm_recover_clk
+	beq patch15_0,p_lpm_dispatch
+	beq patch15_1,p_lpm_dispatch_next2
+	beq patch15_4,p_lpm_dispatch_unconn
+	beq patch16_4,p_device_init
+	beq patch16_5,p_app_lpm_init
+	beq patch16_6,p_app_process_bb_event
+	beq patch16_7,p_app_evt_timer
+	beq patch17_1,p_app_flag_store
+	beq patch17_2,p_app_initflag_check
+	branch loop
+
+patch_ext:
+	beq patch20_5,p_le_slave_match
+	beq patch22_6,p_le_receive_skip
+	beq patch23_3,p_le_send_adv_ind
+	beq patch24_3,p_le_update_param
+	beq patch25_7,p_le_prepare_tx
+	beq patch26_1,p_le_prepare_tx_ll
+	beq patch26_2,p_le_prepare_smp0
+	beq patch26_3,p_le_prepare_att
+	beq patch27_1,p_le_send_packet
+	beq patch27_4,p_le_parse0
+	beq patch27_5,p_le_parse_smp
+	beq patch27_6,p_le_parse_att
+	beq patch27_7,p_le_adv
+	beq patch28_2,p_le_receive_window_size
+	beq patch29_5,p_le_lpm_set_mult
+	beq patch32_5,p_gpio_set_before_lpm_common
+	beq patch3e_3,p_ui_timer_check_end
+	beq patch3e_7,p_check_51cmd_once
+	beq patch3f_0,p_check_51cmd_once_continue0
+	beq patch3f_1,p_check_enter_hibernate
+	branch loop
+
+p_soft_reset:
+	clear_stack
+	nbranch soft_reset+3,wake
+	fetch 1,mem_le_switch_send_data
+	nbranch p_soft_reset_start_51,blank
+	fetch 1,mem_short_lpm_enable
+	branch soft_reset+3,blank
+	jam 0,mem_ipc_is_ready
+	bmark0 mark_24g,soft_reset+3
+	nbranch soft_reset+3,wake
+p_soft_reset_start_51:
+	hjam START_C51_CORE,core_docd_ctrl	
+	branch soft_reset+3
+	
+p_main_loop:
+	call p_ipc_timer_check
+	call p_ipc_rx
+	fetch 1,mem_short_lpm_enable
+	nbranch p_24g_short_lpm_process_loop,blank
+	branch main_loop+2
+
+
+p_shutdown_radio:
+	branch shutdown_radio0,is_rx
+	hjam 0xd4, 0x955
+	nop 4
+	hjam 0xd2, 0x955
+	nop 4
+	hjam 0xd1, 0x955
+	nop 4
+	fetch 1,mem_tx_power
+	beq TX_POWER_PAIR,shutdown_radio_pair
+	branch shutdown_radio_select
+
+p_set_freq_tx:
+	storet 1,mem_last_freq
+	add temp,0,rega			// bt 2M Medium Frequency
+	call rf_write_freq
+	setarg param_pll_setup
+	call sleep
+p_txon:	
+	hjam 0x1,rfen_adc
+	hjam 0x3c,rfen_rx
+	hjam 0xe0,rfen_tx
+	hjam 0x12,0x96d
+	nop 10
+	hjam 0x01,rfen_mdm
+	hjam 0x3d,rfen_mdm
+	nop 10
+	hjam 0xb7,rfen_sn
+	nop 10
+	hjam 0x7f, rfen_mdm
+	fetch 1,mem_tx_power
+	beq TX_POWER_PAIR,p_set_tx_power_pair
+	bbit1 TX_POWER_3DB,p_rx_high_sens
+	bbit1 TX_POWER_5DB,p_rx_high_sens
+p_rx_low_sens:
+	hjam 0x5b,0x894c 
+	hjam 0x96,0x894d
+	hjam 0x2c,0x894e 
+	hjam 0x46,0x894f 
+	branch p_txon_select_power_level
+p_rx_high_sens:
+	hjam 0xfb,0x894c 
+	hjam 0xef,0x894d
+	hjam 0xec,0x894e 
+	hjam 0x5e,0x894f 
+p_txon_select_power_level::
+	fetch 1,mem_tx_power
+	branch txon_power_select
+
+p_set_tx_power_pair:	//50-100cm distance
+ 	hjam 0xc2,0x8956
+ 	hjam 0xd0,0x8955
+	rtn
+
+p_initialize_radio_cont:
+	call lpm_cal_xtal_startup
+	call switchto_dpllclk
+	hjam clksel_rc,core_clksel
+	hfetch 1,rf_clkpll_int
+	set1 7,pdata
+	hstore 1,rf_clkpll_int
+	set0 7,pdata
+	hstore 1,rf_clkpll_int
+	set1 7,pdata
+	hstore 1,rf_clkpll_int
+	hjam clksel_dpll,core_clksel
+	branch initialize_radio_cont+4
+
+p_lpm_recover_clk:
+	call lpm_recover_clk+2
+	fetch 1,mem_hibernate_flag
+	rtn blank
+	jam 0,mem_hibernate_flag
+	copy clkn_bt,pdata
+	store 4,mem_ipc_last_check_timer
+	rtn
+
+p_lpm_dispatch:
+	rtnmark1 mark_24g
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 2,mem_context + coffset_tsniff
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero									/* role switch */
+	fetch 1,mem_lpm_mode
+	rtn blank
+	call l2cap_malloc_is_fifo_empty
+	nrtn blank
+	call lpm_check_wake_lock
+	nrtn blank
+	call xtal_fast_wake
+	fetch 1,mem_ssp_enable
+	branch lpm_dispatch_next,blank
+	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
+	rtn blank
+	branch lpm_dispatch_next
+
+p_lpm_dispatch_next2:
+	fetch 1,mem_le_switch_send_data
+	branch p_lpm_dispatch_long_mult,blank
+	fetch 1,mem_lpm_current_mult
+	nbranch p_lpm_dispatch_long_mult,blank // short lpm, no gpio to wakeup
+	fetch 1,mem_bt_read_ipc_count
+	fetcht 1,mem_51_read_sensor_count
+	isub temp,null
+	nrtn zero
+	fetch 1,mem_ble_data_wheel
+	nrtn blank
+	setarg 0
+	store 8,mem_gpio_wakeup_low
+	branch lpm_dispatch_next2
+p_lpm_dispatch_long_mult:
+	call p_check_ipc_for_lpm
+	nrtn user
+	fetch 1,mem_c51_lmp_lock
+	nrtn blank
+	jam 0,mem_bt_wakeup_from_long_mult	//bt enter long mult,then 8051 execute  EVENT_WAKEUP
+	branch lpm_dispatch_next2
+
+p_lpm_dispatch_unconn:
+	call p_check_ipc_for_lpm
+	nrtn user
+	fetch 1,mem_c51_lmp_lock
+	nrtn blank
+	branch lpm_dispatch_unconn+2
+
+p_check_ipc_for_lpm:
+	call p_check_ipc_2bt
+	nrtn user
+	call p_check_ipc_2c51
+	nrtn user
+	jam 1,mem_c51_lmp_lock
+	jam SYC_TASK_LPM,mem_c51_flag
+	call p_c51_wait
+	branch p_check_ipc_2bt
+
+
+//user: no data
+p_check_ipc_2c51:
+	fetch 2,mem_ipc_2C51_read_index
+	fetcht 2,mem_ipc_2C51_write_index
+	branch p_check_ipc_common
+p_check_ipc_2bt:
+	fetch 2,mem_ipc_2bt_read_index
+	fetcht 2,mem_ipc_2bt_write_index
+p_check_ipc_common:
+	isub temp,null
+	branch enable_usr,zero
+	branch disable_usr
+	
+p_c51_wait:
+	fetch 1,mem_c51_flag
+	nop 10
+	bne 0,p_c51_wait
+	rtn	
+
+
+p_app_lpm_init:
+	jam 39,mem_le_ch_mapped
+	jam 0,mem_tester_emulate
+	jam 0,mem_debug_config
+	jam 0, mem_lch_code
+	setarg 0
+	store 5,mem_sp_state_start
+	rtn
+
+p_app_process_bb_event:
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_out
+	rtn blank
+	//reaching here mains c51 cannot get bb event.
+	copy pdata,regc
+	call p_app_event_normal_process
+	branch app_process_bb_event_priority
+p_app_event_normal_process:
+	rtneq BT_EVT_LINKKEY_GENERATE
+	beq BT_EVT_LE_CONNECTED,p_device_le_conn
+	beq BT_EVT_LE_DISCONNECTED,p_device_le_discon
+	beq BT_EVT_LE_ENC_INFO,p_device_le_enc_info
+	branch app_event_normal_process
+
+
+p_device_le_conn:
+	jam 0,mem_bt_read_ipc_count
+	jam 0,mem_lpm_mult
+	jam 0,mem_mult_time_arrive_flag
+	jam 20,mem_le_slave_update_mult_timer
+	call app_ble_stop_adv
+	call app_bt_stop_discovery
+	call app_lpm_mult_enable
+	call app_initflag_store
+	jam 1,mem_le_fast_conn_finished
+	branch app_le_event_bb_connected
+
+p_device_le_discon:
+	jam 0,mem_ble_send_flag
+	call queue_init
+	jam 0,mem_ltk_exists
+	jam 0,mem_lpm_mult
+	jam 0,mem_mult_time_arrive_flag
+	jam 0,mem_le_slave_update_mult_timer
+//	jam 0,mem_le_slave_update_param_timer
+	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
+	fetcht 2,mem_le_att_report2
+	storet 2,mem_le_notify_handle
+	call le_clean_att_list_handle_enable
+	branch app_le_event_bb_disconn
+
+p_device_le_enc_info:
+	call p_app_updata_le_param
+	branch check_51cmd_le_start_write
+
+p_app_evt_timer:
+	storet 1,mem_app_evt_timer_count
+	fetch 1,mem_ipc_bt_100ms_timer
+	increase 1,pdata
+	store 1,mem_ipc_bt_100ms_timer
+p_app_evt_100ms_loop:
+	fetch 1,mem_app_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_app_evt_timer_count	
+//	call p_le_slave_update_param_timer
+	call p_le_slave_update_mult_timer
+	call p_check_mult_parameter
+	call p_le_reconn_enable_notify_timer
+	call p_24g_enter_lpm_timer
+	call p_ble_data_wheel_lpm_timer
+	branch p_app_evt_100ms_loop
+
+p_check_mult_parameter:
+	fetch 1,mem_mult_time_arrive_flag
+	rtn blank
+	fetch 1,mem_lpm_mult
+	compare 0x20,pdata,0xff
+	ncall p_set_mult_para,true
+	fetch 1,mem_lpm_mode
+	call p_set_multmode,blank
+	rtn
+p_set_multmode:
+	jam 1,mem_lpm_mode
+	rtn
+p_set_mult_para:
+	jam 0x20,mem_lpm_mult
+	rtn
+p_24g_enter_lpm_timer:
+	fetch 1,mem_new_24g_enter_lpm_timer
+	rtn blank
+	jam 0,mem_short_data_wheel
+	increase -1,pdata
+	store 1,mem_new_24g_enter_lpm_timer
+	nrtn blank
+	rtn
+
+p_ble_data_wheel_lpm_timer:
+	fetch 1,mem_ble_data_wheel_lpm_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_ble_data_wheel_lpm_timer
+	nrtn blank
+	jam 0,mem_ble_data_wheel
+	rtn
+	
+//p_le_slave_update_param_timer:
+//	fetch 1,mem_le_slave_update_param_timer
+//	rtn blank
+//	increase -1,pdata
+//	store 1,mem_le_slave_update_param_timer
+//	nrtn blank
+p_app_updata_le_param:
+	call app_lpm_mult_enable
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+p_le_slave_update_mult_timer:
+	fetch 1,mem_le_slave_update_mult_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_le_slave_update_mult_timer
+	nrtn blank
+	jam 0x20,mem_lpm_mult
+	jam 1,mem_lpm_mode
+	jam 1,mem_mult_time_arrive_flag
+	rtn
+
+p_le_reconn_enable_notify_timer:
+	fetch 1,mem_le_reconn_enable_notify_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_le_reconn_enable_notify_timer
+	nrtn blank
+	branch app_ble_start_write	
+
+
+
+p_le_slave_match:
+	call le_got_first_packet
+	call le_acknowledge
+	call le_prepare_tx
+	call power_ctrl_start
+	branch le_slave_match+5
+
+p_le_receive_skip:
+	call save_rssi
+	copy pdata,rega
+	call rssi_signal
+	branch le_receive_skip+3
+
+p_le_send_adv_ind:
+	fetch 4,mem_le_rx_winsows
+	store 4,mem_le_transmit_window// init first packate rx window
+	branch le_send_adv_ind+2
+
+p_le_update_param:
+	jam 1,mem_lpm_mode	
+	fetch 2,mem_le_event_count
+	fetcht 2,mem_le_instant
+	isub temp,pdata
+	store 2,mem_pdatatemp
+	fetch 1,mem_le_state
+	set0 lestate_update_param,pdata
+	set0 lestate_got_first_packet,pdata
+	store 1,mem_le_state
+	fetch 4,mem_le_anchor
+	fetcht 2,mem_le_tsniff
+	storet 2,mem_temp
+	isub temp,rega
+	fetch 1,mem_le_new_param
+	store 1,mem_le_window_size
+	ifetcht 2,contr
+	ifetch 2,contr
+	lshift2 pdata,pdata
+	store 2,mem_le_tsniff
+	lshift2 temp,temp
+	iadd temp,pdata
+	ifetcht 4,contr
+	storet 4,mem_le_slave_latency	// and superTO
+	iadd rega,pdata
+	copy pdata,regab
+	fetch 2,mem_le_tsniff
+	fetcht 2,mem_temp	//last sniff
+	isub temp,pdata		//last sniff - new sniff
+	fetcht 2,mem_pdatatemp
+	imul32 temp,pdata
+	iadd regab,pdata
+	store 4,mem_le_anchor
+	call le_receive_window_size
+	fetch 2,mem_le_superto
+	store 2,mem_le_init_superto
+	rtn
+
+p_le_prepare_tx: 
+	fetch 1,mem_le_arq
+	bbit1 wak,p_le_prepare_tx_retansmited
+	call power_ctrl_pac_succ_incrs
+	jam 0,mem_le_prepare_tx_retransmited_number
+	fetch 1,mem_empty_count_user
+	nbranch p_le_send_empyt,blank
+	fetch 1,mem_mouse_le_pairing_flag
+	beq 1,p_le_smp_empty
+	fetch 1,mem_le_rxbuf+1  
+	branch le_prepare_tx_1,blank
+	branch le_send_empty      // send empty data when got non empty packet
+p_le_send_empyt:
+	fetch 1,mem_empty_count_user
+	increase -1,pdata
+	store 1,mem_empty_count_user
+	branch le_send_empty
+p_le_smp_empty:
+	jam 3,mem_empty_count_user
+	branch le_prepare_tx_1
+
+p_le_prepare_tx_retansmited:
+	fetch 1,mem_le_prepare_tx_retransmited_number
+	increase 1,pdata
+	store 1,mem_le_prepare_tx_retransmited_number
+	branch power_ctrl_pac_succ_decrs
+
+p_le_prepare_tx_ll:
+	fetch 1,mem_le_txpayload
+	beq LL_START_ENC_RSP,p_le_send_start_enc_rsp
+	beq LL_TERMINATE_IND,p_le_send_terminate_ind
+	branch le_prepare_tx_ll
+
+p_le_send_start_enc_rsp:
+	fetch 1,mem_le_reconn_flag
+	beq 1,p_le_send_reconn_start_enc_rsp
+	call app_ble_start_write
+//	force 1,temp
+//	branch le_send_packet,master
+//	fetch 1,mem_le_pairing_state
+//	bne FLAG_LE_PAIRING_AFTER_AUTH,le_send_start_enc_rsp_end
+//	branch le_send_start_enc_rsp+4
+	branch le_send_start_enc_rsp
+p_le_send_reconn_start_enc_rsp:
+	call p_app_updata_le_param
+	jam 3,mem_le_reconn_enable_notify_timer
+	branch le_send_start_enc_rsp_common
+
+p_le_send_terminate_ind:
+	setarg 0x13
+	istore 1,contw
+	call le_send_terminate_ind
+	setarg 10 // 100ms
+	store 2,mem_le_superto
+	store 2,mem_le_init_superto
+	rtn
+
+p_le_prepare_smp0:
+	fetch 1,mem_le_l2cap
+	beq SMP_PAIRING_RESPONSE,p_le_send_smp_pairing_response 
+	beq SMP_ENCRYPTION_INFORMATION,p_le_send_smp_encryption_information      
+	beq SMP_MASTER_IDENTIFICATION,p_le_send_smp_master_identification_only
+	branch le_prepare_smp0
+p_le_send_smp_master_identification_only:
+	jam 0,mem_mouse_le_pairing_flag
+	branch le_send_smp_master_identification_only
+	
+p_le_send_smp_pairing_response:
+	setarg param_smp_paring_response
+	store 3,mem_le_pres
+	setarg 0x01
+	istore 1,contw
+	setarg param_smp_key_dist0
+	istore 3,contw
+	branch le_send_smp_pairing_response_common
+
+p_le_send_smp_encryption_information:
+	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
+	call ui_ipc_send_event
+	jam XT_SMP_MASTER_IDENTIFICATION,mem_fifo_temp
+	call le_xtype_fifo_in
+	branch le_send_smp_encryption_information_shutter
+
+p_le_prepare_att:
+	fetch 1,mem_le_l2cap
+	beq ATTOP_HANDLE_VALUE_NOTIFICATION,p_le_send_att_handle_value_notification
+	beq ATTOP_HANDLE_VALUE_INDICATION,p_le_send_att_handle_value_indication
+	branch le_prepare_att+5
+	
+p_le_send_att_handle_value_indication:
+p_le_send_att_handle_value_notification:
+	fetcht 2,mem_le_att_report2
+	storet 2,mem_le_l2cap+1
+	fetch 1,mem_queue_read_ptr
+	add pdata,1,temp
+	and temp,0x03,temp
+	storet 1,mem_queue_read_ptr
+	mul32 pdata,7,pdata
+	arg mem_queue_buffer0,contr
+	iadd contr,contr
+	ifetch 7,contr
+	store 7,mem_le_l2cap+3
+	arg 14,temp
+	branch le_send_packet
+
+p_le_send_packet:
+	storet 1,mem_le_txlen
+	compare 2,type,3
+	nbranch p_le_send_non_l2cap,true
+	add temp,-4,pdata
+	store 2,mem_le_txpayload
+p_le_send_non_l2cap:
+	fetcht 1,mem_le_arq
+	call p_le_send_check_md
+	branch le_send_non_l2cap1
+p_le_send_check_md:
+	fetch 1,mem_mouse_le_pairing_flag
+	beq 1,enable_blank
+	branch le_xtype_fifo_is_empty
+enable_blank:
+	setarg 0
+	rtn
+	
+p_le_parse0:
+	copy regc,pdata
+	beq LL_CONNECTION_UPDATE_REQ,p_le_parse_connection_update_req
+	beq LL_TERMINATE_IND,p_le_parse_terminate_ind
+	beq LL_ENC_REQ,p_le_parse_enc_req
+	beq LL_PAUSE_ENC_REQ,p_le_parse_pause_enc_rsq
+	branch le_parse0+6
+
+p_le_parse_connection_update_req:
+	jam 0,mem_lpm_mode
+	jam 60,mem_le_slave_update_mult_timer
+	branch le_parse_connection_update_req	
+
+p_le_parse_terminate_ind:
+	call le_parse_terminate_ind
+le_clear_xtype_fifo:
+	setarg 0
+	store 8,mem_le_xtype_fifo
+	rtn
+
+p_le_parse_enc_req:
+	call le_parse_enc_req
+	fetch 1,mem_le_pairing_state
+	rtneq FLAG_LE_PAIRING_AFTER_AUTH
+	branch load_device_list_mode_4_shutter
+
+p_le_parse_pause_enc_rsq:
+	jam XT_LL_PAUSE_ENC_RSP,mem_fifo_temp
+	branch le_xtype_fifo_in
+
+p_le_parse_smp:
+	ifetch 1,contr
+	beq SMP_PAIRING_REQUEST,p_le_parse_smp_pairing_request
+	branch le_parse_smp+3
+p_le_parse_smp_pairing_request:
+	jam 1,mem_mouse_le_pairing_flag
+	jam 3,mem_empty_count_user
+	branch le_parse_smp_pairing_request
+
+p_le_parse_att:
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request
+	branch le_parse_att+4
+
+p_le_parse_att_write_request:
+	jam 1,mem_lpm_mode
+	call p_le_parse_att_write_common
+	fetch 1,mem_le_att_handle
+	sub pdata,BLE_FAST_CONN_CHARACTER_HANDLE,null
+	branch p_le_mouse_fast_conn_character_set,zero
+	jam 0,mem_le_mouse_fast_conn_flag
+p_le_parse_att_write_request_next:	
+	call le_check_long_packet_patch
+	nrtn zero
+p_le_parse_att_write_request_end:
+	fetch 1,mem_le_mouse_fast_conn_flag
+	ncall p_le_set_enc_info_flag,blank
+	jam ATTOP_WRITE_RESPONSE,mem_fifo_temp
+	branch le_xtype_fifo_in
+p_le_parse_att_write_common:
+	fetch 1,mem_le_rxbuf+1
+	increase -7,pdata
+	icopy loopcnt
+	copy loopcnt,regb
+	branch le_parse_att_write_common+6
+
+p_le_mouse_fast_conn_character_set:
+	jam 1,mem_le_mouse_fast_conn_flag
+	branch p_le_parse_att_write_request_next
+
+p_le_set_enc_info_flag:
+	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+p_le_adv:
+	fetch 1,mem_le_adv_enable
+	rtn blank
+	arg le_adv_interval_timer,queue
+	call timer_check
+	nrtn blank
+	disable master
+	enable swfine
+	call le_init_adv
+	call le_next_adv_channel
+	call le_send_adv_ind
+	nbranch p_le_adv_not_match,match
+	fetch 1,mem_le_req_rcv
+	increase 1,pdata
+	store 1,mem_le_req_rcv
+	fetch 1,mem_le_rxbuf
+	and pdata,0x0f,pdata
+	beq SCAN_REQ,p_le_send_scan_response
+	beq CONNECT_REQ,le_parse_connect_req
+p_le_adv_not_match:	
+	fetch 1,mem_le_ch_mapped
+	bne 39,le_adv_loop
+	random pdata
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata	
+p_adv_delay:	
+	increase -1,pdata
+	nop 38
+	nbranch p_adv_delay,blank
+	branch le_adv_not_match+3
+
+p_le_send_scan_response:
+	call le_send_scan_response
+	branch p_le_adv_not_match
+
+p_le_receive_window_size:
+	fetch 4,mem_le_transmit_window
+	arg 60000,temp
+	iadd temp,pdata
+	store 4,mem_le_transmit_window
+	branch le_receive_window_size+16	
+
+
+p_le_lpm_set_mult:
+	disable wake
+	branch p_le_lpm_set_mult_attempt,attempt
+	nbranch p_le_lpm_lost,match
+p_le_lpm_set_mult_attempt:
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_le_receive_window
+	fetch 1,mem_le_rxbuf
+	compare 1,pdata,3
+	nbranch lpm_mult_short,true		// rx not empty, short interval
+	fetch 1,mem_le_txheader
+	compare 1,pdata,3
+	nbranch lpm_mult_short,true		// tx not empty, short interval
+	call le_xtype_fifo_is_empty
+	nbranch lpm_mult_short,blank
+	fetch 1,mem_le_prepare_tx_retransmited_number
+	sub pdata,1,null
+	nbranch lpm_mult_short,positive
+	branch le_lpm_set_mult_attempt+11
+	
+p_le_lpm_lost:
+	fetcht 2,mem_rx_window_sniff  
+	fetch 2,mem_le_rx_window_inc
+	iadd temp,temp 
+	rshift temp,temp
+	fetch 2,mem_le_receive_window 
+	iadd temp,pdata  
+	store 2,mem_le_receive_window  
+	branch lpm_lost
+
+p_mouse_init_environment:
+	call p_mouse_iicd_read_eep_data
+	arg 0x03,loopcnt
+	arg mem_mouse_le_reconn_addr_data,contr
+	
+	setarg 0xffff
+	call p_mouse_reconn_addr_empty_check
+	nrtn zero
+
+	fetch 1,mem_le_start_fast_conn_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_le_start_fast_conn_count
+	call p_app_initflag_check
+	rtn zero
+	jam 1,mem_le_start_adv
+	rtn
+
+p_mouse_iicd_read_eep_data:	
+	arg 0x0c,temp
+	arg mem_mouse_le_reconn_addr_data,rega
+	fetch 2,mem_mouse_reconn_addr
+	branch iicd_read_eep_data+5
+p_mouse_reconn_addr_empty_check:
+	ifetcht 2,contr
+	isub temp,null
+	nrtn zero
+	loop p_mouse_reconn_addr_empty_check
+	rtn
+
+p_app_flag_store:
+	arg 2,temp
+	arg mem_timeup,rega
+	arg EEPROM_INIT_FLAG_OFFSET,regb
+	branch iicd_write_eep_data
+
+p_app_initflag_check:
+	arg 2,temp
+	arg mem_pdatatemp,rega
+	arg EEPROM_INIT_FLAG_OFFSET,regb
+	call iicd_read_eep_data
+	fetch 2,mem_pdatatemp
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	rtn
+
+	
+	
+
+
+p_gpio_set_before_lpm_common:
+	hfetch 4,core_gpio_pu0
+	hfetcht 4,core_gpio_pd0
+	ior temp,pdata
+	invert pdata,pdata
+	iand rega,pdata
+	hstore 4,core_gpio_oe0
+	rtn
+
+p_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -160,temp 	//320btclk = 100ms
+	increase -160,temp
+	set0 28,temp
+	storet 4,mem_ui_timer_last_btclk
+	copy pdata,temp
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_is_near_full
+	nrtn blank
+	copy temp,pdata
+	branch ui_timer_check_send_evt
+
+
+p_check_51cmd_once:
+	call ui_ipc_get_lock
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_out
+	copy pdata,temp
+	call ui_ipc_put_lock
+	copy temp,pdata
+	rtn blank
+//ifdef P24G_YC
+//	beq BT_CMD_START_24G,g24_check_51cmd_start_24g
+//	beq BT_CMD_STOP_24G,g24_check_51cmd_stop_24g
+//	beq BT_CMD_PAIR_24G,g24_check_51cmd_pair_24g
+//endif
+	beq BT_CMD_START_ADV,p_check_51cmd_adv
+	beq BT_CMD_START_ADV_RECONN,p_check_51cmd_adv_reconn
+	branch check_51cmd_once+9
+
+//ifdef P24G_YC
+//g24_check_51cmd_start_24g:
+//	fetch 1,mem_tx_power_temp
+//	store 1,mem_tx_power
+//	jam STATE_24G_PAIRING_SUCCESS,mem_new_24g_pairing_sm
+//	branch g24_start_24g_mode
+//g24_check_51cmd_stop_24g:
+//	fetch 1,mem_tx_power_temp
+//	store 1,mem_tx_power
+//	set0 mark_24g,mark
+//	branch le_disable
+//g24_check_51cmd_pair_24g:
+//	jam TX_POWER_PAIR,mem_tx_power
+//	branch g24_start_pairing_sm1
+//	rtn
+//endif
+
+
+p_check_51cmd_adv:
+	set0 mark_24g,mark
+	jam 0,mem_lpm_mode
+	random pdata	//random ble addr
+	store 1,mem_le_lap
+
+	setarg 0x26100e
+	store 3,mem_le_lap+3
+	jam 0,mem_le_reconn_flag
+	fetcht 2,mem_le_att_report2
+	storet 2,mem_le_notify_handle
+	call le_clean_att_list_handle_enable
+	arg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE,regb
+p_le_start_adv:	
+	call p_le_check_adv_flag
+//	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
+	copy regb,pdata
+	istore 1,contr
+	branch check_51cmd_adv
+	
+p_check_51cmd_adv_reconn:
+	set0 mark_24g,mark
+	jam 0,mem_lpm_mode
+	jam 1,mem_le_reconn_flag
+	fetcht 2,mem_le_att_report2
+	call le_att_check_notification_enable
+	copy rega,contw
+	setarg 1
+	istore 1,contw
+	arg ADV_FLAG_BREDR_NOT_SUPPORTED,regb
+	branch p_le_start_adv
+//	call p_le_check_adv_flag
+//	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+//	istore 1,contr
+//	branch check_51cmd_adv
+	
+p_le_check_adv_flag:
+	arg mem_le_adv_data,rega
+p_le_check_adv_flag_loop:
+	ifetch 1,rega	//length
+	rtn blank
+	iadd contr,rega
+	ifetch 1,contr	//type
+	rtneq 0x01
+	branch p_le_check_adv_flag_loop
+
+
+p_check_51cmd_once_continue0:
+	call lmo_fifo_check
+	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
+p_check_51cmd_once_continue:
+	fetch 1,mem_fifo_temp
+	bmark0 mark_context,check_51cmd_check_idle
+//	beq BT_CMD_DISCONNECT,p_check_51cmd_disconnect	
+//	beq BT_CMD_UPDATE_SUPERVISION_TO,p_check_51cmd_update_supervision_to
+	beq BT_CMD_STORE_RECONN_INFO_LE,p_rtn
+//	beq BT_CMD_STORE_RECONN_INFO_BT,p_check_51cmd_once_continue_rtn
+	branch check_51cmd_once_continue+2
+/*
+p_check_51cmd_disconnect:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BT_HID_HANDSHAKE,p_check_51cmd_quick_disconnect
+	branch check_51cmd_disconnect
+p_check_51cmd_quick_disconnect:
+	setarg 0
+	store 4,mem_supervision_to
+	rtn	
+p_check_51cmd_update_supervision_to:
+	jam LMP_SUPERVISION_TIMEOUT,mem_lmo_opcode2
+	fetch 2,mem_new_supervision_to
+	store 2,mem_supervision_to
+p_check_51cmd_once_continue_rtn:	
+	rtn
+*/
+p_check_enter_hibernate:
+	jam SYC_TASK_HIBERNATE,mem_c51_flag
+	call p_c51_wait
+p_enter_hibernate_continue:
+//	call pp_gpio_set_before_lpm_common
+	jam 0x5a,mem_hibernate_flag
+	call lpm_write_gpio_wakeup
+	hfetch 4,core_lpm_ctrl
+	set0 15,pdata					
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	arg param_hibernate_clks,temp
+	branch lpm_sleep
+
+
+p_ipc_timer_check:
+	fetcht 4,mem_ipc_last_check_timer
+	copy clkn_bt,pdata
+	isub temp,pdata
+//	arg 3200,temp	//1s timer
+	arg 1600,temp	//500ms timer
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn blank
+	copy clkn_bt,temp
+	storet 4,mem_ipc_last_check_timer
+	fetcht 2,mem_ipc_bt_timer
+	byteswap temp,temp
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_ipc_bt_timer
+	byteswap pdata,pdata
+	and pdata,0x3,pdata
+	rtnne 0
+	call p_read_adc_enable
+	nrtn user2
+p_adc_check_process:
+	fetch 1,mem_adc_config_flag
+	bbit1 ADC_CONFIG_GPIO,p_adc_check_gpio
+p_rtn:
+	rtn
+
+
+
+p_adc_check_gpio:
+	hfetch 1,core_gpio_pu0
+	set0 5,pdata
+	hstore 1,core_gpio_pu0
+	hjam 0x8f,rf_adc_mode
+	fetch 1,mem_adc_channel
+	hstore 1,rf_adc_ch
+	call p_read_adc
+	hfetch 1,core_gpio_pu0
+	set1 5,pdata
+	hstore 1,core_gpio_pu0
+	rtn
+
+p_read_adc:
+	hfetch 1,core_uart_baud + 1
+	set1 7,pdata
+	hstore 1,core_uart_baud + 1 
+	hfetch 1,rf_adc_ch
+	or_into 0x30,pdata
+	hstore 1,rf_adc_ch
+	hjam 0x7c,rfen_adc
+	hjam 0xaa,rf_adc_gc
+	nop 5000
+	hfetcht 2,core_adc_sum
+	hfetch 1,core_uart_baud + 1
+	set0 7,pdata
+	hstore 1,core_uart_baud + 1
+	byteswap temp,temp
+	storet 2,mem_adc_current_value
+	rtn
+
+enable_usr2:
+	enable user2
+	rtn
+p_read_adc_enable:
+	disable user2
+	call le_xtype_fifo_is_empty
+	call enable_usr2,blank
+//ifdef P24G_YC
+//	fetch 1,mem_new_24g_abort_pac
+//	ncall enable_usr2,blank
+//endif	
+	rtn
+	
+p_user_le_connect_process:
+	jam 1,mem_ble_read_ipc_fifo_once
+	call p_ipc_rx
+	jam 0,mem_ble_read_ipc_fifo_once
+	rtn
+
+p_ipc_rx:
+	call p_check_ipc_2bt
+	rtn user
+	byteswap pdata,pdata
+	copy pdata,contr
+	call p_ipc_rx_byte
+	store 1,mem_ipc_rx_type
+	beq IPC_TYPE_CMD,p_ipc_rx_cmd
+//ifdef P24G_YC
+//	beq IPC_TYPE_24G,g24_ipc_rx_24g
+//endif
+	copy pdata,temp
+	copy contr,rega
+	fetch 1,mem_context
+	bbit0 state_inconn,p_ipc_abondon_rx_data
+	copy rega,contr
+	rtnmark0 mark_context
+	copy temp,pdata
+	beq IPC_TYPE_BLE,p_ipc_rx_ble
+	branch assert
+
+p_ipc_rx_cmd:
+	call p_ipc_rx_byte
+	call p_ipc_rx_byte
+	store 1,mem_fifo_temp
+	call p_ipc_next_rx
+	branch ui_ipc_send_cmd
+
+p_ipc_next_rx:
+	call p_ipc_rx_updata_contr
+	copy contr,temp
+	byteswap temp,temp
+	storet 2,mem_ipc_2bt_read_index
+	rtn
+
+p_ipc_abondon_rx_data:
+	copy rega,contr
+	arg mem_tst_pktcnt_sync,contw
+	branch p_ipc_rx_cpy
+
+p_ipc_rx_cpy:
+	call p_ipc_rx_byte
+	copy pdata,loopcnt
+p_ipc_copy:
+	call p_ipc_cpy_loop
+	branch p_ipc_next_rx
+	
+p_ipc_cpy_loop:
+	call p_ipc_rx_byte
+	istore 1,contw
+	loop p_ipc_cpy_loop
+	rtn
+
+p_ipc_rx_byte:
+	call p_ipc_rx_updata_contr
+	ifetch 1,contr
+	rtn
+
+p_ipc_rx_updata_contr:
+	setarg mem_ipc_2bt_fifo_end
+	isub contr,null
+	nrtn zero
+	arg mem_ipc_2bt_fifo_head,contr
+	rtn
+	
+p_ipc_tx_evt:
+	arg 3,loopcnt
+	arg mem_ipc_tx_evt_buff,contr
+p_ipc_tx_cpy:
+	copy contr,rega
+	fetch 2,mem_ipc_2C51_write_index
+	byteswap pdata,pdata
+	copy pdata,contw
+	copy rega,contr
+p_ipc_tx_loop:
+	ifetch 1,contr
+	istore 1,contw
+	call p_ipc_tx_updata_contw
+	loop p_ipc_tx_loop
+	copy contw,pdata
+	byteswap pdata,pdata
+	store 2,mem_ipc_2C51_write_index
+	rtn
+p_ipc_tx_updata_contw:
+	setarg mem_ipc_2C51_fifo_end
+	isub contw,null
+	nrtn zero
+	arg mem_ipc_2C51_fifo_head,contw
+	rtn
+
+//ifdef P24G_YC
+//g24_ipc_rx_24g:
+//	rtnmark0 mark_24g_conext
+//	call p_ipc_rx_byte
+//	icopy loopcnt
+//	store 1,mem_new_uart_packet
+//	branch p_ipc_copy
+//endif
+
+
+queue_init:
+	setarg 0
+	store 3,mem_queue_write_prt
+	rtn
+
+p_ipc_rx_ble_data:
+	rtnmark1 mark_24g
+	fetch 1,mem_le_switch_send_data
+	rtn blank
+	call p_check_ipc_2bt
+	rtn user
+	byteswap pdata,pdata
+	copy pdata,contr
+	call p_ipc_rx_byte
+	store 1,mem_ipc_rx_type
+	copy contr,rega
+	bne IPC_TYPE_BLE,p_ipc_abondon_rx_data
+	copy contr,regb
+	call le_xtype_fifo_is_near_full
+	nrtn blank
+	branch p_ipc_rx_ble_read_fifo
+	
+p_ipc_rx_ble:
+	copy contr,regb
+	fetch 1,mem_ble_read_ipc_fifo_once
+	rtn blank
+	call le_xtype_fifo_is_empty
+	nrtn blank
+p_ipc_rx_ble_read_fifo:
+	fetcht 2,mem_le_att_report2
+	call le_att_check_notification_enable
+	rtnbit0 0
+	fetch 1,mem_le_switch_send_data
+	rtneq 0
+	fetch 1,mem_bt_read_ipc_count
+	pincrease 1
+	store 1,mem_bt_read_ipc_count
+	fetch 1,mem_queue_write_prt
+	add pdata,1,temp
+	and temp,0x03,temp
+	storet 1,mem_queue_write_prt
+	mul32 pdata,7,pdata
+	arg mem_queue_buffer0,contw
+	iadd contw,contw
+	copy regb,contr
+	call p_ipc_rx_byte
+	icopy loopcnt
+	call p_ipc_copy
+	call p_ipc_rx_ble_read_fifo_first_time
+	rtn user2
+	jam ATTOP_HANDLE_VALUE_NOTIFICATION,mem_fifo_temp
+	branch le_xtype_fifo_in
+
+p_ipc_rx_ble_read_fifo_first_time:
+	disable user2
+	fetch 1,mem_ble_send_flag
+	rtneq 5
+	enable user2
+	increase 1,pdata
+	store 1,mem_ble_send_flag
+	sub pdata,1,null
+	nrtn positive
+	jam BT_EVT_LE_NOTIFY_ENABLE,mem_ipc_tx_evt
+	branch p_ipc_tx_evt
+
+//p_device_check_lock:
+//	fetch 2,mem_sdp_remote_cid
+//	branch app_put_lpm_wake_lock,blank
+//	branch app_get_lpm_wake_lock
+
+
+p_ipc_init:
+	setarg mem_ipc_2bt_fifo_head
+	byteswap pdata,pdata
+	store 2,mem_ipc_2bt_read_index
+	store 2,mem_ipc_2bt_write_index
+	setarg mem_ipc_2C51_fifo_head
+	byteswap pdata,pdata
+	store 2,mem_ipc_2C51_read_index
+	store 2,mem_ipc_2C51_write_index
+	rtn
+
+p_mouse_reconn_addr_calculate:
+	fetch 2,mem_mouse_eeprom_base
+	add pdata,0x1c,pdata
+	store 2,mem_mouse_reconn_addr
+	rtn
+
+p_device_init:
+	call le_modified_name_adv
+//	setarg p_device_check_lock
+//	store 2,mem_cb_check_wakelock
+	jam 0,mem_c51_flag
+	jam 6,mem_connection_options
+	call app_lpm_mult_enable
+//	setarg p_device_bt_lpm_before
+//	store 2,mem_cb_before_lpm
+	setarg p_c51_user_event
+	store 2,mem_cb_bb_event_process
+//	setarg p_device_idle
+//	store 2,mem_cb_idle_process
+	setarg p_user_le_connect_process
+//	setarg p_ipc_rx
+	store 2,mem_cb_le_process
+	setarg p_device_before_hibernate
+	store 2,mem_cb_before_hibernate
+	ncall p_ipc_init,wake
+	call p_device_wakeup,wake
+	call lpm_disable_exen_output
+
+	fetch 1,mem_le_init_eeprom_base_count
+	branch p_device_init_next,blank
+	increase -1,pdata
+	store 1,mem_le_init_eeprom_base_count
+	setarg 0x3f80
+	store 2,mem_mouse_eeprom_base
+	call p_mouse_reconn_addr_calculate
+
+	fetch 1,mem_le_reconn_flag
+	nbranch p_device_init_next,blank
+	fetch 1,mem_le_fast_conn_finished
+	nbranch p_device_init_next,blank
+	call p_mouse_init_environment
+p_device_init_next:
+	fetch 1,mem_hibernate_flag
+	beq 0x5a,p_device_init_init_hibwake
+	branch p_deveice_init_wake,wake
+	fetch 1,mem_tx_power
+	store 1,mem_tx_power_temp
+	call power_ctrl_pac_succ_cnt_init
+	fetch 2,mem_adc_0v
+	byteswap pdata,pdata
+	store 2,mem_adc_0v
+	fetch 2,mem_adc_3v
+	byteswap pdata,pdata
+	store 2,mem_adc_3v
+	call p_init_adc_from_otp
+//ifdef P24G_YC
+//	call g24_set_device_addr
+//endif	
+	fetch 8,mem_temp
+	nbranch p_deveice_init_reset,blank
+	fetch 2,0x4ad4
+	byteswap pdata,pdata
+	branch p_deveice_init_reset,blank
+	store 2,mem_adc_3v
+p_deveice_init_reset:
+	jam BT_EVT_RESET,mem_ipc_tx_evt
+p_device_init_common:
+	fetch 1,mem_short_lpm_enable
+	nbranch p_24g_short_lpm_process,blank
+	call p_adc_check_process
+	call p_ipc_tx_evt
+	call p_ipc_rx_ble_data
+	hjam START_C51_CORE,core_docd_ctrl	
+	rtn
+p_24g_short_lpm_process:
+	call lpm_recover_clk,wake
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	copy clkn_bt,pdata
+	store 3,mem_ckln_24g_short_lpm
+p_24g_short_lpm_process_loop:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	rtnbit1 UI_STATE_BT_DISCOVERY
+	call app_process_idle
+	call g24_short_lpm_transmit_process
+	branch p_24g_short_lpm_process_loop
+
+p_device_wakeup:
+	copy auxcnt,pdata
+	bmark0 mark_24g,p_device_bt_wakeup
+g24_delay_long_sleep:
+//	copy auxcnt,pdata
+	branch g24_direct_long_sleep,blank	//sleep timer wake
+g24_delay_long_sleep2:	
+	jam 0xbb,mem_new_24g_delay_long_sleep_maxcnt		//io int wake,abort 150ms
+	rtn
+g24_direct_long_sleep:
+	jam 0x00,mem_new_24g_delay_long_sleep_maxcnt
+	fetch 1,mem_new_24g_key_wheel_event
+	rtn blank
+	jam 0,mem_new_24g_key_wheel_event
+	branch g24_delay_long_sleep2
+
+p_device_bt_wakeup:
+//	copy auxcnt,pdata
+	branch p_device_bt_wakeup_check,blank	//sleep timer wake
+	jam 2,mem_bt_wakeup_from_long_mult
+	rtn
+p_device_bt_wakeup_check:
+	fetch 1,mem_bt_motion_event
+	rtn blank
+	jam 0,mem_bt_motion_event
+	jam 1,mem_bt_wakeup_from_long_mult
+	rtn
+	
+p_deveice_init_wake:
+	jam BT_EVT_WAKEUP,mem_ipc_tx_evt
+	branch p_device_init_common
+p_device_init_init_hibwake:
+	copy auxcnt,pdata
+	branch p_enter_hibernate_continue,blank
+	call init_lmp_work
+	call l2cap_init_work
+	setarg 0
+	store 8,mem_context
+	store 2,mem_ui_state_map
+	store 2,mem_ipc_bt_timer
+	store 2,mem_ipc_c51_timer
+	jam BT_EVT_HIBERNATE_WAKE,mem_ipc_tx_evt
+	branch p_device_init_common
+
+p_init_adc_from_otp:
+	call otp_enable_chgpump
+	setarg 0x7e2
+	arg mem_temp,rega
+	arg 12,temp
+	call otpd_read_data
+	call otp_disable_chgpump
+	fetch 8,mem_temp
+	rtn blank
+	fetch 1,mem_adc_config_flag
+	bbit1 ADC_CONFIG_GPIO,p_calc_adc_check_gpio
+	rtn
+
+
+
+p_calc_adc_check_gpio:
+	fetcht 2,mem_temp
+	fetch 2,mem_temp + 6
+	copy temp,regb
+	copy pdata,rega
+	isub temp,regc
+	copy regb, pdata
+	isub regc,pdata
+	byteswap pdata,pdata
+	store 2,mem_adc_0v
+	lshift2 regc,pdata
+	iadd rega,pdata
+	byteswap pdata,pdata
+	store 2,mem_adc_3v
+	rtn
+	
+
+p_device_before_hibernate: 
+	enable user
+	hfetch 4,0x8138
+	setflag user,26,pdata
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	jam 1,mem_lpm_current_mult
+p_device_bt_lpm_before:
+	rtn
+
+//p_device_idle:
+//	rtn
+
+p_c51_user_event:
+	copy regc,pdata
+	and_into BT_EVT_TIMER_MASK,pdata
+	rtneq BT_EVT_TIMER_INIT
+	copy regc,pdata
+	store 1,mem_ipc_tx_evt
+	branch p_ipc_tx_evt
+
+
+g24_pair_init:
+	jam 0,mem_new_24g_pid
+	jam G24_PAIR_CH,mem_new_24g_ch
+	fetch 4,mem_new_24g_paring_addr
+g24_update_addr_and_synccrc8:	
+	store 4,mem_new_24g_addr
+	branch g24_syncword_crc8
+		
+//2.4g freq hop related.
+g24_ch:
+	fetcht 1,mem_new_24g_current_ch_number
+	call g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	storet 1,mem_new_24g_current_ch_number
+	rtn
+	
+g24_ch_calc:
+	fetch 1,mem_new_24g_addr	
+	and_into 0x03,pdata
+	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+	setarg mem_new_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
+	ifetch 1,contr
+	store 1,mem_new_24g_ch
+	rtn
+
+//g24_set_device_addr:
+//	fetch 4,mem_temp	//adc data from otp
+//	store 4,mem_new_24g_device_addr	
+//	nrtn blank
+//	fetch 4,mem_lap
+//	store 4,mem_new_24g_device_addr
+//	rtn
+
+
+g24_transmit_rf_sta_init:
+	jam 1,mem_new_24g_rf_last_sta
+	jam 0,mem_new_24g_sync_cnt
+g24_transmit_rf_ctrl_clear:	
+	fetch 1,mem_new_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_new_24g_data_type
+	rtn
+	
+g24_hop_ch_enable:
+	fetch 1,mem_new_24g_data_type
+	set1 bit_hop,pdata
+	store 1,mem_new_24g_data_type
+	//update txpayload
+	store 1,mem_new_24g_txpayload
+	rtn
+g24_hop_ch_disable:
+	fetch 1,mem_new_24g_data_type
+	set0 bit_hop,pdata
+	store 1,mem_new_24g_data_type
+	rtn	
+
+g24_transmit_hop_pac_fail:
+	call power_ctrl_pac_succ_decrs
+	fetch 1,mem_new_24g_rf_work_stage
+	beq 1,g24_transmit_hop_pac_fail_wo_hop
+	beq 2,g24_transmit_hop_pac_fail_hop_stage2
+	rtn
+g24_transmit_hop_pac_fail_wo_hop:
+	jam 2,mem_new_24g_sync_cnt
+g24_transmit_hop_pac_fail_stage1:	
+	jam 0,mem_new_24g_hop_pac_retry
+	jam 0,mem_new_24g_rf_last_sta
+	branch g24_transmit_rf_ctrl_clear
+
+g24_transmit_hop_pac_fail_hop_stage2:
+	jam 0,mem_new_24g_rf_hop_ch
+	branch g24_transmit_hop_pac_fail_stage1
+
+g24_transmit_pac_fail_hop_stage3:
+	fetch 2,mem_new_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_new_24g_txfail_cnt
+	bbit1 10,g24_tx_attempt_fail	//1024ms * 8
+	fetch 1,mem_new_24g_rf_hop_ch
+	beq 1,g24_rf_hop_fastly
+	jam 1,mem_new_24g_rf_hop_ch
+g24_rf_hop_attemp_again:
+	fetch 1,mem_new_24g_rf_hop_ch
+	bne 1,g24_transmit_rf_ctrl_clear
+g24_rf_hop_fastly:
+	fetch 1,mem_new_24g_hop_fastly_cnt
+	increase 1,pdata
+	store 1,mem_new_24g_hop_fastly_cnt
+	beq 4,g24_rf_hop_fastly_exit
+	call g24_ch
+	jam 2,mem_new_24g_max_retry
+	branch g24_transmit_packet
+
+g24_rf_hop_fastly_exit:
+	call power_ctrl_pac_succ_decrs
+	jam 0,mem_new_24g_hop_fastly_cnt
+	branch g24_transmit_rf_ctrl_clear
+
+g24_transmit_hop_pac_succ_wo_hop:
+	jam 2,mem_new_24g_sync_cnt
+g24_transmit_hop_pac_succ:
+	jam 1,mem_new_24g_rf_last_sta
+	jam 0,mem_new_24g_rf_hop_ch
+	branch g24_transmit_rf_ctrl_clear
+
+g24_transmit_succ_rf_config:
+	fetch 1,mem_new_24g_rf_work_stage
+	beq 3,g24_transmit_hop_pac_succ
+	fetch 1,mem_new_24g_data_type
+	isolate0 bit_hop,pdata
+	branch g24_transmit_rf_sta_init,true
+	fetch 1,mem_new_24g_rf_work_stage
+	beq 1,g24_transmit_hop_pac_succ_wo_hop
+	beq 2,g24_transmit_hop_pac_succ
+	rtn
+
+g24_rf_sta_check:
+	fetch 1,mem_new_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call g24_rf_laststa_synccnt_check
+	ncall g24_rf_sync_cnt_check,user2
+	rtn
+
+g24_rf_laststa_synccnt_check:
+	disable user2
+	fetch 1,mem_new_24g_rf_last_sta
+	rtnne 1
+	fetch 1,mem_new_24g_sync_cnt
+	rtnne 0
+	jam 1,mem_new_24g_rf_work_stage
+	jam 4,mem_new_24g_max_retry
+	branch enable_usr2
+
+g24_rf_sync_cnt_check:
+	fetch 1,mem_new_24g_sync_cnt
+	branch g24_rf_hop_attemp,blank
+	increase -1,pdata
+	store 1,mem_new_24g_sync_cnt
+	jam 2,mem_new_24g_rf_work_stage
+	call g24_ch
+	jam 4,mem_new_24g_max_retry
+	rtn
+
+g24_rf_hop_attemp:
+	jam 3,mem_new_24g_rf_work_stage
+	fetch 1,mem_new_24g_rf_hop_ch
+	nbranch g24_rf_hop_attemp_again,blank
+	call g24_ch
+	jam 2,mem_new_24g_max_retry
+	rtn
+	
+/*
+g24_transmit_process:
+	rtnmark0 mark_24g
+	set1 mark_24g_conext,mark
+	fetcht 4,mem_new_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_new_24g_tx_btclk
+	fetcht 1,mem_new_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nbranch g24_transmit_exit,positive
+	set0 28,pdata
+	store 4,mem_new_24g_tx_btclk
+	call g24_interval_calibrate
+	call g24_txdata_prep
+	branch g24_no_data_to_tx,user
+	call g24_rf_sta_check
+g24_transmit_start:
+	call g24_transmit_packet
+	fetch 1,mem_new_24g_pairing_sm
+	sub pdata,STATE_24G_PAIRING_SUCCESS,null
+	call power_ctrl_start,zero
+g24_transmit_exit:
+	set0 mark_24g_conext,mark
+	rtn	*/
+
+//g24_timer_timeout:
+//	rtn zero
+//	set1 28,pdata
+//	rtn
+
+//g24_interval_calibrate:
+//	fetch 1,mem_new_24g_pac_index
+//	increase 1,pdata
+//	store 1,mem_new_24g_pac_index
+//	beq 4,g24_interval_max
+//	beq 5,g24_interval_min
+//	rtn
+//g24_interval_max:
+//	fetch 1,mem_new_24g_interval_max
+//	store 1,mem_new_24g_interval
+//	rtn
+//g24_interval_min:
+//	jam 0,mem_new_24g_pac_index
+//	fetch 1,mem_new_24g_interval_min
+//	store 1,mem_new_24g_interval
+//	rtn
+
+	
+g24_txdata_prep:
+	fetch 1,mem_new_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_pairing_sm	
+	//nop 1200 // wait for 8051 preparing data
+	call p_ipc_rx
+	branch g24_txdata_prep_ipc_nodata,user
+	fetch 1,mem_ipc_rx_type
+	bne IPC_TYPE_24G,enable_usr
+g24_txdata_prep_packeage_data:
+	fetch 1,mem_short_data_wheel
+	call g24_lpm_short_increase,blank
+g24_txdata_skip_short_lpm:
+	fetch 1,mem_short_data_wheel
+	ncall g24_enter_long_sleep,blank
+	call g24_package_data
+	call g24_transmit_prep
+g24_txdata_enable_tx:
+	jam ENSURE_ON_24G,mem_new_24g_ensure
+	rtn
+
+g24_enter_long_sleep:
+	jam 0,mem_short_lpm_tx_cnt
+	jam 0,mem_short_lpm_enable
+	jam 10,mem_new_24g_enter_lpm_timer
+	rtn
+	
+g24_txdata_prep_ipc_nodata:
+	fetch 1,mem_short_lpm_enable
+	nbranch g24_short_lpm_txdata_prep,blank
+g24_txdata_last_pac:
+	fetch 1,mem_new_24g_ensure
+	beq ENSURE_ON_24G,disable_usr
+	rtn
+
+
+g24_short_lpm_txdata_prep:
+g24_package_data:
+	fetch 1,mem_new_24g_delay_long_sleep_maxcnt
+	store 1,mem_new_24g_delay_long_sleep_cnt
+
+	fetch 1,mem_new_uart_packet
+	copy pdata,rega
+	arg mem_new_uart_packet+1,regb
+	jam 0,mem_new_24g_abort_pac
+g24_package_data_pc_bind:
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_new_24g_common_temp
+	//total length
+	add rega,1,temp
+	arg mem_new_24g_common_temp+1,contw
+g24_package_user_data:
+	//user data: max 30 bytes
+	copy rega,loopcnt
+	copy regb,contr
+	call memcpy
+	arg mem_new_24g_common_temp,rega
+g24_put_data_in_buff:
+	rtnmark0 mark_24g_conext
+	storet 1,mem_new_24g_datalen
+	copy temp,loopcnt
+	arg mem_new_24g_txbuf,contw
+	copy rega,contr
+	branch memcpy
+
+
+//output: 1BYTE crc8
+g24_syncword_crc8:
+	arg 0,rega
+	arg 4,loopcnt
+	arg mem_new_24g_addr,contr
+g24_syncword_crc8_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop g24_syncword_crc8_loop
+	copy rega,pdata
+	store 2,mem_new_24g_syncword
+	fetch 1,mem_new_24g_syncword
+	fetcht 1,mem_new_24g_syncword+1
+	iadd temp,pdata
+	store 1,mem_new_24g_syncword_crc8
+	rtn
+
+g24_transmit_prep:
+// total length
+	fetch 1,mem_new_24g_datalen
+	increase 2,pdata
+	store 1,mem_new_24g_txlen
+// data type
+	fetch 1,mem_new_24g_data_type
+	store 1,mem_new_24g_txpayload
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	fetch 1,mem_new_24g_datalen
+	lshift3 pdata,pdata
+	fetcht 1,mem_new_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	fetcht 1,mem_new_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	fetch 1,mem_new_24g_datalen
+	iforce loopcnt
+	arg mem_new_24g_txbuf,contr
+	branch memcpy
+/*
+g24_send_abort_packet:
+	jam 1,mem_new_24g_abort_pac
+	jam 0,mem_new_24g_rf_hop_ch
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_new_24g_common_temp
+	setarg 0
+	store 7,mem_new_24g_common_temp+1
+	fetch 4,mem_new_24g_device_addr
+	store 4,mem_new_24g_common_temp+8
+	arg 12,temp
+	arg mem_new_24g_common_temp,rega
+	call g24_put_data_in_buff
+	fetch 1,mem_new_24g_data_type
+	set1 bit_abort,pdata
+	store 1,mem_new_24g_data_type
+	call g24_transmit_prep
+	call g24_txdata_enable_tx
+	branch g24_transmit_start	*/
+
+g24_no_data_to_tx:
+	rtn
+//	fetch 1,mem_short_lpm_enable
+//	branch g24_no_data_to_tx_short_lpm_disable,blank
+//	call g24_lpm_short_decrease
+//	branch g24_short_lpm_sleep
+/*	
+g24_no_data_to_tx_short_lpm_disable:
+//	fetch 1,mem_new_24g_abort_pac
+//	branch g24_send_abort_packet,blank
+	fetcht 1,mem_new_24g_delay_long_sleep_cnt
+	increase 1,temp
+	storet 1,mem_new_24g_delay_long_sleep_cnt
+	fetch 1,mem_new_24g_delay_long_sleep_maxcnt
+	isub temp,null
+	rtn positive
+	jam 0,mem_new_24g_delay_long_sleep_cnt
+g24_lpm_long_sleep:
+	call p_check_ipc_for_lpm
+	nrtn user
+	fetch 1,mem_c51_lmp_lock
+	nrtn blank
+	fetch 1,mem_new_24g_enter_lpm_timer
+	nrtn blank
+	jam 0,mem_short_data_wheel
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 8,mem_new_24g_enter_hibernate
+	call clk2lpo
+	storet 4,mem_sleep_counter
+  	branch lpm_sleep	*/
+
+g24_lpm_short_increase:
+	fetch 1,mem_wakup_from_power_flag
+	isolate0 2,pdata
+	branch g24_lpm_short_increase_poweron,true
+	fetch 1,mem_short_lpm_tx_cnt
+	rtneq 5
+	increase 1,pdata
+	store 1,mem_short_lpm_tx_cnt
+	rtnne 5
+g24_lpm_short_enable:	
+	jam 1,mem_short_lpm_enable
+	rtn
+
+g24_lpm_short_increase_poweron:		//wait for lpo_calibration completely
+	fetch 1,mem_short_lpm_tx_cnt
+	rtneq 20
+	increase 1,pdata
+	store 1,mem_short_lpm_tx_cnt
+	rtnne 20
+	fetch 1,mem_wakup_from_power_flag
+	set1 2,pdata
+	store 1,mem_wakup_from_power_flag
+	branch g24_lpm_short_enable
+
+g24_lpm_short_decrease:
+	fetch 1,mem_short_lpm_tx_cnt
+	rtn blank
+	increase -1,pdata
+	store 1,mem_short_lpm_tx_cnt
+	nrtn blank
+	jam 0,mem_short_lpm_enable
+	rtn
+	
+g24_short_lpm_transmit_process:
+	set1 mark_24g_conext,mark
+	call p_ipc_rx
+	branch g24_short_lpm_transmit_process_ipc_nodata,user
+	fetch 1,mem_ipc_rx_type
+	beq IPC_TYPE_24G,g24_short_lpm_txdata_data_ready
+g24_short_lpm_transmit_process_ipc_nodata:
+	fetch 1,mem_send_data_24g_short_lpm
+	beq SHORT_LPM_STATE_DATA,g24_short_lpm_txdata_prep_buff_data
+	beq SHORT_LPM_STATE_NODATA,g24_no_data_to_tx
+	beq SHORT_LPM_STATE_BUTTON_WHEEL,g24_short_lpm_transmit_process_button_wheel
+	rtn
+
+g24_short_lpm_transmit_process_button_wheel:
+//	jam 0,mem_short_lpm_tx_cnt
+//	jam 0,mem_short_lpm_enable
+g24_short_lpm_txdata_prep_buff_data:
+	rtn
+
+//ifdef OTA_ENABLE
+//	fetch 1,mem_new_24g_ota_enable
+//	beq 1,g24_ota_exit_short_lpm_sleep
+//endif
+//	call g24_lpm_short_increase
+//	jam 0,mem_send_data_24g_short_lpm
+//	arg 7,loopcnt
+//	copy loopcnt,pdata
+//	store 1,mem_new_uart_packet
+//	arg mem_hid_buff,contr
+//	call memcpy
+//	disable user
+g24_short_lpm_txdata_data_ready:
+	rtn
+//	call g24_txdata_prep_packeage_data
+//	call g24_rf_sta_check
+//	call g24_transmit_packet
+//	call power_ctrl_start
+g24_short_lpm_sleep:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_lpm_mode
+	rtn blank
+	fetch 1,mem_short_data_wheel
+	beq 1,g24_short_lpm_sleep2
+	setarg 0
+	store 8,mem_gpio_wakeup_low
+g24_short_lpm_sleep2:
+	call g24_short_lpm_select_param
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	fetcht 3,mem_ckln_24g_short_lpm
+	copy clkn_bt,pdata
+	isub temp,pdata
+	and_into 0xff,pdata
+	arg 3750,temp		//312.5 x 12  = 1875
+	imul32 temp,temp  // btclk to system clk @ 12MHz
+	fetch 4,mem_short_lpm_interval_param
+	isub temp,pdata	//8ms - PassedTime
+	branch lpm_dispatch_sleep,positive
+	fetch 1,mem_lpm_xtalcnt // sleep the shortest time
+	increase 1,pdata
+	store 4,mem_sleep_counter
+	branch lpm_dispatch_sleep+7
+g24_short_lpm_select_param:
+	setarg G24_8125_INTERVAL_PARAM
+	store 4,mem_short_lpm_interval_param
+	fetch 1,mem_short_lpm_interval_cnt
+	increase 1,pdata
+	bne 5,g24_short_lpm_select_param_cont
+	setarg 0
+g24_short_lpm_select_param_cont:
+	store 1,mem_short_lpm_interval_cnt
+	rtnbit0 0
+	setarg G24_78125_INTERVAL_PARAM
+	store 4,mem_short_lpm_interval_param
+	rtn
+
+
+g24_transmit_packet:
+	jam 0,mem_new_24g_retry
+g24_transmit_loop:
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	call g24_transmit_receive_ack
+	fetch 1,mem_new_24g_no_ack	//tx noack
+	rtneq no_ack_24g
+	nbranch g24_retransmit,sync
+	nbranch g24_retransmit,user3
+	call g24_ackpayload_parse
+	call power_ctrl_pac_succ_incrs
+g24_transmit_next_packet:
+	fetch 1,mem_new_24g_pid
+	increase 1,pdata
+	store 1,mem_new_24g_pid
+	fetch 1,mem_new_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_paring_mode_start
+	call g24_transmit_succ_rf_config
+g24_transmit_abandon:
+	setarg 0
+	store 2,mem_new_24g_txfail_cnt
+	store 1,mem_new_24g_get_ack_fail
+	store 1,mem_new_24g_hop_pac_retry
+	jam ENSURE_OFF_24G,mem_new_24g_ensure
+	rtn
+g24_paring_mode_start:
+	call power_ctrl_pac_succ_cnt_init
+	branch g24_paring_mode
+
+g24_transmit_receive_ack:
+	disable user3
+	call g24_transmit
+	fetch 1,mem_new_24g_no_ack
+	beq no_ack_24g,g24_transmit_no_ack	//tx no ack
+	force 0,radio_ctrl
+	fetch 4,mem_new_24g_addr
+	iforce access
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	call g24_receive_rxon
+	call g24_end_of_packet,user3
+	rtn
+g24_transmit_no_ack:
+	call g24_end_of_packet
+	branch g24_transmit_next_packet
+
+g24_retransmit:
+	fetch 1,mem_new_24g_get_ack_fail
+	increase 1,pdata
+	store 1,mem_new_24g_get_ack_fail
+	fetch 1,mem_new_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_tx_paring_retry
+	fetcht 1,mem_new_24g_retry
+	increase 1,temp
+	storet 1,mem_new_24g_retry
+	fetch 1,mem_new_24g_max_retry
+	isub temp,pdata
+	nbranch g24_transmit_loop,blank
+	fetch 1,mem_new_24g_rf_work_stage
+	beq 3,g24_transmit_pac_fail_hop_stage3
+	fetch 1,mem_new_24g_hop_pac_retry
+	increase 1,pdata
+	store 1,mem_new_24g_hop_pac_retry
+	beq 2,g24_transmit_hop_pac_fail
+	call g24_hop_ch_enable
+	jam 1,mem_new_24g_max_retry
+	branch g24_transmit_packet
+
+g24_tx_paring_retry:
+	fetch 1,mem_new_24g_get_ack_fail
+	rtnne 0xff
+	jam 0,mem_new_24g_get_ack_fail
+	branch g24_stop_24g_mode
+
+g24_tx_attempt_fail:
+	setarg 0
+	store 2,mem_new_24g_txfail_cnt
+	jam 0,mem_lpm_mode
+	jam 0,mem_short_lpm_tx_cnt
+	jam 0,mem_short_lpm_enable
+g24_stop_24g_mode:
+	jam BT_EVT_24G_ATTEMPT_FAIL,mem_ipc_tx_evt
+	branch p_ipc_tx_evt
+
+g24_ackpayload_parse:
+	call g24_read_len_pid_crc
+	fetch 1,mem_new_24g_rxdata_length	//ack payload length 
+	rtn blank
+	iforce loopcnt
+	arg mem_new_24g_rxbuf+2,contr
+	arg mem_new_24g_rxpayload,contw	//ack payload buffer 
+	branch memcpy
+
+g24_read_len_pid_crc:
+//read control
+	fetch 1,mem_new_24g_rxbuf+1
+	rshift3 pdata,pdata
+	store 1,mem_new_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	arg mem_new_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	store 3,mem_new_24g_sta_crc
+//read pid
+	fetch 1,mem_new_24g_rxbuf+1
+	rshift pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_new_24g_sta_pid
+	rtn
+
+
+g24_prep:
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_new_24g_ch
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init	
+	rtn
+
+g24_set_freq_tx:
+	call set_sync_on
+	fetcht 1,mem_new_24g_ch
+	branch set_freq_tx
+
+g24_transmit:
+	call le_enable
+	fetch 4,mem_new_24g_addr
+	iforce access
+	call g24_prep
+	call g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+	disable encode_fec0
+	enable encode_fec1
+	enable enable_white
+	enable enable_crc
+
+	fetch 1,mem_new_24g_syncword_crc8
+	inject mod,8
+	
+	fetch 1,mem_new_24g_txlen
+	iforce loopcnt
+	arg mem_new_24g_txpayload,contr
+g24tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop g24tr_loop
+	enable enable_parity
+	inject mod,24	//crc
+	disable enable_parity
+	until null,tx_clear
+	nop 100
+	disable encode_fec0
+	disable encode_fec1
+	rtn
+
+g24_receive_packet:
+	call le_enable
+	fetch 4,mem_new_24g_addr
+	iforce access
+	call set_sync_on
+	fetcht 1,mem_new_24g_ch
+	call set_freq_rx
+	setarg param_pll_setup
+	call sleep
+	call rf_rx_enable
+g24_receive_rxon:
+	call g24_prep
+	disable user3
+	enable decode_fec0	
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_new_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch g24_sync_timeout,sync
+	disable decode_fec0
+	enable decode_fec1
+	enable enable_white
+	enable enable_crc
+
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_new_24g_get_syncword_crc8
+	call g24_syncword_crc8
+	fetcht 1,mem_new_24g_get_syncword_crc8
+	isub temp,null
+	nbranch g24_end_of_packet,zero
+
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_new_24g_rxbuf	//device id
+	fetch 1,mem_new_24g_mode
+	sub pdata,rx_24g,null
+	branch g24_receive_skip,zero
+	fetch 1,mem_new_24g_rxbuf
+	fetcht 1,mem_new_24g_data_type
+	icompare bits_data,temp
+	nbranch g24_end_of_packet,true
+g24_receive_skip:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	rshift3 pdata,pdata
+	and pdata,0x1f,loopcnt	//max payload: 32bytes
+	branch g24rx_nopayload,zero
+g24rx_loop:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop g24rx_loop
+g24rx_nopayload:
+	//receive rssi hex
+	copy contw,rega
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_rssi_hex_received
+	copy rega,contw
+	
+	parse demod,bucket,24
+	enable swfine
+	arg param_sifs,stop_watch
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	disable decode_fec1
+	branch g24_end_of_packet,crc_failed
+	enable user3
+	fetch 1,mem_last_freq
+	add pdata,0,rega
+	call rf_write_freq
+	disable decode_fec0
+	call set_sync_on
+	fetch 1,mem_rssi_hex_received
+	copy pdata,rega
+	branch rssi_signal
+
+g24_end_of_packet:
+	disable encode_fec1
+	disable decode_fec1
+	branch end_of_packet
+
+g24_sync_timeout:
+	branch g24_end_of_packet
+
+power_ctrl_pac_succ_cnt_init:
+	jam 1,mem_power_ctrl_level
+	jam 0,mem_power_ctrl_pac_succ_cnt
+	rtn
+power_ctrl_pac_succ_incrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	increase 1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+power_ctrl_pac_succ_decrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,1,null
+	ncall power_ctrl_pac_succ_cnt_reinit,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	rtneq 0
+	increase -1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+power_ctrl_pac_succ_cnt_reinit:
+	jam 2,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+power_ctrl_start:
+	arg mem_rssi_signal_buf,rega
+	call rssi_average
+	storet 1,mem_rssi_avg_received
+	isolate1 mark_24g,mark
+	call power_ctrl_24g_dis_max,true
+	ncall power_ctrl_le_dis_max,true
+	isub temp,null
+	nbranch power_ctrl_txpower_incrs,positive
+
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,1,null
+	nbranch power_ctrl_txpower_decrs_check,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	beq 0,power_ctrl_txpower_incrs
+	rtn
+
+power_ctrl_24g_dis_max:
+	setarg RSSI_DIS_MAX_24G
+	rtn
+power_ctrl_24g_dis_min:
+	setarg RSSI_DIS_MIN_24G
+	rtn	
+power_ctrl_le_dis_max:
+	setarg RSSI_DIS_MAX_BLE
+	rtn
+power_ctrl_le_dis_min:
+	setarg RSSI_DIS_MIN_BLE
+	rtn
+	
+power_ctrl_txpower_decrs_check:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	rtnne 70
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_decrs:
+	fetcht 1,mem_rssi_avg_received
+	isolate1 mark_24g,mark
+	call power_ctrl_24g_dis_min,true
+	ncall power_ctrl_le_dis_min,true
+	isub temp,null
+	nrtn positive
+	fetch 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+	increase -1,pdata
+	store 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+power_ctrl_decrs_level1:
+power_ctrl_incrs_level1:	//0dBm
+	hjam 0xd0,0x8955
+	hjam 0xe0,0x8956
+	hjam 0x4c,0x8957
+	hjam 0x6c,0x8958
+	hjam 0x50,0x8959
+	jam 0x01,mem_tx_power
+	rtn
+	
+power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 2,power_ctrl_incrs_level2
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1
+power_ctrl_incrs_level2:	//+6dBm
+	hjam 0xd0,0x8955
+	hjam 0xe0,0x8956
+	hjam 0x4c,0x8957
+	hjam 0x3c,0x8958
+	hjam 0x10,0x8959
+	jam 0x04,mem_tx_power
+	rtn
+	
+power_ctrl_decrs_level0: //-5dBm
+	hjam 0xd0,0x8955
+	hjam 0xc0,0x8956
+	hjam 0x4c,0x8957
+	hjam 0x6c,0x8958
+	hjam 0x50,0x8959	
+	jam 0x10,mem_tx_power
+	rtn
+	
+rssi_signal:
+	fetcht 1,mem_rssi_signal_index
+	setarg mem_rssi_signal_buf
+	iadd temp,contw
+	copy rega,pdata
+	istore 1,contw
+	increase 1,temp
+	and_into RSSI_BUF_LEN,temp
+	storet 1,mem_rssi_signal_index
+	rtn
+rssi_average:
+	arg 0,temp
+	arg RSSI_BUF_LEN+1,loopcnt
+	copy rega,contr
+rssi_average_loop:	
+	ifetch 1,contr
+	iadd temp,temp
+	loop rssi_average_loop
+	rshift3 temp,pdata
+	copy pdata,temp
+	rtnmark0 mark_24g
+	//2BCD
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	lshift4 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+
+
+g24_start_pairing_sm1:
+	set1 mark_24g,mark
+	call g24_pair_init
+g24_set_pairing_sm_1:
+	jam STATE_24G_PAIRING_1,mem_new_24g_pairing_sm
+	rtn
+
+g24_pairing_sm:
+	fetch 1,mem_new_24g_ensure
+	beq ENSURE_ON_24G,disable_usr
+	fetch 1,mem_new_24g_pairing_sm
+	beq STATE_24G_PAIRING_1,g24_pairing_sm_1
+	beq STATE_24G_PAIRING_2,g24_pairing_sm_2
+	beq STATE_24G_PAIRING_3,g24_pairing_sm_3
+	branch assert
+
+g24_pairing_sm_1:
+	jam STATE_24G_PAIRING_1_WAITING_ACK,mem_new_24g_pairing_sm
+	jam 0xaa,mem_new_24g_common_temp
+	branch g24_pairing_sm_common
+g24_pairing_sm_2:
+	jam STATE_24G_PAIRING_2_WAITING_ACK,mem_new_24g_pairing_sm
+	jam 0x55,mem_new_24g_common_temp
+	branch g24_pairing_sm_common
+g24_pairing_sm_3:
+	jam STATE_24G_PAIRING_3_WAITING_ACK,mem_new_24g_pairing_sm
+	jam 0x22,mem_new_24g_common_temp
+g24_pairing_sm_common:
+	fetch 1,mem_new_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_new_24g_common_temp+1
+	fetch 4,mem_new_24g_device_addr
+	store 4,mem_new_24g_common_temp+2
+g24_put_pairing_data_in_buff:
+	jam 0,mem_new_24g_common_temp+6
+	arg mem_new_24g_common_temp,rega
+	arg 7,temp
+	call g24_put_data_in_buff	
+	call g24_transmit_prep
+	call g24_txdata_enable_tx
+	branch disable_usr
+
+g24_paring_mode:
+	fetch 1,mem_new_24g_pairing_sm
+	rtneq STATE_24G_PAIRING_SUCCESS
+	beq STATE_24G_PAIRING_1_WAITING_ACK,g24_pairing_sm_1_waiting_ack
+	beq STATE_24G_PAIRING_2_WAITING_ACK,g24_pairing_sm_2_waiting_ack
+	beq STATE_24G_PAIRING_3_WAITING_ACK,g24_pairing_sm_3_waiting_ack
+	rtn
+
+g24_pairing_sm_1_waiting_ack:
+	jam STATE_24G_PAIRING_2,mem_new_24g_pairing_sm
+	branch g24_transmit_abandon
+g24_pairing_sm_2_waiting_ack:
+	jam STATE_24G_PAIRING_3,mem_new_24g_pairing_sm
+	branch g24_transmit_abandon
+g24_pairing_sm_3_waiting_ack:
+	jam STATE_24G_PAIRING_SUCCESS,mem_new_24g_pairing_sm
+	jam BT_EVT_24G_PAIRING_COMPLETE,mem_ipc_tx_evt
+	call p_ipc_tx_evt
+	fetch 4,mem_new_24g_rxpayload+2
+	call g24_update_addr_and_synccrc8
+	branch g24_transmit_abandon
+
+g24_start_24g_mode:
+	set0 mark_24g,mark
+	call g24_ch
+	fetch 4,mem_new_24g_addr
+	call g24_syncword_crc8
+	fetch 1,mem_new_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call g24_tx_attemp_data_prep
+g24_tx_attemp_dongle:
+	setarg 0
+	store 2,mem_new_24g_check_dongle_times
+g24_tx_attemp_dongle_loop:
+	nop 2000
+	fetch 1,mem_new_24g_check_dongle_times
+	beq 0xff,g24_stop_24g_mode	//
+	call g24_transmit_receive_ack
+	nbranch g24_attemp_txdata_retry,sync
+	nbranch g24_attemp_txdata_retry,user3
+g24_tx_attemp_dongle_succ:
+	jam 1,mem_lpm_mode
+	set1 mark_24g,mark
+	setarg 0
+	store 2,mem_new_24g_check_dongle_times
+	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event
+	branch check_51cmd_stop_adv
+
+g24_tx_attemp_data_prep:
+	set1 mark_24g_conext,mark
+	jam 0xff,mem_new_24g_common_temp
+	fetch 1,mem_new_24g_data_type
+	store 1,mem_new_24g_common_temp+1
+	fetch 4,mem_new_24g_device_addr
+	store 4,mem_new_24g_common_temp+2
+	arg 6,temp
+	arg mem_new_24g_common_temp,rega
+	call g24_put_data_in_buff
+	branch g24_transmit_prep
+	
+g24_attemp_txdata_retry:
+	fetch 2,mem_new_24g_check_dongle_times
+	increase 1,pdata
+	store 2,mem_new_24g_check_dongle_times
+	call g24_ch
+	branch g24_tx_attemp_dongle_loop
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/bt_program23.rom	(working copy)
@@ -0,0 +1,1618 @@
+11000101000100101000000000010001
+11000000000000000000000000100110
+11000000000000011000000000110001
+11000000010000110000000000110110
+11000000010001010000000001000000
+11000000010001011000000001100010
+11000000010100111000000001101110
+11000000010101000000000001110101
+11000000010101001000000010001001
+11000000010101100000000010011100
+11000000010110100000001101000001
+11000000010110101000000010110101
+11000000010110110000000010111100
+11000000010110111000000011011110
+11000000010111001000001000100110
+11000000010111010000001000101010
+00100000001000000011101100110100
+11000000000000101000000100011000
+11000000000010110000000100011101
+11000000000011011000000100100001
+11000000000100011000000100100100
+11000000000101111000000101001000
+11000000000110001000000101011101
+11000000000110010000000101101111
+11000000000110011000000110000010
+11000000000111001000000110010011
+11000000000111100000000110100000
+11000000000111101000000110110011
+11000000000111110000000110111001
+11000000000111111000000111010010
+11000000001000010000000111110000
+11000000001001101000000111110101
+11000000010010101000001000110010
+11000000011110011000001000111001
+11000000011110111000001001000101
+11000000011111000000001001101111
+11000000011111001000001001110101
+00100000001000000011101100110100
+00100000100000000000000000000000
+00100100001101011011000000000100
+01101000000000001100010110010101
+00100100001110100000000000101111
+01101000000000001100111001111000
+00100000001110100011000000000100
+01110000010011100111111100000000
+11000101100100110011000000000100
+00100100001101011011000000000100
+01110000100000101000000000000011
+00100000001000000011000000000100
+00100000010000000000001001111111
+00100000010000000000001010111011
+01101000000000001100111001111000
+00100100001110100000001101111010
+00100000001000000011000000011011
+00100000001100001011100110100011
+01110000100010010101010111010100
+00100000000000000000000000000100
+01110000100010010101010111010010
+00100000000000000000000000000100
+01110000100010010101010111010001
+00100000000000000000000000000100
+01101000000000001100001010000000
+11000000000010100011100110101110
+00100000001000000011100110011100
+01100000000010001000000000010111
+00011000010000001010001000000000
+00100000010000000011101000010011
+01011000000000000000010100000000
+00100000010000000011101100110101
+01110000100010010000011000000001
+01110000100010010000000000111100
+01110000100010010000000111100000
+01110000100010010110110100010010
+00100000000000000000000000001010
+01110000100010010000001000000001
+01110000100010010000001000111101
+00100000000000000000000000001010
+01110000100010010000001110110111
+00100000000000000000000000001010
+01110000100010010000001001111111
+01101000000000001100001010000000
+11000000000010100000000001011111
+11000010100000001000000001011001
+11000010100000010000000001011001
+01110000100010010100110001011011
+01110000100010010100110110010110
+01110000100010010100111000101100
+01110000100010010100111101000110
+00100000001000000000000001011101
+01110000100010010100110011111011
+01110000100010010100110111101111
+01110000100010010100111011101100
+01110000100010010100111101011110
+01101000000000001100001010000000
+00100000001000000011100111011100
+01110000100010010101011011000010
+01110000100010010101010111010000
+00100000011000000000000000000000
+00100000010000000011110011010010
+00100000010000000011101001011111
+01110000100000000100001000000110
+01101000000100001000100101101000
+01111001001000000111111000000111
+01100000000100001000100101101000
+01111001001111111111111000000111
+01100000000100001000100101101000
+01111001001000000111111000000111
+01100000000100001000100101101000
+01110000100000000100001000000101
+00100000001000000011101000001100
+00100000010000000011110000101011
+01101000000000001100111001000101
+00100000011110100000000000000000
+01110000010011100100010100000000
+00011100010000100111111000000000
+01100000000000100100100010011110
+00100000011000000000000000000000
+11000110000100110000000000000000
+00100000010000000011101111100010
+01101000000000011100001000001111
+00100000011110100000000000000000
+01101000000000010100000001000010
+11011000010000001111111111111111
+10011000010001100111110000000000
+00100000011000101000000000000000
+01101000000000001100000100110001
+00100000011110100000000000000000
+00100000010000000100100000010110
+00100100011110100000000000000000
+00100000010000000011110100001110
+00100100011110100000000000000000
+00100000010000000011101001111011
+01101000000000001100011011100010
+00100000001110100011110001011110
+01101000000000001100011000111001
+00100000011110100000000000000000
+00100000001000000011110001011110
+01101000000000001100010110010101
+00100000001110100000000010010110
+01101000000000001000000010011111
+00100100001110100000000010010110
+01101000000000001100111010000011
+01101000000010001100111010000100
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101000000000001100111010000001
+00100100011110100000000000000000
+01011000000000000000000000000000
+01100000000001000000000010100000
+00100000001000000011110001101010
+00100000010000000000000010100001
+00100100011101000000000000000000
+01101000000000001000101100101011
+00100100011110100000000000000000
+01110000010010011100000100000000
+00100000001000000011110001101010
+00100000010000000000000010100001
+00100100011101000000000000000000
+01101000000000001000101100101011
+00100100011110100000000000000000
+00100000001000000011110010001100
+00100000010000000000000010101100
+00100100011101000000000000000000
+00100000010000000000000010101001
+00100100011101000000000000000000
+01110000000010110010101100000001
+01110000000010110010101000000001
+00100000010000000000000010110001
+00100000001000000000000010101100
+01101000000000010100100000101100
+01101000000010010100100000101110
+00100000001000000000000010101110
+01101000000000010100011111000100
+01101000000010010100011111000110
+10011000010001100111110000000000
+00100000001000101110010011000000
+00100000001000000011000111010100
+01101000000000001000101100101010
+00100000000000000000000000001010
+11000000100000000000000010110001
+00100000011000000000000000000000
+01110000000000000001011000100111
+01110000000000010101000000000000
+01110000000000010111111000000000
+01110000000000010111111100000000
+01011000000000000000000000000000
+01100000000000101000100011010010
+00100000011000000000000000000000
+11011010001000000100011011110000
+00100000010000000111111110010101
+00100000011110100000000000000000
+00011111111000100010011000000000
+00100000010000000000000011000010
+00100000001000000011110110011011
+11000001000011000000000000000000
+11000000000010100000000011000111
+11000000000010101000000011010001
+11000000000101001000000011011100
+00100000001000000011110101110011
+01110000010011101000001100000000
+01110000010000100001001000000000
+01110000010011101011101100000000
+01110000010011100101000100010100
+00100000010000000011111001100001
+00100000010000000011111001011001
+00100000010000000011111001111111
+00100000010000000011111000100000
+01110000010011101011100100000001
+00100000001000000011110111000010
+01110000010011101010010000000000
+00100000010000000000001011111100
+01110000010001001011001000000000
+01110000010000100001001000000000
+01110000010011101011101100000000
+01110000010011100101000100000000
+01110000010001010110101000000000
+01101000000010010100111001001110
+01100000000010010100010011111000
+00100000010000000101001010100000
+00100000001000000011110111000110
+00100000010000000000000100000110
+00100000001000000111111000111011
+01100000000010001000001001001110
+01101000000000001100100010011100
+00011111111000001111111000000001
+01100000000000001100100010011100
+01101000000000001000001001001110
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100000000000001000001001001110
+00100000010000000000000100001001
+00100000010000000000000011101100
+00100000010000000000000100010010
+00100000010000000000000011111000
+00100000010000000000000011111111
+00100000001000000000000011100010
+01101000000000001100111010111011
+00100000011110100000000000000000
+01101000000000001100001000010010
+00101111111000011111111000100000
+00100100010000001000000011110110
+01101000000000001100000100110001
+00100000010110100000000011110100
+00100000011000000000000000000000
+01110000010000010011000100000001
+00100000011000000000000000000000
+01110000010000100001001000100000
+00100000011000000000000000000000
+01101000000000001100100110111010
+00100000011110100000000000000000
+01110000010011101000000000000000
+00011111111000001111111111111111
+01100000000000001100100110111010
+00100100011110100000000000000000
+00100000011000000000000000000000
+01101000000000001100111010000010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100000000000001100111010000010
+00100100011110100000000000000000
+01110000010011101000000100000000
+00100000011000000000000000000000
+00100000010000000011111001111111
+01110000000010011011110100010010
+00100000001000000111110110010000
+01101000000000001100111001010001
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100000000000001100111001010001
+00100100011110100000000000000000
+01110000010000100001001000100000
+01110000010000010011000100000001
+01110000010011101011101100000001
+00100000011000000000000000000000
+01101000000000001100111001010010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100000000000001100111001010010
+00100100011110100000000000000000
+00100000001000000011111001101101
+00100000010000000100100101101000
+00100000010000000100101101010001
+00100000010000000100101111011000
+00100000010000000000010110100111
+00100000001000000100100101000101
+00100000010000000011101001010000
+00011111111000100010001000000000
+00100000010000000000010111100101
+00100000001000000100101000111101
+01101000000000100100111001001000
+01100000000000100100010110010110
+00100000001000000100101010001100
+01110000010000010011000100000001
+01101000000000010000001101111100
+01101000000010010000001110000010
+10011000010001100111111000000000
+01100000000000010000100110111110
+01101000000000001000001101100010
+01111001001111111111111000000101
+01111001001111111111111000000011
+01100000000000001000001101100010
+01101000000000100000001101100110
+01101000000010010000001101100100
+01100000000010010000100111000110
+10011000010001100010001000000000
+01101000000000001100010001011011
+01100000000000001000001110001101
+11101000110010010000000000000000
+11101000110000010000000000000000
+00011111111010111111111000000000
+01100000000000010000001101100100
+00011000010010111000010000000000
+10011000010000001111111000000000
+11101000110010100000000000000000
+01100000000010100000001110001110
+10011010001000001111111000000000
+00011111111000100010100000000000
+01101000000000010000001101100100
+01101000000010010000100111000110
+10011000010001100111111000000000
+01101000000010010000100110111110
+10011000010011111111111000000000
+10011010100000001111111000000000
+01100000000000100000001101100110
+00100000010000000101000110011001
+01101000000000010000001110010000
+01100000000000010100010101100001
+00100000011000000000000000000000
+01101000000000001000001101111001
+11000010100000101000000101011001
+00100000010000000000010110011001
+01110000010011100110001000000000
+01101000000000001100111000100000
+00100100001110100000000101010011
+01101000000000001100111010100101
+11000000000000001000000101010111
+01101000000000001000001100000011
+00100000001110100100101111011110
+00100000001000000100111110000111
+01101000000000001100111000100000
+00011111111000001111111111111111
+01100000000000001100111000100000
+00100000001000000100111110000111
+01110000010011100010000000000011
+00100000001000000100101111011110
+01101000000000001100111001100010
+00011111111000001111111000000001
+01100000000000001100111001100010
+00100000001000000000010110011101
+01101000000000001100010001100111
+11000000000000110000000101100001
+11000000000000010000000101101000
+00100000001000000100101111111011
+01101000000000001100111001010011
+11000000000000001000000101100101
+00100000010000000011111001101101
+00100000001000000100110010000110
+00100000010000000000000100000110
+01110000010011100101001000000011
+00100000001000000100110010010000
+01011000000000000000000000010011
+11100000101000001000000000000000
+00100000010000000100110001011000
+01011000000000000000000000001010
+01100000000000010000001110010000
+01100000000000010100010101100001
+00100000011000000000000000000000
+01101000000000001100010001101011
+11000000000000010000000101110110
+11000000000000110000000101111101
+11000000000000111000000101110100
+00100000001000000100110000011000
+01110000010011101010010100000000
+00100000001000000100110100010111
+01011001000000000000001100000010
+01100000000000011100010011011100
+01011000000000000000000000000001
+11100000101000001000000000000000
+01011000000000010000000000010000
+11100000101000011000000000000000
+00100000001000000100110011001101
+01110000000010011011110100101001
+00100000010000000111110110000110
+01110000000010011011110101000111
+00100000010000000100101111010110
+00100000001000000100110100000001
+01101000000000001100010001101011
+11000000000011011000000110000110
+11000000000011101000000110000110
+00100000001000000100110000101011
+01101000000010010100111001001110
+01100000000010010100010001101100
+01101000000000001100111010000110
+00011111111000001000010000000001
+00011000010000010000010000000011
+01100000000010001100111010000110
+00011111111011111111111000000111
+11011000110000000100111010000111
+10011000110000001000110000000000
+11101000110000111000000000000000
+01100000000000111100010001101110
+11011000010000000000000000001110
+00100000001000000100111110001001
+01100000000010001100010001100110
+00101000001000000000011000000010
+00100100001000001000000110011000
+00011000010000001111111111111100
+01100000000000010100010001100111
+01101000000010001000001101111001
+00100000010000000000000110011011
+00100000001000000100111110010010
+01101000000000001100111010100101
+11000000000000001000000110011110
+00100000001000000100101111010000
+01011000000000000000000000000000
+00100000011000000000000000000000
+00011010011000100111111000000000
+11000000000000000000000110100110
+11000000000000010000000110101001
+11000000000000011000000110101101
+11000000000001010000000110110001
+00100000001000000100111110111001
+01110000010000010011000100000000
+01110000010011100101000100111100
+00100000001000000101000000011111
+00100000010000000101000000110011
+01011000000000000000000000000000
+01100000000001000100010101000100
+00100000011000000000000000000000
+00100000010000000101000000111001
+01101000000000001100010101101010
+11000001000000010000000000000000
+00100000001000000110010000011000
+01110000000010011011110100101011
+00100000001000000100101111010110
+11101000110000001000000000000000
+11000000000000001000000110110110
+00100000001000000100111111111110
+01110000010011101010010100000001
+01110000010011100010000000000011
+00100000001000000101000001101001
+11101000110000011000000000000000
+01100000000000011000001110011010
+11000000000010010000000110111101
+00100000001000000101000000010001
+01110000010000010011000100000001
+00100000010000000000000111001001
+01101000000000001000001110011011
+00011111111001100111110001100000
+00100000001000101000000111001110
+01110000010011101010011000000000
+00100000010000000101000100100101
+00100100011000101000000000000000
+01101000000000001100111010100110
+00100100010110100000000111010000
+01110000000010011011110100010011
+00100000001000000100101111010110
+01101000000000001000001100000011
+00011111111000001111111111111001
+00011111111000100111001000000000
+00011111001000100010010000000000
+00100000001000000101000100110101
+01110000010011101010011000000001
+00100000001000000000000111000011
+01110000000010011011110100101001
+00100000001000000111110110000110
+01101000000000001100001111111111
+00100000011110100000000000000000
+11011000111000000000000000000001
+00100000010000000111111011100010
+00100100011110100000000000000000
+01111000010101001111110000000000
+01111000001010000111110000000000
+00100000010000000100101100011110
+00100000010000000100100111010100
+00100000010000000100101010001010
+00100100001101101000000111100100
+01101000000000001000000000000011
+00011111111000001111111000000001
+01100000000000001000000000000011
+01101000000000001000001100000010
+00011111111000010111111000001111
+11000000000000011000000111101110
+11000000000000101101000110101111
+01101000000000001000000000010110
+11000000100100111101000101111101
+00011000000010100111111000000000
+11011000010000000000000111111111
+10011000010000010111111000000000
+00011111111000001111111011111010
+00011111111000001111111111111111
+00100000000000000000000000100110
+00100100001110100000000111101010
+00100000001000000101000110010110
+00100000010000000100101011000101
+00100000001000000000000111100100
+01101000000000100100010110010110
+11011000010000001110101001100000
+10011000010000001111111000000000
+01100000000000100100010110010110
+00100000001000000101000110101001
+01111000010101011111110000000000
+00100000001101110000000111111000
+00100100001101101000001000000111
+00100000010000000011110010110111
+01101000000000010100000101100001
+01100000000000010000001101110000
+01101000000000001000001100000010
+00101111111000000000011000000001
+00100100001000001011110011001011
+01101000000000001100010001100101
+00101111111000000000011000000001
+00100100001000001011110011001011
+00100000010000000100101111010000
+00100100001110100011110011001011
+01101000000000001100111001100010
+00011111111001100111110000000001
+00100100001000010011110011001011
+00100000001000000101001010010111
+01101000000010010100000101100001
+01101000000000010100111001100000
+10011000010000001000010000000000
+00011000010000110000010000000000
+01101000000000010000001101110000
+10011000010000001111111000000000
+01100000000000010000001101110000
+00100000001000000011110011000011
+00100000010000000000001000011101
+11011111001000000000000000000011
+11011000110000000100111010101101
+01011000000000001111111111111111
+00100000010000000000001000100001
+00100100011000101000000000000000
+01101000000000001100111010101000
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100000000000001100111010101000
+00100000010000000000001000101010
+00100000011000101000000000000000
+01110000010011101010011100000001
+00100000011000000000000000000000
+11011000010000000000000000001100
+11011010001000000100111010101101
+01101000000000010100111010101011
+00100000001000000110001001001010
+11101000110010010000000000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+11000010000000000000001000100001
+00100000011000000000000000000000
+11011000010000000000000000000010
+11011010001000000000100111001110
+11011010010000000000000000110000
+00100000001000000110001001101111
+11011000010000000000000000000010
+11011010001000000000100110111110
+11011010010000000000000000110000
+00100000010000000110001001000101
+01101000000000010000100110111110
+11011000010000001010101001010101
+10011000010001100111110000000000
+00100000011000000000000000000000
+01101000000100100000000001111000
+01101000000110100000000001111100
+10011000010000011111111000000000
+00011111111001000111111000000000
+10011010001000010111111000000000
+01100000000100100000000001110000
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+00011000010000001000010101100000
+00011000010000001000010101100000
+01111001001111111000010000011100
+01100000000010100100011100000011
+00011111111000100000010000000000
+11011010001000000100011011110000
+00100000010000000111111110100110
+00100100011110100000000000000000
+00011000010000100111111000000000
+00100000001000000111110101111101
+00100000010000000111110110000000
+11011010001000000100011011111000
+00100000010000000111111110010101
+00011111111000100000010000000000
+00100000010000000111110110000100
+00011000010000100111111000000000
+00100000011110100000000000000000
+11000000000001101000001001001111
+11000000000100111000001001011110
+00100000001000000111110110110011
+01111001001111111000000000100110
+01110000010000010011000100000000
+00011000000010100111111000000000
+01100000000000001100010100111110
+01011000001001100001000000001110
+01100000000000011100010101000001
+01110000010011100101001100000000
+01101000000010010100111001001110
+01100000000010010100010011111000
+00100000010000000101001010100000
+11011010010000000000000000000101
+00100000010000000000001001101000
+00011010010000100111111000000000
+11100000110000001000000000000000
+00100000001000000111111000000111
+01111001001111111000000000100110
+01110000010000010011000100000000
+01110000010011100101001100000001
+01101000000010010100111001001110
+00100000010000000100111101101010
+00011010001000100000101000000000
+01011000000000000000000000000001
+11100000101000001000000000000000
+11011010010000000000000000000100
+00100000001000000000001001011010
+11011010001000000100010000000001
+11101010001000001000000000000000
+00100000011110100000000000000000
+10011000110000001010001000000000
+11101000110000001000000000000000
+11000001000000001000000000000000
+00100000001000000000001001101001
+00100000010000000101100011000101
+00100100001110100111110111100101
+01101000000000001000100110111101
+11000101100001001111110111100000
+11000000000011111000001010010101
+00100000001000000111110111010000
+01110000000010110010101000000011
+00100000010000000000000010110001
+01110000010011100100010101011010
+00100000010000000011110011111100
+01101000000100100000000100111000
+01111001001111111111111000001111
+01100000000100100000000001001100
+00100000010000000011110011110100
+11011000010111111111111111111111
+00100000001000000011110000010001
+01101000000010100100100010011110
+00011100010000100111111000000000
+10011000010001100111111000000000
+11011000010000000000011001000000
+10011000010001101111110000000000
+00100000010000000111111101010011
+00011000000001111111111000000000
+00100000011110100000000000000000
+00011100010000100000010000000000
+01100000000010100100100010011110
+01101000000010010100100010011000
+00011000010100001000010000000000
+10011000010000001111111000000000
+00011111111100001111111000000000
+01100000000000010100100010011000
+00011111111100001111111000000000
+00011111111000010111111000000011
+11000001100000000000000000000000
+00100000010000000000001010110011
+00100100011101100000000000000000
+01101000000000001100001011001111
+11000010100000010000001010010110
+00100000011000000000000000000000
+01101000000100001000000001111000
+01111001001111111111111000000101
+01100000000100001000000001111000
+01110000100010010111000110001111
+01101000000000001100001011010000
+01100000000100001000100101110011
+00100000010000000000001010100001
+01101000000100001000000001111000
+01111001001000000111111000000101
+01100000000100001000000001111000
+00100000011000000000000000000000
+01101000000100001000000001010011
+01111001001000000111111000000111
+01100000000100001000000001010011
+01101000000100001000100101110011
+00011111111000011111111000110000
+01100000000100001000100101110011
+01110000100010010000011001111100
+01110000100010010111001010101010
+00100000000000000001001110001000
+01101000000110010000000101010000
+01101000000100001000000001010011
+01111001001111111111111000000111
+01100000000100001000000001010011
+00011000010100001000010000000000
+01100000000010010100001011010001
+00100000011000000000000000000000
+01111000001101100111110000000000
+00100000011000000000000000000000
+01111000010101100111110000000000
+00100000010000000100101111010000
+00100000010110100000001010110001
+00100000011000000000000000000000
+01110000010011101010001100000001
+00100000010000000000001010111011
+01110000010011101010001100000000
+00100000011000000000000000000000
+00100000010000000000000010101100
+00100000011101000000000000000000
+00011111111100001111111000000000
+00011111111000100000110000000000
+00100000010000000000001011100000
+01100000000000001100100010010111
+11000000000000001000001011001011
+00011111111000100000010000000000
+00011000110000100010001000000000
+01101000000000001100000001000000
+11000011000000000000001011010101
+00011010001000100000110000000000
+11000110100001001000000000000000
+00011000010000100111111000000000
+11000000000000101000001100001110
+00100000001000000011101100110001
+00100000010000000000001011100000
+00100000010000000000001011100000
+01100000000000001000100110111101
+00100000010000000000001011010000
+00100000001000000111110110010000
+00100000010000000000001011100011
+00011000110000100000010000000000
+00011000010100001000010000000000
+01100000000010010100011111000100
+00100000011000000000000000000000
+00011010001000100000110000000000
+11011000101000000000000011110101
+00100000001000000000001011011000
+00100000010000000000001011100000
+00011111111000100111001000000000
+00100000010000000000001011011100
+00100000001000000000001011010000
+00100000010000000000001011100000
+11100000101000001000000000000000
+11000010000000000000001011011100
+00100000011000000000000000000000
+00100000010000000000001011100011
+11101000110000001000000000000000
+00100000011000000000000000000000
+01011000000000000100011111000100
+10011000110001100111110000000000
+00100100011000101000000000000000
+11011000110000000100011100101110
+00100000011000000000000000000000
+11011111001000000000000000000011
+11011000110000000100100010010100
+00011000110000100010001000000000
+01101000000000010100100000101110
+00011111111100001111111000000000
+00011111111000100000101000000000
+00011010001000100000110000000000
+11101000110000001000000000000000
+11100000101000001000000000000000
+00100000010000000000001011110111
+11000010000000000000001011101111
+00011000101000100111111000000000
+00011111111100001111111000000000
+01100000000000010100100000101110
+00100000011000000000000000000000
+01011000000000000100100000101100
+10011000101001100111110000000000
+00100100011000101000000000000000
+11011000101000000100011111001000
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100000000000011100111010000101
+00100000011000000000000000000000
+11000110000100110000000000000000
+01101000000000001100010110010101
+00100000011110100000000000000000
+00100000010000000000000010101100
+00100000011101000000000000000000
+00011111111100001111111000000000
+00011111111000100000110000000000
+00100000010000000000001011100000
+01100000000000001100100010010111
+00011000110000100010001000000000
+11000000100000101000001011010101
+00011000110000100010010000000000
+00100000010000000100101111010100
+00100100011110100000000000000000
+00100000001000000000001100010011
+00011000110000100010010000000000
+01101000000000001100111010100011
+00100000011110100000000000000000
+00100000010000000100101111010000
+00100100011110100000000000000000
+01101000000010010100111001001110
+00100000010000000100111101101010
+11000100000000000000000000000000
+01101000000000001100010110010101
+11000001000000000000000000000000
+01101000000000001100111010000011
+00011111111000001111111000000001
+01100000000000001100111010000011
+01101000000000001100111010000101
+00011111111000001000010000000001
+00011000010000010000010000000011
+01100000000010001100111010000101
+00011111111011111111111000000111
+11011000101000000100111010000111
+10011000101000001000101000000000
+00011010010000100000110000000000
+00100000010000000000001011100000
+00011111111000100111001000000000
+00100000010000000000001011011010
+00100000010000000000001100101010
+00100000011101100000000000000000
+01110000000010011011110100011011
+00100000001000000100101111010110
+01111000010101100111110000000000
+01101000000000001100111010100100
+11000001000000101000000000000000
+01111000001101100111110000000000
+00011111111000001111111000000001
+01100000000000001100111010100100
+00011111111001100111110000000001
+00100100011000010000000000000000
+01110000010010001001011001000000
+00100000001000000000001011101000
+01011000000000000100011100101110
+00011111111100001111111000000000
+01100000000000010100011111000100
+01100000000000010100011111000110
+01011000000000000100011111001000
+00011111111100001111111000000000
+01100000000000010100100000101100
+01100000000000010100100000101110
+00100000011000000000000000000000
+01101000000000010100111010101001
+00011111111000001111111000011100
+01100000000000010100111010101011
+00100000011000000000000000000000
+00100000010000000101001001001010
+01110000000010110010101000000000
+01110000000000010110110000000110
+00100000010000000011111001111111
+01011000000000000000001110111111
+01100000000000010100001010010110
+01011000000000000000001010110111
+01100000000000010100001010010000
+01011000000000000000001110111000
+01100000000000010100001010001100
+00100100010101011000001100110100
+00100000010101011000001110000000
+00100000010000000011110100111110
+01101000000000001100111010111010
+00100000001110100000001101011010
+00011111111000001111111111111111
+01100000000000001100111010111010
+01011000000000000011111110000000
+01100000000000010100111010101001
+00100000010000000000001100111101
+01101000000000001100111001010011
+00100100001110100000001101011010
+01101000000000001100111010111001
+00100100001110100000001101011010
+00100000010000000000001000001111
+01101000000000001100111001000101
+11000000001011010000001110010100
+00100000001101011000001110010010
+01101000000000001100001010000000
+01100000000000001100100111000011
+00100000010000000000010110010110
+01101000000000010100111001000001
+00011111111100001111111000000000
+01100000000000010100111001000001
+01101000000000010100111001000011
+00011111111100001111111000000000
+01100000000000010100111001000011
+00100000010000000000001110011111
+01101000000001000000100111000110
+00100100001110100000001101101101
+01101000000000010100101011010100
+00011111111100001111111000000000
+00100000001110100000001101101101
+01100000000000010100111001000011
+01110000010010001001011000101111
+01101000000000001100111001111000
+00100100001110100000001101110101
+00100000010000000000001010010011
+00100000010000000000001011101000
+00100000010000000000001011111111
+01110000100000101000000000000011
+00100000011000000000000000000000
+00100000010101011011110000101001
+11011001011000000000110100000000
+00110100011100110000001000000000
+00011100010000100111111000000000
+01100000000000011100111001111010
+01101000000000010100011100001011
+11000011100001011000000000000000
+11000011100000110000000000000000
+00100000010000000011110101100000
+00100000010000000000010010010011
+00100000001000000000001101111010
+00011100111000100111111000000000
+11000101100100110000001110001010
+00100000001110100000001110000101
+01110000010010011011100110111011
+00100000011000000000000000000000
+01110000010010011011100100000000
+01101000000000001100100110110111
+00100000011110100000000000000000
+01110000010010011011011100000000
+00100000001000000000001110000011
+00100000001110100000001110001101
+01110000010010011100000100000010
+00100000011000000000000000000000
+01101000000000001100100111000010
+00100000011110100000000000000000
+01110000010010011100001000000000
+01110000010010011100000100000001
+00100000011000000000000000000000
+01110000010010001001011000111100
+00100000001000000000001101101110
+00011100111000100111111000000000
+00100000001110100000001001110111
+00100000010000000101001100001101
+00100000010000000100001011101011
+01011000000000000000000000000000
+01100000000001000100000001000000
+01100000000000010100011100001011
+01100000000000010100100010011000
+01100000000000010100100010011010
+01110000010010001001011000111101
+00100000001000000000001101101110
+00100000010000000110001011000100
+01011000000000000000011111100010
+11011010001000000000100111000110
+11011000010000000000000000001100
+00100000010000000110001100001101
+00100000010000000110001011000111
+01101000000001000000100111000110
+00100000011110100000000000000000
+01101000000000001100001011001111
+11000010100000010000001110101010
+00100000011000000000000000000000
+01101000000010010000100111000110
+01101000000000010000100111001100
+00011000010000100010010000000000
+00011111111000100010001000000000
+10011000010001100010011000000000
+00011010010000100111111000000000
+10011010011001100111111000000000
+00011111111100001111111000000000
+01100000000000010100111001000001
+00011010011010111111111000000000
+10011010001000001111111000000000
+00011111111100001111111000000000
+01100000000000010100111001000011
+00100000011000000000000000000000
+01111000001101000111110000000000
+01101000000100100000000100111000
+01111001001101000111111000011010
+01100000000100100000000001001100
+00100000010000000011110011110100
+01110000000000001001111100000001
+00100000011000000000000000000000
+00011010011000100111111000000000
+00011111111000010111111011110000
+11000001001010000000000000000000
+00011010011000100111111000000000
+01100000000000001100100010010110
+00100000001000000000001011101000
+01110000010010010010011100000000
+01110000010010010011001001001110
+01101000000000100100100100110100
+01100000000000100100100101010000
+00100000001000000000010001011001
+01101000000010001100100100110011
+00100000010000000000001111010000
+00011000010000001000010000000001
+00011000010000010000010000000011
+01100000000010001100100100110011
+00100000011000000000000000000000
+01101000000000001100100101010000
+00011111111000010111111000000011
+00011111111011111010001000000100
+01011000000000000100100100111001
+10011010001000001111111000000000
+10011000010000001000110000000000
+11101000110000001000000000000000
+01100000000000001100100100110010
+00100000011000000000000000000000
+01110000010010011011000000000001
+01110000010010011011001000000000
+01101000000000001100100100101001
+00011111111000010111111000000111
+01100000000000001100100100101001
+00100000011000000000000000000000
+01101000000000001100100100101001
+01111001001000000111111000000100
+01100000000000001100100100101001
+01100000000000001100100011100100
+00100000011000000000000000000000
+01101000000000001100100100101001
+01111001001111111111111000000100
+01100000000000001100100100101001
+00100000011000000000000000000000
+00100000010000000000010110011101
+01101000000000001100100110110100
+11000000000000001000001111101101
+11000000000000010000001111110001
+00100000011000000000000000000000
+01110000010010011011001000000010
+01110000010010011011001100000000
+01110000010010011011000000000000
+00100000001000000000001111011011
+01110000010010011011000100000000
+00100000001000000000001111101110
+01101000000000010100100100101110
+00011111111000001111111000000001
+01100000000000010100100100101110
+11000010100001010000010100000010
+01101000000000001100100110110001
+11000000000000001000001111111100
+01110000010010011011000100000001
+01101000000000001100100110110001
+11000000100000001000001111011011
+01101000000000001100100110110101
+00011111111000001111111000000001
+01100000000000001100100110110101
+11000000000000100000010000000011
+00100000010000000000001111001010
+01110000010010010110111000000010
+00100000001000000000010011000011
+00100000010000000000010110011101
+01110000010010011011010100000000
+00100000001000000000001111011011
+01110000010010011011001000000010
+01110000010010011011000000000001
+01110000010010011011000100000000
+00100000001000000000001111011011
+01101000000000001100100110110100
+11000000000000011000010000000111
+01101000000000001100100100101001
+00101111111011000000000000000100
+00100000001000001000001111011001
+01101000000000001100100110110100
+11000000000000001000010000000110
+11000000000000010000010000000111
+00100000011000000000000000000000
+01101000000000001100100100111000
+11000001111111111000000000000000
+00100000010000000000010000011000
+00100100010101100000010000100000
+00100000011000000000000000000000
+01111000010101100111110000000000
+01101000000000001100100110110000
+11000001100000001000000000000000
+01101000000000001100100110110010
+11000001100000000000000000000000
+01110000010010011011010000000001
+01110000010010010110111000000100
+00100000001000000000001010110001
+01101000000000001100100110110010
+00100000001110100000010000101000
+00011111111000001111111111111111
+01100000000000001100100110110010
+01110000010010011011010000000010
+00100000010000000000001111001010
+01110000010010010110111000000100
+00100000011000000000000000000000
+01110000010010011011010000000011
+01101000000000001100100110110001
+00100100001110100000001111111010
+00100000010000000000001111001010
+01110000010010010110111000000010
+00100000011000000000000000000000
+01101000000000001100100100111000
+11000000111111111000011000000010
+00100000010000000000001010111011
+00100000001101000000010001000000
+01101000000000001100100010010111
+11000000100000110110010011000000
+01101000000000001100111010000000
+00100000010110100000010001111001
+01101000000000001100111010000000
+00100100010110100000010000111100
+00100000010000000000010001000101
+00100000010000000000010001100110
+01110000010010010010110100000001
+00100000011000000000000000000000
+01110000010011100111100100000000
+01110000010011100111100000000000
+01110000010010011011101000001010
+00100000011000000000000000000000
+01101000000000001100111001111000
+00100100001110100000010001000101
+01101000000000001100100100101101
+11000000000000001011000111010100
+00100000011000000000000000000000
+01101000000000001100100110111001
+01100000000000001100100110111000
+01101000000000001100100101110000
+00011111111000100010001000000000
+11011010010000000100100101110001
+01110000010010010101010000000000
+00100000010000000000001111011011
+01100000000000001100100110010000
+00011010001000001000010000000001
+11011000101000000100100110010001
+00011010001000100111001000000000
+00011010010000100000110000000000
+00100000010000000111111011001101
+11011010001000000100100110010000
+11000110100100111000000000000000
+01100000000010001100100100101000
+00011000010000100111001000000000
+11011000101000000100100011000100
+00011010001000100000110000000000
+00100000001000000111111011001101
+11011010001000000000000000000000
+11011111001000000000000000000100
+11011000110000000100100101010000
+11101000110000001000000000000000
+10011010001000001010001000000000
+11000010000000000000010001011100
+00011010001000100111111000000000
+01100000000000010100100110111011
+01101000000000001100100110111011
+01101000000010001100100110111100
+10011000010000001111111000000000
+01100000000000001100100110111101
+00100000011000000000000000000000
+01101000000000001100100100101000
+00011111111000001111111000000010
+01100000000000001100100100101010
+01101000000000001100100100101001
+01100000000000001100100011100100
+01101000000000001100100100101000
+00011111111010011111111000000000
+01101000000010001100100100100111
+00011000010000010000010000000011
+00011000010000111000010000000000
+10011000010000011111111000000000
+01101000000010001100100101100101
+10011000010000001111111000000000
+11100000101000001000000000000000
+01101000000000001100100100101000
+10011000000000000111001000000000
+11011000110000000100100011000100
+00100000001000000111111011001101
+00100000011000000000000000000000
+01101000000000001100001010111000
+00101111111011000000000000000010
+00100000001000001000010010000011
+01101000000000001100111001111001
+11000001000000101000000000000000
+00011111111000001111111000000001
+01100000000000001100111001111001
+11000001100000101000000000000000
+01110000010011100111100000000001
+00100000011000000000000000000000
+01101000000000001100111001111001
+11000001000010100000000000000000
+00011111111000001111111000000001
+01100000000000001100111001111001
+11000001100010100000000000000000
+01101000000000001100001010111000
+01111001001000000111111000000010
+01100000000000001100001010111000
+00100000001000000000010010000001
+01101000000000001100111001111001
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100000000000001100111001111001
+00100100011110100000000000000000
+01110000010011100111100000000000
+00100000011000000000000000000000
+01111001001000000000000000100111
+00100000010000000000001010111011
+00100000001101000000010010011000
+01101000000000001100100010010111
+11000000000000110000010010011110
+01101000000000001100111001111101
+11000000000000001000010010011101
+11000000000000010000010001111000
+11000000000000011000010010011101
+00100000011000000000000000000000
+00100000011000000000000000000000
+00100000011000000000000000000000
+00100000010000000011101111100010
+01101000000000011100001000001111
+00100000011110100000000000000000
+01101000000000001100000100110001
+00100000011110100000000000000000
+01101000000000001100111010000000
+11000000000000001000010010101000
+01011000000000000000000000000000
+01100000000001000000000010100000
+00100000010000000000010010111000
+11011001011000000000110100000000
+00110100011100110000001000000000
+01101000000010011100111001111010
+00011100010000100111111000000000
+10011000010001100111111000000000
+00011111111000010111111011111111
+11011000010000000000111010100110
+10011000010011111000010000000000
+01101000000000100100111001110100
+10011000010001100111111000000000
+00100000001000010011110001111111
+01101000000000001100001000011000
+00011111111000001111111000000001
+01100000000000100100000111111011
+00100000001000000011110010000110
+01011000000000010011110001101000
+01100000000000100100111001110100
+01101000000000001100111001111110
+00011111111000001111111000000001
+11000000100000101000010010111110
+01011000000000000000000000000000
+01100000000000001100111001111110
+11000100000000000000000000000000
+01011000000000010011000010110000
+01100000000000100100111001110100
+00100000011000000000000000000000
+01110000010010010011000100000000
+11011001011000000000110100000000
+00110100011100110000001000000000
+00100000010000000000010011011011
+01101000000000001100100101100101
+11000001000000001000000000000000
+00100100001011000000010011101010
+00100100001101111000010011101010
+00100000010000000000010100001001
+00100000010000000000010110011001
+01101000000000001100100100100111
+00011111111000001111111000000001
+01100000000000001100100100100111
+01101000000000001100100100111000
+11000000111111111000010011011001
+00100000010000000000010000001010
+01011000000000000000000000000000
+01100000000000010100100100101110
+01100000000000001100100100110000
+01100000000000001100100110110011
+01110000010010010010110100000000
+00100000011000000000000000000000
+00100000010000000000010110010110
+00100000001000000000011000011101
+01111000010101111111110000000000
+00100000010000000000010100101001
+01101000000000001100100101100101
+11000000000000001000010011101000
+00011000000000000010101000000000
+01101000000000100100100101010000
+10011000000000000001001000000000
+01101000000010001000000000010111
+00100000010000000011100110111001
+00100000010000000011100110111111
+00100000010000000000010101010011
+00100000010101111000010110010010
+00100000011000000000000000000000
+00100000010000000000010110010010
+00100000001000000000010011001101
+01101000000000001100100100110000
+00011111111000001111111000000001
+01100000000000001100100100110000
+01101000000000001100100100111000
+11000000111111111000010011111110
+01101000000010001100100100110001
+00011000010000001000010000000001
+01100000000010001100100100110001
+01101000000000001100100101101110
+10011000010001100111111000000000
+00100100001110100000010011000100
+01101000000000001100100110110100
+11000000000000011000001111110011
+01101000000000001100100110110011
+00011111111000001111111000000001
+01100000000000001100100110110011
+11000000000000010000001111101000
+00100000010000000000001111011111
+01110000010010010110111000000001
+00100000001000000000010011000011
+01101000000000001100100100110000
+11000001111111111000000000000000
+01110000010010010011000000000000
+00100000001000000000010100000111
+01011000000000000000000000000000
+01100000000000010100100100101110
+01110000010000010011000100000000
+01110000010011100111100100000000
+01110000010011100111100000000000
+01110000010010001001011000111011
+00100000001000000000001011101000
+00100000010000000000010100010000
+01101000000000001100100100100110
+00100000011110100000000000000000
+10011000000000000111001000000000
+11011000110000000100100010100100
+11011000101000000100100100000110
+00100000001000000111111011001101
+01101000000000001100100010100011
+00011111111010010111111000000000
+01100000000000001100100100100110
+00011111111000001111111000000001
+11011000110000000100100010100011
+10011000110000001000110000000000
+11101000110000011000000000000000
+01100000000000011100100101100110
+01101000000000001100100010100011
+00011111111000110111111000000000
+00011111111000010111111000000011
+01100000000000001100100101101100
+00100000011000000000000000000000
+01111000010001001111110000000000
+01111000010000111111110000000000
+01011000010101010101010101010101
+10011000000000000001111000000000
+01101000000000001100100100110010
+00011111111011011000010000000000
+01111001001000000000010000000001
+00011000010000110001110000000000
+00100000011000000000000000000000
+00100000010000000011100110110001
+01101000000010001100100100110010
+00100000001000000011100111001001
+00100000010000000100100101110110
+01101000000000100100100101010000
+10011000000000000001001000000000
+00100000010000000000010100011101
+00100000010000000000010100100110
+01111001001000000010101000000000
+01111000001011101111110000000000
+01111000001100000111110000000000
+01111000010100001111110000000000
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011111111000000000
+00001000000000001000011000101000
+01111000010011101111110000000000
+01111000001011011111110000000000
+01111000001000111111110000000000
+01111000001001001111110000000000
+01101000000000001100100110111101
+00001000000000001000011000001000
+01101000000000001100100100101010
+10011000000000000111001000000000
+11011000110000000100100011100100
+11101000110000001000000000000000
+00001000000000001000011000001000
+11000010000000000000010100111111
+01111000001001000111110000000000
+00001000000000001000011000011000
+01111000010001000111110000000000
+00110111110100111000001000000000
+00100000000000000000000001100100
+01111000010011101111110000000000
+01111000010011011111110000000000
+00100000011000000000000000000000
+00100000010000000100100101110110
+01101000000000100100100101010000
+10011000000000000001001000000000
+00100000010000000011100110110001
+01101000000010001100100100110010
+00100000010000000011100110111001
+01011000000000000000010100000000
+00100000010000000011101100110101
+00100000010000000011100110111111
+00100000010000000000010100011101
+01111000010101111111110000000000
+01111000001001101111110000000000
+01111000001100001111110000000000
+01111000010100000111110000000000
+01111000001010000111110000000000
+01101000000000010100100100101011
+10011000000000000011011000000000
+00110111110000011000010000000000
+00100100001011000000010110010101
+01111000010001101111110000000000
+01111000001001011111110000000000
+01111000001000111111110000000000
+01111000001001001111110000000000
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100000000000001100100110111110
+00100000010000000000010001011001
+01101000000010001100100110111110
+10011000010001100111110000000000
+00100100001000101000010110010010
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100000000000001100100010100010
+01101000000000001100100101101111
+00011111111001100111110000000010
+00100000001000101000010101110010
+01101000000000001100100010100010
+01101000000010001100100100101001
+10101000010000000000111000000000
+00100100001000001000010110010010
+00001001100000000000000000001000
+00011001100010010111111000000000
+11100000101000001000000000000000
+00011111111010010111111000000000
+00011111111000010111001000011111
+00100000001000101000010101111100
+00001001100000000000000000001000
+00011001100010010111111000000000
+11100000101000001000000000000000
+11000010000000000000010101111000
+00011000101000100010001000000000
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100000000000001100100111001111
+00011010001000100000101000000000
+00001001100000000000000000011000
+01111000001010000111110000000000
+11011011011000000000011001100100
+00011111111011110111111000000000
+00011111111100010111111000000000
+11100000101000011000000000000000
+01111000010001011111110000000000
+00100000001000110000010110010010
+01111000001101111111110000000000
+01101000000000001000000000010111
+00011111111000001010001000000000
+00100000010000000011101000010011
+01111000010001101111110000000000
+00100000010000000011100110110001
+01101000000000001100100111001111
+00011111111000100010001000000000
+00100000001000000000010111100101
+01111000010011011111110000000000
+01111000010001011111110000000000
+00100000001000000011011011000110
+00100000001000000000010110010010
+01110000010010011100010000000001
+01110000010010011100010100000000
+00100000011000000000000000000000
+01101000000000001100100111000101
+00011111111000001111111000000001
+01100000000000001100100111000101
+00100000011000000000000000000000
+01101000000000001100100111000101
+00011111111001100111110000000001
+00100100010000010000010110100101
+01101000000000001100100111000101
+11000001000000000000000000000000
+00011111111000001111111111111111
+01100000000000001100100111000101
+00100000011000000000000000000000
+01110000010010011100010100000010
+00100000011000000000000000000000
+11011010001000000100100111000110
+00100000010000000000010111101110
+01100000000010001100100111010000
+00101000000011111111111000100110
+00100000010000001000010110110101
+00100100010000001000010110111001
+10011000010001100111110000000000
+00100100001000010000010111010010
+01101000000000001100100111000101
+00011111111001100111110000000001
+00100100001000010000010110111101
+01101000000000001100100111000101
+11000000000000000000010111010010
+00100000011000000000000000000000
+01011000000000000000000010000010
+00100000011000000000000000000000
+01011000000000000000000001110111
+00100000011000000000000000000000
+01011000000000000000000010000000
+00100000011000000000000000000000
+01011000000000000000000001110101
+00100000011000000000000000000000
+01101000000000001100100111000101
+11000001101000110000000000000000
+01110000010010011100010100000000
+01101000000010001100100111010000
+00101000000011111111111000100110
+00100000010000001000010110110111
+00100100010000001000010110111011
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101000000000001100100111000100
+11000000000000000000010111011110
+00011111111000001111111111111111
+01100000000000001100100111000100
+11000000000000000000010111011110
+01110000100010010101010111010000
+01110000100010010101011011100000
+01110000100010010101011101001100
+01110000100010010101100001101100
+01110000100010010101100101010000
+01110000010000101000000000000001
+00100000011000000000000000000000
+01101000000000001100100111000100
+11000000000000010000010111010111
+00011111111000001111111000000001
+01100000000000001100100111000100
+11000000000000001000010111001011
+01110000100010010101010111010000
+01110000100010010101011011100000
+01110000100010010101011101001100
+01110000100010010101100000111100
+01110000100010010101100100010000
+01110000010000101000000000000100
+00100000011000000000000000000000
+01110000100010010101010111010000
+01110000100010010101011011000000
+01110000100010010101011101001100
+01110000100010010101100001101100
+01110000100010010101100101010000
+01110000010000101000000000010000
+00100000011000000000000000000000
+01101000000010001100100111001110
+01011000000000000100100111000110
+10011000010000001000101000000000
+00011010001000100111111000000000
+11100000101000001000000000000000
+00011000010000001000010000000001
+00011000010000010000010000000111
+01100000000010001100100111001110
+00100000011000000000000000000000
+11011000010000000000000000000000
+11011111001000000000000000001000
+00011010001000100000110000000000
+11101000110000001000000000000000
+10011000010000001000010000000000
+11000010000000000000010111110001
+00011000010010010111111000000000
+00011111111000100000010000000000
+11000110100100110000000000000000
+00011111111001101111110000001010
+00100000010000000111111101010011
+00011000000001111111111000000000
+00011111111100100111111000000000
+00011000000001110000010000000000
+10011000010000011000010000000000
+00100000011000000000000000000000
+01111001001000000000000000100110
+00100000010000000000001111000101
+01110000010010010011100000000001
+00100000011000000000000000000000
+01101000000000001100100100101101
+11000000000000001011000111010100
+01101000000000001100100100111000
+11000000000000001000011000001001
+11000000000000010000011000001100
+11000000000000011000011000001111
+00100000001000000011101100110001
+01110000010010010011100000010001
+01110000010010011001000010101010
+00100000001000000000011000010001
+01110000010010010011100000010010
+01110000010010011001000001010101
+00100000001000000000011000010001
+01110000010010010011100000010011
+01110000010010011001000000100010
+01101000000000001100100100101001
+00011111111000010111111000000111
+01100000000000001100100110010001
+01101000000000100100100101100000
+01100000000000100100100110010010
+01110000010010011001011000000000
+11011010001000000100100110010000
+11011000010000000000000000000111
+00100000010000000000010001010011
+00100000010000000000010001100110
+00100000010000000000010000111010
+00100000001000000011000111010100
+01101000000000001100100100111000
+11000001011111111000000000000000
+11000000000010001000011000100011
+11000000000010010000011000100101
+11000000000010011000011000100111
+00100000011000000000000000000000
+01110000010010010011100000000010
+00100000001000000000010011010011
+01110000010010010011100000000011
+00100000001000000000010011010011
+01110000010010010011100011111111
+01110000010010001001011000111001
+00100000010000000000001011101000
+01101000000000100100100100001000
+00100000010000000000001111001000
+00100000001000000000010011010011
+01111001001111111000000000100110
+00100000010000000000001111001010
+01101000000000100100100101010000
+00100000010000000000010001011001
+01101000000000001100100100111000
+11000001111111111000000000000000
+00100000010000000000011001000011
+01011000000000000000000000000000
+01100000000000010100100101010110
+00100000000000000000011111010000
+01101000000000001100100101010110
+11000000011111111000010100000111
+00100000010000000000010011011011
+00100100001011000000011001001101
+00100100001101111000011001001101
+01110000010000010011000100000001
+01111001001000000000000000100110
+01011000000000000000000000000000
+01100000000000010100100101010110
+01110000000010011011110100111010
+00100000010000000111110110000110
+00100000001000000111111000001101
+01111001001000000000000000100111
+01110000010010011001000011111111
+01101000000000001100100100101001
+01100000000000001100100110010001
+01101000000000100100100101100000
+01100000000000100100100110010010
+11011000010000000000000000000110
+11011010001000000100100110010000
+00100000010000000000010001010011
+00100000001000000000010001100110
+01101000000000010100100101010110
+00011111111000001111111000000001
+01100000000000010100100101010110
+00100000010000000000001111001010
+00100000001000000000011000110110
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/eeprom.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/eeprom.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/eeprom.dat	(working copy)
@@ -0,0 +1,7612 @@
+00
+02
+aa
+55
+4a
+19
+c5
+12
+80
+11
+c0
+00
+00
+26
+c0
+01
+80
+31
+c0
+43
+00
+36
+c0
+45
+00
+40
+c0
+45
+80
+62
+c0
+53
+80
+6e
+c0
+54
+00
+75
+c0
+54
+80
+89
+c0
+56
+00
+9c
+c0
+5a
+03
+41
+c0
+5a
+80
+b5
+c0
+5b
+00
+bc
+c0
+5b
+80
+de
+c0
+5c
+82
+26
+c0
+5d
+02
+2a
+20
+20
+3b
+34
+c0
+02
+81
+18
+c0
+0b
+01
+1d
+c0
+0d
+81
+21
+c0
+11
+81
+24
+c0
+17
+81
+48
+c0
+18
+81
+5d
+c0
+19
+01
+6f
+c0
+19
+81
+82
+c0
+1c
+81
+93
+c0
+1e
+01
+a0
+c0
+1e
+81
+b3
+c0
+1f
+01
+b9
+c0
+1f
+81
+d2
+c0
+21
+01
+f0
+c0
+26
+81
+f5
+c0
+4a
+82
+32
+c0
+79
+82
+39
+c0
+7b
+82
+45
+c0
+7c
+02
+6f
+c0
+7c
+82
+75
+20
+20
+3b
+34
+20
+80
+00
+00
+24
+35
+b0
+04
+68
+00
+c5
+95
+24
+3a
+00
+2f
+68
+00
+ce
+78
+20
+3a
+30
+04
+70
+4e
+7f
+00
+c5
+93
+30
+04
+24
+35
+b0
+04
+70
+82
+80
+03
+20
+20
+30
+04
+20
+40
+02
+7f
+20
+40
+02
+bb
+68
+00
+ce
+78
+24
+3a
+03
+7a
+20
+20
+30
+1b
+20
+30
+b9
+a3
+70
+89
+55
+d4
+20
+00
+00
+04
+70
+89
+55
+d2
+20
+00
+00
+04
+70
+89
+55
+d1
+20
+00
+00
+04
+68
+00
+c2
+80
+c0
+0a
+39
+ae
+20
+20
+39
+9c
+60
+08
+80
+17
+18
+40
+a2
+00
+20
+40
+3a
+13
+58
+00
+05
+00
+20
+40
+3b
+35
+70
+89
+06
+01
+70
+89
+00
+3c
+70
+89
+01
+e0
+70
+89
+6d
+12
+20
+00
+00
+0a
+70
+89
+02
+01
+70
+89
+02
+3d
+20
+00
+00
+0a
+70
+89
+03
+b7
+20
+00
+00
+0a
+70
+89
+02
+7f
+68
+00
+c2
+80
+c0
+0a
+00
+5f
+c2
+80
+80
+59
+c2
+81
+00
+59
+70
+89
+4c
+5b
+70
+89
+4d
+96
+70
+89
+4e
+2c
+70
+89
+4f
+46
+20
+20
+00
+5d
+70
+89
+4c
+fb
+70
+89
+4d
+ef
+70
+89
+4e
+ec
+70
+89
+4f
+5e
+68
+00
+c2
+80
+20
+20
+39
+dc
+70
+89
+56
+c2
+70
+89
+55
+d0
+20
+60
+00
+00
+20
+40
+3c
+d2
+20
+40
+3a
+5f
+70
+80
+42
+06
+68
+10
+89
+68
+79
+20
+7e
+07
+60
+10
+89
+68
+79
+3f
+fe
+07
+60
+10
+89
+68
+79
+20
+7e
+07
+60
+10
+89
+68
+70
+80
+42
+05
+20
+20
+3a
+0c
+20
+40
+3c
+2b
+68
+00
+ce
+45
+20
+7a
+00
+00
+70
+4e
+45
+00
+1c
+42
+7e
+00
+60
+02
+48
+9e
+20
+60
+00
+00
+c6
+13
+00
+00
+20
+40
+3b
+e2
+68
+01
+c2
+0f
+20
+7a
+00
+00
+68
+01
+40
+42
+d8
+40
+ff
+ff
+98
+46
+7c
+00
+20
+62
+80
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+20
+40
+48
+16
+24
+7a
+00
+00
+20
+40
+3d
+0e
+24
+7a
+00
+00
+20
+40
+3a
+7b
+68
+00
+c6
+e2
+20
+3a
+3c
+5e
+68
+00
+c6
+39
+20
+7a
+00
+00
+20
+20
+3c
+5e
+68
+00
+c5
+95
+20
+3a
+00
+96
+68
+00
+80
+9f
+24
+3a
+00
+96
+68
+00
+ce
+83
+68
+08
+ce
+84
+98
+46
+7c
+00
+24
+62
+80
+00
+68
+00
+ce
+81
+24
+7a
+00
+00
+58
+00
+00
+00
+60
+04
+00
+a0
+20
+20
+3c
+6a
+20
+40
+00
+a1
+24
+74
+00
+00
+68
+00
+8b
+2b
+24
+7a
+00
+00
+70
+49
+c1
+00
+20
+20
+3c
+6a
+20
+40
+00
+a1
+24
+74
+00
+00
+68
+00
+8b
+2b
+24
+7a
+00
+00
+20
+20
+3c
+8c
+20
+40
+00
+ac
+24
+74
+00
+00
+20
+40
+00
+a9
+24
+74
+00
+00
+70
+0b
+2b
+01
+70
+0b
+2a
+01
+20
+40
+00
+b1
+20
+20
+00
+ac
+68
+01
+48
+2c
+68
+09
+48
+2e
+20
+20
+00
+ae
+68
+01
+47
+c4
+68
+09
+47
+c6
+98
+46
+7c
+00
+20
+22
+e4
+c0
+20
+20
+31
+d4
+68
+00
+8b
+2a
+20
+00
+00
+0a
+c0
+80
+00
+b1
+20
+60
+00
+00
+70
+00
+16
+27
+70
+01
+50
+00
+70
+01
+7e
+00
+70
+01
+7f
+00
+58
+00
+00
+00
+60
+02
+88
+d2
+20
+60
+00
+00
+da
+20
+46
+f0
+20
+40
+7f
+95
+20
+7a
+00
+00
+1f
+e2
+26
+00
+20
+40
+00
+c2
+20
+20
+3d
+9b
+c1
+0c
+00
+00
+c0
+0a
+00
+c7
+c0
+0a
+80
+d1
+c0
+14
+80
+dc
+20
+20
+3d
+73
+70
+4e
+83
+00
+70
+42
+12
+00
+70
+4e
+bb
+00
+70
+4e
+51
+14
+20
+40
+3e
+61
+20
+40
+3e
+59
+20
+40
+3e
+7f
+20
+40
+3e
+20
+70
+4e
+b9
+01
+20
+20
+3d
+c2
+70
+4e
+a4
+00
+20
+40
+02
+fc
+70
+44
+b2
+00
+70
+42
+12
+00
+70
+4e
+bb
+00
+70
+4e
+51
+00
+70
+45
+6a
+00
+68
+09
+4e
+4e
+60
+09
+44
+f8
+20
+40
+52
+a0
+20
+20
+3d
+c6
+20
+40
+01
+06
+20
+20
+7e
+3b
+60
+08
+82
+4e
+68
+00
+c8
+9c
+1f
+e0
+fe
+01
+60
+00
+c8
+9c
+68
+00
+82
+4e
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+82
+4e
+20
+40
+01
+09
+20
+40
+00
+ec
+20
+40
+01
+12
+20
+40
+00
+f8
+20
+40
+00
+ff
+20
+20
+00
+e2
+68
+00
+ce
+bb
+20
+7a
+00
+00
+68
+00
+c2
+12
+2f
+e1
+fe
+20
+24
+40
+80
+f6
+68
+00
+c1
+31
+20
+5a
+00
+f4
+20
+60
+00
+00
+70
+41
+31
+01
+20
+60
+00
+00
+70
+42
+12
+20
+20
+60
+00
+00
+68
+00
+c9
+ba
+20
+7a
+00
+00
+70
+4e
+80
+00
+1f
+e0
+ff
+ff
+60
+00
+c9
+ba
+24
+7a
+00
+00
+20
+60
+00
+00
+68
+00
+ce
+82
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+82
+24
+7a
+00
+00
+70
+4e
+81
+00
+20
+60
+00
+00
+20
+40
+3e
+7f
+70
+09
+bd
+12
+20
+20
+7d
+90
+68
+00
+ce
+51
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+51
+24
+7a
+00
+00
+70
+42
+12
+20
+70
+41
+31
+01
+70
+4e
+bb
+01
+20
+60
+00
+00
+68
+00
+ce
+52
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+52
+24
+7a
+00
+00
+20
+20
+3e
+6d
+20
+40
+49
+68
+20
+40
+4b
+51
+20
+40
+4b
+d8
+20
+40
+05
+a7
+20
+20
+49
+45
+20
+40
+3a
+50
+1f
+e2
+22
+00
+20
+40
+05
+e5
+20
+20
+4a
+3d
+68
+02
+4e
+48
+60
+02
+45
+96
+20
+20
+4a
+8c
+70
+41
+31
+01
+68
+01
+03
+7c
+68
+09
+03
+82
+98
+46
+7e
+00
+60
+01
+09
+be
+68
+00
+83
+62
+79
+3f
+fe
+05
+79
+3f
+fe
+03
+60
+00
+83
+62
+68
+02
+03
+66
+68
+09
+03
+64
+60
+09
+09
+c6
+98
+46
+22
+00
+68
+00
+c4
+5b
+60
+00
+83
+8d
+e8
+c9
+00
+00
+e8
+c1
+00
+00
+1f
+eb
+fe
+00
+60
+01
+03
+64
+18
+4b
+84
+00
+98
+40
+fe
+00
+e8
+ca
+00
+00
+60
+0a
+03
+8e
+9a
+20
+fe
+00
+1f
+e2
+28
+00
+68
+01
+03
+64
+68
+09
+09
+c6
+98
+46
+7e
+00
+68
+09
+09
+be
+98
+4f
+fe
+00
+9a
+80
+fe
+00
+60
+02
+03
+66
+20
+40
+51
+99
+68
+01
+03
+90
+60
+01
+45
+61
+20
+60
+00
+00
+68
+00
+83
+79
+c2
+82
+81
+59
+20
+40
+05
+99
+70
+4e
+62
+00
+68
+00
+ce
+20
+24
+3a
+01
+53
+68
+00
+ce
+a5
+c0
+00
+81
+57
+68
+00
+83
+03
+20
+3a
+4b
+de
+20
+20
+4f
+87
+68
+00
+ce
+20
+1f
+e0
+ff
+ff
+60
+00
+ce
+20
+20
+20
+4f
+87
+70
+4e
+20
+03
+20
+20
+4b
+de
+68
+00
+ce
+62
+1f
+e0
+fe
+01
+60
+00
+ce
+62
+20
+20
+05
+9d
+68
+00
+c4
+67
+c0
+03
+01
+61
+c0
+01
+01
+68
+20
+20
+4b
+fb
+68
+00
+ce
+53
+c0
+00
+81
+65
+20
+40
+3e
+6d
+20
+20
+4c
+86
+20
+40
+01
+06
+70
+4e
+52
+03
+20
+20
+4c
+90
+58
+00
+00
+13
+e0
+a0
+80
+00
+20
+40
+4c
+58
+58
+00
+00
+0a
+60
+01
+03
+90
+60
+01
+45
+61
+20
+60
+00
+00
+68
+00
+c4
+6b
+c0
+01
+01
+76
+c0
+03
+01
+7d
+c0
+03
+81
+74
+20
+20
+4c
+18
+70
+4e
+a5
+00
+20
+20
+4d
+17
+59
+00
+03
+02
+60
+01
+c4
+dc
+58
+00
+00
+01
+e0
+a0
+80
+00
+58
+01
+00
+10
+e0
+a1
+80
+00
+20
+20
+4c
+cd
+70
+09
+bd
+29
+20
+40
+7d
+86
+70
+09
+bd
+47
+20
+40
+4b
+d6
+20
+20
+4d
+01
+68
+00
+c4
+6b
+c0
+0d
+81
+86
+c0
+0e
+81
+86
+20
+20
+4c
+2b
+68
+09
+4e
+4e
+60
+09
+44
+6c
+68
+00
+ce
+86
+1f
+e0
+84
+01
+18
+41
+04
+03
+60
+08
+ce
+86
+1f
+ef
+fe
+07
+d8
+c0
+4e
+87
+98
+c0
+8c
+00
+e8
+c3
+80
+00
+60
+03
+c4
+6e
+d8
+40
+00
+0e
+20
+20
+4f
+89
+60
+08
+c4
+66
+28
+20
+06
+02
+24
+20
+81
+98
+18
+40
+ff
+fc
+60
+01
+44
+67
+68
+08
+83
+79
+20
+40
+01
+9b
+20
+20
+4f
+92
+68
+00
+ce
+a5
+c0
+00
+81
+9e
+20
+20
+4b
+d0
+58
+00
+00
+00
+20
+60
+00
+00
+1a
+62
+7e
+00
+c0
+00
+01
+a6
+c0
+01
+01
+a9
+c0
+01
+81
+ad
+c0
+05
+01
+b1
+20
+20
+4f
+b9
+70
+41
+31
+00
+70
+4e
+51
+3c
+20
+20
+50
+1f
+20
+40
+50
+33
+58
+00
+00
+00
+60
+04
+45
+44
+20
+60
+00
+00
+20
+40
+50
+39
+68
+00
+c5
+6a
+c1
+01
+00
+00
+20
+20
+64
+18
+70
+09
+bd
+2b
+20
+20
+4b
+d6
+e8
+c0
+80
+00
+c0
+00
+81
+b6
+20
+20
+4f
+fe
+70
+4e
+a5
+01
+70
+4e
+20
+03
+20
+20
+50
+69
+e8
+c1
+80
+00
+60
+01
+83
+9a
+c0
+09
+01
+bd
+20
+20
+50
+11
+70
+41
+31
+01
+20
+40
+01
+c9
+68
+00
+83
+9b
+1f
+e6
+7c
+60
+20
+22
+81
+ce
+70
+4e
+a6
+00
+20
+40
+51
+25
+24
+62
+80
+00
+68
+00
+ce
+a6
+24
+5a
+01
+d0
+70
+09
+bd
+13
+20
+20
+4b
+d6
+68
+00
+83
+03
+1f
+e0
+ff
+f9
+1f
+e2
+72
+00
+1f
+22
+24
+00
+20
+20
+51
+35
+70
+4e
+a6
+01
+20
+20
+01
+c3
+70
+09
+bd
+29
+20
+20
+7d
+86
+68
+00
+c3
+ff
+20
+7a
+00
+00
+d8
+e0
+00
+01
+20
+40
+7e
+e2
+24
+7a
+00
+00
+78
+54
+fc
+00
+78
+28
+7c
+00
+20
+40
+4b
+1e
+20
+40
+49
+d4
+20
+40
+4a
+8a
+24
+36
+81
+e4
+68
+00
+80
+03
+1f
+e0
+fe
+01
+60
+00
+80
+03
+68
+00
+83
+02
+1f
+e1
+7e
+0f
+c0
+01
+81
+ee
+c0
+02
+d1
+af
+68
+00
+80
+16
+c0
+93
+d1
+7d
+18
+0a
+7e
+00
+d8
+40
+01
+ff
+98
+41
+7e
+00
+1f
+e0
+fe
+fa
+1f
+e0
+ff
+ff
+20
+00
+00
+26
+24
+3a
+01
+ea
+20
+20
+51
+96
+20
+40
+4a
+c5
+20
+20
+01
+e4
+68
+02
+45
+96
+d8
+40
+ea
+60
+98
+40
+fe
+00
+60
+02
+45
+96
+20
+20
+51
+a9
+78
+55
+fc
+00
+20
+37
+01
+f8
+24
+36
+82
+07
+20
+40
+3c
+b7
+68
+01
+41
+61
+60
+01
+03
+70
+68
+00
+83
+02
+2f
+e0
+06
+01
+24
+20
+bc
+cb
+68
+00
+c4
+65
+2f
+e0
+06
+01
+24
+20
+bc
+cb
+20
+40
+4b
+d0
+24
+3a
+3c
+cb
+68
+00
+ce
+62
+1f
+e6
+7c
+01
+24
+21
+3c
+cb
+20
+20
+52
+97
+68
+09
+41
+61
+68
+01
+4e
+60
+98
+40
+84
+00
+18
+43
+04
+00
+68
+01
+03
+70
+98
+40
+fe
+00
+60
+01
+03
+70
+20
+20
+3c
+c3
+20
+40
+02
+1d
+df
+20
+00
+03
+d8
+c0
+4e
+ad
+58
+00
+ff
+ff
+20
+40
+02
+21
+24
+62
+80
+00
+68
+00
+ce
+a8
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+a8
+20
+40
+02
+2a
+20
+62
+80
+00
+70
+4e
+a7
+01
+20
+60
+00
+00
+d8
+40
+00
+0c
+da
+20
+4e
+ad
+68
+01
+4e
+ab
+20
+20
+62
+4a
+e8
+c9
+00
+00
+98
+46
+7c
+00
+24
+62
+80
+00
+c2
+00
+02
+21
+20
+60
+00
+00
+d8
+40
+00
+02
+da
+20
+09
+ce
+da
+40
+00
+30
+20
+20
+62
+6f
+d8
+40
+00
+02
+da
+20
+09
+be
+da
+40
+00
+30
+20
+40
+62
+45
+68
+01
+09
+be
+d8
+40
+aa
+55
+98
+46
+7c
+00
+20
+60
+00
+00
+68
+12
+00
+78
+68
+1a
+00
+7c
+98
+41
+fe
+00
+1f
+e4
+7e
+00
+9a
+21
+7e
+00
+60
+12
+00
+70
+20
+60
+00
+00
+1a
+22
+7e
+00
+20
+7a
+00
+00
+18
+40
+85
+60
+18
+40
+85
+60
+79
+3f
+84
+1c
+60
+0a
+47
+03
+1f
+e2
+04
+00
+da
+20
+46
+f0
+20
+40
+7f
+a6
+24
+7a
+00
+00
+18
+42
+7e
+00
+20
+20
+7d
+7d
+20
+40
+7d
+80
+da
+20
+46
+f8
+20
+40
+7f
+95
+1f
+e2
+04
+00
+20
+40
+7d
+84
+18
+42
+7e
+00
+20
+7a
+00
+00
+c0
+06
+82
+4f
+c0
+13
+82
+5e
+20
+20
+7d
+b3
+79
+3f
+80
+26
+70
+41
+31
+00
+18
+0a
+7e
+00
+60
+00
+c5
+3e
+58
+26
+10
+0e
+60
+01
+c5
+41
+70
+4e
+53
+00
+68
+09
+4e
+4e
+60
+09
+44
+f8
+20
+40
+52
+a0
+da
+40
+00
+05
+20
+40
+02
+68
+1a
+42
+7e
+00
+e0
+c0
+80
+00
+20
+20
+7e
+07
+79
+3f
+80
+26
+70
+41
+31
+00
+70
+4e
+53
+01
+68
+09
+4e
+4e
+20
+40
+4f
+6a
+1a
+22
+0a
+00
+58
+00
+00
+01
+e0
+a0
+80
+00
+da
+40
+00
+04
+20
+20
+02
+5a
+da
+20
+44
+01
+ea
+20
+80
+00
+20
+7a
+00
+00
+98
+c0
+a2
+00
+e8
+c0
+80
+00
+c1
+00
+80
+00
+20
+20
+02
+69
+20
+40
+58
+c5
+24
+3a
+7d
+e5
+68
+00
+89
+bd
+c5
+84
+fd
+e0
+c0
+0f
+82
+95
+20
+20
+7d
+d0
+70
+0b
+2a
+03
+20
+40
+00
+b1
+70
+4e
+45
+5a
+20
+40
+3c
+fc
+68
+12
+01
+38
+79
+3f
+fe
+0f
+60
+12
+00
+4c
+20
+40
+3c
+f4
+d8
+5f
+ff
+ff
+20
+20
+3c
+11
+68
+0a
+48
+9e
+1c
+42
+7e
+00
+98
+46
+7e
+00
+d8
+40
+06
+40
+98
+46
+fc
+00
+20
+40
+7f
+53
+18
+07
+fe
+00
+20
+7a
+00
+00
+1c
+42
+04
+00
+60
+0a
+48
+9e
+68
+09
+48
+98
+18
+50
+84
+00
+98
+40
+fe
+00
+1f
+f0
+fe
+00
+60
+01
+48
+98
+1f
+f0
+fe
+00
+1f
+e1
+7e
+03
+c1
+80
+00
+00
+20
+40
+02
+b3
+24
+76
+00
+00
+68
+00
+c2
+cf
+c2
+81
+02
+96
+20
+60
+00
+00
+68
+10
+80
+78
+79
+3f
+fe
+05
+60
+10
+80
+78
+70
+89
+71
+8f
+68
+00
+c2
+d0
+60
+10
+89
+73
+20
+40
+02
+a1
+68
+10
+80
+78
+79
+20
+7e
+05
+60
+10
+80
+78
+20
+60
+00
+00
+68
+10
+80
+53
+79
+20
+7e
+07
+60
+10
+80
+53
+68
+10
+89
+73
+1f
+e1
+fe
+30
+60
+10
+89
+73
+70
+89
+06
+7c
+70
+89
+72
+aa
+20
+00
+13
+88
+68
+19
+01
+50
+68
+10
+80
+53
+79
+3f
+fe
+07
+60
+10
+80
+53
+18
+50
+84
+00
+60
+09
+42
+d1
+20
+60
+00
+00
+78
+36
+7c
+00
+20
+60
+00
+00
+78
+56
+7c
+00
+20
+40
+4b
+d0
+20
+5a
+02
+b1
+20
+60
+00
+00
+70
+4e
+a3
+01
+20
+40
+02
+bb
+70
+4e
+a3
+00
+20
+60
+00
+00
+20
+40
+00
+ac
+20
+74
+00
+00
+1f
+f0
+fe
+00
+1f
+e2
+0c
+00
+20
+40
+02
+e0
+60
+00
+c8
+97
+c0
+00
+82
+cb
+1f
+e2
+04
+00
+18
+c2
+22
+00
+68
+00
+c0
+40
+c3
+00
+02
+d5
+1a
+22
+0c
+00
+c6
+84
+80
+00
+18
+42
+7e
+00
+c0
+02
+83
+0e
+20
+20
+3b
+31
+20
+40
+02
+e0
+20
+40
+02
+e0
+60
+00
+89
+bd
+20
+40
+02
+d0
+20
+20
+7d
+90
+20
+40
+02
+e3
+18
+c2
+04
+00
+18
+50
+84
+00
+60
+09
+47
+c4
+20
+60
+00
+00
+1a
+22
+0c
+00
+d8
+a0
+00
+f5
+20
+20
+02
+d8
+20
+40
+02
+e0
+1f
+e2
+72
+00
+20
+40
+02
+dc
+20
+20
+02
+d0
+20
+40
+02
+e0
+e0
+a0
+80
+00
+c2
+00
+02
+dc
+20
+60
+00
+00
+20
+40
+02
+e3
+e8
+c0
+80
+00
+20
+60
+00
+00
+58
+00
+47
+c4
+98
+c6
+7c
+00
+24
+62
+80
+00
+d8
+c0
+47
+2e
+20
+60
+00
+00
+df
+20
+00
+03
+d8
+c0
+48
+94
+18
+c2
+22
+00
+68
+01
+48
+2e
+1f
+f0
+fe
+00
+1f
+e2
+0a
+00
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+e0
+a0
+80
+00
+20
+40
+02
+f7
+c2
+00
+02
+ef
+18
+a2
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+48
+2e
+20
+60
+00
+00
+58
+00
+48
+2c
+98
+a6
+7c
+00
+24
+62
+80
+00
+d8
+a0
+47
+c8
+20
+60
+00
+00
+58
+00
+00
+00
+60
+01
+ce
+85
+20
+60
+00
+00
+c6
+13
+00
+00
+68
+00
+c5
+95
+20
+7a
+00
+00
+20
+40
+00
+ac
+20
+74
+00
+00
+1f
+f0
+fe
+00
+1f
+e2
+0c
+00
+20
+40
+02
+e0
+60
+00
+c8
+97
+18
+c2
+22
+00
+c0
+82
+82
+d5
+18
+c2
+24
+00
+20
+40
+4b
+d4
+24
+7a
+00
+00
+20
+20
+03
+13
+18
+c2
+24
+00
+68
+00
+ce
+a3
+20
+7a
+00
+00
+20
+40
+4b
+d0
+24
+7a
+00
+00
+68
+09
+4e
+4e
+20
+40
+4f
+6a
+c4
+00
+00
+00
+68
+00
+c5
+95
+c1
+00
+00
+00
+68
+00
+ce
+83
+1f
+e0
+fe
+01
+60
+00
+ce
+83
+68
+00
+ce
+85
+1f
+e0
+84
+01
+18
+41
+04
+03
+60
+08
+ce
+85
+1f
+ef
+fe
+07
+d8
+a0
+4e
+87
+98
+a0
+8a
+00
+1a
+42
+0c
+00
+20
+40
+02
+e0
+1f
+e2
+72
+00
+20
+40
+02
+da
+20
+40
+03
+2a
+20
+76
+00
+00
+70
+09
+bd
+1b
+20
+20
+4b
+d6
+78
+56
+7c
+00
+68
+00
+ce
+a4
+c1
+02
+80
+00
+78
+36
+7c
+00
+1f
+e0
+fe
+01
+60
+00
+ce
+a4
+1f
+e6
+7c
+01
+24
+61
+00
+00
+70
+48
+96
+40
+20
+20
+02
+e8
+58
+00
+47
+2e
+1f
+f0
+fe
+00
+60
+01
+47
+c4
+60
+01
+47
+c6
+58
+00
+47
+c8
+1f
+f0
+fe
+00
+60
+01
+48
+2c
+60
+01
+48
+2e
+20
+60
+00
+00
+68
+01
+4e
+a9
+1f
+e0
+fe
+1c
+60
+01
+4e
+ab
+20
+60
+00
+00
+20
+40
+52
+4a
+70
+0b
+2a
+00
+70
+01
+6c
+06
+20
+40
+3e
+7f
+58
+00
+03
+bf
+60
+01
+42
+96
+58
+00
+02
+b7
+60
+01
+42
+90
+58
+00
+03
+b8
+60
+01
+42
+8c
+24
+55
+83
+34
+20
+55
+83
+80
+20
+40
+3d
+3e
+68
+00
+ce
+ba
+20
+3a
+03
+5a
+1f
+e0
+ff
+ff
+60
+00
+ce
+ba
+58
+00
+3f
+80
+60
+01
+4e
+a9
+20
+40
+03
+3d
+68
+00
+ce
+53
+24
+3a
+03
+5a
+68
+00
+ce
+b9
+24
+3a
+03
+5a
+20
+40
+02
+0f
+68
+00
+ce
+45
+c0
+2d
+03
+94
+20
+35
+83
+92
+68
+00
+c2
+80
+60
+00
+c9
+c3
+20
+40
+05
+96
+68
+01
+4e
+41
+1f
+f0
+fe
+00
+60
+01
+4e
+41
+68
+01
+4e
+43
+1f
+f0
+fe
+00
+60
+01
+4e
+43
+20
+40
+03
+9f
+68
+04
+09
+c6
+24
+3a
+03
+6d
+68
+01
+4a
+d4
+1f
+f0
+fe
+00
+20
+3a
+03
+6d
+60
+01
+4e
+43
+70
+48
+96
+2f
+68
+00
+ce
+78
+24
+3a
+03
+75
+20
+40
+02
+93
+20
+40
+02
+e8
+20
+40
+02
+ff
+70
+82
+80
+03
+20
+60
+00
+00
+20
+55
+bc
+29
+d9
+60
+0d
+00
+34
+73
+02
+00
+1c
+42
+7e
+00
+60
+01
+ce
+7a
+68
+01
+47
+0b
+c3
+85
+80
+00
+c3
+83
+00
+00
+20
+40
+3d
+60
+20
+40
+04
+93
+20
+20
+03
+7a
+1c
+e2
+7e
+00
+c5
+93
+03
+8a
+20
+3a
+03
+85
+70
+49
+b9
+bb
+20
+60
+00
+00
+70
+49
+b9
+00
+68
+00
+c9
+b7
+20
+7a
+00
+00
+70
+49
+b7
+00
+20
+20
+03
+83
+20
+3a
+03
+8d
+70
+49
+c1
+02
+20
+60
+00
+00
+68
+00
+c9
+c2
+20
+7a
+00
+00
+70
+49
+c2
+00
+70
+49
+c1
+01
+20
+60
+00
+00
+70
+48
+96
+3c
+20
+20
+03
+6e
+1c
+e2
+7e
+00
+20
+3a
+02
+77
+20
+40
+53
+0d
+20
+40
+42
+eb
+58
+00
+00
+00
+60
+04
+40
+40
+60
+01
+47
+0b
+60
+01
+48
+98
+60
+01
+48
+9a
+70
+48
+96
+3d
+20
+20
+03
+6e
+20
+40
+62
+c4
+58
+00
+07
+e2
+da
+20
+09
+c6
+d8
+40
+00
+0c
+20
+40
+63
+0d
+20
+40
+62
+c7
+68
+04
+09
+c6
+20
+7a
+00
+00
+68
+00
+c2
+cf
+c2
+81
+03
+aa
+20
+60
+00
+00
+68
+09
+09
+c6
+68
+01
+09
+cc
+18
+42
+24
+00
+1f
+e2
+22
+00
+98
+46
+26
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+41
+1a
+6b
+fe
+00
+9a
+20
+fe
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+43
+20
+60
+00
+00
+78
+34
+7c
+00
+68
+12
+01
+38
+79
+34
+7e
+1a
+60
+12
+00
+4c
+20
+40
+3c
+f4
+70
+00
+9f
+01
+20
+60
+00
+00
+1a
+62
+7e
+00
+1f
+e1
+7e
+f0
+c1
+28
+00
+00
+1a
+62
+7e
+00
+60
+00
+c8
+96
+20
+20
+02
+e8
+70
+49
+27
+00
+70
+49
+32
+4e
+68
+02
+49
+34
+60
+02
+49
+50
+20
+20
+04
+59
+68
+08
+c9
+33
+20
+40
+03
+d0
+18
+40
+84
+01
+18
+41
+04
+03
+60
+08
+c9
+33
+20
+60
+00
+00
+68
+00
+c9
+50
+1f
+e1
+7e
+03
+1f
+ef
+a2
+04
+58
+00
+49
+39
+9a
+20
+fe
+00
+98
+40
+8c
+00
+e8
+c0
+80
+00
+60
+00
+c9
+32
+20
+60
+00
+00
+70
+49
+b0
+01
+70
+49
+b2
+00
+68
+00
+c9
+29
+1f
+e1
+7e
+07
+60
+00
+c9
+29
+20
+60
+00
+00
+68
+00
+c9
+29
+79
+20
+7e
+04
+60
+00
+c9
+29
+60
+00
+c8
+e4
+20
+60
+00
+00
+68
+00
+c9
+29
+79
+3f
+fe
+04
+60
+00
+c9
+29
+20
+60
+00
+00
+20
+40
+05
+9d
+68
+00
+c9
+b4
+c0
+00
+83
+ed
+c0
+01
+03
+f1
+20
+60
+00
+00
+70
+49
+b2
+02
+70
+49
+b3
+00
+70
+49
+b0
+00
+20
+20
+03
+db
+70
+49
+b1
+00
+20
+20
+03
+ee
+68
+01
+49
+2e
+1f
+e0
+fe
+01
+60
+01
+49
+2e
+c2
+85
+05
+02
+68
+00
+c9
+b1
+c0
+00
+83
+fc
+70
+49
+b1
+01
+68
+00
+c9
+b1
+c0
+80
+83
+db
+68
+00
+c9
+b5
+1f
+e0
+fe
+01
+60
+00
+c9
+b5
+c0
+02
+04
+03
+20
+40
+03
+ca
+70
+49
+6e
+02
+20
+20
+04
+c3
+20
+40
+05
+9d
+70
+49
+b5
+00
+20
+20
+03
+db
+70
+49
+b2
+02
+70
+49
+b0
+01
+70
+49
+b1
+00
+20
+20
+03
+db
+68
+00
+c9
+b4
+c0
+01
+84
+07
+68
+00
+c9
+29
+2f
+ec
+00
+04
+20
+20
+83
+d9
+68
+00
+c9
+b4
+c0
+00
+84
+06
+c0
+01
+04
+07
+20
+60
+00
+00
+68
+00
+c9
+38
+c1
+ff
+80
+00
+20
+40
+04
+18
+24
+56
+04
+20
+20
+60
+00
+00
+78
+56
+7c
+00
+68
+00
+c9
+b0
+c1
+80
+80
+00
+68
+00
+c9
+b2
+c1
+80
+00
+00
+70
+49
+b4
+01
+70
+49
+6e
+04
+20
+20
+02
+b1
+68
+00
+c9
+b2
+20
+3a
+04
+28
+1f
+e0
+ff
+ff
+60
+00
+c9
+b2
+70
+49
+b4
+02
+20
+40
+03
+ca
+70
+49
+6e
+04
+20
+60
+00
+00
+70
+49
+b4
+03
+68
+00
+c9
+b1
+24
+3a
+03
+fa
+20
+40
+03
+ca
+70
+49
+6e
+02
+20
+60
+00
+00
+68
+00
+c9
+38
+c0
+ff
+86
+02
+20
+40
+02
+bb
+20
+34
+04
+40
+68
+00
+c8
+97
+c0
+83
+64
+c0
+68
+00
+ce
+80
+20
+5a
+04
+79
+68
+00
+ce
+80
+24
+5a
+04
+3c
+20
+40
+04
+45
+20
+40
+04
+66
+70
+49
+2d
+01
+20
+60
+00
+00
+70
+4e
+79
+00
+70
+4e
+78
+00
+70
+49
+ba
+0a
+20
+60
+00
+00
+68
+00
+ce
+78
+24
+3a
+04
+45
+68
+00
+c9
+2d
+c0
+00
+b1
+d4
+20
+60
+00
+00
+68
+00
+c9
+b9
+60
+00
+c9
+b8
+68
+00
+c9
+70
+1f
+e2
+22
+00
+da
+40
+49
+71
+70
+49
+54
+00
+20
+40
+03
+db
+60
+00
+c9
+90
+1a
+20
+84
+01
+d8
+a0
+49
+91
+1a
+22
+72
+00
+1a
+42
+0c
+00
+20
+40
+7e
+cd
+da
+20
+49
+90
+c6
+93
+80
+00
+60
+08
+c9
+28
+18
+42
+72
+00
+d8
+a0
+48
+c4
+1a
+22
+0c
+00
+20
+20
+7e
+cd
+da
+20
+00
+00
+df
+20
+00
+04
+d8
+c0
+49
+50
+e8
+c0
+80
+00
+9a
+20
+a2
+00
+c2
+00
+04
+5c
+1a
+22
+7e
+00
+60
+01
+49
+bb
+68
+00
+c9
+bb
+68
+08
+c9
+bc
+98
+40
+fe
+00
+60
+00
+c9
+bd
+20
+60
+00
+00
+68
+00
+c9
+28
+1f
+e0
+fe
+02
+60
+00
+c9
+2a
+68
+00
+c9
+29
+60
+00
+c8
+e4
+68
+00
+c9
+28
+1f
+e9
+fe
+00
+68
+08
+c9
+27
+18
+41
+04
+03
+18
+43
+84
+00
+98
+41
+fe
+00
+68
+08
+c9
+65
+98
+40
+fe
+00
+e0
+a0
+80
+00
+68
+00
+c9
+28
+98
+00
+72
+00
+d8
+c0
+48
+c4
+20
+20
+7e
+cd
+20
+60
+00
+00
+68
+00
+c2
+b8
+2f
+ec
+00
+02
+20
+20
+84
+83
+68
+00
+ce
+79
+c1
+02
+80
+00
+1f
+e0
+fe
+01
+60
+00
+ce
+79
+c1
+82
+80
+00
+70
+4e
+78
+01
+20
+60
+00
+00
+68
+00
+ce
+79
+c1
+0a
+00
+00
+1f
+e0
+fe
+01
+60
+00
+ce
+79
+c1
+8a
+00
+00
+68
+00
+c2
+b8
+79
+20
+7e
+02
+60
+00
+c2
+b8
+20
+20
+04
+81
+68
+00
+ce
+79
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+79
+24
+7a
+00
+00
+70
+4e
+78
+00
+20
+60
+00
+00
+79
+20
+00
+27
+20
+40
+02
+bb
+20
+34
+04
+98
+68
+00
+c8
+97
+c0
+03
+04
+9e
+68
+00
+ce
+7d
+c0
+00
+84
+9d
+c0
+01
+04
+78
+c0
+01
+84
+9d
+20
+60
+00
+00
+20
+60
+00
+00
+20
+60
+00
+00
+20
+40
+3b
+e2
+68
+01
+c2
+0f
+20
+7a
+00
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+68
+00
+ce
+80
+c0
+00
+84
+a8
+58
+00
+00
+00
+60
+04
+00
+a0
+20
+40
+04
+b8
+d9
+60
+0d
+00
+34
+73
+02
+00
+68
+09
+ce
+7a
+1c
+42
+7e
+00
+98
+46
+7e
+00
+1f
+e1
+7e
+ff
+d8
+40
+0e
+a6
+98
+4f
+84
+00
+68
+02
+4e
+74
+98
+46
+7e
+00
+20
+21
+3c
+7f
+68
+00
+c2
+18
+1f
+e0
+fe
+01
+60
+02
+41
+fb
+20
+20
+3c
+86
+58
+01
+3c
+68
+60
+02
+4e
+74
+68
+00
+ce
+7e
+1f
+e0
+fe
+01
+c0
+82
+84
+be
+58
+00
+00
+00
+60
+00
+ce
+7e
+c4
+00
+00
+00
+58
+01
+30
+b0
+60
+02
+4e
+74
+20
+60
+00
+00
+70
+49
+31
+00
+d9
+60
+0d
+00
+34
+73
+02
+00
+20
+40
+04
+db
+68
+00
+c9
+65
+c1
+00
+80
+00
+24
+2c
+04
+ea
+24
+37
+84
+ea
+20
+40
+05
+09
+20
+40
+05
+99
+68
+00
+c9
+27
+1f
+e0
+fe
+01
+60
+00
+c9
+27
+68
+00
+c9
+38
+c0
+ff
+84
+d9
+20
+40
+04
+0a
+58
+00
+00
+00
+60
+01
+49
+2e
+60
+00
+c9
+30
+60
+00
+c9
+b3
+70
+49
+2d
+00
+20
+60
+00
+00
+20
+40
+05
+96
+20
+20
+06
+1d
+78
+57
+fc
+00
+20
+40
+05
+29
+68
+00
+c9
+65
+c0
+00
+84
+e8
+18
+00
+2a
+00
+68
+02
+49
+50
+98
+00
+12
+00
+68
+08
+80
+17
+20
+40
+39
+b9
+20
+40
+39
+bf
+20
+40
+05
+53
+20
+57
+85
+92
+20
+60
+00
+00
+20
+40
+05
+92
+20
+20
+04
+cd
+68
+00
+c9
+30
+1f
+e0
+fe
+01
+60
+00
+c9
+30
+68
+00
+c9
+38
+c0
+ff
+84
+fe
+68
+08
+c9
+31
+18
+40
+84
+01
+60
+08
+c9
+31
+68
+00
+c9
+6e
+98
+46
+7e
+00
+24
+3a
+04
+c4
+68
+00
+c9
+b4
+c0
+01
+83
+f3
+68
+00
+c9
+b3
+1f
+e0
+fe
+01
+60
+00
+c9
+b3
+c0
+01
+03
+e8
+20
+40
+03
+df
+70
+49
+6e
+01
+20
+20
+04
+c3
+68
+00
+c9
+30
+c1
+ff
+80
+00
+70
+49
+30
+00
+20
+20
+05
+07
+58
+00
+00
+00
+60
+01
+49
+2e
+70
+41
+31
+00
+70
+4e
+79
+00
+70
+4e
+78
+00
+70
+48
+96
+3b
+20
+20
+02
+e8
+20
+40
+05
+10
+68
+00
+c9
+26
+20
+7a
+00
+00
+98
+00
+72
+00
+d8
+c0
+48
+a4
+d8
+a0
+49
+06
+20
+20
+7e
+cd
+68
+00
+c8
+a3
+1f
+e9
+7e
+00
+60
+00
+c9
+26
+1f
+e0
+fe
+01
+d8
+c0
+48
+a3
+98
+c0
+8c
+00
+e8
+c1
+80
+00
+60
+01
+c9
+66
+68
+00
+c8
+a3
+1f
+e3
+7e
+00
+1f
+e1
+7e
+03
+60
+00
+c9
+6c
+20
+60
+00
+00
+78
+44
+fc
+00
+78
+43
+fc
+00
+58
+55
+55
+55
+98
+00
+1e
+00
+68
+00
+c9
+32
+1f
+ed
+84
+00
+79
+20
+04
+01
+18
+43
+1c
+00
+20
+60
+00
+00
+20
+40
+39
+b1
+68
+08
+c9
+32
+20
+20
+39
+c9
+20
+40
+49
+76
+68
+02
+49
+50
+98
+00
+12
+00
+20
+40
+05
+1d
+20
+40
+05
+26
+79
+20
+2a
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+78
+4e
+fc
+00
+78
+2d
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+68
+00
+c9
+bd
+08
+00
+86
+08
+68
+00
+c9
+2a
+98
+00
+72
+00
+d8
+c0
+48
+e4
+e8
+c0
+80
+00
+08
+00
+86
+08
+c2
+00
+05
+3f
+78
+24
+7c
+00
+08
+00
+86
+18
+78
+44
+7c
+00
+37
+d3
+82
+00
+20
+00
+00
+64
+78
+4e
+fc
+00
+78
+4d
+fc
+00
+20
+60
+00
+00
+20
+40
+49
+76
+68
+02
+49
+50
+98
+00
+12
+00
+20
+40
+39
+b1
+68
+08
+c9
+32
+20
+40
+39
+b9
+58
+00
+05
+00
+20
+40
+3b
+35
+20
+40
+39
+bf
+20
+40
+05
+1d
+78
+57
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+28
+7c
+00
+68
+01
+49
+2b
+98
+00
+36
+00
+37
+c1
+84
+00
+24
+2c
+05
+95
+78
+46
+fc
+00
+78
+25
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+c9
+be
+20
+40
+04
+59
+68
+08
+c9
+be
+98
+46
+7c
+00
+24
+22
+85
+92
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+c8
+a2
+68
+00
+c9
+6f
+1f
+e6
+7c
+02
+20
+22
+85
+72
+68
+00
+c8
+a2
+68
+08
+c9
+29
+a8
+40
+0e
+00
+24
+20
+85
+92
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+1f
+e9
+7e
+00
+1f
+e1
+72
+1f
+20
+22
+85
+7c
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+c2
+00
+05
+78
+18
+a2
+22
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+c9
+cf
+1a
+22
+0a
+00
+09
+80
+00
+18
+78
+28
+7c
+00
+db
+60
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+78
+45
+fc
+00
+20
+23
+05
+92
+78
+37
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
+20
+40
+3a
+13
+78
+46
+fc
+00
+20
+40
+39
+b1
+68
+00
+c9
+cf
+1f
+e2
+22
+00
+20
+20
+05
+e5
+78
+4d
+fc
+00
+78
+45
+fc
+00
+20
+20
+36
+c6
+20
+20
+05
+92
+70
+49
+c4
+01
+70
+49
+c5
+00
+20
+60
+00
+00
+68
+00
+c9
+c5
+1f
+e0
+fe
+01
+60
+00
+c9
+c5
+20
+60
+00
+00
+68
+00
+c9
+c5
+1f
+e6
+7c
+01
+24
+41
+05
+a5
+68
+00
+c9
+c5
+c1
+00
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c9
+c5
+20
+60
+00
+00
+70
+49
+c5
+02
+20
+60
+00
+00
+da
+20
+49
+c6
+20
+40
+05
+ee
+60
+08
+c9
+d0
+28
+0f
+fe
+26
+20
+40
+85
+b5
+24
+40
+85
+b9
+98
+46
+7c
+00
+24
+21
+05
+d2
+68
+00
+c9
+c5
+1f
+e6
+7c
+01
+24
+21
+05
+bd
+68
+00
+c9
+c5
+c0
+00
+05
+d2
+20
+60
+00
+00
+58
+00
+00
+82
+20
+60
+00
+00
+58
+00
+00
+77
+20
+60
+00
+00
+58
+00
+00
+80
+20
+60
+00
+00
+58
+00
+00
+75
+20
+60
+00
+00
+68
+00
+c9
+c5
+c1
+a3
+00
+00
+70
+49
+c5
+00
+68
+08
+c9
+d0
+28
+0f
+fe
+26
+20
+40
+85
+b7
+24
+40
+85
+bb
+98
+46
+7c
+00
+24
+61
+00
+00
+68
+00
+c9
+c4
+c0
+00
+05
+de
+1f
+e0
+ff
+ff
+60
+00
+c9
+c4
+c0
+00
+05
+de
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+57
+4c
+70
+89
+58
+6c
+70
+89
+59
+50
+70
+42
+80
+01
+20
+60
+00
+00
+68
+00
+c9
+c4
+c0
+01
+05
+d7
+1f
+e0
+fe
+01
+60
+00
+c9
+c4
+c0
+00
+85
+cb
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+57
+4c
+70
+89
+58
+3c
+70
+89
+59
+10
+70
+42
+80
+04
+20
+60
+00
+00
+70
+89
+55
+d0
+70
+89
+56
+c0
+70
+89
+57
+4c
+70
+89
+58
+6c
+70
+89
+59
+50
+70
+42
+80
+10
+20
+60
+00
+00
+68
+08
+c9
+ce
+58
+00
+49
+c6
+98
+40
+8a
+00
+1a
+22
+7e
+00
+e0
+a0
+80
+00
+18
+40
+84
+01
+18
+41
+04
+07
+60
+08
+c9
+ce
+20
+60
+00
+00
+d8
+40
+00
+00
+df
+20
+00
+08
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+98
+40
+84
+00
+c2
+00
+05
+f1
+18
+49
+7e
+00
+1f
+e2
+04
+00
+c6
+93
+00
+00
+1f
+e6
+fc
+0a
+20
+40
+7f
+53
+18
+07
+fe
+00
+1f
+f2
+7e
+00
+18
+07
+04
+00
+98
+41
+84
+00
+20
+60
+00
+00
+79
+20
+00
+26
+20
+40
+03
+c5
+70
+49
+38
+01
+20
+60
+00
+00
+68
+00
+c9
+2d
+c0
+00
+b1
+d4
+68
+00
+c9
+38
+c0
+00
+86
+09
+c0
+01
+06
+0c
+c0
+01
+86
+0f
+20
+20
+3b
+31
+70
+49
+38
+11
+70
+49
+90
+aa
+20
+20
+06
+11
+70
+49
+38
+12
+70
+49
+90
+55
+20
+20
+06
+11
+70
+49
+38
+13
+70
+49
+90
+22
+68
+00
+c9
+29
+1f
+e1
+7e
+07
+60
+00
+c9
+91
+68
+02
+49
+60
+60
+02
+49
+92
+70
+49
+96
+00
+da
+20
+49
+90
+d8
+40
+00
+07
+20
+40
+04
+53
+20
+40
+04
+66
+20
+40
+04
+3a
+20
+20
+31
+d4
+68
+00
+c9
+38
+c1
+7f
+80
+00
+c0
+08
+86
+23
+c0
+09
+06
+25
+c0
+09
+86
+27
+20
+60
+00
+00
+70
+49
+38
+02
+20
+20
+04
+d3
+70
+49
+38
+03
+20
+20
+04
+d3
+70
+49
+38
+ff
+70
+48
+96
+39
+20
+40
+02
+e8
+68
+02
+49
+08
+20
+40
+03
+c8
+20
+20
+04
+d3
+79
+3f
+80
+26
+20
+40
+03
+ca
+68
+02
+49
+50
+20
+40
+04
+59
+68
+00
+c9
+38
+c1
+ff
+80
+00
+20
+40
+06
+43
+58
+00
+00
+00
+60
+01
+49
+56
+20
+00
+07
+d0
+68
+00
+c9
+56
+c0
+7f
+85
+07
+20
+40
+04
+db
+24
+2c
+06
+4d
+24
+37
+86
+4d
+70
+41
+31
+01
+79
+20
+00
+26
+58
+00
+00
+00
+60
+01
+49
+56
+70
+09
+bd
+3a
+20
+40
+7d
+86
+20
+20
+7e
+0d
+79
+20
+00
+27
+70
+49
+90
+ff
+68
+00
+c9
+29
+60
+00
+c9
+91
+68
+02
+49
+60
+60
+02
+49
+92
+d8
+40
+00
+06
+da
+20
+49
+90
+20
+40
+04
+53
+20
+20
+04
+66
+68
+01
+49
+56
+1f
+e0
+fe
+01
+60
+01
+49
+56
+20
+40
+03
+ca
+20
+20
+06
+36
+85
+6f
+aa
+55
+00
+00
+aa
+55
+01
+00
+00
+40
+09
+aa
+55
+02
+00
+10
+40
+40
+0c
+aa
+55
+04
+00
+14
+40
+80
+13
+f0
+06
+aa
+55
+01
+00
+20
+40
+20
+aa
+55
+08
+00
+22
+40
+40
+08
+08
+80
+0e
+f2
+04
+20
+aa
+55
+01
+00
+32
+40
+20
+aa
+55
+02
+00
+3e
+40
+88
+03
+aa
+55
+03
+00
+15
+42
+8f
+1b
+ce
+aa
+55
+04
+00
+19
+42
+0a
+0b
+ef
+0f
+aa
+55
+01
+00
+f7
+41
+00
+aa
+55
+08
+00
+a0
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+02
+00
+5d
+41
+02
+24
+aa
+55
+08
+00
+4d
+41
+12
+00
+00
+02
+12
+00
+00
+02
+aa
+55
+02
+00
+5b
+41
+20
+00
+aa
+55
+04
+00
+57
+41
+20
+00
+00
+20
+aa
+55
+04
+00
+5f
+41
+80
+04
+00
+08
+aa
+55
+02
+00
+60
+4e
+00
+40
+aa
+55
+05
+00
+a9
+45
+09
+59
+00
+b0
+00
+aa
+55
+02
+00
+a8
+42
+80
+3f
+aa
+55
+01
+00
+b6
+42
+20
+aa
+55
+01
+00
+81
+42
+01
+aa
+55
+0b
+00
+69
+4e
+55
+d0
+56
+c0
+57
+4c
+58
+3c
+59
+50
+ff
+aa
+55
+02
+00
+63
+41
+69
+4e
+aa
+55
+01
+00
+e2
+46
+00
+aa
+55
+01
+00
+0d
+47
+01
+aa
+55
+01
+00
+25
+46
+00
+aa
+55
+01
+00
+32
+41
+42
+aa
+55
+01
+00
+d4
+08
+00
+aa
+55
+01
+00
+9f
+00
+00
+aa
+55
+01
+00
+d5
+08
+00
+aa
+55
+01
+00
+16
+00
+27
+aa
+55
+01
+00
+15
+47
+ff
+aa
+55
+01
+00
+0e
+47
+ff
+aa
+55
+01
+00
+31
+41
+01
+aa
+55
+02
+00
+12
+42
+20
+03
+aa
+55
+01
+00
+f6
+41
+08
+aa
+55
+02
+00
+f4
+41
+00
+00
+aa
+55
+01
+00
+33
+41
+00
+aa
+55
+02
+00
+94
+48
+02
+01
+aa
+55
+02
+00
+cf
+42
+04
+30
+aa
+55
+04
+00
+41
+4e
+9f
+3e
+cd
+4d
+aa
+55
+01
+00
+21
+45
+00
+aa
+55
+02
+00
+29
+45
+07
+00
+aa
+55
+01
+00
+96
+45
+50
+aa
+55
+01
+00
+f8
+44
+1a
+aa
+55
+06
+00
+3e
+45
+ab
+b9
+12
+0e
+10
+26
+aa
+55
+0a
+00
+40
+44
+09
+42
+4c
+45
+20
+4d
+6f
+75
+73
+65
+aa
+55
+01
+00
+4c
+45
+17
+aa
+55
+01
+00
+20
+45
+00
+aa
+55
+07
+00
+22
+45
+01
+00
+00
+00
+00
+00
+00
+aa
+55
+18
+00
+ff
+43
+00
+1f
+03
+19
+c2
+03
+03
+03
+12
+18
+02
+01
+05
+0a
+09
+42
+4c
+45
+20
+4d
+6f
+75
+73
+65
+aa
+55
+0c
+00
+20
+44
+1f
+0a
+09
+42
+4c
+45
+20
+4d
+6f
+75
+73
+65
+aa
+55
+b5
+01
+40
+4c
+01
+00
+02
+00
+28
+02
+00
+18
+02
+00
+02
+03
+28
+01
+0a
+03
+00
+02
+00
+2a
+09
+42
+4c
+45
+20
+4d
+6f
+75
+73
+65
+04
+00
+02
+03
+28
+01
+02
+05
+00
+02
+01
+2a
+02
+c2
+03
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+08
+00
+02
+00
+28
+02
+01
+18
+09
+00
+02
+03
+28
+01
+20
+0a
+00
+02
+05
+2a
+00
+0b
+00
+02
+02
+29
+02
+00
+00
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+02
+03
+28
+01
+02
+10
+00
+02
+50
+2a
+07
+02
+35
+12
+22
+aa
+01
+00
+11
+00
+02
+00
+28
+02
+0f
+18
+12
+00
+02
+03
+28
+01
+02
+13
+00
+02
+19
+2a
+01
+33
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+00
+28
+02
+12
+18
+16
+00
+02
+03
+28
+01
+06
+17
+00
+02
+4e
+2a
+01
+01
+18
+00
+02
+03
+28
+01
+1a
+19
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+1a
+00
+02
+02
+29
+02
+00
+00
+1b
+00
+02
+08
+29
+02
+01
+01
+1c
+00
+02
+03
+28
+01
+0a
+1d
+00
+02
+4b
+2a
+45
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+f8
+26
+ff
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+1e
+00
+02
+03
+28
+01
+1a
+1f
+00
+02
+33
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+02
+02
+29
+02
+01
+00
+21
+00
+02
+03
+28
+01
+02
+22
+00
+02
+4a
+2a
+04
+01
+01
+00
+03
+23
+00
+02
+03
+28
+01
+04
+24
+00
+02
+4c
+2a
+00
+25
+00
+02
+03
+28
+01
+12
+26
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+27
+00
+02
+02
+29
+02
+00
+00
+28
+00
+02
+08
+29
+02
+11
+01
+29
+00
+02
+03
+28
+01
+0e
+2a
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+2b
+00
+02
+08
+29
+02
+11
+02
+00
+00
+aa
+55
+02
+00
+37
+46
+40
+4c
+aa
+55
+01
+00
+48
+4e
+50
+aa
+55
+08
+00
+8d
+45
+07
+00
+07
+00
+05
+00
+2c
+01
+aa
+55
+01
+00
+20
+4e
+00
+aa
+55
+02
+00
+4e
+4e
+19
+00
+aa
+55
+02
+00
+8b
+45
+22
+00
+aa
+55
+01
+00
+6c
+45
+01
+aa
+55
+01
+00
+a8
+45
+01
+aa
+55
+01
+00
+80
+42
+02
+aa
+55
+01
+00
+a8
+4e
+01
+aa
+55
+01
+00
+ba
+4e
+01
+aa
+55
+01
+00
+6f
+49
+01
+aa
+55
+01
+00
+29
+49
+01
+aa
+55
+01
+00
+6e
+49
+04
+aa
+55
+01
+00
+65
+49
+00
+aa
+55
+02
+00
+2b
+49
+c0
+12
+aa
+55
+03
+00
+4d
+49
+19
+19
+1c
+aa
+55
+10
+00
+39
+49
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+01
+00
+38
+49
+ff
+aa
+55
+04
+00
+34
+49
+20
+15
+10
+05
+aa
+55
+0a
+00
+90
+49
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+58
+49
+00
+48
+60
+00
+00
+00
+00
+00
+c2
+a3
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/memmap.format
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/memmap.format	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/memmap.format	(working copy)
@@ -0,0 +1,1494 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_inquiryscan_waitcnt
+0x0007 mem_inquiryscan_rcvcnt
+0x0008 mem_pagescan_waitcnt
+0x0009 mem_pagescan_rcvcnt
+0x000a mem_pagescan_rcvfhscnt
+0x000b mem_slave_rcvcnt
+0x000c mem_page_transmit
+0x000d mem_page_rcv
+0x000e mem_page_rcv_fhs
+0x000f mem_master_rcvcnt
+0x0010 mem_fhs_wait_counter
+0x0011 mem_newconnto_counter
+0x0012 mem_inquiry_transmit
+0x0013 mem_inquiry_rcv
+0x0014 mem_fw_ver
+0x0015 mem_current_context
+0x0016 mem_le_ch_mapped
+0x0017 mem_last_freq
+0x0018 mem_rssi
+0x0019 mem_rx_type
+0x001a mem_rx_hec_err
+0x001c mem_rx_crc_err
+0x001e mem_context_ptr
+0x0020 mem_display
+0x0028 mem_bcd
+0x0030 mem_state
+0x0031 mem_mode
+0x0032 mem_tsniff
+0x0034 mem_sniff_anchor
+0x0038 mem_clk_offset
+0x003e mem_rx_window
+0x0040 mem_plap
+0x0043 mem_puap
+0x0044 mem_pnap
+0x0046 mem_conn_handle
+0x0047 mem_arq
+0x0048 mem_lmp_to_send
+0x0049 mem_lmi_opcode
+0x004a mem_lmo_reason
+0x004b mem_op
+0x004c mem_state_map
+0x004d mem_supervision_timer
+0x0051 mem_supervision_to
+0x0053 mem_name_offset
+0x0054 mem_key_size
+0x0055 mem_conn_sm
+0x0056 mem_aco
+0x0062 mem_kc
+0x0072 mem_conn_timer
+0x0073 mem_sniff_attempt
+0x0074 mem_sniff_timeout
+0x0075 mem_dsniff
+0x0077 mem_amaddr
+0x0078 mem_lmo_opcode1
+0x0079 mem_lmi_opcode1
+0x007a mem_lmo_reason1
+0x007b mem_lmo_tid1
+0x007c mem_lmo_opcode2
+0x007d mem_lmi_opcode2
+0x007e mem_lmo_reason2
+0x007f mem_lmo_tid2
+0x0080 mem_hci_version
+0x0083 mem_acl_pktlen
+0x0085 mem_sco_pktlen
+0x0086 mem_acl_pktcnt
+0x0088 mem_sco_pktcnt
+0x008a mem_current_sniff_attempt
+0x008b mem_current_sniff_timeout
+0x008c mem_nfreq_index_inq
+0x008d mem_nfreq_index_page
+0x008e mem_ninqy_index
+0x008f mem_fhs_misc
+0x0090 mem_subsniff_instant
+0x0094 mem_subsniff_rate
+0x0095 mem_subsniff_tcmax
+0x0097 mem_subsniff_tsniff
+0x0098 mem_lpm_adjust
+0x0099 mem_sync_clke
+0x009f mem_lpm_current_mult
+0x00a0 mem_gpio_wakeup_low
+0x00a4 mem_gpio_wakeup_high
+0x00a8 mem_air_mode
+0x00a9 mem_sco_asso_handle
+0x00aa mem_sco_handle
+0x00ac mem_esco_desco
+0x00ad mem_esco_type
+0x00ae mem_neogotiation_state
+0x00af mem_saved_amaddr
+0x00b0 mem_esco_arq
+0x00b1 mem_esco_saved_arq
+0x00b2 mem_sco_obuf
+0x00d0 mem_sco_ibuf
+0x00ee mem_sco_poll
+0x00ef mem_npage_index
+0x00f0 mem_page_mode
+0x00f1 mem_page_clk
+0x00f5 mem_tst_pktcnt_sync
+0x00f7 mem_tst_pktcnt_hec
+0x00f9 mem_tst_pktcnt_crc
+0x00fb mem_tst_pktcnt_dmh
+0x00fd mem_tmp_buffer_head
+0x0100 mem_tmp_buffer
+0x0150 mem_tester_emulate
+0x0151 mem_temp_payload
+0x0151 test_mode_scenario
+0x0152 test_mode_hopping_mode
+0x0153 test_mode_tx_freq
+0x0154 test_mode_rx_freq
+0x0155 test_mode_power_mode
+0x0156 test_mode_poll_period
+0x0157 test_mode_packet_type
+0x0158 test_mode_data_length
+0x015a mem_test_mode_old_debug_config
+0x015b mem_tester_cnt
+0x015c mem_temp_am_addr
+0x015d mem_temp_arq
+0x015e mem_len
+0x0160 mem_clkn_bt
+0x0164 mem_clke_bt
+0x0168 mem_dpll_clkn
+0x016c mem_connection_options
+0x016d mem_nameres_cnt
+0x016e mem_txptr
+0x0170 mem_slot_offset
+0x0172 extm_fhs_misc
+0x0173 extm_newconn_am_addr
+0x0174 extm_class
+0x0177 extm_lap
+0x017a extm_uap
+0x017b extm_nap
+0x017e mem_debug_config
+0x017f mem_lch_code
+0x0180 mem_fhs_am_addr
+0x0181 mem_dpll_error
+0x0183 mem_bdaddr_list_buff
+0x01a7 mem_select_list_item
+0x01a8 mem_temp_reconn_record
+0x01a8 mem_record_bt_mode
+0x01a9 mem_temp_lap
+0x01af mem_list_item_ptr
+0x01b1 mem_eir
+0x0215 mem_ucode_status
+0x0216 mem_otp_ucode_flag
+0x0218 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x0219 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x0219 mem_addr_hi
+0x021a mem_addr_mi
+0x021b mem_addr_lo
+0x021c mem_iicd_addr
+0x021d mem_spid_rbuf
+0x0221 mem_ucode_buf
+0x0223 mem_ucode_len
+0x0225 mem_sched_addr
+0x0227 mem_ucode_ptr
+0x0229 mem_ucode_keybuf
+0x0239 mem_check_plap_temp
+0x024b mem_sensor_id
+0x024c mem_reconnect_flag
+0x024d mem_switch_fail_master_count
+0x024e mem_app_evt_timer_count
+0x024f mem_h5rx_ackcnt
+0x0250 mem_check_err_acl_cont
+0x0251 mem_rp_packets
+0x0252 mem_packet_type
+0x0254 mem_hci_sniff_conn_handle
+0x0256 mem_hci_sniff_max_interval
+0x0258 mem_hci_sniff_min_interval
+0x025a mem_hci_sniff_attempt
+0x025c mem_hci_sniff_timeout
+0x025e mem_voice_setting
+0x0260 mem_retransmission_effort
+0x0261 mem_sco_ptype
+0x0263 mem_extm_uap_restore
+0x0266 mem_h5rx_rptr
+0x0268 mem_h5rx_ack
+0x0269 mem_h5tx_ack
+0x026a mem_h5tx_rptr
+0x026c mem_h5tx_wptr
+0x026e mem_h5tx_free
+0x0270 mem_h5rx_tmp
+0x0271 mem_h5tx_seq
+0x0272 mem_hci_acl_queue_wptr
+0x0274 mem_hci_acl_queue_rptr
+0x0276 mem_hci_acl_queue_end
+0x0278 mem_hci_acl_queue_wcnt
+0x0279 mem_hci_acl_cnt
+0x027a mem_hci_acl_tx_trigger_wptr//tx via uart
+0x027c mem_ucode_id_local
+0x027d mem_ucode_id_remote
+0x027e mem_check_sum
+0x027f mem_ucode_temp
+0x0280 mem_ucode_temp1
+0x0281 mem_lock_in_enc//boolean
+0x0282 mem_hci_disconn_reason
+0x0283 mem_hci_curr_len
+0x0284 mem_hci_curr_target
+0x0286 mem_l2cap_mem_start
+0x0286 mem_l2cap_rxbuff1_len
+0x0288 mem_l2cap_rxbuff2_len
+0x028a mem_l2cap_rxbuff_new
+0x028c mem_l2cap_rxbuff_inuse
+0x028d mem_l2cap_payload_ptr
+0x028f mem_l2cap_rx_pkt_length
+0x0291 mem_l2cap_rx_cid
+0x0293 mem_l2cap_rx_done
+0x0294 mem_l2cap_signal_tx_buff_ptr
+0x0296 mem_l2cap_signal_tx_payload_ptr
+0x0298 mem_l2cap_signal_tx_length
+0x029a mem_sdp_tx_buff_ptr
+0x029c mem_sdp_tx_payload_ptr
+0x029e mem_sdp_tx_pkt_length
+0x02a0 mem_rfcomm_tx_buff_ptr
+0x02a2 mem_rfcomm_tx_payload_ptr
+0x02a4 mem_rfcomm_tx_pkt_length
+0x02a6 memL2CAP_T1
+0x02a8 mem_CONTROL_tasks
+0x02a9 mem_send_config_req
+0x02aa mem_config_identifier
+0x02ab mem_config_req_dest_CID
+0x02ad mem_rfcomm_malloc_fail_flag
+0x02ae mem_message_to_uppersm
+0x02af mem_upper_sm_remote_page
+0x02b0 mem_upper_sm_reconn
+0x02b1 mem_upper_sm_ss
+0x02b2 mem_tx_malloc_log
+0x02f2 mem_l2cap_mem_end
+0x02f2 mem_scid
+0x02f4 mem_cmd_length
+0x02f6 mem_tt2
+0x02f8 mem_tt3
+0x02fa mem_id
+0x02fc mem_psm
+0x02fe mem_l2cap_sdpres_delay_time
+0x0302 mem_le_rxbuf
+0x033a mem_le_mic
+0x033e mem_le_peer_mic
+0x0342 mem_le_peer_ltk
+0x0352 mem_le_mrand
+0x0362 mem_le_state
+0x0363 mem_le_mode
+0x0364 mem_le_tsniff
+0x0366 mem_le_anchor
+0x036a mem_le_clk_offset
+0x0370 mem_le_receive_window
+0x0372 mem_le_plap
+0x0378 mem_le_conn_handle
+0x0379 mem_le_arq
+0x037a mem_le_ch
+0x037b mem_le_hop
+0x037c mem_le_event_count
+0x037e mem_le_supervision_timer
+0x0382 mem_le_instant
+0x0384 mem_le_channels
+0x0385 mem_le_op
+0x0386 mem_le_access
+0x038a mem_le_crcinit
+0x038d mem_le_window_size
+0x038e mem_le_slave_latency
+0x0390 mem_le_superto
+0x0392 mem_le_channel_map
+0x0397 mem_le_no_using
+0x0399 mem_le_peer_sca
+0x039a mem_le_att_opcode
+0x039b mem_le_att_handle
+0x039d mem_le_err_code
+0x039e mem_le_l2cap_pdu_length
+0x03a0 mem_le_sk
+0x03b0 mem_le_testtype
+0x03b1 mem_le_test_sync
+0x03b3 mem_le_test_pcnt
+0x03b5 mem_le_rxon_ts
+0x03bb mem_le_rx_ll_opcode
+0x03bc mem_le_notify_attr_start
+0x03be mem_le_notify_len
+0x03bf mem_cmd_le_create_conn
+0x03c0 mem_24g_id
+0x03c1 mem_le_cur_attlist_start_ptr
+0x03c3 mem_le_cur_handle_start
+0x03c5 mem_le_cur_handle_end
+0x03c7 mem_le_cur_uuid_lenth
+0x03c8 mem_le_cur_uuid
+0x03d8 mem_le_search_len
+0x03d9 mem_le_search_res
+0x03da mem_le_continue_type
+0x03db mem_le_public_length
+0x03dc mem_lmo_header_length
+0x03dd mem_lmo_header_opcode
+0x03de mem_lmo_payload
+0x03ef mem_lmi_accepted_opcode
+0x03f0 mem_disconn_reason_send
+0x03f1 mem_tx_fixed_freq
+0x03f2 mem_rx_fixed_freq
+0x03f3 mem_ext_features_page
+0x03f4 mem_lmpext_ssp_enable
+0x03f6 mem_remote_sppcap
+0x03f7 mem_lmp_conn_state
+0x03f8 mem_soft_timer
+0x03fa mem_pincode_state
+0x03fb mem_sres_tid
+0x03fc mem_accptsco_tid
+0x03fd mem_auth_enable
+0x03fe mem_wait_encryption
+0x03ff mem_sniff_payload
+0x040f mem_aurand_send_delay_time
+0x0413 mem_module_temp_len
+0x0415 mem_uart_cmd
+0x0416 mem_uart_opcode
+0x0417 mem_uart_len
+0x0418 mem_module_temp_nl_discard_packet
+0x0419 mem_module_le_md_flag
+0x041a mem_init_cnt
+0x041c memRemoteRPNBitRate
+0x041d memRemotePRNDataBits
+0x041e memRemotePRNStopBit
+0x041f memRemotePRNParity
+0x0420 memRemotePRNFlowControl
+0x0421 memRemotePRNXon
+0x0422 memRemotePRNXoff
+0x0423 mem_mod2div_temp
+0x0426 mem_contw_temp
+0x0428 mem_attrib_list
+0x042a mem_current_adss
+0x042b mem_current_channel
+0x042c mem_current_frame_type
+0x042d mem_current_fcs
+0x042e mem_current_length
+0x0430 mem_rfcomm_uih_payload_ptr
+0x0432 mem_uih_cmd_type
+0x0433 mem_uih_length
+0x0435 mem_param_payload_ptr
+0x0437 mem_ms_param
+0x0438 mem_pn_credit_flow_type_info
+0x0439 mem_pn_priority
+0x043a mem_pn_acknowledg_timer
+0x043b mem_pn_max_retrans
+0x043c mem_rfcomm_send_adss
+0x043d mem_rfcomm_send_frame_type
+0x043e mem_rfcomm_send_fcs
+0x043f mem_rfcomm_send_offset
+0x0440 mem_sdp_mem_start
+0x0440 mem_uuid_search_pat
+0x0444 mem_sdp_continue_byte
+0x0446 mem_sdp_pduid
+0x0447 mem_sdp_transactionid
+0x0449 mem_sdp_attribute_maxbyte
+0x044b mem_sdp_record_maxcnt
+0x044d mem_sdp_error_code
+0x0455 mem_sdp_record_handle
+0x0459 mem_sdp_search_failed
+0x045a mem_sdp_LACAP_found
+0x045b mem_sdp_RFCOMM_found
+0x045c mem_handle_list
+0x0474 mem_handle_humber
+0x0475 mem_sdp_mem_end
+0x0475 mem_rxbuf
+0x0486 mem_random_number
+0x0496 mem_round_key
+0x04a6 mem_kinit
+0x04b6 mem_input_store
+0x04c6 mem_x
+0x04d6 mem_y
+0x04e5 mem_y15
+0x04e6 mem_key_store
+0x04f7 mem_key_store_end
+0x04f8 memp_ar_key
+0x04fa memp_ar_input
+0x04fc mem_ar_hround
+0x0506 mem_ec_infinite
+0x0507 mem_ec_loopc
+0x0509 mem_aes_cmac_data_length
+0x050a memdat
+0x050a mem_ax
+0x0522 mem_ay
+0x053a mem_az
+0x0552 mem_bx
+0x056a mem_ax_256//32 bytes
+0x056a mem_by
+0x0582 mem_bz
+0x058a mem_ay_256// 32 bytes
+0x059a mem_cx
+0x05aa mem_az_256// 32 bytes
+0x05b2 mem_cy
+0x05c9 mem_cy5
+0x05ca mem_bx_256// 32 bytes
+0x05ca mem_cz
+0x05e2 mem_k
+0x05ea mem_by_256// 31 bytes
+0x05fa mem_align
+0x060a mem_bz_256//32 bytes
+0x060a mem_tmp1
+0x060a memahbak
+0x0622 mem_tmp5
+0x062a mem_cx_256//32 bytes
+0x062a memahsave
+0x063a mem_tmp2
+0x064a mem_cy_256// 32 bytes
+0x064a memahsave_end
+0x064a mem_addr_padding
+0x064b mem_addr_value/* 12 bytes     */ 
+0x0652 mem_tmp3
+0x0652 mem_t1
+0x0657 mem_addr_value_end
+0x065a mem_addr_iocap_end
+0x0669 mem_cy5_256// 1 byte
+0x066a mem_cz_256// 32 bytes
+0x066a mem_tmp0
+0x066a mem_t0
+0x0672 mem_tmp0a
+0x0682 mem_t2
+0x068a mem_k_256//32 bytes
+0x069a mem_t3
+0x06aa mem_tmp1_256//32 bytes
+0x06b2 mem_t7
+0x06ca mem_tmp5_256
+0x06ea mem_tmp2_256
+0x070a mem_tmp3_256
+0x070a mem_t1_256
+0x072a mem_tmp0_256
+0x072a mem_t0_256
+0x074a mem_t2_256
+0x076a mem_t3_256
+0x078a mem_t7_256
+0x07aa mem_p
+0x07c2 mem_a
+0x07da mem_b
+0x07f2 mem_gx
+0x080a mem_gy
+0x0822 memh0
+0x0842 mem_p_256
+0x0862 mem_a_256
+0x0882 mem_gx_256
+0x08a2 mem_gy_256
+0x08c2 mem_le_slat
+0x08d2 mem_sp_state_start
+0x08d2 mem_sp_state
+0x08d3 mem_master_sp_state
+0x08d4 mem_sp_flag
+0x08d5 mem_master_sp_flag
+0x08d6 mem_sp_calc
+0x08d7 mem_sp_dh_ready
+0x08d8 mem_sp_localsm
+0x08d9 mem_pairing_auth
+0x08da mem_sp_flag_start
+0x08da mem_sp_local_key_send_count
+0x08db mem_sp_remote_key_recv_count
+0x08dc mem_sp_remote_key_invalid
+0x08dd mem_sp_dhkey_invalid
+0x08de mem_gkey
+0x08e2 mem_le_pubkey_remote_x_256
+0x08ea mem_sp_pubkey_remote
+0x08ea mem_sp_pubkey_remote_x
+0x0902 mem_sp_pubkey_remote_x_end
+0x0902 mem_le_pubkey_remote_y_256
+0x090a mem_sp_pubkey_remote_y
+0x0922 mem_le_dhkey_256
+0x092a mem_sp_dhkey
+0x0942 mem_sp_dhkey_end
+0x0942 mem_sp_random_local
+0x0952 mem_sp_random_local_end
+0x0952 mem_sp_random_remote
+0x0962 mem_sp_random_remote_end
+0x0962 memresult
+0x0962 mem_sp_calc_result
+0x0962 memh
+0x0966 memg
+0x096a memf
+0x096e meme
+0x0972 mem_sp_calc_result_high
+0x0972 memd
+0x0976 memc
+0x097a memb
+0x097e mema
+0x0982 mem_sp_check_result
+0x0992 mem_sp_confirm_remote
+0x09a2 mem_sp_prarm_stack
+0x09b2 mem_UI_data_txbuff_length
+0x09b4 mem_ipc_skip_continue_proc
+0x09b5 mem_ui_timer_temp//length 4
+0x09b5 mem_ipc_rega_temp
+0x09b9 mem_hold_contr
+0x09bb mem_hold_contw
+0x09bd mem_fifo_temp
+0x09be mem_pdatatemp
+0x09c6 mem_temp//8 bytes
+0x09ce mem_timeup// 4 bytes
+0x09d2 mem_rega//4 bytes
+0x09d6 mem_regb//4 bytes
+0x09da mem_regc//3 bytes
+0x09dd mem_contr//2 bytes
+0x09df mem_contw//2 bytes
+0x09e1 mem_le_data_len_temp//1byte
+0x09e1 mem_tx_fifo_map_temp
+0x09e1 mem_rpn_dlci//1byte
+0x09e1 mem_event_cmd_response_content//2byte
+0x09e1 mem_le_prand//16byte
+0x09e1 mem_AES_CMAC_k//16 bytes
+0x09e1 mem_regext_index//1 bytes
+0x09e1 mem_temp_block0
+0x09e2 mem_le_data_temp//15bytes
+0x09e2 mem_temp_block1
+0x09f1 mem_le_aes_128//16byte
+0x09f1 mem_regext//64 bytes
+0x09f1 mem_AES_CMAC_k1//16 bytes
+0x09f1 mem_temp_block2
+0x0a01 mem_AES_CMAC_k2//16 bytes
+0x0a01 mem_temp_block3
+0x0a11 mem_AES_CMAC_temp// 16 bytes
+0x0a11 mem_temp_block4
+0x0a21 mem_AES_CMAC_M_last// 16 bytes
+0x0a21 mem_temp_block5
+0x0a31 mem_le_mackey//16 bytes
+0x0a31 mem_temp_block6
+0x0a41 mem_temp_prepare_write_request
+0x0b09 mem_kb_map2_temp_start
+0x0b09 mem_kb_map2_vk
+0x0b0c mem_kb_current_vk
+0x0b0f mem_kb_vk_offset
+0x0b10 mem_kb_vk_processed_cnt
+0x0b11 mem_kb_map2_current_cell_ptr
+0x0b13 mem_kb_device_button
+0x0b14 mem_table_temp0
+0x0b1c mem_table_temp1
+0x0b24 mem_kb_map2_temp_end
+0x0b24 mem_check_count
+0x0b25 mem_store_key_count
+0x0b26 mem_kb_gpio_val
+0x0b2a mem_c51_flag
+0x0b2b mem_c51_lmp_lock
+0x0b2c mem_lmp_bb_disconnect_reason
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4130 mem_current_amaddr
+0x4131 mem_lpm_mode
+0x4132 mem_device_option
+0x4133 mem_scan_mode
+0x4134 mem_last_clkn
+0x4138 mem_features
+0x4140 mem_lap
+0x4143 mem_uap
+0x4144 mem_nap
+0x4146 mem_npage
+0x4147 mem_glap
+0x414a mem_class
+0x414d mem_iscan_window
+0x414f mem_iscan_interval
+0x4151 mem_pscan_window
+0x4153 mem_pscan_interval
+0x4155 mem_page_interval
+0x4157 mem_page_window
+0x4159 mem_page_to
+0x415b mem_inq_window
+0x415d mem_fcomp_mul
+0x415e mem_fcomp_div
+0x415f mem_rx_window_init
+0x4161 mem_rx_window_sniff
+0x4163 mem_rf_init_ptr
+0x4165 mem_last_type
+0x4166 mem_last_type_esco
+0x4167 mem_last_type_saved
+0x4168 mem_retransmission_cnt
+0x416a mem_next_btclk
+0x416e mem_rf_rccal
+0x416f mem_handle_num
+0x4170 mem_max_slot
+0x4171 mem_eir_enable
+0x4172 mem_afh_instant
+0x4176 mem_afh_error_total
+0x4178 mem_afh_cfg
+0x4179 mem_afh_new_mod
+0x417a mem_afh_map_lo
+0x417f mem_afh_map_hi
+0x4184 mem_afh_used
+0x4185 mem_afh_index
+0x4187 mem_afh_map_new
+0x4192 mem_afh_map
+0x41e2 mem_afh_timer
+0x41e6 mem_afh_classify_channel_map
+0x41f0 mem_chip_functions
+0x41f2 mem_lpm_wake_lock
+0x41f4 mem_lpm_interval
+0x41f6 mem_lpm_overhead
+0x41f7 mem_lpm_hibernate_switch
+0x41f8 mem_esco_addr
+0x41f9 mem_sniff_unint_lost
+0x41fa mem_ptt
+0x41fb mem_sleep_counter//should be 0x41fc in REVC
+0x41ff mem_sleep_counter_all
+0x4203 mem_sleep_clkn
+0x4209 mem_sniff_rcv
+0x420c mem_sniff_lost
+0x420f mem_clks_per_lpo
+0x4212 mem_lpm_mult
+0x4213 mem_lpm_mult_timeout
+0x4214 mem_lpm_mult_cnt
+0x4215 mem_lpm_config
+0x4218 mem_lpm_xtalcnt
+0x4219 mem_lpm_buckcnt
+0x421a mem_lpm_ldocnt
+0x421b mem_lpm_isogate
+0x421c mem_lpm_isogate_final
+0x421d mem_saved_gpio// should be 0x421e in REVC
+0x422d mem_saved_gsel
+0x4230 mem_saved_mark
+0x4238 mem_saved_spidctrl
+0x4239 mem_patch_ptr
+0x423b mem_patch_len
+0x423d mem_timers
+0x425d mem_link_key_exists
+0x425e mem_link_key_eeprom_head
+0x4261 mem_link_key
+0x4271 mem_hci_cmd
+0x4272 mem_hci_conn_handle
+0x4273 mem_hci_plap
+0x4276 mem_hci_puap
+0x4277 mem_hci_pnap
+0x4279 mem_uartd_rxitems_got_data
+0x427a mem_uartd_rxitems_threshold
+0x427b mem_uartd_rx_timeout
+0x427d mem_tx_lch
+0x427e mem_tx_len
+0x4280 mem_tx_power
+0x4281 mem_context_number
+0x4282 mem_rf_init_data
+0x4283 mem_app_handshake_flag
+0x4284 mem_sniff_param_interval
+0x4286 mem_sniff_param_attempt
+0x4288 mem_sniff_param_timeout
+0x428a mem_cb_check_wakelock
+0x428c mem_cb_before_hibernate
+0x428e mem_cb_before_lpm
+0x4290 mem_cb_le_process
+0x4292 mem_cb_bt_process
+0x4294 mem_cb_idle_process
+0x4296 mem_cb_bb_event_process
+0x4298 mem_cb_discovry_timeout
+0x429a mem_cb_att_write
+0x429c mem_cb_update_notify_value
+0x429e mem_cb_update_notify_continue
+0x42a0 mem_cb_event_timer
+0x42a2 mem_cb_le_set_mult
+0x42a4 mem_cb_bt_set_mult
+0x42a6 mem_soft_version_num
+0x42a8 mem_eeprom_base
+0x42aa mem_unsniff2sniff_timer_count
+0x42ab mem_wake_up_delay_timer
+0x42ac mem_app_connection_options
+0x42ad mem_app_disconn_reason
+0x42af mem_app_disconn_reason_flag
+0x42b1 mem_lpm_delay_after_sniff
+0x42b5 mem_xrecord_mode
+0x42b6 mem_eeprom_block_size
+0x42b8 mem_wakup_from_power_flag
+0x42b9 mem_spi_init_clk
+0x42ba mem_spi_init_delay_time
+0x42bb mem_spi_ncs_gpio
+0x42bc mem_nv_data_ptr
+0x42be mem_nv_data_number
+0x42bf mem_0_5_adc_io_data
+0x42c1 mem_1v_adc_hvin_data
+0x42c3 mem_2v_adc_vinlpm_data
+0x42c5 mem_1v_adc_io_data
+0x42c7 mem_5v_adc_hvin_data
+0x42c9 mem_3v_adc_vinlpm_data
+0x42cb mem_otp_adc_flag
+0x42cd mem_reference_voltage
+0x42cf mem_adc_config_flag
+0x42d0 mem_adc_channel
+0x42d1 mem_adc_current_value
+0x42d3 mem_baud
+0x42d5 mem_hci_lt_rx_state
+0x42d6 mem_l2cap_xmem_start
+0x42d6 mem_l2cap_tx_multi_offset//0 means single packet
+0x42d8 mem_sdp_remote_cid
+0x42da mem_rfcomm_remote_cid
+0x42dc mem_hid_ctrl_remote_cid
+0x42de mem_hid_int_remote_cid
+0x42e0 mem_sdp_state
+0x42e1 mem_rfcomm_state
+0x42e2 mem_hid_control_state
+0x42e3 mem_hid_interrupt_state
+0x42e4 mem_spp_state
+0x42e5 mem_ML2CAP_comm_id
+0x42e6 mem_used_map
+0x42e7 mem_tx_fifo0
+0x42e7 mem_tx_fifo0_map
+0x42e8 mem_tx_fifo0_ptr
+0x42ea mem_tx_fifo1
+0x42ea mem_tx_fifo1_map
+0x42eb mem_tx_fifo1_ptr
+0x42ed mem_tx_fifo2
+0x42ed mem_tx_fifo2_map
+0x42ee mem_tx_fifo2_ptr
+0x42f0 mem_tx_fifo3
+0x42f0 mem_tx_fifo3_map
+0x42f1 mem_tx_fifo3_ptr
+0x42f3 mem_tx_fifo_end
+0x42f3 mem_l2cap_lpm_txbuf
+0x43f3 mem_l2cap_flow_ctrl_flag
+0x43f4 mem_l2cap_pending_item
+0x43f5 mem_l2cap_xmem_end
+0x43f5 mem_le_dsniff
+0x43f7 mem_le_conn_interval
+0x43f9 mem_le_scan_enable
+0x43fa mem_le_scan_interval
+0x43fc mem_le_scan_window
+0x43fe mem_le_adv_led
+0x43ff mem_le_adv_enable
+0x4400 mem_le_adv_data_len
+0x4401 mem_le_adv_data
+0x4420 mem_le_scan_data_len
+0x4421 mem_le_scan_data
+0x4440 mem_le_name_len
+0x4441 mem_le_name
+0x4455 mem_le_led_on_time
+0x4456 mem_le_new_map
+0x445b mem_le_new_param
+0x445b mem_le_new_transmitwindowsize
+0x445c mem_le_new_transmitwindowoffset
+0x445e mem_le_new_conninterval
+0x4460 mem_le_new_connslavelatency
+0x4462 mem_le_new_connsupervisiontimeout
+0x4464 mem_le_temp
+0x4465 mem_le_txheader
+0x4466 mem_le_txlen
+0x4467 mem_le_txpayload
+0x4469 mem_le_txcid
+0x446b mem_le_l2cap
+0x446c mem_le_l2cap_response
+0x446d mem_le_txbdy
+0x448c mem_le_pcnt_tx
+0x4491 mem_le_pcnt_rx
+0x4496 mem_le_last_mic
+0x449a mem_le_ivm
+0x449e mem_le_ivs
+0x44a2 mem_le_ltk
+0x44b2 mem_ltk_exists
+0x44b3 mem_le_rconfirm
+0x44c3 mem_le_srand
+0x44d3 mem_le_iat
+0x44d4 mem_le_rat
+0x44d5 mem_le_preq
+0x44d6 mem_le_preq_iocap
+0x44d7 mem_le_preq_oob
+0x44d8 mem_le_preq_auth
+0x44d9 mem_le_preq_max_keysize
+0x44da mem_le_preq_init_key_distribution
+0x44db mem_le_preq_resp_key_distribution
+0x44dc mem_le_pres
+0x44dd mem_le_pres_iocap
+0x44de mem_le_pres_oob
+0x44df mem_le_pres_auth
+0x44e0 mem_le_pres_max_keysize
+0x44e1 mem_le_pres_init_key_distribution
+0x44e2 mem_le_pres_resp_key_distribution
+0x44e3 mem_le_search_handle_start
+0x44e5 mem_le_search_handle_end
+0x44e7 mem_le_att_offset
+0x44e7 mem_le_search_att_type_length
+0x44e8 mem_le_search_att_type
+0x44f8 mem_le_notify_handle
+0x44fa mem_le_search_uuid_length
+0x44fb mem_le_search_uuid
+0x450b mem_le_handle_data_len
+0x450c mem_le_handle_data
+0x451c mem_le_adv_param
+0x451c mem_le_adv_interval_min
+0x451e mem_le_adv_interval_max
+0x4520 mem_le_adv_type
+0x4521 mem_le_adv_own_addr_type
+0x4522 mem_le_adv_direct_addr_type
+0x4523 mem_le_adv_direct_addr
+0x4529 mem_le_adv_channel_map
+0x452a mem_le_adv_filter_policy
+0x452b mem_le_conn_param
+0x452b mem_le_conn_peer_addr_type
+0x452c mem_le_conn_peer_addr
+0x4532 mem_le_conn_own_addr_type
+0x4533 mem_le_conn_interval_min
+0x4535 mem_le_conn_interval_max
+0x4537 mem_le_conn_latency
+0x4539 mem_le_conn_superto
+0x453b mem_le_scan_params
+0x453b mem_le_scan_type
+0x453c mem_le_scan_own_addr_type
+0x453d mem_le_scan_filter_policy
+0x453e mem_le_lap
+0x4541 mem_le_uap
+0x4542 mem_le_nap
+0x4544 mem_le_xtype_fifo
+0x454c mem_le_local_mtu
+0x454e mem_le_remote_mtu
+0x4550 mem_le_ll_cur_opcode
+0x4551 mem_le_skdm
+0x4559 mem_le_skds
+0x4561 mem_le_init_superto
+0x4563 mem_le_secure_connect_enable
+0x4564 mem_le_secure_connect_flag
+0x4565 mem_le_sc_calc
+0x4566 mem_le_secure_connect_state
+0x4567 mem_le_sc_confirm_gkey_flag
+0x4568 mem_le_sc_local_key_invalid
+0x4569 mem_le_continue_flag
+0x456a mem_le_pairing_state
+0x456b mem_le_enc_state
+0x456c mem_le_pairing_mode
+0x456d mem_le_tk
+0x4571 mem_le_ediv
+0x4573 mem_le_rand
+0x457b mem_le_irk
+0x458b mem_le_pairing_handle
+0x458d mem_le_interal_min
+0x458f mem_le_interal_max
+0x4591 mem_le_latency
+0x4593 mem_le_timeout
+0x4595 mem_le_switch_send_data
+0x4596 mem_le_transmit_window
+0x459a mem_le_buff_len
+0x459c mem_le_buff_len_all
+0x459e mem_le_buff_data_len_all
+0x45a0 mem_prepare_write_len
+0x45a2 mem_le_prepare_write_req_offset
+0x45a4 mem_prepare_handle
+0x45a6 mem_prepare_write_offest
+0x45a8 mem_le_flag
+0x45a9 mem_lmp_version
+0x45ac mem_lmp_subversion
+0x45ae mem_local_name_length
+0x45af mem_local_name
+0x45b2 mem_local_name2
+0x45f2 mem_local_name_end
+0x45f3 mem_unsniff2sniff_timer
+0x45f4 mem_switch_flag
+0x45f5 mem_pn_dlci
+0x45f6 mem_pn_max_frame_size
+0x45f8 memFCStemp1
+0x45f9 memFCStemp2
+0x45fa memFCStemp3
+0x45fb mem_rfcomm_initiator
+0x45fc mem_remote_spp_channel
+0x45fd mem_HIUfcs_SPP
+0x45fe mem_HIUfcs_SPP_WCredits
+0x45ff mem_rfcomm_send_more_pkt
+0x4600 mem_remote_credits
+0x4601 mem_credit_given
+0x4602 mem_ms_channel
+0x4603 mem_credit_flag
+0x4604 mem_rfcomm_max_frame_size
+0x4606 mem_rfcomm_credit_init_data
+0x4607 mem_cb_receive_spp_data
+0x4609 mem_nl_rx_data_src
+0x460b mem_nl_rx_len_all
+0x460d mem_ui_uuid_table
+0x460f mem_all_uuid_16bits
+0x4625 mem_all_uuid_128bits
+0x4637 mem_ui_le_uuid_table
+0x4639 mem_sp_local_key_invalid
+0x463a mem_le_private_key_256
+0x465a mem_le_pubkey_local_x_256
+0x467a mem_le_pubkey_local_y_256
+0x469a mem_sp_private_key
+0x46b2 mem_sp_pubkey_local
+0x46b2 mem_sp_pubkey_local_x
+0x46ca mem_sp_pubkey_local_x_end
+0x46ca mem_sp_pubkey_local_y
+0x46e2 mem_ssp_enable
+0x46e3 mem_sp_iocap_local
+0x46e6 mem_sp_iocap_remote
+0x46e9 mem_flag_mode_ssp_pin
+0x46ea mem_ssp_mode_flag
+0x46eb mem_authentication_passkey_times
+0x46ec mem_passkey_1bit
+0x46ed mem_flag_pairing_state
+0x46ee mem_ipc_lock_bt
+0x46ef mem_ipc_lock_c51
+0x46f0 mem_ipc_fifo_bt2c51
+0x46f8 mem_ipc_fifo_c512bt
+0x4700 mem_led_switch
+0x4701 mem_ui_button_timer
+0x4702 mem_ui_button_last_state
+0x4703 mem_ui_timer_last_btclk
+0x4707 mem_discovery_timeout_timer_count
+0x4709 mem_hid_handshake_timer_count
+0x470a memui_reconnect_mode
+0x470b mem_ui_state_map
+0x470d mem_ui_profile_supported
+0x470e mem_led_gpio
+0x470f mem_led_dark_time
+0x4711 mem_led_light_time
+0x4713 mem_led_blink_count
+0x4714 mem_ui_button_timeout
+0x4715 mem_ui_button_gpio
+0x4716 mem_discovery_timeout
+0x4718 mem_pin_length
+0x4719 mem_pin
+0x4729 mem_24g_tx_btclk
+0x472d mem_24g_interval
+0x472e mem_24g_txfail_cnt
+0x472f mem_24g_attempt_cnt
+0x4730 mem_24g_attempt_flag
+0x4731 mem_24g_rxfail_cnt
+0x4734 mem_24g_retry
+0x4735 mem_24g_pid
+0x4736 mem_24g_datalen
+0x4737 mem_24g_crc
+0x4739 mem_24g_rxbuf
+0x4779 mem_24g_addr
+0x477d mem_24g_len
+0x477f mem_24g_txpayload
+0x4789 mem_24g_txdata
+0x4793 mem_24g_ch
+0x4794 mem_24g_scremble
+0x47a4 mem_24g_current_ch_number
+0x47a5 mem_24g_ch_map1
+0x47a9 mem_24g_ch_map2
+0x47ad mem_24g_ch_map3
+0x47b1 mem_24g_ch_map4
+0x47b5 mem_24g_interval_min
+0x47b6 mem_24g_interval_max
+0x47b7 mem_24g_ensure
+0x47b8 mem_24g_enter_hibernate
+0x47c0 mem_24g_enter_lpm_timer
+0x47c1 mem_24g_pairing_sm
+0x47c2 mem_24g_addr_copy
+0x47c6 mem_24g_sifs
+0x47c7 mem_24g_rxcnt
+0x47c8 mem_24g_addr_private_dongle
+0x47cc mem_24g_map_buff0_dongle
+0x47cd mem_24g_channel_cnt_dongle
+0x47ce mem_24g_pairing_sm_dongle
+0x47cf mem_24g_tx_btclk_dongle
+0x47d3 mem_24g_interval_dongle
+0x47d4 mem_24g_ch_update_dongle
+0x47d5 mem_24g_rx_sync_dongle
+0x47d6 mem_24g_ch_cnt_dongle
+0x47d7 mem_24g_rxbuf_temp_dongle
+0x47dd mem_24g_rxbuf_dongle
+0x47e3 mem_24g_rxfail_cnt_dongle
+0x47e6 mem_24g_spi_enable_flag
+0x4729 mem_acl_credits
+0x472b mem_allow_switch
+0x472c mem_hci_acl_queue_start/*param_acl_pktcnt+2 byte*/
+0x4730 mem_hci_wake_clk
+0x4729 mem_kb_state
+0x472b mem_kb_report_data
+0x4731 mem_kb_keys
+0x4732 mem_kb_rcv_led_data
+0x4733 mem_kb_fast_wake_last
+0x4737 mem_led_cap_gpio
+0x4738 mem_led_num_gpio
+0x4739 mem_led_scl_gpio
+0x473a mem_kb_current_vdd_value_10times
+0x473c mem_kb_read_adc_cnt_100ms
+0x473d mem_kb_current_vdd_value
+0x473f mem_led_power_blink_count
+0x4740 mem_led_power_500ms_cnt
+0x4741 mem_kb_map2
+0x49fd mem_3v1_adc_default
+0x49ff mem_kb_map
+0x4a9d mem_kb_discovery_timer
+0x4a9f mem_kb_direct_timer
+0x4aa1 mem_kb_no_data_timer
+0x4aa3 mem_kb_direct_timeout
+0x4aa5 mem_kscn_event_last
+0x4aa6 mem_kscan_event_num_last
+0x4aa7 mem_auto_enable_mult_timer
+0x4aa8 mem_auto_enable_mult_timer_init
+0x4aa9 mem_kb_temp_flag
+0x4aaa mem_map2_out_report0
+0x4ab2 mem_map2_out_report1
+0x4aba mem_table_last_repory_data0
+0x4ac2 mem_table_last_repory_data1
+0x4aca mem_kb_down
+0x4ad4 mem_kb_down_last
+0x4ade mem_table_temp
+0x4ae6 mem_pincode_vk_last
+0x4ae7 mem_kb_device_button_last
+0x4ae8 mem_kb_device_button_timer
+0x4ae9 mem_kb_current_status
+0x4aea mem_seq
+0x4aeb mem_dorx_cnt
+0x4aec mem_matched_btclk
+0x4aee mem_master_sniff_interval
+0x4aef mem_led_power_gpio
+0x4af0 mem_kb_check_vdd_count
+0x4af2 mem_0v_adc_data
+0x4af4 mem_2v2_adc_data
+0x4af6 mem_3v_adc_data
+0x4af8 mem_select_system_led_timer
+0x4af9 mem_led_cap_gpio_status
+0x4afa mem_kb_no_data_timeout
+0x4afc mem_kb_gpio_last_val
+0x4b00 mem_store_current_status
+0x4b01 mem_kb_led_on_timer
+0x4b02 mem_kb_debug_sm
+0x4b03 mem_kb_mode
+0x4b05 mem_kb_mode_revese
+0x4b07 mem_master_addr
+0x4b0d mem_led_device_blink_count
+0x4b0e mem_led_device_500ms_cnt
+0x4b0f mem_kb_caps_led_status
+0x4b10 mem_kb_reconnection_ssp
+0x4b11 mem_kb_rcv_hid_control_rsp
+0x4b12 mem_kb_down_regroup
+0x4b17 mem_kb_get_fn_flag
+0x4b18 mem_kb_kscan_cnt
+0x4b19 mem_kb_down_test
+0x4b23 mem_kb_release_fn_data
+0x4b24 mem_led_cap_delay_timer
+0x4b25 mem_led_cap_mult_timer
+0x4b26 mem_led_cap_flag
+0x4b27 mem_hid_rx_data
+0x4b28 mem_kb_fn_c
+0x4b29 mem_kb_c_fn
+0x4b2a mem_keyboard_uuid_list
+0x4db4 mem_keyboard_uuid_list_end
+0x4db4 mem_keyboard_le_att_list
+0x4fa8 mem_keyboard_le_att_list_end
+0x4729 mem_module_wake_up_gpio
+0x472a mem_module_state_gpio
+0x472b mem_module_connect_state_gpio
+0x472c mem_current_packet_length
+0x472e mem_module_state
+0x472f mem_module_task
+0x4730 mem_cmode_addr
+0x4736 mem_module_mcu_wake_pin
+0x4737 mem_module_mcu_wake_delay_us
+0x473b mem_module_spp_lpm_mult
+0x473c mem_module_le_lpm_mult
+0x473d mem_module_bluetooth_stauts_by_command
+0x473e mem_module_uart_rx_buffer
+0x4740 mem_module_uart_rx_buffer_end
+0x4742 mem_module_uart_tx_buffer
+0x4744 mem_module_uart_tx_buffer_end
+0x4746 mem_module_read_vdd_flag
+0x4747 mem_module_read_vdd_count
+0x4748 mem_module_vdd_quotient
+0x4749 mem_module_vdd_remainder
+0x474a mem_module_le_buff_len
+0x474c mem_module_le_buff_len_all
+0x474e mem_module_le_buff_data_len_all
+0x4750 mem_module_le_continue_flag
+0x4751 mem_module_le_rx_data_len
+0x4752 mem_module_le_rx_data_address
+0x4754 mem_module_le_rx_data_handle
+0x4756 mem_module_data_write_handle
+0x4758 mem_module_data_write_handle2
+0x475a mem_module_flag
+0x475b mem_le_notify_type
+0x475c mem_module_hci_notify_start
+0x475e mem_module_hci_notify_offset
+0x4760 mem_module_hci_notify_len
+0x4762 mem_module_hci_notify_att
+0x4764 mem_module_hci_notify_original_len
+0x4766 mem_module_uuid_list
+0x4892 mem_module_uuid_list_end
+0x4892 mem_module_le_att_list
+0x4a86 mem_module_le_att_list_end
+0x4a86 mem_nv_data
+0x4a86 mem_nv_data0
+0x4aa8 mem_nv_data1
+0x4aca mem_nv_data2
+0x4aec mem_nv_data3
+0x4b0e mem_nv_data4
+0x4729 mem_mouse_key
+0x472a mem_mouse_x
+0x472c mem_mouse_y
+0x472e mem_mouse_z
+0x472f mem_mouse_tz
+0x4730 mem_mouse_xy_h
+0x4731 mem_sensor_shutter_hi
+0x4732 mem_sensor_shutter_lo
+0x4733 mem_sensor_smart_flag
+0x4734 mem_sensor_squal_reg
+0x4735 mem_mouse_move_flag
+0x4736 mem_reconnect_timeout
+0x4737 mem_mouse_direct_timeout
+0x4739 mem_mouse_no_data_timeout
+0x473b mem_mouse_blank_data_timeout
+0x473d mem_mouse_discovery_timer
+0x473f mem_mouse_direct_timer
+0x4741 mem_mouse_no_data_timer
+0x4743 mem_mouse_blank_data_timer
+0x4745 mem_mouse_send_blank_timer
+0x4746 mem_mouse_dpi
+0x4747 mem_mouse_dpi_button_state
+0x4748 mem_mouse_test_cnt
+0x4749 mem_le_hibernate_timer
+0x474b mem_mouse_mode_state
+0x474c mem_mouse_le_notify_handle
+0x474d mem_lbutton_gpio
+0x474e mem_rbutton_gpio
+0x474f mem_mbutton_gpio
+0x4750 mem_sbutton1_gpio
+0x4751 mem_sbutton2_gpio
+0x4752 mem_dpi_button_gpio
+0x4753 mem_sensor_data_gpio
+0x4754 mem_whee_a_data_gpio
+0x4755 mem_whee_b_data_gpio
+0x4756 mem_sensor_reset_gpio
+0x4757 mem_device1_led_gpio
+0x4758 mem_device2_led_gpio
+0x4759 mem_device3_led_gpio
+0x475a mem_conn_cnt
+0x475b mem_whee_ta_data_gpio
+0x475c mem_whee_tb_data_gpio
+0x475d mem_wheel_tb_old_pinlevel
+0x475e mem_wheel_tb_new_pinlevel
+0x475f mem_wheel_tog
+0x4760 mem_mouse_tz_data
+0x4761 mem_mouse_tz_data_count
+0x4762 mem_mouse_tz_data_count1
+0x4763 mem_mwhee_a_data_gpio
+0x4764 mem_mwhee_b_data_gpio
+0x4765 mem_mwheel_b_old_pinlevel
+0x4766 mem_mwheel_b_new_pinlevel
+0x4767 mem_mwheel_tog
+0x4768 mem_mouse_z_data
+0x4769 mem_mouse_z_data_count
+0x476a mem_mouse_z_data_count1
+0x476b mem_reconn_mode
+0x476c mem_mouse_statue_led_timer
+0x476d mem_device_flag
+0x476e mem_mouse_uuid_list
+0x4a5c mem_mouse_uuid_list_end
+0x4a5c mem_mouse_le_att_list
+0x4cb4 mem_mouse_le_att_list_end
+0x4729 mem_shutter_send_data
+0x472d mem_shutter_key_temp
+0x472e mem_shutter_send_length
+0x472f mem_shutter_clkn_bt_last
+0x4733 mem_shutter_key
+0x4734 mem_shutter_flag
+0x4735 mem_shutter_cable_unplug_conut
+0x4736 mem_shutter_hid_disconn_count
+0x4737 mem_shutter_1key_send_sm
+0x4738 mem_shutter_iphonekey_gpio
+0x4739 mem_shutter_androidkey_gpio
+0x473a mem_shutter_key_number
+0x473b mem_read_eeprom_temp
+0x473c mem_read_eeprom_mac_addr
+0x473f mem_scale_tx_length
+0x4740 mem_scale_txbuff_inuse
+0x4741 mem_adv_lap_ptr
+0x4743 mem_le_sleep_flag
+0x4744 mem_rx_window_sniff_inc
+0x4746 mem_pair_state
+0x4747 mem_exchange_mtu_req
+0x4748 mem_le_sleep_timeout
+0x474a mem_le_sleep_timeout_timer_count
+0x474c mem_le_fast_adv_timeout
+0x474e mem_le_fast_adv_timeout_timer_count
+0x4750 mem_led_fast_dark_time
+0x4752 mem_led_fast_light_time
+0x4754 mem_power_on_pin
+0x4755 mem_hard_soft_switch_case
+0x4756 mem_shutter_powerup_flag
+0x4757 mem_shutter_button_timeout
+0x4758 mem_shutter_button_timer
+0x4759 mem_power_timeout
+0x475a mem_power_timer
+0x475b mem_enable_key_scan
+0x475c mem_packet_interval_set
+0x475e mem_shutter_led_num
+0x475f mem_led_map
+0x4763 mem_fast_adv_led_style
+0x4763 mem_fa_led_type
+0x4764 mem_fa_led_pin
+0x4765 mem_fa_led_on_time
+0x4767 mem_fa_led_off_time
+0x4769 mem_fa_blink_count
+0x476a mem_slow_adv_led_style
+0x476a mem_sa_led_type
+0x476b mem_sa_led_pin
+0x476c mem_sa_led_on_time
+0x476e mem_sa_led_off_time
+0x4770 mem_sa_blink_count
+0x4771 mem_power_on_led_style
+0x4771 mem_po_led_type
+0x4772 mem_po_led_pin
+0x4773 mem_po_led_on_time
+0x4775 mem_po_led_off_time
+0x4777 mem_po_blink_count
+0x4778 mem_powe_off_led_style
+0x4778 mem_pf_led_type
+0x4779 mem_pf_led_pin
+0x477a mem_pf_led_on_time
+0x477c mem_pf_led_off_time
+0x477e mem_pf_blink_count
+0x477f mem_connected_led_style
+0x477f mem_co_led_type
+0x4780 mem_co_led_pin
+0x4781 mem_co_led_on_time
+0x4783 mem_co_led_off_time
+0x4785 mem_co_blink_count
+0x4786 mem_key_led_style
+0x4786 mem_key_led_style_ind_0
+0x4786 mem_key_led_style_ind_0_data
+0x478d mem_key_led_style_ind_1
+0x478d mem_key_led_style_ind_1_data
+0x4794 mem_key_led_style_ind_2
+0x4794 mem_key_led_style_ind_2_data
+0x479b mem_key_led_style_ind_3
+0x479b mem_key_led_style_ind_key_release
+0x479b mem_key_led_style_ind_3_data
+0x47a2 mem_temp_led_style
+0x47a2 mem_temp_led_type
+0x47a3 mem_temp_led_pin
+0x47a4 mem_temp_led_on_time
+0x47a6 mem_temp_led_off_time
+0x47a8 mem_temp_blink_count
+0x47a9 mem_shutter_key_num
+0x47aa mem_key_conf0
+0x47aa mem_key_conf0_pin
+0x47ab mem_key_conf0_led
+0x47ac mem_key_conf1
+0x47ac mem_key_conf1_pin
+0x47ad mem_key_conf1_led
+0x47ae mem_key_conf2
+0x47ae mem_key_conf2_pin
+0x47af mem_key_conf2_led
+0x47b0 mem_key_conf3
+0x47b0 mem_key_conf3_pin
+0x47b1 mem_key_conf3_led
+0x47b2 mem_key_conf4
+0x47b2 mem_key_conf4_pin
+0x47b3 mem_key_conf4_led
+0x47b4 mem_key_conf5
+0x47b4 mem_key_conf5_pin
+0x47b5 mem_key_conf5_led
+0x47b6 mem_key_value_temp
+0x47b8 mem_key_value
+0x47ba mem_key_packet_count
+0x47bb mem_key_next_addr
+0x47bd mem_key_value_temp1
+0x47be mem_key_value_temp2
+0x47bf mem_key_value_temp3
+0x47c0 mem_key_value_temp4
+0x47c1 mem_key_value_temp5
+0x47c2 mem_key_value_temp6
+0x47c3 mem_key0_press
+0x47d7 mem_key0_release
+0x47eb mem_key1_press
+0x47f9 mem_key1_release
+0x4807 mem_key2_press
+0x4815 mem_key2_release
+0x4823 mem_key3_press
+0x4831 mem_key3_release
+0x483f mem_key4_press
+0x484d mem_key4_release
+0x485b mem_key5_press
+0x4869 mem_key5_release
+0x4877 mem_queue_ele_num
+0x4878 mem_queue_read
+0x487a mem_queue_write
+0x487c mem_queue_start
+0x487c mem_data_ele0
+0x4886 mem_data_ele1
+0x4890 mem_data_ele2
+0x489a mem_data_ele3
+0x48a4 mem_data_ele4
+0x48ae mem_data_ele5
+0x48b8 mem_queue_end
+0x48b8 mem_queue_temp
+0x48ba mem_shutter_key_data_flag
+0x48bb mem_shutter_key_data_flag_1
+0x48bc mem_le_find_type_value_start_handle
+0x48be mem_le_find_type_value_end_handle
+0x48c0 mem_shutter_find_type_value_flag
+0x48c1 mem_le_uuid
+0x48c2 mem_send_updata_le_param_timer
+0x48c3 mem_le_smp_key_dist
+0x48c6 mem_ltk_states
+0x48c7 mem_shutter_conn_update_timer
+0x48c8 mem_empty_count
+0x48c9 mem_shutter_notification_len
+0x48ca mem_shutter_notification_addr
+0x48cc mem_shutter_le_att_list
+0x4729 mem_current_event
+0x472a mem_ipc_lock_rx_data_bt
+0x472b mem_ipc_lock_rx_data_c51
+0x472c mem_ipc_lock_tx_data_bt
+0x472d mem_ipc_lock_tx_data_c51
+0x472e mem_ipc_2bt_fifo_head
+0x47c4 mem_ipc_2bt_fifo_end
+0x47c4 mem_ipc_2bt_read_index
+0x47c6 mem_ipc_2bt_write_index
+0x47c8 mem_ipc_2C51_fifo_head
+0x482c mem_ipc_2C51_fifo_end
+0x482c mem_ipc_2C51_read_index
+0x482e mem_ipc_2C51_write_index
+0x4830 mem_c51_private_area
+0x4894 mem_ipc_tx_evt_buff
+0x4896 mem_ipc_tx_evt
+0x4897 mem_ipc_rx_type
+0x4898 mem_ipc_bt_timer
+0x489a mem_ipc_c51_timer
+0x489c mem_ipc_bt_100ms_timer
+0x489d mem_ipc_c51_100ms_timer
+0x489e mem_ipc_last_check_timer
+0x48a2 mem_new_24g_rxbuf
+0x48c4 mem_new_24g_txbuf
+0x48e4 mem_new_24g_txpayload
+0x4906 mem_new_24g_rxpayload
+0x4926 mem_new_24g_rxdata_length
+0x4927 mem_new_24g_pid
+0x4928 mem_new_24g_datalen
+0x4929 mem_new_24g_data_type
+0x492a mem_new_24g_txlen
+0x492b mem_new_24g_rx_window
+0x492d mem_new_24g_ensure
+0x492e mem_new_24g_txfail_cnt
+0x4930 mem_new_24g_get_ack_fail
+0x4931 mem_new_24g_retry
+0x4932 mem_new_24g_ch
+0x4933 mem_new_24g_current_ch_number
+0x4934 mem_new_24g_paring_addr
+0x4938 mem_new_24g_pairing_sm
+0x4939 mem_new_24g_ch_map1
+0x493d mem_new_24g_ch_map2
+0x4941 mem_new_24g_ch_map3
+0x4945 mem_new_24g_ch_map4
+0x4949 mem_new_24g_tx_btclk
+0x494d mem_new_24g_interval
+0x494e mem_new_24g_interval_min
+0x494f mem_new_24g_interval_max
+0x4950 mem_new_24g_addr
+0x4954 mem_new_24g_abort_pac
+0x4955 mem_new_24g_sync_pac
+0x4956 mem_new_24g_check_dongle_times
+0x4958 mem_new_24g_enter_hibernate
+0x4960 mem_new_24g_device_addr
+0x4964 mem_new_24g_pac_index
+0x4965 mem_new_24g_no_ack
+0x4966 mem_new_24g_sta_crc
+0x4969 mem_new_24g_last_crc
+0x496c mem_new_24g_sta_pid
+0x496d mem_new_24g_last_pid
+0x496e mem_new_24g_max_retry
+0x496f mem_new_24g_mode
+0x4970 mem_new_uart_packet
+0x4990 mem_new_24g_common_temp
+0x49b0 mem_new_24g_rf_last_sta
+0x49b1 mem_new_24g_rf_hop_ch
+0x49b2 mem_new_24g_sync_cnt
+0x49b3 mem_new_24g_hop_pac_retry
+0x49b4 mem_new_24g_rf_work_stage
+0x49b5 mem_new_24g_hop_fastly_cnt
+0x49b6 mem_new_24g_auto_paring_switch
+0x49b7 mem_new_24g_key_wheel_event
+0x49b8 mem_new_24g_delay_long_sleep_cnt
+0x49b9 mem_new_24g_delay_long_sleep_maxcnt
+0x49ba mem_new_24g_enter_lpm_timer
+0x49bb mem_new_24g_syncword
+0x49bd mem_new_24g_syncword_crc8
+0x49be mem_new_24g_get_syncword_crc8
+0x49bf mem_new_24g_paccnt
+0x49c0 mem_new_24g_ota_enable
+0x49c1 mem_bt_wakeup_from_long_mult
+0x49c2 mem_bt_motion_event
+0x49c3 mem_tx_power_temp
+0x49c4 mem_power_ctrl_level
+0x49c5 mem_power_ctrl_pac_succ_cnt
+0x49c6 mem_rssi_signal_buf
+0x49ce mem_rssi_signal_index
+0x49cf mem_rssi_hex_received
+0x49d0 mem_rssi_avg_received
+0x49d1 mem_last_txlch
+0x49d2 mem_last_txlen
+0x49d4 mem_last_txdata
+0x49e8 mem_device_uuid_list
+0x4c40 mem_device_uuid_list_end
+0x4c40 mem_device_le_att_list
+0x4e20 mem_device_le_att_list_end
+0x4e20 mem_empty_count_user
+0x4e21 mem_hid_buff
+0x4e41 mem_adc_0v
+0x4e43 mem_adc_3v
+0x4e45 mem_hibernate_flag
+0x4e46 mem_new_supervision_to
+0x4e48 mem_le_rx_winsows
+0x4e4c mem_le_att_report1
+0x4e4e mem_le_att_report2
+0x4e50 mem_le_slave_update_param_timer
+0x4e51 mem_le_slave_update_mult_timer
+0x4e52 mem_le_reconn_enable_notify_timer
+0x4e53 mem_le_reconn_flag
+0x4e54 mem_le_buff_temp
+0x4e60 mem_le_rx_window_inc
+0x4e62 mem_le_prepare_tx_retransmited_number
+0x4e63 mem_last_check_clk
+0x4e67 mem_hid_send_handshake
+0x4e68 mem_feature_ext_page_number
+0x4e69 mem_rf_init_data_new
+0x4e74 mem_short_lpm_interval_param
+0x4e78 mem_short_lpm_enable
+0x4e79 mem_short_lpm_tx_cnt
+0x4e7a mem_ckln_24g_short_lpm
+0x4e7d mem_send_data_24g_short_lpm
+0x4e7e mem_short_lpm_interval_cnt
+0x4e7f mem_ipc_is_ready
+0x4e80 mem_short_data_wheel
+0x4e81 mem_ble_data_wheel
+0x4e82 mem_ble_data_wheel_lpm_timer
+0x4e83 mem_bt_read_ipc_count
+0x4e84 mem_51_read_sensor_count
+0x4e85 mem_queue_write_prt
+0x4e86 mem_queue_read_ptr
+0x4e87 mem_queue_buffer0
+0x4e8e mem_queue_buffer1
+0x4e95 mem_queue_buffer2
+0x4e9c mem_queue_buffer3
+0x4ea3 mem_ble_read_ipc_fifo_once
+0x4ea4 mem_ble_send_flag
+0x4ea5 mem_mouse_le_pairing_flag
+0x4ea6 mem_le_mouse_fast_conn_flag
+0x4ea7 mem_le_start_adv
+0x4ea8 mem_le_start_fast_conn_count
+0x4ea9 mem_mouse_eeprom_base
+0x4eab mem_mouse_reconn_addr
+0x4ead mem_mouse_le_reconn_addr_data
+0x4eb3 mem_mouse_24g_reconn_addr_data
+0x4eb9 mem_le_fast_conn_finished
+0x4eba mem_le_init_eeprom_base_count
+0x4ebb mem_32asm_data_end
+0x4ebb mem_mult_time_arrive_flag
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/otp.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/otp.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/otp.dat	(working copy)
@@ -0,0 +1,12 @@
+00
+02
+aa
+55
+00
+00
+aa
+55
+00
+00
+82
+78
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/otp.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/otp.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/otp.rom	(working copy)
@@ -0,0 +1,16384 @@
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/program.lis
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/program.lis	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/program.lis	(working copy)
@@ -0,0 +1,2143 @@
+include "bt_format "
+org 0x0000
+0000 c5128011 bmark1 mark_ext_patch ,patch_ext 
+0001 c0000026 beq patch00_0 ,p_soft_reset 
+0002 c0018031 beq patch00_3 ,p_main_loop 
+0003 c0430036 beq patch10_6 ,p_shutdown_radio 
+0004 c0450040 beq patch11_2 ,p_set_freq_tx 
+0005 c0458062 beq patch11_3 ,p_initialize_radio_cont 
+0006 c053806e beq patch14_7 ,p_lpm_recover_clk 
+0007 c0540075 beq patch15_0 ,p_lpm_dispatch 
+0008 c0548089 beq patch15_1 ,p_lpm_dispatch_next2 
+0009 c056009c beq patch15_4 ,p_lpm_dispatch_unconn 
+000a c05a0341 beq patch16_4 ,p_device_init 
+000b c05a80b5 beq patch16_5 ,p_app_lpm_init 
+000c c05b00bc beq patch16_6 ,p_app_process_bb_event 
+000d c05b80de beq patch16_7 ,p_app_evt_timer 
+000e c05c8226 beq patch17_1 ,p_app_flag_store 
+000f c05d022a beq patch17_2 ,p_app_initflag_check 
+0010 20203b34 branch loop 
+
+patch_ext:
+0011 c0028118 beq patch20_5 ,p_le_slave_match 
+0012 c00b011d beq patch22_6 ,p_le_receive_skip 
+0013 c00d8121 beq patch23_3 ,p_le_send_adv_ind 
+0014 c0118124 beq patch24_3 ,p_le_update_param 
+0015 c0178148 beq patch25_7 ,p_le_prepare_tx 
+0016 c018815d beq patch26_1 ,p_le_prepare_tx_ll 
+0017 c019016f beq patch26_2 ,p_le_prepare_smp0 
+0018 c0198182 beq patch26_3 ,p_le_prepare_att 
+0019 c01c8193 beq patch27_1 ,p_le_send_packet 
+001a c01e01a0 beq patch27_4 ,p_le_parse0 
+001b c01e81b3 beq patch27_5 ,p_le_parse_smp 
+001c c01f01b9 beq patch27_6 ,p_le_parse_att 
+001d c01f81d2 beq patch27_7 ,p_le_adv 
+001e c02101f0 beq patch28_2 ,p_le_receive_window_size 
+001f c02681f5 beq patch29_5 ,p_le_lpm_set_mult 
+0020 c04a8232 beq patch32_5 ,p_gpio_set_before_lpm_common 
+0021 c0798239 beq patch3e_3 ,p_ui_timer_check_end 
+0022 c07b8245 beq patch3e_7 ,p_check_51cmd_once 
+0023 c07c026f beq patch3f_0 ,p_check_51cmd_once_continue0 
+0024 c07c8275 beq patch3f_1 ,p_check_enter_hibernate 
+0025 20203b34 branch loop 
+
+p_soft_reset:
+0026 20800000 clear_stack 
+0027 2435b004 nbranch soft_reset + 3 ,wake 
+0028 6800c595 fetch 1 ,mem_le_switch_send_data 
+0029 243a002f nbranch p_soft_reset_start_51 ,blank 
+002a 6800ce78 fetch 1 ,mem_short_lpm_enable 
+002b 203a3004 branch soft_reset + 3 ,blank 
+002c 704e7f00 jam 0 ,mem_ipc_is_ready 
+002d c5933004 bmark0 mark_24g ,soft_reset + 3 
+002e 2435b004 nbranch soft_reset + 3 ,wake 
+
+p_soft_reset_start_51:
+002f 70828003 hjam start_c51_core ,core_docd_ctrl 
+0030 20203004 branch soft_reset + 3 
+
+p_main_loop:
+0031 2040027f call p_ipc_timer_check 
+0032 204002bb call p_ipc_rx 
+0033 6800ce78 fetch 1 ,mem_short_lpm_enable 
+0034 243a037a nbranch p_24g_short_lpm_process_loop ,blank 
+0035 2020301b branch main_loop + 2 
+
+p_shutdown_radio:
+0036 2030b9a3 branch shutdown_radio0 ,is_rx 
+0037 708955d4 hjam 0xd4 ,0x955 
+0038 20000004 nop 4 
+0039 708955d2 hjam 0xd2 ,0x955 
+003a 20000004 nop 4 
+003b 708955d1 hjam 0xd1 ,0x955 
+003c 20000004 nop 4 
+003d 6800c280 fetch 1 ,mem_tx_power 
+003e c00a39ae beq tx_power_pair ,shutdown_radio_pair 
+003f 2020399c branch shutdown_radio_select 
+
+p_set_freq_tx:
+0040 60088017 storet 1 ,mem_last_freq 
+0041 1840a200 add temp ,0 ,rega 
+0042 20403a13 call rf_write_freq 
+0043 58000500 setarg param_pll_setup 
+0044 20403b35 call sleep 
+
+p_txon:
+0045 70890601 hjam 0x1 ,rfen_adc 
+0046 7089003c hjam 0x3c ,rfen_rx 
+0047 708901e0 hjam 0xe0 ,rfen_tx 
+0048 70896d12 hjam 0x12 ,0x96d 
+0049 2000000a nop 10 
+004a 70890201 hjam 0x01 ,rfen_mdm 
+004b 7089023d hjam 0x3d ,rfen_mdm 
+004c 2000000a nop 10 
+004d 708903b7 hjam 0xb7 ,rfen_sn 
+004e 2000000a nop 10 
+004f 7089027f hjam 0x7f ,rfen_mdm 
+0050 6800c280 fetch 1 ,mem_tx_power 
+0051 c00a005f beq tx_power_pair ,p_set_tx_power_pair 
+0052 c2808059 bbit1 tx_power_3db ,p_rx_high_sens 
+0053 c2810059 bbit1 tx_power_5db ,p_rx_high_sens 
+
+p_rx_low_sens:
+0054 70894c5b hjam 0x5b ,0x894c 
+0055 70894d96 hjam 0x96 ,0x894d 
+0056 70894e2c hjam 0x2c ,0x894e 
+0057 70894f46 hjam 0x46 ,0x894f 
+0058 2020005d branch p_txon_select_power_level 
+
+p_rx_high_sens:
+0059 70894cfb hjam 0xfb ,0x894c 
+005a 70894def hjam 0xef ,0x894d 
+005b 70894eec hjam 0xec ,0x894e 
+005c 70894f5e hjam 0x5e ,0x894f 
+
+p_txon_select_power_level:
+005d 6800c280 fetch 1 ,mem_tx_power 
+005e 202039dc branch txon_power_select 
+
+p_set_tx_power_pair:
+005f 708956c2 hjam 0xc2 ,0x8956 
+0060 708955d0 hjam 0xd0 ,0x8955 
+0061 20600000 rtn 
+
+p_initialize_radio_cont:
+0062 20403cd2 call lpm_cal_xtal_startup 
+0063 20403a5f call switchto_dpllclk 
+0064 70804206 hjam clksel_rc ,core_clksel 
+0065 68108968 hfetch 1 ,rf_clkpll_int 
+0066 79207e07 set1 7 ,pdata 
+0067 60108968 hstore 1 ,rf_clkpll_int 
+0068 793ffe07 set0 7 ,pdata 
+0069 60108968 hstore 1 ,rf_clkpll_int 
+006a 79207e07 set1 7 ,pdata 
+006b 60108968 hstore 1 ,rf_clkpll_int 
+006c 70804205 hjam clksel_dpll ,core_clksel 
+006d 20203a0c branch initialize_radio_cont + 4 
+
+p_lpm_recover_clk:
+006e 20403c2b call lpm_recover_clk + 2 
+006f 6800ce45 fetch 1 ,mem_hibernate_flag 
+0070 207a0000 rtn blank 
+0071 704e4500 jam 0 ,mem_hibernate_flag 
+0072 1c427e00 copy clkn_bt ,pdata 
+0073 6002489e store 4 ,mem_ipc_last_check_timer 
+0074 20600000 rtn 
+
+p_lpm_dispatch:
+0075 c6130000 rtnmark1 mark_24g 
+0076 20403be2 call lpo_calibration 
+0077 6801c20f fetch 3 ,mem_clks_per_lpo 
+0078 207a0000 rtn blank 
+0079 68014042 fetch 2 ,mem_context + coffset_tsniff 
+007a d840ffff arg 0xffff ,temp 
+007b 98467c00 isub temp ,null 
+007c 20628000 rtn zero 
+007d 6800c131 fetch 1 ,mem_lpm_mode 
+007e 207a0000 rtn blank 
+007f 20404816 call l2cap_malloc_is_fifo_empty 
+0080 247a0000 nrtn blank 
+0081 20403d0e call lpm_check_wake_lock 
+0082 247a0000 nrtn blank 
+0083 20403a7b call xtal_fast_wake 
+0084 6800c6e2 fetch 1 ,mem_ssp_enable 
+0085 203a3c5e branch lpm_dispatch_next ,blank 
+0086 6800c639 fetch 1 ,mem_sp_local_key_invalid 
+0087 207a0000 rtn blank 
+0088 20203c5e branch lpm_dispatch_next 
+
+p_lpm_dispatch_next2:
+0089 6800c595 fetch 1 ,mem_le_switch_send_data 
+008a 203a0096 branch p_lpm_dispatch_long_mult ,blank 
+008b 6800809f fetch 1 ,mem_lpm_current_mult 
+008c 243a0096 nbranch p_lpm_dispatch_long_mult ,blank 
+008d 6800ce83 fetch 1 ,mem_bt_read_ipc_count 
+008e 6808ce84 fetcht 1 ,mem_51_read_sensor_count 
+008f 98467c00 isub temp ,null 
+0090 24628000 nrtn zero 
+0091 6800ce81 fetch 1 ,mem_ble_data_wheel 
+0092 247a0000 nrtn blank 
+0093 58000000 setarg 0 
+0094 600400a0 store 8 ,mem_gpio_wakeup_low 
+0095 20203c6a branch lpm_dispatch_next2 
+
+p_lpm_dispatch_long_mult:
+0096 204000a1 call p_check_ipc_for_lpm 
+0097 24740000 nrtn user 
+0098 68008b2b fetch 1 ,mem_c51_lmp_lock 
+0099 247a0000 nrtn blank 
+009a 7049c100 jam 0 ,mem_bt_wakeup_from_long_mult 
+009b 20203c6a branch lpm_dispatch_next2 
+
+p_lpm_dispatch_unconn:
+009c 204000a1 call p_check_ipc_for_lpm 
+009d 24740000 nrtn user 
+009e 68008b2b fetch 1 ,mem_c51_lmp_lock 
+009f 247a0000 nrtn blank 
+00a0 20203c8c branch lpm_dispatch_unconn + 2 
+
+p_check_ipc_for_lpm:
+00a1 204000ac call p_check_ipc_2bt 
+00a2 24740000 nrtn user 
+00a3 204000a9 call p_check_ipc_2c51 
+00a4 24740000 nrtn user 
+00a5 700b2b01 jam 1 ,mem_c51_lmp_lock 
+00a6 700b2a01 jam syc_task_lpm ,mem_c51_flag 
+00a7 204000b1 call p_c51_wait 
+00a8 202000ac branch p_check_ipc_2bt 
+
+p_check_ipc_2c51:
+00a9 6801482c fetch 2 ,mem_ipc_2c51_read_index 
+00aa 6809482e fetcht 2 ,mem_ipc_2c51_write_index 
+00ab 202000ae branch p_check_ipc_common 
+
+p_check_ipc_2bt:
+00ac 680147c4 fetch 2 ,mem_ipc_2bt_read_index 
+00ad 680947c6 fetcht 2 ,mem_ipc_2bt_write_index 
+
+p_check_ipc_common:
+00ae 98467c00 isub temp ,null 
+00af 2022e4c0 branch enable_usr ,zero 
+00b0 202031d4 branch disable_usr 
+
+p_c51_wait:
+00b1 68008b2a fetch 1 ,mem_c51_flag 
+00b2 2000000a nop 10 
+00b3 c08000b1 bne 0 ,p_c51_wait 
+00b4 20600000 rtn 
+
+p_app_lpm_init:
+00b5 70001627 jam 39 ,mem_le_ch_mapped 
+00b6 70015000 jam 0 ,mem_tester_emulate 
+00b7 70017e00 jam 0 ,mem_debug_config 
+00b8 70017f00 jam 0 ,mem_lch_code 
+00b9 58000000 setarg 0 
+00ba 600288d2 store 5 ,mem_sp_state_start 
+00bb 20600000 rtn 
+
+p_app_process_bb_event:
+00bc da2046f0 arg mem_ipc_fifo_bt2c51 ,rega 
+00bd 20407f95 call fifo_out 
+00be 207a0000 rtn blank 
+00bf 1fe22600 copy pdata ,regc 
+00c0 204000c2 call p_app_event_normal_process 
+00c1 20203d9b branch app_process_bb_event_priority 
+
+p_app_event_normal_process:
+00c2 c10c0000 rtneq bt_evt_linkkey_generate 
+00c3 c00a00c7 beq bt_evt_le_connected ,p_device_le_conn 
+00c4 c00a80d1 beq bt_evt_le_disconnected ,p_device_le_discon 
+00c5 c01480dc beq bt_evt_le_enc_info ,p_device_le_enc_info 
+00c6 20203d73 branch app_event_normal_process 
+
+p_device_le_conn:
+00c7 704e8300 jam 0 ,mem_bt_read_ipc_count 
+00c8 70421200 jam 0 ,mem_lpm_mult 
+00c9 704ebb00 jam 0 ,mem_mult_time_arrive_flag 
+00ca 704e5114 jam 20 ,mem_le_slave_update_mult_timer 
+00cb 20403e61 call app_ble_stop_adv 
+00cc 20403e59 call app_bt_stop_discovery 
+00cd 20403e7f call app_lpm_mult_enable 
+00ce 20403e20 call app_initflag_store 
+00cf 704eb901 jam 1 ,mem_le_fast_conn_finished 
+00d0 20203dc2 branch app_le_event_bb_connected 
+
+p_device_le_discon:
+00d1 704ea400 jam 0 ,mem_ble_send_flag 
+00d2 204002fc call queue_init 
+00d3 7044b200 jam 0 ,mem_ltk_exists 
+00d4 70421200 jam 0 ,mem_lpm_mult 
+00d5 704ebb00 jam 0 ,mem_mult_time_arrive_flag 
+00d6 704e5100 jam 0 ,mem_le_slave_update_mult_timer 
+00d7 70456a00 jam flag_le_pairing_null ,mem_le_pairing_state 
+00d8 68094e4e fetcht 2 ,mem_le_att_report2 
+00d9 600944f8 storet 2 ,mem_le_notify_handle 
+00da 204052a0 call le_clean_att_list_handle_enable 
+00db 20203dc6 branch app_le_event_bb_disconn 
+
+p_device_le_enc_info:
+00dc 20400106 call p_app_updata_le_param 
+00dd 20207e3b branch check_51cmd_le_start_write 
+
+p_app_evt_timer:
+00de 6008824e storet 1 ,mem_app_evt_timer_count 
+00df 6800c89c fetch 1 ,mem_ipc_bt_100ms_timer 
+00e0 1fe0fe01 increase 1 ,pdata 
+00e1 6000c89c store 1 ,mem_ipc_bt_100ms_timer 
+
+p_app_evt_100ms_loop:
+00e2 6800824e fetch 1 ,mem_app_evt_timer_count 
+00e3 207a0000 rtn blank 
+00e4 1fe0ffff increase -1 ,pdata 
+00e5 6000824e store 1 ,mem_app_evt_timer_count 
+00e6 20400109 call p_le_slave_update_mult_timer 
+00e7 204000ec call p_check_mult_parameter 
+00e8 20400112 call p_le_reconn_enable_notify_timer 
+00e9 204000f8 call p_24g_enter_lpm_timer 
+00ea 204000ff call p_ble_data_wheel_lpm_timer 
+00eb 202000e2 branch p_app_evt_100ms_loop 
+
+p_check_mult_parameter:
+00ec 6800cebb fetch 1 ,mem_mult_time_arrive_flag 
+00ed 207a0000 rtn blank 
+00ee 6800c212 fetch 1 ,mem_lpm_mult 
+00ef 2fe1fe20 compare 0x20 ,pdata ,0xff 
+00f0 244080f6 ncall p_set_mult_para ,true 
+00f1 6800c131 fetch 1 ,mem_lpm_mode 
+00f2 205a00f4 call p_set_multmode ,blank 
+00f3 20600000 rtn 
+
+p_set_multmode:
+00f4 70413101 jam 1 ,mem_lpm_mode 
+00f5 20600000 rtn 
+
+p_set_mult_para:
+00f6 70421220 jam 0x20 ,mem_lpm_mult 
+00f7 20600000 rtn 
+
+p_24g_enter_lpm_timer:
+00f8 6800c9ba fetch 1 ,mem_new_24g_enter_lpm_timer 
+00f9 207a0000 rtn blank 
+00fa 704e8000 jam 0 ,mem_short_data_wheel 
+00fb 1fe0ffff increase -1 ,pdata 
+00fc 6000c9ba store 1 ,mem_new_24g_enter_lpm_timer 
+00fd 247a0000 nrtn blank 
+00fe 20600000 rtn 
+
+p_ble_data_wheel_lpm_timer:
+00ff 6800ce82 fetch 1 ,mem_ble_data_wheel_lpm_timer 
+0100 207a0000 rtn blank 
+0101 1fe0ffff increase -1 ,pdata 
+0102 6000ce82 store 1 ,mem_ble_data_wheel_lpm_timer 
+0103 247a0000 nrtn blank 
+0104 704e8100 jam 0 ,mem_ble_data_wheel 
+0105 20600000 rtn 
+
+p_app_updata_le_param:
+0106 20403e7f call app_lpm_mult_enable 
+0107 7009bd12 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0108 20207d90 branch ui_ipc_send_cmd 
+
+p_le_slave_update_mult_timer:
+0109 6800ce51 fetch 1 ,mem_le_slave_update_mult_timer 
+010a 207a0000 rtn blank 
+010b 1fe0ffff increase -1 ,pdata 
+010c 6000ce51 store 1 ,mem_le_slave_update_mult_timer 
+010d 247a0000 nrtn blank 
+010e 70421220 jam 0x20 ,mem_lpm_mult 
+010f 70413101 jam 1 ,mem_lpm_mode 
+0110 704ebb01 jam 1 ,mem_mult_time_arrive_flag 
+0111 20600000 rtn 
+
+p_le_reconn_enable_notify_timer:
+0112 6800ce52 fetch 1 ,mem_le_reconn_enable_notify_timer 
+0113 207a0000 rtn blank 
+0114 1fe0ffff increase -1 ,pdata 
+0115 6000ce52 store 1 ,mem_le_reconn_enable_notify_timer 
+0116 247a0000 nrtn blank 
+0117 20203e6d branch app_ble_start_write 
+
+p_le_slave_match:
+0118 20404968 call le_got_first_packet 
+0119 20404b51 call le_acknowledge 
+011a 20404bd8 call le_prepare_tx 
+011b 204005a7 call power_ctrl_start 
+011c 20204945 branch le_slave_match + 5 
+
+p_le_receive_skip:
+011d 20403a50 call save_rssi 
+011e 1fe22200 copy pdata ,rega 
+011f 204005e5 call rssi_signal 
+0120 20204a3d branch le_receive_skip + 3 
+
+p_le_send_adv_ind:
+0121 68024e48 fetch 4 ,mem_le_rx_winsows 
+0122 60024596 store 4 ,mem_le_transmit_window 
+0123 20204a8c branch le_send_adv_ind + 2 
+
+p_le_update_param:
+0124 70413101 jam 1 ,mem_lpm_mode 
+0125 6801037c fetch 2 ,mem_le_event_count 
+0126 68090382 fetcht 2 ,mem_le_instant 
+0127 98467e00 isub temp ,pdata 
+0128 600109be store 2 ,mem_pdatatemp 
+0129 68008362 fetch 1 ,mem_le_state 
+012a 793ffe05 set0 lestate_update_param ,pdata 
+012b 793ffe03 set0 lestate_got_first_packet ,pdata 
+012c 60008362 store 1 ,mem_le_state 
+012d 68020366 fetch 4 ,mem_le_anchor 
+012e 68090364 fetcht 2 ,mem_le_tsniff 
+012f 600909c6 storet 2 ,mem_temp 
+0130 98462200 isub temp ,rega 
+0131 6800c45b fetch 1 ,mem_le_new_param 
+0132 6000838d store 1 ,mem_le_window_size 
+0133 e8c90000 ifetcht 2 ,contr 
+0134 e8c10000 ifetch 2 ,contr 
+0135 1febfe00 lshift2 pdata ,pdata 
+0136 60010364 store 2 ,mem_le_tsniff 
+0137 184b8400 lshift2 temp ,temp 
+0138 9840fe00 iadd temp ,pdata 
+0139 e8ca0000 ifetcht 4 ,contr 
+013a 600a038e storet 4 ,mem_le_slave_latency 
+013b 9a20fe00 iadd rega ,pdata 
+013c 1fe22800 copy pdata ,regab 
+013d 68010364 fetch 2 ,mem_le_tsniff 
+013e 680909c6 fetcht 2 ,mem_temp 
+013f 98467e00 isub temp ,pdata 
+0140 680909be fetcht 2 ,mem_pdatatemp 
+0141 984ffe00 imul32 temp ,pdata 
+0142 9a80fe00 iadd regab ,pdata 
+0143 60020366 store 4 ,mem_le_anchor 
+0144 20405199 call le_receive_window_size 
+0145 68010390 fetch 2 ,mem_le_superto 
+0146 60014561 store 2 ,mem_le_init_superto 
+0147 20600000 rtn 
+
+p_le_prepare_tx:
+0148 68008379 fetch 1 ,mem_le_arq 
+0149 c2828159 bbit1 wak ,p_le_prepare_tx_retansmited 
+014a 20400599 call power_ctrl_pac_succ_incrs 
+014b 704e6200 jam 0 ,mem_le_prepare_tx_retransmited_number 
+014c 6800ce20 fetch 1 ,mem_empty_count_user 
+014d 243a0153 nbranch p_le_send_empyt ,blank 
+014e 6800cea5 fetch 1 ,mem_mouse_le_pairing_flag 
+014f c0008157 beq 1 ,p_le_smp_empty 
+0150 68008303 fetch 1 ,mem_le_rxbuf + 1 
+0151 203a4bde branch le_prepare_tx_1 ,blank 
+0152 20204f87 branch le_send_empty 
+
+p_le_send_empyt:
+0153 6800ce20 fetch 1 ,mem_empty_count_user 
+0154 1fe0ffff increase -1 ,pdata 
+0155 6000ce20 store 1 ,mem_empty_count_user 
+0156 20204f87 branch le_send_empty 
+
+p_le_smp_empty:
+0157 704e2003 jam 3 ,mem_empty_count_user 
+0158 20204bde branch le_prepare_tx_1 
+
+p_le_prepare_tx_retansmited:
+0159 6800ce62 fetch 1 ,mem_le_prepare_tx_retransmited_number 
+015a 1fe0fe01 increase 1 ,pdata 
+015b 6000ce62 store 1 ,mem_le_prepare_tx_retransmited_number 
+015c 2020059d branch power_ctrl_pac_succ_decrs 
+
+p_le_prepare_tx_ll:
+015d 6800c467 fetch 1 ,mem_le_txpayload 
+015e c0030161 beq ll_start_enc_rsp ,p_le_send_start_enc_rsp 
+015f c0010168 beq ll_terminate_ind ,p_le_send_terminate_ind 
+0160 20204bfb branch le_prepare_tx_ll 
+
+p_le_send_start_enc_rsp:
+0161 6800ce53 fetch 1 ,mem_le_reconn_flag 
+0162 c0008165 beq 1 ,p_le_send_reconn_start_enc_rsp 
+0163 20403e6d call app_ble_start_write 
+0164 20204c86 branch le_send_start_enc_rsp 
+
+p_le_send_reconn_start_enc_rsp:
+0165 20400106 call p_app_updata_le_param 
+0166 704e5203 jam 3 ,mem_le_reconn_enable_notify_timer 
+0167 20204c90 branch le_send_start_enc_rsp_common 
+
+p_le_send_terminate_ind:
+0168 58000013 setarg 0x13 
+0169 e0a08000 istore 1 ,contw 
+016a 20404c58 call le_send_terminate_ind 
+016b 5800000a setarg 10 
+016c 60010390 store 2 ,mem_le_superto 
+016d 60014561 store 2 ,mem_le_init_superto 
+016e 20600000 rtn 
+
+p_le_prepare_smp0:
+016f 6800c46b fetch 1 ,mem_le_l2cap 
+0170 c0010176 beq smp_pairing_response ,p_le_send_smp_pairing_response 
+0171 c003017d beq smp_encryption_information ,p_le_send_smp_encryption_information 
+0172 c0038174 beq smp_master_identification ,p_le_send_smp_master_identification_only 
+0173 20204c18 branch le_prepare_smp0 
+
+p_le_send_smp_master_identification_only:
+0174 704ea500 jam 0 ,mem_mouse_le_pairing_flag 
+0175 20204d17 branch le_send_smp_master_identification_only 
+
+p_le_send_smp_pairing_response:
+0176 59000302 setarg param_smp_paring_response 
+0177 6001c4dc store 3 ,mem_le_pres 
+0178 58000001 setarg 0x01 
+0179 e0a08000 istore 1 ,contw 
+017a 58010010 setarg param_smp_key_dist0 
+017b e0a18000 istore 3 ,contw 
+017c 20204ccd branch le_send_smp_pairing_response_common 
+
+p_le_send_smp_encryption_information:
+017d 7009bd29 jam bt_evt_le_enc_info ,mem_fifo_temp 
+017e 20407d86 call ui_ipc_send_event 
+017f 7009bd47 jam xt_smp_master_identification ,mem_fifo_temp 
+0180 20404bd6 call le_xtype_fifo_in 
+0181 20204d01 branch le_send_smp_encryption_information_shutter 
+
+p_le_prepare_att:
+0182 6800c46b fetch 1 ,mem_le_l2cap 
+0183 c00d8186 beq attop_handle_value_notification ,p_le_send_att_handle_value_notification 
+0184 c00e8186 beq attop_handle_value_indication ,p_le_send_att_handle_value_indication 
+0185 20204c2b branch le_prepare_att + 5 
+
+p_le_send_att_handle_value_indication:
+
+p_le_send_att_handle_value_notification:
+0186 68094e4e fetcht 2 ,mem_le_att_report2 
+0187 6009446c storet 2 ,mem_le_l2cap + 1 
+0188 6800ce86 fetch 1 ,mem_queue_read_ptr 
+0189 1fe08401 add pdata ,1 ,temp 
+018a 18410403 and temp ,0x03 ,temp 
+018b 6008ce86 storet 1 ,mem_queue_read_ptr 
+018c 1feffe07 mul32 pdata ,7 ,pdata 
+018d d8c04e87 arg mem_queue_buffer0 ,contr 
+018e 98c08c00 iadd contr ,contr 
+018f e8c38000 ifetch 7 ,contr 
+0190 6003c46e store 7 ,mem_le_l2cap + 3 
+0191 d840000e arg 14 ,temp 
+0192 20204f89 branch le_send_packet 
+
+p_le_send_packet:
+0193 6008c466 storet 1 ,mem_le_txlen 
+0194 28200602 compare 2 ,type ,3 
+0195 24208198 nbranch p_le_send_non_l2cap ,true 
+0196 1840fffc add temp ,-4 ,pdata 
+0197 60014467 store 2 ,mem_le_txpayload 
+
+p_le_send_non_l2cap:
+0198 68088379 fetcht 1 ,mem_le_arq 
+0199 2040019b call p_le_send_check_md 
+019a 20204f92 branch le_send_non_l2cap1 
+
+p_le_send_check_md:
+019b 6800cea5 fetch 1 ,mem_mouse_le_pairing_flag 
+019c c000819e beq 1 ,enable_blank 
+019d 20204bd0 branch le_xtype_fifo_is_empty 
+
+enable_blank:
+019e 58000000 setarg 0 
+019f 20600000 rtn 
+
+p_le_parse0:
+01a0 1a627e00 copy regc ,pdata 
+01a1 c00001a6 beq ll_connection_update_req ,p_le_parse_connection_update_req 
+01a2 c00101a9 beq ll_terminate_ind ,p_le_parse_terminate_ind 
+01a3 c00181ad beq ll_enc_req ,p_le_parse_enc_req 
+01a4 c00501b1 beq ll_pause_enc_req ,p_le_parse_pause_enc_rsq 
+01a5 20204fb9 branch le_parse0 + 6 
+
+p_le_parse_connection_update_req:
+01a6 70413100 jam 0 ,mem_lpm_mode 
+01a7 704e513c jam 60 ,mem_le_slave_update_mult_timer 
+01a8 2020501f branch le_parse_connection_update_req 
+
+p_le_parse_terminate_ind:
+01a9 20405033 call le_parse_terminate_ind 
+
+le_clear_xtype_fifo:
+01aa 58000000 setarg 0 
+01ab 60044544 store 8 ,mem_le_xtype_fifo 
+01ac 20600000 rtn 
+
+p_le_parse_enc_req:
+01ad 20405039 call le_parse_enc_req 
+01ae 6800c56a fetch 1 ,mem_le_pairing_state 
+01af c1010000 rtneq flag_le_pairing_after_auth 
+01b0 20206418 branch load_device_list_mode_4_shutter 
+
+p_le_parse_pause_enc_rsq:
+01b1 7009bd2b jam xt_ll_pause_enc_rsp ,mem_fifo_temp 
+01b2 20204bd6 branch le_xtype_fifo_in 
+
+p_le_parse_smp:
+01b3 e8c08000 ifetch 1 ,contr 
+01b4 c00081b6 beq smp_pairing_request ,p_le_parse_smp_pairing_request 
+01b5 20204ffe branch le_parse_smp + 3 
+
+p_le_parse_smp_pairing_request:
+01b6 704ea501 jam 1 ,mem_mouse_le_pairing_flag 
+01b7 704e2003 jam 3 ,mem_empty_count_user 
+01b8 20205069 branch le_parse_smp_pairing_request 
+
+p_le_parse_att:
+01b9 e8c18000 ifetch 3 ,contr 
+01ba 6001839a store 3 ,mem_le_att_opcode 
+01bb c00901bd beq attop_write_request ,p_le_parse_att_write_request 
+01bc 20205011 branch le_parse_att + 4 
+
+p_le_parse_att_write_request:
+01bd 70413101 jam 1 ,mem_lpm_mode 
+01be 204001c9 call p_le_parse_att_write_common 
+01bf 6800839b fetch 1 ,mem_le_att_handle 
+01c0 1fe67c60 sub pdata ,ble_fast_conn_character_handle ,null 
+01c1 202281ce branch p_le_mouse_fast_conn_character_set ,zero 
+01c2 704ea600 jam 0 ,mem_le_mouse_fast_conn_flag 
+
+p_le_parse_att_write_request_next:
+01c3 20405125 call le_check_long_packet_patch 
+01c4 24628000 nrtn zero 
+
+p_le_parse_att_write_request_end:
+01c5 6800cea6 fetch 1 ,mem_le_mouse_fast_conn_flag 
+01c6 245a01d0 ncall p_le_set_enc_info_flag ,blank 
+01c7 7009bd13 jam attop_write_response ,mem_fifo_temp 
+01c8 20204bd6 branch le_xtype_fifo_in 
+
+p_le_parse_att_write_common:
+01c9 68008303 fetch 1 ,mem_le_rxbuf + 1 
+01ca 1fe0fff9 increase -7 ,pdata 
+01cb 1fe27200 icopy loopcnt 
+01cc 1f222400 copy loopcnt ,regb 
+01cd 20205135 branch le_parse_att_write_common + 6 
+
+p_le_mouse_fast_conn_character_set:
+01ce 704ea601 jam 1 ,mem_le_mouse_fast_conn_flag 
+01cf 202001c3 branch p_le_parse_att_write_request_next 
+
+p_le_set_enc_info_flag:
+01d0 7009bd29 jam bt_evt_le_enc_info ,mem_fifo_temp 
+01d1 20207d86 branch ui_ipc_send_event 
+
+p_le_adv:
+01d2 6800c3ff fetch 1 ,mem_le_adv_enable 
+01d3 207a0000 rtn blank 
+01d4 d8e00001 arg le_adv_interval_timer ,queue 
+01d5 20407ee2 call timer_check 
+01d6 247a0000 nrtn blank 
+01d7 7854fc00 disable master 
+01d8 78287c00 enable swfine 
+01d9 20404b1e call le_init_adv 
+01da 204049d4 call le_next_adv_channel 
+01db 20404a8a call le_send_adv_ind 
+01dc 243681e4 nbranch p_le_adv_not_match ,match 
+01dd 68008003 fetch 1 ,mem_le_req_rcv 
+01de 1fe0fe01 increase 1 ,pdata 
+01df 60008003 store 1 ,mem_le_req_rcv 
+01e0 68008302 fetch 1 ,mem_le_rxbuf 
+01e1 1fe17e0f and pdata ,0x0f ,pdata 
+01e2 c00181ee beq scan_req ,p_le_send_scan_response 
+01e3 c002d1af beq connect_req ,le_parse_connect_req 
+
+p_le_adv_not_match:
+01e4 68008016 fetch 1 ,mem_le_ch_mapped 
+01e5 c093d17d bne 39 ,le_adv_loop 
+01e6 180a7e00 random pdata 
+01e7 d84001ff arg 0x1ff ,temp 
+01e8 98417e00 iand temp ,pdata 
+01e9 1fe0fefa add pdata ,250 ,pdata 
+
+p_adv_delay:
+01ea 1fe0ffff increase -1 ,pdata 
+01eb 20000026 nop 38 
+01ec 243a01ea nbranch p_adv_delay ,blank 
+01ed 20205196 branch le_adv_not_match + 3 
+
+p_le_send_scan_response:
+01ee 20404ac5 call le_send_scan_response 
+01ef 202001e4 branch p_le_adv_not_match 
+
+p_le_receive_window_size:
+01f0 68024596 fetch 4 ,mem_le_transmit_window 
+01f1 d840ea60 arg 60000 ,temp 
+01f2 9840fe00 iadd temp ,pdata 
+01f3 60024596 store 4 ,mem_le_transmit_window 
+01f4 202051a9 branch le_receive_window_size + 16 
+
+p_le_lpm_set_mult:
+01f5 7855fc00 disable wake 
+01f6 203701f8 branch p_le_lpm_set_mult_attempt ,attempt 
+01f7 24368207 nbranch p_le_lpm_lost ,match 
+
+p_le_lpm_set_mult_attempt:
+01f8 20403cb7 call lpm_match 
+01f9 68014161 fetch 2 ,mem_rx_window_sniff 
+01fa 60010370 store 2 ,mem_le_receive_window 
+01fb 68008302 fetch 1 ,mem_le_rxbuf 
+01fc 2fe00601 compare 1 ,pdata ,3 
+01fd 2420bccb nbranch lpm_mult_short ,true 
+01fe 6800c465 fetch 1 ,mem_le_txheader 
+01ff 2fe00601 compare 1 ,pdata ,3 
+0200 2420bccb nbranch lpm_mult_short ,true 
+0201 20404bd0 call le_xtype_fifo_is_empty 
+0202 243a3ccb nbranch lpm_mult_short ,blank 
+0203 6800ce62 fetch 1 ,mem_le_prepare_tx_retransmited_number 
+0204 1fe67c01 sub pdata ,1 ,null 
+0205 24213ccb nbranch lpm_mult_short ,positive 
+0206 20205297 branch le_lpm_set_mult_attempt + 11 
+
+p_le_lpm_lost:
+0207 68094161 fetcht 2 ,mem_rx_window_sniff 
+0208 68014e60 fetch 2 ,mem_le_rx_window_inc 
+0209 98408400 iadd temp ,temp 
+020a 18430400 rshift temp ,temp 
+020b 68010370 fetch 2 ,mem_le_receive_window 
+020c 9840fe00 iadd temp ,pdata 
+020d 60010370 store 2 ,mem_le_receive_window 
+020e 20203cc3 branch lpm_lost 
+
+p_mouse_init_environment:
+020f 2040021d call p_mouse_iicd_read_eep_data 
+0210 df200003 arg 0x03 ,loopcnt 
+0211 d8c04ead arg mem_mouse_le_reconn_addr_data ,contr 
+0212 5800ffff setarg 0xffff 
+0213 20400221 call p_mouse_reconn_addr_empty_check 
+0214 24628000 nrtn zero 
+0215 6800cea8 fetch 1 ,mem_le_start_fast_conn_count 
+0216 207a0000 rtn blank 
+0217 1fe0ffff increase -1 ,pdata 
+0218 6000cea8 store 1 ,mem_le_start_fast_conn_count 
+0219 2040022a call p_app_initflag_check 
+021a 20628000 rtn zero 
+021b 704ea701 jam 1 ,mem_le_start_adv 
+021c 20600000 rtn 
+
+p_mouse_iicd_read_eep_data:
+021d d840000c arg 0x0c ,temp 
+021e da204ead arg mem_mouse_le_reconn_addr_data ,rega 
+021f 68014eab fetch 2 ,mem_mouse_reconn_addr 
+0220 2020624a branch iicd_read_eep_data + 5 
+
+p_mouse_reconn_addr_empty_check:
+0221 e8c90000 ifetcht 2 ,contr 
+0222 98467c00 isub temp ,null 
+0223 24628000 nrtn zero 
+0224 c2000221 loop p_mouse_reconn_addr_empty_check 
+0225 20600000 rtn 
+
+p_app_flag_store:
+0226 d8400002 arg 2 ,temp 
+0227 da2009ce arg mem_timeup ,rega 
+0228 da400030 arg eeprom_init_flag_offset ,regb 
+0229 2020626f branch iicd_write_eep_data 
+
+p_app_initflag_check:
+022a d8400002 arg 2 ,temp 
+022b da2009be arg mem_pdatatemp ,rega 
+022c da400030 arg eeprom_init_flag_offset ,regb 
+022d 20406245 call iicd_read_eep_data 
+022e 680109be fetch 2 ,mem_pdatatemp 
+022f d840aa55 arg eeprom_init_flag ,temp 
+0230 98467c00 isub temp ,null 
+0231 20600000 rtn 
+
+p_gpio_set_before_lpm_common:
+0232 68120078 hfetch 4 ,core_gpio_pu0 
+0233 681a007c hfetcht 4 ,core_gpio_pd0 
+0234 9841fe00 ior temp ,pdata 
+0235 1fe47e00 invert pdata ,pdata 
+0236 9a217e00 iand rega ,pdata 
+0237 60120070 hstore 4 ,core_gpio_oe0 
+0238 20600000 rtn 
+
+p_ui_timer_check_end:
+0239 1a227e00 copy rega ,pdata 
+023a 207a0000 rtn blank 
+023b 18408560 increase -160 ,temp 
+023c 18408560 increase -160 ,temp 
+023d 793f841c set0 28 ,temp 
+023e 600a4703 storet 4 ,mem_ui_timer_last_btclk 
+023f 1fe20400 copy pdata ,temp 
+0240 da2046f0 arg mem_ipc_fifo_bt2c51 ,rega 
+0241 20407fa6 call fifo_is_near_full 
+0242 247a0000 nrtn blank 
+0243 18427e00 copy temp ,pdata 
+0244 20207d7d branch ui_timer_check_send_evt 
+
+p_check_51cmd_once:
+0245 20407d80 call ui_ipc_get_lock 
+0246 da2046f8 arg mem_ipc_fifo_c512bt ,rega 
+0247 20407f95 call fifo_out 
+0248 1fe20400 copy pdata ,temp 
+0249 20407d84 call ui_ipc_put_lock 
+024a 18427e00 copy temp ,pdata 
+024b 207a0000 rtn blank 
+024c c006824f beq bt_cmd_start_adv ,p_check_51cmd_adv 
+024d c013825e beq bt_cmd_start_adv_reconn ,p_check_51cmd_adv_reconn 
+024e 20207db3 branch check_51cmd_once + 9 
+
+p_check_51cmd_adv:
+024f 793f8026 set0 mark_24g ,mark 
+0250 70413100 jam 0 ,mem_lpm_mode 
+0251 180a7e00 random pdata 
+0252 6000c53e store 1 ,mem_le_lap 
+0253 5826100e setarg 0x26100e 
+0254 6001c541 store 3 ,mem_le_lap + 3 
+0255 704e5300 jam 0 ,mem_le_reconn_flag 
+0256 68094e4e fetcht 2 ,mem_le_att_report2 
+0257 600944f8 storet 2 ,mem_le_notify_handle 
+0258 204052a0 call le_clean_att_list_handle_enable 
+0259 da400005 arg adv_flag_bredr_not_supported | adv_flag_limited_discoverable ,regb 
+
+p_le_start_adv:
+025a 20400268 call p_le_check_adv_flag 
+025b 1a427e00 copy regb ,pdata 
+025c e0c08000 istore 1 ,contr 
+025d 20207e07 branch check_51cmd_adv 
+
+p_check_51cmd_adv_reconn:
+025e 793f8026 set0 mark_24g ,mark 
+025f 70413100 jam 0 ,mem_lpm_mode 
+0260 704e5301 jam 1 ,mem_le_reconn_flag 
+0261 68094e4e fetcht 2 ,mem_le_att_report2 
+0262 20404f6a call le_att_check_notification_enable 
+0263 1a220a00 copy rega ,contw 
+0264 58000001 setarg 1 
+0265 e0a08000 istore 1 ,contw 
+0266 da400004 arg adv_flag_bredr_not_supported ,regb 
+0267 2020025a branch p_le_start_adv 
+
+p_le_check_adv_flag:
+0268 da204401 arg mem_le_adv_data ,rega 
+
+p_le_check_adv_flag_loop:
+0269 ea208000 ifetch 1 ,rega 
+026a 207a0000 rtn blank 
+026b 98c0a200 iadd contr ,rega 
+026c e8c08000 ifetch 1 ,contr 
+026d c1008000 rtneq 0x01 
+026e 20200269 branch p_le_check_adv_flag_loop 
+
+p_check_51cmd_once_continue0:
+026f 204058c5 call lmo_fifo_check 
+0270 243a7de5 nbranch check_51cmd_restore ,blank 
+
+p_check_51cmd_once_continue:
+0271 680089bd fetch 1 ,mem_fifo_temp 
+0272 c584fde0 bmark0 mark_context ,check_51cmd_check_idle 
+0273 c00f8295 beq bt_cmd_store_reconn_info_le ,p_rtn 
+0274 20207dd0 branch check_51cmd_once_continue + 2 
+
+p_check_enter_hibernate:
+0275 700b2a03 jam syc_task_hibernate ,mem_c51_flag 
+0276 204000b1 call p_c51_wait 
+
+p_enter_hibernate_continue:
+0277 704e455a jam 0x5a ,mem_hibernate_flag 
+0278 20403cfc call lpm_write_gpio_wakeup 
+0279 68120138 hfetch 4 ,core_lpm_ctrl 
+027a 793ffe0f set0 15 ,pdata 
+027b 6012004c hstore 4 ,core_lpm_reg 
+027c 20403cf4 call lpm_write_ctrl 
+027d d85fffff arg param_hibernate_clks ,temp 
+027e 20203c11 branch lpm_sleep 
+
+p_ipc_timer_check:
+027f 680a489e fetcht 4 ,mem_ipc_last_check_timer 
+0280 1c427e00 copy clkn_bt ,pdata 
+0281 98467e00 isub temp ,pdata 
+0282 d8400640 arg 1600 ,temp 
+0283 9846fc00 idiv temp 
+0284 20407f53 call wait_div_end 
+0285 1807fe00 quotient pdata 
+0286 207a0000 rtn blank 
+0287 1c420400 copy clkn_bt ,temp 
+0288 600a489e storet 4 ,mem_ipc_last_check_timer 
+0289 68094898 fetcht 2 ,mem_ipc_bt_timer 
+028a 18508400 byteswap temp ,temp 
+028b 9840fe00 iadd temp ,pdata 
+028c 1ff0fe00 byteswap pdata ,pdata 
+028d 60014898 store 2 ,mem_ipc_bt_timer 
+028e 1ff0fe00 byteswap pdata ,pdata 
+028f 1fe17e03 and pdata ,0x3 ,pdata 
+0290 c1800000 rtnne 0 
+0291 204002b3 call p_read_adc_enable 
+0292 24760000 nrtn user2 
+
+p_adc_check_process:
+0293 6800c2cf fetch 1 ,mem_adc_config_flag 
+0294 c2810296 bbit1 adc_config_gpio ,p_adc_check_gpio 
+
+p_rtn:
+0295 20600000 rtn 
+
+p_adc_check_gpio:
+0296 68108078 hfetch 1 ,core_gpio_pu0 
+0297 793ffe05 set0 5 ,pdata 
+0298 60108078 hstore 1 ,core_gpio_pu0 
+0299 7089718f hjam 0x8f ,rf_adc_mode 
+029a 6800c2d0 fetch 1 ,mem_adc_channel 
+029b 60108973 hstore 1 ,rf_adc_ch 
+029c 204002a1 call p_read_adc 
+029d 68108078 hfetch 1 ,core_gpio_pu0 
+029e 79207e05 set1 5 ,pdata 
+029f 60108078 hstore 1 ,core_gpio_pu0 
+02a0 20600000 rtn 
+
+p_read_adc:
+02a1 68108053 hfetch 1 ,core_uart_baud + 1 
+02a2 79207e07 set1 7 ,pdata 
+02a3 60108053 hstore 1 ,core_uart_baud + 1 
+02a4 68108973 hfetch 1 ,rf_adc_ch 
+02a5 1fe1fe30 or_into 0x30 ,pdata 
+02a6 60108973 hstore 1 ,rf_adc_ch 
+02a7 7089067c hjam 0x7c ,rfen_adc 
+02a8 708972aa hjam 0xaa ,rf_adc_gc 
+02a9 20001388 nop 5000 
+02aa 68190150 hfetcht 2 ,core_adc_sum 
+02ab 68108053 hfetch 1 ,core_uart_baud + 1 
+02ac 793ffe07 set0 7 ,pdata 
+02ad 60108053 hstore 1 ,core_uart_baud + 1 
+02ae 18508400 byteswap temp ,temp 
+02af 600942d1 storet 2 ,mem_adc_current_value 
+02b0 20600000 rtn 
+
+enable_usr2:
+02b1 78367c00 enable user2 
+02b2 20600000 rtn 
+
+p_read_adc_enable:
+02b3 78567c00 disable user2 
+02b4 20404bd0 call le_xtype_fifo_is_empty 
+02b5 205a02b1 call enable_usr2 ,blank 
+02b6 20600000 rtn 
+
+p_user_le_connect_process:
+02b7 704ea301 jam 1 ,mem_ble_read_ipc_fifo_once 
+02b8 204002bb call p_ipc_rx 
+02b9 704ea300 jam 0 ,mem_ble_read_ipc_fifo_once 
+02ba 20600000 rtn 
+
+p_ipc_rx:
+02bb 204000ac call p_check_ipc_2bt 
+02bc 20740000 rtn user 
+02bd 1ff0fe00 byteswap pdata ,pdata 
+02be 1fe20c00 copy pdata ,contr 
+02bf 204002e0 call p_ipc_rx_byte 
+02c0 6000c897 store 1 ,mem_ipc_rx_type 
+02c1 c00082cb beq ipc_type_cmd ,p_ipc_rx_cmd 
+02c2 1fe20400 copy pdata ,temp 
+02c3 18c22200 copy contr ,rega 
+02c4 6800c040 fetch 1 ,mem_context 
+02c5 c30002d5 bbit0 state_inconn ,p_ipc_abondon_rx_data 
+02c6 1a220c00 copy rega ,contr 
+02c7 c6848000 rtnmark0 mark_context 
+02c8 18427e00 copy temp ,pdata 
+02c9 c002830e beq ipc_type_ble ,p_ipc_rx_ble 
+02ca 20203b31 branch assert 
+
+p_ipc_rx_cmd:
+02cb 204002e0 call p_ipc_rx_byte 
+02cc 204002e0 call p_ipc_rx_byte 
+02cd 600089bd store 1 ,mem_fifo_temp 
+02ce 204002d0 call p_ipc_next_rx 
+02cf 20207d90 branch ui_ipc_send_cmd 
+
+p_ipc_next_rx:
+02d0 204002e3 call p_ipc_rx_updata_contr 
+02d1 18c20400 copy contr ,temp 
+02d2 18508400 byteswap temp ,temp 
+02d3 600947c4 storet 2 ,mem_ipc_2bt_read_index 
+02d4 20600000 rtn 
+
+p_ipc_abondon_rx_data:
+02d5 1a220c00 copy rega ,contr 
+02d6 d8a000f5 arg mem_tst_pktcnt_sync ,contw 
+02d7 202002d8 branch p_ipc_rx_cpy 
+
+p_ipc_rx_cpy:
+02d8 204002e0 call p_ipc_rx_byte 
+02d9 1fe27200 copy pdata ,loopcnt 
+
+p_ipc_copy:
+02da 204002dc call p_ipc_cpy_loop 
+02db 202002d0 branch p_ipc_next_rx 
+
+p_ipc_cpy_loop:
+02dc 204002e0 call p_ipc_rx_byte 
+02dd e0a08000 istore 1 ,contw 
+02de c20002dc loop p_ipc_cpy_loop 
+02df 20600000 rtn 
+
+p_ipc_rx_byte:
+02e0 204002e3 call p_ipc_rx_updata_contr 
+02e1 e8c08000 ifetch 1 ,contr 
+02e2 20600000 rtn 
+
+p_ipc_rx_updata_contr:
+02e3 580047c4 setarg mem_ipc_2bt_fifo_end 
+02e4 98c67c00 isub contr ,null 
+02e5 24628000 nrtn zero 
+02e6 d8c0472e arg mem_ipc_2bt_fifo_head ,contr 
+02e7 20600000 rtn 
+
+p_ipc_tx_evt:
+02e8 df200003 arg 3 ,loopcnt 
+02e9 d8c04894 arg mem_ipc_tx_evt_buff ,contr 
+
+p_ipc_tx_cpy:
+02ea 18c22200 copy contr ,rega 
+02eb 6801482e fetch 2 ,mem_ipc_2c51_write_index 
+02ec 1ff0fe00 byteswap pdata ,pdata 
+02ed 1fe20a00 copy pdata ,contw 
+02ee 1a220c00 copy rega ,contr 
+
+p_ipc_tx_loop:
+02ef e8c08000 ifetch 1 ,contr 
+02f0 e0a08000 istore 1 ,contw 
+02f1 204002f7 call p_ipc_tx_updata_contw 
+02f2 c20002ef loop p_ipc_tx_loop 
+02f3 18a27e00 copy contw ,pdata 
+02f4 1ff0fe00 byteswap pdata ,pdata 
+02f5 6001482e store 2 ,mem_ipc_2c51_write_index 
+02f6 20600000 rtn 
+
+p_ipc_tx_updata_contw:
+02f7 5800482c setarg mem_ipc_2c51_fifo_end 
+02f8 98a67c00 isub contw ,null 
+02f9 24628000 nrtn zero 
+02fa d8a047c8 arg mem_ipc_2c51_fifo_head ,contw 
+02fb 20600000 rtn 
+
+queue_init:
+02fc 58000000 setarg 0 
+02fd 6001ce85 store 3 ,mem_queue_write_prt 
+02fe 20600000 rtn 
+
+p_ipc_rx_ble_data:
+02ff c6130000 rtnmark1 mark_24g 
+0300 6800c595 fetch 1 ,mem_le_switch_send_data 
+0301 207a0000 rtn blank 
+0302 204000ac call p_check_ipc_2bt 
+0303 20740000 rtn user 
+0304 1ff0fe00 byteswap pdata ,pdata 
+0305 1fe20c00 copy pdata ,contr 
+0306 204002e0 call p_ipc_rx_byte 
+0307 6000c897 store 1 ,mem_ipc_rx_type 
+0308 18c22200 copy contr ,rega 
+0309 c08282d5 bne ipc_type_ble ,p_ipc_abondon_rx_data 
+030a 18c22400 copy contr ,regb 
+030b 20404bd4 call le_xtype_fifo_is_near_full 
+030c 247a0000 nrtn blank 
+030d 20200313 branch p_ipc_rx_ble_read_fifo 
+
+p_ipc_rx_ble:
+030e 18c22400 copy contr ,regb 
+030f 6800cea3 fetch 1 ,mem_ble_read_ipc_fifo_once 
+0310 207a0000 rtn blank 
+0311 20404bd0 call le_xtype_fifo_is_empty 
+0312 247a0000 nrtn blank 
+
+p_ipc_rx_ble_read_fifo:
+0313 68094e4e fetcht 2 ,mem_le_att_report2 
+0314 20404f6a call le_att_check_notification_enable 
+0315 c4000000 rtnbit0 0 
+0316 6800c595 fetch 1 ,mem_le_switch_send_data 
+0317 c1000000 rtneq 0 
+0318 6800ce83 fetch 1 ,mem_bt_read_ipc_count 
+0319 1fe0fe01 pincrease 1 
+031a 6000ce83 store 1 ,mem_bt_read_ipc_count 
+031b 6800ce85 fetch 1 ,mem_queue_write_prt 
+031c 1fe08401 add pdata ,1 ,temp 
+031d 18410403 and temp ,0x03 ,temp 
+031e 6008ce85 storet 1 ,mem_queue_write_prt 
+031f 1feffe07 mul32 pdata ,7 ,pdata 
+0320 d8a04e87 arg mem_queue_buffer0 ,contw 
+0321 98a08a00 iadd contw ,contw 
+0322 1a420c00 copy regb ,contr 
+0323 204002e0 call p_ipc_rx_byte 
+0324 1fe27200 icopy loopcnt 
+0325 204002da call p_ipc_copy 
+0326 2040032a call p_ipc_rx_ble_read_fifo_first_time 
+0327 20760000 rtn user2 
+0328 7009bd1b jam attop_handle_value_notification ,mem_fifo_temp 
+0329 20204bd6 branch le_xtype_fifo_in 
+
+p_ipc_rx_ble_read_fifo_first_time:
+032a 78567c00 disable user2 
+032b 6800cea4 fetch 1 ,mem_ble_send_flag 
+032c c1028000 rtneq 5 
+032d 78367c00 enable user2 
+032e 1fe0fe01 increase 1 ,pdata 
+032f 6000cea4 store 1 ,mem_ble_send_flag 
+0330 1fe67c01 sub pdata ,1 ,null 
+0331 24610000 nrtn positive 
+0332 70489640 jam bt_evt_le_notify_enable ,mem_ipc_tx_evt 
+0333 202002e8 branch p_ipc_tx_evt 
+
+p_ipc_init:
+0334 5800472e setarg mem_ipc_2bt_fifo_head 
+0335 1ff0fe00 byteswap pdata ,pdata 
+0336 600147c4 store 2 ,mem_ipc_2bt_read_index 
+0337 600147c6 store 2 ,mem_ipc_2bt_write_index 
+0338 580047c8 setarg mem_ipc_2c51_fifo_head 
+0339 1ff0fe00 byteswap pdata ,pdata 
+033a 6001482c store 2 ,mem_ipc_2c51_read_index 
+033b 6001482e store 2 ,mem_ipc_2c51_write_index 
+033c 20600000 rtn 
+
+p_mouse_reconn_addr_calculate:
+033d 68014ea9 fetch 2 ,mem_mouse_eeprom_base 
+033e 1fe0fe1c add pdata ,0x1c ,pdata 
+033f 60014eab store 2 ,mem_mouse_reconn_addr 
+0340 20600000 rtn 
+
+p_device_init:
+0341 2040524a call le_modified_name_adv 
+0342 700b2a00 jam 0 ,mem_c51_flag 
+0343 70016c06 jam 6 ,mem_connection_options 
+0344 20403e7f call app_lpm_mult_enable 
+0345 580003bf setarg p_c51_user_event 
+0346 60014296 store 2 ,mem_cb_bb_event_process 
+0347 580002b7 setarg p_user_le_connect_process 
+0348 60014290 store 2 ,mem_cb_le_process 
+0349 580003b8 setarg p_device_before_hibernate 
+034a 6001428c store 2 ,mem_cb_before_hibernate 
+034b 24558334 ncall p_ipc_init ,wake 
+034c 20558380 call p_device_wakeup ,wake 
+034d 20403d3e call lpm_disable_exen_output 
+034e 6800ceba fetch 1 ,mem_le_init_eeprom_base_count 
+034f 203a035a branch p_device_init_next ,blank 
+0350 1fe0ffff increase -1 ,pdata 
+0351 6000ceba store 1 ,mem_le_init_eeprom_base_count 
+0352 58003f80 setarg 0x3f80 
+0353 60014ea9 store 2 ,mem_mouse_eeprom_base 
+0354 2040033d call p_mouse_reconn_addr_calculate 
+0355 6800ce53 fetch 1 ,mem_le_reconn_flag 
+0356 243a035a nbranch p_device_init_next ,blank 
+0357 6800ceb9 fetch 1 ,mem_le_fast_conn_finished 
+0358 243a035a nbranch p_device_init_next ,blank 
+0359 2040020f call p_mouse_init_environment 
+
+p_device_init_next:
+035a 6800ce45 fetch 1 ,mem_hibernate_flag 
+035b c02d0394 beq 0x5a ,p_device_init_init_hibwake 
+035c 20358392 branch p_deveice_init_wake ,wake 
+035d 6800c280 fetch 1 ,mem_tx_power 
+035e 6000c9c3 store 1 ,mem_tx_power_temp 
+035f 20400596 call power_ctrl_pac_succ_cnt_init 
+0360 68014e41 fetch 2 ,mem_adc_0v 
+0361 1ff0fe00 byteswap pdata ,pdata 
+0362 60014e41 store 2 ,mem_adc_0v 
+0363 68014e43 fetch 2 ,mem_adc_3v 
+0364 1ff0fe00 byteswap pdata ,pdata 
+0365 60014e43 store 2 ,mem_adc_3v 
+0366 2040039f call p_init_adc_from_otp 
+0367 680409c6 fetch 8 ,mem_temp 
+0368 243a036d nbranch p_deveice_init_reset ,blank 
+0369 68014ad4 fetch 2 ,0x4ad4 
+036a 1ff0fe00 byteswap pdata ,pdata 
+036b 203a036d branch p_deveice_init_reset ,blank 
+036c 60014e43 store 2 ,mem_adc_3v 
+
+p_deveice_init_reset:
+036d 7048962f jam bt_evt_reset ,mem_ipc_tx_evt 
+
+p_device_init_common:
+036e 6800ce78 fetch 1 ,mem_short_lpm_enable 
+036f 243a0375 nbranch p_24g_short_lpm_process ,blank 
+0370 20400293 call p_adc_check_process 
+0371 204002e8 call p_ipc_tx_evt 
+0372 204002ff call p_ipc_rx_ble_data 
+0373 70828003 hjam start_c51_core ,core_docd_ctrl 
+0374 20600000 rtn 
+
+p_24g_short_lpm_process:
+0375 2055bc29 call lpm_recover_clk ,wake 
+0376 d9600d00 arg param_rx_setup ,timeup 
+0377 34730200 until clkn_rt ,meet 
+0378 1c427e00 copy clkn_bt ,pdata 
+0379 6001ce7a store 3 ,mem_ckln_24g_short_lpm 
+
+p_24g_short_lpm_process_loop:
+037a 6801470b fetch 2 ,mem_ui_state_map 
+037b c3858000 rtnbit1 ui_state_ble_adv 
+037c c3830000 rtnbit1 ui_state_bt_discovery 
+037d 20403d60 call app_process_idle 
+037e 20400493 call g24_short_lpm_transmit_process 
+037f 2020037a branch p_24g_short_lpm_process_loop 
+
+p_device_wakeup:
+0380 1ce27e00 copy auxcnt ,pdata 
+0381 c593038a bmark0 mark_24g ,p_device_bt_wakeup 
+
+g24_delay_long_sleep:
+0382 203a0385 branch g24_direct_long_sleep ,blank 
+
+g24_delay_long_sleep2:
+0383 7049b9bb jam 0xbb ,mem_new_24g_delay_long_sleep_maxcnt 
+0384 20600000 rtn 
+
+g24_direct_long_sleep:
+0385 7049b900 jam 0x00 ,mem_new_24g_delay_long_sleep_maxcnt 
+0386 6800c9b7 fetch 1 ,mem_new_24g_key_wheel_event 
+0387 207a0000 rtn blank 
+0388 7049b700 jam 0 ,mem_new_24g_key_wheel_event 
+0389 20200383 branch g24_delay_long_sleep2 
+
+p_device_bt_wakeup:
+038a 203a038d branch p_device_bt_wakeup_check ,blank 
+038b 7049c102 jam 2 ,mem_bt_wakeup_from_long_mult 
+038c 20600000 rtn 
+
+p_device_bt_wakeup_check:
+038d 6800c9c2 fetch 1 ,mem_bt_motion_event 
+038e 207a0000 rtn blank 
+038f 7049c200 jam 0 ,mem_bt_motion_event 
+0390 7049c101 jam 1 ,mem_bt_wakeup_from_long_mult 
+0391 20600000 rtn 
+
+p_deveice_init_wake:
+0392 7048963c jam bt_evt_wakeup ,mem_ipc_tx_evt 
+0393 2020036e branch p_device_init_common 
+
+p_device_init_init_hibwake:
+0394 1ce27e00 copy auxcnt ,pdata 
+0395 203a0277 branch p_enter_hibernate_continue ,blank 
+0396 2040530d call init_lmp_work 
+0397 204042eb call l2cap_init_work 
+0398 58000000 setarg 0 
+0399 60044040 store 8 ,mem_context 
+039a 6001470b store 2 ,mem_ui_state_map 
+039b 60014898 store 2 ,mem_ipc_bt_timer 
+039c 6001489a store 2 ,mem_ipc_c51_timer 
+039d 7048963d jam bt_evt_hibernate_wake ,mem_ipc_tx_evt 
+039e 2020036e branch p_device_init_common 
+
+p_init_adc_from_otp:
+039f 204062c4 call otp_enable_chgpump 
+03a0 580007e2 setarg 0x7e2 
+03a1 da2009c6 arg mem_temp ,rega 
+03a2 d840000c arg 12 ,temp 
+03a3 2040630d call otpd_read_data 
+03a4 204062c7 call otp_disable_chgpump 
+03a5 680409c6 fetch 8 ,mem_temp 
+03a6 207a0000 rtn blank 
+03a7 6800c2cf fetch 1 ,mem_adc_config_flag 
+03a8 c28103aa bbit1 adc_config_gpio ,p_calc_adc_check_gpio 
+03a9 20600000 rtn 
+
+p_calc_adc_check_gpio:
+03aa 680909c6 fetcht 2 ,mem_temp 
+03ab 680109cc fetch 2 ,mem_temp + 6 
+03ac 18422400 copy temp ,regb 
+03ad 1fe22200 copy pdata ,rega 
+03ae 98462600 isub temp ,regc 
+03af 1a427e00 copy regb ,pdata 
+03b0 9a667e00 isub regc ,pdata 
+03b1 1ff0fe00 byteswap pdata ,pdata 
+03b2 60014e41 store 2 ,mem_adc_0v 
+03b3 1a6bfe00 lshift2 regc ,pdata 
+03b4 9a20fe00 iadd rega ,pdata 
+03b5 1ff0fe00 byteswap pdata ,pdata 
+03b6 60014e43 store 2 ,mem_adc_3v 
+03b7 20600000 rtn 
+
+p_device_before_hibernate:
+03b8 78347c00 enable user 
+03b9 68120138 hfetch 4 ,0x8138 
+03ba 79347e1a setflag user ,26 ,pdata 
+03bb 6012004c hstore 4 ,core_lpm_reg 
+03bc 20403cf4 call lpm_write_ctrl 
+03bd 70009f01 jam 1 ,mem_lpm_current_mult 
+
+p_device_bt_lpm_before:
+03be 20600000 rtn 
+
+p_c51_user_event:
+03bf 1a627e00 copy regc ,pdata 
+03c0 1fe17ef0 and_into bt_evt_timer_mask ,pdata 
+03c1 c1280000 rtneq bt_evt_timer_init 
+03c2 1a627e00 copy regc ,pdata 
+03c3 6000c896 store 1 ,mem_ipc_tx_evt 
+03c4 202002e8 branch p_ipc_tx_evt 
+
+g24_pair_init:
+03c5 70492700 jam 0 ,mem_new_24g_pid 
+03c6 7049324e jam g24_pair_ch ,mem_new_24g_ch 
+03c7 68024934 fetch 4 ,mem_new_24g_paring_addr 
+
+g24_update_addr_and_synccrc8:
+03c8 60024950 store 4 ,mem_new_24g_addr 
+03c9 20200459 branch g24_syncword_crc8 
+
+g24_ch:
+03ca 6808c933 fetcht 1 ,mem_new_24g_current_ch_number 
+03cb 204003d0 call g24_ch_calc 
+03cc 18408401 increase 1 ,temp 
+03cd 18410403 and_into 3 ,temp 
+03ce 6008c933 storet 1 ,mem_new_24g_current_ch_number 
+03cf 20600000 rtn 
+
+g24_ch_calc:
+03d0 6800c950 fetch 1 ,mem_new_24g_addr 
+03d1 1fe17e03 and_into 0x03 ,pdata 
+03d2 1fefa204 mul32 pdata ,4 ,rega 
+03d3 58004939 setarg mem_new_24g_ch_map1 
+03d4 9a20fe00 iadd rega ,pdata 
+03d5 98408c00 iadd temp ,contr 
+03d6 e8c08000 ifetch 1 ,contr 
+03d7 6000c932 store 1 ,mem_new_24g_ch 
+03d8 20600000 rtn 
+
+g24_transmit_rf_sta_init:
+03d9 7049b001 jam 1 ,mem_new_24g_rf_last_sta 
+03da 7049b200 jam 0 ,mem_new_24g_sync_cnt 
+
+g24_transmit_rf_ctrl_clear:
+03db 6800c929 fetch 1 ,mem_new_24g_data_type 
+03dc 1fe17e07 and_into bits_data ,pdata 
+03dd 6000c929 store 1 ,mem_new_24g_data_type 
+03de 20600000 rtn 
+
+g24_hop_ch_enable:
+03df 6800c929 fetch 1 ,mem_new_24g_data_type 
+03e0 79207e04 set1 bit_hop ,pdata 
+03e1 6000c929 store 1 ,mem_new_24g_data_type 
+03e2 6000c8e4 store 1 ,mem_new_24g_txpayload 
+03e3 20600000 rtn 
+
+g24_hop_ch_disable:
+03e4 6800c929 fetch 1 ,mem_new_24g_data_type 
+03e5 793ffe04 set0 bit_hop ,pdata 
+03e6 6000c929 store 1 ,mem_new_24g_data_type 
+03e7 20600000 rtn 
+
+g24_transmit_hop_pac_fail:
+03e8 2040059d call power_ctrl_pac_succ_decrs 
+03e9 6800c9b4 fetch 1 ,mem_new_24g_rf_work_stage 
+03ea c00083ed beq 1 ,g24_transmit_hop_pac_fail_wo_hop 
+03eb c00103f1 beq 2 ,g24_transmit_hop_pac_fail_hop_stage2 
+03ec 20600000 rtn 
+
+g24_transmit_hop_pac_fail_wo_hop:
+03ed 7049b202 jam 2 ,mem_new_24g_sync_cnt 
+
+g24_transmit_hop_pac_fail_stage1:
+03ee 7049b300 jam 0 ,mem_new_24g_hop_pac_retry 
+03ef 7049b000 jam 0 ,mem_new_24g_rf_last_sta 
+03f0 202003db branch g24_transmit_rf_ctrl_clear 
+
+g24_transmit_hop_pac_fail_hop_stage2:
+03f1 7049b100 jam 0 ,mem_new_24g_rf_hop_ch 
+03f2 202003ee branch g24_transmit_hop_pac_fail_stage1 
+
+g24_transmit_pac_fail_hop_stage3:
+03f3 6801492e fetch 2 ,mem_new_24g_txfail_cnt 
+03f4 1fe0fe01 increase 1 ,pdata 
+03f5 6001492e store 2 ,mem_new_24g_txfail_cnt 
+03f6 c2850502 bbit1 10 ,g24_tx_attempt_fail 
+03f7 6800c9b1 fetch 1 ,mem_new_24g_rf_hop_ch 
+03f8 c00083fc beq 1 ,g24_rf_hop_fastly 
+03f9 7049b101 jam 1 ,mem_new_24g_rf_hop_ch 
+
+g24_rf_hop_attemp_again:
+03fa 6800c9b1 fetch 1 ,mem_new_24g_rf_hop_ch 
+03fb c08083db bne 1 ,g24_transmit_rf_ctrl_clear 
+
+g24_rf_hop_fastly:
+03fc 6800c9b5 fetch 1 ,mem_new_24g_hop_fastly_cnt 
+03fd 1fe0fe01 increase 1 ,pdata 
+03fe 6000c9b5 store 1 ,mem_new_24g_hop_fastly_cnt 
+03ff c0020403 beq 4 ,g24_rf_hop_fastly_exit 
+0400 204003ca call g24_ch 
+0401 70496e02 jam 2 ,mem_new_24g_max_retry 
+0402 202004c3 branch g24_transmit_packet 
+
+g24_rf_hop_fastly_exit:
+0403 2040059d call power_ctrl_pac_succ_decrs 
+0404 7049b500 jam 0 ,mem_new_24g_hop_fastly_cnt 
+0405 202003db branch g24_transmit_rf_ctrl_clear 
+
+g24_transmit_hop_pac_succ_wo_hop:
+0406 7049b202 jam 2 ,mem_new_24g_sync_cnt 
+
+g24_transmit_hop_pac_succ:
+0407 7049b001 jam 1 ,mem_new_24g_rf_last_sta 
+0408 7049b100 jam 0 ,mem_new_24g_rf_hop_ch 
+0409 202003db branch g24_transmit_rf_ctrl_clear 
+
+g24_transmit_succ_rf_config:
+040a 6800c9b4 fetch 1 ,mem_new_24g_rf_work_stage 
+040b c0018407 beq 3 ,g24_transmit_hop_pac_succ 
+040c 6800c929 fetch 1 ,mem_new_24g_data_type 
+040d 2fec0004 isolate0 bit_hop ,pdata 
+040e 202083d9 branch g24_transmit_rf_sta_init ,true 
+040f 6800c9b4 fetch 1 ,mem_new_24g_rf_work_stage 
+0410 c0008406 beq 1 ,g24_transmit_hop_pac_succ_wo_hop 
+0411 c0010407 beq 2 ,g24_transmit_hop_pac_succ 
+0412 20600000 rtn 
+
+g24_rf_sta_check:
+0413 6800c938 fetch 1 ,mem_new_24g_pairing_sm 
+0414 c1ff8000 rtnne state_24g_pairing_success 
+0415 20400418 call g24_rf_laststa_synccnt_check 
+0416 24560420 ncall g24_rf_sync_cnt_check ,user2 
+0417 20600000 rtn 
+
+g24_rf_laststa_synccnt_check:
+0418 78567c00 disable user2 
+0419 6800c9b0 fetch 1 ,mem_new_24g_rf_last_sta 
+041a c1808000 rtnne 1 
+041b 6800c9b2 fetch 1 ,mem_new_24g_sync_cnt 
+041c c1800000 rtnne 0 
+041d 7049b401 jam 1 ,mem_new_24g_rf_work_stage 
+041e 70496e04 jam 4 ,mem_new_24g_max_retry 
+041f 202002b1 branch enable_usr2 
+
+g24_rf_sync_cnt_check:
+0420 6800c9b2 fetch 1 ,mem_new_24g_sync_cnt 
+0421 203a0428 branch g24_rf_hop_attemp ,blank 
+0422 1fe0ffff increase -1 ,pdata 
+0423 6000c9b2 store 1 ,mem_new_24g_sync_cnt 
+0424 7049b402 jam 2 ,mem_new_24g_rf_work_stage 
+0425 204003ca call g24_ch 
+0426 70496e04 jam 4 ,mem_new_24g_max_retry 
+0427 20600000 rtn 
+
+g24_rf_hop_attemp:
+0428 7049b403 jam 3 ,mem_new_24g_rf_work_stage 
+0429 6800c9b1 fetch 1 ,mem_new_24g_rf_hop_ch 
+042a 243a03fa nbranch g24_rf_hop_attemp_again ,blank 
+042b 204003ca call g24_ch 
+042c 70496e02 jam 2 ,mem_new_24g_max_retry 
+042d 20600000 rtn 
+
+g24_txdata_prep:
+042e 6800c938 fetch 1 ,mem_new_24g_pairing_sm 
+042f c0ff8602 bne state_24g_pairing_success ,g24_pairing_sm 
+0430 204002bb call p_ipc_rx 
+0431 20340440 branch g24_txdata_prep_ipc_nodata ,user 
+0432 6800c897 fetch 1 ,mem_ipc_rx_type 
+0433 c08364c0 bne ipc_type_24g ,enable_usr 
+
+g24_txdata_prep_packeage_data:
+0434 6800ce80 fetch 1 ,mem_short_data_wheel 
+0435 205a0479 call g24_lpm_short_increase ,blank 
+
+g24_txdata_skip_short_lpm:
+0436 6800ce80 fetch 1 ,mem_short_data_wheel 
+0437 245a043c ncall g24_enter_long_sleep ,blank 
+0438 20400445 call g24_package_data 
+0439 20400466 call g24_transmit_prep 
+
+g24_txdata_enable_tx:
+043a 70492d01 jam ensure_on_24g ,mem_new_24g_ensure 
+043b 20600000 rtn 
+
+g24_enter_long_sleep:
+043c 704e7900 jam 0 ,mem_short_lpm_tx_cnt 
+043d 704e7800 jam 0 ,mem_short_lpm_enable 
+043e 7049ba0a jam 10 ,mem_new_24g_enter_lpm_timer 
+043f 20600000 rtn 
+
+g24_txdata_prep_ipc_nodata:
+0440 6800ce78 fetch 1 ,mem_short_lpm_enable 
+0441 243a0445 nbranch g24_short_lpm_txdata_prep ,blank 
+
+g24_txdata_last_pac:
+0442 6800c92d fetch 1 ,mem_new_24g_ensure 
+0443 c000b1d4 beq ensure_on_24g ,disable_usr 
+0444 20600000 rtn 
+
+g24_short_lpm_txdata_prep:
+
+g24_package_data:
+0445 6800c9b9 fetch 1 ,mem_new_24g_delay_long_sleep_maxcnt 
+0446 6000c9b8 store 1 ,mem_new_24g_delay_long_sleep_cnt 
+0447 6800c970 fetch 1 ,mem_new_uart_packet 
+0448 1fe22200 copy pdata ,rega 
+0449 da404971 arg mem_new_uart_packet + 1 ,regb 
+044a 70495400 jam 0 ,mem_new_24g_abort_pac 
+
+g24_package_data_pc_bind:
+044b 204003db call g24_transmit_rf_ctrl_clear 
+044c 6000c990 store 1 ,mem_new_24g_common_temp 
+044d 1a208401 add rega ,1 ,temp 
+044e d8a04991 arg mem_new_24g_common_temp + 1 ,contw 
+
+g24_package_user_data:
+044f 1a227200 copy rega ,loopcnt 
+0450 1a420c00 copy regb ,contr 
+0451 20407ecd call memcpy 
+0452 da204990 arg mem_new_24g_common_temp ,rega 
+
+g24_put_data_in_buff:
+0453 c6938000 rtnmark0 mark_24g_conext 
+0454 6008c928 storet 1 ,mem_new_24g_datalen 
+0455 18427200 copy temp ,loopcnt 
+0456 d8a048c4 arg mem_new_24g_txbuf ,contw 
+0457 1a220c00 copy rega ,contr 
+0458 20207ecd branch memcpy 
+
+g24_syncword_crc8:
+0459 da200000 arg 0 ,rega 
+045a df200004 arg 4 ,loopcnt 
+045b d8c04950 arg mem_new_24g_addr ,contr 
+
+g24_syncword_crc8_loop:
+045c e8c08000 ifetch 1 ,contr 
+045d 9a20a200 iadd rega ,rega 
+045e c200045c loop g24_syncword_crc8_loop 
+045f 1a227e00 copy rega ,pdata 
+0460 600149bb store 2 ,mem_new_24g_syncword 
+0461 6800c9bb fetch 1 ,mem_new_24g_syncword 
+0462 6808c9bc fetcht 1 ,mem_new_24g_syncword + 1 
+0463 9840fe00 iadd temp ,pdata 
+0464 6000c9bd store 1 ,mem_new_24g_syncword_crc8 
+0465 20600000 rtn 
+
+g24_transmit_prep:
+0466 6800c928 fetch 1 ,mem_new_24g_datalen 
+0467 1fe0fe02 increase 2 ,pdata 
+0468 6000c92a store 1 ,mem_new_24g_txlen 
+0469 6800c929 fetch 1 ,mem_new_24g_data_type 
+046a 6000c8e4 store 1 ,mem_new_24g_txpayload 
+046b 6800c928 fetch 1 ,mem_new_24g_datalen 
+046c 1fe9fe00 lshift3 pdata ,pdata 
+046d 6808c927 fetcht 1 ,mem_new_24g_pid 
+046e 18410403 and temp ,0x03 ,temp 
+046f 18438400 lshift temp ,temp 
+0470 9841fe00 ior temp ,pdata 
+0471 6808c965 fetcht 1 ,mem_new_24g_no_ack 
+0472 9840fe00 iadd temp ,pdata 
+0473 e0a08000 istore 1 ,contw 
+0474 6800c928 fetch 1 ,mem_new_24g_datalen 
+0475 98007200 iforce loopcnt 
+0476 d8c048c4 arg mem_new_24g_txbuf ,contr 
+0477 20207ecd branch memcpy 
+
+g24_no_data_to_tx:
+0478 20600000 rtn 
+
+g24_lpm_short_increase:
+0479 6800c2b8 fetch 1 ,mem_wakup_from_power_flag 
+047a 2fec0002 isolate0 2 ,pdata 
+047b 20208483 branch g24_lpm_short_increase_poweron ,true 
+047c 6800ce79 fetch 1 ,mem_short_lpm_tx_cnt 
+047d c1028000 rtneq 5 
+047e 1fe0fe01 increase 1 ,pdata 
+047f 6000ce79 store 1 ,mem_short_lpm_tx_cnt 
+0480 c1828000 rtnne 5 
+
+g24_lpm_short_enable:
+0481 704e7801 jam 1 ,mem_short_lpm_enable 
+0482 20600000 rtn 
+
+g24_lpm_short_increase_poweron:
+0483 6800ce79 fetch 1 ,mem_short_lpm_tx_cnt 
+0484 c10a0000 rtneq 20 
+0485 1fe0fe01 increase 1 ,pdata 
+0486 6000ce79 store 1 ,mem_short_lpm_tx_cnt 
+0487 c18a0000 rtnne 20 
+0488 6800c2b8 fetch 1 ,mem_wakup_from_power_flag 
+0489 79207e02 set1 2 ,pdata 
+048a 6000c2b8 store 1 ,mem_wakup_from_power_flag 
+048b 20200481 branch g24_lpm_short_enable 
+
+g24_lpm_short_decrease:
+048c 6800ce79 fetch 1 ,mem_short_lpm_tx_cnt 
+048d 207a0000 rtn blank 
+048e 1fe0ffff increase -1 ,pdata 
+048f 6000ce79 store 1 ,mem_short_lpm_tx_cnt 
+0490 247a0000 nrtn blank 
+0491 704e7800 jam 0 ,mem_short_lpm_enable 
+0492 20600000 rtn 
+
+g24_short_lpm_transmit_process:
+0493 79200027 set1 mark_24g_conext ,mark 
+0494 204002bb call p_ipc_rx 
+0495 20340498 branch g24_short_lpm_transmit_process_ipc_nodata ,user 
+0496 6800c897 fetch 1 ,mem_ipc_rx_type 
+0497 c003049e beq ipc_type_24g ,g24_short_lpm_txdata_data_ready 
+
+g24_short_lpm_transmit_process_ipc_nodata:
+0498 6800ce7d fetch 1 ,mem_send_data_24g_short_lpm 
+0499 c000849d beq short_lpm_state_data ,g24_short_lpm_txdata_prep_buff_data 
+049a c0010478 beq short_lpm_state_nodata ,g24_no_data_to_tx 
+049b c001849d beq short_lpm_state_button_wheel ,g24_short_lpm_transmit_process_button_wheel 
+049c 20600000 rtn 
+
+g24_short_lpm_transmit_process_button_wheel:
+
+g24_short_lpm_txdata_prep_buff_data:
+049d 20600000 rtn 
+
+g24_short_lpm_txdata_data_ready:
+049e 20600000 rtn 
+
+g24_short_lpm_sleep:
+049f 20403be2 call lpo_calibration 
+04a0 6801c20f fetch 3 ,mem_clks_per_lpo 
+04a1 207a0000 rtn blank 
+04a2 6800c131 fetch 1 ,mem_lpm_mode 
+04a3 207a0000 rtn blank 
+04a4 6800ce80 fetch 1 ,mem_short_data_wheel 
+04a5 c00084a8 beq 1 ,g24_short_lpm_sleep2 
+04a6 58000000 setarg 0 
+04a7 600400a0 store 8 ,mem_gpio_wakeup_low 
+
+g24_short_lpm_sleep2:
+04a8 204004b8 call g24_short_lpm_select_param 
+04a9 d9600d00 arg param_rx_setup ,timeup 
+04aa 34730200 until clkn_rt ,meet 
+04ab 6809ce7a fetcht 3 ,mem_ckln_24g_short_lpm 
+04ac 1c427e00 copy clkn_bt ,pdata 
+04ad 98467e00 isub temp ,pdata 
+04ae 1fe17eff and_into 0xff ,pdata 
+04af d8400ea6 arg 3750 ,temp 
+04b0 984f8400 imul32 temp ,temp 
+04b1 68024e74 fetch 4 ,mem_short_lpm_interval_param 
+04b2 98467e00 isub temp ,pdata 
+04b3 20213c7f branch lpm_dispatch_sleep ,positive 
+04b4 6800c218 fetch 1 ,mem_lpm_xtalcnt 
+04b5 1fe0fe01 increase 1 ,pdata 
+04b6 600241fb store 4 ,mem_sleep_counter 
+04b7 20203c86 branch lpm_dispatch_sleep + 7 
+
+g24_short_lpm_select_param:
+04b8 58013c68 setarg g24_8125_interval_param 
+04b9 60024e74 store 4 ,mem_short_lpm_interval_param 
+04ba 6800ce7e fetch 1 ,mem_short_lpm_interval_cnt 
+04bb 1fe0fe01 increase 1 ,pdata 
+04bc c08284be bne 5 ,g24_short_lpm_select_param_cont 
+04bd 58000000 setarg 0 
+
+g24_short_lpm_select_param_cont:
+04be 6000ce7e store 1 ,mem_short_lpm_interval_cnt 
+04bf c4000000 rtnbit0 0 
+04c0 580130b0 setarg g24_78125_interval_param 
+04c1 60024e74 store 4 ,mem_short_lpm_interval_param 
+04c2 20600000 rtn 
+
+g24_transmit_packet:
+04c3 70493100 jam 0 ,mem_new_24g_retry 
+
+g24_transmit_loop:
+04c4 d9600d00 arg param_rx_setup ,timeup 
+04c5 34730200 until clkn_rt ,meet 
+04c6 204004db call g24_transmit_receive_ack 
+04c7 6800c965 fetch 1 ,mem_new_24g_no_ack 
+04c8 c1008000 rtneq no_ack_24g 
+04c9 242c04ea nbranch g24_retransmit ,sync 
+04ca 243784ea nbranch g24_retransmit ,user3 
+04cb 20400509 call g24_ackpayload_parse 
+04cc 20400599 call power_ctrl_pac_succ_incrs 
+
+g24_transmit_next_packet:
+04cd 6800c927 fetch 1 ,mem_new_24g_pid 
+04ce 1fe0fe01 increase 1 ,pdata 
+04cf 6000c927 store 1 ,mem_new_24g_pid 
+04d0 6800c938 fetch 1 ,mem_new_24g_pairing_sm 
+04d1 c0ff84d9 bne state_24g_pairing_success ,g24_paring_mode_start 
+04d2 2040040a call g24_transmit_succ_rf_config 
+
+g24_transmit_abandon:
+04d3 58000000 setarg 0 
+04d4 6001492e store 2 ,mem_new_24g_txfail_cnt 
+04d5 6000c930 store 1 ,mem_new_24g_get_ack_fail 
+04d6 6000c9b3 store 1 ,mem_new_24g_hop_pac_retry 
+04d7 70492d00 jam ensure_off_24g ,mem_new_24g_ensure 
+04d8 20600000 rtn 
+
+g24_paring_mode_start:
+04d9 20400596 call power_ctrl_pac_succ_cnt_init 
+04da 2020061d branch g24_paring_mode 
+
+g24_transmit_receive_ack:
+04db 7857fc00 disable user3 
+04dc 20400529 call g24_transmit 
+04dd 6800c965 fetch 1 ,mem_new_24g_no_ack 
+04de c00084e8 beq no_ack_24g ,g24_transmit_no_ack 
+04df 18002a00 force 0 ,radio_ctrl 
+04e0 68024950 fetch 4 ,mem_new_24g_addr 
+04e1 98001200 iforce access 
+04e2 68088017 fetcht 1 ,mem_last_freq 
+04e3 204039b9 call set_freq_rx 
+04e4 204039bf call rf_rx_enable 
+04e5 20400553 call g24_receive_rxon 
+04e6 20578592 call g24_end_of_packet ,user3 
+04e7 20600000 rtn 
+
+g24_transmit_no_ack:
+04e8 20400592 call g24_end_of_packet 
+04e9 202004cd branch g24_transmit_next_packet 
+
+g24_retransmit:
+04ea 6800c930 fetch 1 ,mem_new_24g_get_ack_fail 
+04eb 1fe0fe01 increase 1 ,pdata 
+04ec 6000c930 store 1 ,mem_new_24g_get_ack_fail 
+04ed 6800c938 fetch 1 ,mem_new_24g_pairing_sm 
+04ee c0ff84fe bne state_24g_pairing_success ,g24_tx_paring_retry 
+04ef 6808c931 fetcht 1 ,mem_new_24g_retry 
+04f0 18408401 increase 1 ,temp 
+04f1 6008c931 storet 1 ,mem_new_24g_retry 
+04f2 6800c96e fetch 1 ,mem_new_24g_max_retry 
+04f3 98467e00 isub temp ,pdata 
+04f4 243a04c4 nbranch g24_transmit_loop ,blank 
+04f5 6800c9b4 fetch 1 ,mem_new_24g_rf_work_stage 
+04f6 c00183f3 beq 3 ,g24_transmit_pac_fail_hop_stage3 
+04f7 6800c9b3 fetch 1 ,mem_new_24g_hop_pac_retry 
+04f8 1fe0fe01 increase 1 ,pdata 
+04f9 6000c9b3 store 1 ,mem_new_24g_hop_pac_retry 
+04fa c00103e8 beq 2 ,g24_transmit_hop_pac_fail 
+04fb 204003df call g24_hop_ch_enable 
+04fc 70496e01 jam 1 ,mem_new_24g_max_retry 
+04fd 202004c3 branch g24_transmit_packet 
+
+g24_tx_paring_retry:
+04fe 6800c930 fetch 1 ,mem_new_24g_get_ack_fail 
+04ff c1ff8000 rtnne 0xff 
+0500 70493000 jam 0 ,mem_new_24g_get_ack_fail 
+0501 20200507 branch g24_stop_24g_mode 
+
+g24_tx_attempt_fail:
+0502 58000000 setarg 0 
+0503 6001492e store 2 ,mem_new_24g_txfail_cnt 
+0504 70413100 jam 0 ,mem_lpm_mode 
+0505 704e7900 jam 0 ,mem_short_lpm_tx_cnt 
+0506 704e7800 jam 0 ,mem_short_lpm_enable 
+
+g24_stop_24g_mode:
+0507 7048963b jam bt_evt_24g_attempt_fail ,mem_ipc_tx_evt 
+0508 202002e8 branch p_ipc_tx_evt 
+
+g24_ackpayload_parse:
+0509 20400510 call g24_read_len_pid_crc 
+050a 6800c926 fetch 1 ,mem_new_24g_rxdata_length 
+050b 207a0000 rtn blank 
+050c 98007200 iforce loopcnt 
+050d d8c048a4 arg mem_new_24g_rxbuf + 2 ,contr 
+050e d8a04906 arg mem_new_24g_rxpayload ,contw 
+050f 20207ecd branch memcpy 
+
+g24_read_len_pid_crc:
+0510 6800c8a3 fetch 1 ,mem_new_24g_rxbuf + 1 
+0511 1fe97e00 rshift3 pdata ,pdata 
+0512 6000c926 store 1 ,mem_new_24g_rxdata_length 
+0513 1fe0fe01 increase 1 ,pdata 
+0514 d8c048a3 arg mem_new_24g_rxbuf + 1 ,contr 
+0515 98c08c00 iadd contr ,contr 
+0516 e8c18000 ifetch 3 ,contr 
+0517 6001c966 store 3 ,mem_new_24g_sta_crc 
+0518 6800c8a3 fetch 1 ,mem_new_24g_rxbuf + 1 
+0519 1fe37e00 rshift pdata ,pdata 
+051a 1fe17e03 and pdata ,0x03 ,pdata 
+051b 6000c96c store 1 ,mem_new_24g_sta_pid 
+051c 20600000 rtn 
+
+g24_prep:
+051d 7844fc00 disable enable_crc 
+051e 7843fc00 disable enable_white 
+051f 58555555 setarg 0x555555 
+0520 98001e00 iforce crc24_init 
+0521 6800c932 fetch 1 ,mem_new_24g_ch 
+0522 1fed8400 reverse pdata ,temp 
+0523 79200401 set1 1 ,temp 
+0524 18431c00 rshift temp ,white_init 
+0525 20600000 rtn 
+
+g24_set_freq_tx:
+0526 204039b1 call set_sync_on 
+0527 6808c932 fetcht 1 ,mem_new_24g_ch 
+0528 202039c9 branch set_freq_tx 
+
+g24_transmit:
+0529 20404976 call le_enable 
+052a 68024950 fetch 4 ,mem_new_24g_addr 
+052b 98001200 iforce access 
+052c 2040051d call g24_prep 
+052d 20400526 call g24_set_freq_tx 
+052e 79202a00 set1 txgfsk ,radio_ctrl 
+052f 782efc00 enable encode_fec0 
+0530 78307c00 enable is_tx 
+0531 7850fc00 disable is_rx 
+0532 19317e00 rshift16 access ,pdata 
+0533 1fecfe00 rshift8 pdata ,pdata 
+0534 1ff1fe00 rshift4 pdata ,pdata 
+0535 08008628 inject mod ,40 
+0536 784efc00 disable encode_fec0 
+0537 782dfc00 enable encode_fec1 
+0538 7823fc00 enable enable_white 
+0539 7824fc00 enable enable_crc 
+053a 6800c9bd fetch 1 ,mem_new_24g_syncword_crc8 
+053b 08008608 inject mod ,8 
+053c 6800c92a fetch 1 ,mem_new_24g_txlen 
+053d 98007200 iforce loopcnt 
+053e d8c048e4 arg mem_new_24g_txpayload ,contr 
+
+g24tr_loop:
+053f e8c08000 ifetch 1 ,contr 
+0540 08008608 inject mod ,8 
+0541 c200053f loop g24tr_loop 
+0542 78247c00 enable enable_parity 
+0543 08008618 inject mod ,24 
+0544 78447c00 disable enable_parity 
+0545 37d38200 until null ,tx_clear 
+0546 20000064 nop 100 
+0547 784efc00 disable encode_fec0 
+0548 784dfc00 disable encode_fec1 
+0549 20600000 rtn 
+
+g24_receive_packet:
+054a 20404976 call le_enable 
+054b 68024950 fetch 4 ,mem_new_24g_addr 
+054c 98001200 iforce access 
+054d 204039b1 call set_sync_on 
+054e 6808c932 fetcht 1 ,mem_new_24g_ch 
+054f 204039b9 call set_freq_rx 
+0550 58000500 setarg param_pll_setup 
+0551 20403b35 call sleep 
+0552 204039bf call rf_rx_enable 
+
+g24_receive_rxon:
+0553 2040051d call g24_prep 
+0554 7857fc00 disable user3 
+0555 7826fc00 enable decode_fec0 
+0556 7830fc00 enable is_rx 
+0557 78507c00 disable is_tx 
+0558 78287c00 enable swfine 
+0559 6801492b fetch 2 ,mem_new_24g_rx_window 
+055a 98003600 iforce stop_watch 
+055b 37c18400 correlate null ,timeout 
+055c 242c0595 nbranch g24_sync_timeout ,sync 
+055d 7846fc00 disable decode_fec0 
+055e 7825fc00 enable decode_fec1 
+055f 7823fc00 enable enable_white 
+0560 7824fc00 enable enable_crc 
+0561 09800008 parse demod ,bucket ,8 
+0562 19897e00 rshift3 pwindow ,pdata 
+0563 6000c9be store 1 ,mem_new_24g_get_syncword_crc8 
+0564 20400459 call g24_syncword_crc8 
+0565 6808c9be fetcht 1 ,mem_new_24g_get_syncword_crc8 
+0566 98467c00 isub temp ,null 
+0567 24228592 nbranch g24_end_of_packet ,zero 
+0568 09800008 parse demod ,bucket ,8 
+0569 19897e00 rshift3 pwindow ,pdata 
+056a 6000c8a2 store 1 ,mem_new_24g_rxbuf 
+056b 6800c96f fetch 1 ,mem_new_24g_mode 
+056c 1fe67c02 sub pdata ,rx_24g ,null 
+056d 20228572 branch g24_receive_skip ,zero 
+056e 6800c8a2 fetch 1 ,mem_new_24g_rxbuf 
+056f 6808c929 fetcht 1 ,mem_new_24g_data_type 
+0570 a8400e00 icompare bits_data ,temp 
+0571 24208592 nbranch g24_end_of_packet ,true 
+
+g24_receive_skip:
+0572 09800008 parse demod ,bucket ,8 
+0573 19897e00 rshift3 pwindow ,pdata 
+0574 e0a08000 istore 1 ,contw 
+0575 1fe97e00 rshift3 pdata ,pdata 
+0576 1fe1721f and pdata ,0x1f ,loopcnt 
+0577 2022857c branch g24rx_nopayload ,zero 
+
+g24rx_loop:
+0578 09800008 parse demod ,bucket ,8 
+0579 19897e00 rshift3 pwindow ,pdata 
+057a e0a08000 istore 1 ,contw 
+057b c2000578 loop g24rx_loop 
+
+g24rx_nopayload:
+057c 18a22200 copy contw ,rega 
+057d 09800008 parse demod ,bucket ,8 
+057e 19897e00 rshift3 pwindow ,pdata 
+057f 6000c9cf store 1 ,mem_rssi_hex_received 
+0580 1a220a00 copy rega ,contw 
+0581 09800018 parse demod ,bucket ,24 
+0582 78287c00 enable swfine 
+0583 db600664 arg param_sifs ,stop_watch 
+0584 1fef7e00 rshift32 pdata ,pdata 
+0585 1ff17e00 rshift16 pdata ,pdata 
+0586 e0a18000 istore 3 ,contw 
+0587 7845fc00 disable decode_fec1 
+0588 20230592 branch g24_end_of_packet ,crc_failed 
+0589 7837fc00 enable user3 
+058a 68008017 fetch 1 ,mem_last_freq 
+058b 1fe0a200 add pdata ,0 ,rega 
+058c 20403a13 call rf_write_freq 
+058d 7846fc00 disable decode_fec0 
+058e 204039b1 call set_sync_on 
+058f 6800c9cf fetch 1 ,mem_rssi_hex_received 
+0590 1fe22200 copy pdata ,rega 
+0591 202005e5 branch rssi_signal 
+
+g24_end_of_packet:
+0592 784dfc00 disable encode_fec1 
+0593 7845fc00 disable decode_fec1 
+0594 202036c6 branch end_of_packet 
+
+g24_sync_timeout:
+0595 20200592 branch g24_end_of_packet 
+
+power_ctrl_pac_succ_cnt_init:
+0596 7049c401 jam 1 ,mem_power_ctrl_level 
+0597 7049c500 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0598 20600000 rtn 
+
+power_ctrl_pac_succ_incrs:
+0599 6800c9c5 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+059a 1fe0fe01 increase 1 ,pdata 
+059b 6000c9c5 store 1 ,mem_power_ctrl_pac_succ_cnt 
+059c 20600000 rtn 
+
+power_ctrl_pac_succ_decrs:
+059d 6800c9c5 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+059e 1fe67c01 sub pdata ,1 ,null 
+059f 244105a5 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+05a0 6800c9c5 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+05a1 c1000000 rtneq 0 
+05a2 1fe0ffff increase -1 ,pdata 
+05a3 6000c9c5 store 1 ,mem_power_ctrl_pac_succ_cnt 
+05a4 20600000 rtn 
+
+power_ctrl_pac_succ_cnt_reinit:
+05a5 7049c502 jam 2 ,mem_power_ctrl_pac_succ_cnt 
+05a6 20600000 rtn 
+
+power_ctrl_start:
+05a7 da2049c6 arg mem_rssi_signal_buf ,rega 
+05a8 204005ee call rssi_average 
+05a9 6008c9d0 storet 1 ,mem_rssi_avg_received 
+05aa 280ffe26 isolate1 mark_24g ,mark 
+05ab 204085b5 call power_ctrl_24g_dis_max ,true 
+05ac 244085b9 ncall power_ctrl_le_dis_max ,true 
+05ad 98467c00 isub temp ,null 
+05ae 242105d2 nbranch power_ctrl_txpower_incrs ,positive 
+05af 6800c9c5 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+05b0 1fe67c01 sub pdata ,1 ,null 
+05b1 242105bd nbranch power_ctrl_txpower_decrs_check ,positive 
+05b2 6800c9c5 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+05b3 c00005d2 beq 0 ,power_ctrl_txpower_incrs 
+05b4 20600000 rtn 
+
+power_ctrl_24g_dis_max:
+05b5 58000082 setarg rssi_dis_max_24g 
+05b6 20600000 rtn 
+
+power_ctrl_24g_dis_min:
+05b7 58000077 setarg rssi_dis_min_24g 
+05b8 20600000 rtn 
+
+power_ctrl_le_dis_max:
+05b9 58000080 setarg rssi_dis_max_ble 
+05ba 20600000 rtn 
+
+power_ctrl_le_dis_min:
+05bb 58000075 setarg rssi_dis_min_ble 
+05bc 20600000 rtn 
+
+power_ctrl_txpower_decrs_check:
+05bd 6800c9c5 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+05be c1a30000 rtnne 70 
+05bf 7049c500 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+power_ctrl_txpower_decrs:
+05c0 6808c9d0 fetcht 1 ,mem_rssi_avg_received 
+05c1 280ffe26 isolate1 mark_24g ,mark 
+05c2 204085b7 call power_ctrl_24g_dis_min ,true 
+05c3 244085bb ncall power_ctrl_le_dis_min ,true 
+05c4 98467c00 isub temp ,null 
+05c5 24610000 nrtn positive 
+05c6 6800c9c4 fetch 1 ,mem_power_ctrl_level 
+05c7 c00005de beq 0 ,power_ctrl_decrs_level0 
+05c8 1fe0ffff increase -1 ,pdata 
+05c9 6000c9c4 store 1 ,mem_power_ctrl_level 
+05ca c00005de beq 0 ,power_ctrl_decrs_level0 
+
+power_ctrl_decrs_level1:
+
+power_ctrl_incrs_level1:
+05cb 708955d0 hjam 0xd0 ,0x8955 
+05cc 708956e0 hjam 0xe0 ,0x8956 
+05cd 7089574c hjam 0x4c ,0x8957 
+05ce 7089586c hjam 0x6c ,0x8958 
+05cf 70895950 hjam 0x50 ,0x8959 
+05d0 70428001 jam 0x01 ,mem_tx_power 
+05d1 20600000 rtn 
+
+power_ctrl_txpower_incrs:
+05d2 6800c9c4 fetch 1 ,mem_power_ctrl_level 
+05d3 c00105d7 beq 2 ,power_ctrl_incrs_level2 
+05d4 1fe0fe01 increase 1 ,pdata 
+05d5 6000c9c4 store 1 ,mem_power_ctrl_level 
+05d6 c00085cb beq 1 ,power_ctrl_incrs_level1 
+
+power_ctrl_incrs_level2:
+05d7 708955d0 hjam 0xd0 ,0x8955 
+05d8 708956e0 hjam 0xe0 ,0x8956 
+05d9 7089574c hjam 0x4c ,0x8957 
+05da 7089583c hjam 0x3c ,0x8958 
+05db 70895910 hjam 0x10 ,0x8959 
+05dc 70428004 jam 0x04 ,mem_tx_power 
+05dd 20600000 rtn 
+
+power_ctrl_decrs_level0:
+05de 708955d0 hjam 0xd0 ,0x8955 
+05df 708956c0 hjam 0xc0 ,0x8956 
+05e0 7089574c hjam 0x4c ,0x8957 
+05e1 7089586c hjam 0x6c ,0x8958 
+05e2 70895950 hjam 0x50 ,0x8959 
+05e3 70428010 jam 0x10 ,mem_tx_power 
+05e4 20600000 rtn 
+
+rssi_signal:
+05e5 6808c9ce fetcht 1 ,mem_rssi_signal_index 
+05e6 580049c6 setarg mem_rssi_signal_buf 
+05e7 98408a00 iadd temp ,contw 
+05e8 1a227e00 copy rega ,pdata 
+05e9 e0a08000 istore 1 ,contw 
+05ea 18408401 increase 1 ,temp 
+05eb 18410407 and_into rssi_buf_len ,temp 
+05ec 6008c9ce storet 1 ,mem_rssi_signal_index 
+05ed 20600000 rtn 
+
+rssi_average:
+05ee d8400000 arg 0 ,temp 
+05ef df200008 arg rssi_buf_len + 1 ,loopcnt 
+05f0 1a220c00 copy rega ,contr 
+
+rssi_average_loop:
+05f1 e8c08000 ifetch 1 ,contr 
+05f2 98408400 iadd temp ,temp 
+05f3 c20005f1 loop rssi_average_loop 
+05f4 18497e00 rshift3 temp ,pdata 
+05f5 1fe20400 copy pdata ,temp 
+05f6 c6930000 rtnmark0 mark_24g 
+05f7 1fe6fc0a div pdata ,10 
+05f8 20407f53 call wait_div_end 
+05f9 1807fe00 quotient pdata 
+05fa 1ff27e00 lshift4 pdata ,pdata 
+05fb 18070400 remainder temp 
+05fc 98418400 ior temp ,temp 
+05fd 20600000 rtn 
+
+g24_start_pairing_sm1:
+05fe 79200026 set1 mark_24g ,mark 
+05ff 204003c5 call g24_pair_init 
+
+g24_set_pairing_sm_1:
+0600 70493801 jam state_24g_pairing_1 ,mem_new_24g_pairing_sm 
+0601 20600000 rtn 
+
+g24_pairing_sm:
+0602 6800c92d fetch 1 ,mem_new_24g_ensure 
+0603 c000b1d4 beq ensure_on_24g ,disable_usr 
+0604 6800c938 fetch 1 ,mem_new_24g_pairing_sm 
+0605 c0008609 beq state_24g_pairing_1 ,g24_pairing_sm_1 
+0606 c001060c beq state_24g_pairing_2 ,g24_pairing_sm_2 
+0607 c001860f beq state_24g_pairing_3 ,g24_pairing_sm_3 
+0608 20203b31 branch assert 
+
+g24_pairing_sm_1:
+0609 70493811 jam state_24g_pairing_1_waiting_ack ,mem_new_24g_pairing_sm 
+060a 704990aa jam 0xaa ,mem_new_24g_common_temp 
+060b 20200611 branch g24_pairing_sm_common 
+
+g24_pairing_sm_2:
+060c 70493812 jam state_24g_pairing_2_waiting_ack ,mem_new_24g_pairing_sm 
+060d 70499055 jam 0x55 ,mem_new_24g_common_temp 
+060e 20200611 branch g24_pairing_sm_common 
+
+g24_pairing_sm_3:
+060f 70493813 jam state_24g_pairing_3_waiting_ack ,mem_new_24g_pairing_sm 
+0610 70499022 jam 0x22 ,mem_new_24g_common_temp 
+
+g24_pairing_sm_common:
+0611 6800c929 fetch 1 ,mem_new_24g_data_type 
+0612 1fe17e07 and_into bits_data ,pdata 
+0613 6000c991 store 1 ,mem_new_24g_common_temp + 1 
+0614 68024960 fetch 4 ,mem_new_24g_device_addr 
+0615 60024992 store 4 ,mem_new_24g_common_temp + 2 
+
+g24_put_pairing_data_in_buff:
+0616 70499600 jam 0 ,mem_new_24g_common_temp + 6 
+0617 da204990 arg mem_new_24g_common_temp ,rega 
+0618 d8400007 arg 7 ,temp 
+0619 20400453 call g24_put_data_in_buff 
+061a 20400466 call g24_transmit_prep 
+061b 2040043a call g24_txdata_enable_tx 
+061c 202031d4 branch disable_usr 
+
+g24_paring_mode:
+061d 6800c938 fetch 1 ,mem_new_24g_pairing_sm 
+061e c17f8000 rtneq state_24g_pairing_success 
+061f c0088623 beq state_24g_pairing_1_waiting_ack ,g24_pairing_sm_1_waiting_ack 
+0620 c0090625 beq state_24g_pairing_2_waiting_ack ,g24_pairing_sm_2_waiting_ack 
+0621 c0098627 beq state_24g_pairing_3_waiting_ack ,g24_pairing_sm_3_waiting_ack 
+0622 20600000 rtn 
+
+g24_pairing_sm_1_waiting_ack:
+0623 70493802 jam state_24g_pairing_2 ,mem_new_24g_pairing_sm 
+0624 202004d3 branch g24_transmit_abandon 
+
+g24_pairing_sm_2_waiting_ack:
+0625 70493803 jam state_24g_pairing_3 ,mem_new_24g_pairing_sm 
+0626 202004d3 branch g24_transmit_abandon 
+
+g24_pairing_sm_3_waiting_ack:
+0627 704938ff jam state_24g_pairing_success ,mem_new_24g_pairing_sm 
+0628 70489639 jam bt_evt_24g_pairing_complete ,mem_ipc_tx_evt 
+0629 204002e8 call p_ipc_tx_evt 
+062a 68024908 fetch 4 ,mem_new_24g_rxpayload + 2 
+062b 204003c8 call g24_update_addr_and_synccrc8 
+062c 202004d3 branch g24_transmit_abandon 
+
+g24_start_24g_mode:
+062d 793f8026 set0 mark_24g ,mark 
+062e 204003ca call g24_ch 
+062f 68024950 fetch 4 ,mem_new_24g_addr 
+0630 20400459 call g24_syncword_crc8 
+0631 6800c938 fetch 1 ,mem_new_24g_pairing_sm 
+0632 c1ff8000 rtnne state_24g_pairing_success 
+0633 20400643 call g24_tx_attemp_data_prep 
+
+g24_tx_attemp_dongle:
+0634 58000000 setarg 0 
+0635 60014956 store 2 ,mem_new_24g_check_dongle_times 
+
+g24_tx_attemp_dongle_loop:
+0636 200007d0 nop 2000 
+0637 6800c956 fetch 1 ,mem_new_24g_check_dongle_times 
+0638 c07f8507 beq 0xff ,g24_stop_24g_mode 
+0639 204004db call g24_transmit_receive_ack 
+063a 242c064d nbranch g24_attemp_txdata_retry ,sync 
+063b 2437864d nbranch g24_attemp_txdata_retry ,user3 
+
+g24_tx_attemp_dongle_succ:
+063c 70413101 jam 1 ,mem_lpm_mode 
+063d 79200026 set1 mark_24g ,mark 
+063e 58000000 setarg 0 
+063f 60014956 store 2 ,mem_new_24g_check_dongle_times 
+0640 7009bd3a jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+0641 20407d86 call ui_ipc_send_event 
+0642 20207e0d branch check_51cmd_stop_adv 
+
+g24_tx_attemp_data_prep:
+0643 79200027 set1 mark_24g_conext ,mark 
+0644 704990ff jam 0xff ,mem_new_24g_common_temp 
+0645 6800c929 fetch 1 ,mem_new_24g_data_type 
+0646 6000c991 store 1 ,mem_new_24g_common_temp + 1 
+0647 68024960 fetch 4 ,mem_new_24g_device_addr 
+0648 60024992 store 4 ,mem_new_24g_common_temp + 2 
+0649 d8400006 arg 6 ,temp 
+064a da204990 arg mem_new_24g_common_temp ,rega 
+064b 20400453 call g24_put_data_in_buff 
+064c 20200466 branch g24_transmit_prep 
+
+g24_attemp_txdata_retry:
+064d 68014956 fetch 2 ,mem_new_24g_check_dongle_times 
+064e 1fe0fe01 increase 1 ,pdata 
+064f 60014956 store 2 ,mem_new_24g_check_dongle_times 
+0650 204003ca call g24_ch 
+0651 20200636 branch g24_tx_attemp_dongle_loop 
+branch g24_tx_attemp_dongle_loop 
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/ramcode.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/ramcode.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/ramcode.rom	(working copy)
@@ -0,0 +1,1618 @@
+c5128011
+c0000026
+c0018031
+c0430036
+c0450040
+c0458062
+c053806e
+c0540075
+c0548089
+c056009c
+c05a0341
+c05a80b5
+c05b00bc
+c05b80de
+c05c8226
+c05d022a
+20203b34
+c0028118
+c00b011d
+c00d8121
+c0118124
+c0178148
+c018815d
+c019016f
+c0198182
+c01c8193
+c01e01a0
+c01e81b3
+c01f01b9
+c01f81d2
+c02101f0
+c02681f5
+c04a8232
+c0798239
+c07b8245
+c07c026f
+c07c8275
+20203b34
+20800000
+2435b004
+6800c595
+243a002f
+6800ce78
+203a3004
+704e7f00
+c5933004
+2435b004
+70828003
+20203004
+2040027f
+204002bb
+6800ce78
+243a037a
+2020301b
+2030b9a3
+708955d4
+20000004
+708955d2
+20000004
+708955d1
+20000004
+6800c280
+c00a39ae
+2020399c
+60088017
+1840a200
+20403a13
+58000500
+20403b35
+70890601
+7089003c
+708901e0
+70896d12
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027f
+6800c280
+c00a005f
+c2808059
+c2810059
+70894c5b
+70894d96
+70894e2c
+70894f46
+2020005d
+70894cfb
+70894def
+70894eec
+70894f5e
+6800c280
+202039dc
+708956c2
+708955d0
+20600000
+20403cd2
+20403a5f
+70804206
+68108968
+79207e07
+60108968
+793ffe07
+60108968
+79207e07
+60108968
+70804205
+20203a0c
+20403c2b
+6800ce45
+207a0000
+704e4500
+1c427e00
+6002489e
+20600000
+c6130000
+20403be2
+6801c20f
+207a0000
+68014042
+d840ffff
+98467c00
+20628000
+6800c131
+207a0000
+20404816
+247a0000
+20403d0e
+247a0000
+20403a7b
+6800c6e2
+203a3c5e
+6800c639
+207a0000
+20203c5e
+6800c595
+203a0096
+6800809f
+243a0096
+6800ce83
+6808ce84
+98467c00
+24628000
+6800ce81
+247a0000
+58000000
+600400a0
+20203c6a
+204000a1
+24740000
+68008b2b
+247a0000
+7049c100
+20203c6a
+204000a1
+24740000
+68008b2b
+247a0000
+20203c8c
+204000ac
+24740000
+204000a9
+24740000
+700b2b01
+700b2a01
+204000b1
+202000ac
+6801482c
+6809482e
+202000ae
+680147c4
+680947c6
+98467c00
+2022e4c0
+202031d4
+68008b2a
+2000000a
+c08000b1
+20600000
+70001627
+70015000
+70017e00
+70017f00
+58000000
+600288d2
+20600000
+da2046f0
+20407f95
+207a0000
+1fe22600
+204000c2
+20203d9b
+c10c0000
+c00a00c7
+c00a80d1
+c01480dc
+20203d73
+704e8300
+70421200
+704ebb00
+704e5114
+20403e61
+20403e59
+20403e7f
+20403e20
+704eb901
+20203dc2
+704ea400
+204002fc
+7044b200
+70421200
+704ebb00
+704e5100
+70456a00
+68094e4e
+600944f8
+204052a0
+20203dc6
+20400106
+20207e3b
+6008824e
+6800c89c
+1fe0fe01
+6000c89c
+6800824e
+207a0000
+1fe0ffff
+6000824e
+20400109
+204000ec
+20400112
+204000f8
+204000ff
+202000e2
+6800cebb
+207a0000
+6800c212
+2fe1fe20
+244080f6
+6800c131
+205a00f4
+20600000
+70413101
+20600000
+70421220
+20600000
+6800c9ba
+207a0000
+704e8000
+1fe0ffff
+6000c9ba
+247a0000
+20600000
+6800ce82
+207a0000
+1fe0ffff
+6000ce82
+247a0000
+704e8100
+20600000
+20403e7f
+7009bd12
+20207d90
+6800ce51
+207a0000
+1fe0ffff
+6000ce51
+247a0000
+70421220
+70413101
+704ebb01
+20600000
+6800ce52
+207a0000
+1fe0ffff
+6000ce52
+247a0000
+20203e6d
+20404968
+20404b51
+20404bd8
+204005a7
+20204945
+20403a50
+1fe22200
+204005e5
+20204a3d
+68024e48
+60024596
+20204a8c
+70413101
+6801037c
+68090382
+98467e00
+600109be
+68008362
+793ffe05
+793ffe03
+60008362
+68020366
+68090364
+600909c6
+98462200
+6800c45b
+6000838d
+e8c90000
+e8c10000
+1febfe00
+60010364
+184b8400
+9840fe00
+e8ca0000
+600a038e
+9a20fe00
+1fe22800
+68010364
+680909c6
+98467e00
+680909be
+984ffe00
+9a80fe00
+60020366
+20405199
+68010390
+60014561
+20600000
+68008379
+c2828159
+20400599
+704e6200
+6800ce20
+243a0153
+6800cea5
+c0008157
+68008303
+203a4bde
+20204f87
+6800ce20
+1fe0ffff
+6000ce20
+20204f87
+704e2003
+20204bde
+6800ce62
+1fe0fe01
+6000ce62
+2020059d
+6800c467
+c0030161
+c0010168
+20204bfb
+6800ce53
+c0008165
+20403e6d
+20204c86
+20400106
+704e5203
+20204c90
+58000013
+e0a08000
+20404c58
+5800000a
+60010390
+60014561
+20600000
+6800c46b
+c0010176
+c003017d
+c0038174
+20204c18
+704ea500
+20204d17
+59000302
+6001c4dc
+58000001
+e0a08000
+58010010
+e0a18000
+20204ccd
+7009bd29
+20407d86
+7009bd47
+20404bd6
+20204d01
+6800c46b
+c00d8186
+c00e8186
+20204c2b
+68094e4e
+6009446c
+6800ce86
+1fe08401
+18410403
+6008ce86
+1feffe07
+d8c04e87
+98c08c00
+e8c38000
+6003c46e
+d840000e
+20204f89
+6008c466
+28200602
+24208198
+1840fffc
+60014467
+68088379
+2040019b
+20204f92
+6800cea5
+c000819e
+20204bd0
+58000000
+20600000
+1a627e00
+c00001a6
+c00101a9
+c00181ad
+c00501b1
+20204fb9
+70413100
+704e513c
+2020501f
+20405033
+58000000
+60044544
+20600000
+20405039
+6800c56a
+c1010000
+20206418
+7009bd2b
+20204bd6
+e8c08000
+c00081b6
+20204ffe
+704ea501
+704e2003
+20205069
+e8c18000
+6001839a
+c00901bd
+20205011
+70413101
+204001c9
+6800839b
+1fe67c60
+202281ce
+704ea600
+20405125
+24628000
+6800cea6
+245a01d0
+7009bd13
+20204bd6
+68008303
+1fe0fff9
+1fe27200
+1f222400
+20205135
+704ea601
+202001c3
+7009bd29
+20207d86
+6800c3ff
+207a0000
+d8e00001
+20407ee2
+247a0000
+7854fc00
+78287c00
+20404b1e
+204049d4
+20404a8a
+243681e4
+68008003
+1fe0fe01
+60008003
+68008302
+1fe17e0f
+c00181ee
+c002d1af
+68008016
+c093d17d
+180a7e00
+d84001ff
+98417e00
+1fe0fefa
+1fe0ffff
+20000026
+243a01ea
+20205196
+20404ac5
+202001e4
+68024596
+d840ea60
+9840fe00
+60024596
+202051a9
+7855fc00
+203701f8
+24368207
+20403cb7
+68014161
+60010370
+68008302
+2fe00601
+2420bccb
+6800c465
+2fe00601
+2420bccb
+20404bd0
+243a3ccb
+6800ce62
+1fe67c01
+24213ccb
+20205297
+68094161
+68014e60
+98408400
+18430400
+68010370
+9840fe00
+60010370
+20203cc3
+2040021d
+df200003
+d8c04ead
+5800ffff
+20400221
+24628000
+6800cea8
+207a0000
+1fe0ffff
+6000cea8
+2040022a
+20628000
+704ea701
+20600000
+d840000c
+da204ead
+68014eab
+2020624a
+e8c90000
+98467c00
+24628000
+c2000221
+20600000
+d8400002
+da2009ce
+da400030
+2020626f
+d8400002
+da2009be
+da400030
+20406245
+680109be
+d840aa55
+98467c00
+20600000
+68120078
+681a007c
+9841fe00
+1fe47e00
+9a217e00
+60120070
+20600000
+1a227e00
+207a0000
+18408560
+18408560
+793f841c
+600a4703
+1fe20400
+da2046f0
+20407fa6
+247a0000
+18427e00
+20207d7d
+20407d80
+da2046f8
+20407f95
+1fe20400
+20407d84
+18427e00
+207a0000
+c006824f
+c013825e
+20207db3
+793f8026
+70413100
+180a7e00
+6000c53e
+5826100e
+6001c541
+704e5300
+68094e4e
+600944f8
+204052a0
+da400005
+20400268
+1a427e00
+e0c08000
+20207e07
+793f8026
+70413100
+704e5301
+68094e4e
+20404f6a
+1a220a00
+58000001
+e0a08000
+da400004
+2020025a
+da204401
+ea208000
+207a0000
+98c0a200
+e8c08000
+c1008000
+20200269
+204058c5
+243a7de5
+680089bd
+c584fde0
+c00f8295
+20207dd0
+700b2a03
+204000b1
+704e455a
+20403cfc
+68120138
+793ffe0f
+6012004c
+20403cf4
+d85fffff
+20203c11
+680a489e
+1c427e00
+98467e00
+d8400640
+9846fc00
+20407f53
+1807fe00
+207a0000
+1c420400
+600a489e
+68094898
+18508400
+9840fe00
+1ff0fe00
+60014898
+1ff0fe00
+1fe17e03
+c1800000
+204002b3
+24760000
+6800c2cf
+c2810296
+20600000
+68108078
+793ffe05
+60108078
+7089718f
+6800c2d0
+60108973
+204002a1
+68108078
+79207e05
+60108078
+20600000
+68108053
+79207e07
+60108053
+68108973
+1fe1fe30
+60108973
+7089067c
+708972aa
+20001388
+68190150
+68108053
+793ffe07
+60108053
+18508400
+600942d1
+20600000
+78367c00
+20600000
+78567c00
+20404bd0
+205a02b1
+20600000
+704ea301
+204002bb
+704ea300
+20600000
+204000ac
+20740000
+1ff0fe00
+1fe20c00
+204002e0
+6000c897
+c00082cb
+1fe20400
+18c22200
+6800c040
+c30002d5
+1a220c00
+c6848000
+18427e00
+c002830e
+20203b31
+204002e0
+204002e0
+600089bd
+204002d0
+20207d90
+204002e3
+18c20400
+18508400
+600947c4
+20600000
+1a220c00
+d8a000f5
+202002d8
+204002e0
+1fe27200
+204002dc
+202002d0
+204002e0
+e0a08000
+c20002dc
+20600000
+204002e3
+e8c08000
+20600000
+580047c4
+98c67c00
+24628000
+d8c0472e
+20600000
+df200003
+d8c04894
+18c22200
+6801482e
+1ff0fe00
+1fe20a00
+1a220c00
+e8c08000
+e0a08000
+204002f7
+c20002ef
+18a27e00
+1ff0fe00
+6001482e
+20600000
+5800482c
+98a67c00
+24628000
+d8a047c8
+20600000
+58000000
+6001ce85
+20600000
+c6130000
+6800c595
+207a0000
+204000ac
+20740000
+1ff0fe00
+1fe20c00
+204002e0
+6000c897
+18c22200
+c08282d5
+18c22400
+20404bd4
+247a0000
+20200313
+18c22400
+6800cea3
+207a0000
+20404bd0
+247a0000
+68094e4e
+20404f6a
+c4000000
+6800c595
+c1000000
+6800ce83
+1fe0fe01
+6000ce83
+6800ce85
+1fe08401
+18410403
+6008ce85
+1feffe07
+d8a04e87
+98a08a00
+1a420c00
+204002e0
+1fe27200
+204002da
+2040032a
+20760000
+7009bd1b
+20204bd6
+78567c00
+6800cea4
+c1028000
+78367c00
+1fe0fe01
+6000cea4
+1fe67c01
+24610000
+70489640
+202002e8
+5800472e
+1ff0fe00
+600147c4
+600147c6
+580047c8
+1ff0fe00
+6001482c
+6001482e
+20600000
+68014ea9
+1fe0fe1c
+60014eab
+20600000
+2040524a
+700b2a00
+70016c06
+20403e7f
+580003bf
+60014296
+580002b7
+60014290
+580003b8
+6001428c
+24558334
+20558380
+20403d3e
+6800ceba
+203a035a
+1fe0ffff
+6000ceba
+58003f80
+60014ea9
+2040033d
+6800ce53
+243a035a
+6800ceb9
+243a035a
+2040020f
+6800ce45
+c02d0394
+20358392
+6800c280
+6000c9c3
+20400596
+68014e41
+1ff0fe00
+60014e41
+68014e43
+1ff0fe00
+60014e43
+2040039f
+680409c6
+243a036d
+68014ad4
+1ff0fe00
+203a036d
+60014e43
+7048962f
+6800ce78
+243a0375
+20400293
+204002e8
+204002ff
+70828003
+20600000
+2055bc29
+d9600d00
+34730200
+1c427e00
+6001ce7a
+6801470b
+c3858000
+c3830000
+20403d60
+20400493
+2020037a
+1ce27e00
+c593038a
+203a0385
+7049b9bb
+20600000
+7049b900
+6800c9b7
+207a0000
+7049b700
+20200383
+203a038d
+7049c102
+20600000
+6800c9c2
+207a0000
+7049c200
+7049c101
+20600000
+7048963c
+2020036e
+1ce27e00
+203a0277
+2040530d
+204042eb
+58000000
+60044040
+6001470b
+60014898
+6001489a
+7048963d
+2020036e
+204062c4
+580007e2
+da2009c6
+d840000c
+2040630d
+204062c7
+680409c6
+207a0000
+6800c2cf
+c28103aa
+20600000
+680909c6
+680109cc
+18422400
+1fe22200
+98462600
+1a427e00
+9a667e00
+1ff0fe00
+60014e41
+1a6bfe00
+9a20fe00
+1ff0fe00
+60014e43
+20600000
+78347c00
+68120138
+79347e1a
+6012004c
+20403cf4
+70009f01
+20600000
+1a627e00
+1fe17ef0
+c1280000
+1a627e00
+6000c896
+202002e8
+70492700
+7049324e
+68024934
+60024950
+20200459
+6808c933
+204003d0
+18408401
+18410403
+6008c933
+20600000
+6800c950
+1fe17e03
+1fefa204
+58004939
+9a20fe00
+98408c00
+e8c08000
+6000c932
+20600000
+7049b001
+7049b200
+6800c929
+1fe17e07
+6000c929
+20600000
+6800c929
+79207e04
+6000c929
+6000c8e4
+20600000
+6800c929
+793ffe04
+6000c929
+20600000
+2040059d
+6800c9b4
+c00083ed
+c00103f1
+20600000
+7049b202
+7049b300
+7049b000
+202003db
+7049b100
+202003ee
+6801492e
+1fe0fe01
+6001492e
+c2850502
+6800c9b1
+c00083fc
+7049b101
+6800c9b1
+c08083db
+6800c9b5
+1fe0fe01
+6000c9b5
+c0020403
+204003ca
+70496e02
+202004c3
+2040059d
+7049b500
+202003db
+7049b202
+7049b001
+7049b100
+202003db
+6800c9b4
+c0018407
+6800c929
+2fec0004
+202083d9
+6800c9b4
+c0008406
+c0010407
+20600000
+6800c938
+c1ff8000
+20400418
+24560420
+20600000
+78567c00
+6800c9b0
+c1808000
+6800c9b2
+c1800000
+7049b401
+70496e04
+202002b1
+6800c9b2
+203a0428
+1fe0ffff
+6000c9b2
+7049b402
+204003ca
+70496e04
+20600000
+7049b403
+6800c9b1
+243a03fa
+204003ca
+70496e02
+20600000
+6800c938
+c0ff8602
+204002bb
+20340440
+6800c897
+c08364c0
+6800ce80
+205a0479
+6800ce80
+245a043c
+20400445
+20400466
+70492d01
+20600000
+704e7900
+704e7800
+7049ba0a
+20600000
+6800ce78
+243a0445
+6800c92d
+c000b1d4
+20600000
+6800c9b9
+6000c9b8
+6800c970
+1fe22200
+da404971
+70495400
+204003db
+6000c990
+1a208401
+d8a04991
+1a227200
+1a420c00
+20407ecd
+da204990
+c6938000
+6008c928
+18427200
+d8a048c4
+1a220c00
+20207ecd
+da200000
+df200004
+d8c04950
+e8c08000
+9a20a200
+c200045c
+1a227e00
+600149bb
+6800c9bb
+6808c9bc
+9840fe00
+6000c9bd
+20600000
+6800c928
+1fe0fe02
+6000c92a
+6800c929
+6000c8e4
+6800c928
+1fe9fe00
+6808c927
+18410403
+18438400
+9841fe00
+6808c965
+9840fe00
+e0a08000
+6800c928
+98007200
+d8c048c4
+20207ecd
+20600000
+6800c2b8
+2fec0002
+20208483
+6800ce79
+c1028000
+1fe0fe01
+6000ce79
+c1828000
+704e7801
+20600000
+6800ce79
+c10a0000
+1fe0fe01
+6000ce79
+c18a0000
+6800c2b8
+79207e02
+6000c2b8
+20200481
+6800ce79
+207a0000
+1fe0ffff
+6000ce79
+247a0000
+704e7800
+20600000
+79200027
+204002bb
+20340498
+6800c897
+c003049e
+6800ce7d
+c000849d
+c0010478
+c001849d
+20600000
+20600000
+20600000
+20403be2
+6801c20f
+207a0000
+6800c131
+207a0000
+6800ce80
+c00084a8
+58000000
+600400a0
+204004b8
+d9600d00
+34730200
+6809ce7a
+1c427e00
+98467e00
+1fe17eff
+d8400ea6
+984f8400
+68024e74
+98467e00
+20213c7f
+6800c218
+1fe0fe01
+600241fb
+20203c86
+58013c68
+60024e74
+6800ce7e
+1fe0fe01
+c08284be
+58000000
+6000ce7e
+c4000000
+580130b0
+60024e74
+20600000
+70493100
+d9600d00
+34730200
+204004db
+6800c965
+c1008000
+242c04ea
+243784ea
+20400509
+20400599
+6800c927
+1fe0fe01
+6000c927
+6800c938
+c0ff84d9
+2040040a
+58000000
+6001492e
+6000c930
+6000c9b3
+70492d00
+20600000
+20400596
+2020061d
+7857fc00
+20400529
+6800c965
+c00084e8
+18002a00
+68024950
+98001200
+68088017
+204039b9
+204039bf
+20400553
+20578592
+20600000
+20400592
+202004cd
+6800c930
+1fe0fe01
+6000c930
+6800c938
+c0ff84fe
+6808c931
+18408401
+6008c931
+6800c96e
+98467e00
+243a04c4
+6800c9b4
+c00183f3
+6800c9b3
+1fe0fe01
+6000c9b3
+c00103e8
+204003df
+70496e01
+202004c3
+6800c930
+c1ff8000
+70493000
+20200507
+58000000
+6001492e
+70413100
+704e7900
+704e7800
+7048963b
+202002e8
+20400510
+6800c926
+207a0000
+98007200
+d8c048a4
+d8a04906
+20207ecd
+6800c8a3
+1fe97e00
+6000c926
+1fe0fe01
+d8c048a3
+98c08c00
+e8c18000
+6001c966
+6800c8a3
+1fe37e00
+1fe17e03
+6000c96c
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+6800c932
+1fed8400
+79200401
+18431c00
+20600000
+204039b1
+6808c932
+202039c9
+20404976
+68024950
+98001200
+2040051d
+20400526
+79202a00
+782efc00
+78307c00
+7850fc00
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6800c9bd
+08008608
+6800c92a
+98007200
+d8c048e4
+e8c08000
+08008608
+c200053f
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+784dfc00
+20600000
+20404976
+68024950
+98001200
+204039b1
+6808c932
+204039b9
+58000500
+20403b35
+204039bf
+2040051d
+7857fc00
+7826fc00
+7830fc00
+78507c00
+78287c00
+6801492b
+98003600
+37c18400
+242c0595
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+09800008
+19897e00
+6000c9be
+20400459
+6808c9be
+98467c00
+24228592
+09800008
+19897e00
+6000c8a2
+6800c96f
+1fe67c02
+20228572
+6800c8a2
+6808c929
+a8400e00
+24208592
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+2022857c
+09800008
+19897e00
+e0a08000
+c2000578
+18a22200
+09800008
+19897e00
+6000c9cf
+1a220a00
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+7845fc00
+20230592
+7837fc00
+68008017
+1fe0a200
+20403a13
+7846fc00
+204039b1
+6800c9cf
+1fe22200
+202005e5
+784dfc00
+7845fc00
+202036c6
+20200592
+7049c401
+7049c500
+20600000
+6800c9c5
+1fe0fe01
+6000c9c5
+20600000
+6800c9c5
+1fe67c01
+244105a5
+6800c9c5
+c1000000
+1fe0ffff
+6000c9c5
+20600000
+7049c502
+20600000
+da2049c6
+204005ee
+6008c9d0
+280ffe26
+204085b5
+244085b9
+98467c00
+242105d2
+6800c9c5
+1fe67c01
+242105bd
+6800c9c5
+c00005d2
+20600000
+58000082
+20600000
+58000077
+20600000
+58000080
+20600000
+58000075
+20600000
+6800c9c5
+c1a30000
+7049c500
+6808c9d0
+280ffe26
+204085b7
+244085bb
+98467c00
+24610000
+6800c9c4
+c00005de
+1fe0ffff
+6000c9c4
+c00005de
+708955d0
+708956e0
+7089574c
+7089586c
+70895950
+70428001
+20600000
+6800c9c4
+c00105d7
+1fe0fe01
+6000c9c4
+c00085cb
+708955d0
+708956e0
+7089574c
+7089583c
+70895910
+70428004
+20600000
+708955d0
+708956c0
+7089574c
+7089586c
+70895950
+70428010
+20600000
+6808c9ce
+580049c6
+98408a00
+1a227e00
+e0a08000
+18408401
+18410407
+6008c9ce
+20600000
+d8400000
+df200008
+1a220c00
+e8c08000
+98408400
+c20005f1
+18497e00
+1fe20400
+c6930000
+1fe6fc0a
+20407f53
+1807fe00
+1ff27e00
+18070400
+98418400
+20600000
+79200026
+204003c5
+70493801
+20600000
+6800c92d
+c000b1d4
+6800c938
+c0008609
+c001060c
+c001860f
+20203b31
+70493811
+704990aa
+20200611
+70493812
+70499055
+20200611
+70493813
+70499022
+6800c929
+1fe17e07
+6000c991
+68024960
+60024992
+70499600
+da204990
+d8400007
+20400453
+20400466
+2040043a
+202031d4
+6800c938
+c17f8000
+c0088623
+c0090625
+c0098627
+20600000
+70493802
+202004d3
+70493803
+202004d3
+704938ff
+70489639
+204002e8
+68024908
+204003c8
+202004d3
+793f8026
+204003ca
+68024950
+20400459
+6800c938
+c1ff8000
+20400643
+58000000
+60014956
+200007d0
+6800c956
+c07f8507
+204004db
+242c064d
+2437864d
+70413101
+79200026
+58000000
+60014956
+7009bd3a
+20407d86
+20207e0d
+79200027
+704990ff
+6800c929
+6000c991
+68024960
+60024992
+d8400006
+da204990
+20400453
+20200466
+68014956
+1fe0fe01
+60014956
+204003ca
+20200636
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/romcode.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/romcode.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/romcode.rom	(working copy)
@@ -0,0 +1,31150 @@
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+000006be
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/sched.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/sched.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/output/sched.rom	(working copy)
@@ -0,0 +1,940 @@
+mem_patch00:09
+mem_patch10:40
+mem_patch11:0c
+mem_patch14:80
+mem_patch15:13
+mem_patch16:f0
+mem_patch17:06
+mem_patch20:20
+mem_patch22:40
+mem_patch23:08
+mem_patch24:08
+mem_patch25:80
+mem_patch26:0e
+mem_patch27:f2
+mem_patch28:04
+mem_patch29:20
+mem_patch32:20
+mem_patch3e:88
+mem_patch3f:03
+
+##49   #mem_patch00	#49 enable HID
+##02   #mem_patch01	#02 enable HID
+##00   #mem_patch02
+##00   #mem_patch03
+##60   #mem_patch04	#60 enable HID
+##02   #mem_patch05	#02 enable HID
+##00   #mem_patch06
+##80   #mem_patch07	#80 enable HID
+##00   #mem_patch08
+##10   #mem_patch09	#10 enable HID
+##01   #mem_patch0A	#01 enable HID
+##00   #mem_patch0B
+##00   #mem_patch0C
+##00   #mem_patch0D
+##00   #mem_patch0E
+##00   #mem_patch0F
+##40   #mem_patch10
+##0c   #mem_patch11
+##00   #mem_patch12
+##00   #mem_patch13
+##80   #mem_patch14
+##13   #mem_patch15
+##f0   #mem_patch16
+##00   #mem_patch17
+##00   #mem_patch18
+##01   #mem_patch19	#01 enable HID
+##00   #mem_patch1A
+##00   #mem_patch1B
+##00   #mem_patch1C
+##00   #mem_patch1D
+##00   #mem_patch1E
+##00   #mem_patch1F
+##20   #mem_patch20
+##00   #mem_patch21
+##40   #mem_patch22
+##08   #mem_patch23
+##08   #mem_patch24
+##80   #mem_patch25
+##0e   #mem_patch26
+##d0   #mem_patch27
+##04   #mem_patch28
+##20   #mem_patch29
+##60   #mem_patch2A	#60 enable HID
+##41   #mem_patch2B	#41 enable HID
+##00   #mem_patch2C
+##00   #mem_patch2D
+##00   #mem_patch2E
+##00   #mem_patch2F
+##00   #mem_patch30
+##00   #mem_patch31
+##20   #mem_patch32
+##00   #mem_patch33
+##00   #mem_patch34
+##40   #mem_patch35	#40 enable HID
+##00   #mem_patch36
+##00   #mem_patch37
+##00   #mem_patch38
+##01   #mem_patch39	#01 enable HID
+##00   #mem_patch3A
+##00   #mem_patch3B
+##00   #mem_patch3C
+##00   #mem_patch3D
+##88   #mem_patch3E
+##03   #mem_patch3F
+
+mem_lpm_config:8f 1b ce
+mem_lpm_buckcnt:0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 04
+mem_rx_window_sniff:00 08
+mem_le_rx_window_inc:00 40
+
+mem_lmp_version: 09 59 00 B0 00    #04 0a 00 e9 12
+
+mem_eeprom_base:80 3f
+mem_eeprom_block_size:20
+
+mem_context_number:01
+
+mem_rf_init_data_new:
+# tx power
+55 d0
+56 c0
+57 4c
+58 3c
+59 50
+ff
+mem_rf_init_ptr:mem_rf_init_data_new
+
+#mem_class: 80 25 00
+#mem_lap:ab ab 66 63 5d 6c
+#mem_local_name_length:
+#'bt mouse
+#mem_sniff_param_interval:0c 00
+#mem_sniff_param_attempt:01
+#mem_sniff_param_timeout:01
+#mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+#mem_sp_iocap_local:03 00 04
+mem_ui_profile_supported:01
+
+#mem_eir_enable:01
+
+#mem_all_uuid_16bits:
+#06
+#03#Type: Complete list of 16-bit UUIDs
+#1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#mouse uuid
+#mem_device_uuid_list:
+#04 0011 0100 1002 1124
+#00 01 00 00
+#36 01 61
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#09
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#24
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#11
+#35
+#03
+#19
+#00
+#11
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#06
+#35
+#09
+#09
+#65
+#6e
+#09
+#00
+#6a
+#09
+#01
+#00
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#11
+#24
+#09
+#01
+#00
+#09
+#00
+#0d
+#35
+#0f
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#13
+#35
+#03
+#19
+#00
+#11
+#09
+#01
+#00
+#25
+#16
+#59 69 43 68 69 70#YiChip
+#20 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65
+#09
+#01
+#01
+#25
+#05
+#4d
+#6f
+#75
+#73
+#65
+#09
+#01
+#02
+#25
+#06
+#59 69 43 68 69 70#YiChip
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#01
+#11
+#09
+#02
+#02
+#08
+#80
+#09
+#02
+#03
+#08
+#21
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#28
+#01
+#09
+#02
+#06
+#35
+#81
+#35
+#7f
+#08
+#22
+#25
+#7b
+#05
+#01
+#09
+#02
+#a1
+#01
+#85
+#02
+#09
+#01
+#a1
+#00
+#05
+#09
+#19
+#01
+#29
+#08
+#15
+#00
+#25
+#01
+#75
+#01
+#95
+#08
+#81
+#02
+#05
+#01
+#09
+#30
+#09
+#31
+#16
+#01
+#f8
+#26
+#ff
+#07
+#75
+#10
+#95
+#02
+#81
+#06
+#09
+#38
+#15
+#81
+#25
+#7f
+#75
+#08
+#95
+#01
+#81
+#06
+#05
+#0c
+#0a
+#38
+#02
+#75
+#08
+#95
+#01
+#81
+#06
+#c0
+#c0
+#05
+#0c
+#09
+#01
+#a1
+#01
+#85
+#03
+#75
+#10
+#95
+#02
+#15
+#01
+#26
+#8c
+#02
+#19
+#01
+#2a
+#8c
+#02
+#81
+#60
+#c0
+#06
+#00
+#ff
+#09
+#01
+#a1
+#01
+#85
+#10
+#75
+#08
+#95
+#06
+#15
+#00
+#26
+#ff
+#00
+#09
+#01
+#81
+#00
+#09
+#01
+#91
+#00
+#c0
+#09
+#02
+#07
+#35
+#08
+#35
+#06
+#09
+#04
+#09
+#09
+#01
+#00
+#09
+#02
+#08
+#28
+#00
+#09
+#02
+#09
+#28
+#01
+#09
+#02
+#0a
+#28
+#01
+#09
+#02
+#0b
+#09
+#01
+#00
+#09
+#02
+#0c
+#09
+#0c
+#80
+#09
+#02
+#0d
+#28
+#00
+#09
+#02
+#0e
+#28
+#01
+#
+#04 1002 1200 0100 0001
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09 02 00#SpecificationID
+#09 01 03#DeviceID Spec Version:1.3
+#
+#09 02 01# VendorID
+#09 0a 5c#Unknown See http://www.bluetooth.org/assigned-number.htm
+#
+#09 02 02#ProductID
+#09 00 01#0x0001
+#
+#09 02 03#Version
+#09 01 29#Product Version:1.2.9
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#00
+#00
+#
+#01 00 01
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#05
+#ac
+#09
+#02
+#02
+#09
+#02
+#39
+#09
+#02
+#03
+#09
+#00
+#44
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#
+#03 1101 0003 0100 
+#00 01 00 02
+#36 00 2f
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#02
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#01
+#09
+#00
+#04
+#35
+#0c
+#35
+#03
+#19
+#01
+#00
+#35
+#05
+#19
+#00
+#03
+#08
+#01
+#09
+#01
+#00
+#25
+#09
+#53
+#50
+#50
+#20
+#73
+
+#mem_ui_uuid_table:mem_device_uuid_list
+#Auto reconnection after power on
+mem_device_option:42
+#mem_ptt:0
+#mem_features:
+#ff
+#ff
+#8f
+#f8	#fe--EDR  F8--BR
+#9b	#AFHclose 83
+#9d
+#51
+#82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+#2=mouse 4=dongle 6=ukey 7=ir
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:08
+mem_lpm_interval:00 00
+mem_scan_mode:00
+mem_ipc_tx_evt_buff:02 01
+
+mem_adc_config_flag:04
+mem_adc_channel:30
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+
+
+mem_le_adv_own_addr_type:00
+mem_le_adv_channel_map:07 
+mem_le_adv_filter_policy:00
+mem_le_transmit_window:50
+mem_le_notify_handle:1a
+mem_le_lap:ab b9 12 0e 10 26			#bluetooth MAC address
+mem_le_name_len:			#bluetooth name
+'BLE Mouse
+
+mem_le_local_mtu:17
+mem_le_adv_type:00
+mem_le_adv_direct_addr_type:01
+mem_le_adv_direct_addr:00 00 00 00 00 00
+mem_le_adv_enable:00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#appearance
+03 19 c2 03
+
+#uuid
+03 03 12 18
+
+#flag 
+02 01 05
+
+#name
+'\09BLE Mouse
+
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BLE Mouse
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_device_le_att_list:
+
+#Primary service GAP ------
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 0a
+03 00 02 00 2a
+'BLE Mouse
+
+#Appearance
+04 00 02 03 28 01 02
+05 00 02 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 02 00 28 02 01 18
+#Service changed
+09 00 02 03 28 01 20
+0a 00 02 05 2a 00
+#Client Characteristic Configuration
+0b 00 02 02 29 02 00 00
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#Manufacturer Name
+0d 00 02 03 28 01 02
+0e 00 02 29 2a 06 59 69 43 68 69 70
+#PNP id
+0f 00 02 03 28 01 02
+10 00 02 50 2a 07 02 35 12 22 aa 01 00
+#Primary service battery ------
+11 00 02 00 28 02 0f 18
+#Battery level
+12 00 02 03 28 01 02
+13 00 02 19 2a 01 33
+#Client Characteristic
+14 00 02 02 29 02 00 00
+
+#Primary service hid ------
+15 00 02 00 28 02 12 18
+
+#Protocol mode
+16 00 02 03 28 01 06
+17 00 02 4e 2a 01 01
+
+#Hid report
+18 00 02 03 28 01 1a
+19 00 02 4d 2a 07 00 00 00 00 00 00 00
+
+#Client Characteristic
+1a 00 02 02 29 02 00 00
+
+#Report reference
+1b 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Report map
+1c 00 02 03 28 01 0a
+1d 00 02 4b 2a 45 # length 72 bytes
+
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0).
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 f8 # Logical Minimum(-2047)
+26 ff 07 # Logical Maximum(2047)
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+05 0c # Usage Page(Consumer)
+0a 38 02 # Usage(AC Pan)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+c0 # End Collection
+c0 # End Collection
+
+#Boot mouse input report
+1e 00 02 03 28 01 1a
+1f 00 02 33 2a 08 00 00 00 00 00 00 00 00
+
+#Client Characteristic
+20 00 02 02 29 02 01 00
+
+#Hid information
+21 00 02 03 28 01 02
+22 00 02 4a 2a 04 01 01 00 03
+
+#Hid control point
+23 00 02 03 28 01 04
+24 00 02 4c 2a 00
+
+25 00 02 03 28 01 12 
+26 00 02 4d 2a 07 00 00 00 00 00 00 00 
+27 00 02 02 29 02 00 00
+28 00 02 08 29 02 11 01
+29 00 02 03 28 01 0e 
+2a 00 02 4d 2a 07 00 00 00 00 00 00 00
+2b 00 02 08 29 02 11 02
+
+#End of Attribute list
+00 00
+
+mem_ui_le_uuid_table:mem_device_le_att_list
+
+mem_le_rx_winsows:50
+
+mem_le_interal_min:
+07 00 #min interval
+07 00 #max interval
+05 00 #latency
+2c 01 #timeout
+
+mem_empty_count_user:00
+#mem_le_att_report1:13 00
+mem_le_att_report2:19 00
+mem_le_pairing_handle:22 00
+mem_le_pairing_mode:01
+mem_le_flag:01
+
+mem_tx_power:02#3dbm
+
+mem_le_start_fast_conn_count:01
+mem_le_init_eeprom_base_count:01
+
+#24g init
+mem_new_24g_mode:01#tx
+mem_new_24g_data_type:01	#mouse 1,kb 2
+mem_new_24g_max_retry:04#max tx retry
+mem_new_24g_no_ack:00#with ack
+mem_new_24g_rx_window:c0 12	#400us
+mem_new_24g_interval:19
+mem_new_24g_interval_min:19
+mem_new_24g_interval_max:1c
+mem_new_24g_ch_map1:00 13 2c 42
+mem_new_24g_ch_map2:06 15 36 48
+mem_new_24g_ch_map3:0f 1a 3a 4c
+mem_new_24g_ch_map4:11 23 31 4d
+mem_new_24g_pairing_sm:ff
+mem_new_24g_paring_addr:20 15 10 05
+mem_new_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_new_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 min
+
+
Index: /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/patch/patch.format	(added)
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/patch/patch.format	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/patch/patch.format	(revision 0)
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/patch/patch.prog
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/patch/patch.prog	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/patch/patch.prog	(working copy)
@@ -0,0 +1,3094 @@
+define REVD
+define ROMCODE
+define PATCH
+INCLUDE "bt_format"
+org 0x0000		// start from patch ram address start
+
+
+//define HID
+define BLE
+define P24G_YC
+//define P24G_LOG
+//define P24G_AUTO
+define ADC_GPIO
+//define ADC_VINLPM
+//define ADC_HVIN
+//define TEST_MODE
+//define MS_TEST
+//define HCILOG
+//define KEYBORD_DATA
+//define TP_MAX
+//define OTA_ENABLE
+define BLE_FAST_CONN_ENABLE
+
+ifdef PATCH
+	bmark1 mark_ext_patch,patch_ext
+	beq patch00_0,p_soft_reset
+	beq patch00_3,p_main_loop
+ifdef HID	
+	beq patch00_6,p_connection_nosniff
+	beq patch01_1,p_idle_page_mode_r0
+	beq patch04_5,p_role_switch_check
+	beq patch04_6,p_role_switch_prepare
+	beq patch05_1,p_roles_replyto_fhs
+	beq patch07_7,p_slave_notmatch
+	beq patch09_4,p_prepare_tx_not_sco
+	beq patch0a_0,p_tx_l2cap_type
+	beq patch19_0,p_hid_rx_process
+endif	
+	beq patch10_6,p_shutdown_radio
+	beq patch11_2,p_set_freq_tx
+	beq patch11_3,p_initialize_radio_cont
+	beq patch14_7,p_lpm_recover_clk
+	beq patch15_0,p_lpm_dispatch
+	beq patch15_1,p_lpm_dispatch_next2
+	beq patch15_4,p_lpm_dispatch_unconn
+	beq patch16_4,p_device_init
+	beq patch16_5,p_app_lpm_init
+	beq patch16_6,p_app_process_bb_event
+	beq patch16_7,p_app_evt_timer
+ifdef BLE_FAST_CONN_ENABLE
+	beq patch17_1,p_app_flag_store
+	beq patch17_2,p_app_initflag_check
+endif
+	branch loop
+
+patch_ext:
+ifdef BLE
+	beq patch20_5,p_le_slave_match
+	beq patch22_6,p_le_receive_skip
+	beq patch23_3,p_le_send_adv_ind
+	beq patch24_3,p_le_update_param
+	beq patch25_7,p_le_prepare_tx
+	beq patch26_1,p_le_prepare_tx_ll
+	beq patch26_2,p_le_prepare_smp0
+	beq patch26_3,p_le_prepare_att
+	beq patch27_1,p_le_send_packet
+	beq patch27_4,p_le_parse0
+	beq patch27_5,p_le_parse_smp
+	beq patch27_6,p_le_parse_att
+	beq patch27_7,p_le_adv
+	beq patch28_2,p_le_receive_window_size
+	beq patch29_5,p_le_lpm_set_mult
+endif
+ifdef HID
+	beq patch2a_5,p_parse_lmp_escape
+	beq patch2a_6,p_parse_lmp_accepted
+	beq patch2b_0,p_send_lmp
+	beq patch2b_6,p_process_conn_sm
+	beq patch35_6,p_scheduler_process0
+	beq patch39_0,p_ask_serviceclassid
+endif	
+	beq patch32_5,p_gpio_set_before_lpm_common
+	beq patch3e_3,p_ui_timer_check_end
+	beq patch3e_7,p_check_51cmd_once
+	beq patch3f_0,p_check_51cmd_once_continue0
+	beq patch3f_1,p_check_enter_hibernate
+	branch loop
+
+p_soft_reset:
+	clear_stack
+	nbranch soft_reset+3,wake
+	fetch 1,mem_le_switch_send_data
+	nbranch p_soft_reset_start_51,blank
+	fetch 1,mem_short_lpm_enable
+	branch soft_reset+3,blank
+	jam 0,mem_ipc_is_ready
+	bmark0 mark_24g,soft_reset+3
+	nbranch soft_reset+3,wake
+p_soft_reset_start_51:
+	hjam START_C51_CORE,core_docd_ctrl	
+	branch soft_reset+3
+	
+p_main_loop:
+	call p_ipc_timer_check
+	call p_ipc_rx
+	fetch 1,mem_short_lpm_enable
+	nbranch p_24g_short_lpm_process_loop,blank
+	branch main_loop+2
+
+ifdef HID
+p_connection_nosniff:
+	call p_context_get_next
+	branch connection_nosniff+3
+p_context_get_next:
+	fetcht 1,mem_current_context
+	arg context_num,loopcnt
+	arg mem_context,rega
+	increase 1,temp
+	compare context_num,temp,0xff
+	nbranch p_context_get_next_cont,true
+	arg 0,temp
+p_context_get_next_cont:
+	storet 1,mem_current_context
+	mul32 temp,context_size,pdata
+	iadd rega,contr
+	ifetch 1,contr
+	bbit0 state_insniff,context_get_next_cont+6
+	increase 1,contr
+	ifetch 2,contr
+	branch context_get_next_cont+6,blank		// switch, not sniff, do connection 
+	branch context_get_next_sniff
+	
+p_idle_page_mode_r0:
+	storet 8,mem_temp
+	call timer_check
+	fetcht 8,mem_temp
+	branch idle_page_mode_r0+13		//warning!!!timer_check
+
+p_role_switch_check:
+	disable user
+	fetch 2,mem_tsniff
+	arg 0xffff,temp
+	isub temp,null
+	nrtn zero
+	fetch 4,mem_sniff_anchor
+	branch p_role_switch_clkn,clknt
+	isub clke_bt,pdata
+	branch p_role_switch_clke
+p_role_switch_clkn:
+	isub clkn_bt,pdata
+p_role_switch_clke:
+	sub pdata,4,null
+	nrtn positive
+	force 0,pdata
+	store 2,mem_tsniff
+	enable user
+	rtn
+
+p_role_switch_prepare:
+	storet 4,mem_sniff_anchor
+p_role_switch_prepare0:
+	jam SWITCH_FLAG_ACCEPT,mem_switch_flag
+	setarg 0xffff
+	store 2,mem_tsniff	
+	jam 1,mem_sniff_attempt
+	rtn
+
+p_roles_replyto_fhs:
+	call rf_setup_time_slave_slot
+	call p_master_send_packet
+	branch roles_replyto_fhs+4
+p_master_send_packet:
+	add clkn_bt,1,bt_clk          /* master start to use native clock */
+	call fetch_self_bt_adr
+	force 0x03,freq_mode          /* we are in connection!! */
+	call tx_radio_freq
+	call start_transmitter	/* get ready for that id packet */
+	call start_tx_native
+	call send_access_word
+	branch end_of_packet
+
+p_slave_notmatch:
+	call lpm_set_mult
+	call supervision_update
+	branch slave_disconnect,positive
+	call check_disconnect_timeout
+	nbranch slave_disconnect,user
+	call check_attempt
+	nbranch slave_loop+3,blank
+	rtn
+
+p_prepare_tx_not_sco:
+	call context_check_all_wack			 //abandon mark_retransmit, use context_check_all_wack instead.
+	nbranch prepare_tx_no_retransmit,zero
+	fetch 1,mem_arq
+	bbit0 wack,prepare_tx_pollnull
+	fetch 1,mem_last_type
+	beq type_lmp,prepare_tx_retransmit+7
+	fetch 2,mem_last_txlen
+	sub pdata,20,null
+	nbranch prepare_tx_retransmit+7,positive 
+	store 2,mem_tx_len
+	fetch 1,mem_last_txlch
+	store 1,mem_tx_lch
+	setarg mem_last_txdata
+	store 2,mem_txptr
+	branch prepare_tx_retransmit+7	
+
+p_tx_l2cap_type:
+	fetch 2,mem_tx_len
+	store 2,mem_last_txlen
+	sub pdata,20,null
+	nbranch tx_l2cap_type+2,positive
+	iforce loopcnt
+	fetch 1,mem_tx_lch
+	store 1,mem_last_txlch
+	fetch 2,mem_txptr
+	iforce contr
+	arg mem_last_txdata,contw
+	call memcpy
+	branch tx_l2cap_type+2
+endif
+
+p_shutdown_radio:
+	branch shutdown_radio0,is_rx
+	hjam 0xd4, 0x955
+	nop 4
+	hjam 0xd2, 0x955
+	nop 4
+	hjam 0xd1, 0x955
+	nop 4
+	fetch 1,mem_tx_power
+	beq TX_POWER_PAIR,shutdown_radio_pair
+	branch shutdown_radio_select
+
+p_set_freq_tx:
+	storet 1,mem_last_freq
+	add temp,0,rega			// bt 2M Medium Frequency
+	call rf_write_freq
+	setarg param_pll_setup
+	call sleep
+p_txon:	
+ifdef FPGA
+ifndef ROMCODE
+	setarg 0x000f
+	call fpga_write_radio
+	setarg 0x01e1
+	call fpga_write_radio
+	hjam 0x0, 0x901
+endif
+endif
+	hjam 0x1,rfen_adc
+	hjam 0x3c,rfen_rx
+	hjam 0xe0,rfen_tx
+	hjam 0x12,0x96d
+	nop 10
+	hjam 0x01,rfen_mdm
+	hjam 0x3d,rfen_mdm
+	nop 10
+	hjam 0xb7,rfen_sn
+	nop 10
+	hjam 0x7f, rfen_mdm
+	fetch 1,mem_tx_power
+	beq TX_POWER_PAIR,p_set_tx_power_pair
+	bbit1 TX_POWER_3DB,p_rx_high_sens
+	bbit1 TX_POWER_5DB,p_rx_high_sens
+p_rx_low_sens:
+	hjam 0x5b,0x894c 
+	hjam 0x96,0x894d
+	hjam 0x2c,0x894e 
+	hjam 0x46,0x894f 
+	branch p_txon_select_power_level
+p_rx_high_sens:
+	hjam 0xfb,0x894c 
+	hjam 0xef,0x894d
+	hjam 0xec,0x894e 
+	hjam 0x5e,0x894f 
+p_txon_select_power_level::
+	fetch 1,mem_tx_power
+	branch txon_power_select
+
+p_set_tx_power_pair:	//50-100cm distance
+ 	hjam 0xc2,0x8956
+ 	hjam 0xd0,0x8955
+	rtn
+
+p_initialize_radio_cont:
+	call lpm_cal_xtal_startup
+	call switchto_dpllclk
+	hjam clksel_rc,core_clksel
+	hfetch 1,rf_clkpll_int
+	set1 7,pdata
+	hstore 1,rf_clkpll_int
+	set0 7,pdata
+	hstore 1,rf_clkpll_int
+	set1 7,pdata
+	hstore 1,rf_clkpll_int
+	hjam clksel_dpll,core_clksel
+	branch initialize_radio_cont+4
+
+p_lpm_recover_clk:
+	call lpm_recover_clk+2
+	fetch 1,mem_hibernate_flag
+	rtn blank
+	jam 0,mem_hibernate_flag
+	copy clkn_bt,pdata
+	store 4,mem_ipc_last_check_timer
+	rtn
+
+p_lpm_dispatch:
+	rtnmark1 mark_24g
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 2,mem_context + coffset_tsniff
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero									/* role switch */
+	fetch 1,mem_lpm_mode
+	rtn blank
+	call l2cap_malloc_is_fifo_empty
+	nrtn blank
+	call lpm_check_wake_lock
+	nrtn blank
+	call xtal_fast_wake
+	fetch 1,mem_ssp_enable
+	branch lpm_dispatch_next,blank
+	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
+	rtn blank
+	branch lpm_dispatch_next
+
+p_lpm_dispatch_next2:
+	fetch 1,mem_le_switch_send_data
+	branch p_lpm_dispatch_long_mult,blank
+	fetch 1,mem_lpm_current_mult
+	nbranch p_lpm_dispatch_long_mult,blank // short lpm, no gpio to wakeup
+	fetch 1,mem_bt_read_ipc_count
+	fetcht 1,mem_51_read_sensor_count
+	isub temp,null
+	nrtn zero
+	fetch 1,mem_ble_data_wheel
+	nrtn blank
+	setarg 0
+	store 8,mem_gpio_wakeup_low
+	branch lpm_dispatch_next2
+p_lpm_dispatch_long_mult:
+	call p_check_ipc_for_lpm
+	nrtn user
+	fetch 1,mem_c51_lmp_lock
+	nrtn blank
+	jam 0,mem_bt_wakeup_from_long_mult	//bt enter long mult,then 8051 execute  EVENT_WAKEUP
+	branch lpm_dispatch_next2
+
+p_lpm_dispatch_unconn:
+	call p_check_ipc_for_lpm
+	nrtn user
+	fetch 1,mem_c51_lmp_lock
+	nrtn blank
+	branch lpm_dispatch_unconn+2
+
+p_check_ipc_for_lpm:
+	call p_check_ipc_2bt
+	nrtn user
+	call p_check_ipc_2c51
+	nrtn user
+	jam 1,mem_c51_lmp_lock
+	jam SYC_TASK_LPM,mem_c51_flag
+	call p_c51_wait
+	branch p_check_ipc_2bt
+
+
+//user: no data
+p_check_ipc_2c51:
+	fetch 2,mem_ipc_2C51_read_index
+	fetcht 2,mem_ipc_2C51_write_index
+	branch p_check_ipc_common
+p_check_ipc_2bt:
+	fetch 2,mem_ipc_2bt_read_index
+	fetcht 2,mem_ipc_2bt_write_index
+p_check_ipc_common:
+	isub temp,null
+	branch enable_usr,zero
+	branch disable_usr
+	
+p_c51_wait:
+	fetch 1,mem_c51_flag
+	nop 10
+	bne 0,p_c51_wait
+	rtn	
+
+
+p_app_lpm_init:
+	jam 39,mem_le_ch_mapped
+	jam 0,mem_tester_emulate
+	jam 0,mem_debug_config
+	jam 0, mem_lch_code
+	setarg 0
+	store 5,mem_sp_state_start
+	rtn
+
+p_app_process_bb_event:
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_out
+	rtn blank
+	//reaching here mains c51 cannot get bb event.
+	copy pdata,regc
+	call p_app_event_normal_process
+	branch app_process_bb_event_priority
+p_app_event_normal_process:
+	rtneq BT_EVT_LINKKEY_GENERATE
+ifdef HID
+	beq BT_EVT_HID_CONNECTED,p_device_bt_hid_connected
+	beq BT_EVT_BB_DISCONNECTED,p_app_bb_event_bb_disconn
+endif
+ifdef BLE	
+	beq BT_EVT_LE_CONNECTED,p_device_le_conn
+	beq BT_EVT_LE_DISCONNECTED,p_device_le_discon
+	beq BT_EVT_LE_ENC_INFO,p_device_le_enc_info
+endif
+	branch app_event_normal_process
+
+ifdef HID
+p_device_bt_hid_connected:
+	branch mouse_hid_connected
+p_app_bb_event_bb_disconn:
+	jam 0,mem_unsniff2sniff_timer_count
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,app_bb_event_bb_reconn_disconn
+	branch app_bb_event_bb_reconn_disconn
+endif
+
+ifdef BLE
+p_device_le_conn:
+	jam 0,mem_bt_read_ipc_count
+	jam 0,mem_lpm_mult
+	jam 0,mem_mult_time_arrive_flag
+	jam 20,mem_le_slave_update_mult_timer
+	call app_ble_stop_adv
+	call app_bt_stop_discovery
+	call app_lpm_mult_enable
+	call app_initflag_store
+	jam 1,mem_le_fast_conn_finished
+	branch app_le_event_bb_connected
+
+p_device_le_discon:
+	jam 0,mem_ble_send_flag
+	call queue_init
+	jam 0,mem_ltk_exists
+	jam 0,mem_lpm_mult
+	jam 0,mem_mult_time_arrive_flag
+	jam 0,mem_le_slave_update_mult_timer
+//	jam 0,mem_le_slave_update_param_timer
+	jam FLAG_LE_PAIRING_NULL,mem_le_pairing_state
+	fetcht 2,mem_le_att_report2
+	storet 2,mem_le_notify_handle
+	call le_clean_att_list_handle_enable
+	branch app_le_event_bb_disconn
+
+p_device_le_enc_info:
+	call p_app_updata_le_param
+	branch check_51cmd_le_start_write
+endif
+
+p_app_evt_timer:
+	storet 1,mem_app_evt_timer_count
+	fetch 1,mem_ipc_bt_100ms_timer
+	increase 1,pdata
+	store 1,mem_ipc_bt_100ms_timer
+p_app_evt_100ms_loop:
+	fetch 1,mem_app_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_app_evt_timer_count	
+ifdef HID	
+	call p_device_check_hid_handshake_timer
+endif	
+ifdef BLE	
+//	call p_le_slave_update_param_timer
+	call p_le_slave_update_mult_timer
+	call p_check_mult_parameter
+	call p_le_reconn_enable_notify_timer
+endif
+	call p_24g_enter_lpm_timer
+	call p_ble_data_wheel_lpm_timer
+	branch p_app_evt_100ms_loop
+
+p_check_mult_parameter:
+	fetch 1,mem_mult_time_arrive_flag
+	rtn blank
+	fetch 1,mem_lpm_mult
+	compare 0x20,pdata,0xff
+	ncall p_set_mult_para,true
+	fetch 1,mem_lpm_mode
+	call p_set_multmode,blank
+	rtn
+p_set_multmode:
+	jam 1,mem_lpm_mode
+	rtn
+p_set_mult_para:
+	jam 0x20,mem_lpm_mult
+	rtn
+p_24g_enter_lpm_timer:
+	fetch 1,mem_new_24g_enter_lpm_timer
+	rtn blank
+	jam 0,mem_short_data_wheel
+	increase -1,pdata
+	store 1,mem_new_24g_enter_lpm_timer
+	nrtn blank
+	rtn
+
+p_ble_data_wheel_lpm_timer:
+	fetch 1,mem_ble_data_wheel_lpm_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_ble_data_wheel_lpm_timer
+	nrtn blank
+	jam 0,mem_ble_data_wheel
+	rtn
+	
+ifdef BLE	
+//p_le_slave_update_param_timer:
+//	fetch 1,mem_le_slave_update_param_timer
+//	rtn blank
+//	increase -1,pdata
+//	store 1,mem_le_slave_update_param_timer
+//	nrtn blank
+p_app_updata_le_param:
+	call app_lpm_mult_enable
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+p_le_slave_update_mult_timer:
+	fetch 1,mem_le_slave_update_mult_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_le_slave_update_mult_timer
+	nrtn blank
+	jam 0x20,mem_lpm_mult
+	jam 1,mem_lpm_mode
+	jam 1,mem_mult_time_arrive_flag
+	rtn
+
+p_le_reconn_enable_notify_timer:
+	fetch 1,mem_le_reconn_enable_notify_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_le_reconn_enable_notify_timer
+	nrtn blank
+	branch app_ble_start_write	
+endif
+
+ifdef HID
+p_device_check_hid_handshake_timer:
+	fetch 1,mem_hid_handshake_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_hid_handshake_timer_count
+	nrtn blank
+	fetch 1,mem_hid_send_handshake
+	nbranch p_mem_hid_send_handshake_set0,blank
+	branch hid_handshake_event
+p_mem_hid_send_handshake_set0:
+	jam 0,mem_hid_send_handshake
+	rtn
+endif
+
+ifdef HID
+p_hid_rx_process:
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
+	ifetch 1,contr
+	and pdata,0x0f,temp
+	rshift4 pdata,pdata //hidtype
+	beq hid_type_set_idle,p_hid_rx_process_handshake
+	beq hid_type_set_protocol,hid_rx_process_handshake
+	beq hid_type_data,p_hid_rx_process_data
+	beq HID_TYPE_SET_REPORT,p_hid_rx_process_set_report
+	beq HID_TYPE_CONTROL,p_hid_rx_process_hid_control
+	beq HID_TYPE_GET_REPORT,hid_rx_process_handshake
+	rtn
+p_hid_rx_process_handshake:
+	call hid_rx_process_handshake
+	jam 1,mem_hid_send_handshake
+	rtn
+p_hid_rx_process_set_report:
+	call p_hid_rx_process_data
+	branch hid_rx_process_set_report+1
+p_hid_rx_process_data:
+	ifetch 1,contr	
+	beq HID_REPORT_ID_KB,hid_rx_process_data_hid_kb	
+	beq HID_DISCONNECT,p_hid_disconnect
+	rtn
+p_hid_disconnect:
+	jam BT_EVT_CLEAR_LINKKEY,mem_ipc_tx_evt
+	call p_ipc_tx_evt
+	branch app_bt_disconnect
+p_hid_rx_process_hid_control:
+	copy temp,pdata
+	beq HID_CONTROL_P_VIRTUALCABLEUNPLUG,p_hid_rx_process_virtual_cable_unplug
+	beq HID_CONTROL_P_SUSPEND,hid_rx_process_suspend
+	rtn
+p_hid_rx_process_virtual_cable_unplug:
+	jam BT_EVT_VIRTUAL_CABLE_UNPLUG,mem_ipc_tx_evt
+	call p_ipc_tx_evt
+	branch app_bt_disconnect
+endif
+
+ifdef BLE
+p_le_slave_match:
+	call le_got_first_packet
+	call le_acknowledge
+	call le_prepare_tx
+	call power_ctrl_start
+	branch le_slave_match+5
+
+p_le_receive_skip:
+	call save_rssi
+	copy pdata,rega
+	call rssi_signal
+	branch le_receive_skip+3
+
+p_le_send_adv_ind:
+	fetch 4,mem_le_rx_winsows
+	store 4,mem_le_transmit_window// init first packate rx window
+	branch le_send_adv_ind+2
+
+p_le_update_param:
+	jam 1,mem_lpm_mode	
+	fetch 2,mem_le_event_count
+	fetcht 2,mem_le_instant
+	isub temp,pdata
+	store 2,mem_pdatatemp
+	fetch 1,mem_le_state
+	set0 lestate_update_param,pdata
+	set0 lestate_got_first_packet,pdata
+	store 1,mem_le_state
+	fetch 4,mem_le_anchor
+	fetcht 2,mem_le_tsniff
+	storet 2,mem_temp
+	isub temp,rega
+	fetch 1,mem_le_new_param
+	store 1,mem_le_window_size
+	ifetcht 2,contr
+	ifetch 2,contr
+	lshift2 pdata,pdata
+	store 2,mem_le_tsniff
+	lshift2 temp,temp
+	iadd temp,pdata
+	ifetcht 4,contr
+	storet 4,mem_le_slave_latency	// and superTO
+	iadd rega,pdata
+	copy pdata,regab
+	fetch 2,mem_le_tsniff
+	fetcht 2,mem_temp	//last sniff
+	isub temp,pdata		//last sniff - new sniff
+	fetcht 2,mem_pdatatemp
+	imul32 temp,pdata
+	iadd regab,pdata
+	store 4,mem_le_anchor
+	call le_receive_window_size
+	fetch 2,mem_le_superto
+	store 2,mem_le_init_superto
+	rtn
+
+p_le_prepare_tx: 
+	fetch 1,mem_le_arq
+	bbit1 wak,p_le_prepare_tx_retansmited
+	call power_ctrl_pac_succ_incrs
+	jam 0,mem_le_prepare_tx_retransmited_number
+	fetch 1,mem_empty_count_user
+	nbranch p_le_send_empyt,blank
+	fetch 1,mem_mouse_le_pairing_flag
+	beq 1,p_le_smp_empty
+	fetch 1,mem_le_rxbuf+1  
+	branch le_prepare_tx_1,blank
+	branch le_send_empty      // send empty data when got non empty packet
+p_le_send_empyt:
+	fetch 1,mem_empty_count_user
+	increase -1,pdata
+	store 1,mem_empty_count_user
+	branch le_send_empty
+p_le_smp_empty:
+	jam 3,mem_empty_count_user
+	branch le_prepare_tx_1
+
+p_le_prepare_tx_retansmited:
+	fetch 1,mem_le_prepare_tx_retransmited_number
+	increase 1,pdata
+	store 1,mem_le_prepare_tx_retransmited_number
+	branch power_ctrl_pac_succ_decrs
+
+p_le_prepare_tx_ll:
+	fetch 1,mem_le_txpayload
+	beq LL_START_ENC_RSP,p_le_send_start_enc_rsp
+	beq LL_TERMINATE_IND,p_le_send_terminate_ind
+	branch le_prepare_tx_ll
+
+p_le_send_start_enc_rsp:
+	fetch 1,mem_le_reconn_flag
+	beq 1,p_le_send_reconn_start_enc_rsp
+	call app_ble_start_write
+//	force 1,temp
+//	branch le_send_packet,master
+//	fetch 1,mem_le_pairing_state
+//	bne FLAG_LE_PAIRING_AFTER_AUTH,le_send_start_enc_rsp_end
+//	branch le_send_start_enc_rsp+4
+	branch le_send_start_enc_rsp
+p_le_send_reconn_start_enc_rsp:
+	call p_app_updata_le_param
+	jam 3,mem_le_reconn_enable_notify_timer
+	branch le_send_start_enc_rsp_common
+
+p_le_send_terminate_ind:
+	setarg 0x13
+	istore 1,contw
+	call le_send_terminate_ind
+	setarg 10 // 100ms
+	store 2,mem_le_superto
+	store 2,mem_le_init_superto
+	rtn
+
+p_le_prepare_smp0:
+	fetch 1,mem_le_l2cap
+	beq SMP_PAIRING_RESPONSE,p_le_send_smp_pairing_response 
+	beq SMP_ENCRYPTION_INFORMATION,p_le_send_smp_encryption_information      
+	beq SMP_MASTER_IDENTIFICATION,p_le_send_smp_master_identification_only
+	branch le_prepare_smp0
+p_le_send_smp_master_identification_only:
+	jam 0,mem_mouse_le_pairing_flag
+	branch le_send_smp_master_identification_only
+	
+p_le_send_smp_pairing_response:
+	setarg param_smp_paring_response
+	store 3,mem_le_pres
+	setarg 0x01
+	istore 1,contw
+	setarg param_smp_key_dist0
+	istore 3,contw
+	branch le_send_smp_pairing_response_common
+
+p_le_send_smp_encryption_information:
+	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
+	call ui_ipc_send_event
+	jam XT_SMP_MASTER_IDENTIFICATION,mem_fifo_temp
+	call le_xtype_fifo_in
+	branch le_send_smp_encryption_information_shutter
+
+p_le_prepare_att:
+	fetch 1,mem_le_l2cap
+	beq ATTOP_HANDLE_VALUE_NOTIFICATION,p_le_send_att_handle_value_notification
+	beq ATTOP_HANDLE_VALUE_INDICATION,p_le_send_att_handle_value_indication
+	branch le_prepare_att+5
+	
+p_le_send_att_handle_value_indication:
+p_le_send_att_handle_value_notification:
+	fetcht 2,mem_le_att_report2
+	storet 2,mem_le_l2cap+1
+	fetch 1,mem_queue_read_ptr
+	add pdata,1,temp
+	and temp,0x03,temp
+	storet 1,mem_queue_read_ptr
+	mul32 pdata,7,pdata
+	arg mem_queue_buffer0,contr
+	iadd contr,contr
+	ifetch 7,contr
+	store 7,mem_le_l2cap+3
+	arg 14,temp
+	branch le_send_packet
+
+p_le_send_packet:
+	storet 1,mem_le_txlen
+	compare 2,type,3
+	nbranch p_le_send_non_l2cap,true
+	add temp,-4,pdata
+	store 2,mem_le_txpayload
+p_le_send_non_l2cap:
+	fetcht 1,mem_le_arq
+	call p_le_send_check_md
+	branch le_send_non_l2cap1
+p_le_send_check_md:
+	fetch 1,mem_mouse_le_pairing_flag
+	beq 1,enable_blank
+	branch le_xtype_fifo_is_empty
+enable_blank:
+	setarg 0
+	rtn
+	
+p_le_parse0:
+	copy regc,pdata
+	beq LL_CONNECTION_UPDATE_REQ,p_le_parse_connection_update_req
+	beq LL_TERMINATE_IND,p_le_parse_terminate_ind
+	beq LL_ENC_REQ,p_le_parse_enc_req
+	beq LL_PAUSE_ENC_REQ,p_le_parse_pause_enc_rsq
+	branch le_parse0+6
+
+p_le_parse_connection_update_req:
+	jam 0,mem_lpm_mode
+	jam 60,mem_le_slave_update_mult_timer
+	branch le_parse_connection_update_req	
+
+p_le_parse_terminate_ind:
+	call le_parse_terminate_ind
+le_clear_xtype_fifo:
+	setarg 0
+	store 8,mem_le_xtype_fifo
+	rtn
+
+p_le_parse_enc_req:
+	call le_parse_enc_req
+	fetch 1,mem_le_pairing_state
+	rtneq FLAG_LE_PAIRING_AFTER_AUTH
+	branch load_device_list_mode_4_shutter
+
+p_le_parse_pause_enc_rsq:
+	jam XT_LL_PAUSE_ENC_RSP,mem_fifo_temp
+	branch le_xtype_fifo_in
+
+p_le_parse_smp:
+	ifetch 1,contr
+	beq SMP_PAIRING_REQUEST,p_le_parse_smp_pairing_request
+	branch le_parse_smp+3
+p_le_parse_smp_pairing_request:
+	jam 1,mem_mouse_le_pairing_flag
+	jam 3,mem_empty_count_user
+	branch le_parse_smp_pairing_request
+
+p_le_parse_att:
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request
+	branch le_parse_att+4
+
+p_le_parse_att_write_request:
+	jam 1,mem_lpm_mode
+	call p_le_parse_att_write_common
+	fetch 1,mem_le_att_handle
+	sub pdata,BLE_FAST_CONN_CHARACTER_HANDLE,null
+	branch p_le_mouse_fast_conn_character_set,zero
+	jam 0,mem_le_mouse_fast_conn_flag
+p_le_parse_att_write_request_next:	
+	call le_check_long_packet_patch
+	nrtn zero
+p_le_parse_att_write_request_end:
+	fetch 1,mem_le_mouse_fast_conn_flag
+	ncall p_le_set_enc_info_flag,blank
+	jam ATTOP_WRITE_RESPONSE,mem_fifo_temp
+	branch le_xtype_fifo_in
+p_le_parse_att_write_common:
+	fetch 1,mem_le_rxbuf+1
+	increase -7,pdata
+	icopy loopcnt
+	copy loopcnt,regb
+	branch le_parse_att_write_common+6
+
+p_le_mouse_fast_conn_character_set:
+	jam 1,mem_le_mouse_fast_conn_flag
+	branch p_le_parse_att_write_request_next
+
+p_le_set_enc_info_flag:
+	jam BT_EVT_LE_ENC_INFO,mem_fifo_temp
+	branch ui_ipc_send_event
+
+
+p_le_adv:
+	fetch 1,mem_le_adv_enable
+	rtn blank
+	arg le_adv_interval_timer,queue
+	call timer_check
+	nrtn blank
+	disable master
+	enable swfine
+	call le_init_adv
+	call le_next_adv_channel
+	call le_send_adv_ind
+	nbranch p_le_adv_not_match,match
+	fetch 1,mem_le_req_rcv
+	increase 1,pdata
+	store 1,mem_le_req_rcv
+	fetch 1,mem_le_rxbuf
+	and pdata,0x0f,pdata
+	beq SCAN_REQ,p_le_send_scan_response
+	beq CONNECT_REQ,le_parse_connect_req
+p_le_adv_not_match:	
+	fetch 1,mem_le_ch_mapped
+	bne 39,le_adv_loop
+	random pdata
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata	
+p_adv_delay:	
+	increase -1,pdata
+	nop 38
+	nbranch p_adv_delay,blank
+	branch le_adv_not_match+3
+
+p_le_send_scan_response:
+	call le_send_scan_response
+	branch p_le_adv_not_match
+
+p_le_receive_window_size:
+	fetch 4,mem_le_transmit_window
+	arg 60000,temp
+	iadd temp,pdata
+	store 4,mem_le_transmit_window
+	branch le_receive_window_size+16	
+
+
+p_le_lpm_set_mult:
+	disable wake
+	branch p_le_lpm_set_mult_attempt,attempt
+	nbranch p_le_lpm_lost,match
+p_le_lpm_set_mult_attempt:
+	call lpm_match
+	fetch 2,mem_rx_window_sniff
+	store 2,mem_le_receive_window
+	fetch 1,mem_le_rxbuf
+	compare 1,pdata,3
+	nbranch lpm_mult_short,true		// rx not empty, short interval
+	fetch 1,mem_le_txheader
+	compare 1,pdata,3
+	nbranch lpm_mult_short,true		// tx not empty, short interval
+	call le_xtype_fifo_is_empty
+	nbranch lpm_mult_short,blank
+	fetch 1,mem_le_prepare_tx_retransmited_number
+	sub pdata,1,null
+	nbranch lpm_mult_short,positive
+	branch le_lpm_set_mult_attempt+11
+	
+p_le_lpm_lost:
+	fetcht 2,mem_rx_window_sniff  
+	fetch 2,mem_le_rx_window_inc
+	iadd temp,temp 
+	rshift temp,temp
+	fetch 2,mem_le_receive_window 
+	iadd temp,pdata  
+	store 2,mem_le_receive_window  
+	branch lpm_lost
+
+ifdef BLE_FAST_CONN_ENABLE
+p_mouse_init_environment:
+	call p_mouse_iicd_read_eep_data
+	arg 0x03,loopcnt
+	arg mem_mouse_le_reconn_addr_data,contr
+	
+	setarg 0xffff
+	call p_mouse_reconn_addr_empty_check
+	nrtn zero
+
+	fetch 1,mem_le_start_fast_conn_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_le_start_fast_conn_count
+	call p_app_initflag_check
+	rtn zero
+	jam 1,mem_le_start_adv
+	rtn
+
+p_mouse_iicd_read_eep_data:	
+	arg 0x0c,temp
+	arg mem_mouse_le_reconn_addr_data,rega
+	fetch 2,mem_mouse_reconn_addr
+	branch iicd_read_eep_data+5
+p_mouse_reconn_addr_empty_check:
+	ifetcht 2,contr
+	isub temp,null
+	nrtn zero
+	loop p_mouse_reconn_addr_empty_check
+	rtn
+
+p_app_flag_store:
+	arg 2,temp
+	arg mem_timeup,rega
+	arg EEPROM_INIT_FLAG_OFFSET,regb
+	branch iicd_write_eep_data
+
+p_app_initflag_check:
+	arg 2,temp
+	arg mem_pdatatemp,rega
+	arg EEPROM_INIT_FLAG_OFFSET,regb
+	call iicd_read_eep_data
+	fetch 2,mem_pdatatemp
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	rtn
+
+	
+endif
+	
+endif
+
+ifdef HID
+p_parse_lmp_escape:
+	fetch 1,mem_rxbuf+1
+	set1 7,pdata
+	store 1,mem_lmi_opcode2
+	beq LMP_EXT_FEATURES_REQ,p_parse_lmpext_features_req
+	branch parse_lmp_escape+5
+p_parse_lmpext_features_req:	
+	fetch 1,mem_rxbuf+2
+	store 1,mem_feature_ext_page_number
+	branch parse_lmpext_features_req
+
+p_parse_lmp_accepted:
+	fetch 1,mem_rxbuf+1
+	store 1,mem_lmi_accepted_opcode
+	beq LMP_SWITCH_REQ,p_parse_lmp_accepted_switch
+	branch parse_lmp_accepted+4
+p_parse_lmp_accepted_switch:
+	jam BT_EVT_SWITCH_ACCEPT,mem_fifo_temp
+	call ui_ipc_send_event
+	branch p_role_switch_prepare0
+
+p_send_lmp:
+	disable user
+	call lmo_fifo_process
+	fetch 1,mem_lmp_to_send
+	rtn blank
+/* lmp message to be processed. this will either be because host??? */
+/* wants to send a lmp message or because one resulted from the LMP */
+/* processing section */
+/********* outgoing lmp lookup table *************/
+	bbit1 7,p_send_lmp_escape
+	branch send_lmp0
+	
+p_send_lmp_escape:
+	beq LMP_EXT_FEATURES_RES,p_send_lmpext_features_res
+	beq LMP_EXT_FEATURES_REQ,p_send_lmpext_features_req
+	branch send_lmp_escape
+//ssp disable	
+p_send_lmpext_features_res:
+	force 12,queue
+	call send_lmpext
+	fetch 1,mem_feature_ext_page_number
+	istore 1,contw
+	//fetch 2,mem_lmpext_ssp_enable
+	setarg 0
+	istore 2,contw
+	setarg 0
+	istore 3,contw
+	setarg 0x00
+	istore 4,contw
+	branch send_lmp_reply
+//ssp disable	
+p_send_lmpext_features_req:
+	force 12,queue
+	call send_lmpext
+	setarg 0x01
+	istore 1,contw
+	//fetch 2,mem_lmpext_ssp_enable
+	setarg 0
+	istore 2,contw
+	setarg 0
+	istore 3,contw
+	setarg 0x00
+	istore 4,contw
+	branch send_lmp_request
+
+p_process_conn_sm:
+	call lmo_fifo_check
+	nrtn blank
+p_process_conn_sm_continue:
+	fetch 1,mem_conn_sm
+	rtn blank
+	beq CONN_SM_SEND_SWITCH,p_host_create_conn_send_switch
+	branch process_conn_sm_continue+2
+p_host_create_conn_send_switch:
+	nrtn master
+	branch host_create_conn_send_switch
+	
+p_scheduler_process0:
+	call l2cap_malloc_is_fifo_empty
+	nrtn blank 
+	fetcht 4,mem_last_check_clk
+	copy clke_bt,pdata
+	isub temp,temp
+	nbranch p_app_process_bt2,positive
+	sub temp,0x0b,null
+	nbranch p_app_process_bt2,positive
+	rtn
+p_app_process_bt2:
+	store 4,mem_last_check_clk
+	branch app_process_bt
+
+p_ask_serviceclassid:  
+	arg mem_uuid_search_pat,contw
+	call dataelementtype6
+	branch asksrv_error,zero
+p_classidloop:
+	force 0,temp					//use "temp" to mark syntax error or to mark 128 bit uuid //
+	ifetch 1,contr
+	increase -1,regA
+	increase -1,timeup
+	compare 0x18,pdata,0xf8			/// 5 MSB: b00011: uuid  
+	nbranch asksrv_error,true
+	compare 0x04,pdata,0x07			// 3 LSB: b100 128 bits uuid  
+	nbranch p_cmp032,true
+	force 1,temp					// mark it as 128 bit uuid 
+p_skip2bytes:
+	ifetch 1,contr
+	increase -1,regA	
+	increase -1,timeup
+	bne 0x00, p_frstbwrong
+	ifetch 1,contr
+	increase -1,regA	
+	increase -1,timeup
+	beq 0x00, p_cmpuuid
+	branch p_scndbwrong
+p_frstbwrong:  
+	increase 1,contr
+	increase -1,regA	
+	increase -1,timeup
+p_scndbwrong:  
+	increase 2,contr				//skip 2 bytes, first 2 bytes already wrong  
+	increase -2,regA	
+	increase -2,timeup
+	compare 0x00,temp,0xff                        // 128 bits or 32 bits ? 
+	branch p_loopornot,true
+	increase 12,contr				// skip 12 bytes, first 2 bytes already wrong 
+	increase -12,regA	
+	increase -12,timeup
+	branch p_loopornot
+p_cmp032:
+	compare 0x02,pdata,0x07			// 3 LSB: b010 32 bits uuid  
+	nbranch p_cmp016,true
+	branch p_skip2bytes			
+p_cmp016:
+	compare 0x01,pdata,0x07			// 3 LSB: b001 16 bit uuid 
+	nbranch asksrv_error,true
+p_cmpuuid:
+	ifetch 2,contr				// higher order byte  
+	increase -2,regA
+	increase -2,timeup
+	istore 2,contw
+p_uuidsize:
+	compare 0x00,temp,0xff			// is this 128 bits uuid  
+	branch p_loopornot,true
+	copy contr,temp
+	ifetch 1,contr
+	bne 0x00, p_wrong12b
+	ifetch 1,contr
+	bne 0x00, p_wrong12b
+	ifetch 1,contr
+	bne 0x10, p_wrong12b
+	ifetch 1,contr
+	bne 0x00, p_wrong12b
+	ifetch 1,contr
+	bne 0x80, p_wrong12b
+	ifetch 1,contr
+	bne 0x00, p_wrong12b
+	ifetch 1,contr
+	bne 0x00, p_wrong12b
+	ifetch 1,contr
+	bne 0x80, p_wrong12b
+	ifetch 1,contr
+	bne 0x5f, p_wrong12b
+	ifetch 1,contr
+	bne 0x9b, p_wrong12b
+	ifetch 1,contr
+	bne 0x34, p_wrong12b
+	ifetch 1,contr
+	beq 0xfb, p_chck12dn
+p_wrong12b:
+	copy temp,contr  
+p_wrong12b1:
+	increase 12,contr				//skip 12 bytes 
+	force 0x00,queue
+	force 0x00,temp
+p_chck12dn:
+	increase -12,timeup
+	increase -12,regA
+p_loopornot:
+	compare 0x00,regA,0xff
+	nbranch p_classidloop,true
+	branch loopornot+2
+endif
+
+p_gpio_set_before_lpm_common:
+	hfetch 4,core_gpio_pu0
+	hfetcht 4,core_gpio_pd0
+	ior temp,pdata
+	invert pdata,pdata
+	iand rega,pdata
+	hstore 4,core_gpio_oe0
+	rtn
+
+p_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -160,temp 	//320btclk = 100ms
+	increase -160,temp
+	set0 28,temp
+	storet 4,mem_ui_timer_last_btclk
+	copy pdata,temp
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_is_near_full
+	nrtn blank
+	copy temp,pdata
+	branch ui_timer_check_send_evt
+
+
+p_check_51cmd_once:
+	call ui_ipc_get_lock
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_out
+	copy pdata,temp
+	call ui_ipc_put_lock
+	copy temp,pdata
+	rtn blank
+//ifdef P24G_YC
+//	beq BT_CMD_START_24G,g24_check_51cmd_start_24g
+//	beq BT_CMD_STOP_24G,g24_check_51cmd_stop_24g
+//	beq BT_CMD_PAIR_24G,g24_check_51cmd_pair_24g
+//endif
+ifdef HID
+	beq BT_CMD_START_DISCOVERY,p_check_51cmd_start_discovery
+	beq BT_CMD_RECONNECT,p_check_51cmd_reconnect
+endif
+ifdef BLE
+	beq BT_CMD_START_ADV,p_check_51cmd_adv
+	beq BT_CMD_START_ADV_RECONN,p_check_51cmd_adv_reconn
+endif
+ifdef TEST_MODE
+	beq BT_CMD_TEST_MODE,p_test_tx_mode_init
+endif
+	branch check_51cmd_once+9
+
+//ifdef P24G_YC
+//g24_check_51cmd_start_24g:
+//	fetch 1,mem_tx_power_temp
+//	store 1,mem_tx_power
+//	jam STATE_24G_PAIRING_SUCCESS,mem_new_24g_pairing_sm
+//	branch g24_start_24g_mode
+//g24_check_51cmd_stop_24g:
+//	fetch 1,mem_tx_power_temp
+//	store 1,mem_tx_power
+//	set0 mark_24g,mark
+//	branch le_disable
+//g24_check_51cmd_pair_24g:
+//	jam TX_POWER_PAIR,mem_tx_power
+//	branch g24_start_pairing_sm1
+//	rtn
+//endif
+
+ifdef HID
+p_check_51cmd_start_discovery:
+	jam 6,mem_connection_options
+	branch check_51cmd_start_discovery
+p_check_51cmd_reconnect:
+	jam 4,mem_connection_options
+	jam 1,mem_link_key_exists
+	branch check_51cmd_reconnect
+endif	
+
+ifdef BLE
+p_check_51cmd_adv:
+	set0 mark_24g,mark
+	jam 0,mem_lpm_mode
+	random pdata	//random ble addr
+	store 1,mem_le_lap
+
+	setarg 0x26100e
+	store 3,mem_le_lap+3
+	jam 0,mem_le_reconn_flag
+	fetcht 2,mem_le_att_report2
+	storet 2,mem_le_notify_handle
+	call le_clean_att_list_handle_enable
+	arg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE,regb
+p_le_start_adv:	
+	call p_le_check_adv_flag
+//	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
+	copy regb,pdata
+	istore 1,contr
+	branch check_51cmd_adv
+	
+p_check_51cmd_adv_reconn:
+	set0 mark_24g,mark
+	jam 0,mem_lpm_mode
+	jam 1,mem_le_reconn_flag
+	fetcht 2,mem_le_att_report2
+	call le_att_check_notification_enable
+	copy rega,contw
+	setarg 1
+	istore 1,contw
+	arg ADV_FLAG_BREDR_NOT_SUPPORTED,regb
+	branch p_le_start_adv
+//	call p_le_check_adv_flag
+//	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+//	istore 1,contr
+//	branch check_51cmd_adv
+	
+p_le_check_adv_flag:
+	arg mem_le_adv_data,rega
+p_le_check_adv_flag_loop:
+	ifetch 1,rega	//length
+	rtn blank
+	iadd contr,rega
+	ifetch 1,contr	//type
+	rtneq 0x01
+	branch p_le_check_adv_flag_loop
+endif	
+
+
+p_check_51cmd_once_continue0:
+	call lmo_fifo_check
+	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
+p_check_51cmd_once_continue:
+	fetch 1,mem_fifo_temp
+	bmark0 mark_context,check_51cmd_check_idle
+//	beq BT_CMD_DISCONNECT,p_check_51cmd_disconnect	
+//	beq BT_CMD_UPDATE_SUPERVISION_TO,p_check_51cmd_update_supervision_to
+	beq BT_CMD_STORE_RECONN_INFO_LE,p_rtn
+//	beq BT_CMD_STORE_RECONN_INFO_BT,p_check_51cmd_once_continue_rtn
+	branch check_51cmd_once_continue+2
+/*
+p_check_51cmd_disconnect:
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BT_HID_HANDSHAKE,p_check_51cmd_quick_disconnect
+	branch check_51cmd_disconnect
+p_check_51cmd_quick_disconnect:
+	setarg 0
+	store 4,mem_supervision_to
+	rtn	
+p_check_51cmd_update_supervision_to:
+	jam LMP_SUPERVISION_TIMEOUT,mem_lmo_opcode2
+	fetch 2,mem_new_supervision_to
+	store 2,mem_supervision_to
+p_check_51cmd_once_continue_rtn:	
+	rtn
+*/
+p_check_enter_hibernate:
+	jam SYC_TASK_HIBERNATE,mem_c51_flag
+	call p_c51_wait
+p_enter_hibernate_continue:
+//	call pp_gpio_set_before_lpm_common
+	jam 0x5a,mem_hibernate_flag
+	call lpm_write_gpio_wakeup
+	hfetch 4,core_lpm_ctrl
+	set0 15,pdata					
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	arg param_hibernate_clks,temp
+	branch lpm_sleep
+
+
+p_ipc_timer_check:
+	fetcht 4,mem_ipc_last_check_timer
+	copy clkn_bt,pdata
+	isub temp,pdata
+//	arg 3200,temp	//1s timer
+	arg 1600,temp	//500ms timer
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn blank
+	copy clkn_bt,temp
+	storet 4,mem_ipc_last_check_timer
+	fetcht 2,mem_ipc_bt_timer
+	byteswap temp,temp
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_ipc_bt_timer
+	byteswap pdata,pdata
+	and pdata,0x3,pdata
+	rtnne 0
+	call p_read_adc_enable
+	nrtn user2
+p_adc_check_process:
+	fetch 1,mem_adc_config_flag
+ifdef ADC_VINLPM
+	bbit1 ADC_CONFIG_VINLPM,p_adc_check_vinlpm
+endif
+ifdef ADC_HVIN
+	bbit1 ADC_CONFIG_HVIN,p_adc_check_hvin
+endif
+ifdef ADC_GPIO
+	bbit1 ADC_CONFIG_GPIO,p_adc_check_gpio
+endif
+p_rtn:
+	rtn
+
+ifdef ADC_VINLPM	
+p_adc_check_vinlpm:
+	hjam 0xbf,rf_adc_mode	//read VINLPM voltage directly	
+	branch p_read_adc
+endif
+
+ifdef ADC_HVIN
+p_adc_check_hvin:
+	hjam 0xaf,rf_adc_mode	//read HVIN voltage directly
+	branch p_read_adc
+endif
+
+ifdef ADC_GPIO	
+p_adc_check_gpio:
+	hfetch 1,core_gpio_pu0
+	set0 5,pdata
+	hstore 1,core_gpio_pu0
+	hjam 0x8f,rf_adc_mode
+	fetch 1,mem_adc_channel
+	hstore 1,rf_adc_ch
+	call p_read_adc
+	hfetch 1,core_gpio_pu0
+	set1 5,pdata
+	hstore 1,core_gpio_pu0
+	rtn
+endif
+
+p_read_adc:
+	hfetch 1,core_uart_baud + 1
+	set1 7,pdata
+	hstore 1,core_uart_baud + 1 
+	hfetch 1,rf_adc_ch
+	or_into 0x30,pdata
+	hstore 1,rf_adc_ch
+	hjam 0x7c,rfen_adc
+	hjam 0xaa,rf_adc_gc
+	nop 5000
+	hfetcht 2,core_adc_sum
+	hfetch 1,core_uart_baud + 1
+	set0 7,pdata
+	hstore 1,core_uart_baud + 1
+	byteswap temp,temp
+	storet 2,mem_adc_current_value
+	rtn
+
+enable_usr2:
+	enable user2
+	rtn
+p_read_adc_enable:
+	disable user2
+ifdef HID	
+	call l2cap_malloc_is_fifo_empty
+	call enable_usr2,blank
+endif	
+ifdef BLE	
+	call le_xtype_fifo_is_empty
+	call enable_usr2,blank
+endif	
+//ifdef P24G_YC
+//	fetch 1,mem_new_24g_abort_pac
+//	ncall enable_usr2,blank
+//endif	
+	rtn
+	
+p_user_le_connect_process:
+	jam 1,mem_ble_read_ipc_fifo_once
+	call p_ipc_rx
+	jam 0,mem_ble_read_ipc_fifo_once
+	rtn
+
+p_ipc_rx:
+	call p_check_ipc_2bt
+	rtn user
+	byteswap pdata,pdata
+	copy pdata,contr
+	call p_ipc_rx_byte
+	store 1,mem_ipc_rx_type
+	beq IPC_TYPE_CMD,p_ipc_rx_cmd
+//ifdef P24G_YC
+//	beq IPC_TYPE_24G,g24_ipc_rx_24g
+//endif
+	copy pdata,temp
+	copy contr,rega
+	fetch 1,mem_context
+	bbit0 state_inconn,p_ipc_abondon_rx_data
+	copy rega,contr
+	rtnmark0 mark_context
+	copy temp,pdata
+ifdef HID
+	beq IPC_TYPE_HID,p_ipc_rx_hid
+endif
+ifdef BLE
+	beq IPC_TYPE_BLE,p_ipc_rx_ble
+endif
+	branch assert
+
+p_ipc_rx_cmd:
+	call p_ipc_rx_byte
+	call p_ipc_rx_byte
+	store 1,mem_fifo_temp
+	call p_ipc_next_rx
+	branch ui_ipc_send_cmd
+
+p_ipc_next_rx:
+	call p_ipc_rx_updata_contr
+	copy contr,temp
+	byteswap temp,temp
+	storet 2,mem_ipc_2bt_read_index
+	rtn
+
+p_ipc_abondon_rx_data:
+	copy rega,contr
+	arg mem_tst_pktcnt_sync,contw
+	branch p_ipc_rx_cpy
+
+p_ipc_rx_cpy:
+	call p_ipc_rx_byte
+	copy pdata,loopcnt
+p_ipc_copy:
+	call p_ipc_cpy_loop
+	branch p_ipc_next_rx
+	
+p_ipc_cpy_loop:
+	call p_ipc_rx_byte
+	istore 1,contw
+	loop p_ipc_cpy_loop
+	rtn
+
+p_ipc_rx_byte:
+	call p_ipc_rx_updata_contr
+	ifetch 1,contr
+	rtn
+
+p_ipc_rx_updata_contr:
+	setarg mem_ipc_2bt_fifo_end
+	isub contr,null
+	nrtn zero
+	arg mem_ipc_2bt_fifo_head,contr
+	rtn
+	
+p_ipc_tx_evt:
+	arg 3,loopcnt
+	arg mem_ipc_tx_evt_buff,contr
+p_ipc_tx_cpy:
+	copy contr,rega
+	fetch 2,mem_ipc_2C51_write_index
+	byteswap pdata,pdata
+	copy pdata,contw
+	copy rega,contr
+p_ipc_tx_loop:
+	ifetch 1,contr
+	istore 1,contw
+	call p_ipc_tx_updata_contw
+	loop p_ipc_tx_loop
+	copy contw,pdata
+	byteswap pdata,pdata
+	store 2,mem_ipc_2C51_write_index
+	rtn
+p_ipc_tx_updata_contw:
+	setarg mem_ipc_2C51_fifo_end
+	isub contw,null
+	nrtn zero
+	arg mem_ipc_2C51_fifo_head,contw
+	rtn
+
+//ifdef P24G_YC
+//g24_ipc_rx_24g:
+//	rtnmark0 mark_24g_conext
+//	call p_ipc_rx_byte
+//	icopy loopcnt
+//	store 1,mem_new_uart_packet
+//	branch p_ipc_copy
+//endif
+
+ifdef HID
+p_ipc_rx_hid:
+ifdef KEYBORD_DATA
+	copy pdata,rega
+	copy contr,pdata
+	store 2,mem_contr
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0xa1
+	istore 1,contw
+	add rega,-1,loopcnt
+	fetch 2,mem_contr
+	copy pdata,contr
+else
+	copy contr,pdata
+	store 2,mem_contr
+	arg 9,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x02a1
+	istore 2,contw
+	fetch 2,mem_contr
+	copy pdata,contr
+endif
+	branch p_ipc_rx_cpy
+endif
+
+ifdef BLE
+queue_init:
+	setarg 0
+	store 3,mem_queue_write_prt
+	rtn
+
+p_ipc_rx_ble_data:
+	rtnmark1 mark_24g
+	fetch 1,mem_le_switch_send_data
+	rtn blank
+	call p_check_ipc_2bt
+	rtn user
+	byteswap pdata,pdata
+	copy pdata,contr
+	call p_ipc_rx_byte
+	store 1,mem_ipc_rx_type
+	copy contr,rega
+	bne IPC_TYPE_BLE,p_ipc_abondon_rx_data
+	copy contr,regb
+	call le_xtype_fifo_is_near_full
+	nrtn blank
+	branch p_ipc_rx_ble_read_fifo
+	
+p_ipc_rx_ble:
+	copy contr,regb
+	fetch 1,mem_ble_read_ipc_fifo_once
+	rtn blank
+	call le_xtype_fifo_is_empty
+	nrtn blank
+p_ipc_rx_ble_read_fifo:
+	fetcht 2,mem_le_att_report2
+	call le_att_check_notification_enable
+	rtnbit0 0
+	fetch 1,mem_le_switch_send_data
+	rtneq 0
+	fetch 1,mem_bt_read_ipc_count
+	pincrease 1
+	store 1,mem_bt_read_ipc_count
+	fetch 1,mem_queue_write_prt
+	add pdata,1,temp
+	and temp,0x03,temp
+	storet 1,mem_queue_write_prt
+	mul32 pdata,7,pdata
+	arg mem_queue_buffer0,contw
+	iadd contw,contw
+	copy regb,contr
+	call p_ipc_rx_byte
+	icopy loopcnt
+	call p_ipc_copy
+	call p_ipc_rx_ble_read_fifo_first_time
+	rtn user2
+	jam ATTOP_HANDLE_VALUE_NOTIFICATION,mem_fifo_temp
+	branch le_xtype_fifo_in
+
+p_ipc_rx_ble_read_fifo_first_time:
+	disable user2
+	fetch 1,mem_ble_send_flag
+	rtneq 5
+	enable user2
+	increase 1,pdata
+	store 1,mem_ble_send_flag
+	sub pdata,1,null
+	nrtn positive
+	jam BT_EVT_LE_NOTIFY_ENABLE,mem_ipc_tx_evt
+	branch p_ipc_tx_evt
+endif
+
+//p_device_check_lock:
+//	fetch 2,mem_sdp_remote_cid
+//	branch app_put_lpm_wake_lock,blank
+//	branch app_get_lpm_wake_lock
+
+
+p_ipc_init:
+	setarg mem_ipc_2bt_fifo_head
+	byteswap pdata,pdata
+	store 2,mem_ipc_2bt_read_index
+	store 2,mem_ipc_2bt_write_index
+	setarg mem_ipc_2C51_fifo_head
+	byteswap pdata,pdata
+	store 2,mem_ipc_2C51_read_index
+	store 2,mem_ipc_2C51_write_index
+	rtn
+
+p_mouse_reconn_addr_calculate:
+	fetch 2,mem_mouse_eeprom_base
+	add pdata,0x1c,pdata
+	store 2,mem_mouse_reconn_addr
+	rtn
+
+p_device_init:
+	call le_modified_name_adv
+//	setarg p_device_check_lock
+//	store 2,mem_cb_check_wakelock
+	jam 0,mem_c51_flag
+	jam 6,mem_connection_options
+	call app_lpm_mult_enable
+ifdef HID	
+	setarg p_device_send_process
+	store 2,mem_cb_bt_process
+endif	
+//	setarg p_device_bt_lpm_before
+//	store 2,mem_cb_before_lpm
+	setarg p_c51_user_event
+	store 2,mem_cb_bb_event_process
+//	setarg p_device_idle
+//	store 2,mem_cb_idle_process
+	setarg p_user_le_connect_process
+//	setarg p_ipc_rx
+	store 2,mem_cb_le_process
+	setarg p_device_before_hibernate
+	store 2,mem_cb_before_hibernate
+	ncall p_ipc_init,wake
+	call p_device_wakeup,wake
+	call lpm_disable_exen_output
+
+ifdef OTA_ENABLE
+	fetch 1,mem_le_init_eeprom_base_count
+	branch p_device_init_next,blank
+	increase -1,pdata
+	store 1,mem_le_init_eeprom_base_count
+	setarg 0x7f80
+	store 2,mem_mouse_eeprom_base
+	call p_mouse_reconn_addr_calculate
+else
+	fetch 1,mem_le_init_eeprom_base_count
+	branch p_device_init_next,blank
+	increase -1,pdata
+	store 1,mem_le_init_eeprom_base_count
+	setarg 0x3f80
+	store 2,mem_mouse_eeprom_base
+	call p_mouse_reconn_addr_calculate
+endif
+
+ifdef BLE_FAST_CONN_ENABLE
+	fetch 1,mem_le_reconn_flag
+	nbranch p_device_init_next,blank
+	fetch 1,mem_le_fast_conn_finished
+	nbranch p_device_init_next,blank
+	call p_mouse_init_environment
+endif
+p_device_init_next:
+	fetch 1,mem_hibernate_flag
+	beq 0x5a,p_device_init_init_hibwake
+	branch p_deveice_init_wake,wake
+ifdef TP_MAX
+	call power_ctrl_incrs_level2
+endif
+	fetch 1,mem_tx_power
+	store 1,mem_tx_power_temp
+	call power_ctrl_pac_succ_cnt_init
+	fetch 2,mem_adc_0v
+	byteswap pdata,pdata
+	store 2,mem_adc_0v
+	fetch 2,mem_adc_3v
+	byteswap pdata,pdata
+	store 2,mem_adc_3v
+	call p_init_adc_from_otp
+//ifdef P24G_YC
+//	call g24_set_device_addr
+//endif	
+	fetch 8,mem_temp
+	nbranch p_deveice_init_reset,blank
+	fetch 2,0x4ad4
+	byteswap pdata,pdata
+	branch p_deveice_init_reset,blank
+	store 2,mem_adc_3v
+p_deveice_init_reset:
+	jam BT_EVT_RESET,mem_ipc_tx_evt
+p_device_init_common:
+	fetch 1,mem_short_lpm_enable
+	nbranch p_24g_short_lpm_process,blank
+	call p_adc_check_process
+	call p_ipc_tx_evt
+	call p_ipc_rx_ble_data
+	hjam START_C51_CORE,core_docd_ctrl	
+	rtn
+p_24g_short_lpm_process:
+	call lpm_recover_clk,wake
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	copy clkn_bt,pdata
+	store 3,mem_ckln_24g_short_lpm
+p_24g_short_lpm_process_loop:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	rtnbit1 UI_STATE_BT_DISCOVERY
+	call app_process_idle
+	call g24_short_lpm_transmit_process
+	branch p_24g_short_lpm_process_loop
+
+p_device_wakeup:
+	copy auxcnt,pdata
+	bmark0 mark_24g,p_device_bt_wakeup
+g24_delay_long_sleep:
+//	copy auxcnt,pdata
+	branch g24_direct_long_sleep,blank	//sleep timer wake
+g24_delay_long_sleep2:	
+	jam 0xbb,mem_new_24g_delay_long_sleep_maxcnt		//io int wake,abort 150ms
+	rtn
+g24_direct_long_sleep:
+	jam 0x00,mem_new_24g_delay_long_sleep_maxcnt
+	fetch 1,mem_new_24g_key_wheel_event
+	rtn blank
+	jam 0,mem_new_24g_key_wheel_event
+	branch g24_delay_long_sleep2
+
+p_device_bt_wakeup:
+//	copy auxcnt,pdata
+	branch p_device_bt_wakeup_check,blank	//sleep timer wake
+	jam 2,mem_bt_wakeup_from_long_mult
+	rtn
+p_device_bt_wakeup_check:
+	fetch 1,mem_bt_motion_event
+	rtn blank
+	jam 0,mem_bt_motion_event
+	jam 1,mem_bt_wakeup_from_long_mult
+	rtn
+	
+p_deveice_init_wake:
+	jam BT_EVT_WAKEUP,mem_ipc_tx_evt
+	branch p_device_init_common
+p_device_init_init_hibwake:
+	copy auxcnt,pdata
+	branch p_enter_hibernate_continue,blank
+	call init_lmp_work
+	call l2cap_init_work
+	setarg 0
+	store 8,mem_context
+	store 2,mem_ui_state_map
+	store 2,mem_ipc_bt_timer
+	store 2,mem_ipc_c51_timer
+	jam BT_EVT_HIBERNATE_WAKE,mem_ipc_tx_evt
+	branch p_device_init_common
+
+p_init_adc_from_otp:
+	call otp_enable_chgpump
+	setarg 0x7e2
+	arg mem_temp,rega
+	arg 12,temp
+	call otpd_read_data
+	call otp_disable_chgpump
+	fetch 8,mem_temp
+	rtn blank
+	fetch 1,mem_adc_config_flag
+ifdef ADC_VINLPM
+	bbit1 ADC_CONFIG_VINLPM,p_calc_adc_base_vinlpm
+endif
+ifdef ADC_HVIN
+	bbit1 ADC_CONFIG_HVIN,p_calc_adc_base_hvin
+endif
+ifdef ADC_GPIO
+	bbit1 ADC_CONFIG_GPIO,p_calc_adc_check_gpio
+endif
+	rtn
+
+ifdef ADC_VINLPM	
+p_calc_adc_base_vinlpm:
+	fetcht 2,mem_temp+4
+	fetch 2,mem_temp+10
+	copy temp,regb
+	copy pdata,rega
+	byteswap pdata,pdata
+	store 2, mem_adc_3v
+	copy rega,pdata
+	isub temp,regc
+	lshift regc,regc
+	copy regb,pdata
+	isub regc,pdata
+	byteswap pdata,pdata
+	store 2,mem_adc_0v
+	rtn
+endif
+
+ifdef ADC_HVIN
+p_calc_adc_base_hvin:
+	fetcht 2,mem_temp + 2
+	fetch 2,mem_temp + 8
+	copy temp,regb
+	copy pdata,rega
+	isub temp,regc
+	rshift2 regc,regc
+	copy regb,pdata
+	isub regc,pdata
+	byteswap pdata,pdata
+	store 2,mem_adc_0v
+	lshift regc,regc
+	copy rega,pdata
+	isub regc,pdata
+	byteswap pdata,pdata
+	store 2,mem_adc_3v
+	rtn
+endif
+
+ifdef ADC_GPIO
+p_calc_adc_check_gpio:
+	fetcht 2,mem_temp
+	fetch 2,mem_temp + 6
+	copy temp,regb
+	copy pdata,rega
+	isub temp,regc
+	copy regb, pdata
+	isub regc,pdata
+	byteswap pdata,pdata
+	store 2,mem_adc_0v
+	lshift2 regc,pdata
+	iadd rega,pdata
+	byteswap pdata,pdata
+	store 2,mem_adc_3v
+	rtn
+endif	
+	
+ifdef HID
+p_device_send_process:
+	call l2cap_malloc_is_fifo_nearly_full
+	nrtn blank
+p_device_send_data:
+	branch p_ipc_rx
+endif
+
+p_device_before_hibernate: 
+	enable user
+	hfetch 4,0x8138
+	setflag user,26,pdata
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	jam 1,mem_lpm_current_mult
+p_device_bt_lpm_before:
+	rtn
+
+//p_device_idle:
+//	rtn
+
+p_c51_user_event:
+	copy regc,pdata
+	and_into BT_EVT_TIMER_MASK,pdata
+	rtneq BT_EVT_TIMER_INIT
+	copy regc,pdata
+	store 1,mem_ipc_tx_evt
+	branch p_ipc_tx_evt
+
+
+ifdef P24G_YC
+g24_pair_init:
+	jam 0,mem_new_24g_pid
+	jam G24_PAIR_CH,mem_new_24g_ch
+	fetch 4,mem_new_24g_paring_addr
+g24_update_addr_and_synccrc8:	
+	store 4,mem_new_24g_addr
+	branch g24_syncword_crc8
+		
+//2.4g freq hop related.
+g24_ch:
+	fetcht 1,mem_new_24g_current_ch_number
+	call g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	storet 1,mem_new_24g_current_ch_number
+	rtn
+	
+g24_ch_calc:
+	fetch 1,mem_new_24g_addr	
+	and_into 0x03,pdata
+	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+	setarg mem_new_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
+	ifetch 1,contr
+	store 1,mem_new_24g_ch
+	rtn
+
+//g24_set_device_addr:
+//	fetch 4,mem_temp	//adc data from otp
+//	store 4,mem_new_24g_device_addr	
+//	nrtn blank
+//	fetch 4,mem_lap
+//	store 4,mem_new_24g_device_addr
+//	rtn
+
+
+g24_transmit_rf_sta_init:
+	jam 1,mem_new_24g_rf_last_sta
+	jam 0,mem_new_24g_sync_cnt
+g24_transmit_rf_ctrl_clear:	
+	fetch 1,mem_new_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_new_24g_data_type
+	rtn
+	
+g24_hop_ch_enable:
+	fetch 1,mem_new_24g_data_type
+	set1 bit_hop,pdata
+	store 1,mem_new_24g_data_type
+	//update txpayload
+	store 1,mem_new_24g_txpayload
+	rtn
+g24_hop_ch_disable:
+	fetch 1,mem_new_24g_data_type
+	set0 bit_hop,pdata
+	store 1,mem_new_24g_data_type
+	rtn	
+
+g24_transmit_hop_pac_fail:
+	call power_ctrl_pac_succ_decrs
+	fetch 1,mem_new_24g_rf_work_stage
+	beq 1,g24_transmit_hop_pac_fail_wo_hop
+	beq 2,g24_transmit_hop_pac_fail_hop_stage2
+	rtn
+g24_transmit_hop_pac_fail_wo_hop:
+	jam 2,mem_new_24g_sync_cnt
+g24_transmit_hop_pac_fail_stage1:	
+	jam 0,mem_new_24g_hop_pac_retry
+	jam 0,mem_new_24g_rf_last_sta
+	branch g24_transmit_rf_ctrl_clear
+
+g24_transmit_hop_pac_fail_hop_stage2:
+	jam 0,mem_new_24g_rf_hop_ch
+	branch g24_transmit_hop_pac_fail_stage1
+
+g24_transmit_pac_fail_hop_stage3:
+	fetch 2,mem_new_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_new_24g_txfail_cnt
+	bbit1 10,g24_tx_attempt_fail	//1024ms * 8
+	fetch 1,mem_new_24g_rf_hop_ch
+	beq 1,g24_rf_hop_fastly
+	jam 1,mem_new_24g_rf_hop_ch
+g24_rf_hop_attemp_again:
+	fetch 1,mem_new_24g_rf_hop_ch
+	bne 1,g24_transmit_rf_ctrl_clear
+g24_rf_hop_fastly:
+	fetch 1,mem_new_24g_hop_fastly_cnt
+	increase 1,pdata
+	store 1,mem_new_24g_hop_fastly_cnt
+	beq 4,g24_rf_hop_fastly_exit
+	call g24_ch
+	jam 2,mem_new_24g_max_retry
+	branch g24_transmit_packet
+
+g24_rf_hop_fastly_exit:
+	call power_ctrl_pac_succ_decrs
+	jam 0,mem_new_24g_hop_fastly_cnt
+	branch g24_transmit_rf_ctrl_clear
+
+g24_transmit_hop_pac_succ_wo_hop:
+	jam 2,mem_new_24g_sync_cnt
+g24_transmit_hop_pac_succ:
+	jam 1,mem_new_24g_rf_last_sta
+	jam 0,mem_new_24g_rf_hop_ch
+	branch g24_transmit_rf_ctrl_clear
+
+g24_transmit_succ_rf_config:
+	fetch 1,mem_new_24g_rf_work_stage
+	beq 3,g24_transmit_hop_pac_succ
+	fetch 1,mem_new_24g_data_type
+	isolate0 bit_hop,pdata
+	branch g24_transmit_rf_sta_init,true
+	fetch 1,mem_new_24g_rf_work_stage
+	beq 1,g24_transmit_hop_pac_succ_wo_hop
+	beq 2,g24_transmit_hop_pac_succ
+	rtn
+
+g24_rf_sta_check:
+	fetch 1,mem_new_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call g24_rf_laststa_synccnt_check
+	ncall g24_rf_sync_cnt_check,user2
+	rtn
+
+g24_rf_laststa_synccnt_check:
+	disable user2
+	fetch 1,mem_new_24g_rf_last_sta
+	rtnne 1
+	fetch 1,mem_new_24g_sync_cnt
+	rtnne 0
+	jam 1,mem_new_24g_rf_work_stage
+	jam 4,mem_new_24g_max_retry
+	branch enable_usr2
+
+g24_rf_sync_cnt_check:
+	fetch 1,mem_new_24g_sync_cnt
+	branch g24_rf_hop_attemp,blank
+	increase -1,pdata
+	store 1,mem_new_24g_sync_cnt
+	jam 2,mem_new_24g_rf_work_stage
+	call g24_ch
+	jam 4,mem_new_24g_max_retry
+	rtn
+
+g24_rf_hop_attemp:
+	jam 3,mem_new_24g_rf_work_stage
+	fetch 1,mem_new_24g_rf_hop_ch
+	nbranch g24_rf_hop_attemp_again,blank
+	call g24_ch
+	jam 2,mem_new_24g_max_retry
+	rtn
+	
+/*
+g24_transmit_process:
+	rtnmark0 mark_24g
+	set1 mark_24g_conext,mark
+	fetcht 4,mem_new_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_new_24g_tx_btclk
+	fetcht 1,mem_new_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nbranch g24_transmit_exit,positive
+	set0 28,pdata
+	store 4,mem_new_24g_tx_btclk
+	call g24_interval_calibrate
+	call g24_txdata_prep
+	branch g24_no_data_to_tx,user
+	call g24_rf_sta_check
+g24_transmit_start:
+	call g24_transmit_packet
+	fetch 1,mem_new_24g_pairing_sm
+	sub pdata,STATE_24G_PAIRING_SUCCESS,null
+	call power_ctrl_start,zero
+g24_transmit_exit:
+	set0 mark_24g_conext,mark
+	rtn	*/
+
+//g24_timer_timeout:
+//	rtn zero
+//	set1 28,pdata
+//	rtn
+
+//g24_interval_calibrate:
+//	fetch 1,mem_new_24g_pac_index
+//	increase 1,pdata
+//	store 1,mem_new_24g_pac_index
+//	beq 4,g24_interval_max
+//	beq 5,g24_interval_min
+//	rtn
+//g24_interval_max:
+//	fetch 1,mem_new_24g_interval_max
+//	store 1,mem_new_24g_interval
+//	rtn
+//g24_interval_min:
+//	jam 0,mem_new_24g_pac_index
+//	fetch 1,mem_new_24g_interval_min
+//	store 1,mem_new_24g_interval
+//	rtn
+
+	
+g24_txdata_prep:
+	fetch 1,mem_new_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_pairing_sm	
+	//nop 1200 // wait for 8051 preparing data
+	call p_ipc_rx
+	branch g24_txdata_prep_ipc_nodata,user
+	fetch 1,mem_ipc_rx_type
+	bne IPC_TYPE_24G,enable_usr
+g24_txdata_prep_packeage_data:
+ifdef OTA_ENABLE
+	fetch 1,mem_new_24g_ota_enable
+	beq 1,g24_txdata_skip_short_lpm
+endif	
+	fetch 1,mem_short_data_wheel
+	call g24_lpm_short_increase,blank
+g24_txdata_skip_short_lpm:
+	fetch 1,mem_short_data_wheel
+	ncall g24_enter_long_sleep,blank
+	call g24_package_data
+	call g24_transmit_prep
+g24_txdata_enable_tx:
+	jam ENSURE_ON_24G,mem_new_24g_ensure
+	rtn
+
+g24_enter_long_sleep:
+	jam 0,mem_short_lpm_tx_cnt
+	jam 0,mem_short_lpm_enable
+	jam 10,mem_new_24g_enter_lpm_timer
+	rtn
+	
+g24_txdata_prep_ipc_nodata:
+	fetch 1,mem_short_lpm_enable
+	nbranch g24_short_lpm_txdata_prep,blank
+g24_txdata_last_pac:
+	fetch 1,mem_new_24g_ensure
+	beq ENSURE_ON_24G,disable_usr
+	rtn
+
+
+g24_short_lpm_txdata_prep:
+g24_package_data:
+	fetch 1,mem_new_24g_delay_long_sleep_maxcnt
+	store 1,mem_new_24g_delay_long_sleep_cnt
+
+	fetch 1,mem_new_uart_packet
+	copy pdata,rega
+	arg mem_new_uart_packet+1,regb
+	jam 0,mem_new_24g_abort_pac
+g24_package_data_pc_bind:
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_new_24g_common_temp
+	//total length
+	add rega,1,temp
+	arg mem_new_24g_common_temp+1,contw
+g24_package_user_data:
+	//user data: max 30 bytes
+	copy rega,loopcnt
+	copy regb,contr
+	call memcpy
+	arg mem_new_24g_common_temp,rega
+g24_put_data_in_buff:
+	rtnmark0 mark_24g_conext
+	storet 1,mem_new_24g_datalen
+	copy temp,loopcnt
+	arg mem_new_24g_txbuf,contw
+	copy rega,contr
+	branch memcpy
+
+
+//output: 1BYTE crc8
+g24_syncword_crc8:
+	arg 0,rega
+	arg 4,loopcnt
+	arg mem_new_24g_addr,contr
+g24_syncword_crc8_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop g24_syncword_crc8_loop
+	copy rega,pdata
+	store 2,mem_new_24g_syncword
+	fetch 1,mem_new_24g_syncword
+	fetcht 1,mem_new_24g_syncword+1
+	iadd temp,pdata
+	store 1,mem_new_24g_syncword_crc8
+	rtn
+
+g24_transmit_prep:
+ifdef P24G_LOG
+	fetch 1,mem_new_24g_paccnt
+	increase 1,pdata
+	store 1,mem_new_24g_paccnt
+endif
+// total length
+	fetch 1,mem_new_24g_datalen
+	increase 2,pdata
+	store 1,mem_new_24g_txlen
+// data type
+	fetch 1,mem_new_24g_data_type
+	store 1,mem_new_24g_txpayload
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	fetch 1,mem_new_24g_datalen
+	lshift3 pdata,pdata
+	fetcht 1,mem_new_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	fetcht 1,mem_new_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	fetch 1,mem_new_24g_datalen
+	iforce loopcnt
+	arg mem_new_24g_txbuf,contr
+	branch memcpy
+/*
+g24_send_abort_packet:
+	jam 1,mem_new_24g_abort_pac
+	jam 0,mem_new_24g_rf_hop_ch
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_new_24g_common_temp
+	setarg 0
+	store 7,mem_new_24g_common_temp+1
+	fetch 4,mem_new_24g_device_addr
+	store 4,mem_new_24g_common_temp+8
+	arg 12,temp
+	arg mem_new_24g_common_temp,rega
+	call g24_put_data_in_buff
+	fetch 1,mem_new_24g_data_type
+	set1 bit_abort,pdata
+	store 1,mem_new_24g_data_type
+	call g24_transmit_prep
+	call g24_txdata_enable_tx
+	branch g24_transmit_start	*/
+
+g24_no_data_to_tx:
+	rtn
+//	fetch 1,mem_short_lpm_enable
+//	branch g24_no_data_to_tx_short_lpm_disable,blank
+//	call g24_lpm_short_decrease
+//	branch g24_short_lpm_sleep
+/*	
+g24_no_data_to_tx_short_lpm_disable:
+ifdef OTA_ENABLE
+	fetch 1,mem_new_24g_ota_enable
+	rtneq 1
+endif	
+//	fetch 1,mem_new_24g_abort_pac
+//	branch g24_send_abort_packet,blank
+	fetcht 1,mem_new_24g_delay_long_sleep_cnt
+	increase 1,temp
+	storet 1,mem_new_24g_delay_long_sleep_cnt
+	fetch 1,mem_new_24g_delay_long_sleep_maxcnt
+	isub temp,null
+	rtn positive
+	jam 0,mem_new_24g_delay_long_sleep_cnt
+g24_lpm_long_sleep:
+	call p_check_ipc_for_lpm
+	nrtn user
+	fetch 1,mem_c51_lmp_lock
+	nrtn blank
+	fetch 1,mem_new_24g_enter_lpm_timer
+	nrtn blank
+	jam 0,mem_short_data_wheel
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 8,mem_new_24g_enter_hibernate
+	call clk2lpo
+	storet 4,mem_sleep_counter
+  	branch lpm_sleep	*/
+
+g24_lpm_short_increase:
+	fetch 1,mem_wakup_from_power_flag
+	isolate0 2,pdata
+	branch g24_lpm_short_increase_poweron,true
+	fetch 1,mem_short_lpm_tx_cnt
+	rtneq 5
+	increase 1,pdata
+	store 1,mem_short_lpm_tx_cnt
+	rtnne 5
+g24_lpm_short_enable:	
+	jam 1,mem_short_lpm_enable
+	rtn
+
+g24_lpm_short_increase_poweron:		//wait for lpo_calibration completely
+	fetch 1,mem_short_lpm_tx_cnt
+	rtneq 20
+	increase 1,pdata
+	store 1,mem_short_lpm_tx_cnt
+	rtnne 20
+	fetch 1,mem_wakup_from_power_flag
+	set1 2,pdata
+	store 1,mem_wakup_from_power_flag
+	branch g24_lpm_short_enable
+
+g24_lpm_short_decrease:
+	fetch 1,mem_short_lpm_tx_cnt
+	rtn blank
+	increase -1,pdata
+	store 1,mem_short_lpm_tx_cnt
+	nrtn blank
+	jam 0,mem_short_lpm_enable
+	rtn
+	
+g24_short_lpm_transmit_process:
+	set1 mark_24g_conext,mark
+	call p_ipc_rx
+	branch g24_short_lpm_transmit_process_ipc_nodata,user
+	fetch 1,mem_ipc_rx_type
+	beq IPC_TYPE_24G,g24_short_lpm_txdata_data_ready
+g24_short_lpm_transmit_process_ipc_nodata:
+	fetch 1,mem_send_data_24g_short_lpm
+	beq SHORT_LPM_STATE_DATA,g24_short_lpm_txdata_prep_buff_data
+	beq SHORT_LPM_STATE_NODATA,g24_no_data_to_tx
+	beq SHORT_LPM_STATE_BUTTON_WHEEL,g24_short_lpm_transmit_process_button_wheel
+	rtn
+
+g24_short_lpm_transmit_process_button_wheel:
+//	jam 0,mem_short_lpm_tx_cnt
+//	jam 0,mem_short_lpm_enable
+g24_short_lpm_txdata_prep_buff_data:
+	rtn
+
+//ifdef OTA_ENABLE
+//	fetch 1,mem_new_24g_ota_enable
+//	beq 1,g24_ota_exit_short_lpm_sleep
+//endif
+//	call g24_lpm_short_increase
+//	jam 0,mem_send_data_24g_short_lpm
+//	arg 7,loopcnt
+//	copy loopcnt,pdata
+//	store 1,mem_new_uart_packet
+//	arg mem_hid_buff,contr
+//	call memcpy
+//	disable user
+g24_short_lpm_txdata_data_ready:
+	rtn
+//	call g24_txdata_prep_packeage_data
+//	call g24_rf_sta_check
+//	call g24_transmit_packet
+//	call power_ctrl_start
+g24_short_lpm_sleep:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_lpm_mode
+	rtn blank
+	fetch 1,mem_short_data_wheel
+	beq 1,g24_short_lpm_sleep2
+	setarg 0
+	store 8,mem_gpio_wakeup_low
+g24_short_lpm_sleep2:
+	call g24_short_lpm_select_param
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	fetcht 3,mem_ckln_24g_short_lpm
+	copy clkn_bt,pdata
+	isub temp,pdata
+	and_into 0xff,pdata
+	arg 3750,temp		//312.5 x 12  = 1875
+	imul32 temp,temp  // btclk to system clk @ 12MHz
+	fetch 4,mem_short_lpm_interval_param
+	isub temp,pdata	//8ms - PassedTime
+	branch lpm_dispatch_sleep,positive
+	fetch 1,mem_lpm_xtalcnt // sleep the shortest time
+	increase 1,pdata
+	store 4,mem_sleep_counter
+	branch lpm_dispatch_sleep+7
+g24_short_lpm_select_param:
+	setarg G24_8125_INTERVAL_PARAM
+	store 4,mem_short_lpm_interval_param
+	fetch 1,mem_short_lpm_interval_cnt
+	increase 1,pdata
+	bne 5,g24_short_lpm_select_param_cont
+	setarg 0
+g24_short_lpm_select_param_cont:
+	store 1,mem_short_lpm_interval_cnt
+	rtnbit0 0
+	setarg G24_78125_INTERVAL_PARAM
+	store 4,mem_short_lpm_interval_param
+	rtn
+
+ifdef OTA_ENABLE
+g24_ota_exit_short_lpm_sleep:
+	jam 0,mem_short_lpm_tx_cnt
+	jam 0,mem_short_lpm_enable
+	branch g24_short_lpm_sleep
+endif
+
+g24_transmit_packet:
+	jam 0,mem_new_24g_retry
+g24_transmit_loop:
+	arg param_rx_setup,timeup
+	until clkn_rt,meet
+	call g24_transmit_receive_ack
+	fetch 1,mem_new_24g_no_ack	//tx noack
+	rtneq no_ack_24g
+	nbranch g24_retransmit,sync
+	nbranch g24_retransmit,user3
+	call g24_ackpayload_parse
+	call power_ctrl_pac_succ_incrs
+g24_transmit_next_packet:
+	fetch 1,mem_new_24g_pid
+	increase 1,pdata
+	store 1,mem_new_24g_pid
+	fetch 1,mem_new_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_paring_mode_start
+	call g24_transmit_succ_rf_config
+g24_transmit_abandon:
+	setarg 0
+	store 2,mem_new_24g_txfail_cnt
+	store 1,mem_new_24g_get_ack_fail
+	store 1,mem_new_24g_hop_pac_retry
+	jam ENSURE_OFF_24G,mem_new_24g_ensure
+	rtn
+g24_paring_mode_start:
+	call power_ctrl_pac_succ_cnt_init
+	branch g24_paring_mode
+
+g24_transmit_receive_ack:
+	disable user3
+	call g24_transmit
+	fetch 1,mem_new_24g_no_ack
+	beq no_ack_24g,g24_transmit_no_ack	//tx no ack
+	force 0,radio_ctrl
+	fetch 4,mem_new_24g_addr
+	iforce access
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	call g24_receive_rxon
+	call g24_end_of_packet,user3
+	rtn
+g24_transmit_no_ack:
+	call g24_end_of_packet
+	branch g24_transmit_next_packet
+
+g24_retransmit:
+	fetch 1,mem_new_24g_get_ack_fail
+	increase 1,pdata
+	store 1,mem_new_24g_get_ack_fail
+	fetch 1,mem_new_24g_pairing_sm
+	bne STATE_24G_PAIRING_SUCCESS,g24_tx_paring_retry
+	fetcht 1,mem_new_24g_retry
+	increase 1,temp
+	storet 1,mem_new_24g_retry
+	fetch 1,mem_new_24g_max_retry
+	isub temp,pdata
+	nbranch g24_transmit_loop,blank
+	fetch 1,mem_new_24g_rf_work_stage
+	beq 3,g24_transmit_pac_fail_hop_stage3
+	fetch 1,mem_new_24g_hop_pac_retry
+	increase 1,pdata
+	store 1,mem_new_24g_hop_pac_retry
+	beq 2,g24_transmit_hop_pac_fail
+	call g24_hop_ch_enable
+	jam 1,mem_new_24g_max_retry
+	branch g24_transmit_packet
+
+g24_tx_paring_retry:
+	fetch 1,mem_new_24g_get_ack_fail
+	rtnne 0xff
+	jam 0,mem_new_24g_get_ack_fail
+	branch g24_stop_24g_mode
+
+g24_tx_attempt_fail:
+	setarg 0
+	store 2,mem_new_24g_txfail_cnt
+	jam 0,mem_lpm_mode
+	jam 0,mem_short_lpm_tx_cnt
+	jam 0,mem_short_lpm_enable
+g24_stop_24g_mode:
+	jam BT_EVT_24G_ATTEMPT_FAIL,mem_ipc_tx_evt
+	branch p_ipc_tx_evt
+
+g24_ackpayload_parse:
+	call g24_read_len_pid_crc
+	fetch 1,mem_new_24g_rxdata_length	//ack payload length 
+	rtn blank
+	iforce loopcnt
+	arg mem_new_24g_rxbuf+2,contr
+	arg mem_new_24g_rxpayload,contw	//ack payload buffer 
+	branch memcpy
+
+g24_read_len_pid_crc:
+//read control
+	fetch 1,mem_new_24g_rxbuf+1
+	rshift3 pdata,pdata
+	store 1,mem_new_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	arg mem_new_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	store 3,mem_new_24g_sta_crc
+//read pid
+	fetch 1,mem_new_24g_rxbuf+1
+	rshift pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_new_24g_sta_pid
+	rtn
+
+
+g24_prep:
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_new_24g_ch
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init	
+	rtn
+
+g24_set_freq_tx:
+	call set_sync_on
+	fetcht 1,mem_new_24g_ch
+	branch set_freq_tx
+
+g24_transmit:
+	call le_enable
+	fetch 4,mem_new_24g_addr
+	iforce access
+	call g24_prep
+	call g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+	disable encode_fec0
+	enable encode_fec1
+	enable enable_white
+	enable enable_crc
+
+	fetch 1,mem_new_24g_syncword_crc8
+	inject mod,8
+	
+	fetch 1,mem_new_24g_txlen
+	iforce loopcnt
+	arg mem_new_24g_txpayload,contr
+g24tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop g24tr_loop
+ifdef P24G_LOG	
+	fetch 1,mem_tx_power
+	inject mod,8
+	fetch 1,mem_rssi_avg_received
+	inject mod,8
+	fetch 1,mem_new_24g_paccnt
+	inject mod,8
+endif	
+	enable enable_parity
+	inject mod,24	//crc
+	disable enable_parity
+	until null,tx_clear
+	nop 100
+	disable encode_fec0
+	disable encode_fec1
+	rtn
+
+g24_receive_packet:
+	call le_enable
+	fetch 4,mem_new_24g_addr
+	iforce access
+	call set_sync_on
+	fetcht 1,mem_new_24g_ch
+	call set_freq_rx
+	setarg param_pll_setup
+	call sleep
+	call rf_rx_enable
+g24_receive_rxon:
+	call g24_prep
+	disable user3
+	enable decode_fec0	
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_new_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch g24_sync_timeout,sync
+	disable decode_fec0
+	enable decode_fec1
+	enable enable_white
+	enable enable_crc
+
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_new_24g_get_syncword_crc8
+	call g24_syncword_crc8
+	fetcht 1,mem_new_24g_get_syncword_crc8
+	isub temp,null
+	nbranch g24_end_of_packet,zero
+
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_new_24g_rxbuf	//device id
+	fetch 1,mem_new_24g_mode
+	sub pdata,rx_24g,null
+	branch g24_receive_skip,zero
+	fetch 1,mem_new_24g_rxbuf
+	fetcht 1,mem_new_24g_data_type
+	icompare bits_data,temp
+	nbranch g24_end_of_packet,true
+g24_receive_skip:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	rshift3 pdata,pdata
+	and pdata,0x1f,loopcnt	//max payload: 32bytes
+	branch g24rx_nopayload,zero
+g24rx_loop:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop g24rx_loop
+g24rx_nopayload:
+	//receive rssi hex
+	copy contw,rega
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_rssi_hex_received
+	copy rega,contw
+	
+	parse demod,bucket,24
+	enable swfine
+	arg param_sifs,stop_watch
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	disable decode_fec1
+	branch g24_end_of_packet,crc_failed
+	enable user3
+	fetch 1,mem_last_freq
+	add pdata,0,rega
+	call rf_write_freq
+	disable decode_fec0
+	call set_sync_on
+	fetch 1,mem_rssi_hex_received
+	copy pdata,rega
+	branch rssi_signal
+
+g24_end_of_packet:
+	disable encode_fec1
+	disable decode_fec1
+	branch end_of_packet
+
+g24_sync_timeout:
+	branch g24_end_of_packet
+
+power_ctrl_pac_succ_cnt_init:
+	jam 1,mem_power_ctrl_level
+	jam 0,mem_power_ctrl_pac_succ_cnt
+	rtn
+power_ctrl_pac_succ_incrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	increase 1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+power_ctrl_pac_succ_decrs:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,1,null
+	ncall power_ctrl_pac_succ_cnt_reinit,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	rtneq 0
+	increase -1,pdata
+	store 1,mem_power_ctrl_pac_succ_cnt
+	rtn
+power_ctrl_pac_succ_cnt_reinit:
+	jam 2,mem_power_ctrl_pac_succ_cnt
+	rtn
+
+power_ctrl_start:
+ifdef TP_MAX
+	rtn
+endif
+	arg mem_rssi_signal_buf,rega
+	call rssi_average
+	storet 1,mem_rssi_avg_received
+	isolate1 mark_24g,mark
+	call power_ctrl_24g_dis_max,true
+	ncall power_ctrl_le_dis_max,true
+	isub temp,null
+	nbranch power_ctrl_txpower_incrs,positive
+
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,1,null
+	nbranch power_ctrl_txpower_decrs_check,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	beq 0,power_ctrl_txpower_incrs
+	rtn
+
+power_ctrl_24g_dis_max:
+	setarg RSSI_DIS_MAX_24G
+	rtn
+power_ctrl_24g_dis_min:
+	setarg RSSI_DIS_MIN_24G
+	rtn	
+power_ctrl_le_dis_max:
+	setarg RSSI_DIS_MAX_BLE
+	rtn
+power_ctrl_le_dis_min:
+	setarg RSSI_DIS_MIN_BLE
+	rtn
+	
+power_ctrl_txpower_decrs_check:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	rtnne 70
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_decrs:
+	fetcht 1,mem_rssi_avg_received
+	isolate1 mark_24g,mark
+	call power_ctrl_24g_dis_min,true
+	ncall power_ctrl_le_dis_min,true
+	isub temp,null
+	nrtn positive
+	fetch 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+	increase -1,pdata
+	store 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+power_ctrl_decrs_level1:
+power_ctrl_incrs_level1:	//0dBm
+	hjam 0xd0,0x8955
+	hjam 0xe0,0x8956
+	hjam 0x4c,0x8957
+	hjam 0x6c,0x8958
+	hjam 0x50,0x8959
+	jam 0x01,mem_tx_power
+	rtn
+	
+power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 2,power_ctrl_incrs_level2
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1
+power_ctrl_incrs_level2:	//+6dBm
+	hjam 0xd0,0x8955
+	hjam 0xe0,0x8956
+	hjam 0x4c,0x8957
+	hjam 0x3c,0x8958
+	hjam 0x10,0x8959
+	jam 0x04,mem_tx_power
+	rtn
+	
+power_ctrl_decrs_level0: //-5dBm
+	hjam 0xd0,0x8955
+	hjam 0xc0,0x8956
+	hjam 0x4c,0x8957
+	hjam 0x6c,0x8958
+	hjam 0x50,0x8959	
+	jam 0x10,mem_tx_power
+	rtn
+	
+rssi_signal:
+	fetcht 1,mem_rssi_signal_index
+	setarg mem_rssi_signal_buf
+	iadd temp,contw
+	copy rega,pdata
+	istore 1,contw
+	increase 1,temp
+	and_into RSSI_BUF_LEN,temp
+	storet 1,mem_rssi_signal_index
+	rtn
+rssi_average:
+	arg 0,temp
+	arg RSSI_BUF_LEN+1,loopcnt
+	copy rega,contr
+rssi_average_loop:	
+	ifetch 1,contr
+	iadd temp,temp
+	loop rssi_average_loop
+	rshift3 temp,pdata
+	copy pdata,temp
+	rtnmark0 mark_24g
+	//2BCD
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	lshift4 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+
+
+g24_start_pairing_sm1:
+	set1 mark_24g,mark
+	call g24_pair_init
+g24_set_pairing_sm_1:
+	jam STATE_24G_PAIRING_1,mem_new_24g_pairing_sm
+	rtn
+
+g24_pairing_sm:
+	fetch 1,mem_new_24g_ensure
+	beq ENSURE_ON_24G,disable_usr
+	fetch 1,mem_new_24g_pairing_sm
+	beq STATE_24G_PAIRING_1,g24_pairing_sm_1
+	beq STATE_24G_PAIRING_2,g24_pairing_sm_2
+	beq STATE_24G_PAIRING_3,g24_pairing_sm_3
+	branch assert
+
+g24_pairing_sm_1:
+	jam STATE_24G_PAIRING_1_WAITING_ACK,mem_new_24g_pairing_sm
+	jam 0xaa,mem_new_24g_common_temp
+	branch g24_pairing_sm_common
+g24_pairing_sm_2:
+	jam STATE_24G_PAIRING_2_WAITING_ACK,mem_new_24g_pairing_sm
+	jam 0x55,mem_new_24g_common_temp
+	branch g24_pairing_sm_common
+g24_pairing_sm_3:
+	jam STATE_24G_PAIRING_3_WAITING_ACK,mem_new_24g_pairing_sm
+	jam 0x22,mem_new_24g_common_temp
+g24_pairing_sm_common:
+	fetch 1,mem_new_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_new_24g_common_temp+1
+	fetch 4,mem_new_24g_device_addr
+	store 4,mem_new_24g_common_temp+2
+g24_put_pairing_data_in_buff:
+	jam 0,mem_new_24g_common_temp+6
+	arg mem_new_24g_common_temp,rega
+	arg 7,temp
+	call g24_put_data_in_buff	
+	call g24_transmit_prep
+	call g24_txdata_enable_tx
+	branch disable_usr
+
+g24_paring_mode:
+	fetch 1,mem_new_24g_pairing_sm
+	rtneq STATE_24G_PAIRING_SUCCESS
+	beq STATE_24G_PAIRING_1_WAITING_ACK,g24_pairing_sm_1_waiting_ack
+	beq STATE_24G_PAIRING_2_WAITING_ACK,g24_pairing_sm_2_waiting_ack
+	beq STATE_24G_PAIRING_3_WAITING_ACK,g24_pairing_sm_3_waiting_ack
+	rtn
+
+g24_pairing_sm_1_waiting_ack:
+	jam STATE_24G_PAIRING_2,mem_new_24g_pairing_sm
+	branch g24_transmit_abandon
+g24_pairing_sm_2_waiting_ack:
+	jam STATE_24G_PAIRING_3,mem_new_24g_pairing_sm
+	branch g24_transmit_abandon
+g24_pairing_sm_3_waiting_ack:
+	jam STATE_24G_PAIRING_SUCCESS,mem_new_24g_pairing_sm
+	jam BT_EVT_24G_PAIRING_COMPLETE,mem_ipc_tx_evt
+	call p_ipc_tx_evt
+	fetch 4,mem_new_24g_rxpayload+2
+	call g24_update_addr_and_synccrc8
+	branch g24_transmit_abandon
+
+g24_start_24g_mode:
+	set0 mark_24g,mark
+	call g24_ch
+	fetch 4,mem_new_24g_addr
+	call g24_syncword_crc8
+	fetch 1,mem_new_24g_pairing_sm
+	rtnne STATE_24G_PAIRING_SUCCESS
+	call g24_tx_attemp_data_prep
+g24_tx_attemp_dongle:
+	setarg 0
+	store 2,mem_new_24g_check_dongle_times
+g24_tx_attemp_dongle_loop:
+	nop 2000
+	fetch 1,mem_new_24g_check_dongle_times
+	beq 0xff,g24_stop_24g_mode	//
+	call g24_transmit_receive_ack
+	nbranch g24_attemp_txdata_retry,sync
+	nbranch g24_attemp_txdata_retry,user3
+g24_tx_attemp_dongle_succ:
+	jam 1,mem_lpm_mode
+	set1 mark_24g,mark
+	setarg 0
+	store 2,mem_new_24g_check_dongle_times
+	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
+	call ui_ipc_send_event
+	branch check_51cmd_stop_adv
+
+g24_tx_attemp_data_prep:
+	set1 mark_24g_conext,mark
+	jam 0xff,mem_new_24g_common_temp
+	fetch 1,mem_new_24g_data_type
+	store 1,mem_new_24g_common_temp+1
+	fetch 4,mem_new_24g_device_addr
+	store 4,mem_new_24g_common_temp+2
+	arg 6,temp
+	arg mem_new_24g_common_temp,rega
+	call g24_put_data_in_buff
+	branch g24_transmit_prep
+	
+g24_attemp_txdata_retry:
+	fetch 2,mem_new_24g_check_dongle_times
+	increase 1,pdata
+	store 2,mem_new_24g_check_dongle_times
+	call g24_ch
+	branch g24_tx_attemp_dongle_loop
+
+
+ifdef YC_G24_AUTO
+g24_auto_pair_start:
+	set0 mark_24g,mark
+	call g24_auto_pair_set_device_info
+	call g24_tx_attemp_data_prep
+g24_auto_pair_restart:
+	jam 0,mem_new_24g_check_dongle_times
+g24_auto_pair_start_loop:
+	nop 2000
+	fetch 1,mem_new_24g_check_dongle_times
+	beq 0xff,g24_stop_24g_mode
+	call g24_transmit_receive_ack
+	nbranch g24_auto_pair_retry,sync
+	nbranch g24_auto_pair_retry,user3
+	call g24_ackpayload_parse
+	fetch 4,mem_new_24g_addr
+	fetcht 4,mem_new_24g_paring_addr
+	isub temp,null
+	branch g24_start_pairing_sm1,zero
+	fetch 4,mem_new_24g_rxpayload+2
+	beq 0,g24_auto_pair_restart
+	call g24_update_addr_and_synccrc8
+	branch g24_tx_attemp_dongle_succ
+
+g24_auto_pair_retry:
+	fetch 1,mem_new_24g_check_dongle_times
+	increase 1,pdata
+	store 1,mem_new_24g_check_dongle_times
+	fetch 1,mem_new_24g_auto_paring_switch	
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_new_24g_auto_paring_switch
+	beq 0,g24_auto_pair_device_attemp
+	beq 1,g24_auto_pair_pair_attemp
+	rtn
+
+g24_auto_pair_set_device_info:
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	fetch 4,mem_new_24g_device_addr
+	call g24_update_addr_and_synccrc8
+	branch g24_ch
+
+g24_auto_pair_device_attemp:
+	call g24_auto_pair_set_device_info
+	branch g24_auto_pair_start_loop
+
+g24_auto_pair_pair_attemp:
+	call g24_pair_init
+	branch g24_auto_pair_start_loop
+
+endif
+
+endif
+
+
+ifdef TEST_MODE
+p_test_tx_mode_init:
+
+	
+	rtn
+endif
+
+ifdef HCILOG
+p_hci_log:
+	fetch 1,p_mem_hci_log
+	increase 1,pdata
+	sub pdata,18,null
+	branch p_hci_log_calc_ptr,positive
+	setarg 0
+p_hci_log_calc_ptr:
+	store 1,p_mem_hci_log
+	arg 8,temp
+	imul32 temp,pdata
+	arg p_mem_hci_log+8,contw
+	iadd contw,contw
+p_hci_log_write_content:
+	fetch 1,p_mem_hci_log
+	istore 1,contw//counter
+	fetch 7,mem_new_24g_txbuf
+	istore 7,contw
+	rtn
+endif
+
+ifdef MS_TEST
+//1 mem_m_key
+//2 mem_m_x
+//2 mem_m_y
+//1 mem_m_z
+//1 mem_m_tz
+p_g24_test_data:
+	fetch 1,mem_24g_test
+	increase 1,pdata
+	store 1,mem_24g_test
+	sub pdata,50,null
+	branch p_ms_x_right,positive
+	sub pdata,100,null
+	branch p_ms_y_up,positive
+	sub pdata,150,null
+	branch p_ms_x_left,positive
+	sub pdata,200,null
+	branch p_ms_y_down,positive
+	rtn
+p_ms_x_right:
+	setarg 0x05
+	store 2,mem_m_x
+	setarg 0
+	store 2,mem_m_y
+	store 1,mem_m_z
+	store 1,mem_m_key
+	store 1,mem_m_tz
+p_data:	
+	enable user
+	arg 7,rega
+	arg mem_m_key,regb
+	call g24_package_data_pc_bind
+	rtn
+p_ms_y_up:
+	setarg 0x05
+	store 2,mem_m_y
+	setarg 0
+	store 2,mem_m_x
+	store 1,mem_m_z
+	store 1,mem_m_key
+	store 1,mem_m_tz
+	branch p_data
+p_ms_x_left:
+	setarg 0xfffb
+	store 2,mem_m_x
+	setarg 0
+	store 2,mem_m_y
+	store 1,mem_m_z
+	store 1,mem_m_key
+	store 1,mem_m_tz
+	branch p_data
+p_ms_y_down:
+	fetch 1,mem_24g_test
+	beq 200,p_mem_usb_data_square_cnt_set0
+	setarg 0xfffb
+	store 2,mem_m_y
+	setarg 0
+	store 2,mem_m_x
+	store 1,mem_m_z
+	store 1,mem_m_key
+	store 1,mem_m_tz
+	branch p_data
+p_mem_usb_data_square_cnt_set0:
+	jam 0,mem_24g_test
+	branch p_ms_y_down+2
+endif
+
+
+
+
+
+endif
+
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/app.prog
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/app.prog	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/app.prog	(working copy)
@@ -0,0 +1,488 @@
+app_init:
+	set0 mark_ext_patch,mark
+	bpatch patch16_4,mem_patch16
+	fetch 1,mem_device_option
+	branch app_init,blank				/* wait ram to be initialized */
+//	beq dvc_op_ukey,le_ukey_init
+//	beq dvc_op_ir,le_ir_init
+//	beq dvc_op_dongle,le_dongle_init
+	beq dvc_op_kb,kb_init
+	beq dvc_op_shutter,shutter_init
+	beq dvc_op_module,module_init
+//	beq dvc_op_test,test_init
+	bbit1 dvc_op_mouse,mouse_init
+	bbit1 dvc_op_keyboard,kb_init
+	rtn
+	
+app_lpm_init:
+	set0 mark_ext_patch,mark
+	bpatch patch16_5,mem_patch16
+	jam 0,mem_tester_emulate
+	jam 0,mem_debug_config
+	jam 0, mem_lch_code
+	setarg 0
+	store 5,mem_sp_state_start
+	fetch 1,mem_device_option
+	branch app_lpm_init,blank				/* wait ram to be initialized */
+	beq dvc_op_module,module_lpm_init
+app_lpm_init0:
+	rtn
+
+	
+app_process_idle:
+	call ui_dispatch
+	call check_51cmd
+	call app_process_bb_event
+	fetch 2,mem_cb_idle_process
+	branch callback_func
+	
+app_process_bt:
+	fetch 2,mem_cb_bt_process
+	branch callback_func
+	
+app_process_ble:
+	fetch 2,mem_cb_le_process
+	branch callback_func
+
+app_process_bb_event:
+	set0 mark_ext_patch,mark
+	bpatch patch16_6,mem_patch16
+	//return if c51 need to process bb event
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_out
+	rtn blank
+	//reaching here mains c51 cannot get bb event.
+	copy pdata,regc
+	call app_event_normal_process
+	branch app_process_bb_event_priority
+	
+app_discard_event:
+	arg 0,regc
+	rtn
+
+//************************************************//
+//*APP BB EVENT NORMAL PROCESS**//
+//************************************************//
+app_event_normal_process:
+	beq BT_EVT_BB_CONNECTED,app_evt_bt_conn
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_evt_button_long_pressed
+	beq BT_EVT_SETUP_COMPLETE,app_evt_setup_complete
+	beq BT_EVT_HID_HANDSHAKE,app_evt_hid_handshake
+	beq BT_EVT_HID_CONNECTED,app_bb_event_hid_connected
+	beq BT_EVT_RECONN_FAILED,app_bb_event_reconn_failed
+	beq BT_EVT_BB_DISCONNECTED,app_bb_event_bb_disconn
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,app_bb_event_reconn_failed	
+	beq BT_EVT_LE_CONNECTED,app_le_event_bb_connected
+	beq BT_EVT_LE_DISCONNECTED,app_le_event_bb_disconn
+	beq BT_EVT_RECONN_STARTED,app_event_reconn_start
+	beq BT_EVT_ENTER_SNIFF,app_event_enter_sniff
+	beq BT_EVT_EXIT_SNIFF,app_event_exit_sniff
+	
+	beq BT_EVT_ML2CAP_CONN_REFUSED,app_event_ml2cap_conn_refused
+	beq BT_EVT_LINKKEY_GENERATE,app_event_linkkey_generate
+	beq BT_EVT_SWITCH_FAIL_MASTER,app_event_switch_fail_master
+	beq BT_EVT_SWITCH_SUCCESS_MASTER,app_event_switch_success
+	
+	and pdata,0x0f,temp
+	and_into BT_EVT_TIMER_MASK,pdata
+	beq BT_EVT_TIMER_INIT,app_evt_timer
+	rtn
+
+app_evt_bt_conn:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_event_switch_success:
+	jam 0,mem_switch_fail_master_count
+	rtn	
+
+app_event_switch_fail_master:
+	fetch 1,mem_switch_fail_master_count
+	increase 1,pdata
+	store 1,mem_switch_fail_master_count
+	sub pdata,1,null
+	branch app_bt_role_switch,positive
+	jam 0,mem_switch_fail_master_count
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_SWITCH_FAIL,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch app_bt_disconnect
+	
+app_process_bb_event_priority:
+	fetch 2,mem_cb_bb_event_process
+	branch callback_func
+
+app_check_wake_lock:
+	fetch 2,mem_cb_check_wakelock
+	branch callback_func
+	
+app_will_enter_lpm:
+	fetch 2,mem_cb_before_lpm
+	branch callback_func
+
+app_event_linkkey_generate:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_PAIRING ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch app_bt_store_reconn_info
+	
+app_event_reconn_start:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_RECONN,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_evt_setup_complete:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_SETUP_COMPLETE,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_SETUP_DONE,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_evt_hid_handshake:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_HID_HANDSHAKE,pdata
+	store 2,mem_ui_state_map
+	rtn
+	
+app_event_enter_sniff:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_SNIFF,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_SNIFF,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+app_event_exit_sniff:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_SNIFF,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+app_le_event_bb_connected:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	rtn
+	
+app_le_event_bb_disconn:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	jam 0,mem_le_switch_send_data
+	branch app_lpm_mult_disable
+	
+app_bb_event_hid_connected:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_HID_CONN,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+app_evt_button_long_pressed:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_BY_BUTTON,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+app_event_ml2cap_conn_refused:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_L2CAP_REFUSED,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch  app_bt_disconnect
+
+
+app_evt_timer:
+	set0 mark_ext_patch,mark
+	bpatch patch16_7,mem_patch16
+	storet 1,mem_app_evt_timer_count
+app_evt_100ms_loop:
+	fetch 1,mem_app_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_app_evt_timer_count
+	call ui_button_polling
+	call app_lpm_wake_auto_lock_timer
+	call app_unsniff_delay_timer
+	call app_discovery_timer
+	fetch 2,mem_cb_event_timer
+	call callback_func
+	branch app_evt_100ms_loop
+	
+app_unsniff_delay_timer:
+	fetch 1,mem_unsniff2sniff_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_unsniff2sniff_timer_count
+	nrtn blank
+	call context_check_idle
+	branch app_bt_enter_sniff,zero
+	rtn
+app_discovery_timer:
+	fetch 2,mem_discovery_timeout_timer_count
+	rtn blank
+	increase -1,pdata
+	store 2,mem_discovery_timeout_timer_count
+	nrtn blank
+	call app_bt_stop_discovery
+	call app_led_off
+	fetch 2,mem_cb_discovry_timeout
+	branch callback_func 
+	
+app_bb_event_reconn_failed:
+	call app_disconn_reason_flag_clear
+app_clear_reconnect_flag:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+app_bb_event_bb_disconn:
+	jam 0,mem_unsniff2sniff_timer_count
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,app_bb_event_bb_reconn_disconn
+	isolate0 UI_STATE_BT_SETUP_COMPLETE,pdata
+ 	call app_discard_event,true
+app_bb_event_bb_reconn_disconn:
+	set0 mark_ext_patch,mark
+	bpatch patch17_0,mem_patch17
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_CONNECTED,pdata
+	set0 UI_STATE_BT_SETUP_COMPLETE,pdata
+	set0 UI_STATE_BT_HID_CONN,pdata
+	set0 UI_STATE_BT_HID_HANDSHAKE,pdata
+	set0 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	branch app_lpm_mult_disable
+	
+app_bb_hibernate:
+	call app_disconn_reason_clear
+	branch app_enter_hibernate
+
+	
+app_disconn_reason_clear:
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	rtn
+app_disconn_reason_flag_clear:
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+	
+app_disconn_reason_collect_bt:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+app_disconn_reason_collect_ble:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_BLE,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+	
+//************************************************//
+//********APP SHARED FUNCSIONS*******//
+//************************************************//
+
+
+app_check_sniff:
+	fetch 1,mem_ui_state_map
+	isolate1 UI_STATE_BT_SNIFF,pdata
+	rtn
+
+//*****************************************//
+//*****************API********************//
+//*****************************************//
+//app_clearflag_store:
+//	setarg 0
+//	branch app_flag_store
+app_initflag_store:
+	setarg EEPROM_INIT_FLAG
+app_flag_store:
+	store 2,mem_timeup
+	set0 mark_ext_patch,mark
+	bpatch patch17_1,mem_patch17
+	arg 2,temp
+	arg mem_timeup,rega
+	arg eeprom_module_init_flag,regb
+	branch iicd_write_eep_data
+
+//initflag is in eeprom to sure is eeprom nead to init
+app_initflag_check:
+	set0 mark_ext_patch,mark
+	bpatch patch17_2,mem_patch17
+	arg 2,temp
+	arg mem_pdatatemp,rega
+	arg eeprom_module_init_flag,regb
+	call iicd_read_eep_data
+	fetch 2,mem_pdatatemp
+	arg EEPROM_INIT_FLAG,temp
+	isub  temp,null
+	rtn
+
+
+app_start_auto_sniff:
+	fetch 1,mem_unsniff2sniff_timer
+	store 1,mem_unsniff2sniff_timer_count
+	rtn	
+	
+app_get_lpm_wake_lock:
+	arg wake_lock_app,queue
+	branch lpm_get_wake_lock
+
+app_put_lpm_wake_lock:
+	arg wake_lock_app,queue
+	branch lpm_put_wake_lock
+	
+app_lpm_wake_auto_lock:
+	jam  LPM_WAKE_UP_DELAY_TIMER,mem_wake_up_delay_timer
+	branch app_get_lpm_wake_lock
+app_lpm_wake_auto_lock_timer:
+	fetch 1,mem_wake_up_delay_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_wake_up_delay_timer
+	nrtn blank
+	branch app_put_lpm_wake_lock
+
+app_l2cap_flow_control_enable:
+	jam L2CAP_FLOW_CTRL_ENABLE,mem_l2cap_flow_ctrl_flag
+	rtn
+
+app_l2cap_flow_control_disable:
+	jam L2CAP_FLOW_CTRL_DISABLE,mem_l2cap_flow_ctrl_flag
+	rtn
+	
+app_bt_set_pincode:
+	jam BT_CMD_SET_PIN_CODE,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_bt_role_switch:
+	jam BT_CMD_ROLE_SWITCH,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_bt_start_reconnect:
+	set0 mark_ext_patch,mark
+	bpatch patch17_3,mem_patch17
+	fetch 1,mem_app_connection_options
+	store 1,mem_connection_options
+	jam APP_FLAG_RECONNECT,mem_reconnect_flag
+	jam BT_CMD_RECONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd	
+	
+app_bt_reconnect_cancel:
+	jam BT_CMD_BB_RECONN_CANCEL,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_bt_disconnect:
+	jam BT_CMD_DISCONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd	
+
+app_bt_start_discovery_short:
+	fetch 2,mem_discovery_timeout
+	store 2,mem_discovery_timeout_timer_count
+app_bt_start_discovery_led_blink:
+	call app_led_start_blink
+app_bt_start_discovery:
+	jam BT_CMD_START_DISCOVERY,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_bt_stop_discovery:
+	setarg 0
+	store 2,mem_discovery_timeout_timer_count
+	jam BT_CMD_STOP_DISCOVERY,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_direct_adv:
+	jam BT_CMD_START_DIRECT_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_ble_stop_direct_adv:
+	jam BT_CMD_STOP_DIRECT_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_stop_adv:
+	jam BT_CMD_STOP_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_adv:	
+	jam BT_CMD_START_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_scan:
+	jam BT_CMD_LE_START_SCAN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_stop_scan:
+	jam BT_CMD_LE_STOP_SCAN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_conn:
+	jam BT_CMD_LE_START_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_disconnect:
+	jam BT_CMD_LE_DISCONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_ble_start_write:
+	jam BT_CMD_LE_START_WRITE,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_led_start_blink:	
+	jam BT_CMD_LED_BLINK,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_led_on:
+	jam BT_CMD_LED_ON,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_led_stop_blink:
+app_led_off:
+	jam BT_CMD_LED_OFF,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_enter_hibernate:
+	jam BT_CMD_ENTER_HIBERNATE,mem_fifo_temp 
+	branch ui_ipc_send_cmd
+	
+app_bt_sniff_exit:
+	jam BT_CMD_EXIT_SNIFF,mem_fifo_temp
+	branch  ui_ipc_send_cmd
+	
+app_bt_enter_sniff:
+	jam BT_CMD_ENTER_SNIFF,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_ble_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO_LE,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_bt_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO_BT,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_lpm_mult_enable:
+	set1 mark_lpm_mult_enable,mark
+	rtn
+
+app_lpm_mult_disable:
+	set0 mark_lpm_mult_enable,mark
+	rtn
+	
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/command.format
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/command.format	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/command.format	(working copy)
@@ -0,0 +1,1386 @@
+
+/* Parse Command:
+TX: take bits from tx fifo, jam it into shift and a destination (rf,bucket)
+RX: take bits from demod,  jam it into shift and a destination (acl,sco,bucket) */
+
+/* Inject Command:
+TX: 0 into shift, send tail of shift into a destination (rf,bucket)
+RX: 0 into shift, send tail of shift into a destination (acl,sco,bucket) */
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ /* High 5 bytes of channel map */
+format
+  ! 15 pulse   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   /* set flag to 0 */
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  /* set selected bit of reg to 0 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  /* set selected bit of reg to 1 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          /* alu op demux */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  /* set selected bit of the reg to the polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  /* set the selected bit of the reg to the opposite polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    /* invert the selected bit of the reg */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            /* this is alu op */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      /* demux the lowest 4 bit of queue and OR it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 1 */
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      /* demux the lowest 4 bit of queue and AND it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 0 */
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   /* set the bit in reg index by queue to same as flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   /* set the bit in the reg index by queue to opposite of flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      /* flip the bit in reg index by queue */
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       /* take bits out of source (sco_tx,tx_buffer,rx-elas) into pdata and dest (sco_rx,rx_fifo,tx-elas) */
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      /* voice, data, demod */
+  [2] 0
+  [6] 0    
+  [2] 0           /* parse or inject */ 
+  [4] dest        /* acl, sco, mod, bucket */
+  [9] immediate   /* number of bits to parse off */
+end
+
+format
+  ! 1 inject      /* shift data from pdata into destination (tx-elas,rx_fifo,sco_rx) */
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] immediate   /* number of bits to be injected */
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       /* contain the number of bits to inject */
+  [6] 3
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] 0 
+end
+
+format
+  ! 1 stuff  /* automatic parse, stuff_counter decrement on every bit until hits zero */
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] immediate
+end
+
+format    /* force whatever is on shift_reg to regsiters */
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    /* alu operation add */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  /* pdata */
+  [6] 1   /* alu add */
+  [6] -1  /* back to pdata */
+  [9] immediate
+end
+
+format    /* force immediate value into registers */
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    /* pdata & regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] 0
+end
+  
+
+format    /* and whatever is in shiftreg with reg */
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   /* jump to location stored in reg */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   /* alu operation copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   /* copy the register content thru alu to shift register, not prealigned like preload */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] -1  /* pdata */
+  [9] 0
+end
+
+format
+  ! 3 icopy     /* copy the shift register lsb content directly to register, not aligned */
+  % regw
+  [5] opcode
+  [6] -1  /* pdata */
+  [6]  4  /* alu copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 add
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 iadd       /* regr + pdata -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          /* immediate - regr -> regw */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       /* pdata - regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 flip
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 iflip  /* use shift register as immediate to do xor */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 xor
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 3 xor_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 ixor  /* pdata xor regr and store result in regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 invert
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 8
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 pinvert    /* invert pdata into itself */
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 /* regr div immediate div */
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           /* pdata div regr data ready at most after 41 nops */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            /* harvest div remainder */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 quotient             /* harvest div quotient */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 15
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 6
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 22
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 18
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 35
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 25
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 34
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift32
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 30
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 7
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 23
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 26
+  [6] regw
+  [9] 0
+end
+
+  
+format
+  ! 3 lshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 19
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 36
+  [6] regw
+  [9] 0
+end
+  
+
+format
+  ! 3 lshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 32
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 random               /* random number into regw */
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     /* bit reverse within a byte */
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    /* priority encode reg into regw, lsb is the top priority, ie, priority(8'b00010000) = 4 */
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   /* set a section of pdata */
+  % section    /* 0 sets 17:0 of pdata with set_data, 1 sets 35:18, 2 sets 53:36, 3 sets 71:54 */
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   /* load stuff into pdata according to fhs format, check us.v */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  /* load register with pdata content, according to fhs format, check us.v */
+  ! 10 ialigned   /* all bits are in position */
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format  /* load register to another according to fhs format */
+  ! 10 aligned
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 4 branch
+  % addr
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 call
+  % addr
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 rtn
+  % flag
+  [5] opcode
+  [6] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstore          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        /* write to memory, data from pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d crc         /* read from memory, count from loopcnt, put crc result into pdata */
+  % addr
+  [5] opcode
+  [6] 0
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         /* read from memory, address from reg, count from loopcnt, put crc result into pdata */
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] 0
+end
+
+
+format
+  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstoret          /* write to corereg, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istoret        /* write to memory, data from temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetcht          /* read from corereg, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [1] 0   /* msb */
+  [15] addr
+  [8] immediate
+end
+
+format
+  ! 0x0e hjam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [1] 1   /* msb */
+  [15] addr
+  [8] immediate
+end
+
+format			/* 0x242... */
+  ! 4 nbranch
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 ncall
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 nrtn
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 4 nop
+  % addr  /* no-op for addr+2 clocks */
+  [5] opcode
+  [6] 0     
+  [6] 0     /* always */ 
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    /* always */
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   /* quit if 1. flag is true 2, regr time up 3, found sync,(cond_true) */
+  % reg          /* expire counter to check against */
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           /* correlate */
+  [9] 0           
+end
+
+format
+  ! 5 compare   /* sets cond flag,  if reg equals immediate */
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   /* sets cond flag,  if reg equals pdata */
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   /* sets cond. flag, if reg equals LS half of shift reg with MS half of reg being mask */
+  ! 5 iverify
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 2
+  [18] 0
+end
+
+format
+  ! 0x15 qisolate1
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] -1
+end
+
+format
+  ! 0x15 qisolate0
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] 0
+end
+
+	/* REVAB bug: cannot access bit above 35 */
+format
+  ! 5 isolate1
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] -1
+  [9] addr
+end
+
+format
+  ! 5 isolate0
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] 0
+  [9] addr
+end
+
+format
+  ! 11 setarg
+  % immediate
+  [5] opcode
+  [27] immediate
+end
+
+format
+  ! 0x1b arg
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [21] immediate
+end
+
+  
+format
+  ! 0 sleep
+  [5] opcode
+  [27] 0
+end
+
+format
+  ! 0 snooze
+  [5] opcode
+  [6] -1
+  [21] 0
+end
+
+format
+  ! 0 revision
+  % rev_num
+  [5] opcode
+  [27] rev_num
+end
+
+format
+  ! 0x18 loop   /* branch when loopcnt is NOT zero, and decrease loopcnt */
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   /* branch when pdata is equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   /* branch when pdata is NOT equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   /* return when pdata is equal to immediate */
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   /* return when pdata is NOT equal to immediate */
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   /* branch when pdata's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   /* branch when pdata's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 8
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 8	bpatch
+  % imme
+  % addr
+  [5] opcode
+  [4] 9
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark1   /* branch when mark's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   /* branch when mark's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+
+format
+  ! 3 mult                  /* immediate mult regr */  /* the product will be ready 17 clks later */
+  % immediate                                   /* use "product" instruction to get the result */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 imult           /* pdata mult regr */  /* the product will be ready after 15 nops */
+  % reg                                         /* use product opcode to get the result */
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate mult pulse to multiplier */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 mul32                  /* immediate mult regr */ 
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32           /* pdata mult regr 32x32=64bit */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 product              /* harvest mult product */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 17
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          /* SHA256 Sx operation, immediate is Sx */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	/* regext[0] <- regext[7], regext[1] <- regext[0], regext[2] <- regext[1] ... */
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/label.format
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/label.format	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/label.format	(working copy)
@@ -0,0 +1,2889 @@
+0x3000 start
+0x3001 soft_reset
+0x3019 main_loop
+0x3029 connection_dispatch
+0x302e connection_incontext
+0x3038 connection_nosniff
+0x3043 idle_dispatch
+0x304e idle_exit
+0x3050 idle_le_create_conn
+0x3053 idle_inquiry
+0x3058 idle_inquiry_cancel
+0x305b idle_remote_name_req
+0x3060 idle_create_conn
+0x3062 idle_create_conn_device
+0x3067 idle_create_conn_cont
+0x3068 idle_start_page
+0x306f idle_page_mode_r0
+0x3091 idle_page_fail
+0x3098 idle_name_fail
+0x309e inquiry_dispatch
+0x30a4 inquiry_start
+0x30ac inquiry_restart
+0x30af inquiry_rx_restart
+0x30b4 inquiry_transmit
+0x30c2 inquiry_check_train
+0x30d0 inquiry_receive
+0x30db inquiry_sync
+0x30e2 inquiry_receive_rtn
+0x30e4 inquiry_receive_eir_rtn
+0x30e8 master_page
+0x30f1 master_page_no_interval
+0x30fd master_npage_timeout
+0x3100 master_page_timeout
+0x3108 page_start
+0x3115 page_restart
+0x311b page_rx_restart
+0x312f page_exit
+0x3136 page_check_train
+0x3145 page_receive
+0x314e page_sync
+0x3154 page_send_fhs
+0x3159 page_send_fhs_continue
+0x3165 page_wait_fhs_reply
+0x3175 page_wait_fhs_reply_ok
+0x317b master_newconn_loop
+0x3180 newconn_poll_responded
+0x3188 master_dispatch
+0x319a master_loop
+0x31a4 master_notmatch
+0x31ab master_exit
+0x31ad master_attempt
+0x31b0 check_master_disconnect
+0x31b3 check_master_match
+0x31c1 master_disconnect
+0x31c8 master_name_disconnect
+0x31ca master_name_error
+0x31cd check_disconnect_timeout
+0x31d4 disable_usr
+0x31d6 conn_timer_expired
+0x31da linkkey_ready
+0x31e4 linkkey_set
+0x31ed linkkey_set_continue
+0x31ee generate_linkkey_continue
+0x31ef clear_linkstate
+0x31f3 role_switch_check
+0x31fe role_switch_clkn
+0x31ff role_switch_clke
+0x3206 role_switch_prepare
+0x320a role_switch_prepare0
+0x321a role_switch_master
+0x3221 roles_waitfhs_loop
+0x3226 role_switch_fail_master
+0x322f roles_replyto_fhs
+0x3237 roles_newconns_loop
+0x323e roles_newconns_responded
+0x3246 context_load
+0x3259 context_load_master
+0x3260 context_save
+0x3269 context_get_next
+0x326c context_get_next_loop
+0x3270 context_get_next_cont
+0x3278 context_get_next_sniff
+0x327a context_new
+0x3283 context_check_all_wack
+0x328b context_check_esco_wack
+0x3290 context_esco_wack
+0x3292 context_check_idle
+0x3294 context_traverse_linkkey
+0x3297 context_search_conn_handle
+0x3298 context_search_conn_handle2
+0x329a context_search_plap
+0x329d context_search_plap2
+0x329f context_search_insniff
+0x32a1 context_search_sniff_window
+0x32a2 context_search
+0x32a7 context_search_loop
+0x32a9 context_search_next
+0x32ad context_search_empty
+0x32b1 context_search_lap
+0x32b3 context_search_lap_cont
+0x32b8 context_search_handle
+0x32be context_search_sniff
+0x32bf context_search_sniff_loop
+0x32cc context_search_sniff_sc
+0x32cf context_search_meet1
+0x32d0 context_search_meet
+0x32d4 context_search_sniff_miss
+0x32da sign_pdata_temp
+0x32e4 sign_pdata_temp_p0
+0x32ea context_check_inconn
+0x32ed context_check_a_wack
+0x32f6 context_get_anchor
+0x3302 context_next_anchor
+0x3309 context_search_window
+0x3312 context_traverse_clearkey
+0x331d master_conn_send_packet
+0x3320 master_send_packet
+0x3328 master_conn_recv_packet
+0x332b master_recv_packet
+0x3333 master_rx_conn_finish_packet
+0x3337 master_newconn_once
+0x333e inquiry_scan_dispatch
+0x334e inquiry_scan_start
+0x337a send_eir
+0x339d get_all_uuid
+0x33a1 lshift_loop
+0x33b3 page_scan_dispatch
+0x33c3 page_scan_start
+0x33e6 page_scan_wait_fhs_restart
+0x33f0 page_scan_wait_fhs_again
+0x33f8 page_scan_reply_to_fhs
+0x3406 slave_apply_clke_bt
+0x340a slave_apply_clke_bt_now
+0x340d start_slave_connection
+0x3412 slave_newconn_loop
+0x3417 sconn_successful
+0x341f slave_dispatch
+0x3424 slave_loop
+0x3434 slave_notmatch
+0x343e slave_disconnect
+0x3447 role_switch_slave
+0x3450 roles_sendfhs_loop
+0x3463 roles_got_fhs_reply
+0x3466 roles_newconn_loop
+0x3470 roles_newconn_responded
+0x3476 roles_newconn_nolmp
+0x3481 init_rx_packet_flags
+0x348d prepare_newconn
+0x3499 newconn_init
+0x34a9 clear_linkkey
+0x34b0 new_conn_timeout
+0x34b4 new_conn_handle
+0x34b8 quit_connection
+0x34be quit_connection_name
+0x34c2 quit_connection_cont
+0x34d3 quit_connection_not_clear_mark
+0x34d5 quit_connection_not_clear_tx
+0x34d9 slave_newconn_once
+0x34e7 prepare_tx
+0x34f4 prepare_tx_not_esco
+0x34f5 prepare_tx_not_sco
+0x34fb prepare_tx_retransmit
+0x3505 prepare_tx_nomore_retransmit
+0x3508 prepare_tx_no_retransmit
+0x3511 prepare_tx_pollnull
+0x3515 prepare_tx_loopback
+0x351c prepare_tx_txpat
+0x3520 prepare_tx_sendlmp
+0x3522 prepare_tx_sendl2cap
+0x3523 set_wait_ack
+0x352d tx_l2cap_type
+0x3544 tx_l2cap_type_edr
+0x3554 slave_receive_master_slot
+0x3559 slave_receive_notsniff
+0x355a slave_receive_access
+0x355b slave_receive_sniff
+0x3579 slave_conn_recv_packet
+0x3582 receive_packet
+0x3584 receive_packet_whitened
+0x359a receive_packet_noedr
+0x35a4 receive_packet_amchk
+0x35b4 am_addr_match
+0x35b5 am_addr_ok
+0x35c5 arqn_bypass
+0x35d3 failed_seqn
+0x35d4 rx_type_dispatch
+0x35e4 process_hev
+0x35eb process_hev_loop
+0x35f4 process_poll
+0x35f5 process_dm5
+0x35f6 process_dm1
+0x35f8 process_dh5
+0x35f9 process_3dh1
+0x35fa process_dh1
+0x35fb process_dmh
+0x3608 process_dmh_noedr
+0x3614 process_dmh_long
+0x3617 process_dmh_common
+0x362b process_lmp
+0x3630 process_dmh_data_l2cap_start_pkt
+0x363b process_dmh_data_into_buff1
+0x3640 process_dmh_data_into_buff2
+0x3645 process_dmh_data_l2cap_continue_pkt
+0x3650 process_dmh_data_l2cap_continue_pkt1
+0x3654 process_dmh_data_l2cap_continue_pkt2
+0x3657 process_dmh_data
+0x365b process_dmh_data_end
+0x366e process_l2cap_pass_crc_buff1
+0x3678 process_l2cap_pass_crc_buff2
+0x3682 process_dmh_cont
+0x368c process_dmh_cont_rxbuf_not_use
+0x3696 ack_payload
+0x36a8 error_header
+0x36af error_payload_crc
+0x36b5 error_payload
+0x36b6 discard_pkt
+0x36bb discard_pkt_lmp
+0x36bf discard_pkt_l2cap
+0x36c3 redundant_payload
+0x36c6 end_of_packet
+0x36d3 process_fhs
+0x36e9 fhs_parity_ok
+0x3703 clear_got_tx
+0x3719 clear_got_txlmp
+0x3726 clear_lmp_escape
+0x3729 clear_send_setup_complete
+0x372e sco_link_req_by_slave
+0x3733 clean_mem_mode
+0x3736 start_encryption
+0x373f stop_encryption
+0x3746 sniff_init
+0x374d sniff_init_master
+0x3757 sniff_init_nowrap
+0x376a sniff_exit
+0x3775 check_attempt
+0x3781 check_attempt_nomore
+0x3783 check_attempt_sniff
+0x3789 check_attempt_sniff_restore_sco
+0x378c check_attempt_sco_master
+0x3792 check_attempt_not_sco
+0x379b check_attempt_notimeout
+0x379f sniff_check_window
+0x37a9 check_esco_amaddr
+0x37ac parse_l2cap
+0x37af parse_l2cap_cont
+0x37c1 parse_l2cap_release_buff1
+0x37c7 parse_l2cap_release_buff2
+0x37cd l2cap_buff1_inuse
+0x37d1 l2cap_buff2_inuse
+0x37d5 slave_send_access
+0x37de slave_conn_send_packet
+0x37e9 slave_conn_send_access
+0x37ec transmit_packet
+0x37ee transmit_packet_whitened
+0x3816 transmit_hev
+0x381d transmit_ev_loop
+0x3822 transmit_fhs
+0x3840 transmit_lmp
+0x3849 transmit_lmp_loop
+0x384f transmit_lmp_finish
+0x3852 transmit_dm1
+0x3854 transmit_dm5
+0x3857 transmit_3dh1
+0x3858 transmit_dh1
+0x385a transmit_dh5
+0x385d transmit_dmh
+0x386d transmit_edr3m
+0x3871 transmit_edr_sync_end
+0x3873 transmit_noedr
+0x387d transmit_long
+0x387e transmit_stuff
+0x3882 transmit_stuff_loop
+0x3885 transmit_end
+0x388e transmit_loopback
+0x3891 transmit_loopback_short
+0x3897 transmit_loopback_long
+0x389c transmit_loopback_cont
+0x389d transmit_loopback_loop
+0x38a3 transmit_loopback_end
+0x38a7 apply_switch_clke
+0x38ad apply_switch_nozero
+0x38b0 apply_switch_loop
+0x38b4 apply_switch_bt
+0x38b5 apply_switch_wait_loop
+0x38bc calc_slot_offset
+0x38c7 calc_bt_portion
+0x38c9 calc_slot_offset_loop
+0x38cb calc_skip_bt
+0x38d1 calc_clke_offset
+0x38dd calc_clke_pos
+0x38e1 calc_clke
+0x38e5 calc_clke2
+0x38ed calc_clke_pos2
+0x38ef calc_clke_pos_adj
+0x38f1 calc_radio_freq
+0x38fb freq_not_connection
+0x38fc do_hop_mod_now
+0x3904 odd_half
+0x3906 freq_result
+0x390a afh_process_0
+0x3918 afh_process_con
+0x3925 afh_process_1
+0x3931 afh_process_end
+0x3934 afh_same_channel
+0x3937 afh_clear
+0x393c afh_process_freq_map
+0x3944 process_freq_3
+0x3949 process_freq_1
+0x394d process_freq_0
+0x3956 process_freq_2
+0x3960 rx_radio_freq
+0x3966 rx_radio_freq_now
+0x3967 tx_radio_freq
+0x396d tx_radio_freq_now
+0x396e fetch_giac
+0x3972 fetch_page_bt_adr
+0x3979 fetch_self_bt_adr
+0x3982 fetch_extm_bt_adr
+0x398b fetch_diac
+0x398e fetch_diac_do
+0x3992 shutdown_radio
+0x399c shutdown_radio_select
+0x39a1 shutdown_radio_0db
+0x39a3 shutdown_radio0
+0x39ae shutdown_radio_3db
+0x39ae shutdown_radio_pair
+0x39b1 set_sync_on
+0x39b9 set_freq_rx
+0x39bf rf_rx_enable
+0x39c9 set_freq_tx
+0x39d0 txon
+0x39dc txon_power_select
+0x39e1 set_tx_power_0db
+0x39e5 set_tx_power_3db
+0x39e9 set_tx_power_5db
+0x39ed set_tx_power_f3db
+0x39f1 set_tx_power_f5db
+0x39f5 txon_common
+0x39fc initialize_radio
+0x39fe initialize_radio_wait
+0x3a02 initialize_radio_loop
+0x3a08 initialize_radio_cont
+0x3a13 rf_write_freq
+0x3a2b do_rccal
+0x3a37 do_rccal_loop
+0x3a3a do_rccal_end
+0x3a3f set_rccal
+0x3a50 save_rssi
+0x3a5f switchto_dpllclk
+0x3a7b xtal_fast_wake
+0x3a7d init_lpm_ctrl
+0x3a7f start_receiver
+0x3a86 prep_crypt
+0x3a95 wait_access_end
+0x3a9d wait_access_mhalfbnd
+0x3a9e wait_access_mhalfbnd_correlate
+0x3aa3 wait_access_clkn_rt
+0x3aab wait_access_forever
+0x3ab4 reserve_slot
+0x3abd ahead_window
+0x3acd setup_clk
+0x3ad1 skip_setup_clke
+0x3ad3 setup_clkn
+0x3ad5 skip_setup_clkn
+0x3ad6 setup_clknbt
+0x3ad9 setup_complete
+0x3ae3 setup_clk11
+0x3ae6 rf_setup_time
+0x3aea rf_setup_time_slave_slot
+0x3aec rf_setup_time_master_slot
+0x3aee start_transmitter
+0x3af4 start_tx_native
+0x3afa start_rx_native
+0x3aff start_tx_external
+0x3b05 send_access_word
+0x3b0d scan_mode_whiten
+0x3b11 get_free_amaddr
+0x3b17 get_free_amaddr_cont
+0x3b1a get_clk
+0x3b1e get_clkbt
+0x3b22 supervision_update
+0x3b2c supervision_flush
+0x3b31 assert
+0x3b34 loop
+0x3b35 sleep
+0x3b38 sleep_loop
+0x3b3c init_param
+0x3b64 init_rf_param
+0x3bab lpmstate
+0x3bb6 lpmwake
+0x3bc7 lpm_load_context
+0x3bd7 lpm_save_context
+0x3be2 lpo_calibration
+0x3be8 lpo_cal_inited
+0x3bed lpm_adjust_clk
+0x3bfe lpm_adjust_positive
+0x3c01 lpm_clear_counter
+0x3c04 lpm_hibernate
+0x3c0b lpm_hibernate_normal
+0x3c11 lpm_sleep
+0x3c24 lpm_enter_sleep
+0x3c29 lpm_recover_clk
+0x3c33 lpm_recover_xtal
+0x3c35 lpm_recover_timeout
+0x3c53 lpm_dispatch
+0x3c5e lpm_dispatch_next
+0x3c6a lpm_dispatch_next2
+0x3c7f lpm_dispatch_sleep
+0x3c80 lpm_dispatch_lpo
+0x3c8a lpm_dispatch_unconn
+0x3c93 lpm_unconn_nossp
+0x3c99 lpm_unconn_cont
+0x3c9b lpm_sleep_btclk
+0x3ca0 lpm_set_mult
+0x3cb0 lpm_mult_wait_timeout
+0x3cb7 lpm_match
+0x3cbc lpm_not_match
+0x3cc3 lpm_lost
+0x3ccb lpm_mult_short
+0x3ccf lpm_mult_long
+0x3cd2 lpm_cal_xtal_startup
+0x3ceb lpm_write_config
+0x3cf4 lpm_write_ctrl
+0x3cf6 lpm_write_ctrl2
+0x3cf7 lpm_write
+0x3cfc lpm_write_gpio_wakeup
+0x3d06 lpm_get_wake_lock
+0x3d0a lpm_put_wake_lock
+0x3d0e lpm_check_wake_lock
+0x3d2c lpm_uart_wake_lock
+0x3d31 lpm_check_wake_lock_nothci
+0x3d33 lpm_check_wake_lock_end
+0x3d39 lpm_shut_down
+0x3d3e lpm_disable_exen_output
+0x3d42 check_bt_disabled
+0x3d45 check_ble_disabled
+0x3d48 check_module_disabled
+0x3d4b app_init
+0x3d55 app_lpm_init
+0x3d5f app_lpm_init0
+0x3d60 app_process_idle
+0x3d65 app_process_bt
+0x3d67 app_process_ble
+0x3d69 app_process_bb_event
+0x3d71 app_discard_event
+0x3d73 app_event_normal_process
+0x3d88 app_evt_bt_conn
+0x3d8f app_event_switch_success
+0x3d91 app_event_switch_fail_master
+0x3d9b app_process_bb_event_priority
+0x3d9d app_check_wake_lock
+0x3d9f app_will_enter_lpm
+0x3da1 app_event_linkkey_generate
+0x3da5 app_event_reconn_start
+0x3dac app_evt_setup_complete
+0x3db3 app_evt_hid_handshake
+0x3db7 app_event_enter_sniff
+0x3dbe app_event_exit_sniff
+0x3dc2 app_le_event_bb_connected
+0x3dc6 app_le_event_bb_disconn
+0x3dcb app_bb_event_hid_connected
+0x3dcf app_evt_button_long_pressed
+0x3dd3 app_event_ml2cap_conn_refused
+0x3dd7 app_evt_timer
+0x3dda app_evt_100ms_loop
+0x3de5 app_unsniff_delay_timer
+0x3ded app_discovery_timer
+0x3df6 app_bb_event_reconn_failed
+0x3df7 app_clear_reconnect_flag
+0x3dfb app_bb_event_bb_disconn
+0x3e00 app_bb_event_bb_reconn_disconn
+0x3e0a app_bb_hibernate
+0x3e0c app_disconn_reason_clear
+0x3e0f app_disconn_reason_flag_clear
+0x3e12 app_disconn_reason_collect_bt
+0x3e17 app_disconn_reason_collect_ble
+0x3e1d app_check_sniff
+0x3e20 app_initflag_store
+0x3e21 app_flag_store
+0x3e28 app_initflag_check
+0x3e32 app_start_auto_sniff
+0x3e35 app_get_lpm_wake_lock
+0x3e37 app_put_lpm_wake_lock
+0x3e39 app_lpm_wake_auto_lock
+0x3e3b app_lpm_wake_auto_lock_timer
+0x3e41 app_l2cap_flow_control_enable
+0x3e43 app_l2cap_flow_control_disable
+0x3e45 app_bt_set_pincode
+0x3e47 app_bt_role_switch
+0x3e49 app_bt_start_reconnect
+0x3e50 app_bt_reconnect_cancel
+0x3e52 app_bt_disconnect
+0x3e54 app_bt_start_discovery_short
+0x3e56 app_bt_start_discovery_led_blink
+0x3e57 app_bt_start_discovery
+0x3e59 app_bt_stop_discovery
+0x3e5d app_ble_start_direct_adv
+0x3e5f app_ble_stop_direct_adv
+0x3e61 app_ble_stop_adv
+0x3e63 app_ble_start_adv
+0x3e65 app_ble_start_scan
+0x3e67 app_ble_stop_scan
+0x3e69 app_ble_start_conn
+0x3e6b app_ble_disconnect
+0x3e6d app_ble_start_write
+0x3e6f app_led_start_blink
+0x3e71 app_led_on
+0x3e73 app_led_off
+0x3e75 app_enter_hibernate
+0x3e77 app_bt_sniff_exit
+0x3e79 app_bt_enter_sniff
+0x3e7b app_ble_store_reconn_info
+0x3e7d app_bt_store_reconn_info
+0x3e7f app_lpm_mult_enable
+0x3e81 app_lpm_mult_disable
+0x3e83 hci_rx_h4
+0x3e87 hci_rx_h4_1
+0x3e8a hci_h4_parse_packet
+0x3e95 hci_h4_parse_packet_wait_len
+0x3e9c hci_h4_parse_packet_wait
+0x3ea3 h4_rx_discard_packet
+0x3eac h4_get_rx_payload_len
+0x3eb1 h4_get_rx_payload_len_acl
+0x3eb3 h4_get_tx_ptr
+0x3eb7 h4_send_packet_event
+0x3eb9 h4_send_packet_acl
+0x3eba h4_send_packet
+0x3eca h4_send_acl_trigger_clear
+0x3ecd hci_init
+0x3ed4 hci_lpm_init
+0x3edd hci_reinit
+0x3ee4 hci_init_common
+0x3eed hci_sel_init
+0x3ef4 hci_rx_packet
+0x3efe hci_rx_packet_cont
+0x3f01 uart_send_byte
+0x3f06 process_hci_cmd
+0x3f0c process_hci_cmd_cont
+0x3f15 phci_grp_vendor_specific
+0x3f23 phci_grp_vendor_enter_lpm
+0x3f26 hci_enter_lpm
+0x3f29 hci_exit_lpm
+0x3f2d phci_grp_vendor_chipid
+0x3f32 phci_grp_vendor_baud
+0x3f36 phci_grp_vendor_patch
+0x3f40 phci_grp_vendor_patch_loop
+0x3f49 phci_grp_vendor_done
+0x3f4c phci_grp_vendor_done_loop
+0x3f58 phci_grp_vendor_patch_bad
+0x3f5a phci_grp_vendor_bdaddr
+0x3f5d phci_grp_vendor_mem
+0x3f65 phci_grp_vendor_eep
+0x3f70 hci_normal_reply
+0x3f73 hci_command_complete
+0x3f79 hci_send_event
+0x3f80 hci_send_event_raw
+0x3f82 hci_send_packet
+0x3f83 hci_send_commu_ready_event
+0x3f89 hci_get_cmd_complete_ptr
+0x3f8b hci_get_payload_ptr
+0x3f8d hci_get_packet_ptr
+0x3f8e hci_get_tx_ptr
+0x3f8f calc_tx_crc16
+0x3f91 crcloop
+0x3f9b cmd_exit
+0x3f9d cmd_check_plap
+0x3fa1 cmd_pair
+0x3fa6 cmd_pair_passive
+0x3fae cmd_in_sniff
+0x3fbd cmd_exit_sniff
+0x3fbf hci_idle_dispatch
+0x3fc6 uart_wake_up
+0x3fca hid_rx_process
+0x3fd7 hid_rx_process_hid_control
+0x3fdb hid_rx_process_virtual_cable_unplug
+0x3fe2 hid_rx_process_suspend
+0x3fe3 hid_rx_process_set_report
+0x3feb hid_rx_process_handshake
+0x3ff5 hid_handshake_event
+0x3ff7 hid_rx_process_data
+0x3ffa hid_rx_process_data_hid_kb
+0x4005 hid_malloc_tx_buff
+0x400c kb_init
+0x4021 kb_check_reconn_target
+0x4024 kb_3_check_reconn_target
+0x4027 kb_init_environment
+0x4032 kb_load_eeprom_param
+0x4034 kb_init_common
+0x4055 kb_led_int
+0x4058 kb_led_cap_init
+0x405c kb_led_num_init
+0x4060 kb_led_scl_init
+0x4064 kb_led_cap_delay_timer
+0x4069 kb_led_capslock
+0x4077 kb_enble_mult_timer
+0x407d kb_auto_disable_mult
+0x4080 kb_led_cap_status
+0x4082 kb_send_process
+0x4097 kb_debug_send_keydata
+0x40aa fn_test
+0x40ac bt_send_kb_data_by_report0
+0x40bb fill_kb_send_data
+0x40be store_key
+0x40c3 not_key_status
+0x40c4 store_key_next
+0x40c7 bt_send_kb_data_by_report1
+0x40d6 fill_kb_send_report1_data
+0x40e0 init_kb_no_data_timer
+0x40e3 kb_check_no_data_timer
+0x40ea kb_disconnect
+0x40f1 bt_send_kb_data_by_report0_ptr
+0x40f8 bt_send_kb_data_by_report1_ptr
+0x40ff android_search_m_key_releas
+0x4109 ios_screenshot
+0x410d android_search_m_key
+0x4119 kb_pincode
+0x4128 kb_pincode_rtn
+0x412a kb_pincode_bksp
+0x4134 kb_pincode_data
+0x413d kb_pincode_0
+0x4143 kb_send_pin
+0x414f kb_kscan_check_if_empty
+0x4153 kb_kscan_check_ghost
+0x4159 kb_kscan_process_event
+0x416b kb_kscan_check_report_data
+0x416f kb_kscan_store_a_key_data
+0x4179 kb_kscan_check_nextevent
+0x4180 kb_kscan_prepare_send
+0x4182 kb_kscan_release_a_key_data
+0x4187 kb_kscan_find_same_key_data
+0x418c kb_kscan_check_nextevent2
+0x4191 kb_kscan_read_statekey
+0x4196 kb_clear_keys
+0x419a kb_clean_kscan_fifo
+0x41a1 kb_process_idle
+0x41a3 kb_process
+0x41ac kb_ui_check_paring_button
+0x41bb check_bb_reconn_cancel
+0x41bf kb_read_gpio
+0x41dd kb_pairing_button_check
+0x41e6 kb_process_bb_event
+0x41f4 kb_bb_event_timer
+0x41f7 kb_bb_event_100ms_loop
+0x4201 kb_bb_event_reconn_failed
+0x420c kb_bb_disconnected
+0x4214 kb_event_light_state_pairing
+0x4217 kb_event_light_state_hibernate
+0x421a kb_bb_discon_clear_stack
+0x421d kb_check_hid_handshake_timer
+0x4223 kb_bb_event_discovery_btn
+0x422a led_cap_darking
+0x422d kb_3_0_bb_event_discovery_btn
+0x423a kb_stop_discovery
+0x423e kb_start_discovery
+0x4246 kb_discovery_timeout_sleep
+0x4247 kb_process_pincode
+0x424b kb_before_hibernate
+0x4251 kb_before_hibernate_wait
+0x4254 kb_before_hibernate_cont
+0x425b kb_wake_common
+0x4268 kb_process_lpm_before
+0x426d kb_hid_connected
+0x4271 kb_bt_hid_handshake
+0x427d store_current_status
+0x4284 read_current_status
+0x4291 kb_kscan_release_foundkey
+0x4299 kb_recover_kb_down_data
+0x429c kb_kscan_fn
+0x42a1 kb_kscan_fn_loop
+0x42b0 kb_get_fn
+0x42b3 select_system_led_timer
+0x42b9 kb_current_status_regroup
+0x42bd kb_clear_fn_lock_flag
+0x42c0 kb_kscan_check
+0x42ca kb_kscan_no_data
+0x42cc kb_down_data
+0x42cf kb_clear_data
+0x42d4 kb_kscan_read_event
+0x42ea l2cap_init
+0x42eb l2cap_init_work
+0x42ef l2cap_init_wake
+0x42fa process_rx_l2cap_pkt
+0x4307 l2cap_rx_multiplexing
+0x430d l2cap_rx_multiplexing0
+0x4312 l2cap_check_map
+0x431f set_pdata_0
+0x4321 l2cap_call_proc_signal
+0x4323 l2cap_call_proc_signal0
+0x432d l2cap_call_proc_sigal_pending
+0x433c l2cap_sdp_conn_succ
+0x4348 l2cap_reset_sdp_map
+0x4359 check_l2cap_map
+0x435b check_l2cap_map_loop
+0x4360 check_l2cap_map_used
+0x4364 check_l2cap_map_used2
+0x4366 l2cap_call_proc_sdp
+0x436e ml2cap_call_proc_sdp
+0x4372 l2cap_call_proc_sdp_common
+0x4379 l2cap_call_proc_hid
+0x437b l2cap_call_proc_rfcomm
+0x4382 l2cap_call_proc_no_reply
+0x4383 l2cap_rx_reset_state
+0x4388 l2cap_process_signal_pkt
+0x4390 l2cap_process_signal_pkt_loop
+0x4398 l2cap_process_one_signal
+0x43a7 l2cap_process_one_signal_rtn
+0x43a8 l2cap_proc_signal_info_req
+0x43b3 l2cap_proc_signal_info_req_reply
+0x43b6 l2cap_proc_signal_info_req_ext
+0x43bc l2cap_proc_signal_info_req_fix
+0x43c1 l2cap_proc_signal_info_req_common
+0x43c3 ml2cap_proc_signal_info_req
+0x43d2 l2cap_proc_signal_cmd_reject
+0x43d9 l2cap_proc_signal_cmd_reject_rtn
+0x43da l2cap_proc_signal_connect_req
+0x43ee l2cap_proc_signal_connect_req_sdp
+0x43f8 store_l2cap_req_param
+0x4404 restore_l2cap_req_param
+0x4410 l2cap_proc_signal_connect_req_rfcomm
+0x441c l2cap_proc_signal_connect_req_hid_ctrl
+0x4427 l2cap_proc_signal_connect_req_hid_int
+0x4433 send_connection_pending
+0x4437 send_connection_sdp_res
+0x443b send_connection_res
+0x443d send_connection_res0
+0x444f connect_suc
+0x4454 connect_pending
+0x4459 already_connected
+0x445b connect_req_update_byte_counts
+0x445f l2cap_proc_signal_connect_req_rtn
+0x4460 l2cap_proc_signal_connect_rsp
+0x4479 l2cap_proc_signal_connect_rsp_sdp
+0x447f l2cap_proc_signal_connect_rsp_rfcomm
+0x4485 l2cap_proc_signal_connect_rsp_hid_int
+0x448b l2cap_proc_signal_connect_rsp_hid_ctrl
+0x4491 l2cap_proc_signal_config_req
+0x44a9 l2cap_proc_signal_config_req_sdp
+0x44b3 l2cap_proc_signal_config_req_hid_ctrl
+0x44bd l2cap_proc_signal_config_req_hid_int
+0x44c7 l2cap_proc_signal_config_req_rfcomm
+0x44d0 l2cap_send_config_rsp
+0x44e7 l2cap_send_config_rsp_is_sdp
+0x44e8 l2cap_check_channel_state
+0x44f2 l2cap_send_config_req_sdp
+0x44f9 l2cap_send_config_req_rfcomm
+0x4500 l2cap_send_config_req_hid_ctrl
+0x4507 l2cap_send_config_req_hid_int
+0x450d l2cap_generate_config_req
+0x4526 l2cap_generate_config_req_rfcomm
+0x4528 l2cap_generate_config_req_done
+0x4530 l2cap_proc_signal_config_req_rtn
+0x4531 l2cap_proc_signal_config_rsp
+0x454a l2cap_proc_signal_config_rsp_sdp
+0x454e l2cap_proc_signal_config_rsp_rfcomm
+0x4552 l2cap_proc_signal_config_rsp_hid_ctrl
+0x4556 l2cap_proc_signal_config_rsp_hid_int
+0x455b l2cap_proc_signal_disconnect_req
+0x4577 l2cap_proc_signal_disconnect_req_hid_ctrl
+0x457d l2cap_proc_signal_disconnect_req_hid_int
+0x4583 l2cap_proc_signal_disconnect_req_sdp
+0x4589 l2cap_disconnect_hid_control_now
+0x458b l2cap_disconnect_hid_interrupt_now
+0x458f l2cap_disconnect_sdp_now
+0x4593 l2cap_proc_signal_disconnect_req_rfcomm
+0x4599 l2cap_disconnect_rfcomm_now
+0x459b l2cap_send_disconnect_rsp_pkt
+0x45a8 l2cap_proc_signal_disconnect_req_err_rtn
+0x45aa l2cap_proc_signal_disconnect_req_rtn
+0x45ac l2cap_proc_signal_disconnect_rsp
+0x45c7 l2cap_proc_signal_disconnect_rsp_sdp
+0x45cd l2cap_proc_signal_disconnect_rsp_rfcomm
+0x45d3 l2cap_proc_signal_disconnect_rsp_hid_ctrl
+0x45d9 l2cap_proc_signal_disconnect_rsp_hid_int
+0x45df l2cap_proc_signal_disconnect_rsp_rtn
+0x45e1 l2cap_proc_signal_disconnect_rsp_err_rtn
+0x45e2 l2cap_proc_signal_echo_req
+0x45f2 l2cap_proc_signal_echo_rsp
+0x45f3 l2cap_proc_signal_info_rsp
+0x45f4 l2cap_reject_command
+0x4601 l2cap_reset_rfcomm_channel_state
+0x4606 l2cap_reset_sdp_channel_state
+0x460b l2cap_reset_hid_ctrl_state
+0x4611 l2cap_reset_hid_int_state
+0x4617 l2cap_reset_hid_disconnected
+0x4619 l2cap_disconnect_interrupt_req
+0x4623 l2cap_disconnect_control_req
+0x462c l2cap_generate_disconnect_req
+0x463a ml2cap_send_signal_connect_req
+0x464a ml2cap_send_signal_config_req
+0x4660 ml2cap_send_signal_disconn_req
+0x4673 ml2cap_send_signal
+0x467c msdp_send_req_done
+0x4684 ml2cap_rx_multiplexing
+0x468f ml2cap_call_proc_signal
+0x4699 ml2cap_proc_one_comm_loop
+0x469f ml2cap_proc_one_comm
+0x46aa ml2cap_proc_signal_connect_req
+0x46ad ml2cap_proc_signal_cmd_reject
+0x46b3 mvptr
+0x46b7 ml2cap_proc_signal_connect_rsp
+0x46c5 ml2cap_proc_signal_connect_refused_result
+0x46c7 ml2cap_proc_signal_connect_rsp_mnosucc
+0x46c9 ml2cap_proc_signal_connect_rsp_sucessful
+0x46d9 ml2cap_proc_signal_connect_rsp_sdp
+0x46df ml2cap_proc_signal_connect_rsp_rfcomm
+0x46e5 ml2cap_proc_signal_connect_rsp_hid_ctrl
+0x46eb ml2cap_proc_signal_connect_rsp_hid_int
+0x46f0 mnosucc1
+0x46f1 mnosucc
+0x46f4 ml2cap_proc_signal_config_rsp
+0x470f ml2cap_proc_signal_config_rsp_sdp
+0x4713 ml2cap_proc_signal_config_rsp_rfcomm
+0x4717 ml2cap_proc_signal_config_rsp_hid_ctrl
+0x471b ml2cap_proc_signal_config_rsp_hid_int
+0x4720 mcfrsdone
+0x4721 mcrsdone1
+0x4722 mloop2
+0x4726 mcrsdone
+0x4727 ml2cap_proc_signal_config_req
+0x4747 ml2cap_proc_signal_config_req_sdp
+0x4755 ml2cap_proc_signal_config_req_sdp_nsndreq
+0x4758 ml2cap_proc_signal_config_req_rfcomm
+0x475e ml2cap_proc_signal_config_req_hid_ctrl
+0x4764 ml2cap_proc_signal_config_req_hid_int
+0x4769 mcfgrq_done
+0x4774 mloop1
+0x477a mcrqdone
+0x477b ml2cap_proc_signal_disconn_req
+0x4795 ml2cap_proc_signal_disconn_sdp
+0x479a ml2cap_proc_signal_disconn_hid_ctrl
+0x479c ml2cap_proc_signal_disconn_hid_int
+0x479e mclsrfc
+0x47a0 mclssdp
+0x47ae ml2cap_proc_signal_disconn_rsp
+0x47c3 ml2cap_proc_signal_disconn_rsp_sdp
+0x47c6 mdisdone
+0x47ca ml2cap_proc_send_reject
+0x47d6 l2cap_get_req_id
+0x47da l2cap_get_req_id_ok
+0x47dc l2cap_malloc
+0x47e4 l2cap_malloc_loop
+0x47ec l2cap_malloc_next
+0x47f2 l2cap_malloc_rtn
+0x47f5 l2cap_malloc_fifo_out
+0x47fb l2cap_malloc_free
+0x4803 l2cap_malloc_discard
+0x480e l2cap_malloc_is_fifo_full
+0x4812 l2cap_malloc_is_fifo_nearly_full
+0x4816 l2cap_malloc_is_fifo_empty
+0x481a l2cap_malloc_fifo_get_first_ptr
+0x481d l2cap_malloc_free_loop
+0x4821 l2cap_malloc_get_full_map
+0x4826 l2cap_malloc_get_full_map_loop
+0x482c l2cap_malloc_into_fifo
+0x483a l2cap_malloc_into_fifo_no_push
+0x483d l2cap_malloc_into_fifo_loop
+0x4845 l2cap_malloc_enough
+0x484b l2cap_malloc_enough_loop
+0x4856 l2cap_malloc_enough_end
+0x485c l2cap_malloc_enough_rtn
+0x485e l2cap_malloc_signal_channel
+0x4868 l2cap_get_signal_tx_buff
+0x486a l2cap_get_signal_tx_payload
+0x486c l2cap_malloc_sdp_channel
+0x4876 l2cap_get_sdp_tx_buff
+0x4878 l2cap_get_sdp_tx_payload
+0x487a l2cap_malloc_rfcomm_channel
+0x4889 l2cap_get_rfcomm_tx_buff
+0x488b l2cap_util_pdata_to_contw
+0x488e l2cap_lpm_save_calc_len
+0x4893 l2cap_lpm_save_calc_len_loop
+0x489f l2cap_lpm_save_calc_len_end
+0x48a1 l2cap_lpm_get_wake_lock
+0x48a3 l2cap_lpm_put_wake_lock
+0x48a5 l2cap_lpm_save_txbuf
+0x48b1 l2cap_lpm_save_txbuf_loop
+0x48ba l2cap_lpm_save_txbuf_nempty
+0x48c3 l2cap_lpm_load_txbuf
+0x48cb l2cap_lpm_load_txbuf_loop
+0x48da le_secure_connection_enable
+0x48de le_secure_connection_disable
+0x48e2 le_init_conn
+0x48f5 le_init_master
+0x4902 le_init_slave
+0x4911 le_dispatch
+0x4915 le_conn_dispatch
+0x491c le_master_dispatch
+0x492f le_master_disconn
+0x4932 le_slave_dispatch
+0x4940 le_slave_match
+0x4949 le_slave_transmit_last
+0x494c le_slave_cont
+0x494f le_slave_unsync
+0x4955 le_slave_more_data
+0x495b le_disconnect
+0x495d le_disconnect0
+0x4962 le_clear_connection_info
+0x4968 le_got_first_packet
+0x4976 le_enable
+0x497d le_disable
+0x4985 le_prep
+0x498e lerx_setfreq
+0x4993 letx_setfreq
+0x4994 letx_setfreq0
+0x4996 le_setfreq
+0x49a4 le_ctf_normal
+0x49a7 le_ctf_low
+0x49aa le_ctf_test
+0x49ad le_sca_map
+0x49bd le_adv_access
+0x49c4 le_setup
+0x49ce le_setup_master
+0x49d4 le_next_adv_channel
+0x49dc le_context_nexthop
+0x49ed le_nexthop_nowrap
+0x49ef le_calc_channel_map
+0x49f4 le_count_channels_loop
+0x49f6 le_count_channels_notused
+0x49fb le_map_channel
+0x4a02 le_map_channel_next
+0x4a09 le_map_channel_cont
+0x4a0b le_map_channel_loop
+0x4a0e le_map_channel_skip
+0x4a13 le_map_channel_end
+0x4a16 le_wait_tx
+0x4a19 le_wait_master
+0x4a1c le_receive_adv
+0x4a20 le_receive_slave
+0x4a26 le_receive_packet
+0x4a27 le_receive_rxon
+0x4a33 le_receive_on_attempt
+0x4a3a le_receive_skip
+0x4a47 lerx_loop
+0x4a4b lerx_nopayload
+0x4a5a le_transmit_receive_sifs
+0x4a63 le_transmit_norx
+0x4a65 le_transmit
+0x4a6d le_transmit0
+0x4a80 letr_loop
+0x4a83 letr_nopayload
+0x4a8a le_send_adv_ind
+0x4a9b le_send_adv_direct_ind
+0x4aab le_send_adv_transmit
+0x4ab3 le_send_scan_request
+0x4ac5 le_send_scan_response
+0x4ad4 le_connect_request
+0x4adf le_con_req_hop_retry
+0x4b1e le_init_adv
+0x4b22 le_update_param
+0x4b2d le_update_param_common
+0x4b43 le_update_channel_map
+0x4b51 le_acknowledge
+0x4b61 le_ack_unenc
+0x4b66 le_check_wak
+0x4b79 le_set_enc
+0x4b7d le_clear_enc
+0x4b89 le_wait_adv
+0x4b91 le_scan
+0x4bb4 le_create_conn
+0x4bc9 le_scan_check_sender_addr_type
+0x4bce le_xtype_fifo_count
+0x4bd0 le_xtype_fifo_is_empty
+0x4bd2 le_xtype_fifo_is_full
+0x4bd4 le_xtype_fifo_is_near_full
+0x4bd6 le_xtype_fifo_in
+0x4bd8 le_prepare_tx
+0x4bde le_prepare_tx_1
+0x4be2 le_prepare_tx_shutter
+0x4be9 le_send_empty_shutter
+0x4bed le_tx_4
+0x4bf0 in_le_tx_4
+0x4bf1 le_prepare_tx_cmd
+0x4bfb le_prepare_tx_ll
+0x4c0d le_prepare_l2cap
+0x4c18 le_prepare_smp0
+0x4c26 le_prepare_att
+0x4c4b le_send_empty_le_data_pre
+0x4c4d le_send_empty_le_data
+0x4c54 le_send_connection_update_req
+0x4c56 le_send_channel_map_req
+0x4c58 le_send_terminate_ind
+0x4c5a le_send_enc_req
+0x4c6b le_send_enc_rsp
+0x4c7e le_ltk_lost
+0x4c84 le_send_start_enc_req
+0x4c86 le_send_start_enc_rsp
+0x4c8f le_send_start_enc_rsp_end
+0x4c90 le_send_start_enc_rsp_common
+0x4c92 le_send_start_enc_rsp_shutter
+0x4c97 le_send_start_enc_rsp0
+0x4c9c le_send_unknown_rsp
+0x4ca0 le_send_feature
+0x4ca4 le_send_ping_response
+0x4ca6 le_send_version_ind
+0x4caa le_send_reject_ind
+0x4cae le_send_conn_param_req
+0x4cbb le_send_smp_pairing_request
+0x4cc3 le_send_smp_pairing_response
+0x4ccd le_send_smp_pairing_response_common
+0x4cd1 le_parse_smp_pairing_request_check_irk
+0x4cda le_send_smp_pairing_confirm
+0x4ce1 le_send_smp_pairing_confirm_sc
+0x4ce8 le_send_smp_pairing_random
+0x4ceb le_send_smp_mrandom
+0x4ced le_send_smp_pairing_failed
+0x4cf2 le_send_smp_encryption_information
+0x4d01 le_send_smp_encryption_information_shutter
+0x4d10 le_send_smp_master_identification
+0x4d17 le_send_smp_master_identification_only
+0x4d19 le_send_smp_master_identification_common
+0x4d22 le_send_smp_master_identification_shutter
+0x4d27 le_send_smp_identity_information
+0x4d2d le_send_smp_identity_address_information
+0x4d32 le_send_smp_signing_information
+0x4d35 le_send_smp_security_request
+0x4d39 le_send_smp_pairing_public_key
+0x4d4e le_send_public_key_continue
+0x4d58 le_send_smp_publickey_continue_common
+0x4d5e le_send_public_key_continue2
+0x4d64 le_send_smp_pairing_dhkey_check
+0x4d69 le_send_smp_128
+0x4d6e le_send_att_error_response_notfound
+0x4d6f le_send_att_error_response
+0x4d75 le_send_att_exchange_mtu_req
+0x4d78 le_send_att_find_information_request
+0x4d7d le_send_att_find_information_response
+0x4d81 le_send_att_find_information_res_loop
+0x4d8b le_send_att_find_information_res_cont
+0x4d8e le_send_att_find_information_res_next
+0x4d91 le_send_att_find_information_res_end
+0x4d93 le_send_att_find_by_type_value_request
+0x4d9d le_start_end_handle_check_1
+0x4da4 le_start_end_handle_check_1_fail
+0x4da7 le_send_att_find_by_type_value_response
+0x4db7 le_send_att_find_by_type_value_res_primary
+0x4dbc le_send_att_find_primary_search_loop
+0x4dcc le_send_att_find_primary_search_loop1
+0x4dd0 le_send_att_error_response_notfound2
+0x4dd3 le_send_att_find_primary_search_end_start_handle_found
+0x4ddb le_send_att_find_primary_search_end_ending_handle_found
+0x4de1 le_send_att_find_primary_search_end
+0x4dec le_send_att_read_by_type_request
+0x4df4 le_send_att_read_by_type_response
+0x4e02 le_send_att_read_by_type_response_loop
+0x4e11 le_send_att_read_by_type_response_next_handle
+0x4e13 le_send_att_read_by_type_response_end
+0x4e15 le_send_att_read_by_type_res_found_next
+0x4e28 le_send_att_read_by_type_write_properties
+0x4e2f le_send_att_read_by_type_write_uuid
+0x4e3d le_send_att_read_by_type_res_not_characteristic
+0x4e3f le_send_att_read_by_type_res_not_char_loop
+0x4e45 le_check_if_name_uuid
+0x4e4d le_send_att_read_by_type_res_not_name
+0x4e4e le_send_att_read_by_type_res_not_char_common
+0x4e56 le_send_att_read_by_type_res_not_char_next
+0x4e58 le_send_att_read_request
+0x4e60 le_send_att_read_response
+0x4e66 le_send_att_read_response_common
+0x4e6e le_send_att_read_response_less
+0x4e71 le_send_att_read_response_error_insufficient_authentication
+0x4e77 le_send_att_read_blob_request
+0x4e7c le_send_att_read_blob_response
+0x4e87 le_send_att_read_blob_response_less
+0x4e8b le_send_att_read_multiple_request
+0x4e92 le_send_att_read_multiple_response
+0x4e98 le_send_att_read_multiple_response_loop
+0x4ea3 le_copy_att_value_loop_3
+0x4eab le_send_att_read_multiple_response_end
+0x4eb0 le_send_att_read_multiple_response_end_1
+0x4eb6 le_send_att_read_multiple_response_fail
+0x4eb8 le_send_att_read_by_group_type_request
+0x4ec0 le_send_att_read_by_group_type_response
+0x4ecd le_send_att_read_by_group_type_response_loop
+0x4edd le_send_att_read_by_group_type_store_write_record
+0x4ee8 le_send_att_read_by_group_type_store_record
+0x4eed le_send_att_read_by_group_type_next_handle
+0x4eef le_send_att_read_by_group_type_last_find
+0x4ef1 le_send_att_read_by_group_type_end0
+0x4ef4 le_send_att_read_by_group_type_end1
+0x4ef8 le_send_att_read_by_group_type_end_common
+0x4efb le_att_next_handle
+0x4eff le_att_check_handle_end
+0x4f03 le_att_same_type
+0x4f05 le_att_check_same_common
+0x4f0b le_att_same_uuid
+0x4f0e le_store_att_record
+0x4f13 le_send_auto_len_by_mem
+0x4f15 le_write_att_record
+0x4f1a le_write_att_record_common
+0x4f1e le_send_att_write_request
+0x4f25 le_send_att_write_response
+0x4f27 le_send_att_prepare_write_request
+0x4f29 le_send_att_continue
+0x4f2e le_send_att_notify_continue
+0x4f30 le_send_att_prepare_write_response_continue
+0x4f46 le_send_att_prepare_write_response
+0x4f59 le_send_not_fill_l2cap_len
+0x4f5e le_send_att_insert_continue
+0x4f62 le_send_att_insert_cont_next
+0x4f66 le_send_att_execute_write_request
+0x4f68 le_send_att_execute_write_response
+0x4f6a le_att_check_notification_enable
+0x4f77 le_send_att_handle_value_notification
+0x4f79 le_send_att_handle_value_indication
+0x4f7b le_send_att_handle_value_confirmation
+0x4f7d le_send_att_write_command
+0x4f7f le_send_att_signed_write_command
+0x4f81 le_send_autolen
+0x4f87 le_send_empty
+0x4f89 le_send_packet
+0x4f90 le_send_non_l2cap
+0x4f92 le_send_non_l2cap1
+0x4f93 le_send_non_l2cap2
+0x4fa0 le_send_no_txlen
+0x4fa5 le_parse
+0x4fb3 le_parse0
+0x4fcb le_parse_l2cap
+0x4fd4 le_parse_continue_att
+0x4fdb le_parse_l2cap_continue_common
+0x4fe6 le_parse_l2cap_continue_write_command
+0x4fea le_parse_l2cap_continue_write_request
+0x4fee le_parse_l2cap_continue_prepare_write_request
+0x4ffb le_parse_smp
+0x500d le_parse_att
+0x501f le_parse_connection_update_req
+0x502b le_parse_channel_map_req
+0x5033 le_parse_terminate_ind
+0x5036 le_parse_terminate_ind_common
+0x5039 le_parse_enc_req
+0x504a le_parse_enc_rsp
+0x504f le_parse_start_enc_req
+0x5054 le_parse_start_enc_rsp
+0x5059 le_parse_unknown_rsp
+0x505a le_parse_feature_req
+0x505c le_parse_feature_rsp
+0x505d le_parse_pause_enc_req
+0x5062 le_parse_pause_enc_rsp
+0x5063 le_parse_ping_req
+0x5065 le_parse_version_ind
+0x5068 le_parse_reject_ind
+0x5069 le_parse_smp_pairing_request
+0x5078 le_set_tk_0
+0x507b le_parse_smp_pairing_request_shutter
+0x507d le_genernate_tk
+0x5086 le_check_master_support_secure_connect
+0x508b le_parse_smp_pairing_response
+0x5090 le_parse_smp_pairing_confirm
+0x509a le_parse_smp_pairing_confirm_secure_passkey
+0x50a0 le_parse_smp_pairing_random
+0x50a6 le_pairing_failed
+0x50a8 le_parse_smp_pairing_failed
+0x50ab le_parse_smp_pairing_random_sc
+0x50b6 le_parse_smp_pairing_random_sc_passkey
+0x50c0 le_parse_smp_pairing_random_success
+0x50c9 le_parse_smp_public_key
+0x50d0 le_parse_smp_dhkey_check
+0x50d5 le_parse_smp_encryption_information
+0x50d7 le_parse_smp_master_identification
+0x50d8 le_parse_smp_identity_information
+0x50e0 le_parse_smp_identity_address_information
+0x50e3 le_parse_smp_signing_information
+0x50e4 le_parse_smp_security_request
+0x50e5 le_parse_att_exchange_mtu_response
+0x50e8 le_parse_att_exchange_mtu_request
+0x50eb le_parse_att_find_information_request
+0x50ee le_parse_att_find_by_type_value_request
+0x50f8 le_parse_att_read_by_type_request
+0x50fc le_get_search_handle_start_end_common
+0x5101 le_get_search_att_type
+0x5103 le_get_search_common
+0x5105 le_get_search_common2
+0x5109 le_get_search_att_uuid
+0x510c le_parse_att_read_request
+0x5110 le_parse_att_read_blob_request
+0x5114 le_parse_att_read_multiple_request
+0x511a le_parse_att_read_by_group_type_request
+0x511e le_parse_att_write_command
+0x5120 le_parse_att_write_request
+0x5123 le_parse_att_write_request_end
+0x5125 le_check_long_packet_patch
+0x512f le_parse_att_write_common
+0x513c le_parse_att_write_common0
+0x5140 le_parse_att_write_common1
+0x5142 le_parse_att_prepare_write_request
+0x5157 le_parse_att_prepare_write_request0
+0x515b le_parse_att_prepare_write_request1
+0x5169 le_parse_att_prepare_write_request_end
+0x516b le_parse_att_execute_write_request
+0x516d le_writeatt_cb
+0x5170 le_supervision_update
+0x5179 le_supervision_flush
+0x517c le_adv
+0x517d le_adv_loop
+0x5193 le_adv_not_match
+0x5199 le_receive_window_size
+0x51af le_parse_connect_req
+0x51e0 le_init_attlist_search
+0x51ea le_att_handle_inrange
+0x51f3 le_att_handle_blank
+0x51f5 le_att_get_handle_ptr
+0x51f8 le_att_get_handle_ptr2
+0x51fc le_att_get_handle_loop1
+0x5205 le_att_get_handle_ptr_found
+0x5208 le_att_get_short_uuid_ptr
+0x520c le_att_get_short_uuid_loop
+0x5217 le_att_get_handle_info_from_ptr
+0x521a le_att_get_handle_info
+0x521f le_att_get_handle_loop
+0x5228 le_att_unfind_handle
+0x522a le_att_finded_handle
+0x5234 le_modified_name
+0x5238 le_modified_name_att_list
+0x5247 le_name_length_longer_than_att
+0x524a le_modified_name_adv
+0x5257 le_modified_name_adv_and_scan
+0x526a le_modified_name_adv_and_scan_store_data
+0x5270 le_modified_name_adv_and_scan_name_overflow
+0x5272 le_modified_name_adv_loop
+0x527d le_modified_name_adv_loop2
+0x5281 le_modified_name_adv_found_name
+0x5283 memcpy_empty
+0x5287 le_lpm_set_mult
+0x528c le_lpm_set_mult_attempt
+0x529a le_lpm_lost
+0x52a0 le_clean_att_list_handle_enable
+0x52a9 le_secure_connect_sm
+0x52b8 le_sc_passkey_wait_confirm
+0x52c2 le_sc_wait_confirm_gkey
+0x52c7 le_sc_confirm_gkey_ok
+0x52ca le_sc_receive_dhkey
+0x52ce le_dhkey_ready
+0x52d2 le_dhkey_ready_common
+0x52d8 le_dhkey_check_fail
+0x52d9 le_sc_confirm_gkey_ok_passkey
+0x52da le_dhkey_check_ok
+0x52e1 le_sc_send_public_key
+0x52e4 le_sc_ready_send_pairing_confirm
+0x52e6 le_sc_send_public_key_passkey
+0x52e8 le_sc_receive_public_key
+0x52ec le_public_key_ready
+0x52f0 le_sc_wait_send_public_key
+0x52f4 le_public_key_ready_send
+0x52fa le_pairing_public_key_continue
+0x5307 le_parse_continue
+0x530c init_lmp
+0x530d init_lmp_work
+0x531b init_lmp_reinit
+0x531e parse_rx_done
+0x531f parse_lmp
+0x536b reject_unknown_packet
+0x536c reject_lmp_packet
+0x536e parse_lmp_clkoffset_req
+0x5370 parse_enc_key_size_mask_req
+0x5372 parse_lmp_set_afh
+0x537f parse_lmp_escape
+0x5391 reject_unknown_ext_packet
+0x5394 parse_lmpext_chn_classification_req
+0x5397 parse_lmpext_iocap_req
+0x539a parse_lmpext_iocap_res
+0x539c iocap_lmpext_load
+0x53a0 iocap_lmpext_common
+0x53a2 parse_lmpext_accepted
+0x53a7 parse_lmpext_not_accepted
+0x53ac parse_lmpext_accepted_ptt
+0x53b0 parse_lmpext_not_accepted_ptt
+0x53b8 parse_lmpext_pause_encrypt
+0x53bb parse_lmpext_pause_encrypt_slave
+0x53bd parse_lmpext_resume_encrypt
+0x53bf parse_lmpext_features_req
+0x53c1 parse_lmpext_features_res
+0x53c7 parse_lmpext_features_res_not_hci
+0x53cb parse_lmp_accepted
+0x53dd parse_lmp_not_accepted
+0x53eb parse_lmp_accepted_switch
+0x53ee parse_lmp_not_accepted_switch
+0x53f4 parse_lmp_accepted_hostconn
+0x53fa parse_lmp_accepted_hostconn_ctn
+0x53fe parse_lmp_not_accepted_hostconn
+0x5403 parse_lmp_accepted_inrand
+0x540a parse_lmp_accepted_enc_mode
+0x5410 parse_lmp_accepted_enc_keysize
+0x5411 parse_lmp_accepted_start_enc
+0x5419 parse_lmp_accepted_stop_enc
+0x541a parse_lmp_not_accepted_aurand_send_detach
+0x541d parse_lmp_not_accepted_inrand
+0x5423 parse_lmp_inrand_key_missing
+0x5426 parse_lmp_not_accepted_name_req
+0x5427 parse_lmp_not_accepted_simple_pairing_number
+0x542a parse_lmp_not_accepted_dhkey_check
+0x542d parse_lmp_not_accepted_unsniff_req
+0x542f parse_lmp_accepted_unsniff_req
+0x5432 parse_lmp_accepted_sniff_req
+0x543e parse_lmp_not_acdcept_sniff_req
+0x5440 parse_lmp_crypt_key
+0x5443 parse_lmp_setup_complete
+0x5449 parse_lmp_max_slot
+0x544a parse_lmp_max_slot_req
+0x5452 parse_lmp_detach
+0x5454 accept_lmp_msg
+0x5456 parse_lmp_incr_power
+0x5458 parse_lmp_decr_power
+0x545a parse_lmp_version_res
+0x545e parse_lmp_auto_rate
+0x545f parse_lmp_in_rand
+0x546a parse_lmp_inrand_res
+0x546e pop_tid_follow
+0x5472 push_tid_follow
+0x5476 parse_lmp_au_rand_moudle
+0x547b parse_lmp_au_rand
+0x5486 parse_lmp_sres
+0x548f authentication_ok
+0x5493 authentication_ok_common
+0x549d authentication_ok_conn_sm
+0x54a2 parse_lmp_comb_key
+0x54ac parse_lmp_name_res
+0x54bc parse_lmp_name_res_end
+0x54c1 parse_lmp_name_req
+0x54c5 parse_lmp_conn_req
+0x54c6 parse_lmp_timing_accuracy_req
+0x54c8 parse_lmp_features_req
+0x54ca parse_lmp_version_req
+0x54cc parse_lmp_supervision_timeout
+0x54cd parse_lmp_sniff_subrating_req
+0x54db parse_lmpext_packet_type_table_req
+0x54e6 parse_lmp_min_power
+0x54e7 parse_lmp_page_mode_req
+0x54e8 parse_lmp_page_scan_mode_req
+0x54e9 parse_lmp_slot_offset
+0x54ec parse_lmp_sniff_req_check_sniff_para
+0x54f2 parse_lmp_sniff_req
+0x5504 set_big_value_to_attempt
+0x5507 lmp_reject_sniff
+0x5509 parse_lmp_start_encryption_req
+0x550d parse_lmp_stop_encryption_req
+0x550f parse_lmp_switch_req
+0x5514 parse_lmp_switch_req_not_accept
+0x5518 parse_lmp_switch_req_clear_mark
+0x551b parse_lmp_switch_accept
+0x5521 parse_lmp_use_semi_permanend_key
+0x5522 parse_lmp_unsniff_req
+0x5527 parse_lmp_encapsulated_header
+0x5530 parse_lmp_encapsulated_header_master
+0x5533 parse_lmp_encapsulated_header_reject
+0x5535 parse_lmp_accepted_encapsulated_header
+0x5537 parse_lmp_accepted_simple_pairing_number
+0x553a parse_lmp_accepted_simple_pairing_number_common
+0x553e parse_lmp_accepted_simple_pairing_number_ssp_pin
+0x5542 parse_lmp_accepted_simple_pairing_number_passkey
+0x5548 authentication_passkey
+0x5552 authentication_passkey_end
+0x5554 parse_lmp_accepted_dhkey_check
+0x5555 pairing_success
+0x555a parse_lmp_accepted_dhkey_check_common
+0x5562 parse_simple_pairing_confirm
+0x5568 parse_lmp_encapsulated_payload
+0x556c parse_encapsulated_payload_master
+0x5579 parse_lmp_encapsulated_payload_completed
+0x557f parse_lmp_encapsulated_payload_reject
+0x5581 parse_lmp_accepted_encapsulated_payload
+0x5585 parse_lmp_encapsulated_payload_all_accepted
+0x558c parse_lmp_encapsulated_payload_all_accepted_get_passkey
+0x558e parse_lmp_encapsulated_payload_all_accepted_master
+0x558f parse_lmp_simple_pairing_number
+0x5593 parse_lmp_simple_pairing_number_master
+0x559d parse_lmp_simple_pairing_number_master0
+0x559f parse_lmp_simple_pairing_number_reject
+0x55a1 parse_dhkey_check
+0x55a5 parse_dhkey_check_master
+0x55ac number_comparison_successed
+0x55b1 parse_dhkey_check_master0
+0x55b4 parse_lmp_dhkey_check_reject
+0x55b6 number_comparison_mode
+0x55bb comparison_result
+0x55be parse_lmp_clkoffset_res
+0x55bf parse_lmp_encryption_mode_req
+0x55ca parse_lmp_features_res
+0x55cb parse_lmp_features_res_not_hci
+0x55d1 parse_lmp_send_conn
+0x55d3 parse_lmp_test_activate
+0x55d8 parse_lmp_test_control
+0x55dd parse_lmp_test_xor
+0x55f1 parse_lmp_test_control_exit
+0x55f6 parse_lmp_test_control_pattern
+0x55fd parse_lmp_test_control_loopback_nowhite
+0x55fe parse_lmp_test_control_loopback
+0x560a parse_lmp_test_control_pause
+0x5610 lmp_copy_rand
+0x5613 lmp_generate_key
+0x5615 lmp_start_encryption
+0x5618 lmp_accept_inrand
+0x561d lmp_disconnect
+0x5621 send_lmp
+0x5628 send_lmp0
+0x5655 send_lmp_error
+0x5657 send_lmp_escape
+0x5662 send_lmp_accepted
+0x5672 send_create_conn_start_l2cap_timer_sm
+0x5678 send_lmp_accept_sniff_req
+0x5679 send_lmp_not_accepted
+0x5681 send_not_accept_aurand
+0x5686 send_lmpext_accepted
+0x568f send_lmpext_not_accepted
+0x5699 send_lmp_accepted_inrand
+0x569d send_lmp_accepted_enc_mode
+0x56a4 send_lmp_accepted_enc_start
+0x56a6 send_lmp_accepted_enc_exit
+0x56a8 send_lmp_accepted_enc_key
+0x56ab send_lmp_accepted_connection
+0x56b1 send_lmp_accept_dhkey_check
+0x56b2 send_lmpext_features_res
+0x56bd send_lmpext_io_cap_res
+0x56c8 responder_iocap_keyboard_only
+0x56ce responder_iocap_display_yesno
+0x56d4 responder_iocap_no_input_no_output
+0x56da set_ssp_mode_justwork
+0x56dc set_ssp_mode_numeric_comparison
+0x56de set_ssp_mode_passkey
+0x56e0 send_lmp_io_cap_req
+0x56e5 send_lmpext_sniff_subrating_req
+0x56e6 send_lmpext_sniff_subrating_res
+0x56ef send_lmp_name_res
+0x56f7 send_lmp_name_res_offset_ok
+0x56ff send_lmp_timing_accuracy_res
+0x5704 send_lmp_clkoffset_res
+0x570a send_lmp_clkoffset_res_master
+0x570e send_lmp_version_res
+0x5713 send_lmp_features_res
+0x5718 send_lmpext_features_req
+0x5723 send_lmpext_packet_type_table_req
+0x572f ssp_enable
+0x5737 ssp_disable
+0x573f afh_init
+0x5749 afh_open_all_channels
+0x574d afh_reset_map
+0x5754 afh_clear_error_counter
+0x5757 afh_set_send_flag
+0x575b send_lmpext_pause_encryption_req
+0x575f send_lmp_detach
+0x5764 prepare_disconnect
+0x5769 send_lmp_no_payload
+0x576c send_lmp_nopayload_reply
+0x576f send_lmp_encryption_mode_req
+0x5777 send_lmp_superto
+0x577c send_lmp_name_req
+0x5782 send_lmp_test_control
+0x5786 send_lmp_test_control_loop
+0x578b send_lmp_quality_of_service_req
+0x578c send_lmp_unit_key
+0x578d send_lmp_slot_offset
+0x579e send_lmp_slot_offset_reply
+0x57a2 send_lmp_switch_req
+0x57a6 switch_on_native
+0x57a7 switch_slack
+0x57b1 send_lmp_sniff_req
+0x57b7 send_lmp_timing_accuracy_req
+0x57bc send_lmp_unsniff_req
+0x57bf send_lmp_max_slot
+0x57c4 send_lmp_max_slot_req
+0x57c9 send_lmp_inc_power
+0x57ce send_lmp_setup_complete
+0x57dd send_lmp_setup_complete_has_sent
+0x57df send_lmp_version_req
+0x57e4 send_lmp_features_req
+0x57e9 sp_master_send_io_cap_get
+0x57ee sp_master_send_io_cap_send
+0x57f2 sp_master_send_lmp_encapsulated_header
+0x57f6 sp_master_commitment_compare
+0x5800 sp_master_commitment_compare_success
+0x5804 sp_master_send_lmp_simple_pairing_number
+0x5806 sp_send_lmp_encapsulated_header
+0x5808 send_lmp_encapsulated_header
+0x5814 send_lmp_encapsulated_payload
+0x5823 sp_send_lmp_simple_pairing_comfirm
+0x5826 send_lmp_simple_pairing_comfirm
+0x582e sp_send_lmp_simple_pairing_number
+0x5830 send_lmp_simple_pairing_number
+0x583c master_sp_sm_end
+0x583d sp_aurand_send
+0x5842 master_sp_send_lmp_dhkey_check
+0x5843 sp_send_lmp_dhkey_check
+0x5845 send_lmp_dhkey_check
+0x584f send_lmp_enc_key_size_mask_res
+0x5854 send_lmp_auto_rate
+0x5855 send_lmp_clkoffset_req
+0x5856 send_lmp_quality_of_service
+0x5857 send_lmp_test_activate
+0x5858 send_lmp_comb_key
+0x5862 send_lmp_inrand
+0x5865 send_lmp_rand
+0x586d send_lmp_aurand
+0x5873 send_lmp_aurand_notpairing
+0x5874 send_lmp_aurand_common
+0x5876 send_lmp_sres
+0x5885 send_lmp_sres_master
+0x5887 send_lmp_sres_startenc
+0x588d send_lmp_sres_startenc_slave
+0x5891 send_lmp_start_encryption
+0x5898 send_lmp_stop_encryption_req
+0x589b send_lmp_encryption_key_size_req
+0x58a1 msg_send_lmp
+0x58a9 send_lmpext
+0x58b0 send_lmp_follow
+0x58b6 send_lmp_tid
+0x58b9 send_lmp_reply
+0x58bb send_lmp_request
+0x58bc send_lmp_end
+0x58c0 send_lmp_exit
+0x58c5 lmo_fifo_check
+0x58ca lmo_fifo_process
+0x58d1 lmo_fifo_process_lmo0empty
+0x58db lmo_fifo_process_lmo2to1
+0x58e1 lmo_fifo_process_lmo1_empty
+0x58ec special_tid_store
+0x58f6 tid_reply
+0x58fa tid_initiate
+0x58fe tid_check
+0x5903 tid_set_reply
+0x5907 check_localsm
+0x590a setlocalsm_master
+0x590e setlocalsm_slave
+0x5912 check_localsm_master
+0x5916 generate_random_number
+0x5917 generate_random
+0x5918 generate_random_loop
+0x591c generate_linkkey
+0x5926 process_conn_sm
+0x592a process_conn_sm_continue
+0x5946 host_create_conn_done
+0x594c host_conn_judge_encrypt
+0x5950 host_create_conn_done_wait
+0x5955 host_create_conn_auth
+0x595b host_create_conn_auth_wait
+0x595c host_create_conn_pairing
+0x5961 host_create_conn_pairing_wait
+0x5962 host_creat_conn_send_feat_ext
+0x5965 host_create_conn_send_version
+0x5968 host_creat_conn_wait_switch
+0x5970 host_create_conn_switch_accept
+0x5972 host_create_conn_send_features
+0x5975 host_create_conn_send_switch
+0x597b host_create_conn_send_conn_req
+0x5980 host_create_conn_wait_accept
+0x5986 host_create_conn_resend
+0x5988 host_create_conn_waiting
+0x5989 host_create_conn_switch
+0x5992 host_create_conn_send_setup_complete
+0x5995 host_create_conn_wait_setup_complete
+0x5999 host_create_conn_wait_setup_complete_rtn
+0x599b host_create_conn_master_detach
+0x59a0 host_create_conn_send_detach
+0x59a4 host_create_conn_auth_pair
+0x59a7 host_create_conn_sm_done
+0x59a9 host_create_conn_auth_pair_true
+0x59b5 host_create_conn_auth_pair_nokey
+0x59bc host_create_conn_auth_pair_wait
+0x59bd host_create_conn_encrypt
+0x59c1 host_create_conn_encrypt_start
+0x59c6 host_create_conn_encrypt_wait
+0x59ca host_create_conn_encrypt_wait_clear
+0x59cc host_auth
+0x59d1 remote_auth
+0x59d7 pincode_reinit
+0x59dd module_init
+0x59fa module_lpm_uart_init
+0x5a12 module_lpm_init
+0x5a13 module_gpio_init
+0x5a18 module_lpm_lock
+0x5a1c module_app_dispatch
+0x5a22 module_process_bb_event
+0x5a3e module_process_bb_event_disconned
+0x5a44 module_process_spp_connected
+0x5a4b module_spp_disconnected
+0x5a4f module_sniff_param_check
+0x5a55 module_sniff_param_check_unsniff
+0x5a5a module_process_exit_sniff
+0x5a5b module_process_setup_complete
+0x5a5c module_process_bb_even_le_disconn
+0x5a5e module_process_evt_pincode_req
+0x5a5f module_process_unsniff_accept
+0x5a62 module_process_unsniff_not_accept
+0x5a63 module_process_le_conn
+0x5a67 module_process_bb_conn
+0x5a69 module_disconn_start
+0x5a6b module_set_conn_pin_high
+0x5a6d module_conn_start
+0x5a6f module_stop_adv_discovery
+0x5a76 module_set_conn_pin_low
+0x5a78 module_process_with_credit
+0x5a7b module_process
+0x5a93 module_hci_in_excp
+0x5a96 module_hci_release_except
+0x5aa5 module_hci_dicard_packet
+0x5aa9 module_hci_dicard_bytes
+0x5aaa module_hci_cmd_control
+0x5acc module_hci_cmd_set_bt_addr
+0x5ad1 module_hci_cmd_set_le_addr
+0x5ad6 module_hci_cmd_set_visibility
+0x5adf module_start_adv_discovery_by_command
+0x5ae5 moudle_start_adv_by_command
+0x5aec module_hci_cmd_set_bt_name
+0x5af5 module_hci_cmd_set_le_name
+0x5aff module_hci_cmd_receive_spp_data
+0x5b0d module_hci_cmd_pass_init_ng_rx_len_all
+0x5b0f module_hci_cmd_spp_exut_sniff
+0x5b11 module_hci_cmd_get_current_packet_len_and_remain_len
+0x5b17 module_hci_cmd_get_current_patcket_len
+0x5b20 module_hci_command_tx_spp_tx_complete
+0x5b23 module_hci_cmd_receive_le_data
+0x5b38 module_hci_cmd_gatt_notify_seperate
+0x5b47 module_hci_cmd_gatt_notify_clear_len
+0x5b4a module_hci_cmd_gatt_notify_start_packet
+0x5b55 module_hci_cmd_gatt_notify_start_packet1
+0x5b5e module_hci_cmd_notify_start_packet_mtu23
+0x5b60 module_le_tx_update_data
+0x5b71 module_le_tx_no_continue
+0x5b78 module_le_send_att_notify_common
+0x5b8c module_le_send_non_l2cap_last
+0x5b8e module_set_le_tx_data_flag
+0x5b91 module_clear_le_tx_data_flag
+0x5b94 module_le_check_if_send_once_more
+0x5b9a module_le_send_att_insert_continue
+0x5b9e module_le_send_att_insert_cont_next
+0x5ba2 module_le_tx_update_notify_continue
+0x5bb9 module_le_send_not_fill_l2cap_len
+0x5bbe module_le_send_md_notify
+0x5bd3 module_hci_cmd_inquire_status
+0x5bd4 module_hci_cmd_set_pairing_mode
+0x5bdb module_hci_pairing_pincode_mode
+0x5bde module_hci_pairing_just_work_mode
+0x5bdf module_hci_sspairing_mode
+0x5be4 module_hci_pairing_passkey
+0x5be6 module_hci_pairing_numeric_comparison
+0x5be8 module_hci_cmd_set_pincode
+0x5bf0 module_hci_cmd_set_uart_control_mode
+0x5bf6 module_hci_cmd_set_uart_baud
+0x5bfe module_hci_cmd_set_uart_baud_ok
+0x5c02 module_hci_cmd_version_request
+0x5c06 module_hci_event_set_cmd_send_response
+0x5c0a module_hci_cmd_bt_disconnect
+0x5c0c module_hci_cmd_bt_disconnect_doing
+0x5c0e module_hci_cmd_ble_disconnect
+0x5c10 module_hci_cmd_ble_disconnect_doing
+0x5c12 module_hci_cmd_set_nvram
+0x5c19 module_hci_cmd_confirm_gkey
+0x5c24 dhkey_not_accept
+0x5c27 module_hci_cmd_spp_number_comparison_result_is1
+0x5c29 module_hci_cmd_set_credit_given
+0x5c32 module_hci_cmd_auto_adv
+0x5c38 module_hci_cmd_auto_adv_loop
+0x5c42 module_hci_cmd_auto_adv_store_adv
+0x5c4c module_hci_cmd_auto_adv_store_scan
+0x5c55 module_hci_cmd_auto_adv_store_common
+0x5c62 module_hci_cmd_auto_adv_adv_analys
+0x5c67 module_hci_cmd_power_request
+0x5c6d module_hci_cmd_power_set
+0x5c74 module_hci_cmd_passkey_entry
+0x5c7a module_hci_cmd_set_gpio
+0x5c80 module_set_gpio_input
+0x5c85 module_set_gpio_output
+0x5c8b module_hci_cmd_read_gpio
+0x5c93 module_hci_cmd_le_set_pairing_mode
+0x5ca2 module_le_set_pairing_mode_secure_justwork
+0x5ca4 module_le_set_pairing_mode_secure_numeric
+0x5ca7 module_le_set_pairing_mode_secure_passkey
+0x5ca9 module_le_set_no_pairing
+0x5caa module_le_set_noinputnooutput
+0x5cac module_le_set_pairing_mode_lagacy_just_work
+0x5cae module_le_set_pairing_mode_lagacy_passkey
+0x5caf module_le_set_displayonly
+0x5cb1 module_hci_cmd_le_set_adv_data
+0x5cb9 module_hci_cmd_le_set_scan_data
+0x5cc1 module_hci_cmd_le_send_conn_update_req
+0x5ccb module_hci_cmd_le_start_pairing
+0x5cd3 module_hci_cmd_le_confirm_gkey
+0x5cda module_hci_cmd_le_confirm_gkey_ok
+0x5cdc module_hci_cmd_le_confirm_gkey_fail
+0x5cde module_hci_event_receive_invalid_cmd
+0x5ce1 module_hci_event_receive_valid_cmd
+0x5ce4 module_hci_event_spp_connect
+0x5ce6 module_hci_event_le_connect
+0x5ce8 module_hci_event_spp_disconnect
+0x5cea module_hci_event_le_disconnect
+0x5cec module_hci_event_set_cmd
+0x5cf9 module_hci_event_receive_spp_data
+0x5d03 module_hci_event_receive_le_data
+0x5d0e module_hci_event_enter_standby_mode
+0x5d0f module_hci_event_enter_standby_mode_len0
+0x5d12 module_hci_event_status_res
+0x5d23 module_hci_read_bt_status
+0x5d30 module_hci_event_store_device
+0x5d39 module_hci_event_gkey_generate
+0x5d3f module_hci_event_invalid_packet
+0x5d41 module_hci_event_passkey_entry_mode
+0x5d43 module_hci_event_le_tk
+0x5d49 module_hci_event_le_pairing_fail
+0x5d4b module_hci_event_le_pairing_success
+0x5d4d module_hci_event_bt_pairing_fail
+0x5d4f module_hci_event_bt_pairing_success
+0x5d50 module_hci_event_pairing_completed
+0x5d57 module_hci_event_pause_enc
+0x5d59 module_hci_event_start_enc
+0x5d5a module_hci_event_enc
+0x5d60 module_hci_event_le_gkey
+0x5d66 module_hci_prepare_tx
+0x5d71 module_set_mcu_wake_pin_high_delay
+0x5d73 module_set_mcu_wake_pin_h_delay
+0x5d78 module_set_mcu_wake_pin_high
+0x5d7a module_check_mcu_wake_pin_high
+0x5d7c module_set_mcu_wake_pin_low
+0x5d7e delay
+0x5d81 module_le_receive_data
+0x5d8c module_le_receive_data_ok
+0x5d8e module_le_transmit
+0x5d90 module_le_transmit1
+0x5d94 module_hci_event_send_le_data
+0x5d98 module_set_le_rx_data_flag
+0x5d9a module_store_moule_flag
+0x5d9c module_clear_le_rx_data_flag
+0x5d9f module_exit_sniff
+0x5da3 module_bb_event_timer
+0x5da4 module_bb_event_100ms_loop
+0x5dac module_read_vdd_timer
+0x5dbd module_set_unsniff_task_flag
+0x5dc1 module_clear_unsniff_task_flag
+0x5dc5 module_control_air_flow
+0x5dca mouse_init
+0x5de5 mouse_init_environment
+0x5dea mouse_load_eeprom_param
+0x5ded mouse_dpi_init
+0x5def mouse_idle
+0x5df2 mouse_check_dpi
+0x5df5 mouse_dpi_down
+0x5df9 mouse_dpi_up
+0x5e01 mouse_modified_dpi
+0x5e0a mouse_init_common
+0x5e10 mouse_gpio_init
+0x5e24 mouse_before_hibernate
+0x5e27 mouse_process_lpm_before
+0x5e3e mouse_wheel_check
+0x5e4d mouse_t_wheel_scan
+0x5e5b p_mouse_t_wheel_scan_judge1
+0x5e5f p_mouse_t_wheel_scan_judge2
+0x5e63 p_mouse_t_wheel_scan_judge11
+0x5e65 p_mouse_t_wheel_scan_judge12
+0x5e67 p_mouse_t_wheel_scan_judge21
+0x5e69 p_mouse_t_wheel_scan_judge22
+0x5e6b p_mouse_t_wheel_scan_judge3
+0x5e74 p_mouse_t_wheel_scan_judge30
+0x5e77 p_mouse_t_wheel_scan_judge31
+0x5e7a p_mouse_t_wheel_scan_judge32
+0x5e7d p_mouse_t_wheel_scan_judge33
+0x5e80 p_mouse_wheel_t_forward
+0x5e8a p_mouse_wheel_t_back
+0x5e94 mouse_wheel_scan
+0x5ea2 mouse_wheel_scan_judge1
+0x5ea6 mouse_wheel_scan_judge2
+0x5eaa mouse_wheel_scan_judge11
+0x5eac mouse_wheel_scan_judge12
+0x5eae mouse_wheel_scan_judge21
+0x5eb0 mouse_wheel_scan_judge22
+0x5eb2 mouse_wheel_scan_judge3
+0x5ebb mouse_wheel_scan_judge30
+0x5ebe mouse_wheel_scan_judge31
+0x5ec1 mouse_wheel_scan_judge32
+0x5ec4 mouse_wheel_scan_judge33
+0x5ec7 mouse_wheel_forward
+0x5ed1 mouse_wheel_back
+0x5edb le_mouse_bb_event_write_request
+0x5ede le_mouse_bb_event_enc_info
+0x5edf mouse_hid_connected
+0x5ee2 mouse_send_process
+0x5ee9 mouse_send_data
+0x5ef2 bt_send_empty_data
+0x5ef6 p_le_send_empty_data
+0x5efa mouse_no_data_timer_init
+0x5efd mouse_le_notify_update_data
+0x5f0c mouse_fill_data_le
+0x5f11 mouse_fill_data
+0x5f14 mouse_motion
+0x5f1e sensor_motion
+0x5f36 mouse_read_sensor3610_data
+0x5f42 mouse_3610_smart_enable
+0x5f4e mouse_3610_smart_disable
+0x5f5a mouse_read_sensor_common
+0x5f61 mouse_zwheel
+0x5f67 mouse_t_zwheel
+0x5f6d mouse_check_key_gpio
+0x5f7f mouse_key
+0x5f87 mouse_sensor_sdio_low
+0x5f8e mouse_init_sunt
+0x5f90 mouse_init_p3204
+0x5f98 mouse_init_p3204_cont
+0x5f9c mouse_init_sensor_reset
+0x5fa2 mouse_init_p3610
+0x5fb0 set_sensor_reg
+0x5fbb extsign
+0x5fbf extsign_bit3
+0x5fc3 le_mouse
+0x5fd4 mouse_priority_bb_event
+0x5fe7 le_mouse_bb_event_connected
+0x5fee mouse_bb_event_pincode
+0x5ff0 mouse_bb_event_reconn_failed
+0x5ff3 mouse_bt_hid_connected
+0x5ff5 mouse_bt_event_setup_complete
+0x5ff6 mouse_bb_disconnected
+0x6000 mouse_bb_discon_clear_stack
+0x600a mouse_event_light_state_pairing
+0x600d mouse_event_light_state_hibernate
+0x6010 mouse4_0_event_bb_disconn
+0x6014 mouse_bb_event_timer
+0x6017 mouse_bb_event_100ms_loop
+0x6021 mouse_check_mouse_state_timer
+0x6027 mouse_check_hid_handshake_timer
+0x602d mouse_check_discovery_timeout_timer
+0x6034 mouse_check_direct_timeout_timer
+0x603b mouse_check_blank_data_timeout_timer
+0x6042 mouse_check_no_data_timeout_timer
+0x6048 mouse_bb_event_discovery_btn
+0x6057 mouse3_0_check_reconn_target
+0x605a mouse4_0_check_reconn_target
+0x6060 mouse4_0_no_reconn_target
+0x6062 mouse3_0_bb_event_discovery_btn
+0x6066 mouse4_0_bb_event_discovery_btn
+0x6068 mouse_bt_hid_handshake
+0x6070 mouse_check_reconn_target
+0x6074 mouse_start_discovery
+0x607a mouse_start_discovery_norandom
+0x6084 mouse_stop_discovery
+0x608f mouse_disconnect
+0x6098 eeprom_store_mouse_dpi
+0x609e eeprom_load_mouse_dpi
+0x60a4 mouse_check_mouse_statue
+0x60aa mouse_devce_led_off
+0x60b0 mouse_statue_up
+0x60ba mouse_device1_led_on
+0x60bc mouse_device2_led_on
+0x60be mouse_device3_led_on
+0x60c0 twspi_reset
+0x60d1 sensor_read
+0x60db sensor_write
+0x60e3 spi_ncs_gpio_init
+0x60e7 spi_ncs_enable
+0x60e9 spi_ncs_disable
+0x60eb twspi_write
+0x60ec twspi_read
+0x60ed read_function_aes
+0x60f1 read_function
+0x60f4 read_fuction_zero
+0x60f6 get_block_header
+0x60f7 get_block_header0
+0x6101 read_first_block
+0x6108 get_iv
+0x6114 load_storage
+0x6124 load_storage_loop
+0x612b reload_eeprom
+0x6132 reload_eeprom_loop
+0x613b loadcode
+0x6140 loadcode_lpm
+0x6150 loadcode_otp
+0x615e loadcode_spi
+0x616d loadcode_iic
+0x6178 loadcode_iic_eeprom_2k
+0x6180 loadcode_hci
+0x6186 loadcode_hci_loop
+0x6188 loadcode_iic_by_eeprom
+0x618e set_ucode_status
+0x6195 decrypt_code
+0x6198 decrypt_code_loop
+0x619b decrypt_code_skip
+0x619f load_ucode
+0x61a7 load_ucode_loop
+0x61ac spid_init
+0x61bb spid_reset
+0x61c1 spid_write_reg
+0x61c9 spid_read_reg
+0x61ca spid_read_regs
+0x61d3 wait_spid_done
+0x61d9 spid_init_flash
+0x61e2 spid_unlock_flash
+0x61eb spid_write_flash
+0x61fb spid_read_flash
+0x6208 spi_read_flash_wait
+0x621d iicd_init_12m
+0x6224 wait_iicd_done
+0x6227 iicd_read_data
+0x6233 set_eeprom_size_2k
+0x6236 clear_eeprom_size_2k
+0x6239 iicd_read_eep_data_size_2k
+0x623d iicd_read_eep_size_2k_lcadcode
+0x6240 iicd_read_eep_size_2k
+0x6245 iicd_read_eep_data
+0x624c iicd_read_eep
+0x6254 iicd_read_eep_common
+0x626a iicd_read_eep_load_code_size_2k
+0x626f iicd_write_eep_data
+0x6271 iicd_write_ota_data
+0x6277 iicd_write_eep_loop
+0x6287 iicd_eep_transparency
+0x629a iicd_eep_deal_short_packet
+0x629f iicd_write_eep_size_2k
+0x62a8 iicd_write_eep
+0x62b7 iicd_write_eep_common
+0x62c4 otp_enable_chgpump
+0x62c7 otp_disable_chgpump
+0x62c9 otp_set_addr
+0x62cd otp_write
+0x62cf otp_program
+0x62d2 otp_program_bit
+0x62f1 otp_skip_0
+0x62fa otp_ce
+0x6300 otpd_read_init
+0x630a otpd_wait_end
+0x630d otpd_read_data
+0x6312 otpd_read_code
+0x631c uartd_prepare_tx
+0x631f uartd_send
+0x6322 uartd_rxdone
+0x6325 uart_set_baud_by_mem
+0x6328 uart_copy_tx_bytes_fast
+0x632a uart_copy_tx_bytes_fast_loop
+0x632f uart_copy_tx_bytes_fast_loop_four
+0x6335 uart_tx_8_bytes
+0x6338 uart_tx_4_bytes
+0x633b uart_copy_tx_bytes
+0x633d uart_copy_tx_bytes_loop
+0x6341 uart_copy_rx_bytes_fast
+0x6343 uart_copy_rx_bytes_fast_loop
+0x6348 uart_copy_rx_bytes_fast_loop_four
+0x634e uart_rx_8_bytes
+0x6351 uart_rx_4_bytes
+0x6354 uart_copy_rx_bytes
+0x6356 uart_copy_rx_bytes_loop
+0x635a check_51cmd_update_device_record
+0x6361 write_device_record
+0x6365 write_device_loop_find
+0x6371 write_device_loop_find0
+0x6375 set_index_finded_device
+0x637b set_index_find_device_master_addr
+0x6380 store_rec_data_common
+0x6383 set_index_finded_device_ble_mode
+0x6387 set_index_finded_device_irk
+0x6389 store_ble_rec_data_common
+0x638b set_index_finded_device_ediv
+0x638e nvram_find_addr_from_bd_list
+0x6393 find_addr_from_bd_list_ble_mode
+0x639c find_addr_from_bd_list_static_addr
+0x639f find_addr_from_bd_list_random_non_resolvable_private_address
+0x63a1 find_addr_from_bd_list_random_addr
+0x63a3 find_addr_from_bd_list_spp_mode
+0x63a7 find_addr_from_bd_list_common
+0x63af nvram_find_addr_from_list
+0x63bf nvram_find_addr_from_list_compare
+0x63c1 find_master_addr_from_list_compare
+0x63c6 find_addr_from_list_compare_ble_mode
+0x63c9 find_irk_form_list_compare
+0x63db genernate_master_macaddress
+0x63e4 find_ediv_form_list_compare
+0x63f3 check_nvram
+0x63f9 init_device_list
+0x63fd init_device_list_loop
+0x6402 load_device_list
+0x640a clear_key_exists
+0x640c load_device_list_mode_4
+0x6418 load_device_list_mode_4_shutter
+0x641c load_device_list_mode_4_shutter_label
+0x642b clear_ltk_exists_iphone_lost_ltk
+0x642c clear_ltk_exists
+0x642e eeprom_store_le_reconn_info
+0x6432 eeprom_store_bd_reconn_info
+0x6435 eeprom_store_reconn_info
+0x643f eeprom_store_rec_4_mode
+0x6441 eeprom_load_reconn_info
+0x644d eeprom_load_reconn_bdaddr
+0x6451 eeprom_load_rec_3_mode
+0x6453 eeprom_load_rec_4_mode
+0x6455 eeprom_erase_reconn_info
+0x645b eeprom_load_last_record_index
+0x645f eeprom_store_last_record_index
+0x6463 eeprom_store_remote_bdaddr
+0x6469 eeprom_store_remote_addr_unfind
+0x6472 eeprom_store_le_local_addr
+0x6476 eeprom_load_le_loacal_addr
+0x647a eeprom_load_remote_bdaddr
+0x6483 eeprom_linkkey_addr
+0x6489 eeprom_store_le_ltl
+0x648b eeprom_store_link_key
+0x648c eeprom_store_link_key_common
+0x6490 eeprom_load_ltk_key
+0x6492 eeprom_load_link_key
+0x6493 eeprom_load_link_key_common
+0x6497 eeprom_load_bdaddr_list
+0x649b find_addr_from_bd_list
+0x64a1 find_addr_from_list
+0x64b1 check_link_key_load
+0x64b7 check_ltk_load
+0x64bb find_addr_from_list_compare
+0x64c0 enable_usr
+0x64c2 gpio_set_wake_by_current_state
+0x64c7 gpio_set_wake
+0x64d2 gpio_clr_wake
+0x64dd gpio_config_input_nowake
+0x64df gpio_config_input
+0x64e0 gpio_config_input_without_wake
+0x64e8 gpio_config_output
+0x64ea gpio_config_output0
+0x64ed gpio_common
+0x64f3 gpio_check_active
+0x64f5 gpio_get_bit
+0x64f6 get_bit_common
+0x64fb gpio_get_bit_reverse
+0x64fd gpio_out_inactive
+0x64ff gpio_out_active
+0x6500 gpio_out_flag
+0x6503 gpio_out
+0x6504 gpio_set_bit
+0x6509 gpio_set_before_lpm_common
+0x6549 neglect2_from_6_pin
+0x654b neglect4_from_9_pin
+0x654d neglact4_from_23_pin
+0x654f neglact2_form_25_pin
+0x6551 neglact2_form_27_pin
+0x6553 neglact2_form_2_pin
+0x6555 neglact_1_pin
+0x6557 neglact_4_pin
+0x6559 neglect_2_pin
+0x655a neglect_pin_loop
+0x655e gpio_cfg_uart_tx_output
+0x6561 gpio_pu_uart_tx
+0x6564 gpio_rx_config_input_with_pu
+0x656a gpio_uart2gpio
+0x656e gpio_check_uart_state
+0x6571 load_chip_option
+0x6577 adc_init_data
+0x6584 adc_init_data_vinlpm
+0x658d adc_check_data_vinlpm
+0x6591 adc_check_2v_vinlpm
+0x6595 set_vdd_reference_voltage_1v
+0x6598 adc_init_data_hvin
+0x65a1 adc_check_data_hvin
+0x65a5 adc_check_1v_hvin
+0x65a9 set_vdd_reference_voltage_4v
+0x65ac adc_init_data_io
+0x65b5 adc_check_data_io
+0x65b9 adc_check_0_5v_io
+0x65bd set_vdd_reference_voltage_0_5v
+0x65c0 adc_set_mode
+0x65c5 adc_check_vinlpm
+0x65c7 adc_check_hvin
+0x65c9 adc_check_gpio
+0x65cd read_adc
+0x65de vdd_calculate_by_mode
+0x65e5 vdd_calculate_vinlpm
+0x65e9 vdd_calculate_hvin
+0x65ed vdd_calculate_io
+0x65f1 vdd_calculate
+0x65fa vdd_calculate2
+0x65fe vdd_calculate1
+0x6607 rfcomm_init
+0x6611 rfcomm_init_spp
+0x661b rfcomm_init_spp_with_credit
+0x661d set_cr_bit
+0x661f rfcomm_calculate_fcs_sabm
+0x662b rfcomm_calculate_fcs_ua
+0x6634 rfcomm_calculate_fcs_dlci0
+0x6638 rfcomm_calculate_fcs_dlci0_res
+0x663a rfcomm_save_fcs_uih
+0x6649 caculate_uihdata_fcs
+0x6655 caculate_fcs
+0x6662 mod2div
+0x6666 mod2div_loop
+0x666b mod2div_not_enough_reduction
+0x6675 mod2div_end
+0x6677 get_rfcomm_snd_adss
+0x6678 dlci_to_address_cmd
+0x667e channel_to_dlci
+0x6682 rfcomm_rx_process_dlci0_sabm
+0x668b rfcomm_rx_process_dlci0_ua
+0x668f rfcomm_rx_process
+0x6694 rfcomm_rx_process_remote_page
+0x669a parse_dlci0_rp
+0x66a2 parse_dlci0_rp_uih
+0x66ac parse_dlci0_rp_uih_pn_cmd
+0x66ae parse_dlci0_rp_uih_pn_cmd_spp
+0x66b4 parse_dlci0_rp_uih_pn_res
+0x66b6 parse_dlci0_rp_uih_pn_res_common
+0x66b8 get_rfcomm_param_modem_status
+0x66bf get_rfcomm_head_struct
+0x66c5 get_rfcomm_current_length
+0x66ca get_rfcomm_uih_head_struct
+0x66d2 get_param_payload_ptr
+0x66d5 get_rfcomm_length_common
+0x66de get_rfcomm_prarmer_negotiation
+0x66ed parse_dlci0_rp_uih_ms_cmd
+0x66ef parse_dlci0_rp_uih_ms_cmd_spp
+0x66f9 parse_dlci0_rp_uih_ms_res
+0x6700 parse_dlci0_rp_uih_ms_res_spp
+0x6704 parse_dlci0_rp_uih_cmd_port
+0x6720 parse_uih_rp
+0x6721 parse_uih_rp_spp
+0x672a parse_uih_rp_spp_ua
+0x672e parse_uih_rp_spp_sabm
+0x6740 parse_uih_spp_uih_credits
+0x6748 parse_uih_spp_uih
+0x6749 parse_uih_spp_uih_cont
+0x674d parse_uih_rp_spp_disconn_send_event
+0x674f parse_uih_rp_spp_disconn
+0x6755 rfcomm_rx_process_reconn
+0x675b parse_dlci0_reconn
+0x6762 parse_dlci0_reconn_uih
+0x676b parse_dlci0_reconn_uih_pn_cmd
+0x6772 parse_dlci0_reconn_uih_pn_cmd_spp
+0x6776 parse_dlci0_reconn_uih_ms_cmd
+0x677d parse_dlci0_reconn_uih_ms_cmd_spp
+0x6786 parse_dlci0_reconn_uih_ms_res
+0x678c parse_dlci0_reconn_uih_ms_res_spp
+0x6790 parse_uih_reconn
+0x6796 parse_uih_reconn_spp
+0x679b parse_uih_reconn_spp_ua
+0x679f parse_uih_reconn_spp_sabm
+0x67a0 parse_uih_reconn_spp_disconn
+0x67a1 rfcomm_rx_process_end
+0x67a2 rfcomm_send_more_pkt
+0x67a6 rfcomm_send_more_pkt_msc_cmd_spp
+0x67ab rfcomm_send_more_pkt_msc_cmd_spp0
+0x67b3 rfcomm_send_sabm
+0x67c1 rfcomm_send_ua
+0x67d0 rfcomm_send_param_neg_cmd
+0x67ed rfcomm_send_param_neg_res
+0x680a rfcomm_send_modem_status_cmd
+0x6820 rfcomm_send_modem_status_res
+0x6838 rfcomm_send_uih_without_payload
+0x6853 rfcomm_increase_credit_given
+0x685d spp_process_rx_data
+0x685f spp_tx_rfcomm_packet
+0x686a ssp_tx_rfcomm_from_uart
+0x6872 ssp_tx_rfcomm_from_uart_without_credit
+0x6877 ssp_tx_rfcomm_from_uart_common
+0x687f ssp_tx_rfcomm_from_uart_common0
+0x68aa ssp_tx_write_length
+0x68b3 ssp_tx_write_long_packet
+0x68bc ssp_tx_write_given_credit
+0x68c0 scheduler_process
+0x68d4 scheduler_process0
+0x68d8 scheduler_tx_disconnect_hid
+0x68dc scheduler_tx_l2cap_pkt
+0x68f9 scheduler_tx_l2cap_start_pkt
+0x6907 scheduler_tx_l2cap_last_pkt
+0x6909 scheduler_tx_l2cap_pkt_end
+0x690d scheduler_start_upper_sm
+0x6911 scheduler_start_upper_sm_hid
+0x6913 process_upper_sm
+0x6915 process_upper_sm_remote_page
+0x6918 process_upper_sm_rp_wait
+0x6919 process_upper_sm_reconn
+0x6939 process_upper_sm_reconn_wait
+0x693a process_upper_sm_reconn_sdp_conn
+0x6940 process_upper_sm_reconn_sdp_cfg
+0x694a process_upper_sm_reconn_ss_spp
+0x694f process_upper_sm_reconn_sdp_disconn
+0x6952 process_upper_sm_reconn_hid_ctrl_conn
+0x6958 process_upper_sm_reconn_hid_ctrl_cfg
+0x695e process_upper_sm_reconn_hid_int_conn
+0x6964 process_upper_sm_reconn_hid_int_cfg
+0x696a process_upper_sm_reconn_rfcomm_conn
+0x6970 process_upper_sm_reconn_rfcomm_cfg
+0x6976 process_upper_sm_reconn_rfcomm_sabm
+0x697c process_upper_sm_reconn_spp_cmd_pn
+0x6982 process_upper_sm_reconn_spp_sabm
+0x698d process_upper_sm_reconn_spp_cmd_ms
+0x6993 process_upper_sm_reconn_sdp_conn_wait
+0x6997 process_upper_sm_reconn_sdp_cfg_wait
+0x699a process_upper_sm_reconn_ss_spp_wait
+0x699f process_upper_sm_reconn_sdp_disconn_wait
+0x69a5 process_upper_sm_reconn_hid_ctrl_conn_wait
+0x69a9 process_upper_sm_reconn_hid_ctrl_cfg_wait
+0x69ad process_upper_sm_reconn_hid_int_conn_wait
+0x69b1 process_upper_sm_reconn_hid_int_cfg_wait
+0x69b6 process_upper_sm_reconn_rfcomm_conn_wait
+0x69ba process_upper_sm_reconn_rfcomm_cfg_wait
+0x69be process_upper_sm_reconn_rfcomm_sabm_wait
+0x69c3 process_upper_sm_reconn_spp_cmd_pn_wait
+0x69c7 process_upper_sm_reconn_spp_sabm_wait
+0x69cb process_upper_sm_reconn_spp_cmd_ms_wait
+0x69ce process_upper_sm_reconn_setup_hid
+0x69d0 process_upper_sm_reconn_setup_rfcomm
+0x69d2 process_upper_sm_reconn_setup_spp
+0x69d4 process_upper_sm_reconn_termination
+0x69d6 upper_sm_send_sdp_conn
+0x69de upper_sm_send_sdp_cfg
+0x69e4 upper_sm_send_sdp_disconn
+0x69ef upper_sm_send_ss_spp
+0x69f4 upper_sm_send_rfcomm_conn
+0x69fc upper_sm_send_rfcomm_cfg
+0x6a02 upper_sm_send_hid_ctrl_conn
+0x6a0a upper_sm_send_hid_ctrl_cfg
+0x6a10 upper_sm_send_hid_int_conn
+0x6a18 upper_sm_send_hid_int_cfg
+0x6a1e upper_sm_send_rfcomm_sabm
+0x6a26 upper_sm_send_spp_cmd_pn
+0x6a2d upper_sm_send_spp_sabm
+0x6a38 upper_sm_send_spp_cmd_ms
+0x6a3e sdp_process
+0x6a53 servicesearch_req
+0x6a73 servicesearch_req_loop
+0x6a76 servicesearch_req_blank
+0x6a7c patch_serviceattribute_req
+0x6a89 patch_serviceattribute_isnot_wholerangle
+0x6a8c patch_serviceattribute_judge_wholerangle
+0x6a96 patch_serviceattribute_judge_wholerangle_false3
+0x6a98 patch_serviceattribute_judge_wholerangle_false2
+0x6a9a patch_serviceattribute_judge_wholerangle_false1
+0x6a9c patch_serviceattribute_req_loop
+0x6a9f patch_serviceattribute_req_range_id
+0x6aa5 patch_serviceattribute_req_range_id_increase
+0x6aae patch_serviceattribute_req_range_id_finish
+0x6ab1 patch_serviceattribute_req_one_id
+0x6ab6 patch_serviceattribute_req_check_next_id
+0x6abd patch_answer_handle_attributelist_next
+0x6acf patch_answer_handle_attributelist_notfound
+0x6ad2 answer_handle_attributelist_end
+0x6af2 serviceattribute_req_all
+0x6aff continue_zero
+0x6b02 continue_one_byte
+0x6b06 continue_two_byte
+0x6b0a continue_end
+0x6b2b fisrt_fragment
+0x6b2f parlength_continue_byte
+0x6b32 parlength_continue_byte_end
+0x6b38 fragment_sdp
+0x6b46 answer_attributelist_full_loop
+0x6b51 last_frag_continue
+0x6b53 sdp_frag_end
+0x6b5d patch_servicesearchattribute_req
+0x6b68 patch_servicesearchattribute_req_loop
+0x6b6a patch_servicesearchattribute_req_uuid
+0x6b73 patch_servicesearchattribute_req_search
+0x6b78 patch_answer_attributelist_next
+0x6b83 patch_answer_attributelist_attrib_loop
+0x6b86 patch_answer_attributelist_notfound
+0x6b88 patch_servicesearchattribute_req_all
+0x6b9f patch_servicesearchattribute_req_all_continue
+0x6bae patch_answer_attributelist_end
+0x6bd2 patch_no_attribute_return
+0x6bdf servicesearchattribute_req_attributelist_loop
+0x6be5 servicesearchattribute_req_check_next_ctn
+0x6bed servicesearchattribute_req_check_handle
+0x6bf2 servicesearchattribute_req_attributelist_loop_continue
+0x6bf8 servicesearchattribute_req_check_next_ctn_continue
+0x6c00 servicesearchattribute_req_check_handle_continue
+0x6c05 servicesearchattribute_req_next_handle
+0x6c14 servicesearchattribute_req_next_handle_continue
+0x6c26 answer_attributelist_with_ctn_bytes
+0x6c28 answer_attributelist_calc_attribute_length
+0x6c61 answer_attributelist_with_ctn_bytes_continue
+0x6c63 answer_attributelist_calc_attribute_length_continue
+0x6c85 answer_attributelist_with_ctn_end
+0x6ca4 answer_attributelist_end_long
+0x6ccc answer_attributelist_end_long_continue
+0x6cea patch_sdp_data_len
+0x6cf3 patch_sdp_data_len_6
+0x6cf5 patch_sdp_get_data_6
+0x6cfa patch_sdp_get_data_6_8bit
+0x6cfd patch_sdp_get_data_6_16bit
+0x6d01 sdp_send_spp_request
+0x6d18 servicesearchattribute_res
+0x6d1c servicesearchattribute_res_spp
+0x6d25 srchfail
+0x6d26 find_rfcomm_channel_number
+0x6d29 find_rfcomm_channel_number_loop
+0x6d2f find_rfcomm_channel_number_find_adl
+0x6d30 find_rfcomm_channel_number_loop2
+0x6d36 find_rfcomm_channel_number_find_rfcomm
+0x6d3a sdp_invalid_service_record_handle
+0x6d3d sdp_invalid_pdu_size
+0x6d40 sdp_insufficient_resource
+0x6d43 sdp_invalid_reqest_syntax
+0x6d45 sdp_error_response
+0x6d4f ask_serviceclassid
+0x6d55 classidloop
+0x6d5d skip2bytes
+0x6d66 frstbwrong
+0x6d69 scndbwrong
+0x6d72 cmp032
+0x6d75 cmp016
+0x6d77 cmpuuid
+0x6d7b uuidsize
+0x6d98 wrong12b
+0x6d99 wrong12b1
+0x6d9d chck12dn
+0x6d9f loopornot
+0x6da4 asksrv_error
+0x6da6 dataelementtype6
+0x6db4 dsize32
+0x6db6 dsize16
+0x6db9 dsize
+0x6dbb dsize_error
+0x6dbd empth_sa_rsp
+0x6dc0 empty_ssa_rsp
+0x6dc2 empty_response
+0x6dd2 fullsearch
+0x6dd6 outempty
+0x6dd8 sdp_data_len
+0x6de0 sdp_data_len_rtn
+0x6de2 sdp_data_len_1
+0x6de5 sdp_data_len_5
+0x6de7 sdp_data_len_6
+0x6dea sdp_get_data
+0x6df1 sdp_get_data_1
+0x6df4 sdp_get_data_1_loop
+0x6df9 sdp_get_data_6
+0x6dfe sdp_get_data_6_8bit
+0x6e00 sdp_get_data_6_16bit
+0x6e03 sdp_data_size
+0x6e06 sdp_data_size_loop
+0x6e09 search_uuid
+0x6e10 search_uuid_next
+0x6e14 search_uuid_loop
+0x6e18 search_uuid_not_found
+0x6e1d search_uuid_nomatch
+0x6e20 search_handle
+0x6e24 search_handle_loop
+0x6e2e search_attrib
+0x6e32 search_attrib_next
+0x6e35 search_attrib_loop
+0x6e3d search_attrib_found_uuid
+0x6e43 search_attrib_loop_attribs
+0x6e4f search_attrib_end
+0x6e52 search_handle_attrib
+0x6e56 search_handle_attrib_next
+0x6e60 search_handl_attrib_found_handle
+0x6e62 search_handle_attrib_loop_attribs
+0x6e6c search_handle_attrib_end
+0x6e6e function_g2
+0x6e86 function_f6_eb
+0x6e96 get_r
+0x6e9a function_f6_ea
+0x6eae function_f5
+0x6ec0 function_f5_common
+0x6ed2 store_addr_common_b
+0x6ed7 store_addr_common_a
+0x6edc function_f4_ca
+0x6ee7 function_f4_cb
+0x6ef2 function_aes_cmac
+0x6ef7 function_ceil16
+0x6f05 function_aes_cmac_set_flag_0_balnk
+0x6f08 function_aes_cmac_set_flag_0
+0x6f09 function_aes_cmac_set_flag_0_common
+0x6f13 function_aes_cmac_aes
+0x6f16 function_aes_cmac_aes_loop
+0x6f1c function_aes_cmac_aes_loop_end
+0x6f24 load_inverse_result
+0x6f28 store_inverse_k
+0x6f2a inverse_k
+0x6f2d inverse_memdat
+0x6f31 bn_lshift_0_inverse
+0x6f3b function_aes_cmac_k1_inverse
+0x6f3c function_aes_cmac_inverse_common
+0x6f40 function_aes_cmac_k2_inverse
+0x6f42 function_aes_cmac_generate_subkey
+0x6f4a function_aes_cmac_k1
+0x6f54 function_aes_cmac_k1_0
+0x6f55 function_aes_cmac_k2
+0x6f5e function_aes_cmac_xor_rb
+0x6f5f function_aes_cmac_xor_rb_loop
+0x6f65 function_aes_cmac_xor_loop_common
+0x6f69 function_aes_cmac_padding
+0x6f6d function_aes_cmac_padding_loop
+0x6f72 function_aes_cmac_padding_loop2
+0x6f75 function_aes_cmac_padding_beq_length
+0x6f76 function_aes_cmac_padding_common
+0x6f78 function_aes_cmac_padding_big_length
+0x6f7a generate_kinit
+0x6f7e function_e21
+0x6f8d function_e22
+0x6f93 function_e22_pin_init
+0x6f94 function_e22_genx_pin
+0x6f97 function_e22_genx_loop
+0x6fa1 function_e22_genx_end
+0x6fad function_e1
+0x6fb0 function_e3
+0x6fb7 function_hash
+0x6fcd function_ar
+0x6fd6 function_ar_loop
+0x6fde function_ar_original
+0x6ff4 key_scheduling
+0x6ffa key_rotateloop
+0x7005 key_select_octet_loop
+0x700a key_select_octet_nwrap
+0x7014 bias_round_key_loop
+0x701b key_sched_zero
+0x701d create_byte_16_loop
+0x7025 xor_mod32
+0x7026 xor_mod32_ar2
+0x7029 xor_mod32_loop
+0x702f xor_mod32_invert
+0x7032 xor_even
+0x7038 el_boxes
+0x703b el_box_loop
+0x7041 e_boxes
+0x7047 pht
+0x704a pht_loop
+0x7056 permute
+0x7065 permute_exchange
+0x7066 permute_loop
+0x7075 add16
+0x7077 xor16
+0x7078 xor_add16
+0x7079 xoradd_loop
+0x707e xoradd_add
+0x707f xoradd_store
+0x7084 function_expand
+0x708a expand_12
+0x708b expand_cont
+0x708f key_offset
+0x709e key_addxor
+0x709f key_addxor_loop
+0x70a3 key_add
+0x70a5 key_high
+0x70a6 key_xor
+0x70a7 key_store
+0x70ab copy_aco
+0x70b0 concatenate_temp24
+0x70b1 concatenate_temp16
+0x70b4 loop1
+0x70b5 generate_stk
+0x70ba authenticate_rconfirm
+0x70bd authenticate_mconfirm
+0x70c2 generate_confirm
+0x70c5 generate_mrand
+0x70c8 generate_sk
+0x70d1 first_block_counter
+0x70d3 first_block_data
+0x70d4 first_block
+0x70e7 generate_mic
+0x70f6 generate_mic_loop
+0x70fb generate_mic_end
+0x70ff aes_crypt_data
+0x7109 le_encrypt
+0x7122 le_decrypt
+0x7127 le_dec_cont
+0x7145 wait_aes
+0x7147 do_aes_ocb
+0x714a do_aes_cbc
+0x714d do_aes_ctr
+0x7150 aes_init
+0x7153 function_s1
+0x7168 function_c1
+0x716f function_c1_master
+0x717f function_c1_irat
+0x7184 function_c1_loop1
+0x7197 padding_data
+0x719c padding_loop
+0x71a1 aes_load_data
+0x71a2 load_data_loop
+0x71a6 load_data_padding
+0x71ab aes_load_xor
+0x71ad load_key
+0x71af load_data128
+0x71b0 load_regext
+0x71b1 load_regext_loop
+0x71b6 load_sk
+0x71b8 clear_hidata
+0x71ba aes_clear_data
+0x71bb aes_clear
+0x71bc clear_loop
+0x71bd clear_data_rest
+0x71c0 store_aes_result
+0x71c2 send_aes_result_loop
+0x71c7 store_enc_data
+0x71cd store_enc_loop
+0x71d5 store_enc_byte
+0x71d9 compare_res
+0x71db compare_res_loop
+0x71e2 enable_authrom
+0x71e6 disable_authrom
+0x71ea init_memp
+0x7241 init_memp_256
+0x7293 shutter_init
+0x72b8 shutter_le_hard_switch_power_on_signal
+0x72bd in_poweron_hard_switch_led
+0x72c0 shutter_le_soft_switch_power_on_signal
+0x72cd shutter_le_adv_interval_set
+0x72d2 shutter_updata_mac
+0x72d6 shutter_byteswap
+0x72e5 shutter_le_fast_advertise
+0x72ec in_shutter_skip_set
+0x72ef shutter_le_scale_lpm_lock
+0x72f4 scale_process_bb_event
+0x72fd shutter_le_bb_event_timer
+0x72fe shutter_le_bb_event_100ms_loop
+0x730c shutter_conn_update_timer
+0x7313 shutter_app_updata_le_param_timer
+0x731c shutter_app_updata_le_param
+0x731f shutter_le_shutter_fast_adv_timer
+0x732a in_is_connected
+0x732c shutter_le_sleep_timer
+0x7334 scale_process_le_conn
+0x734c scale_process_le_discon
+0x735f shutter_le_tx_buff_inuse
+0x7361 shutter_le_check_tx_buff
+0x7363 shutter_le_tx_buff_unuse
+0x7365 shutter_le_discovery_timeout_sleep
+0x7366 shutter_le_sleep_req_hibernate
+0x7367 shutter_le_sleep_req_ok
+0x7369 shutter_le_sleep_enter
+0x736d shutter_le_sleep_clr
+0x7371 scale_process
+0x7375 shutter_le_parse_att_exchange_mtu_request
+0x7378 shutter_le_parse_att_exchange_mtu_request_save
+0x737a scale_process_idle
+0x737c shutter_le_before_hibernate
+0x7380 in_enter_hibernate
+0x7382 shutter_ui_led_init
+0x7386 in_lp1
+0x738c in_lp1_end
+0x738d shutter_ui_led_init_end
+0x738e shutter_ui_led_send
+0x73a3 shutter_ui_led_send_end
+0x73a4 shutter_ui_led_off
+0x73a5 shutter_key_init
+0x73aa shutter_key_lp1
+0x73ae shutter_key_init_end
+0x73af shutter_shutter_scan_key
+0x73b2 in_scan_key_lp1
+0x73c5 shutter_le_key_process
+0x73df shutter_le_key_lp1
+0x73f5 in_le_key_process_end
+0x73f9 shutter_le_send_key_data
+0x7404 in_le_send_lable
+0x740d in_le_send_lp1
+0x7419 in_le_key_is_release
+0x7423 in_le_send_key0_press
+0x7427 in_le_send_key1_press
+0x742b in_le_send_key2_press
+0x742f in_le_send_key3_press
+0x7433 in_le_send_key4_press
+0x7437 in_le_send_key5_press
+0x743b in_le_send_key0_rel
+0x743f in_le_send_key1_rel
+0x7443 in_le_send_key2_rel
+0x7447 in_le_send_key3_rel
+0x744b in_le_send_key4_rel
+0x744f in_le_send_key5_rel
+0x7453 shutter_le_disble_key_led
+0x7457 shutter_le_key_led_index
+0x745b in_le_light_led
+0x745c in_le_key_led_0
+0x745e in_le_key_led_1
+0x7460 in_le_key_led_2
+0x7462 in_le_key_led_3
+0x7464 shutter_ui_power_timeout_timer
+0x746c shutter_ui_button_timeout_timer
+0x7472 shutter_shuuter_led_on
+0x7475 shutter_bb_event_button_up
+0x7478 in_power_release
+0x747a shutter_evt_button_long_pressed
+0x747e shutter_shutter_power_on_off
+0x7481 shutter_le_power_off
+0x7487 shutter_shutter_power_off_end
+0x748a shutter_shutter_power_off_signal
+0x748c shutter_le_process_lpm_before
+0x7491 in_shutter_process_lpm_before_lp1
+0x7495 shutter_le_process_lpm_before_end
+0x7496 shutter_le_queue_init
+0x749b shutter_le_queue_clear
+0x749c shutter_le_queue_put
+0x74ab shutter_le_queue_increase
+0x74b2 shutter_le_queue_put_end
+0x74b4 shutter_le_queue_get
+0x74c1 shutter_le_queue_read_point
+0x74c7 shutter_le_packet_interval_set
+0x74ca shutter_le_send_packet
+0x74d0 shutter_le_shutter_send_keydata
+0x74d5 shutter_le_tx_indication
+0x74d7 shutter_le_tx_notification
+0x74dc shutter_le_tx_common
+0x74de shutter_shutter_cancel_key_shake
+0x74e5 shutter_le_send_att_handle_value_notification
+0x74f4 shutter_le_receive_data
+0x74f8 shutter_le_parse_att_write_request
+0x74fb shutter_key_data_send
+0x74fd init_shutter_le_att_list
+0x75c9 shutter_init_param
+0x75e0 publickey_init
+0x75e3 publickey_calc
+0x75f2 stop_publickey_calc_256
+0x75f4 sp_initialize
+0x75fb sp_clear_flags
+0x7600 sp_generate_local_key
+0x7602 sp_master_generate_local_key
+0x7605 sp_generate_local_key0
+0x7608 sp_start_send_pubkey
+0x760d sp_calculate_commitment
+0x7618 master_sp_calculate_commitment
+0x761f sp_calculate_commitment0
+0x7625 master_sp_calculate_commitment0
+0x7628 sp_local_random_key_generator
+0x762b sp_calculate_commitment_wait_dhkey_calc
+0x762d sp_confirm_check
+0x763f sp_confirm_check_success
+0x7645 sp_confirm_check_success_master
+0x7648 sp_confirm_check_failed
+0x764e sp_confirm_check_failed_master
+0x7651 sp_confirm_calc
+0x7655 sp_confirm_calc_ready
+0x7662 sp_confirm_calc_master
+0x7665 sp_master_key_prarm_push
+0x766f sp_link_key_prarm_push
+0x7679 sp_link_key_calc
+0x7684 sp_pubkey_calc
+0x769c sp_pubkey_generated
+0x76a2 sp_dhkey_calc
+0x76b4 sp_dhkey_generated
+0x76bb random_generator
+0x76c0 compare4
+0x76ca compare4_failed
+0x76cc compare4_success
+0x76ce simple_pairing_sequence
+0x76e0 master_simple_paring_sequence
+0x76f3 master_set_mem_master_sp_flag
+0x76f5 master_clear_mem_master_sp_flag
+0x76f7 sp_calc_sequence
+0x7703 sp_calc_sequence_done
+0x7708 bn_testbit
+0x770e ec_copy
+0x7711 bn_eq_zero
+0x7717 bn_eq_0
+0x7720 bn_bigeq
+0x7723 bn_bigeq_0
+0x772d bn_add
+0x772f bn_add_0
+0x773b bn_sub
+0x773d bn_sub_0
+0x7749 bn_rshift6
+0x774b bn_rshift
+0x774c bn_rshift_0
+0x7757 bn_lshift
+0x7759 bn_lshift_0
+0x7764 bn_lshiftmod
+0x7765 bn_lshiftmod_ismod
+0x776d bn_lshiftmod_0
+0x7771 bn_addmod
+0x7774 bn_submod
+0x777b bn_p192mod
+0x779c bn_load
+0x779d bn_load_0
+0x77a2 bn_mulmod
+0x77ac bn_mulmod_1
+0x77ae bn_mulmod_0
+0x77c4 bn_sqrmod
+0x77c6 bn_rshifteven
+0x77c7 bn_rshifteven_1
+0x77d6 bn_rshifteven_0
+0x77da bn_invmod
+0x77e9 bn_invmod_2
+0x7804 bn_invmod_1
+0x7812 bn_invmod_0
+0x781f ecdbl
+0x7870 ecadd
+0x78dc eckp_0
+0x78ea eckp_1
+0x78ef ecunmapz
+0x7901 sha_endian_swap2
+0x7904 sha_endian_loop
+0x790c sha_getw
+0x7910 sha_r
+0x7912 sha_r_loop
+0x7927 sha_init
+0x7929 sha_init_0
+0x792e sha
+0x7933 sha_0
+0x793c sha_loop
+0x7965 sha_1
+0x796b sha_result
+0x796d sha_regext_save
+0x7972 pad_xor
+0x7975 pad_xor_0
+0x797c pad_xor_1
+0x797f g_noninit_number_confirm
+0x7982 g_noninit
+0x7984 g_noninit0
+0x7992 g_init
+0x79a1 g_common
+0x79aa g_common0
+0x79bb function_f1_no_key
+0x79bd function_f1
+0x79bf function_f1_common
+0x79f5 function_f2
+0x7a2b function_f3a
+0x7a2d function_f3a_common
+0x7a3d function_f3a_no_pin
+0x7a40 function_f3b_no_pin
+0x7a43 function_f3b
+0x7a45 function_f3b_common
+0x7a52 function_f3_common
+0x7a7c eckp_calc_init
+0x7a7d eckp_calc_init_1
+0x7a87 eckp_calc
+0x7a8f memcpy_dword_swap4
+0x7a90 memcpy_dword_swap
+0x7a91 memcpy_dword_swap_loop
+0x7a96 sp_initialize_256
+0x7a9d sp_pubkey_calc_256
+0x7ab3 sp_pubkey_generated_256
+0x7ab9 sp_dhkey_calc_256
+0x7ac9 sp_dhkey_generated_256
+0x7acf sp_calc_sequence_256
+0x7ad9 sp_calc_sequence_done_256
+0x7ae0 eckp_calc_256
+0x7ae8 eckp_calc_init_256
+0x7aec eckp_calc_init_256_1
+0x7af6 ecunmapz_256
+0x7b08 ecdbl_256
+0x7b59 ecadd_256
+0x7bc5 bn_invmod_256
+0x7bd3 bn_invmod_256_2
+0x7bee bn_invmod_256_1
+0x7bfc bn_invmod_256_0
+0x7c03 bn_mulmod_256
+0x7c11 bn_mulmod_256_1
+0x7c17 bn_mulmod_256_0
+0x7c2c bn_p256mod
+0x7c96 bn_load_mem
+0x7c9a bn_load_256
+0x7c9c bn_sqrmod_256
+0x7c9e bn_add_256
+0x7ca0 bn_addmod_256
+0x7ca3 bn_lshiftmod_256
+0x7ca4 bn_lshiftmod_ismod_256
+0x7cad bn_lshiftmod_p_256
+0x7cb5 sub_p2_256
+0x7cb9 bn_submod_256
+0x7cc3 bn_submod_256_np
+0x7ccc bn_sub_256
+0x7cce bn_rshift_256
+0x7cd1 bn_lshift_256
+0x7cd4 bn_bigeq_256
+0x7cd8 bn_eq_zero_256
+0x7cdb bn_rshifteven_256
+0x7cdc bn_rshifteven_256_1
+0x7ceb bn_rshifteven_256_0
+0x7cef ui_init
+0x7cf4 ui_dispatch
+0x7cf6 ui_button_init
+0x7d02 ui_button_polling
+0x7d09 ui_button_down
+0x7d15 ui_button_up
+0x7d1f ui_button_check_long_press
+0x7d26 lpm_button_get_wake_lock
+0x7d28 lpm_button_clean_wake_lock
+0x7d2a ui_led_init
+0x7d2f ui_led_blink_stop
+0x7d33 ui_led_off
+0x7d38 ui_led_on
+0x7d3e ui_led_blink_start
+0x7d3f ui_led_blink_start1
+0x7d44 ui_led_blink_polling
+0x7d53 in_ui_led_blink_polling_dark
+0x7d58 in_ui_led_infinite
+0x7d5a in_ui_led_blink_timer_start
+0x7d5c ui_timer_timeout
+0x7d60 ui_timer_check
+0x7d68 ui_timer_check_loop
+0x7d72 ui_timer_init
+0x7d75 ui_timer_check_end
+0x7d7d ui_timer_check_send_evt
+0x7d80 ui_ipc_get_lock
+0x7d81 ui_ipc_get_lock_wait
+0x7d84 ui_ipc_put_lock
+0x7d86 ui_ipc_send_event
+0x7d90 ui_ipc_send_cmd
+0x7d9a ui_ipc_clean_all_fifo
+0x7d9e check_51cmd
+0x7daa check_51cmd_once
+0x7dce check_51cmd_once_continue
+0x7ddb check_51cmd_dhkey_not_accept
+0x7dde check_51cmd_ble_update_connect_param
+0x7de0 check_51cmd_check_idle
+0x7de5 check_51cmd_restore
+0x7de7 check_51cmd_role_switch
+0x7df0 check_51cmd_start_discovery
+0x7df5 check_51cmd_stop_discovery
+0x7dfb check_51cmd_reconnect
+0x7dfd check_51cmd_disconnect
+0x7e00 check_51cmd_enter_sniff_subrating
+0x7e01 check_51cmd_exit_sniff_subrating
+0x7e02 check_51cmd_sniff_test
+0x7e03 check_51cmd_pincode
+0x7e05 check_51cmd_inq
+0x7e06 check_51cmd_stop_inq
+0x7e07 check_51cmd_adv
+0x7e0d check_51cmd_stop_adv
+0x7e12 check_51cmd_direct_adv
+0x7e18 check_51cmd_stop_direct_adv
+0x7e1d check_51cmd_le_disconnect
+0x7e21 check_51cmd_le_start_con
+0x7e24 check_51cmd_start_scan
+0x7e26 check_51cmd_stop_scan
+0x7e29 check_51cmd_le_smp_sec_req
+0x7e2b check_51cmd_hibernate
+0x7e38 check_51cmd_hibernate_btn_disabled
+0x7e3b check_51cmd_le_start_write
+0x7e3d check_51cmd_bb_reconn_cancel
+0x7e3f ui_check_paring_button
+0x7e43 right_shift_n
+0x7e45 right_shift_n_loop
+0x7e48 push_stack
+0x7e56 pop_stack
+0x7e64 get_contw
+0x7e67 get_contr
+0x7e6a store_contw
+0x7e6d store_contr
+0x7e70 save_cont_pointers
+0x7e75 load_cont_pointers
+0x7e7a memcpy96
+0x7e7b memcpy64
+0x7e7d memcpy12
+0x7e7e memcpy4
+0x7e81 memcpy8
+0x7e84 memcpy48
+0x7e85 memcpy32
+0x7e86 memcpy24
+0x7e87 memcpy16
+0x7e89 delay_10ms
+0x7e8c delay_ms_wait
+0x7e90 bn_zero
+0x7e91 memset0
+0x7e92 memset8
+0x7e95 memset0_8
+0x7e98 memset0_4
+0x7e9b clear_mem_256
+0x7e9d clear_mem_512
+0x7e9f clear_mem
+0x7ea2 clear_mem_loop
+0x7ea5 clear_temp_block
+0x7ea8 xor_loop
+0x7eb0 inverse_data
+0x7eb8 inverse_loop
+0x7ec0 memcpy_fast
+0x7ec2 memcpy_fast_loop
+0x7ec7 memcpy_fast_loop_four
+0x7ecd memcpy
+0x7ecf memcpy_loop
+0x7ed3 timer_stop
+0x7ed4 timer_init
+0x7ede timer_check_timeout
+0x7ee2 timer_check
+0x7eee timer_loop
+0x7ef2 timer_counting
+0x7ef9 clk_add
+0x7f04 clk_diff_rt
+0x7f06 clk_diff
+0x7f0b clk_diff_pos
+0x7f10 clk2rt
+0x7f16 clk2lpo
+0x7f1d clk2bt
+0x7f25 string2dec_from_uart
+0x7f26 string2dec_from_uart_done
+0x7f31 uchar2dialog
+0x7f3a uchar2dialog_number
+0x7f3d uchar2dialog_a2f
+0x7f40 pn9
+0x7f43 pn9_loop
+0x7f53 wait_div_end
+0x7f55 string_compare
+0x7f5e ceiling
+0x7f62 swap
+0x7f66 clean_mem
+0x7f69 callback_func
+0x7f6b wait_uarttx
+0x7f6e get_uart_rrptr
+0x7f71 ice_break
+0x7f73 ice_setbp
+0x7f78 ice_setbp2
+0x7f7d ice_set_write_bp
+0x7f80 test_enable_white
+0x7f84 check_uart_tx_buff
+0x7f86 pdata_sub_temp
+0x7f88 fifo_in
+0x7f8f fifo_in_push
+0x7f95 fifo_out
+0x7f9a fifo_out_loop
+0x7f9f fifo_out_end
+0x7fa2 fifo_is_empty
+0x7fa4 fifo_is_full
+0x7fa6 fifo_is_near_full
+0x7fa8 fifo_content_count
+0x7fa9 fifo_content_count_loop
+0x7faf not_greater_than
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/peripherals.prog
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/peripherals.prog	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/peripherals.prog	(working copy)
@@ -0,0 +1,2090 @@
+
+/* ===================== two wire SPI gpio ======================= */
+
+twspi_reset:
+	set1 mark_ext_patch,mark
+	bpatch patch2f_0,mem_patch2f
+	hfetch 1,core_gpio_oe3
+	arg 0x06,temp
+	ior temp,pdata
+	hstore 1,core_gpio_oe3
+	hfetch 1,core_gpio_out3
+	ior temp,pdata
+	hstore 1,core_gpio_out3
+	hjam 0,core_gpio_sel1	
+	hfetch 1,core_gpio_out3
+	set0 1,pdata
+	set0 2,pdata
+	hstore 1,core_gpio_out3	
+	nop 30
+	hjam 1,core_gpio_sel1	
+	rtn
+	
+// input read reg number: pdata 
+//output reg data: pdata
+sensor_read:
+	copy pdata,regb
+	call spi_ncs_enable
+	nop 100
+	copy regb,pdata
+	call twspi_read
+	copy pdata,regb
+	call spi_ncs_disable
+	nop 100
+	copy regb,pdata
+	rtn
+// input write reg number: pdata 
+sensor_write:
+	copy pdata,regb
+	call spi_ncs_enable
+	nop 100
+	copy regb,pdata
+	call twspi_write
+	call spi_ncs_disable
+	nop 100
+	rtn
+//spi gpio init .
+//0xff :disable spi ncs gpio init
+spi_ncs_gpio_init:
+	fetch 1,mem_spi_ncs_gpio
+	rtneq 0xff
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_config_output
+
+//nsc gpio ouput low
+spi_ncs_enable:
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_out_active
+
+//ncs gpio output high
+spi_ncs_disable:
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_out_inactive
+
+// input write reg number: regb 
+twspi_write:
+	branch spid_write_reg
+	
+// input read reg number: regb 
+//output reg data: pdata
+twspi_read:
+	branch spid_read_reg
+
+
+
+/* ===================== code loading ======================= */
+
+
+read_function_aes:
+	nbranch read_function,user
+	hfetch 1,core_gpio_key2
+	or_into 0x20,pdata   	// enable aes 
+	hstore 1,core_gpio_key2
+read_function:
+	copy temp,null
+	branch read_fuction_zero,zero
+	copy regc,pc
+read_fuction_zero:
+	isolate0 0,null
+	branch set_ucode_status
+	
+/* return temp = block length */
+get_block_header:
+	force 4,temp
+get_block_header0:
+	arg mem_ucode_buf,rega
+	hfetch 1,core_gpio_key2
+	and_into 0xdf,pdata   	// disable aes for header
+	hstore 1,core_gpio_key2
+	call read_function
+	arg 0x55aa,rega
+	fetch 2,mem_ucode_buf
+	ifetcht 2,contr
+	isub rega,null
+	rtn	
+
+read_first_block:
+	arg 2,temp
+	arg mem_ucode_ptr,rega
+	call read_function
+	fetch 2,mem_ucode_ptr
+	store 2,mem_addr_mi
+	call get_iv,user
+	rtn
+	
+get_iv:
+	arg 16,temp
+	arg mem_ucode_keybuf,rega
+	hfetch 1,core_gpio_key2
+	and_into 0xdf,pdata   // disable aes for iv
+	hstore 1,core_gpio_key2
+	call read_function
+	arg mem_ucode_keybuf,contr
+	arg 16,loopcnt
+	call aes_load_data
+	call aes_init
+	call aes_clear_data
+	branch do_aes_cbc					/* generate first IV */
+
+load_storage:
+	disable match
+	call get_block_header
+	nrtn zero
+	enable match
+	hjam 0x80, core_ucode_ctrl
+	hjam 0,core_ucode_hi
+	hjam 0,core_ucode_low
+	arg core_ucode_data,rega
+	call read_function_aes
+	hjam 0x0, core_ucode_ctrl
+	call get_block_header
+	nrtn zero
+	force 0,pdata
+	hstore 2,core_docd_paddr
+	arg core_docd_pdata,rega
+	call read_function_aes
+load_storage_loop:
+	arg 6,temp
+	call get_block_header0
+	nrtn zero
+	ifetch 2,contr
+	iforce rega
+	call read_function
+	branch load_storage_loop
+
+
+
+	
+	/* only load memory data from eeprom */
+reload_eeprom:
+	set1 mark_ext_patch,mark
+	bpatch patch2f_1,mem_patch2f
+	call clean_mem
+	setarg 0x1000
+	store 2,mem_addr_mi
+	arg iicd_read_eep,regc
+	arg 2,loopcnt
+reload_eeprom_loop:
+	call get_block_header
+	nrtn zero
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	loop reload_eeprom_loop
+	branch load_storage_loop
+	
+loadcode:
+	hjam 0x25,core_clkoff			// disable debug uart
+	hjam 5,core_docd_ctrl
+	call clean_mem
+	set1 mark_ext_patch,mark
+	bpatch patch2f_2,mem_patch2f
+loadcode_lpm:
+	disable user
+	call otp_enable_chgpump
+	setarg otp_ucode_flag
+	arg mem_otp_ucode_flag,rega
+	arg 2,temp
+	call otpd_read_data
+	fetch 2,mem_otp_ucode_flag
+	bbit0 otp_uflag_aes, loadcode_otp
+	setarg otp_ucode_aeskey
+	arg mem_ucode_keybuf,rega
+	arg 16,temp
+	call otpd_read_data
+	hjam lock_otp,core_misc_ctrl	// disable further read/write of key
+	arg mem_ucode_keybuf,contr
+	call load_key
+	enable user					// set user for aes
+loadcode_otp:
+	set1 mark_ext_patch,mark
+	bpatch patch2f_3,mem_patch2f
+	fetch 2,mem_otp_ucode_flag
+	byteswap pdata,pdata
+	arg 0x7ff,temp
+	iand temp,pdata
+	branch loadcode_spi, zero
+	call otp_set_addr
+	arg otpd_read_code,regc
+	call get_iv,user
+	call load_storage
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_otp,true	// crc error, try again
+loadcode_spi:
+	set1 mark_ext_patch,mark
+	bpatch patch2f_4,mem_patch2f
+	call otp_disable_chgpump
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_flash, loadcode_iic
+	setarg 0x0
+	store 3,mem_addr_hi
+	call spid_init_flash
+	arg spid_read_flash,regc
+	call read_first_block
+	call load_storage
+	nbranch loadcode_iic,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_spi,true	// crc error, try again
+loadcode_iic:
+	set1 mark_ext_patch,mark
+	bpatch patch2f_5,mem_patch2f
+	call clear_eeprom_size_2k
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_eep,loadcode_hci
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_iic_eeprom_2k,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_iic,true	// crc error, try again
+	branch loadcode_hci
+loadcode_iic_eeprom_2k:
+	call set_eeprom_size_2k
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_eep,loadcode_hci
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_hci,match
+	fetch 1,mem_ucode_status
+	compare 3,pdata,3
+	nbranch loadcode_iic_eeprom_2k,true	// crc error, try again
+loadcode_hci:
+	force regidx_key,regext_index
+	call aes_clear
+	hjam 0x21,core_clkoff			// enable debug uart
+	fetch 1,mem_otp_ucode_flag
+	rtnbit0 otp_uflag_hci
+	call hci_init
+loadcode_hci_loop:
+	call hci_rx_packet
+	branch loadcode_hci_loop
+
+
+loadcode_iic_by_eeprom:
+	setarg 0x0
+	store 2,mem_addr_mi
+	arg iicd_read_eep,regc
+	call iicd_init_12m
+	call read_first_block
+	branch load_storage
+
+
+
+/* true flag is set into status */
+set_ucode_status:
+	fetch 1,mem_ucode_status
+	lshift pdata,pdata
+	setflag true,0,pdata
+	isolate0 15,rega
+	rtn true
+	store 1,mem_ucode_status
+	rtn
+
+	/* queue is bit position of hw done status */
+decrypt_code:
+	hfetch 1,core_gpio_key2
+	rtnbit0 5
+	branch decrypt_code_skip	/* skip to key generation at first for speed */
+decrypt_code_loop:
+	hfetch 1,core_dma_status
+	qisolate1 pdata
+	rtn true
+decrypt_code_skip:
+	hfetch 1,core_misc_status
+	bbit0 1,decrypt_code_loop
+	call do_aes_cbc
+	branch decrypt_code_loop
+
+
+
+load_ucode:
+	fetch 2,mem_patch_ptr
+	rtn blank
+	hjam 0x80, core_ucode_ctrl
+	hjam 0,core_ucode_hi
+	hjam 0,core_ucode_low
+	fetcht 2,mem_patch_len
+	lshift2 temp,loopcnt
+	iforce contr
+load_ucode_loop:
+	ifetch 1,contr
+	hstore 1,core_ucode_data
+	loop load_ucode_loop
+	hjam 0x0, core_ucode_ctrl
+	rtn
+
+
+/* ===================== SPI dma ======================= */
+
+spid_init:
+	set1 mark_ext_patch,mark
+	bpatch patch2f_6,mem_patch2f
+	fetch 1,mem_spi_init_clk
+	hstore 1,core_spid_ctrl	// A7530 should at least 34, or write fail
+	fetch 1,mem_spi_init_delay_time
+	hstore 1,core_spid_delay	// 4us delay
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	setarg mem_spid_rbuf
+	hstore 2,core_spid_rxaddr
+	hfetch 1,core_gpio_sel1
+	set1 0,pdata
+	set0 1,pdata
+	hstore 1,core_gpio_sel1
+	rtn
+
+spid_reset:
+	hfetch 1,core_spid_ctrl
+	set1 7,pdata
+	hstore 1,core_spid_ctrl
+	set0 7,pdata
+	hstore 1,core_spid_ctrl
+	rtn
+
+
+/* pdata 6:0 is reg address, 15:8 is data to write */
+spid_write_reg:
+	set1 7,pdata
+	store 2,mem_spid_tbuf
+	set1 mark_ext_patch,mark
+	bpatch patch2f_7,mem_patch2f
+	hjam 2,core_spid_txlen
+	hjam 0,core_spid_rxlen
+	hjam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+/* pdata 6:0 is reg address */
+spid_read_reg:
+	force 1,temp
+/* pdata 6:0 is burst reg address, temp is bytes to read */
+spid_read_regs:
+//	nop 100
+	store 1,mem_spid_tbuf
+	set1 mark_ext_patch,mark
+	bpatch patch30_0,mem_patch30
+	hjam 1,core_spid_txlen
+	hstoret 2,core_spid_rxlen
+	hjam spid_start,core_misc_ctrl
+	call wait_spid_done
+	fetch 1,mem_spid_rbuf
+	rtn
+
+wait_spid_done:
+	fetch 2,mem_afh_error_total
+	increase 1,pdata
+	store 2,mem_afh_error_total
+	hfetch 1,core_dma_status
+	bbit0 spid_done,wait_spid_done
+	rtn
+
+spid_init_flash:
+	hjam 0x40,core_spid_ctrl
+	hjam 0x0,core_spid_delay
+	hfetch 1,core_gpio_sel1
+	set0 0,pdata
+	set1 1,pdata
+	hstore 1,core_gpio_sel1
+	setarg 0
+	store 4,mem_spid_tbuf
+	rtn
+
+spid_unlock_flash:
+	setarg 0
+	hstore 2,core_spid_rxlen
+	setarg 1
+	hstore 1,core_spid_txlen
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	jam 6,mem_spid_tbuf
+	hjam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+
+	/* pdata is flash address, rega pointers to txdata(4 ahead bytes should be left), temp is length */
+spid_write_flash:
+	increase 4,temp
+	hstoret 2,core_spid_txlen
+	increase -4,rega
+	arg 2,temp
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	hstore 2,core_spid_txaddr
+	setarg 0
+	hstore 2,core_spid_rxlen
+	hjam spid_start,core_misc_ctrl
+	branch wait_spid_done
+	
+
+/* temp is length, rega pointers to buf */
+spid_read_flash:
+	hstoret 2,core_spid_rxlen
+	setarg 4
+	hstore 2,core_spid_txlen
+	jam 3,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	deposit rega
+	hstore 2,core_spid_rxaddr
+	hfetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	hstore 1,core_spid_ctrl
+	hjam spid_start,core_misc_ctrl
+spi_read_flash_wait:
+	hfetch 1,core_dma_status
+	bbit1 7,spi_read_flash_wait			// waiting for spid write
+	arg spid_done,queue
+	call decrypt_code
+	call wait_spid_done
+	isolate1 spid_crcok,pdata
+	call set_ucode_status
+	fetch 1,mem_addr_hi
+	lshift16 pdata,regb
+	fetch 1,mem_addr_mi
+	lshift8 pdata,pdata
+	ior regb,regb
+	fetch 1,mem_addr_lo
+	ior regb,pdata
+	iadd temp,pdata
+	store 1,mem_addr_lo
+	rshift8 pdata,pdata
+	store 1,mem_addr_mi
+	rshift8 pdata,pdata
+	store 1,mem_addr_hi
+	rtn
+
+
+/* ===================== I2C dma ======================= */
+
+/*iicd_init_5m:
+	hjam 0xa,core_clksel			// use 5M rc clock to load eeprom
+	hjam 2,core_iicd_scl_low
+ 	hjam 3,core_iicd_scl_high
+	hjam 3,core_iicd_start_setup
+	hjam 3,core_iicd_start_hold
+	hjam 3,core_iicd_stop_setup
+	hjam 2,core_iicd_data_setup
+	rtn
+*/
+iicd_init_12m:
+	hjam 5,core_iicd_scl_low
+ 	hjam 7,core_iicd_scl_high
+	hjam 7,core_iicd_start_setup
+	hjam 7,core_iicd_start_hold
+	hjam 7,core_iicd_stop_setup
+	hjam 5,core_iicd_data_setup
+	rtn
+
+
+
+wait_iicd_done:
+	hfetch 1,core_dma_status
+	bbit0 iicd_done,wait_iicd_done
+	rtn
+
+/*
+pdata is tx length
+rega is points to tx buffer
+regb is points to rx buffer
+temp is rx length
+*/
+iicd_read_data:
+	hstore 2,core_iicd_txlen
+	deposit rega
+	hstore 2,core_iicd_txaddr	
+	deposit regb
+	hstore 2,core_iicd_rxaddr
+	deposit temp	
+	hstore 2,core_iicd_rxlen
+	arg 1,temp
+	nsetflag blank,1,temp
+	hstore 1,core_iicd_ctrl
+	hjam iicd_start,core_misc_ctrl
+	branch wait_iicd_done
+
+
+set_eeprom_size_2k:
+	set1 mark_eeprom_size,mark
+	jam 0x08,mem_eeprom_block_size
+	rtn
+
+clear_eeprom_size_2k:
+	set0 mark_eeprom_size,mark
+	jam 0x20,mem_eeprom_block_size
+	rtn
+
+
+iicd_read_eep_data_size_2k:
+ 	fetch 1,mem_eeprom_base
+	iadd regb,pdata
+	store 1,mem_addr_mi
+	branch iicd_read_eep_size_2k
+
+iicd_read_eep_size_2k_lcadcode:
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	store 1,mem_addr_mi
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr:pdata
+iicd_read_eep_size_2k:
+ 	setarg 3
+	hstore 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+2
+	branch iicd_read_eep_common
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr offset:regb
+iicd_read_eep_data:
+	set1 mark_ext_patch,mark
+	bpatch patch30_1,mem_patch30
+	bmark1 mark_eeprom_size,iicd_read_eep_data_size_2k
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+
+/* rega pointers to buf, temp is length  */
+iicd_read_eep:
+	set1 mark_ext_patch,mark
+	bpatch patch30_2,mem_patch30
+	bmark1 mark_eeprom_size,iicd_read_eep_size_2k_lcadcode
+	nop 30000
+	setarg 4
+	hstore 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+3
+iicd_read_eep_common:	
+	setarg mem_iicd_tbuf
+	hstore 2,core_iicd_txaddr
+	hstoret 2,core_iicd_rxlen
+	deposit rega
+	hstore 2,core_iicd_rxaddr
+	setarg 2
+	isolate0 15,rega
+	setflag true,0,pdata
+	hstore 1,core_iicd_ctrl
+	hjam iicd_start,core_misc_ctrl
+	arg iicd_done,queue
+	call decrypt_code
+	call wait_iicd_done
+	isolate1 iicd_crcok,pdata
+	call set_ucode_status
+	bmark1 mark_eeprom_size,iicd_read_eep_load_code_size_2k
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+
+iicd_read_eep_load_code_size_2k:
+	fetch 1,mem_addr_mi
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+	
+
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr offset:regb
+iicd_write_eep_data:
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+
+//cuur ptr:pdata length:temp buf:rega
+iicd_write_ota_data:
+	store 2,mem_pdatatemp //curr ptr
+	set1 mark_ext_patch,mark
+	bpatch patch30_3,mem_patch30
+	storet 2,mem_temp	//len
+	copy rega,pdata
+	store 2,mem_contr
+iicd_write_eep_loop:
+	call iicd_eep_transparency
+
+	fetcht 2,mem_regb
+	fetch 2,mem_contr
+	copy pdata,rega
+	fetch 2,mem_pdatatemp
+	
+	call iicd_write_eep
+	
+
+	
+	fetch 2,mem_regb
+	fetcht 2,mem_contr
+	iadd temp,temp
+	storet 2,mem_contr
+	fetcht 2,mem_pdatatemp
+	iadd temp,temp
+	storet 2,mem_pdatatemp
+	fetch 2,mem_temp
+	nbranch iicd_write_eep_loop,blank
+	rtn
+	
+//in:
+//1.size 2.len 3.src 4.des
+//mem_regc page's area
+//mem_pdatatemp curr ptr
+//mem_temp all len      
+//mem_regb curr len
+iicd_eep_transparency:
+	set1 mark_ext_patch,mark
+	bpatch patch30_4,mem_patch30
+	fetch 2,mem_eeprom_block_size
+	increase -1,pdata
+	fetcht 2,mem_pdatatemp
+	ior temp,pdata
+	increase 1,pdata
+	store 3,mem_regc
+
+	fetch 2,mem_temp
+	iadd temp,pdata
+
+	fetcht 3,mem_regc
+	isub temp,pdata
+	nbranch iicd_eep_deal_short_packet,positive
+	store 2,mem_temp
+	fetch 3,mem_regc
+	fetcht 2,mem_pdatatemp
+	isub temp,pdata
+	store 2,mem_regb
+	rtn
+iicd_eep_deal_short_packet:
+	fetch 2,mem_temp
+	store 2,mem_regb
+	setarg 0
+	store 2,mem_temp
+	rtn
+
+iicd_write_eep_size_2k:
+	increase 2,temp
+	hstoret 2,core_iicd_txlen
+	increase -2,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+//	byteswap pdata,pdata
+	istore 1,contw
+	branch iicd_write_eep_common
+
+	/* pdata is eeprom address, rega pointers to txdata(3 ahead bytes should be left), temp is length */
+iicd_write_eep:
+	copy pdata,regb
+	set1 mark_ext_patch,mark
+	bpatch patch30_5,mem_patch30
+	nop 30000
+	bmark1 mark_eeprom_size,iicd_write_eep_size_2k
+	copy regb,pdata
+	increase 3,temp
+	hstoret 2,core_iicd_txlen
+	increase -3,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+	byteswap pdata,pdata
+	istore 2,contw
+iicd_write_eep_common:	
+	deposit rega
+	hstore 2,core_iicd_txaddr
+	setarg 0
+	hstore 2,core_iicd_rxlen
+	hjam 1,core_iicd_ctrl
+	hjam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	copy regb,pdata
+	istore 3,rega
+	nop 10000
+	nop 10000
+	nop 10000
+	rtn
+
+/* ===================== OTP ======================= */
+
+otp_enable_chgpump:
+	hjam 0x70,rfen_chgpump
+	nop param_chgpump_delay
+	rtn
+
+otp_disable_chgpump:
+	hjam 0x30,rfen_chgpump
+	rtn
+	
+otp_set_addr:
+	lshift3 pdata,pdata
+	hstore 2,core_otp_addr
+	hjam 0,core_otpd_ctrl
+	rtn	
+
+/* pdata = otp address, rega pointers data, loopcnt is count */
+otp_write:
+	call otp_set_addr
+	call otp_ce
+otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+otp_program_bit:
+	qisolate0 temp
+	branch otp_skip_0,true
+	hfetch 1,core_otp_din
+	set1 6,pdata				/* din */
+	set1 7,pdata				/* dle */
+	hstore 1,core_otp_din
+	hjam 0x02,core_otp_ctrl	/* web */
+	hjam 0x82,core_otp_ctrl
+	set0 7,pdata				/* dle */
+	hstore 1,core_otp_din
+	hjam 0x8a,core_otp_ctrl	/* pgmen */
+	nop 11
+	hjam 0xca,core_otp_ctrl	/* vppen */
+	nop 33
+	hjam 0x4a,core_otp_ctrl	/* web 2nd */
+	nop 44
+	hjam 0xca,core_otp_ctrl	/* release web */
+	nop 22
+	hjam 0x8a,core_otp_ctrl	/* release vppen */
+	nop 33
+	hjam 0x82,core_otp_ctrl	/* release pgmen */
+	nop 1
+	hjam 0x92,core_otp_ctrl	/* pgmvfy */
+	nop 10
+	hjam 0xb2,core_otp_ctrl	/* readen */
+	hfetch 1,core_otp_rdata
+	hjam 0x92,core_otp_ctrl	/* release readen */
+	nop 1
+	hjam 0x82,core_otp_ctrl	/* release pgmvfy */
+	qisolate0 pdata
+	branch otp_program_bit,true	/* program error */
+otp_skip_0:
+	hfetch 2,core_otp_addr
+	increase 1,pdata
+	hstore 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch otp_program_bit,true
+	loop otp_program
+	hjam 0x83,core_otp_ctrl
+	rtn
+
+otp_ce:
+	hjam 0x82,core_otp_ctrl	/* ceb */
+	nop 12
+	hjam 0x80,core_otp_ctrl	/* rstn */
+	hjam 0x82,core_otp_ctrl	/* release rstn */
+	nop 150					/* waiting for vdd25 stable */
+	rtn
+
+	/* rega points to data, temp is count */
+otpd_read_init:
+	call otp_ce
+	hjam 0xa2,core_otp_ctrl	/* readen */
+	deposit rega
+	hstore 2,core_otpd_addr
+	set1 11,temp
+	isolate0 15,pdata
+	setflag true,15,temp
+	hstoret 2,core_otpd_len
+	hjam otpd_start,core_misc_ctrl
+	rtn
+
+otpd_wait_end:
+	hfetch 1,core_dma_status
+	bbit0 otpd_done,otpd_wait_end
+	rtn
+	
+	/* pdata=otp address, rega points to data, temp is count */
+otpd_read_data:
+	call otp_set_addr
+	call otpd_read_init
+	call otpd_wait_end
+	hjam 0x83,core_otp_ctrl	/* release ceb */
+	rtn
+
+
+
+/* rega pointers to buf, temp is length */
+otpd_read_code:	
+	hfetch 2,core_current_otp_addr
+	hstore 2,core_otp_addr
+	call otpd_read_init
+	arg otpd_done,queue
+	call decrypt_code
+	call otpd_wait_end
+	isolate1 otpd_crcok,pdata	
+	call set_ucode_status
+	hjam 0x83,core_otp_ctrl	/* release ceb */
+	rtn
+
+/* ===================== uart dma ======================= */
+uartd_prepare_tx:
+	hfetch 2,core_uart_twptr
+	iforce contwu
+	rtn
+
+uartd_send:
+	deposit contwu
+	hstore 2,core_uart_twptr
+	rtn
+
+uartd_rxdone:
+	deposit contru
+	hstore 2,core_uart_rrptr
+	rtn
+
+uart_set_baud_by_mem:
+	fetch uart_baud_len,mem_baud
+	hstore uart_baud_len,core_uart_baud
+	rtn
+
+uart_copy_tx_bytes_fast:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_fast_loop:
+	increase -8,loopcnt
+	call uart_tx_8_bytes,positive
+	rtn zero
+	branch uart_copy_tx_bytes_fast_loop,positive
+	increase 8,loopcnt
+uart_copy_tx_bytes_fast_loop_four:
+	increase -4,loopcnt
+	call uart_tx_4_bytes,positive
+	rtn zero
+	branch uart_copy_tx_bytes_fast_loop_four,positive
+	increase 4,loopcnt
+	branch uart_copy_tx_bytes
+
+uart_tx_8_bytes:
+	ifetch 8,contr
+	istore 8,contwu
+	rtn
+
+uart_tx_4_bytes:
+	ifetch 4,contr
+	istore 4,contwu
+	rtn
+
+uart_copy_tx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_loop:
+	ifetch 1,contr
+	istore 1,contwu
+	loop uart_copy_tx_bytes_loop
+	rtn
+
+uart_copy_rx_bytes_fast:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_fast_loop:
+	increase -8,loopcnt
+	call uart_rx_8_bytes,positive
+	rtn zero
+	branch uart_copy_rx_bytes_fast_loop,positive
+	increase 8,loopcnt
+uart_copy_rx_bytes_fast_loop_four:
+	increase -4,loopcnt
+	call uart_rx_4_bytes,positive
+	rtn zero
+	branch uart_copy_rx_bytes_fast_loop_four,positive
+	increase 4,loopcnt
+	branch uart_copy_rx_bytes
+
+uart_rx_8_bytes:
+	ifetch 8,contru
+	istore 8,contw
+	rtn
+
+uart_rx_4_bytes:
+	ifetch 4,contru
+	istore 4,contw
+	rtn
+
+
+uart_copy_rx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_loop:
+	ifetch 1,contru
+	istore 1,contw
+	loop uart_copy_rx_bytes_loop
+	rtn
+
+
+/* ===================== eeprom data ======================= */
+
+check_51cmd_update_device_record:
+	set1 mark_ext_patch,mark
+	bpatch patch30_6,mem_patch30
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	call check_nvram
+	call init_device_list,zero
+	call nvram_find_addr_from_bd_list
+write_device_record:
+	fetch 1,mem_nv_data_number
+	icopy regc
+	fetcht 2,mem_nv_data_ptr
+	storet 2,mem_list_item_ptr
+write_device_loop_find:
+	copy regc,pdata
+	branch module_hci_event_store_device,blank  //EEPROM
+	increase -1,regc
+	copy temp,rega
+	ifetch 1,rega
+	fetcht 1,mem_select_list_item
+	isub temp,null
+	call set_index_finded_device,zero
+	branch write_device_loop_find0,positive
+	ifetch 1,rega
+	increase 1,pdata
+	istore 1,rega
+write_device_loop_find0:
+	fetcht 2,mem_list_item_ptr
+	increase NV_DATA_LEN,temp
+	storet 2,mem_list_item_ptr
+	branch write_device_loop_find
+
+set_index_finded_device:
+	setarg 0
+	istore 1,rega
+	fetch 1,mem_temp_reconn_record
+	istore 1,contw	
+	bne REC_3_MODE,set_index_finded_device_ble_mode
+	arg mem_link_key,regb
+set_index_find_device_MASTER_ADDR:
+	ifetch 6,contr
+	istore 8,contw
+	setarg 0
+	istore 8,contw
+	copy regb,contr
+store_rec_data_common:
+	call memcpy16
+	force 1,null
+	rtn
+
+set_index_finded_device_ble_mode:
+	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_IRK
+	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_EDIV
+	arg mem_le_ltk,regb
+	branch set_index_find_device_MASTER_ADDR
+
+set_index_finded_device_IRK:
+	arg mem_le_irk,contr
+	call memcpy16
+store_ble_rec_data_common:
+	arg mem_le_ltk,contr
+	branch store_rec_data_common
+
+set_index_finded_device_EDIV:
+	arg mem_le_rand,contr
+	call memcpy16
+	branch store_ble_rec_data_common
+
+
+nvram_find_addr_from_bd_list:
+	call disable_usr
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,find_addr_from_bd_list_SPP_mode
+//	bbit1 UI_STATE_BLE_CONNECTED,find_addr_from_bd_list_ble_mode
+find_addr_from_bd_list_ble_mode:
+	fetch 1,mem_le_conn_peer_addr_type
+	beq MASTER_PUBLIC_ADDR,find_addr_from_bd_list_static_addr
+	fetch 1,mem_le_plap+5
+	compare 0xc0,pdata,0xc0
+	branch find_addr_from_bd_list_static_addr,true
+	compare 0x40,pdata,0xc0
+	branch find_addr_from_bd_list_random_addr,true
+	compare 0x00,pdata,0xc0
+	branch find_addr_from_bd_list_random_non_resolvable_private_address,true
+find_addr_from_bd_list_static_addr:
+	jam REC_4_MODE_STATIC_ADDRESS,mem_temp_reconn_record
+	fetch 6,mem_le_plap
+	branch find_addr_from_bd_list_common
+	
+find_addr_from_bd_list_random_non_resolvable_private_address:	
+	jam REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
+	branch find_addr_from_bd_list_common
+
+//input :pdata EDIV and rands
+find_addr_from_bd_list_random_addr:
+	jam REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
+	branch find_addr_from_bd_list_common
+	
+//input :pdata EDIV and rands
+find_addr_from_bd_list_SPP_mode:
+	set1 mark_ext_patch,mark
+	bpatch patch30_7,mem_patch30
+	jam REC_3_MODE,mem_temp_reconn_record
+	fetch 6,mem_plap
+find_addr_from_bd_list_common:
+	store 6,mem_temp_reconn_record+1
+	fetch 2,mem_nv_data_ptr
+	ifetcht 1,pdata
+	pincrease 1
+	store 2,mem_list_item_ptr
+	storet 1,mem_select_list_item
+	fetch 1,mem_nv_data_number
+	icopy regc
+nvram_find_addr_from_list:
+	fetch 2,mem_list_item_ptr
+	copy pdata,rega
+	call nvram_find_addr_from_list_compare
+	rtn user
+	fetcht 2,mem_list_item_ptr
+	increase NV_DATA_LEN,temp
+	storet 2,mem_list_item_ptr
+	increase -1,temp
+	ifetch 1,temp
+	store 1,mem_select_list_item
+	increase -1,regc
+	nbranch nvram_find_addr_from_list,zero
+	fetch 1,mem_nv_data_number
+	pincrease DECREASED_ONE
+	store 1,mem_select_list_item
+	rtn
+nvram_find_addr_from_list_compare:
+	fetch 1,mem_temp_reconn_record
+	bne REC_3_MODE,find_addr_from_list_compare_ble_mode
+find_master_addr_from_list_compare:
+	arg mem_temp_reconn_record,regb
+	arg 7,loopcnt
+	call string_compare
+	branch enable_usr,zero
+	rtn
+
+find_addr_from_list_compare_ble_mode:
+	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,find_irk_form_list_compare
+	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,find_ediv_form_list_compare
+	branch find_master_addr_from_list_compare
+
+find_irk_form_list_compare:
+	ifetcht 1,rega
+	isub temp,null
+	nrtn zero
+	arg mem_le_prand,contw
+	arg 16,loopcnt
+	call clear_mem
+	fetch 3,mem_le_plap+3
+	store 3,mem_le_prand
+	call genernate_master_MacAddress
+	fetch 2,mem_le_aes_128+13
+	byteswap pdata,pdata
+	lshift8 pdata,temp
+	ifetch 1,contr
+	iadd temp,pdata
+	fetcht 3,mem_le_plap
+	isub temp,null
+	branch enable_usr,zero
+	rtn
+
+
+genernate_master_MacAddress:
+	arg mem_le_prand ,contr
+	call load_data128
+//	arg mem_le_irk,contr
+	ifetch 1,rega
+	call load_regext
+	force 0x38,aes_ctrl
+	force 0x0,aes_ctrl
+	call wait_aes
+	arg mem_le_aes_128,contw
+	branch store_aes_result
+
+find_ediv_form_list_compare:
+	ifetcht 1,rega
+	isub temp,null
+	nrtn zero
+	copy contr,rega
+	add contr,8,regc
+	arg mem_le_rand,regb
+	arg 8,loopcnt
+	call string_compare
+	branch enable_usr,zero
+	copy regc,rega
+	arg mem_le_irk,regb
+	arg 8,loopcnt
+	call string_compare
+	branch enable_usr,zero
+	rtn
+
+check_nvram:
+	fetch 2,mem_nv_data_ptr
+	ifetcht 1,pdata
+	pincrease NV_DATA_LEN
+	ifetch 1,pdata
+	isub temp,null
+	rtn
+
+init_device_list:
+	fetch 1,mem_nv_data_number
+	icopy loopcnt
+	fetcht 2,mem_nv_data_ptr
+	setarg 0
+init_device_list_loop:
+	istore 1,temp
+	increase NV_DATA_LEN,temp
+	pincrease 1
+	loop init_device_list_loop
+	rtn
+
+load_device_list:
+	set1 mark_ext_patch,mark
+	bpatch patch31_0,mem_patch31
+	call nvram_find_addr_from_bd_list
+	nbranch clear_key_exists,user
+	add rega,10,contr
+//	copy rega,contr
+	arg mem_link_key,contw
+	call  memcpy16
+	branch check_link_key_load
+clear_key_exists:
+	jam 0,mem_link_key_exists
+	rtn
+
+load_device_list_mode_4:
+	fetch 9,mem_le_ediv
+	branch clear_ltk_exists,blank
+	call nvram_find_addr_from_bd_list
+	nbranch clear_ltk_exists,user
+	fetch 2,mem_list_item_ptr
+	add pdata,1,contr
+	arg mem_le_irk,contw
+	call  memcpy16
+	arg mem_le_ltk,contw
+	call  memcpy16
+	jam 1,mem_ltk_exists
+	rtn
+
+load_device_list_mode_4_shutter:
+	fetch 2,mem_le_ediv
+	nbranch load_device_list_mode_4_shutter_label,blank
+	fetch 6,mem_le_rand
+	branch clear_ltk_exists_iphone_lost_ltk,blank
+load_device_list_mode_4_shutter_label:
+	jam LTK_NOT_LOST,mem_ltk_states
+	setarg 0x112233
+	store 3,mem_le_ltk
+	setarg 0x445566
+	istore 3,contw
+	setarg 0x778899
+	istore 3,contw
+	setarg 0x001122
+	istore 3,contw
+	setarg 0x334455
+	istore 3,contw
+	setarg 0x66
+	istore 1,contw
+	jam 1,mem_ltk_exists
+	rtn
+
+clear_ltk_exists_iphone_lost_ltk:
+	jam IPHONE_LOST_LTK,mem_ltk_states
+clear_ltk_exists:
+	jam 0,mem_ltk_exists
+	rtn
+
+
+eeprom_store_le_reconn_info:
+	fetch 6,mem_le_plap
+	store 6,mem_temp_lap
+	jam REC_4_MODE,mem_record_bt_mode
+	branch eeprom_store_reconn_info
+eeprom_store_bd_reconn_info:
+	fetch 6,mem_plap
+	store 6,mem_temp_lap
+	jam REC_3_MODE,mem_record_bt_mode
+eeprom_store_reconn_info:
+	set1 mark_ext_patch,mark
+	bpatch patch31_1,mem_patch31
+	fetch 1,mem_device_option
+	beq dvc_op_module,check_51cmd_update_device_record
+	call eeprom_store_remote_bdaddr
+	call eeprom_store_last_record_index
+	fetch 1,mem_record_bt_mode
+	beq REC_4_MODE,eeprom_store_rec_4_mode
+	beq REC_3_MODE,eeprom_store_link_key
+	rtn
+eeprom_store_rec_4_mode:
+	call eeprom_store_le_ltl
+	branch eeprom_store_le_local_addr
+	
+//
+eeprom_load_reconn_info:
+	set1 mark_ext_patch,mark
+	bpatch patch31_2,mem_patch31
+	call eeprom_load_reconn_bdaddr
+	fetch 1,mem_select_list_item
+	rtneq 0xff
+	fetch 6,mem_temp_lap
+	store 6,mem_hci_plap
+	fetch 1,mem_record_bt_mode
+	store 1,mem_xrecord_mode
+	beq REC_3_MODE,eeprom_load_rec_3_mode
+	beq REC_4_MODE,eeprom_load_rec_4_mode
+	rtn
+eeprom_load_reconn_bdaddr:
+	call eeprom_load_last_record_index
+	fetch 1,mem_select_list_item
+	rtneq 0xff
+	branch eeprom_load_remote_bdaddr
+eeprom_load_rec_3_mode:
+	call eeprom_load_link_key
+	branch check_link_key_load
+eeprom_load_rec_4_mode:
+	call eeprom_load_ltk_key
+	branch check_ltk_load
+
+
+
+eeprom_erase_reconn_info:
+	set1 mark_ext_patch,mark
+	bpatch patch31_4,mem_patch31
+	setarg 0x0
+	store 3,mem_plap
+	istore 3,contw
+	branch eeprom_store_remote_bdaddr
+	
+eeprom_load_last_record_index:
+	arg 1,temp
+	arg mem_select_list_item,rega
+	arg eeprom_last_record,regb
+	branch iicd_read_eep_data
+
+eeprom_store_last_record_index:
+	arg 1,temp
+	arg mem_select_list_item,rega
+	arg eeprom_last_record,regb
+	branch iicd_write_eep_data
+
+
+eeprom_store_remote_bdaddr:
+	set1 mark_ext_patch,mark
+	bpatch patch31_5,mem_patch31
+	call eeprom_load_bdaddr_list
+	disable user
+	call find_addr_from_bd_list
+	rtn user
+eeprom_store_remote_addr_unfind:
+	jam 0,mem_select_list_item
+	fetch 6,mem_temp_lap
+	store 6,mem_bdaddr_list_buff+1
+	fetch 1,mem_record_bt_mode
+	store 1,mem_bdaddr_list_buff
+	arg 28,temp
+	arg mem_bdaddr_list_buff,rega
+	arg eeprom_bdaddr_list,regb
+	branch iicd_write_eep_data
+
+
+eeprom_store_le_local_addr:
+	arg 6,temp
+	arg mem_le_lap,rega
+	arg eeprom_le_reconn_local_addr,regb
+	branch iicd_write_eep_data
+	
+eeprom_load_le_loacal_addr:
+	arg 6,temp
+	arg mem_le_lap,rega
+	arg eeprom_le_reconn_local_addr,regb
+	branch iicd_read_eep_data
+
+
+eeprom_load_remote_bdaddr:
+	set1 mark_ext_patch,mark
+	bpatch patch31_6,mem_patch31
+	arg 7,temp
+	arg mem_temp_reconn_record,rega
+	arg eeprom_bdaddr_list,regb
+	fetch 1,mem_select_list_item
+	mul32 pdata,7,pdata
+	iadd regb,regb
+	branch iicd_read_eep_data
+
+eeprom_linkkey_addr:
+	arg 0x10,temp
+	arg eeprom_linkkey_list,regb
+	fetch 1,mem_select_list_item
+	lshift4 pdata,pdata
+	iadd regb,regb
+	rtn
+	
+eeprom_store_le_ltl:
+	arg mem_le_ltk,rega
+	branch eeprom_store_link_key_common
+eeprom_store_link_key:
+	arg mem_link_key,rega
+eeprom_store_link_key_common:
+	set1 mark_ext_patch,mark
+	bpatch patch31_7,mem_patch31
+	call eeprom_linkkey_addr
+	branch iicd_write_eep_data
+
+eeprom_load_ltk_key:
+	arg mem_le_ltk,rega
+	branch eeprom_load_link_key_common
+eeprom_load_link_key:
+	arg mem_link_key,rega
+eeprom_load_link_key_common:
+	set1 mark_ext_patch,mark
+	bpatch patch32_0,mem_patch32
+	call eeprom_linkkey_addr
+	branch iicd_read_eep_data
+
+
+	
+eeprom_load_bdaddr_list:
+	arg 28,temp
+	arg mem_bdaddr_list_buff+7,rega
+	arg eeprom_bdaddr_list,regb
+	branch iicd_read_eep_data
+
+
+find_addr_from_bd_list:
+	set1 mark_ext_patch,mark
+	bpatch patch32_1,mem_patch32
+	setarg mem_bdaddr_list_buff+7
+	store 2,mem_list_item_ptr
+	jam 0,mem_select_list_item
+	arg 4,loopcnt
+find_addr_from_list:
+	copy loopcnt,pdata
+	store 1,mem_pdatatemp
+	fetch 2,mem_list_item_ptr
+	copy pdata,rega
+	call find_addr_from_list_compare
+	rtn user
+	fetch 2,mem_list_item_ptr
+	increase 7,pdata
+	store 2,mem_list_item_ptr
+	fetch 1,mem_select_list_item
+	increase 1,pdata
+	store 1,mem_select_list_item
+	fetch 1,mem_pdatatemp
+	copy pdata,loopcnt
+	loop find_addr_from_list
+	rtn
+
+
+check_link_key_load:
+	fetch 8,mem_link_key
+	fetcht 8,mem_link_key+8
+	ior temp,pdata
+	rtn blank
+	jam 1,mem_link_key_exists
+	rtn
+check_ltk_load:
+	fetch 6,mem_hci_plap
+	rtn blank
+	jam 1,mem_ltk_exists
+	rtn
+
+find_addr_from_list_compare:
+	arg mem_temp_reconn_record,regb
+	arg 7,loopcnt
+	call string_compare
+	branch enable_usr,zero
+	rtn
+enable_usr:
+	enable user
+	rtn
+
+
+/* =============== GPIO CONTROL ================= */
+
+
+	//temp [4:0]=GPIO number, 0-31, 
+gpio_set_wake_by_current_state:
+	set1 mark_ext_patch,mark
+	bpatch patch32_2,mem_patch32
+	set1 7,temp
+	call gpio_get_bit
+	nsetflag true,7,temp
+	//branch gpio_set_wake
+	//fall through
+	
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_wake:
+	set1 mark_ext_patch,mark
+	bpatch patch32_3,mem_patch32
+	isolate0 7,temp
+	and temp,0x1f,queue
+	fetch 4,mem_gpio_wakeup_low
+	qsetflag true,pdata
+	store 4,mem_gpio_wakeup_low
+	fetch 4,mem_gpio_wakeup_high
+	nqsetflag true,pdata
+	store 4,mem_gpio_wakeup_high
+	rtn
+	
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_clr_wake:
+	set1 mark_ext_patch,mark
+	bpatch patch32_4,mem_patch32
+	isolate0 7,temp
+	and temp,0x1f,queue
+	fetch 4,mem_gpio_wakeup_low
+	qset0 pdata
+	store 4,mem_gpio_wakeup_low
+	fetch 4,mem_gpio_wakeup_high
+	qset0 pdata
+	store 4,mem_gpio_wakeup_high
+	rtn
+
+
+gpio_config_input_nowake:
+	call gpio_clr_wake
+	branch gpio_config_input_without_wake
+
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_config_input:
+	ncall gpio_set_wake,wake
+
+gpio_config_input_without_wake:
+	arg core_gpio_pd0,contw
+	call gpio_set_bit
+	setflip gpio_active_bit,temp
+	arg core_gpio_pu0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	arg core_gpio_oe0,contw
+	branch gpio_set_bit
+	
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active. set gpio to inactive state
+gpio_config_output:	
+	setflip gpio_active_bit,temp
+	call gpio_out
+gpio_config_output0:
+	set1 gpio_active_bit,temp
+	arg core_gpio_oe0,contw
+	branch gpio_set_bit
+	
+gpio_common:
+	and temp,0x07,queue
+	rshift3 temp,pdata
+	and_into 3,pdata
+	iadd contw,contw
+	ifetch 1,contw
+	rtn
+
+gpio_check_active:
+	arg core_gpio_out0,contw
+	branch get_bit_common
+
+	
+	/* temp is gpio number, return true if gpio active */
+gpio_get_bit:
+	arg core_gpio_in,contw
+get_bit_common:
+	call gpio_common
+	isolate1 gpio_active_bit,temp
+	branch gpio_get_bit_reverse,true
+	qisolate0 pdata
+	rtn
+gpio_get_bit_reverse:
+	qisolate1 pdata
+	rtn
+
+gpio_out_inactive:
+	isolate1 7,null
+	branch gpio_out_flag
+
+gpio_out_active:
+	isolate0 7,null
+
+	/* temp is gpio number,  [7]=1,set out equa true flag if gpio active */
+gpio_out_flag:
+	setarg 0
+	nsetflag true,gpio_active_bit,pdata
+	ixor temp,temp
+	
+	/* temp is gpio number,0-31, [7]=out bit value */
+gpio_out:
+	arg core_gpio_out0,contw
+
+	//temp [4:0]=GPIO number, 0-31, [7]=bit value; contw is gpio reg base
+gpio_set_bit:
+	call gpio_common
+	isolate1 gpio_active_bit,temp
+	qsetflag true,pdata
+	istore 1,contw
+	rtn
+
+gpio_set_before_lpm_common:
+	arg -1,rega
+	hfetch 1,core_gpio_sel1
+	isolate1 1,pdata
+	call neglact4_from_23_pin,true	//spi
+	 
+	and pdata,0x3,regb
+	sub regb,1,null
+	call neglact2_form_25_pin,zero	//two spi
+	 
+	isolate1 2,pdata
+	call neglect2_from_6_pin,true	//uart
+	 
+	isolate1 3,pdata
+	call neglect4_from_9_pin,true	//spi
+
+	isolate1 5,pdata
+	call neglact2_form_27_pin,true	//clock external
+
+	isolate1 6,pdata
+	arg 4,queue
+	call neglact_1_pin,true
+	nsetflag true,4,rega			//pwm0 gpio4
+
+	isolate1 7,pdata
+	arg 5,queue
+	call neglact_1_pin,true			//pwm0 gpio5
+
+	hfetch 1,core_gpio_sel2
+	isolate1 0,pdata
+	arg 3,queue
+	call neglact_1_pin,true			//pwm0 gpio3
+	
+	hfetcht 1,core_gpio_sel
+	isolate1 0,temp
+	arg 5,queue
+	call neglact_1_pin,true			//ADC gpio5
+
+	ior temp,pdata
+
+	isolate1 1,pdata
+	arg 6,queue
+	call neglact_1_pin,true			//pwm0 or ADC gpio6
+	
+	isolate1 2,pdata
+	arg 7,queue
+	call neglact_1_pin,true			//pwm0 or ADC gpio7
+	
+	isolate1 3,pdata
+	arg 18,queue
+	call neglact_1_pin,true			//pwm0 or ADC gpio18
+	
+	isolate1 4,pdata
+	arg 19,queue
+	call neglact_1_pin,true			//pwm0 or ADC gpio19
+	
+	isolate1 5,pdata
+	arg 20,queue
+	call neglact_1_pin,true			//pwm0 or ADC gpio20
+	
+	isolate1 6,pdata
+	arg 21,queue
+	call neglact_1_pin,true			//pwm0 or ADC gpio21
+
+	isolate1 7,pdata
+	arg 22,queue
+	call neglact_1_pin,true			//pwm0 or ADC gpio22
+
+	hfetch 1,core_uart_ctrl
+	isolate1 4,pdata
+	call neglact2_form_2_pin,true
+	set1 mark_ext_patch,mark
+	bpatch patch32_5,mem_patch32
+
+	hfetch 4,core_gpio_pu0
+	hfetcht 4,core_gpio_pd0
+	ior temp,pdata
+	invert pdata,pdata
+	iand rega,pdata
+	//set0 4,pdata //revc
+	hfetcht 4,core_gpio_pd0
+	ior temp,pdata	
+	hstore 4,core_gpio_pd0
+	rtn
+neglect2_from_6_pin: //uart
+	 arg 6,queue
+	 branch neglect_2_pin
+neglect4_from_9_pin:
+	 arg 9,queue
+	 branch neglact_4_pin
+neglact4_from_23_pin:
+	 arg 23,queue
+	 branch neglact_4_pin
+neglact2_form_25_pin:
+	 arg 25,queue
+	 branch neglect_2_pin
+neglact2_form_27_pin:
+	 arg 27,queue
+	 branch neglect_2_pin
+neglact2_form_2_pin:
+	 arg 2,queue
+	 branch neglect_2_pin
+neglact_1_pin:
+	arg 1,loopcnt
+	branch neglect_pin_loop
+neglact_4_pin:
+	 arg 4,loopcnt
+	 branch neglect_pin_loop
+neglect_2_pin:
+	 arg 2,loopcnt
+neglect_pin_loop:
+	 qset0 rega
+	 increase 1,queue
+	 loop neglect_pin_loop
+	 rtn
+
+
+
+
+
+
+/* ===================== sniff GPIO CONTROL ======================= */
+gpio_cfg_uart_tx_output:
+	call gpio_uart2gpio
+	arg UART_WAKEUP_TX,temp
+	branch gpio_config_output
+
+gpio_pu_uart_tx:
+	call gpio_cfg_uart_tx_output
+	arg UART_WAKEUP_TX,temp
+	branch gpio_out_inactive
+
+
+
+gpio_rx_config_input_with_pu:
+	call gpio_uart2gpio
+	hfetch 1, core_gpio_pu0
+	set1 UART_WAKEUP_RX,pdata
+	hstore 1,core_gpio_pu0
+	arg UART_WAKEUP_RX,temp
+	branch gpio_config_input
+	
+gpio_uart2gpio:
+	hfetch 1,core_gpio_sel1
+	and_into 0xfb,pdata
+	hstore 1,core_gpio_sel1
+	rtn
+
+gpio_check_uart_state:
+	hfetch 1,core_gpio_sel1
+	isolate1 2,pdata
+	rtn
+
+load_chip_option:
+	call otp_enable_chgpump
+	setarg OTP_CHIP_FUNCTIONS
+	arg mem_chip_functions,rega
+	arg 0x02,temp
+	call otpd_read_data
+	branch otp_disable_chgpump
+	
+//mem_adc_config_flag 0:vinlpm 1:Hvin 2: GPIO
+
+adc_init_data:
+	set1 mark_ext_patch,mark
+	bpatch patch32_6,mem_patch32
+
+	call otp_enable_chgpump
+	setarg otp_adc_io_0_5V_addr
+	arg mem_0_5_adc_io_data,rega
+	arg 14,temp
+	call otpd_read_data
+	call otp_disable_chgpump
+	
+	fetch 1,mem_adc_config_flag
+	bbit1 ADC_CONFIG_VINLPM,adc_init_data_vinlpm
+	bbit1 ADC_CONFIG_HVIN,adc_init_data_hvin
+	bbit1 ADC_CONFIG_GPIO,adc_init_data_io
+	rtn	
+
+adc_init_data_vinlpm:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_vinlpm,zero
+	setarg 0x4dfa
+	store 2,mem_3v_adc_vinlpm_data	
+	setarg 0x4894
+	store 2,mem_2v_adc_vinlpm_data
+	branch set_vdd_reference_voltage_1v
+
+adc_check_data_vinlpm:
+	fetch 2,mem_3v_adc_vinlpm_data
+	nbranch adc_check_2v_vinlpm,blank
+	setarg 0x4dfa
+	store 2,mem_3v_adc_vinlpm_data
+adc_check_2v_vinlpm:	
+	fetch 2,mem_2v_adc_vinlpm_data
+	nbranch set_vdd_reference_voltage_1v,blank
+	setarg 0x4894
+	store 2,mem_2v_adc_vinlpm_data
+set_vdd_reference_voltage_1v:
+	setarg 100
+	store 2,mem_reference_voltage //set reference voltage = 1V
+	rtn		
+
+adc_init_data_hvin:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_hvin,zero
+	setarg 0x5932
+	store 2,mem_5v_adc_hvin_data	
+	setarg 0x4323
+	store 2,mem_1v_adc_hvin_data
+	branch set_vdd_reference_voltage_4v
+
+adc_check_data_hvin:
+	fetch 2,mem_5v_adc_hvin_data
+	nbranch adc_check_1v_hvin,blank
+	setarg 0x5932
+	store 2,mem_5v_adc_hvin_data
+adc_check_1v_hvin:	
+	fetch 2,mem_1v_adc_hvin_data
+	nbranch set_vdd_reference_voltage_4v,blank
+	setarg 0x4323
+	store 2,mem_1v_adc_hvin_data
+set_vdd_reference_voltage_4v:
+	setarg 400
+	store 2,mem_reference_voltage //set reference voltage = 4V
+	rtn 	
+
+adc_init_data_io:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_io,zero
+	setarg 0x6946
+	store 2,mem_1v_adc_io_data	
+	setarg 0x5377
+	store 2,mem_0_5_adc_io_data
+	branch set_vdd_reference_voltage_0_5v
+
+adc_check_data_io:
+	fetch 2,mem_1v_adc_io_data
+	nbranch adc_check_0_5v_io,blank
+	setarg 0x6946
+	store 2,mem_1v_adc_io_data
+adc_check_0_5v_io:
+	fetch 2,mem_0_5_adc_io_data
+	nbranch set_vdd_reference_voltage_0_5v,blank
+	setarg 0x5377
+	store 2,mem_0_5_adc_io_data
+set_vdd_reference_voltage_0_5v:
+	setarg 50
+	store 2,mem_reference_voltage //set reference voltage = 0.5V
+	rtn	
+
+
+adc_set_mode:
+	fetch 1,mem_adc_config_flag
+	bbit1 ADC_CONFIG_VINLPM,adc_check_vinlpm
+	bbit1 ADC_CONFIG_HVIN,adc_check_hvin
+	bbit1 ADC_CONFIG_GPIO,adc_check_gpio
+	rtn
+adc_check_vinlpm:
+	hjam 0xbf,rf_adc_mode	//read VINLPM voltage directly	
+	branch read_adc
+adc_check_hvin:
+	hjam 0xaf,rf_adc_mode	//read HVIN voltage directly
+	branch read_adc
+adc_check_gpio:
+	hjam 0x8f,rf_adc_mode
+	fetch 1,mem_adc_channel
+	hstore 1,rf_adc_ch
+	branch read_adc
+read_adc:
+	set1 mark_ext_patch,mark
+	bpatch patch32_7,mem_patch32
+	hfetch 1,core_uart_baud + 1
+	set1 7,pdata
+	hstore 1,core_uart_baud + 1 
+	hfetch 1,rf_adc_ch
+	or_into 0x30,pdata
+	hstore 1,rf_adc_ch
+	hjam 0x7c,rfen_adc
+	hjam 0xaa,rf_adc_gc
+	nop 5000
+	hfetcht 2,core_adc_sum
+	hfetch 1,core_uart_baud + 1
+	set0 7,pdata
+	hstore 1,core_uart_baud + 1
+	storet 2,mem_adc_current_value
+	rtn
+
+vdd_calculate_by_mode:
+	set1 mark_ext_patch,mark
+	bpatch patch33_0,mem_patch33
+	fetch 1,mem_adc_config_flag
+	bbit1 ADC_CONFIG_VINLPM,vdd_calculate_vinlpm
+	bbit1 ADC_CONFIG_HVIN,vdd_calculate_hvin
+	bbit1 ADC_CONFIG_GPIO,vdd_calculate_io
+	rtn
+
+vdd_calculate_vinlpm:
+	fetch 2,mem_3v_adc_vinlpm_data
+	fetcht 2,mem_2v_adc_vinlpm_data
+	arg 200,regc
+	branch vdd_calculate
+
+vdd_calculate_hvin:
+	fetch 2,mem_5v_adc_hvin_data
+	fetcht 2,mem_1v_adc_hvin_data
+	arg 100,regc
+	branch vdd_calculate
+
+vdd_calculate_io:
+	fetch 2,mem_1v_adc_io_data
+	fetcht 2,mem_0_5_adc_io_data
+	arg 50,regc
+	branch vdd_calculate
+	
+vdd_calculate:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate1,positive
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	iadd regb,pdata
+vdd_calculate2:
+	idiv rega
+	call wait_div_end
+	quotient pdata	
+	rtn
+
+vdd_calculate1:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	isub regb,pdata
+	branch vdd_calculate2
+
+
+ifdef SPI_SIMULATE
+/******************************simulate spi slave start**********************************/
+
+/*
+// Define SPI struct, gpio config
+mem_spi_simulate_struct:
+02	#cs
+03	#sclk
+04	#mosi
+05	#miso
+08	#motion
+*/
+
+/*
+Brief: spi_simulate_init_slave
+Input: None
+Output: None
+Return: None
+Brief: cs_gpio,sclk_gpio,mosi_gpio : input
+	miso_gpio : output
+*/
+spi_simulate_init_slave:
+	call spi_simulate_variable_release_slave
+	branch spi_simulate_gpio_config_slave
+
+spi_simulate_variable_release_slave:
+	arg mem_spi_simulate_read_byte_slave,contw
+	arg 53,loopcnt
+	call buffer_release
+	arg mem_spi_simulate_write_byte_slave,contw
+	arg 54,loopcnt
+	branch buffer_release
+
+buffer_release:
+	setarg 0
+buffer_release_loop:
+	istore 1,contw
+	loop buffer_release_loop
+	rtn
+	
+spi_simulate_gpio_config_slave:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_sclk_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_mosi_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_miso_gpio
+	call gpio_config_output
+	fetcht 1,mem_spi_simulate_motion_gpio
+	call gpio_config_output
+	branch spi_simulate_motion_disable
+
+spi_simulate_motion_enable:
+	fetcht 1,mem_spi_simulate_motion_gpio
+	branch gpio_out_inactive
+spi_simulate_motion_disable:
+	fetcht 1,mem_spi_simulate_motion_gpio
+	branch gpio_out_active
+	
+/*
+Brief: spi_simulate_read_byte_slave
+Input: rega: read length
+Output: mem_spi_simulate_read_byte_slave: read buffer
+Return: None
+Brief: when the cs_gpio is low level,slave reads data from master at the rising edge of the sclk gpio
+*/
+spi_simulate_read_byte_slave:
+	copy rega,pdata
+	store 1,mem_spi_simulate_read_length_slave
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nrtn true
+spi_simulate_read_byte_slave1:	
+	jam 0,mem_spi_simulate_read_byte_slave_temp
+	arg 8,loopcnt
+spi_simulate_read_byte_slave_loop:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_end,true
+	
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	branch spi_simulate_read_byte_slave_loop,true	
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	lshift pdata,pdata
+	store 1,mem_spi_simulate_read_byte_slave_temp
+	fetcht 1, mem_spi_simulate_mosi_gpio
+	call gpio_get_bit
+	ncall spi_simulate_read_byte_or_one,true
+spi_simulate_read_byte_slave_loop1:	
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_end,true
+
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_loop1,true
+	loop spi_simulate_read_byte_slave_loop
+	
+	fetcht 1,mem_spi_simulate_read_length_slave_temp
+	setarg mem_spi_simulate_read_byte_slave
+	iadd temp,contw
+	copy contw,regb
+	increase 1,temp
+	storet 1,mem_spi_simulate_read_length_slave_temp
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	copy regb,contw
+	istore 1,contw
+
+	fetch 1,mem_spi_simulate_read_length_slave
+	increase -1,pdata
+	store 1,mem_spi_simulate_read_length_slave
+	nbranch spi_simulate_read_byte_slave1,blank
+	
+spi_simulate_read_byte_slave_loop2:	
+	fetcht 1, mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_loop2,true
+spi_simulate_read_byte_slave_end:	
+	jam 0,mem_spi_simulate_read_length_slave
+	jam 0,mem_spi_simulate_read_length_slave_temp
+	jam 0,mem_spi_simulate_read_byte_slave_temp
+	rtn
+
+spi_simulate_read_byte_or_one:
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	or_into 1,pdata
+	store 1,mem_spi_simulate_read_byte_slave_temp
+	rtn
+
+
+/*
+Brief: spi_simulate_write_byte_slave
+Input: rega: write length;  write buffer:mem_spi_simulate_write_byte_slave;
+Output: None
+Return: None
+Brief: when the cs_gpio is low level,slave writes data to master at the falling edge of the sclk gpio
+*/
+spi_simulate_write_byte_slave:
+	copy rega,pdata
+	store 1,mem_spi_simulate_write_length_slave
+	jam 0,mem_spi_simulate_write_length_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nrtn true
+spi_simulate_write_byte_slave1:
+	fetcht 1,mem_spi_simulate_write_length_slave_temp
+	setarg mem_spi_simulate_write_byte_slave
+	iadd temp,contr
+	copy contr,regb
+	increase 1,temp
+	storet 1,mem_spi_simulate_write_length_slave_temp
+	copy regb,contr
+	ifetch 1,contr
+	store 1,mem_spi_simulate_write_byte_slave_temp
+	
+	arg 8,loopcnt
+spi_simulate_write_byte_slave_loop:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_end,true
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	branch spi_simulate_write_byte_slave_loop,true
+spi_simulate_write_byte_slave_loop1:
+	fetch 1,mem_spi_simulate_write_byte_slave_temp
+	store 1,mem_spi_simulate_write_byte_slave_temp_temp
+	and_into 0x80,pdata
+	beq 0x80,spi_simulate_set_miso_gpio_high
+	call spi_simulate_set_miso_gpio_low
+spi_simulate_write_byte_slave_loop2:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_end,true
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_loop2,true	
+	fetch 1,mem_spi_simulate_write_byte_slave_temp_temp
+	lshift pdata,pdata
+	store 1,mem_spi_simulate_write_byte_slave_temp
+	loop spi_simulate_write_byte_slave_loop
+
+	fetch 1,mem_spi_simulate_write_length_slave
+	increase -1,pdata
+	store 1,mem_spi_simulate_write_length_slave
+	nbranch spi_simulate_write_byte_slave1,blank
+	
+spi_simulate_write_byte_slave_loop3:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	branch spi_simulate_write_byte_slave_loop3,true
+spi_simulate_write_byte_slave_end:	
+	jam 0,mem_spi_simulate_write_length_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp_temp
+	rtn
+	
+spi_simulate_set_miso_gpio_high:
+	fetcht 1,mem_spi_simulate_miso_gpio
+	call gpio_out_inactive
+	branch spi_simulate_write_byte_slave_loop2
+spi_simulate_set_miso_gpio_low:
+	fetcht 1,mem_spi_simulate_miso_gpio
+	branch gpio_out_active	
+
+/******************************simulate spi slave end**********************************/
+
+endif  //SPI_SIMULATE
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/rom.format
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/rom.format	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/rom.format	(working copy)
@@ -0,0 +1,7275 @@
+
+	width = 32
+	const length = 12000
+
+	/* ========= memory ============== */
+memalloc(
+/* 00-0f most frequently used area  */
+1 mem_le_adv_transmit
+1 mem_le_adv_waitcnt
+1 mem_le_adv_rcv
+1 mem_le_req_rcv
+1 mem_le_scanrsp_rcv
+1 mem_le_conn_rcv
+
+1 mem_inquiryscan_waitcnt
+1 mem_inquiryscan_rcvcnt
+1 mem_pagescan_waitcnt
+1 mem_pagescan_rcvcnt
+1 mem_pagescan_rcvfhscnt
+1 mem_slave_rcvcnt
+1 mem_page_transmit
+1 mem_page_rcv
+1 mem_page_rcv_fhs
+1 mem_master_rcvcnt
+
+/* 10-1f debug area */
+1 mem_fhs_wait_counter
+1 mem_newconnto_counter
+1 mem_inquiry_transmit
+1 mem_inquiry_rcv
+1 mem_fw_ver
+1 mem_current_context
+1 mem_le_ch_mapped
+1 mem_last_freq
+1 mem_rssi
+1 mem_rx_type
+2 mem_rx_hec_err
+2 mem_rx_crc_err
+2 mem_context_ptr
+8 mem_display
+8 mem_bcd
+
+		/* context swappable area */
+1 mem_state
+1 mem_mode
+2 mem_tsniff
+4 mem_sniff_anchor
+6 mem_clk_offset
+2 mem_rx_window
+3 mem_plap
+1 mem_puap
+2 mem_pnap
+1 mem_conn_handle
+1 mem_arq
+1 mem_lmp_to_send
+1 mem_lmi_opcode
+1 mem_lmo_reason
+1 mem_op
+1 mem_state_map
+4 mem_supervision_timer
+2 mem_supervision_to
+1 mem_name_offset
+1 mem_key_size
+1 mem_conn_sm
+12 mem_aco
+16 mem_kc
+1 mem_conn_timer
+1 mem_sniff_attempt
+1 mem_sniff_timeout
+2 mem_dsniff
+1 mem_amaddr
+1 mem_lmo_opcode1
+1 mem_lmi_opcode1
+1 mem_lmo_reason1
+1 mem_lmo_tid1
+1 mem_lmo_opcode2
+1 mem_lmi_opcode2
+1 mem_lmo_reason2
+1 mem_lmo_tid2
+
+3 mem_hci_version
+2 mem_acl_pktlen
+1 mem_sco_pktlen
+2 mem_acl_pktcnt
+2 mem_sco_pktcnt
+
+1 mem_current_sniff_attempt
+1 mem_current_sniff_timeout
+1 mem_nfreq_index_inq
+1 mem_nfreq_index_page
+1 mem_ninqy_index
+1 mem_fhs_misc
+
+
+
+/* lpo related */
+4 mem_subsniff_instant
+1 mem_subsniff_rate
+2 mem_subsniff_tcmax
+1 mem_subsniff_tsniff
+1 mem_lpm_adjust
+6 mem_sync_clke
+1 mem_lpm_current_mult
+4 mem_gpio_wakeup_low
+4 mem_gpio_wakeup_high
+	
+
+/* sco & esco */
+1 mem_air_mode
+1 mem_sco_asso_handle
+2 mem_sco_handle
+1 mem_esco_desco
+1 mem_esco_type
+1 mem_neogotiation_state
+1 mem_saved_amaddr
+1 mem_esco_arq
+1 mem_esco_saved_arq
+30 mem_sco_obuf
+30 mem_sco_ibuf
+1 mem_sco_poll
+
+
+
+//page
+1 mem_npage_index
+1 mem_page_mode
+4 mem_page_clk
+
+
+/* test related */
+2 mem_tst_pktcnt_sync
+2 mem_tst_pktcnt_hec
+2 mem_tst_pktcnt_crc
+2 mem_tst_pktcnt_dmh
+3 mem_tmp_buffer_head
+80 mem_tmp_buffer
+
+
+1 mem_tester_emulate
+0 mem_temp_payload
+1 test_mode_scenario
+1 test_mode_hopping_mode
+1 test_mode_tx_freq
+1 test_mode_rx_freq
+1 test_mode_power_mode
+1 test_mode_poll_period
+1 test_mode_packet_type
+2 test_mode_data_length
+1 mem_test_mode_old_debug_config
+1 mem_tester_cnt
+
+
+/*temp mem*/
+1 mem_temp_am_addr
+1 mem_temp_arq
+
+//
+2 mem_len
+4 mem_clkn_bt
+4 mem_clke_bt
+4 mem_dpll_clkn
+1 mem_connection_options
+
+1 mem_nameres_cnt
+2 mem_txptr
+2 mem_slot_offset
+
+//extm
+1 extm_fhs_misc
+1 extm_newconn_am_addr
+3 extm_class
+3 extm_lap
+1 extm_uap
+3 extm_nap
+
+
+//debug
+1 mem_debug_config
+1 mem_lch_code
+1 mem_fhs_am_addr
+2 mem_dpll_error
+36 mem_bdaddr_list_buff
+1 mem_select_list_item
+0 mem_temp_reconn_record
+1 mem_record_bt_mode
+6 mem_temp_lap
+2 mem_list_item_ptr
+
+100 mem_eir
+)
+
+
+xmemalloc(
+/* patch enable 0x4000-0x403f  */
+
+1 mem_patch00
+1 mem_patch01
+1 mem_patch02
+1 mem_patch03
+1 mem_patch04
+1 mem_patch05
+1 mem_patch06
+1 mem_patch07
+1 mem_patch08
+1 mem_patch09
+1 mem_patch0a
+1 mem_patch0b
+1 mem_patch0c
+1 mem_patch0d
+1 mem_patch0e
+1 mem_patch0f
+1 mem_patch10
+1 mem_patch11
+1 mem_patch12
+1 mem_patch13
+1 mem_patch14
+1 mem_patch15
+1 mem_patch16
+1 mem_patch17
+1 mem_patch18
+1 mem_patch19
+1 mem_patch1a
+1 mem_patch1b
+1 mem_patch1c
+1 mem_patch1d
+1 mem_patch1e
+1 mem_patch1f
+1 mem_patch20
+1 mem_patch21
+1 mem_patch22
+1 mem_patch23
+1 mem_patch24
+1 mem_patch25
+1 mem_patch26
+1 mem_patch27
+1 mem_patch28
+1 mem_patch29
+1 mem_patch2a
+1 mem_patch2b
+1 mem_patch2c
+1 mem_patch2d
+1 mem_patch2e
+1 mem_patch2f
+1 mem_patch30
+1 mem_patch31
+1 mem_patch32
+1 mem_patch33
+1 mem_patch34
+1 mem_patch35
+1 mem_patch36
+1 mem_patch37
+1 mem_patch38
+1 mem_patch39
+1 mem_patch3a
+1 mem_patch3b
+1 mem_patch3c
+1 mem_patch3d
+1 mem_patch3e
+1 mem_patch3f
+
+	/* 3 device contexts  */
+240 mem_context
+1 mem_current_amaddr
+1 mem_lpm_mode
+1 mem_device_option
+1 mem_scan_mode
+4 mem_last_clkn
+
+	/* parameters */
+8 mem_features
+3 mem_lap
+1 mem_uap
+2 mem_nap
+1 mem_npage
+3 mem_glap
+3 mem_class
+2 mem_iscan_window
+2 mem_iscan_interval
+2 mem_pscan_window
+2 mem_pscan_interval
+2 mem_page_interval
+2 mem_page_window
+2 mem_page_to
+2 mem_inq_window
+1 mem_fcomp_mul
+1 mem_fcomp_div
+2 mem_rx_window_init
+2 mem_rx_window_sniff
+2 mem_rf_init_ptr
+
+	/* connection related */
+1 mem_last_type
+1 mem_last_type_esco
+1 mem_last_type_saved
+2 mem_retransmission_cnt
+4 mem_next_btclk
+
+1 mem_rf_rccal
+1 mem_handle_num
+1 mem_max_slot
+1 mem_eir_enable
+
+/* AFH related */
+4 mem_afh_instant
+2 mem_afh_error_total
+1 mem_afh_cfg
+1 mem_afh_new_mod
+5 mem_afh_map_lo
+5 mem_afh_map_hi
+1 mem_afh_used
+2 mem_afh_index
+11 mem_afh_map_new
+80 mem_afh_map
+4 mem_afh_timer
+10 mem_afh_classify_channel_map
+
+
+	/* lpm related */
+2 mem_chip_functions
+2 mem_lpm_wake_lock
+2 mem_lpm_interval
+1 mem_lpm_overhead
+1 mem_lpm_hibernate_switch
+1 mem_esco_addr
+1 mem_sniff_unint_lost
+1 mem_ptt
+4 mem_sleep_counter   //should be 0x41fc in REVC
+4 mem_sleep_counter_all
+6 mem_sleep_clkn
+3 mem_sniff_rcv
+3 mem_sniff_lost
+3 mem_clks_per_lpo
+
+1 mem_lpm_mult
+1 mem_lpm_mult_timeout
+1 mem_lpm_mult_cnt
+
+/* 8139-813b lpm_ctrl[31:12] */
+3 mem_lpm_config				
+
+1 mem_lpm_xtalcnt
+1 mem_lpm_buckcnt
+1 mem_lpm_ldocnt
+1 mem_lpm_isogate
+1 mem_lpm_isogate_final
+16 mem_saved_gpio	// should be 0x421e in REVC
+3 mem_saved_gsel
+8 mem_saved_mark
+1 mem_saved_spidctrl
+2 mem_patch_ptr
+2 mem_patch_len
+
+32 mem_timers
+
+/*LINK KEY*/
+1 mem_link_key_exists
+3 mem_link_key_eeprom_head
+16 mem_link_key
+
+
+/* HCI */
+1 mem_hci_cmd
+1 mem_hci_conn_handle
+3 mem_hci_plap
+1 mem_hci_puap
+2 mem_hci_pnap
+
+/*Peripherals*/
+1 mem_uartd_rxitems_got_data
+1 mem_uartd_rxitems_threshold
+2 mem_uartd_rx_timeout
+
+1 mem_tx_lch
+2 mem_tx_len
+
+1 mem_tx_power
+
+1 mem_context_number
+
+1 mem_rf_init_data
+)
+
+(//bluetooth tx power
+0 TX_POWER_0DB
+1 TX_POWER_3DB
+2 TX_POWER_5DB
+3 TX_POWER_f3DB
+4 TX_POWER_f5DB
+20 TX_POWER_PAIR
+)
+
+
+0x3b17 rom_lpm_sleep
+0x59e0 rom_save_ucode
+
+0x4219 rom_mem_lpm_xtalcnt
+0x423b rom_mem_patch_ptr
+0x423d rom_mem_patch_len
+
+0x5b1a rom_otpd_read_data
+0x5ada rom_otp_write
+	/* context */
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	/* 3.0 only */
+0x18 coffset_lmp_to_send
+0x1b coffset_op
+0x1c coffset_state_map
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+
+80 context_size
+3 context_num
+)
+
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+
+/* ========= parameters ============== */
+(
+0x0050 param_newconn_arq
+0x0007 param_esco_addr
+0x0010 param_conn_handle
+0x01f0 param_conn_handle_comp
+0x0020 param_newconnto
+0x0008 param_pagerespto
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+0x00ff param_ninquiry
+0x2000 param_page_to
+0x0005 param_max_slot
+0x0010 param_sco_poll
+
+/* 6Mhz clock setting */
+/* 12Mhz clock setting */
+0x0e43 param_tx_setup
+0x09d0 param_rx_setup_earlier
+0x0600 param_rf_setup
+0x03bb param_clke_cal
+0x0600 param_conn_access 
+0x0800 param_conn_access_wider
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+3000 param_chgpump_delay
+
+3 param_featrue_ssp
+0x0101 param_lmpext_ssp_enable
+339 param_acl_pktlen
+30   param_sco_pktlen
+1     param_acl_pktcnt		/*buffer acl pkt cnt*/
+7     param_sco_pktcnt
+
+
+0x8fffff param_features0
+0x9d83fe param_features1  // not support afh
+0x8359     param_features2
+0x000033 param_unap
+0x001177 param_lap
+0x9e8b33 param_glap
+0x002540 param_class//0x180208 //0x002580//402500//240404
+0x12e904 param_hci_version
+0x000a04 param_lmp_version//0x0a04
+0x000a06 param_lmp_version0
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+0x0020 param_page_window
+0x0020 param_inq_window
+0x1c80 param_supervision_to
+39 param_fcomp_div
+2 param_fcomp_mul
+6     param_name_len
+0x535442 param_name
+0x344950 param_name1
+
+
+)
+
+/* ======= packet types  ========= */
+(
+0x0      type_null    
+0x1      type_poll   
+0x2      type_fhs    
+0x3      type_dm1    
+0x4      type_dh1    
+0x5      type_hv1    
+0x6      type_hv2    
+0x7      type_hv3    
+0x8      type_3dh1     
+0x9      type_aux1   
+0xa      type_dm3    
+0xb      type_dh3    
+0xe      type_dm5    
+0xf      type_dh5    
+0x10     type_id
+0x11     type_shutdown
+0x13     type_lmp
+)
+
+/* ========== flag[6] =============== */
+(
+0        always        /* always 1 */
+1        true          /* set/rstn by verify,compare,icompare (true) */
+2        positive      /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output >= 0 */
+3        timeout       /* read only, the timeout from timers */
+5        zero          /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output == 0 */
+6        crc_failed    /* level, cleared by hop_start */
+7        enable_white  /* outside mux decide whether to load bt_clk or response_X */
+8        enable_parity /* level */
+9        enable_crc    /* level */
+10       enable_hec    /* level */
+11       decode_fec1   /* level */
+12       decode_fec2   /* level */
+13       decode_fec0   /* level */
+14       encrypt       /* level */
+15       crc16       /* for caculate ccitt crc16 */
+16       swfine	/* =0 stop_watch count based on oneslot =1 on 1 clock */
+20       rqst_freq    /* pulse, to start calculating frequency */
+21       recalc        /* pulse, to recalculate the fhs_parity */
+22       init_encrypt  /* pulse, issued to initialize encrption */
+23       mhalfbnd    /* half slot boundary of clke_rt, or when clke_bt[0] toggles */
+24       sync          /* sync found as a result of correlation,set/rstn by correlate opcode */
+25       user10    /* user10 */
+26       kc_p_activate  /* pulse to recalc the kc_p */
+27       encode_fec1   /* level */
+28       encode_fec2   /* level */
+29       encode_fec0   /* level */
+30       packet_end    /* pulse */
+32       is_tx         /* level */
+33       is_rx         /* level */
+34       halfslot     /* pulse, read only, when clkn_bt[0] toggles */
+35       oneslot      /* pulse, read only, when clkn_bt[1] toggles */
+36       mslotbnd     /* pulse, read only, when clke_bt[1] toggles */
+37       expire       /* level, read only, when selected clock source exceed timeup value */
+38       meet         /* level, read only, when selected clock source meet timeup value */
+39       tx_clear     /* level, read only, indicate tx pipe is cleared */
+40       user         /* user0 */
+41       master        /* user1 */
+42       slave2         /* user2 */
+43       wake           /* user3 */
+44       user2        /* user4 */
+45       match         /* user5 */
+46       attempt        /* user6 */
+47       user3          /* user7 */
+48       clknt         /* user8 */
+49	   user7 	/* user9 */
+50       synchronize   /* synchronize lpo and regular version of the clock */
+51       lpo_edge  /* read only, 3 clocks after risling edge of lpo clock */
+52       blank         /* C0 only, means pdata == 0 */
+53       modone          /* set divide operation is done */
+54       le		/* bluetooth 4.0 LE enable */
+55       aes_ready	/* set when aes is ok */
+63       never         /* read only, always 0 */
+)
+
+default flag = always
+
+/* ========== reg[6] =============== */
+(
+0        mark   /* for keeping strobes, more permanent */
+1        type   /* save and verify during rx */     /* rw */
+2        temp   /* general purpose register, 64 bits */
+3        contru  /* contr uart */
+4        am_addr      /* verify during rx, read and send during tx */ /* ro */
+5        contw        /* last mem_addr during write */
+6        contr        /* last mem_addr during read */
+7        queue    /* the index of qset*,qisolate* commands, ie, if queue = 3, qset/qisolate operate on bit3 */
+8        debug    /* can be wired out for observation */
+9        access   /* the 72 bit access word */
+10       contwu   /* contw uart */
+11       timeup        /* when does certain counter expire */
+12       pwindow       /* bit 71-61 of pdata; because on rx, bits shifts in from 71 down */
+13       fhs_parity    /* re-gernated based on bt_adr( {nap,uap,lap} ) when recalc flag is pulsed */
+14       white_init    /* init value of the whitening */
+15       crc24_init        /* init crc24 lfsr, 24 bits */
+16       interrupts    /* set interrupts, 40 bits */
+17       rega          /* general purpose register, 32 bits */
+18       regb          /* general purpose register, 32 bits */
+19       regc          /* general purpose register, 17 bits */
+20       regab         /* concat of {rega,regb}, thus 64 bits */
+21       radio_ctrl   /* radio i/f direct i/o ctrl, check following "radio_ctrl" section */
+21       ctrl_reg     /* 2023 and after */
+22       jtag_addr    /* load jtag address field, lsb */
+23       freq_index   /* 7 bit read only */
+24       jtag_data    /* wdata to and rdata from jtag */
+25       clkn              /* {clkn_bt, clkn_rt} */
+26       clke              /* {clke_bt, clke_rt} */
+27       stop_watch
+28       fhs_misc   /* SR, SP, pscan mode */
+29       fhs_class  /* class field in fhs */
+30       fhs0   /* read only, bit 0-71 of fhs word */
+31       fhs1   /* read only, bit 72-142 of fhs word */
+32       bt_adr /* r/w, the bt_addr to access gen and freq hopping, contain only lap and uap */
+33       bt_clk /* r/w, the bt_clk for freq hopping */
+34       clkn_bt  /* read only, native bluetooth clock, free running 3.2KHz  or controlled by RTHALFSLOT register */
+35       clkn_rt  /* read only, native realtime clock, free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+36       freq_mode
+/* wire even_train    = freq_mode[4];    // odd even train                            */
+/* wire conn_mode     = 3;    // connection                                           */
+/* wire iqpgscan_mode = 2;    // slave in inquiry and page (not response)             */
+/* wire iqpgresp_mode = 1;    // slave in inquriy and page (response only)            */
+/* wire inqypage_mode = 0;    // master in inquiry and page(response or not response) */
+37       xin   /* x parameter, read only */
+38       N_tx_slot /* the N factor in equations for Xi,Xp,Xprm,Xprs */
+39 	   auxcnt
+40       clke_bt  /* r/w,  external bluetooth clock , free running 3.2KHz or controlled by RTHALFSLOT register */
+41       clke_rt  /* r/w,  external realtime clock, , free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+43       host_mode         /* generic stuff for kick starts */
+44       lap
+45       uap
+46       nap         
+47       regext		/* r/w extended 12x32bit registers,  indexed by regext_index */
+48       alarm             /* r/w, lpo wake up time, this is also how lpo and current clock keep sync */
+49       lpo_time          /* read only, this is the value to be copied back to clkn/clke after wakeup */
+50       kc_ls             /* secret key,                71: 0 */
+51       kc_ms             /* secret key,               127:72 */
+52       g1l               /* encryption length                */
+53		mask3ff		/* for mask 0x3ff operation */
+54       aes_ctrl		
+56       regext_index   /* index of regext */
+57	     loopcnt
+58      stack			/* current return address */
+59       stack_ptr		/* stack depth */
+61         pc /* direct goto */
+62       null              /* to nowhere */
+63       pdata /* the shift register */
+)
+default reg = pdata
+
+/* regext_index */
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+/* ========== radio_ctrl========= */
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+/* assign BPWR = radio_ctrl[0]; */
+/* assign PARAMP = radio_ctrl[1]; */
+/* assign XTALPU = radio_ctrl[2]; */
+/* assign SYNTHPU = radio_ctrl[3]; */
+/* assign TXPU = radio_ctrl[4]; */
+/* assign RXPU = radio_ctrl[5]; */
+/* assign SLCTRL = radio_ctrl[6]; */
+/* assign XTALSEL_MUX_SEL = radio_ctrl[7] */
+
+
+/* =========== destination[4] ============== */
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+
+/* =========== source[4] ============= */
+(
+1 txf
+3 demod
+)
+default source = 0
+
+
+/* ============== mark ============= *//*0 - 47 */
+(
+
+0  mark_fhs_eir  
+1  mark_rxbuf_inuse
+2  mark_tx_l2cap
+3  mark_switch_initiated
+4  mark_accept_switch
+5  mark_loopback
+7  mark_esco
+8  mark_esco_rxok
+9  mark_context
+10 mark_am_addr_broadcast
+11 mark_fhs_already_good
+12 mark_page_trainb
+13 mark_lpm_mult_enable
+14 mark_usb_flag
+15 mark_old_packet
+16 mark_longpacket
+17 mark_testmode
+18 mark_ar2
+19 mark_h5tx_rp
+20 mark_h5tx_crc	
+21 mark_h5tx_retransmit
+22 mark_h5rx_pstart
+23 mark_h5_sync
+24 mark_h5_reinit
+28 mark_inquiry_on
+29 mark_inquiry_state
+30 mark_inquiry_trainb
+31 mark_periodical_diac
+32 mark_all_diac
+33 mark_slave_in_rand_accepted
+34 mark_reconn_recieve_switch
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_conext
+40 mark_24g_search_pair
+41 mark_24g_normal_rcv
+42 mark_eeprom_size
+// REVAB:max 35, REVC:max 63
+
+)
+
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+
+
+/* ============== soft timers ============== */
+(
+0 h5_reinit_timer
+1 hci_retransmit_timer
+1 le_adv_interval_timer
+2 inquiry_length_timer
+3 le_scan_interval_timer
+4 page_length_timer
+5 iscan_interval_timer
+6 pscan_interval_timer
+7 lpo_delay_timer
+8 ui_hundred_millisecond_timer
+9 ui_led_blink
+10 switch_wait_timer
+11 enpt_delay_timer
+12 temp_timer
+13 page_interval_timer
+14 uart_rx_timer
+)
+(
+0 ui_led_stop
+1 ui_led_start
+2 ui_led_dark_time
+3 ui_led_light_time
+)
+(
+1 hci_cmd_inquiry
+2 hci_cmd_inquiry_cancel
+3 hci_cmd_remote_name_req
+4 hci_cmd_remote_feature_req
+5 hci_cmd_create_conn
+6 hci_cmd_disconn
+7 hci_cmd_accept_conn
+8 hci_cmd_reject_conn
+9 hci_cmd_pair
+10 hci_cmd_nopair
+11 hci_cmd_linkkey
+12 hci_cmd_nokey
+13 hci_cmd_auth
+14 hci_cmd_stopencrypt
+15 hci_cmd_startencrypt
+16 hci_cmd_setup_sco
+17 hci_cmd_disconn_sco
+18 hci_cmd_in_sniff
+19 hci_cmd_exit_sniff
+20 hci_cmd_remote_version_req
+21 hci_cmd_remote_ext_features_req
+22 hci_cmd_io_cap
+23 hci_cmd_role_discovery
+24 hci_cmd_role_switch
+25 hci_cmd_accept_with_switch
+26 hci_cmd_detach
+27 hci_cmd_le_create_conn
+28 hci_cmd_accept_sco_conn
+80 hci_cmd_wait_remote_feature
+81 hci_cmd_wait_remote_ext_feature
+82 hci_cmd_wait_remote_name
+)
+
+
+
+/* ============== debug ============= */
+(
+0 debug_neg_skew
+1 debug_bitbucket
+2 debug_dont_clear_got_tx
+3 debug_scatter_enabled
+4 debug_tx_fixed_freq
+5 debug_rx_fixed_freq
+6 debug_tx_pattern
+)
+
+/* ============== tester_emulator ============= */
+(
+0 tester_fixed_flow
+1 tester_fixed_flow_polarity
+2 tester_change
+3 tester_exit
+4 tester_pattern_test
+5 tester_whitening_change
+6 tester_fixed_freq
+7 tester_no_whitening
+)
+
+/* ============== mode ==========*/
+(
+0 mode_le
+1 mode_master
+2 afh_enable
+3 afh_change
+4 send_sco_when_slave
+5 first_seqnx
+)
+
+/* ============== state_map ==========*/
+(
+0 smap_lmptidinit
+1 smap_lmptid
+2 smap_encryption
+3 smap_name_res
+4 smap_name_req
+5 smap_edr
+6 smap_rxlmp
+7 smap_rxl2cap
+)
+(
+0 state_inconn
+1 state_insniff
+2 state_insco 
+3 state_inpage
+4 state_conn_comp
+5 state_init_seq
+6 state_combkey
+7 state_linkkey
+)
+(
+0 op_send_sres
+1 op_auth_req
+2 op_inrand_req
+3 op_disconn
+4 op_stop_enc
+5 op_start_enc
+6 op_txl2cap
+7 op_pkt_comp
+)
+
+
+/* ============== arq [3] ================ */
+(
+0 flow
+1 arqn
+2 seqn
+3 wack
+4 flowx              /* out */  /* not really in memory */
+5 arqnx              /* out */
+6 seqnx              /* out */
+7 bcast1             /* first broadcast received */
+)
+
+/* arq          {flow,arqn,seqn}, read/write */
+/* [0] flow r/w  acl full status of the other, store during rx, checked during tx */
+/* [1] arqn r/w  ack of the other during rx (ack tx fifo),                        */
+/* [2] seqn r/w  seqn of the other, check during rx                               */ 
+/* arqx         {flowx,arqnx,seqnx} */
+/* [0] flowx r/o flow back to the other, 1 alow send, 0 not to send, read only tx */
+/* [1] arqnx r/w ack to the other, set by rx, send back on tx                     */
+/* [2] seqnx r/w toggled by arqn, to be send during tx                            */ 
+
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+)
+
+/* AFH flags */
+(
+0 AFH_CFG_ON
+1 AFH_CFG_TIMER
+2 send_lmp_set_afh
+3 AFH_CFG_REPORT_MODE
+4 AFH_CFG_MASTER_SENT_REQ
+)
+
+/* LLID CODE */
+(	
+1 LLID_L2CAP_CONT
+2 LLID_L2CAP_START
+3 LLID_LMP
+)
+
+/* ============== master_state ==========*/
+(
+0  master_in_idle
+1  master_in_inquiry
+2  master_in_page
+10 master_in_becoming_slave
+15 master_in_conn
+)
+(
+0 newrev_feature_bettx
+1 newrev_feature_betplltx
+2 newrev_feature_skip_retransmit
+3 newrev_feature_init_radio_after_sleep
+4 newrev_feature_no_lpolog
+)
+/*************mem_pincode_state****************/
+(
+0 pincode_state_ilde
+1 pincode_state_wait_pincode
+2 pincode_state_pincode_ready
+)
+
+
+// lpm_write
+(
+1 lpmreg_sel_ctrl
+2 lpmreg_sel_ctrl2
+4 lpmreg_sel_gpiolow
+8 lpmreg_sel_gpiohigh
+16 lpmreg_sel_counter
+)
+
+//scan_mode
+(
+0 inq_scan_mode
+1 page_scan_mode
+2 page_inq_enable
+)
+//mem_neogotiation_state
+(
+ 0 default_neogotiation_state
+ 1 prarm_neogotiation
+)
+
+//mem_lpm_wake_lock
+(
+
+2 wake_lock_hci_host
+3 wake_link_key_exists
+4 wake_lock_delay
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+10 wake_lock_lmp_tx
+11 wake_lock_lmp_rx
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+
+)
+
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+
+
+//sniff UART_TX UART_RX
+(
+6 UART_WAKEUP_TX
+7 UART_WAKEUP_RX
+)
+
+
+
+omemalloc(
+// patch allocated
+4 mem_24g_tx_btclk	
+1 mem_24g_interval
+1 mem_24g_txfail_cnt
+1 mem_24g_attempt_cnt
+1 mem_24g_attempt_flag
+3 mem_24g_rxfail_cnt
+1 mem_24g_retry
+1 mem_24g_pid
+1 mem_24g_datalen
+2 mem_24g_crc
+64 mem_24g_rxbuf
+4 mem_24g_addr
+2 mem_24g_len
+10 mem_24g_txpayload
+10 mem_24g_txdata
+1 mem_24g_ch
+16 mem_24g_scremble
+1 mem_24g_current_ch_number
+4 mem_24g_ch_map1
+4 mem_24g_ch_map2
+4 mem_24g_ch_map3
+4 mem_24g_ch_map4
+1 mem_24g_interval_min
+1 mem_24g_interval_max
+1 mem_24g_ensure
+
+8 mem_24g_enter_hibernate
+1 mem_24g_enter_lpm_timer
+1 mem_24g_pairing_sm
+4 mem_24g_addr_copy
+
+//2.4g dongle
+1 mem_24g_sifs
+1 mem_24g_rxcnt
+4 mem_24g_addr_private_dongle
+1 mem_24g_map_buff0_dongle
+1 mem_24g_channel_cnt_dongle
+1 mem_24g_pairing_sm_dongle
+4 mem_24g_tx_btclk_dongle	
+1 mem_24g_interval_dongle
+1 mem_24g_ch_update_dongle
+1 mem_24g_rx_sync_dongle
+1 mem_24g_ch_cnt_dongle
+6 mem_24g_rxbuf_temp_dongle
+6 mem_24g_rxbuf_dongle
+3 mem_24g_rxfail_cnt_dongle
+1 mem_24g_spi_enable_flag
+
+)
+
+(
+0 P24G_SM_PAIRING_SUCC
+1 P24G_SM_PAIRING_REQUEST
+2 P24G_SM_PAIRING_WAIT_ADDR
+3 P24G_SM_PAIRING_COMPLETE
+4 P24G_SM_PAIRING_WAIT_SUCC
+)
+
+(
+0 P24G_PAIRING_REQ_HEAD
+1 P24G_PAIRING_COMPLETE_HEAD
+)
+
+(
+0 ENSURE_OFF_24G
+1 ENSURE_ON_24G
+)
+
+/* 24g */
+(
+6 dlen_24g
+14 plen_24g
+90 blen_tx_24g
+106 blen_rx_24g
+42 blen_txack_24g
+58 blen_rxack_24g
+4 retry_24g
+0xaaf08e acc_24g
+0x15c4 crc_data_3byte
+0xbb81 crc_data_6byte
+0x4160 crc_ack
+41390 crc_ack_4byte
+
+1 NO_ACK_24g
+0 with_ack_24g
+
+0x10 ABORT_DATA
+0x40 RSSI_SENSITIVITY
+
+0x4e G24_PAIR_CH
+
+81000 G24_8125_INTERVAL_PARAM
+78000 G24_78125_INTERVAL_PARAM
+
+)
+
+(
+0 disable_24g
+1 tx_24g
+2 rx_24g
+
+0 bit_ack_24g
+)
+
+//mem_24g_interrupt
+(
+0 rx_dr
+1 rx_sync
+4 tx_ds
+5 tx_fail
+)
+
+//mem_24g_data_type
+(
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+//mem_send_data_24g_short_lpm
+(
+0 SHORT_LPM_STATE_POLLING 	
+1 SHORT_LPM_STATE_DATA
+2 SHORT_LPM_STATE_NODATA
+3 SHORT_LPM_STATE_BUTTON_WHEEL
+)
+
+
+
+memalloc(
+
+/* load code */
+1 mem_ucode_status
+2 mem_otp_ucode_flag
+1 mem_spid_tbuf				/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0 mem_iicd_tbuf				/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+1 mem_addr_hi
+1 mem_addr_mi
+1 mem_addr_lo
+1 mem_iicd_addr
+4 mem_spid_rbuf
+2 mem_ucode_buf
+2 mem_ucode_len
+2 mem_sched_addr
+2 mem_ucode_ptr
+16 mem_ucode_keybuf
+18 mem_check_plap_temp
+
+1 mem_sensor_id
+1 mem_reconnect_flag
+1 mem_switch_fail_master_count
+1 mem_app_evt_timer_count
+
+)
+
+xmemalloc(
+1 mem_app_handshake_flag
+2 mem_sniff_param_interval
+2 mem_sniff_param_attempt
+2 mem_sniff_param_timeout
+
+/*App Callback Functons*/
+2 mem_cb_check_wakelock
+2 mem_cb_before_hibernate
+2 mem_cb_before_lpm
+2 mem_cb_le_process
+2 mem_cb_bt_process
+2 mem_cb_idle_process
+2 mem_cb_bb_event_process
+2 mem_cb_discovry_timeout
+2 mem_cb_att_write
+2 mem_cb_update_notify_value
+2 mem_cb_update_notify_continue
+2 mem_cb_event_timer
+2 mem_cb_le_set_mult
+2 mem_cb_bt_set_mult
+2 mem_soft_version_num
+
+
+
+
+2 mem_eeprom_base
+
+1 mem_unsniff2sniff_timer_count
+//lpm mode
+1 mem_wake_up_delay_timer
+
+1 mem_app_connection_options
+
+//
+2 mem_app_disconn_reason
+2 mem_app_disconn_reason_flag
+4 mem_lpm_delay_after_sniff
+1 mem_xrecord_mode
+
+2 mem_eeprom_block_size
+1 mem_wakup_from_power_flag
+1 mem_spi_init_clk
+1 mem_spi_init_delay_time
+1 mem_spi_ncs_gpio
+
+2 mem_nv_data_ptr
+1 mem_nv_data_number
+
+//adc
+2 mem_0_5_adc_io_data
+2 mem_1v_adc_hvin_data
+2 mem_2v_adc_vinlpm_data
+2 mem_1v_adc_io_data
+2 mem_5v_adc_hvin_data
+2 mem_3v_adc_vinlpm_data
+2 mem_otp_adc_flag
+2 mem_reference_voltage
+1 mem_adc_config_flag
+1 mem_adc_channel
+2 mem_adc_current_value
+
+ifdef SPI_SIMULATE
+//spi gpio config
+0 mem_spi_simulate_struct
+1 mem_spi_simulate_cs_gpio
+1 mem_spi_simulate_sclk_gpio
+1 mem_spi_simulate_mosi_gpio
+1 mem_spi_simulate_miso_gpio
+1 mem_spi_simulate_motion_gpio
+//spi slave read byte
+50 mem_spi_simulate_read_byte_slave
+1 mem_spi_simulate_read_byte_slave_temp
+1 mem_spi_simulate_read_length_slave
+1 mem_spi_simulate_read_length_slave_temp
+//spi slave write byte
+50 mem_spi_simulate_write_byte_slave
+1 mem_spi_simulate_write_byte_slave_temp
+1 mem_spi_simulate_write_byte_slave_temp_temp
+1 mem_spi_simulate_write_length_slave
+1 mem_spi_simulate_write_length_slave_temp
+endif
+)
+//adc read
+(
+0 ADC_CONFIG_VINLPM
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+
+0x0000 otp_ucode_flag
+0x07f0 otp_ucode_aeskey
+
+/* adc data addr and flag */
+(
+0x07e0 OTP_CHIP_FUNCTIONS
+0x07e2 otp_adc_io_0_5V_addr
+0x07e4 otp_adc_hvin_1V_addr
+0x07e6 otp_adc_vinlpm_2V_addr
+0x07e8 otp_adc_io_1V_addr
+0x07ea otp_adc_hvin_5V_addr
+0x07ec otp_adc_vinlpm_3V_addr
+0x07ee otp_adc_flag_addr
+0xaa55 OTP_ADC_FLAG
+)
+
+/* data stored in eeprom */
+(
+0	eeprom_bdaddr_list
+0	eeprom_nv_ram
+28	eeprom_last_record
+29	eeprom_le_reconn_local_addr
+35	eeprom_linkkey_list//64
+
+99	eeprom_module_bt_adss//6
+105	eeprom_module_le_adss//6
+111	eeprom_module_pincode_length//1
+112	eeprom_module_pincode//15
+127	eeprom_module_bt_name_length//1
+128	eeprom_module_bt_name//32
+160	eeprom_module_ble_name_length//1
+161	eeprom_module_ble_name//31
+192	eeprom_module_trans_baud//3
+195	eeprom_module_init_flag//2
+197	eeprom_module_uuid//6
+203 eeprom_module_ssp_enable//1
+204 eeprom_module_end//2
+
+//dpi eeprom addr
+198 eeprom_mouse_dpi
+)
+
+/*mem_app_handshake_flag*/
+(
+0 APP_HANDSHAKE_NULL
+1 APP_HANDSHAKE_DONE
+
+)
+/*mem_device_option*/
+(
+1 dvc_op_hci
+3 dvc_op_kb
+4 dvc_op_dongle
+5 dvc_op_spp
+6 dvc_op_ukey
+7 dvc_op_ir
+
+9 dvc_op_shutter
+10 dvc_op_module
+11 dvc_op_ble_mouse
+12 dvc_op_ble_kb
+13 dvc_op_ble_prcp
+255 dvc_op_test
+//device option hight 4
+6 dvc_op_mouse
+7 dvc_op_keyboard
+//device option low 2
+(
+0 MODE_3_MOUSE
+1 MODE_4_MOUSE
+)
+)
+
+(
+3 twspi_sclk
+4 twspi_sdio
+)
+
+(
+4 pan_clk_bit
+5 pan_dat_bit
+6 pan_mov_bit
+)
+
+(
+7 otp_uflag_aes
+6 otp_uflag_skip_eep
+5 otp_uflag_skip_flash
+4 otp_uflag_hci
+)
+
+/* ir command */
+(
+1 ircmd_record
+2 ircmd_play
+3 ircmd_write_pulse
+4 ircmd_write_seq
+5 ircmd_write_next
+
+8 ircmd_test_play
+9 ircmd_test_rec
+
+10 ircmd_report_pulse
+11 ircmd_report_seq
+12 ircmd_report_raw
+
+20 ircmd_screen_on
+21 ircmd_screen_off
+)
+
+(
+7 gpio_active_bit
+)
+(
+2 HID_HANDSHAKE_TIMEOUT
+
+)
+
+(
+1 APP_FLAG_RECONNECT
+)
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+
+
+//mem_app_disconn_reason
+//mem_app_disconn_reason_flag
+//bit map
+(
+2 APP_DISC_RSN_SIZE
+)
+(
+0 APP_DISC_BY_BUTTON
+1 APP_DISC_AFTER_PAIRING
+2 APP_DISC_AFTER_RECONN
+3 APP_DISC_AFTER_SNIFF
+4 APP_DISC_AFTER_SETUP_DONE
+5 APP_DISC_AFTER_HANDSHAKE
+6 APP_DISC_BT
+7 APP_DISC_BLE
+8 APP_DISC_L2CAP_REFUSED
+9 APP_DISC_SWITCH_FAIL
+)
+//eeprom init flag
+(
+	0xaa55 EEPROM_INIT_FLAG
+)
+
+(
+0x01 IPC_TYPE_CMD
+0x02 IPC_TYPE_EVT
+0x03 IPC_TYPE_HID
+0x04 IPC_TYPE_SPP
+0x05 IPC_TYPE_BLE
+0x06 IPC_TYPE_24G
+)
+
+(
+0x01 SYC_TASK_LPM
+0x02 SYC_TASK_TIMER
+0x03 SYC_TASK_HIBERNATE
+)
+
+
+
+memalloc(
+1 mem_h5rx_ackcnt
+1 mem_check_err_acl_cont
+
+1 mem_rp_packets
+2 mem_packet_type
+
+2 mem_hci_sniff_conn_handle
+2 mem_hci_sniff_max_interval
+2 mem_hci_sniff_min_interval
+2 mem_hci_sniff_attempt
+2 mem_hci_sniff_timeout
+2 mem_voice_setting
+1 mem_retransmission_effort
+2 mem_sco_ptype
+3 mem_extm_uap_restore
+
+2 mem_h5rx_rptr
+1 mem_h5rx_ack
+1 mem_h5tx_ack
+2 mem_h5tx_rptr
+2 mem_h5tx_wptr
+2 mem_h5tx_free
+1 mem_h5rx_tmp
+1 mem_h5tx_seq
+
+2 mem_hci_acl_queue_wptr
+2 mem_hci_acl_queue_rptr
+2 mem_hci_acl_queue_end
+1 mem_hci_acl_queue_wcnt
+1 mem_hci_acl_cnt
+
+2 mem_hci_acl_tx_trigger_wptr //tx via uart
+
+
+1 mem_ucode_id_local
+
+1 mem_ucode_id_remote
+1 mem_check_sum
+1 mem_ucode_temp
+1 mem_ucode_temp1
+1 mem_lock_in_enc//boolean
+
+1 mem_hci_disconn_reason
+
+1 mem_hci_curr_len
+2 mem_hci_curr_target 
+) 
+
+xmemalloc(
+
+2 mem_baud
+1 mem_hci_lt_rx_state
+)
+
+omemalloc(
+
+2 mem_acl_credits
+1 mem_allow_switch
+4 mem_hci_acl_queue_start	/*param_acl_pktcnt+2 byte*/
+4 mem_hci_wake_clk
+
+)
+15 hci_flag_rp
+//mem_hci_options bit map
+(
+1 hci_option_h4
+2 hci_option_protocol2
+3 hci_option_protocol3
+4 hci_option_uart
+5 hci_option_usb
+6 hci_option_phy2
+7 hci_option_phy3
+)
+// UART baud rate @6MHz
+(
+0 uart_ctrl_bit_enable
+3 uart_ctrl_bit_slip_protocol
+
+)
+
+//bit map of core_uart_ctrl
+(
+
+)
+//bit map of core_uart_status
+(
+0 uart_status_tx_fifo_full
+1 uart_status_tx_fifo_empty
+2 uart_status_tx_busy
+3 uart_status_rx_fifo_empty
+
+)
+//HCI H4 LOG related
+(
+0x4850 mem_hci_log
+8 hci_log_size
+100 hci_log_cnt
+
+)
+//HCI H4 Packet TYPE
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+
+)
+// HCI command opcode group field values
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_BASEBAND
+0x04 HCI_OGF_INFO
+0x05 HCI_OGF_STATUS
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LOW_ENERGY
+0x3e HCI_OGF_LOGO_TESTING
+0x3f HCI_OGF_VENDOR_SPECIFIC
+)
+
+// HCI link control opcode command field values, OGF=1
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+
+
+// HCI link policy commands OCF value, OGF=2
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+
+// HCI host controller and baseband commands OCF values, OGF=3
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+
+
+// HCI informational parameters OCF values, OGF=4
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+
+// HCI status parameters OCF values, OGF=5
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+
+// HCI testing command OCF values, OGF=6
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+
+// HCI vendor specific command OCF values -OGF=3F
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+)
+
+//HCI LE controller command OCF values, OGF=8
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+// HCI event code
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+//HCI LE SUBEVENT CODE
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+//HCI ErrorCodes
+(    
+0x00 HCI_SUCCESS
+0x01 HCI_ERROR_UNKNOWN_HCI_COMMAND
+0x02 HCI_ERROR_NO_CONNECTION
+0x03 HCI_ERROR_HARDWARE_FAILURE
+0x04 HCI_ERROR_PAGE_TIMEOUT
+0x05 HCI_ERROR_AUTHENTICATION_FAILURE
+0x06 HCI_ERROR_KEY_MISSING
+0x07 HCI_ERROR_MEMORY_FULL
+0x08 HCI_ERROR_CONNECTION_TIMEOUT
+0x09 HCI_ERROR_MAX_CONNECTIONS
+0x0A HCI_ERROR_MAX_SCO_CONNECTIONS
+0x0B HCI_ERROR_MAX_ACL_CONNECTIONS
+0x0C HCI_ERROR_COMMAND_DISALLOWED
+0x0D HCI_ERROR_HOST_REJECT_LIMITED_RESOURCES
+0x0E HCI_ERROR_HOST_REJECT_SECURITY_REASONS
+0x0F HCI_ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+0x10 HCI_ERROR_HOST_TIMEOUT
+0x11 HCI_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+0x12 HCI_ERROR_INVALID_HCI_COMMAND_PARAMETERS
+0x13 HCI_ERROR_REMOTE_USER_ENDED_CONNECTION
+0x14 HCI_ERROR_REMOTE_LOW_RESOURCES
+0x15 HCI_ERROR_REMOTE_POWERING_OFF
+0x16 HCI_ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+0x17 HCI_ERROR_REPEATED_ATTEMPTS
+0x18 HCI_ERROR_PAIRING_NOT_ALLOWED
+0x19 HCI_ERROR_UNKNOWN_LMP_PDU
+0x1A HCI_ERROR_UNSUPPORTED_REMOTE_FEATURE
+0x1B HCI_ERROR_SCO_OFFSET_REJECTED
+0x1C HCI_ERROR_SCO_INTERVAL_REJECTED
+0x1D HCI_ERROR_SCO_AIR_MODE_REJECTED
+0x1E HCI_ERROR_INVALID_LMP_PARAMETER
+0x1F HCI_ERROR_UNSPECIFIED_ERROR
+0x20 HCI_ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+0x21 HCI_ERROR_ROLE_CHANGE_NOT_ALLOWD
+0x22 HCI_ERROR_LMP_RESPONSE_TIMEOUT
+0x23 HCI_ERROR_ERROR_TRANSACTION_COLLISION
+0x24 HCI_ERROR_LMP_PDU_NOT_ALLOWED
+0x25 HCI_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+0x26 HCI_ERROR_UNIT_KEY_USED
+0x27 HCI_ERROR_QOS_NOT_SUPPORTED
+0x28 HCI_ERROR_INSTANT_PASSED
+0x29 HCI_ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+0x2a HCI_ERROR_DIFFERENT_TRANSACTION_COLLISION
+0x2c HCI_ERROR_QOS_UNACCEPTABLE_PARAMETER
+0x2d HIC_ERROR_QOS_REJECTED
+0x2e HIC_ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+0x2f HIC_ERROR_INSUFFICIENT_SECURITY
+0x30 HIC_ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+0x32 HIC_ERROR_ROLE_SWITCH_PENDING
+0x34 HIC_ERROR_RESERVED_SLOT_VIOLATION
+0x35 HIC_ERROR_ROLE_SWITCH_FAILED
+0x36 HIC_ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+0x37 HIC_ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+0x38 HIC_ERROR_HOST_BUSY_PAIRING
+)
+
+(
+0x00 HCI_LPM_OFF
+0x01 HCI_LPM_ON
+)
+
+
+(
+33 HOST_WAKE_TIME
+)
+
+(
+1 HCI_RX_WAKE
+0 HCI_RX_READY
+)
+
+
+(
+/*HID TYPE*/
+0x01 HID_TYPE_CONTROL
+0x04 HID_TYPE_GET_REPORT
+0x05 HID_TYPE_SET_REPORT
+0x07 HID_TYPE_SET_PROTOCOL
+0x09 HID_TYPE_SET_IDLE
+0x0a HID_TYPE_DATA
+/*HID REPORT ID*/
+0x01 HID_REPORT_ID_KB
+0x41 HID_DISCONNECT
+
+0x00 HID_CONTROL_P_NOOPERATION
+0x01 HID_CONTROL_P_HARDRESET
+0x02 HID_CONTROL_P_SOFTRESET
+0x03 HID_CONTROL_P_SUSPEND
+0x04 HID_CONTROL_P_EXITSUSPEND
+0x05 HID_CONTROL_P_VIRTUALCABLEUNPLUG
+)
+
+
+
+omemalloc(
+//Keyboard Work Area
+2 mem_kb_state
+6 mem_kb_report_data
+1 mem_kb_keys
+1 mem_kb_rcv_led_data
+4 mem_kb_fast_wake_last
+//Keyboard Config Area
+1 mem_led_cap_gpio
+1 mem_led_num_gpio
+1 mem_led_scl_gpio
+
+2 mem_kb_current_vdd_value_10times
+1 mem_kb_read_adc_cnt_100ms
+2 mem_kb_current_vdd_value
+1 mem_led_power_blink_count
+1 mem_led_power_500ms_cnt
+
+700 mem_kb_map2
+2 mem_3v1_adc_default
+158 mem_kb_map
+2 mem_kb_discovery_timer
+2 mem_kb_direct_timer
+2 mem_kb_no_data_timer
+2 mem_kb_direct_timeout
+1 mem_kscn_event_last
+
+1 mem_kscan_event_num_last
+
+
+//three devices param
+
+1 mem_auto_enable_mult_timer
+1 mem_auto_enable_mult_timer_init
+
+1 mem_kb_temp_flag
+
+8 mem_map2_out_report0
+8 mem_map2_out_report1
+
+8 mem_table_last_repory_data0
+8 mem_table_last_repory_data1
+
+10 mem_kb_down
+10 mem_kb_down_last
+8 mem_table_temp
+1 mem_pincode_vk_last
+1 mem_kb_device_button_last
+1 mem_kb_device_button_timer
+1 mem_kb_current_status
+1 mem_seq
+1 mem_dorx_cnt
+2 mem_matched_btclk
+1 mem_master_sniff_interval
+
+1 mem_led_power_gpio
+2 mem_kb_check_vdd_count
+
+
+2 mem_0v_adc_data
+2 mem_2v2_adc_data
+2 mem_3v_adc_data
+
+1 mem_select_system_led_timer
+1 mem_led_cap_gpio_status
+2 mem_kb_no_data_timeout
+4 mem_kb_gpio_last_val
+1 mem_store_current_status
+//1 mem_kb_check_kscan_flag
+
+1 mem_kb_led_on_timer
+1 mem_kb_debug_sm
+2 mem_kb_mode
+2 mem_kb_mode_revese
+6 mem_master_addr
+1 mem_led_device_blink_count
+1 mem_led_device_500ms_cnt
+
+1 mem_kb_caps_led_status
+1 mem_kb_reconnection_ssp
+1 mem_kb_rcv_hid_control_rsp
+
+5 mem_kb_down_regroup
+1 mem_kb_get_fn_flag
+1 mem_kb_kscan_cnt
+10 mem_kb_down_test
+1 mem_kb_release_fn_data
+
+
+1 mem_led_cap_delay_timer
+1 mem_led_cap_mult_timer
+1 mem_led_cap_flag
+1 mem_hid_rx_data
+1 mem_kb_fn_c
+1 mem_kb_c_fn
+
+650 mem_keyboard_uuid_list
+0 mem_keyboard_uuid_list_end
+500 mem_keyboard_le_att_list
+0 mem_keyboard_le_att_list_end
+)
+
+
+8 KB_KSCAN_ROW 
+7 KB_KSCAN_ROW_1
+20 KB_KSCAN_COL
+19 KB_KSCAN_COL_1
+
+/* ks_ctrl */
+(
+0x01 KB_KSCAN_CTRL_ENABLE					
+0x02 KB_KSCAN_CTRL_FREEZE					
+0x04 KB_KSCAN_CTRL_GHOST					
+0x08 KB_KSCAN_CTRL_INT						
+0x10 KB_KSCAN_CTRL_CLKON					
+0x20 KB_KSCAN_CTRL_FIFO_CLR				
+                  
+0 KB_KSCAN_STAT_EMPTY
+1 KB_KSCAN_STAT_FULL 					
+2 KB_KSCAN_STAT_OVERFLOW				
+6 KB_KSCAN_STAT_GHOST 
+
+0 KB_KSCAN_KEY_EVENT_STAT
+0 KB_KSCAN_KEY_PRESS	
+1 KB_KSCAN_KEY_RELEASE
+
+)
+(
+0 CACEL_RECONN_FLAG
+1 KEY_EVENT_FLAG
+2 KEY_SEARCH_M_KEY_FLAG
+3 CHECK_VDD_LOW_FLAG
+)
+
+// MACRO for map2
+
+// MACRO for map2
+
+//map2 Functions definition
+ 0x00 KB_MAP2_FUNC_REPORT0
+ 0x01 KB_MAP2_FUNC_REPORT1
+ 0x02 KB_MAP2_FUNC_REPORT2
+ 0x80 KB_MAP2_FUNC_IGNORE
+ 0x81 KB_MAP2_FUNC_DISCOV
+ 0x82 KB_MAP2_FUNC_WIN
+ 0x83 KB_MAP2_FUNC_ANDROID
+ 0x84 KB_MAP2_FUNC_IOS
+ 0x85 KB_MAP2_FUNC_DEV1
+ 0x86 KB_MAP2_FUNC_DEV2
+ 0x87 KB_MAP2_FUNC_DEV3
+ 
+//map2 Status definition (bit map)
+ 0x01 KB_MAP2_STATUS_WIN
+ 0x02 KB_MAP2_STATUS_ANDROID
+ 0x04 KB_MAP2_STATUS_IOS
+ 0x10 KB_MAP2_STATUS_CONN
+ 0x20 KB_MAP2_STATUS_UNCONN
+ 
+ 0x00 KB_MAP2_STATUS_BIT_WIN
+ 0x01 KB_MAP2_STATUS_BIT_ANDROID
+ 0x02 KB_MAP2_STATUS_BIT_IOS
+ 0x04 KB_MAP2_STATUS_BIT_CONN
+ 0x05 KB_MAP2_STATUS_BIT_UNCONN
+
+// map2 report length
+8 KB_MAP2_REPORT_LENGTH
+0x08 KB_VK_MAX_LEN
+
+//map2 device button state
+0 KB_DEVICE_BUTTON_UP
+1 KB_DEVICE_BUTTON_DEVICE1
+2 KB_DEVICE_BUTTON_DEVICE2
+3 KB_DEVICE_BUTTON_DEVICE3
+0xff KB_DEVICE_BUTTON_ALREADY_LONG
+)
+
+//
+(
+0x01 REPORT_ID_1
+0x02 REPORT_ID_2
+0x03 REPORT_ID_3
+)
+
+(
+1 FLAG_VDD_LOW
+0 FLAG_VDD_NOT_LOW
+
+0x1fe9 EEPROM_ADDR_VDD_FLAG
+0x1fea EEPROM_ADDR_VDD_LOW_FLAG
+0x1fec EEPROM_SYSTEM_FALG
+
+)
+
+//Specil Function Key
+(
+0XFF SFK_ANDROID_MAP
+0XFE SFK_IOS_SCREENSHOT
+
+)
+0x39 CAPS_LOCK_DATA
+)
+
+(
+2 KB_TEST_MODE
+)
+/* special key codes */
+(
+0x1d KB_KCODE_1_M1
+0x27 KB_KCODE_0
+0x28 KB_KCODE_ENTER
+0x2a KB_KCODE_BKSP
+)
+
+/*DATA OUTPUT report id = 1*/
+0 KB_NUM_LOCK_SELECTED
+1 KB_CAPS_LOCK_SELECTED
+2 KB_SCROLL_LOCK_SELECTED
+
+
+0x1f  KB_UI_BUTTON_GPIO
+
+
+
+
+memalloc(
+0 mem_l2cap_mem_start
+// L2CAP RX 
+2 mem_l2cap_rxbuff1_len
+2 mem_l2cap_rxbuff2_len
+2 mem_l2cap_rxbuff_new
+1 mem_l2cap_rxbuff_inuse
+2 mem_l2cap_payload_ptr
+2 mem_l2cap_rx_pkt_length
+2 mem_l2cap_rx_cid
+1 mem_l2cap_rx_done
+
+
+
+// L2CAP TX Signal channel
+2 mem_l2cap_signal_tx_buff_ptr
+2 mem_l2cap_signal_tx_payload_ptr
+2 mem_l2cap_signal_tx_length
+// L2CAP TX SDP channel
+2 mem_sdp_tx_buff_ptr
+2 mem_sdp_tx_payload_ptr
+2 mem_sdp_tx_pkt_length
+// L2CAP TX RFCOMM channel
+2 mem_rfcomm_tx_buff_ptr
+2 mem_rfcomm_tx_payload_ptr
+2 mem_rfcomm_tx_pkt_length
+
+
+
+//L2CAP Util
+
+2 memL2CAP_T1
+
+1 mem_CONTROL_tasks
+1 mem_send_config_req
+
+
+1 mem_config_identifier
+2 mem_config_req_dest_CID
+1 mem_rfcomm_malloc_fail_flag
+
+//L2CAP STATE MACHINE
+1 mem_message_to_uppersm
+1 mem_upper_sm_remote_page
+1 mem_upper_sm_reconn
+1 mem_upper_sm_ss
+
+
+64 mem_tx_malloc_log
+0 mem_l2cap_mem_end
+
+
+2 mem_scid
+2 mem_cmd_length
+2 mem_tt2
+2 mem_tt3
+2 mem_id
+2 mem_psm
+
+
+4 mem_l2cap_sdpres_delay_time
+)
+
+xmemalloc(
+0 mem_l2cap_xmem_start
+//*******************L2CAP TX MULTI-PACKET*********************//
+2 mem_l2cap_tx_multi_offset //0 means single packet
+
+//*******************CHANNEL ID*********************//
+2 mem_sdp_remote_cid
+2 mem_rfcomm_remote_cid
+2 mem_hid_ctrl_remote_cid
+2 mem_hid_int_remote_cid
+//*******************CHANNEL STATE*********************//
+1 mem_sdp_state
+1 mem_rfcomm_state
+1 mem_hid_control_state
+1 mem_hid_interrupt_state
+1 mem_spp_state
+1 mem_ML2CAP_comm_id
+
+//*******************L2CAP malloc********************//
+1 mem_used_map
+0 mem_tx_fifo0
+1 mem_tx_fifo0_map
+2 mem_tx_fifo0_ptr
+0 mem_tx_fifo1
+1 mem_tx_fifo1_map
+2 mem_tx_fifo1_ptr
+0 mem_tx_fifo2
+1 mem_tx_fifo2_map
+2 mem_tx_fifo2_ptr
+0 mem_tx_fifo3
+1 mem_tx_fifo3_map
+2 mem_tx_fifo3_ptr
+0 mem_tx_fifo_end
+256 mem_l2cap_lpm_txbuf
+//*******************MISC*********************//
+1 mem_l2cap_flow_ctrl_flag
+1 mem_l2cap_pending_item
+0 mem_l2cap_xmem_end
+
+)
+
+
+//mem_l2cap_lpm_txbuf
+(
+256 l2cap_lpm_txbuf_len
+)
+
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0x0002 L2CAP_SIG_EXT_FEATRUE
+0x0003 L2CAP_SIG_FIX_FEATRUE
+)
+
+
+(
+0 HS_IDLE
+1 AG_INIT_CALL
+2 HS_INIT_CALL
+)
+(
+0 M_ACL_LINK_ABSENT
+1 M_ACL_LINK_EXIST
+)
+
+(
+0 L2CAP_INUSE_BUFF1
+1 L2CAP_INUSE_BUFF2
+)
+/* upper layer interface w/ lower layer */
+(
+1 MAX_NUM_LINKS_ALLOWED
+1 MAX_NUM_SCO_ALLOWED
+1 ACL_LINK_PRESENT
+0 ACL_LINK_ABSENT
+)
+(
+1 L2CAP_RX_DONE 
+0 L2CAP_RX_CLEAR
+)
+/* Scheduler */
+(
+0 L2CAP_DISCONNECT_INTERRUPT
+1 RFCOMM_wants_service
+2 L2CAP_sig_Tx_buff_full
+3 RFCOMM_Tx_buff_full
+4 SDP_Tx_buff_full
+5 got_complete_L2CAP_pkt	
+6 L2CAP_init_Config_Req
+7 L2CAP_DISCONNECT_CONTROL
+)
+
+/* mem_CONTROL_tasks2 */
+(
+0 UI_NEED_SERVICE
+)
+/* L2CAP logic channel identifiers (2 bytes) p.261 */
+(
+0x0001 L2CAP_signal_channel
+0x0050 L2CAP_SDP_channel
+0x0051 L2CAP_RFCOMM_channel
+0x0052 L2CAP_HID_Control_channel   
+0x0053 L2CAP_HID_Interrupt_channel
+0x0077 L2CAP_AVDTP_signal_channel		//------avdtp
+0x0078 L2CAP_AVDTP_media_channel
+0x0079 L2CAP_AVDTP_report_channel
+0x0080 L2CAP_AVDTP_recovery_channel
+0x00dd L2CAP_AVCTP_Control_channel
+)
+/* L2CAP signalling command codes (1 byte) p.284 */
+(
+0x00 reserved
+0x01 signal_cmd_reject
+0x02 signal_connect_req
+0x03 signal_connect_rsp
+0x04 signal_config_req
+0x05 signal_config_rsp
+0x06 signal_disconnect_req
+0x07 signal_disconnect_rsp
+0x08 signal_echo_req
+0x09 signal_echo_rsp
+0x0a signal_info_req
+0x0b signal_info_rsp
+)
+/* L2CAP signal_command_reject reason code (2 bytes), p.285 */
+(
+0x0000 cmd_not_understood
+0x0001 signalling_MTU_exceeded
+0x0002 invalid_CID_in_req
+)
+/* L2CAP PSM values used in signal_connect_req (2 bytes), p.286 */
+(
+0x0001 PSM_SDP
+0x0003 PSM_RFCOMM
+0x0005 PSM_TCS
+0x0011 PSM_HID_control
+0x0013 PSM_HID_interrupt
+0x0017 PSM_AVCTP
+0x0019 PSM_AVDTP
+)
+/* L2CAP connection response result code (2 bytes), p.288 */
+(
+0x0000 L2CAP_connect_successful
+0x0001 L2CAP_connect_pending
+0x0002 L2CAP_connect_refused_PSM_unsupported
+0x0003 L2CAP_connect_refused_security_block
+0x0004 L2CAP_connect_refused_no_resources
+)
+/* L2CAP connection status values (2 bytes), p.288 */
+(
+0x0000 L2CAP_no_info_available
+0x0001 L2CAP_authentication_pending
+0x0002 L2CAP_authorization_pending
+)
+/* L2CAP configuration response result code (2 bytes), p.292 */
+(
+0x0000 L2CAP_config_success
+0x0001 L2CAP_config_failure_bad_parameters
+0x0002 L2CAP_config_failure_no_reason
+0x0003 L2CAP_config_failure_unknown_options
+)
+/* L2CAP constant definitions */
+(
+128 L2CAP_Rx_buff_size
+48  L2CAP_signal_Tx_buff_size
+128 SDP_Tx_buff_size
+128 RFCOMM_Tx_buff_size
+1 AM_ADDRESS
+3 DM1TYPE
+4 DH1TYPE
+11 DH3TYPE
+8 DVTYPE
+0 channel_state_closed
+1 channel_state_config
+2 channel_state_open
+0x0030 L2CAP_config_MTU_SDP
+0xffff L2CAP_config_ftimeout_SDP
+0x03e3 L2CAP_config_MTU_RFCOMM
+0xffff L2CAP_config_ftimeout_RFCOMM
+260 l2cap_max_pkt_len
+)
+
+(
+0 FAILURE
+1 SUCCESS
+2 IN_PROGRESS
+)
+(
+0x00	IDLE
+0x01	WAIT_4_BB_PAGE
+0x02	WAIT_4_LMP_CONN
+0x03	WAIT_4_SCO_CONN
+0x04	WAIT_4_SCO_KILLED
+)
+
+/*mem_master_mss*/
+(
+0 STOP_ENC
+1 SEND_SWITCH_REQ
+)
+(
+0 HF_HS_READY
+1 HF_AG_READY
+)
+/* mem_hf_state */
+(
+0 HF_STATE_WAITING_RFCOMM_CONN
+1 HF_STATE_HF_SEND_FEATURE
+2 HF_STATE_WAITING_AG_FEATURE_OK
+3 HF_STATE_HF_SEND_INDICATORS
+4 HF_STATE_WAITING_AG_INDICATORS_OK
+5 HF_STATE_HF_SEND_CURR_STATUS
+6 HF_STATE_WAITING_AG_STATUS_OK
+7 HF_STATE_HF_SEND_UPDATE_STATUS
+8 HF_STATE_WAITING_AG_UPDATE_STATUS_OK
+9 HF_STATE_CONNECTED
+0x0a HF_STATE_HF_SEND_RECEIVE_INFO
+0x0b HF_STATE_WAITING_AG_INFO
+0x0c HF_STATE_HF_SEND_AT_CLIP
+0x0d HF_STATE_WAITING_AT_CLIP
+0x0e HF_STATE_HF_SEND_AT_CCWA
+0x0f HF_STATE_WAITING_AT_CCWA
+)
+/*mem_hf_call_state*/
+(
+0 HF_CALL_STATE_INACTIVE
+1 HF_CALL_STATE_SETUP
+2 HF_CALL_STATE_ACTIVE 
+)
+/* mem_pairing_state bit definition */
+(
+0 PAIR_INQUIRY_START
+1 PAIR_INQUIRY_TIME_OUT
+2 PAIR_INQUIRY_FAILED
+3 PAIR_INQUIRY_SUCCESS
+4 PAIR_READY_CONN
+5 PAIR_WAIT_CANCEL_RESPONSE
+6 PAIR_CONN_SUCCESS
+7 PAIR_WAIT_DETACH
+)  
+
+/* mem_pairing_mode bit definition */
+(
+0 FORCE_AUTHENTICATION
+)
+/* mem_hid_protecol_type */
+(
+0 PROTECOL_BOOT /*default*/
+1 PROTECOL_REPORT
+)
+
+/* mem_upper_sm_reconn */
+(
+1 UPPERSM_SEND_SDP_CONN_REQ
+2 UPPERSM_SEND_SDP_CFG_REQ
+3 UPPERSM_SEND_SDP_HF_SS
+4 UPPERSM_SEND_SDP_DISC_REQ
+5 UPPERSM_SEND_RFCOMM_CONN_REQ
+6 UPPERSM_SEND_RFCOMM_CFG_REQ
+7 UPPERSM_SEND_SABM_CMD
+8 UPPERSM_SEND_DISC
+9 UPPERSM_SEND_WAIT
+10 UPPERSM_SEND_HID_CONTROL_CONN_REQ
+11 UPPERSM_SEND_HID_CONTROL_CFG_REQ
+12 UPPERSM_SEND_HID_INTERRUPT_CONN_REQ
+13 UPPERSM_SEND_HID_INTERRUPT_CFG_REQ
+14 UPPERSM_SEND_SDP_HS_SS
+15 UPPERSM_SEND_SDP_PBAP_SS
+16 UPPERSM_SEND_SDP_AVTARG_SS
+)
+/* mem_upper_sm_remote_page */
+(
+1 UPPERSM_RP_SEND_SDP_CONN_REQ
+2 UPPERSM_RP_SEND_SDP_CFG_REQ
+3 UPPERSM_RP_SEND_SDP_HF_SS
+4 UPPERSM_RP_SEND_SDP_HS_SS
+5 UPPERSM_RP_SEND_SDP_PBAP_SS
+6 UPPERSM_RP_SEND_SDP_AVTARG_SS
+7 UPPERSM_RP_SEND_SDP_DISC_REQ
+8 UPPERSM_RP_SEND_AVCTP_CONN_REQ
+9 UPPERSM_RP_SEND_AVCTP_CFG_REQ
+)
+
+/* mem_ML2CAP_flag */
+(
+0 MSCHEDULER_HID_CONTROL_CONN_DONE
+1 MSCHEDULER_HID_INTERRUPT_CONN_DONE
+2 MSCHEDULER_HID_CONTROL_CFG_REQ_DONE
+3 MSCHEDULER_HID_CONTROL_CFG_RSP_DONE
+4 MSCHEDULER_HID_INTERRUPT_CFG_REQ_DONE
+5 MSCHEDULER_HID_INTERRUPT_CFG_RSP_DONE
+6 MSCHEDULER_HID_CONTROL_DISC_DONE
+7 MSCHEDULER_HID_INTERRUPT_DISC_DONE
+)
+/*    ui event    --add by lj*/
+(
+0x00 UI_DATA_EVNET_NONE
+0x01 UI_DATA_EVNET_HID
+0x02 UI_DATA_EVNET_AVDTP_S
+0x03 UI_DATA_EVNET_AVDTP_M
+0x04 UI_DATA_EVNET_AVCTP
+0x05 UI_DATA_EVNET_HS
+0x06 UI_DATA_EVNET_HF
+0x07 UI_DATA_EVNET_SPP
+0x08 UI_DATA_EVNET_OBEX
+)
+/*    ui ack --add by lj*/
+(
+0x00 UI_DATA_TX_NONE
+0x01 UI_DATA_TX_HID
+0x02 UI_DATA_TX_AVDTP_S
+0x03 UI_DATA_TX_AVDTP_M
+0x04 UI_DATA_TX_AVCTP
+0x05 UI_DATA_TX_HS
+0x06 UI_DATA_TX_HF
+0x07 UI_DATA_TX_SPP
+0x08 UI_DATA_TX_OBEX
+0x10 ACL_TX_L2CAP_SIGNAL
+0x11 ACL_TX_SDP
+0x12 ACL_TX_RFCOMM
+
+)
+
+(
+0 L2CAP_SDP_interface_conn
+1 L2CAP_SDP_interface_cfg
+)
+
+(                                   
+0 L2CAP_CHANNEL_STATE_CONN_REQ      
+1 L2CAP_CHANNEL_STATE_CONN_RES      
+2 L2CAP_CHANNEL_STATE_SND_CFG_REQ   
+3 L2CAP_CHANNEL_STATE_SND_CFG_RES   
+4 L2CAP_CHANNEL_STATE_RCV_CFG_REQ   
+5 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+6 L2CAP_CHANNEL_RFCOMM_ONLY_SABM
+7 L2CAP_CHANNEL_RFCOMM_ONLY_UA
+6 L2CAP_CHANNEL_AVDTP_SIGNAL_INIT //set avdtp init complete
+6 L2CAP_CHANNEL_HID_HANDSHAKE_DONE
+0x3f L2CAP_CHANNEL_SETUP_COMPLETE
+0x7f L2CAP_CHANNEL_AVDTP_SIGNAL_COMPLETE
+0xff L2CAP_CHANNEL_RFCOMM_DLCI0_OPENED
+)                                     
+
+/*  AVDTP---lj*/
+(
+0 L2CAP_AVDTP_SIGNAL_CONNECT
+1 L2CAP_AVDTP_SIGNAL_CONFIG
+2 L2CAP_AVDTP_MEDIA_CONNECT
+3 L2CAP_AVDTP_MEDIA_CONFIG
+4 L2CAP_AVDTP_REPORT_CONNECT
+5 L2CAP_AVDTP_REPORT_CONFIG
+6 L2CAP_AVDTP_RECOVERY_CONNECT
+7 L2CAP_AVDTP_RECOVERY_CONFIG
+)
+/*  AVCTP---lj*/
+(
+0 L2CAP_AVCTP_SIGNAL_CONNECT
+1 L2CAP_AVCTP_SIGNAL_CONFIG
+)
+
+127 L2CAP_SIGNAL_MALLOC_SIZE
+
+//1 mem_rfcomm_malloc_fail_flag
+(
+0 RFCOMM_MALLOC_SUCCEED
+1 RFCOMM_MALLOC_FAIL
+)
+
+//mem_l2cap_flow_ctrl_flag
+(
+0 L2CAP_FLOW_CTRL_DISABLE
+1 L2CAP_FLOW_CTRL_ENABLE
+)
+
+
+memalloc(
+56 mem_le_rxbuf
+
+
+/* security temp */
+4 mem_le_mic
+4 mem_le_peer_mic
+//8 mem_le_skdm
+//8 mem_le_skds
+16 mem_le_peer_ltk
+16 mem_le_mrand
+
+
+/* ========= le context =========== */
+1 mem_le_state
+1 mem_le_mode
+2 mem_le_tsniff
+4 mem_le_anchor
+6 mem_le_clk_offset
+2 mem_le_receive_window
+6 mem_le_plap
+1 mem_le_conn_handle
+1 mem_le_arq
+1 mem_le_ch
+1 mem_le_hop
+2 mem_le_event_count
+4 mem_le_supervision_timer
+2 mem_le_instant
+1 mem_le_channels
+1 mem_le_op
+
+	/* these 3 should NOT be seperated */
+4 mem_le_access
+3 mem_le_crcinit
+1 mem_le_window_size
+
+	/* these 3 should NOT be seperated */
+2 mem_le_slave_latency
+2 mem_le_superto
+5 mem_le_channel_map
+
+2 mem_le_no_using
+1 mem_le_peer_sca
+
+/* should be together */
+1 mem_le_att_opcode
+2 mem_le_att_handle
+
+1 mem_le_err_code
+2 mem_le_l2cap_pdu_length
+
+16 mem_le_sk
+
+/* test */
+1 mem_le_testtype
+2 mem_le_test_sync
+2 mem_le_test_pcnt
+
+6 mem_le_rxon_ts
+
+1 mem_le_rx_ll_opcode
+
+2 mem_le_notify_attr_start
+1 mem_le_notify_len
+
+1 mem_cmd_le_create_conn
+1 mem_24g_id
+
+
+2 mem_le_cur_attlist_start_ptr
+2 mem_le_cur_handle_start
+2 mem_le_cur_handle_end
+1 mem_le_cur_uuid_lenth
+16 mem_le_cur_uuid
+
+1 mem_le_search_len
+1 mem_le_search_res
+
+1 mem_le_continue_type
+1 mem_le_public_length
+
+)
+
+
+xmemalloc(
+2 mem_le_dsniff
+
+// parameters
+2 mem_le_conn_interval
+1 mem_le_scan_enable
+2 mem_le_scan_interval
+2 mem_le_scan_window
+
+1 mem_le_adv_led
+1 mem_le_adv_enable
+1 mem_le_adv_data_len
+31 mem_le_adv_data
+1 mem_le_scan_data_len
+31 mem_le_scan_data
+
+//modified name
+1 mem_le_name_len
+20 mem_le_name
+
+1 mem_le_led_on_time
+//37 mem_le_chmap
+
+
+5 mem_le_new_map
+0 mem_le_new_param
+1 mem_le_new_transmitwindowsize
+2 mem_le_new_transmitwindowoffset
+2 mem_le_new_conninterval
+2 mem_le_new_connslavelatency
+2 mem_le_new_connsupervisiontimeout
+1 mem_le_temp
+
+1 mem_le_txheader
+1 mem_le_txlen
+2 mem_le_txpayload
+2 mem_le_txcid
+1 mem_le_l2cap
+1 mem_le_l2cap_response
+31 mem_le_txbdy
+
+/* smp related */
+5 mem_le_pcnt_tx
+5 mem_le_pcnt_rx
+4 mem_le_last_mic
+4 mem_le_ivm
+4 mem_le_ivs
+16 mem_le_ltk
+1 mem_ltk_exists
+16 mem_le_rconfirm
+16 mem_le_srand
+1 mem_le_iat
+1 mem_le_rat
+1 mem_le_preq
+1 mem_le_preq_iocap
+1 mem_le_preq_oob
+1 mem_le_preq_auth
+1 mem_le_preq_max_keysize
+1 mem_le_preq_init_key_distribution
+1 mem_le_preq_resp_key_distribution
+1 mem_le_pres
+1 mem_le_pres_iocap
+1 mem_le_pres_oob
+1 mem_le_pres_auth
+1 mem_le_pres_max_keysize
+1 mem_le_pres_init_key_distribution
+1 mem_le_pres_resp_key_distribution
+
+/* att related */
+2 mem_le_search_handle_start
+2 mem_le_search_handle_end
+0 mem_le_att_offset
+1 mem_le_search_att_type_length
+16 mem_le_search_att_type
+2 mem_le_notify_handle
+1 mem_le_search_uuid_length
+16 mem_le_search_uuid
+
+
+1 mem_le_handle_data_len
+16 mem_le_handle_data
+
+
+//START of LE adv parameter structure
+0 mem_le_adv_param
+2 mem_le_adv_interval_min
+2 mem_le_adv_interval_max
+1 mem_le_adv_type
+1 mem_le_adv_own_addr_type
+1 mem_le_adv_direct_addr_type
+6 mem_le_adv_direct_addr
+1 mem_le_adv_channel_map
+1 mem_le_adv_filter_policy
+//END of LE adv parameter structure
+
+//START of LE conn parameter structure
+0 mem_le_conn_param
+1 mem_le_conn_peer_addr_type
+6 mem_le_conn_peer_addr
+1 mem_le_conn_own_addr_type
+2 mem_le_conn_interval_min
+2 mem_le_conn_interval_max
+2 mem_le_conn_latency
+2 mem_le_conn_superto
+//START of LE conn parameter structure
+
+//START of LE scan parameter structure
+0 mem_le_scan_params
+1 mem_le_scan_type
+1 mem_le_scan_own_addr_type
+1 mem_le_scan_filter_policy
+//END of LE scan parameter structure
+
+3 mem_le_lap
+1 mem_le_uap
+2 mem_le_nap
+8 mem_le_xtype_fifo
+
+2 mem_le_local_mtu
+2 mem_le_remote_mtu
+1 mem_le_ll_cur_opcode
+
+8 mem_le_skdm
+8 mem_le_skds
+
+2 mem_le_init_superto
+
+
+1 mem_le_secure_connect_enable
+1 mem_le_secure_connect_flag
+1 mem_le_sc_calc
+1 mem_le_secure_connect_state
+1 mem_le_sc_confirm_gkey_flag
+1 mem_le_sc_local_key_invalid
+
+1 mem_le_continue_flag
+
+1 mem_le_pairing_state
+1 mem_le_enc_state
+1 mem_le_pairing_mode
+4 mem_le_tk
+2 mem_le_ediv
+8 mem_le_rand
+16 mem_le_irk
+2 mem_le_pairing_handle
+2 mem_le_interal_min
+2 mem_le_interal_max
+2 mem_le_latency
+2 mem_le_timeout
+//LE attribute list
+1 mem_le_switch_send_data
+4 mem_le_transmit_window
+
+2 mem_le_buff_len
+2 mem_le_buff_len_all
+2 mem_le_buff_data_len_all
+2 mem_prepare_write_len
+2 mem_le_prepare_write_req_offset
+2 mem_prepare_handle
+2 mem_prepare_write_offest
+
+1 mem_le_flag
+
+)
+
+(
+20 notify_handle
+2 param_max_slaves
+1636 param_sifs
+0x000a06 param_le_version
+0x1d87 param_le_subversion
+0x000001 param_le_features
+23 param_le_mtu
+16 param_le_scan_interval
+16 param_le_scan_window
+0x1e0 param_clke_cal_le
+0x1000302 param_smp_paring_response		/* for mouse, noinputnooutput */
+0x010410 param_smp_key_dist	
+0x010010 param_smp_key_dist0
+0xa0 param_le_sca
+)
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+(
+0 FLAG_BLE_INSUFFICIENT_AUTHENTICATION
+1 FLAG_BLE_COPY_MASTER_DATA_TO_ATT_LIST
+)
+
+/*LE MOUSE-KB*/
+(
+1 LE_CONTEXT_STATE_KB
+2 LE_CONTEXT_STATE_MOUSE
+
+3 USB_MOUSE_DATA_CMD
+
+1 SEND_MOUSE_DATA_CMD
+2 SEND_KB_DATA_CMD
+)
+
+
+  (
+  	0 LE_M_STATE_SLAVE1_STANDBY
+  	1 LE_M_STATE_SLAVE1_ADVERTISING
+  	2 LE_M_STATE_SLAVE1_SCANNING
+  	3 LE_M_STATE_SLAVE1_INITIATING
+  	4 LE_M_STATE_SLAVE1_CONNECTED
+  	5 LE_M_STATE_SLAVE1_RFU_1
+  	6 LE_M_STATE_SLAVE1_RFU_2
+  	7 LE_M_STATE_SLAVE1_RFU_3
+  )
+
+  (
+  	0 LE_M_STATE_SLAVE2_STANDBY
+  	1 LE_M_STATE_SLAVE2_ADVERTISING
+  	2 LE_M_STATE_SLAVE2_SCANNING
+  	3 LE_M_STATE_SLAVE2_INITIATING
+  	4 LE_M_STATE_SLAVE2_CONNECTED
+  	5 LE_M_STATE_SLAVE2_CONNECT_INIT
+  	6 LE_M_STATE_SLAVE2_RFU_2
+  	7 LE_M_STATE_SLAVE2_RFU_3
+  )
+
+  	(
+	0 LE_SM_IDLE
+	1 LE_SM_FBTV_1800
+	2 LE_SM_FBTV_1800_WAIT
+	3 LE_SM_RBT_DEVICE_NAME
+	4 LE_SM_RBT_DEVICE_NAME_WAIT
+	5 LE_SM_FBTV_1801
+	6 LE_SM_FBTV_1801_WAIT
+	7 LE_SM_RBT_DEVICE_CHARACTER
+	8 LE_SM_RBT_DEVICE_CHARACTER_WAIT
+	
+  	)
+
+/* advertising channel PDU type */
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+6 ADV_SCAN_IND
+)
+
+	/* tx packet type */
+	(
+	0x20 XT_LL_CONNECTION_UPDATE_REQ
+	0x21 XT_LL_CHANNEL_MAP_REQ
+	0x22 XT_LL_TERMINATE_IND
+	0x23 XT_LL_ENC_REQ
+	0x24 XT_LL_ENC_RSP
+	0x25 XT_LL_START_ENC_REQ
+	0x26 XT_LL_START_ENC_RSP
+	0x27 XT_LL_UNKNOWN_RSP
+	0x28 XT_LL_FEATURE_REQ
+	0x29 XT_LL_FEATURE_RSP
+	0x2A XT_LL_PAUSE_ENC_REQ
+	0x2B XT_LL_PAUSE_ENC_RSP
+	0x2C XT_LL_VERSION_IND
+	0x2D XT_LL_REJECT_IND
+	0x2E XT_LL_SLAVE_FEATURE_REQ
+	0x2F XT_LL_CONNECTION_PARAM_REQ
+	0x30 XT_LL_CONNECTION_PARAM_RSP
+	0x31 XT_LL_REJECT_IND_EXT
+	0x32 XT_LL_PING_REQ
+	0x33 XT_LL_PING_RSP
+	0x41 XT_SMP_PAIRING_REQUEST
+	0x42 XT_SMP_PAIRING_RESPONSE
+	0x43 XT_SMP_PAIRING_CONFIRM
+	0x44 XT_SMP_PAIRING_RANDOM
+	0x45 XT_SMP_PAIRING_FAILED
+	0x46 XT_SMP_ENCRYPTION_INFORMATION
+	0x47 XT_SMP_MASTER_IDENTIFICATION
+	0x48 XT_SMP_IDENTITY_INFORMATION
+	0x49 XT_SMP_IDENTITY_ADDRESS_INFORMATION
+	0x4A XT_SMP_SIGNING_INFORMATION
+	0x4B XT_SMP_SECURITY_REQUEST
+	0x4c XT_SMP_PAIRING_PUBLIC_KEY
+	0x4d XT_SMP_PAIRING_DHKEY_CHECK
+	)
+
+
+	/* LE control packet type */
+	(
+	0x00 LL_CONNECTION_UPDATE_REQ
+	0x01 LL_CHANNEL_MAP_REQ
+	0x02 LL_TERMINATE_IND
+	0x03 LL_ENC_REQ
+	0x04 LL_ENC_RSP
+	0x05 LL_START_ENC_REQ
+	0x06 LL_START_ENC_RSP
+	0x07 LL_UNKNOWN_RSP
+	0x08 LL_FEATURE_REQ
+	0x09 LL_FEATURE_RSP
+	0x0A LL_PAUSE_ENC_REQ
+	0x0B LL_PAUSE_ENC_RSP
+	0x0C LL_VERSION_IND
+	0x0D LL_REJECT_IND
+	0x0E LL_SLAVE_FEATURE_REQ
+	0x0F LL_CONNECTION_PARAM_REQ
+	0x10 LL_CONNECTION_PARAM_RSP
+	0x11 LL_REJECT_IND_EXT
+	0x12 LL_PING_REQ
+	0x13 LL_PING_RSP
+	)
+
+	/* Security Manager Protocol Code */
+	(
+	0x01 SMP_PAIRING_REQUEST
+	0x02 SMP_PAIRING_RESPONSE
+	0x03 SMP_PAIRING_CONFIRM
+	0x04 SMP_PAIRING_RANDOM
+	0x05 SMP_PAIRING_FAILED
+	0x06 SMP_ENCRYPTION_INFORMATION
+	0x07 SMP_MASTER_IDENTIFICATION
+	0x08 SMP_IDENTITY_INFORMATION
+	0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+	0x0A SMP_SIGNING_INFORMATION
+	0x0B SMP_SECURITY_REQUEST
+	0x0c SMP_PAIRING_PUBLIC_KEY
+	0x0d SMP_PAIRING_DHKEY_CHECK
+	)
+
+	/* ATT OPCODE */
+	(
+	0x01 ATTOP_ERROR_RESPONSE
+	0x02 ATTOP_EXCHANGE_MTU_REQUEST
+	0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+	0x04 ATTOP_FIND_INFORMATION_REQUEST
+	0x05 ATTOP_FIND_INFORMATION_RESPONSE
+	0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+	0x08 ATTOP_READ_BY_TYPE_REQUEST
+	0x09 ATTOP_READ_BY_TYPE_RESPONSE
+	0x0A ATTOP_READ_REQUEST
+	0x0B ATTOP_READ_RESPONSE
+	0x0C ATTOP_READ_BLOB_REQUEST
+	0x0D ATTOP_READ_BLOB_RESPONSE
+	0x0E ATTOP_READ_MULTIPLE_REQUEST
+	0x0F ATTOP_READ_MULTIPLE_RESPONSE
+	0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+	0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+	0x12 ATTOP_WRITE_REQUEST
+	0x13 ATTOP_WRITE_RESPONSE
+	0x16 ATTOP_PREPARE_WRITE_REQUEST
+	0x17 ATTOP_PREPARE_WRITE_RESPONSE
+	0x18 ATTOP_EXECUTE_WRITE_REQUEST
+	0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+	0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+	0x1D ATTOP_HANDLE_VALUE_INDICATION
+	0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+	0x52 ATTOP_WRITE_COMMAND
+	0xD2 ATTOP_SIGNED_WRITE_COMMAND
+	0x1f ATTOP_CONTINUE
+	0x9e EMPTY_LE_DATA_PRE
+	0x9f EMPTY_LE_DATA
+	)
+
+	/* ATT error code */
+	(
+	0x01 ATT_ERR_INVALID_HANDLE
+	0x02 ATT_ERR_READ_NOT_PERMITTED
+	0x03 ATT_ERR_WRITE_NOT_PERMITTED
+	0x04 ATT_ERR_INVALID_PDU
+	0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+	0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+	0x07 ATT_ERR_INVALID_OFFSET
+	0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+	0x09 ATT_ERR_PREPARE_QUEUE_FULL
+	0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+	0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+	0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+	0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+	0x0E ATT_ERR_UNLIKELY_ERROR
+	0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+	0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+	0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+	)
+	/*	SERVICE UUID	*/
+	(
+	0x1800 UUID_SERVICE_GENERIC_ACC
+	0x1801 UUID_SERVICE_GENERIC_ATT
+	0x180a UUID_SERVICE_DEVICE_INFO
+	0x180f UUID_SERVICE_BATTERY
+	0x1812 UUID_SERVICE_HIDS
+	0x2800 UUID_GATT_PRIMARY_SERVICE
+	0x2801 UUID_GATT_SECONDARY_SERVICE
+	0X2802 UUID_GATT_INCLUDE
+	0X2803 UUID_GATT_CHARACTERISTIC
+	0X2A00 UUID_CHRCTR_DEVICE_NAME
+	0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+	0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+	0X2A23 UUID_CHRCTR_SYSTEM_ID 
+	0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+	0X2A26 UUID_CHRCTR_FIRMWARE
+	0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+	0X2A33 UUID_CHRCTR_MOUSE_INPUT
+	0X2A4A UUID_CHRCTR_HID_INFO
+	0X2A4B UUID_CHRCTR_REPORT_MAP
+	0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+	0X2A4D UUID_CHRCTR_REPORT
+	0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+	)
+
+	(// pairing failed reason
+	0x00 PAIRING_FAILED_RESERVED
+	0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+	0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+	0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+	0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+	0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+	0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+	0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+	0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+	0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+	0X0A PAIRING_FAILED_INVALID_PARAMETERS
+	0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+	0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+	0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+	0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+	)
+
+	//modified_name
+	(
+	0x14 MAX_NAME_LEN
+	0x16 ADV_DATA_NAME_LEN
+	0X20 SPACE
+	
+	)
+	/* GATT Specifications*/
+	(
+	0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+	0X2901 CHARACTERTIC_USER_DESCRIPTION
+	0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+	0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+	0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+	0X2905 CHARACTERTIC_AGGREGATE
+	0X2906 VALID_RANGE
+	0X2907 EXTERNAL_REPORT_REFERENCE
+	0X2908 REPORT_REFERENCE
+	0X290B ENVIR_SENSING_CONFIGURATION
+	0X290C ENVIR_SENSING_MEASUREMENT
+	0X290D ENVIR_SENSING_TRIGGER_SETTING
+	)
+	/* LE L2CAP CID */
+	(
+	0x04 LE_L2CAP_CID_ATT
+	0x05 LE_L2CAP_CID_SIGNAL
+	0x06 LE_L2CAP_CID_SMP
+	)
+
+	//LE address type
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	//LE address type bitmap
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	//LE SCAN TYPE
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+
+	//LE SCAN ENABLE
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+
+
+//	le_state_map 0-2 is reserved for state_inconn,state_insniff and state_sco
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+)
+
+// 	le mode
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+)
+
+(
+0 LE_CONTINUE_TYPE_NULL
+1 LE_CONTINUE_TYPE_NOTIFICATION
+2 LE_CONTINUE_TYPE_PREPARE_WRITE_RESPONSE 
+)
+
+
+(
+0 LE_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_BIT
+)
+
+(
+0X00	LE_PAIRING_MODE_NONE
+0X01	LE_PAIRING_MODE_LAGACY_JUSTWORK
+0X02	LE_PAIRING_MODE_LAGACY_PASSKEY
+0x81	LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82	LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0X83	LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+
+
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+
+(
+0X00 FLAG_LE_NO_BONDING_NO_MITM
+0X01 FLAG_LE_BONDING_NO_MITM
+0X04 FLAG_LE_NO_BONDING_MITM
+0X05 FLAG_LE_BONDING_MITM
+0X09 FLAG_LE_BONDING_NO_MITM_SECURE
+0X0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+
+//mem_le_enc_state
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_ENC_END
+)
+
+//mem_le_pairing_state
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_AFTER_AUTH
+3 FLAG_LE_PAIRING_END
+)
+
+/*LE secure connect state */
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+
+
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+
+
+(
+3 LE_CONTINUE_TYPE_PUBLIC_KEY
+)
+
+//mem_le_continue_flag
+(
+0 LE_CONTINUE_FLAG_NULL
+1 LE_CONTINUE_FLAG_RX
+2 LE_CONTINUE_FLAG_TX
+)
+
+(
+0x2902  ATT_Configuration
+)
+
+memalloc(
+
+1 mem_lmo_header_length
+1 mem_lmo_header_opcode
+17 mem_lmo_payload
+1 mem_lmi_accepted_opcode
+1 mem_disconn_reason_send
+1 mem_tx_fixed_freq
+1 mem_rx_fixed_freq
+1 mem_ext_features_page
+2 mem_lmpext_ssp_enable
+1 mem_remote_sppcap
+
+1 mem_lmp_conn_state
+2 mem_soft_timer
+1 mem_pincode_state
+
+1 mem_sres_tid
+1 mem_accptsco_tid
+
+1 mem_auth_enable
+1 mem_wait_encryption
+
+16 mem_sniff_payload
+4 mem_aurand_send_delay_time
+)
+
+xmemalloc(
+3 mem_lmp_version
+2 mem_lmp_subversion
+1 mem_local_name_length
+3 mem_local_name
+64 mem_local_name2
+1 mem_local_name_end
+1 mem_unsniff2sniff_timer
+1 mem_switch_flag
+)
+	(
+	//bit map
+	0 pair_state_inrand
+	1 pair_state_inrand_acpt
+	2 pair_state_send_comb
+	3 pair_state_recv_comb
+	4 pair_state_send_aurand
+	5 pair_state_recv_sres
+	6 pair_state_recv_aurand
+	7 pair_state_send_sres	
+	)
+	/* LMP opcodes */
+	(
+	1 LMP_NAME_REQ 
+	2 LMP_NAME_RES 
+	3 LMP_ACCEPTED 
+	4 LMP_NOT_ACCEPTED 
+	5 LMP_CLKOFFSET_REQ 
+	6 LMP_CLKOFFSET_RES 
+	7 LMP_DETACH 
+	8 LMP_IN_RAND 
+	9 LMP_COMB_KEY 
+	10 LMP_UNIT_KEY 
+	11 LMP_AU_RAND 
+	12 LMP_SRES 
+	13 LMP_TEMP_RAND 
+	14 LMP_TEMP_KEY 
+	15 LMP_ENCRYPTION_MODE_REQ 
+	16 LMP_ENCRYPTION_KEY_SIZE_REQ 
+	17 LMP_START_ENCRYPTION_REQ 
+	18 LMP_STOP_ENCRYPTION_REQ 
+	19 LMP_SWITCH_REQ 
+	20 LMP_HOLD
+	21 LMP_HOLD_REQ
+	23 LMP_SNIFF_REQ 
+	24 LMP_UNSNIFF_REQ 
+	26 LMP_PARK_REQ 
+	27 LMP_SET_BROADCAST_SCAN_WINDOW 
+	28 LMP_MODIFY_BEACON 
+	29 LMP_UNPARK_BD_ADDR_REQ 
+	30 LMP_UNPARK_PM_ADDR_REQ 
+	31 LMP_INCR_POWER_REQ 
+	32 LMP_DECR_POWER_REQ 
+	33 LMP_MAX_POWER 
+	34 LMP_MIN_POWER 
+	35 LMP_AUTO_RATE 
+	36 LMP_PREFERRED_RATE 
+	37 LMP_VERSION_REQ 
+	38 LMP_VERSION_RES 
+	39 LMP_FEATURES_REQ 
+	40 LMP_FEATURES_RES 
+	41 LMP_QUALITY_OF_SERVICE 
+	42 LMP_QUALITY_OF_SERVICE_REQ 
+	43 LMP_SCO_LINK_REQ 
+	44 LMP_REMOVE_SCO_LINK_REQ 
+	45 LMP_MAX_SLOT 
+	46 LMP_MAX_SLOT_REQ 
+	47 LMP_TIMING_ACCURACY_REQ 
+	48 LMP_TIMING_ACCURACY_RES 
+	49 LMP_SETUP_COMPLETE 
+	50 LMP_USE_SEMI_PERMANENT_KEY 
+	51 LMP_HOST_CONNECTION_REQ 
+	52 LMP_SLOT_OFFSET 
+	53 LMP_PAGE_MODE_REQ 
+	54 LMP_PAGE_SCAN_MODE_REQ 
+	55 LMP_SUPERVISION_TIMEOUT 
+	56 LMP_TEST_ACTIVATE
+	57 LMP_TEST_CONTROL
+	58 LMP_ENC_KEY_SIZE_MASK_REQ
+	59 LMP_ENC_KEY_SIZE_MASK_RES
+	60 LMP_SET_AFH
+
+	/* simple pairing support */
+	61 LMP_ENCAPSULATED_HEADER
+	62 LMP_ENCAPSULATED_PAYLOAD
+	63 LMP_SIMPLE_PAIRING_CONFIRM
+	64 LMP_SIMPLE_PAIRING_NUMBER
+	65 LMP_DHKEY_CHECK
+	127 LMP_ESCAPE
+	127 LMP_ESCAPE_4   /* add 2bytes LMP header support  */   
+	)
+	/* LMP EXT opcodes, ORed with bit 7 to make difference to nonEXT */
+	(
+	129 LMP_EXT_ACCEPTED
+	130 LMP_NOT_ACCEPTED_EXT
+	131 LMP_EXT_FEATURES_REQ
+	132 LMP_EXT_FEATURES_RES
+	139 LMP_PACKET_TYPE_TABLE_REQ
+	140 LMP_EXT_ESCO_LINK_REQ
+	141 LMP_EXT_REMOVE_ESCO_REQ
+	144 LMP_EXT_CHN_CLASSIFICATION_REQ
+	145 LMP_EXT_CHN_CLASSIFICATION
+	149 LMP_SNIFF_SUBRATING_REQ
+	150 LMP_SNIFF_SUBRATING_RES
+	151 LMP_PAUSE_ENCRYPTION_REQ
+	152 LMP_RESUME_ENCRYPTION_REQ
+	153 LMP_IO_CAP_REQ
+	154 LMP_IO_CAP_RES
+	)
+	/* LMP reason codes */
+	(
+	0x05 AUTHENTICATION_FAILURE_ERROR
+	0x06 KEY_MISSING
+	0x0b ACL_CONNECTION_ALREADY_EXISTS
+	0x13 OTHER_END_TERMINATED
+	0x15 ABOUT_TO_POEWR_OFF
+	0x16 LOCAL_HOST
+	0x18 PAIRING_NOT_ALLOWED
+	0x19 UNKNOWN_LMP_PDU
+	0x1A UNSUPPORTED_LMP_FEATURE 
+	0x1F UNSPECIFIED_ERROR
+	0x20 UNSUPPORTED_PARAMETERS
+	0x21 SWITCH_NOT_ALLOWED
+	0x23 TRANSACTION_COLLISION
+	0x24 PDU_NOT_ALLOWED
+	0x25 ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x2e NOT_SUPPORT_CHN_CLASSIFICATION
+	0x37 NOT_SUPPORT_SSP
+	)
+
+	/* test mode scenarios */
+	(
+	0 PAUSE_TEST_MODE
+	1 ZERO_PATTERN
+	2 ONE_PATTERN
+	3 ALT_PATTERN
+	4 PSEUDORANDOM
+	5 CLOSED_LOOP_BACK_ACL
+	6 CLOSED_LOOP_BACK_SCO
+	7 ACL_WITHOUT_WHITENING
+	8 SCO_WITHOUT_WHITENING
+	9 ALT2_PATTERN
+	255 EXIT_TEST_MODE
+	)
+	/* test mode hoppig modes */
+	(
+	0 FIXED_FREQ
+	1 NORMAL_HOP
+	)
+
+	/* mem_lmp_tid indicates which type of LMP will be sent */
+	(
+	0 TID_NORM_REPLY
+	1 TID_NORM_SEND
+	2 TID_ONE
+	3 TID_ZERO
+	4 TID_PAIRING
+	5 TID_ENCRYPTION
+	6 TID_VARIABLE
+	7 TID_RX
+	)
+
+	/* ============== lmp status ==========*/
+	(
+	0 lmp_incoming
+	1 lmp_outgoing
+	2 lmp_reject_msg
+	3 lmp_clear_msg
+	4 upper_reject_msg
+	5 upper_clear_msg
+	)
+
+(
+0x2ee00 TIMER_ONE_MINUTE //96000*2
+80 TIMER_SWITCH_WAITE
+12 TIMER_ENPT_WAITE
+)
+
+(
+0 SWITCH_FLAG_INIT
+1 SWITCH_FLAG_ACCEPT
+2 SWITCH_FLAG_NOT_ACCEPT
+)
+(
+0 NULL_ENCRYP
+1 DONE_ENCRYP
+)
+
+//
+//
+//Large memory blocks defined in this file.
+//Blocks Shall be defined with absolute address.
+//Blocks' length Shall be specified in comment following Blocks' names.
+//Different blocks MAY be overlap.
+//Blocks defined in this file Shall NOT be overlap with variable in memmap.format.
+
+// USB C51 exchange area
+(
+0xff0 mem_mcmd
+0xff1 mem_mouse_data
+)
+
+//l2cap RX buffers
+(
+0x1000 mem_l2cap_rxbuff1		//0x400
+0x1400 mem_l2cap_rxbuff2		//0x400
+//end address:0x17ff
+)
+//l2cap TX buffers
+(
+0x1800 mem_tx_buff0		//128
+0x1880 mem_tx_buff1		//128
+0x1900 mem_tx_buff2		//128
+0x1980 mem_tx_buff3		//128
+0x1a00 mem_tx_buff4		//128
+0x1a80 mem_tx_buff5		//128
+0x1b00 mem_tx_buff6		//128
+0x1b80 mem_tx_buff7		//128
+//end address: 0x1bff
+)
+
+//uart buffer
+(
+0x1800 mem_h5rx_buf//0x400
+0x1bff mem_h5rx_buf_end
+0x1c00 mem_h5tx_buf
+0x1fff mem_h5tx_buf_end
+)
+
+(
+0x4c00 mem_module_rx_buf//0x400
+0x4c00 mem_module_rx_buf_little
+0x4fff mem_module_rx_buf_end
+0x1c00 mem_module_tx_buf
+0x1fff mem_module_tx_buf_end
+)
+
+(
+0x1800 mem_ir_record
+0x1c      mem_ir_record_max
+)
+
+
+memalloc(
+	2 mem_module_temp_len
+	1 mem_uart_cmd
+	1 mem_uart_opcode
+	1 mem_uart_len
+	1 mem_module_temp_nl_discard_packet
+	1 mem_module_le_md_flag
+)
+omemalloc(	
+	1 mem_module_wake_up_gpio
+	1 mem_module_state_gpio
+	1 mem_module_connect_state_gpio
+
+	2 mem_current_packet_length
+	1 mem_module_state
+	1 mem_module_task
+	6 mem_cmode_addr
+	1 mem_module_mcu_wake_pin
+	4 mem_module_mcu_wake_delay_us
+
+	1 mem_module_spp_lpm_mult
+	1 mem_module_le_lpm_mult	
+	1 mem_module_bluetooth_stauts_by_command
+
+	//uart
+	2 mem_module_uart_rx_buffer
+	2 mem_module_uart_rx_buffer_end
+	2 mem_module_uart_tx_buffer
+	2 mem_module_uart_tx_buffer_end
+
+	//ADC
+	1 mem_module_read_vdd_flag
+	1 mem_module_read_vdd_count
+	1 mem_module_vdd_quotient
+	1 mem_module_vdd_remainder
+
+	//ble
+	2 mem_module_le_buff_len
+	2 mem_module_le_buff_len_all
+	2 mem_module_le_buff_data_len_all
+	1 mem_module_le_continue_flag
+	1 mem_module_le_rx_data_len
+	2 mem_module_le_rx_data_address
+	2 mem_module_le_rx_data_handle
+	//ble write handle
+	2 mem_module_data_write_handle
+	2 mem_module_data_write_handle2
+	//flag
+	1 mem_module_flag
+	1 mem_le_notify_type
+	2 mem_module_hci_notify_start
+	2 mem_module_hci_notify_offset
+	2 mem_module_hci_notify_len
+	2 mem_module_hci_notify_att
+	2 mem_module_hci_notify_original_len
+	
+	300 mem_module_uuid_list
+	0 mem_module_uuid_list_end
+	500 mem_module_le_att_list
+	0 mem_module_le_att_list_end
+	0 mem_nv_data
+	34 mem_nv_data0
+	34 mem_nv_data1
+	34 mem_nv_data2
+	34 mem_nv_data3
+	34 mem_nv_data4
+)
+
+
+(
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_RECEIVED_DATA
+2 MODULE_FLAG_BLE_SEND_MTU23
+3 MODULE_FLAG_BLE_SEND_DATA
+)
+
+
+
+
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+
+
+
+(
+	10 FLAG_MODULE_READ_VDD_COUNT
+)
+
+	(
+		110  DM_REFCOM_BUFF_LEN
+		230  NL_RFCOMM_BUFF_LEN
+		220  NL_RFCOMM_BUFF_LEN_220
+		20 DM_LE_BUFF_LEN
+	)
+	(
+		0x200 UART_AIR_CONTROL_THRESHOLD
+		0x150 UART_RX_CONTROL_THRESHOLD
+	)
+	(
+		0 MODULE_LED_DISABLE
+		1 MODULE_LED_BLINK
+	)
+
+
+
+
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+
+
+)
+
+
+
+(//Command
+0x00 HCI_CMD_SET_BT_ADDR_REQ
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x03 HCI_CMD_SET_BT_NAME_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x05 HCI_CMD_SPP_DATA_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0c HCI_CMD_SET_PAIRING_REQ
+0x0d HCI_CMD_SET_PINCODE_REQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x11 HCI_CMD_BT_DISCONNECT
+0x12 HCI_CMD_BLE_DISCONNECT
+0x13 HCI_CMD_DELETE_DEVICE
+0x14 HCI_CMD_CREATE_CONNECT
+0x26 HCI_CMD_SET_NVRAM_REQ
+0x27 HCI_CMD_SLEEP
+0x28 HCI_CMD_CONFIRM_GKEY
+0x29 HCI_CMD_SET_CREDIT_GIVEN
+0x2a HCI_CMD_AUTO_ADV_SCAN
+0x2b HCI_CMD_POWER_REQ
+0x2c HCI_CMD_POWER_SET
+0x30 HCI_CMD_PASSKEY_ENTRY
+0x31 HCI_CMD_SET_GPIO
+0x32 HCI_CMD_READ_GPIO
+0x33 HCI_CMD_LE_SET_PAIRING
+0x34 HCI_CMD_LE_SET_ADV_DATA
+0x35 HCI_CMD_LE_SET_SCAN_DATA
+0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
+0x38 HCI_CMD_LE_START_PAIRING
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+
+)
+
+(//event
+0x00 HCI_EVENT_SPP_CONN_REP
+0x01 HCI_EVENT_HID_CONN_REP
+0x02 HCI_EVENT_LE_CONN_REP
+0x03 HCI_EVENT_SPP_DIS_REP
+0x04 HCI_EVENT_HID_DIS_REP
+0x05 HCI_EVENT_LE_DIS_REP
+0x06 HCI_EVENT_CMD_RES
+0x07 HCI_EVENT_SPP_DATA_REP
+0x08 HCI_EVENT_LE_DATA_REP
+0x09 HCI_EVENT_STANDBY_REP
+0x0a HCI_EVENT_STATUS_RES
+0x0b HCI_EVENT_FINISH_PACK_NUM
+0X0C HCI_EVENT_SNIFF_MD_CHANGE
+0x0D HCI_EVENT_NVRAM_REP
+0x0e HCI_EVENT_GKEY
+0x0F HCI_EVENT_INVALID_PACKET
+0x10 HCI_EVENT_GET_PASSKEY
+0x11 HCI_EVENT_LE_TK
+0x12 HCI_EVENT_REMOTE_MTU
+0x14 HCI_EVENT_LE_PAIRING_STATE
+0X15 HCI_EVENT_LE_ENCRYPTION_STATE
+0x17 HCI_EVENT_LE_CONNECTION_UPDATE
+0x1d HCI_EVENT_LE_GKEY
+
+)
+
+
+
+
+(
+0x7e0 OTP_ADDR_RF_PARAM_FIX
+//struct of RF_PARAM_FIX
+// uint8       //length = param_pair_count * 2 
+// uint16     //param-pair-1
+// uint16     //param-pair-2
+// uint16     //param-pair-3
+// uint16     //param-pair-4
+// uint16     //param-pair-5
+// uint16     //param-pair-6
+// uint16     //param-pair-7
+)
+(
+0x0270 FW_VERSION_NUMBER
+)
+
+(
+0	PAIRING_PINCODE
+1	PAIRING_JUSTWORK
+2	PAIRING_PASSKEY
+3	PAIRING_CONFIRM
+)
+
+
+(
+0x0001	FLAG_BT_PAIRING_SUCCESS
+0x0101	FLAG_BT_PAIRING_FAIL
+0x0080	FLAG_BLE_PAIRING_SUCCESS
+0x0180	FLAG_BLE_PAIRING_FAIL
+)
+
+
+(
+1	FLAG_EVENT_START_ENC
+0	FLAG_EVENT_PAUSE_ENC
+)
+
+(
+	0 MOUDLE_STATE_BT_BIT
+	1 MOUDLE_STATE_BLE_BIT
+)
+
+(
+	0 MOUDLE_TASK_UNSINFF
+)
+
+
+
+memalloc(
+2 mem_init_cnt
+)
+//dpi eeprom addr
+198 mouse_dpi_eeprom_addr
+
+omemalloc(
+// Mouse Work Area
+1 mem_mouse_key
+2 mem_mouse_x
+2 mem_mouse_y
+1 mem_mouse_z
+1 mem_mouse_tz
+1 mem_mouse_xy_h
+1 mem_sensor_shutter_hi
+1 mem_sensor_shutter_lo
+1 mem_sensor_smart_flag
+1 mem_sensor_squal_reg
+1 mem_mouse_move_flag
+1 mem_reconnect_timeout
+2 mem_mouse_direct_timeout
+2 mem_mouse_no_data_timeout
+2 mem_mouse_blank_data_timeout
+2 mem_mouse_discovery_timer
+2 mem_mouse_direct_timer
+2 mem_mouse_no_data_timer
+2 mem_mouse_blank_data_timer
+1 mem_mouse_send_blank_timer
+1 mem_mouse_dpi
+1 mem_mouse_dpi_button_state
+1 mem_mouse_test_cnt
+2 mem_le_hibernate_timer
+1 mem_mouse_mode_state
+1 mem_mouse_le_notify_handle
+// Mouse Config Area
+
+1 mem_lbutton_gpio
+1 mem_rbutton_gpio
+1 mem_mbutton_gpio
+1 mem_sbutton1_gpio
+1 mem_sbutton2_gpio
+1 mem_dpi_button_gpio
+1 mem_sensor_data_gpio
+1 mem_whee_a_data_gpio
+1 mem_whee_b_data_gpio
+1 mem_sensor_reset_gpio
+1 mem_device1_led_gpio
+1 mem_device2_led_gpio
+1 mem_device3_led_gpio
+1 mem_conn_cnt
+//mouse T wheel
+1 mem_whee_ta_data_gpio
+1 mem_whee_tb_data_gpio
+1 mem_wheel_tb_old_pinlevel
+1 mem_wheel_tb_new_pinlevel
+1 mem_wheel_tog 
+1 mem_mouse_tz_data
+1 mem_mouse_tz_data_count
+1 mem_mouse_tz_data_count1
+
+1 mem_mwhee_a_data_gpio
+1 mem_mwhee_b_data_gpio
+1 mem_mwheel_b_old_pinlevel
+1 mem_mwheel_b_new_pinlevel
+1 mem_mwheel_tog 
+1 mem_mouse_z_data
+1 mem_mouse_z_data_count
+1 mem_mouse_z_data_count1
+
+1 mem_reconn_mode
+1 mem_mouse_statue_led_timer  
+
+1 mem_device_flag
+750 mem_mouse_uuid_list
+0 mem_mouse_uuid_list_end
+600 mem_mouse_le_att_list
+0 mem_mouse_le_att_list_end
+)
+(
+0x00 DPI_BUTTON_STATE_DOWN
+0x01 DPI_BUTTON_STATE_UP
+
+)
+
+(
+1 ONE_TRADITION_MOUSE
+2 ONE_BLE_MOUSE
+)
+
+
+(
+1 SENSOR_TYPE_A7530
+2 SENSOR_TYPE_P3204
+)
+0x30 P3204_ID
+0x31 P3065_ID
+0x3e P3610_ID
+
+0x00 PAN_REG_PID_L
+0x01 PAN_REG_PID_H
+0x02 PAN_REG_MOTION_STAUS
+0x03 PAN_REG_DELTA_X
+0x04 PAN_REG_DELTA_Y
+0x05 PAN_REG_OPRATION_MODE
+0x06 PAN_REG_CONFIG
+0x07 PAN_REG_IMAGE_QUALITY
+0x08 PAN_REG_OPRATION_STATE
+0x09 PAN_REG_WRITE_PROTECT
+0x0A PAN_REG_SLEEP_1
+0x0B PAN_REG_ENTER_TIME
+0x0C PAN_REG_SLEEP_2
+0x0D PAN_REG_IMAGE_THRESHOLD
+0x0E PAN_REG_IMAGE_RECGNITION
+
+7 pan_bit_motion
+
+(
+1000      MOUSE_LPM_CLR_LOCK_TIME
+0x06      MOUSE_DPI_ADDRESS
+       2       MOUSE_DPI_MAX_DECR
+)
+(
+80 MOUSE_SEND_BLANK_TIMER
+)
+
+
+//mem_mouse_mode_state
+(
+0x00 MOUSE_MODE_STATE_IDLE
+0x01 MOUSE_MODE_STATE_BT
+0x02 MOUSE_MODE_STATE_BLE
+)
+
+
+(
+	  0 patch00_0
+	  1 patch00_1
+	  2 patch00_2
+	  3 patch00_3
+	  4 patch00_4
+	  5 patch00_5
+	  6 patch00_6
+	  7 patch00_7
+	  8 patch01_0
+	  9 patch01_1
+	 10 patch01_2
+	 11 patch01_3
+	 12 patch01_4
+	 13 patch01_5
+	 14 patch01_6
+	 15 patch01_7
+	 16 patch02_0
+	 17 patch02_1
+	 18 patch02_2
+	 19 patch02_3
+	 20 patch02_4
+	 21 patch02_5
+	 22 patch02_6
+	 23 patch02_7
+	 24 patch03_0
+	 25 patch03_1
+	 26 patch03_2
+	 27 patch03_3
+	 28 patch03_4
+	 29 patch03_5
+	 30 patch03_6
+	 31 patch03_7
+	 32 patch04_0
+	 33 patch04_1
+	 34 patch04_2
+	 35 patch04_3
+	 36 patch04_4
+	 37 patch04_5
+	 38 patch04_6
+	 39 patch04_7
+	 40 patch05_0
+	 41 patch05_1
+	 42 patch05_2
+	 43 patch05_3
+	 44 patch05_4
+	 45 patch05_5
+	 46 patch05_6
+	 47 patch05_7
+	 48 patch06_0
+	 49 patch06_1
+	 50 patch06_2
+	 51 patch06_3
+	 52 patch06_4
+	 53 patch06_5
+	 54 patch06_6
+	 55 patch06_7
+	 56 patch07_0
+	 57 patch07_1
+	 58 patch07_2
+	 59 patch07_3
+	 60 patch07_4
+	 61 patch07_5
+	 62 patch07_6
+	 63 patch07_7
+	 64 patch08_0
+	 65 patch08_1
+	 66 patch08_2
+	 67 patch08_3
+	 68 patch08_4
+	 69 patch08_5
+	 70 patch08_6
+	 71 patch08_7
+	 72 patch09_0
+	 73 patch09_1
+	 74 patch09_2
+	 75 patch09_3
+	 76 patch09_4
+	 77 patch09_5
+	 78 patch09_6
+	 79 patch09_7
+	 80 patch0a_0
+	 81 patch0a_1
+	 82 patch0a_2
+	 83 patch0a_3
+	 84 patch0a_4
+	 85 patch0a_5
+	 86 patch0a_6
+	 87 patch0a_7
+	 88 patch0b_0
+	 89 patch0b_1
+	 90 patch0b_2
+	 91 patch0b_3
+	 92 patch0b_4
+	 93 patch0b_5
+	 94 patch0b_6
+	 95 patch0b_7
+	 96 patch0c_0
+	 97 patch0c_1
+	 98 patch0c_2
+	 99 patch0c_3
+	100 patch0c_4
+	101 patch0c_5
+	102 patch0c_6
+	103 patch0c_7
+	104 patch0d_0
+	105 patch0d_1
+	106 patch0d_2
+	107 patch0d_3
+	108 patch0d_4
+	109 patch0d_5
+	110 patch0d_6
+	111 patch0d_7
+	112 patch0e_0
+	113 patch0e_1
+	114 patch0e_2
+	115 patch0e_3
+	116 patch0e_4
+	117 patch0e_5
+	118 patch0e_6
+	119 patch0e_7
+	120 patch0f_0
+	121 patch0f_1
+	122 patch0f_2
+	123 patch0f_3
+	124 patch0f_4
+	125 patch0f_5
+	126 patch0f_6
+	127 patch0f_7
+	128 patch10_0
+	129 patch10_1
+	130 patch10_2
+	131 patch10_3
+	132 patch10_4
+	133 patch10_5
+	134 patch10_6
+	135 patch10_7
+	136 patch11_0
+	137 patch11_1
+	138 patch11_2
+	139 patch11_3
+	140 patch11_4
+	141 patch11_5
+	142 patch11_6
+	143 patch11_7
+	144 patch12_0
+	145 patch12_1
+	146 patch12_2
+	147 patch12_3
+	148 patch12_4
+	149 patch12_5
+	150 patch12_6
+	151 patch12_7
+	152 patch13_0
+	153 patch13_1
+	154 patch13_2
+	155 patch13_3
+	156 patch13_4
+	157 patch13_5
+	158 patch13_6
+	159 patch13_7
+	160 patch14_0
+	161 patch14_1
+	162 patch14_2
+	163 patch14_3
+	164 patch14_4
+	165 patch14_5
+	166 patch14_6
+	167 patch14_7
+	168 patch15_0
+	169 patch15_1
+	170 patch15_2
+	171 patch15_3
+	172 patch15_4
+	173 patch15_5
+	174 patch15_6
+	175 patch15_7
+	176 patch16_0
+	177 patch16_1
+	178 patch16_2
+	179 patch16_3
+	180 patch16_4
+	181 patch16_5
+	182 patch16_6
+	183 patch16_7
+	184 patch17_0
+	185 patch17_1
+	186 patch17_2
+	187 patch17_3
+	188 patch17_4
+	189 patch17_5
+	190 patch17_6
+	191 patch17_7
+	192 patch18_0
+	193 patch18_1
+	194 patch18_2
+	195 patch18_3
+	196 patch18_4
+	197 patch18_5
+	198 patch18_6
+	199 patch18_7
+	200 patch19_0
+	201 patch19_1
+	202 patch19_2
+	203 patch19_3
+	204 patch19_4
+	205 patch19_5
+	206 patch19_6
+	207 patch19_7
+	208 patch1a_0
+	209 patch1a_1
+	210 patch1a_2
+	211 patch1a_3
+	212 patch1a_4
+	213 patch1a_5
+	214 patch1a_6
+	215 patch1a_7
+	216 patch1b_0
+	217 patch1b_1
+	218 patch1b_2
+	219 patch1b_3
+	220 patch1b_4
+	221 patch1b_5
+	222 patch1b_6
+	223 patch1b_7
+	224 patch1c_0
+	225 patch1c_1
+	226 patch1c_2
+	227 patch1c_3
+	228 patch1c_4
+	229 patch1c_5
+	230 patch1c_6
+	231 patch1c_7
+	232 patch1d_0
+	233 patch1d_1
+	234 patch1d_2
+	235 patch1d_3
+	236 patch1d_4
+	237 patch1d_5
+	238 patch1d_6
+	239 patch1d_7
+	240 patch1e_0
+	241 patch1e_1
+	242 patch1e_2
+	243 patch1e_3
+	244 patch1e_4
+	245 patch1e_5
+	246 patch1e_6
+	247 patch1e_7
+	248 patch1f_0
+	249 patch1f_1
+	250 patch1f_2
+	251 patch1f_3
+	252 patch1f_4
+	253 patch1f_5
+	254 patch1f_6
+	255 patch1f_7
+	  0 patch20_0
+	  1 patch20_1
+	  2 patch20_2
+	  3 patch20_3
+	  4 patch20_4
+	  5 patch20_5
+	  6 patch20_6
+	  7 patch20_7
+	  8 patch21_0
+	  9 patch21_1
+	 10 patch21_2
+	 11 patch21_3
+	 12 patch21_4
+	 13 patch21_5
+	 14 patch21_6
+	 15 patch21_7
+	 16 patch22_0
+	 17 patch22_1
+	 18 patch22_2
+	 19 patch22_3
+	 20 patch22_4
+	 21 patch22_5
+	 22 patch22_6
+	 23 patch22_7
+	 24 patch23_0
+	 25 patch23_1
+	 26 patch23_2
+	 27 patch23_3
+	 28 patch23_4
+	 29 patch23_5
+	 30 patch23_6
+	 31 patch23_7
+	 32 patch24_0
+	 33 patch24_1
+	 34 patch24_2
+	 35 patch24_3
+	 36 patch24_4
+	 37 patch24_5
+	 38 patch24_6
+	 39 patch24_7
+	 40 patch25_0
+	 41 patch25_1
+	 42 patch25_2
+	 43 patch25_3
+	 44 patch25_4
+	 45 patch25_5
+	 46 patch25_6
+	 47 patch25_7
+	 48 patch26_0
+	 49 patch26_1
+	 50 patch26_2
+	 51 patch26_3
+	 52 patch26_4
+	 53 patch26_5
+	 54 patch26_6
+	 55 patch26_7
+	 56 patch27_0
+	 57 patch27_1
+	 58 patch27_2
+	 59 patch27_3
+	 60 patch27_4
+	 61 patch27_5
+	 62 patch27_6
+	 63 patch27_7
+	 64 patch28_0
+	 65 patch28_1
+	 66 patch28_2
+	 67 patch28_3
+	 68 patch28_4
+	 69 patch28_5
+	 70 patch28_6
+	 71 patch28_7
+	 72 patch29_0
+	 73 patch29_1
+	 74 patch29_2
+	 75 patch29_3
+	 76 patch29_4
+	 77 patch29_5
+	 78 patch29_6
+	 79 patch29_7
+	 80 patch2a_0
+	 81 patch2a_1
+	 82 patch2a_2
+	 83 patch2a_3
+	 84 patch2a_4
+	 85 patch2a_5
+	 86 patch2a_6
+	 87 patch2a_7
+	 88 patch2b_0
+	 89 patch2b_1
+	 90 patch2b_2
+	 91 patch2b_3
+	 92 patch2b_4
+	 93 patch2b_5
+	 94 patch2b_6
+	 95 patch2b_7
+	 96 patch2c_0
+	 97 patch2c_1
+	 98 patch2c_2
+	 99 patch2c_3
+	100 patch2c_4
+	101 patch2c_5
+	102 patch2c_6
+	103 patch2c_7
+	104 patch2d_0
+	105 patch2d_1
+	106 patch2d_2
+	107 patch2d_3
+	108 patch2d_4
+	109 patch2d_5
+	110 patch2d_6
+	111 patch2d_7
+	112 patch2e_0
+	113 patch2e_1
+	114 patch2e_2
+	115 patch2e_3
+	116 patch2e_4
+	117 patch2e_5
+	118 patch2e_6
+	119 patch2e_7
+	120 patch2f_0
+	121 patch2f_1
+	122 patch2f_2
+	123 patch2f_3
+	124 patch2f_4
+	125 patch2f_5
+	126 patch2f_6
+	127 patch2f_7
+	128 patch30_0
+	129 patch30_1
+	130 patch30_2
+	131 patch30_3
+	132 patch30_4
+	133 patch30_5
+	134 patch30_6
+	135 patch30_7
+	136 patch31_0
+	137 patch31_1
+	138 patch31_2
+	139 patch31_3
+	140 patch31_4
+	141 patch31_5
+	142 patch31_6
+	143 patch31_7
+	144 patch32_0
+	145 patch32_1
+	146 patch32_2
+	147 patch32_3
+	148 patch32_4
+	149 patch32_5
+	150 patch32_6
+	151 patch32_7
+	152 patch33_0
+	153 patch33_1
+	154 patch33_2
+	155 patch33_3
+	156 patch33_4
+	157 patch33_5
+	158 patch33_6
+	159 patch33_7
+	160 patch34_0
+	161 patch34_1
+	162 patch34_2
+	163 patch34_3
+	164 patch34_4
+	165 patch34_5
+	166 patch34_6
+	167 patch34_7
+	168 patch35_0
+	169 patch35_1
+	170 patch35_2
+	171 patch35_3
+	172 patch35_4
+	173 patch35_5
+	174 patch35_6
+	175 patch35_7
+	176 patch36_0
+	177 patch36_1
+	178 patch36_2
+	179 patch36_3
+	180 patch36_4
+	181 patch36_5
+	182 patch36_6
+	183 patch36_7
+	184 patch37_0
+	185 patch37_1
+	186 patch37_2
+	187 patch37_3
+	188 patch37_4
+	189 patch37_5
+	190 patch37_6
+	191 patch37_7
+	192 patch38_0
+	193 patch38_1
+	194 patch38_2
+	195 patch38_3
+	196 patch38_4
+	197 patch38_5
+	198 patch38_6
+	199 patch38_7
+	200 patch39_0
+	201 patch39_1
+	202 patch39_2
+	203 patch39_3
+	204 patch39_4
+	205 patch39_5
+	206 patch39_6
+	207 patch39_7
+	208 patch3a_0
+	209 patch3a_1
+	210 patch3a_2
+	211 patch3a_3
+	212 patch3a_4
+	213 patch3a_5
+	214 patch3a_6
+	215 patch3a_7
+	216 patch3b_0
+	217 patch3b_1
+	218 patch3b_2
+	219 patch3b_3
+	220 patch3b_4
+	221 patch3b_5
+	222 patch3b_6
+	223 patch3b_7
+	224 patch3c_0
+	225 patch3c_1
+	226 patch3c_2
+	227 patch3c_3
+	228 patch3c_4
+	229 patch3c_5
+	230 patch3c_6
+	231 patch3c_7
+	232 patch3d_0
+	233 patch3d_1
+	234 patch3d_2
+	235 patch3d_3
+	236 patch3d_4
+	237 patch3d_5
+	238 patch3d_6
+	239 patch3d_7
+	240 patch3e_0
+	241 patch3e_1
+	242 patch3e_2
+	243 patch3e_3
+	244 patch3e_4
+	245 patch3e_5
+	246 patch3e_6
+	247 patch3e_7
+	248 patch3f_0
+	249 patch3f_1
+	250 patch3f_2
+	251 patch3f_3
+	252 patch3f_4
+	253 patch3f_5
+	254 patch3f_6
+	255 patch3f_7
+
+)
+(
+  0x8000 core_chipid
+  0x8003 core_kick
+  0x8005 core_lpm_wr
+  0x8006 core_misc_ctrl
+  0x8007 core_otp_rdata
+  0x8009 core_pcmoutfifo
+  0x8010 core_reset
+  0x8011 core_encrypt
+  0x8015 core_uart_txd
+  0x8022 core_ucode_hi
+  0x8023 core_ucode_ctrl
+  0x8024 core_ucode_low
+  0x8025 core_ucode_data
+  0x8040 core_halfslot
+  0x8042 core_clksel
+  0x8043 core_uart_clksel
+  0x8043 core_config 
+  0x8044 core_xtal_stable_time
+  0x8045 core_otp_addr
+  0x8046 core_otp_din
+  0x8047 core_otp_ctrl
+  0x8048 core_otpd_addr
+  0x804a core_otpd_len
+  0x804b core_otpd_ctrl
+  0x804c core_lpm_reg
+  0x804f core_lpm_isogate
+  0x8050 core_clkoff
+  0x8052 core_uart_baud
+  0x8054 core_uart_rsaddr
+  0x8056 core_uart_readdr
+  0x8058 core_uart_rrptr
+  0x805a core_uart_tsaddr
+  0x805c core_uart_teaddr
+  0x805e core_uart_twptr
+  0x8060 core_uart_trptrp
+  0x8062 core_uart_ctrl
+  0x8063 core_kscn_ksctrl
+  0x8064 core_kscn_rctc
+  0x8065 core_kscn_scancycle_timer_l
+  0x8066 core_kscn_scancycle_timer_h
+  0x8067 core_kscn_m_debounce          
+  0x8068 core_kscn_modkey
+  0x806f core_kscn_rowmask
+  0x8070 core_gpio_oe0
+  0x8071 core_gpio_oe1
+  0x8072 core_gpio_oe2
+  0x8073 core_gpio_oe3
+  0x8074 core_gpio_out0
+  0x8075 core_gpio_out1
+  0x8076 core_gpio_out2
+  0x8077 core_gpio_out3
+  0x8078 core_gpio_pu0
+  0x8079 core_gpio_pu1
+  0x807a core_gpio_pu2
+  0x807b core_gpio_pu3
+  0x807c core_gpio_pd0
+  0x807d core_gpio_pd1
+  0x807e core_gpio_pd2
+  0x807f core_gpio_pd3
+  0x8080 core_gpio_sel
+  0x8081 core_gpio_sel1
+  0x8082 core_gpio_sel2
+  0x8083 core_gpio_key0
+  0x8084 core_gpio_key1
+  0x8085 core_gpio_key2
+  0x8086 core_spid_ctrl
+  0x8087 core_spid_delay
+  0x8088 core_spid_txlen
+  0x808a core_spid_txaddr
+  0x808c core_spid_rxaddr
+  0x808e core_spid_rxlen
+  0x8090 core_iicd_ctrl
+  0x8091 core_iicd_scl_low
+  0x8092 core_iicd_scl_high
+  0x8093 core_iicd_start_setup
+  0x8094 core_iicd_start_hold
+  0x8095 core_iicd_stop_setup
+  0x8096 core_iicd_data_setup
+  0x8097 core_iicd_data_hold
+  0x8098 core_iicd_txlen
+  0x809a core_iicd_txaddr
+  0x809c core_iicd_rxaddr
+  0x809e core_iicd_rxlen
+  0x80a0 core_pwm_pcnt0
+  0x80a2 core_pwm_ncnt0
+  0x80a4 core_pwm_pcnt1
+  0x80a6 core_pwm_ncnt1
+  0x80b0 core_enc_ctrl
+  0x80b1 core_cvsd_ctrl
+  0x80b2 core_codec_ctrl
+  0x80b3 core_dec_ctrl
+  0x80b4 core_bist_ctrl
+
+
+
+  
+  0x8108 core_misc_status
+  0x8109 core_qdec_cntx
+  0x810a core_qdec_cnty
+  0x810b core_qdec_cntz
+  0x810c core_uart_status
+  0x810d core_uart_rbaud
+  0x810e core_uart_txitems
+  0x8110 core_uart_trptr
+  0x8112 core_uart_rxitems
+  0x8114 core_uart_rdptr
+  0x8116 core_uart_rwptr
+  0x8119 core_kscn_kstat
+  0x811a core_kscn_event
+  0x811b core_kscn_event_num
+  0x811c core_gpio_in
+  0x811d core_gpio_in1
+  0x8124 core_current_otp_addr
+  0x8126 core_otpd_remain
+  0x8128 core_spid_remain
+  0x812a core_iicd_remain
+  0x812c core_dma_status
+  0x812d core_perf_status
+  0x812e core_adc_in
+  0x8134 core_pcminfifo
+  0x8135 core_pcminfifo_remain
+  0x8136 core_pcmoutfifo_remain
+  0x8138 core_lpm_ctrl
+  0x813c core_lpm_xtalcnt
+  0x813d core_lpm_buckcnt
+  0x813e core_lpm_ldocnt
+  0x813f core_lpm_latch
+  0x8140 core_gpio_wakeup_low
+  0x8144 core_gpio_wakeup_high
+  0x8149 core_clk_counter
+  0x8150 core_adc_sum
+// dummy regs  
+
+  0x8203 core_ice_ctrl
+  0x8204 core_ice_status
+  0x8205 core_ice_break0
+  0x8207 core_ice_break1
+  
+  0x8280 core_docd_ctrl
+  0x8288 core_docd_paddr
+  0x828a core_docd_pdata
+
+  0x8300 iic_prer_low		
+  0x8301 iic_slave_addr	
+  0x8302 iic_ctr					
+  0x8303 iic_cr					
+  0x8304 iic_rxr					
+  0x8305 iic_txr					
+  0x8306 iic_sr					
+  0x8307 iic_fifo				
+
+  0x8400   mem_b_box          /* entire bank */
+  0x8500   mem_e_box          /* entire bank */
+  0x8600   mem_l_box          /* entire bank */
+
+  0x8700 memk
+
+  0x8900 rfen_rx
+  0x8901 rfen_tx
+  0x8902 rfen_mdm
+  0x8903 rfen_sn
+  0x8904 rfen_msc
+  0x8905 rfen_ck
+  0x8906 rfen_adc
+  0x8912 rf_agc_ctrl
+  0x8914 rfen_ulp
+  0x8973 rfen_chgpump
+  0x894b rf_rx_vctrl_reg1
+  0x894c rf_rx_vctrl_reg2
+  0x894d rf_rx_ib_lna
+  0x894e rf_rx_lna_ctrim
+
+  0x8950 rf_bpf_ctrim
+  0x8951 rf_bpf_ib
+  0x8952 rf_adc_rccal
+  0x8952 rf_rccal_ctrl
+  0x8953 rf_rccal_sel
+  0x8955 rf_tx_pa
+  0x895f rf_pll_rstn
+  0x8964 rf_sdm_en
+  0x8960 rf_pll_intg
+  0x8961 rf_pll_frac
+  0x8963 rf_pll_frachi
+  0x896c rf_afc_cap
+  0x8967 rf_clkpll_bias
+  0x896f rf_clkpll_en
+  0x8968 rf_clkpll_int
+  0x8969 rf_clkpll_frac
+  0x896d rf_balun_ctrim
+  0x8971 rf_adc_mode
+  0x8972 rf_adc_gc
+  0x8973 rf_adc_ch
+  0x8980 rf_rccal_result
+  0x8981 rf_afc_d2a
+  0x8982 rf_rssi
+
+
+0x8c00 core_usb_config		
+0x8c01 core_usb_int_mask	
+0x8c10 core_usb_trig	
+0x8c11 core_usb_stall		
+0x8c12 core_usb_clear		
+0x8c18 core_usb_ep
+0x8c18 core_usb_dfifo0 
+0x8c19 core_usb_dfifo1  
+0x8c1a core_usb_dfifo2 
+0x8c20 core_usb_ep_len
+0x8c26 core_usb_status		
+0x8c27 core_usb_fifo_empty
+0x8c28 core_usb_fifo_full
+
+
+4 rx_freq_offset
+2 tx_freq_offset
+
+/* bit difinitions */
+  4 whiteoff_bit
+  6 clksel_rc
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+
+(
+  7 cold_wake
+  3 gpio_latch
+  4 enable_retmem
+  0xef isogate_mask
+  0xe0 cs_mask
+)
+
+// misc ctrl
+(
+  0x01 otpd_start
+  0x02 spid_start
+  0x04 iicd_start
+  0x08 lock_otp
+  0x10 x_sethi
+  0x20 y_sethi
+  0x40 z_sethi
+  0x80 ccnt_start
+)
+// dma status bit
+(
+  0 otpd_crcok
+  1 otpd_done
+  2 spid_crcok
+  3 spid_done
+  4 iicd_crcok
+  5 iicd_done
+)
+
+0x8b uart_ctrl_default //BCSP
+0x81 uart_ctrl_h4 //H4
+0x81 uart_ctrl_normal
+0x91 uart_ctrl_5line
+0x81 uart_ctrl_57600
+2 uart_baud_len
+0x00 uartclk_crystal
+0x01 uartclk_dpll
+0x1a0 uart_baud_115200
+0xbb uart_baud_256000
+0x340 uart_baud_57600
+0x34 uart_baud_921600
+0x9c4 uart_baud_9600
+0x2dc6c00 uart_clk
+0x16E3600 uart_clk_24
+
+//core_clkoff
+(
+	0 CLOCK_OFF_AUTH_ROM
+	1 CLOCK_OFF_UC_ROM
+	2 CLOCK_OFF_DEBUG_UART
+	3 CLOCK_OFF_SCHED_RAM
+	4 CLOCK_OFF_TRANCE_FIFO
+	5 CLOCK_OFF_CORDIC
+	6 CLOCK_OFF_OTPD
+	7 CLOCK_OFF_I2C
+	8 CLICK_OFF_8051
+	9 CLOCK_OFF_KEYSCAN
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_CODEC
+	0x0f CLOCK_OFF_UART
+)
+
+
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_rfcomm_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $ */
+/* Orisil Technology                                                      */
+/*****************************************************************************/
+
+/**********/
+/* memory */
+/**********/
+
+memalloc(
+1 memRemoteRPNBitRate
+1 memRemotePRNDataBits
+1 memRemotePRNStopBit
+1 memRemotePRNParity
+1 memRemotePRNFlowControl
+1 memRemotePRNXon
+1 memRemotePRNXoff
+
+
+3 mem_mod2div_temp
+2 mem_contw_temp
+2 mem_attrib_list
+
+//rfcomm head
+1 mem_current_adss
+1 mem_current_channel
+1 mem_current_frame_type
+1 mem_current_fcs
+2 mem_current_length
+2 mem_rfcomm_uih_payload_ptr
+
+//rfcomm uih
+1 mem_uih_cmd_type
+2 mem_uih_length
+2 mem_param_payload_ptr
+
+
+//rfcomm modem status
+1 mem_ms_param
+
+//rfcomm pn
+1 mem_pn_credit_flow_type_info
+1 mem_pn_priority
+1 mem_pn_acknowledg_timer
+1 mem_pn_max_retrans
+
+1 mem_rfcomm_send_adss
+1 mem_rfcomm_send_frame_type
+1 mem_rfcomm_send_fcs
+1 mem_rfcomm_send_offset
+
+)
+
+xmemalloc(
+1 mem_pn_dlci
+2 mem_pn_max_frame_size
+
+1 memFCStemp1
+1 memFCStemp2
+1 memFCStemp3
+
+1 mem_rfcomm_initiator
+
+1 mem_remote_spp_channel
+
+1 mem_HIUfcs_SPP
+1 mem_HIUfcs_SPP_WCredits
+
+1 mem_rfcomm_send_more_pkt
+
+1 mem_remote_credits
+1 mem_credit_given
+
+//rfcomm modem status
+1 mem_ms_channel
+
+1 mem_credit_flag
+
+2 mem_rfcomm_max_frame_size
+1 mem_rfcomm_credit_init_data
+
+2 mem_cb_receive_spp_data
+
+2 mem_nl_rx_data_src
+2 mem_nl_rx_len_all
+)
+
+
+(
+0 CREDIT_DISABLE
+1 CREDIT_ENABLE
+)
+
+
+/************************************************************************/
+  
+
+ 
+/************/
+/* constant */
+/************/
+
+/* RFCOMM state for Headset (memRFCOMM_State) */ 
+  (
+    0 RFCOMM_IDLE           /* before the responsor HS receive SABM            */
+    1 RFCOMM_W4_DLCI0_OPEN
+    2 RFCOMM_W4_DLCI0_CLOSE
+    3 RFCOMM_START_DLCI0    /* After respond SABM frame (DLCI=0)               */
+    4 RFCOMM_W4_DLCI_OPEN
+    5 RFCOMM_W4_DLCI_CLOSE
+    6 RFCOMM_DLCI_OPENED    
+   
+  )
+  
+/* RFCOMM timer constants   */
+  (
+    1000  RFCOMM_T1         /* Used by SABM and DISC frames,100*20ms = 20s     */     
+    1000  RFCOMM_T2         /* Used by commands send in UIH on DLCI0,          */
+    300   RFCOMM_T3_RINGON  /* 6s for ring fade time                           */
+  
+  )
+
+/* Command Type */
+  (
+    0x3F RSP_RX_SABM        /*responsor expect SABM from initiator             */
+    0x3F INI_TX_SABM
+	
+    0x73 RSP_TX_UA          /*responsor send out UA command                    */
+    0x73 UA_WFBIT_SET	    /* UA control field with F bit set                 */
+	
+    0xEF RSP_RX_UIH         /*responsor expect UIH from initiator              */
+
+    0xEF RSP_TX_UIH         /*responsor send UIH to initiator                  */
+     
+    0x1F RSP_TX_DM          /*responsor send DM to initiator                   */
+    0x1F DM_WFBIT_SET       /* DM control field with F bit set                 */
+    0x0F DM_WFBIT_CLEAR     /* DM control field with F bit clear               */
+
+    0x53 RSP_RX_DISC        /*responsor expect DISC from initiator             */
+    0x53 INI_TX_DISC	    /*initiator send DISC control type command         */
+     
+    0xFF RSP_RX_UIH_WDATA   /*UIH data with credit flow control info           */
+    
+    
+  )
+
+/* Multiplexor commands and responses frames */
+  (
+    0x83 PN_COMMAND           /* Bit 0 EA C/R Type = 000001         */
+    0x81 PN_RESPONSOR         /* Bit 0 EA C/R Type = 000001         */
+    
+    0xE3 MSC_COMMAND          /* Bit 0 EA C/R Type = 000111         */
+    0xE1 MSC_RESPONSOR
+ 
+    0x13 NSC_COMMAND          /* Bit 0 EA C/R Type = 001000         */
+    0x11 NSC_RESPONSOR        /* Bit 0 EA C/R Type = 001000         */
+
+    0x23 TEST_COMMAND         /* Bit 0 EA C/R Type = 000111         */
+    0x21 TEST_RESPONSOR 
+    
+    0x93 RPN_COMMAND          /* Bit 0 EA C/R Type = 001001         */
+    0x91 RPN_RESPONSOR 
+    
+    0x53 RLS_COMMAND          /* Bit 0 EA C/R Type = 001010         */
+    0x51 RLS_RESPONSOR 
+
+    0xA3 FCON_COMMAND         /* Bit 0 EA C/R Type = 000101         */
+    0xA1 FCON_RESPONSOR 
+    
+    0x63 FCOFF_COMMAND        /* Bit 0 EA C/R Type = 000110         */
+    0x61 FCOFF_RESPONSOR 
+    	
+    0x03 RLS_OVERRUN
+    0x05 RLS_PARITY_ERROR
+    0x09 RLS_FRAMING_ERROR
+  )
+
+/* memLocalCredit */
+  (
+    0x01 RFCOMM_CREDIT
+  )
+
+  (
+  	0x007f RFCOMM_MAX_FRAME_SIZE
+  )
+
+/* UIH received Data length */
+  (
+    0  LENGTH_ZERO
+    
+    6  LENGTH_OK
+    7  LENGTH_HOT
+    8  LENGTH_RING
+    9  LENGTH_ERROR
+    9  LENGTH_AGVOL_ONEBYTE
+    10 LENGTH_AGVOL_TWOBYTE
+    10 LENGTH_VOL_ONEBYTE
+    11 LENGTH_VOL_TWOBYTE
+    12 LENGTH_BRSF
+    13 LENGTH_PLUS_CIEV
+    15 LENGTH_INBANDRING
+    14 LENGTH_CIEV_CALL
+    17 LENGTH_CRING
+    20 LENGTH_BRSF_OK
+    24 LENGTH_CIND0
+    28 LENGTH_CIEV_TWO
+    32 LENGTH_CIND_OK
+    59 LENGTH_CIND_OK2
+    100 LENGTH_DISCARD
+  )
+  
+/************/
+/* flags    */
+/************/
+  
+/* memRFCOMM_L2CAP_Interface */
+  (
+    0 RFCOMM_TX_W4BUF_FLAG    /* Wait for Tx buffer empty flag */
+    1 RFCOMM_CLOSE_LINK_FLAG
+  )
+  
+
+    
+/* memRemoteMSC		*/
+  (
+    0 MSC_EA_BIT
+    1 MSC_FC_BIT
+    2 MSC_RTC_BIT
+    3 MSC_RTR_BIT
+    6 MSC_IC_BIT
+    7 MSC_DV_BIT
+  )
+
+/* memRemoteRLS         */
+  (
+    0x0C OVERRUN_ERROR
+    0x0A PARITY_ERROR
+    0x09 FRAMING_RERROR
+  )
+  
+/* memRemoteRPNBitRate  */
+  (
+    0x00 BITS2400
+    0x01 BITS4800
+    0x02 BITS7200
+    0x03 BITS9600
+    0x04 BITS19200
+    0x05 BITS38400
+    0x06 BITS57600
+    0x07 BITS115200
+    0x08 BITS230400
+  )
+  
+/* memRemotePRNDataBits	*/
+  (
+    0x00 DATABITS5
+    0x01 DATABITS6
+    0x02 DATABITS7
+    0x03 DATABITS8
+  )
+  
+/* memRemotePRNStopBit	*/
+  (
+    0    ONESTOP
+    1    ONEHALFSTOP
+  )
+  
+/* memRemotePRNParity   */
+  (
+    0    ODDPARITY
+    1    EVENPARITY
+    2    MARKPARITY
+    3    SPACEPARITY
+    
+    7    PARITY_ENABLE_BIT
+  )
+
+/* RPN bit mask(in)     */
+  (
+     0   BIT_RATE_MASK_BIT
+     1   DATA_BITS_MASK_BIT
+     2   STOP_BITS_MASK_BIT
+     3   PARITY_MASK_BIT
+     4   PARITY_TYPE_MASK_BIT
+     5   XON_CHAR_MASK_BIT
+     6   XOFF_CHAR_MASK_BIT
+  )
+  
+/* RPN bit mask(in) 2    */
+  (
+     0   XON_XOFF_INPUT_MASK_BIT
+     1   XON_XOFF_OUTPUT_MASK_BIT
+     2	 RTR_INPUT_MASK_BIT
+     3   RTR_OUTPUT_MASK_BIT
+     4   RTC_INPUT_MASK_BIT
+     5   RTC_OUTPUT_MASK_BIT
+
+  )
+
+/* memRFCOMM_Request	*/
+  (
+    0 SEND_MSC_CMD_REQ_FLAG
+    1 SEND_AT_CKPD_REQ_FLAG
+    2 SEND_RING_REQ_FLAG
+    3 SEND_SABM_CMD
+  )
+  
+/* memRFCOMM_Misc_Flag  */
+  (
+    0 MSC_CDM_ALREADY_SEND_FLAG
+    1 CREDIT_FLOW_USED_FLAG
+    2 DONT_EMBEDDED_CREDIT_FLAG 
+    3 MSC_EXCHANGE_DONE_FLAG
+    4 FLOW_CONTROL_FCOFF_BIT            /* set when receive FCoff, clear when FCon   */
+  )
+  
+/* memRemoteMSC		*/
+  (
+    1 FLOW_CONTROL_FC_BIT		/* received MSC FC bits                      */
+  
+  )
+/* Address filed        */
+  (
+    0 ADDR_EA_BIT
+    1 ADDR_CR_BIT
+    2 ADDR_D_BIT
+  )
+//should be same as descripted in SDP
+(
+    1 SPP_SLAVE_CHANNEL
+    7 OBEX_SERVER_CHANNEL
+    8 HF_SERVER_CHANNEL 
+    9 HS_SERVER_CHANNEL
+)
+/* memRFCOMM_Flag */
+(
+	0 USING_HF_PROFILE
+	1 USING_HS_PROFILE
+	2 USING_SPP_PROFILE
+)
+/*RFCOMM Frame Type*/
+(
+	0x3f RFCOMM_FRAME_TYPE_SABM
+	0x73 RFCOMM_FRAME_TYPE_UA
+	0xEF RFCOMM_FRAME_TYPE_UIH
+	0xFF RFCOMM_FRAME_TYPE_UIH_CREDITS
+	0x53 RFCOMM_FRAME_TYPE_DISCONN
+)
+/*RFCOMM UIH CMD TYPE*/
+(
+	0x41 UIH_PARAM_NEG_CMD
+	0x40 UIH_PARAM_NEG_RES
+	0x49 UIH_PARAM_CMD_REMOVE_PORT
+	0x71 UIH_MODEM_STATUS_CMD
+	0x70 UIH_MODEM_STATUS_RES
+)
+
+/*bits in rfcomm address*/
+(
+	0 RFCOMM_ADDRESS_EXT_LEN
+	1 RFCOMM_ADDRESS_CR
+	2 RFCOMM_ADDRESS_DERECTION
+
+
+)
+
+	(                                   
+	0 RFCOMM_CHANNEL_STATE_PN_CMD
+	1 RFCOMM_CHANNEL_STATE_PN_RES
+	2 RFCOMM_CHANNEL_STATE_SABM
+	3 RFCOMM_CHANNEL_STATE_UA
+	4 RFCOMM_CHANNEL_STATE_SND_MS_CMD
+	5 RFCOMM_CHANNEL_STATE_RCV_MS_CMD
+	6 RFCOMM_CHANNEL_STATE_SND_MS_RES
+	7 RFCOMM_CHANNEL_STATE_RCV_MS_RES
+	0xff RFCOMM_CHANNEL_SETUP_COMPLETE
+	) 
+
+	/*mem_rfcomm_send_more_pkt*/
+	(
+	1 MORE_PKT_MSC_CMD_HF
+	2 MORE_PKT_MSC_CMD_HS
+	3 MORE_PKT_MSC_CMD_SPP
+	4 MORE_PKT_MSC_CMD_OBEX
+	)
+
+	(
+	127 RFCOMM_MALLOC_SIZE
+	)
+memalloc(
+0 mem_sdp_mem_start
+4 mem_uuid_search_pat
+2 mem_sdp_continue_byte
+1 mem_sdp_pduid
+2 mem_sdp_transactionid
+2 mem_sdp_attribute_maxbyte
+2 mem_sdp_record_maxcnt
+8 mem_sdp_error_code
+4 mem_sdp_record_handle
+1 mem_sdp_search_failed
+1 mem_sdp_LACAP_found
+1 mem_sdp_RFCOMM_found
+24 mem_handle_list
+1 mem_handle_humber
+0 mem_sdp_mem_end
+)
+xmemalloc(
+2 mem_ui_uuid_table
+22 mem_all_uuid_16bits
+18 mem_all_uuid_128bits
+2 mem_ui_le_uuid_table
+)
+(
+0 AGORHS_SERVICE
+1 GENAUDIO_SERVICE
+2 HANDSFREE_SERVICE
+)
+(
+0 ATTRIBUTEID_0000
+1 ATTRIBUTEID_0001
+2 ATTRIBUTEID_0004
+3 ATTRIBUTEID_0009
+4 ATTRIBUTEID_0100
+5 ATTRIBUTEID_0302
+6 ATTRIBUTEID_0006
+7 ATTRIBUTEID_0311
+)
+/* mem_sdp_search_profile */
+(
+1	SDP_SS_HEADSET
+2  	SDP_SS_HANDSFREE
+)
+(
+0x06 sdp_pduid_serviceSearchAttrib
+)
+0x2600 sdp_max_amount
+767 SDP_MALLOC_SIZE
+0x6e sdp_tid_spp //any number
+
+ 
+
+memalloc(
+/* moved from bt.format for 3dh5 1021bytes packet buffer */
+17 mem_rxbuf
+
+16 mem_random_number
+16 mem_round_key
+16 mem_kinit
+
+16 mem_input_store
+16 mem_x
+15 mem_y
+1 mem_y15
+17 mem_key_store
+1 mem_key_store_end
+2 memp_ar_key
+2 memp_ar_input
+10 mem_ar_hround
+
+
+1 mem_ec_infinite
+2 mem_ec_loopc
+1 mem_aes_cmac_data_length
+
+0 memdat
+/* ecc calculation */
+
+24 mem_ax
+24  mem_ay
+24  mem_az
+24 mem_bx
+0 mem_ax_256 //32 bytes
+24 mem_by
+8 mem_bz
+16 mem_ay_256 // 32 bytes
+16 mem_cx
+8 mem_az_256 // 32 bytes
+23 mem_cy
+1 mem_cy5
+0 mem_bx_256 // 32 bytes
+24 mem_cz
+8  mem_k
+16 mem_by_256 // 31 bytes
+16 mem_align
+
+0 mem_bz_256  //32 bytes
+0 mem_tmp1
+24 memahbak
+8 mem_tmp5
+0 mem_cx_256  //32 bytes
+16 memahsave
+16  mem_tmp2
+0 mem_cy_256  // 32 bytes
+0  memahsave_end 
+1  mem_addr_padding 
+7   mem_addr_value         /* 12 bytes     */ 
+0 mem_tmp3
+5 mem_t1
+3  mem_addr_value_end   
+15 mem_addr_iocap_end
+1 mem_cy5_256 // 1 byte
+0 mem_cz_256 // 32 bytes
+0 mem_tmp0
+8 mem_t0
+16 mem_tmp0a
+8  mem_t2
+16 mem_k_256 //32 bytes
+16 mem_t3
+8  mem_tmp1_256 //32 bytes
+24 mem_t7
+
+
+32 mem_tmp5_256
+32  mem_tmp2_256
+0 mem_tmp3_256
+32 mem_t1_256
+0 mem_tmp0_256
+32 mem_t0_256
+32 mem_t2_256
+32 mem_t3_256
+32 mem_t7_256
+
+24 mem_p		
+24 mem_a
+24 mem_b
+24 mem_gx
+24 mem_gy
+32 memh0
+
+//p256
+//2 mem_ec_loopc_256
+//32 mem_ax_256
+//32 mem_ay_256
+//32 mem_az_256
+//32 mem_bx_256
+//32 mem_by_256
+//32 mem_bz_256
+//32 mem_cx_256
+//31 mem_cy_256
+//1 mem_cy5_256
+//32 mem_cz_256
+//32 mem_k_256
+
+
+//32 mem_tmp1_256
+//32 mem_tmp5_256
+//32  mem_tmp2_256
+
+//0 mem_tmp3_256
+//32 mem_t1_256
+//0 mem_tmp0_256
+//32 mem_t0_256
+//32 mem_t2_256
+//32 mem_t3_256
+//32 mem_t7_256
+
+32 mem_p_256		
+32 mem_a_256
+32 mem_gx_256
+32 mem_gy_256
+//4 mem_le_keyid
+16 mem_le_slat
+
+
+//64 mem_regext
+//1 mem_regext_index
+
+//16 mem_le_mackey
+
+
+//1 mem_AES_CMAC_flag
+//16 mem_AES_CMAC_temp
+//16 mem_AES_CMAC_M_last
+
+//4 mem_le_gkey
+
+//16 mem_le_r
+
+)
+
+
+
+
+omemalloc(
+4 mem_shutter_send_data
+1 mem_shutter_key_temp
+1 mem_shutter_send_length
+4 mem_shutter_clkn_bt_last
+1 mem_shutter_key
+1 mem_shutter_flag
+1 mem_shutter_cable_unplug_conut
+1 mem_shutter_hid_disconn_count
+1 mem_shutter_1key_send_sm
+
+1 mem_shutter_iphonekey_gpio
+1 mem_shutter_androidkey_gpio
+1 mem_shutter_key_number
+
+
+//1 mem_last_txlch
+//2 mem_last_txlen
+//20 mem_last_txdata
+1 mem_read_eeprom_temp
+3 mem_read_eeprom_mac_addr
+
+1 mem_scale_tx_length
+1 mem_scale_txbuff_inuse
+2 mem_adv_lap_ptr
+1 mem_le_sleep_flag
+2 mem_rx_window_sniff_inc
+1 mem_pair_state
+1 mem_exchange_mtu_req
+2 mem_le_sleep_timeout
+2 mem_le_sleep_timeout_timer_count
+2 mem_le_fast_adv_timeout
+2 mem_le_fast_adv_timeout_timer_count
+2 mem_led_fast_dark_time
+2 mem_led_fast_light_time
+/////////////////////////////////////////////////////////////////
+//the pin of power on button
+1 mem_power_on_pin 
+//uint(100ms)
+//1 mem_key_press_to_power_on_time
+//uint(100ms)
+//1 mem_key_press_to_power_off_time
+//= 1 hardswitch, =0 softswitch
+1 mem_hard_soft_switch_case
+//=1 power on, =0 power off
+//1 mem_is_poweron_flag 
+1 mem_shutter_powerup_flag
+1 mem_shutter_button_timeout
+1 mem_shutter_button_timer
+1 mem_power_timeout
+1 mem_power_timer
+1 mem_enable_key_scan
+2 mem_packet_interval_set
+
+// byte array for led pin,uint8_t mem_led_map[4]
+1 mem_shutter_led_num
+4 mem_led_map
+
+/*
+*	typedef struct
+*	{
+*		LED_STYLE led_type,
+*		uint8_t led_pin,//bit[4-0]:gpio num, bit 7 =0 low active
+*		uint16_t on_time,//led light time
+*		uint16_t off_time,//led dark time
+*		uint8_t blink_count,//the number of times of led flashing,if blink _count == 0xff, always flashing
+*	}Led_Style;
+*/
+0 mem_fast_adv_led_style
+1 mem_fa_led_type
+1 mem_fa_led_pin
+2 mem_fa_led_on_time
+2 mem_fa_led_off_time
+1 mem_fa_blink_count
+
+0 mem_slow_adv_led_style
+1 mem_sa_led_type
+1 mem_sa_led_pin
+2 mem_sa_led_on_time
+2 mem_sa_led_off_time
+1 mem_sa_blink_count
+
+//Led_style power_on_led_style
+0 mem_power_on_led_style
+1 mem_po_led_type
+1 mem_po_led_pin
+2 mem_po_led_on_time
+2 mem_po_led_off_time
+1 mem_po_blink_count
+
+//Led_style Powe_off_led_style
+0 mem_powe_off_led_style
+1 mem_pf_led_type
+1 mem_pf_led_pin
+2 mem_pf_led_on_time
+2 mem_pf_led_off_time
+1 mem_pf_blink_count
+
+//Led_style connected_led_style
+0 mem_connected_led_style
+1 mem_co_led_type
+1 mem_co_led_pin
+2 mem_co_led_on_time
+2 mem_co_led_off_time
+1 mem_co_blink_count
+
+0 mem_key_led_style
+0 mem_key_led_style_ind_0
+7 mem_key_led_style_ind_0_data
+0 mem_key_led_style_ind_1
+7 mem_key_led_style_ind_1_data
+0 mem_key_led_style_ind_2
+7 mem_key_led_style_ind_2_data
+0 mem_key_led_style_ind_3
+0 mem_key_led_style_ind_key_release
+7 mem_key_led_style_ind_3_data
+
+0 mem_temp_led_style
+1 mem_temp_led_type
+1 mem_temp_led_pin
+2 mem_temp_led_on_time
+2 mem_temp_led_off_time
+1 mem_temp_blink_count
+
+/**
+* typedef struct
+* {
+*	uint8_t key_pin,//bit[4-0]:gpio num, bit 7 =0 low active
+*	uint8_t led_style_ind,//key_led[0,1,2]
+*	uint8_t *press_ptr,
+*	uint8_t *rel_ptr;
+* }Key_Conf;
+**/
+1 mem_shutter_key_num
+//key_conf[max_shutter_key_num] 
+0 mem_key_conf0
+1 mem_key_conf0_pin
+1 mem_key_conf0_led
+//2 mem_key_conf0_press_ptr
+//2 mem_key_conf0_rel_ptr
+0 mem_key_conf1
+1 mem_key_conf1_pin
+1 mem_key_conf1_led
+//2 mem_key_conf1_press_ptr
+//2 mem_key_conf1_rel_ptr
+0 mem_key_conf2
+1 mem_key_conf2_pin
+1 mem_key_conf2_led
+//2 mem_key_conf2_press_ptr
+//2 mem_key_conf2_rel_ptr
+0 mem_key_conf3
+1 mem_key_conf3_pin
+1 mem_key_conf3_led
+//2 mem_key_conf3_press_ptr
+//2 mem_key_conf3_rel_ptr
+0 mem_key_conf4
+1 mem_key_conf4_pin
+1 mem_key_conf4_led
+//2 mem_key_conf4_press_ptr
+//2 mem_key_conf4_rel_ptr
+0 mem_key_conf5
+1 mem_key_conf5_pin
+1 mem_key_conf5_led
+//2 mem_key_conf5_press_ptr
+//2 mem_key_conf5_rel_ptr
+
+//0 mem_key_conf_temp
+//1 mem_key_conf_pin
+//1 mem_key_conf_led
+//2 mem_key_conf_press_ptr
+//2 mem_key_conf_rel_ptr
+2 mem_key_value_temp
+2 mem_key_value
+1 mem_key_packet_count
+2 mem_key_next_addr
+1 mem_key_value_temp1
+1 mem_key_value_temp2
+1 mem_key_value_temp3
+1 mem_key_value_temp4
+1 mem_key_value_temp5
+1 mem_key_value_temp6
+
+20 mem_key0_press
+20 mem_key0_release	
+14 mem_key1_press
+14 mem_key1_release
+14 mem_key2_press
+14 mem_key2_release
+14 mem_key3_press
+14 mem_key3_release
+14 mem_key4_press
+14 mem_key4_release
+14 mem_key5_press
+14 mem_key5_release
+
+1 mem_queue_ele_num
+2 mem_queue_read
+2 mem_queue_write
+0 mem_queue_start
+10 mem_data_ele0
+10 mem_data_ele1
+10 mem_data_ele2
+10 mem_data_ele3
+10 mem_data_ele4
+10 mem_data_ele5
+0 mem_queue_end
+2 mem_queue_temp
+
+
+
+1 mem_shutter_key_data_flag
+1 mem_shutter_key_data_flag_1
+
+// find type value 
+2 mem_le_find_type_value_start_handle
+2 mem_le_find_type_value_end_handle
+1 mem_shutter_find_type_value_flag
+1 mem_le_uuid
+
+1 mem_send_updata_le_param_timer
+3 mem_le_smp_key_dist
+1 mem_ltk_states
+1 mem_shutter_conn_update_timer
+
+1 mem_empty_count
+1 mem_shutter_notification_len
+2 mem_shutter_notification_addr
+500 mem_shutter_le_att_list
+)
+
+omemalloc(
+//ble mouse
+1 mem_current_event
+1 mem_ipc_lock_rx_data_bt
+1 mem_ipc_lock_rx_data_c51
+1 mem_ipc_lock_tx_data_bt
+1 mem_ipc_lock_tx_data_c51
+150 mem_ipc_2bt_fifo_head
+0	mem_ipc_2bt_fifo_end
+2	mem_ipc_2bt_read_index
+2	mem_ipc_2bt_write_index
+100 mem_ipc_2C51_fifo_head
+0	mem_ipc_2C51_fifo_end
+2	mem_ipc_2C51_read_index
+2	mem_ipc_2C51_write_index
+100	mem_c51_private_area
+2 mem_ipc_tx_evt_buff
+1 mem_ipc_tx_evt
+1 mem_ipc_rx_type
+2 mem_ipc_bt_timer
+2 mem_ipc_c51_timer
+1 mem_ipc_bt_100ms_timer
+1 mem_ipc_c51_100ms_timer
+4 mem_ipc_last_check_timer
+
+34 mem_new_24g_rxbuf
+32 mem_new_24g_txbuf
+34 mem_new_24g_txpayload
+32 mem_new_24g_rxpayload
+1 mem_new_24g_rxdata_length
+1 mem_new_24g_pid
+1 mem_new_24g_datalen
+1 mem_new_24g_data_type
+1 mem_new_24g_txlen
+2 mem_new_24g_rx_window
+1 mem_new_24g_ensure
+2 mem_new_24g_txfail_cnt
+1 mem_new_24g_get_ack_fail
+1 mem_new_24g_retry
+1 mem_new_24g_ch
+1 mem_new_24g_current_ch_number
+4 mem_new_24g_paring_addr
+1 mem_new_24g_pairing_sm
+4 mem_new_24g_ch_map1
+4 mem_new_24g_ch_map2
+4 mem_new_24g_ch_map3
+4 mem_new_24g_ch_map4
+4 mem_new_24g_tx_btclk
+1 mem_new_24g_interval
+1 mem_new_24g_interval_min
+1 mem_new_24g_interval_max
+4 mem_new_24g_addr
+1 mem_new_24g_abort_pac
+1 mem_new_24g_sync_pac
+2 mem_new_24g_check_dongle_times
+8 mem_new_24g_enter_hibernate
+4 mem_new_24g_device_addr
+1 mem_new_24g_pac_index
+1 mem_new_24g_no_ack
+3 mem_new_24g_sta_crc
+3 mem_new_24g_last_crc
+1 mem_new_24g_sta_pid
+1 mem_new_24g_last_pid
+1 mem_new_24g_max_retry
+1 mem_new_24g_mode
+32 mem_new_uart_packet
+32 mem_new_24g_common_temp
+1 mem_new_24g_rf_last_sta
+1 mem_new_24g_rf_hop_ch
+1 mem_new_24g_sync_cnt
+1 mem_new_24g_hop_pac_retry
+1 mem_new_24g_rf_work_stage
+1 mem_new_24g_hop_fastly_cnt
+1 mem_new_24g_auto_paring_switch
+1 mem_new_24g_key_wheel_event
+1 mem_new_24g_delay_long_sleep_cnt
+1 mem_new_24g_delay_long_sleep_maxcnt
+1 mem_new_24g_enter_lpm_timer
+2 mem_new_24g_syncword
+1 mem_new_24g_syncword_crc8
+1 mem_new_24g_get_syncword_crc8
+1 mem_new_24g_paccnt
+1 mem_new_24g_ota_enable
+
+1 mem_bt_wakeup_from_long_mult
+1 mem_bt_motion_event
+
+1 mem_tx_power_temp
+1 mem_power_ctrl_level
+1 mem_power_ctrl_pac_succ_cnt
+8 mem_rssi_signal_buf
+1 mem_rssi_signal_index
+1 mem_rssi_hex_received
+1 mem_rssi_avg_received
+
+1 mem_last_txlch
+2 mem_last_txlen
+20 mem_last_txdata
+
+600 mem_device_uuid_list
+0 mem_device_uuid_list_end
+480 mem_device_le_att_list
+0 mem_device_le_att_list_end
+
+1 mem_empty_count_user
+32 mem_hid_buff
+2 mem_adc_0v
+2 mem_adc_3v
+1 mem_hibernate_flag
+2 mem_new_supervision_to
+
+4 mem_le_rx_winsows
+2 mem_le_att_report1
+2 mem_le_att_report2
+1 mem_le_slave_update_param_timer
+1 mem_le_slave_update_mult_timer
+1 mem_le_reconn_enable_notify_timer
+1 mem_le_reconn_flag
+12 mem_le_buff_temp
+2 mem_le_rx_window_inc
+1 mem_le_prepare_tx_retransmited_number
+
+4 mem_last_check_clk
+1 mem_hid_send_handshake
+1 mem_feature_ext_page_number
+11 mem_rf_init_data_new
+
+4 mem_short_lpm_interval_param
+1 mem_short_lpm_enable
+1 mem_short_lpm_tx_cnt
+3 mem_ckln_24g_short_lpm
+1 mem_send_data_24g_short_lpm
+1 mem_short_lpm_interval_cnt
+1 mem_ipc_is_ready
+1 mem_short_data_wheel
+1 mem_ble_data_wheel
+1 mem_ble_data_wheel_lpm_timer
+
+1 mem_bt_read_ipc_count
+1 mem_51_read_sensor_count
+
+1 mem_queue_write_prt
+1 mem_queue_read_ptr
+7 mem_queue_buffer0
+7 mem_queue_buffer1
+7 mem_queue_buffer2
+7 mem_queue_buffer3
+1 mem_ble_read_ipc_fifo_once
+1 mem_ble_send_flag
+1 mem_mouse_le_pairing_flag
+1 mem_le_mouse_fast_conn_flag
+1 mem_le_start_adv
+1 mem_le_start_fast_conn_count
+2 mem_mouse_eeprom_base
+2 mem_mouse_reconn_addr
+6 mem_mouse_le_reconn_addr_data
+6 mem_mouse_24g_reconn_addr_data
+1 mem_le_fast_conn_finished
+1 mem_le_init_eeprom_base_count
+0 mem_32asm_data_end
+
+1 mem_mult_time_arrive_flag
+)
+
+(
+6 QUEUE_ELE_COUNT
+10 QUEUE_ELE_LENGTH
+)
+
+(
+0 PAIR_UNKNOWN
+1 PAIR_ING
+2 PAIR_DONE
+)
+
+(
+0x18 ATT_WRITE_REQUEST_HANDLE
+)
+
+(
+0x13	HANDLE_VOLUM_UP_KEY	
+0x17	HANDLE_ENTER_KEY
+)
+	
+(
+0x010210 param_smp_key_dist1
+0x010010 param_smp_key_dist2
+)
+
+(
+0 INITATOR_LTK
+1 INITATOR_IRK
+2 INITATOR_CSRK
+)
+
+(
+//100ms
+0x00a0	FAST_ADV_INTERVAL_VALUE
+//200ms
+0x0140	SLOW_ADV_INTERVAL_VALUE
+)
+
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+///////////////////////////////////////////////////////////////////////////////////////
+(
+13 MAX_SHUTER_KEY_NUM
+4  MAX_SHUTTER_LED_NUM
+0xFF INVALID_PIN_NUM
+)
+(
+0 KEY_DEFAULT
+1 kEY_1
+2 kEY_2
+3 KEY_3
+4 KEY_4
+)
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+(
+0 LED_OFF
+1 LED_ON
+2 LED_BLINK
+0xFF LED_INVALID
+)
+
+/*struct led_style*/
+(
+7 LED_STYLE_STRUCT_LEN
+0 LED_TYPE_OFFSET
+1 LED_PIN_OFFSET
+2 LED_ON_TIME_OFFSET
+4 LED_OFF_TIME_OFFSET
+6 LED_BLINK_COUNT_OFFSET
+)
+
+/*struct key_conf*/
+(
+2 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+1 KEY_STYLE_IND_OFFSET
+)
+
+(
+0 SHUTTER_POWER_UP
+1 SHUTTER_POWER_ON
+2 SHUTTER_POWER_OFF
+)
+
+(
+0xf00 EEP_LAP_ADDR
+)
+
+(
+0x33 PAIRED_DEVICE_TYPE_BT
+0x44 PAIRED_DEVICE_TYPE_BLE
+5 PAIRED_DEVICE_DEFAULT_LEN
+0x5a5a PAIRED_DEVICE_MAGIC
+)
+
+(
+0 FLAG_SHUTTER_DEFAULT
+1 FLAG_SHUTTER_IPHONEKEY_SEND
+2 FLAG_SHUTTER_ANDROIDKEY_SEND
+)
+
+(
+0 FLAG_SHUTTER_IPHONEKEY_PRESS
+1 FLAG_SHUTTER_ANDROIDKEY_PRESS
+)
+
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+
+(
+1 FLAG_SHUTTER_1KEY
+2 FLAG_SHUTTER_2KEY
+)
+
+(
+0 FLAG_SHUTTER_1KEY_SEND_NULL
+1 FLAG_SHUTTER_1KEY_SEND_STEP1
+2 FLAG_SHUTTER_1KEY_SEND_STEP2
+3 FLAG_SHUTTER_1KEY_SEND_STEP3
+4 FLAG_SHUTTER_1KEY_SEND_STEP4
+)
+
+
+//mem_shutter_find_type_value_flag
+(
+0X00 LE_FIND_TYPE_VALUE_HID_BIT
+0X01 LE_FIND_TYPE_VALUE_BATTERY_BIT
+0X02 LE_FIND_TYPE_VALUE_DEVICE_INFO_BIT
+0x03 LE_FIND_TYPE_VALUE_GATT_BIT
+)
+
+
+/* simple pairing page */
+
+memalloc(
+
+//4 mem_hci_ssp_mode
+0 mem_sp_state_start
+1 mem_sp_state
+1 mem_master_sp_state
+1 mem_sp_flag
+1 mem_master_sp_flag
+1 mem_sp_calc
+1 mem_sp_dh_ready
+1 mem_sp_localsm
+1 mem_pairing_auth
+
+0 mem_sp_flag_start
+1 mem_sp_local_key_send_count
+1 mem_sp_remote_key_recv_count
+1 mem_sp_remote_key_invalid
+1 mem_sp_dhkey_invalid
+
+
+4 mem_gkey
+
+
+8 mem_le_pubkey_remote_x_256
+0 mem_sp_pubkey_remote
+24 mem_sp_pubkey_remote_x
+0 mem_sp_pubkey_remote_x_end
+8 mem_le_pubkey_remote_y_256
+24 mem_sp_pubkey_remote_y
+
+8 mem_le_dhkey_256
+24 mem_sp_dhkey
+0 mem_sp_dhkey_end
+
+16 mem_sp_random_local
+0 mem_sp_random_local_end
+16 mem_sp_random_remote
+0 mem_sp_random_remote_end
+0 memresult
+0 mem_sp_calc_result
+4 memh
+4 memg
+4 memf
+4 meme
+0 mem_sp_calc_result_high
+4 memd
+4 memc
+4 memb
+4 mema
+16 mem_sp_check_result
+16 mem_sp_confirm_remote
+16 mem_sp_prarm_stack
+)
+
+xmemalloc(
+1 mem_sp_local_key_invalid
+
+
+32 mem_le_private_key_256
+32 mem_le_pubkey_local_x_256
+32 mem_le_pubkey_local_y_256
+
+24 mem_sp_private_key
+0 mem_sp_pubkey_local
+24 mem_sp_pubkey_local_x
+0 mem_sp_pubkey_local_x_end
+24 mem_sp_pubkey_local_y
+
+1 mem_ssp_enable
+3 mem_sp_iocap_local
+3 mem_sp_iocap_remote
+
+1 mem_flag_mode_ssp_pin
+1 mem_ssp_mode_flag
+1 mem_authentication_passkey_times
+1 mem_passkey_1bit
+1 mem_flag_pairing_state
+
+)
+/* simple pairing status flag */
+(
+  0x00   SP_FLAG_STANDBY
+  0x01   SP_FLAG_COMMIT
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+
+/* simple pairing calc flag */
+(
+  0x00   SP_CALC_STANDBY
+  0x01   SP_CALC_PUBKEY
+  0x02   SP_CALC_DHKEY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+
+/* simple pairing state */
+(
+  0x00   SP_STAT_NULL
+  0x01   SP_STAT_KEY_RECV
+  0x02   SP_STAT_KEY_GENERATE
+  0x03   SP_STAT_KEY_SEND
+  0x04   SP_STAT_COMMIT_CALC
+  0x05   SP_STAT_COMMIT_SEND
+  0x06   SP_STAT_RANDOM_RECV
+  0x07   SP_STAT_RANDOM_SEND
+  0x08   SP_STAT_CONFIRM_RECV
+  0x09   SP_STAT_CONFIRM_CHECK
+  0x0A   SP_STAT_CONFIRM_CALC
+  0x0B   SP_STAT_CONFIRM_SEND
+  0x0C   SP_STAT_LINK_KEY_CALC
+  0x0F   SP_STAT_DONE
+  0x10   SP_STAT_FEATURE_EXT_SEND
+  0x11   SP_STAT_GKEY_CALC
+  /*simple pairing master only*/
+  0x12   SP_MASTER_STAT_START_SKIP
+  0x13   SP_MASTER_STAT_START_DONE
+  0x14   SP_STAT_COMMITMENT_COMPARE
+  0x15   SP_STATE_END
+)
+
+
+/* simple paring invalid flag */
+(
+  0x00   SP_KEY_INVALID
+  0x01   SP_KEY_VALID
+  0x03   SP_KEY_VALID_256
+
+)
+
+/* encapsulated defination for P-192 key */
+(
+  0x01  ENCAPSULATED_MAJOR_TYPE_P192
+  0x01  ENCAPSULATED_MINOR_TYPE_P192
+  0x30  ENCAPSULATED_LEN_P192
+)
+
+/* bluetooth 2.1 support flag */
+(
+  0x00  SIMPLE_PAIRING_ENABLE
+  0x01  ENCRYPTION_PAUSE_ENABLE
+  0x02  EXTENDED_INQUIRY_RESPOSE_ENABLE
+  0x03  SNIFF_SUBRATING_ENABLE
+)
+
+/*mem_sp_localsm*/
+(
+  0x00 DEFAULT_STATEMACHINE
+  0x01 LOCAL_STATEMACHINE
+)
+
+(
+ 0x00 DEFALT_PAIRING_AUTH
+ 0x01 PAIRING_AUTH
+)
+
+(
+1 SSP_MODE_SSP_PIN_FLAG
+2 SSP_MODE_PASSKEY_ENTRY_FLAG
+3 SSP_MODE_JUST_WORK_FLAG
+)
+
+(//ssp mode
+0x040003 SSP_MODE_JUST_WORK_IO_CAP_DATA
+0X040001 SSP_MODE_SSP_PIN_IO_CAP_DATA
+0X040002 SSP_MODE_PASSKEY_IO_CAP_DATA
+)
+
+(
+0x00 DISPLAY_ONLY
+0x01 DISPLAY_YESNO
+0x02 KEYBOARD_ONLY
+0x03 NO_INPUT_NO_OUTPUT
+)
+
+(
+7 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT
+6 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT
+0 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT
+)
+(
+1 FLAG_PAIRING_STATE_PAIRING
+0 FLAG_PAIRING_STATE_NOT_PAIRING
+)
+
+  
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_ui_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $     */
+/************************************************************************/
+
+
+	/* ========= memory ============== */
+memalloc(
+2 mem_UI_data_txbuff_length
+
+1 mem_ipc_skip_continue_proc
+0 mem_ui_timer_temp  //length 4
+4 mem_ipc_rega_temp
+) 
+
+xmemalloc(
+//UI Work area
+1 mem_ipc_lock_bt
+1 mem_ipc_lock_c51
+8 mem_ipc_fifo_bt2c51
+8 mem_ipc_fifo_c512bt
+1 mem_led_switch
+1 mem_ui_button_timer
+1 mem_ui_button_last_state
+4 mem_ui_timer_last_btclk
+2 mem_discovery_timeout_timer_count
+1 mem_hid_handshake_timer_count
+1 memui_reconnect_mode
+2 mem_ui_state_map
+
+//UI Config area
+1 mem_ui_profile_supported
+1 mem_led_gpio
+2 mem_led_dark_time
+2 mem_led_light_time
+1 mem_led_blink_count
+1 mem_ui_button_timeout
+1 mem_ui_button_gpio
+2 mem_discovery_timeout
+1 mem_pin_length
+16 mem_pin
+
+)
+/************/
+/* constant */
+/************/
+
+//mem_ui_state_map
+(
+0 UI_STATE_BT_CONNECTED
+1 UI_STATE_BT_SETUP_COMPLETE
+2 UI_STATE_BT_HID_CONN
+3 UI_STATE_BT_HID_HANDSHAKE
+4 UI_STATE_BT_SPP_CONN
+5 UI_STATE_BT_SNIFF
+6 UI_STATE_BT_DISCOVERY
+7 UI_STATE_BT_RECONNECT
+8 UI_STATE_BT_SLAVE_ROLE
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+13 UI_STATE_LED_BLINK
+14 UI_STATE_LED_ON
+)
+(
+0xFF LED_FLASH_INFINITE
+)
+
+(
+1 UI_STATE_SPP_NL_AUTO_DISCOVER
+
+)
+
+/* UI state for Headset (memui_HS_State) */ 
+   (
+    0 UI_HEADSET_DISCONNECT
+    1 UI_HEADSET_IDLE                   /* before the responsor HS receive SABM      */
+    2 UI_HEADSET_W4CONNECT
+    3 UI_HEADSET_RINGING
+    4 UI_HEADSET_CONNECTED
+    5 UI_HEADSET_PARING
+  )
+/* memui_BB_State */
+(
+  0 UI_BB_OFF
+  1 UI_BB_IDLE
+  2 UI_BB_DISCOVERY
+  3 UI_BB_CONNECTED_ACTIVE_NO_SCO
+  4 UI_BB_CONNECTED_ACTIVE_WITH_SCO
+  5 UI_BB_CONNECTED_ACTIVE_WAIT_SNIFF
+  6 UI_BB_CONNECTED_SNIFF
+  7 UI_BB_RECONNECT
+  8 UI_BB_CONNECTED_SNIFF_WITH_SCO
+)
+
+/************/
+/* flags    */
+/************/
+  
+/* memui_Misc_Flags */
+  (
+    5 NO_IDLE_TURN_OFF
+    7 ANSWER_RING_FLAG               /* 1 Answer,0 no*/
+  )
+
+/* mem_UI_SCH_Interface */
+  (
+    0  UI_HS_PAIRING 
+    2  UI_REQ_CLOSE_RFCOMM
+    3  UI_LINK_LOST
+    4  UI_REQ_OPEN_SCO
+    6  UI_REQ_CLOSE_SCO
+  )
+  
+/* memui_PassOverKey */
+  (
+    0  ANSWER_RING_BIT
+    0  AG_SEND_RING_BIT
+    1  VOL_UP_BIT
+    2  VOL_DOWN_BIT
+    3  INI_CALL_BIT
+    4  DAIL_LAST_CALL
+    5  END_CALL_BIT
+    6  NOKIA_VOICE_ACTIVE 
+    7  REJECT_CALL_BIT
+  )
+  
+/* memui_reconnect_mode */
+(
+  0 NO_RECONNECTION
+  1 RECONNECT_HID
+  2 RECONNECT_HF
+  3 RECONNECT_HS
+  4 RECONNECT_HID_HF
+  5 RECONNECT_HID_HS
+)
+/* memui_Commands */
+(
+0 BT_CMD_STANDBY
+1 BT_CMD_START_DISCOVERY
+2 BT_CMD_STOP_DISCOVERY
+3 BT_CMD_RECONNECT
+4 BT_CMD_DISCONNECT
+5 BT_CMD_ENTER_SNIFF
+6 BT_CMD_EXIT_SNIFF
+7 BT_CMD_ENTER_SNIFF_SUBRATING
+8 BT_CMD_EXIT_SNIFF_SUBRATING
+9 BT_CMD_SNIFF_TEST
+10 BT_CMD_SET_PIN_CODE
+11 BT_CMD_START_INQUIRY
+12 BT_CMD_STOP_INQUIRY
+13 BT_CMD_START_ADV
+14 BT_CMD_STOP_ADV
+15 BT_CMD_START_DIRECT_ADV
+16 BT_CMD_STOP_DIRECT_ADV
+17 BT_CMD_LE_DISCONNECT
+18 BT_CMD_LE_UPDATE_CONN
+19 BT_CMD_LED_OFF
+20 BT_CMD_LED_ON
+21 BT_CMD_LED_BLINK
+22 BT_CMD_LE_START_CONN
+23 BT_CMD_LE_START_SCAN
+24 BT_CMD_LE_STOP_SCAN
+25 BT_CMD_ENTER_HIBERNATE
+27 BT_CMD_LE_SMP_SECURITY_REQUEST
+28 BT_CMD_LE_START_WRITE
+29 BT_CMD_ROLE_SWITCH
+30 BT_CMD_BB_RECONN_CANCEL
+31 BT_CMD_STORE_RECONN_INFO_LE
+32 BT_CMD_STORE_RECONN_INFO_BT
+33 BT_CMD_DHKEY_NOT_ACCEPT
+34 BT_CMD_UPDATE_SUPERVISION_TO
+35 BT_CMD_START_24G
+36 BT_CMD_STOP_24G
+37 BT_CMD_PAIR_24G
+38 BT_CMD_TEST_MODE
+39 BT_CMD_START_ADV_RECONN
+40 BT_CMD_AUTO_PAIR_24G
+)
+
+(
+0x00 BT_EVT_NULL
+0x01 BT_EVT_BB_CONNECTED
+0x02 BT_EVT_BB_DISCONNECTED
+0x03 BT_EVT_RECONN_STARTED
+0x04 BT_EVT_RECONN_FAILED
+0x05 BT_EVT_SETUP_COMPLETE
+0x06 BT_EVT_HID_CONNECTED
+0x07 BT_EVT_HID_DISCONNECTED
+0x08 BT_EVT_SPP_CONNECTED
+0x09 BT_EVT_SPP_DISCONNECTED
+0x0A BT_EVT_PINCODE_REQ
+0x0B BT_EVT_ENTER_SNIFF
+0x0C BT_EVT_EXIT_SNIFF
+0x0D BT_EVT_ENTER_SNIFF_SUB
+0x0E BT_EVT_EXIT_SNIFF_SUB
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x12 BT_EVT_HID_HANDSHAKE
+0X13 BT_EVT_RECONN_PAGE_TIMEOUT
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x16 BT_EVT_ML2CAP_CONN_REFUSED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x18 BT_EVT_LINKKEY_GENERATE
+0x19 BT_EVT_SWITCH_NOT_ACCEPT
+0x20 BT_EVT_SWITCH_ACCEPT
+0x21 BT_EVT_SNIFF_NOT_ACCEPT
+0x22 BT_EVT_SNIFF_ACCEPT
+0x23 BT_EVT_UNSNIFF_ACCEPT
+0x24 BT_EVT_UNSNIFF_NOT_ACCEPT
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x26 BT_EVT_SEND_UNSNIFF_ACCEPT
+0x27 BT_EVT_VIRTUAL_CABLE_UNPLUG
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2a BT_EVT_SWITCH_FAIL_MASTER
+0x2b BT_EVT_SWITCH_SUCCESS_MASTER
+0x2c BT_EVT_BUTTON_DOWN
+0x2d BT_EVT_BUTTON_UP
+0x2e BT_EVT_REMOTE_UNSNIFF
+0x2f BT_EVT_RESET
+0x30 BT_EVT_LE_PAIRING_FAIL
+0x31 BT_EVT_LE_PAIRING_SUCCESS
+0x32 BT_EVT_LE_START_ENC
+0x33 BT_EVT_LE_PAUSE_ENC
+0x34 BT_EVT_LE_TK_GENERATE
+0x35 BT_EVT_BT_GKEY_GENERATE
+0x36 BT_EVT_BT_GET_PASSKEY
+0x37 BT_EVT_BT_PAIRING_FAIL
+0x38 BT_EVT_BT_PAIRING_SUCCESS
+0x39 BT_EVT_24G_PAIRING_COMPLETE
+0x3a BT_EVT_24G_ATTEMPT_SUCCESS
+0x3b BT_EVT_24G_ATTEMPT_FAIL
+0x3c BT_EVT_WAKEUP
+0x3d BT_EVT_HIBERNATE_WAKE
+0x3e BT_EVT_CLEAR_LINKKEY
+0x3f BT_EVT_24G_CHEAK_DONGLE_EXIST
+0x40 BT_EVT_LE_NOTIFY_ENABLE
+
+0x50 BT_EVT_TIMER_INIT
+0xF0 BT_EVT_TIMER_MASK
+0x51 BT_EVT_TIMER_100MS
+0x52 BT_EVT_TIMER_200MS
+0x53 BT_EVT_TIMER_300MS
+0x54 BT_EVT_TIMER_400MS
+0x55 BT_EVT_TIMER_500MS
+0x56 BT_EVT_TIMER_600MS
+0x57 BT_EVT_TIMER_700MS
+0x58 BT_EVT_TIMER_800MS
+0x59 BT_EVT_TIMER_900MS
+0x5A BT_EVT_TIMER_1KMS
+0x5B BT_EVT_TIMER_1K1MS
+0x5C BT_EVT_TIMER_1K2MS
+0x5D BT_EVT_TIMER_1K3MS
+0x5E BT_EVT_TIMER_1K4MS
+0x5F BT_EVT_TIMER_1K5MS
+)
+//switch
+(
+0 OFF
+1 ON
+)
+/* memui_mem_lock */
+(
+    0 MEM_UNLOCK
+    1 MEM_LOCK
+)
+/* memui_flag0 */
+(
+    0 UI_USER_DATA_FLAG
+    1 UI_WII_WAITING_SLEEP
+    2 UI_KEYBOARD_SNIFF_SKIP
+)
+/* mem_master_type */
+(
+    0 MTYPE_HID_DEFAULT
+    1 MTYPE_HID_SSP
+    2 MTYPE_SPP
+)
+
+	(	
+	0x01 RECIEVE_SDP_CONN_RES
+	0x02 RECIEVE_SDP_CFG_REQ
+	0x03 RECIEVE_SDP_CFG_RES
+	0x04 RECIEVE_RFCOMM_CONN_RES
+	0x05 RECIEVE_RFCOMM_CFG_REQ
+	0x06 RECIEVE_RFCOMM_CFG_RES
+	0x07 RECIEVE_HID_CTRL_CONN_RES
+	0x08 RECIEVE_HID_CTRL_CFG_REQ
+	0x09 RECIEVE_HID_CTRL_CFG_RES
+	0x0A RECIEVE_HID_INT_CONN_RES
+	0x0B RECIEVE_HID_INT_CFG_REQ
+	0x0C RECIEVE_HID_INT_CFG_RES
+	0x0D RECIEVE_AVCTP_CONN_RES
+	0x0E RECIEVE_AVCTP_CFG_REQ
+	0x0F RECIEVE_AVCTP_CFG_RES
+	0x10 RECIEVE_AVDTP_SIGNAL_CONN_RES
+	0x11 RECIEVE_AVDTP_SIGNAL_CFG_REQ
+	0x12 RECIEVE_AVDTP_SIGNAL_CFG_RES
+	0x13 RECIEVE_AVDTP_MEDIA_CONN_RES
+	0x14 RECIEVE_AVDTP_MEDIA_CFG_REQ
+	0x15 RECIEVE_AVDTP_MEDIA_CFG_RES
+	0x16 RECIEVE_SS_REASULT_HS                  
+	0x17 RECIEVE_SS_REASULT_HF                  
+	0x18 RECIEVE_SS_REASULT_AVTARG		          
+	0x19 RECIEVE_SS_REASULT_OBEX		            
+	0x1A RECIEVE_DLCI0_UA
+	0x1B RECIEVE_HS_PARAM_NEG_RES
+	0x1C RECIEVE_HS_UA
+	0x1D RECIEVE_HS_MODEM_STATUS_RES
+	0x1E RECIEVE_HS_MODEm_STATUS_CMD
+	0x1F RECIEVE_HF_PARAM_NEG_RES   
+	0x20 RECIEVE_HF_UA              
+	0x21 RECIEVE_HF_MODEM_STATUS_RES
+	0x22 RECIEVE_HF_MODEm_STATUS_CMD 
+	0x23 RECIEVE_OBEX_PARAM_NEG_RES     
+	0x24 RECIEVE_OBEX_UA              
+	0x25 RECIEVE_OBEX_MODEM_STATUS_RES
+	0x26 RECIEVE_OBEX_MODEm_STATUS_CMD    
+	0x27 RECIEVE_SPP_PARAM_NEG_RES   
+	0x28 RECIEVE_SPP_UA              
+	0x29 RECIEVE_SPP_MODEM_STATUS_RES
+	0x2A RECIEVE_SPP_MODEm_STATUS_CMD
+	0x2b RECIEVE_SDP_DISCONN_RES
+	)
+
+
+
+	(
+	0 UPPERSM_RP_IDLE
+	1 UPPERSM_RP_SDP_CONN
+	2 UPPERSM_RP_SDP_CONN_WAIT
+	3 UPPERSM_RP_SDP_CFG
+	4 UPPERSM_RP_SDP_CFG_WAIT
+	5 UPPERSM_RP_SS_AVTARG
+	6 UPPERSM_RP_SS_AVTARG_WAIT
+	7 UPPERSM_RP_SS_OBEX
+	8 UPPERSM_RP_SS_OBEX_WAIT
+	9 UPPERSM_RP_SDP_DISCONN
+	10 UPPERSM_RP_SDP_DISCONN_WAIT
+	11 UPPERSM_RP_AVDTP_CONN_WAIT
+	12 UPPERSM_RP_AVCTP_CONN
+	13 UPPERSM_RP_AVCTP_CONN_WAIT
+	14 UPPERSM_RP_AVCTP_CFG
+	15 UPPERSM_RP_AVCTP_CFG_WAIT
+	16 UPPERSM_RP_OBEX_CMD_PN
+	17 UPPERSM_RP_OBEX_CMD_PN_WAIT
+	18 UPPERSM_RP_OBEX_SABM
+	19 UPPERSM_RP_OBEX_SABM_WAIT
+	20 UPPERSM_RP_OBEX_CMD_MS
+	21 UPPERSM_RP_OBEX_CMD_MS_WAIT
+	)
+	(		/*mem_upper_sm_reconn*/
+	0 UPPERSM_RECONN_IDLE		
+	1 UPPERSM_RECONN_SDP_CONN		
+	2 UPPERSM_RECONN_SDP_CONN_WAIT		
+	3 UPPERSM_RECONN_SDP_CFG		
+	4 UPPERSM_RECONN_SDP_CFG_WAIT		
+	5 UPPERSM_RECONN_SS_HS
+	6 UPPERSM_RECONN_SS_HS_WAIT
+	7 UPPERSM_RECONN_SS_HF
+	8 UPPERSM_RECONN_SS_HF_WAIT
+	9 UPPERSM_RECONN_SS_AVTARG		
+	10 UPPERSM_RECONN_SS_AVTARG_WAIT		    
+	11 UPPERSM_RECONN_SS_OBEX		            
+	12 UPPERSM_RECONN_SS_OBEX_WAIT		      
+	13 UPPERSM_RECONN_SDP_DISCONN		        
+	14 UPPERSM_RECONN_SDP_DISCONN_WAIT      
+	15 UPPERSM_RECONN_HID_CTRL_CONN		      
+	16 UPPERSM_RECONN_HID_CTRL_CONN_WAIT		
+	17 UPPERSM_RECONN_HID_CTRL_CFG		      
+	18 UPPERSM_RECONN_HID_CTRL_CFG_WAIT     
+	19 UPPERSM_RECONN_HID_INT_CONN		      
+	20 UPPERSM_RECONN_HID_INT_CONN_WAIT		  
+	21 UPPERSM_RECONN_HID_INT_CFG		        
+	22 UPPERSM_RECONN_HID_INT_CFG_WAIT      
+	23 UPPERSM_RECONN_RFCOMM_CONN		        
+	24 UPPERSM_RECONN_RFCOMM_CONN_WAIT		  
+	25 UPPERSM_RECONN_RFCOMM_CFG		        
+	26 UPPERSM_RECONN_RFCOMM_CFG_WAIT       
+	27 UPPERSM_RECONN_RFCOMM_SABM		        
+	28 UPPERSM_RECONN_RFCOMM_SABM_WAIT		  
+	29 UPPERSM_RECONN_SPP_CMD_PN		        
+	30 UPPERSM_RECONN_SPP_CMD_PN_WAIT		    
+	31 UPPERSM_RECONN_SPP_SABM		          
+	32 UPPERSM_RECONN_SPP_SABM_WAIT		      
+	33 UPPERSM_RECONN_SPP_CMD_MS		        
+	34 UPPERSM_RECONN_SPP_CMD_MS_WAIT       
+	35 UPPERSM_RECONN_HF_CMD_PN		          
+	36 UPPERSM_RECONN_HF_CMD_PN_WAIT		    
+	37 UPPERSM_RECONN_HF_SABM		            
+	38 UPPERSM_RECONN_HF_SABM_WAIT		      
+	39 UPPERSM_RECONN_HF_CMD_MS		          
+	40 UPPERSM_RECONN_HF_CMD_MS_WAIT        
+	41 UPPERSM_RECONN_AVDTPs_CONN		        
+	42 UPPERSM_RECONN_AVDTPs_CONN_WAIT		  
+	43 UPPERSM_RECONN_AVDTPs_CFG		        
+	44 UPPERSM_RECONN_AVDTPs_CFG_WAIT       
+	45 UPPERSM_RECONN_AVDTPm_CONN		        
+	46 UPPERSM_RECONN_AVDTPm_CONN_WAIT		  
+	47 UPPERSM_RECONN_AVDTPm_CFG		        
+	48 UPPERSM_RECONN_AVDTPm_CFG_WAIT       
+	49 UPPERSM_RECONN_AVCTP_CONN		        
+	50 UPPERSM_RECONN_AVCTP_CONN_WAIT		    
+	51 UPPERSM_RECONN_AVCTP_CFG		          
+	52 UPPERSM_RECONN_AVCTP_CFG_WAIT		    
+	53 UPPERSM_RECONN_OBEX_CMD_PN		        
+	54 UPPERSM_RECONN_OBEX_CMD_PN_WAIT		  
+	55 UPPERSM_RECONN_OBEX_SABM		          
+	56 UPPERSM_RECONN_OBEX_SABM_WAIT		    
+	57 UPPERSM_RECONN_OBEX_CMD_MS		        
+	58 UPPERSM_RECONN_OBEX_CMD_MS_WAIT     
+	59 UPPERSM_RECONN_SS_SPP
+	60 UPPERSM_RECONN_SS_SPP_WAIT
+	)
+	(/*mem_UI_profile_supported*/
+	0 support_HID
+	1 support_A2DP
+	2 support_AVRCP
+	3 support_HF
+	4 support_HS
+	5 support_PBAP
+	6 support_SPP
+	)
+	/*mem_upper_sm_ss*/
+	(
+	0 UPPERSM_SS_HS
+	1 UPPERSM_SS_HF
+	2 UPPERSM_SS_AVTARG
+	3 UPPERSM_SS_OBEX
+	)
+
+	(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+	)
+	(
+	0x01 UI_BB_INCONNECT
+	0x10 UI_BB_DISCONNECT
+	)
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+
+//mem_ipc_skip_continue_proc
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+
+
+//C51 synchronous task
+(
+3 START_C51_CORE
+)
+
+
+//bt mode device number
+(
+0X01 MODE_BT_DEVICE1
+0X02 MODE_BT_DEVICE2
+0X03 MODE_BT_DEVICE3
+0X04 MODE_24G_DEVICE
+)
+
+//mem_24g_rx_packet_flag
+(
+0 FLAG_24G_NOT_RX_PACKET
+1 FLAG_24G_RX_PACKET
+)
+
+//mem_24g_pairing_sm
+(
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+
+(
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+0 INIT_CLEAR
+)
+
+(
+1 NEW_QUEUE_ELE_COUNT
+32 NEW_QUEUE_ELE_LENGTH
+
+0x4f50 p_mem_hci_log
+)
+
+(
+7 RSSI_BUF_LEN
+0x77 RSSI_DIS_MIN_24G
+0x82 RSSI_DIS_MAX_24G
+
+0x75 RSSI_DIS_MIN_BLE
+0x80 RSSI_DIS_MAX_BLE
+)
+
+(
+0x60 BLE_FAST_CONN_CHARACTER_HANDLE
+)
+
+(
+48  EEPROM_INIT_FLAG_OFFSET
+)
+
+/**
+*  @file:bt_utility_format.upper
+*  @author: lei.zhu
+*  utility header file. inlcude timer
+*  Copyright:  (C)Hanlynn Technology    
+*/
+
+memalloc(
+
+/*
+    temp parameter
+*/
+2 mem_hold_contr
+2 mem_hold_contw
+1 mem_fifo_temp
+
+8 mem_pdatatemp
+8 mem_temp //8 bytes
+4 mem_timeup // 4 bytes
+4 mem_rega //4 bytes
+4 mem_regb //4 bytes
+3 mem_regc //3 bytes
+2 mem_contr //2 bytes
+2 mem_contw //2 bytes
+
+0 mem_le_data_len_temp	//1byte
+0 mem_tx_fifo_map_temp
+0 mem_rpn_dlci		//1byte
+0 mem_event_cmd_response_content	//2byte
+0 mem_le_prand		//16byte
+0 mem_AES_CMAC_k	 //16 bytes
+0 mem_regext_index 	//1 bytes
+1 mem_temp_block0
+0 mem_le_data_temp	//15bytes
+15 mem_temp_block1
+0 mem_le_aes_128	//16byte
+0 mem_regext   //64 bytes
+0 mem_AES_CMAC_k1  //16 bytes
+16 mem_temp_block2
+0 mem_AES_CMAC_k2  //16 bytes
+16 mem_temp_block3
+0 mem_AES_CMAC_temp  // 16 bytes
+16 mem_temp_block4
+0 mem_AES_CMAC_M_last // 16 bytes
+16 mem_temp_block5
+0 mem_le_mackey //16 bytes
+16 mem_temp_block6
+
+200 mem_temp_prepare_write_request
+)
+
+
+(
+/*mem_util_timer_flag0_7*/
+    0   UTIL_TIMER_0_USED
+    1   UTIL_TIMER_1_USED
+    2   UTIL_TIMER_2_USED
+    3   UTIL_TIMER_3_USED
+    4   UTIL_TIMER_4_USED
+    5   UTIL_TIMER_5_USED
+    6   UTIL_TIMER_6_USED
+    7   UTIL_TIMER_7_USED
+/*mem_util_timer_flag8_15*/
+    0   UTIL_TIMER_8_USED
+    1   UTIL_TIMER_9_USED
+    2   UTIL_TIMER_10_USED
+    3   UTIL_TIMER_11_USED
+    4   UTIL_TIMER_12_USED
+    5   UTIL_TIMER_13_USED
+    6   UTIL_TIMER_14_USED
+    7   UTIL_TIMER_15_USED
+)
+
+//util fifo param
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+
+memalloc(
+0 mem_kb_map2_temp_start
+3 mem_kb_map2_vk
+3 mem_kb_current_vk
+1 mem_kb_vk_offset
+1 mem_kb_vk_processed_cnt
+2 mem_kb_map2_current_cell_ptr
+1 mem_kb_device_button
+8 mem_table_temp0
+8 mem_table_temp1
+0 mem_kb_map2_temp_end
+
+
+1 mem_check_count
+1 mem_store_key_count
+4 mem_kb_gpio_val
+
+1 mem_c51_flag
+1 mem_c51_lmp_lock
+1 mem_lmp_bb_disconnect_reason
+
+)
+
+/************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                           */
+/* $Author: Administrator $                                                     */
+/* $Id: bt_var.osi,v 1.1 2009-09-28 04:06:18 Administrator Exp $   */
+/* Orisil Technology                                                 */
+/************************************************************************/
+
+
+/* packet types */
+(
+  0x02 FHS_PACKET 
+  0x03 DM1_PACKET 
+  0x03 DM1_LMP_PACKET 
+  0x04 DH1_PACKET 
+  0x05 HV1_PACKET 
+  0x06 HV2_PACKET 
+  0x07 HV3_PACKET 
+  0x08 DV_PACKET 
+  0x09 AUX1_PACKET 
+  0x0a DM3_PACKET 
+  0x0b DH3_PACKET 
+  0x0e DM5_PACKET 
+  0x0f DH5_PACKET 
+)
+
+
+/* mem_lmp_respond */
+(
+  0 RESPOND_TO_ALL
+  1 PASS_EVERYTHING
+  2 PASS_ONLY_UNKNOWNS
+  3 RESPOND_TO_LMPS
+)
+/* SCO algorithm defines */
+(
+  0 ULAW
+  1 ALAW
+  2 CVSD
+)
+/* encryption modes */
+(
+  0 NO_ENCRYPTION
+  1 PT_PT_ENCRYPTION
+  2 PT_BROADCAST_ENCRYPTION
+)
+
+/* bits used in mem_lmp_state1 variable */
+(
+  0 LMP_STATE_DETACH
+  1 LMP_STATE_HOLD
+  2 LMP_STATE_SNIFF
+  3 LMP_STATE_PARK
+  4 LMP_STATE_WAIT_SCO_CREATE
+  5 LMP_STATE_WAIT_SCO_KILL
+  6 LMP_STATE_SCO3
+  7 LMP_STATE_WAIT_SCO_START
+)
+/* mem_lmp_state2 */
+(
+  0 LMP_WAIT_FOR_SNIFF_ACCEPT
+  1 LMP_WAIT_FOR_PARK_ACCEPT
+  2 LMP_SEND_UNPARK_ACCEPTED
+  3 LMP_SEND_ENCRYPTION_START
+  4 LMP_SEND_ENCRYPTION_STOP
+  5 MESSAGE_QUEUE
+  7 LMP_STATE_WAIT_BEACON
+)
+/* mem_lmp_state3 */
+(
+ 0 INQUIRY_STATE_CHECK
+ 1 HOST_DELAY_MESSAGE
+ 2 VARIABLE_DELAY
+ 3 TEST_MODE_START_LOOPBACK
+ 4 TEST_MODE_START_PATTERN
+ 5 PARSE_TEST_CONTROL_MESSAGE
+ 6 H_AUTH_SEND_COMB_KEY
+)
+/* mem_rx_status */
+(
+  0 FROM_MASTER
+)
+/* mem_ms_flag */
+(
+  0 MS_RECEIVE_SWITCH_REQ
+  1 MS_SEND_SETUP_COMPLATE
+)
+/* mem_conn_sm */
+(
+  0 CONN_SM_STANDBY
+  1 CONN_SM_WAIT_PAGE
+  2 CONN_SM_SEND_FEATURES
+  3 CONN_SM_WAIT_FEATURES_RES
+  4 CONN_SM_SEND_CONN_REQ
+  5 CONN_SM_WAIT_CONN_ACCEPT
+  6 CONN_SM_AUTH_PAIR
+  7 CONN_SM_AUTH_PAIR_WAIT
+  8 CONN_SM_WAIT_MUTAL_AUTH
+  9 CONN_SM_ENCRYPT
+  0xa CONN_SM_ENCRYPT_WAIT
+  0xb CONN_SM_ENCRYPT_WAIT_CLEAR
+  0xc CONN_SM_SEND_SETUP_COMPLETE
+  0xd CONN_SM_WAIT_SETUP_COMPLETE 
+  0xe CONN_SM_SEND_SWITCH
+  0xf CONN_SM_DETACH_DELAY
+  0x10 CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION
+  0x11 CONN_SM_DELAY_RESTART_CONNECTION
+  0x12 CONN_SM_SEND_VERSION
+  0X13 CONN_SM_WAIT_VERSION
+  0x14 CONN_SM_SEND_FEATURES_EXT
+  0x15 CONN_SM_WAIT_FEATURES_EXT
+  0x16 CONN_SM_PAIRING
+  0x17 CONN_SM_AUTH
+  0x18 CONN_SM_PAIRING_WAIT
+  0x19 CONN_SM_AUTH_WAIT
+  0x1a CONN_SM_DONE
+  0x1b CONN_SM_WAIT_DONE
+)
+
+/* btStateConn1 */
+(
+  0 CONN_STANDBY
+  1 CONN_MASTER_SEND_CONN_REQ
+  2 CONN_MASTER_WAIT_FOR_CONN_ACCEPTED
+  3 CONN_MASTER_AUTH
+  4 CONN_MASTER_WAIT_FOR_FEATURES
+  5 CONN_MASTER_WAIT_FOR_SETUP_COMPLETE
+  6 CONN_MASTER_WAIT_FOR_MAX_SLOT
+  7 CONN_SLAVE_CONN_REQUESTED
+  8 CONN_SLAVE_WAIT_FOR_SETUP_COMPLETE
+  9 CONN_SLAVE_AUTH
+  10 CONN_USING_HOST_OPCODE
+  11 CONN_SLAVE_AUTH_WAIT
+  12 CONN_SLAVE_ENCRYPT_WAIT
+)
+
+/* mem_lmp_conn_state */
+(
+  0 RECEIVED_CONN_REQ
+  1 SENT_CONN_REQ
+  2 RECEIVED_SETUP_COMPLETE
+  3 SENT_SETUP_COMPLETE
+  4 HOST_CONNECTION_MADE
+  6 INIT_COMPLETE
+  7 SNIFF_NEGOTIATE
+)
+/* btStateAuth1 */
+(
+  0 WAIT_FOR_KINIT
+  1 WAIT_FOR_LKA
+  2 WAIT_FOR_LKB
+  3 WAIT_FOR_SRES
+  4 EXAMINE_RECEIVED_SRES
+  5 SEND_AU_RAND
+  6 WAIT_FOR_KC
+  7 DELAYED_ENCRYPT_RESPONSE
+)
+/* btStateAuth2 */
+(
+  0 SENT_SRES
+  1 RECEIVED_IN_RAND
+  2 SENT_AU_RAND
+  3 AUTHENTICATION_FAILED
+  4 AUTHENTICATION_PASSED
+  5 STARTED_AUTH
+  6 SENT_COMB_KEY
+  7 SENT_IN_RAND
+)
+/* btStateAuth3 */
+(
+  0 RECEIVED_AU_RAND
+  1 RECEIVED_SRES
+  2 MUTUALLY_AUTHENTICATE
+)
+/* btStateHost */
+(
+  0 H_AUTH_STARTED
+  2 H_ENCRYPTION_MODE_REQ_PT
+  3 H_ENCRYPTION_KEY_SIZE
+  4 H_ENCRYPTION_START
+  5 H_ENCRYPTION_STOP
+  6 H_AUTH_SECOND_TRY
+)
+/* btStateEncrypt2 */
+(
+  0 RECEIVED_ENCRYPT_MODE_REQ_PT
+  1 RECEIVED_ENCRYPT_KEY_SIZE
+  2 RECEIVED_ENCRYPT_START
+  3 RECEIVED_ENCRYPT_STOP
+  4 STARTED_ENCRYPT_START
+)
+/* mem_ms_state */
+(
+  0x00 MS_STANDBY
+  0x11 M_MINIT_1
+  0x12 M_MINIT_2
+  0x20 M_SINIT_0
+  0x30 S_MINIT_0
+  0x31 S_MINIT_1
+  0x32 S_MINIT_2
+  0x41 S_SINIT_1
+  0x42 S_SINIT_2
+  0x43 S_SINIT_3
+)
+/* mem_test_mode */
+(
+  0 TEST_MODE_ALLOWED
+  1 TEST_MODE_ACTIVE
+)
+/* values for mem_tester_emulate */
+(
+  0x00 NO_TEST_MODE
+  0x00 CONTINUOUS_TRANSMIT
+  0x10 TRANSMIT_TEST
+  0x08 LOOPBACK
+)
+
+/* mem_tx_misc */
+(
+  1 SEND_TX_ADDR
+)
+/* BBHWREG_page_stat */
+(
+  5 PAGE_MODE_END
+)
+/* host_return_parameters_status codes */
+(
+  0x00 HOST_RETURN_SUCCESS
+  0x01 HOST_RETURN_SLAVE_CANT_ISSUE
+  0x02 HOST_RETURN_NO_CONNECTION
+  0x04 HOST_RETURN_PAGE_TIMEOUT
+  0x05 HOST_RETURN_INQUIRY_TIMEOUT
+  0x08 HOST_RETURN_CONNECTION_TIMEOUT
+  0x09 HOST_RETURN_MAX_NUM_CONNECTIONS
+  0x0a HOST_RETURN_MAX_NUM_SCO
+  0x0b HOST_RETURN_MAX_NUM_ACL
+  0x0c HOST_RETURN_SECURITY_REASONS
+  0x10 HOST_RETURN_HOST_TIMEOUT
+  0x11 HOST_RETURN_UNSUPPORTED_FEATURE_PARAMETER
+  0x13 HOST_RETURN_OTHER_END_USER
+  0x14 HOST_RETURN_OTHER_END_LOW_RESOURCE
+  0x15 HOST_RETURN_OTHER_END_POWER_OFF
+  0x16 HOST_RETURN_LOCAL_HOST
+  0x18 HOST_RETURN_PAIRING_NOT_ALLOWED
+  0x19 HOST_RETURN_UNKNOWN_PDU
+  0x1a HOST_RETURN_UNSUPPORTED_REMOTE_FEATURE
+  0x1d HOST_RETURN_SCO_AIR_MODE_REJECTED
+  0x20 HOST_RETURN_UNSUPPORTED_LMP_VALUE
+  0x21 HOST_RETURN_AUTHENTICATION_FAILURE
+  0x22 HOST_RETURN_CHANGED_EXISTING_SCO
+  0x23 HOST_RETURN_HOST_REJECTED
+  0x24 HOST_RETURN_UNSPECIFIED_ERROR
+  0x25 HOST_RESET
+  0x26 HOST_RETURN_BAD_HANDLE
+
+  0x00 HOST_RETURN_ACCEPT_COMMAND
+  0x01 HOST_RETURN_REJECT_COMMAND
+)
+/* host_present */
+(
+  0 HOST_IS_PRESENT
+  1 BCI_IS_PRESENT
+  2 DONT_INIT_RADIO
+)
+/* mem_master_state */
+(
+  0 MASTER_STATE_STANDBY
+  1 MASTER_INQUIRY
+)
+/* misc */
+(
+  92 SECOND_SWITCH_REQ
+  93 SLAVE_DELAY_DETACH
+  94 MASTER_DELAY_DETACH
+  95 UNSNIFF_DELAY_DETACH
+  0 WE_STARTED_AS_MASTER
+  1 WE_STARTED_AS_SLAVE
+)
+/* mem_host_commands */
+(
+  0x01 HOST_INQUIRY
+  0x02 HOST_INQUIRY_CANCEL
+  0x03 HOST_CREATE_CONNECTION
+  0x04 HOST_DISCONNECT_CONNECTION
+  0x05 HOST_ADD_SCO_REQUEST
+  0x06 HOST_REMOTE_NAME_REQUEST
+  0x07 HOST_WRITE_SUPPORTED_FEATURES
+  0x08 HOST_SET_TX_LEVEL
+  0x09 HOST_SET_RX_LEVEL
+  0x0a HOST_SNIFF_REQUEST
+  0x0b HOST_UNSNIFF_REQUEST
+  0x0c HOST_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0e HOST_WRITE_SCAN_ENABLE
+  0x0f HOST_READ_AUDIO_QUALITY
+  0x10 HOST_ENABLE_DEVICE_UNDER_TEST
+  0x14 HOST_BUTTON_CONFIGURE
+  0x15 HOST_SET_LOW_BATTERY_LEVEL
+  0x16 HOST_WRITE_LOCAL_NAME
+  0x17 HOST_WRITE_LOCAL_PIN
+  0x18 HOST_KILL_SCO_REQUEST
+  0x19 HOST_QOS_REQ
+
+  0x1a HOST_FEATURES_REQUEST
+  0x1b HOST_VERSION_REQUEST
+  0x1c HOST_TIMING_REQUEST
+  0x1d HOST_CLK_OFFSET_REQUEST
+  0x1e HOST_AUTHENTICATE
+  0x1f HOST_START_ENCRYPTION
+  0x20 HOST_STOP_ENCRYPTION
+  0x21 HOST_HOLD_REQUEST
+  0x22 HOST_HOLD_FORCE
+  0x23 HOST_PARK_REQUEST
+  0x24 HOST_MOD_BEACON
+  0x25 HOST_SET_BROADCAST_SCAN_WINDOW
+  0x26 HOST_UNPARK_PM_REQUEST
+  0x27 HOST_UNPARK_BD_REQUEST
+  0x28 HOST_SLAVE_REQUEST_UNPARK
+  0x29 HOST_DECREASE_POWER_REQUEST
+  0x2a HOST_INCREASE_POWER_REQUEST
+  0x2b HOST_SEND_PREFERRED_RATE
+  0x2c HOST_MAX_SLOT_REQ
+  0x2d HOST_MAX_SLOT_FORCE
+  0x2e HOST_PAGE_MODE_REQUEST
+  0x2f HOST_PAGE_SCAN_MODE_REQUEST
+  0x30 HOST_MASTER_SLAVE_SWITCH
+  0x31 HOST_SEND_AUTO_RATE
+  0x32 HOST_PAGE_CANCEL
+  0x33 HOST_CHANGE_LINK_KEY
+  0x34 HOST_RADIO_READ
+  0x35 HOST_RADIO_WRITE
+  0x36 HOST_REMOTE_SLAVE_INIT_UNPARK_REQUESTED
+
+  0x40 HOST_REMOTE_CONNECTION_REQUESTED
+  0x41 HOST_REMOTE_DETACH
+  0x42 HOST_REMOTE_SCO_CREATE_REQUESTED
+  0x43 HOST_REMOTE_SCO_KILL_REQUESTED
+  0x44 HOST_REMOTE_PARK_REQUESTED
+  0x45 HOST_REMOTE_UNPARK_REQUESTED
+  0x46 HOST_REMOTE_SNIFF_REQUESTED
+  0x47 HOST_REMOTE_UNSNIFF_REQUESTED
+  0x48 HOST_REMOTE_HOLD_REQUESTED
+  0x49 HOST_REMOTE_AUTHENTICATION
+  0x4a HOST_REMOTE_START_ENCRYPTION_REQUESTED
+  0x4b HOST_REMOTE_STOP_ENCRYPTION_REQUESTED
+  0x4c HOST_MODE_CHANGE_EVENT
+  0x4d HOST_REMOTE_TEST_ACTIVATE
+  0x4e HOST_REMOTE_TEST_CONTROL
+  0x4f HOST_REMOTE_TIMING_REQUEST
+)
+/* BCI interface (not used if not compiled in ) */
+(
+  0x01 BCI_INQUIRY
+  0x02 BCI_INQUIRY_CANCEL
+  0x03 BCI_CREATE_CONNECTION
+  0x04 BCI_DISCONNECT
+  0x05 BCI_ADD_SCO_CONNECTION
+  0x06 BCI_REMOTE_NAME_REQUEST
+  0x07 BCI_WRITE_SUPPORTED_FEATURES
+  0x08 BCI_SET_TX_POWER_LEVEL
+  0x09 BCI_SET_RX_POWER_LEVEL
+  0x0a BCI_SNIFF_MODE
+  0x0b BCI_EXIT_SNIFF_MODE
+  0x0c BCI_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0d BCI_WRITE_PAGE_TIMEOUT
+  0x0e BCI_WRITE_SCAN_ENABLE
+  0x0f BCI_GET_AUDIO_QUALITY
+  0x10 BCI_ENABLE_DEVICE_UNDER_TEST
+  0x11 BCI_SEND_DATA
+  0x12 BCI_REGISTER_SERVICE_RECORD
+  0x13 BCI_SERVICE_SEARCH_ATTRIB_REQ
+  0x14 BCI_BUTTON_CONFIGURE
+  0x15 BCI_SET_LOW_BATTERY_LEVEL
+  0x16 BCI_WRITE_LOCAL_NAME
+  0x17 BCI_WRITE_LOCAL_PIN
+  0x18 BCI_REMOVE_SCO_CONNECTION
+  0x19 BCI_QUALITY_OF_SERVICE
+  0x40 BCI_REMOTE_CONNECTION_REQUEST
+  0x41 BCI_REMOTE_DETACH
+  0x42 BCI_REMOTE_ADD_SCO_REQUEST
+  0x43 BCI_REMOTE_REMOVE_SCO_REQUEST
+  0x44 BCI_REMOTE_PARK_REQUEST
+  0x45 BCI_REMOTE_UNPARK_REQUEST
+  0x46 BCI_REMOTE_SNIFF_REQUEST
+  0x47 BCI_REMOTE_UNSNIFF_REQUEST
+  0x48 BCI_REMOTE_HOLD_REQUEST
+  0x49 BCI_REMOTE_AUTHENTICATION_PAIRING_REQUEST
+  0x4a BCI_REMOTE_START_ENCRYPTION_REQUEST
+  0x4b BCI_REMOTE_STOP_ENCRYPTION_REQUEST
+  0x4c BCI_MODE_CHANGE_EVENT
+)
+/* mode changes */
+(
+  0 MODE_CHANGE_ACTIVE
+  1 MODE_CHANGE_SNIFFING
+  2 MODE_CHANGE_PARKED
+  3 MODE_CHANGE_HOLDING
+  4 MODE_CHANGE_SCO_ADDED
+  5 MODE_CHANGE_SCO_REMOVED
+  6 MODE_CHANGE_ACL_CONNECTION
+  7 MODE_CHANGE_DISCONNECT
+  8 MODE_CHANGE_SCO_CHANGED
+  9 MODE_CHANGE_ENCRYPTING
+  10 MODE_CHANGE_NOT_ENCRYPTING
+  11 MODE_CHANGE_BUTTON_UP
+  12 MODE_CHANGE_BUTTON_DOWN
+  13 MODE_CHANGE_BATTERY_LOW
+  14 MODE_CHANGE_RESET
+  15 MODE_CHANGE_INQUIRY_CANCELED_RMTCMD
+  16 MODE_ACTIVE_MSSWITCH_PASSED
+  17 MODE_ACTIVE_MSSWITCH_FAILED
+)
+/* mem_battery - low nibble is level information, upper nibble is status info */
+(
+  6 BATTERY_CHECK_LEVEL
+  7 BATTERY_SENT_STATUS
+)
+/* mem_radio_version */
+(
+  0x02 RADIO_2001
+  0x12 RADIO_2002
+  0x32 RADIO_2002_DDM
+  0x42 RADIO_1008A1
+  0x52 RADIO_1018A0
+)
+/* mem_slave_initiated_conn */
+(
+  0 SLAVE_INIT_AUTHENTICATION
+  1 SLAVE_INIT_ENCRYPTION
+  2 SLAVE_INIT_MASTER_SLAVE_SWITCH
+)
+/* connection_options */
+(
+  0 CONNECTION_AUTH
+  1 CONNECTION_ENCRYPT
+  2 CONNECTION_SWITCH
+  3 CONNECTION_ACL
+  4 CONNECTION_FEATURE_EXT
+)
+/* mem_debug_config */
+(
+  7 AA_INSERTION
+)
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/ui.prog
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/ui.prog	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/ui.prog	(working copy)
@@ -0,0 +1,480 @@
+ui_init:
+	call lpm_disable_exen_output
+	rtn wake
+	call ui_button_init
+	call ui_timer_init
+	branch ui_led_init
+
+ui_dispatch:
+	call ui_led_blink_polling
+	
+	branch ui_timer_check
+	
+ui_button_init:
+	set1 mark_ext_patch,mark
+	bpatch patch3d_7,mem_patch3d
+	fetch 1,mem_ui_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	iforce temp
+	call gpio_config_output
+	fetcht 1,mem_ui_button_gpio
+	call gpio_out_inactive
+	nop 100
+	fetcht 1,mem_ui_button_gpio
+	call gpio_config_input
+	branch ui_button_polling
+
+
+	
+ui_button_polling:
+	set1 mark_ext_patch,mark
+	bpatch patch3e_0,mem_patch3e
+	fetch 1,mem_ui_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	copy pdata,temp
+	call gpio_get_bit
+	nbranch ui_button_up,true
+	//fall through
+ui_button_down:
+	call ui_button_check_long_press
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BTN_DOWN
+	store 2,mem_ui_state_map
+	fetch 1,mem_ui_button_last_state
+	rtneq UI_BUTTON_STATE_DOWN
+	jam UI_BUTTON_STATE_DOWN,mem_ui_button_last_state
+	//Down Edge
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_ui_button_timer //start long press timer
+	call lpm_button_get_wake_lock
+	jam BT_EVT_BUTTON_DOWN,mem_fifo_temp
+	branch ui_ipc_send_event
+ui_button_up:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BTN_DOWN
+	store 2,mem_ui_state_map
+	fetch 1,mem_ui_button_last_state
+	rtneq UI_BUTTON_STATE_UP
+	jam UI_BUTTON_STATE_UP,mem_ui_button_last_state
+	//Up Edge
+	jam 0,mem_ui_button_timer//stop long press timer
+	call lpm_button_clean_wake_lock
+	jam BT_EVT_BUTTON_UP,mem_fifo_temp
+	branch ui_ipc_send_event
+
+ui_button_check_long_press:
+	fetch 1,mem_ui_button_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_ui_button_timer
+	nrtn blank
+	//Long Press
+	jam BT_EVT_BUTTON_LONG_PRESSED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+lpm_button_get_wake_lock:
+	arg wake_lock_button,queue
+	branch lpm_get_wake_lock
+	
+lpm_button_clean_wake_lock:
+	arg wake_lock_button,queue
+	branch lpm_put_wake_lock
+
+ui_led_init:
+	fetch 1,mem_led_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	iforce temp
+	call gpio_config_output
+	branch ui_led_off
+	
+ui_led_blink_stop:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_LED_BLINK
+	store 2,mem_ui_state_map
+	jam ui_led_stop,mem_led_switch
+ui_led_off:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_LED_ON
+	store 2,mem_ui_state_map
+	fetcht 1,mem_led_gpio
+	branch gpio_out_inactive
+
+ui_led_on:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_LED_ON
+	store 2,mem_ui_state_map
+	jam ui_led_stop,mem_led_switch
+	fetcht 1,mem_led_gpio
+	branch gpio_out_active
+
+ui_led_blink_start:
+	jam 0xff,mem_led_blink_count
+ui_led_blink_start1:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_LED_BLINK
+	store 2,mem_ui_state_map
+	jam ui_led_start,mem_led_switch
+	rtn
+	
+ui_led_blink_polling:
+	set1 mark_ext_patch,mark
+	bpatch patch3e_1,mem_patch3e
+	fetch 1,mem_led_blink_count
+	rtn blank
+	fetch 1,mem_led_switch
+	rtneq ui_led_stop
+	arg ui_led_blink,queue
+	call timer_check
+	nrtn blank
+	fetch 1,mem_led_switch
+	beq ui_led_dark_time,in_ui_led_blink_polling_dark
+	call ui_led_on
+	jam ui_led_dark_time,mem_led_switch
+	fetch 2,mem_led_light_time
+	branch in_ui_led_blink_timer_start
+in_ui_led_blink_polling_dark:
+	call ui_led_off
+	fetch 1,mem_led_blink_count
+	beq LED_FLASH_INFINITE,in_ui_led_infinite
+	increase -1,pdata
+	store 1, mem_led_blink_count
+in_ui_led_infinite:
+	jam ui_led_light_time,mem_led_switch
+	fetch 2,mem_led_dark_time
+in_ui_led_blink_timer_start:
+	arg ui_led_blink,queue
+	branch timer_init	
+
+ui_timer_timeout:
+	setarg 0x1000
+	lshift16 pdata,pdata
+	iadd regb,regb
+	rtn
+	
+ui_timer_check:
+	set1 mark_ext_patch,mark
+	bpatch patch3e_2,mem_patch3e
+	arg 0,rega
+	fetcht 4,mem_ui_timer_last_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+	//call ice_break
+ui_timer_check_loop:
+	copy regb,pdata
+	increase 160,temp    //320btclk = 100ms
+	increase 160,temp
+	isub temp,null
+	nbranch ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call ui_timer_check_send_evt
+ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_ui_timer_last_btclk
+	rtn
+ui_timer_check_end:
+	set1 mark_ext_patch,mark
+	bpatch patch3e_3,mem_patch3e
+	copy rega,pdata
+	rtn blank
+	increase -160,temp    //320btclk = 100ms
+	increase -160,temp
+	set0 28,temp
+	storet 4,mem_ui_timer_last_btclk
+ui_timer_check_send_evt:
+	increase BT_EVT_TIMER_INIT,pdata
+	store 1,mem_fifo_temp
+	branch ui_ipc_send_event
+	
+
+//**********************************************************//
+//************UI Inter-Processor Communication*******//
+//**********************************************************//
+ui_ipc_get_lock:
+	jam 1,mem_ipc_lock_bt
+ui_ipc_get_lock_wait:
+	fetch 1,mem_ipc_lock_c51
+	nbranch ui_ipc_get_lock_wait,blank
+	rtn
+	
+ui_ipc_put_lock:
+	jam 0,mem_ipc_lock_bt
+	rtn
+	
+
+	
+ui_ipc_send_event:
+	set1 mark_ext_patch,mark
+	bpatch patch3e_4,mem_patch3e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_ipc_rega_temp
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_in
+	fetch 4,mem_ipc_rega_temp
+	copy pdata,rega
+	branch ui_ipc_put_lock
+
+ui_ipc_send_cmd:
+	set1 mark_ext_patch,mark
+	bpatch patch3e_5,mem_patch3e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_ipc_rega_temp	
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_in
+	fetch 4,mem_ipc_rega_temp
+	copy pdata,rega	
+	branch ui_ipc_put_lock
+
+ui_ipc_clean_all_fifo:
+	setarg 0
+	store UTIL_FIFO_LEN,mem_ipc_fifo_c512bt
+	store UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
+	rtn
+	
+check_51cmd:
+	set1 mark_ext_patch,mark
+	bpatch patch3e_6,mem_patch3e
+	fetch 1,mem_hci_cmd
+	nrtn blank
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_is_empty
+	rtn blank
+	jam IPC_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
+	call check_51cmd_once
+	fetch 1,mem_ipc_skip_continue_proc
+	branch check_51cmd,blank
+	rtn
+
+check_51cmd_once:
+	set1 mark_ext_patch,mark
+	bpatch patch3e_7,mem_patch3e
+	call ui_ipc_get_lock
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_out
+	copy pdata,temp
+	call ui_ipc_put_lock
+	copy temp,pdata
+	rtn blank
+ 	beq BT_CMD_START_DISCOVERY,check_51cmd_start_discovery
+  	beq BT_CMD_STOP_DISCOVERY,check_51cmd_stop_discovery
+  	beq BT_CMD_RECONNECT,check_51cmd_reconnect
+  	beq BT_CMD_ENTER_SNIFF_SUBRATING,check_51cmd_enter_sniff_subrating
+  	beq BT_CMD_EXIT_SNIFF_SUBRATING,check_51cmd_exit_sniff_subrating
+  	beq BT_CMD_SNIFF_TEST,check_51cmd_sniff_test
+	beq BT_CMD_START_INQUIRY,check_51cmd_inq
+	beq BT_CMD_STOP_INQUIRY,check_51cmd_stop_inq
+	beq BT_CMD_START_ADV,check_51cmd_adv
+	beq BT_CMD_STOP_ADV,check_51cmd_stop_adv
+	beq BT_CMD_START_DIRECT_ADV,check_51cmd_direct_adv
+	beq BT_CMD_STOP_DIRECT_ADV,check_51cmd_stop_direct_adv
+	beq BT_CMD_LED_BLINK,ui_led_blink_start
+	beq BT_CMD_LED_ON,ui_led_on
+	beq BT_CMD_LED_OFF,ui_led_blink_stop
+	beq BT_CMD_LE_START_CONN,check_51cmd_le_start_con
+	beq BT_CMD_LE_START_SCAN,check_51cmd_start_scan
+	beq BT_CMD_LE_STOP_SCAN,check_51cmd_stop_scan
+	beq BT_CMD_ENTER_HIBERNATE,check_51cmd_hibernate
+	beq BT_CMD_LE_SMP_SECURITY_REQUEST,check_51cmd_le_smp_sec_req
+	beq BT_CMD_LE_START_WRITE,check_51cmd_le_start_write
+	beq BT_CMD_BB_RECONN_CANCEL,check_51cmd_bb_reconn_cancel
+ifdef COMPILE_24G
+	beq BT_CMD_START_24G,check_51cmd_start24g
+	beq BT_CMD_STOP_24G,check_52cmd_stop24g
+	beq BT_CMD_PAIR_24G,check_51_cmd_pairing_24g
+endif 
+	//context related, process in context
+	store 1,mem_fifo_temp
+	set1 mark_ext_patch,mark
+	bpatch patch3f_0,mem_patch3f
+	call lmo_fifo_check
+	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
+check_51cmd_once_continue:
+	fetch 1,mem_fifo_temp
+	bmark0 mark_context,check_51cmd_check_idle
+  	beq BT_CMD_ENTER_SNIFF,cmd_in_sniff
+  	beq BT_CMD_EXIT_SNIFF,cmd_exit_sniff
+  	beq BT_CMD_SET_PIN_CODE,check_51cmd_pincode
+	beq BT_CMD_DISCONNECT,check_51cmd_disconnect
+	beq BT_CMD_LE_DISCONNECT,check_51cmd_le_disconnect
+	beq BT_CMD_ROLE_SWITCH,check_51cmd_role_switch
+	beq BT_CMD_STORE_RECONN_INFO_LE,eeprom_store_le_reconn_info
+	beq BT_CMD_STORE_RECONN_INFO_BT,eeprom_store_bd_reconn_info
+	beq BT_CMD_LE_UPDATE_CONN,check_51cmd_ble_update_connect_param
+	beq BT_CMD_DHKEY_NOT_ACCEPT,check_51cmd_dhkey_not_accept
+  	rtn
+
+check_51cmd_dhkey_not_accept:
+	call tid_set_reply
+	jam LMP_DHKey_Check,mem_lmi_opcode2
+	branch parse_lmp_dhkey_check_reject	
+
+check_51cmd_ble_update_connect_param:
+	jam XT_LL_CONNECTION_PARAM_REQ,mem_fifo_temp
+	branch le_xtype_fifo_in
+check_51cmd_check_idle:
+	store 1,mem_fifo_temp
+  	call context_check_idle
+	branch check_51cmd_restore,zero
+	call context_search_plap
+	nrtn zero
+check_51cmd_restore:
+	jam IPC_SKIP_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
+	branch ui_ipc_send_cmd
+
+
+check_51cmd_role_switch:
+  	jam LMP_SLOT_OFFSET,mem_lmo_opcode2
+	set1 mark_switch_initiated,mark
+	nrtn master
+	jam SWITCH_FLAG_INIT,mem_switch_flag
+	jam LMP_SWITCH_REQ ,mem_lmo_opcode2
+	fetch 1,mem_connection_options
+	set0 CONNECTION_SWITCH,pdata
+	store 1,mem_connection_options
+	rtn
+	
+check_51cmd_start_discovery:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_DISCOVERY
+	store 2,mem_ui_state_map
+	jam 3,mem_scan_mode
+	rtn
+	
+check_51cmd_stop_discovery:
+	jam 0,mem_hid_handshake_timer_count
+	jam 0,mem_scan_mode
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_DISCOVERY
+	store 2,mem_ui_state_map
+	rtn
+	
+check_51cmd_reconnect:	
+	jam hci_cmd_create_conn,mem_hci_cmd
+	rtn
+	
+check_51cmd_disconnect:
+	jam LMP_DETACH,mem_lmo_opcode2
+	jam OTHER_END_TERMINATED,mem_disconn_reason_send
+	rtn
+	
+	
+check_51cmd_enter_sniff_subrating:
+	rtn
+	
+check_51cmd_exit_sniff_subrating:
+	rtn	
+	
+check_51cmd_sniff_test:
+	rtn
+	
+check_51cmd_pincode:
+	jam pincode_state_pincode_ready,mem_pincode_state
+	branch cmd_pair
+
+check_51cmd_inq:
+	rtn
+check_51cmd_stop_inq:
+	rtn
+check_51cmd_adv:
+	jam ON,mem_le_adv_enable
+	jam ADV_IND,mem_le_adv_type
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	rtn
+check_51cmd_stop_adv:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	jam OFF,mem_le_adv_enable
+	rtn
+check_51cmd_direct_adv:
+	jam ON,mem_le_adv_enable
+	jam ADV_DIRECT_IND,mem_le_adv_type
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	rtn
+check_51cmd_stop_direct_adv:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	jam OFF,mem_le_adv_enable
+	rtn
+check_51cmd_le_disconnect:
+	setarg 10 // 100ms
+	store 2,mem_le_superto
+	jam XT_LL_TERMINATE_IND,mem_fifo_temp
+	branch le_xtype_fifo_in
+check_51cmd_le_start_con:
+	jam ON,mem_le_scan_enable
+	jam hci_cmd_le_create_conn,mem_hci_cmd
+//	fetch 6,mem_app_peer_addr
+//	store 6,mem_le_conn_peer_addr
+	rtn
+check_51cmd_start_scan:
+	jam ON,mem_le_scan_enable
+	rtn
+check_51cmd_stop_scan:
+	jam OFF,mem_le_scan_enable
+	jam 0,mem_hci_cmd
+	rtn
+check_51cmd_le_smp_sec_req:
+	jam XT_SMP_SECURITY_REQUEST,mem_fifo_temp
+	branch le_xtype_fifo_in
+check_51cmd_hibernate:
+	set1 mark_ext_patch,mark
+	bpatch patch3f_1,mem_patch3f
+	fetch 2,mem_cb_before_hibernate
+	call callback_func
+	enable user
+	hfetch 4,0x8138
+	setflag user,26,pdata
+	hstore 4,core_lpm_reg
+	call  lpm_write_ctrl
+	fetch 1,mem_ui_button_gpio
+	beq UI_BUTTON_GPIO_DISABLE,check_51cmd_hibernate_btn_disabled
+	copy pdata,temp
+	call gpio_config_input
+check_51cmd_hibernate_btn_disabled:
+	call ui_led_off
+	call ui_ipc_clean_all_fifo
+	branch lpm_hibernate
+	
+check_51cmd_le_start_write:
+	jam 1,mem_le_switch_send_data
+	rtn
+
+check_51cmd_bb_reconn_cancel:
+	force page_length_timer,queue
+	branch timer_stop
+
+ifdef COMPILE_24G
+check_51cmd_start24g:
+	fetch 4,mem_24g_addr_copy
+	store 4,mem_24g_addr
+	branch g24_init
+check_52cmd_stop24g:
+	jam P24G_SM_PAIRING_SUCC,mem_24g_pairing_sm
+	branch g24_uninit
+check_51_cmd_pairing_24g:
+	jam P24G_SM_PAIRING_REQUEST,mem_24g_pairing_sm
+	call g24_init
+	setarg -1
+	store 4,mem_24g_addr
+	branch g24_pairing_ch		//must change ch at last
+endif
+
+ui_check_paring_button:
+	fetch 1,mem_ui_state_map
+	rtnbit0 UI_STATE_BTN_DOWN
+	rtnbit0 UI_STATE_BT_RECONNECT
+	branch check_51cmd_bb_reconn_cancel
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/utility.prog
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/utility.prog	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/rom/utility.prog	(working copy)
@@ -0,0 +1,606 @@
+
+right_shift_n: //rshiftN pdata,pdata
+	sub loopcnt,0,null
+	rtn zero
+right_shift_n_loop: 
+	rshift pdata,pdata
+	loop right_shift_n_loop
+	rtn
+	
+push_stack:
+	deposit contw
+	store 2, mem_contw
+	storet 8,mem_temp
+	deposit timeup
+	store 4,mem_timeup
+	deposit rega
+	store 4, mem_rega
+	deposit regb
+	store 4, mem_regb
+	deposit regc
+	store 3, mem_regc
+	deposit contr
+	store 2, mem_contr
+	rtn
+pop_stack:
+	fetcht 8,mem_temp
+	fetch 4,mem_timeup
+	iforce timeup
+	fetch 4, mem_rega
+	iforce rega
+	fetch 4, mem_regb
+	iforce regb
+	fetch 3,mem_regc
+	iforce regc
+	fetch 2, mem_contw
+	iforce contw
+	fetch 2, mem_contr
+	iforce contr
+	rtn
+	
+get_contw:
+	fetch 2,mem_contw
+	copy pdata,contw
+	rtn
+get_contr:
+	fetch 2,mem_contr
+	copy pdata,contr
+	rtn
+store_contw:
+	copy contw,pdata
+	store 2,mem_contw
+	rtn
+store_contr:
+	copy contr,pdata
+	store 2,mem_contr
+	rtn	
+	
+
+//
+save_cont_pointers:
+	copy contw,pdata
+	store 2,mem_hold_contw
+	copy contr,pdata
+	store 2,mem_hold_contr
+	rtn
+load_cont_pointers:
+	fetch 2,mem_hold_contw
+	copy pdata,contw
+	fetch 2,mem_hold_contr
+	copy pdata,contr
+	rtn
+
+memcpy96:
+	call memcpy32
+memcpy64:
+	call memcpy32
+	branch memcpy32
+memcpy12:
+	call memcpy8
+memcpy4:
+	ifetch 4,contr
+	istore 4,contw
+	rtn	
+memcpy8:
+	ifetch 8,contr
+	istore 8,contw
+	rtn	
+
+memcpy48:
+	call memcpy16
+memcpy32:
+	call memcpy8
+memcpy24:
+	call memcpy8
+memcpy16:
+	call memcpy8
+	branch memcpy8
+
+
+
+delay_10ms:
+	copy clkn_bt,pdata
+	increase 16,pdata
+	increase 16,pdata
+delay_ms_wait:
+	copy clkn_bt,temp
+	isub temp,null
+	branch delay_ms_wait,positive
+	rtn
+
+bn_zero:
+	force 3,loopcnt
+memset0:
+	force 0,pdata
+memset8:
+	istore   8,contw
+	loop   memset8
+	rtn
+
+memset0_8:
+	force 0,pdata
+	istore 8,contw
+	rtn
+memset0_4:
+	force 0,pdata
+	istore 4,contw
+	rtn	
+	
+clear_mem_256:
+	force 4,loopcnt
+	branch memset0 
+clear_mem_512:
+	force 8,loopcnt
+	branch memset0 
+
+clear_mem:
+	deposit loopcnt
+	rtn blank
+	setarg 0
+clear_mem_loop:
+	istore 1,contw
+	loop clear_mem_loop
+	rtn
+	
+
+clear_temp_block:
+	arg 32,loopcnt
+	arg mem_temp_block0,contw
+	branch clear_mem
+	
+xor_loop:
+	ifetch   4,regc
+	ifetcht 4,rega
+	ixor     temp,pdata
+	istore   4,contw	
+	increase 4,rega
+	increase 4,regc
+	loop  xor_loop
+	rtn
+	
+// 11 22 -> 22 11; 11 22 33 -> 33 22 11 
+// rega:data addr ;loopnct:length
+inverse_data:
+	set1 mark_ext_patch,mark
+	bpatch patch3f_2,mem_patch3f
+	copy loopcnt,pdata
+	sub pdata,1,null
+	rtn positive
+	iadd rega,regb	
+	increase -1,regb
+	rshift loopcnt,loopcnt
+inverse_loop:
+	ifetcht 1,rega
+	ifetch 1,regb
+	istore 1,rega
+	istoret 1,regb
+	increase -1,regb
+	increase 1,rega
+	loop inverse_loop
+	rtn
+
+
+memcpy_fast:
+	deposit loopcnt
+	rtn blank
+memcpy_fast_loop:
+	increase -8,loopcnt
+	call memcpy8,positive
+	rtn zero
+	branch memcpy_fast_loop,positive
+	increase 8,loopcnt
+memcpy_fast_loop_four:
+	increase -4,loopcnt
+	call memcpy4,positive
+	rtn zero
+	branch memcpy_fast_loop_four,positive
+	increase 4,loopcnt
+	branch memcpy
+ 
+memcpy:
+	deposit loopcnt
+	rtn blank
+memcpy_loop:
+	ifetch 1,contr
+	istore 1,contw
+	loop memcpy_loop
+	rtn
+
+timer_stop:
+	setarg 0
+timer_init:
+	rshift clkn_bt,temp
+	storet 4,mem_last_clkn
+	arg mem_timers,contw
+	iforce temp
+	lshift queue,pdata
+	iadd contw,contw
+	istoret 2,contw
+	set1 mark_ext_patch,mark
+	bpatch patch3f_3,mem_patch3f
+	rtn
+
+timer_check_timeout:
+	arg 0x800,timeup
+	lshift16 timeup,timeup
+	iadd timeup,pdata
+	rtn
+
+
+timer_check:
+	set1 mark_ext_patch,mark
+	bpatch patch3f_4,mem_patch3f
+	fetcht 4,mem_last_clkn
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn	
+	isub temp,null
+	ncall timer_check_timeout,positive	
+	isub temp,timeup
+	copy timeup,temp
+	arg mem_timers,contr
+	copy contr,contw
+	arg 16,loopcnt
+timer_loop:
+	ifetch 2,contr
+	isub temp,pdata
+	branch timer_counting,positive
+	force 0,pdata
+timer_counting:
+	istore 2,contw
+	loop timer_loop	
+	arg mem_timers,contr
+	lshift queue,pdata
+	iadd contr,contr
+	ifetch 2,contr
+	rtn
+
+
+
+	/* pdata 28+16 bit add temp 26+16 bit, result in temp */
+clk_add:
+	iadd temp,temp
+	copy temp, loopcnt
+	setarg 3750
+	isub loopcnt,pdata
+	rtn positive
+	sub pdata,0,pdata
+	rshift16 temp,temp
+	increase 1,temp
+	lshift16 temp,temp
+	ior temp,temp
+	rtn
+
+clk_diff_rt:
+	call clk_diff
+	branch clk2rt
+
+/* pdata -temp -> pdata, all are 28+16 bits, set user if negative */
+clk_diff:
+	disable user
+	isub temp,pdata
+	branch clk_diff_pos,positive
+	enable user
+	sub pdata,0,pdata
+clk_diff_pos:
+	rtnbit0 15
+	arg -61786,temp
+	iadd temp,pdata
+	set0 64,pdata
+	rtn
+
+clk2rt:
+	iforce contr
+	rshift16 pdata,pdata
+	arg 3750,temp
+	imul32 temp,pdata
+	iadd contr,pdata
+	rtn
+
+	/* pdata = clks in, temp = lpo out */
+clk2lpo:
+	lshift8 pdata,pdata
+	lshift4 pdata,pdata
+	fetcht 3,mem_clks_per_lpo
+	idiv temp
+	call wait_div_end
+	quotient temp
+	rtn
+
+	/* rt clk -> bt+rt clk */
+clk2bt:
+	arg 3750,temp
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	lshift16 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+
+
+
+//input:contru 
+//output:temp
+//used register: temp regc
+string2dec_from_uart:
+	arg 0,temp
+string2dec_from_uart_done:
+         copy temp,regc
+	ifetch 1,contru
+	call uchar2dialog	
+	copy regc,temp
+	call swap
+	arg 10,regb
+	imul32 regb,pdata
+	iadd temp,pdata
+	copy pdata,temp
+	loop string2dec_from_uart_done
+	rtn
+	
+
+
+uchar2dialog:
+	arg 0x3a,temp
+	isub temp,null
+	nbranch uchar2dialog_number,positive
+	arg 0x61,temp
+	isub temp,null
+	branch uchar2dialog_a2f,positive
+	arg 0x37,temp
+	isub temp,pdata
+	rtn
+uchar2dialog_number:
+	arg 0x30,temp
+	isub temp,pdata
+	rtn
+uchar2dialog_a2f:
+	arg 0x57,temp
+	isub temp,pdata
+	rtn
+
+pn9:
+	copy temp,alarm
+	setarg 0x1ff
+	force 0,regb
+pn9_loop:	
+	rshift3 pdata,rega
+	rshift rega,rega
+	ixor rega,rega
+	isolate1 0,rega
+	setflag true,9,pdata
+	rshift temp,temp
+	isolate1 0,pdata
+	setflag true,7,temp
+	rshift pdata,pdata
+	increase 1,regb
+	compare 0,regb,0x7
+	nbranch pn9_loop,true
+	istoret 1,contw
+	loop pn9_loop
+	copy alarm,temp
+	rtn
+
+
+wait_div_end:	
+	rtn modone
+	branch wait_div_end
+
+
+
+
+//input:
+//	count:loopcnt str1:rega str2:regb
+//output:
+//	same:set falg true ,diff set falg false
+// using:
+//	reg:temp null flag:zero
+string_compare:
+	ifetch 1,rega
+	ifetcht 1,regb
+	isub temp,null
+	nrtn zero
+	increase 1,rega
+	increase 1,regb
+	loop string_compare
+	force 0,null
+	rtn
+
+	/* pdata = temp if pdata > temp */
+ceiling:
+	isub temp,null
+	nrtn positive
+	deposit temp
+	rtn
+	
+swap:
+	iadd temp,pdata
+	isub temp,temp
+	isub temp,pdata
+	rtn
+
+clean_mem:
+	arg 0x200,loopcnt
+	arg 0x4000,contw
+	branch memset0				// clear xram at boot
+/*
+slave_savelist:
+	fetch 5,mem_sync_clke
+	store 5,mem_pdatatemp
+	fetch 2,mem_clks_per_lpo
+	istore 2,contw
+	setarg 0
+	setflag match,7,pdata
+	setflag wake,6,pdata
+	setflag sync,5,pdata
+	setflag attempt,4,pdata
+	istore 1,contw
+	branch savelist_2
+
+
+le_savelist:
+	fetch 5,mem_sync_clke
+	store 5,mem_pdatatemp
+	fetch 1,mem_le_ch_mapped
+	istore 1,contw
+	fetch 2,mem_le_event_count
+	arg 0x0fff,contr
+	iand contr,pdata
+	setflag match,15,pdata
+	setflag wake,14,pdata
+	setflag sync,13,pdata
+	setflag attempt,12,pdata
+	istore 2,contw
+	branch savelist_2
+savelist:		
+	store 8,mem_pdatatemp
+savelist_2:
+	fetch 1,mem_seqi
+	rtneq 0x7f
+	and_into 0x7f,pdata
+	lshift3 pdata,pdata
+	arg mem_savelist,contw
+	iadd contw,contw
+	fetch 8,mem_pdatatemp
+	istore 8,contw
+	fetch 1,mem_seqi
+	isolate1 7,pdata
+	increase 1,pdata
+	and_into 0x7f,pdata
+	setflag true,7,pdata
+	store 1,mem_seqi
+	fetch 8,mem_pdatatemp
+	rtn	
+*/
+
+	//cb function ptr in pdata
+callback_func:
+	rtn blank
+	copy pdata,pc	//rtn through cb functon.
+	//branch assert
+
+wait_uarttx:
+	hfetch 2,core_uart_txitems
+	nbranch wait_uarttx,blank
+	rtn
+
+get_uart_rrptr:
+	hfetch 2,core_uart_rrptr
+	copy pdata,contru
+	rtn 
+
+
+ice_break:
+	hjam 0x1,core_ice_ctrl
+	rtn
+
+ice_setbp:
+	hstore 2,core_ice_break0
+	hfetch 1,core_ice_ctrl
+	set1 4,pdata
+	hstore 1,core_ice_ctrl
+	rtn
+ice_setbp2:
+	hstore 2,core_ice_break1
+	hfetch 1,core_ice_ctrl
+	set1 6,pdata
+	hstore 1,core_ice_ctrl
+	rtn
+	
+ice_set_write_bp:
+	hstore 2,core_ice_break0
+	hjam 0x30,core_ice_ctrl
+	rtn
+	
+
+
+test_enable_white:
+	hfetch 1,core_config
+	set0 whiteoff_bit,pdata
+	hstore 1,core_config			/* whitening on */
+	rtn
+
+check_uart_tx_buff:
+	hfetch 2,core_uart_txitems
+	arg UART_AIR_CONTROL_THRESHOLD,temp
+pdata_sub_temp:
+	isub temp,null
+	rtn
+
+	//fuction fifo_in
+	//rega pointer to fifo memory , *(rega+len) is the end of fifo
+	//mem_fifo_temp data into fifo
+	//assert if fifo was full
+fifo_in:
+	set1 mark_ext_patch,mark
+	bpatch patch3f_5,mem_patch3f
+	ifetcht UTIL_FIFO_LEN,rega
+	and temp,0xff,pdata
+	nbranch fifo_in_push,blank
+	rshift8 temp,pdata
+	istore UTIL_FIFO_LEN,rega
+fifo_in_push:
+	increase UTIL_FIFO_LEN+UTIL_FIFO_OFFSET,rega
+	ifetch 1,rega
+	nbranch assert,blank //fifo full
+	fetch 1,mem_fifo_temp
+	istore 1,rega
+	rtn
+	
+	//fuction fifo_out
+	//rega pointer to fifo memory
+	//pdata  data from fifo, blank mains fifo empty
+fifo_out:
+	set1 mark_ext_patch,mark
+	bpatch patch3f_6,mem_patch3f
+	arg UTIL_FIFO_LEN,loopcnt
+	ifetch UTIL_FIFO_LEN,rega
+	rtn blank
+fifo_out_loop:
+	ifetch 1,rega
+	nbranch fifo_out_end,blank
+	increase 1,rega
+	loop fifo_out_loop
+	branch assert
+fifo_out_end:
+	arg 0,temp
+	istoret 1,rega
+	rtn
+
+	//fuction fifo_is_empty
+	//rega pointer to fifo memory
+	//blank--- fifo is empty
+fifo_is_empty:
+	ifetch UTIL_FIFO_LEN,rega
+	rtn
+
+	//fuction fifo_is_full
+	//rega pointer to fifo memory
+	//blank--- fifo is NOT full
+fifo_is_full:
+	ifetch 1,rega
+	rtn
+	//rega pointer to fifo memory
+	//blank--- fifo is NOT near full
+fifo_is_near_full:
+	ifetch 2,rega
+	rtn
+
+	//rega pointer to fifo memory
+	//count output via pdata
+fifo_content_count:
+	arg 0,temp
+fifo_content_count_loop:
+	fetch 1,contr
+	loop fifo_content_count_loop,blank
+	increase 1,temp
+	loop fifo_content_count_loop
+	copy temp,pdata
+	rtn
+	
+not_greater_than:
+	isub temp,null
+	nrtn positive
+	copy temp,pdata
+	rtn
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/patch.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/patch.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/patch.dat	(working copy)
@@ -0,0 +1,85 @@
+mem_patch00:09
+mem_patch10:40
+mem_patch11:0c
+mem_patch14:80
+mem_patch15:13
+mem_patch16:f0
+mem_patch17:06
+mem_patch20:20
+mem_patch22:40
+mem_patch23:08
+mem_patch24:08
+mem_patch25:80
+mem_patch26:0e
+mem_patch27:f2
+mem_patch28:04
+mem_patch29:20
+mem_patch32:20
+mem_patch3e:88
+mem_patch3f:03
+
+##49   #mem_patch00	#49 enable HID
+##02   #mem_patch01	#02 enable HID
+##00   #mem_patch02
+##00   #mem_patch03
+##60   #mem_patch04	#60 enable HID
+##02   #mem_patch05	#02 enable HID
+##00   #mem_patch06
+##80   #mem_patch07	#80 enable HID
+##00   #mem_patch08
+##10   #mem_patch09	#10 enable HID
+##01   #mem_patch0A	#01 enable HID
+##00   #mem_patch0B
+##00   #mem_patch0C
+##00   #mem_patch0D
+##00   #mem_patch0E
+##00   #mem_patch0F
+##40   #mem_patch10
+##0c   #mem_patch11
+##00   #mem_patch12
+##00   #mem_patch13
+##80   #mem_patch14
+##13   #mem_patch15
+##f0   #mem_patch16
+##00   #mem_patch17
+##00   #mem_patch18
+##01   #mem_patch19	#01 enable HID
+##00   #mem_patch1A
+##00   #mem_patch1B
+##00   #mem_patch1C
+##00   #mem_patch1D
+##00   #mem_patch1E
+##00   #mem_patch1F
+##20   #mem_patch20
+##00   #mem_patch21
+##40   #mem_patch22
+##08   #mem_patch23
+##08   #mem_patch24
+##80   #mem_patch25
+##0e   #mem_patch26
+##d0   #mem_patch27
+##04   #mem_patch28
+##20   #mem_patch29
+##60   #mem_patch2A	#60 enable HID
+##41   #mem_patch2B	#41 enable HID
+##00   #mem_patch2C
+##00   #mem_patch2D
+##00   #mem_patch2E
+##00   #mem_patch2F
+##00   #mem_patch30
+##00   #mem_patch31
+##20   #mem_patch32
+##00   #mem_patch33
+##00   #mem_patch34
+##40   #mem_patch35	#40 enable HID
+##00   #mem_patch36
+##00   #mem_patch37
+##00   #mem_patch38
+##01   #mem_patch39	#01 enable HID
+##00   #mem_patch3A
+##00   #mem_patch3B
+##00   #mem_patch3C
+##00   #mem_patch3D
+##88   #mem_patch3E
+##03   #mem_patch3F
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/rf.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/rf.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/rf.dat	(working copy)
@@ -0,0 +1,35 @@
+mem_lpm_config:8f 1b ce
+mem_lpm_buckcnt:0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 04
+mem_rx_window_sniff:00 08
+mem_le_rx_window_inc:00 40
+
+mem_lmp_version: 09 59 00 B0 00    #04 0a 00 e9 12
+
+mem_eeprom_base:80 3f
+mem_eeprom_block_size:20
+
+mem_context_number:01
+
+mem_rf_init_data_new:
+# tx power
+55 d0
+56 c0
+57 4c
+58 3c
+59 50
+ff
+mem_rf_init_ptr:mem_rf_init_data_new
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/user.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/user.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/sched/user.dat	(working copy)
@@ -0,0 +1,820 @@
+
+#mem_class: 80 25 00
+#mem_lap:ab ab 66 63 5d 6c
+#mem_local_name_length:
+#'bt mouse
+#mem_sniff_param_interval:0c 00
+#mem_sniff_param_attempt:01
+#mem_sniff_param_timeout:01
+#mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+#mem_sp_iocap_local:03 00 04
+mem_ui_profile_supported:01
+
+#mem_eir_enable:01
+
+#mem_all_uuid_16bits:
+#06
+#03#Type: Complete list of 16-bit UUIDs
+#1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#mouse uuid
+#mem_device_uuid_list:
+#04 0011 0100 1002 1124
+#00 01 00 00
+#36 01 61
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#09
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#24
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#11
+#35
+#03
+#19
+#00
+#11
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#06
+#35
+#09
+#09
+#65
+#6e
+#09
+#00
+#6a
+#09
+#01
+#00
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#11
+#24
+#09
+#01
+#00
+#09
+#00
+#0d
+#35
+#0f
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#13
+#35
+#03
+#19
+#00
+#11
+#09
+#01
+#00
+#25
+#16
+#59 69 43 68 69 70#YiChip
+#20 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65
+#09
+#01
+#01
+#25
+#05
+#4d
+#6f
+#75
+#73
+#65
+#09
+#01
+#02
+#25
+#06
+#59 69 43 68 69 70#YiChip
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#01
+#11
+#09
+#02
+#02
+#08
+#80
+#09
+#02
+#03
+#08
+#21
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#28
+#01
+#09
+#02
+#06
+#35
+#81
+#35
+#7f
+#08
+#22
+#25
+#7b
+#05
+#01
+#09
+#02
+#a1
+#01
+#85
+#02
+#09
+#01
+#a1
+#00
+#05
+#09
+#19
+#01
+#29
+#08
+#15
+#00
+#25
+#01
+#75
+#01
+#95
+#08
+#81
+#02
+#05
+#01
+#09
+#30
+#09
+#31
+#16
+#01
+#f8
+#26
+#ff
+#07
+#75
+#10
+#95
+#02
+#81
+#06
+#09
+#38
+#15
+#81
+#25
+#7f
+#75
+#08
+#95
+#01
+#81
+#06
+#05
+#0c
+#0a
+#38
+#02
+#75
+#08
+#95
+#01
+#81
+#06
+#c0
+#c0
+#05
+#0c
+#09
+#01
+#a1
+#01
+#85
+#03
+#75
+#10
+#95
+#02
+#15
+#01
+#26
+#8c
+#02
+#19
+#01
+#2a
+#8c
+#02
+#81
+#60
+#c0
+#06
+#00
+#ff
+#09
+#01
+#a1
+#01
+#85
+#10
+#75
+#08
+#95
+#06
+#15
+#00
+#26
+#ff
+#00
+#09
+#01
+#81
+#00
+#09
+#01
+#91
+#00
+#c0
+#09
+#02
+#07
+#35
+#08
+#35
+#06
+#09
+#04
+#09
+#09
+#01
+#00
+#09
+#02
+#08
+#28
+#00
+#09
+#02
+#09
+#28
+#01
+#09
+#02
+#0a
+#28
+#01
+#09
+#02
+#0b
+#09
+#01
+#00
+#09
+#02
+#0c
+#09
+#0c
+#80
+#09
+#02
+#0d
+#28
+#00
+#09
+#02
+#0e
+#28
+#01
+#
+#04 1002 1200 0100 0001
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09 02 00#SpecificationID
+#09 01 03#DeviceID Spec Version:1.3
+#
+#09 02 01# VendorID
+#09 0a 5c#Unknown See http://www.bluetooth.org/assigned-number.htm
+#
+#09 02 02#ProductID
+#09 00 01#0x0001
+#
+#09 02 03#Version
+#09 01 29#Product Version:1.2.9
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#00
+#00
+#
+#01 00 01
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#05
+#ac
+#09
+#02
+#02
+#09
+#02
+#39
+#09
+#02
+#03
+#09
+#00
+#44
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#
+#03 1101 0003 0100 
+#00 01 00 02
+#36 00 2f
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#02
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#01
+#09
+#00
+#04
+#35
+#0c
+#35
+#03
+#19
+#01
+#00
+#35
+#05
+#19
+#00
+#03
+#08
+#01
+#09
+#01
+#00
+#25
+#09
+#53
+#50
+#50
+#20
+#73
+
+#mem_ui_uuid_table:mem_device_uuid_list
+#Auto reconnection after power on
+mem_device_option:42
+#mem_ptt:0
+#mem_features:
+#ff
+#ff
+#8f
+#f8	#fe--EDR  F8--BR
+#9b	#AFHclose 83
+#9d
+#51
+#82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+#2=mouse 4=dongle 6=ukey 7=ir
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:08
+mem_lpm_interval:00 00
+mem_scan_mode:00
+mem_ipc_tx_evt_buff:02 01
+
+mem_adc_config_flag:04
+mem_adc_channel:30
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+
+
+mem_le_adv_own_addr_type:00
+mem_le_adv_channel_map:07 
+mem_le_adv_filter_policy:00
+mem_le_transmit_window:50
+mem_le_notify_handle:1a
+mem_le_lap:ab b9 12 0e 10 26			#bluetooth MAC address
+mem_le_name_len:			#bluetooth name
+'BLE Mouse
+
+mem_le_local_mtu:17
+mem_le_adv_type:00
+mem_le_adv_direct_addr_type:01
+mem_le_adv_direct_addr:00 00 00 00 00 00
+mem_le_adv_enable:00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#appearance
+03 19 c2 03
+
+#uuid
+03 03 12 18
+
+#flag 
+02 01 05
+
+#name
+'\09BLE Mouse
+
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BLE Mouse
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_device_le_att_list:
+
+#Primary service GAP ------
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 0a
+03 00 02 00 2a
+'BLE Mouse
+
+#Appearance
+04 00 02 03 28 01 02
+05 00 02 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 02 00 28 02 01 18
+#Service changed
+09 00 02 03 28 01 20
+0a 00 02 05 2a 00
+#Client Characteristic Configuration
+0b 00 02 02 29 02 00 00
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#Manufacturer Name
+0d 00 02 03 28 01 02
+0e 00 02 29 2a 06 59 69 43 68 69 70
+#PNP id
+0f 00 02 03 28 01 02
+10 00 02 50 2a 07 02 35 12 22 aa 01 00
+#Primary service battery ------
+11 00 02 00 28 02 0f 18
+#Battery level
+12 00 02 03 28 01 02
+13 00 02 19 2a 01 33
+#Client Characteristic
+14 00 02 02 29 02 00 00
+
+#Primary service hid ------
+15 00 02 00 28 02 12 18
+
+#Protocol mode
+16 00 02 03 28 01 06
+17 00 02 4e 2a 01 01
+
+#Hid report
+18 00 02 03 28 01 1a
+19 00 02 4d 2a 07 00 00 00 00 00 00 00
+
+#Client Characteristic
+1a 00 02 02 29 02 00 00
+
+#Report reference
+1b 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Report map
+1c 00 02 03 28 01 0a
+1d 00 02 4b 2a 45 # length 72 bytes
+
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0).
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 f8 # Logical Minimum(-2047)
+26 ff 07 # Logical Maximum(2047)
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+05 0c # Usage Page(Consumer)
+0a 38 02 # Usage(AC Pan)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+c0 # End Collection
+c0 # End Collection
+
+#Boot mouse input report
+1e 00 02 03 28 01 1a
+1f 00 02 33 2a 08 00 00 00 00 00 00 00 00
+
+#Client Characteristic
+20 00 02 02 29 02 01 00
+
+#Hid information
+21 00 02 03 28 01 02
+22 00 02 4a 2a 04 01 01 00 03
+
+#Hid control point
+23 00 02 03 28 01 04
+24 00 02 4c 2a 00
+
+25 00 02 03 28 01 12 
+26 00 02 4d 2a 07 00 00 00 00 00 00 00 
+27 00 02 02 29 02 00 00
+28 00 02 08 29 02 11 01
+29 00 02 03 28 01 0e 
+2a 00 02 4d 2a 07 00 00 00 00 00 00 00
+2b 00 02 08 29 02 11 02
+
+#End of Attribute list
+00 00
+
+mem_ui_le_uuid_table:mem_device_le_att_list
+
+mem_le_rx_winsows:50
+
+mem_le_interal_min:
+07 00 #min interval
+07 00 #max interval
+05 00 #latency
+2c 01 #timeout
+
+mem_empty_count_user:00
+#mem_le_att_report1:13 00
+mem_le_att_report2:19 00
+mem_le_pairing_handle:22 00
+mem_le_pairing_mode:01
+mem_le_flag:01
+
+mem_tx_power:02#3dbm
+
+mem_le_start_fast_conn_count:01
+mem_le_init_eeprom_base_count:01
+
+#24g init
+mem_new_24g_mode:01#tx
+mem_new_24g_data_type:01	#mouse 1,kb 2
+mem_new_24g_max_retry:04#max tx retry
+mem_new_24g_no_ack:00#with ack
+mem_new_24g_rx_window:c0 12	#400us
+mem_new_24g_interval:19
+mem_new_24g_interval_min:19
+mem_new_24g_interval_max:1c
+mem_new_24g_ch_map1:00 13 2c 42
+mem_new_24g_ch_map2:06 15 36 48
+mem_new_24g_ch_map3:0f 1a 3a 4c
+mem_new_24g_ch_map4:11 23 31 4d
+mem_new_24g_pairing_sm:ff
+mem_new_24g_paring_addr:20 15 10 05
+mem_new_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_new_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 min
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/a1bugfix.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/a1bugfix.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/a1bugfix.pl	(working copy)
@@ -0,0 +1,81 @@
+#get sched ram content
+$add = 0;
+if(open file, "sched.rom") {
+	while(<file>) {
+		next if(/^#/);
+		s/#.*//g;
+		if(/^([a-z0-9_]+):(.*)/) {
+			push @dat, $1;
+			$_ = $2;
+		}
+		if(/^\'/) {
+			s/[\'\r\n]//g;
+			for($i = 0;$i < length($_);$i++) {
+				push @dat, ord(substr($_, $i, 1));
+			}
+		} else {
+			s/\s//g;
+			for($i = 0;$i < length($_);$i+=2) {
+				push @dat, hex(substr($_, $i, 2));
+			}
+		}
+	}
+	close file;
+}
+for($j = $k = $n = 0;$j < @dat;$j++) {
+	if($dat[$j] =~ /^mem_/ && $j > 0 || $n == 3) {
+		push @init, sprintf "\tsetarg 0x%x\n", $k;
+		push @init, sprintf "\tistore %d,contw\n", $n;
+		$n = $k = 0;
+	}
+	if($dat[$j] =~ /^mem_/) {
+		push @init, sprintf "\targ %s,contw\n", $dat[$j];
+	} else {
+		$k |= $dat[$j] << $n++*8;
+	}
+}
+push @init, sprintf "\tsetarg 0x%x\n", $k;
+push @init, sprintf "\tistore %d,contw\n", $n;
+
+open file,"eeprom.dat";
+for($i = 0;$i < 4;$i++) {
+	$_ = <file>;
+}
+close file;
+$len = int(((hex($_) + @init*4 + 12) & 0xff)/4);
+if($len > 0x3b) {
+	for($i = 0;$i < 0x40 - $len;$i++) { push @init, "\trtn\n"; }
+	$len = 0;
+}
+printf "len=%x\n", $len;
+
+open file, "bt_program23.list";
+while(<file>){
+	if(/^0x([0-9a-f]+)\s+([0-9]+)/)  {
+		$line = 0 + $2;
+		last if(hex($1) == $len);
+	}
+}
+close file;
+open file, "bt_program23.meta";
+@f = <file>;
+close file;
+
+
+open file, ">bt_program23.meta";
+for($i = 0;$i < @f;$i++) { 
+	$_ = $f[$i];
+	if($i == $line) {
+		printf file "\tbranch skip_a1bugfix_romdat\n";
+		printf file "\tromdat 0x00,0x00,0x55,0xaa\n";
+		printf file "\tromdat 0x00,0x08,0x90,0x01\n";
+		printf file "\tromdat 0xa0,0x74,0x01,0xf0\n";
+		printf file "\tromdat 0x80,0xfe,0x00,0x00\n";
+		printf file "skip_a1bugfix_romdat:\n";
+	}
+	print file $_;
+	if(/^init_sched:/) {
+		print file @init;
+	}
+}
+close file;
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/bytecnt.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/bytecnt.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/bytecnt.pl	(working copy)
@@ -0,0 +1,12 @@
+while(<stdin>) {
+	next if(/^#/);
+	s/#.*//g;
+	if(/^\'/) {
+		s/[\r\n]//g;
+		$len += length($_) - 1;
+	} else {
+		s/\s//g;
+		$len += length($_)/2;
+	}
+}
+printf "len = %x\n", $len;
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/crc16_ccitt.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/crc16_ccitt.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/crc16_ccitt.pl	(working copy)
@@ -0,0 +1,61 @@
+sub swap
+{
+	my($b) = @_;
+	my($i, $j);
+	for($i = 0, $j = 0;$i < 8;$i++) {
+		$j |= 1 << $i if($b & 1 << (7 - $i)); 
+	}
+	return $j;
+}
+
+@crc_tabccitt = ();
+$initd = 0;
+sub init_crcccitt_tab
+{
+	my($crc, $i, $c, $j);
+
+  for ($i=0; $i<256; $i++) {
+      $crc = 0;
+      $c   = $i << 8;
+      for ($j=0; $j<8; $j++) {
+          if ( ($crc ^ $c) & 0x8000 ) {	$crc = ( $crc << 1 ) ^ 0x1021;	}
+          else  { $crc =   $crc << 1; }
+          $c = $c << 1;
+      }
+      $crc_tabccitt[$i] = $crc & 0xffff;
+  }
+	$initd = 1;
+}
+
+sub crc16_ccitt 
+
+{
+	my($crc, $c) = @_;
+	my($tmp, $short_c);
+
+	init_crcccitt_tab() if(!$initd);
+  $short_c  = 0x00ff & $c;
+
+  $tmp = ($crc >> 8) ^ $short_c;
+  $crc = (($crc << 8) ^ $crc_tabccitt[$tmp]) & 0xffff;
+
+  return $crc;
+
+} 
+
+sub crc16_ccitt2
+{
+	my($crc, $c) = @_;
+
+  $crc  = ($crc >> 8) | ($crc << 8);
+  $crc ^= $c;
+  $crc ^= ($crc & 0xff) >> 4;
+  $crc ^= $crc << 12;
+  $crc ^= ($crc & 0xff) << 5;
+  $crc &= 0xffff;
+ return $crc;
+}
+
+init_crcccitt_tab();
+
+1;
\ No newline at end of file
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/define_info.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/define_info.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/define_info.pl	(working copy)
@@ -0,0 +1,55 @@
+use strict;
+use warnings;
+
+sub read_definfo{
+	my $filename = shift();
+	my $const_chip = "CHIP VERSION£º";
+	my $const_config = "CONFIG: ";
+	my $version = "";
+	my @res;
+	open(FILE,$filename) || die("can not open file:$filename £¡\n");
+	while(my $line = <FILE>){
+		next if ($line eq "\n"||$line =~ "REVD");
+		last if ($line =~ "INCLUDE");
+		last if ($line =~ "SIMPLE_PAIRING");
+		
+		if ($line =~ "FPGA" && $line !~ "//"){
+			$version = $version."FPGA";
+		}elsif($line =~ "ROMCODE" && $line !~ "//"){
+			$version = $version."ROMCODE";
+			print $const_chip.$version."\n\n";
+		}elsif($line !~ "//"){				# valid
+			if ($line =~"liandi"){
+				print "baud rate  : boot rate\n";
+				}
+			elsif ($line =~ "CREDIT"){
+				print "credit     : from mcu\n";
+				}
+			elsif ($line =~ "SSP_EXT"){
+				print "ssp confirm: suport\n";
+				}
+			elsif ($line =~ "NVRAM"){
+				print "nvram      : by mcu\n";
+			}elsif ($line=~"RELEASE"){
+				print "version    : release\n";
+			}
+		}elsif ($line =~ "//"){				#noted
+			if ($line =~"liandi"){
+				print "baud rate  : 115200 or other \n";
+				}
+			elsif ($line =~ "CREDIT"){
+				print "credit     : auto\n";
+				}
+			elsif ($line =~ "SSP_EXT"){
+				print "ssp confirm: justwork only\n";
+				}
+			elsif ($line =~ "NVRAM"){
+				print "nvram      : in eep\n";
+			}elsif ($line =~ "RELEASE"){
+				print "version    : debug\n";
+			}
+		}
+	}
+}
+
+&read_definfo("bt.prog");
\ No newline at end of file
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/gen_patch_h.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/gen_patch_h.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/gen_patch_h.pl	(working copy)
@@ -0,0 +1,135 @@
+#!/usr/bin/perl
+sub clear_print_buf{
+	for($i = 0; $i < 10; $i++){
+		$binData[$i] = 0;
+	}
+}
+
+sub print_line{
+	if($byte_cnt == 0){
+		#new line print header;
+		$offset = $patch_cmd_len * $line_cnt;
+		printf "{";
+		printf "0x%x%x, ", ($offset / 16 )     % 16, ($offset)       % 16;
+		printf "0x%x%x, ", ($offset / 4096)    % 16, ($offset / 256) % 16;
+		printf "0x%x%x, ", ($patch_cmd_len / 16) % 16, ($patch_cmd_len)  % 16;
+		$line_cnt ++;
+	}
+	printf "0x%s%s, 0x%s%s, 0x%s%s, 0x%s%s",$binData[0],$binData[1],$binData[2],$binData[3],$binData[4],$binData[5],$binData[6],$binData[7];
+	
+	$byte_cnt += 4;
+	if($byte_cnt >= $patch_cmd_len){
+		$byte_cnt = 0;
+		printf "},\n\t";
+	}else{
+		printf ", ";
+	}
+}
+
+################STATIC########################
+
+$patch_cmd_len = 96;
+$patch_cmd_header_len = 3;
+$patch_cmd_checksum_len = 1;
+
+################main fuction##################
+
+printf "/******************************************************************************\n";
+printf " ** File Name:      yc_patch_yc1021.h                                         *\n";
+printf " **                                                                           *\n";
+printf " ******************************************************************************\n";
+printf "\n";
+printf " ******************************************************************************\n";
+printf " **                               Edit History                                *\n";
+printf " ** ------------------------------------------------------------------------- *\n";
+printf " **     DATE          NAME             DESCRIPTION                            *\n";
+printf " **  2015.3.17       fan.kou            Create.                               *\n";
+printf " ******************************************************************************/\n";
+printf "/******************************************************************************/\n";
+printf "#ifndef _YC_PATCH_YC1021_H_2015_03_17_16_39_59_298_\n";
+printf "#define _YC_PATCH_YC1021_H_2015_03_17_16_39_59_298_\n";
+printf "\n";
+printf "/**---------------------------------------------------------------------------*\n";
+printf " **                             Dependencies                                  *\n";
+printf " **---------------------------------------------------------------------------*/\n";
+printf "/**---------------------------------------------------------------------------*\n";
+printf " **                            Compiler Flag                                  *\n";
+printf " **---------------------------------------------------------------------------*/\n";
+printf "#ifdef __cplusplus\n";
+printf "extern   \"C\" \n";
+printf "{\n";
+printf "#endif\n";
+printf "/**---------------------------------------------------------------------------*\n";
+printf " **                           Macros & Enums                                  *\n";
+printf " **---------------------------------------------------------------------------*/\n";
+
+open(FILE,"ramcode.rom") or die $!;
+$line_cnt = 0;
+while($line = <FILE>){
+	$line_cnt++;
+}
+$cmd_cnt = $line_cnt * 4 / $patch_cmd_len + (($line_cnt * 4 % $patch_cmd_len) > 0);
+close(FILE);
+
+printf "#define YC_PATCH_CMD_CNT %d\n",$cmd_cnt;
+printf "#define YC_PATCH_CMD_LEN %d\n",$patch_cmd_len + $patch_cmd_header_len + $patch_cmd_checksum_len;
+printf "#define YC_PATCH_ARRAY_LEN 0x20\n";
+printf "/**---------------------------------------------------------------------------*\n";
+printf " **                           Data Structures                                 *\n";
+printf " **---------------------------------------------------------------------------*/\n";
+printf "\n";
+printf "/**---------------------------------------------------------------------------*\n";
+printf " **                             Variables                                     *\n";
+printf " **---------------------------------------------------------------------------*/\n";
+printf "\n";
+
+printf "const uint8_t yc_patch_array[YC_PATCH_ARRAY_LEN] =\n";
+printf "{\n";
+printf "\t0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \n";
+printf "\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \n";
+printf "\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \n";
+printf "\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \n";
+printf("\n");
+printf("};\n");
+
+
+printf "const uint8_t yc_patch_cmd[YC_PATCH_CMD_CNT][YC_PATCH_CMD_LEN] =\n";
+printf "{\n\t";
+
+open(BINFILE,"ramcode.rom") or die $!;
+binmode (BINFILE);
+$byte_cnt = 0;
+$end_of_file = 0;
+$checksum = 0;
+$line_cnt = 0;
+while(!$end_of_file)
+{
+	for($i = 0; $i < 10; $i++){
+		if(!read(BINFILE, $binData[$i], 1)){
+			$end_of_file = 1;
+			if(i != 0){
+				printf "Error: Error at the end of file.";
+			}
+		}
+	}
+	if(!$end_of_file){
+		&print_line;
+	}
+}
+while($byte_cnt){
+	&clear_print_buf;
+	&print_line;
+}
+printf("\n");
+printf("};\n");
+printf "\n";
+printf "/**---------------------------------------------------------------------------*\n";
+printf " **                         Function Prototypes                               *\n";
+printf " **---------------------------------------------------------------------------*/\n";
+printf "\n";
+printf "#ifdef __cplusplus\n";
+printf "}\n";
+printf "#endif\n";
+printf "\n";
+printf "/******************************************************************************/\n";
+printf "#endif //#ifndef _YC_PATCH_YC1021_H_2015_03_17_16_39_59_298_\n";
\ No newline at end of file
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/geneep.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/geneep.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/geneep.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/hex2mif.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/hex2mif.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/hex2mif.pl	(working copy)
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+# 2005 - David Grant.
+# Take an ihex input from STDIN, and write a .mif file to STDOUT
+# This script could probably be implemented with something like:
+#    $#!@_%^$@%$@%$_!^$@#^@%$#@_%$@^&!%$_!%!%&$*(#^#@%^) 
+# But I perfer the somewhat readable version.
+
+# Flow from within the Nios2 SDK Shell:
+# nios2-elf-as file.asm -o file.o
+# nios2-elf-objcopy file.o --target ihex file.hex
+# cat file.hex | perl hex2mif.pl > file.mif
+
+my @rom = ();
+my @ram = ();
+
+sub conv {
+	my ($in) = @_;
+	$out = substr($in,6,2).substr($in,4,2).substr($in,2,2).substr($in,0,2);
+	return hex $out;
+}
+
+sub writeromfile {
+	my (@buf) = @_;
+	my($x);
+
+	for($x=0; $x<@buf; $x++) {
+		printf ("%02x\n", $buf[$x]);
+	}
+}
+
+sub writebinfile {
+	my (@buf) = @_;
+	my($x);
+
+	for($x=0; $x<@buf; $x++) {
+		for($y=0;$y<8;$y++) {
+			printf ("%d", $buf[$x] & 1<<(7-$y) ? 1 : 0);
+		}
+		printf "\n" if(($x & 3) == 3);
+	}
+}
+
+sub writemiffile {
+	my (@buf) = @_;
+	my($x);
+	print  ("WIDTH=8;\n");
+	print ("DEPTH=".@buf.";\n");
+	print ("CONTENT BEGIN\n");
+	for($x=0; $x<@buf; $x++) {
+		printf ("\t%04x : %02x;\n", $x, $buf[$x]);
+	}
+	print ("END;\n");
+}
+
+if($ARGV[0] eq "ram" || $ARGV[0] eq "rammif")
+{
+	$org = 0x8000;
+	$limit = 0xffff;
+} elsif($ARGV[0] eq "rom" || $ARGV[0] eq "bin" || $ARGV[0] eq "mif" || $ARGV[0] eq "rommif" ) {
+	$org = 0;
+	$limit = 0x7fff;
+} else {
+	$org = 0;
+	$limit = 0xffffff;
+}
+
+
+$org = 0;
+$limit = 0x7fff;
+
+while (<STDIN>) {
+	$l = $_;
+	next if(!/\w/);
+	$count = (hex substr($l, 1, 2));
+	$addr = (hex substr($l, 3, 4));
+	$type = (hex substr($l, 7, 2));
+	last if $type eq 1;
+	if($type == 4) {
+		$org = -(hex substr($l, 9, 4))*0x10000;
+	}
+	if($addr >= $org && $addr <= $limit) 
+	{
+		$addr*=4 if($ARGV[0] eq "bin");
+		$addr -= $org;
+		for($x=0; $x<$count; $x++) {
+			$rom[$addr + $x] = (hex substr($l, 9+2*$x, 2)) ; 
+		}
+	}
+}
+
+if($ARGV[0] eq "rom" || $ARGV[0] eq "ram" || $ARGV[0] eq "mem")
+{
+	writeromfile(@rom);
+}
+elsif($ARGV[0] eq "bin")
+{
+	writebinfile(@rom);
+}
+else
+{
+	writemiffile(@rom);
+}
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/ifdef.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/ifdef.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/ifdef.pl	(working copy)
@@ -0,0 +1,8 @@
+open file, "bt_program23.meta"
+@prog = <file>;
+close file;
+open file, "bt_format.meta"
+@fmt = <file>;
+close file;
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/memalloc.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/memalloc.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/memalloc.pl	(working copy)
@@ -0,0 +1,55 @@
+$path=$ARGV[0];
+open file, $path;
+@f = <file>;
+close file;
+open file, ">$path";
+$path =~ s/\/.*//;
+open file1, ">$path/memmap.format";
+$xaddr = 0x4000;
+$oaddr = $saddr = 0;
+for($i = 0;$i < @f;$i++) { 
+	$_ = $f[$i];
+	$start = 1 if(/^\s*memalloc\s*\(\s*$/);
+	$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);
+	$start = 3 if(/^\s*omemalloc\s*\(\s*$/);
+	if($start) {
+		if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+			if($start == 1) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$addr += $1;
+				$bstr .= $str;
+				$sstr .= $str;
+			} elsif($start == 2) {
+				$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
+				$xaddr += $1;
+				$xstr .= $str;
+			} else {
+				push @ostr, $_;
+			}
+		}
+		if(/^\s*\)\s*$/) {
+			$start = 0;
+			push @omalloc,[@ostr] if(@ostr > 0);
+			@ostr = ();
+		}
+	} else {
+		$sstr .= $_;
+	}
+}
+
+for($i = 0;$i <= $#omalloc;$i++) {
+	for($j = 0, $oaddr = $xaddr;$j <= $#{$omalloc[$i]};$j++) {
+		if($omalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+			$str = sprintf "0x%04x %s%s\n", $oaddr, $2, $3;
+			$oaddr += $1;
+			$xstr .= $str;
+		}
+	}
+	$xend = $oaddr if($oaddr > $xend);
+}
+print file $xstr, $sstr;
+print file1 $bstr, $xstr;
+close file;
+close file1;
+printf "\nLast allocated address is %04x\n", $addr;
+printf "\nLast allocated xmem address is %04x\n", $xend;
\ No newline at end of file
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/mergepatch.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/mergepatch.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/mergepatch.pl	(working copy)
@@ -0,0 +1,63 @@
+$defs = "";
+$fmt = 0;
+sub reva {
+	return $_ if($defs =~ /REV[CD]/ || $fmt);
+	if(/bmark([01])\s+([a-z0-9_]+)\s*,\s*([a-z0-9_]+)/) {
+		$ret = sprintf("\tisolate%d %s,mark\n\tbranch %s,true\n", $1, $2, $3);
+	}	elsif(/rtnmark([01])\s+([a-z0-9_]+)\s*/) {
+		$ret = sprintf("\tisolate%d %s,mark\n\trtn true\n", $1, $2);
+	} else {
+		$ret = $_;
+	}
+	return $ret if($defs =~ /REVB/);
+	if(/mul32\s+([a-z]+)\s*,\s*([a-z0-9_]+)\s*,\s*([a-z]+)/) {
+		$ret = sprintf("\tmult %s,%s\n\tnop 19\n\tproduct %s\n", $2, $1, $3);
+	}	elsif(/imul32\s+([a-z]+)\s*,\s*([a-z]+)/) {
+		$ret = sprintf("\timult %s\n\tnop 19\n\tproduct %s\n", $1, $2);
+	} else {
+		$ret = $_;
+	}
+	return $ret;
+}
+
+sub parseif {
+	my($fname) = @_;
+	open file, $fname;
+	@f = <file>;
+	close file;
+	open file, ">$fname";
+	@valid = (1);
+	for($i = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		$defs .= $1 . " " if(/^define\s+(\w+)\s*/);
+		if(/^ifdef\s+(\w+)\s*/) {
+			push @valid, ($defs =~ /$1 / ? 1 : 0) & $valid[$#valid];
+		} elsif(/^ifndef\s+(\w+)\s*/) {
+			push @valid, ($defs =~ /$1 / ? 0 : 1) & $valid[$#valid];
+		} elsif(/^else/) {
+			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
+			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
+		} elsif(/^endif/) {
+			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
+			pop @valid;
+		} elsif($valid[$#valid]) {
+			if(/^include\s+(.+)\s*/) {
+				open file2, "program/$1";
+				@f2 = <file2>;
+				close file2;
+				splice(@f, $i + 1, 0, @f2);
+			} else {
+				next if(/^\s*bpatch\s+/ && $defs !~ /ROMCODE/);
+				next if(/^\s*set[01] mark_ext_patch/ && $defs !~ /ROMCODE/);
+				print file reva($_);
+			}
+		}
+	}
+	close file;
+}
+
+parseif("output/bt_program23.meta");
+$fmt = 1;
+parseif("output/bt_format.meta");
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/rom2mif.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/rom2mif.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/rom2mif.pl	(working copy)
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+#perl hex2mif.pl <filename without ext> 
+
+
+$file0 = $file1 = $ARGV[0];
+$file1 =~ s/\.rom/.mif/;
+$wid = 8;
+
+
+
+print ("opening $file0\n");
+open(ifile, "$file0") || die("cannot find $file0 file\n");
+for($l = 0;$val = <ifile>;$l++)
+{
+	if($l == 0)
+	{
+		if(substr($val, 1, 1) !~ /[0-9a-fA-F]/) { $wid = 1; }
+		elsif(substr($val, 2, 1) !~ /[0-9a-fA-F]/) { $wid = 8; }
+		elsif(substr($val, 4, 1) !~ /[0-9a-fA-F]/) { $wid = 16; }
+		else { $wid = 32;	}
+	}
+}
+printf ("width is %d\n", $wid);
+printf ("totally %d words\n", $l);
+seek(ifile, 0, 0);
+open(ofile, ">$file1");
+printf ofile ("DEPTH = %d;\n", $wid == 1 ? $l/8 : $l);
+printf ofile ("WIDTH = %d;\n", $wid == 1 ? 8 : $wid);
+print ofile ("ADDRESS_RADIX = HEX;\n");
+print ofile ("DATA_RADIX = HEX;\n");
+print ofile ("CONTENT\n");
+print ofile ("BEGIN\n");
+for($l = 0, $val1 = 0;$val = <ifile>;$l++)
+{
+	$val =~ s/\n//g;
+	$val0 = hex(substr($val, 0, $wid == 1 ? 1 : $wid/4));
+	if($wid > 1) {
+		printf ofile ("%x : %x;\n", $l, $val0);
+	} elsif($l % 8 == 0 && $l > 0) {
+		printf ofile ("%x : %x;\n", $l/8 - 1, $val1);
+		$val1 = 0;
+	}
+	$val1 |= $val0 << ($l & 7);
+}
+if($wid == 1) { printf ofile ("%x : %x;\n", $l/8 - 1, $val1); }
+print ofile ("END;\n");
+
+close(ifile);
+close(ofile);
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/route.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/route.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/route.pl	(working copy)
@@ -0,0 +1,10 @@
+system("route print > 1");
+open file,"1";
+while(<file>) {
+	if(/^\s+0\.0\.0\.0\s+0\.0\.0\.0\s+([\.0-9]+)\s+([\.0-9]+)\s+1\s+$/) {
+		print "added route to " . $1;
+		system("route add 192.168.2.126 " .$1);
+		last;
+	}
+}
+close file;
\ No newline at end of file
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/setarg.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/setarg.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/setarg.pl	(working copy)
@@ -0,0 +1,100 @@
+@dat = @init = ();
+
+sub setarg {
+my ($j, $k, $n);
+for($j = $k = $n = 0;$j < @dat;$j++) {
+        if($dat[$j] =~ /^mem_/ && $j > 0 || $n == 3) {
+                push @init, sprintf "\tsetarg 0x%x\n", $k;
+                push @init, sprintf "\tistore %d,contw\n", $n;
+                $n = $k = 0;
+        }
+        if($dat[$j] =~ /^mem_/) {
+               push @init, sprintf "\targ %s,contw\n", $dat[$j];
+        } else {
+                $k |= $dat[$j] << $n++*8;
+        }
+}
+push @init, sprintf "\tsetarg 0x%x\n", $k;
+push @init, sprintf "\tistore %d,contw\n", $n;
+}
+
+sub setsect {
+my($i,$j,$k,$n);
+
+if($ARGV[1] eq "c51") {
+	push @init, sprintf "ifdef C51\ndownload_pdata:\n\tforce 9,loopcnt\ndownload_pdata_loop:\n\thstore 1,core_docd_pdata\n";
+	push @init, sprintf "\trshift8 pdata,pdata\n\tloop download_pdata_loop\n\trtn\n";
+	push @init, sprintf "download_c51:\n\thjam 5,core_docd_ctrl\n\tforce 0,pdata\n\thstore 2,core_docd_paddr\n";
+}
+for($i = $j = $k = $n = 0;$i < @dat + 2;$i++) {
+	if($i == @dat && $n == 0) {
+		push @init, sprintf "\tsetarg 0x%x\n", $k;
+		if($ARGV[1] eq "c51") {
+                	push @init, sprintf "\tcall download_pdata\n";
+		} else {
+			push @init, sprintf "\tistore %d,contw\n", ($j + 7)/8;
+		}
+		last;
+	}
+	if($i == @dat) {
+		$i = $i;
+	}
+	if($j > 18 || $i == @dat + 1) {
+		push @init, sprintf "\tsetsect %d,0x%x\n", $n,$k & 0x3ffff;
+		if($n == 3 || $i == @dat + 1) {
+			if($ARGV[1] eq "c51") {
+                		push @init, sprintf "\tcall download_pdata\n";
+			} else {
+                		push @init, sprintf "\tistore %d,contw\n", ($n*18 + ($j > 18 ? 18 : $j))/8;
+			}
+			$n = -1;
+		}
+		$k >>= 18;
+		$j -= 18;
+		$n++;
+	}
+	if($i < @dat) {
+		if($dat[$i] =~ /^mem_/) {
+		       push @init, sprintf "\targ %s,contw\n", $dat[$i];
+		} else {
+			$k |= $dat[$i] << $j;
+			$j += 8;
+		}
+	}
+}
+if($ARGV[1] eq "c51") {
+	push @init, sprintf "\thjam 3,core_docd_ctrl\n\trtn\nendif\n";
+}
+}
+
+if(@ARGV == 0) {
+	printf "missing file name\n";
+	exit;
+}
+if(open file, $ARGV[0]) {
+        while(<file>) {
+                next if(/^#/);
+                s/#.*//g;
+                if(/^([a-z0-9_]+):(.*)/) {
+                        push @dat, $1;
+                        $_ = $2;
+                }
+                if(/^\'/) {
+                        s/[\'\r\n]//g;
+                        for($i = 0;$i < length($_);$i++) {
+                                push @dat, ord(substr($_, $i, 1));
+                        }
+                } else {
+                        s/\s//g;
+                        for($i = 0;$i < length($_);$i+=2) {
+                                push @dat, hex(substr($_, $i, 2));
+                        }
+                }
+        }
+        close file;
+}
+
+setsect();
+
+print @init;
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/transform_memmap2btreg.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/transform_memmap2btreg.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/transform_memmap2btreg.pl	(working copy)
@@ -0,0 +1,45 @@
+$memmap_path=$ARGV[0];
+$memblocks_path=$ARGV[1];
+$btreg_path=$ARGV[2];
+open(btreg,">$btreg_path");
+print btreg ("");#reset file
+close(btreg);
+open(memmap,$memmap_path);
+open(memblocks,$memblocks_path);
+open(btreg,">>$btreg_path");
+@text = <memmap>;
+print btreg ("#ifndef _BT_REG_H_\n");
+print btreg ("#define _BT_REG_H_\n");
+foreach $text (@text){
+	@word = split (/[\t ]+/,$text);
+	$reg_addr = @word[0];
+	if ($reg_addr =~ /0x[0-9abcdef]*/){#Is 0x0000~0xffff
+		$word1 = @word[1];
+		@reg_name = split(/\/[\/\*]/,$word1);#delete // or /*  */
+		$reg_name = @reg_name[0];
+		$reg_name =~ s/[\r\n]//;#delete Carriage return
+		
+		printf btreg ("#define\t%-40s\t%s\n",$reg_name,$reg_addr);
+		#print btreg ("#define \t $reg_name \t\t\t $reg_addr \n");
+		#print btreg ("@word[1]\n");
+	}
+}
+@text = <memblocks>;
+foreach $text (@text){
+	@word = split (/[\t ]+/,$text);
+	$reg_addr = @word[0];
+	if ($reg_addr =~ /0x[0-9abcdef]*/){
+		$word1 = @word[1];
+		@reg_name = split(/\/[\/\*]/,$word1);
+		$reg_name = @reg_name[0];
+		$reg_name =~ s/[\r\n]//;
+		printf btreg ("#define\t%-40s\t%s\n",$reg_name,$reg_addr);
+		#print btreg ("#define \t $reg_name \t\t\t\t $reg_addr \n");
+		#print btreg ("@word[1]\n");
+	}
+}
+print btreg ("#endif\n");
+close(memblocks);
+close(memmap);
+close(btreg);
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/transform_name2addr.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/transform_name2addr.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/btms/util/transform_name2addr.pl	(working copy)
@@ -0,0 +1,103 @@
+$Sched_path=$ARGV[0];
+$Sched_test_path=$ARGV[1];
+$Memmap_path=$ARGV[2];
+open(Sched,$Sched_path)||die("Cannot open files\n");
+@sched=<Sched>;
+close(Sched);
+open(Sched_test,">$Sched_test_path");
+print Sched_test ("");
+close(Sched_test);
+open(Sched_test,">$Sched_test_path");
+open(Memmap,$Memmap_path)||die("Cannot open files\n");
+@memmap=<Memmap>;
+close(Memmap);
+$type_add=0;
+$type_exchange=0;
+foreach $sched(@sched)
+{
+	$sched_begin = $sched;
+	@Sched = split(/[#]+/, $sched);
+	$sched = @Sched[0];
+	@Sched[0] = "";
+	if($sched =~ /mem[\w]+/)
+	{
+		@memmap_name = split(/[\W]+/, $sched);
+		foreach $memmap_name(@memmap_name)
+		{
+			if($memmap_name =~ /mem[\w]+/)
+			{
+				$Memmap_name=$memmap_name;
+				$type_add = 0;
+				$type_exchange = 0;
+				if($sched =~ /$Memmap_name[+]/)
+				{
+					$type_add = 1;#ÐÞ¸ÄµÄÀàÐÍµÚÒ»ÖÖ£¬¼Ó
+					@ADD_Num=split(/[^0-9\+xa-fA-F]/,$sched);
+					foreach $ADD_Num(@ADD_Num)
+					{
+						if($ADD_Num =~ /\+/)
+						{
+							if($ADD_Num =~ /0x/)
+							{
+								@add_num = split(/\+0x/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = "0x".$add_num1;
+								$add_num = hex($add_num1);
+							}
+							else
+							{
+								@add_num = split(/\+/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = $add_num1;
+								$add_num = int($add_num1);
+							}
+						}#$add_numÊÇÆ¥Åä³öµÄÐèÒª¼ÓµÄÊýÖµ£¬×Ö·û´®ÐÎÊ½
+					}
+				}
+				if($sched =~ /[:] *\t*$Memmap_name/)
+				{
+					$type_exchange = 1;#ÐÞ¸ÄµÄÀàÐÍµÚ¶þÖÖ£¬¸ßµÍÎ»½»»»
+				}
+				foreach $memmap(@memmap)
+				{
+					if($memmap =~ /$Memmap_name/ && $memmap !~ /$Memmap_name[\w]+/)
+					{
+						@Memmap=split(/[ \t\n]/,$memmap);
+						$memmap_address=@Memmap[0];
+						$memmap_address =~ s/0x//;
+						if($type_add==1)
+						{
+							$memmap_address_D = hex($memmap_address);
+							$memmap_address_D = $memmap_address_D+$add_num;
+							$memmap_address_H = sprintf("%x", $memmap_address_D);
+							$memmap_address = $memmap_address_H;
+							$memmap_address_add_finish = $memmap_address;
+							$sched_begin =~ s/$Memmap_name\+$add_num_begin/$memmap_address/;
+						}
+						if($type_exchange==1)
+						{
+							$memmap_address_High = substr($memmap_address,0,2);
+							$memmap_address_Low = substr($memmap_address,2,2);
+							$memmap_address = $memmap_address_Low." ".$memmap_address_High;
+							if($type_add==0)
+							{
+								$sched_begin =~ s/$Memmap_name/$memmap_address/;
+							}
+							else
+							{
+								$sched_begin =~ s/$memmap_address_add_finish/$memmap_address/;
+							}
+						}
+					}
+				}
+				$sched_begin =~ s/$Memmap_name/$memmap_address/;
+			}
+		}
+		printf Sched_test ("%s",$sched_begin);
+	}
+	else
+	{
+		printf Sched_test ("%s",$sched_begin);
+	}	
+}
+close(Sched_test);
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Makefile
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Makefile	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Makefile	(working copy)
@@ -0,0 +1,112 @@
+	comma:= ,
+empty:=
+space:= $(empty) $(empty)
+bracketl:= (
+bracketl0:= \(
+bracketr:= )
+bracketr0:= \)
+
+
+OUTDIR = output
+ROOT_PATH =C:\Keil
+
+UTIL_PATH = ..\rom\util
+
+C51BIN = $(ROOT_PATH)\c51\bin
+C51   = $(C51BIN)\c51
+A51   = $(C51BIN)\ax51
+BL51  = $(C51BIN)\lx51
+OH51  = $(C51BIN)\Ohx51
+OC51  = $(C51BIN)\oc51
+LIB51 = $(C51BIN)\libx51
+
+TARGET = $(OUTDIR)\fw
+TARGETHEX = $(TARGET).hex
+
+
+RAMTARGET = $(OUTDIR)\fwram
+
+RAMTARGETHEX = $(addsuffix .hex, $(RAMTARGET))
+
+############################## IMPORTANT ####################################
+#   opt level greater than 7 cannot be used, or the ram code and the rom code will be different
+##############################################################################
+OPT_LEVEL=7
+
+LIST_FILE_CTL=PR($(@:obj=lst))
+
+C_OPTS = object($@) OBJECTADVANCED  browse DF(ENABLE_APE) $(LIST_FILE_CTL) \
+OT($(OPT_LEVEL),SPEED) large
+
+#ASM_OPTS =  $(LIST_FILE_CTL) object($@)
+ASM_OPTS = SET (large) DEBUG EP $(LIST_FILE_CTL) object($@)
+
+LINK_OPTS = \
+	CLASSES (XDATA (X:0x1a00-X:0x1dFF),\
+	CODE(C:0-C:0xffff), DATA(D:0x10-0x7f), IDATA(I:0x80-0xcf)) \
+	SEGMENTS($(DATA_MAP)) \
+	NOOVERLAY \
+	PAGELENGTH(60000) \
+	CODE
+
+DATA_MAP = ?STACK(D:0xD0)
+CODE_MAP = ?PR?RAMENTRY?JUMPTABLE(C:0x0), ?PR?*, ?C*
+
+#LINK_OBJ_RAM =ram global_variable sys utilities gpio spi iic ipc uart adc keyscan sensor
+LINK_OBJ_RAM =ram  sys utilities gpio spi iic ipc adc global_variable Sensor
+
+LINK_OBJ_TMP_RAM = $(addsuffix .obj,$(LINK_OBJ_RAM)) 
+#..\patch\sensor.obj 
+LINK_OBJ_DEPENDENCIES_RAM = $(addprefix $(OUTDIR)/, $(LINK_OBJ_TMP_RAM))
+LINK_OBJ_FILES_RAM = $(subst $(space),$(comma),$(LINK_OBJ_DEPENDENCIES_RAM))
+
+LINK_OBJ_TMP_ROM = $(addsuffix .obj,$(LINK_OBJ_ROM))
+LINK_OBJ_DEPENDENCIES_ROM = $(addprefix $(OUTDIR)/, $(LINK_OBJ_TMP_ROM))
+LINK_OBJ_FILES_ROM = $(subst $(space),$(comma),$(LINK_OBJ_DEPENDENCIES_ROM))
+
+
+.SUFFIXES: .a51
+RAM_BIN = $(RAMTARGET).rom
+
+
+PROG_FILE = ..\rom\program\c51.prog
+RAM_FILES = $(RAM_MIF) $(RAM_BIN) $(EEPROM_FILE) $(PROG_FILE)
+
+$(OUTDIR)/%.obj : %.c hwreg.h
+	$(C51) $< "$(C_OPTS)"
+
+$(OUTDIR)/%.obj : %.a51
+	$(A51) $< "$(ASM_OPTS)"
+
+all : $(RAM_FILES) 
+
+
+$(TARGET) : $(LINK_OBJ_DEPENDENCIES_RAM)
+	$(BL51) $(LINK_OBJ_FILES_RAM) TO $@ "$(LINK_OPTS)"
+
+$(TARGETHEX) : $(TARGET)
+	$(OH51) $(TARGET)
+
+
+$(RAM_BIN) : $(TARGETHEX)
+
+
+$(RAM_MIF) : $(TARGETHEX)
+#	perl $(UTIL_PATH)\hex2mif.pl < $< rammif > $@
+	$(UTIL_PATH)\hex2mif.exe < $< rammif > $@
+
+$(EEPROM_FILE) : $(RAM_BIN)
+	cd ..\rom\output; ..\util\geneep.exe; cp eeprom.dat ..\..\sim 
+
+$(PROG_FILE) : $(RAM_BIN)
+#	perl $(UTIL_PATH)\setarg.pl $< c51 > $@
+
+clean:  
+	del /Q $(OUTDIR)\*.* 
+
+
+lib:
+	$(LIB51) TRANSFER $(OUTDIR)\ipc.obj TO $(OUTDIR)\yichip.LIB
+	
+ext:
+	$(LIB51) EXTRACT $(OUTDIR)\yichip.LIB (ipc) TO $(OUTDIR)\ipc.obj
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Peripheral.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Peripheral.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Peripheral.h	(working copy)
@@ -0,0 +1,36 @@
+#ifndef _YC_PERIPHERAL_H_
+#define _YC_PERIPHERAL_H_
+#include "common.h"
+
+#define HID_REPORTID_MS 	1
+#define MOUSE_BUTTON_LRM 	7
+#define SLEEP_TIMER					300
+#define MOUSE_24G_PAIR_TIME			30
+
+#define KS_BL_GPIO	0x04
+#define KS_BM_GPIO	0x17
+#define KS_BR_GPIO	0x1b
+#define KS_BK_GPIO	0x17
+#define KS_FW_GPIO	0x04
+#define CPI_GPIO		0x06
+#define Timer_div_io		0x07
+#define SENSOR_MOTION_GPIO 0x18
+#define SENSOR_DIRECTION_GPIO_CHOICE 0x12
+
+#define LOWPOWER_GPIO_CHOICE 0x13
+#define WHEEL_DATA_A_GPIO 0x02
+#define WHEEL_DATA_B_GPIO 0x03
+#define LED_GPIO 	0x08
+
+
+#endif
+
+
+
+
+
+
+
+
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Peripheral.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Peripheral.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/Peripheral.c	(working copy)
@@ -0,0 +1 @@
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/REG320.H
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/REG320.H	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/REG320.H	(working copy)
@@ -0,0 +1,174 @@
+/*--------------------------------------------------------------------------
+REG320.H
+
+Header file for DS80C320/DS80C323.
+Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
+All rights reserved.
+--------------------------------------------------------------------------*/
+
+#ifndef __REG320_H__
+#define __REG320_H__
+
+/*  BYTE Registers  */
+sfr P0     = 0x80;
+sfr P1     = 0x90;
+sfr P2     = 0xA0;
+sfr P3     = 0xB0;
+sfr PSW    = 0xD0;
+sfr ACC    = 0xE0;
+sfr B      = 0xF0;
+sfr SP     = 0x81;
+sfr DPL    = 0x82;
+sfr DPH    = 0x83;
+sfr PCON   = 0x87;
+sfr TCON   = 0x88;
+sfr TMOD   = 0x89;
+sfr TL0    = 0x8A;
+sfr TL1    = 0x8B;
+sfr TH0    = 0x8C;
+sfr TH1    = 0x8D;
+sfr IE     = 0xA8;
+sfr IP     = 0xB8;
+sfr SCON0  = 0x98;
+sfr SBUF0  = 0x99;
+
+/*  DS80C320 Extensions  */
+sfr DPL1   = 0x84;
+sfr DPH1   = 0x85;
+sfr DPS    = 0x86;
+sfr CKCON  = 0x8E;
+sfr EXIF   = 0x91;
+sfr SADDR0 = 0xA9;
+sfr SADDR1 = 0xAA;
+sfr SADEN0 = 0xB9;
+sfr SADEN1 = 0xBA;
+sfr SCON1  = 0xC0;
+sfr SBUF1  = 0xC1;
+sfr STATUS = 0xC5;
+sfr TA     = 0xC7;
+sfr T2CON  = 0xC8;
+sfr T2MOD  = 0xC9;
+sfr RCAP2L = 0xCA;
+sfr RCAP2H = 0xCB;
+sfr TL2    = 0xCC;
+sfr TH2    = 0xCD;
+sfr WDCON  = 0xD8;
+sfr EIE    = 0xE8;
+sfr EIP    = 0xF8;
+
+/*  BIT Registers  */
+/*  PSW */
+sbit CY    = PSW^7;
+sbit AC    = PSW^6;
+sbit F0    = PSW^5;
+sbit RS1   = PSW^4;
+sbit RS0   = PSW^3;
+sbit OV    = PSW^2;
+sbit FL    = PSW^1;
+sbit F1    = PSW^1;
+sbit P     = PSW^0;
+
+/*  TCON  */
+sbit TF1   = TCON^7;
+sbit TR1   = TCON^6;
+sbit TF0   = TCON^5;
+sbit TR0   = TCON^4;
+sbit IE1   = TCON^3;
+sbit IT1   = TCON^2;
+sbit IE0   = TCON^1;
+sbit IT0   = TCON^0;
+
+/*  IE  */
+sbit EA    = IE^7;
+sbit ES1   = IE^6;
+sbit ET2   = IE^5;
+sbit ES0   = IE^4;
+sbit ET1   = IE^3;
+sbit EX1   = IE^2;
+sbit ET0   = IE^1;
+sbit EX0   = IE^0;
+
+/*  IP  */
+sbit PS1   = IP^6;
+sbit PT2   = IP^5;
+sbit PS0   = IP^4;
+sbit PT1   = IP^3;
+sbit PX1   = IP^2;
+sbit PT0   = IP^1;
+sbit PX0   = IP^0;
+
+/*  P1  */
+sbit INT5  = P1^7;
+sbit INT4  = P1^6;
+sbit INT3  = P1^5;
+sbit INT2  = P1^4;
+sbit TXD1  = P1^3;
+sbit RXD1  = P1^2;
+sbit T2EX  = P1^1;
+sbit T2    = P1^0;
+
+/*  P3  */
+sbit RD    = P3^7;
+sbit WR    = P3^6;
+sbit T1    = P3^5;
+sbit T0    = P3^4;
+sbit INT1  = P3^3;
+sbit INT0  = P3^2;
+sbit TXD0  = P3^1;
+sbit RXD0  = P3^0;
+
+/*  SCON0  */
+sbit SM0   = SCON0^7; /* alternative SM0_FE_0 */
+sbit SM1   = SCON0^6; /* alternative SM1_0 */
+sbit SM2   = SCON0^5; /* alternative SM2_0 */
+sbit REN   = SCON0^4; /* alternative REN_0 */
+sbit TB8   = SCON0^3; /* alternative TB8_0 */
+sbit RB8   = SCON0^2; /* alternative RB8_0 */
+sbit TI    = SCON0^1; /* alternative TI_0  */
+sbit RI    = SCON0^0; /* alternative RI_0  */
+
+/*  SCON1  */
+sbit SM01  = SCON1^7; /* alternative SM0_FE_1  */
+sbit SM11  = SCON1^6; /* alternative SM1_1  */
+sbit SM21  = SCON1^5; /* alternative SM2_1  */
+sbit REN1  = SCON1^4; /* alternative REN_1  */
+sbit TB81  = SCON1^3; /* alternative TB8_1  */
+sbit RB81  = SCON1^2; /* alternative RB8_1  */
+sbit TI1   = SCON1^1; /* alternative TI_1   */
+sbit RI1   = SCON1^0; /* alternative RI_1   */
+
+/*  T2CON  */
+sbit TF2    = T2CON^7;
+sbit EXF2   = T2CON^6;
+sbit RCLK   = T2CON^5;
+sbit TCLK   = T2CON^4;
+sbit EXEN2  = T2CON^3;
+sbit TR2    = T2CON^2;
+sbit C_T2   = T2CON^1;
+sbit CP_RL2 = T2CON^0;
+
+/*  WDCON  */
+sbit SMOD_1 = WDCON^7;
+sbit POR    = WDCON^6;
+sbit EPFI   = WDCON^5;
+sbit PFI    = WDCON^4;
+sbit WDIF   = WDCON^3;
+sbit WTRF   = WDCON^2;
+sbit EWT    = WDCON^1;
+sbit RWT    = WDCON^0;
+
+/*  EIE  */
+sbit EWDI  = EIE^4;
+sbit EX5   = EIE^3;
+sbit EX4   = EIE^2;
+sbit EX3   = EIE^1;
+sbit EX2   = EIE^0;
+
+/*  EIP  */
+sbit PWDI  = EIP^4;
+sbit PX5   = EIP^3;
+sbit PX4   = EIP^2;
+sbit PX3   = EIP^1;
+sbit PX2   = EIP^0;
+
+#endif
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/YichipTool.bat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/YichipTool.bat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/YichipTool.bat	(working copy)
@@ -0,0 +1,63 @@
+@echo off
+:start
+set/p cmd=Please enter cmd, c/C for compiling, and d/D for downloading:
+if /I "%cmd%" equ "a" (goto compile_all)
+if /I "%cmd%" equ "A" (goto compile_all)
+if /I "%cmd%" equ "c" (goto compile)
+if /I "%cmd%" equ "C" (goto compile)
+if /I "%cmd%" equ "d" (goto download)
+if /I "%cmd%" equ "D" (goto download)
+if "%cmd%" equ "" (goto error)  else (goto error)
+
+:compile_all
+cd ..\btms
+call do eep
+cd ..\c51
+
+:compile
+make clean
+make
+
+util\hex2mif.exe < output\fw.hex ram > output\fwram.rom
+copy .\patch\patch.dat + .\patch\user.dat + .\patch\rf.dat .\patch\sch.rom 
+util\transform_name2addr.exe .\patch\sch.rom .\output\sched.rom .\patch\memmap.format
+copy .\patch\ramcode.rom .\output\
+copy .\patch\geneep.exe .\output\
+@rem copy .\patch\*.obj .\output\*.obj
+
+copy .\util\eeprom2fulleeprom.exe .\eeprom2fulleeprom.exe
+copy .\util\crc16.exe .\crc16.exe
+
+cd output
+geneep geneep ramcode.rom fwram.rom sched.rom
+del *.lst
+del *.obj
+
+copy eeprom.dat ..\eeprom.dat
+cd ..
+eeprom2fulleeprom.exe eeprom.dat 128>compare2.dat
+crc16.exe compare2.dat 2 >.\output\eeprom.dat
+del eeprom.dat
+del compare2.dat
+del eeprom2fulleeprom.exe
+del crc16.exe
+
+:end
+set cmd=0
+echo/
+goto start
+
+:error
+echo Cmd error, enter again
+goto end
+
+:download
+e p
+e pu
+e ep
+e k
+e ku
+e a
+e au
+goto end
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/adc.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/adc.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/adc.h	(working copy)
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+ 
+ /** @file
+ *
+ * IIC support for application
+ */
+#ifndef __DEV_ADC_H_
+#define __DEV_ADC_H_
+#include "type.h"
+#include "btreg.h"
+#include "hwreg.h"
+
+/**
+ * This function Get current ADC Value.
+ * 
+ * @param none.
+ * 
+ * @return adc value.
+*/
+u16_t ADC_GetCurrentValue();
+
+/**
+ * This function Get 3v base ADC Value.
+ * 
+ * @param none.
+ * 
+ * @return adc value.
+*/
+u16_t ADC_Get3vBase();
+
+/**
+ * This function Get 0v base ADC Value.
+ * 
+ * @param none.
+ * 
+ * @return adc value.
+*/
+u16_t ADC_Get0vBase();
+
+#endif/* YC_IIC_H */
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/adc.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/adc.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/adc.c	(working copy)
@@ -0,0 +1,17 @@
+#include "adc.h"
+#include "global_variable.h"
+
+u16_t ADC_GetCurrentValue()
+{
+	return m_adcCurrentValue;
+}
+
+u16_t ADC_Get3vBase()
+{
+	return m_adc3vValue;
+}
+
+u16_t ADC_Get0vBase()
+{
+	return m_adc0vBase;
+}
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/btreg.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/btreg.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/btreg.h	(working copy)
@@ -0,0 +1,1497 @@
+#ifndef _BT_REG_H_
+#define _BT_REG_H_
+#define	mem_le_adv_transmit                     	0x0000
+#define	mem_le_adv_waitcnt                      	0x0001
+#define	mem_le_adv_rcv                          	0x0002
+#define	mem_le_req_rcv                          	0x0003
+#define	mem_le_scanrsp_rcv                      	0x0004
+#define	mem_le_conn_rcv                         	0x0005
+#define	mem_inquiryscan_waitcnt                 	0x0006
+#define	mem_inquiryscan_rcvcnt                  	0x0007
+#define	mem_pagescan_waitcnt                    	0x0008
+#define	mem_pagescan_rcvcnt                     	0x0009
+#define	mem_pagescan_rcvfhscnt                  	0x000a
+#define	mem_slave_rcvcnt                        	0x000b
+#define	mem_page_transmit                       	0x000c
+#define	mem_page_rcv                            	0x000d
+#define	mem_page_rcv_fhs                        	0x000e
+#define	mem_master_rcvcnt                       	0x000f
+#define	mem_fhs_wait_counter                    	0x0010
+#define	mem_newconnto_counter                   	0x0011
+#define	mem_inquiry_transmit                    	0x0012
+#define	mem_inquiry_rcv                         	0x0013
+#define	mem_fw_ver                              	0x0014
+#define	mem_current_context                     	0x0015
+#define	mem_le_ch_mapped                        	0x0016
+#define	mem_last_freq                           	0x0017
+#define	mem_rssi                                	0x0018
+#define	mem_rx_type                             	0x0019
+#define	mem_rx_hec_err                          	0x001a
+#define	mem_rx_crc_err                          	0x001c
+#define	mem_context_ptr                         	0x001e
+#define	mem_display                             	0x0020
+#define	mem_bcd                                 	0x0028
+#define	mem_state                               	0x0030
+#define	mem_mode                                	0x0031
+#define	mem_tsniff                              	0x0032
+#define	mem_sniff_anchor                        	0x0034
+#define	mem_clk_offset                          	0x0038
+#define	mem_rx_window                           	0x003e
+#define	mem_plap                                	0x0040
+#define	mem_puap                                	0x0043
+#define	mem_pnap                                	0x0044
+#define	mem_conn_handle                         	0x0046
+#define	mem_arq                                 	0x0047
+#define	mem_lmp_to_send                         	0x0048
+#define	mem_lmi_opcode                          	0x0049
+#define	mem_lmo_reason                          	0x004a
+#define	mem_op                                  	0x004b
+#define	mem_state_map                           	0x004c
+#define	mem_supervision_timer                   	0x004d
+#define	mem_supervision_to                      	0x0051
+#define	mem_name_offset                         	0x0053
+#define	mem_key_size                            	0x0054
+#define	mem_conn_sm                             	0x0055
+#define	mem_aco                                 	0x0056
+#define	mem_kc                                  	0x0062
+#define	mem_conn_timer                          	0x0072
+#define	mem_sniff_attempt                       	0x0073
+#define	mem_sniff_timeout                       	0x0074
+#define	mem_dsniff                              	0x0075
+#define	mem_amaddr                              	0x0077
+#define	mem_lmo_opcode1                         	0x0078
+#define	mem_lmi_opcode1                         	0x0079
+#define	mem_lmo_reason1                         	0x007a
+#define	mem_lmo_tid1                            	0x007b
+#define	mem_lmo_opcode2                         	0x007c
+#define	mem_lmi_opcode2                         	0x007d
+#define	mem_lmo_reason2                         	0x007e
+#define	mem_lmo_tid2                            	0x007f
+#define	mem_hci_version                         	0x0080
+#define	mem_acl_pktlen                          	0x0083
+#define	mem_sco_pktlen                          	0x0085
+#define	mem_acl_pktcnt                          	0x0086
+#define	mem_sco_pktcnt                          	0x0088
+#define	mem_current_sniff_attempt               	0x008a
+#define	mem_current_sniff_timeout               	0x008b
+#define	mem_nfreq_index_inq                     	0x008c
+#define	mem_nfreq_index_page                    	0x008d
+#define	mem_ninqy_index                         	0x008e
+#define	mem_fhs_misc                            	0x008f
+#define	mem_subsniff_instant                    	0x0090
+#define	mem_subsniff_rate                       	0x0094
+#define	mem_subsniff_tcmax                      	0x0095
+#define	mem_subsniff_tsniff                     	0x0097
+#define	mem_lpm_adjust                          	0x0098
+#define	mem_sync_clke                           	0x0099
+#define	mem_lpm_current_mult                    	0x009f
+#define	mem_gpio_wakeup_low                     	0x00a0
+#define	mem_gpio_wakeup_high                    	0x00a4
+#define	mem_air_mode                            	0x00a8
+#define	mem_sco_asso_handle                     	0x00a9
+#define	mem_sco_handle                          	0x00aa
+#define	mem_esco_desco                          	0x00ac
+#define	mem_esco_type                           	0x00ad
+#define	mem_neogotiation_state                  	0x00ae
+#define	mem_saved_amaddr                        	0x00af
+#define	mem_esco_arq                            	0x00b0
+#define	mem_esco_saved_arq                      	0x00b1
+#define	mem_sco_obuf                            	0x00b2
+#define	mem_sco_ibuf                            	0x00d0
+#define	mem_sco_poll                            	0x00ee
+#define	mem_npage_index                         	0x00ef
+#define	mem_page_mode                           	0x00f0
+#define	mem_page_clk                            	0x00f1
+#define	mem_tst_pktcnt_sync                     	0x00f5
+#define	mem_tst_pktcnt_hec                      	0x00f7
+#define	mem_tst_pktcnt_crc                      	0x00f9
+#define	mem_tst_pktcnt_dmh                      	0x00fb
+#define	mem_tmp_buffer_head                     	0x00fd
+#define	mem_tmp_buffer                          	0x0100
+#define	mem_tester_emulate                      	0x0150
+#define	mem_temp_payload                        	0x0151
+#define	test_mode_scenario                      	0x0151
+#define	test_mode_hopping_mode                  	0x0152
+#define	test_mode_tx_freq                       	0x0153
+#define	test_mode_rx_freq                       	0x0154
+#define	test_mode_power_mode                    	0x0155
+#define	test_mode_poll_period                   	0x0156
+#define	test_mode_packet_type                   	0x0157
+#define	test_mode_data_length                   	0x0158
+#define	mem_test_mode_old_debug_config          	0x015a
+#define	mem_tester_cnt                          	0x015b
+#define	mem_temp_am_addr                        	0x015c
+#define	mem_temp_arq                            	0x015d
+#define	mem_len                                 	0x015e
+#define	mem_clkn_bt                             	0x0160
+#define	mem_clke_bt                             	0x0164
+#define	mem_dpll_clkn                           	0x0168
+#define	mem_connection_options                  	0x016c
+#define	mem_nameres_cnt                         	0x016d
+#define	mem_txptr                               	0x016e
+#define	mem_slot_offset                         	0x0170
+#define	extm_fhs_misc                           	0x0172
+#define	extm_newconn_am_addr                    	0x0173
+#define	extm_class                              	0x0174
+#define	extm_lap                                	0x0177
+#define	extm_uap                                	0x017a
+#define	extm_nap                                	0x017b
+#define	mem_debug_config                        	0x017e
+#define	mem_lch_code                            	0x017f
+#define	mem_fhs_am_addr                         	0x0180
+#define	mem_dpll_error                          	0x0181
+#define	mem_bdaddr_list_buff                    	0x0183
+#define	mem_select_list_item                    	0x01a7
+#define	mem_temp_reconn_record                  	0x01a8
+#define	mem_record_bt_mode                      	0x01a8
+#define	mem_temp_lap                            	0x01a9
+#define	mem_list_item_ptr                       	0x01af
+#define	mem_eir                                 	0x01b1
+#define	mem_ucode_status                        	0x0215
+#define	mem_otp_ucode_flag                      	0x0216
+#define	mem_spid_tbuf                           	0x0218
+#define	mem_iicd_tbuf                           	0x0219
+#define	mem_addr_hi                             	0x0219
+#define	mem_addr_mi                             	0x021a
+#define	mem_addr_lo                             	0x021b
+#define	mem_iicd_addr                           	0x021c
+#define	mem_spid_rbuf                           	0x021d
+#define	mem_ucode_buf                           	0x0221
+#define	mem_ucode_len                           	0x0223
+#define	mem_sched_addr                          	0x0225
+#define	mem_ucode_ptr                           	0x0227
+#define	mem_ucode_keybuf                        	0x0229
+#define	mem_check_plap_temp                     	0x0239
+#define	mem_sensor_id                           	0x024b
+#define	mem_reconnect_flag                      	0x024c
+#define	mem_switch_fail_master_count            	0x024d
+#define	mem_app_evt_timer_count                 	0x024e
+#define	mem_h5rx_ackcnt                         	0x024f
+#define	mem_check_err_acl_cont                  	0x0250
+#define	mem_rp_packets                          	0x0251
+#define	mem_packet_type                         	0x0252
+#define	mem_hci_sniff_conn_handle               	0x0254
+#define	mem_hci_sniff_max_interval              	0x0256
+#define	mem_hci_sniff_min_interval              	0x0258
+#define	mem_hci_sniff_attempt                   	0x025a
+#define	mem_hci_sniff_timeout                   	0x025c
+#define	mem_voice_setting                       	0x025e
+#define	mem_retransmission_effort               	0x0260
+#define	mem_sco_ptype                           	0x0261
+#define	mem_extm_uap_restore                    	0x0263
+#define	mem_h5rx_rptr                           	0x0266
+#define	mem_h5rx_ack                            	0x0268
+#define	mem_h5tx_ack                            	0x0269
+#define	mem_h5tx_rptr                           	0x026a
+#define	mem_h5tx_wptr                           	0x026c
+#define	mem_h5tx_free                           	0x026e
+#define	mem_h5rx_tmp                            	0x0270
+#define	mem_h5tx_seq                            	0x0271
+#define	mem_hci_acl_queue_wptr                  	0x0272
+#define	mem_hci_acl_queue_rptr                  	0x0274
+#define	mem_hci_acl_queue_end                   	0x0276
+#define	mem_hci_acl_queue_wcnt                  	0x0278
+#define	mem_hci_acl_cnt                         	0x0279
+#define	mem_hci_acl_tx_trigger_wptr             	0x027a
+#define	mem_ucode_id_local                      	0x027c
+#define	mem_ucode_id_remote                     	0x027d
+#define	mem_check_sum                           	0x027e
+#define	mem_ucode_temp                          	0x027f
+#define	mem_ucode_temp1                         	0x0280
+#define	mem_lock_in_enc                         	0x0281
+#define	mem_hci_disconn_reason                  	0x0282
+#define	mem_hci_curr_len                        	0x0283
+#define	mem_hci_curr_target                     	0x0284
+#define	mem_l2cap_mem_start                     	0x0286
+#define	mem_l2cap_rxbuff1_len                   	0x0286
+#define	mem_l2cap_rxbuff2_len                   	0x0288
+#define	mem_l2cap_rxbuff_new                    	0x028a
+#define	mem_l2cap_rxbuff_inuse                  	0x028c
+#define	mem_l2cap_payload_ptr                   	0x028d
+#define	mem_l2cap_rx_pkt_length                 	0x028f
+#define	mem_l2cap_rx_cid                        	0x0291
+#define	mem_l2cap_rx_done                       	0x0293
+#define	mem_l2cap_signal_tx_buff_ptr            	0x0294
+#define	mem_l2cap_signal_tx_payload_ptr         	0x0296
+#define	mem_l2cap_signal_tx_length              	0x0298
+#define	mem_sdp_tx_buff_ptr                     	0x029a
+#define	mem_sdp_tx_payload_ptr                  	0x029c
+#define	mem_sdp_tx_pkt_length                   	0x029e
+#define	mem_rfcomm_tx_buff_ptr                  	0x02a0
+#define	mem_rfcomm_tx_payload_ptr               	0x02a2
+#define	mem_rfcomm_tx_pkt_length                	0x02a4
+#define	memL2CAP_T1                             	0x02a6
+#define	mem_CONTROL_tasks                       	0x02a8
+#define	mem_send_config_req                     	0x02a9
+#define	mem_config_identifier                   	0x02aa
+#define	mem_config_req_dest_CID                 	0x02ab
+#define	mem_rfcomm_malloc_fail_flag             	0x02ad
+#define	mem_message_to_uppersm                  	0x02ae
+#define	mem_upper_sm_remote_page                	0x02af
+#define	mem_upper_sm_reconn                     	0x02b0
+#define	mem_upper_sm_ss                         	0x02b1
+#define	mem_tx_malloc_log                       	0x02b2
+#define	mem_l2cap_mem_end                       	0x02f2
+#define	mem_scid                                	0x02f2
+#define	mem_cmd_length                          	0x02f4
+#define	mem_tt2                                 	0x02f6
+#define	mem_tt3                                 	0x02f8
+#define	mem_id                                  	0x02fa
+#define	mem_psm                                 	0x02fc
+#define	mem_l2cap_sdpres_delay_time             	0x02fe
+#define	mem_le_rxbuf                            	0x0302
+#define	mem_le_mic                              	0x033a
+#define	mem_le_peer_mic                         	0x033e
+#define	mem_le_peer_ltk                         	0x0342
+#define	mem_le_mrand                            	0x0352
+#define	mem_le_state                            	0x0362
+#define	mem_le_mode                             	0x0363
+#define	mem_le_tsniff                           	0x0364
+#define	mem_le_anchor                           	0x0366
+#define	mem_le_clk_offset                       	0x036a
+#define	mem_le_receive_window                   	0x0370
+#define	mem_le_plap                             	0x0372
+#define	mem_le_conn_handle                      	0x0378
+#define	mem_le_arq                              	0x0379
+#define	mem_le_ch                               	0x037a
+#define	mem_le_hop                              	0x037b
+#define	mem_le_event_count                      	0x037c
+#define	mem_le_supervision_timer                	0x037e
+#define	mem_le_instant                          	0x0382
+#define	mem_le_channels                         	0x0384
+#define	mem_le_op                               	0x0385
+#define	mem_le_access                           	0x0386
+#define	mem_le_crcinit                          	0x038a
+#define	mem_le_window_size                      	0x038d
+#define	mem_le_slave_latency                    	0x038e
+#define	mem_le_superto                          	0x0390
+#define	mem_le_channel_map                      	0x0392
+#define	mem_le_no_using                         	0x0397
+#define	mem_le_peer_sca                         	0x0399
+#define	mem_le_att_opcode                       	0x039a
+#define	mem_le_att_handle                       	0x039b
+#define	mem_le_err_code                         	0x039d
+#define	mem_le_l2cap_pdu_length                 	0x039e
+#define	mem_le_sk                               	0x03a0
+#define	mem_le_testtype                         	0x03b0
+#define	mem_le_test_sync                        	0x03b1
+#define	mem_le_test_pcnt                        	0x03b3
+#define	mem_le_rxon_ts                          	0x03b5
+#define	mem_le_rx_ll_opcode                     	0x03bb
+#define	mem_le_notify_attr_start                	0x03bc
+#define	mem_le_notify_len                       	0x03be
+#define	mem_cmd_le_create_conn                  	0x03bf
+#define	mem_24g_id                              	0x03c0
+#define	mem_le_cur_attlist_start_ptr            	0x03c1
+#define	mem_le_cur_handle_start                 	0x03c3
+#define	mem_le_cur_handle_end                   	0x03c5
+#define	mem_le_cur_uuid_lenth                   	0x03c7
+#define	mem_le_cur_uuid                         	0x03c8
+#define	mem_le_search_len                       	0x03d8
+#define	mem_le_search_res                       	0x03d9
+#define	mem_le_continue_type                    	0x03da
+#define	mem_le_public_length                    	0x03db
+#define	mem_lmo_header_length                   	0x03dc
+#define	mem_lmo_header_opcode                   	0x03dd
+#define	mem_lmo_payload                         	0x03de
+#define	mem_lmi_accepted_opcode                 	0x03ef
+#define	mem_disconn_reason_send                 	0x03f0
+#define	mem_tx_fixed_freq                       	0x03f1
+#define	mem_rx_fixed_freq                       	0x03f2
+#define	mem_ext_features_page                   	0x03f3
+#define	mem_lmpext_ssp_enable                   	0x03f4
+#define	mem_remote_sppcap                       	0x03f6
+#define	mem_lmp_conn_state                      	0x03f7
+#define	mem_soft_timer                          	0x03f8
+#define	mem_pincode_state                       	0x03fa
+#define	mem_sres_tid                            	0x03fb
+#define	mem_accptsco_tid                        	0x03fc
+#define	mem_auth_enable                         	0x03fd
+#define	mem_wait_encryption                     	0x03fe
+#define	mem_sniff_payload                       	0x03ff
+#define	mem_aurand_send_delay_time              	0x040f
+#define	mem_module_temp_len                     	0x0413
+#define	mem_uart_cmd                            	0x0415
+#define	mem_uart_opcode                         	0x0416
+#define	mem_uart_len                            	0x0417
+#define	mem_module_temp_nl_discard_packet       	0x0418
+#define	mem_module_le_md_flag                   	0x0419
+#define	mem_init_cnt                            	0x041a
+#define	memRemoteRPNBitRate                     	0x041c
+#define	memRemotePRNDataBits                    	0x041d
+#define	memRemotePRNStopBit                     	0x041e
+#define	memRemotePRNParity                      	0x041f
+#define	memRemotePRNFlowControl                 	0x0420
+#define	memRemotePRNXon                         	0x0421
+#define	memRemotePRNXoff                        	0x0422
+#define	mem_mod2div_temp                        	0x0423
+#define	mem_contw_temp                          	0x0426
+#define	mem_attrib_list                         	0x0428
+#define	mem_current_adss                        	0x042a
+#define	mem_current_channel                     	0x042b
+#define	mem_current_frame_type                  	0x042c
+#define	mem_current_fcs                         	0x042d
+#define	mem_current_length                      	0x042e
+#define	mem_rfcomm_uih_payload_ptr              	0x0430
+#define	mem_uih_cmd_type                        	0x0432
+#define	mem_uih_length                          	0x0433
+#define	mem_param_payload_ptr                   	0x0435
+#define	mem_ms_param                            	0x0437
+#define	mem_pn_credit_flow_type_info            	0x0438
+#define	mem_pn_priority                         	0x0439
+#define	mem_pn_acknowledg_timer                 	0x043a
+#define	mem_pn_max_retrans                      	0x043b
+#define	mem_rfcomm_send_adss                    	0x043c
+#define	mem_rfcomm_send_frame_type              	0x043d
+#define	mem_rfcomm_send_fcs                     	0x043e
+#define	mem_rfcomm_send_offset                  	0x043f
+#define	mem_sdp_mem_start                       	0x0440
+#define	mem_uuid_search_pat                     	0x0440
+#define	mem_sdp_continue_byte                   	0x0444
+#define	mem_sdp_pduid                           	0x0446
+#define	mem_sdp_transactionid                   	0x0447
+#define	mem_sdp_attribute_maxbyte               	0x0449
+#define	mem_sdp_record_maxcnt                   	0x044b
+#define	mem_sdp_error_code                      	0x044d
+#define	mem_sdp_record_handle                   	0x0455
+#define	mem_sdp_search_failed                   	0x0459
+#define	mem_sdp_LACAP_found                     	0x045a
+#define	mem_sdp_RFCOMM_found                    	0x045b
+#define	mem_handle_list                         	0x045c
+#define	mem_handle_humber                       	0x0474
+#define	mem_sdp_mem_end                         	0x0475
+#define	mem_rxbuf                               	0x0475
+#define	mem_random_number                       	0x0486
+#define	mem_round_key                           	0x0496
+#define	mem_kinit                               	0x04a6
+#define	mem_input_store                         	0x04b6
+#define	mem_x                                   	0x04c6
+#define	mem_y                                   	0x04d6
+#define	mem_y15                                 	0x04e5
+#define	mem_key_store                           	0x04e6
+#define	mem_key_store_end                       	0x04f7
+#define	memp_ar_key                             	0x04f8
+#define	memp_ar_input                           	0x04fa
+#define	mem_ar_hround                           	0x04fc
+#define	mem_ec_infinite                         	0x0506
+#define	mem_ec_loopc                            	0x0507
+#define	mem_aes_cmac_data_length                	0x0509
+#define	memdat                                  	0x050a
+#define	mem_ax                                  	0x050a
+#define	mem_ay                                  	0x0522
+#define	mem_az                                  	0x053a
+#define	mem_bx                                  	0x0552
+#define	mem_ax_256                              	0x056a
+#define	mem_by                                  	0x056a
+#define	mem_bz                                  	0x0582
+#define	mem_ay_256                              	0x058a
+#define	mem_cx                                  	0x059a
+#define	mem_az_256                              	0x05aa
+#define	mem_cy                                  	0x05b2
+#define	mem_cy5                                 	0x05c9
+#define	mem_bx_256                              	0x05ca
+#define	mem_cz                                  	0x05ca
+#define	mem_k                                   	0x05e2
+#define	mem_by_256                              	0x05ea
+#define	mem_align                               	0x05fa
+#define	mem_bz_256                              	0x060a
+#define	mem_tmp1                                	0x060a
+#define	memahbak                                	0x060a
+#define	mem_tmp5                                	0x0622
+#define	mem_cx_256                              	0x062a
+#define	memahsave                               	0x062a
+#define	mem_tmp2                                	0x063a
+#define	mem_cy_256                              	0x064a
+#define	memahsave_end                           	0x064a
+#define	mem_addr_padding                        	0x064a
+#define	mem_addr_value                          	0x064b
+#define	mem_tmp3                                	0x0652
+#define	mem_t1                                  	0x0652
+#define	mem_addr_value_end                      	0x0657
+#define	mem_addr_iocap_end                      	0x065a
+#define	mem_cy5_256                             	0x0669
+#define	mem_cz_256                              	0x066a
+#define	mem_tmp0                                	0x066a
+#define	mem_t0                                  	0x066a
+#define	mem_tmp0a                               	0x0672
+#define	mem_t2                                  	0x0682
+#define	mem_k_256                               	0x068a
+#define	mem_t3                                  	0x069a
+#define	mem_tmp1_256                            	0x06aa
+#define	mem_t7                                  	0x06b2
+#define	mem_tmp5_256                            	0x06ca
+#define	mem_tmp2_256                            	0x06ea
+#define	mem_tmp3_256                            	0x070a
+#define	mem_t1_256                              	0x070a
+#define	mem_tmp0_256                            	0x072a
+#define	mem_t0_256                              	0x072a
+#define	mem_t2_256                              	0x074a
+#define	mem_t3_256                              	0x076a
+#define	mem_t7_256                              	0x078a
+#define	mem_p                                   	0x07aa
+#define	mem_a                                   	0x07c2
+#define	mem_b                                   	0x07da
+#define	mem_gx                                  	0x07f2
+#define	mem_gy                                  	0x080a
+#define	memh0                                   	0x0822
+#define	mem_p_256                               	0x0842
+#define	mem_a_256                               	0x0862
+#define	mem_gx_256                              	0x0882
+#define	mem_gy_256                              	0x08a2
+#define	mem_le_slat                             	0x08c2
+#define	mem_sp_state_start                      	0x08d2
+#define	mem_sp_state                            	0x08d2
+#define	mem_master_sp_state                     	0x08d3
+#define	mem_sp_flag                             	0x08d4
+#define	mem_master_sp_flag                      	0x08d5
+#define	mem_sp_calc                             	0x08d6
+#define	mem_sp_dh_ready                         	0x08d7
+#define	mem_sp_localsm                          	0x08d8
+#define	mem_pairing_auth                        	0x08d9
+#define	mem_sp_flag_start                       	0x08da
+#define	mem_sp_local_key_send_count             	0x08da
+#define	mem_sp_remote_key_recv_count            	0x08db
+#define	mem_sp_remote_key_invalid               	0x08dc
+#define	mem_sp_dhkey_invalid                    	0x08dd
+#define	mem_gkey                                	0x08de
+#define	mem_le_pubkey_remote_x_256              	0x08e2
+#define	mem_sp_pubkey_remote                    	0x08ea
+#define	mem_sp_pubkey_remote_x                  	0x08ea
+#define	mem_sp_pubkey_remote_x_end              	0x0902
+#define	mem_le_pubkey_remote_y_256              	0x0902
+#define	mem_sp_pubkey_remote_y                  	0x090a
+#define	mem_le_dhkey_256                        	0x0922
+#define	mem_sp_dhkey                            	0x092a
+#define	mem_sp_dhkey_end                        	0x0942
+#define	mem_sp_random_local                     	0x0942
+#define	mem_sp_random_local_end                 	0x0952
+#define	mem_sp_random_remote                    	0x0952
+#define	mem_sp_random_remote_end                	0x0962
+#define	memresult                               	0x0962
+#define	mem_sp_calc_result                      	0x0962
+#define	memh                                    	0x0962
+#define	memg                                    	0x0966
+#define	memf                                    	0x096a
+#define	meme                                    	0x096e
+#define	mem_sp_calc_result_high                 	0x0972
+#define	memd                                    	0x0972
+#define	memc                                    	0x0976
+#define	memb                                    	0x097a
+#define	mema                                    	0x097e
+#define	mem_sp_check_result                     	0x0982
+#define	mem_sp_confirm_remote                   	0x0992
+#define	mem_sp_prarm_stack                      	0x09a2
+#define	mem_UI_data_txbuff_length               	0x09b2
+#define	mem_ipc_skip_continue_proc              	0x09b4
+#define	mem_ui_timer_temp                       	0x09b5
+#define	mem_ipc_rega_temp                       	0x09b5
+#define	mem_hold_contr                          	0x09b9
+#define	mem_hold_contw                          	0x09bb
+#define	mem_fifo_temp                           	0x09bd
+#define	mem_pdatatemp                           	0x09be
+#define	mem_temp                                	0x09c6
+#define	mem_timeup                              	0x09ce
+#define	mem_rega                                	0x09d2
+#define	mem_regb                                	0x09d6
+#define	mem_regc                                	0x09da
+#define	mem_contr                               	0x09dd
+#define	mem_contw                               	0x09df
+#define	mem_le_data_len_temp                    	0x09e1
+#define	mem_tx_fifo_map_temp                    	0x09e1
+#define	mem_rpn_dlci                            	0x09e1
+#define	mem_event_cmd_response_content          	0x09e1
+#define	mem_le_prand                            	0x09e1
+#define	mem_AES_CMAC_k                          	0x09e1
+#define	mem_regext_index                        	0x09e1
+#define	mem_temp_block0                         	0x09e1
+#define	mem_le_data_temp                        	0x09e2
+#define	mem_temp_block1                         	0x09e2
+#define	mem_le_aes_128                          	0x09f1
+#define	mem_regext                              	0x09f1
+#define	mem_AES_CMAC_k1                         	0x09f1
+#define	mem_temp_block2                         	0x09f1
+#define	mem_AES_CMAC_k2                         	0x0a01
+#define	mem_temp_block3                         	0x0a01
+#define	mem_AES_CMAC_temp                       	0x0a11
+#define	mem_temp_block4                         	0x0a11
+#define	mem_AES_CMAC_M_last                     	0x0a21
+#define	mem_temp_block5                         	0x0a21
+#define	mem_le_mackey                           	0x0a31
+#define	mem_temp_block6                         	0x0a31
+#define	mem_temp_prepare_write_request          	0x0a41
+#define	mem_kb_map2_temp_start                  	0x0b09
+#define	mem_kb_map2_vk                          	0x0b09
+#define	mem_kb_current_vk                       	0x0b0c
+#define	mem_kb_vk_offset                        	0x0b0f
+#define	mem_kb_vk_processed_cnt                 	0x0b10
+#define	mem_kb_map2_current_cell_ptr            	0x0b11
+#define	mem_kb_device_button                    	0x0b13
+#define	mem_table_temp0                         	0x0b14
+#define	mem_table_temp1                         	0x0b1c
+#define	mem_kb_map2_temp_end                    	0x0b24
+#define	mem_check_count                         	0x0b24
+#define	mem_store_key_count                     	0x0b25
+#define	mem_kb_gpio_val                         	0x0b26
+#define	mem_c51_flag                            	0x0b2a
+#define	mem_c51_lmp_lock                        	0x0b2b
+#define	mem_lmp_bb_disconnect_reason            	0x0b2c
+#define	mem_patch00                             	0x4000
+#define	mem_patch01                             	0x4001
+#define	mem_patch02                             	0x4002
+#define	mem_patch03                             	0x4003
+#define	mem_patch04                             	0x4004
+#define	mem_patch05                             	0x4005
+#define	mem_patch06                             	0x4006
+#define	mem_patch07                             	0x4007
+#define	mem_patch08                             	0x4008
+#define	mem_patch09                             	0x4009
+#define	mem_patch0a                             	0x400a
+#define	mem_patch0b                             	0x400b
+#define	mem_patch0c                             	0x400c
+#define	mem_patch0d                             	0x400d
+#define	mem_patch0e                             	0x400e
+#define	mem_patch0f                             	0x400f
+#define	mem_patch10                             	0x4010
+#define	mem_patch11                             	0x4011
+#define	mem_patch12                             	0x4012
+#define	mem_patch13                             	0x4013
+#define	mem_patch14                             	0x4014
+#define	mem_patch15                             	0x4015
+#define	mem_patch16                             	0x4016
+#define	mem_patch17                             	0x4017
+#define	mem_patch18                             	0x4018
+#define	mem_patch19                             	0x4019
+#define	mem_patch1a                             	0x401a
+#define	mem_patch1b                             	0x401b
+#define	mem_patch1c                             	0x401c
+#define	mem_patch1d                             	0x401d
+#define	mem_patch1e                             	0x401e
+#define	mem_patch1f                             	0x401f
+#define	mem_patch20                             	0x4020
+#define	mem_patch21                             	0x4021
+#define	mem_patch22                             	0x4022
+#define	mem_patch23                             	0x4023
+#define	mem_patch24                             	0x4024
+#define	mem_patch25                             	0x4025
+#define	mem_patch26                             	0x4026
+#define	mem_patch27                             	0x4027
+#define	mem_patch28                             	0x4028
+#define	mem_patch29                             	0x4029
+#define	mem_patch2a                             	0x402a
+#define	mem_patch2b                             	0x402b
+#define	mem_patch2c                             	0x402c
+#define	mem_patch2d                             	0x402d
+#define	mem_patch2e                             	0x402e
+#define	mem_patch2f                             	0x402f
+#define	mem_patch30                             	0x4030
+#define	mem_patch31                             	0x4031
+#define	mem_patch32                             	0x4032
+#define	mem_patch33                             	0x4033
+#define	mem_patch34                             	0x4034
+#define	mem_patch35                             	0x4035
+#define	mem_patch36                             	0x4036
+#define	mem_patch37                             	0x4037
+#define	mem_patch38                             	0x4038
+#define	mem_patch39                             	0x4039
+#define	mem_patch3a                             	0x403a
+#define	mem_patch3b                             	0x403b
+#define	mem_patch3c                             	0x403c
+#define	mem_patch3d                             	0x403d
+#define	mem_patch3e                             	0x403e
+#define	mem_patch3f                             	0x403f
+#define	mem_context                             	0x4040
+#define	mem_current_amaddr                      	0x4130
+#define	mem_lpm_mode                            	0x4131
+#define	mem_device_option                       	0x4132
+#define	mem_scan_mode                           	0x4133
+#define	mem_last_clkn                           	0x4134
+#define	mem_features                            	0x4138
+#define	mem_lap                                 	0x4140
+#define	mem_uap                                 	0x4143
+#define	mem_nap                                 	0x4144
+#define	mem_npage                               	0x4146
+#define	mem_glap                                	0x4147
+#define	mem_class                               	0x414a
+#define	mem_iscan_window                        	0x414d
+#define	mem_iscan_interval                      	0x414f
+#define	mem_pscan_window                        	0x4151
+#define	mem_pscan_interval                      	0x4153
+#define	mem_page_interval                       	0x4155
+#define	mem_page_window                         	0x4157
+#define	mem_page_to                             	0x4159
+#define	mem_inq_window                          	0x415b
+#define	mem_fcomp_mul                           	0x415d
+#define	mem_fcomp_div                           	0x415e
+#define	mem_rx_window_init                      	0x415f
+#define	mem_rx_window_sniff                     	0x4161
+#define	mem_rf_init_ptr                         	0x4163
+#define	mem_last_type                           	0x4165
+#define	mem_last_type_esco                      	0x4166
+#define	mem_last_type_saved                     	0x4167
+#define	mem_retransmission_cnt                  	0x4168
+#define	mem_next_btclk                          	0x416a
+#define	mem_rf_rccal                            	0x416e
+#define	mem_handle_num                          	0x416f
+#define	mem_max_slot                            	0x4170
+#define	mem_eir_enable                          	0x4171
+#define	mem_afh_instant                         	0x4172
+#define	mem_afh_error_total                     	0x4176
+#define	mem_afh_cfg                             	0x4178
+#define	mem_afh_new_mod                         	0x4179
+#define	mem_afh_map_lo                          	0x417a
+#define	mem_afh_map_hi                          	0x417f
+#define	mem_afh_used                            	0x4184
+#define	mem_afh_index                           	0x4185
+#define	mem_afh_map_new                         	0x4187
+#define	mem_afh_map                             	0x4192
+#define	mem_afh_timer                           	0x41e2
+#define	mem_afh_classify_channel_map            	0x41e6
+#define	mem_chip_functions                      	0x41f0
+#define	mem_lpm_wake_lock                       	0x41f2
+#define	mem_lpm_interval                        	0x41f4
+#define	mem_lpm_overhead                        	0x41f6
+#define	mem_lpm_hibernate_switch                	0x41f7
+#define	mem_esco_addr                           	0x41f8
+#define	mem_sniff_unint_lost                    	0x41f9
+#define	mem_ptt                                 	0x41fa
+#define	mem_sleep_counter                       	0x41fb
+#define	mem_sleep_counter_all                   	0x41ff
+#define	mem_sleep_clkn                          	0x4203
+#define	mem_sniff_rcv                           	0x4209
+#define	mem_sniff_lost                          	0x420c
+#define	mem_clks_per_lpo                        	0x420f
+#define	mem_lpm_mult                            	0x4212
+#define	mem_lpm_mult_timeout                    	0x4213
+#define	mem_lpm_mult_cnt                        	0x4214
+#define	mem_lpm_config                          	0x4215
+#define	mem_lpm_xtalcnt                         	0x4218
+#define	mem_lpm_buckcnt                         	0x4219
+#define	mem_lpm_ldocnt                          	0x421a
+#define	mem_lpm_isogate                         	0x421b
+#define	mem_lpm_isogate_final                   	0x421c
+#define	mem_saved_gpio                          	0x421d
+#define	mem_saved_gsel                          	0x422d
+#define	mem_saved_mark                          	0x4230
+#define	mem_saved_spidctrl                      	0x4238
+#define	mem_patch_ptr                           	0x4239
+#define	mem_patch_len                           	0x423b
+#define	mem_timers                              	0x423d
+#define	mem_link_key_exists                     	0x425d
+#define	mem_link_key_eeprom_head                	0x425e
+#define	mem_link_key                            	0x4261
+#define	mem_hci_cmd                             	0x4271
+#define	mem_hci_conn_handle                     	0x4272
+#define	mem_hci_plap                            	0x4273
+#define	mem_hci_puap                            	0x4276
+#define	mem_hci_pnap                            	0x4277
+#define	mem_uartd_rxitems_got_data              	0x4279
+#define	mem_uartd_rxitems_threshold             	0x427a
+#define	mem_uartd_rx_timeout                    	0x427b
+#define	mem_tx_lch                              	0x427d
+#define	mem_tx_len                              	0x427e
+#define	mem_tx_power                            	0x4280
+#define	mem_context_number                      	0x4281
+#define	mem_rf_init_data                        	0x4282
+#define	mem_app_handshake_flag                  	0x4283
+#define	mem_sniff_param_interval                	0x4284
+#define	mem_sniff_param_attempt                 	0x4286
+#define	mem_sniff_param_timeout                 	0x4288
+#define	mem_cb_check_wakelock                   	0x428a
+#define	mem_cb_before_hibernate                 	0x428c
+#define	mem_cb_before_lpm                       	0x428e
+#define	mem_cb_le_process                       	0x4290
+#define	mem_cb_bt_process                       	0x4292
+#define	mem_cb_idle_process                     	0x4294
+#define	mem_cb_bb_event_process                 	0x4296
+#define	mem_cb_discovry_timeout                 	0x4298
+#define	mem_cb_att_write                        	0x429a
+#define	mem_cb_update_notify_value              	0x429c
+#define	mem_cb_update_notify_continue           	0x429e
+#define	mem_cb_event_timer                      	0x42a0
+#define	mem_cb_le_set_mult                      	0x42a2
+#define	mem_cb_bt_set_mult                      	0x42a4
+#define	mem_soft_version_num                    	0x42a6
+#define	mem_eeprom_base                         	0x42a8
+#define	mem_unsniff2sniff_timer_count           	0x42aa
+#define	mem_wake_up_delay_timer                 	0x42ab
+#define	mem_app_connection_options              	0x42ac
+#define	mem_app_disconn_reason                  	0x42ad
+#define	mem_app_disconn_reason_flag             	0x42af
+#define	mem_lpm_delay_after_sniff               	0x42b1
+#define	mem_xrecord_mode                        	0x42b5
+#define	mem_eeprom_block_size                   	0x42b6
+#define	mem_wakup_from_power_flag               	0x42b8
+#define	mem_spi_init_clk                        	0x42b9
+#define	mem_spi_init_delay_time                 	0x42ba
+#define	mem_spi_ncs_gpio                        	0x42bb
+#define	mem_nv_data_ptr                         	0x42bc
+#define	mem_nv_data_number                      	0x42be
+#define	mem_0_5_adc_io_data                     	0x42bf
+#define	mem_1v_adc_hvin_data                    	0x42c1
+#define	mem_2v_adc_vinlpm_data                  	0x42c3
+#define	mem_1v_adc_io_data                      	0x42c5
+#define	mem_5v_adc_hvin_data                    	0x42c7
+#define	mem_3v_adc_vinlpm_data                  	0x42c9
+#define	mem_otp_adc_flag                        	0x42cb
+#define	mem_reference_voltage                   	0x42cd
+#define	mem_adc_config_flag                     	0x42cf
+#define	mem_adc_channel                         	0x42d0
+#define	mem_adc_current_value                   	0x42d1
+#define	mem_baud                                	0x42d3
+#define	mem_hci_lt_rx_state                     	0x42d5
+#define	mem_l2cap_xmem_start                    	0x42d6
+#define	mem_l2cap_tx_multi_offset               	0x42d6
+#define	mem_sdp_remote_cid                      	0x42d8
+#define	mem_rfcomm_remote_cid                   	0x42da
+#define	mem_hid_ctrl_remote_cid                 	0x42dc
+#define	mem_hid_int_remote_cid                  	0x42de
+#define	mem_sdp_state                           	0x42e0
+#define	mem_rfcomm_state                        	0x42e1
+#define	mem_hid_control_state                   	0x42e2
+#define	mem_hid_interrupt_state                 	0x42e3
+#define	mem_spp_state                           	0x42e4
+#define	mem_ML2CAP_comm_id                      	0x42e5
+#define	mem_used_map                            	0x42e6
+#define	mem_tx_fifo0                            	0x42e7
+#define	mem_tx_fifo0_map                        	0x42e7
+#define	mem_tx_fifo0_ptr                        	0x42e8
+#define	mem_tx_fifo1                            	0x42ea
+#define	mem_tx_fifo1_map                        	0x42ea
+#define	mem_tx_fifo1_ptr                        	0x42eb
+#define	mem_tx_fifo2                            	0x42ed
+#define	mem_tx_fifo2_map                        	0x42ed
+#define	mem_tx_fifo2_ptr                        	0x42ee
+#define	mem_tx_fifo3                            	0x42f0
+#define	mem_tx_fifo3_map                        	0x42f0
+#define	mem_tx_fifo3_ptr                        	0x42f1
+#define	mem_tx_fifo_end                         	0x42f3
+#define	mem_l2cap_lpm_txbuf                     	0x42f3
+#define	mem_l2cap_flow_ctrl_flag                	0x43f3
+#define	mem_l2cap_pending_item                  	0x43f4
+#define	mem_l2cap_xmem_end                      	0x43f5
+#define	mem_le_dsniff                           	0x43f5
+#define	mem_le_conn_interval                    	0x43f7
+#define	mem_le_scan_enable                      	0x43f9
+#define	mem_le_scan_interval                    	0x43fa
+#define	mem_le_scan_window                      	0x43fc
+#define	mem_le_adv_led                          	0x43fe
+#define	mem_le_adv_enable                       	0x43ff
+#define	mem_le_adv_data_len                     	0x4400
+#define	mem_le_adv_data                         	0x4401
+#define	mem_le_scan_data_len                    	0x4420
+#define	mem_le_scan_data                        	0x4421
+#define	mem_le_name_len                         	0x4440
+#define	mem_le_name                             	0x4441
+#define	mem_le_led_on_time                      	0x4455
+#define	mem_le_new_map                          	0x4456
+#define	mem_le_new_param                        	0x445b
+#define	mem_le_new_transmitwindowsize           	0x445b
+#define	mem_le_new_transmitwindowoffset         	0x445c
+#define	mem_le_new_conninterval                 	0x445e
+#define	mem_le_new_connslavelatency             	0x4460
+#define	mem_le_new_connsupervisiontimeout       	0x4462
+#define	mem_le_temp                             	0x4464
+#define	mem_le_txheader                         	0x4465
+#define	mem_le_txlen                            	0x4466
+#define	mem_le_txpayload                        	0x4467
+#define	mem_le_txcid                            	0x4469
+#define	mem_le_l2cap                            	0x446b
+#define	mem_le_l2cap_response                   	0x446c
+#define	mem_le_txbdy                            	0x446d
+#define	mem_le_pcnt_tx                          	0x448c
+#define	mem_le_pcnt_rx                          	0x4491
+#define	mem_le_last_mic                         	0x4496
+#define	mem_le_ivm                              	0x449a
+#define	mem_le_ivs                              	0x449e
+#define	mem_le_ltk                              	0x44a2
+#define	mem_ltk_exists                          	0x44b2
+#define	mem_le_rconfirm                         	0x44b3
+#define	mem_le_srand                            	0x44c3
+#define	mem_le_iat                              	0x44d3
+#define	mem_le_rat                              	0x44d4
+#define	mem_le_preq                             	0x44d5
+#define	mem_le_preq_iocap                       	0x44d6
+#define	mem_le_preq_oob                         	0x44d7
+#define	mem_le_preq_auth                        	0x44d8
+#define	mem_le_preq_max_keysize                 	0x44d9
+#define	mem_le_preq_init_key_distribution       	0x44da
+#define	mem_le_preq_resp_key_distribution       	0x44db
+#define	mem_le_pres                             	0x44dc
+#define	mem_le_pres_iocap                       	0x44dd
+#define	mem_le_pres_oob                         	0x44de
+#define	mem_le_pres_auth                        	0x44df
+#define	mem_le_pres_max_keysize                 	0x44e0
+#define	mem_le_pres_init_key_distribution       	0x44e1
+#define	mem_le_pres_resp_key_distribution       	0x44e2
+#define	mem_le_search_handle_start              	0x44e3
+#define	mem_le_search_handle_end                	0x44e5
+#define	mem_le_att_offset                       	0x44e7
+#define	mem_le_search_att_type_length           	0x44e7
+#define	mem_le_search_att_type                  	0x44e8
+#define	mem_le_notify_handle                    	0x44f8
+#define	mem_le_search_uuid_length               	0x44fa
+#define	mem_le_search_uuid                      	0x44fb
+#define	mem_le_handle_data_len                  	0x450b
+#define	mem_le_handle_data                      	0x450c
+#define	mem_le_adv_param                        	0x451c
+#define	mem_le_adv_interval_min                 	0x451c
+#define	mem_le_adv_interval_max                 	0x451e
+#define	mem_le_adv_type                         	0x4520
+#define	mem_le_adv_own_addr_type                	0x4521
+#define	mem_le_adv_direct_addr_type             	0x4522
+#define	mem_le_adv_direct_addr                  	0x4523
+#define	mem_le_adv_channel_map                  	0x4529
+#define	mem_le_adv_filter_policy                	0x452a
+#define	mem_le_conn_param                       	0x452b
+#define	mem_le_conn_peer_addr_type              	0x452b
+#define	mem_le_conn_peer_addr                   	0x452c
+#define	mem_le_conn_own_addr_type               	0x4532
+#define	mem_le_conn_interval_min                	0x4533
+#define	mem_le_conn_interval_max                	0x4535
+#define	mem_le_conn_latency                     	0x4537
+#define	mem_le_conn_superto                     	0x4539
+#define	mem_le_scan_params                      	0x453b
+#define	mem_le_scan_type                        	0x453b
+#define	mem_le_scan_own_addr_type               	0x453c
+#define	mem_le_scan_filter_policy               	0x453d
+#define	mem_le_lap                              	0x453e
+#define	mem_le_uap                              	0x4541
+#define	mem_le_nap                              	0x4542
+#define	mem_le_xtype_fifo                       	0x4544
+#define	mem_le_local_mtu                        	0x454c
+#define	mem_le_remote_mtu                       	0x454e
+#define	mem_le_ll_cur_opcode                    	0x4550
+#define	mem_le_skdm                             	0x4551
+#define	mem_le_skds                             	0x4559
+#define	mem_le_init_superto                     	0x4561
+#define	mem_le_secure_connect_enable            	0x4563
+#define	mem_le_secure_connect_flag              	0x4564
+#define	mem_le_sc_calc                          	0x4565
+#define	mem_le_secure_connect_state             	0x4566
+#define	mem_le_sc_confirm_gkey_flag             	0x4567
+#define	mem_le_sc_local_key_invalid             	0x4568
+#define	mem_le_continue_flag                    	0x4569
+#define	mem_le_pairing_state                    	0x456a
+#define	mem_le_enc_state                        	0x456b
+#define	mem_le_pairing_mode                     	0x456c
+#define	mem_le_tk                               	0x456d
+#define	mem_le_ediv                             	0x4571
+#define	mem_le_rand                             	0x4573
+#define	mem_le_irk                              	0x457b
+#define	mem_le_pairing_handle                   	0x458b
+#define	mem_le_interal_min                      	0x458d
+#define	mem_le_interal_max                      	0x458f
+#define	mem_le_latency                          	0x4591
+#define	mem_le_timeout                          	0x4593
+#define	mem_le_switch_send_data                 	0x4595
+#define	mem_le_transmit_window                  	0x4596
+#define	mem_le_buff_len                         	0x459a
+#define	mem_le_buff_len_all                     	0x459c
+#define	mem_le_buff_data_len_all                	0x459e
+#define	mem_prepare_write_len                   	0x45a0
+#define	mem_le_prepare_write_req_offset         	0x45a2
+#define	mem_prepare_handle                      	0x45a4
+#define	mem_prepare_write_offest                	0x45a6
+#define	mem_le_flag                             	0x45a8
+#define	mem_lmp_version                         	0x45a9
+#define	mem_lmp_subversion                      	0x45ac
+#define	mem_local_name_length                   	0x45ae
+#define	mem_local_name                          	0x45af
+#define	mem_local_name2                         	0x45b2
+#define	mem_local_name_end                      	0x45f2
+#define	mem_unsniff2sniff_timer                 	0x45f3
+#define	mem_switch_flag                         	0x45f4
+#define	mem_pn_dlci                             	0x45f5
+#define	mem_pn_max_frame_size                   	0x45f6
+#define	memFCStemp1                             	0x45f8
+#define	memFCStemp2                             	0x45f9
+#define	memFCStemp3                             	0x45fa
+#define	mem_rfcomm_initiator                    	0x45fb
+#define	mem_remote_spp_channel                  	0x45fc
+#define	mem_HIUfcs_SPP                          	0x45fd
+#define	mem_HIUfcs_SPP_WCredits                 	0x45fe
+#define	mem_rfcomm_send_more_pkt                	0x45ff
+#define	mem_remote_credits                      	0x4600
+#define	mem_credit_given                        	0x4601
+#define	mem_ms_channel                          	0x4602
+#define	mem_credit_flag                         	0x4603
+#define	mem_rfcomm_max_frame_size               	0x4604
+#define	mem_rfcomm_credit_init_data             	0x4606
+#define	mem_cb_receive_spp_data                 	0x4607
+#define	mem_nl_rx_data_src                      	0x4609
+#define	mem_nl_rx_len_all                       	0x460b
+#define	mem_ui_uuid_table                       	0x460d
+#define	mem_all_uuid_16bits                     	0x460f
+#define	mem_all_uuid_128bits                    	0x4625
+#define	mem_ui_le_uuid_table                    	0x4637
+#define	mem_sp_local_key_invalid                	0x4639
+#define	mem_le_private_key_256                  	0x463a
+#define	mem_le_pubkey_local_x_256               	0x465a
+#define	mem_le_pubkey_local_y_256               	0x467a
+#define	mem_sp_private_key                      	0x469a
+#define	mem_sp_pubkey_local                     	0x46b2
+#define	mem_sp_pubkey_local_x                   	0x46b2
+#define	mem_sp_pubkey_local_x_end               	0x46ca
+#define	mem_sp_pubkey_local_y                   	0x46ca
+#define	mem_ssp_enable                          	0x46e2
+#define	mem_sp_iocap_local                      	0x46e3
+#define	mem_sp_iocap_remote                     	0x46e6
+#define	mem_flag_mode_ssp_pin                   	0x46e9
+#define	mem_ssp_mode_flag                       	0x46ea
+#define	mem_authentication_passkey_times        	0x46eb
+#define	mem_passkey_1bit                        	0x46ec
+#define	mem_flag_pairing_state                  	0x46ed
+#define	mem_ipc_lock_bt                         	0x46ee
+#define	mem_ipc_lock_c51                        	0x46ef
+#define	mem_ipc_fifo_bt2c51                     	0x46f0
+#define	mem_ipc_fifo_c512bt                     	0x46f8
+#define	mem_led_switch                          	0x4700
+#define	mem_ui_button_timer                     	0x4701
+#define	mem_ui_button_last_state                	0x4702
+#define	mem_ui_timer_last_btclk                 	0x4703
+#define	mem_discovery_timeout_timer_count       	0x4707
+#define	mem_hid_handshake_timer_count           	0x4709
+#define	memui_reconnect_mode                    	0x470a
+#define	mem_ui_state_map                        	0x470b
+#define	mem_ui_profile_supported                	0x470d
+#define	mem_led_gpio                            	0x470e
+#define	mem_led_dark_time                       	0x470f
+#define	mem_led_light_time                      	0x4711
+#define	mem_led_blink_count                     	0x4713
+#define	mem_ui_button_timeout                   	0x4714
+#define	mem_ui_button_gpio                      	0x4715
+#define	mem_discovery_timeout                   	0x4716
+#define	mem_pin_length                          	0x4718
+#define	mem_pin                                 	0x4719
+#define	mem_24g_tx_btclk                        	0x4729
+#define	mem_24g_interval                        	0x472d
+#define	mem_24g_txfail_cnt                      	0x472e
+#define	mem_24g_attempt_cnt                     	0x472f
+#define	mem_24g_attempt_flag                    	0x4730
+#define	mem_24g_rxfail_cnt                      	0x4731
+#define	mem_24g_retry                           	0x4734
+#define	mem_24g_pid                             	0x4735
+#define	mem_24g_datalen                         	0x4736
+#define	mem_24g_crc                             	0x4737
+#define	mem_24g_rxbuf                           	0x4739
+#define	mem_24g_addr                            	0x4779
+#define	mem_24g_len                             	0x477d
+#define	mem_24g_txpayload                       	0x477f
+#define	mem_24g_txdata                          	0x4789
+#define	mem_24g_ch                              	0x4793
+#define	mem_24g_scremble                        	0x4794
+#define	mem_24g_current_ch_number               	0x47a4
+#define	mem_24g_ch_map1                         	0x47a5
+#define	mem_24g_ch_map2                         	0x47a9
+#define	mem_24g_ch_map3                         	0x47ad
+#define	mem_24g_ch_map4                         	0x47b1
+#define	mem_24g_interval_min                    	0x47b5
+#define	mem_24g_interval_max                    	0x47b6
+#define	mem_24g_ensure                          	0x47b7
+#define	mem_24g_enter_hibernate                 	0x47b8
+#define	mem_24g_enter_lpm_timer                 	0x47c0
+#define	mem_24g_pairing_sm                      	0x47c1
+#define	mem_24g_addr_copy                       	0x47c2
+#define	mem_24g_sifs                            	0x47c6
+#define	mem_24g_rxcnt                           	0x47c7
+#define	mem_24g_addr_private_dongle             	0x47c8
+#define	mem_24g_map_buff0_dongle                	0x47cc
+#define	mem_24g_channel_cnt_dongle              	0x47cd
+#define	mem_24g_pairing_sm_dongle               	0x47ce
+#define	mem_24g_tx_btclk_dongle                 	0x47cf
+#define	mem_24g_interval_dongle                 	0x47d3
+#define	mem_24g_ch_update_dongle                	0x47d4
+#define	mem_24g_rx_sync_dongle                  	0x47d5
+#define	mem_24g_ch_cnt_dongle                   	0x47d6
+#define	mem_24g_rxbuf_temp_dongle               	0x47d7
+#define	mem_24g_rxbuf_dongle                    	0x47dd
+#define	mem_24g_rxfail_cnt_dongle               	0x47e3
+#define	mem_24g_spi_enable_flag                 	0x47e6
+#define	mem_acl_credits                         	0x4729
+#define	mem_allow_switch                        	0x472b
+#define	mem_hci_acl_queue_start                 	0x472c
+#define	mem_hci_wake_clk                        	0x4730
+#define	mem_kb_state                            	0x4729
+#define	mem_kb_report_data                      	0x472b
+#define	mem_kb_keys                             	0x4731
+#define	mem_kb_rcv_led_data                     	0x4732
+#define	mem_kb_fast_wake_last                   	0x4733
+#define	mem_led_cap_gpio                        	0x4737
+#define	mem_led_num_gpio                        	0x4738
+#define	mem_led_scl_gpio                        	0x4739
+#define	mem_kb_current_vdd_value_10times        	0x473a
+#define	mem_kb_read_adc_cnt_100ms               	0x473c
+#define	mem_kb_current_vdd_value                	0x473d
+#define	mem_led_power_blink_count               	0x473f
+#define	mem_led_power_500ms_cnt                 	0x4740
+#define	mem_kb_map2                             	0x4741
+#define	mem_3v1_adc_default                     	0x49fd
+#define	mem_kb_map                              	0x49ff
+#define	mem_kb_discovery_timer                  	0x4a9d
+#define	mem_kb_direct_timer                     	0x4a9f
+#define	mem_kb_no_data_timer                    	0x4aa1
+#define	mem_kb_direct_timeout                   	0x4aa3
+#define	mem_kscn_event_last                     	0x4aa5
+#define	mem_kscan_event_num_last                	0x4aa6
+#define	mem_auto_enable_mult_timer              	0x4aa7
+#define	mem_auto_enable_mult_timer_init         	0x4aa8
+#define	mem_kb_temp_flag                        	0x4aa9
+#define	mem_map2_out_report0                    	0x4aaa
+#define	mem_map2_out_report1                    	0x4ab2
+#define	mem_table_last_repory_data0             	0x4aba
+#define	mem_table_last_repory_data1             	0x4ac2
+#define	mem_kb_down                             	0x4aca
+#define	mem_kb_down_last                        	0x4ad4
+#define	mem_table_temp                          	0x4ade
+#define	mem_pincode_vk_last                     	0x4ae6
+#define	mem_kb_device_button_last               	0x4ae7
+#define	mem_kb_device_button_timer              	0x4ae8
+#define	mem_kb_current_status                   	0x4ae9
+#define	mem_seq                                 	0x4aea
+#define	mem_dorx_cnt                            	0x4aeb
+#define	mem_matched_btclk                       	0x4aec
+#define	mem_master_sniff_interval               	0x4aee
+#define	mem_led_power_gpio                      	0x4aef
+#define	mem_kb_check_vdd_count                  	0x4af0
+#define	mem_0v_adc_data                         	0x4af2
+#define	mem_2v2_adc_data                        	0x4af4
+#define	mem_3v_adc_data                         	0x4af6
+#define	mem_select_system_led_timer             	0x4af8
+#define	mem_led_cap_gpio_status                 	0x4af9
+#define	mem_kb_no_data_timeout                  	0x4afa
+#define	mem_kb_gpio_last_val                    	0x4afc
+#define	mem_store_current_status                	0x4b00
+#define	mem_kb_led_on_timer                     	0x4b01
+#define	mem_kb_debug_sm                         	0x4b02
+#define	mem_kb_mode                             	0x4b03
+#define	mem_kb_mode_revese                      	0x4b05
+#define	mem_master_addr                         	0x4b07
+#define	mem_led_device_blink_count              	0x4b0d
+#define	mem_led_device_500ms_cnt                	0x4b0e
+#define	mem_kb_caps_led_status                  	0x4b0f
+#define	mem_kb_reconnection_ssp                 	0x4b10
+#define	mem_kb_rcv_hid_control_rsp              	0x4b11
+#define	mem_kb_down_regroup                     	0x4b12
+#define	mem_kb_get_fn_flag                      	0x4b17
+#define	mem_kb_kscan_cnt                        	0x4b18
+#define	mem_kb_down_test                        	0x4b19
+#define	mem_kb_release_fn_data                  	0x4b23
+#define	mem_led_cap_delay_timer                 	0x4b24
+#define	mem_led_cap_mult_timer                  	0x4b25
+#define	mem_led_cap_flag                        	0x4b26
+#define	mem_hid_rx_data                         	0x4b27
+#define	mem_kb_fn_c                             	0x4b28
+#define	mem_kb_c_fn                             	0x4b29
+#define	mem_keyboard_uuid_list                  	0x4b2a
+#define	mem_keyboard_uuid_list_end              	0x4db4
+#define	mem_keyboard_le_att_list                	0x4db4
+#define	mem_keyboard_le_att_list_end            	0x4fa8
+#define	mem_module_wake_up_gpio                 	0x4729
+#define	mem_module_state_gpio                   	0x472a
+#define	mem_module_connect_state_gpio           	0x472b
+#define	mem_current_packet_length               	0x472c
+#define	mem_module_state                        	0x472e
+#define	mem_module_task                         	0x472f
+#define	mem_cmode_addr                          	0x4730
+#define	mem_module_mcu_wake_pin                 	0x4736
+#define	mem_module_mcu_wake_delay_us            	0x4737
+#define	mem_module_spp_lpm_mult                 	0x473b
+#define	mem_module_le_lpm_mult                  	0x473c
+#define	mem_module_bluetooth_stauts_by_command  	0x473d
+#define	mem_module_uart_rx_buffer               	0x473e
+#define	mem_module_uart_rx_buffer_end           	0x4740
+#define	mem_module_uart_tx_buffer               	0x4742
+#define	mem_module_uart_tx_buffer_end           	0x4744
+#define	mem_module_read_vdd_flag                	0x4746
+#define	mem_module_read_vdd_count               	0x4747
+#define	mem_module_vdd_quotient                 	0x4748
+#define	mem_module_vdd_remainder                	0x4749
+#define	mem_module_le_buff_len                  	0x474a
+#define	mem_module_le_buff_len_all              	0x474c
+#define	mem_module_le_buff_data_len_all         	0x474e
+#define	mem_module_le_continue_flag             	0x4750
+#define	mem_module_le_rx_data_len               	0x4751
+#define	mem_module_le_rx_data_address           	0x4752
+#define	mem_module_le_rx_data_handle            	0x4754
+#define	mem_module_data_write_handle            	0x4756
+#define	mem_module_data_write_handle2           	0x4758
+#define	mem_module_flag                         	0x475a
+#define	mem_le_notify_type                      	0x475b
+#define	mem_module_hci_notify_start             	0x475c
+#define	mem_module_hci_notify_offset            	0x475e
+#define	mem_module_hci_notify_len               	0x4760
+#define	mem_module_hci_notify_att               	0x4762
+#define	mem_module_hci_notify_original_len      	0x4764
+#define	mem_module_uuid_list                    	0x4766
+#define	mem_module_uuid_list_end                	0x4892
+#define	mem_module_le_att_list                  	0x4892
+#define	mem_module_le_att_list_end              	0x4a86
+#define	mem_nv_data                             	0x4a86
+#define	mem_nv_data0                            	0x4a86
+#define	mem_nv_data1                            	0x4aa8
+#define	mem_nv_data2                            	0x4aca
+#define	mem_nv_data3                            	0x4aec
+#define	mem_nv_data4                            	0x4b0e
+#define	mem_mouse_key                           	0x4729
+#define	mem_mouse_x                             	0x472a
+#define	mem_mouse_y                             	0x472c
+#define	mem_mouse_z                             	0x472e
+#define	mem_mouse_tz                            	0x472f
+#define	mem_mouse_xy_h                          	0x4730
+#define	mem_sensor_shutter_hi                   	0x4731
+#define	mem_sensor_shutter_lo                   	0x4732
+#define	mem_sensor_smart_flag                   	0x4733
+#define	mem_sensor_squal_reg                    	0x4734
+#define	mem_mouse_move_flag                     	0x4735
+#define	mem_reconnect_timeout                   	0x4736
+#define	mem_mouse_direct_timeout                	0x4737
+#define	mem_mouse_no_data_timeout               	0x4739
+#define	mem_mouse_blank_data_timeout            	0x473b
+#define	mem_mouse_discovery_timer               	0x473d
+#define	mem_mouse_direct_timer                  	0x473f
+#define	mem_mouse_no_data_timer                 	0x4741
+#define	mem_mouse_blank_data_timer              	0x4743
+#define	mem_mouse_send_blank_timer              	0x4745
+#define	mem_mouse_dpi                           	0x4746
+#define	mem_mouse_dpi_button_state              	0x4747
+#define	mem_mouse_test_cnt                      	0x4748
+#define	mem_le_hibernate_timer                  	0x4749
+#define	mem_mouse_mode_state                    	0x474b
+#define	mem_mouse_le_notify_handle              	0x474c
+#define	mem_lbutton_gpio                        	0x474d
+#define	mem_rbutton_gpio                        	0x474e
+#define	mem_mbutton_gpio                        	0x474f
+#define	mem_sbutton1_gpio                       	0x4750
+#define	mem_sbutton2_gpio                       	0x4751
+#define	mem_dpi_button_gpio                     	0x4752
+#define	mem_sensor_data_gpio                    	0x4753
+#define	mem_whee_a_data_gpio                    	0x4754
+#define	mem_whee_b_data_gpio                    	0x4755
+#define	mem_sensor_reset_gpio                   	0x4756
+#define	mem_device1_led_gpio                    	0x4757
+#define	mem_device2_led_gpio                    	0x4758
+#define	mem_device3_led_gpio                    	0x4759
+#define	mem_conn_cnt                            	0x475a
+#define	mem_whee_ta_data_gpio                   	0x475b
+#define	mem_whee_tb_data_gpio                   	0x475c
+#define	mem_wheel_tb_old_pinlevel               	0x475d
+#define	mem_wheel_tb_new_pinlevel               	0x475e
+#define	mem_wheel_tog                           	0x475f
+#define	mem_mouse_tz_data                       	0x4760
+#define	mem_mouse_tz_data_count                 	0x4761
+#define	mem_mouse_tz_data_count1                	0x4762
+#define	mem_mwhee_a_data_gpio                   	0x4763
+#define	mem_mwhee_b_data_gpio                   	0x4764
+#define	mem_mwheel_b_old_pinlevel               	0x4765
+#define	mem_mwheel_b_new_pinlevel               	0x4766
+#define	mem_mwheel_tog                          	0x4767
+#define	mem_mouse_z_data                        	0x4768
+#define	mem_mouse_z_data_count                  	0x4769
+#define	mem_mouse_z_data_count1                 	0x476a
+#define	mem_reconn_mode                         	0x476b
+#define	mem_mouse_statue_led_timer              	0x476c
+#define	mem_device_flag                         	0x476d
+#define	mem_mouse_uuid_list                     	0x476e
+#define	mem_mouse_uuid_list_end                 	0x4a5c
+#define	mem_mouse_le_att_list                   	0x4a5c
+#define	mem_mouse_le_att_list_end               	0x4cb4
+#define	mem_shutter_send_data                   	0x4729
+#define	mem_shutter_key_temp                    	0x472d
+#define	mem_shutter_send_length                 	0x472e
+#define	mem_shutter_clkn_bt_last                	0x472f
+#define	mem_shutter_key                         	0x4733
+#define	mem_shutter_flag                        	0x4734
+#define	mem_shutter_cable_unplug_conut          	0x4735
+#define	mem_shutter_hid_disconn_count           	0x4736
+#define	mem_shutter_1key_send_sm                	0x4737
+#define	mem_shutter_iphonekey_gpio              	0x4738
+#define	mem_shutter_androidkey_gpio             	0x4739
+#define	mem_shutter_key_number                  	0x473a
+#define	mem_read_eeprom_temp                    	0x473b
+#define	mem_read_eeprom_mac_addr                	0x473c
+#define	mem_scale_tx_length                     	0x473f
+#define	mem_scale_txbuff_inuse                  	0x4740
+#define	mem_adv_lap_ptr                         	0x4741
+#define	mem_le_sleep_flag                       	0x4743
+#define	mem_rx_window_sniff_inc                 	0x4744
+#define	mem_pair_state                          	0x4746
+#define	mem_exchange_mtu_req                    	0x4747
+#define	mem_le_sleep_timeout                    	0x4748
+#define	mem_le_sleep_timeout_timer_count        	0x474a
+#define	mem_le_fast_adv_timeout                 	0x474c
+#define	mem_le_fast_adv_timeout_timer_count     	0x474e
+#define	mem_led_fast_dark_time                  	0x4750
+#define	mem_led_fast_light_time                 	0x4752
+#define	mem_power_on_pin                        	0x4754
+#define	mem_hard_soft_switch_case               	0x4755
+#define	mem_shutter_powerup_flag                	0x4756
+#define	mem_shutter_button_timeout              	0x4757
+#define	mem_shutter_button_timer                	0x4758
+#define	mem_power_timeout                       	0x4759
+#define	mem_power_timer                         	0x475a
+#define	mem_enable_key_scan                     	0x475b
+#define	mem_packet_interval_set                 	0x475c
+#define	mem_shutter_led_num                     	0x475e
+#define	mem_led_map                             	0x475f
+#define	mem_fast_adv_led_style                  	0x4763
+#define	mem_fa_led_type                         	0x4763
+#define	mem_fa_led_pin                          	0x4764
+#define	mem_fa_led_on_time                      	0x4765
+#define	mem_fa_led_off_time                     	0x4767
+#define	mem_fa_blink_count                      	0x4769
+#define	mem_slow_adv_led_style                  	0x476a
+#define	mem_sa_led_type                         	0x476a
+#define	mem_sa_led_pin                          	0x476b
+#define	mem_sa_led_on_time                      	0x476c
+#define	mem_sa_led_off_time                     	0x476e
+#define	mem_sa_blink_count                      	0x4770
+#define	mem_power_on_led_style                  	0x4771
+#define	mem_po_led_type                         	0x4771
+#define	mem_po_led_pin                          	0x4772
+#define	mem_po_led_on_time                      	0x4773
+#define	mem_po_led_off_time                     	0x4775
+#define	mem_po_blink_count                      	0x4777
+#define	mem_powe_off_led_style                  	0x4778
+#define	mem_pf_led_type                         	0x4778
+#define	mem_pf_led_pin                          	0x4779
+#define	mem_pf_led_on_time                      	0x477a
+#define	mem_pf_led_off_time                     	0x477c
+#define	mem_pf_blink_count                      	0x477e
+#define	mem_connected_led_style                 	0x477f
+#define	mem_co_led_type                         	0x477f
+#define	mem_co_led_pin                          	0x4780
+#define	mem_co_led_on_time                      	0x4781
+#define	mem_co_led_off_time                     	0x4783
+#define	mem_co_blink_count                      	0x4785
+#define	mem_key_led_style                       	0x4786
+#define	mem_key_led_style_ind_0                 	0x4786
+#define	mem_key_led_style_ind_0_data            	0x4786
+#define	mem_key_led_style_ind_1                 	0x478d
+#define	mem_key_led_style_ind_1_data            	0x478d
+#define	mem_key_led_style_ind_2                 	0x4794
+#define	mem_key_led_style_ind_2_data            	0x4794
+#define	mem_key_led_style_ind_3                 	0x479b
+#define	mem_key_led_style_ind_key_release       	0x479b
+#define	mem_key_led_style_ind_3_data            	0x479b
+#define	mem_temp_led_style                      	0x47a2
+#define	mem_temp_led_type                       	0x47a2
+#define	mem_temp_led_pin                        	0x47a3
+#define	mem_temp_led_on_time                    	0x47a4
+#define	mem_temp_led_off_time                   	0x47a6
+#define	mem_temp_blink_count                    	0x47a8
+#define	mem_shutter_key_num                     	0x47a9
+#define	mem_key_conf0                           	0x47aa
+#define	mem_key_conf0_pin                       	0x47aa
+#define	mem_key_conf0_led                       	0x47ab
+#define	mem_key_conf1                           	0x47ac
+#define	mem_key_conf1_pin                       	0x47ac
+#define	mem_key_conf1_led                       	0x47ad
+#define	mem_key_conf2                           	0x47ae
+#define	mem_key_conf2_pin                       	0x47ae
+#define	mem_key_conf2_led                       	0x47af
+#define	mem_key_conf3                           	0x47b0
+#define	mem_key_conf3_pin                       	0x47b0
+#define	mem_key_conf3_led                       	0x47b1
+#define	mem_key_conf4                           	0x47b2
+#define	mem_key_conf4_pin                       	0x47b2
+#define	mem_key_conf4_led                       	0x47b3
+#define	mem_key_conf5                           	0x47b4
+#define	mem_key_conf5_pin                       	0x47b4
+#define	mem_key_conf5_led                       	0x47b5
+#define	mem_key_value_temp                      	0x47b6
+#define	mem_key_value                           	0x47b8
+#define	mem_key_packet_count                    	0x47ba
+#define	mem_key_next_addr                       	0x47bb
+#define	mem_key_value_temp1                     	0x47bd
+#define	mem_key_value_temp2                     	0x47be
+#define	mem_key_value_temp3                     	0x47bf
+#define	mem_key_value_temp4                     	0x47c0
+#define	mem_key_value_temp5                     	0x47c1
+#define	mem_key_value_temp6                     	0x47c2
+#define	mem_key0_press                          	0x47c3
+#define	mem_key0_release                        	0x47d7
+#define	mem_key1_press                          	0x47eb
+#define	mem_key1_release                        	0x47f9
+#define	mem_key2_press                          	0x4807
+#define	mem_key2_release                        	0x4815
+#define	mem_key3_press                          	0x4823
+#define	mem_key3_release                        	0x4831
+#define	mem_key4_press                          	0x483f
+#define	mem_key4_release                        	0x484d
+#define	mem_key5_press                          	0x485b
+#define	mem_key5_release                        	0x4869
+#define	mem_queue_ele_num                       	0x4877
+#define	mem_queue_read                          	0x4878
+#define	mem_queue_write                         	0x487a
+#define	mem_queue_start                         	0x487c
+#define	mem_data_ele0                           	0x487c
+#define	mem_data_ele1                           	0x4886
+#define	mem_data_ele2                           	0x4890
+#define	mem_data_ele3                           	0x489a
+#define	mem_data_ele4                           	0x48a4
+#define	mem_data_ele5                           	0x48ae
+#define	mem_queue_end                           	0x48b8
+#define	mem_queue_temp                          	0x48b8
+#define	mem_shutter_key_data_flag               	0x48ba
+#define	mem_shutter_key_data_flag_1             	0x48bb
+#define	mem_le_find_type_value_start_handle     	0x48bc
+#define	mem_le_find_type_value_end_handle       	0x48be
+#define	mem_shutter_find_type_value_flag        	0x48c0
+#define	mem_le_uuid                             	0x48c1
+#define	mem_send_updata_le_param_timer          	0x48c2
+#define	mem_le_smp_key_dist                     	0x48c3
+#define	mem_ltk_states                          	0x48c6
+#define	mem_shutter_conn_update_timer           	0x48c7
+#define	mem_empty_count                         	0x48c8
+#define	mem_shutter_notification_len            	0x48c9
+#define	mem_shutter_notification_addr           	0x48ca
+#define	mem_shutter_le_att_list                 	0x48cc
+#define	mem_current_event                       	0x4729
+#define	mem_ipc_lock_rx_data_bt                 	0x472a
+#define	mem_ipc_lock_rx_data_c51                	0x472b
+#define	mem_ipc_lock_tx_data_bt                 	0x472c
+#define	mem_ipc_lock_tx_data_c51                	0x472d
+#define	mem_ipc_2bt_fifo_head                   	0x472e
+#define	mem_ipc_2bt_fifo_end                    	0x47c4
+#define	mem_ipc_2bt_read_index                  	0x47c4
+#define	mem_ipc_2bt_write_index                 	0x47c6
+#define	mem_ipc_2C51_fifo_head                  	0x47c8
+#define	mem_ipc_2C51_fifo_end                   	0x482c
+#define	mem_ipc_2C51_read_index                 	0x482c
+#define	mem_ipc_2C51_write_index                	0x482e
+#define	mem_c51_private_area                    	0x4830
+#define	mem_ipc_tx_evt_buff                     	0x4894
+#define	mem_ipc_tx_evt                          	0x4896
+#define	mem_ipc_rx_type                         	0x4897
+#define	mem_ipc_bt_timer                        	0x4898
+#define	mem_ipc_c51_timer                       	0x489a
+#define	mem_ipc_bt_100ms_timer                  	0x489c
+#define	mem_ipc_c51_100ms_timer                 	0x489d
+#define	mem_ipc_last_check_timer                	0x489e
+#define	mem_new_24g_rxbuf                       	0x48a2
+#define	mem_new_24g_txbuf                       	0x48c4
+#define	mem_new_24g_txpayload                   	0x48e4
+#define	mem_new_24g_rxpayload                   	0x4906
+#define	mem_new_24g_rxdata_length               	0x4926
+#define	mem_new_24g_pid                         	0x4927
+#define	mem_new_24g_datalen                     	0x4928
+#define	mem_new_24g_data_type                   	0x4929
+#define	mem_new_24g_txlen                       	0x492a
+#define	mem_new_24g_rx_window                   	0x492b
+#define	mem_new_24g_ensure                      	0x492d
+#define	mem_new_24g_txfail_cnt                  	0x492e
+#define	mem_new_24g_get_ack_fail                	0x4930
+#define	mem_new_24g_retry                       	0x4931
+#define	mem_new_24g_ch                          	0x4932
+#define	mem_new_24g_current_ch_number           	0x4933
+#define	mem_new_24g_paring_addr                 	0x4934
+#define	mem_new_24g_pairing_sm                  	0x4938
+#define	mem_new_24g_ch_map1                     	0x4939
+#define	mem_new_24g_ch_map2                     	0x493d
+#define	mem_new_24g_ch_map3                     	0x4941
+#define	mem_new_24g_ch_map4                     	0x4945
+#define	mem_new_24g_tx_btclk                    	0x4949
+#define	mem_new_24g_interval                    	0x494d
+#define	mem_new_24g_interval_min                	0x494e
+#define	mem_new_24g_interval_max                	0x494f
+#define	mem_new_24g_addr                        	0x4950
+#define	mem_new_24g_abort_pac                   	0x4954
+#define	mem_new_24g_sync_pac                    	0x4955
+#define	mem_new_24g_check_dongle_times          	0x4956
+#define	mem_new_24g_enter_hibernate             	0x4958
+#define	mem_new_24g_device_addr                 	0x4960
+#define	mem_new_24g_pac_index                   	0x4964
+#define	mem_new_24g_no_ack                      	0x4965
+#define	mem_new_24g_sta_crc                     	0x4966
+#define	mem_new_24g_last_crc                    	0x4969
+#define	mem_new_24g_sta_pid                     	0x496c
+#define	mem_new_24g_last_pid                    	0x496d
+#define	mem_new_24g_max_retry                   	0x496e
+#define	mem_new_24g_mode                        	0x496f
+#define	mem_new_uart_packet                     	0x4970
+#define	mem_new_24g_common_temp                 	0x4990
+#define	mem_new_24g_rf_last_sta                 	0x49b0
+#define	mem_new_24g_rf_hop_ch                   	0x49b1
+#define	mem_new_24g_sync_cnt                    	0x49b2
+#define	mem_new_24g_hop_pac_retry               	0x49b3
+#define	mem_new_24g_rf_work_stage               	0x49b4
+#define	mem_new_24g_hop_fastly_cnt              	0x49b5
+#define	mem_new_24g_auto_paring_switch          	0x49b6
+#define	mem_new_24g_key_wheel_event             	0x49b7
+#define	mem_new_24g_delay_long_sleep_cnt        	0x49b8
+#define	mem_new_24g_delay_long_sleep_maxcnt     	0x49b9
+#define	mem_new_24g_enter_lpm_timer             	0x49ba
+#define	mem_new_24g_syncword                    	0x49bb
+#define	mem_new_24g_syncword_crc8               	0x49bd
+#define	mem_new_24g_get_syncword_crc8           	0x49be
+#define	mem_new_24g_paccnt                      	0x49bf
+#define	mem_new_24g_ota_enable                  	0x49c0
+#define	mem_bt_wakeup_from_long_mult            	0x49c1
+#define	mem_bt_motion_event                     	0x49c2
+#define	mem_tx_power_temp                       	0x49c3
+#define	mem_power_ctrl_level                    	0x49c4
+#define	mem_power_ctrl_pac_succ_cnt             	0x49c5
+#define	mem_rssi_signal_buf                     	0x49c6
+#define	mem_rssi_signal_index                   	0x49ce
+#define	mem_rssi_hex_received                   	0x49cf
+#define	mem_rssi_avg_received                   	0x49d0
+#define	mem_last_txlch                          	0x49d1
+#define	mem_last_txlen                          	0x49d2
+#define	mem_last_txdata                         	0x49d4
+#define	mem_device_uuid_list                    	0x49e8
+#define	mem_device_uuid_list_end                	0x4c40
+#define	mem_device_le_att_list                  	0x4c40
+#define	mem_device_le_att_list_end              	0x4e20
+#define	mem_empty_count_user                    	0x4e20
+#define	mem_hid_buff                            	0x4e21
+#define	mem_adc_0v                              	0x4e41
+#define	mem_adc_3v                              	0x4e43
+#define	mem_hibernate_flag                      	0x4e45
+#define	mem_new_supervision_to                  	0x4e46
+#define	mem_le_rx_winsows                       	0x4e48
+#define	mem_le_att_report1                      	0x4e4c
+#define	mem_le_att_report2                      	0x4e4e
+#define	mem_le_slave_update_param_timer         	0x4e50
+#define	mem_le_slave_update_mult_timer          	0x4e51
+#define	mem_le_reconn_enable_notify_timer       	0x4e52
+#define	mem_le_reconn_flag                      	0x4e53
+#define	mem_le_buff_temp                        	0x4e54
+#define	mem_le_rx_window_inc                    	0x4e60
+#define	mem_le_prepare_tx_retransmited_number   	0x4e62
+#define	mem_last_check_clk                      	0x4e63
+#define	mem_hid_send_handshake                  	0x4e67
+#define	mem_feature_ext_page_number             	0x4e68
+#define	mem_rf_init_data_new                    	0x4e69
+#define	mem_short_lpm_interval_param            	0x4e74
+#define	mem_short_lpm_enable                    	0x4e78
+#define	mem_short_lpm_tx_cnt                    	0x4e79
+#define	mem_ckln_24g_short_lpm                  	0x4e7a
+#define	mem_send_data_24g_short_lpm             	0x4e7d
+#define	mem_short_lpm_interval_cnt              	0x4e7e
+#define	mem_ipc_is_ready                        	0x4e7f
+#define	mem_short_data_wheel                    	0x4e80
+#define	mem_ble_data_wheel                      	0x4e81
+#define	mem_ble_data_wheel_lpm_timer            	0x4e82
+#define	mem_bt_read_ipc_count                   	0x4e83
+#define	mem_51_read_sensor_count                	0x4e84
+#define	mem_queue_write_prt                     	0x4e85
+#define	mem_queue_read_ptr                      	0x4e86
+#define	mem_queue_buffer0                       	0x4e87
+#define	mem_queue_buffer1                       	0x4e8e
+#define	mem_queue_buffer2                       	0x4e95
+#define	mem_queue_buffer3                       	0x4e9c
+#define	mem_ble_read_ipc_fifo_once              	0x4ea3
+#define	mem_ble_send_flag                       	0x4ea4
+#define	mem_mouse_le_pairing_flag               	0x4ea5
+#define	mem_le_mouse_fast_conn_flag             	0x4ea6
+#define	mem_le_start_adv                        	0x4ea7
+#define	mem_le_start_fast_conn_count            	0x4ea8
+#define	mem_mouse_eeprom_base                   	0x4ea9
+#define	mem_mouse_reconn_addr                   	0x4eab
+#define	mem_mouse_le_reconn_addr_data           	0x4ead
+#define	mem_mouse_24g_reconn_addr_data          	0x4eb3
+#define	mem_le_fast_conn_finished               	0x4eb9
+#define	mem_le_init_eeprom_base_count           	0x4eba
+#define	mem_32asm_data_end                      	0x4ebb
+#define	mem_mult_time_arrive_flag               	0x4ebb
+#endif
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/c.bat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/c.bat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/c.bat	(working copy)
@@ -0,0 +1,10 @@
+perl util\hex2mif.pl < output\fw.hex ram > output\fwram.rom
+copy .\patch\patch.dat + .\patch\user.dat + .\patch\rf.dat .\patch\sch.rom 
+perl util\transform_name2addr.pl .\patch\sch.rom .\output\sched.rom .\patch\memmap.format
+copy .\patch\ramcode.rom .\output\
+copy .\patch\geneep.exe .\output\
+@rem copy .\patch\*.obj .\output\*.obj
+cd output
+geneep geneep ramcode.rom fwram.rom sched.rom
+cd ..
+:end
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/common.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/common.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/common.h	(working copy)
@@ -0,0 +1,12 @@
+#ifndef _YC_INCLUDE_H_
+#define _YC_INCLUDE_H_
+#include "type.h"
+#include "btreg.h"
+#include "hwreg.h"
+#include "sys.h"
+#include "utilities.h"
+#include "REG320.H"
+
+//void mouseTimer4ms();
+#endif
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/e.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/e.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/e.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/e.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/e.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/eeprom.da
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/eeprom.da	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/eeprom.da	(working copy)
@@ -0,0 +1,16239 @@
+00
+02
+aa
+55
+ae
+18
+c5
+12
+80
+16
+c0
+01
+80
+2e
+c0
+02
+00
+31
+c0
+03
+00
+3a
+c0
+04
+80
+4c
+c0
+12
+80
+50
+c0
+13
+00
+60
+c0
+14
+80
+66
+c0
+1f
+80
+71
+c0
+26
+00
+79
+c0
+28
+00
+88
+c0
+45
+80
+94
+c0
+53
+80
+a0
+c0
+54
+00
+a7
+c0
+54
+80
+ba
+c0
+56
+00
+bf
+c0
+5a
+03
+a9
+c0
+5a
+80
+d8
+c0
+5b
+00
+df
+c0
+5b
+80
+fc
+c0
+64
+01
+28
+20
+20
+00
+2d
+c0
+0d
+81
+47
+c0
+11
+81
+4a
+c0
+17
+81
+6e
+c0
+18
+81
+84
+c0
+19
+01
+9a
+c0
+19
+81
+ab
+c0
+1e
+01
+b9
+c0
+1f
+01
+cc
+c0
+1f
+81
+da
+c0
+21
+01
+f6
+c0
+26
+81
+fb
+c0
+2a
+82
+15
+c0
+2b
+02
+1d
+c0
+2c
+02
+24
+c0
+2f
+02
+43
+c0
+4a
+82
+4b
+c0
+57
+02
+52
+c0
+64
+02
+5d
+c0
+79
+82
+ab
+c0
+7b
+82
+b7
+c0
+7c
+02
+f2
+c0
+7c
+83
+05
+20
+20
+00
+2d
+20
+20
+00
+2d
+20
+40
+03
+0f
+20
+40
+03
+42
+20
+20
+30
+1b
+20
+40
+30
+43
+20
+40
+3d
+60
+20
+40
+30
+9e
+20
+40
+33
+3e
+20
+40
+33
+b3
+20
+40
+30
+29
+20
+40
+04
+3f
+20
+40
+3c
+53
+20
+20
+30
+19
+20
+40
+00
+3c
+20
+20
+30
+3b
+68
+08
+80
+15
+df
+20
+00
+03
+da
+20
+40
+40
+18
+40
+84
+01
+28
+41
+fe
+03
+24
+20
+80
+43
+d8
+40
+00
+00
+60
+08
+80
+15
+18
+4f
+fe
+50
+9a
+20
+8c
+00
+e8
+c0
+80
+00
+c3
+00
+b2
+76
+18
+c0
+8c
+01
+e8
+c1
+00
+00
+20
+3a
+32
+76
+20
+20
+32
+78
+60
+0c
+09
+c6
+20
+40
+7e
+e2
+68
+0c
+09
+c6
+20
+20
+30
+7c
+78
+54
+7c
+00
+68
+01
+00
+32
+d8
+40
+ff
+ff
+98
+46
+7c
+00
+24
+62
+80
+00
+68
+02
+00
+34
+20
+38
+00
+59
+9d
+06
+7e
+00
+20
+20
+00
+5a
+9c
+46
+7e
+00
+1f
+e6
+7c
+04
+24
+61
+00
+00
+18
+00
+7e
+00
+60
+01
+00
+32
+78
+34
+7c
+00
+20
+60
+00
+00
+60
+0a
+00
+34
+70
+45
+f4
+01
+58
+00
+ff
+ff
+60
+01
+00
+32
+70
+00
+73
+01
+20
+60
+00
+00
+20
+40
+3a
+ea
+20
+40
+00
+69
+20
+20
+32
+33
+1c
+40
+c2
+01
+20
+40
+39
+79
+18
+00
+48
+03
+20
+40
+39
+67
+20
+40
+3a
+ee
+20
+40
+3a
+f4
+20
+40
+3b
+05
+20
+20
+36
+c6
+20
+40
+3c
+a0
+20
+40
+3b
+22
+20
+21
+34
+3e
+20
+40
+31
+cd
+24
+34
+34
+3e
+20
+40
+37
+75
+24
+3a
+34
+27
+20
+60
+00
+00
+20
+40
+32
+83
+24
+22
+b5
+08
+68
+00
+80
+47
+c3
+01
+b5
+11
+68
+00
+c1
+65
+c0
+09
+b5
+02
+68
+01
+48
+87
+1f
+e6
+7c
+14
+24
+21
+35
+02
+60
+01
+42
+7e
+68
+00
+c8
+86
+60
+00
+c2
+7d
+58
+00
+48
+89
+60
+01
+01
+6e
+20
+20
+35
+02
+68
+01
+42
+7e
+60
+01
+48
+87
+1f
+e6
+7c
+14
+24
+21
+35
+2f
+98
+00
+72
+00
+68
+00
+c2
+7d
+60
+00
+c8
+86
+68
+01
+01
+6e
+98
+00
+0c
+00
+d8
+a0
+48
+89
+20
+40
+7e
+cd
+20
+20
+35
+2f
+20
+40
+3c
+d2
+20
+40
+3a
+5f
+70
+80
+42
+06
+68
+10
+89
+68
+79
+20
+7e
+07
+60
+10
+89
+68
+79
+3f
+fe
+07
+60
+10
+89
+68
+79
+20
+7e
+07
+60
+10
+89
+68
+70
+80
+42
+05
+20
+20
+3a
+0c
+20
+40
+3c
+2b
+68
+00
+ce
+73
+20
+7a
+00
+00
+70
+4e
+73
+00
+1c
+42
+7e
+00
+60
+02
+4a
+12
+20
+60
+00
+00
+20
+40
+3b
+e2
+68
+01
+c2
+0f
+20
+7a
+00
+00
+68
+01
+40
+42
+d8
+40
+ff
+ff
+98
+46
+7c
+00
+20
+62
+80
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+20
+40
+48
+16
+24
+7a
+00
+00
+20
+40
+3d
+0e
+24
+7a
+00
+00
+20
+40
+3a
+7b
+68
+00
+c6
+e2
+20
+3a
+3c
+5e
+68
+00
+c6
+39
+20
+7a
+00
+00
+20
+20
+3c
+5e
+20
+40
+00
+c4
+24
+74
+00
+00
+68
+00
+8b
+2b
+24
+7a
+00
+00
+20
+20
+3c
+6a
+20
+40
+00
+c4
+24
+74
+00
+00
+68
+00
+8b
+2b
+24
+7a
+00
+00
+20
+20
+3c
+8c
+20
+40
+00
+cf
+24
+74
+00
+00
+20
+40
+00
+cc
+24
+74
+00
+00
+70
+0b
+2b
+01
+70
+0b
+2a
+01
+20
+40
+00
+d4
+20
+20
+00
+cf
+68
+01
+49
+a0
+68
+09
+49
+a2
+20
+20
+00
+d1
+68
+01
+49
+38
+68
+09
+49
+3a
+98
+46
+7c
+00
+20
+22
+e4
+c0
+20
+20
+31
+d4
+68
+00
+8b
+2a
+20
+00
+00
+0a
+c0
+80
+00
+d4
+20
+60
+00
+00
+70
+00
+16
+27
+70
+01
+50
+00
+70
+01
+7e
+00
+70
+01
+7f
+00
+58
+00
+00
+00
+60
+02
+88
+d2
+20
+60
+00
+00
+da
+20
+46
+f0
+20
+40
+7f
+95
+20
+7a
+00
+00
+1f
+e2
+26
+00
+20
+40
+00
+e5
+20
+20
+3d
+9b
+c1
+0c
+00
+00
+c0
+03
+00
+eb
+c0
+0a
+00
+ec
+c0
+0a
+80
+f2
+c0
+14
+80
+fa
+20
+20
+3d
+73
+20
+20
+5e
+df
+70
+42
+12
+00
+70
+4e
+7f
+00
+20
+40
+3e
+61
+20
+40
+3e
+59
+20
+40
+3e
+7f
+20
+20
+3d
+c2
+70
+44
+b2
+00
+70
+42
+12
+00
+70
+4e
+7f
+00
+70
+45
+6a
+00
+68
+09
+4e
+7c
+60
+09
+44
+f8
+20
+40
+52
+a0
+20
+20
+3d
+c6
+20
+40
+01
+09
+20
+20
+7e
+3b
+60
+08
+82
+4e
+68
+00
+ca
+10
+1f
+e0
+fe
+01
+60
+00
+ca
+10
+68
+00
+82
+4e
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+82
+4e
+20
+40
+01
+23
+20
+40
+01
+19
+20
+40
+01
+0c
+20
+40
+01
+13
+20
+20
+01
+00
+20
+40
+3e
+7f
+70
+09
+bd
+12
+20
+20
+7d
+90
+68
+00
+ce
+7f
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+7f
+24
+7a
+00
+00
+70
+42
+12
+20
+20
+60
+00
+00
+68
+00
+ce
+80
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+80
+24
+7a
+00
+00
+20
+20
+3e
+6d
+68
+00
+c7
+09
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c7
+09
+24
+7a
+00
+00
+68
+00
+ce
+95
+24
+3a
+01
+21
+20
+20
+3f
+f5
+70
+4e
+95
+00
+20
+60
+00
+00
+68
+00
+c7
+c0
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c7
+c0
+20
+60
+00
+00
+68
+01
+02
+8d
+1f
+e2
+0c
+00
+e8
+c0
+80
+00
+1f
+e1
+04
+0f
+1f
+f1
+fe
+00
+c0
+04
+81
+34
+c0
+03
+bf
+eb
+c0
+05
+01
+39
+c0
+02
+81
+37
+c0
+00
+81
+40
+c0
+02
+3f
+eb
+20
+60
+00
+00
+20
+40
+3f
+eb
+70
+4e
+95
+01
+20
+60
+00
+00
+20
+40
+01
+39
+20
+20
+3f
+e4
+e8
+c0
+80
+00
+c0
+00
+bf
+fa
+c0
+20
+81
+3d
+20
+60
+00
+00
+70
+4a
+0a
+3e
+20
+40
+03
+71
+20
+20
+3e
+52
+18
+42
+7e
+00
+c0
+02
+81
+44
+c0
+01
+bf
+e2
+20
+60
+00
+00
+70
+4a
+0a
+27
+20
+40
+03
+71
+20
+20
+3e
+52
+68
+02
+4e
+76
+60
+02
+45
+96
+20
+20
+4a
+8c
+70
+41
+31
+01
+68
+01
+03
+7c
+68
+09
+03
+82
+98
+46
+7e
+00
+60
+01
+09
+be
+68
+00
+83
+62
+79
+3f
+fe
+05
+79
+3f
+fe
+03
+60
+00
+83
+62
+68
+02
+03
+66
+68
+09
+03
+64
+60
+09
+09
+c6
+98
+46
+22
+00
+68
+00
+c4
+5b
+60
+00
+83
+8d
+e8
+c9
+00
+00
+e8
+c1
+00
+00
+1f
+eb
+fe
+00
+60
+01
+03
+64
+18
+4b
+84
+00
+98
+40
+fe
+00
+e8
+ca
+00
+00
+60
+0a
+03
+8e
+9a
+20
+fe
+00
+1f
+e2
+28
+00
+68
+01
+03
+64
+68
+09
+09
+c6
+98
+46
+7e
+00
+68
+09
+09
+be
+98
+4f
+fe
+00
+9a
+80
+fe
+00
+60
+02
+03
+66
+20
+40
+51
+99
+68
+01
+03
+90
+60
+01
+45
+61
+20
+60
+00
+00
+68
+00
+83
+79
+c2
+82
+81
+80
+70
+4e
+90
+00
+68
+00
+ce
+4e
+24
+3a
+01
+78
+68
+00
+83
+62
+c3
+02
+01
+7c
+68
+00
+83
+03
+20
+3a
+01
+7c
+20
+20
+4f
+87
+68
+00
+ce
+4e
+1f
+e0
+ff
+ff
+60
+00
+ce
+4e
+20
+20
+4f
+87
+68
+00
+c5
+6a
+c0
+81
+01
+7f
+70
+4e
+4e
+03
+20
+20
+4b
+de
+68
+00
+ce
+90
+1f
+e0
+fe
+01
+60
+00
+ce
+90
+20
+60
+00
+00
+68
+00
+c4
+67
+c0
+03
+01
+88
+c0
+01
+01
+93
+20
+20
+4b
+fb
+68
+00
+ce
+81
+c0
+00
+81
+90
+20
+40
+3e
+6d
+18
+00
+04
+01
+20
+34
+cf
+89
+68
+00
+c5
+6a
+c0
+81
+4c
+8f
+20
+20
+4c
+8a
+20
+40
+01
+09
+70
+4e
+80
+03
+20
+20
+4c
+90
+58
+00
+00
+13
+e0
+a0
+80
+00
+20
+40
+4c
+58
+58
+00
+00
+0a
+60
+01
+03
+90
+60
+01
+45
+61
+20
+60
+00
+00
+68
+00
+c4
+6b
+c0
+01
+01
+9f
+c0
+03
+01
+a6
+c0
+03
+cd
+17
+20
+20
+4c
+18
+59
+00
+03
+02
+60
+01
+c4
+dc
+58
+00
+00
+01
+e0
+a0
+80
+00
+58
+01
+00
+10
+e0
+a1
+80
+00
+20
+20
+4c
+cd
+70
+09
+bd
+29
+20
+40
+7d
+86
+70
+09
+bd
+47
+20
+40
+4b
+d6
+20
+20
+4d
+01
+68
+00
+c4
+6b
+c0
+0d
+81
+af
+c0
+0e
+81
+af
+20
+20
+4c
+2b
+d8
+a0
+44
+6c
+68
+09
+4e
+7c
+e0
+a9
+00
+00
+d8
+c0
+4e
+82
+e8
+c0
+80
+00
+1f
+e2
+72
+00
+20
+40
+7e
+cd
+68
+08
+ce
+82
+18
+40
+84
+07
+20
+20
+4f
+89
+1a
+62
+7e
+00
+c0
+00
+01
+bf
+c0
+01
+01
+c2
+c0
+01
+81
+c6
+c0
+05
+01
+ca
+20
+20
+4f
+b9
+70
+41
+31
+00
+70
+4e
+7f
+3c
+20
+20
+50
+1f
+20
+40
+50
+33
+58
+00
+00
+00
+60
+04
+45
+44
+20
+60
+00
+00
+20
+40
+50
+39
+68
+00
+c5
+6a
+c1
+01
+00
+00
+20
+20
+64
+18
+70
+09
+bd
+2b
+20
+20
+4b
+d6
+e8
+c1
+80
+00
+60
+01
+83
+9a
+c0
+09
+01
+d0
+20
+20
+50
+11
+20
+40
+01
+d5
+20
+40
+51
+25
+24
+62
+80
+00
+70
+09
+bd
+13
+20
+20
+4b
+d6
+68
+00
+83
+03
+1f
+e0
+ff
+f9
+1f
+e2
+72
+00
+1f
+22
+24
+00
+20
+20
+51
+35
+68
+00
+c3
+ff
+20
+7a
+00
+00
+d8
+e0
+00
+01
+20
+40
+7e
+e2
+24
+7a
+00
+00
+78
+54
+fc
+00
+78
+28
+7c
+00
+20
+40
+4b
+1e
+20
+40
+49
+d4
+20
+40
+4a
+8a
+24
+36
+81
+ec
+68
+00
+80
+03
+1f
+e0
+fe
+01
+60
+00
+80
+03
+68
+00
+83
+02
+1f
+e1
+7e
+0f
+c0
+01
+81
+f4
+c0
+02
+d1
+af
+18
+0a
+7e
+00
+d8
+40
+01
+ff
+98
+41
+7e
+00
+1f
+e0
+fe
+fa
+1f
+e0
+ff
+ff
+20
+00
+00
+26
+24
+3a
+01
+f0
+20
+20
+51
+94
+20
+40
+4a
+c5
+20
+20
+01
+ec
+68
+02
+45
+96
+d8
+40
+4e
+20
+98
+40
+fe
+00
+60
+02
+45
+96
+20
+20
+51
+a9
+78
+55
+fc
+00
+20
+37
+01
+fe
+24
+36
+82
+0d
+20
+40
+3c
+b7
+68
+01
+41
+61
+60
+01
+03
+70
+68
+00
+83
+02
+2f
+e0
+06
+01
+24
+20
+bc
+cb
+68
+00
+c4
+65
+2f
+e0
+06
+01
+24
+20
+bc
+cb
+20
+40
+4b
+d0
+24
+3a
+3c
+cb
+68
+00
+ce
+90
+1f
+e6
+7c
+01
+24
+21
+3c
+cb
+20
+20
+52
+97
+68
+09
+41
+61
+68
+01
+4e
+8e
+98
+40
+84
+00
+18
+43
+04
+00
+68
+01
+03
+70
+98
+40
+fe
+00
+60
+01
+03
+70
+20
+20
+3c
+c3
+68
+00
+84
+76
+79
+20
+7e
+07
+60
+00
+80
+7d
+c0
+41
+82
+1a
+20
+20
+53
+84
+68
+00
+84
+77
+60
+00
+ce
+96
+20
+20
+53
+bf
+68
+00
+84
+76
+60
+00
+83
+ef
+c0
+09
+82
+21
+20
+20
+53
+cf
+70
+09
+bd
+20
+20
+40
+7d
+86
+20
+20
+00
+61
+78
+54
+7c
+00
+20
+40
+58
+ca
+68
+00
+80
+48
+20
+7a
+00
+00
+c2
+83
+82
+2a
+20
+20
+56
+28
+c0
+42
+02
+2d
+c0
+41
+82
+38
+20
+20
+56
+57
+18
+00
+0e
+0c
+20
+40
+58
+a9
+68
+00
+ce
+96
+e0
+a0
+80
+00
+58
+00
+00
+00
+e0
+a1
+00
+00
+58
+00
+00
+00
+e0
+a1
+80
+00
+58
+00
+00
+00
+e0
+a2
+00
+00
+20
+20
+58
+b9
+18
+00
+0e
+0c
+20
+40
+58
+a9
+58
+00
+00
+01
+e0
+a0
+80
+00
+58
+00
+00
+00
+e0
+a1
+00
+00
+58
+00
+00
+00
+e0
+a1
+80
+00
+58
+00
+00
+00
+e0
+a2
+00
+00
+20
+20
+58
+bb
+20
+40
+58
+c5
+24
+7a
+00
+00
+68
+00
+80
+55
+20
+7a
+00
+00
+c0
+07
+02
+49
+20
+20
+59
+2c
+24
+74
+80
+00
+20
+20
+59
+75
+68
+12
+00
+78
+68
+1a
+00
+7c
+98
+41
+fe
+00
+1f
+e4
+7e
+00
+9a
+21
+7e
+00
+60
+12
+00
+70
+20
+60
+00
+00
+20
+40
+48
+16
+24
+7a
+00
+00
+68
+0a
+4e
+91
+1d
+02
+7e
+00
+98
+46
+04
+00
+24
+21
+02
+5b
+18
+46
+7c
+0b
+24
+21
+02
+5b
+20
+60
+00
+00
+60
+02
+4e
+91
+20
+20
+3d
+65
+d8
+a0
+04
+40
+20
+40
+6d
+a6
+20
+22
+ed
+a4
+18
+00
+04
+00
+e8
+c0
+80
+00
+1a
+20
+a3
+ff
+19
+60
+97
+ff
+2f
+e1
+f0
+18
+24
+20
+ed
+a4
+2f
+e0
+0e
+04
+24
+20
+82
+7e
+18
+00
+04
+01
+e8
+c0
+80
+00
+1a
+20
+a3
+ff
+19
+60
+97
+ff
+c0
+80
+02
+72
+e8
+c0
+80
+00
+1a
+20
+a3
+ff
+19
+60
+97
+ff
+c0
+00
+02
+83
+20
+20
+02
+75
+18
+c0
+8c
+01
+1a
+20
+a3
+ff
+19
+60
+97
+ff
+18
+c0
+8c
+02
+1a
+20
+a3
+fe
+19
+60
+97
+fe
+28
+41
+fe
+00
+20
+20
+82
+a8
+18
+c0
+8c
+0c
+1a
+20
+a3
+f4
+19
+60
+97
+f4
+20
+20
+02
+a8
+2f
+e0
+0e
+02
+24
+20
+82
+81
+20
+20
+02
+69
+2f
+e0
+0e
+01
+24
+20
+ed
+a4
+e8
+c1
+00
+00
+1a
+20
+a3
+fe
+19
+60
+97
+fe
+e0
+a1
+00
+00
+28
+41
+fe
+00
+20
+20
+82
+a8
+18
+c2
+04
+00
+e8
+c0
+80
+00
+c0
+80
+02
+a2
+e8
+c0
+80
+00
+c0
+80
+02
+a2
+e8
+c0
+80
+00
+c0
+88
+02
+a2
+e8
+c0
+80
+00
+c0
+80
+02
+a2
+e8
+c0
+80
+00
+c0
+c0
+02
+a2
+e8
+c0
+80
+00
+c0
+80
+02
+a2
+e8
+c0
+80
+00
+c0
+80
+02
+a2
+e8
+c0
+80
+00
+c0
+c0
+02
+a2
+e8
+c0
+80
+00
+c0
+af
+82
+a2
+e8
+c0
+80
+00
+c0
+cd
+82
+a2
+e8
+c0
+80
+00
+c0
+9a
+02
+a2
+e8
+c0
+80
+00
+c0
+7d
+82
+a6
+18
+42
+0c
+00
+18
+c0
+8c
+0c
+18
+00
+0e
+00
+18
+00
+04
+00
+19
+60
+97
+f4
+1a
+20
+a3
+f4
+2a
+21
+fe
+00
+24
+20
+82
+60
+20
+20
+6d
+a1
+1a
+22
+7e
+00
+20
+7a
+00
+00
+18
+40
+85
+60
+18
+40
+85
+60
+79
+3f
+84
+1c
+60
+0a
+47
+03
+1f
+e2
+04
+00
+da
+20
+46
+f0
+20
+40
+7f
+a6
+24
+7a
+00
+00
+18
+42
+7e
+00
+20
+20
+7d
+7d
+20
+40
+7d
+80
+da
+20
+46
+f8
+20
+40
+7f
+95
+1f
+e2
+04
+00
+20
+40
+7d
+84
+18
+42
+7e
+00
+20
+7a
+00
+00
+c0
+11
+82
+c7
+c0
+12
+02
+c9
+c0
+12
+82
+cd
+c0
+00
+82
+d1
+c0
+01
+82
+d3
+c0
+06
+82
+d6
+c0
+13
+82
+e0
+c0
+13
+06
+2a
+20
+20
+7d
+b3
+70
+47
+c1
+ff
+20
+20
+06
+14
+70
+47
+c1
+ff
+70
+47
+c6
+00
+70
+4a
+0a
+3b
+20
+20
+03
+71
+68
+00
+c7
+c7
+24
+7a
+00
+00
+70
+47
+c7
+01
+20
+20
+04
+63
+70
+01
+6c
+06
+20
+20
+7d
+f0
+70
+01
+6c
+04
+70
+42
+5d
+01
+20
+20
+7d
+fb
+18
+0a
+7e
+00
+60
+00
+c5
+3f
+70
+4e
+81
+00
+68
+09
+4e
+7c
+60
+09
+44
+f8
+20
+40
+52
+a0
+20
+40
+02
+eb
+58
+00
+00
+05
+e0
+c0
+80
+00
+20
+20
+7e
+07
+70
+41
+31
+00
+70
+4e
+81
+01
+68
+09
+4e
+7c
+20
+40
+4f
+6a
+1a
+22
+0a
+00
+58
+00
+00
+01
+e0
+a0
+80
+00
+20
+40
+02
+eb
+58
+00
+00
+04
+e0
+c0
+80
+00
+20
+20
+7e
+07
+da
+20
+44
+01
+ea
+20
+80
+00
+20
+7a
+00
+00
+98
+c0
+a2
+00
+e8
+c0
+80
+00
+c1
+00
+80
+00
+20
+20
+02
+ec
+20
+40
+58
+c5
+24
+3a
+7d
+e5
+68
+00
+89
+bd
+c5
+84
+fd
+e0
+c0
+02
+02
+fb
+c0
+11
+03
+01
+c0
+0f
+83
+04
+c0
+10
+03
+04
+20
+20
+7d
+d0
+68
+01
+47
+0b
+c3
+01
+82
+fe
+20
+20
+7d
+fd
+58
+00
+00
+00
+60
+02
+00
+51
+20
+60
+00
+00
+70
+00
+7c
+37
+68
+01
+4e
+74
+60
+01
+00
+51
+20
+60
+00
+00
+70
+0b
+2a
+03
+20
+40
+00
+d4
+70
+4e
+73
+5a
+20
+40
+3c
+fc
+68
+12
+01
+38
+79
+3f
+fe
+0f
+60
+12
+00
+4c
+20
+40
+3c
+f4
+d8
+5f
+ff
+ff
+20
+20
+3c
+11
+68
+0a
+4a
+12
+1c
+42
+7e
+00
+98
+46
+7e
+00
+d8
+40
+06
+40
+98
+46
+fc
+00
+20
+40
+7f
+53
+18
+07
+fe
+00
+20
+7a
+00
+00
+1c
+42
+04
+00
+60
+0a
+4a
+12
+68
+09
+4a
+0c
+18
+50
+84
+00
+98
+40
+fe
+00
+1f
+f0
+fe
+00
+60
+01
+4a
+0c
+1f
+f0
+fe
+00
+1f
+e1
+7e
+03
+c1
+80
+00
+00
+20
+40
+48
+16
+24
+7a
+00
+00
+20
+40
+4b
+d0
+20
+7a
+00
+00
+68
+00
+c2
+cf
+c2
+80
+03
+2a
+c2
+80
+83
+2c
+c2
+81
+03
+2e
+20
+60
+00
+00
+70
+89
+71
+bf
+20
+20
+03
+32
+70
+89
+71
+af
+20
+20
+03
+32
+70
+89
+71
+8f
+68
+00
+c2
+d0
+60
+10
+89
+73
+20
+20
+03
+32
+68
+10
+80
+53
+79
+20
+7e
+07
+60
+10
+80
+53
+68
+10
+89
+73
+1f
+e1
+fe
+30
+60
+10
+89
+73
+70
+89
+06
+7c
+70
+89
+72
+aa
+20
+00
+13
+88
+68
+19
+01
+50
+68
+10
+80
+53
+79
+3f
+fe
+07
+60
+10
+80
+53
+18
+50
+84
+00
+60
+09
+42
+d1
+20
+60
+00
+00
+20
+40
+00
+cf
+20
+74
+00
+00
+1f
+f0
+fe
+00
+1f
+e2
+0c
+00
+20
+40
+03
+69
+60
+00
+ca
+0b
+c0
+00
+83
+54
+c0
+03
+03
+85
+1f
+e2
+04
+00
+18
+c2
+22
+00
+68
+00
+c0
+40
+c3
+00
+03
+5e
+1a
+22
+0c
+00
+c6
+84
+80
+00
+18
+42
+7e
+00
+c0
+01
+83
+8c
+c0
+02
+83
+97
+20
+20
+3b
+31
+20
+40
+03
+69
+20
+40
+03
+69
+60
+00
+89
+bd
+20
+40
+03
+59
+20
+20
+7d
+90
+20
+40
+03
+6c
+18
+c2
+04
+00
+18
+50
+84
+00
+60
+09
+49
+38
+20
+60
+00
+00
+1a
+22
+0c
+00
+d8
+a0
+00
+f5
+20
+20
+03
+61
+20
+40
+03
+69
+1f
+e2
+72
+00
+20
+40
+03
+65
+20
+20
+03
+59
+20
+40
+03
+69
+e0
+a0
+80
+00
+c2
+00
+03
+65
+20
+60
+00
+00
+20
+40
+03
+6c
+e8
+c0
+80
+00
+20
+60
+00
+00
+58
+00
+49
+38
+98
+c6
+7c
+00
+24
+62
+80
+00
+d8
+c0
+48
+a2
+20
+60
+00
+00
+df
+20
+00
+03
+d8
+c0
+4a
+08
+18
+c2
+22
+00
+68
+01
+49
+a2
+1f
+f0
+fe
+00
+1f
+e2
+0a
+00
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+e0
+a0
+80
+00
+20
+40
+03
+80
+c2
+00
+03
+78
+18
+a2
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+49
+a2
+20
+60
+00
+00
+58
+00
+49
+a0
+98
+a6
+7c
+00
+24
+62
+80
+00
+d8
+a0
+49
+3c
+20
+60
+00
+00
+20
+40
+03
+69
+1f
+e2
+72
+00
+60
+00
+8b
+4e
+20
+40
+03
+63
+68
+08
+8b
+4e
+da
+20
+0b
+4f
+20
+20
+04
+33
+18
+c2
+7e
+00
+60
+01
+09
+dd
+da
+20
+00
+09
+20
+40
+40
+05
+68
+01
+42
+de
+e0
+a1
+00
+00
+58
+00
+02
+a1
+e0
+a1
+00
+00
+68
+01
+09
+dd
+1f
+e2
+0c
+00
+20
+20
+03
+61
+18
+c2
+24
+00
+20
+40
+4b
+d0
+24
+7a
+00
+00
+68
+09
+4e
+7c
+20
+40
+4f
+6a
+c4
+00
+00
+00
+68
+00
+c5
+95
+c1
+00
+00
+00
+1a
+42
+0c
+00
+20
+40
+03
+69
+1f
+e2
+72
+00
+60
+00
+ce
+82
+20
+40
+03
+63
+70
+09
+bd
+1b
+20
+20
+4b
+d6
+68
+01
+42
+d8
+20
+3a
+3e
+37
+20
+20
+3e
+35
+20
+40
+52
+4a
+58
+00
+03
+a6
+60
+01
+42
+8a
+70
+0b
+2a
+00
+70
+01
+6c
+06
+20
+40
+3e
+7f
+58
+00
+04
+20
+60
+01
+42
+92
+58
+00
+04
+29
+60
+01
+42
+8e
+58
+00
+04
+2b
+60
+01
+42
+96
+58
+00
+04
+2a
+60
+01
+42
+94
+58
+00
+03
+42
+60
+01
+42
+90
+58
+00
+04
+23
+60
+01
+42
+8c
+58
+00
+48
+a2
+1f
+f0
+fe
+00
+60
+01
+49
+38
+60
+01
+49
+3a
+20
+40
+3d
+3e
+58
+00
+49
+3c
+1f
+f0
+fe
+00
+60
+01
+49
+a0
+60
+01
+49
+a2
+68
+00
+ce
+73
+c0
+2d
+03
+db
+20
+35
+83
+d9
+68
+01
+4e
+6f
+1f
+f0
+fe
+00
+60
+01
+4e
+6f
+68
+01
+4e
+71
+1f
+f0
+fe
+00
+60
+01
+4e
+71
+20
+40
+03
+e7
+68
+04
+09
+c6
+24
+3a
+03
+d4
+68
+01
+4a
+d4
+1f
+f0
+fe
+00
+20
+3a
+03
+d4
+60
+01
+4e
+71
+70
+4a
+0a
+2f
+20
+40
+03
+25
+20
+40
+03
+71
+70
+82
+80
+03
+20
+60
+00
+00
+70
+4a
+0a
+3c
+20
+20
+03
+d5
+1c
+e2
+7e
+00
+20
+3a
+03
+07
+20
+40
+53
+0d
+20
+40
+42
+eb
+58
+00
+00
+00
+60
+04
+40
+40
+60
+01
+47
+0b
+58
+00
+00
+00
+60
+01
+4a
+0c
+60
+01
+4a
+0e
+70
+4a
+0a
+3d
+20
+20
+03
+d5
+20
+40
+62
+c4
+58
+00
+07
+e2
+da
+20
+09
+c6
+d8
+40
+00
+0c
+20
+40
+63
+0d
+20
+40
+62
+c7
+68
+04
+09
+c6
+20
+7a
+00
+00
+68
+00
+c2
+cf
+c2
+80
+03
+f4
+c2
+80
+84
+02
+c2
+81
+04
+12
+20
+60
+00
+00
+68
+09
+09
+ca
+68
+01
+09
+d0
+18
+42
+24
+00
+1f
+e2
+22
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+71
+1a
+22
+7e
+00
+98
+46
+26
+00
+1a
+63
+a6
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+6f
+20
+60
+00
+00
+68
+09
+09
+c8
+68
+01
+09
+ce
+18
+42
+24
+00
+1f
+e2
+22
+00
+98
+46
+26
+00
+1a
+6b
+26
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+6f
+1a
+63
+a6
+00
+1a
+22
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+71
+20
+60
+00
+00
+68
+09
+09
+c6
+68
+01
+09
+cc
+18
+42
+24
+00
+1f
+e2
+22
+00
+98
+46
+26
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+6f
+1a
+6b
+fe
+00
+9a
+20
+fe
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+71
+20
+60
+00
+00
+20
+40
+48
+12
+24
+7a
+00
+00
+20
+20
+03
+42
+78
+34
+7c
+00
+68
+12
+01
+38
+79
+34
+7e
+1a
+60
+12
+00
+4c
+20
+40
+3c
+f4
+70
+00
+9f
+01
+20
+60
+00
+00
+20
+60
+00
+00
+1a
+62
+7e
+00
+1f
+e1
+7e
+f0
+c1
+28
+00
+00
+1a
+62
+7e
+00
+60
+00
+ca
+0a
+20
+20
+03
+71
+70
+47
+ca
+00
+20
+60
+00
+00
+68
+00
+c7
+ca
+24
+7a
+00
+00
+70
+47
+ca
+01
+60
+08
+c7
+36
+18
+42
+72
+00
+d8
+a0
+48
+3c
+1a
+22
+0c
+00
+20
+20
+7e
+cd
+20
+40
+05
+01
+20
+40
+05
+0b
+df
+20
+00
+0b
+20
+20
+05
+26
+68
+00
+c7
+c6
+20
+7a
+00
+00
+68
+02
+47
+29
+68
+08
+c7
+2d
+98
+40
+84
+00
+1c
+42
+7e
+00
+98
+46
+7c
+00
+24
+21
+04
+3f
+68
+08
+c7
+2d
+18
+46
+7c
+06
+20
+22
+84
+4c
+70
+47
+cb
+00
+60
+02
+47
+29
+20
+40
+04
+56
+20
+40
+04
+ca
+20
+40
+04
+5b
+68
+00
+c7
+c1
+c1
+ff
+80
+00
+68
+00
+c7
+cc
+c1
+80
+80
+00
+68
+00
+c7
+cb
+c1
+80
+00
+00
+20
+20
+04
+b4
+68
+00
+c7
+ca
+24
+7a
+00
+00
+68
+00
+c7
+c1
+c0
+ff
+84
+5f
+20
+20
+04
+90
+68
+00
+c7
+cc
+c1
+80
+80
+00
+20
+40
+04
+31
+20
+20
+04
+6a
+c0
+00
+84
+80
+c0
+01
+04
+83
+c0
+01
+84
+86
+20
+20
+3b
+31
+20
+40
+05
+f0
+70
+47
+c6
+01
+68
+02
+48
+25
+60
+02
+47
+79
+20
+40
+05
+f2
+70
+47
+c1
+01
+20
+60
+00
+00
+68
+00
+c7
+c1
+c1
+7f
+80
+00
+c0
+08
+84
+70
+c0
+09
+04
+72
+c0
+09
+84
+74
+20
+60
+00
+00
+70
+47
+c1
+02
+20
+60
+00
+00
+70
+47
+c1
+03
+20
+60
+00
+00
+70
+47
+c1
+ff
+70
+4a
+0a
+39
+20
+40
+03
+71
+d8
+40
+00
+07
+da
+20
+47
+db
+68
+02
+47
+dd
+60
+02
+47
+79
+20
+40
+05
+f2
+70
+47
+c7
+00
+70
+48
+38
+01
+70
+48
+3a
+0a
+20
+20
+7d
+2f
+70
+47
+c1
+11
+70
+0b
+4e
+aa
+20
+20
+04
+88
+70
+47
+c1
+12
+70
+0b
+4e
+55
+20
+20
+04
+88
+70
+47
+c1
+13
+70
+0b
+4e
+22
+70
+0b
+4f
+01
+68
+02
+41
+40
+60
+02
+0b
+50
+20
+20
+04
+8c
+70
+0b
+54
+00
+da
+20
+0b
+4e
+d8
+40
+00
+07
+20
+20
+04
+33
+20
+40
+03
+42
+20
+34
+04
+9d
+70
+47
+c0
+0a
+70
+48
+2c
+00
+20
+60
+00
+00
+70
+48
+2c
+01
+68
+04
+48
+2d
+60
+04
+0b
+4e
+e8
+c0
+80
+00
+e0
+a0
+80
+00
+d8
+40
+00
+09
+da
+20
+0b
+4e
+20
+20
+04
+33
+68
+00
+c8
+2c
+20
+3a
+04
+95
+68
+00
+c7
+c0
+24
+7a
+00
+00
+20
+40
+00
+c4
+24
+74
+00
+00
+68
+00
+8b
+2b
+24
+7a
+00
+00
+20
+40
+3b
+e2
+68
+01
+c2
+0f
+20
+7a
+00
+00
+68
+04
+47
+b8
+20
+40
+7f
+16
+60
+0a
+41
+fb
+68
+00
+c7
+cd
+c0
+00
+84
+af
+70
+47
+cd
+01
+20
+20
+3c
+11
+1c
+e2
+7e
+00
+20
+3a
+04
+b3
+70
+47
+cd
+00
+20
+20
+3c
+11
+20
+20
+7e
+2b
+70
+47
+cd
+00
+68
+00
+c8
+3a
+24
+7a
+00
+00
+20
+40
+00
+c4
+24
+74
+00
+00
+68
+00
+8b
+2b
+24
+7a
+00
+00
+20
+40
+3b
+e2
+68
+01
+c2
+0f
+20
+7a
+00
+00
+58
+00
+9c
+40
+20
+40
+7f
+16
+60
+0a
+41
+fb
+20
+20
+3c
+11
+70
+4a
+0a
+3b
+20
+20
+03
+71
+70
+47
+d1
+00
+70
+47
+ca
+00
+70
+47
+c1
+01
+68
+00
+8b
+54
+c1
+03
+80
+00
+20
+20
+3e
+0a
+68
+00
+c7
+ca
+20
+7a
+00
+00
+20
+40
+05
+b0
+70
+47
+34
+00
+68
+00
+c7
+cf
+1f
+e0
+fe
+01
+60
+00
+c7
+cf
+70
+47
+cc
+00
+20
+40
+04
+3b
+24
+2c
+04
+de
+20
+40
+05
+3c
+20
+34
+04
+de
+70
+47
+cc
+01
+70
+47
+d0
+00
+70
+47
+d1
+00
+70
+47
+cf
+00
+68
+00
+c7
+35
+1f
+e0
+fe
+01
+60
+00
+c7
+35
+20
+20
+04
+f9
+70
+47
+cb
+01
+68
+00
+c7
+d1
+1f
+e0
+fe
+01
+60
+00
+c7
+d1
+68
+00
+c7
+c1
+c0
+ff
+84
+f1
+68
+00
+c7
+34
+1f
+e0
+fe
+01
+60
+00
+c7
+34
+20
+00
+00
+0a
+c0
+81
+84
+d1
+68
+00
+c7
+c7
+20
+5a
+05
+fb
+68
+00
+c7
+cf
+c0
+00
+84
+f6
+c0
+02
+84
+f4
+68
+00
+c7
+d1
+c0
+7f
+82
+c9
+20
+20
+04
+fb
+68
+00
+c7
+d1
+c0
+7f
+84
+c2
+20
+20
+04
+fb
+70
+47
+d0
+ff
+20
+20
+04
+f7
+70
+47
+d0
+01
+20
+40
+04
+31
+20
+20
+04
+fb
+68
+00
+c7
+b6
+20
+20
+04
+fc
+68
+00
+c7
+b5
+60
+00
+c7
+2d
+20
+60
+00
+00
+70
+89
+56
+cb
+70
+89
+55
+d0
+20
+60
+00
+00
+68
+08
+c7
+93
+20
+40
+05
+08
+20
+40
+39
+b1
+20
+20
+39
+ce
+68
+00
+c7
+c7
+20
+7a
+00
+00
+20
+20
+04
+fe
+60
+08
+80
+17
+18
+40
+a2
+00
+20
+20
+3a
+13
+79
+20
+2a
+00
+78
+46
+fc
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
+78
+43
+fc
+00
+20
+40
+49
+76
+68
+00
+c7
+ce
+1f
+e2
+72
+00
+da
+20
+48
+5c
+ea
+20
+80
+00
+08
+00
+86
+08
+1a
+20
+a2
+01
+c2
+00
+05
+15
+37
+d3
+82
+00
+20
+00
+00
+64
+20
+40
+05
+1d
+20
+20
+39
+b1
+70
+89
+55
+d4
+20
+00
+00
+04
+70
+89
+55
+d2
+20
+00
+00
+04
+70
+89
+55
+d1
+20
+00
+00
+04
+70
+89
+55
+d0
+70
+89
+56
+e0
+20
+60
+00
+00
+18
+00
+2a
+00
+68
+08
+c7
+93
+20
+40
+05
+f7
+20
+40
+39
+bf
+78
+4e
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+43
+fc
+00
+20
+40
+49
+76
+68
+02
+47
+d2
+98
+00
+12
+00
+78
+28
+7c
+00
+db
+60
+27
+10
+37
+c1
+84
+00
+24
+6c
+00
+00
+d8
+a0
+47
+39
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+c2
+00
+05
+37
+20
+20
+39
+92
+68
+00
+c7
+39
+1f
+ed
+fe
+00
+1f
+eb
+7e
+00
+60
+00
+c7
+d8
+1f
+e6
+7c
+10
+24
+21
+64
+c0
+68
+00
+c7
+d8
+1f
+e0
+fe
+01
+d8
+c0
+47
+39
+98
+c0
+8c
+00
+e8
+c1
+80
+00
+1f
+e3
+7e
+00
+60
+01
+47
+d9
+68
+04
+47
+3a
+1f
+e3
+7e
+00
+60
+03
+c7
+db
+df
+20
+00
+07
+d8
+c0
+47
+db
+d8
+a0
+47
+db
+20
+40
+05
+81
+68
+00
+c7
+e2
+1f
+e2
+72
+00
+d8
+a0
+47
+e3
+d8
+c0
+47
+d2
+20
+40
+7e
+cd
+18
+a2
+22
+00
+68
+00
+c7
+d8
+1f
+e0
+fe
+02
+1f
+e2
+72
+00
+d8
+c0
+47
+39
+1a
+22
+0a
+00
+20
+40
+7e
+cd
+68
+00
+c7
+d8
+68
+08
+c7
+e2
+98
+40
+fe
+00
+1f
+e0
+fe
+01
+1f
+e9
+fe
+00
+1f
+e0
+fe
+01
+1f
+e2
+72
+00
+d8
+c0
+47
+e3
+20
+40
+05
+94
+df
+20
+00
+02
+d8
+a0
+48
+23
+d8
+c0
+47
+37
+20
+40
+05
+88
+68
+01
+48
+23
+68
+09
+47
+d9
+98
+46
+7c
+00
+24
+22
+e4
+c0
+68
+00
+c7
+d8
+1f
+e2
+72
+00
+d8
+c0
+47
+39
+18
+c0
+8c
+01
+d8
+a0
+47
+e3
+20
+40
+05
+79
+68
+00
+c7
+d8
+1f
+e2
+72
+00
+d8
+a0
+47
+e3
+d8
+c0
+47
+e3
+20
+40
+05
+81
+20
+20
+31
+d4
+1f
+22
+7e
+00
+20
+7a
+00
+00
+e8
+c1
+00
+00
+18
+c0
+8d
+ff
+1f
+e3
+7e
+00
+e0
+a0
+80
+00
+c2
+00
+05
+7b
+20
+60
+00
+00
+1f
+22
+7e
+00
+20
+7a
+00
+00
+e8
+c0
+80
+00
+1f
+ed
+fe
+00
+e0
+a0
+80
+00
+c2
+00
+05
+83
+20
+60
+00
+00
+1f
+22
+7e
+00
+20
+7a
+00
+00
+18
+c2
+7e
+00
+9f
+20
+fe
+00
+1f
+e0
+ff
+ff
+1f
+e2
+0c
+00
+e8
+c0
+80
+00
+18
+c0
+8d
+fe
+1f
+ed
+fe
+00
+e0
+a0
+80
+00
+c2
+00
+05
+8e
+20
+60
+00
+00
+58
+00
+ff
+ff
+d8
+a0
+10
+21
+da
+20
+00
+00
+1a
+21
+7c
+07
+24
+22
+85
+9a
+e8
+c8
+80
+00
+c2
+87
+85
+a4
+28
+4c
+00
+00
+1f
+e3
+fe
+00
+20
+20
+85
+9f
+98
+a2
+fe
+00
+18
+43
+04
+00
+1a
+20
+a2
+01
+c2
+00
+05
+97
+60
+01
+47
+37
+20
+60
+00
+00
+28
+4f
+fe
+00
+20
+20
+05
+9c
+1f
+22
+7e
+00
+20
+3a
+05
+ae
+e8
+c0
+80
+00
+1f
+e3
+fe
+00
+98
+41
+84
+00
+e0
+a8
+80
+00
+1f
+ec
+84
+00
+c2
+00
+05
+a6
+e0
+a8
+80
+00
+20
+60
+00
+00
+70
+47
+ce
+05
+68
+00
+c7
+e2
+68
+08
+c7
+ce
+98
+40
+fe
+00
+68
+08
+c7
+36
+98
+40
+fe
+00
+60
+00
+c7
+ce
+68
+00
+c7
+d2
+c3
+00
+05
+bb
+58
+00
+00
+55
+20
+20
+05
+bc
+58
+00
+00
+aa
+60
+00
+c8
+5c
+68
+00
+c7
+e2
+1f
+e2
+72
+00
+d8
+a0
+48
+5d
+d8
+c0
+47
+d2
+20
+40
+7e
+cd
+68
+08
+c7
+35
+18
+41
+04
+03
+18
+4d
+84
+00
+68
+00
+c7
+36
+1f
+e2
+72
+00
+1f
+ed
+fe
+00
+1f
+eb
+7e
+00
+98
+41
+fe
+00
+e0
+a0
+80
+00
+18
+a2
+22
+00
+d8
+c0
+48
+3c
+d8
+a0
+0b
+4e
+20
+40
+05
+88
+68
+00
+c7
+36
+1f
+e2
+72
+00
+d8
+c0
+0b
+4e
+d8
+a0
+0b
+4e
+d8
+40
+00
+00
+20
+40
+05
+a6
+68
+00
+8b
+4e
+1f
+e0
+fe
+01
+60
+00
+8b
+4e
+68
+00
+c7
+36
+1f
+e0
+fe
+01
+1f
+e2
+72
+00
+d8
+c0
+0b
+4e
+1a
+22
+0a
+00
+20
+40
+7e
+cd
+18
+a2
+24
+00
+68
+00
+c7
+ce
+1f
+e0
+ff
+fc
+1f
+e9
+fe
+00
+1f
+e0
+fe
+01
+1f
+e2
+72
+00
+d8
+c0
+48
+5d
+20
+40
+05
+94
+1a
+40
+a5
+ff
+ea
+48
+80
+00
+df
+20
+00
+02
+1a
+42
+0a
+00
+d8
+c0
+47
+37
+20
+40
+05
+88
+df
+20
+00
+02
+1a
+42
+0c
+00
+1a
+42
+0a
+00
+20
+20
+05
+a6
+70
+47
+35
+00
+70
+47
+93
+4e
+68
+00
+c7
+e2
+1f
+e2
+72
+00
+d8
+c0
+47
+79
+d8
+a0
+47
+d2
+20
+20
+05
+88
+60
+08
+80
+17
+18
+40
+a2
+04
+70
+89
+6d
+07
+20
+20
+3a
+13
+68
+00
+c7
+d0
+20
+7a
+00
+00
+c0
+7f
+86
+00
+1f
+e0
+ff
+ff
+60
+00
+c7
+d0
+68
+08
+c7
+a4
+20
+40
+06
+06
+18
+40
+84
+01
+18
+41
+04
+03
+60
+08
+c7
+a4
+20
+60
+00
+00
+68
+00
+c7
+79
+1f
+e1
+7e
+03
+1f
+ef
+a2
+04
+58
+00
+47
+a5
+9a
+20
+fe
+00
+98
+40
+8c
+00
+e8
+c0
+80
+00
+60
+00
+c7
+93
+20
+60
+00
+00
+68
+01
+47
+c8
+1f
+e0
+fe
+01
+60
+01
+47
+c8
+20
+40
+05
+fb
+20
+20
+06
+1e
+70
+47
+d0
+ff
+20
+40
+05
+f0
+68
+00
+c7
+c1
+c1
+ff
+80
+00
+da
+20
+0b
+4e
+d8
+40
+00
+08
+20
+40
+04
+33
+20
+40
+05
+b0
+58
+00
+00
+00
+60
+01
+47
+c8
+20
+00
+4e
+20
+68
+01
+47
+c8
+c0
+7f
+82
+c9
+20
+40
+04
+3b
+24
+2c
+06
+0f
+20
+40
+05
+3c
+20
+34
+06
+0f
+70
+47
+c6
+01
+70
+47
+c7
+00
+70
+47
+c8
+00
+70
+4a
+0a
+3a
+20
+20
+03
+71
+20
+60
+00
+00
+91
+55
+aa
+55
+ad
+1f
+02
+02
+3f
+30
+30
+30
+30
+00
+01
+01
+00
+02
+1a
+28
+e7
+09
+f6
+08
+df
+fa
+80
+46
+e7
+09
+f2
+08
+df
+fa
+80
+3e
+88
+82
+8c
+83
+e7
+09
+f0
+a3
+df
+fa
+80
+32
+e3
+09
+f6
+08
+df
+fa
+80
+78
+e3
+09
+f2
+08
+df
+fa
+80
+70
+88
+82
+8c
+83
+e3
+09
+f0
+a3
+df
+fa
+80
+64
+89
+82
+8a
+83
+e0
+a3
+f6
+08
+df
+fa
+80
+58
+89
+82
+8a
+83
+e0
+a3
+f2
+08
+df
+fa
+80
+4c
+80
+d2
+80
+fa
+80
+c6
+80
+d4
+80
+69
+80
+f2
+80
+33
+80
+10
+80
+a6
+80
+ea
+80
+9a
+80
+a8
+80
+da
+80
+e2
+80
+ca
+80
+33
+89
+82
+8a
+83
+ec
+fa
+e4
+93
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+e9
+de
+e7
+80
+0d
+89
+82
+8a
+83
+e4
+93
+a3
+f6
+08
+df
+f9
+ec
+fa
+a9
+f0
+ed
+fb
+22
+89
+82
+8a
+83
+ec
+fa
+e0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+ea
+de
+e8
+80
+db
+89
+82
+8a
+83
+e4
+93
+a3
+f2
+08
+df
+f9
+80
+cc
+88
+f0
+ef
+60
+01
+0e
+4e
+60
+c3
+88
+f0
+ed
+24
+02
+b4
+04
+00
+50
+b9
+f5
+82
+eb
+24
+02
+b4
+04
+00
+50
+af
+23
+23
+45
+82
+23
+90
+00
+5e
+73
+bb
+01
+06
+89
+82
+8a
+83
+e0
+22
+50
+02
+e7
+22
+bb
+fe
+02
+e3
+22
+89
+82
+8a
+83
+e4
+93
+22
+bb
+01
+0c
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e0
+22
+50
+06
+e9
+25
+82
+f8
+e6
+22
+bb
+fe
+06
+e9
+25
+82
+f8
+e2
+22
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e4
+93
+22
+bb
+01
+06
+89
+82
+8a
+83
+f0
+22
+50
+02
+f7
+22
+bb
+fe
+01
+f3
+22
+c2
+d5
+ec
+30
+e7
+09
+b2
+d5
+e4
+c3
+9d
+fd
+e4
+9c
+fc
+ee
+30
+e7
+15
+b2
+d5
+e4
+c3
+9f
+ff
+e4
+9e
+fe
+12
+01
+ea
+c3
+e4
+9d
+fd
+e4
+9c
+fc
+80
+03
+12
+01
+ea
+30
+d5
+07
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+22
+c5
+f0
+f8
+a3
+e0
+28
+f0
+c5
+f0
+f8
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+38
+f0
+22
+a3
+f8
+e0
+c5
+f0
+25
+f0
+f0
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+c8
+38
+f0
+e8
+22
+d0
+83
+d0
+82
+f8
+e4
+93
+70
+12
+74
+01
+93
+70
+0d
+a3
+a3
+93
+f8
+74
+01
+93
+f5
+82
+88
+83
+e4
+73
+74
+02
+93
+68
+60
+ef
+a3
+a3
+a3
+80
+df
+8a
+83
+89
+82
+e4
+73
+bc
+00
+0b
+be
+00
+29
+ef
+8d
+f0
+84
+ff
+ad
+f0
+22
+e4
+cc
+f8
+75
+f0
+08
+ef
+2f
+ff
+ee
+33
+fe
+ec
+33
+fc
+ee
+9d
+ec
+98
+40
+05
+fc
+ee
+9d
+fe
+0f
+d5
+f0
+e9
+e4
+ce
+fd
+22
+ed
+f8
+f5
+f0
+ee
+84
+20
+d2
+1c
+fe
+ad
+f0
+75
+f0
+08
+ef
+2f
+ff
+ed
+33
+fd
+40
+07
+98
+50
+06
+d5
+f0
+f2
+22
+c3
+98
+fd
+0f
+d5
+f0
+ea
+22
+78
+7f
+e4
+f6
+d8
+fd
+75
+81
+cf
+02
+02
+86
+02
+02
+e1
+e4
+93
+a3
+f8
+e4
+93
+a3
+40
+03
+f6
+80
+01
+f2
+08
+df
+f4
+80
+29
+e4
+93
+a3
+f8
+54
+07
+24
+0c
+c8
+c3
+33
+c4
+54
+0f
+44
+20
+c8
+83
+40
+04
+f4
+56
+80
+01
+46
+f6
+df
+e4
+80
+0b
+01
+02
+04
+08
+10
+20
+40
+80
+90
+02
+cb
+e4
+7e
+01
+93
+60
+bc
+a3
+ff
+54
+3f
+30
+e5
+09
+54
+1f
+fe
+e4
+93
+a3
+60
+01
+0e
+cf
+54
+c0
+25
+e0
+60
+a8
+40
+b8
+e4
+93
+a3
+fa
+e4
+93
+a3
+f8
+e4
+93
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+f0
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+df
+e9
+de
+e7
+80
+be
+52
+1b
+ab
+ff
+04
+2a
+00
+00
+00
+ff
+16
+32
+ff
+15
+b9
+00
+00
+00
+00
+00
+00
+00
+12
+1a
+ab
+12
+1c
+6c
+12
+18
+ba
+12
+10
+7a
+12
+0b
+4d
+90
+0b
+2a
+e0
+14
+60
+74
+24
+fe
+70
+e9
+90
+00
+a0
+e4
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+1e
+8e
+90
+80
+70
+e4
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+80
+7c
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+80
+78
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+80
+74
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7f
+02
+12
+0e
+90
+50
+08
+c2
+06
+7f
+02
+71
+ac
+80
+06
+d2
+06
+7f
+02
+71
+ac
+7f
+03
+12
+0e
+90
+50
+08
+c2
+06
+7f
+03
+71
+ac
+80
+06
+d2
+06
+7f
+03
+71
+ac
+d2
+07
+7f
+08
+12
+12
+80
+12
+0f
+6e
+12
+15
+ab
+80
+fe
+90
+4e
+a4
+e0
+70
+33
+90
+4e
+9e
+e0
+70
+2d
+90
+4e
+9a
+e0
+ff
+64
+01
+60
+0a
+ef
+64
+02
+60
+05
+ef
+64
+07
+70
+1a
+90
+00
+a0
+e4
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+0f
+6e
+c2
+08
+7f
+18
+12
+0e
+e8
+12
+15
+ab
+41
+e4
+12
+1e
+82
+41
+e4
+41
+e4
+22
+ac
+07
+a2
+06
+92
+04
+12
+1b
+8a
+af
+04
+a2
+06
+b3
+92
+03
+12
+12
+93
+af
+04
+c2
+05
+7b
+01
+7a
+80
+79
+70
+a2
+05
+92
+01
+90
+1c
+15
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+fe
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+fd
+30
+01
+20
+90
+1c
+15
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+31
+04
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+21
+4a
+90
+1c
+15
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+31
+04
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5f
+21
+4a
+90
+1c
+1b
+ef
+f0
+31
+be
+05
+cd
+01
+06
+9d
+02
+06
+9d
+04
+05
+ee
+0a
+06
+10
+12
+06
+9d
+13
+07
+14
+14
+07
+93
+15
+06
+6e
+18
+06
+7f
+27
+04
+6b
+2f
+06
+cc
+39
+06
+fc
+3a
+06
+f6
+3b
+05
+c7
+3c
+04
+68
+3d
+06
+7f
+3e
+00
+00
+07
+bb
+12
+1a
+68
+c2
+06
+7f
+18
+71
+ac
+c2
+06
+7f
+02
+71
+ac
+c2
+06
+7f
+03
+71
+ac
+c2
+06
+7f
+04
+71
+ac
+c2
+06
+7f
+17
+71
+ac
+c2
+06
+7f
+1b
+71
+ac
+c2
+06
+e4
+ff
+71
+ac
+c2
+06
+e4
+ff
+71
+ac
+c2
+06
+7f
+06
+71
+ac
+d2
+07
+7f
+08
+12
+12
+80
+12
+1b
+d2
+12
+19
+f2
+90
+1c
+1b
+e0
+64
+2f
+70
+39
+12
+09
+39
+90
+4e
+b6
+ef
+f0
+7b
+01
+7a
+4e
+79
+b9
+7d
+01
+7c
+00
+7f
+d8
+7e
+3f
+12
+12
+a0
+90
+4e
+b9
+e0
+d3
+94
+03
+40
+03
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+b9
+7d
+01
+7c
+00
+7f
+d8
+7e
+3f
+12
+11
+b2
+12
+08
+59
+90
+80
+80
+e4
+f0
+90
+4e
+bc
+f0
+90
+4e
+bb
+f0
+7b
+01
+7a
+1c
+79
+1c
+7d
+01
+fc
+7f
+d9
+7e
+3f
+12
+12
+a0
+7f
+0a
+7e
+00
+12
+12
+61
+90
+1c
+1b
+e0
+64
+2f
+70
+3d
+a3
+e0
+b4
+09
+1c
+c2
+07
+7f
+08
+12
+12
+80
+7f
+f4
+7e
+01
+12
+12
+61
+d2
+07
+7f
+08
+12
+12
+80
+7f
+f4
+7e
+01
+12
+12
+61
+c2
+07
+7f
+08
+12
+12
+80
+7f
+f4
+7e
+01
+12
+12
+61
+d2
+07
+7f
+08
+12
+12
+80
+7f
+e8
+7e
+03
+12
+12
+61
+e4
+90
+4e
+a1
+f0
+a3
+f0
+90
+1c
+1c
+e0
+64
+09
+70
+5d
+7b
+01
+7a
+03
+79
+72
+7d
+06
+fc
+7f
+c6
+7e
+3f
+12
+12
+a0
+7f
+0a
+7e
+00
+12
+12
+61
+7b
+01
+7a
+45
+79
+3e
+7d
+06
+7c
+00
+7f
+cc
+7e
+3f
+12
+12
+a0
+90
+03
+72
+e0
+f4
+70
+24
+a3
+e0
+f4
+70
+1f
+a3
+e0
+b4
+ff
+1a
+a3
+e0
+b4
+ff
+15
+a3
+e0
+b4
+ff
+10
+a3
+e0
+b4
+ff
+0b
+7f
+0d
+f1
+bc
+90
+4e
+9a
+74
+03
+f0
+22
+90
+4e
+9a
+74
+08
+f0
+7f
+27
+e1
+bc
+02
+13
+90
+12
+1b
+d2
+02
+19
+f2
+7f
+0e
+f1
+bc
+7f
+02
+f1
+bc
+90
+4e
+9a
+74
+05
+f0
+90
+4e
+9f
+e0
+60
+06
+e4
+90
+4e
+9b
+f0
+22
+90
+4e
+9b
+74
+03
+f0
+22
+90
+47
+18
+74
+04
+f0
+7e
+47
+7f
+19
+7b
+ff
+7a
+00
+79
+03
+90
+1b
+e6
+f0
+12
+13
+4d
+7f
+0a
+f1
+bc
+90
+4e
+9b
+74
+03
+f0
+22
+90
+4e
+9a
+74
+02
+f0
+12
+0e
+68
+90
+00
+40
+e0
+60
+fa
+7b
+01
+7a
+00
+79
+40
+7d
+06
+7c
+00
+7f
+b0
+7e
+3f
+12
+11
+b2
+7f
+0a
+7e
+00
+12
+12
+61
+7b
+01
+7a
+4e
+79
+9a
+7d
+01
+7c
+00
+7f
+d9
+7e
+3f
+12
+11
+b2
+7f
+0a
+7e
+00
+12
+12
+61
+7b
+01
+7a
+4e
+79
+9a
+7d
+01
+7c
+00
+7f
+da
+7e
+3f
+12
+11
+b2
+7f
+05
+f1
+bc
+e4
+90
+4e
+9b
+f0
+90
+4e
+9f
+f0
+22
+7b
+01
+7a
+42
+79
+61
+7d
+10
+7c
+00
+7f
+b6
+7e
+3f
+02
+11
+b2
+7b
+01
+7a
+00
+79
+40
+7d
+06
+7c
+00
+12
+1b
+09
+7b
+01
+7a
+00
+79
+40
+7d
+06
+7c
+00
+7f
+b0
+7e
+3f
+12
+11
+b2
+90
+4e
+9b
+e0
+b4
+01
+09
+12
+13
+90
+e4
+90
+4e
+9b
+f0
+22
+90
+4e
+9b
+e0
+b4
+03
+11
+90
+4e
+9a
+74
+03
+f0
+e4
+a3
+f0
+7f
+0d
+f1
+bc
+7f
+01
+e1
+bc
+90
+4e
+9a
+74
+06
+f0
+22
+7b
+01
+7a
+47
+79
+db
+7d
+06
+7c
+00
+7f
+d2
+7e
+3f
+12
+11
+b2
+90
+4e
+9a
+74
+01
+f0
+fb
+7a
+4e
+79
+9a
+fd
+7c
+00
+7f
+d9
+7e
+3f
+12
+11
+b2
+7f
+23
+e1
+bc
+e4
+90
+4e
+c0
+f0
+22
+12
+0e
+68
+90
+4e
+c0
+74
+01
+f0
+fb
+7a
+4e
+79
+9a
+fd
+7c
+00
+7f
+da
+7e
+3f
+02
+11
+b2
+e4
+90
+4e
+cd
+f0
+7f
+0e
+f1
+bc
+7f
+02
+f1
+bc
+90
+4e
+9a
+74
+07
+f0
+90
+1c
+1c
+74
+09
+f0
+12
+0e
+68
+7b
+01
+7a
+03
+79
+72
+7d
+06
+7c
+00
+7f
+c6
+7e
+3f
+12
+11
+b2
+7f
+0a
+7e
+00
+12
+12
+61
+7b
+01
+7a
+45
+79
+3e
+7d
+06
+7c
+00
+7f
+cc
+7e
+3f
+12
+11
+b2
+7f
+0a
+7e
+00
+12
+12
+61
+7b
+01
+7a
+1c
+79
+1c
+7d
+01
+7c
+00
+7f
+d9
+7e
+3f
+12
+11
+b2
+7f
+0a
+7e
+00
+12
+12
+61
+7b
+01
+7a
+1c
+79
+1c
+7d
+01
+7c
+00
+7f
+da
+7e
+3f
+12
+11
+b2
+e4
+90
+4e
+9b
+f0
+90
+4e
+9f
+f0
+22
+90
+4e
+9b
+e0
+b4
+08
+0b
+7f
+0d
+f1
+bc
+90
+4e
+9a
+74
+03
+f0
+22
+7f
+27
+f1
+bc
+90
+4e
+9a
+74
+08
+f0
+e4
+90
+4e
+a1
+f0
+a3
+f0
+90
+4e
+cd
+04
+f0
+22
+90
+1c
+08
+ef
+f0
+78
+09
+7c
+1c
+7d
+01
+7b
+ff
+7a
+00
+79
+08
+7e
+00
+7f
+03
+11
+de
+90
+1c
+08
+e0
+90
+1c
+0b
+f0
+7b
+01
+7a
+1c
+79
+09
+7d
+03
+90
+1b
+e7
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+49
+3a
+e0
+ff
+a3
+e0
+90
+1b
+eb
+cf
+f0
+a3
+ef
+f0
+90
+1b
+ea
+e0
+ff
+14
+f0
+ef
+60
+3f
+90
+1b
+e7
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+01
+a8
+a9
+f0
+fa
+12
+01
+04
+ff
+90
+1b
+eb
+e4
+75
+f0
+01
+12
+01
+a8
+85
+f0
+82
+f5
+83
+ef
+f0
+90
+1b
+eb
+e0
+fe
+a3
+e0
+ff
+be
+49
+c6
+bf
+38
+c3
+90
+1b
+eb
+74
+48
+f0
+a3
+74
+a2
+f0
+80
+b7
+90
+1b
+eb
+e0
+ff
+a3
+e0
+90
+49
+3a
+cf
+f0
+a3
+ef
+f0
+22
+d1
+30
+90
+4e
+b6
+e0
+ff
+64
+d0
+60
+04
+ef
+b4
+d1
+0a
+90
+4e
+b9
+e0
+04
+ff
+7d
+06
+31
+0e
+90
+4e
+b6
+e0
+b4
+31
+14
+90
+4e
+b9
+e0
+70
+08
+7d
+06
+7f
+01
+31
+0e
+80
+06
+7d
+06
+7f
+03
+31
+0e
+90
+4e
+b6
+e0
+b4
+50
+0b
+90
+4e
+b9
+e0
+24
+03
+ff
+7d
+06
+31
+0e
+90
+4e
+b6
+e0
+64
+02
+70
+53
+7d
+09
+7f
+5a
+31
+0e
+90
+4e
+b9
+e0
+14
+60
+18
+14
+60
+23
+14
+60
+2e
+24
+03
+70
+36
+7d
+0d
+7f
+15
+31
+0e
+7d
+0e
+7f
+15
+31
+0e
+80
+28
+7d
+0d
+7f
+20
+31
+0e
+7d
+0e
+7f
+20
+31
+0e
+80
+1a
+7d
+0d
+7f
+2a
+31
+0e
+7d
+0e
+7f
+2a
+31
+0e
+80
+0c
+7d
+0d
+7f
+3f
+31
+0e
+7d
+0e
+7f
+3f
+31
+0e
+7d
+09
+e4
+ff
+31
+0e
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+22
+ac
+07
+ed
+44
+80
+90
+02
+18
+f0
+a3
+ef
+f0
+90
+80
+88
+74
+02
+f0
+a3
+e4
+f0
+90
+80
+8e
+f0
+a3
+f0
+90
+80
+06
+74
+02
+f0
+90
+81
+2c
+e0
+30
+e3
+f9
+7f
+00
+22
+e4
+90
+1c
+1d
+f0
+a3
+f0
+e4
+ff
+71
+24
+bf
+31
+18
+7f
+06
+71
+24
+ef
+44
+80
+ff
+90
+1c
+1d
+f0
+7d
+06
+31
+0e
+90
+1c
+1e
+74
+31
+f0
+21
+e8
+e4
+ff
+71
+24
+ef
+64
+30
+70
+7c
+7f
+01
+71
+24
+ef
+54
+f0
+64
+d0
+70
+28
+7f
+1e
+71
+24
+ef
+30
+e0
+08
+90
+1c
+1e
+74
+d1
+f0
+80
+06
+90
+1c
+1e
+74
+d0
+f0
+7f
+06
+71
+24
+ef
+44
+80
+ff
+90
+1c
+1d
+f0
+7d
+06
+31
+0e
+80
+4d
+7f
+01
+71
+24
+ef
+54
+f0
+ff
+bf
+50
+18
+90
+1c
+1e
+74
+50
+f0
+7f
+06
+71
+24
+ef
+44
+80
+ff
+90
+1c
+1d
+f0
+7d
+06
+31
+0e
+80
+2a
+7f
+01
+71
+24
+bf
+02
+1f
+7f
+06
+71
+24
+ef
+44
+80
+ff
+90
+1c
+1d
+f0
+7d
+06
+31
+0e
+90
+1c
+1e
+74
+02
+f0
+7f
+01
+71
+24
+ef
+64
+02
+60
+04
+d1
+30
+21
+40
+90
+1c
+1e
+e0
+64
+d0
+60
+02
+41
+b8
+7d
+09
+7f
+5a
+31
+0e
+7d
+0d
+7f
+0a
+31
+0e
+7d
+1b
+7f
+35
+31
+0e
+7d
+1d
+7f
+db
+31
+0e
+7d
+28
+7f
+b4
+31
+0e
+7d
+29
+7f
+46
+31
+0e
+7d
+2a
+7f
+96
+31
+0e
+7d
+2b
+7f
+8c
+31
+0e
+7d
+2c
+7f
+6e
+31
+0e
+7d
+2d
+7f
+64
+31
+0e
+7d
+38
+7f
+5f
+31
+0e
+7d
+39
+7f
+0f
+31
+0e
+7d
+3a
+7f
+32
+31
+0e
+7d
+3b
+7f
+47
+31
+0e
+7d
+42
+7f
+10
+31
+0e
+7d
+43
+7f
+09
+31
+0e
+7d
+54
+7f
+2e
+31
+0e
+7d
+55
+7f
+f2
+31
+0e
+7d
+61
+7f
+f4
+31
+0e
+7d
+63
+7f
+70
+31
+0e
+7d
+75
+7f
+52
+31
+0e
+7d
+76
+7f
+41
+31
+0e
+7d
+77
+7f
+ed
+31
+0e
+7d
+78
+7f
+23
+31
+0e
+7d
+79
+7f
+46
+31
+0e
+7d
+7a
+7f
+e5
+31
+0e
+7d
+7c
+7f
+48
+31
+0e
+7d
+7d
+7f
+80
+31
+0e
+7d
+7e
+7f
+77
+31
+0e
+7d
+7f
+7f
+01
+31
+0e
+7d
+0b
+e4
+ff
+31
+0e
+7d
+7f
+e4
+ff
+31
+0e
+7d
+09
+e4
+ff
+31
+0e
+90
+1c
+1e
+e0
+b4
+02
+18
+7d
+09
+7f
+5a
+31
+0e
+7d
+26
+7f
+34
+31
+0e
+7d
+19
+7f
+04
+31
+0e
+7d
+09
+e4
+ff
+31
+0e
+90
+1c
+1e
+e0
+64
+50
+70
+3f
+7d
+09
+7f
+5a
+31
+0e
+7d
+5b
+7f
+9a
+31
+0e
+7f
+0d
+71
+24
+ef
+64
+12
+60
+08
+7d
+0d
+7f
+12
+31
+0e
+80
+ef
+7f
+0e
+71
+24
+ef
+64
+c5
+60
+08
+7d
+0e
+7f
+c5
+31
+0e
+80
+ef
+7f
+53
+71
+24
+ef
+64
+48
+60
+08
+7d
+53
+7f
+48
+31
+0e
+80
+ef
+90
+1c
+1e
+e0
+ff
+22
+90
+02
+18
+ef
+f0
+90
+80
+88
+74
+01
+f0
+a3
+e4
+f0
+90
+80
+8e
+04
+f0
+a3
+e4
+f0
+90
+80
+06
+74
+02
+f0
+90
+81
+2c
+e0
+30
+e3
+f9
+90
+02
+1d
+e0
+ff
+22
+e4
+90
+1c
+00
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+c2
+00
+90
+4e
+9a
+e0
+ff
+64
+01
+60
+07
+ef
+64
+07
+60
+02
+c1
+2f
+90
+4e
+c0
+e0
+70
+0a
+90
+4e
+9a
+e0
+64
+01
+70
+02
+c1
+2f
+f1
+d7
+40
+02
+c1
+2f
+90
+4e
+9a
+e0
+b4
+01
+0b
+90
+4e
+a4
+e0
+b4
+02
+12
+d2
+00
+80
+0e
+90
+4e
+cc
+e0
+ff
+90
+4e
+b1
+e0
+6f
+60
+02
+d2
+00
+90
+4e
+cc
+e0
+ff
+90
+4e
+b1
+f0
+bf
+07
+02
+e4
+f0
+90
+4e
+ca
+e0
+64
+01
+60
+0a
+90
+4e
+9a
+e0
+64
+07
+60
+02
+a1
+62
+7f
+18
+d1
+90
+50
+02
+a1
+62
+e4
+90
+4e
+ca
+f0
+d2
+00
+d1
+30
+7f
+02
+71
+24
+ef
+20
+e7
+02
+a1
+62
+90
+4e
+a4
+74
+02
+f0
+90
+4e
+b6
+e0
+64
+02
+60
+16
+7f
+03
+71
+24
+90
+1c
+00
+ef
+f0
+7f
+04
+71
+24
+ef
+f4
+04
+90
+1c
+01
+f0
+80
+29
+7f
+03
+71
+24
+90
+1c
+00
+ef
+f0
+7f
+04
+71
+24
+90
+1c
+01
+ef
+f0
+7f
+12
+71
+24
+90
+1c
+03
+ef
+f0
+e0
+ff
+c4
+54
+0f
+90
+1c
+02
+f0
+ef
+54
+0f
+a3
+f0
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+90
+4e
+b6
+e0
+64
+02
+70
+2a
+90
+1c
+02
+e0
+ff
+30
+e3
+05
+44
+f0
+f0
+80
+07
+90
+1c
+02
+e0
+54
+0f
+f0
+90
+1c
+03
+e0
+ff
+30
+e3
+05
+44
+f0
+f0
+80
+31
+90
+1c
+03
+e0
+54
+0f
+f0
+80
+28
+90
+1c
+00
+e0
+30
+e7
+08
+90
+1c
+02
+74
+ff
+f0
+80
+05
+e4
+90
+1c
+02
+f0
+90
+1c
+01
+e0
+30
+e7
+08
+90
+1c
+03
+74
+ff
+f0
+80
+05
+e4
+90
+1c
+03
+f0
+90
+1c
+02
+e0
+fe
+90
+1c
+00
+e0
+fd
+ee
+ed
+ff
+90
+1b
+c5
+ee
+f0
+a3
+ef
+f0
+90
+1c
+03
+e0
+fe
+90
+1c
+01
+e0
+fd
+ee
+ed
+ff
+90
+1b
+c7
+ee
+f0
+a3
+ef
+f0
+90
+4e
+b9
+e0
+b4
+02
+45
+90
+4e
+b6
+e0
+b4
+31
+3e
+90
+1b
+c7
+e0
+fc
+a3
+e0
+fd
+ae
+04
+78
+02
+ce
+a2
+e7
+13
+ce
+13
+d8
+f8
+2d
+ff
+ec
+3e
+90
+1b
+c7
+f0
+a3
+ef
+f0
+90
+1b
+c5
+e0
+fc
+a3
+e0
+fd
+ae
+04
+78
+02
+ce
+a2
+e7
+13
+ce
+13
+d8
+f8
+2d
+ff
+ec
+3e
+90
+1b
+c5
+f0
+a3
+ef
+f0
+90
+1b
+c7
+e0
+fe
+a3
+e0
+ff
+c3
+e4
+9f
+ff
+e4
+9e
+90
+1b
+c7
+f0
+a3
+ef
+f0
+90
+1b
+c5
+e0
+fe
+a3
+e0
+ff
+c3
+e4
+9f
+ff
+e4
+9e
+90
+1b
+c5
+f0
+a3
+ef
+f0
+12
+1e
+c7
+90
+1b
+c5
+e0
+fc
+a3
+e0
+90
+1c
+00
+f0
+ec
+ff
+33
+95
+e0
+90
+1c
+02
+ef
+f0
+90
+1b
+c7
+e0
+fc
+a3
+e0
+90
+1c
+01
+f0
+ec
+ff
+33
+95
+e0
+90
+1c
+03
+ef
+f0
+90
+4e
+b5
+e0
+60
+02
+d2
+00
+20
+00
+02
+c1
+2f
+e4
+90
+4e
+a1
+f0
+a3
+f0
+90
+4e
+9a
+e0
+64
+01
+70
+60
+90
+4e
+c3
+e0
+04
+f0
+e0
+d3
+94
+ff
+40
+02
+e4
+f0
+90
+4e
+4f
+74
+01
+f0
+90
+1c
+00
+e0
+90
+4e
+50
+f0
+90
+1c
+02
+e0
+90
+4e
+51
+f0
+90
+1c
+01
+e0
+90
+4e
+52
+f0
+90
+1c
+03
+e0
+90
+4e
+53
+f0
+90
+4e
+b5
+e0
+90
+4e
+54
+f0
+90
+4e
+b1
+e0
+90
+4e
+55
+f0
+e4
+a3
+f0
+90
+4e
+c3
+e0
+90
+4e
+57
+f0
+7b
+01
+7a
+4e
+79
+4f
+7d
+09
+12
+15
+ef
+e4
+90
+4e
+b5
+f0
+22
+90
+4e
+9a
+e0
+ff
+64
+02
+60
+05
+ef
+64
+07
+70
+43
+90
+4e
+b1
+e0
+90
+4e
+4f
+f0
+90
+1c
+00
+e0
+90
+4e
+50
+f0
+90
+1c
+02
+e0
+90
+4e
+51
+f0
+90
+1c
+01
+e0
+90
+4e
+52
+f0
+90
+1c
+03
+e0
+90
+4e
+53
+f0
+90
+4e
+b5
+e0
+90
+4e
+54
+f0
+e4
+a3
+f0
+7b
+01
+7a
+4e
+79
+4f
+7d
+07
+12
+19
+49
+e4
+90
+4e
+b5
+f0
+22
+e4
+ff
+90
+80
+81
+04
+f0
+e4
+ff
+71
+24
+ef
+64
+30
+60
+27
+ef
+64
+31
+60
+22
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+54
+fd
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+81
+74
+01
+f0
+80
+d0
+22
+e4
+ff
+d1
+30
+7f
+06
+71
+24
+ef
+54
+f7
+ff
+7d
+06
+31
+0e
+7f
+02
+71
+24
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+22
+7b
+01
+7a
+81
+79
+1c
+ad
+07
+e4
+90
+1c
+20
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+01
+1d
+fd
+33
+95
+e0
+fc
+90
+1c
+20
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
+90
+1c
+21
+ef
+f0
+d1
+90
+92
+09
+90
+1c
+21
+e0
+ff
+a2
+09
+b3
+92
+08
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+30
+08
+43
+24
+a0
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+d0
+82
+d0
+83
+f0
+22
+74
+a0
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+fc
+4d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+ff
+ec
+f4
+fe
+ef
+5e
+f0
+22
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+c2
+06
+7f
+04
+12
+03
+ac
+c2
+06
+7f
+1b
+12
+03
+ac
+c2
+06
+7f
+17
+12
+03
+ac
+c2
+06
+e4
+ff
+12
+03
+ac
+c2
+06
+e4
+ff
+12
+03
+ac
+c2
+06
+7f
+06
+12
+03
+ac
+7f
+02
+d1
+d5
+7f
+03
+d1
+d5
+7f
+04
+d1
+d5
+7f
+17
+d1
+d5
+7f
+1b
+d1
+d5
+e4
+ff
+d1
+d5
+e4
+ff
+d1
+d5
+7f
+06
+c1
+d5
+7d
+05
+7f
+a1
+21
+0e
+7d
+05
+7f
+b8
+21
+0e
+90
+49
+3a
+e0
+fe
+a3
+e0
+ff
+90
+49
+38
+e0
+b5
+06
+07
+a3
+e0
+b5
+07
+02
+d3
+22
+c3
+22
+90
+4e
+a7
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+04
+d1
+90
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+a7
+f0
+30
+e0
+06
+90
+4e
+a4
+74
+02
+f0
+90
+4e
+a7
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+a8
+f0
+90
+4e
+a8
+e0
+ff
+22
+90
+4e
+a9
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+17
+12
+0e
+90
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+a9
+f0
+30
+e0
+06
+90
+4e
+a4
+74
+02
+f0
+90
+4e
+a9
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+aa
+f0
+90
+4e
+aa
+e0
+ff
+22
+e4
+90
+1b
+ed
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+c8
+e0
+64
+01
+70
+57
+f0
+12
+0f
+ef
+90
+1b
+ed
+ef
+f0
+11
+34
+90
+1b
+ef
+ef
+f0
+f1
+e8
+90
+1b
+ee
+ef
+f0
+12
+18
+2e
+90
+1b
+f0
+ef
+f0
+12
+18
+74
+90
+1b
+f1
+ef
+f0
+11
+e7
+90
+1b
+ee
+e0
+ff
+25
+e0
+ff
+90
+1b
+ed
+e0
+4f
+ff
+90
+1b
+ef
+e0
+fe
+25
+e0
+25
+e0
+4f
+ff
+a3
+e0
+fe
+33
+33
+33
+54
+f8
+4f
+ff
+a3
+e0
+fe
+c4
+54
+f0
+4f
+90
+4e
+cc
+f0
+22
+90
+4e
+ba
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+06
+12
+0e
+90
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+ba
+f0
+30
+e0
+06
+90
+4e
+a4
+74
+02
+f0
+90
+4e
+ba
+e0
+ff
+bf
+07
+06
+90
+4e
+cb
+74
+01
+f0
+90
+4e
+ba
+e0
+f4
+70
+53
+90
+4e
+cb
+e0
+64
+0f
+70
+4b
+7b
+01
+7a
+4e
+79
+9a
+7d
+01
+fc
+7f
+d9
+7e
+3f
+51
+a0
+90
+4e
+9a
+e0
+b4
+01
+05
+74
+09
+f0
+80
+06
+90
+4e
+9a
+74
+01
+f0
+7b
+01
+7a
+4e
+79
+9a
+7d
+01
+7c
+00
+7f
+d9
+7e
+3f
+31
+b2
+7f
+0a
+7e
+00
+51
+61
+d2
+07
+7f
+08
+51
+80
+7f
+0a
+7e
+00
+51
+61
+90
+80
+10
+74
+01
+f0
+80
+fe
+90
+4e
+ba
+e0
+64
+f8
+70
+31
+90
+4e
+cb
+f0
+c3
+94
+0d
+50
+28
+90
+4e
+b9
+e0
+04
+f0
+e0
+b4
+03
+02
+e4
+f0
+90
+4e
+b9
+e0
+04
+90
+4e
+bb
+f0
+12
+08
+59
+7b
+01
+7a
+4e
+79
+b9
+7d
+01
+7c
+00
+7f
+d8
+7e
+3f
+31
+b2
+22
+90
+1b
+c9
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+cb
+e0
+70
+02
+a3
+e0
+70
+02
+41
+60
+90
+1b
+c9
+e0
+fe
+a3
+e0
+ff
+44
+0f
+24
+01
+fd
+e4
+3e
+fc
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+90
+1b
+d0
+f0
+a3
+ef
+f0
+90
+1b
+cb
+e0
+fc
+a3
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
+90
+1b
+d0
+e0
+fe
+a3
+e0
+ff
+80
+04
+ae
+04
+af
+05
+90
+1b
+d0
+ee
+f0
+fc
+a3
+ef
+f0
+fd
+c3
+90
+1b
+cc
+e0
+9d
+f0
+90
+1b
+cb
+e0
+9c
+f0
+90
+1b
+c9
+e0
+fe
+a3
+e0
+ff
+90
+1b
+cd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+71
+b9
+7f
+0a
+7e
+00
+51
+61
+90
+1b
+d0
+e0
+fe
+a3
+e0
+ff
+90
+1b
+ce
+ee
+8f
+f0
+12
+01
+92
+90
+1b
+ca
+e0
+2f
+f0
+90
+1b
+c9
+e0
+3e
+f0
+21
+c9
+22
+d3
+ef
+94
+00
+ee
+94
+00
+40
+15
+e4
+fd
+fc
+0d
+bd
+00
+01
+0c
+bc
+04
+f8
+bd
+a6
+f5
+ef
+1f
+70
+01
+1e
+80
+e2
+22
+ac
+07
+d2
+05
+12
+03
+c3
+af
+04
+a2
+07
+92
+02
+b1
+42
+af
+04
+c2
+03
+7b
+01
+7a
+80
+79
+78
+a2
+03
+92
+01
+02
+03
+cd
+90
+1b
+f7
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+80
+98
+74
+04
+f0
+a3
+e4
+f0
+90
+1b
+2c
+74
+a0
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+90
+1b
+2f
+74
+a1
+f0
+7a
+1b
+79
+2c
+7e
+1b
+7f
+2c
+74
+2c
+fc
+74
+1b
+ff
+ec
+fe
+ef
+90
+80
+9a
+ee
+f0
+a3
+ef
+f0
+90
+1b
+f7
+e0
+fc
+a3
+e0
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+9e
+ee
+f0
+a3
+ef
+f0
+7a
+1b
+79
+30
+7e
+1b
+7f
+30
+74
+30
+fc
+74
+1b
+ff
+ec
+fe
+ef
+90
+80
+9c
+ee
+f0
+a3
+ef
+f0
+90
+80
+90
+74
+02
+f0
+90
+80
+9c
+a3
+e0
+20
+e7
+07
+90
+80
+90
+e0
+44
+01
+f0
+90
+80
+06
+e0
+44
+04
+f0
+91
+26
+90
+1b
+f9
+e0
+a3
+e0
+fa
+a3
+e0
+ae
+02
+ff
+7b
+01
+7a
+1b
+79
+30
+90
+1b
+f7
+e0
+a3
+e0
+90
+1b
+e6
+f0
+90
+1b
+e1
+ee
+f0
+a3
+ef
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+e6
+e0
+ff
+14
+f0
+ef
+60
+27
+90
+1b
+e3
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+01
+a8
+a9
+f0
+fa
+12
+01
+04
+ff
+90
+1b
+e1
+e4
+75
+f0
+01
+12
+01
+a8
+85
+f0
+82
+f5
+83
+ef
+f0
+80
+cf
+22
+7b
+01
+7a
+47
+79
+79
+7d
+04
+7c
+00
+7f
+d4
+7e
+3f
+51
+a0
+7f
+23
+12
+07
+bc
+90
+4e
+9a
+74
+01
+f0
+fb
+7a
+4e
+79
+9a
+fd
+7c
+00
+7f
+d9
+7e
+3f
+21
+b2
+90
+1b
+94
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+7e
+1b
+7f
+9b
+90
+1b
+e6
+f0
+71
+4d
+90
+1b
+98
+74
+a0
+f0
+90
+1b
+94
+e0
+ff
+a3
+e0
+90
+1b
+99
+cf
+f0
+a3
+ef
+f0
+90
+1b
+97
+e0
+24
+03
+fd
+90
+1b
+96
+e0
+34
+00
+fc
+ed
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+98
+ee
+f0
+a3
+ef
+f0
+7d
+98
+ed
+fa
+74
+1b
+ff
+ea
+fe
+ef
+a3
+ee
+f0
+a3
+ef
+f0
+90
+80
+9e
+e4
+f0
+a3
+f0
+90
+80
+90
+04
+f0
+90
+80
+06
+e0
+44
+04
+f0
+90
+81
+2c
+e0
+30
+e5
+f9
+22
+e4
+90
+1b
+f2
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7f
+04
+12
+0e
+90
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+f2
+ef
+f0
+7f
+17
+12
+0e
+90
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+f4
+ef
+f0
+7f
+1b
+12
+0e
+90
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+f3
+ef
+f0
+e0
+ff
+25
+e0
+ff
+90
+1b
+f2
+e0
+4f
+ff
+90
+1b
+f4
+e0
+fe
+25
+e0
+25
+e0
+4f
+a3
+f0
+64
+07
+60
+02
+a1
+3c
+90
+4e
+a1
+f0
+a3
+f0
+90
+4e
+a4
+74
+0a
+f0
+90
+4e
+a3
+e0
+c3
+94
+19
+40
+02
+a1
+41
+90
+4e
+a3
+e0
+04
+f0
+e0
+64
+19
+60
+02
+a1
+41
+90
+4e
+9a
+e0
+60
+73
+14
+60
+22
+24
+fb
+60
+6c
+24
+fe
+60
+0f
+04
+70
+7b
+7f
+11
+12
+07
+bc
+90
+4e
+9b
+74
+08
+f0
+22
+90
+4e
+9a
+74
+03
+f0
+7f
+0d
+02
+07
+bc
+90
+4e
+c3
+e0
+04
+f0
+e0
+d3
+94
+ff
+40
+02
+e4
+f0
+90
+4e
+4f
+74
+01
+f0
+e4
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+c3
+e0
+90
+4e
+57
+f0
+7b
+01
+7a
+4e
+79
+4f
+7d
+09
+b1
+ef
+7f
+64
+7e
+00
+51
+61
+f1
+3d
+7f
+0a
+7e
+00
+51
+61
+90
+4e
+9a
+74
+03
+f0
+7f
+0d
+02
+07
+bc
+90
+4e
+9a
+74
+03
+f0
+7f
+0d
+12
+07
+bc
+7f
+01
+02
+07
+bc
+22
+e4
+90
+4e
+a3
+f0
+22
+7b
+01
+7a
+80
+79
+74
+a2
+02
+92
+01
+02
+03
+cd
+90
+4e
+bb
+e0
+70
+03
+a3
+04
+f0
+90
+4e
+bb
+e0
+60
+2b
+90
+4e
+a4
+74
+0a
+f0
+90
+4e
+bc
+e0
+60
+0c
+c2
+02
+7f
+08
+b1
+42
+e4
+90
+4e
+bc
+f0
+22
+d2
+02
+7f
+08
+b1
+42
+90
+4e
+bc
+74
+01
+f0
+90
+4e
+bb
+e0
+14
+f0
+22
+90
+4e
+9a
+e0
+b4
+03
+14
+90
+4e
+a4
+74
+45
+f0
+90
+4e
+a6
+e0
+54
+07
+ff
+bf
+04
+0a
+7f
+08
+80
+2f
+d2
+02
+7f
+08
+b1
+42
+22
+e4
+90
+0b
+2b
+f0
+90
+0b
+2a
+f0
+7f
+01
+fe
+41
+61
+90
+4e
+a4
+e0
+60
+02
+14
+f0
+90
+4e
+a6
+e0
+04
+f0
+90
+4e
+cb
+e0
+60
+02
+04
+f0
+b1
+4f
+81
+2e
+90
+1c
+22
+ef
+f0
+7b
+01
+7a
+80
+79
+74
+12
+0e
+96
+92
+0a
+90
+1c
+22
+e0
+ff
+a2
+0a
+b3
+92
+02
+a1
+42
+90
+1c
+24
+ed
+f0
+90
+1a
+96
+74
+06
+f0
+90
+49
+3a
+e0
+fe
+a3
+e0
+ff
+90
+49
+38
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+24
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+e6
+ed
+f0
+71
+4d
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+24
+e0
+24
+02
+fd
+02
+07
+e3
+e4
+90
+1c
+1f
+f0
+90
+4f
+f0
+e0
+04
+f0
+90
+4e
+a2
+e0
+04
+f0
+70
+06
+90
+4e
+a1
+e0
+04
+f0
+90
+4e
+9a
+e0
+14
+60
+60
+24
+fe
+60
+22
+24
+fd
+70
+02
+e1
+0c
+14
+60
+32
+14
+60
+02
+e1
+3c
+90
+1c
+1f
+74
+09
+f0
+90
+4e
+a1
+e0
+70
+04
+a3
+e0
+64
+14
+70
+02
+e1
+2a
+90
+1c
+1f
+74
+02
+f0
+90
+4e
+a1
+e0
+64
+01
+70
+04
+a3
+e0
+64
+68
+60
+02
+e1
+3c
+e1
+2a
+22
+90
+1c
+1f
+74
+09
+f0
+90
+4e
+a1
+e0
+64
+04
+70
+04
+a3
+e0
+64
+b0
+60
+02
+e1
+3c
+7f
+11
+12
+07
+bc
+e4
+90
+4e
+9b
+f0
+22
+90
+1c
+1f
+74
+01
+f0
+90
+4e
+a1
+e0
+fe
+a3
+e0
+ff
+d3
+94
+58
+ee
+94
+02
+40
+08
+90
+4e
+c0
+e0
+64
+01
+60
+5a
+90
+4e
+c0
+e0
+70
+66
+ef
+64
+05
+4e
+70
+1e
+90
+42
+b8
+e0
+20
+e2
+07
+7f
+25
+12
+07
+bc
+80
+10
+7f
+24
+12
+07
+bc
+7f
+0a
+7e
+00
+51
+61
+7f
+23
+12
+07
+bc
+d3
+90
+4e
+a2
+e0
+94
+07
+90
+4e
+a1
+e0
+94
+00
+40
+33
+80
+1f
+22
+90
+1c
+1f
+74
+02
+f0
+12
+0f
+d7
+50
+25
+c3
+90
+4e
+a2
+e0
+94
+03
+90
+4e
+a1
+e0
+94
+00
+40
+16
+80
+02
+22
+22
+7b
+01
+7a
+1c
+79
+1f
+7d
+01
+7c
+00
+7f
+d9
+7e
+3f
+31
+b2
+f1
+48
+22
+7f
+24
+12
+07
+bc
+e4
+90
+4e
+9a
+f0
+22
+e4
+90
+4e
+a1
+f0
+a3
+f0
+90
+4e
+a4
+f0
+90
+4e
+9e
+04
+f0
+e4
+90
+4e
+9a
+f0
+7f
+19
+02
+07
+bc
+90
+1c
+25
+ed
+f0
+90
+1a
+96
+74
+04
+f0
+90
+49
+3a
+e0
+fe
+a3
+e0
+ff
+90
+49
+38
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+25
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+e6
+ed
+f0
+71
+4d
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+25
+e0
+24
+02
+fd
+02
+07
+e3
+90
+1c
+26
+ed
+f0
+90
+1a
+96
+74
+05
+f0
+90
+49
+3a
+e0
+fe
+a3
+e0
+ff
+90
+49
+38
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+26
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+e6
+ed
+f0
+71
+4d
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+26
+e0
+24
+02
+fd
+02
+07
+e3
+90
+4e
+ab
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+1b
+12
+0e
+90
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+ab
+f0
+30
+e0
+06
+90
+4e
+a4
+74
+02
+f0
+90
+4e
+ab
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+ac
+f0
+90
+4e
+ac
+e0
+ff
+22
+90
+4e
+af
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+e4
+ff
+12
+0e
+90
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+af
+f0
+30
+e0
+06
+90
+4e
+a4
+74
+02
+f0
+90
+4e
+af
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+b0
+f0
+90
+4e
+b0
+e0
+ff
+22
+90
+4e
+ad
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+e4
+ff
+12
+0e
+90
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+ad
+f0
+30
+e0
+06
+90
+4e
+a4
+74
+02
+f0
+90
+4e
+ad
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+ae
+f0
+90
+4e
+ae
+e0
+ff
+22
+e4
+90
+1c
+0c
+f0
+a3
+f0
+7f
+02
+12
+0e
+90
+e4
+33
+90
+1c
+0e
+f0
+7f
+03
+12
+0e
+90
+e4
+33
+ff
+90
+1c
+0e
+e0
+fe
+25
+e0
+4f
+ff
+90
+4e
+b2
+e0
+6f
+60
+64
+90
+4e
+b3
+e0
+a3
+f0
+90
+4e
+b2
+e0
+a3
+f0
+90
+4e
+b2
+ef
+f0
+fd
+a3
+e0
+75
+f0
+04
+a4
+fb
+aa
+f0
+ed
+75
+f0
+10
+a4
+ff
+e5
+f0
+4a
+fe
+ef
+4b
+ff
+a3
+e0
+fd
+ee
+ef
+4d
+ff
+90
+1c
+0c
+ee
+f0
+a3
+ef
+f0
+ee
+70
+2a
+ef
+24
+f5
+60
+19
+24
+d7
+60
+15
+24
+fc
+60
+04
+24
+31
+70
+19
+90
+4e
+b5
+e0
+14
+f0
+90
+4e
+a4
+74
+0a
+f0
+22
+90
+4e
+b5
+e0
+04
+f0
+90
+4e
+a4
+74
+0a
+f0
+22
+90
+1b
+fc
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+4e
+9a
+e0
+ff
+64
+02
+60
+05
+ef
+64
+07
+70
+2e
+ef
+b4
+02
+10
+90
+1b
+fc
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+80
+1b
+90
+4e
+9a
+e0
+b4
+07
+11
+90
+1b
+fc
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+02
+17
+a5
+80
+fe
+22
+90
+1c
+23
+ed
+f0
+90
+1a
+96
+74
+03
+f0
+90
+1c
+23
+e0
+60
+39
+90
+49
+3a
+e0
+fe
+a3
+e0
+ff
+90
+49
+38
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+23
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+e6
+ed
+f0
+12
+13
+4d
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+23
+e0
+24
+02
+fd
+12
+07
+e3
+22
+90
+4e
+c8
+74
+01
+f0
+a3
+e0
+04
+f0
+e0
+30
+e0
+04
+a3
+74
+01
+f0
+22
+53
+89
+f0
+43
+89
+01
+75
+8c
+47
+e4
+f5
+8a
+f5
+a8
+d2
+af
+d2
+a9
+d2
+8c
+90
+1b
+c1
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+1b
+bd
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+c2
+0b
+90
+1b
+c5
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+80
+b7
+c0
+e0
+c0
+f0
+c0
+83
+c0
+82
+c0
+d0
+75
+d0
+00
+c0
+00
+c0
+01
+c0
+02
+c0
+03
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+75
+8c
+47
+75
+8a
+00
+31
+df
+d0
+07
+d0
+06
+d0
+05
+d0
+04
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+d0
+d0
+d0
+82
+d0
+83
+d0
+f0
+d0
+e0
+32
+7b
+01
+7a
+4e
+79
+98
+7d
+38
+7c
+00
+51
+7f
+90
+4e
+ce
+74
+ff
+f0
+a3
+74
+38
+f0
+22
+90
+1c
+0f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+16
+90
+1c
+0f
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+01
+a8
+a9
+f0
+fa
+e4
+12
+01
+4a
+80
+e0
+22
+7b
+01
+7a
+1b
+79
+ab
+78
+a4
+7c
+49
+7d
+01
+7e
+00
+7f
+12
+02
+00
+de
+90
+82
+80
+74
+01
+f0
+22
+90
+1b
+d2
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+d8
+74
+ff
+f5
+f0
+12
+01
+a8
+45
+f0
+60
+2a
+90
+1b
+d5
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+01
+a8
+a9
+f0
+fa
+12
+01
+04
+ff
+90
+1b
+d2
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+01
+a8
+a9
+f0
+fa
+ef
+12
+01
+4a
+80
+c8
+22
+90
+1c
+12
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+17
+90
+1c
+12
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+01
+a8
+a9
+f0
+fa
+74
+ff
+12
+01
+4a
+80
+df
+22
+ef
+d3
+94
+00
+40
+03
+1f
+80
+f7
+22
+90
+1b
+da
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+90
+1b
+e0
+e0
+fe
+ef
+c3
+9e
+50
+30
+90
+1b
+dd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+01
+1d
+fe
+90
+1b
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+01
+1d
+6e
+60
+03
+7f
+00
+22
+0f
+80
+c6
+7f
+01
+22
+7b
+01
+7a
+80
+79
+7c
+a2
+04
+92
+01
+02
+03
+cd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+24
+a0
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+fc
+5d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+5c
+f0
+22
+90
+80
+86
+74
+75
+f0
+a3
+74
+0a
+f0
+90
+80
+8a
+74
+18
+f0
+a3
+74
+02
+f0
+a3
+74
+1d
+f0
+a3
+74
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+22
+90
+42
+d1
+e0
+fe
+a3
+e0
+ff
+22
+90
+4e
+71
+e0
+fe
+a3
+e0
+ff
+22
+90
+4e
+6f
+e0
+fe
+a3
+e0
+ff
+22
+90
+1c
+04
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+49
+a0
+e0
+fe
+a3
+e0
+ff
+90
+1c
+07
+e0
+fd
+14
+f0
+ed
+60
+32
+0f
+ef
+ac
+06
+70
+01
+0e
+14
+f5
+82
+8c
+83
+e0
+fd
+90
+1c
+04
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+01
+a8
+a9
+f0
+fa
+ed
+12
+01
+4a
+ad
+07
+ac
+06
+bc
+49
+cd
+bd
+a0
+ca
+7e
+49
+7f
+3c
+80
+c4
+90
+49
+a0
+ee
+f0
+a3
+ef
+f0
+22
+7a
+1a
+79
+00
+90
+1c
+18
+74
+01
+f0
+a3
+74
+1a
+f0
+a3
+74
+00
+f0
+90
+49
+a2
+e0
+fe
+a3
+e0
+ff
+90
+49
+a0
+e0
+6e
+70
+03
+a3
+e0
+6f
+70
+02
+c1
+23
+7b
+01
+7a
+1a
+79
+00
+7d
+03
+91
+11
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+b4
+02
+2b
+90
+1c
+19
+e4
+75
+f0
+02
+12
+01
+92
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+ff
+90
+49
+a4
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+12
+01
+e8
+c1
+23
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+64
+04
+70
+5b
+90
+1c
+19
+75
+f0
+01
+12
+01
+92
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+91
+11
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+18
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+fd
+7c
+00
+90
+49
+a7
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+01
+e8
+c1
+23
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+64
+05
+70
+5b
+90
+1c
+19
+75
+f0
+01
+12
+01
+92
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+91
+11
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+18
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+fd
+7c
+00
+90
+49
+b0
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+01
+e8
+80
+6f
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+64
+03
+70
+5b
+90
+1c
+19
+75
+f0
+01
+12
+01
+92
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+91
+11
+90
+1c
+18
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+18
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+01
+04
+fd
+7c
+00
+90
+49
+b3
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+01
+e8
+80
+02
+80
+fe
+90
+4a
+0c
+e0
+fe
+a3
+e0
+ff
+90
+4a
+0e
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+21
+90
+49
+aa
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+36
+12
+01
+e4
+90
+4a
+0f
+e0
+04
+f0
+70
+06
+90
+4a
+0e
+e0
+04
+f0
+80
+cb
+90
+4a
+10
+e0
+ff
+a3
+e0
+6f
+60
+19
+90
+49
+ad
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+0b
+12
+01
+e4
+90
+4a
+11
+e0
+04
+f0
+80
+dd
+22
+90
+03
+f0
+e0
+ff
+22
+90
+0b
+2b
+74
+01
+f0
+e4
+90
+0b
+2a
+f0
+22
+e4
+ff
+12
+0e
+30
+7f
+06
+12
+0b
+24
+ef
+44
+08
+ff
+7d
+06
+12
+09
+0e
+90
+80
+81
+e4
+f0
+c2
+06
+7f
+19
+12
+03
+ac
+c2
+06
+7f
+1a
+02
+03
+ac
+d3
+ef
+94
+00
+ee
+64
+80
+94
+80
+50
+07
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+22
+90
+1b
+c5
+e0
+fe
+a3
+e0
+ff
+d3
+94
+06
+ee
+64
+80
+94
+80
+50
+26
+c3
+ef
+94
+fa
+ee
+64
+80
+94
+7f
+40
+1b
+a3
+e0
+fe
+a3
+e0
+ff
+d3
+94
+06
+ee
+64
+80
+94
+80
+50
+0b
+c3
+ef
+94
+fa
+ee
+64
+80
+94
+7f
+50
+02
+d2
+0b
+90
+1b
+c5
+e0
+fe
+a3
+e0
+ff
+d1
+b4
+c3
+ef
+94
+03
+ee
+94
+00
+50
+13
+a3
+e0
+fe
+a3
+e0
+ff
+d1
+b4
+c3
+ef
+94
+03
+ee
+94
+00
+50
+02
+c2
+0b
+20
+0b
+02
+e1
+aa
+90
+1b
+bd
+e0
+fe
+a3
+e0
+ff
+c3
+90
+1b
+c2
+e0
+9f
+ff
+90
+1b
+c1
+e0
+9e
+fe
+90
+1b
+c6
+e0
+2f
+ff
+90
+1b
+c5
+e0
+3e
+fe
+90
+1b
+c1
+f0
+a3
+ef
+f0
+7c
+00
+7d
+02
+12
+01
+5c
+90
+1b
+bd
+ee
+f0
+a3
+ef
+f0
+90
+1b
+c5
+ee
+f0
+a3
+ef
+f0
+90
+1b
+bf
+e0
+fe
+a3
+e0
+ff
+c3
+90
+1b
+c4
+e0
+9f
+ff
+90
+1b
+c3
+e0
+9e
+fe
+90
+1b
+c8
+e0
+2f
+ff
+90
+1b
+c7
+e0
+3e
+fe
+90
+1b
+c3
+f0
+a3
+ef
+f0
+7c
+00
+7d
+02
+12
+01
+5c
+90
+1b
+bf
+ee
+f0
+a3
+ef
+f0
+90
+1b
+c7
+ee
+f0
+a3
+ef
+f0
+22
+fa
+01
+aa
+55
+40
+00
+00
+40
+58
+02
+00
+00
+60
+02
+00
+80
+00
+10
+01
+00
+00
+00
+00
+00
+00
+08
+00
+00
+80
+13
+f0
+00
+00
+01
+00
+00
+00
+00
+00
+00
+00
+00
+00
+08
+08
+80
+0e
+d0
+04
+20
+60
+41
+00
+00
+00
+00
+00
+00
+20
+00
+00
+40
+00
+00
+00
+01
+00
+00
+00
+00
+88
+03
+aa
+55
+03
+00
+4a
+41
+80
+25
+00
+aa
+55
+06
+00
+40
+41
+ab
+ab
+66
+63
+5d
+6c
+aa
+55
+10
+00
+ae
+45
+0f
+59
+43
+20
+53
+44
+4b
+20
+42
+54
+33
+2e
+30
+20
+4d
+53
+aa
+55
+03
+00
+84
+42
+0e
+00
+01
+aa
+55
+01
+00
+88
+42
+01
+aa
+55
+01
+00
+f3
+45
+0a
+aa
+55
+04
+00
+e2
+46
+00
+03
+00
+04
+aa
+55
+01
+00
+0d
+47
+01
+aa
+55
+01
+00
+71
+41
+01
+aa
+55
+0e
+00
+0f
+46
+06
+03
+11
+00
+00
+01
+02
+10
+24
+11
+00
+12
+01
+00
+aa
+55
+01
+00
+25
+46
+00
+aa
+55
+7a
+02
+16
+4a
+04
+00
+11
+01
+00
+10
+02
+11
+24
+00
+01
+00
+00
+36
+01
+61
+09
+00
+00
+0a
+00
+01
+00
+09
+09
+00
+01
+35
+03
+19
+11
+24
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+11
+35
+03
+19
+00
+11
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+06
+35
+09
+09
+65
+6e
+09
+00
+6a
+09
+01
+00
+09
+00
+09
+35
+08
+35
+06
+19
+11
+24
+09
+01
+00
+09
+00
+0d
+35
+0f
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+13
+35
+03
+19
+00
+11
+09
+01
+00
+25
+16
+59
+69
+43
+68
+69
+70
+20
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4d
+6f
+75
+73
+65
+09
+01
+01
+25
+05
+4d
+6f
+75
+73
+65
+09
+01
+02
+25
+06
+59
+69
+43
+68
+69
+70
+09
+02
+00
+09
+01
+00
+09
+02
+01
+09
+01
+11
+09
+02
+02
+08
+80
+09
+02
+03
+08
+21
+09
+02
+04
+28
+01
+09
+02
+05
+28
+01
+09
+02
+06
+35
+81
+35
+7f
+08
+22
+25
+7b
+05
+01
+09
+02
+a1
+01
+85
+02
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+f8
+26
+ff
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+75
+08
+95
+01
+81
+06
+c0
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+75
+10
+95
+02
+15
+01
+26
+8c
+02
+19
+01
+2a
+8c
+02
+81
+60
+c0
+06
+00
+ff
+09
+01
+a1
+01
+85
+10
+75
+08
+95
+06
+15
+00
+26
+ff
+00
+09
+01
+81
+00
+09
+01
+91
+00
+c0
+09
+02
+07
+35
+08
+35
+06
+09
+04
+09
+09
+01
+00
+09
+02
+08
+28
+00
+09
+02
+09
+28
+01
+09
+02
+0a
+28
+01
+09
+02
+0b
+09
+01
+00
+09
+02
+0c
+09
+0c
+80
+09
+02
+0d
+28
+00
+09
+02
+0e
+28
+01
+04
+10
+02
+12
+00
+01
+00
+00
+01
+00
+01
+00
+01
+36
+00
+5a
+09
+00
+00
+0a
+00
+01
+00
+01
+09
+00
+01
+35
+03
+19
+12
+00
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+01
+35
+03
+19
+00
+01
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+09
+35
+08
+35
+06
+19
+12
+00
+09
+01
+00
+09
+02
+00
+09
+01
+03
+09
+02
+01
+09
+0a
+5c
+09
+02
+02
+09
+00
+01
+09
+02
+03
+09
+01
+29
+09
+02
+04
+28
+01
+09
+02
+05
+09
+00
+02
+00
+00
+01
+00
+01
+00
+01
+00
+01
+36
+00
+5a
+09
+00
+00
+0a
+00
+01
+00
+01
+09
+00
+01
+35
+03
+19
+12
+00
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+01
+35
+03
+19
+00
+01
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+09
+35
+08
+35
+06
+19
+12
+00
+09
+01
+00
+09
+02
+00
+09
+01
+00
+09
+02
+01
+09
+05
+ac
+09
+02
+02
+09
+02
+39
+09
+02
+03
+09
+00
+44
+09
+02
+04
+28
+01
+09
+02
+05
+09
+00
+02
+03
+11
+01
+00
+03
+01
+00
+00
+01
+00
+02
+36
+00
+2f
+09
+00
+00
+0a
+00
+01
+00
+02
+09
+00
+01
+35
+03
+19
+11
+01
+09
+00
+04
+35
+0c
+35
+03
+19
+01
+00
+35
+05
+19
+00
+03
+08
+01
+09
+01
+00
+25
+09
+53
+50
+50
+20
+73
+aa
+55
+02
+00
+0d
+46
+16
+4a
+aa
+55
+01
+00
+32
+41
+43
+aa
+55
+01
+00
+fa
+41
+00
+aa
+55
+08
+00
+38
+41
+ff
+ff
+8f
+f8
+9b
+9d
+51
+82
+aa
+55
+01
+00
+d4
+08
+00
+aa
+55
+01
+00
+9f
+00
+00
+aa
+55
+01
+00
+d5
+08
+00
+aa
+55
+01
+00
+16
+00
+27
+aa
+55
+01
+00
+15
+47
+ff
+aa
+55
+01
+00
+0e
+47
+ff
+aa
+55
+01
+00
+31
+41
+01
+aa
+55
+02
+00
+12
+42
+00
+03
+aa
+55
+01
+00
+f6
+41
+08
+aa
+55
+02
+00
+f4
+41
+00
+02
+aa
+55
+01
+00
+33
+41
+00
+aa
+55
+02
+00
+08
+4a
+02
+01
+aa
+55
+02
+00
+cf
+42
+01
+34
+aa
+55
+04
+00
+6f
+4e
+9f
+3e
+cd
+4d
+aa
+55
+01
+00
+21
+45
+00
+aa
+55
+02
+00
+29
+45
+07
+00
+aa
+55
+01
+00
+96
+45
+50
+aa
+55
+01
+00
+f8
+44
+1a
+aa
+55
+06
+00
+3e
+45
+ab
+b9
+12
+0e
+10
+26
+aa
+55
+0e
+00
+40
+44
+0d
+59
+43
+20
+53
+44
+4b
+20
+42
+4c
+45
+20
+4d
+53
+aa
+55
+01
+00
+4c
+45
+17
+aa
+55
+01
+00
+20
+45
+00
+aa
+55
+07
+00
+22
+45
+01
+00
+00
+00
+00
+00
+00
+aa
+55
+1c
+00
+ff
+43
+00
+1f
+03
+19
+c2
+03
+03
+03
+12
+18
+02
+01
+05
+0e
+09
+59
+43
+20
+53
+44
+4b
+20
+42
+4c
+45
+20
+4d
+53
+aa
+55
+10
+00
+20
+44
+1f
+0e
+09
+59
+43
+20
+53
+44
+4b
+20
+42
+4c
+45
+20
+4d
+53
+aa
+55
+79
+01
+6e
+4c
+01
+00
+02
+00
+28
+02
+00
+18
+02
+00
+02
+03
+28
+01
+0a
+03
+00
+02
+00
+2a
+0d
+59
+43
+20
+53
+44
+4b
+20
+42
+4c
+45
+20
+4d
+53
+04
+00
+02
+03
+28
+01
+02
+05
+00
+02
+01
+2a
+02
+c2
+03
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+08
+00
+02
+00
+28
+02
+01
+18
+09
+00
+02
+03
+28
+01
+20
+0a
+00
+02
+05
+2a
+00
+0b
+00
+02
+02
+29
+02
+00
+00
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+02
+03
+28
+01
+02
+10
+00
+02
+50
+2a
+07
+02
+35
+12
+22
+aa
+01
+00
+11
+00
+02
+00
+28
+02
+0f
+18
+12
+00
+02
+03
+28
+01
+02
+13
+00
+02
+19
+2a
+01
+33
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+00
+28
+02
+12
+18
+16
+00
+02
+03
+28
+01
+06
+17
+00
+02
+4e
+2a
+01
+01
+18
+00
+02
+03
+28
+01
+1a
+19
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+1a
+00
+02
+02
+29
+02
+00
+00
+1b
+00
+02
+08
+29
+02
+01
+01
+1c
+00
+02
+03
+28
+01
+0a
+1d
+00
+02
+4b
+2a
+45
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+f8
+26
+ff
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+1e
+00
+02
+03
+28
+01
+1a
+1f
+00
+02
+33
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+02
+02
+29
+02
+01
+00
+21
+00
+02
+03
+28
+01
+02
+22
+00
+02
+4a
+2a
+04
+01
+01
+00
+03
+23
+00
+02
+03
+28
+01
+04
+24
+00
+02
+4c
+2a
+00
+00
+00
+aa
+55
+02
+00
+37
+46
+6e
+4c
+aa
+55
+01
+00
+76
+4e
+50
+aa
+55
+08
+00
+8d
+45
+07
+00
+07
+00
+00
+00
+2c
+01
+aa
+55
+01
+00
+4e
+4e
+03
+aa
+55
+01
+00
+80
+42
+04
+aa
+55
+02
+00
+7c
+4e
+19
+00
+aa
+55
+01
+00
+e2
+47
+04
+aa
+55
+06
+00
+25
+48
+20
+15
+10
+05
+00
+00
+aa
+55
+01
+00
+2d
+47
+19
+aa
+55
+02
+00
+b5
+47
+06
+0c
+aa
+55
+01
+00
+c1
+47
+ff
+aa
+55
+10
+00
+a5
+47
+00
+11
+23
+3c
+04
+1a
+27
+39
+08
+22
+35
+4b
+0f
+2d
+32
+4e
+aa
+55
+0a
+00
+4e
+0b
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+09
+00
+2d
+48
+11
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+b8
+47
+00
+48
+60
+00
+00
+00
+00
+00
+aa
+55
+03
+00
+15
+42
+8f
+1f
+ce
+aa
+55
+04
+00
+19
+42
+0a
+0b
+ef
+0f
+aa
+55
+01
+00
+f7
+41
+00
+aa
+55
+08
+00
+a0
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+02
+00
+5d
+41
+02
+24
+aa
+55
+08
+00
+4d
+41
+12
+00
+00
+02
+12
+00
+00
+02
+aa
+55
+02
+00
+5b
+41
+20
+00
+aa
+55
+04
+00
+57
+41
+20
+00
+00
+20
+aa
+55
+04
+00
+5f
+41
+80
+04
+00
+08
+aa
+55
+02
+00
+8e
+4e
+00
+40
+aa
+55
+05
+00
+a9
+45
+04
+0a
+00
+e9
+12
+aa
+55
+02
+00
+a8
+42
+30
+6f
+aa
+55
+01
+00
+b6
+42
+20
+aa
+55
+01
+00
+81
+42
+01
+aa
+55
+01
+00
+97
+4e
+ff
+aa
+55
+02
+00
+63
+41
+97
+4e
+d3
+39
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/global_variable.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/global_variable.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/global_variable.h	(working copy)
@@ -0,0 +1,134 @@
+#ifndef _GLOBAL_VARIABLE_H_
+#define _GLOBAL_VARIABLE_H_
+#include "sys.h"
+#include "type.h"
+
+
+typedef struct c51_global_variable
+{
+	u8_t modeSwitchCurrent;		// 4e7b + 0
+	u8_t modeSwitchLast;		// 1
+	u8_t currentState;			// 2
+	u8_t nextMode;				// 3
+	u8_t lastMode;				// 4
+	u8_t powerOnFlag;			// 5
+	u8_t lockLpm;				// 6
+	u8_t reconnFlag;			// 7
+	u8_t pageFlag;				// 8
+	u16_t sleepTimer;			// 9
+	u8_t buttonTimer;			// 11
+	u8_t wheelTimer;			// 12
+	u8_t powerOnTimer;			// 13
+	u8_t timer100msCount;		// 14
+	u8_t lKeyTemp;				// 15
+	u8_t lKey;					// 16
+	u8_t mKeyTemp;				// 17
+	u8_t mKey;					// 18
+	u8_t rKeyTemp;				// 19
+	u8_t rKey;					// 20
+	u8_t fwKeyTemp;				// 21
+	u8_t fwKey;					// 22
+	u8_t bkKeyTemp;				// 23
+	u8_t bkKey;					// 24
+	u8_t deltaKey;				// 25
+	u8_t wheelStateNow;			// 26
+	u8_t wheelStateBefore;		// 27
+	u8_t wheelStateLast;		// 28
+	u8_t deltaZWheel;			// 29
+	u8_t sensorType;			// 30
+	u8_t sensorAngle;			// 31
+	u8_t dpiCount;				// 32
+	u8_t dpiKeyTemp;			// 33
+	u8_t dpiLedFlipTime;		// 34
+	u8_t dpiLedStay;			// 35
+	u8_t dpiLedOnTimer;			// 36
+	u16_t adcCurrent;			// 37
+	u8_t adcLowPowerFlag;		// 39
+	u8_t g24DongleExist;		// 40
+	u8_t g24AutoPairFlag;		// 41	
+	u8_t g24TestMode;			// 42
+	u8_t btKeyTemp;				// 43
+	u8_t deviceKeytemp;			// 44
+	u8_t autoModeSelect;		// 45
+	u8_t ms4msFlag;				// 46
+	u8_t ms8msFlag;				// 47
+	u8_t debounceTrig;			// 48
+	u8_t modeSwCount;			// 49
+	u8_t keyDetect;				// 50
+	u8_t lowBatteryTimer;		// 51
+	u8_t lowBatteryStatus;		// 52
+	u8_t sensorChoice;			// 53
+	u8_t mouseFlag;				// 54
+	u8_t Factory_Pwr_on_f;		// 55
+
+	s16_t X_sum;				//56
+	s16_t Y_sum;				//58
+	s16_t X_pre;				//60
+	s16_t Y_pre;				//62
+	s16_t X_data;				//64
+	s16_t Y_data;				//66
+	u8_t asm_flag;				//68
+	
+	u8_t read_sensor_count;		//69
+	u8_t enterHibernateFlag;	//70
+	u8_t enterHibernateTimer;	//71
+
+	u16_t otaHeadAddr;			//72
+	u16_t otaLastAckPid;		//74
+	u8_t otaReqPacEnable;		//76
+	u8_t otaReqPacValue[7];		//77
+	u8_t otaExitFlag;			//84
+	u8_t otaExitCmdCount;		//85
+
+	u16_t leAddrRandomCnt;
+	
+	u8_t bufferEnd;				//86
+	u8_t bufferSize;			//87
+}G_VARIABLE_MAP;
+
+
+//static s16_t X_sum, Y_sum, X_pre, Y_pre;
+//static bool asm_flag;
+//s16_t X_data,Y_data;
+
+
+
+
+extern G_VARIABLE_MAP xdata g_variable;
+
+extern u8_t xdata m_hidBuff[32];
+extern u8_t xdata m_linkKey[16];
+extern u8_t xdata m_remoteAddr[6];
+extern u8_t xdata m_reconnAddr[6];
+extern u8_t xdata m_remoteLeAddr[6];
+extern u8_t xdata m_reconnLeAddr[6];
+extern u8_t xdata m_24gAddr[4];
+extern u8_t xdata m_24gRxPayload[32];
+extern u16_t xdata m_adcCurrentValue;
+extern u16_t xdata m_adc3vValue; 
+extern u16_t xdata m_adc0vBase;
+extern u16_t xdata m_uiStateMap;
+extern u8_t xdata m_lpmMode;
+extern u8_t xdata m_powerOnFlag;
+extern u8_t xdata m_IpcIsReady;
+extern u8_t xdata m_sendData24gShortLpm;
+extern u8_t xdata m_enable24gShortLpm;
+extern u8_t xdata m_bleSendDataFlag;
+extern u8_t xdata m_BtReadIpcCount;
+extern u8_t xdata m_51ReadSensor;
+extern u8_t xdata m_new24gKWEvent;
+extern u8_t xdata m_shortDataWheel;
+extern u8_t xdata m_bleDataWheel;
+extern u8_t xdata m_bleDataWheelLpmTimer;
+extern u8_t xdata m_btWakeupFromLongMult;
+extern u8_t xdata m_btMotionEvent;
+extern u8_t xdata m_new24gOtaEnable;
+extern u8_t xdata m_new24gIntMin;
+extern u8_t xdata m_new24gIntMax;
+extern u8_t xdata m_new24gAbortPac;
+extern u8_t xdata m_leStartAdv;
+extern u8_t xdata m_mouseFastConnFlag;
+extern u8_t xdata m_FastConnSendEmptyCount;
+#endif
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/global_variable.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/global_variable.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/global_variable.c	(working copy)
@@ -0,0 +1,41 @@
+#include "global_variable.h"
+#include "Btreg.h"
+
+G_VARIABLE_MAP xdata g_variable _at_ mem_32asm_data_end;
+
+volatile u16_t xdata m_uiStateMap _at_ mem_ui_state_map;
+volatile u8_t xdata m_lpmMode _at_ mem_lpm_mode;
+volatile u16_t xdata m_adc3vValue _at_ mem_adc_3v;
+volatile u16_t xdata m_adc0vBase _at_ mem_adc_0v;
+volatile u16_t xdata m_adcCurrentValue _at_ mem_adc_current_value;
+volatile u8_t xdata m_powerOnFlag _at_ mem_wakup_from_power_flag;
+volatile u8_t xdata m_IpcIsReady _at_ mem_ipc_is_ready;
+volatile u8_t xdata m_sendData24gShortLpm _at_ mem_send_data_24g_short_lpm;
+volatile u8_t xdata m_enable24gShortLpm _at_ mem_short_lpm_enable;
+volatile u8_t xdata m_bleSendDataFlag _at_ mem_le_switch_send_data;
+volatile u8_t xdata m_BtReadIpcCount _at_ mem_bt_read_ipc_count;
+volatile u8_t xdata m_51ReadSensor _at_ mem_51_read_sensor_count;
+volatile u8_t xdata m_new24gKWEvent _at_ mem_new_24g_key_wheel_event;
+volatile u8_t xdata m_shortDataWheel _at_ mem_short_data_wheel;
+volatile u8_t xdata m_bleDataWheel _at_ mem_ble_data_wheel;
+volatile u8_t xdata m_bleDataWheelLpmTimer _at_ mem_ble_data_wheel_lpm_timer;
+volatile u8_t xdata m_btWakeupFromLongMult _at_ mem_bt_wakeup_from_long_mult;
+volatile u8_t xdata m_btMotionEvent _at_ mem_bt_motion_event;
+volatile u8_t xdata m_new24gOtaEnable _at_ mem_new_24g_ota_enable;
+volatile u8_t xdata m_new24gIntMin _at_ mem_new_24g_interval_min;
+volatile u8_t xdata m_new24gIntMax _at_ mem_new_24g_interval_max;
+volatile u8_t xdata m_new24gAbortPac _at_ mem_new_24g_abort_pac;
+volatile u8_t xdata m_leStartAdv _at_ mem_le_start_adv;
+volatile u8_t xdata m_mouseFastConnFlag _at_ mem_le_mouse_fast_conn_flag;
+
+volatile u8_t xdata m_hidBuff[32] _at_ mem_hid_buff;
+volatile u8_t xdata m_linkKey[16] _at_ mem_link_key;
+volatile u8_t xdata m_remoteAddr[6] _at_ mem_plap;
+volatile u8_t xdata m_reconnAddr[6] _at_ mem_hci_plap;
+volatile u8_t xdata m_remoteLeAddr[6] _at_ mem_le_plap;
+volatile u8_t xdata m_reconnLeAddr[6] _at_ mem_le_lap;
+volatile u8_t xdata m_24gAddr[4] _at_ mem_new_24g_addr;
+volatile u8_t xdata m_24gRxPayload[32] _at_ mem_new_24g_rxpayload;
+volatile u8_t xdata m_FastConnSendEmptyCount;
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/gpio.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/gpio.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/gpio.h	(working copy)
@@ -0,0 +1,81 @@
+
+#ifndef _GPIO_H
+#define _GPIO_H
+#include "type.h"
+#include "Hwreg.h"
+
+extern volatile u8_t xdata YC_GPIOWakeupL[4];
+extern volatile u8_t xdata YC_GPIOWakeupH[4];
+
+#define GPIO_SetBit(gpio_num,reg_base, bit_val) if(bit_val)  \
+		*(reg_base + (gpio_num >> 3 & 3)) |= 1<<(gpio_num & 7);	\
+	else	\
+		*(reg_base + (gpio_num >> 3 & 3)) &= ~(1<<(gpio_num & 7))
+
+/**
+ * This function gpio get input status.0 low,1high
+ * 
+ * @param gpio_num
+ * 
+ * @return none.
+*/
+bool GPIO_GetInputStatus(u8_t gpio_num);
+/**
+ * This function set gpio out.
+ * 
+ * @param gpio_num,bit_val bit_val 0 low, 1high
+ * 
+ * @return none.
+*/
+void GPIO_Setout(u8_t gpio_num, bool bit_val);
+/**
+ * This function set gpio input
+ * 
+ * @param gpio_num,st 1 pull down ,0 pull up.
+ * 
+ * @return none.
+*/
+void GPIO_SetInput(u8_t gpio_num,bit  st);
+
+/**
+ * This function set gpio input
+ * 
+ * @param gpio_num,st 1 high ,0 low.
+ * 
+ * @return none.
+*/
+void GPIO_SetOutput(u8_t gpio_num,bit  st);
+/**
+ * This function set gpio wake.This function must use with GPIO_SetInput.
+ * 
+ * @param gpio_num, st 1 high wake,0 low wake.
+ * 
+ * @return none.
+*/
+void GPIO_SetWakeup(u8_t gpio_num,bit  st);
+
+/**
+ * This function set gpio wake by curent state for fast wake mcu.
+ * 
+ * @param gpio_num, st 1 high wake,0 low wake.
+ * 
+ * @return none.
+*/
+void GPIO_SetWakeupByCurrentState(u8_t gpio_num);
+
+/**
+ * This function Flip output state.
+ * 
+ * @param gpio_num.
+ * 
+ * @return none.
+*/
+void GPIO_FlipOutBit(u8_t gpio_num);
+
+
+void GPIO_ClearWakeup(u8_t gpio_num);
+
+
+#endif /* YC_GPIO_H */
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/gpio.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/gpio.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/gpio.c	(working copy)
@@ -0,0 +1,109 @@
+#include "gpio.h"
+#include "Hwreg.h"
+#include "btreg.h"
+
+volatile u8_t xdata YC_GPIOWakeupL[4] _at_ mem_gpio_wakeup_low;
+volatile u8_t xdata YC_GPIOWakeupH[4] _at_ mem_gpio_wakeup_high;
+
+static void gpioSetBit(u8_t gpio_num, char *reg_base, bool bit_val)
+{
+	u8_t queue = 0;
+	u8_t group = 0;
+
+	queue = (gpio_num & 7);
+	group = gpio_num >> 3 & 3;
+
+	if(bit_val) {
+		*(reg_base + group) |= 1<<queue;
+	}
+	else {
+		*(reg_base + group) &= ~(1<<queue);
+	}
+}
+
+static bool gpioGetBit(u8_t gpio_num, char *reg_base)
+{
+	u8_t queue = 0;
+	u8_t group = 0;
+
+	queue = (gpio_num & 7);
+	group = gpio_num >> 3 & 3;
+	return (*(reg_base + group)&(1<<queue));
+	
+}
+
+bool GPIO_GetInputStatus(u8_t gpio_num)
+{
+	return gpioGetBit(gpio_num, &REG_GPIO_IN(0));
+}
+
+void GPIO_Setout(u8_t gpio_num, bool bit_val)
+{
+	gpioSetBit(gpio_num, &REG_GPIO_OUT(0), bit_val);	
+}
+
+void GPIO_SetPu(u8_t gpio_num, bool bit_val)
+{
+	gpioSetBit(gpio_num, &REG_GPIO_PUP(0), bit_val);	
+}
+
+void GPIO_SetPd(u8_t gpio_num, bool bit_val)
+{
+	gpioSetBit(gpio_num, &REG_GPIO_PDN(0), bit_val);	
+}
+
+void GPIO_Setoe(u8_t gpio_num, bool bit_val)
+{
+	gpioSetBit(gpio_num, &REG_GPIO_OE(0), bit_val);	
+}
+
+void GPIO_SetInput(u8_t gpio_num, bit  st)
+{
+	GPIO_SetPd(gpio_num,st);
+	GPIO_SetPu(gpio_num,~st);
+	GPIO_Setoe(gpio_num,0);
+}
+
+void GPIO_SetOutput(u8_t gpio_num, bit  st)
+{
+	GPIO_Setoe(gpio_num,1);
+	GPIO_Setout(gpio_num,st);
+	GPIO_SetPu(gpio_num,0);
+}
+
+void GPIO_SetWakeup(u8_t gpio_num, bit  st)
+{
+	u8_t queue, group;
+	queue = (gpio_num & 7);
+	group = (gpio_num>>3 & 3);
+	if (st){
+		*(YC_GPIOWakeupL+group) &= ~(1<<queue);
+		*(YC_GPIOWakeupH+group) |= 1<<queue;	//high wakeup
+	}
+	else{
+		*(YC_GPIOWakeupL+group) |= 1<<queue;	//low wakeup
+		*(YC_GPIOWakeupH+group) &= ~(1<<queue);
+	}
+}
+
+void GPIO_ClearWakeup(u8_t gpio_num)
+{
+	u8_t queue, group;
+	queue = (gpio_num & 7);
+	group = (gpio_num>>3 & 3);
+	*(YC_GPIOWakeupL+group) &= ~(1<<queue);
+	*(YC_GPIOWakeupH+group) &= ~(1<<queue);
+}
+
+void GPIO_SetWakeupByCurrentState(u8_t gpio_num)
+{
+	bool st = GPIO_GetInputStatus(gpio_num);
+	GPIO_SetWakeup(gpio_num, ~st);
+}
+
+void GPIO_FlipOutBit(u8_t gpio_num)
+{
+	bool st = gpioGetBit(gpio_num, &REG_GPIO_OUT(0));
+	GPIO_Setout(gpio_num, ~st);
+}
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/hwreg.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/hwreg.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/hwreg.h	(working copy)
@@ -0,0 +1,200 @@
+#ifndef _HWREG_H_
+#define _HWREG_H_
+
+
+#define HWRITED(reg, dword)	do{HWRITE(reg, (dword) & 0xff); \
+							HWRITE(reg + 1, (dword) >> 8 & 0xff); \
+							HWRITE(reg + 2, (dword) >> 16 & 0xff); \
+							HWRITE(reg + 3, (dword) >> 24 & 0xff); \
+							}while(0)
+
+#define HREADD(reg)			((u32_t)HREAD(reg)  | (u32_t)HREAD(reg + 1) << 8 | (u32_t)HREAD(reg + 2) << 16 | (u32_t)HREAD(reg + 3) << 24)
+
+#define ESWAP(word)			((word) >> 8 & 0xff | (word) << 8 & 0xff00)
+#define min(x,y) 				((x) < (y) ? (x) : (y))
+#define HREADW(reg)			(*((volatile unsigned int xdata *)(reg)))
+#define HWRITEW(mem, word)	HREADW(mem) = ESWAP(word)
+#define HREADWS(reg)			ESWAP(HREADW(reg))
+
+#define HREAD(reg)			(*(volatile unsigned char xdata *)(reg))
+#define HWRITE(reg, value)		*((volatile unsigned char xdata *)(reg)) = value
+
+#define SETBIT(reg, value)		HWRITE(reg,( (HREAD(reg)) | (value)))
+#define CLRBIT(reg, value)		HWRITE(reg, (HREAD(reg) & (~(value))))
+#define READBIT(reg, value)		((HREAD(reg)) & (value))
+#define BIT(x)					(1 << (x))
+
+
+#define PWM_EN			0x8084
+
+#define GPIO_OE(X)                0x8070 + X
+#define GPIO_OUT(X)                0x8074 + X
+#define GPIO_PUP(X)                0x8078 + X
+#define GPIO_PDN(X)                0x807c + X
+#define GPIO_SEL(X)            0x8080 + X
+#define GPIO_KEY(X)            0x8083 + X
+
+#define GPIO_IN(X)                  0x811c + X
+
+
+#define PWM_PCOUNT(X) (0x80a0 + X*4)
+#define PWM_NCOUNT(X) (0x80a2 + X*4)
+
+#define CLOCK_SEL			0x8044
+#define CLOCK_SEL_12M		9
+
+#define LPM_EXENOE		0x813e
+
+// math cordic
+#define CORDIC_TYPE    	0x8053
+#define CORDIC_A     		0x80a8
+#define CORDIC_B     		0x80ac
+#define PERF_STATUS		0x812d
+#define CORDIC_RESULT     	0x8120
+
+#define YC_TYPE_SIN		0
+#define YC_TYPE_ATAN	1
+#define YC_TYPE_MULT	2
+#define YC_TYPE_DIV		3
+#define YC_TYPE_ASIN	         4
+#define YC_TYPE_SQRT	5
+#define YC_TYPE_COS		6
+#define YC_TYPE_TAN		7
+
+// DMA UART
+#define UART_BAUD     0x8052
+#define UART_RSADDR   0x8054
+#define UART_READDR   0x8056 
+#define UART_RRPTR    0x8058
+#define UART_TSADDR   0x805a 
+#define UART_TEADDR   0x805c 
+#define UART_TWPTR    0x805e
+#define UART_TRPTRP   0x8060 
+#define UART_CTRL     0x8062 
+#define CLKN		0x8100
+
+#define UART_STATUS  0x810c
+#define UART_RBAUD   0x810d 
+#define UART_TXITEMS 0x810e 
+#define UART_TRPTR   0x8110 
+#define UART_RXITEMS 0x8112 
+#define UART_RDPTR   0x8114 
+#define UART_RWPTR   0x8116 
+
+#define KSCN_KSCTRL                 	0x8063
+#define KSCN_RCTC                    	0x8064
+#define KSCN_ROW_MASK                	0x806f
+
+#define KSCN_EVENT_BUF           	0x811a
+#define KSCN_EVENT_NUM           	0x811b
+
+
+#define CPUB_ICE_CTRL	(*(volatile unsigned char xdata *)(0x8280))
+
+#define CPUB_ICE_BK0_LO	(*(volatile unsigned char xdata *)(0x8205))
+#define CPUB_ICE_BK0_HI	(*(volatile unsigned char xdata *)(0x8206))
+
+#define IIC_ADDR_START		0x8300
+#define IIC_PRER_LOW			0x8300
+#define IIC_SLAVE_ADDR		0x8301
+#define IIC_CTR				0x8302
+#define IIC_CR				0x8303
+#define IIC_RXR				0x8304
+#define IIC_TXR				0x8305
+#define IIC_SR				0x8306
+#define IIC_FIFO				0x8307
+
+#define USB_CONFIG		0x8c00
+#define USB_INT_MASK(x)	(0x8c01 + x)
+#define USB_TRG			0x8c10
+#define USB_STALL		0x8c11
+#define USB_CLEAR		0x8c12
+#define USB_EP(x)			(0x8c18 + x)
+#define USB_EP_LEN(x)		(0x8c20 + x)
+
+
+#define USB_STATUS		0x8c26
+#define USB_FIFO_EMPTY	0x8c27
+
+sfr DFIFO0     = 0x94;
+sfr DFIFO1     = 0x95;
+sfr DFIFO2     = 0x96;
+
+
+#define PWM_CLOCK           5 
+#define REG_CLK_OFF(n)		(*(volatile unsigned char xdata *)(0x8050 + n))
+
+#define REG_PWM_ENABLE   	(*(volatile unsigned char xdata *)0x8085)
+#define REG_PWM_CLK_SEL 	(*(volatile unsigned char xdata *)0x8042)
+#define REG_PWM_PCOUNT(n) 	(*(volatile unsigned char xdata *)(0x80a0 + n*4))
+#define REG_PWM_NCOUNT(n) 	(*(volatile unsigned char xdata *)(0x80a2 + n*4))
+
+
+#define REG_UART_CLK_SEL	(*(volatile unsigned char xdata *)0x8043)
+#define REG_UART_BAUD		(*(volatile unsigned short xdata *)0x8052)
+#define REG_UART_BAUD_HI		(*(volatile unsigned char xdata *)0x8053)
+#define REG_UART_RX_ADDR_S	(*(volatile unsigned short xdata *)0x8054)
+#define REG_UART_RX_ADDR_E 	(*(volatile unsigned short xdata *)0x8056)
+#define REG_UART_RX_PTR_R	(*(volatile unsigned short xdata *)0x8058)
+#define REG_UART_TX_ADDR_S	(*(volatile unsigned short xdata *)0x805a)
+#define REG_UART_TX_ADDR_E	(*(volatile unsigned short xdata *)0x805c)
+#define REG_UART_TX_PTR_W	(*(volatile unsigned short xdata *)0x805e)
+#define REG_UART_TX_PTRP_R	(*(volatile unsigned short xdata *)0x8060)
+#define REG_UART_CTRL		(*(volatile unsigned char xdata *)0x8062)
+
+//read only
+#define REG_UART_STATUS		(*(volatile unsigned char xdata *)0x810c)
+#define REG_UART_DET_BAUD	(*(volatile unsigned char xdata *)0x810d)
+#define REG_UART_TX_ITEMS	(*(volatile unsigned short xdata *)0x810e)
+#define REG_UART_TX_PTR_R	(*(volatile unsigned short xdata *)0x8110)
+#define REG_UART_RX_ITEMS	(*(volatile unsigned short xdata *)0x8112)
+#define REG_UART_RX_DPTR_R	(*(volatile unsigned short xdata *)0x8114)
+#define REG_UART_RX_PTR_W	(*(volatile unsigned short xdata *)0x8116)
+
+#define REG_GPIO_SELECT(n)	(*(volatile unsigned char xdata *)(0x8080 + n))
+
+#define REG_GPIO_OE(n) 	(*(volatile unsigned char xdata *)(0x8070 + n))
+#define REG_GPIO_OUT(n)	(*(volatile unsigned char xdata *)(0x8074 + n))
+#define REG_GPIO_PUP(n) 	(*(volatile unsigned char xdata *)(0x8078 + n))
+#define REG_GPIO_PDN(n)	(*(volatile unsigned char xdata *)(0x807c + n))
+#define REG_GPIO_SEL(n) 	(*(volatile unsigned char xdata *)(0x8080 + n))
+#define REG_GPIO_KEY(n) 	(*(volatile unsigned char xdata *)(0x8083 + n))
+
+#define REG_GPIO_IN(n)	(*(volatile unsigned char xdata *)(0x811c + n))	//n=0,1,2,3
+
+#define REG_MISC_CTRL			(*(volatile unsigned char xdata *)(0x8006))
+
+
+#define REG_SPID_CTRL  			(*(volatile unsigned char xdata *)(0x8086))
+#define REG_SPID_DELAY  		(*(volatile unsigned char xdata *)(0x8087))
+#define REG_SPID_TXADDR			(*(volatile unsigned short xdata *)(0x808a))
+#define REG_SPID_RXADDR			(*(volatile unsigned short xdata *)(0x808c))
+#define REG_SPID_TXLEN			(*(volatile unsigned short xdata *)(0x8088))
+#define REG_SPID_RXLEN			(*(volatile unsigned short xdata *)(0x808e))
+
+#define REG_IICD_CTRL			(*(volatile unsigned char xdata *)(0x8090))
+#define REG_IICD_SCL_LOW		(*(volatile unsigned char xdata *)(0x8091))
+#define REG_IICD_SCL_HIGH		(*(volatile unsigned char xdata *)(0x8092))
+#define REG_IICD_START_SETUP		(*(volatile unsigned char xdata *)(0x8093))
+#define REG_IICD_START_HOLD		(*(volatile unsigned char xdata *)(0x8094))
+#define REG_IICD_STOP_SETUP		(*(volatile unsigned char xdata *)(0x8095))
+#define REG_IICD_DATA_SETUP		(*(volatile unsigned char xdata *)(0x8096))
+#define REG_IICD_DATA_HOLD		(*(volatile unsigned char xdata *)(0x8097))
+#define REG_IICD_TXLEN			(*(volatile unsigned short xdata *)(0x8098))
+#define REG_IICD_TXADDR			(*(volatile unsigned short xdata *)(0x809a))
+#define REG_IICD_RXADDR			(*(volatile unsigned short xdata *)(0x809c))
+#define REG_IICD_RXLEN			(*(volatile unsigned short xdata *)(0x809e))
+#define REG_CLKN					(*(volatile unsigned long xdata *)(0x8100))
+#define REG_DMA_STATUS			(*(volatile unsigned char xdata *)(0x812c))
+
+#define REG_RFEN_ADC			(*(volatile unsigned char xdata *)(0x8906))
+#define REG_ADC_IN				(*(volatile unsigned short xdata *)(0x812e))
+#define REG_RF_ADC_GC			(*(volatile unsigned char xdata *)(0x8972))
+#define REG_RFEN_CHGPUMP		(*(volatile unsigned char xdata *)(0x8973))
+#define REG_RF_ADC_MODE		(*(volatile unsigned char xdata *)(0x8971))
+#define CORE_ADC_SUM		(*(volatile unsigned short xdata *)(0x8150))
+#define REG_RST			(*(volatile unsigned char xdata *)(0x8010))
+#define REG_Counter		(*(volatile unsigned char xdata *)(0x8100))
+
+
+#endif
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/iic.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/iic.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/iic.h	(working copy)
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+ 
+ /** @file
+ *
+ * IIC support for application
+ */
+#ifndef __DEV_EEP_H_
+#define __DEV_EEP_H_
+#include "type.h"
+#include "btreg.h"
+#include "hwreg.h"
+
+/**
+ * This function read data by IIC,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to read,pbuff pointer to restore data
+ * 
+ * @return none.
+*/
+void IIC_Read(u16_t addr, u16_t len, u8_t* pbuff);
+/**
+ * This function write data by IIC,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to write,pbuff pointer to store data
+ * 
+ * @return none.
+*/
+void IIC_write(u16_t addr,u16_t len, u8_t* pbuff);
+/**
+ * This function write data by IIC,can't ignore page of block device,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to read,pbuff pointer to store data
+ * 
+ * @return none.
+*/
+void IIC_WriteBlock(u16_t addr, u16_t len, u8_t* pbuff);
+#endif/* YC_IIC_H */
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/iic.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/iic.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/iic.c	(working copy)
@@ -0,0 +1,66 @@
+#include "iic.h"
+#include "utilities.h"
+#define EEP_PAZE_SIZE  16
+#define EEP_DEV_ADDR	(0 << 1) & 6
+#define IIC_TEMP_BUFF_LEN 100
+
+static volatile u8_t IIC_TempBuff[IIC_TEMP_BUFF_LEN];
+static volatile u8_t YC_IICDTbuf[4];
+
+static void IIcWaitDone(void)
+{
+	while(!(REG_DMA_STATUS&(1<<5)));
+}
+
+void IIC_Read(u16_t addr, u16_t len, u8_t* pbuff)
+{
+	u16_t mem_src =  addr;
+	REG_IICD_TXLEN = ESWAP(4);
+	YC_IICDTbuf[0] = 0xa0 |EEP_DEV_ADDR;
+	*(u16_t*)(YC_IICDTbuf+1) = mem_src;
+	YC_IICDTbuf[3] = 0xa1 | EEP_DEV_ADDR;
+	REG_IICD_TXADDR = ESWAP((u16_t)&YC_IICDTbuf);
+	REG_IICD_RXLEN = ESWAP(len);
+	REG_IICD_RXADDR = ESWAP((u16_t)IIC_TempBuff);
+	REG_IICD_CTRL = 2;
+	if(!(REG_IICD_RXADDR&(1<<7)))
+	{
+		REG_IICD_CTRL |= 1;
+	}
+	REG_MISC_CTRL |= 1 << 2;	//start iic dma
+	IIcWaitDone();	
+	xmemcpy(pbuff,IIC_TempBuff,len);
+}
+
+void IIC_write(u16_t addr,u16_t len, u8_t* pbuff)
+{
+	u8_t ptemp_addr[EEP_PAZE_SIZE+3];
+	xmemcpy(ptemp_addr+3, pbuff, len);
+	ptemp_addr[0] = 0xa0;
+	(u16_t)ptemp_addr[1] = addr;
+	REG_IICD_TXLEN = ESWAP(len+3);
+	REG_IICD_TXADDR = ESWAP((u16_t)ptemp_addr);
+	REG_IICD_RXLEN = 0;
+	REG_IICD_CTRL = 1;
+	
+	REG_MISC_CTRL |= 1 << 2;	//start iic dma
+	IIcWaitDone();
+}
+
+void IIC_WriteBlock(u16_t addr, u16_t len, u8_t* pbuff)
+{
+	u16_t cris,curr_len;
+	while (len)
+	{
+		cris = (addr|(EEP_PAZE_SIZE-1)) +1;
+		curr_len = cris - addr;
+		curr_len = min(curr_len,len);
+		len -= curr_len;
+		IIC_write(addr,curr_len,pbuff);
+		Delay1ms(10);
+		pbuff += curr_len;
+		addr += curr_len;
+	};
+	
+}
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ipc.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ipc.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ipc.h	(working copy)
@@ -0,0 +1,257 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+ 
+ /** @file
+ *
+ * ipc support for application
+ */
+#ifndef _YC_IPC_H_
+#define _YC_IPC_H_
+#include "type.h"
+
+#define BUG_FIX
+#ifdef BUG_FIX
+#define FIX_ENTER_LPM	0x01
+#define FIX_ENTER_HIBERNATE	0x03
+
+#endif
+
+/* IPC tx hardware address */
+#define IPC_TX_HEAD	mem_ipc_2bt_fifo_head
+#define IPC_TX_END	mem_ipc_2bt_fifo_end
+#define IPC_TX_WRITE_PTR	mem_ipc_2bt_write_index
+#define IPC_TX_READ_PTR		mem_ipc_2bt_read_index
+
+/*IPC rx hardware address*/
+#define IPC_RX_HEAD	mem_ipc_2C51_fifo_head
+#define IPC_RX_END	mem_ipc_2C51_fifo_end
+#define IPC_RX_WRITE_PTR	mem_ipc_2C51_write_index
+#define IPC_RX_READ_PTR		mem_ipc_2C51_read_index
+
+/*IPC c51 private area*/
+#define IPC_CONTROL_BLOCK	mem_c51_private_area
+
+/*IPC data type*/
+#define IPC_CONTROL_CMD			0x01
+#define IPC_CONTROL_EVT			0x02
+#define IPC_HID_DATA			0x03
+#define IPC_SPP_DATA			0x04
+#define IPC_BLE_DATA			0x05
+#define IPC_24G_DATA			0x06
+
+/*IPC cmd type*/
+#define IPC_CMD_START_DISCOVERY 			0x01
+#define IPC_CMD_STOP_DISCOVERY				0x02
+#define IPC_CMD_RECONNECT 					0x03
+#define IPC_CMD_DISCONNECT 					0x04
+#define IPC_CMD_ENTER_SNIFF					0x05
+#define IPC_CMD_EXIT_SNIFF					0x06
+#define IPC_CMD_SET_PIN_CODE 				0x0a
+#define IPC_CMD_START_INQUIRY 				0x0b
+#define IPC_CMD_STOP_INQUIRY 				0x0c
+#define IPC_CMD_START_ADV					0x0d
+#define IPC_CMD_STOP_ADV					0x0e
+#define IPC_CMD_LE_DISCONNECT				0x11
+#define IPC_CMD_ENTER_HIBERNATE 			0x19
+#define IPC_CMD_ROLE_SWITCH 				0x1d
+#define IPC_CMD_BB_RECONN_CANCEL 			0x1e
+#define IPC_CMD_UPDATE_SUPPERVISION_TO		0x22
+#define IPC_CMD_START_24G					0x23
+#define IPC_CMD_STOP_24G					0x24
+#define IPC_CMD_PAIR_24G					0x25
+#define IPC_CMD_TEST_MODE 					0x26
+#define IPC_CMD_START_ADV_RECONN			0x27
+
+ 	
+/*IPC event type*/
+#define IPC_EVT_NULL						0x00
+#define IPC_EVT_BB_CONNECTED				0x01
+#define IPC_EVT_BB_DISCONNECTED				0x02
+#define IPC_EVT_RECONN_STARTED				0x03
+#define IPC_EVT_RECONN_FAILED				0x04
+#define IPC_EVT_SETUP_COMPLETE				0x05
+#define IPC_EVT_HID_CONNECTED				0x06
+#define IPC_EVT_HID_DISCONNECTED			0x07
+#define IPC_EVT_PINCODE_REQ					0x0a
+#define IPC_EVT_HID_HANDSHAKE				0x12
+#define IPC_EVT_RECONN_PAGE_TIMEOUT			0x13
+#define IPC_EVT_LE_CONNECTED				0x14
+#define IPC_EVT_LE_DISCONNECTED				0x15
+#define IPC_EVT_LINKKEY_GENERATE			0x18
+#define IPC_EVT_VIRTUAL_CABLE_UNPLUG		0x27
+#define IPC_EVT_LE_ENC_INFO					0x29
+#define IPC_EVT_SWITCH_FAIL_MASTER 			0x2a
+#define IPC_EVT_RESET						0x2f
+#define IPC_EVT_LE_START_ENC				0x32
+#define IPC_EVT_24G_PAIRING_COMPLETE		0x39
+#define IPC_EVT_24G_ATTEMPT_SUCCESS			0x3a
+#define IPC_EVT_24G_ATTEMPT_FAIL			0x3b
+#define IPC_EVT_WAKEUP						0x3c
+#define IPC_EVT_HIBERNATE_WAKE				0x3d
+#define IPC_EVT_CLEAR_LINKKEY				0x3e
+#define IPC_EVT_LE_NOTIFY_ENABLE			0x40
+
+
+/*IPC EVT callback function type*/
+typedef void (*tIPCEventCb)(u8_t);
+
+/*IPC SPP callback function type*/
+typedef void (*tIPCSppCb)(u8_t*, u16_t);
+
+/*IPC BLE callback function type*/
+typedef void (*tIPCBleCb)(u8_t*, u16_t);
+
+/*IPC timer(1s) callback function type*/
+typedef void (*tIPCTimer)(void);
+
+/*IPC Hid callback function type*/
+typedef void (*tIPCHidCb)(u8_t*, u16_t);
+
+/*IPC control block type*/
+typedef struct IPCContolBlock {
+	tIPCEventCb evtcb;		/*<ipc evt call back*/
+	tIPCSppCb sppcb;		/*<ipc spp call back*/
+	tIPCTimer timercb;		/*<ipc timer call back*/
+	tIPCTimer stimercb;
+	tIPCBleCb blecb;
+	tIPCHidCb hidcb;
+}tIPCControlBlock;
+
+
+typedef enum IPCRejReason{
+	AUTHENTICATION_FAILURE_ERROR = 0x05,
+	KEY_MISSING = 0x06,
+	ACL_CONNECTION_ALREADY_EXISTS = 0x0b,
+	OTHER_END_TERMINATED = 0x13,
+	ABOUT_TO_POEWR_OFF = 0x15,
+	LOCAL_HOST= 0x16,
+	PAIRING_NOT_ALLOWED = 0x18,
+	UNKNOWN_LMP_PDU = 0x19,
+	UNSUPPORTED_LMP_FEATURE = 0x1A,
+	UNSPECIFIED_ERROR = 0x1F,
+	UNSUPPORTED_PARAMETERS = 0x20,
+	SWITCH_NOT_ALLOWED = 0x21,
+	TRANSACTION_COLLISION = 0x23,
+	PDU_NOT_ALLOWED = 0x24,
+	ENCRYPTION_MODE_NOT_ACCEPTABLE = 0x25,
+	NOT_SUPPORT_CHN_CLASSIFICATION = 0x2e,
+	NOT_SUPPORT_SSP = 0x37,
+}tIPCREJREASON;
+
+/*IPC syc task type*/
+extern volatile u8_t current_task;
+
+#define BT_PIN_CODE_MAX_LEN 16
+extern u8_t xdata ipcPinlen;
+extern u8_t xdata ipcPin[BT_PIN_CODE_MAX_LEN];
+
+/*IPC set pincode*/
+#define IPC_SetPincode(p,l)	ipcPinlen= l,\
+							xmemcpy(ipcPin, p, ipcPinlen)
+
+/**
+ * This function rigist IPC Control Block.
+ * 
+ * @param cb the IPC control block.
+ * 
+ * @return none.
+*/
+void IPC_Initialize(tIPCControlBlock *cb);
+
+/**
+ * This function deal IPC Single process, callback the rigisted IPC control function.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_DealSingleStep(void);
+
+/**
+ * This function tx control IPC command.
+ * 
+ * @param cmd IPC command want to send.
+ * 
+ * @return none.
+*/
+void IPC_TxControlCmd(u8_t cmd);
+/**
+ * This function tx HID IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC HID data want to send,len length of hid data
+ * 
+ * @return none.
+*/
+void IPC_TxBREDRHidData(u8_t* dt, u8_t len);
+
+/**
+ * This function tx 24G IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC HID data want to send,len length of hid data
+ * 
+ * @return none.
+*/
+void IPC_Tx24GData(u8_t* dt, u8_t len);
+
+/**
+ * This function tx SPP IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC SPP data want to send,len length of SPP data
+ * 
+ * @return none.
+*/
+void IPC_TxSppData(u8_t* dt, u8_t len);
+
+/**
+ * This function tx BLE IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC BLE data want to send,len length of BLE data
+ * 
+ * @return none.
+*/
+void IPC_TxBleData(u8_t* dt, u8_t len);
+
+/**
+ * This function will do nothing wait enter lpm.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_WaitLpm(void);
+
+/**
+ * This function will do nothing abandon lpm this time.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_AbandonLpm(void);
+
+/**
+ * This function will do nothing wait enter lpm.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+bit IPC_IsTxBuffEmpty(void);
+
+/**
+ * This function get reject reason.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+tIPCREJREASON IPC_GetBBDIsconnectReason();
+
+#endif /* YC_IPC_H */
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ipc.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ipc.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ipc.c	(working copy)
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2016, Yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+
+/** @file
+ *
+ * IPC Application for c51 devices
+ *
+ */
+ 
+#include "ipc.h"
+#include "utilities.h"
+
+#define IPC_READ_BUFF_LEN	150
+#define IPC_TX_BUFF_LEN		150
+#define IPC_HEAD_LEN 3
+#define IPC_CMD_LEN 3
+#define IPC_HID_LEN 10
+
+static const volatile u16_t ipcTxReadPtr _at_ IPC_TX_READ_PTR;	/*< read only*/
+static const  volatile u16_t ipcRxWritePtr _at_ IPC_RX_WRITE_PTR;	/*< read only*/
+static volatile u16_t ipcTxWritePtr _at_ IPC_TX_WRITE_PTR;	/*<read and wite */
+static volatile u16_t ipcRxReadPtr _at_ IPC_RX_READ_PTR;	/*<read and write */
+static tIPCControlBlock ipcCb _at_ IPC_CONTROL_BLOCK;
+static  volatile u8_t bbDisReason _at_ mem_disconn_reason_send;
+
+volatile u8_t xdata ipcPinlen _at_ mem_pin_length;
+volatile u8_t xdata ipcPin[BT_PIN_CODE_MAX_LEN] _at_ mem_pin;
+volatile u8_t xdata ipcReadBuff[IPC_READ_BUFF_LEN];
+volatile u8_t xdata ipcSendBuff[IPC_TX_BUFF_LEN];
+volatile u8_t current_task _at_  mem_c51_flag;
+volatile u8_t lpm_flag _at_ mem_c51_lmp_lock;
+volatile u16_t bttimer _at_ mem_ipc_bt_timer;
+volatile u16_t c51timer _at_ mem_ipc_c51_timer;
+volatile u8_t btstimer _at_ mem_ipc_bt_100ms_timer;
+volatile u8_t c51stimer _at_ mem_ipc_c51_100ms_timer;
+
+static void ipcRx(u8_t* dest, u8_t len)
+{
+	xu8_t* src = (xu8_t *)ipcRxReadPtr;
+	while(len--) {
+		*dest++ = *src++;
+		if ((u16_t)src == IPC_RX_END) {
+			src = (xu8_t *)IPC_RX_HEAD;
+		}
+	}
+	ipcRxReadPtr = (u16_t)src;
+}
+
+static void ipcTx(u8_t* src, u8_t len)
+{
+	xu8_t* dest = (xu8_t*)ipcTxWritePtr;
+	while(len--) {
+		*dest++ = *src++;
+		if ((u16_t)dest == IPC_TX_END) {
+			dest = (xu8_t *)IPC_TX_HEAD;
+		}
+	}
+	ipcTxWritePtr =  (u16_t)dest;
+}
+
+void IPC_TxControlCmd(u8_t cmd)
+{
+	u8_t cmdBuff[IPC_CMD_LEN] = {IPC_CONTROL_CMD,0x01};
+	cmdBuff[IPC_CMD_LEN - 1] = cmd;
+	ipcTx(cmdBuff, IPC_CMD_LEN);
+}
+
+void IPC_TxBREDRHidData(u8_t* dt, u8_t len)
+{
+	ipcSendBuff[0] = IPC_HID_DATA;
+	if (len == 0)
+		return;
+	while (ipcTxReadPtr!=ipcTxWritePtr);
+	ipcSendBuff[1] = len;
+	xmemcpy(&ipcSendBuff[2], dt, len);
+	ipcTx(ipcSendBuff, len + 2);
+}
+
+
+
+void IPC_Tx24GData(u8_t* dt, u8_t len)
+{
+	ipcSendBuff[0] = IPC_24G_DATA;
+	while (ipcTxReadPtr!=ipcTxWritePtr);
+	ipcSendBuff[1] = len;
+	xmemcpy(&ipcSendBuff[2], dt, len);
+	ipcTx(ipcSendBuff, len + 2);
+}
+
+
+u8_t IPC_GetBBDIsconnectReason()
+{
+	return bbDisReason;
+}
+
+void IPC_TxSppData(u8_t* dt, u8_t len)
+{
+	ipcSendBuff[0] = IPC_SPP_DATA;
+	while (ipcTxReadPtr!=ipcTxWritePtr);
+	ipcSendBuff[1] = len;
+	xmemcpy(&ipcSendBuff[2], dt, len);
+	ipcTx(ipcSendBuff, len + 2);
+}
+
+void IPC_TxBleData(u8_t* dt, u8_t len)
+{
+	ipcSendBuff[0] = IPC_BLE_DATA;
+	while (ipcTxReadPtr!=ipcTxWritePtr);
+	ipcSendBuff[1] = len;
+	xmemcpy(&ipcSendBuff[2], dt, len);
+	ipcTx(ipcSendBuff, len + 2);
+}
+
+void IPC_Initialize(tIPCControlBlock *cb)
+{
+	ipcCb = *cb;
+}
+
+void IPC_WaitLpm()
+{
+	lpm_flag = 0;
+	current_task = 0;
+	Delay1ms(1);
+}
+
+void IPC_AbandonLpm()
+{
+	lpm_flag = 1;
+	current_task = 0;
+}
+
+bit IPC_IsTxBuffEmpty()
+{
+	if (ipcTxReadPtr == ipcTxWritePtr)
+		return 1;
+	return 0;
+}
+
+
+void IPC_DealSingleStep()
+{
+	u8_t *pbuff = ipcReadBuff;
+	if (ipcRxReadPtr == ipcRxWritePtr)
+		goto IPC_TIMER;
+	ipcRx(ipcReadBuff, IPC_HEAD_LEN);
+	if (*pbuff == IPC_CONTROL_EVT) {
+		pbuff += 2;
+		ipcCb.evtcb(*pbuff);
+	}
+	else if (*pbuff == IPC_SPP_DATA) {
+		pbuff ++ ;
+		ipcRx(ipcReadBuff+3, *pbuff -1);
+		ipcCb.sppcb(pbuff+1, *pbuff);
+	}
+	else if (*pbuff == IPC_BLE_DATA) {
+		pbuff ++ ;
+		ipcRx(ipcReadBuff+3, *pbuff -1);
+		ipcCb.blecb(pbuff+1, *pbuff);
+	}
+	else if (*pbuff == IPC_HID_DATA) {
+		pbuff ++ ;
+		ipcRx(ipcReadBuff+3, *pbuff -1);
+		ipcCb.hidcb(pbuff+1, *pbuff);
+	}
+	else {
+		while(1);
+	}
+IPC_TIMER:
+	while (c51timer != bttimer) {
+		if (ipcCb.timercb == NULL)
+			return;
+		ipcCb.timercb();
+		c51timer ++;
+	}
+	while (c51stimer!= btstimer) {
+		if (ipcCb.stimercb == NULL)
+			return;
+		ipcCb.stimercb();
+		c51stimer ++;
+	}
+	//other app process
+}
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/kbhid.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/kbhid.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/kbhid.h	(working copy)
@@ -0,0 +1,273 @@
+    /// KB USB usages
+enum UsbUsage {
+        USB_USAGE_A=4,
+        USB_USAGE_B=5,
+        USB_USAGE_C=6,
+        USB_USAGE_D=7,
+        USB_USAGE_E=8,
+        USB_USAGE_F=9,
+        USB_USAGE_G=10,
+        USB_USAGE_H=11,
+        USB_USAGE_I=12,
+        USB_USAGE_J=13,
+        USB_USAGE_K=14,
+        USB_USAGE_L=15,
+        USB_USAGE_M=16,
+        USB_USAGE_N=17,
+        USB_USAGE_O=18,
+        USB_USAGE_P=19,
+        USB_USAGE_Q=20,
+        USB_USAGE_R=21,
+        USB_USAGE_S=22,
+        USB_USAGE_T=23,
+        USB_USAGE_U=24,
+        USB_USAGE_V=25,
+        USB_USAGE_W=26,
+        USB_USAGE_X=27,
+        USB_USAGE_Y=28,
+        USB_USAGE_Z=29,
+    
+        USB_USAGE_1=30,
+        USB_USAGE_2=31,
+        USB_USAGE_3=32,
+        USB_USAGE_4=33,
+        USB_USAGE_5=34,
+        USB_USAGE_6=35,
+        USB_USAGE_7=36,
+        USB_USAGE_8=37,
+        USB_USAGE_9=38,
+        USB_USAGE_0=39,
+    
+        USB_USAGE_ENTER=40,
+        USB_USAGE_ESCAPE=41,
+        USB_USAGE_BACKSPACE=42,
+        USB_USAGE_TAB=43,
+        USB_USAGE_SPACEBAR=44,
+        USB_USAGE_MINUS=45,
+        USB_USAGE_EQUAL=46,
+        USB_USAGE_LEFT_BRACKET=47,
+        USB_USAGE_RIGHT_BRACKET=48,
+        USB_USAGE_BACK_SLASH=49,
+    
+        USB_USAGE_NON_US_HASH=50,
+        USB_USAGE_SEMICOLON=51,
+        USB_USAGE_QUOTE=52,
+        USB_USAGE_ACCENT=53,
+        USB_USAGE_COMMA=54,
+        USB_USAGE_STOP_AND_GREATER=55,
+        USB_USAGE_SLASH=56,
+        USB_USAGE_CAPS_LOCK=57,
+        USB_USAGE_F1=58,
+        USB_USAGE_F2=59,
+    
+        USB_USAGE_F3=60,
+        USB_USAGE_F4=61,
+        USB_USAGE_F5=62,
+        USB_USAGE_F6=63,
+        USB_USAGE_F7=64,
+        USB_USAGE_F8=65,
+        USB_USAGE_F9=66,
+        USB_USAGE_F10=67,
+        USB_USAGE_F11=68,
+        USB_USAGE_F12=69,
+    
+        USB_USAGE_PRINT_SCREEN=70,
+        USB_USAGE_SCROLL_LOCK=71,
+        USB_USAGE_PAUSE=72,
+        USB_USAGE_INSERT=73,
+        USB_USAGE_HOME=74,
+        USB_USAGE_PAGE_UP=75,
+        USB_USAGE_DELETE=76,
+        USB_USAGE_END=77,
+        USB_USAGE_PAGE_DOWN=78,
+        USB_USAGE_RIGHT_ARROW=79,
+    
+        USB_USAGE_LEFT_ARROW=80,
+        USB_USAGE_DOWN_ARROW=81,
+        USB_USAGE_UP_ARROW=82,
+        USB_USAGE_NUM_LOCK=83,
+        USB_USAGE_KP_SLASH=84,
+        USB_USAGE_KP_ASTERISK=85,
+        USB_USAGE_KP_MINUS=86,
+        USB_USAGE_KP_PLUS=87,
+        USB_USAGE_KP_ENTER=88,
+        USB_USAGE_KP_1=89,
+    
+        USB_USAGE_KP_2=90,
+        USB_USAGE_KP_3=91,
+        USB_USAGE_KP_4=92,
+        USB_USAGE_KP_5=93,
+        USB_USAGE_KP_6=94,
+        USB_USAGE_KP_7=95,
+        USB_USAGE_KP_8=96,
+        USB_USAGE_KP_9=97,
+        USB_USAGE_KP_0=98,
+        USB_USAGE_KP_DOT=99,
+    
+        USB_USAGE_NON_US_BACK_SLASH=100,
+        USB_USAGE_APPLICATION=101,
+        USB_USAGE_POWER=102,
+        USB_USAGE_KP_EQUAL=103,
+        USB_USAGE_F13=104,
+        USB_USAGE_F14=105,
+        USB_USAGE_F15=106,
+        USB_USAGE_F16=107,
+        USB_USAGE_F17=108,
+        USB_USAGE_F18=109,
+    
+        USB_USAGE_F19=110,
+        USB_USAGE_F20=111,
+        USB_USAGE_F21=112,
+        USB_USAGE_F22=113,
+        USB_USAGE_F23=114,
+        USB_USAGE_F24=115,
+        USB_USAGE_EXECUTE=116,
+        USB_USAGE_HELP=117,
+        USB_USAGE_MENU=118,
+        USB_USAGE_SELECT=119,
+    
+        USB_USAGE_STOP=120,
+        USB_USAGE_AGAIN=121,
+        USB_USAGE_UNDO=122,
+        USB_USAGE_CUT=123,
+        USB_USAGE_COPY=124,
+        USB_USAGE_PASTE=125,
+        USB_USAGE_FIND=126,
+        USB_USAGE_MUTE=127,
+        USB_USAGE_VOL_UP=128,
+        USB_USAGE_VOL_DOWN=129,
+    
+        USB_USAGE_LOCKING_CAPS_LOCK=130,
+        USB_USAGE_LOCKING_NUM_LOCK=131,
+        USB_USAGE_LOCKING_SCROLL_LOCK=132,
+        USB_USAGE_KP_COMMA=133,
+        USB_USAGE_KP_EQUAL_AS400=134,
+        USB_USAGE_INTL_1=135,
+        USB_USAGE_INTL_2=136,
+        USB_USAGE_INTL_3=137,
+        USB_USAGE_INTL_4=138,
+        USB_USAGE_INTL_5=139,
+    
+        USB_USAGE_INTL_6=140,
+        USB_USAGE_INTL_7=141,
+        USB_USAGE_INTL_8=142,
+        USB_USAGE_INTL_9=143,
+        USB_USAGE_LANG_1=144,
+        USB_USAGE_LANG_2=145,
+        USB_USAGE_LANG_3=146,
+        USB_USAGE_LANG_4=147,
+        USB_USAGE_LANG_5=148,
+        USB_USAGE_LANG_6=149,
+    
+        USB_USAGE_LANG_7=150,
+        USB_USAGE_LANG_8=151,
+        USB_USAGE_LANG_9=152,
+        USB_USAGE_ALT_ERASE=153,
+        USB_USAGE_SYS_REQ=154,
+        USB_USAGE_CANCEL=155,
+        USB_USAGE_CLEAR=156,
+        USB_USAGE_PRIOR=157,
+        USB_USAGE_RETURN=158,
+        USB_USAGE_SEPARATOR=159,
+    
+        USB_USAGE_OUT=160,
+        USB_USAGE_OPER=161,
+        USB_USAGE_CLEAR_AGAIN=162,
+        USB_USAGE_CRSEL=163,
+        USB_USAGE_EXSEL=164,
+    
+        // Reserved 165-175
+    
+        USB_USAGE_KP_00=176,
+        USB_USAGE_KP_000=177,
+        USB_USAGE_THOUSANDS_SEPERATOR=178,
+        USB_USAGE_DECIMAL_SEPERATOR=179,
+    
+        USB_USAGE_CURRENCY_UNIT=180,
+        USB_USAGE_CURRENCY_SUB_UNIT=181,
+        USB_USAGE_KP_LEFT_PAREN=182,
+        USB_USAGE_KP_RIGHT_PAREN=183,
+        USB_USAGE_KP_LEFT_CURLY_BRACE=184,
+        USB_USAGE_KP_RIGHT_CURLY_BRACE=185,
+        USB_USAGE_KP_TAB=186,
+        USB_USAGE_KP_BACKSPACE=187,
+        USB_USAGE_KP_A=188,
+        USB_USAGE_KP_B=189,
+    
+        USB_USAGE_KP_C=190,
+        USB_USAGE_KP_D=191,
+        USB_USAGE_KP_E=192,
+        USB_USAGE_KP_F=193,
+        USB_USAGE_KP_XOR=194,
+        USB_USAGE_KP_CARET=195,
+        USB_USAGE_KP_PERCENT=196,
+        USB_USAGE_KP_LESS_THAN=197,
+        USB_USAGE_KP_GREATER_THAN=198,
+        USB_USAGE_KP_AMPERSAND=199,
+    
+        USB_USAGE_KP_DOUBLE_AMPERSAND=200,
+        USB_USAGE_KP_VERTICAL_BAR=201,
+        USB_USAGE_KP_DOUBLE_VERTICAL_BAR=202,
+        USB_USAGE_KP_COLON=203,
+        USB_USAGE_KP_HASH=204,
+        USB_USAGE_KP_SPACE=205,
+        USB_USAGE_KP_AT=206,
+        USB_USAGE_KP_EXCLAMATION=207,
+        USB_USAGE_KP_MEM_STORE=208,
+        USB_USAGE_KP_MEM_RECALL=209,
+    
+        USB_USAGE_KP_MEM_CLEAR=210,
+        USB_USAGE_KP_MEM_ADD=211,
+        USB_USAGE_KP_MEM_SUBTRACT=212,
+        USB_USAGE_KP_MEM_MULTIPLY=213,
+        USB_USAGE_KP_MEM_DIVIDE=214,
+        USB_USAGE_KP_PLUS_MINUS=215,
+        USB_USAGE_KP_CLEAR=216,
+        USB_USAGE_KP_CLEAR_ENTRY=217,
+        USB_USAGE_KP_BINARY=218,
+        USB_USAGE_KP_OCTAL=219,
+    
+        USB_USAGE_KP_DECIMAL=220,
+        USB_USAGE_KP_HEX=221,
+        // 222-223 reserved
+        USB_USAGE_LEFT_CTL=224,
+        USB_USAGE_LEFT_SHIFT=225,
+        USB_USAGE_LEFT_ALT=226,
+        USB_USAGE_LEFT_GUI=227,
+        USB_USAGE_RIGHT_CTL=228,
+        USB_USAGE_RIGHT_SHIFT=229,
+    
+        USB_USAGE_RIGHT_ALT=230,
+        USB_USAGE_RIGHT_GUI=231
+};
+
+enum multKey{
+//mult key
+	HID_MKEY_HOME = 0x01,
+	HID_MKEY_VIRKB	 = 0x02,
+	HID_MKEY_EMAILREADER = 0x03,
+	HID_MKEY_MENU = 0x04,
+	HID_MKEY_LIGHTUP = 0x05,
+	HID_MKEY_ACSEARCHER = 0x06,
+	HID_MKEY_PREMUSIC = 0x07,
+	HID_MKEY_STARTMUSIC = 0x08,
+	HID_MKEY_NEXTMUSIC = 0x09,
+	HID_MKEY_MUTE = 0x0a,
+	HID_MKEY_VOLDOWN = 0x0b,
+	HID_MKEY_VOLUP = 0x0c,
+	HID_MKEY_POWER = 0x0d,
+	HID_MKEY_MUSIC = 0x0e,
+	HID_MKEY_SCREESAVE = 0x13,
+	HID_MKEY_LIGHTDOWN = 0x15,
+};
+
+enum hidReportId{
+	HID_REPORTID_1 = 0x01,
+	HID_REPORTID_2 = 0x02
+};
+
+enum hidReportLen{
+	HID_REPORTLEN_1 = 0x09,
+	HID_REPORTLEN_2 = 0x05
+};
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/keyscan.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/keyscan.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/keyscan.h	(working copy)
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+
+#include "type.h"
+#include "btreg.h"
+#include "hwreg.h"
+
+#ifndef _KEYSCAN_
+#define _KEYSCAN_
+
+#define KS_SEL_RGUI					0x80
+#define KS_SEL_RALT					0x40
+#define KS_SEL_RSHIFT				0x20
+#define KS_SEL_RCTRL					0x10
+#define KS_SEL_LGUI					0x08
+#define KS_SEL_LALT					0x04
+#define KS_SEL_LSHIFT				0x02
+#define KS_SEL_LCTRL					0x01
+
+#define KS_BUFF_POLL_LEN 6
+typedef struct {
+	u8_t standardSel;
+	u8_t ksPool[KS_BUFF_POLL_LEN];
+}tKSEVENT;
+
+/**
+ * This function initlialize key scan hardware.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void KS_Initialize(void);
+
+/**
+ * This function Get Keyscan event message.
+ * 
+ * @param none.
+ * 
+ * @return ptr of keyscan event.
+*/
+tKSEVENT *KS_GetCurrentEvt();
+
+/**
+ * This function scan ks matrix.
+ * 
+ * @param none.
+ * 
+ * @return ptr of keyscan event.
+*/
+void KS_ScanMatrix();
+
+void KS_Unistall();
+#endif
+ 
\ No newline at end of file
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/keyscan.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/keyscan.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/keyscan.c	(working copy)
@@ -0,0 +1,314 @@
+#include "keyscan.h"
+#include "utilities.h"
+#include "gpio.h"
+#include "kbhid.h"
+#include "global_variable.h"
+
+#define KS_EVENT_EVT_BLOCK (mem_c51_private_area + 40)
+
+#define GET_RAW_KEY_SEL(y, g, n)	REG_GPIO_PUP (g) &= ~n; \
+	REG_GPIO_OE(g) |= n; \
+	REG_GPIO_OUT(g) &= ~n;	\
+	y = ~ REG_GPIO_IN(0);	\
+	REG_GPIO_PUP(g) |= n;	\
+	REG_GPIO_OE(g) &= ~n
+
+
+#define GET_RAW_KEY_SEL0(y,x)		GPIO_SetOutput(x, 0); \
+		y = ~ REG_GPIO_IN(0);	\
+		GPIO_SetInput(x, 0)
+
+static tKSEVENT ksEvtPool _at_ KS_EVENT_EVT_BLOCK;//4ca5
+//static u8_t ksMap[KS_KEY_MAP_LEN] _at_ mem_kb_map_c51;
+
+u8_t YC_check_is_connected();
+
+
+
+
+#define MAX(a,b) ((a)>(b)?(a):(b))
+
+static u8_t bit_count(u8_t v)
+{
+	unsigned char c;
+	for (c = 0; v; c++) {
+    	v &= v - 1;
+    }
+    return c;
+}
+
+
+//u8_t col[] = {25,26};
+static void keyIn(u8_t key)
+{
+	u8_t i = 0;
+
+	if (key == USB_USAGE_RIGHT_GUI) {
+		ksEvtPool.standardSel |= KS_SEL_RGUI;
+		return;
+	}
+	else if (key ==USB_USAGE_RIGHT_ALT) {
+		ksEvtPool.standardSel |= KS_SEL_RALT;
+		return;
+	}
+	else if (key ==USB_USAGE_RIGHT_SHIFT) {
+		ksEvtPool.standardSel |= KS_SEL_RSHIFT;
+		return;
+	}
+	else if (key ==USB_USAGE_RIGHT_CTL) {
+		ksEvtPool.standardSel |= KS_SEL_RCTRL;
+		return;
+	}
+	else if (key ==USB_USAGE_LEFT_GUI) {
+		ksEvtPool.standardSel |= KS_SEL_LGUI;
+		return;
+	}
+	else if (key ==USB_USAGE_LEFT_ALT) {
+		ksEvtPool.standardSel |= KS_SEL_LALT;
+		return;
+	}
+	else if (key ==USB_USAGE_LEFT_SHIFT) {
+		ksEvtPool.standardSel |= KS_SEL_LSHIFT;
+		return;
+	}
+	else if (key ==USB_USAGE_LEFT_CTL) {
+		ksEvtPool.standardSel |= KS_SEL_LCTRL;
+		return;
+	}
+	//special key
+
+	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) {
+		if (ksEvtPool.ksPool[i] == key)
+			break;
+		if (ksEvtPool.ksPool[i] == 0) {
+			ksEvtPool.ksPool[i] = key;
+			break;
+		}
+	}
+}
+
+static void keyOut(u8_t key)
+{
+	u8_t i = 0 ;
+	u8_t found = 0;
+
+	if (key == USB_USAGE_RIGHT_GUI ) {
+		ksEvtPool.standardSel &= ~KS_SEL_RGUI;
+		return;
+	}
+	else if (key ==USB_USAGE_RIGHT_ALT ) {
+		ksEvtPool.standardSel &= ~KS_SEL_RALT;
+		return;
+	}
+	else if (key ==USB_USAGE_RIGHT_SHIFT) {
+		ksEvtPool.standardSel &= ~KS_SEL_RSHIFT;
+		return;
+	}
+	else if (key ==USB_USAGE_RIGHT_CTL) {
+		ksEvtPool.standardSel &= ~KS_SEL_RCTRL;
+		return;
+	}
+	else if (key ==USB_USAGE_LEFT_GUI) {
+		ksEvtPool.standardSel &= ~KS_SEL_LGUI;
+		return;
+	}
+	else if (key ==USB_USAGE_LEFT_ALT) {
+		ksEvtPool.standardSel &= ~KS_SEL_LALT;
+		return;
+	}
+	else if (key ==USB_USAGE_LEFT_SHIFT) {
+		ksEvtPool.standardSel &= ~KS_SEL_LSHIFT;
+		return;
+	}
+	else if (key ==USB_USAGE_LEFT_CTL) {
+		ksEvtPool.standardSel &= ~ KS_SEL_LCTRL;
+		return;
+	}
+	
+	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) {
+		if (found == 0) {
+			if (ksEvtPool.ksPool[i] == key) {
+				if (i == KS_BUFF_POLL_LEN-1) {
+					ksEvtPool.ksPool[i] = 0;
+				}
+				found = 1;
+			}
+		}
+		else {
+			ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
+			if (ksEvtPool.ksPool[i] == 0)
+				break;
+			if (i == KS_BUFF_POLL_LEN-1) {
+				ksEvtPool.ksPool[i] = 0;
+			}
+		}
+	}
+}
+
+static void ksRawInitialize()
+{
+	u8_t i = 0;
+	
+	for (i=0; i<8; i++) {
+		GPIO_SetInput(i, 0);
+	}
+}
+
+static void ksColInitialize()
+{
+	u8_t i = 0;
+	for (i=0; col[i]!=0; i++) {
+		GPIO_SetInput(col[i], 0);
+	}
+}
+
+void KS_Initialize()
+{
+	REG_GPIO_SELECT(0) = 0;
+	REG_GPIO_SELECT(1) = 0;
+	REG_GPIO_SELECT(2) = 0;
+	ksRawInitialize();
+	ksColInitialize();
+}
+
+void KS_Unistall()
+{
+	u8_t i = 0;
+	u8_t temp = 0;
+	u8_t tgroup = 0;
+	u8_t tgpionum = 0;
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		REG_GPIO_PUP (tgroup) &= ~tgpionum;
+		REG_GPIO_OE(tgroup) |= tgpionum;
+		REG_GPIO_OUT(tgroup) &= ~tgpionum;
+	}
+	temp = REG_GPIO_IN(0);
+	YC_GPIOWakeupL[0] = temp;
+	YC_GPIOWakeupH[0] = ~temp;
+}
+
+
+void KS_ScanMatrix()
+{
+	u8_t i = 0;
+	u8_t j = 0;
+	u8_t tgroup = 0;
+	u8_t tgpionum = 0;
+	u8_t temp = 0;
+	u8_t check = 0;
+	u8_t rawSel = 0;
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		GET_RAW_KEY_SEL(g_variable.ksSelMapCurr[i], tgroup, tgpionum);
+	}
+
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		GET_RAW_KEY_SEL(g_variable.ksSelMapCheck[i], tgroup, tgpionum);
+	}
+
+	for (i=0; col[i]!=0; i++) {
+		if (g_variable.ksSelMapCheck[i]!=g_variable.ksSelMapCurr[i]) {
+			g_variable.ksSelMapCurr[i] &= g_variable.ksSelMapCheck[i];
+		}
+	}
+}
+
+u8_t array_is_empty(u8_t * str1,u8_t len)
+{
+	u8_t i;
+	for (i=0;i < len;i++)
+	{
+		if (str1[i] != 0)
+			return 0x00;
+	}
+	return 0x01;
+}
+
+tKSEVENT *KS_GetCurrentEvt()
+{
+	//
+	u8_t i = 0;
+	u8_t j = 0;
+	u8_t temp = 0;
+	u8_t flag = 0;
+	u8_t offset = 0;
+	u8_t state = 0;
+	u8_t colCounttemp = 0;
+	u8_t rawSel =0;
+	u8_t keyCounttemp = 0;
+	//u8_t ksSelMapChange[]
+	KS_ScanMatrix();
+
+	if (compare_str(g_variable.ksSelMapCurr,g_variable.ksSelMapOld,KB_KSCAN_COL_NUM) 
+		&& !array_is_empty(g_variable.ksSelMapCurr,KB_KSCAN_COL_NUM))
+	{
+		g_variable.button_flag |= 0x02;
+	}
+	else
+	{	
+		g_variable.button_flag &= 0xFD;
+		g_variable.button_timer[1] = 0;
+	}
+
+	for (i=0; col[i]!=0; i++) {
+		temp = g_variable.ksSelMapCurr[i];
+		if (temp!=0) {
+			colCounttemp++;
+			rawSel = temp|rawSel;
+			keyCounttemp += bit_count(temp);
+		}
+	}
+	g_variable.keyCount = keyCounttemp;
+	g_variable.colCount = colCounttemp;
+	g_variable.rawCount = bit_count(rawSel);
+	if (g_variable.keyCount >2 && g_variable.keyCount > MAX(g_variable.colCount, g_variable.rawCount)) {
+		g_variable.ghost = 1;
+	}
+	else {
+		g_variable.ghost = 0;
+	}
+	
+	for (i=0; col[i]!=0; i++) {
+		temp = g_variable.ksSelMapCurr[i] ^ g_variable.ksSelMapOld[i];
+		state = g_variable.ksSelMapCurr[i];
+		if (temp == 0) {
+			continue;
+		}
+		else {
+			if (g_variable.ghost) 
+				return NULL;
+			g_variable.ksSelMapOld[i] = g_variable.ksSelMapCurr[i];
+			for (j = 0 ; j<8 ; j++) {
+				if (temp&1) {
+					offset = i<<3 |j;
+					if (state & 1) {
+						g_variable.keyinCount++;
+						keyIn(ksMap[offset]);
+					}
+					else {
+						g_variable.keyoutCount++;
+						keyOut(ksMap[offset]);
+					}
+				}
+				temp = temp >>1;
+				state = state>>1;
+			}
+			flag = 1;
+		}
+	}
+	
+	if (flag) {
+		return &ksEvtPool;
+	}
+	else {
+		return NULL;
+	}
+	
+
+}
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/make.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/make.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/make.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/make.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/make.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.COD
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.COD	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.COD	(working copy)
@@ -0,0 +1,7170 @@
+LX51 LINKER/LOCATER V4.41                                                               10/24/2019  17:32:56  PAGE 1
+
+
+
+
+
+ASSEMBLER CODE PACKING OF MODULE:  OUTPUT\FW (RAM)
+
+
+----- FUNCTION main (BEGIN) -----
+ FILE: 'ram.c'
+    5: void main()
+;----                  JMP     YC_SysMain
+    6: {
+    7: 	YC_SysMain();
+    8: 	//while(1){
+    9: 	//}
+----- FUNCTION main (END) -------
+
+
+----- FUNCTION YC_SysMain (BEGIN) -----
+ FILE: 'sys.c'
+ 1476: void YC_SysMain(void)
+ 1477: {		
+ 1478: 	u8_t i;
+ 1479: 	deviceInit();
+0002F1 121EEC            LCALL   deviceInit
+ 1480: 	if(1 == m_enable24gShortLpm){
+0002F4 904E78            MOV     DPTR,#m_enable24gShortLpm
+0002F7 E0                MOVX    A,@DPTR
+0002F8 B40103            CJNE    A,#01H,?C0256?SYS
+ 1481: 		YC_24gShortLpmProcess();
+0002FB 1212CE            LCALL   YC_24gShortLpmProcess
+ 1482: 	}
+0002FE         ?C0256?SYS:
+ 1483: 	while(1)
+ 1484: 	{
+ 1485: 		IPC_DealSingleStep();
+0002FE 1213CF            LCALL   IPC_DealSingleStep
+ 1486: 		mouseWheelScan();
+000301 121665            LCALL   mouseWheelScan
+ 1487: 		mouseKeyDetect();
+000304 121151            LCALL   mouseKeyDetect
+ 1488: 		mouseMotion();
+000307 121C67            LCALL   mouseMotion
+ 1489: #if OTA_ENABLE
+ 1490: 		wirelessConfigProcess();
+ 1491: #endif		
+ 1492: 		switch (current_task) 
+00030A 900B2A            MOV     DPTR,#current_task
+00030D E0                MOVX    A,@DPTR
+00030E 14                DEC     A
+00030F 6058              JZ      ?C0269?SYS
+000311 24FE              ADD     A,#0FEH
+000313 70E9              JNZ     ?C0256?SYS
+ 1493: 		{
+ 1494: 			case FIX_ENTER_HIBERNATE:
+000315         ?C0259?SYS:
+ 1495: 				g_variable.read_sensor_count = 0;
+000315 E4                CLR     A
+000316 904F00            MOV     DPTR,#g_variable+045H
+000319 F0                MOVX    @DPTR,A
+ 1496: 				sensorPowerDown();
+00031A 120F20            LCALL   sensorPowerDown
+ 1497: 				for (i = 0; i < 16; i ++) {
+;---- Variable 'i' assigned to Register 'R7' ----
+00031D E4                CLR     A
+00031E FF                MOV     R7,A
+00031F         ?C0260?SYS:
+ 1498: 					REG_GPIO_OE(i) = 0x00;
+00031F EF                MOV     A,R7
+000320 2470              ADD     A,#070H
+000322 FD                MOV     R5,A
+000323 E4                CLR     A
+000324 3480              ADDC    A,#080H
+000326 8D82              MOV     DPL,R5
+000328 F583              MOV     DPH,A
+00032A E4                CLR     A
+00032B F0                MOVX    @DPTR,A
+ 1499: 				}
+00032C 0F                INC     R7
+00032D EF                MOV     A,R7
+00032E B410EE            CJNE    A,#010H,?C0260?SYS
+000331         ?C0261?SYS:
+ 1500: 				if (GPIO_GetInputStatus(WHEEL_DATA_A_GPIO))
+000331 7F02              MOV     R7,#02H
+000333 120D22            LCALL   _GPIO_GetInputStatus
+000336 5008              JNC     ?C0263?SYS
+ 1501: 					GPIO_SetInput(WHEEL_DATA_A_GPIO, 0);
+000338 C206              CLR     ?_GPIO_SetInput?BIT
+00033A 7F02              MOV     R7,#02H
+00033C 71A1              ACALL   _GPIO_SetInput
+00033E 8006              SJMP    ?C0264?SYS
+000340         ?C0263?SYS:
+ 1502: 				else GPIO_SetInput(WHEEL_DATA_A_GPIO, 1);
+000340 D206              SETB    ?_GPIO_SetInput?BIT
+000342 7F02              MOV     R7,#02H
+000344 71A1              ACALL   _GPIO_SetInput
+000346         ?C0264?SYS:
+ 1503: 				if (GPIO_GetInputStatus(WHEEL_DATA_B_GPIO))
+000346 7F03              MOV     R7,#03H
+000348 120D22            LCALL   _GPIO_GetInputStatus
+00034B 5008              JNC     ?C0265?SYS
+ 1504: 					GPIO_SetInput(WHEEL_DATA_B_GPIO, 0);
+00034D C206              CLR     ?_GPIO_SetInput?BIT
+00034F 7F03              MOV     R7,#03H
+000351 71A1              ACALL   _GPIO_SetInput
+000353 8006              SJMP    ?C0266?SYS
+000355         ?C0265?SYS:
+ 1505: 				else GPIO_SetInput(WHEEL_DATA_B_GPIO, 1);
+000355 D206              SETB    ?_GPIO_SetInput?BIT
+000357 7F03              MOV     R7,#03H
+000359 71A1              ACALL   _GPIO_SetInput
+00035B         ?C0266?SYS:
+ 1506: 				GPIO_SetOutput(LED_GPIO, 1);
+00035B D207              SETB    ?_GPIO_SetOutput?BIT
+00035D 7F08              MOV     R7,#08H
+00035F 12107F            LCALL   _GPIO_SetOutput
+ 1507: 				YC_SetWake();
+000362 F116              ACALL   YC_SetWake
+ 1508: 				IPC_WaitLpm();
+000364 12163A            LCALL   IPC_WaitLpm
+000367         ?C0267?SYS:
+ 1509: 				while(1);
+000367 80FE              SJMP    ?C0267?SYS
+ 1510: 				break;
+ 1511: 			case FIX_ENTER_LPM:
+000369         ?C0269?SYS:
+ 1512: 				if (g_variable.wheelTimer ||g_variable.lockLpm)
+000369 904EC7            MOV     DPTR,#g_variable+0CH
+00036C E0                MOVX    A,@DPTR
+00036D 7006              JNZ     ?C0271?SYS
+00036F 904EC1            MOV     DPTR,#g_variable+06H
+000372 E0                MOVX    A,@DPTR
+000373 6005              JZ      ?C0270?SYS
+000375         ?C0271?SYS:
+ 1513: 				{
+ 1514: 					IPC_AbandonLpm();
+000375 1213C3            LCALL   IPC_AbandonLpm
+ 1515: 					break;
+000378 8084              SJMP    ?C0256?SYS
+ 1516: 				}
+00037A         ?C0270?SYS:
+ 1517: 				if (g_variable.currentState == DEVICE_MODE_24G 
+00037A 904EBD            MOV     DPTR,#g_variable+02H
+00037D E0                MOVX    A,@DPTR
+00037E FF                MOV     R7,A
+00037F 6401              XRL     A,#01H
+000381 6009              JZ      ?C0273?SYS
+000383 EF                MOV     A,R7
+000384 6402              XRL     A,#02H
+000386 6004              JZ      ?C0273?SYS
+000388 EF                MOV     A,R7
+000389 B4070D            CJNE    A,#07H,?C0272?SYS
+00038C         ?C0273?SYS:
+ 1518: 					||g_variable.currentState == DEVICE_MODE_BT
+ 1519: 					||g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+ 1520: 				{
+ 1521: 					YC_SetWake();
+00038C F116              ACALL   YC_SetWake
+ 1522: 					GPIO_SetWakeup(SENSOR_MOTION_GPIO,0);
+00038E C208              CLR     ?_GPIO_SetWakeup?BIT
+000390 7F18              MOV     R7,#018H
+000392 F181              ACALL   _GPIO_SetWakeup
+ 1523: 					IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+000394 12163A            LCALL   IPC_WaitLpm
+ 1524: 					break;
+000397 41FE              AJMP    ?C0256?SYS
+ 1525: 				}
+000399         ?C0272?SYS:
+ 1526: 				else
+ 1527: 				{
+ 1528: 					IPC_AbandonLpm();
+000399 1213C3            LCALL   IPC_AbandonLpm
+ 1529: 					break;
+00039C 41FE              AJMP    ?C0256?SYS
+ 1530: 				}
+ 1531: 		}
+ 1532: 	}
+00039E 41FE              AJMP    ?C0256?SYS
+0003A0 22                RET     
+----- FUNCTION YC_SysMain (END) -------
+
+
+----- FUNCTION _GPIO_SetInput (BEGIN) -----
+ FILE: 'gpio.c'
+   60: void GPIO_SetInput(u8_t gpio_num, bit  st)
+   61: {
+;---- Variable 'gpio_num' assigned to Register 'R4' ----
+0003A1 AC07              MOV     R4,AR7
+   62: 	GPIO_SetPd(gpio_num,st);
+   63: 	GPIO_SetPu(gpio_num,~st);
+0003A3 A206              MOV     C,st
+0003A5 9204              MOV     ?_GPIO_SetPd?BIT,C
+0003A7 121FC1            LCALL   _GPIO_SetPd
+   64: 	GPIO_Setoe(gpio_num,0);
+0003AA AF04              MOV     R7,AR4
+0003AC A206              MOV     C,st
+0003AE B3                CPL     C
+0003AF 9203              MOV     ?_GPIO_SetPu?BIT,C
+0003B1 121092            LCALL   _GPIO_SetPu
+   65: }
+0003B4 AF04              MOV     R7,AR4
+0003B6 C205              CLR     ?_GPIO_Setoe?BIT
+;----                  JMP     _GPIO_Setoe
+----- FUNCTION _GPIO_SetInput (END) -------
+
+
+----- FUNCTION _GPIO_Setoe (BEGIN) -----
+ FILE: 'gpio.c'
+   55: void GPIO_Setoe(u8_t gpio_num, bool bit_val)
+   56: {
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+   57: 	gpioSetBit(gpio_num, &REG_GPIO_OE(0), bit_val);	
+   58: }
+0003B8 7B01              MOV     R3,#01H
+0003BA 7A80              MOV     R2,#080H
+0003BC 7970              MOV     R1,#070H
+0003BE A205              MOV     C,bit_val
+0003C0 9201              MOV     ?_gpioSetBit?BIT,C
+;----                  JMP     _gpioSetBit
+----- FUNCTION _GPIO_Setoe (END) -------
+
+
+----- FUNCTION _gpioSetBit (BEGIN) -----
+ FILE: 'gpio.c'
+    8: static void gpioSetBit(u8_t gpio_num, char *reg_base, bool bit_val)
+    9: {
+0003C2 901C1F            MOV     DPTR,#reg_base
+0003C5 EB                MOV     A,R3
+0003C6 F0                MOVX    @DPTR,A
+0003C7 A3                INC     DPTR
+0003C8 EA                MOV     A,R2
+0003C9 F0                MOVX    @DPTR,A
+0003CA A3                INC     DPTR
+0003CB E9                MOV     A,R1
+0003CC F0                MOVX    @DPTR,A
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+   10: 	u8_t queue = 0;
+   11: 	u8_t group = 0;
+;---- Variable 'queue' assigned to Register 'R6' ----
+0003CD E4                CLR     A
+0003CE FE                MOV     R6,A
+   12: 
+;---- Variable 'group' assigned to Register 'R5' ----
+0003CF FD                MOV     R5,A
+   13: 	queue = (gpio_num & 7);
+0003D0 EF                MOV     A,R7
+0003D1 5407              ANL     A,#07H
+0003D3 FE                MOV     R6,A
+   14: 	group = gpio_num >> 3 & 3;
+0003D4 EF                MOV     A,R7
+0003D5 13                RRC     A
+0003D6 13                RRC     A
+0003D7 13                RRC     A
+0003D8 5403              ANL     A,#03H
+0003DA FD                MOV     R5,A
+   15: 
+   16: 	if(bit_val) {
+0003DB 300120            JNB     bit_val,?C0001?GPIO
+   17: 		*(reg_base + group) |= 1<<queue;
+0003DE 901C1F            MOV     DPTR,#reg_base
+0003E1 E0                MOVX    A,@DPTR
+0003E2 FB                MOV     R3,A
+0003E3 A3                INC     DPTR
+0003E4 E0                MOVX    A,@DPTR
+0003E5 FA                MOV     R2,A
+0003E6 A3                INC     DPTR
+0003E7 E0                MOVX    A,@DPTR
+0003E8 2D                ADD     A,R5
+0003E9 F9                MOV     R1,A
+0003EA E4                CLR     A
+0003EB 3A                ADDC    A,R2
+0003EC FA                MOV     R2,A
+0003ED 11F9              ACALL   ?C?CLDPTR
+0003EF FF                MOV     R7,A
+0003F0 7401              MOV     A,#01H
+0003F2 A806              MOV     R0,AR6
+0003F4 08                INC     R0
+0003F5 8002              SJMP    ?C0019?GPIO
+0003F7         ?C0018?GPIO:
+0003F7 C3                CLR     C
+0003F8 33                RLC     A
+0003F9         ?C0019?GPIO:
+0003F9 D8FC              DJNZ    R0,?C0018?GPIO
+0003FB 4F                ORL     A,R7
+0003FC 213F              AJMP    ?C?CSTPTR
+   18: 	}
+0003FE         ?C0001?GPIO:
+   19: 	else {
+   20: 		*(reg_base + group) &= ~(1<<queue);
+0003FE 901C1F            MOV     DPTR,#reg_base
+000401 E0                MOVX    A,@DPTR
+000402 FB                MOV     R3,A
+000403 A3                INC     DPTR
+000404 E0                MOVX    A,@DPTR
+000405 FA                MOV     R2,A
+000406 A3                INC     DPTR
+000407 E0                MOVX    A,@DPTR
+000408 2D                ADD     A,R5
+000409 F9                MOV     R1,A
+00040A E4                CLR     A
+00040B 3A                ADDC    A,R2
+00040C FA                MOV     R2,A
+00040D 11F9              ACALL   ?C?CLDPTR
+00040F FF                MOV     R7,A
+000410 7401              MOV     A,#01H
+000412 A806              MOV     R0,AR6
+000414 08                INC     R0
+000415 8002              SJMP    ?C0021?GPIO
+000417         ?C0020?GPIO:
+000417 C3                CLR     C
+000418 33                RLC     A
+000419         ?C0021?GPIO:
+000419 D8FC              DJNZ    R0,?C0020?GPIO
+00041B F4                CPL     A
+00041C 5F                ANL     A,R7
+00041D 213F              AJMP    ?C?CSTPTR
+   21: 	}
+----- FUNCTION _gpioSetBit (END) -------
+
+
+----- FUNCTION _deviceEvtCB (BEGIN) -----
+ FILE: 'sys.c'
+  889: static void deviceEvtCB(u8_t evt)
+  890: {
+00041F 901BBD            MOV     DPTR,#evt
+000422 EF                MOV     A,R7
+000423 F0                MOVX    @DPTR,A
+  891: 	u8_t curentMode;
+  892: 	u8_t buttonLeft = 0,buttonRight = 0,buttonMiddle = 0;
+000424 E4                CLR     A
+000425 901BBF            MOV     DPTR,#buttonLeft
+000428 F0                MOVX    @DPTR,A
+000429 A3                INC     DPTR
+00042A F0                MOVX    @DPTR,A
+00042B A3                INC     DPTR
+00042C F0                MOVX    @DPTR,A
+  893: 	u8_t combkey = 0;
+00042D A3                INC     DPTR
+00042E F0                MOVX    @DPTR,A
+  894: 	u8_t reconnLeAddr_buff[6] = 0;
+00042F 78C3              MOV     R0,#LOW reconnLeAddr_buff
+000431 7C1B              MOV     R4,#HIGH reconnLeAddr_buff
+000433 7D01              MOV     R5,#01H
+000435 7BFF              MOV     R3,#0FFH
+000437 7A02              MOV     R2,#HIGH _?ix1000
+000439 79E8              MOV     R1,#LOW _?ix1000
+00043B FE                MOV     R6,A
+00043C 7F06              MOV     R7,#06H
+00043E 11D3              ACALL   ?C?COPY
+  895: 	
+  896: 	switch(evt)
+000440 901BBD            MOV     DPTR,#evt
+000443 E0                MOVX    A,@DPTR
+000444 511A              ACALL   ?C?CCASE
+000446 068C              DW      ?C0185?SYS
+000448 14                DB      014H
+000449 06F7              DW      ?C0186?SYS
+00044B 15                DB      015H
+00044C 0468              DW      ?C0158?SYS
+00044E 2F                DB      02FH
+00044F 05CB              DW      ?C0177?SYS
+000451 39                DB      039H
+000452 0656              DW      ?C0183?SYS
+000454 3A                DB      03AH
+000455 05F6              DW      ?C0178?SYS
+000457 3B                DB      03BH
+000458 059C              DW      ?C0173?SYS
+00045A 3C                DB      03CH
+00045B 0465              DW      ?C0157?SYS
+00045D 3D                DB      03DH
+00045E 066B              DW      ?C0184?SYS
+000460 40                DB      040H
+000461 0000              DW      00H
+000463 0715              DW      ?C0191?SYS
+  897: 	{
+  898: 		case IPC_EVT_HIBERNATE_WAKE:
+000465         ?C0157?SYS:
+  899: 			clearGlobalMem();
+000465 121E9D            LCALL   clearGlobalMem
+  900: 		case IPC_EVT_RESET:
+000468         ?C0158?SYS:
+  901: 			leAddrRandomCntInit();
+000468 121958            LCALL   leAddrRandomCntInit
+  902: 			GPIO_SetInput(SENSOR_MOTION_GPIO, 0);
+00046B C206              CLR     ?_GPIO_SetInput?BIT
+00046D 7F18              MOV     R7,#018H
+00046F 71A1              ACALL   _GPIO_SetInput
+  903: 			GPIO_SetInput(SENSOR_DIRECTION_GPIO_CHOICE,0);
+000471 C206              CLR     ?_GPIO_SetInput?BIT
+000473 7F12              MOV     R7,#012H
+000475 71A1              ACALL   _GPIO_SetInput
+  904: 			GPIO_SetInput(LOWPOWER_GPIO_CHOICE, 0);
+000477 C206              CLR     ?_GPIO_SetInput?BIT
+000479 7F13              MOV     R7,#013H
+00047B 71A1              ACALL   _GPIO_SetInput
+  905: 			GPIO_SetInput(WHEEL_DATA_A_GPIO, 0);
+00047D C206              CLR     ?_GPIO_SetInput?BIT
+00047F 7F02              MOV     R7,#02H
+000481 71A1              ACALL   _GPIO_SetInput
+  906: 			GPIO_SetInput(WHEEL_DATA_B_GPIO, 0);
+000483 C206              CLR     ?_GPIO_SetInput?BIT
+000485 7F03              MOV     R7,#03H
+000487 71A1              ACALL   _GPIO_SetInput
+  907: 			GPIO_SetInput(KS_BL_GPIO, 0);
+000489 C206              CLR     ?_GPIO_SetInput?BIT
+00048B 7F04              MOV     R7,#04H
+00048D 71A1              ACALL   _GPIO_SetInput
+  908: 			GPIO_SetInput(KS_BM_GPIO, 0);
+00048F C206              CLR     ?_GPIO_SetInput?BIT
+000491 7F17              MOV     R7,#017H
+000493 71A1              ACALL   _GPIO_SetInput
+  909: 			GPIO_SetInput(KS_BR_GPIO, 0);
+000495 C206              CLR     ?_GPIO_SetInput?BIT
+000497 7F1B              MOV     R7,#01BH
+000499 71A1              ACALL   _GPIO_SetInput
+  910: 			GPIO_SetInput(KS_BK_GPIO, 0);
+00049B C206              CLR     ?_GPIO_SetInput?BIT
+00049D 7F17              MOV     R7,#017H
+00049F 71A1              ACALL   _GPIO_SetInput
+  911: 			GPIO_SetInput(KS_FW_GPIO, 0);
+0004A1 C206              CLR     ?_GPIO_SetInput?BIT
+0004A3 7F04              MOV     R7,#04H
+0004A5 71A1              ACALL   _GPIO_SetInput
+  912: 			GPIO_SetInput(CPI_GPIO, 0);
+0004A7 C206              CLR     ?_GPIO_SetInput?BIT
+0004A9 7F06              MOV     R7,#06H
+0004AB 71A1              ACALL   _GPIO_SetInput
+  913: 			GPIO_SetOutput(LED_GPIO,1);
+0004AD D207              SETB    ?_GPIO_SetOutput?BIT
+0004AF 7F08              MOV     R7,#08H
+0004B1 12107F            LCALL   _GPIO_SetOutput
+  914: 			GPIO_SetOutput(Timer_div_io, 1);
+0004B4 D207              SETB    ?_GPIO_SetOutput?BIT
+0004B6 7F07              MOV     R7,#07H
+0004B8 12107F            LCALL   _GPIO_SetOutput
+  915: 						
+  916: 			if (!GPIO_GetInputStatus(SENSOR_DIRECTION_GPIO_CHOICE)) {
+0004BB 7F12              MOV     R7,#012H
+0004BD 120D22            LCALL   _GPIO_GetInputStatus
+0004C0 4007              JC      ?C0159?SYS
+  917: 				g_variable.sensorChoice = 0;
+0004C2 E4                CLR     A
+0004C3 904EF0            MOV     DPTR,#g_variable+035H
+0004C6 F0                MOVX    @DPTR,A
+  918: 			}
+0004C7 8006              SJMP    ?C0160?SYS
+0004C9         ?C0159?SYS:
+  919: 			else {
+  920: 				g_variable.sensorChoice = 1;
+0004C9 904EF0            MOV     DPTR,#g_variable+035H
+0004CC 7401              MOV     A,#01H
+0004CE F0                MOVX    @DPTR,A
+  921: 			}
+0004CF         ?C0160?SYS:
+  922: 			
+  923: 			if (!GPIO_GetInputStatus(LOWPOWER_GPIO_CHOICE)){
+0004CF 7F13              MOV     R7,#013H
+0004D1 120D22            LCALL   _GPIO_GetInputStatus
+0004D4 500A              JNC     ?C0162?SYS
+  924: 			
+  925: #if ADC_VINLPM_ENABLE
+  926: 				(*(volatile unsigned char xdata *)mem_adc_config_flag) = 0x01;
+  927: #endif
+  928: 			}
+0004D6         ?C0161?SYS:
+  929: 			else {
+  930: #if ADC_GPIO_ENABLE
+  931: 				(*(volatile unsigned char xdata *)mem_adc_config_flag) = 0x04;
+0004D6 9042CF            MOV     DPTR,#042CFH
+0004D9 7404              MOV     A,#04H
+0004DB F0                MOVX    @DPTR,A
+  932: 				(*(volatile unsigned char xdata *)mem_adc_channel) = 0x30;//gpio5 for adc
+0004DC A3                INC     DPTR
+0004DD 7430              MOV     A,#030H
+0004DF F0                MOVX    @DPTR,A
+  933: #endif				
+  934: 			}
+0004E0         ?C0162?SYS:
+  935: 			SPI_Initialize();
+0004E0 1216FA            LCALL   SPI_Initialize
+  936: 			Drawing_optima_init();
+0004E3 122124            LCALL   Drawing_optima_init
+  937: 			g_variable.sensorType = SPI_ResetSensor();
+0004E6 120849            LCALL   SPI_ResetSensor
+0004E9 904ED9            MOV     DPTR,#g_variable+01EH
+0004EC EF                MOV     A,R7
+0004ED F0                MOVX    @DPTR,A
+  938: 			IIC_Read(EEPROM_DPI_ADDR, 1, &g_variable.dpiCount);
+0004EE 7B01              MOV     R3,#01H
+0004F0 7A4E              MOV     R2,#HIGH g_variable+020H
+0004F2 79DB              MOV     R1,#LOW g_variable+020H
+0004F4 7D01              MOV     R5,#01H
+0004F6 7C00              MOV     R4,#00H
+0004F8 7FA8              MOV     R7,#0A8H
+0004FA 7E3F              MOV     R6,#03FH
+0004FC 121888            LCALL   _IIC_Read
+  939: 			if(g_variable.dpiCount>3) 
+0004FF 904EDB            MOV     DPTR,#g_variable+020H
+000502 E0                MOVX    A,@DPTR
+000503 D3                SETB    C
+000504 9403              SUBB    A,#03H
+000506 4003              JC      ?C0163?SYS
+  940: 				g_variable.dpiCount=0x02;
+000508 7402              MOV     A,#02H
+00050A F0                MOVX    @DPTR,A
+00050B         ?C0163?SYS:
+  941: 			IIC_WriteBlock(EEPROM_DPI_ADDR, 1, &g_variable.dpiCount);
+00050B 7B01              MOV     R3,#01H
+00050D 7A4E              MOV     R2,#HIGH g_variable+020H
+00050F 79DB              MOV     R1,#LOW g_variable+020H
+000511 7D01              MOV     R5,#01H
+000513 7C00              MOV     R4,#00H
+000515 7FA8              MOV     R7,#0A8H
+000517 7E3F              MOV     R6,#03FH
+000519 1219A4            LCALL   _IIC_WriteBlock
+  942: 			dpiWriteInSensor();
+00051C 120A8F            LCALL   dpiWriteInSensor
+  943: 			REG_GPIO_SELECT(0) = 0x00;
+00051F 908080            MOV     DPTR,#08080H
+000522 E4                CLR     A
+000523 F0                MOVX    @DPTR,A
+  944: 			g_variable.dpiLedStay = 0;
+000524 904EDE            MOV     DPTR,#g_variable+023H
+000527 F0                MOVX    @DPTR,A
+  945: 			g_variable.dpiLedFlipTime = 0;
+000528 904EDD            MOV     DPTR,#g_variable+022H
+00052B F0                MOVX    @DPTR,A
+  946: 			buttonLeft = !GPIO_GetInputStatus(KS_BL_GPIO);
+00052C 7F04              MOV     R7,#04H
+00052E 120D22            LCALL   _GPIO_GetInputStatus
+000531 4004              JC      ?C0164?SYS
+000533 7F01              MOV     R7,#01H
+000535 8002              SJMP    ?C0165?SYS
+000537         ?C0164?SYS:
+000537 7F00              MOV     R7,#00H
+000539         ?C0165?SYS:
+000539 901BBF            MOV     DPTR,#buttonLeft
+00053C EF                MOV     A,R7
+00053D F0                MOVX    @DPTR,A
+  947: 			buttonMiddle = !GPIO_GetInputStatus(KS_BM_GPIO);
+00053E 7F17              MOV     R7,#017H
+000540 120D22            LCALL   _GPIO_GetInputStatus
+000543 4004              JC      ?C0166?SYS
+000545 7F01              MOV     R7,#01H
+000547 8002              SJMP    ?C0167?SYS
+000549         ?C0166?SYS:
+000549 7F00              MOV     R7,#00H
+00054B         ?C0167?SYS:
+00054B 901BC1            MOV     DPTR,#buttonMiddle
+00054E EF                MOV     A,R7
+00054F F0                MOVX    @DPTR,A
+  948: 			buttonRight = !GPIO_GetInputStatus(KS_BR_GPIO);
+000550 7F1B              MOV     R7,#01BH
+000552 120D22            LCALL   _GPIO_GetInputStatus
+000555 4004              JC      ?C0168?SYS
+000557 7F01              MOV     R7,#01H
+000559 8002              SJMP    ?C0169?SYS
+00055B         ?C0168?SYS:
+00055B 7F00              MOV     R7,#00H
+00055D         ?C0169?SYS:
+00055D 901BC0            MOV     DPTR,#buttonRight
+000560 EF                MOV     A,R7
+000561 F0                MOVX    @DPTR,A
+  949: 			combkey = buttonLeft |buttonRight<<1|buttonMiddle<<2;
+000562 E0                MOVX    A,@DPTR
+000563 FF                MOV     R7,A
+000564 25E0              ADD     A,ACC
+000566 FF                MOV     R7,A
+000567 901BBF            MOV     DPTR,#buttonLeft
+00056A E0                MOVX    A,@DPTR
+00056B 4F                ORL     A,R7
+00056C FF                MOV     R7,A
+00056D 901BC1            MOV     DPTR,#buttonMiddle
+000570 E0                MOVX    A,@DPTR
+000571 FE                MOV     R6,A
+000572 25E0              ADD     A,ACC
+000574 25E0              ADD     A,ACC
+000576 4F                ORL     A,R7
+000577 FF                MOV     R7,A
+000578 A3                INC     DPTR
+000579 F0                MOVX    @DPTR,A
+  950: 			if ((combkey == 0x05)&&(evt == IPC_EVT_RESET)) 
+00057A BF050C            CJNE    R7,#05H,?C0170?SYS
+00057D 901BBD            MOV     DPTR,#evt
+000580 E0                MOVX    A,@DPTR
+000581 B42F05            CJNE    A,#02FH,?C0170?SYS
+  951: 			{
+  952: 				IPC_TxControlCmd(IPC_CMD_PAIR_24G);
+000584 7F25              MOV     R7,#025H
+000586 020E78            LJMP    _IPC_TxControlCmd
+  953: 				break;
+  954: 			}
+000589         ?C0170?SYS:
+  955: 
+  956: 			if(m_leStartAdv == 1){
+000589 904EA7            MOV     DPTR,#m_leStartAdv
+00058C E0                MOVX    A,@DPTR
+00058D B40109            CJNE    A,#01H,?C0171?SYS
+  957: 				leReconnStart();
+000590 121937            LCALL   leReconnStart
+  958: 				m_leStartAdv = 0;
+000593 E4                CLR     A
+000594 904EA7            MOV     DPTR,#m_leStartAdv
+000597 F0                MOVX    @DPTR,A
+  959: 			}
+000598 22                RET     
+000599         ?C0171?SYS:
+  960: 			else
+  961: 			//	deviceSwitch24GMode();
+  962: 				leReconnStart();
+000599 021937            LJMP    leReconnStart
+  963: 			break;
+  964: 		case IPC_EVT_WAKEUP:
+00059C         ?C0173?SYS:
+  965: 			if(g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+00059C 904EBD            MOV     DPTR,#g_variable+02H
+00059F E0                MOVX    A,@DPTR
+0005A0 B40715            CJNE    A,#07H,?C0174?SYS
+  966: 			{
+  967: 				if(m_btWakeupFromLongMult == 1)
+0005A3 9049C1            MOV     DPTR,#m_btWakeupFromLongMult
+0005A6 E0                MOVX    A,@DPTR
+0005A7 FF                MOV     R7,A
+0005A8 6401              XRL     A,#01H
+0005AA 7002              JNZ     $ + 4H
+0005AC E115              AJMP    ?C0191?SYS
+  968: 					break;
+0005AE         ?C0175?SYS:
+  969: 				if(m_btWakeupFromLongMult == 2)
+0005AE EF                MOV     A,R7
+0005AF B40206            CJNE    A,#02H,?C0174?SYS
+  970: 					m_btWakeupFromLongMult = 1;
+0005B2 9049C1            MOV     DPTR,#m_btWakeupFromLongMult
+0005B5 7401              MOV     A,#01H
+0005B7 F0                MOVX    @DPTR,A
+  971: 			}
+0005B8         ?C0174?SYS:
+  972: 			SPI_Initialize();//spi
+0005B8 1216FA            LCALL   SPI_Initialize
+  973: 			GPIO_SetOutput(Timer_div_io,1);
+0005BB D207              SETB    ?_GPIO_SetOutput?BIT
+0005BD 7F07              MOV     R7,#07H
+0005BF 12107F            LCALL   _GPIO_SetOutput
+  974: 			GPIO_SetInput(Timer_div_io,0);
+0005C2 C206              CLR     ?_GPIO_SetInput?BIT
+0005C4 7F07              MOV     R7,#07H
+0005C6 71A1              ACALL   _GPIO_SetInput
+  975: 			Drawing_optima_init();
+0005C8 022124            LJMP    Drawing_optima_init
+  976: 			break;
+  977: #if MOUSE_BT_MODE_ENABLE			
+  978: 		case IPC_EVT_BB_CONNECTED:
+  979: 			IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+  980: 			IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+  981: 			g_variable.currentState = DEVICE_MODE_BB;
+  982: 			if (g_variable.reconnFlag)
+  983: 			{
+  984: 				g_variable.nextMode = DEVICE_MODE_NONE;
+  985: 			}
+  986: 			else 
+  987: 			{
+  988: 				g_variable.nextMode = DEVICE_MODE_DISC;
+  989: 			}
+  990: 			break;
+  991: 	
+  992: 		case IPC_EVT_PINCODE_REQ:
+  993: 			IPC_SetPincode("0000",4);
+  994: 			IPC_TxControlCmd(IPC_CMD_SET_PIN_CODE);
+  995: 			g_variable.nextMode = DEVICE_MODE_DISC;
+  996: 			break;
+  997: 		case IPC_EVT_HID_HANDSHAKE:
+  998: 			g_variable.currentState = DEVICE_MODE_BT;
+  999: 			sensorClearData();
+ 1000: 			IIC_WriteBlock(EEPROM_RECON_INFO_BASE,6,(u8_t *)m_remoteAddr);
+ 1001: 			Delay1ms(10);
+ 1002: 			IIC_WriteBlock(EEPROM_CONN_MODE,1,&g_variable.currentState);
+ 1003: 			IPC_TxControlCmd(IPC_CMD_ENTER_SNIFF);
+ 1004: 			g_variable.nextMode = DEVICE_MODE_NONE;
+ 1005: 			g_variable.reconnFlag = 0;
+ 1006: 			break;
+ 1007: 		case IPC_EVT_LINKKEY_GENERATE:
+ 1008: 			IIC_WriteBlock(EEPROM_LINK_KEY,16,(u8_t *)m_linkKey);
+ 1009: 			break;
+ 1010: 		case IPC_EVT_VIRTUAL_CABLE_UNPLUG:
+ 1011: 		case IPC_EVT_CLEAR_LINKKEY:
+ 1012: 			xmemclear_ff(m_remoteAddr,6);
+ 1013: 			IIC_WriteBlock(EEPROM_RECON_INFO_BASE,6,(u8_t *)m_remoteAddr);
+ 1014: 
+ 1015: 		case IPC_EVT_RECONN_FAILED:
+ 1016: 		case IPC_EVT_RECONN_PAGE_TIMEOUT:
+ 1017: 		case IPC_EVT_BB_DISCONNECTED:
+ 1018: 			if (g_variable.nextMode == DEVICE_MODE_24G) 
+ 1019: 			{
+ 1020: 				deviceSwitch24GMode();
+ 1021: 				g_variable.nextMode = DEVICE_MODE_NONE;
+ 1022: 				break;
+ 1023: 			}
+ 1024: 			else if (g_variable.nextMode == DEVICE_MODE_DISC) 
+ 1025: 			{
+ 1026: 				g_variable.currentState = DEVICE_MODE_DISC;
+ 1027: 				g_variable.nextMode = DEVICE_MODE_NONE;
+ 1028: 				
+ 1029: #if MOUSE_BT_MODE_ENABLE	
+ 1030: 				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+ 1031: #endif
+ 1032: 				leADVStart();
+ 1033: 				break;
+ 1034: 			}
+ 1035: 			g_variable.currentState = DEVICE_MODE_PREPARE_SLEEP;
+ 1036: 			break;
+ 1037: #endif			
+ 1038: 		case IPC_EVT_24G_PAIRING_COMPLETE:
+0005CB         ?C0177?SYS:
+ 1039: 			g_variable.currentState = DEVICE_MODE_24G;
+0005CB 904EBD            MOV     DPTR,#g_variable+02H
+0005CE 7401              MOV     A,#01H
+0005D0 F0                MOVX    @DPTR,A
+ 1040: 			IIC_WriteBlock(EEPROM_CONN_MODE, 1,&g_variable.currentState);
+0005D1 FB                MOV     R3,A
+0005D2 7A4E              MOV     R2,#HIGH g_variable+02H
+0005D4 79BD              MOV     R1,#LOW g_variable+02H
+0005D6 FD                MOV     R5,A
+0005D7 7C00              MOV     R4,#00H
+0005D9 7FA9              MOV     R7,#0A9H
+0005DB 7E3F              MOV     R6,#03FH
+0005DD 1219A4            LCALL   _IIC_WriteBlock
+ 1041: 			IIC_WriteBlock(EEPROM_24G_ADDR,6,(u8_t *)m_24gRxPayload);
+0005E0 7B01              MOV     R3,#01H
+0005E2 7A49              MOV     R2,#HIGH m_24gRxPayload
+0005E4 7906              MOV     R1,#LOW m_24gRxPayload
+0005E6 7D06              MOV     R5,#06H
+0005E8 7C00              MOV     R4,#00H
+0005EA 7FA2              MOV     R7,#0A2H
+0005EC 7E3F              MOV     R6,#03FH
+0005EE 1219A4            LCALL   _IIC_WriteBlock
+ 1042: 			IPC_TxControlCmd( IPC_CMD_START_24G);
+0005F1 7F23              MOV     R7,#023H
+0005F3 020E78            LJMP    _IPC_TxControlCmd
+ 1043: 			break;
+ 1044: 		case IPC_EVT_24G_ATTEMPT_FAIL:	
+0005F6         ?C0178?SYS:
+ 1045: 			deviceStop24g();
+0005F6 120F16            LCALL   deviceStop24g
+ 1046: 			g_variable.g24DongleExist = 0;
+0005F9 E4                CLR     A
+0005FA 904EE3            MOV     DPTR,#g_variable+028H
+0005FD F0                MOVX    @DPTR,A
+ 1047: 			if (g_variable.Factory_Pwr_on_f)
+0005FE 904EF2            MOV     DPTR,#g_variable+037H
+000601 E0                MOVX    A,@DPTR
+000602 6013              JZ      ?C0179?SYS
+ 1048: 			{
+ 1049: 				g_variable.Factory_Pwr_on_f++;
+000604 04                INC     A
+000605 F0                MOVX    @DPTR,A
+ 1050: 				g_variable.Factory_Pwr_on_f = (g_variable.Factory_Pwr_on_f) & 0x07;
+000606 E0                MOVX    A,@DPTR
+000607 5407              ANL     A,#07H
+000609 F0                MOVX    @DPTR,A
+ 1051: 				if (g_variable.Factory_Pwr_on_f & 0x01)
+00060A 30E005            JNB     ACC.0,?C0180?SYS
+ 1052: 					IPC_TxControlCmd(IPC_CMD_START_24G);
+00060D 7F23              MOV     R7,#023H
+00060F 020E78            LJMP    _IPC_TxControlCmd
+000612         ?C0180?SYS:
+ 1053: 				else 
+ 1054: 					IPC_TxControlCmd(IPC_CMD_PAIR_24G);
+000612 7F25              MOV     R7,#025H
+000614 020E78            LJMP    _IPC_TxControlCmd
+ 1055: 				break;
+ 1056: 			}
+000617         ?C0179?SYS:
+ 1057: #if MOUSE_BT_MODE_ENABLE			
+ 1058: 			IIC_Read(EEPROM_CONN_MODE, 1,&curentMode);
+ 1059: 			Delay1ms(10);
+ 1060: 			if (curentMode == DEVICE_MODE_BT) 
+ 1061: 			{
+ 1062: 				Delay1ms(10);
+ 1063: 				IIC_Read(EEPROM_RECON_INFO_BASE ,6 , m_reconnAddr);
+ 1064: 				Delay1ms(10);
+ 1065: 				IIC_Read(EEPROM_LINK_KEY, 16, m_linkKey);
+ 1066: 				if (m_reconnAddr[0]!=0) 
+ 1067: 				{
+ 1068: 					g_variable.currentState = DEVICE_MODE_PAGE;
+ 1069: 					IPC_TxControlCmd(IPC_CMD_RECONNECT);
+ 1070: 					break;
+ 1071: 				}
+ 1072: 				else 
+ 1073: 				{
+ 1074: 					IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+ 1075: 					break;
+ 1076: 				}
+ 1077: 			}
+ 1078: 			else
+ 1079: 			{
+ 1080: 				leReconnStart();
+ 1081: 			}
+ 1082: #else
+ 1083: 			IIC_Read(EEPROM_RECONN_LE_ADDR, 6,reconnLeAddr_buff);
+000617 7B01              MOV     R3,#01H
+000619 7A1B              MOV     R2,#HIGH reconnLeAddr_buff
+00061B 79C3              MOV     R1,#LOW reconnLeAddr_buff
+00061D 7D06              MOV     R5,#06H
+00061F 7C00              MOV     R4,#00H
+000621 7F9C              MOV     R7,#09CH
+000623 7E3F              MOV     R6,#03FH
+000625 121888            LCALL   _IIC_Read
+ 1084: 			if((reconnLeAddr_buff[0] == 0xff) && (reconnLeAddr_buff[1] == 0xff) 
+000628 901BC3            MOV     DPTR,#reconnLeAddr_buff
+00062B E0                MOVX    A,@DPTR
+00062C F4                CPL     A
+00062D 7024              JNZ     ?C0182?SYS
+00062F A3                INC     DPTR
+000630 E0                MOVX    A,@DPTR
+000631 F4                CPL     A
+000632 701F              JNZ     ?C0182?SYS
+000634 A3                INC     DPTR
+000635 E0                MOVX    A,@DPTR
+000636 B4FF1A            CJNE    A,#0FFH,?C0182?SYS
+000639 A3                INC     DPTR
+00063A E0                MOVX    A,@DPTR
+00063B B4FF15            CJNE    A,#0FFH,?C0182?SYS
+00063E A3                INC     DPTR
+00063F E0                MOVX    A,@DPTR
+000640 B4FF10            CJNE    A,#0FFH,?C0182?SYS
+000643 A3                INC     DPTR
+000644 E0                MOVX    A,@DPTR
+000645 B4FF0B            CJNE    A,#0FFH,?C0182?SYS
+ 1085: 				&& (reconnLeAddr_buff[2] == 0xff) && (reconnLeAddr_buff[3] == 0xff) 
+ 1086: 				&& (reconnLeAddr_buff[4] == 0xff) && (reconnLeAddr_buff[5] == 0xff)){
+ 1087: 				g_variable.enterHibernateFlag = 1;
+000648 904F01            MOV     DPTR,#g_variable+046H
+00064B 7401              MOV     A,#01H
+00064D F0                MOVX    @DPTR,A
+ 1088: 				g_variable.enterHibernateTimer = 30;	//wait bt to exit 2.4G short lpm (about 50ms)
+00064E A3                INC     DPTR
+00064F 741E              MOV     A,#01EH
+000651 F0                MOVX    @DPTR,A
+ 1089: 				break;
+000652 22                RET     
+ 1090: 			}
+000653         ?C0182?SYS:
+ 1091: 			leReconnStart();
+000653 021937            LJMP    leReconnStart
+ 1092: #endif
+ 1093: 			break;
+ 1094: 		case IPC_EVT_24G_ATTEMPT_SUCCESS:
+000656         ?C0183?SYS:
+ 1095: 			sensorClearData();
+000656 120807            LCALL   sensorClearData
+ 1096: 			g_variable.g24DongleExist = 1;
+000659 904EE3            MOV     DPTR,#g_variable+028H
+00065C 7401              MOV     A,#01H
+00065E F0                MOVX    @DPTR,A
+ 1097: 			g_variable.mouseFlag = 0;
+00065F E4                CLR     A
+000660 904EF1            MOV     DPTR,#g_variable+036H
+000663 F0                MOVX    @DPTR,A
+ 1098: 			g_variable.Factory_Pwr_on_f = 0;
+000664 A3                INC     DPTR
+000665 F0                MOVX    @DPTR,A
+ 1099: //			curentMode = DEVICE_MODE_24G;
+ 1100: //			IIC_WriteBlock(EEPROM_CONN_MODE,1,&curentMode);
+ 1101: 			g_variable.nextMode = DEVICE_MODE_NONE;
+000666 904EBE            MOV     DPTR,#g_variable+03H
+000669 F0                MOVX    @DPTR,A
+ 1102: 			break;
+00066A 22                RET     
+ 1103: 
+ 1104: 		case IPC_EVT_LE_NOTIFY_ENABLE:
+00066B         ?C0184?SYS:
+ 1105: 			SPI_Initialize();//spi
+00066B 1216FA            LCALL   SPI_Initialize
+ 1106: 			SPI_TwReset();
+00066E 120CCF            LCALL   SPI_TwReset
+ 1107: 			SPI_WriteSensor(0x80,0x06);			
+000671 7D06              MOV     R5,#06H
+000673 7F80              MOV     R7,#080H
+000675 120A64            LCALL   _SPI_WriteSensor
+ 1108: 			IIC_Read(EEPROM_DPI_ADDR, 1, &g_variable.dpiCount);
+000678 7B01              MOV     R3,#01H
+00067A 7A4E              MOV     R2,#HIGH g_variable+020H
+00067C 79DB              MOV     R1,#LOW g_variable+020H
+00067E 7D01              MOV     R5,#01H
+000680 7C00              MOV     R4,#00H
+000682 7FA8              MOV     R7,#0A8H
+000684 7E3F              MOV     R6,#03FH
+000686 121888            LCALL   _IIC_Read
+ 1109: 			dpiWriteInSensor();
+000689 020A8F            LJMP    dpiWriteInSensor
+ 1110: 			break;
+ 1111: 		case IPC_EVT_LE_CONNECTED:
+00068C         ?C0185?SYS:
+ 1112: 			m_51ReadSensor = 0;
+00068C E4                CLR     A
+00068D 904E84            MOV     DPTR,#m_51ReadSensor
+000690 F0                MOVX    @DPTR,A
+ 1113: 			IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+000691 7F0E              MOV     R7,#0EH
+000693 120E78            LCALL   _IPC_TxControlCmd
+ 1114: 			IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+000696 7F02              MOV     R7,#02H
+000698 120E78            LCALL   _IPC_TxControlCmd
+ 1115: 			g_variable.currentState = DEVICE_MODE_BLE_BB_CONNECT;
+00069B 904EBD            MOV     DPTR,#g_variable+02H
+00069E 7407              MOV     A,#07H
+0006A0 F0                MOVX    @DPTR,A
+ 1116: 			curentMode = DEVICE_MODE_BLE;
+0006A1 901BBE            MOV     DPTR,#curentMode
+0006A4 7409              MOV     A,#09H
+0006A6 F0                MOVX    @DPTR,A
+ 1117: 			sensorClearData();
+0006A7 120807            LCALL   sensorClearData
+ 1118: 			IIC_WriteBlock(EEPROM_REMOTE_LE_ADDR,6,(u8_t *)m_remoteLeAddr);
+0006AA 7B01              MOV     R3,#01H
+0006AC 7A03              MOV     R2,#HIGH m_remoteLeAddr
+0006AE 7972              MOV     R1,#LOW m_remoteLeAddr
+0006B0 7D06              MOV     R5,#06H
+0006B2 7C00              MOV     R4,#00H
+0006B4 7F96              MOV     R7,#096H
+0006B6 7E3F              MOV     R6,#03FH
+0006B8 1219A4            LCALL   _IIC_WriteBlock
+ 1119: 			Delay1ms(10);
+0006BB 7F0A              MOV     R7,#0AH
+0006BD 7E00              MOV     R6,#00H
+0006BF 121646            LCALL   _Delay1ms
+ 1120: 			IIC_WriteBlock(EEPROM_RECONN_LE_ADDR,6,(u8_t *)m_reconnLeAddr);
+0006C2 7B01              MOV     R3,#01H
+0006C4 7A45              MOV     R2,#HIGH m_reconnLeAddr
+0006C6 793E              MOV     R1,#LOW m_reconnLeAddr
+0006C8 7D06              MOV     R5,#06H
+0006CA 7C00              MOV     R4,#00H
+0006CC 7F9C              MOV     R7,#09CH
+0006CE 7E3F              MOV     R6,#03FH
+0006D0 1219A4            LCALL   _IIC_WriteBlock
+ 1121: 			Delay1ms(10);				
+0006D3 7F0A              MOV     R7,#0AH
+0006D5 7E00              MOV     R6,#00H
+0006D7 121646            LCALL   _Delay1ms
+ 1122: 			IIC_WriteBlock(EEPROM_CONN_MODE,1,&curentMode);
+0006DA 7B01              MOV     R3,#01H
+0006DC 7A1B              MOV     R2,#HIGH curentMode
+0006DE 79BE              MOV     R1,#LOW curentMode
+0006E0 7D01              MOV     R5,#01H
+0006E2 7C00              MOV     R4,#00H
+0006E4 7FA9              MOV     R7,#0A9H
+0006E6 7E3F              MOV     R6,#03FH
+0006E8 1219A4            LCALL   _IIC_WriteBlock
+ 1123: 			g_variable.nextMode = DEVICE_MODE_PREPARE_SLEEP;
+0006EB 904EBE            MOV     DPTR,#g_variable+03H
+0006EE 7406              MOV     A,#06H
+0006F0 F0                MOVX    @DPTR,A
+ 1124: 			g_variable.reconnFlag = 0;
+0006F1 E4                CLR     A
+0006F2 904EC2            MOV     DPTR,#g_variable+07H
+0006F5 F0                MOVX    @DPTR,A
+ 1125: 			break;
+0006F6 22                RET     
+ 1126: 		case IPC_EVT_LE_DISCONNECTED:	
+0006F7         ?C0186?SYS:
+ 1127: 			if(g_variable.nextMode == DEVICE_MODE_BLE_ADV)
+0006F7 904EBE            MOV     DPTR,#g_variable+03H
+0006FA E0                MOVX    A,@DPTR
+0006FB B4080A            CJNE    A,#08H,?C0187?SYS
+ 1128: 			{
+ 1129: #if MOUSE_BT_MODE_ENABLE	
+ 1130: 				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+ 1131: #endif
+ 1132: 				leADVStart();
+0006FE 120E38            LCALL   leADVStart
+ 1133: 				g_variable.currentState = DEVICE_MODE_DISC;
+000701 904EBD            MOV     DPTR,#g_variable+02H
+000704 7403              MOV     A,#03H
+000706 F0                MOVX    @DPTR,A
+ 1134: 			}
+000707 22                RET     
+000708         ?C0187?SYS:
+ 1135: 			else if(g_variable.nextMode == DEVICE_MODE_PREPARE_SLEEP)
+000708 904EBE            MOV     DPTR,#g_variable+03H
+00070B E0                MOVX    A,@DPTR
+00070C B40603            CJNE    A,#06H,?C0189?SYS
+ 1136: 			{
+ 1137: 				deviceLongSleep();
+00070F 021754            LJMP    deviceLongSleep
+ 1138: 			}
+000712         ?C0189?SYS:
+ 1139: 			else 
+ 1140: 			{
+ 1141: 				leReconnStart();
+000712 121937            LCALL   leReconnStart
+ 1142: 			}
+ 1143: 			break;
+ 1144: 		}
+ 1145: 			
+ 1146: }
+000715         ?C0191?SYS:
+000715 22                RET     
+----- FUNCTION _deviceEvtCB (END) -------
+
+
+----- FUNCTION YC_SetWake (BEGIN) -----
+ FILE: 'sys.c'
+ 1362: void YC_SetWake(void)
+ 1363: {
+ 1364: 	(*(volatile unsigned char xdata *)(mem_gpio_wakeup_low+0)) = 0;
+ 1365: 	(*(volatile unsigned char xdata *)(mem_gpio_wakeup_low+1)) = 0;
+000716 9000A0            MOV     DPTR,#0A0H
+000719 E4                CLR     A
+00071A F0                MOVX    @DPTR,A
+ 1366: 	(*(volatile unsigned char xdata *)(mem_gpio_wakeup_low+2)) = 0;
+00071B A3                INC     DPTR
+00071C F0                MOVX    @DPTR,A
+ 1367: 	(*(volatile unsigned char xdata *)(mem_gpio_wakeup_low+3)) = 0;
+00071D A3                INC     DPTR
+00071E F0                MOVX    @DPTR,A
+ 1368: 	Sensor_spi_disable();
+00071F A3                INC     DPTR
+000720 F0                MOVX    @DPTR,A
+ 1369: 	GPIO_SetOutput(Timer_div_io, 0);
+000721 120B46            LCALL   Sensor_spi_disable
+ 1370: 	GPIO_SetInput(KS_BL_GPIO, 0);
+000724 C207              CLR     ?_GPIO_SetOutput?BIT
+000726 7F07              MOV     R7,#07H
+000728 12107F            LCALL   _GPIO_SetOutput
+ 1371: 	GPIO_SetInput(KS_BR_GPIO, 0);
+00072B C206              CLR     ?_GPIO_SetInput?BIT
+00072D 7F04              MOV     R7,#04H
+00072F 71A1              ACALL   _GPIO_SetInput
+ 1372: 	GPIO_SetInput(KS_BM_GPIO, 0);
+000731 C206              CLR     ?_GPIO_SetInput?BIT
+000733 7F1B              MOV     R7,#01BH
+000735 71A1              ACALL   _GPIO_SetInput
+ 1373: 	GPIO_SetInput(KS_BK_GPIO, 0);
+000737 C206              CLR     ?_GPIO_SetInput?BIT
+000739 7F17              MOV     R7,#017H
+00073B 71A1              ACALL   _GPIO_SetInput
+ 1374: 	GPIO_SetInput(KS_FW_GPIO, 0);
+00073D C206              CLR     ?_GPIO_SetInput?BIT
+00073F 7F17              MOV     R7,#017H
+000741 71A1              ACALL   _GPIO_SetInput
+ 1375: 	GPIO_SetInput(CPI_GPIO, 0);
+000743 C206              CLR     ?_GPIO_SetInput?BIT
+000745 7F04              MOV     R7,#04H
+000747 71A1              ACALL   _GPIO_SetInput
+ 1376: 	GPIO_SetWakeupByCurrentState(WHEEL_DATA_A_GPIO);
+000749 C206              CLR     ?_GPIO_SetInput?BIT
+00074B 7F06              MOV     R7,#06H
+00074D 71A1              ACALL   _GPIO_SetInput
+ 1377: 	GPIO_SetWakeupByCurrentState(WHEEL_DATA_B_GPIO);
+00074F 7F02              MOV     R7,#02H
+000751 F16D              ACALL   _GPIO_SetWakeupByCurrentState
+ 1378: 	GPIO_SetWakeupByCurrentState(KS_BL_GPIO);
+000753 7F03              MOV     R7,#03H
+000755 F16D              ACALL   _GPIO_SetWakeupByCurrentState
+ 1379: 	GPIO_SetWakeupByCurrentState(KS_BM_GPIO);
+000757 7F04              MOV     R7,#04H
+000759 F16D              ACALL   _GPIO_SetWakeupByCurrentState
+ 1380: 	GPIO_SetWakeupByCurrentState(KS_BR_GPIO);
+00075B 7F17              MOV     R7,#017H
+00075D F16D              ACALL   _GPIO_SetWakeupByCurrentState
+ 1381: 	GPIO_SetWakeupByCurrentState(KS_BK_GPIO);
+00075F 7F1B              MOV     R7,#01BH
+000761 F16D              ACALL   _GPIO_SetWakeupByCurrentState
+ 1382: 	GPIO_SetWakeupByCurrentState(KS_FW_GPIO);
+000763 7F17              MOV     R7,#017H
+000765 F16D              ACALL   _GPIO_SetWakeupByCurrentState
+ 1383: 	GPIO_SetWakeupByCurrentState(CPI_GPIO);
+000767 7F04              MOV     R7,#04H
+000769 F16D              ACALL   _GPIO_SetWakeupByCurrentState
+ 1384: }
+00076B 7F06              MOV     R7,#06H
+;----                  JMP     _GPIO_SetWakeupByCurrentState
+----- FUNCTION YC_SetWake (END) -------
+
+
+----- FUNCTION _GPIO_SetWakeupByCurrentState (BEGIN) -----
+ FILE: 'gpio.c'
+   98: void GPIO_SetWakeupByCurrentState(u8_t gpio_num)
+   99: {
+00076D 901C2C            MOV     DPTR,#gpio_num
+000770 EF                MOV     A,R7
+000771 F0                MOVX    @DPTR,A
+  100: 	bool st = GPIO_GetInputStatus(gpio_num);
+  101: 	GPIO_SetWakeup(gpio_num, ~st);
+000772 120D22            LCALL   _GPIO_GetInputStatus
+000775 9209              MOV     st,C
+  102: }
+000777 901C2C            MOV     DPTR,#gpio_num
+00077A E0                MOVX    A,@DPTR
+00077B FF                MOV     R7,A
+00077C A209              MOV     C,st
+00077E B3                CPL     C
+00077F 9208              MOV     ?_GPIO_SetWakeup?BIT,C
+;----                  JMP     _GPIO_SetWakeup
+----- FUNCTION _GPIO_SetWakeupByCurrentState (END) -------
+
+
+----- FUNCTION _GPIO_SetWakeup (BEGIN) -----
+ FILE: 'gpio.c'
+   74: void GPIO_SetWakeup(u8_t gpio_num, bit  st)
+   75: {
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+   76: 	u8_t queue, group;
+   77: 	queue = (gpio_num & 7);
+000781 EF                MOV     A,R7
+000782 5407              ANL     A,#07H
+000784 FE                MOV     R6,A
+;---- Variable 'queue' assigned to Register 'R6' ----
+   78: 	group = (gpio_num>>3 & 3);
+000785 EF                MOV     A,R7
+000786 13                RRC     A
+000787 13                RRC     A
+000788 13                RRC     A
+000789 5403              ANL     A,#03H
+00078B FF                MOV     R7,A
+;---- Variable 'group' assigned to Register 'R7' ----
+   79: 	if (st){
+00078C 300843            JNB     st,?C0012?GPIO
+   80: 		*(YC_GPIOWakeupL+group) &= ~(1<<queue);
+00078F 24A0              ADD     A,#LOW YC_GPIOWakeupL
+000791 F582              MOV     DPL,A
+000793 E4                CLR     A
+000794 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+000796 F583              MOV     DPH,A
+000798 C083              PUSH    DPH
+00079A C082              PUSH    DPL
+00079C E0                MOVX    A,@DPTR
+00079D FD                MOV     R5,A
+00079E 7401              MOV     A,#01H
+0007A0 A806              MOV     R0,AR6
+0007A2 08                INC     R0
+0007A3 8002              SJMP    ?C0025?GPIO
+0007A5         ?C0024?GPIO:
+0007A5 C3                CLR     C
+0007A6 33                RLC     A
+0007A7         ?C0025?GPIO:
+0007A7 D8FC              DJNZ    R0,?C0024?GPIO
+0007A9 F4                CPL     A
+0007AA 5D                ANL     A,R5
+0007AB D082              POP     DPL
+0007AD D083              POP     DPH
+0007AF F0                MOVX    @DPTR,A
+   81: 		*(YC_GPIOWakeupH+group) |= 1<<queue;	//high wakeup
+0007B0 74A4              MOV     A,#LOW YC_GPIOWakeupH
+0007B2 2F                ADD     A,R7
+0007B3 F582              MOV     DPL,A
+0007B5 E4                CLR     A
+0007B6 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+0007B8 F583              MOV     DPH,A
+0007BA C083              PUSH    DPH
+0007BC C082              PUSH    DPL
+0007BE E0                MOVX    A,@DPTR
+0007BF FF                MOV     R7,A
+0007C0 7401              MOV     A,#01H
+0007C2 A806              MOV     R0,AR6
+0007C4 08                INC     R0
+0007C5 8002              SJMP    ?C0027?GPIO
+0007C7         ?C0026?GPIO:
+0007C7 C3                CLR     C
+0007C8 33                RLC     A
+0007C9         ?C0027?GPIO:
+0007C9 D8FC              DJNZ    R0,?C0026?GPIO
+0007CB 4F                ORL     A,R7
+0007CC D082              POP     DPL
+0007CE D083              POP     DPH
+0007D0 F0                MOVX    @DPTR,A
+   82: 	}
+0007D1 22                RET     
+0007D2         ?C0012?GPIO:
+   83: 	else{
+   84: 		*(YC_GPIOWakeupL+group) |= 1<<queue;	//low wakeup
+0007D2 74A0              MOV     A,#LOW YC_GPIOWakeupL
+0007D4 2F                ADD     A,R7
+0007D5 F582              MOV     DPL,A
+0007D7 E4                CLR     A
+0007D8 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+0007DA F583              MOV     DPH,A
+0007DC C083              PUSH    DPH
+0007DE C082              PUSH    DPL
+0007E0 E0                MOVX    A,@DPTR
+0007E1 FD                MOV     R5,A
+0007E2 7401              MOV     A,#01H
+0007E4 A806              MOV     R0,AR6
+0007E6 08                INC     R0
+0007E7 8002              SJMP    ?C0029?GPIO
+0007E9         ?C0028?GPIO:
+0007E9 C3                CLR     C
+0007EA 33                RLC     A
+0007EB         ?C0029?GPIO:
+0007EB D8FC              DJNZ    R0,?C0028?GPIO
+0007ED FC                MOV     R4,A
+0007EE 4D                ORL     A,R5
+0007EF D082              POP     DPL
+0007F1 D083              POP     DPH
+0007F3 F0                MOVX    @DPTR,A
+   85: 		*(YC_GPIOWakeupH+group) &= ~(1<<queue);
+0007F4 74A4              MOV     A,#LOW YC_GPIOWakeupH
+0007F6 2F                ADD     A,R7
+0007F7 F582              MOV     DPL,A
+0007F9 E4                CLR     A
+0007FA 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+0007FC F583              MOV     DPH,A
+0007FE E0                MOVX    A,@DPTR
+0007FF FF                MOV     R7,A
+000800 EC                MOV     A,R4
+000801 F4                CPL     A
+000802 FE                MOV     R6,A
+000803 EF                MOV     A,R7
+000804 5E                ANL     A,R6
+000805 F0                MOVX    @DPTR,A
+   86: 	}
+   87: }
+000806 22                RET     
+----- FUNCTION _GPIO_SetWakeup (END) -------
+
+
+----- FUNCTION sensorClearData (BEGIN) -----
+ FILE: 'sys.c'
+  209: void sensorClearData()
+  210: {
+  211: 	sensorPowerOn();
+  212: 	SPI_TwReset();
+000807 91B9              ACALL   sensorPowerOn
+  213: 	while(!GPIO_GetInputStatus(SENSOR_MOTION_GPIO)){
+000809 91CF              ACALL   SPI_TwReset
+00080B         ?C0001?SYS:
+  214: 		SPI_ReadSensor(SENSOR_MOTION);
+00080B 7F18              MOV     R7,#018H
+00080D B122              ACALL   _GPIO_GetInputStatus
+00080F 400E              JC      ?C0003?SYS
+  215: 		SPI_ReadSensor(SENSOR_X_ADDR);
+000811 7F02              MOV     R7,#02H
+000813 1120              ACALL   _SPI_ReadSensor
+  216: 		SPI_ReadSensor(SENSOR_Y_ADDR);
+000815 7F03              MOV     R7,#03H
+000817 1120              ACALL   _SPI_ReadSensor
+  217: 	}
+000819 7F04              MOV     R7,#04H
+00081B 1120              ACALL   _SPI_ReadSensor
+  218: }
+00081D 80EC              SJMP    ?C0001?SYS
+  219: 
+00081F         ?C0003?SYS:
+00081F 22                RET     
+----- FUNCTION sensorClearData (END) -------
+
+
+----- FUNCTION _SPI_ReadSensor (BEGIN) -----
+ FILE: 'spi.c'
+   26: u8_t SPI_ReadSensor(u8_t reg_num)
+   27: {
+;---- Variable 'reg_num' assigned to Register 'R7' ----
+   28: 	spi_tx_buff[0] = reg_num;
+   29: 	REG_SPID_TXLEN = ESWAP(READ_SENSOR_TXLEN);
+000820 900218            MOV     DPTR,#spi_tx_buff
+000823 EF                MOV     A,R7
+000824 F0                MOVX    @DPTR,A
+   30: 	REG_SPID_RXLEN = ESWAP(READ_SENSOR_TXLEN);
+000825 908088            MOV     DPTR,#08088H
+000828 7401              MOV     A,#01H
+00082A F0                MOVX    @DPTR,A
+00082B A3                INC     DPTR
+00082C E4                CLR     A
+00082D F0                MOVX    @DPTR,A
+   31: 	REG_MISC_CTRL = DMA_SPI_START;
+00082E 90808E            MOV     DPTR,#0808EH
+000831 04                INC     A
+000832 F0                MOVX    @DPTR,A
+000833 A3                INC     DPTR
+000834 E4                CLR     A
+000835 F0                MOVX    @DPTR,A
+   32: 	do {
+000836 908006            MOV     DPTR,#08006H
+000839 7402              MOV     A,#02H
+00083B F0                MOVX    @DPTR,A
+   33: 	
+   34: 	}
+00083C         ?C0002?SPI:
+   35: 	while(!(REG_DMA_STATUS & 0x08));
+00083C 90812C            MOV     DPTR,#0812CH
+00083F E0                MOVX    A,@DPTR
+000840 30E3F9            JNB     ACC.3,?C0002?SPI
+   36: 	return  *spi_rx_buff;
+000843 90021D            MOV     DPTR,#spi_rx_buff
+000846 E0                MOVX    A,@DPTR
+000847 FF                MOV     R7,A
+   37: }
+000848 22                RET     
+----- FUNCTION _SPI_ReadSensor (END) -------
+
+
+----- FUNCTION SPI_ResetSensor (BEGIN) -----
+ FILE: 'sensor.c'
+   90: u8_t SPI_ResetSensor()
+   91: {
+   92: 	u8_t sensorConfig=0;
+   93: 	u8_t Sensor_type = 0;
+000849 E4                CLR     A
+00084A 901C27            MOV     DPTR,#sensorConfig
+00084D F0                MOVX    @DPTR,A
+   94: 	while (1) 
+00084E A3                INC     DPTR
+00084F F0                MOVX    @DPTR,A
+000850         ?C0007?SENSOR:
+   95: 	{
+   96: 		if (SPI_ReadSensor(0) == FCT3065_ID)// FCT3065_ID PAW3205DB_ID
+   97: 		{
+000850 E4                CLR     A
+000851 FF                MOV     R7,A
+000852 1120              ACALL   _SPI_ReadSensor
+000854 BF3118            CJNE    R7,#031H,?C0009?SENSOR
+   98: 			sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+   99: 			SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+000857 7F06              MOV     R7,#06H
+000859 1120              ACALL   _SPI_ReadSensor
+00085B EF                MOV     A,R7
+00085C 4480              ORL     A,#080H
+00085E FF                MOV     R7,A
+00085F 901C27            MOV     DPTR,#sensorConfig
+000862 F0                MOVX    @DPTR,A
+  100: 			Sensor_type= FCT3065_ID;
+000863 7D06              MOV     R5,#06H
+000865 5164              ACALL   _SPI_WriteSensor
+  101: 			break;
+000867 901C28            MOV     DPTR,#Sensor_type
+00086A 7431              MOV     A,#031H
+00086C F0                MOVX    @DPTR,A
+  102: 		}
+00086D 2128              AJMP    ?C0008?SENSOR
+  103: 		else if((SPI_ReadSensor(1) == MA8650_ID))
+00086F         ?C0009?SENSOR:
+  104: 		{
+00086F 7F01              MOV     R7,#01H
+000871 1120              ACALL   _SPI_ReadSensor
+000873 BF5A18            CJNE    R7,#05AH,?C0011?SENSOR
+  105: 			Sensor_type= MA8650_ID;
+  106: 			sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+000876 901C28            MOV     DPTR,#Sensor_type
+000879 745A              MOV     A,#05AH
+00087B F0                MOVX    @DPTR,A
+  107: 			SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+00087C 7F06              MOV     R7,#06H
+00087E 1120              ACALL   _SPI_ReadSensor
+000880 EF                MOV     A,R7
+000881 4480              ORL     A,#080H
+000883 FF                MOV     R7,A
+000884 901C27            MOV     DPTR,#sensorConfig
+000887 F0                MOVX    @DPTR,A
+  108: 			break;
+000888 7D06              MOV     R5,#06H
+00088A 5164              ACALL   _SPI_WriteSensor
+  109: 		}
+00088C 2128              AJMP    ?C0008?SENSOR
+  110: 		else if (SPI_ReadSensor(0) == PIXART_ID)// FCT3065_ID PAW3205DB_ID
+00088E         ?C0011?SENSOR:
+  111: 		{
+00088E E4                CLR     A
+00088F FF                MOV     R7,A
+000890 1120              ACALL   _SPI_ReadSensor
+000892 EF                MOV     A,R7
+000893 6430              XRL     A,#030H
+000895 6002              JZ      $ + 4H
+000897 2124              AJMP    ?C0010?SENSOR
+  112: 			if(SPI_ReadSensor(1) == X816_ID)
+  113: 			{
+000899 7F01              MOV     R7,#01H
+00089B 1120              ACALL   _SPI_ReadSensor
+00089D BF5408            CJNE    R7,#054H,?C0014?SENSOR
+  114: 				Sensor_type= FCT3065_ID;
+  115: 				break;
+0008A0 901C28            MOV     DPTR,#Sensor_type
+0008A3 7431              MOV     A,#031H
+0008A5 F0                MOVX    @DPTR,A
+  116: 			}
+0008A6 2128              AJMP    ?C0008?SENSOR
+  117: #if MOUSE_3205_ENABLE
+0008A8         ?C0014?SENSOR:
+  118: 			if ((SPI_ReadSensor(1) & 0xf0) == PAW3205_ID)// FCT3065_ID PAW3205DB_ID
+0008A8 7F01              MOV     R7,#01H
+0008AA 1120              ACALL   _SPI_ReadSensor
+0008AC EF                MOV     A,R7
+0008AD 54F0              ANL     A,#0F0H
+0008AF 64D0              XRL     A,#0D0H
+0008B1 7028              JNZ     ?C0015?SENSOR
+  119: 			{
+  120: 				if (SPI_ReadSensor(0x1e) & 0x01)
+0008B3 7F1E              MOV     R7,#01EH
+0008B5 1120              ACALL   _SPI_ReadSensor
+0008B7 EF                MOV     A,R7
+0008B8 30E008            JNB     ACC.0,?C0016?SENSOR
+  121: 					Sensor_type= PAW3204UL_ID;
+0008BB 901C28            MOV     DPTR,#Sensor_type
+0008BE 74D1              MOV     A,#0D1H
+0008C0 F0                MOVX    @DPTR,A
+0008C1 8006              SJMP    ?C0017?SENSOR
+0008C3         ?C0016?SENSOR:
+  122: 				else 
+  123: 					Sensor_type= PAW3205_ID;
+0008C3 901C28            MOV     DPTR,#Sensor_type
+0008C6 74D0              MOV     A,#0D0H
+0008C8 F0                MOVX    @DPTR,A
+0008C9         ?C0017?SENSOR:
+  124: 				sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+0008C9 7F06              MOV     R7,#06H
+0008CB 1120              ACALL   _SPI_ReadSensor
+0008CD EF                MOV     A,R7
+0008CE 4480              ORL     A,#080H
+0008D0 FF                MOV     R7,A
+0008D1 901C27            MOV     DPTR,#sensorConfig
+0008D4 F0                MOVX    @DPTR,A
+  125: 				SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+0008D5 7D06              MOV     R5,#06H
+0008D7 5164              ACALL   _SPI_WriteSensor
+  126: 				break;
+0008D9 804D              SJMP    ?C0008?SENSOR
+  127: 			}
+0008DB         ?C0015?SENSOR:
+  128: #endif
+  129: 
+  130: #if MOUSE_3204_ENABLE
+  131: 			if(((SPI_ReadSensor(1) & 0xf0) == PAW3204DB_ID))
+0008DB 7F01              MOV     R7,#01H
+0008DD 1120              ACALL   _SPI_ReadSensor
+0008DF EF                MOV     A,R7
+0008E0 54F0              ANL     A,#0F0H
+0008E2 FF                MOV     R7,A
+0008E3 BF5018            CJNE    R7,#050H,?C0018?SENSOR
+  132: 			{
+  133: 				Sensor_type= PAW3204DB_ID;
+0008E6 901C28            MOV     DPTR,#Sensor_type
+0008E9 7450              MOV     A,#050H
+0008EB F0                MOVX    @DPTR,A
+  134: 				sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+0008EC 7F06              MOV     R7,#06H
+0008EE 1120              ACALL   _SPI_ReadSensor
+0008F0 EF                MOV     A,R7
+0008F1 4480              ORL     A,#080H
+0008F3 FF                MOV     R7,A
+0008F4 901C27            MOV     DPTR,#sensorConfig
+0008F7 F0                MOVX    @DPTR,A
+  135: 				SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+0008F8 7D06              MOV     R5,#06H
+0008FA 5164              ACALL   _SPI_WriteSensor
+  136: 				break;
+0008FC 802A              SJMP    ?C0008?SENSOR
+  137: 			}
+0008FE         ?C0018?SENSOR:
+  138: #endif
+  139: 			
+  140: #if MOUSE_3212_ENABLE
+  141: 			if (SPI_ReadSensor(1) == PAW3212_ID)// FCT3065_ID PAW3205DB_ID
+0008FE 7F01              MOV     R7,#01H
+000900 1120              ACALL   _SPI_ReadSensor
+000902 BF021F            CJNE    R7,#02H,?C0010?SENSOR
+  142: 			{
+  143: 				sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+000905 7F06              MOV     R7,#06H
+000907 1120              ACALL   _SPI_ReadSensor
+000909 EF                MOV     A,R7
+00090A 4480              ORL     A,#080H
+00090C FF                MOV     R7,A
+00090D 901C27            MOV     DPTR,#sensorConfig
+000910 F0                MOVX    @DPTR,A
+  144: 				SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+000911 7D06              MOV     R5,#06H
+000913 5164              ACALL   _SPI_WriteSensor
+  145: 				Sensor_type= PAW3212_ID;
+000915 901C28            MOV     DPTR,#Sensor_type
+000918 7402              MOV     A,#02H
+00091A F0                MOVX    @DPTR,A
+  146: 				if (SPI_ReadSensor(1) == PAW3212_ID)
+00091B 7F01              MOV     R7,#01H
+00091D 1120              ACALL   _SPI_ReadSensor
+00091F EF                MOV     A,R7
+000920 6402              XRL     A,#02H
+000922 6004              JZ      ?C0008?SENSOR
+  147: 					break;
+000924         ?C0020?SENSOR:
+  148: 			}
+  149: #endif
+  150: 		}
+000924         ?C0010?SENSOR:
+  151: 		SPI_TwReset();
+000924 91CF              ACALL   SPI_TwReset
+  152: 	}
+000926 0150              AJMP    ?C0007?SENSOR
+000928         ?C0008?SENSOR:
+  153: 
+  154: #if MOUSE_3205_ENABLE
+  155: 	if (Sensor_type== PAW3205_ID)
+000928 901C28            MOV     DPTR,#Sensor_type
+00092B E0                MOVX    A,@DPTR
+00092C 64D0              XRL     A,#0D0H
+00092E 6002              JZ      $ + 4H
+000930 21F8              AJMP    ?C0021?SENSOR
+  156: 	{
+  157: 		SPI_WriteSensor(0x5A,0x09);
+000932 7D09              MOV     R5,#09H
+000934 7F5A              MOV     R7,#05AH
+000936 5164              ACALL   _SPI_WriteSensor
+  158: 		SPI_WriteSensor(0x0A,0x0D);
+000938 7D0D              MOV     R5,#0DH
+00093A 7F0A              MOV     R7,#0AH
+00093C 5164              ACALL   _SPI_WriteSensor
+  159: 		SPI_WriteSensor(0x35,0x1B);
+00093E 7D1B              MOV     R5,#01BH
+000940 7F35              MOV     R7,#035H
+000942 5164              ACALL   _SPI_WriteSensor
+  160: 		SPI_WriteSensor(0xDB,0x1D);
+000944 7D1D              MOV     R5,#01DH
+000946 7FDB              MOV     R7,#0DBH
+000948 5164              ACALL   _SPI_WriteSensor
+  161: 		SPI_WriteSensor(0xB4,0x28);
+00094A 7D28              MOV     R5,#028H
+00094C 7FB4              MOV     R7,#0B4H
+00094E 5164              ACALL   _SPI_WriteSensor
+  162: 		SPI_WriteSensor(0x46,0x29);
+000950 7D29              MOV     R5,#029H
+000952 7F46              MOV     R7,#046H
+000954 5164              ACALL   _SPI_WriteSensor
+  163: 		SPI_WriteSensor(0x96,0x2A);
+000956 7D2A              MOV     R5,#02AH
+000958 7F96              MOV     R7,#096H
+00095A 5164              ACALL   _SPI_WriteSensor
+  164: 		SPI_WriteSensor(0x8C,0x2B);
+00095C 7D2B              MOV     R5,#02BH
+00095E 7F8C              MOV     R7,#08CH
+000960 5164              ACALL   _SPI_WriteSensor
+  165: 		SPI_WriteSensor(0x6E,0x2C);
+000962 7D2C              MOV     R5,#02CH
+000964 7F6E              MOV     R7,#06EH
+000966 5164              ACALL   _SPI_WriteSensor
+  166: 		SPI_WriteSensor(0x64,0x2D);
+000968 7D2D              MOV     R5,#02DH
+00096A 7F64              MOV     R7,#064H
+00096C 5164              ACALL   _SPI_WriteSensor
+  167: 		SPI_WriteSensor(0x5F,0x38);
+00096E 7D38              MOV     R5,#038H
+000970 7F5F              MOV     R7,#05FH
+000972 5164              ACALL   _SPI_WriteSensor
+  168: 		SPI_WriteSensor(0x0F,0x39);
+000974 7D39              MOV     R5,#039H
+000976 7F0F              MOV     R7,#0FH
+000978 5164              ACALL   _SPI_WriteSensor
+  169: 		SPI_WriteSensor(0x32,0x3A);
+00097A 7D3A              MOV     R5,#03AH
+00097C 7F32              MOV     R7,#032H
+00097E 5164              ACALL   _SPI_WriteSensor
+  170: 		SPI_WriteSensor(0x47,0x3B);
+000980 7D3B              MOV     R5,#03BH
+000982 7F47              MOV     R7,#047H
+000984 5164              ACALL   _SPI_WriteSensor
+  171: 		SPI_WriteSensor(0x10,0x42);
+000986 7D42              MOV     R5,#042H
+000988 7F10              MOV     R7,#010H
+00098A 5164              ACALL   _SPI_WriteSensor
+  172: 		SPI_WriteSensor(0x09,0x43);
+00098C 7D43              MOV     R5,#043H
+00098E 7F09              MOV     R7,#09H
+000990 5164              ACALL   _SPI_WriteSensor
+  173: 		SPI_WriteSensor(0x2E,0x54);
+000992 7D54              MOV     R5,#054H
+000994 7F2E              MOV     R7,#02EH
+000996 5164              ACALL   _SPI_WriteSensor
+  174: 		SPI_WriteSensor(0xF2,0x55);
+000998 7D55              MOV     R5,#055H
+00099A 7FF2              MOV     R7,#0F2H
+00099C 5164              ACALL   _SPI_WriteSensor
+  175: 		SPI_WriteSensor(0xF4,0x61);
+00099E 7D61              MOV     R5,#061H
+0009A0 7FF4              MOV     R7,#0F4H
+0009A2 5164              ACALL   _SPI_WriteSensor
+  176: 		SPI_WriteSensor(0x70,0x63);
+0009A4 7D63              MOV     R5,#063H
+0009A6 7F70              MOV     R7,#070H
+0009A8 5164              ACALL   _SPI_WriteSensor
+  177: 		SPI_WriteSensor(0x52,0x75);
+0009AA 7D75              MOV     R5,#075H
+0009AC 7F52              MOV     R7,#052H
+0009AE 5164              ACALL   _SPI_WriteSensor
+  178: 		SPI_WriteSensor(0x41,0x76);
+0009B0 7D76              MOV     R5,#076H
+0009B2 7F41              MOV     R7,#041H
+0009B4 5164              ACALL   _SPI_WriteSensor
+  179: 		SPI_WriteSensor(0xED,0x77);
+0009B6 7D77              MOV     R5,#077H
+0009B8 7FED              MOV     R7,#0EDH
+0009BA 5164              ACALL   _SPI_WriteSensor
+  180: 		SPI_WriteSensor(0x23,0x78);
+0009BC 7D78              MOV     R5,#078H
+0009BE 7F23              MOV     R7,#023H
+0009C0 5164              ACALL   _SPI_WriteSensor
+  181: 		SPI_WriteSensor(0x46,0x79);
+0009C2 7D79              MOV     R5,#079H
+0009C4 7F46              MOV     R7,#046H
+0009C6 5164              ACALL   _SPI_WriteSensor
+  182: 		SPI_WriteSensor(0xE5,0x7A);
+0009C8 7D7A              MOV     R5,#07AH
+0009CA 7FE5              MOV     R7,#0E5H
+0009CC 5164              ACALL   _SPI_WriteSensor
+  183: 		SPI_WriteSensor(0x48,0x7C);
+0009CE 7D7C              MOV     R5,#07CH
+0009D0 7F48              MOV     R7,#048H
+0009D2 5164              ACALL   _SPI_WriteSensor
+  184: 		SPI_WriteSensor(0x80,0x7D);
+0009D4 7D7D              MOV     R5,#07DH
+0009D6 7F80              MOV     R7,#080H
+0009D8 5164              ACALL   _SPI_WriteSensor
+  185: 		SPI_WriteSensor(0x77,0x7E);
+0009DA 7D7E              MOV     R5,#07EH
+0009DC 7F77              MOV     R7,#077H
+0009DE 5164              ACALL   _SPI_WriteSensor
+  186: 		SPI_WriteSensor(0x01,0x7F);
+0009E0 7D7F              MOV     R5,#07FH
+0009E2 7F01              MOV     R7,#01H
+0009E4 5164              ACALL   _SPI_WriteSensor
+  187: 		SPI_WriteSensor(0x00,0x0B);
+0009E6 7D0B              MOV     R5,#0BH
+0009E8 E4                CLR     A
+0009E9 FF                MOV     R7,A
+0009EA 5164              ACALL   _SPI_WriteSensor
+  188: 		SPI_WriteSensor(0x00,0x7F);
+0009EC 7D7F              MOV     R5,#07FH
+0009EE E4                CLR     A
+0009EF FF                MOV     R7,A
+0009F0 5164              ACALL   _SPI_WriteSensor
+  189: 		SPI_WriteSensor(0x00,0x09);
+0009F2 7D09              MOV     R5,#09H
+0009F4 E4                CLR     A
+0009F5 FF                MOV     R7,A
+0009F6 5164              ACALL   _SPI_WriteSensor
+  190: 	}
+0009F8         ?C0021?SENSOR:
+  191: #endif
+  192: 
+  193: #if MOUSE_3212_ENABLE
+  194: 	if(Sensor_type== PAW3212_ID) 
+0009F8 901C28            MOV     DPTR,#Sensor_type
+0009FB E0                MOVX    A,@DPTR
+0009FC B40218            CJNE    A,#02H,?C0022?SENSOR
+  195: 	{
+  196: 		SPI_WriteSensor(0x5a, 0x09);
+0009FF 7D09              MOV     R5,#09H
+000A01 7F5A              MOV     R7,#05AH
+000A03 5164              ACALL   _SPI_WriteSensor
+  197: 		SPI_WriteSensor(0x34, 0x26);
+000A05 7D26              MOV     R5,#026H
+000A07 7F34              MOV     R7,#034H
+000A09 5164              ACALL   _SPI_WriteSensor
+  198: 		SPI_WriteSensor(0x14, 0x19);	
+000A0B 7D19              MOV     R5,#019H
+000A0D 7F14              MOV     R7,#014H
+000A0F 5164              ACALL   _SPI_WriteSensor
+  199: 		SPI_WriteSensor(0x00, 0x09);
+000A11 7D09              MOV     R5,#09H
+000A13 E4                CLR     A
+000A14 FF                MOV     R7,A
+000A15 5164              ACALL   _SPI_WriteSensor
+  200: 	}
+000A17         ?C0022?SENSOR:
+  201: #endif
+  202: 
+  203: #if MOUSE_3204_ENABLE
+  204: 	if(Sensor_type== PAW3204DB_ID)
+000A17 901C28            MOV     DPTR,#Sensor_type
+000A1A E0                MOVX    A,@DPTR
+000A1B 6450              XRL     A,#050H
+000A1D 703F              JNZ     ?C0023?SENSOR
+  205: 	{
+  206: 		SPI_WriteSensor(0x5a, 0x09);
+000A1F 7D09              MOV     R5,#09H
+000A21 7F5A              MOV     R7,#05AH
+000A23 5164              ACALL   _SPI_WriteSensor
+  207: 		SPI_WriteSensor(0x9a, 0x5b);
+000A25 7D5B              MOV     R5,#05BH
+000A27 7F9A              MOV     R7,#09AH
+000A29 5164              ACALL   _SPI_WriteSensor
+000A2B         ?C0024?SENSOR:
+  208: 		while (SPI_ReadSensor(0x0d) != 0x12)
+000A2B 7F0D              MOV     R7,#0DH
+000A2D 1120              ACALL   _SPI_ReadSensor
+000A2F EF                MOV     A,R7
+000A30 6412              XRL     A,#012H
+000A32 6008              JZ      ?C0026?SENSOR
+  209: 			SPI_WriteSensor(0x12, 0x0d);
+000A34 7D0D              MOV     R5,#0DH
+000A36 7F12              MOV     R7,#012H
+000A38 5164              ACALL   _SPI_WriteSensor
+000A3A 80EF              SJMP    ?C0024?SENSOR
+000A3C         ?C0026?SENSOR:
+  210: 		while (SPI_ReadSensor(0x0e) != 0xc5)
+000A3C 7F0E              MOV     R7,#0EH
+000A3E 1120              ACALL   _SPI_ReadSensor
+000A40 EF                MOV     A,R7
+000A41 64C5              XRL     A,#0C5H
+000A43 6008              JZ      ?C0028?SENSOR
+  211: 			SPI_WriteSensor(0xc5, 0x0e);
+000A45 7D0E              MOV     R5,#0EH
+000A47 7FC5              MOV     R7,#0C5H
+000A49 5164              ACALL   _SPI_WriteSensor
+000A4B 80EF              SJMP    ?C0026?SENSOR
+000A4D         ?C0028?SENSOR:
+  212: 		while (SPI_ReadSensor(0x53) != 0x48)
+000A4D 7F53              MOV     R7,#053H
+000A4F 1120              ACALL   _SPI_ReadSensor
+000A51 EF                MOV     A,R7
+000A52 6448              XRL     A,#048H
+000A54 6008              JZ      ?C0023?SENSOR
+  213: 			SPI_WriteSensor(0x48, 0x53);
+000A56 7D53              MOV     R5,#053H
+000A58 7F48              MOV     R7,#048H
+000A5A 5164              ACALL   _SPI_WriteSensor
+000A5C 80EF              SJMP    ?C0028?SENSOR
+  214: 	}
+000A5E         ?C0023?SENSOR:
+  215: #endif
+  216: 
+  217: 	return Sensor_type;
+000A5E 901C28            MOV     DPTR,#Sensor_type
+000A61 E0                MOVX    A,@DPTR
+000A62 FF                MOV     R7,A
+  218: }
+000A63 22                RET     
+----- FUNCTION SPI_ResetSensor (END) -------
+
+
+----- FUNCTION _SPI_WriteSensor (BEGIN) -----
+ FILE: 'spi.c'
+   39: u8_t SPI_WriteSensor(u8_t value, u8_t reg_num)
+   40: {
+;---- Variable 'reg_num' assigned to Register 'R5' ----
+;---- Variable 'value' assigned to Register 'R4' ----
+000A64 AC07              MOV     R4,AR7
+   41: 	spi_tx_buff[0] = reg_num|0x80;
+   42: 	spi_tx_buff[1] = value;
+000A66 ED                MOV     A,R5
+000A67 4480              ORL     A,#080H
+000A69 900218            MOV     DPTR,#spi_tx_buff
+000A6C F0                MOVX    @DPTR,A
+   43: 
+000A6D A3                INC     DPTR
+000A6E EF                MOV     A,R7
+000A6F F0                MOVX    @DPTR,A
+   44: 	REG_SPID_TXLEN = ESWAP(WRITE_SENSOR_TXLEN);
+000A70 908088            MOV     DPTR,#08088H
+000A73 7402              MOV     A,#02H
+000A75 F0                MOVX    @DPTR,A
+000A76 A3                INC     DPTR
+000A77 E4                CLR     A
+000A78 F0                MOVX    @DPTR,A
+   45: 	REG_SPID_RXLEN = ESWAP(WRITE_SENSOR_RXLEN);
+000A79 90808E            MOV     DPTR,#0808EH
+000A7C F0                MOVX    @DPTR,A
+000A7D A3                INC     DPTR
+000A7E F0                MOVX    @DPTR,A
+   46: 
+   47: 	REG_MISC_CTRL = DMA_SPI_START;
+000A7F 908006            MOV     DPTR,#08006H
+000A82 7402              MOV     A,#02H
+000A84 F0                MOVX    @DPTR,A
+   48: 	do {
+   49: 		
+   50: 	}
+000A85         ?C0006?SPI:
+   51: 	while(!(REG_DMA_STATUS & 0x08));
+000A85 90812C            MOV     DPTR,#0812CH
+000A88 E0                MOVX    A,@DPTR
+000A89 30E3F9            JNB     ACC.3,?C0006?SPI
+   52: 	return 0;
+000A8C 7F00              MOV     R7,#00H
+   53: }
+000A8E 22                RET     
+----- FUNCTION _SPI_WriteSensor (END) -------
+
+
+----- FUNCTION dpiWriteInSensor (BEGIN) -----
+ FILE: 'sys.c'
+  220: void dpiWriteInSensor()
+  221: {
+  222: 	SPI_TwReset();
+  223: #if MOUSE_3205_ENABLE
+000A8F 91CF              ACALL   SPI_TwReset
+  224: 	if((g_variable.sensorType == PAW3205_ID) ||(g_variable.sensorType == PAW3204UL_ID)) 
+000A91 904ED9            MOV     DPTR,#g_variable+01EH
+000A94 E0                MOVX    A,@DPTR
+000A95 FF                MOV     R7,A
+000A96 64D0              XRL     A,#0D0H
+000A98 6004              JZ      ?C0005?SYS
+000A9A EF                MOV     A,R7
+000A9B B4D10A            CJNE    A,#0D1H,?C0004?SYS
+000A9E         ?C0005?SYS:
+  225: 	{
+  226: 		SPI_WriteSensor((g_variable.dpiCount+1), SENSOR_POWER);
+000A9E 904EDB            MOV     DPTR,#g_variable+020H
+000AA1 E0                MOVX    A,@DPTR
+000AA2 04                INC     A
+000AA3 FF                MOV     R7,A
+000AA4 7D06              MOV     R5,#06H
+000AA6 5164              ACALL   _SPI_WriteSensor
+  227: 	}
+000AA8         ?C0004?SYS:
+  228: #endif
+  229: 
+  230: 	if (g_variable.sensorType == FCT3065_ID)
+000AA8 904ED9            MOV     DPTR,#g_variable+01EH
+000AAB E0                MOVX    A,@DPTR
+000AAC B43118            CJNE    A,#031H,?C0006?SYS
+  231: 	{
+  232: 		if(g_variable.dpiCount == 1)
+000AAF 904EDB            MOV     DPTR,#g_variable+020H
+000AB2 E0                MOVX    A,@DPTR
+000AB3 B40108            CJNE    A,#01H,?C0007?SYS
+  233: 			SPI_WriteSensor(0, SENSOR_POWER);
+000AB6 7D06              MOV     R5,#06H
+000AB8 E4                CLR     A
+000AB9 FF                MOV     R7,A
+000ABA 5164              ACALL   _SPI_WriteSensor
+000ABC 8009              SJMP    ?C0006?SYS
+000ABE         ?C0007?SYS:
+  234: 		else
+  235: 			SPI_WriteSensor(g_variable.dpiCount, SENSOR_POWER);
+000ABE 904EDB            MOV     DPTR,#g_variable+020H
+000AC1 E0                MOVX    A,@DPTR
+000AC2 FF                MOV     R7,A
+000AC3 7D06              MOV     R5,#06H
+000AC5 5164              ACALL   _SPI_WriteSensor
+  236: 	}
+000AC7         ?C0006?SYS:
+  237: 	
+  238: #if MOUSE_3204_ENABLE
+  239: 	if (g_variable.sensorType == PAW3204DB_ID)
+000AC7 904ED9            MOV     DPTR,#g_variable+01EH
+000ACA E0                MOVX    A,@DPTR
+000ACB B4500B            CJNE    A,#050H,?C0009?SYS
+  240: 	{
+  241: 		SPI_WriteSensor((g_variable.dpiCount+3), SENSOR_POWER);
+000ACE 904EDB            MOV     DPTR,#g_variable+020H
+000AD1 E0                MOVX    A,@DPTR
+000AD2 2403              ADD     A,#03H
+000AD4 FF                MOV     R7,A
+000AD5 7D06              MOV     R5,#06H
+000AD7 5164              ACALL   _SPI_WriteSensor
+  242: 	}
+000AD9         ?C0009?SYS:
+  243: #endif
+  244: 
+  245: #if MOUSE_8650_ENABLE
+  246: 	if (g_variable.sensorType == MA8650_ID)
+000AD9 904ED9            MOV     DPTR,#g_variable+01EH
+000ADC E0                MOVX    A,@DPTR
+000ADD B45A0B            CJNE    A,#05AH,?C0010?SYS
+  247: 	{
+  248: 		SPI_WriteSensor((g_variable.dpiCount+3), SENSOR_POWER);
+000AE0 904EDB            MOV     DPTR,#g_variable+020H
+000AE3 E0                MOVX    A,@DPTR
+000AE4 2403              ADD     A,#03H
+000AE6 FF                MOV     R7,A
+000AE7 7D06              MOV     R5,#06H
+000AE9 5164              ACALL   _SPI_WriteSensor
+  249: 	}
+000AEB         ?C0010?SYS:
+  250: #endif
+  251: 
+  252: #if MOUSE_3212_ENABLE	
+  253: 	if (g_variable.sensorType == PAW3212_ID) 
+000AEB 904ED9            MOV     DPTR,#g_variable+01EH
+000AEE E0                MOVX    A,@DPTR
+000AEF 6402              XRL     A,#02H
+000AF1 7053              JNZ     ?C0011?SYS
+  254: 	{
+  255: 		SPI_WriteSensor(0x5a,0x09);
+000AF3 7D09              MOV     R5,#09H
+000AF5 7F5A              MOV     R7,#05AH
+000AF7 5164              ACALL   _SPI_WriteSensor
+  256: 		switch (g_variable.dpiCount)
+000AF9 904EDB            MOV     DPTR,#g_variable+020H
+000AFC E0                MOVX    A,@DPTR
+000AFD 14                DEC     A
+000AFE 6018              JZ      ?C0014?SYS
+000B00 14                DEC     A
+000B01 6023              JZ      ?C0015?SYS
+000B03 14                DEC     A
+000B04 602E              JZ      ?C0016?SYS
+000B06 2403              ADD     A,#03H
+000B08 7036              JNZ     ?C0012?SYS
+  257: 		{
+  258: 			case 0:
+000B0A         ?C0013?SYS:
+  259: 				SPI_WriteSensor(PAW3212_DPI0, 0x0d);
+000B0A 7D0D              MOV     R5,#0DH
+000B0C 7F15              MOV     R7,#015H
+000B0E 5164              ACALL   _SPI_WriteSensor
+  260: 				SPI_WriteSensor(PAW3212_DPI0, 0x0e);
+000B10 7D0E              MOV     R5,#0EH
+000B12 7F15              MOV     R7,#015H
+000B14 5164              ACALL   _SPI_WriteSensor
+  261: 				break;
+000B16 8028              SJMP    ?C0012?SYS
+  262: 			case 1:
+000B18         ?C0014?SYS:
+  263: 				SPI_WriteSensor(PAW3212_DPI1, 0x0d);
+000B18 7D0D              MOV     R5,#0DH
+000B1A 7F20              MOV     R7,#020H
+000B1C 5164              ACALL   _SPI_WriteSensor
+  264: 				SPI_WriteSensor(PAW3212_DPI1, 0x0e);
+000B1E 7D0E              MOV     R5,#0EH
+000B20 7F20              MOV     R7,#020H
+000B22 5164              ACALL   _SPI_WriteSensor
+  265: 				break;				
+000B24 801A              SJMP    ?C0012?SYS
+  266: 			case 2:
+000B26         ?C0015?SYS:
+  267: 				SPI_WriteSensor(PAW3212_DPI2, 0x0d);
+000B26 7D0D              MOV     R5,#0DH
+000B28 7F2A              MOV     R7,#02AH
+000B2A 5164              ACALL   _SPI_WriteSensor
+  268: 				SPI_WriteSensor(PAW3212_DPI2, 0x0e);
+000B2C 7D0E              MOV     R5,#0EH
+000B2E 7F2A              MOV     R7,#02AH
+000B30 5164              ACALL   _SPI_WriteSensor
+  269: 				break;
+000B32 800C              SJMP    ?C0012?SYS
+  270: 			case 3:
+000B34         ?C0016?SYS:
+  271: 				SPI_WriteSensor(PAW3212_DPI3, 0x0d);
+000B34 7D0D              MOV     R5,#0DH
+000B36 7F3F              MOV     R7,#03FH
+000B38 5164              ACALL   _SPI_WriteSensor
+  272: 				SPI_WriteSensor(PAW3212_DPI3, 0x0e);
+000B3A 7D0E              MOV     R5,#0EH
+000B3C 7F3F              MOV     R7,#03FH
+000B3E 5164              ACALL   _SPI_WriteSensor
+  273: 				break;
+  274: 			default:
+  275: 				break;
+  276: 		}
+000B40         ?C0012?SYS:
+  277: 		SPI_WriteSensor(0x00,0x09);
+000B40 7D09              MOV     R5,#09H
+000B42 E4                CLR     A
+000B43 FF                MOV     R7,A
+000B44 5164              ACALL   _SPI_WriteSensor
+  278: 	}
+000B46         ?C0011?SYS:
+;----                  JMP     Sensor_spi_disable
+  279: #endif
+  280: 
+  281: 	Sensor_spi_disable();
+----- FUNCTION dpiWriteInSensor (END) -------
+
+
+----- FUNCTION Sensor_spi_disable (BEGIN) -----
+ FILE: 'sensor.c'
+  220: void Sensor_spi_disable(void)
+  221: {
+  222: 	REG_GPIO_SEL(1) = 0;
+  223: 	REG_GPIO_OE(3) |= 0x02;
+000B46 908081            MOV     DPTR,#08081H
+000B49 E4                CLR     A
+000B4A F0                MOVX    @DPTR,A
+  224: 	REG_GPIO_OUT(3) |= 0x02;
+000B4B 908073            MOV     DPTR,#08073H
+000B4E E0                MOVX    A,@DPTR
+000B4F 4402              ORL     A,#02H
+000B51 F0                MOVX    @DPTR,A
+  225: }
+000B52 908077            MOV     DPTR,#08077H
+000B55 E0                MOVX    A,@DPTR
+000B56 4402              ORL     A,#02H
+000B58 F0                MOVX    @DPTR,A
+  226: 
+000B59 22                RET     
+----- FUNCTION Sensor_spi_disable (END) -------
+
+
+----- FUNCTION mouseReadSensor (BEGIN) -----
+ FILE: 'sys.c'
+  513: static bool mouseReadSensor(void)
+  514: {
+  515: 	u8_t deltaXL=0, deltaYL=0, deltaXH=0, deltaYH=0;
+  516: 
+000B5A E4                CLR     A
+000B5B 901C06            MOV     DPTR,#deltaXL
+000B5E F0                MOVX    @DPTR,A
+000B5F A3                INC     DPTR
+000B60 F0                MOVX    @DPTR,A
+000B61 A3                INC     DPTR
+000B62 F0                MOVX    @DPTR,A
+000B63 A3                INC     DPTR
+000B64 F0                MOVX    @DPTR,A
+  517: 	if(1 == GPIO_GetInputStatus(SENSOR_MOTION_GPIO)){
+000B65 7F18              MOV     R7,#018H
+000B67 B122              ACALL   _GPIO_GetInputStatus
+000B69 5002              JNC     ?C0091?SYS
+  518: 		return 0;
+000B6B C3                CLR     C
+000B6C 22                RET     
+  519: 	}
+000B6D         ?C0091?SYS:
+  520: 	
+  521: 	SPI_TwReset();
+000B6D 91CF              ACALL   SPI_TwReset
+  522: 
+  523: 	if ((SPI_ReadSensor(2)&0x80)){
+000B6F 7F02              MOV     R7,#02H
+000B71 1120              ACALL   _SPI_ReadSensor
+000B73 EF                MOV     A,R7
+000B74 20E702            JB      ACC.7,$ + 5H
+000B77 81B7              AJMP    ?C0093?SYS
+  524: 
+  525: 		g_variable.wheelTimer= 2;
+000B79 904EC7            MOV     DPTR,#g_variable+0CH
+000B7C 7402              MOV     A,#02H
+000B7E F0                MOVX    @DPTR,A
+  526: 		if(g_variable.sensorType != PAW3212_ID ){
+000B7F 904ED9            MOV     DPTR,#g_variable+01EH
+000B82 E0                MOVX    A,@DPTR
+000B83 6402              XRL     A,#02H
+000B85 6016              JZ      ?C0094?SYS
+  527: 			deltaXL = SPI_ReadSensor(SENSOR_X_ADDR);
+000B87 7F03              MOV     R7,#03H
+000B89 1120              ACALL   _SPI_ReadSensor
+000B8B 901C06            MOV     DPTR,#deltaXL
+000B8E EF                MOV     A,R7
+000B8F F0                MOVX    @DPTR,A
+  528: 			deltaYL = 0 - SPI_ReadSensor(SENSOR_Y_ADDR);
+000B90 7F04              MOV     R7,#04H
+000B92 1120              ACALL   _SPI_ReadSensor
+000B94 EF                MOV     A,R7
+000B95 F4                CPL     A
+000B96 04                INC     A
+000B97 901C07            MOV     DPTR,#deltaYL
+000B9A F0                MOVX    @DPTR,A
+  529: 		}
+000B9B 8029              SJMP    ?C0095?SYS
+000B9D         ?C0094?SYS:
+  530: 		else {
+  531: 			deltaXL = SPI_ReadSensor(SENSOR_X_ADDR);
+000B9D 7F03              MOV     R7,#03H
+000B9F 1120              ACALL   _SPI_ReadSensor
+000BA1 901C06            MOV     DPTR,#deltaXL
+000BA4 EF                MOV     A,R7
+000BA5 F0                MOVX    @DPTR,A
+  532: 			deltaYL = SPI_ReadSensor(SENSOR_Y_ADDR);
+000BA6 7F04              MOV     R7,#04H
+000BA8 1120              ACALL   _SPI_ReadSensor
+000BAA 901C07            MOV     DPTR,#deltaYL
+000BAD EF                MOV     A,R7
+000BAE F0                MOVX    @DPTR,A
+  533: 			deltaYH = SPI_ReadSensor(SENSOR_XY_H);
+000BAF 7F12              MOV     R7,#012H
+000BB1 1120              ACALL   _SPI_ReadSensor
+000BB3 901C09            MOV     DPTR,#deltaYH
+000BB6 EF                MOV     A,R7
+000BB7 F0                MOVX    @DPTR,A
+  534: 			deltaXH = deltaYH>>4;
+000BB8 E0                MOVX    A,@DPTR
+000BB9 FF                MOV     R7,A
+000BBA C4                SWAP    A
+000BBB 540F              ANL     A,#0FH
+000BBD 901C08            MOV     DPTR,#deltaXH
+000BC0 F0                MOVX    @DPTR,A
+  535: 			deltaYH &= 0x0f;
+000BC1 EF                MOV     A,R7
+000BC2 540F              ANL     A,#0FH
+000BC4 A3                INC     DPTR
+000BC5 F0                MOVX    @DPTR,A
+  536: 		}
+000BC6         ?C0095?SYS:
+  537: 		Sensor_spi_disable();
+000BC6 7146              ACALL   Sensor_spi_disable
+  538: 		if(g_variable.sensorType == PAW3212_ID) {
+000BC8 904ED9            MOV     DPTR,#g_variable+01EH
+000BCB E0                MOVX    A,@DPTR
+000BCC 6402              XRL     A,#02H
+000BCE 702A              JNZ     ?C0096?SYS
+  539: 			if (deltaXH & 0x08) deltaXH |= 0xf0;
+000BD0 901C08            MOV     DPTR,#deltaXH
+000BD3 E0                MOVX    A,@DPTR
+000BD4 FF                MOV     R7,A
+000BD5 30E305            JNB     ACC.3,?C0097?SYS
+000BD8 44F0              ORL     A,#0F0H
+000BDA F0                MOVX    @DPTR,A
+000BDB 8007              SJMP    ?C0098?SYS
+000BDD         ?C0097?SYS:
+  540: 			else deltaXH &= 0x0f;
+000BDD 901C08            MOV     DPTR,#deltaXH
+000BE0 E0                MOVX    A,@DPTR
+000BE1 540F              ANL     A,#0FH
+000BE3 F0                MOVX    @DPTR,A
+000BE4         ?C0098?SYS:
+  541: 			if (deltaYH& 0x08) deltaYH |= 0xf0;
+000BE4 901C09            MOV     DPTR,#deltaYH
+000BE7 E0                MOVX    A,@DPTR
+000BE8 FF                MOV     R7,A
+000BE9 30E305            JNB     ACC.3,?C0099?SYS
+000BEC 44F0              ORL     A,#0F0H
+000BEE F0                MOVX    @DPTR,A
+000BEF 8031              SJMP    ?C0101?SYS
+000BF1         ?C0099?SYS:
+  542: 			else deltaYH &= 0x0f;
+000BF1 901C09            MOV     DPTR,#deltaYH
+000BF4 E0                MOVX    A,@DPTR
+000BF5 540F              ANL     A,#0FH
+000BF7 F0                MOVX    @DPTR,A
+  543: 		}
+000BF8 8028              SJMP    ?C0101?SYS
+000BFA         ?C0096?SYS:
+  544: 		else {
+  545: 			if (deltaXL & 0x80) deltaXH = 0xff;
+000BFA 901C06            MOV     DPTR,#deltaXL
+000BFD E0                MOVX    A,@DPTR
+000BFE 30E708            JNB     ACC.7,?C0102?SYS
+000C01 901C08            MOV     DPTR,#deltaXH
+000C04 74FF              MOV     A,#0FFH
+000C06 F0                MOVX    @DPTR,A
+000C07 8005              SJMP    ?C0103?SYS
+000C09         ?C0102?SYS:
+  546: 			else deltaXH = 0;
+000C09 E4                CLR     A
+000C0A 901C08            MOV     DPTR,#deltaXH
+000C0D F0                MOVX    @DPTR,A
+000C0E         ?C0103?SYS:
+  547: 			if (deltaYL & 0x80) deltaYH = 0xff;
+000C0E 901C07            MOV     DPTR,#deltaYL
+000C11 E0                MOVX    A,@DPTR
+000C12 30E708            JNB     ACC.7,?C0104?SYS
+000C15 901C09            MOV     DPTR,#deltaYH
+000C18 74FF              MOV     A,#0FFH
+000C1A F0                MOVX    @DPTR,A
+000C1B 8005              SJMP    ?C0101?SYS
+000C1D         ?C0104?SYS:
+  548: 			else deltaYH = 0;
+000C1D E4                CLR     A
+000C1E 901C09            MOV     DPTR,#deltaYH
+000C21 F0                MOVX    @DPTR,A
+  549: 		}
+000C22         ?C0101?SYS:
+  550: 		
+  551: 		if (g_variable.sensorChoice == 0) {
+000C22 904EF0            MOV     DPTR,#g_variable+035H
+000C25 E0                MOVX    A,@DPTR
+000C26 7031              JNZ     ?C0106?SYS
+  552: 			g_variable.Y_data = 0 -(deltaXL | deltaXH<<8);
+000C28 901C08            MOV     DPTR,#deltaXH
+000C2B E0                MOVX    A,@DPTR
+000C2C FE                MOV     R6,A
+000C2D 901C06            MOV     DPTR,#deltaXL
+000C30 E0                MOVX    A,@DPTR
+000C31 FD                MOV     R5,A
+000C32 EE                MOV     A,R6
+000C33 ED                MOV     A,R5
+000C34 FF                MOV     R7,A
+000C35 C3                CLR     C
+000C36 E4                CLR     A
+000C37 9F                SUBB    A,R7
+000C38 FF                MOV     R7,A
+000C39 E4                CLR     A
+000C3A 9E                SUBB    A,R6
+000C3B 904EFD            MOV     DPTR,#g_variable+042H
+000C3E F0                MOVX    @DPTR,A
+000C3F A3                INC     DPTR
+000C40 EF                MOV     A,R7
+000C41 F0                MOVX    @DPTR,A
+  553: 			g_variable.X_data = deltaYL | deltaYH<<8;
+000C42 901C09            MOV     DPTR,#deltaYH
+000C45 E0                MOVX    A,@DPTR
+000C46 FE                MOV     R6,A
+000C47 901C07            MOV     DPTR,#deltaYL
+000C4A E0                MOVX    A,@DPTR
+000C4B FD                MOV     R5,A
+000C4C EE                MOV     A,R6
+000C4D ED                MOV     A,R5
+000C4E FF                MOV     R7,A
+000C4F 904EFB            MOV     DPTR,#g_variable+040H
+000C52 EE                MOV     A,R6
+000C53 F0                MOVX    @DPTR,A
+000C54 A3                INC     DPTR
+000C55 EF                MOV     A,R7
+000C56 F0                MOVX    @DPTR,A
+  554: 		}
+000C57 802A              SJMP    ?C0107?SYS
+000C59         ?C0106?SYS:
+  555: 		else {
+  556: 			g_variable.X_data = deltaXL | deltaXH<<8;
+000C59 901C08            MOV     DPTR,#deltaXH
+000C5C E0                MOVX    A,@DPTR
+000C5D FE                MOV     R6,A
+000C5E 901C06            MOV     DPTR,#deltaXL
+000C61 E0                MOVX    A,@DPTR
+000C62 FD                MOV     R5,A
+000C63 EE                MOV     A,R6
+000C64 ED                MOV     A,R5
+000C65 FF                MOV     R7,A
+000C66 904EFB            MOV     DPTR,#g_variable+040H
+000C69 EE                MOV     A,R6
+000C6A F0                MOVX    @DPTR,A
+000C6B A3                INC     DPTR
+000C6C EF                MOV     A,R7
+000C6D F0                MOVX    @DPTR,A
+  557: 			g_variable.Y_data = deltaYL | deltaYH<<8;
+000C6E 901C09            MOV     DPTR,#deltaYH
+000C71 E0                MOVX    A,@DPTR
+000C72 FE                MOV     R6,A
+000C73 901C07            MOV     DPTR,#deltaYL
+000C76 E0                MOVX    A,@DPTR
+000C77 FD                MOV     R5,A
+000C78 EE                MOV     A,R6
+000C79 ED                MOV     A,R5
+000C7A FF                MOV     R7,A
+000C7B 904EFD            MOV     DPTR,#g_variable+042H
+000C7E EE                MOV     A,R6
+000C7F F0                MOVX    @DPTR,A
+000C80 A3                INC     DPTR
+000C81 EF                MOV     A,R7
+000C82 F0                MOVX    @DPTR,A
+  558: 		}
+000C83         ?C0107?SYS:
+  559: 		g_variable.X_data = 0 -g_variable.X_data ;
+000C83 904EFB            MOV     DPTR,#g_variable+040H
+000C86 E0                MOVX    A,@DPTR
+000C87 FE                MOV     R6,A
+000C88 A3                INC     DPTR
+000C89 E0                MOVX    A,@DPTR
+000C8A FF                MOV     R7,A
+000C8B C3                CLR     C
+000C8C E4                CLR     A
+000C8D 9F                SUBB    A,R7
+000C8E FF                MOV     R7,A
+000C8F E4                CLR     A
+000C90 9E                SUBB    A,R6
+000C91 904EFB            MOV     DPTR,#g_variable+040H
+000C94 F0                MOVX    @DPTR,A
+000C95 A3                INC     DPTR
+000C96 EF                MOV     A,R7
+000C97 F0                MOVX    @DPTR,A
+  560: 		g_variable.Y_data = 0 -g_variable.Y_data;
+000C98 A3                INC     DPTR
+000C99 E0                MOVX    A,@DPTR
+000C9A FE                MOV     R6,A
+000C9B A3                INC     DPTR
+000C9C E0                MOVX    A,@DPTR
+000C9D FF                MOV     R7,A
+000C9E C3                CLR     C
+000C9F E4                CLR     A
+000CA0 9F                SUBB    A,R7
+000CA1 FF                MOV     R7,A
+000CA2 E4                CLR     A
+000CA3 9E                SUBB    A,R6
+000CA4 904EFD            MOV     DPTR,#g_variable+042H
+000CA7 F0                MOVX    @DPTR,A
+000CA8 A3                INC     DPTR
+000CA9 EF                MOV     A,R7
+000CAA F0                MOVX    @DPTR,A
+  561: 
+  562: 		if(g_variable.currentState == DEVICE_MODE_24G)
+000CAB 904EBD            MOV     DPTR,#g_variable+02H
+000CAE E0                MOVX    A,@DPTR
+000CAF B40103            CJNE    A,#01H,?C0108?SYS
+  563: 			Drawing_optima();
+000CB2 122022            LCALL   Drawing_optima
+000CB5         ?C0108?SYS:
+  564: 		return (1);
+000CB5 D3                SETB    C
+000CB6 22                RET     
+  565: 	}else{
+000CB7         ?C0093?SYS:
+  566: 		return (0);
+000CB7 C3                CLR     C
+  567: 	}
+  568: }
+000CB8 22                RET     
+----- FUNCTION mouseReadSensor (END) -------
+
+
+----- FUNCTION sensorPowerOn (BEGIN) -----
+ FILE: 'sensor.c'
+  238: void sensorPowerOn()
+  239: {
+  240: 	u8_t config = 0;
+  241: 	SPI_TwReset();
+;---- Variable 'config' assigned to Register 'R7' ----
+000CB9 E4                CLR     A
+000CBA FF                MOV     R7,A
+  242: 	config = SPI_ReadSensor(0x06)&0xf7;
+000CBB 91CF              ACALL   SPI_TwReset
+  243: 	SPI_WriteSensor(config, 0x06);		//sensor Power on
+000CBD 7F06              MOV     R7,#06H
+000CBF 1120              ACALL   _SPI_ReadSensor
+000CC1 EF                MOV     A,R7
+000CC2 54F7              ANL     A,#0F7H
+000CC4 FF                MOV     R7,A
+  244: 	SPI_ReadSensor(2);
+000CC5 7D06              MOV     R5,#06H
+000CC7 5164              ACALL   _SPI_WriteSensor
+  245: 	Sensor_spi_disable();
+000CC9 7F02              MOV     R7,#02H
+000CCB 1120              ACALL   _SPI_ReadSensor
+  246: }
+000CCD 6146              AJMP    Sensor_spi_disable
+----- FUNCTION sensorPowerOn (END) -------
+
+
+----- FUNCTION SPI_TwReset (BEGIN) -----
+ FILE: 'sensor.c'
+   67: void SPI_TwReset()
+   68: {
+   69: 	u8_t sensorId = 0;
+   70: 	REG_GPIO_SEL(1) = 1;
+000CCF E4                CLR     A
+000CD0 901C33            MOV     DPTR,#sensorId
+000CD3 F0                MOVX    @DPTR,A
+   71: 	g_variable.read_sensor_count = 0;
+000CD4 908081            MOV     DPTR,#08081H
+000CD7 04                INC     A
+000CD8 F0                MOVX    @DPTR,A
+   72: 	while (1) 
+000CD9 E4                CLR     A
+000CDA 904F00            MOV     DPTR,#g_variable+045H
+000CDD F0                MOVX    @DPTR,A
+000CDE         ?C0001?SENSOR:
+   73: 	{
+   74: 		g_variable.read_sensor_count++;
+   75: 		if(g_variable.read_sensor_count >= 6)
+000CDE 904F00            MOV     DPTR,#g_variable+045H
+000CE1 E0                MOVX    A,@DPTR
+000CE2 04                INC     A
+000CE3 F0                MOVX    @DPTR,A
+   76: 		{
+000CE4 E0                MOVX    A,@DPTR
+000CE5 C3                CLR     C
+000CE6 9406              SUBB    A,#06H
+000CE8 4003              JC      ?C0003?SENSOR
+   77: 			SPI_Initialize();
+   78: 		}
+000CEA 1216FA            LCALL   SPI_Initialize
+   79: 		sensorId = SPI_ReadSensor(0) ;
+000CED         ?C0003?SENSOR:
+   80: 		if (( sensorId == PIXART_ID) ||(sensorId == FCT3065_ID))
+000CED E4                CLR     A
+000CEE FF                MOV     R7,A
+000CEF 1120              ACALL   _SPI_ReadSensor
+000CF1 901C33            MOV     DPTR,#sensorId
+000CF4 EF                MOV     A,R7
+000CF5 F0                MOVX    @DPTR,A
+   81: 			break;
+000CF6 6430              XRL     A,#030H
+000CF8 6027              JZ      ?C0006?SENSOR
+000CFA E0                MOVX    A,@DPTR
+000CFB 6431              XRL     A,#031H
+000CFD 6022              JZ      ?C0006?SENSOR
+   82: 		REG_GPIO_SEL(1) = 0;
+000CFF         ?C0004?SENSOR:
+   83: 		REG_GPIO_OE(3) |= 0x02;
+000CFF 908081            MOV     DPTR,#08081H
+000D02 E4                CLR     A
+000D03 F0                MOVX    @DPTR,A
+   84: 		REG_GPIO_OUT(3) &= 0xfd;
+000D04 908073            MOV     DPTR,#08073H
+000D07 E0                MOVX    A,@DPTR
+000D08 4402              ORL     A,#02H
+000D0A F0                MOVX    @DPTR,A
+   85: 		REG_GPIO_OE(3) |= 0x02;
+000D0B 908077            MOV     DPTR,#08077H
+000D0E E0                MOVX    A,@DPTR
+000D0F 54FD              ANL     A,#0FDH
+000D11 F0                MOVX    @DPTR,A
+   86: 		REG_GPIO_SEL(1) = 1;
+000D12 908073            MOV     DPTR,#08073H
+000D15 E0                MOVX    A,@DPTR
+000D16 4402              ORL     A,#02H
+000D18 F0                MOVX    @DPTR,A
+   87: 	} 
+000D19 908081            MOV     DPTR,#08081H
+000D1C 7401              MOV     A,#01H
+000D1E F0                MOVX    @DPTR,A
+   88: }
+000D1F 80BD              SJMP    ?C0001?SENSOR
+   89: 
+000D21         ?C0006?SENSOR:
+000D21 22                RET     
+----- FUNCTION SPI_TwReset (END) -------
+
+
+----- FUNCTION _GPIO_GetInputStatus (BEGIN) -----
+ FILE: 'gpio.c'
+   35: bool GPIO_GetInputStatus(u8_t gpio_num)
+   36: {
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+   37: 	return gpioGetBit(gpio_num, &REG_GPIO_IN(0));
+   38: }
+000D22 7B01              MOV     R3,#01H
+000D24 7A81              MOV     R2,#081H
+000D26 791C              MOV     R1,#01CH
+;----                  JMP     _gpioGetBit
+----- FUNCTION _GPIO_GetInputStatus (END) -------
+
+
+----- FUNCTION _gpioGetBit (BEGIN) -----
+ FILE: 'gpio.c'
+   24: static bool gpioGetBit(u8_t gpio_num, char *reg_base)
+   25: {
+;---- Variable 'gpio_num' assigned to Register 'R5' ----
+000D28 AD07              MOV     R5,AR7
+;---- Variable 'reg_base' assigned to Register 'R1/R2/R3' ----
+   26: 	u8_t queue = 0;
+   27: 	u8_t group = 0;
+000D2A E4                CLR     A
+000D2B 901C2B            MOV     DPTR,#queue
+000D2E F0                MOVX    @DPTR,A
+   28: 
+;---- Variable 'group' assigned to Register 'R6' ----
+000D2F FE                MOV     R6,A
+   29: 	queue = (gpio_num & 7);
+000D30 EF                MOV     A,R7
+000D31 5407              ANL     A,#07H
+000D33 F0                MOVX    @DPTR,A
+   30: 	group = gpio_num >> 3 & 3;
+000D34 EF                MOV     A,R7
+000D35 13                RRC     A
+000D36 13                RRC     A
+000D37 13                RRC     A
+000D38 5403              ANL     A,#03H
+000D3A FE                MOV     R6,A
+   31: 	return (*(reg_base + group)&(1<<queue));
+000D3B F582              MOV     DPL,A
+000D3D 758300            MOV     DPH,#00H
+000D40 120112            LCALL   ?C?CLDOPTR
+000D43 FD                MOV     R5,A
+000D44 33                RLC     A
+000D45 95E0              SUBB    A,ACC
+000D47 FC                MOV     R4,A
+000D48 901C2B            MOV     DPTR,#queue
+000D4B E0                MOVX    A,@DPTR
+000D4C FF                MOV     R7,A
+000D4D 7401              MOV     A,#01H
+000D4F 7E00              MOV     R6,#00H
+000D51 A807              MOV     R0,AR7
+000D53 08                INC     R0
+000D54 8005              SJMP    ?C0023?GPIO
+000D56         ?C0022?GPIO:
+000D56 C3                CLR     C
+000D57 33                RLC     A
+000D58 CE                XCH     A,R6
+000D59 33                RLC     A
+000D5A CE                XCH     A,R6
+000D5B         ?C0023?GPIO:
+000D5B D8F9              DJNZ    R0,?C0022?GPIO
+000D5D FF                MOV     R7,A
+000D5E EE                MOV     A,R6
+000D5F 5C                ANL     A,R4
+000D60 FE                MOV     R6,A
+000D61 EF                MOV     A,R7
+000D62 5D                ANL     A,R5
+000D63 4E                ORL     A,R6
+000D64 24FF              ADD     A,#0FFH
+   32: 	
+   33: }
+000D66 22                RET     
+----- FUNCTION _gpioGetBit (END) -------
+
+
+----- FUNCTION comboKeyPb (BEGIN) -----
+ FILE: 'sys.c'
+ 1148: void comboKeyPb()    // Lmr 3s enter discovery mode
+ 1149: {
+ 1150: 	u8_t buttonLeft = 0,buttonRight = 0,buttonMiddle = 0;
+ 1151: 	u8_t combkey = 0;
+000D67 E4                CLR     A
+000D68 901BF8            MOV     DPTR,#buttonLeft
+000D6B F0                MOVX    @DPTR,A
+000D6C A3                INC     DPTR
+000D6D F0                MOVX    @DPTR,A
+000D6E A3                INC     DPTR
+000D6F F0                MOVX    @DPTR,A
+ 1152: 	u8_t currentStateTemp=0;
+000D70 A3                INC     DPTR
+000D71 F0                MOVX    @DPTR,A
+ 1153: 	buttonLeft = !GPIO_GetInputStatus(KS_BL_GPIO);
+000D72 A3                INC     DPTR
+000D73 F0                MOVX    @DPTR,A
+ 1154: 	buttonMiddle = !GPIO_GetInputStatus(KS_BM_GPIO);
+000D74 7F04              MOV     R7,#04H
+000D76 B122              ACALL   _GPIO_GetInputStatus
+000D78 4004              JC      ?C0192?SYS
+000D7A 7F01              MOV     R7,#01H
+000D7C 8002              SJMP    ?C0193?SYS
+000D7E         ?C0192?SYS:
+000D7E 7F00              MOV     R7,#00H
+000D80         ?C0193?SYS:
+000D80 901BF8            MOV     DPTR,#buttonLeft
+000D83 EF                MOV     A,R7
+000D84 F0                MOVX    @DPTR,A
+ 1155: 	buttonRight = !GPIO_GetInputStatus(KS_BR_GPIO);
+000D85 7F17              MOV     R7,#017H
+000D87 B122              ACALL   _GPIO_GetInputStatus
+000D89 4004              JC      ?C0194?SYS
+000D8B 7F01              MOV     R7,#01H
+000D8D 8002              SJMP    ?C0195?SYS
+000D8F         ?C0194?SYS:
+000D8F 7F00              MOV     R7,#00H
+000D91         ?C0195?SYS:
+000D91 901BFA            MOV     DPTR,#buttonMiddle
+000D94 EF                MOV     A,R7
+000D95 F0                MOVX    @DPTR,A
+ 1156: 	combkey = buttonLeft |buttonRight<<1|buttonMiddle<<2;
+000D96 7F1B              MOV     R7,#01BH
+000D98 B122              ACALL   _GPIO_GetInputStatus
+000D9A 4004              JC      ?C0196?SYS
+000D9C 7F01              MOV     R7,#01H
+000D9E 8002              SJMP    ?C0197?SYS
+000DA0         ?C0196?SYS:
+000DA0 7F00              MOV     R7,#00H
+000DA2         ?C0197?SYS:
+000DA2 901BF9            MOV     DPTR,#buttonRight
+000DA5 EF                MOV     A,R7
+000DA6 F0                MOVX    @DPTR,A
+ 1157: 	if(combkey == 0x07) 
+000DA7 E0                MOVX    A,@DPTR
+000DA8 FF                MOV     R7,A
+000DA9 25E0              ADD     A,ACC
+000DAB FF                MOV     R7,A
+000DAC 901BF8            MOV     DPTR,#buttonLeft
+000DAF E0                MOVX    A,@DPTR
+000DB0 4F                ORL     A,R7
+000DB1 FF                MOV     R7,A
+000DB2 901BFA            MOV     DPTR,#buttonMiddle
+000DB5 E0                MOVX    A,@DPTR
+000DB6 FE                MOV     R6,A
+000DB7 25E0              ADD     A,ACC
+000DB9 25E0              ADD     A,ACC
+000DBB 4F                ORL     A,R7
+000DBC A3                INC     DPTR
+000DBD F0                MOVX    @DPTR,A
+ 1158: 	{
+000DBE 6407              XRL     A,#07H
+000DC0 7070              JNZ     ?C0198?SYS
+ 1159: 		g_variable.enterHibernateTimer = 30;
+ 1160: 		g_variable.sleepTimer = 0;
+000DC2 904F02            MOV     DPTR,#g_variable+047H
+000DC5 741E              MOV     A,#01EH
+000DC7 F0                MOVX    @DPTR,A
+ 1161: 		g_variable.wheelTimer = 10;
+000DC8 E4                CLR     A
+000DC9 904EC4            MOV     DPTR,#g_variable+09H
+000DCC F0                MOVX    @DPTR,A
+000DCD A3                INC     DPTR
+000DCE F0                MOVX    @DPTR,A
+ 1162: 		if (g_variable.buttonTimer >= MOUSE_ENTER_PB_TIME)
+000DCF 904EC7            MOV     DPTR,#g_variable+0CH
+000DD2 740A              MOV     A,#0AH
+000DD4 F0                MOVX    @DPTR,A
+ 1163: 			return ;
+000DD5 904EC6            MOV     DPTR,#g_variable+0BH
+000DD8 E0                MOVX    A,@DPTR
+000DD9 C3                CLR     C
+000DDA 9419              SUBB    A,#019H
+000DDC 5059              JNC     ?C0200?SYS
+000DDE         ?C0199?SYS:
+ 1164: 		g_variable.buttonTimer ++;
+000DDE 904EC6            MOV     DPTR,#g_variable+0BH
+000DE1 E0                MOVX    A,@DPTR
+000DE2 04                INC     A
+000DE3 F0                MOVX    @DPTR,A
+ 1165: 		if (g_variable.buttonTimer == MOUSE_ENTER_PB_TIME)
+000DE4 E0                MOVX    A,@DPTR
+000DE5 6419              XRL     A,#019H
+000DE7 704E              JNZ     ?C0200?SYS
+ 1166: 		{
+ 1167: 			g_variable.enterHibernateFlag = 0;
+000DE9 904F01            MOV     DPTR,#g_variable+046H
+000DEC F0                MOVX    @DPTR,A
+ 1168: 			g_variable.enterHibernateTimer = 0;
+000DED A3                INC     DPTR
+000DEE F0                MOVX    @DPTR,A
+ 1169: 		
+ 1170: 			switch (g_variable.currentState) 
+000DEF 904EBD            MOV     DPTR,#g_variable+02H
+000DF2 E0                MOVX    A,@DPTR
+000DF3 6032              JZ      ?C0207?SYS
+000DF5 14                DEC     A
+000DF6 601E              JZ      ?C0205?SYS
+000DF8 24FB              ADD     A,#0FBH
+000DFA 602B              JZ      ?C0207?SYS
+000DFC 24FE              ADD     A,#0FEH
+000DFE 600E              JZ      ?C0204?SYS
+000E00 04                INC     A
+000E01 7034              JNZ     ?C0200?SYS
+ 1171: 			{
+ 1172: #if MOUSE_BT_MODE_ENABLE
+ 1173: 				case DEVICE_MODE_BT:
+ 1174: 				case DEVICE_MODE_BB:
+ 1175: 					IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+ 1176: 					g_variable.nextMode = DEVICE_MODE_DISC;
+ 1177: 					g_variable.reconnFlag = 0;
+ 1178: 					break;
+ 1179: #endif 
+ 1180: 				case DEVICE_MODE_BLE_BB_CONNECT:
+000E03         ?C0203?SYS:
+ 1181: 					IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+000E03 7F11              MOV     R7,#011H
+000E05 D178              ACALL   _IPC_TxControlCmd
+ 1182: 					g_variable.nextMode = DEVICE_MODE_BLE_ADV;
+000E07 904EBE            MOV     DPTR,#g_variable+03H
+000E0A 7408              MOV     A,#08H
+000E0C F0                MOVX    @DPTR,A
+ 1183: 					break;
+000E0D 22                RET     
+ 1184: 				case DEVICE_MODE_BLE_ADV:
+000E0E         ?C0204?SYS:
+ 1185: 					g_variable.currentState = DEVICE_MODE_DISC;
+000E0E 904EBD            MOV     DPTR,#g_variable+02H
+000E11 7403              MOV     A,#03H
+000E13 F0                MOVX    @DPTR,A
+ 1186: #if MOUSE_BT_MODE_ENABLE
+ 1187: 					IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+ 1188: #endif
+ 1189: 					leADVStart();
+000E14 8022              SJMP    leADVStart
+ 1190: 					break;	
+ 1191: 				case DEVICE_MODE_24G:
+000E16         ?C0205?SYS:
+ 1192: 					deviceStop24g();
+000E16 F116              ACALL   deviceStop24g
+ 1193: 					Delay1ms(10);
+000E18 7F0A              MOV     R7,#0AH
+000E1A 7E00              MOV     R6,#00H
+000E1C 121646            LCALL   _Delay1ms
+ 1194: 					g_variable.currentState = DEVICE_MODE_DISC;
+000E1F 904EBD            MOV     DPTR,#g_variable+02H
+000E22 7403              MOV     A,#03H
+000E24 F0                MOVX    @DPTR,A
+ 1195: #if MOUSE_BT_MODE_ENABLE
+ 1196: 					IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+ 1197: #endif
+ 1198: 					leADVStart();
+000E25 8011              SJMP    leADVStart
+ 1199: 					break;
+ 1200: #if MOUSE_BT_MODE_ENABLE
+ 1201: 				case DEVICE_MODE_PAGE:
+ 1202: 					g_variable.reconnFlag = 0;
+ 1203: 					IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);
+ 1204: 					g_variable.nextMode = DEVICE_MODE_DISC;
+ 1205: 					break;
+ 1206: #endif
+ 1207: 				case DEVICE_MODE_NONE:
+ 1208: 				case DEVICE_MODE_PREPARE_SLEEP:
+000E27         ?C0207?SYS:
+ 1209: 					deviceStop24g();
+000E27 F116              ACALL   deviceStop24g
+ 1210: 					g_variable.currentState = DEVICE_MODE_DISC;
+000E29 904EBD            MOV     DPTR,#g_variable+02H
+000E2C 7403              MOV     A,#03H
+000E2E F0                MOVX    @DPTR,A
+ 1211: #if MOUSE_BT_MODE_ENABLE
+ 1212: 					IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+ 1213: #endif
+ 1214: 					leADVStart();
+000E2F 8007              SJMP    leADVStart
+ 1215: 					break;
+ 1216: 				default :
+ 1217: 					break;
+ 1218: 			}
+ 1219: 		}
+ 1220: 	}
+000E31 22                RET     
+000E32         ?C0198?SYS:
+ 1221: 	else  g_variable.buttonTimer = 0;
+000E32 E4                CLR     A
+000E33 904EC6            MOV     DPTR,#g_variable+0BH
+000E36 F0                MOVX    @DPTR,A
+ 1222: }
+000E37         ?C0200?SYS:
+000E37 22                RET     
+----- FUNCTION comboKeyPb (END) -------
+
+
+----- FUNCTION leADVStart (BEGIN) -----
+ FILE: 'sys.c'
+  866: void leADVStart()
+  867: {
+  868: 	IIC_Read(EEPROM_BLE_ADDR_RANDOM_CNT, 2, (u8_t *)&g_variable.leAddrRandomCnt);
+  869: 	g_variable.leAddrRandomCnt++;
+000E38 7B01              MOV     R3,#01H
+000E3A 7A4F              MOV     R2,#HIGH g_variable+056H
+000E3C 7911              MOV     R1,#LOW g_variable+056H
+000E3E 7D02              MOV     R5,#02H
+000E40 7C00              MOV     R4,#00H
+000E42 7FAA              MOV     R7,#0AAH
+000E44 7E3F              MOV     R6,#03FH
+000E46 121888            LCALL   _IIC_Read
+  870: 	IIC_WriteBlock(EEPROM_BLE_ADDR_RANDOM_CNT, 2, (u8_t *)&g_variable.leAddrRandomCnt);
+000E49 904F12            MOV     DPTR,#g_variable+057H
+000E4C E0                MOVX    A,@DPTR
+000E4D 04                INC     A
+000E4E F0                MOVX    @DPTR,A
+000E4F 7006              JNZ     ?C0276?SYS
+000E51 904F11            MOV     DPTR,#g_variable+056H
+000E54 E0                MOVX    A,@DPTR
+000E55 04                INC     A
+000E56 F0                MOVX    @DPTR,A
+000E57         ?C0276?SYS:
+  871: 	m_reconnLeAddr[1] = g_variable.leAddrRandomCnt & 0xff;
+000E57 7B01              MOV     R3,#01H
+000E59 7A4F              MOV     R2,#HIGH g_variable+056H
+000E5B 7911              MOV     R1,#LOW g_variable+056H
+000E5D 7D02              MOV     R5,#02H
+000E5F 7C00              MOV     R4,#00H
+000E61 7FAA              MOV     R7,#0AAH
+000E63 7E3F              MOV     R6,#03FH
+000E65 1219A4            LCALL   _IIC_WriteBlock
+  872: 	m_reconnLeAddr[2] = g_variable.leAddrRandomCnt >> 8;
+000E68 904F11            MOV     DPTR,#g_variable+056H
+000E6B E0                MOVX    A,@DPTR
+000E6C FC                MOV     R4,A
+000E6D A3                INC     DPTR
+000E6E E0                MOVX    A,@DPTR
+000E6F 90453F            MOV     DPTR,#m_reconnLeAddr+01H
+000E72 F0                MOVX    @DPTR,A
+  873: 	IPC_TxControlCmd(IPC_CMD_START_ADV);
+000E73 EC                MOV     A,R4
+000E74 A3                INC     DPTR
+000E75 F0                MOVX    @DPTR,A
+  874: }
+000E76 7F0D              MOV     R7,#0DH
+;----                  JMP     _IPC_TxControlCmd
+----- FUNCTION leADVStart (END) -------
+
+
+----- FUNCTION _IPC_TxControlCmd (BEGIN) -----
+ FILE: 'ipc.c'
+   68: void IPC_TxControlCmd(u8_t cmd)
+   69: {
+000E78 901C12            MOV     DPTR,#cmd
+000E7B EF                MOV     A,R7
+000E7C F0                MOVX    @DPTR,A
+   70: 	u8_t cmdBuff[IPC_CMD_LEN] = {IPC_CONTROL_CMD,0x01};
+   71: 	cmdBuff[IPC_CMD_LEN - 1] = cmd;
+000E7D 7813              MOV     R0,#LOW cmdBuff
+000E7F 7C1C              MOV     R4,#HIGH cmdBuff
+000E81 7D01              MOV     R5,#01H
+000E83 7BFF              MOV     R3,#0FFH
+000E85 7A02              MOV     R2,#HIGH _?ix1000
+000E87 79EE              MOV     R1,#LOW _?ix1000
+000E89 7E00              MOV     R6,#00H
+000E8B 7F03              MOV     R7,#03H
+000E8D 1200D3            LCALL   ?C?COPY
+   72: 	ipcTx(cmdBuff, IPC_CMD_LEN);
+000E90 901C12            MOV     DPTR,#cmd
+000E93 E0                MOVX    A,@DPTR
+000E94 901C15            MOV     DPTR,#cmdBuff+02H
+000E97 F0                MOVX    @DPTR,A
+   73: }
+000E98 7B01              MOV     R3,#01H
+000E9A 7A1C              MOV     R2,#HIGH cmdBuff
+000E9C 7913              MOV     R1,#LOW cmdBuff
+000E9E 7D03              MOV     R5,#03H
+;----                  JMP     _ipcTx
+----- FUNCTION _IPC_TxControlCmd (END) -------
+
+
+----- FUNCTION _ipcTx (BEGIN) -----
+ FILE: 'ipc.c'
+   56: static void ipcTx(u8_t* src, u8_t len)
+   57: {
+000EA0 901BED            MOV     DPTR,#src
+000EA3 EB                MOV     A,R3
+000EA4 F0                MOVX    @DPTR,A
+000EA5 A3                INC     DPTR
+000EA6 EA                MOV     A,R2
+000EA7 F0                MOVX    @DPTR,A
+000EA8 A3                INC     DPTR
+000EA9 E9                MOV     A,R1
+000EAA F0                MOVX    @DPTR,A
+000EAB A3                INC     DPTR
+000EAC ED                MOV     A,R5
+000EAD F0                MOVX    @DPTR,A
+   58: 	xu8_t* dest = (xu8_t*)ipcTxWritePtr;
+   59: 	while(len--) {
+000EAE 9047C6            MOV     DPTR,#ipcTxWritePtr
+000EB1 E0                MOVX    A,@DPTR
+000EB2 FF                MOV     R7,A
+000EB3 A3                INC     DPTR
+000EB4 E0                MOVX    A,@DPTR
+000EB5 901BF1            MOV     DPTR,#dest
+000EB8 CF                XCH     A,R7
+000EB9 F0                MOVX    @DPTR,A
+000EBA A3                INC     DPTR
+000EBB EF                MOV     A,R7
+000EBC F0                MOVX    @DPTR,A
+000EBD         ?C0005?IPC:
+   60: 		*dest++ = *src++;
+000EBD 901BF0            MOV     DPTR,#len
+000EC0 E0                MOVX    A,@DPTR
+000EC1 FF                MOV     R7,A
+000EC2 14                DEC     A
+000EC3 F0                MOVX    @DPTR,A
+000EC4 EF                MOV     A,R7
+000EC5 603F              JZ      ?C0006?IPC
+   61: 		if ((u16_t)dest == IPC_TX_END) {
+000EC7 901BED            MOV     DPTR,#src
+000ECA E0                MOVX    A,@DPTR
+000ECB FB                MOV     R3,A
+000ECC A3                INC     DPTR
+000ECD E4                CLR     A
+000ECE 75F001            MOV     B,#01H
+000ED1 120204            LCALL   ?C?ILDIX
+000ED4 A9F0              MOV     R1,B
+000ED6 FA                MOV     R2,A
+000ED7 1200F9            LCALL   ?C?CLDPTR
+000EDA FF                MOV     R7,A
+000EDB 901BF1            MOV     DPTR,#dest
+000EDE E4                CLR     A
+000EDF 75F001            MOV     B,#01H
+000EE2 120204            LCALL   ?C?ILDIX
+000EE5 85F082            MOV     DPL,B
+000EE8 F583              MOV     DPH,A
+000EEA EF                MOV     A,R7
+000EEB F0                MOVX    @DPTR,A
+   62: 			dest = (xu8_t *)IPC_TX_HEAD;
+000EEC 901BF1            MOV     DPTR,#dest
+000EEF E0                MOVX    A,@DPTR
+000EF0 FE                MOV     R6,A
+000EF1 A3                INC     DPTR
+000EF2 E0                MOVX    A,@DPTR
+000EF3 FF                MOV     R7,A
+000EF4 BE47C6            CJNE    R6,#047H,?C0005?IPC
+000EF7 BFC4C3            CJNE    R7,#0C4H,?C0005?IPC
+   63: 		}
+000EFA 901BF1            MOV     DPTR,#dest
+000EFD 7447              MOV     A,#047H
+000EFF F0                MOVX    @DPTR,A
+000F00 A3                INC     DPTR
+000F01 742E              MOV     A,#02EH
+000F03 F0                MOVX    @DPTR,A
+   64: 	}
+   65: 	ipcTxWritePtr =  (u16_t)dest;
+000F04 80B7              SJMP    ?C0005?IPC
+000F06         ?C0006?IPC:
+   66: }
+000F06 901BF1            MOV     DPTR,#dest
+000F09 E0                MOVX    A,@DPTR
+000F0A FF                MOV     R7,A
+000F0B A3                INC     DPTR
+000F0C E0                MOVX    A,@DPTR
+000F0D 9047C6            MOV     DPTR,#ipcTxWritePtr
+000F10 CF                XCH     A,R7
+000F11 F0                MOVX    @DPTR,A
+000F12 A3                INC     DPTR
+000F13 EF                MOV     A,R7
+000F14 F0                MOVX    @DPTR,A
+   67: 
+000F15 22                RET     
+----- FUNCTION _ipcTx (END) -------
+
+
+----- FUNCTION deviceStop24g (BEGIN) -----
+ FILE: 'sys.c'
+  730: static void deviceStop24g()
+  731: {
+  732: 	IPC_TxControlCmd(IPC_CMD_STOP_24G);
+  733: 	g_variable.currentState = DEVICE_MODE_NONE;
+000F16 7F24              MOV     R7,#024H
+000F18 D178              ACALL   _IPC_TxControlCmd
+  734: }
+000F1A E4                CLR     A
+000F1B 904EBD            MOV     DPTR,#g_variable+02H
+000F1E F0                MOVX    @DPTR,A
+  735: 
+000F1F 22                RET     
+----- FUNCTION deviceStop24g (END) -------
+
+
+----- FUNCTION sensorPowerDown (BEGIN) -----
+ FILE: 'sensor.c'
+  227: void sensorPowerDown()
+  228: {
+  229: 	u8_t config = 0;
+  230: 	SPI_TwReset();
+;---- Variable 'config' assigned to Register 'R7' ----
+000F20 E4                CLR     A
+000F21 FF                MOV     R7,A
+  231: 	config = SPI_ReadSensor(0x06) |0x08;
+000F22 91CF              ACALL   SPI_TwReset
+  232: 	SPI_WriteSensor(config, 0x06);		//sensor Power down
+000F24 7F06              MOV     R7,#06H
+000F26 1120              ACALL   _SPI_ReadSensor
+000F28 EF                MOV     A,R7
+000F29 4408              ORL     A,#08H
+000F2B FF                MOV     R7,A
+  233: 	REG_GPIO_SEL(1) = 0;
+000F2C 7D06              MOV     R5,#06H
+000F2E 5164              ACALL   _SPI_WriteSensor
+  234: 	GPIO_SetInput(25, 0);
+000F30 908081            MOV     DPTR,#08081H
+000F33 E4                CLR     A
+000F34 F0                MOVX    @DPTR,A
+  235: 	GPIO_SetInput(26, 0);
+000F35 C206              CLR     ?_GPIO_SetInput?BIT
+000F37 7F19              MOV     R7,#019H
+000F39 1203A1            LCALL   _GPIO_SetInput
+  236: }
+000F3C C206              CLR     ?_GPIO_SetInput?BIT
+000F3E 7F1A              MOV     R7,#01AH
+000F40 0203A1            LJMP    _GPIO_SetInput
+----- FUNCTION sensorPowerDown (END) -------
+
+
+----- FUNCTION mouseDpiKeyCheck (BEGIN) -----
+ FILE: 'sys.c'
+  416: void mouseDpiKeyCheck(void)
+  417: {
+  418: 	g_variable.dpiKeyTemp <<=1;
+  419: 	g_variable.dpiKeyTemp |= !GPIO_GetInputStatus(CPI_GPIO);
+000F43 904EDC            MOV     DPTR,#g_variable+021H
+000F46 E0                MOVX    A,@DPTR
+000F47 FF                MOV     R7,A
+000F48 25E0              ADD     A,ACC
+000F4A F0                MOVX    @DPTR,A
+  420: 	if (g_variable.dpiKeyTemp&0x01)	g_variable.wheelTimer= 2 ;
+000F4B E0                MOVX    A,@DPTR
+000F4C FF                MOV     R7,A
+000F4D C007              PUSH    AR7
+000F4F 7F06              MOV     R7,#06H
+000F51 B122              ACALL   _GPIO_GetInputStatus
+000F53 4004              JC      ?C0066?SYS
+000F55 7E01              MOV     R6,#01H
+000F57 8002              SJMP    ?C0067?SYS
+000F59         ?C0066?SYS:
+000F59 7E00              MOV     R6,#00H
+000F5B         ?C0067?SYS:
+000F5B D0E0              POP     ACC
+000F5D 4E                ORL     A,R6
+000F5E 904EDC            MOV     DPTR,#g_variable+021H
+000F61 F0                MOVX    @DPTR,A
+  421: 	if((g_variable.dpiKeyTemp & 0xff) == 0x07)  
+000F62 30E006            JNB     ACC.0,?C0068?SYS
+000F65 904EC7            MOV     DPTR,#g_variable+0CH
+000F68 7402              MOV     A,#02H
+000F6A F0                MOVX    @DPTR,A
+000F6B         ?C0068?SYS:
+  422: 	{
+000F6B 904EDC            MOV     DPTR,#g_variable+021H
+000F6E E0                MOVX    A,@DPTR
+000F6F 6407              XRL     A,#07H
+000F71 7029              JNZ     ?C0071?SYS
+  423: 		g_variable.dpiCount++;
+  424: 		g_variable.dpiCount &= 0x03;
+000F73 904EDB            MOV     DPTR,#g_variable+020H
+000F76 E0                MOVX    A,@DPTR
+000F77 04                INC     A
+000F78 F0                MOVX    @DPTR,A
+  425: 		if (g_variable.dpiCount == 0 ) g_variable.dpiCount = 1;
+000F79 E0                MOVX    A,@DPTR
+000F7A 5403              ANL     A,#03H
+000F7C F0                MOVX    @DPTR,A
+  426: 		g_variable.dpiLedFlipTime = g_variable.dpiCount;
+000F7D 7002              JNZ     ?C0070?SYS
+000F7F 04                INC     A
+000F80 F0                MOVX    @DPTR,A
+000F81         ?C0070?SYS:
+  427: 		dpiWriteInSensor();
+000F81 904EDB            MOV     DPTR,#g_variable+020H
+000F84 E0                MOVX    A,@DPTR
+000F85 904EDD            MOV     DPTR,#g_variable+022H
+000F88 F0                MOVX    @DPTR,A
+  428: 		IIC_WriteBlock(EEPROM_DPI_ADDR, 1,&g_variable.dpiCount);
+000F89 518F              ACALL   dpiWriteInSensor
+  429: 	}
+000F8B 7B01              MOV     R3,#01H
+000F8D 7A4E              MOV     R2,#HIGH g_variable+020H
+000F8F 79DB              MOV     R1,#LOW g_variable+020H
+000F91 7D01              MOV     R5,#01H
+000F93 7C00              MOV     R4,#00H
+000F95 7FA8              MOV     R7,#0A8H
+000F97 7E3F              MOV     R6,#03FH
+000F99 1219A4            LCALL   _IIC_WriteBlock
+  430: }
+  431: 
+000F9C         ?C0071?SYS:
+000F9C 22                RET     
+----- FUNCTION mouseDpiKeyCheck (END) -------
+
+
+----- FUNCTION deviceSwitch24GMode (BEGIN) -----
+ FILE: 'sys.c'
+  713: static void deviceSwitch24GMode()
+  714: {
+  715: 	IIC_Read(EEPROM_24G_ADDR+2, 4, (u8_t *)m_24gAddr);
+  716: 	if(m_24gAddr[0] == 0xff && m_24gAddr[1] == 0xff && m_24gAddr[2] == 0xff && m_24gAddr[3] == 0xff)
+000F9D 7B01              MOV     R3,#01H
+000F9F 7A49              MOV     R2,#HIGH m_24gAddr
+000FA1 7950              MOV     R1,#LOW m_24gAddr
+000FA3 7D04              MOV     R5,#04H
+000FA5 7C00              MOV     R4,#00H
+000FA7 7FA4              MOV     R7,#0A4H
+000FA9 7E3F              MOV     R6,#03FH
+000FAB 121888            LCALL   _IIC_Read
+  717: 	{
+000FAE 904950            MOV     DPTR,#m_24gAddr
+000FB1 E0                MOVX    A,@DPTR
+000FB2 F4                CPL     A
+000FB3 7027              JNZ     ?C0134?SYS
+000FB5 A3                INC     DPTR
+000FB6 E0                MOVX    A,@DPTR
+000FB7 F4                CPL     A
+000FB8 7022              JNZ     ?C0134?SYS
+000FBA A3                INC     DPTR
+000FBB E0                MOVX    A,@DPTR
+000FBC B4FF1D            CJNE    A,#0FFH,?C0134?SYS
+000FBF A3                INC     DPTR
+000FC0 E0                MOVX    A,@DPTR
+000FC1 B4FF18            CJNE    A,#0FFH,?C0134?SYS
+  718: 		m_24gAddr[0] = 0x0f;
+  719: 		m_24gAddr[1] = 0x0f;
+000FC4 904950            MOV     DPTR,#m_24gAddr
+000FC7 740F              MOV     A,#0FH
+000FC9 F0                MOVX    @DPTR,A
+  720: 		m_24gAddr[2] = 0x0f;
+000FCA A3                INC     DPTR
+000FCB F0                MOVX    @DPTR,A
+  721: 		m_24gAddr[3] = 0x0f;
+000FCC A3                INC     DPTR
+000FCD F0                MOVX    @DPTR,A
+  722: 		IPC_TxControlCmd(IPC_CMD_START_24G);
+000FCE A3                INC     DPTR
+000FCF F0                MOVX    @DPTR,A
+  723: 		g_variable.Factory_Pwr_on_f = 1;
+000FD0 7F23              MOV     R7,#023H
+000FD2 D178              ACALL   _IPC_TxControlCmd
+  724: 	}
+000FD4 904EF2            MOV     DPTR,#g_variable+037H
+000FD7 7401              MOV     A,#01H
+000FD9 F0                MOVX    @DPTR,A
+  725: 	else
+000FDA 8004              SJMP    ?C0135?SYS
+000FDC         ?C0134?SYS:
+  726: 		IPC_TxControlCmd(IPC_CMD_START_24G);
+000FDC 7F23              MOV     R7,#023H
+000FDE D178              ACALL   _IPC_TxControlCmd
+000FE0         ?C0135?SYS:
+  727: 	g_variable.currentState = DEVICE_MODE_24G;
+000FE0 904EBD            MOV     DPTR,#g_variable+02H
+000FE3 7401              MOV     A,#01H
+000FE5 F0                MOVX    @DPTR,A
+  728: }
+000FE6 22                RET     
+----- FUNCTION deviceSwitch24GMode (END) -------
+
+
+----- FUNCTION mouseLKeyCheck (BEGIN) -----
+ FILE: 'sys.c'
+  284: static u8_t mouseLKeyCheck()
+  285: {
+  286: 	GPIO_SetOutput(Timer_div_io, 1);
+  287: 	g_variable.lKeyTemp <<=1;
+000FE7 D207              SETB    ?_GPIO_SetOutput?BIT
+000FE9 7F07              MOV     R7,#07H
+000FEB 12107F            LCALL   _GPIO_SetOutput
+  288: 	g_variable.lKeyTemp |= !GPIO_GetInputStatus(KS_BL_GPIO);
+000FEE 904ECA            MOV     DPTR,#g_variable+0FH
+000FF1 E0                MOVX    A,@DPTR
+000FF2 FF                MOV     R7,A
+000FF3 25E0              ADD     A,ACC
+000FF5 F0                MOVX    @DPTR,A
+  289: 	if (g_variable.lKeyTemp&0x01)
+000FF6 E0                MOVX    A,@DPTR
+000FF7 FF                MOV     R7,A
+000FF8 C007              PUSH    AR7
+000FFA 7F04              MOV     R7,#04H
+000FFC B122              ACALL   _GPIO_GetInputStatus
+000FFE 4004              JC      ?C0019?SYS
+001000 7E01              MOV     R6,#01H
+001002 8002              SJMP    ?C0020?SYS
+001004         ?C0019?SYS:
+001004 7E00              MOV     R6,#00H
+001006         ?C0020?SYS:
+001006 D0E0              POP     ACC
+001008 4E                ORL     A,R6
+001009 904ECA            MOV     DPTR,#g_variable+0FH
+00100C F0                MOVX    @DPTR,A
+  290: 	{
+00100D 30E006            JNB     ACC.0,?C0024?SYS
+  291: 		g_variable.wheelTimer= 2;
+  292: 	}
+001010 904EC7            MOV     DPTR,#g_variable+0CH
+001013 7402              MOV     A,#02H
+001015 F0                MOVX    @DPTR,A
+  293: 	do
+001016         ?C0024?SYS:
+  294: 	{ 
+  295: 		if((g_variable.lKeyTemp & 0x07) == 0x07)
+001016 904ECA            MOV     DPTR,#g_variable+0FH
+001019 E0                MOVX    A,@DPTR
+00101A 5407              ANL     A,#07H
+00101C FF                MOV     R7,A
+00101D BF0706            CJNE    R7,#07H,?C0025?SYS
+  296: 		{
+  297: 			g_variable.lKey = 1;
+001020 A3                INC     DPTR
+001021 7401              MOV     A,#01H
+001023 F0                MOVX    @DPTR,A
+  298: 			break;
+001024 8007              SJMP    ?C0023?SYS
+  299: 		}
+001026         ?C0025?SYS:
+  300: 		if((g_variable.lKeyTemp & 0x07) == 0x00)
+001026 EF                MOV     A,R7
+001027 7004              JNZ     ?C0023?SYS
+  301: 		{
+  302: 			g_variable.lKey = 0;
+001029 904ECB            MOV     DPTR,#g_variable+010H
+00102C F0                MOVX    @DPTR,A
+  303: 			break;
+  304: 		}
+  305: 	}while(0);
+00102D         ?C0023?SYS:
+  306: 	return g_variable.lKey;
+00102D 904ECB            MOV     DPTR,#g_variable+010H
+001030 E0                MOVX    A,@DPTR
+001031 FF                MOV     R7,A
+  307: }
+001032 22                RET     
+----- FUNCTION mouseLKeyCheck (END) -------
+
+
+----- FUNCTION mouseMKeyCheck (BEGIN) -----
+ FILE: 'sys.c'
+  309: static u8_t mouseMKeyCheck()
+  310: {
+  311: 	GPIO_SetOutput(Timer_div_io, 1);
+  312: 	g_variable.mKeyTemp <<=1;
+001033 D207              SETB    ?_GPIO_SetOutput?BIT
+001035 7F07              MOV     R7,#07H
+001037 117F              ACALL   _GPIO_SetOutput
+  313: 	g_variable.mKeyTemp |= !GPIO_GetInputStatus(KS_BM_GPIO);
+001039 904ECC            MOV     DPTR,#g_variable+011H
+00103C E0                MOVX    A,@DPTR
+00103D FF                MOV     R7,A
+00103E 25E0              ADD     A,ACC
+001040 F0                MOVX    @DPTR,A
+  314: 	if (g_variable.mKeyTemp&0x01) 
+001041 E0                MOVX    A,@DPTR
+001042 FF                MOV     R7,A
+001043 C007              PUSH    AR7
+001045 7F17              MOV     R7,#017H
+001047 120D22            LCALL   _GPIO_GetInputStatus
+00104A 4004              JC      ?C0028?SYS
+00104C 7E01              MOV     R6,#01H
+00104E 8002              SJMP    ?C0029?SYS
+001050         ?C0028?SYS:
+001050 7E00              MOV     R6,#00H
+001052         ?C0029?SYS:
+001052 D0E0              POP     ACC
+001054 4E                ORL     A,R6
+001055 904ECC            MOV     DPTR,#g_variable+011H
+001058 F0                MOVX    @DPTR,A
+  315: 	{
+001059 30E006            JNB     ACC.0,?C0033?SYS
+  316: 		g_variable.wheelTimer= 2 ;
+  317: 	}
+00105C 904EC7            MOV     DPTR,#g_variable+0CH
+00105F 7402              MOV     A,#02H
+001061 F0                MOVX    @DPTR,A
+  318: 	do 
+001062         ?C0033?SYS:
+  319: 	{ 
+  320: 		if((g_variable.mKeyTemp & 0x07) == 0x07) 
+001062 904ECC            MOV     DPTR,#g_variable+011H
+001065 E0                MOVX    A,@DPTR
+001066 5407              ANL     A,#07H
+001068 FF                MOV     R7,A
+001069 BF0706            CJNE    R7,#07H,?C0034?SYS
+  321: 		{
+  322: 			g_variable.mKey = 1;
+00106C A3                INC     DPTR
+00106D 7401              MOV     A,#01H
+00106F F0                MOVX    @DPTR,A
+  323: 			break;
+001070 8007              SJMP    ?C0032?SYS
+  324: 		}
+001072         ?C0034?SYS:
+  325: 		if((g_variable.mKeyTemp & 0x07) == 0x00) 
+001072 EF                MOV     A,R7
+001073 7004              JNZ     ?C0032?SYS
+  326: 		{
+  327: 			g_variable.mKey = 0;
+001075 904ECD            MOV     DPTR,#g_variable+012H
+001078 F0                MOVX    @DPTR,A
+  328: 			break;
+  329: 		}
+  330: 	}while(0);
+001079         ?C0032?SYS:
+  331: 	return g_variable.mKey;
+001079 904ECD            MOV     DPTR,#g_variable+012H
+00107C E0                MOVX    A,@DPTR
+00107D FF                MOV     R7,A
+  332: }
+00107E 22                RET     
+----- FUNCTION mouseMKeyCheck (END) -------
+
+
+----- FUNCTION _GPIO_SetOutput (BEGIN) -----
+ FILE: 'gpio.c'
+   67: void GPIO_SetOutput(u8_t gpio_num, bit  st)
+   68: {
+;---- Variable 'gpio_num' assigned to Register 'R4' ----
+00107F AC07              MOV     R4,AR7
+   69: 	GPIO_Setoe(gpio_num,1);
+   70: 	GPIO_Setout(gpio_num,st);
+001081 D205              SETB    ?_GPIO_Setoe?BIT
+001083 1203B8            LCALL   _GPIO_Setoe
+   71: 	GPIO_SetPu(gpio_num,0);
+001086 AF04              MOV     R7,AR4
+001088 A207              MOV     C,st
+00108A 9202              MOV     ?_GPIO_Setout?BIT,C
+00108C 119F              ACALL   _GPIO_Setout
+   72: }
+00108E AF04              MOV     R7,AR4
+001090 C203              CLR     ?_GPIO_SetPu?BIT
+;----                  JMP     _GPIO_SetPu
+----- FUNCTION _GPIO_SetOutput (END) -------
+
+
+----- FUNCTION _GPIO_SetPu (BEGIN) -----
+ FILE: 'gpio.c'
+   45: void GPIO_SetPu(u8_t gpio_num, bool bit_val)
+   46: {
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+   47: 	gpioSetBit(gpio_num, &REG_GPIO_PUP(0), bit_val);	
+   48: }
+001092 7B01              MOV     R3,#01H
+001094 7A80              MOV     R2,#080H
+001096 7978              MOV     R1,#078H
+001098 A203              MOV     C,bit_val
+00109A 9201              MOV     ?_gpioSetBit?BIT,C
+00109C 0203C2            LJMP    _gpioSetBit
+----- FUNCTION _GPIO_SetPu (END) -------
+
+
+----- FUNCTION _GPIO_Setout (BEGIN) -----
+ FILE: 'gpio.c'
+   40: void GPIO_Setout(u8_t gpio_num, bool bit_val)
+   41: {
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+   42: 	gpioSetBit(gpio_num, &REG_GPIO_OUT(0), bit_val);	
+   43: }
+00109F 7B01              MOV     R3,#01H
+0010A1 7A80              MOV     R2,#080H
+0010A3 7974              MOV     R1,#074H
+0010A5 A202              MOV     C,bit_val
+0010A7 9201              MOV     ?_gpioSetBit?BIT,C
+0010A9 0203C2            LJMP    _gpioSetBit
+----- FUNCTION _GPIO_Setout (END) -------
+
+
+----- FUNCTION deviceLedFlash (BEGIN) -----
+ FILE: 'sys.c'
+  824: static void deviceLedFlash()
+  825: {
+  826: 	if (g_variable.dpiLedFlipTime == 0){
+  827: 		g_variable.dpiLedStay = 1;
+0010AC 904EDD            MOV     DPTR,#g_variable+022H
+0010AF E0                MOVX    A,@DPTR
+0010B0 7006              JNZ     ?C0140?SYS
+  828: 		g_variable.dpiLedOnTimer = 0;
+0010B2 A3                INC     DPTR
+0010B3 04                INC     A
+0010B4 F0                MOVX    @DPTR,A
+  829: 	}
+0010B5 E4                CLR     A
+0010B6 A3                INC     DPTR
+0010B7 F0                MOVX    @DPTR,A
+  830: 	if (g_variable.dpiLedFlipTime){
+0010B8         ?C0140?SYS:
+  831: 		g_variable.dpiLedOnTimer++;
+0010B8 904EDD            MOV     DPTR,#g_variable+022H
+0010BB E0                MOVX    A,@DPTR
+0010BC 6038              JZ      ?C0141?SYS
+  832: 		if((g_variable.dpiLedOnTimer&0x07) == 0x05){
+0010BE 904EDF            MOV     DPTR,#g_variable+024H
+0010C1 E0                MOVX    A,@DPTR
+0010C2 04                INC     A
+0010C3 F0                MOVX    @DPTR,A
+  833: 			g_variable.wheelTimer = 0x0a;
+0010C4 E0                MOVX    A,@DPTR
+0010C5 5407              ANL     A,#07H
+0010C7 6405              XRL     A,#05H
+0010C9 7069              JNZ     ?C0151?SYS
+  834: 			if(g_variable.dpiLedStay){
+0010CB 904EC7            MOV     DPTR,#g_variable+0CH
+0010CE 740A              MOV     A,#0AH
+0010D0 F0                MOVX    @DPTR,A
+  835: 				GPIO_Setout( LED_GPIO, 0);
+0010D1 904EDE            MOV     DPTR,#g_variable+023H
+0010D4 E0                MOVX    A,@DPTR
+0010D5 600C              JZ      ?C0143?SYS
+  836: 				g_variable.dpiLedStay = 0;
+0010D7 C202              CLR     ?_GPIO_Setout?BIT
+0010D9 7F08              MOV     R7,#08H
+0010DB 119F              ACALL   _GPIO_Setout
+  837: 			}
+0010DD E4                CLR     A
+0010DE 904EDE            MOV     DPTR,#g_variable+023H
+0010E1 F0                MOVX    @DPTR,A
+  838: 			else{
+0010E2 22                RET     
+0010E3         ?C0143?SYS:
+  839: 				GPIO_Setout( LED_GPIO , 1);
+  840: 				g_variable.dpiLedStay = 1;
+0010E3 D202              SETB    ?_GPIO_Setout?BIT
+0010E5 7F08              MOV     R7,#08H
+0010E7 119F              ACALL   _GPIO_Setout
+  841: 				g_variable.dpiLedFlipTime--;
+0010E9 904EDE            MOV     DPTR,#g_variable+023H
+0010EC 7401              MOV     A,#01H
+0010EE F0                MOVX    @DPTR,A
+  842: 			}
+0010EF 904EDD            MOV     DPTR,#g_variable+022H
+0010F2 E0                MOVX    A,@DPTR
+0010F3 14                DEC     A
+0010F4 F0                MOVX    @DPTR,A
+  843: 		}
+  844: 	}
+  845: 	else if (g_variable.currentState == DEVICE_MODE_DISC){
+0010F5 22                RET     
+0010F6         ?C0141?SYS:
+  846: 		g_variable.wheelTimer = 0x45;
+0010F6 904EBD            MOV     DPTR,#g_variable+02H
+0010F9 E0                MOVX    A,@DPTR
+0010FA B40314            CJNE    A,#03H,?C0146?SYS
+  847: 		if((g_variable.timer100msCount&0x07) == 0x04)
+0010FD 904EC7            MOV     DPTR,#g_variable+0CH
+001100 7445              MOV     A,#045H
+001102 F0                MOVX    @DPTR,A
+  848: 			GPIO_FlipOutBit(LED_GPIO);
+001103 904EC9            MOV     DPTR,#g_variable+0EH
+001106 E0                MOVX    A,@DPTR
+001107 5407              ANL     A,#07H
+001109 6404              XRL     A,#04H
+00110B 7027              JNZ     ?C0151?SYS
+  849: 	}
+00110D 7F08              MOV     R7,#08H
+00110F 8024              SJMP    _GPIO_FlipOutBit
+  850: 	//low battery led
+001111         ?C0146?SYS:
+  851: 	else if ((g_variable.adcLowPowerFlag)&& ((g_variable.timer100msCount & 0x1f) < 5)){
+001111 904EE2            MOV     DPTR,#g_variable+027H
+001114 E0                MOVX    A,@DPTR
+001115 6017              JZ      ?C0149?SYS
+001117 904EC9            MOV     DPTR,#g_variable+0EH
+00111A E0                MOVX    A,@DPTR
+00111B 541F              ANL     A,#01FH
+00111D C3                CLR     C
+00111E 9405              SUBB    A,#05H
+001120 500C              JNC     ?C0149?SYS
+  852: 		g_variable.wheelTimer = 10;
+001122 904EC7            MOV     DPTR,#g_variable+0CH
+001125 740A              MOV     A,#0AH
+001127 F0                MOVX    @DPTR,A
+  853: 		GPIO_Setout(LED_GPIO, 0);
+001128 C202              CLR     ?_GPIO_Setout?BIT
+00112A 7F08              MOV     R7,#08H
+00112C 019F              AJMP    _GPIO_Setout
+  854: 		}
+00112E         ?C0149?SYS:
+  855: 	else  GPIO_Setout(LED_GPIO, 1);
+00112E D202              SETB    ?_GPIO_Setout?BIT
+001130 7F08              MOV     R7,#08H
+001132 119F              ACALL   _GPIO_Setout
+  856: }
+001134         ?C0151?SYS:
+001134 22                RET     
+----- FUNCTION deviceLedFlash (END) -------
+
+
+----- FUNCTION _GPIO_FlipOutBit (BEGIN) -----
+ FILE: 'gpio.c'
+  104: void GPIO_FlipOutBit(u8_t gpio_num)
+  105: {
+001135 901C2D            MOV     DPTR,#gpio_num
+001138 EF                MOV     A,R7
+001139 F0                MOVX    @DPTR,A
+  106: 	bool st = gpioGetBit(gpio_num, &REG_GPIO_OUT(0));
+  107: 	GPIO_Setout(gpio_num, ~st);
+00113A 7B01              MOV     R3,#01H
+00113C 7A80              MOV     R2,#080H
+00113E 7974              MOV     R1,#074H
+001140 120D28            LCALL   _gpioGetBit
+001143 920A              MOV     st,C
+  108: }
+001145 901C2D            MOV     DPTR,#gpio_num
+001148 E0                MOVX    A,@DPTR
+001149 FF                MOV     R7,A
+00114A A20A              MOV     C,st
+00114C B3                CPL     C
+00114D 9202              MOV     ?_GPIO_Setout?BIT,C
+00114F 019F              AJMP    _GPIO_Setout
+----- FUNCTION _GPIO_FlipOutBit (END) -------
+
+
+----- FUNCTION mouseKeyDetect (BEGIN) -----
+ FILE: 'sys.c'
+  500: void mouseKeyDetect()
+  501: {
+  502: 	u8_t buttonLeft = 0,buttonRight = 0,buttonMiddle = 0,buttonBack=0,buttonForward=0;
+  503: 	buttonLeft = mouseLKeyCheck();
+001151 E4                CLR     A
+001152 901BF3            MOV     DPTR,#buttonLeft
+001155 F0                MOVX    @DPTR,A
+001156 A3                INC     DPTR
+001157 F0                MOVX    @DPTR,A
+001158 A3                INC     DPTR
+001159 F0                MOVX    @DPTR,A
+00115A A3                INC     DPTR
+00115B F0                MOVX    @DPTR,A
+00115C A3                INC     DPTR
+00115D F0                MOVX    @DPTR,A
+  504: 	buttonMiddle = mouseMKeyCheck();
+00115E 120FE7            LCALL   mouseLKeyCheck
+001161 901BF3            MOV     DPTR,#buttonLeft
+001164 EF                MOV     A,R7
+001165 F0                MOVX    @DPTR,A
+  505: 	buttonRight = mouseRKeyCheck();
+001166 1133              ACALL   mouseMKeyCheck
+001168 901BF5            MOV     DPTR,#buttonMiddle
+00116B EF                MOV     A,R7
+00116C F0                MOVX    @DPTR,A
+  506: 	buttonBack = mouseBkKeyCheck();
+00116D 5182              ACALL   mouseRKeyCheck
+00116F 901BF4            MOV     DPTR,#buttonRight
+001172 EF                MOV     A,R7
+001173 F0                MOVX    @DPTR,A
+  507: 	buttonForward = mouseFwKeyCheck();
+001174 31B4              ACALL   mouseBkKeyCheck
+001176 901BF6            MOV     DPTR,#buttonBack
+001179 EF                MOV     A,R7
+00117A F0                MOVX    @DPTR,A
+  508: 
+00117B 511B              ACALL   mouseFwKeyCheck
+00117D 901BF7            MOV     DPTR,#buttonForward
+001180 EF                MOV     A,R7
+001181 F0                MOVX    @DPTR,A
+  509: 	mouseDpiKeyCheck();
+001182 120F43            LCALL   mouseDpiKeyCheck
+  510: 	g_variable.keyDetect = buttonLeft |buttonRight<<1|buttonMiddle<<2|buttonBack<<3|buttonForward<<4;
+001185 901BF4            MOV     DPTR,#buttonRight
+001188 E0                MOVX    A,@DPTR
+001189 FF                MOV     R7,A
+00118A 25E0              ADD     A,ACC
+00118C FF                MOV     R7,A
+00118D 901BF3            MOV     DPTR,#buttonLeft
+001190 E0                MOVX    A,@DPTR
+001191 4F                ORL     A,R7
+001192 FF                MOV     R7,A
+001193 901BF5            MOV     DPTR,#buttonMiddle
+001196 E0                MOVX    A,@DPTR
+001197 FE                MOV     R6,A
+001198 25E0              ADD     A,ACC
+00119A 25E0              ADD     A,ACC
+00119C 4F                ORL     A,R7
+00119D FF                MOV     R7,A
+00119E A3                INC     DPTR
+00119F E0                MOVX    A,@DPTR
+0011A0 FE                MOV     R6,A
+0011A1 33                RLC     A
+0011A2 33                RLC     A
+0011A3 33                RLC     A
+0011A4 54F8              ANL     A,#0F8H
+0011A6 4F                ORL     A,R7
+0011A7 FF                MOV     R7,A
+0011A8 A3                INC     DPTR
+0011A9 E0                MOVX    A,@DPTR
+0011AA FE                MOV     R6,A
+0011AB C4                SWAP    A
+0011AC 54F0              ANL     A,#0F0H
+0011AE 4F                ORL     A,R7
+0011AF 904EED            MOV     DPTR,#g_variable+032H
+0011B2 F0                MOVX    @DPTR,A
+  511: }
+0011B3 22                RET     
+----- FUNCTION mouseKeyDetect (END) -------
+
+
+----- FUNCTION mouseBkKeyCheck (BEGIN) -----
+ FILE: 'sys.c'
+  360: static u8_t mouseBkKeyCheck()
+  361: {
+  362: 	if (!GPIO_GetInputStatus(KS_BK_GPIO)) return 0;
+  363: 	GPIO_SetOutput(Timer_div_io, 0);
+0011B4 7F17              MOV     R7,#017H
+0011B6 120D22            LCALL   _GPIO_GetInputStatus
+0011B9 4003              JC      ?C0046?SYS
+0011BB 7F00              MOV     R7,#00H
+0011BD 22                RET     
+0011BE         ?C0046?SYS:
+  364: 	g_variable.bkKeyTemp <<=1;
+0011BE C207              CLR     ?_GPIO_SetOutput?BIT
+0011C0 7F07              MOV     R7,#07H
+0011C2 117F              ACALL   _GPIO_SetOutput
+  365: 	g_variable.bkKeyTemp |= !GPIO_GetInputStatus(KS_BK_GPIO);
+0011C4 904ED2            MOV     DPTR,#g_variable+017H
+0011C7 E0                MOVX    A,@DPTR
+0011C8 FF                MOV     R7,A
+0011C9 25E0              ADD     A,ACC
+0011CB F0                MOVX    @DPTR,A
+  366: 	GPIO_SetOutput(Timer_div_io,1);
+0011CC E0                MOVX    A,@DPTR
+0011CD FF                MOV     R7,A
+0011CE C007              PUSH    AR7
+0011D0 7F17              MOV     R7,#017H
+0011D2 120D22            LCALL   _GPIO_GetInputStatus
+0011D5 4004              JC      ?C0048?SYS
+0011D7 7E01              MOV     R6,#01H
+0011D9 8002              SJMP    ?C0049?SYS
+0011DB         ?C0048?SYS:
+0011DB 7E00              MOV     R6,#00H
+0011DD         ?C0049?SYS:
+0011DD D0E0              POP     ACC
+0011DF 4E                ORL     A,R6
+0011E0 904ED2            MOV     DPTR,#g_variable+017H
+0011E3 F0                MOVX    @DPTR,A
+  367: 	GPIO_SetInput(Timer_div_io, 0);	
+0011E4 D207              SETB    ?_GPIO_SetOutput?BIT
+0011E6 7F07              MOV     R7,#07H
+0011E8 117F              ACALL   _GPIO_SetOutput
+  368: 	if (g_variable.bkKeyTemp&0x01)
+0011EA C206              CLR     ?_GPIO_SetInput?BIT
+0011EC 7F07              MOV     R7,#07H
+0011EE 1203A1            LCALL   _GPIO_SetInput
+  369: 	{
+0011F1 904ED2            MOV     DPTR,#g_variable+017H
+0011F4 E0                MOVX    A,@DPTR
+0011F5 30E006            JNB     ACC.0,?C0053?SYS
+  370: 		g_variable.wheelTimer= 2 ;
+  371: 	}	
+0011F8 904EC7            MOV     DPTR,#g_variable+0CH
+0011FB 7402              MOV     A,#02H
+0011FD F0                MOVX    @DPTR,A
+  372: 	do 
+0011FE         ?C0053?SYS:
+  373: 	{ 
+  374: 		if((g_variable.bkKeyTemp & 0x07) == 0x07)
+0011FE 904ED2            MOV     DPTR,#g_variable+017H
+001201 E0                MOVX    A,@DPTR
+001202 5407              ANL     A,#07H
+001204 FF                MOV     R7,A
+001205 BF0706            CJNE    R7,#07H,?C0054?SYS
+  375: 		{
+  376: 			g_variable.bkKey = 1;
+001208 A3                INC     DPTR
+001209 7401              MOV     A,#01H
+00120B F0                MOVX    @DPTR,A
+  377: 			break;
+00120C 8007              SJMP    ?C0052?SYS
+  378: 		}
+00120E         ?C0054?SYS:
+  379: 		if((g_variable.bkKeyTemp & 0x07) == 0x00)
+00120E EF                MOV     A,R7
+00120F 7004              JNZ     ?C0052?SYS
+  380: 		{
+  381: 			g_variable.bkKey = 0;
+001211 904ED3            MOV     DPTR,#g_variable+018H
+001214 F0                MOVX    @DPTR,A
+  382: 			break;
+  383: 		}
+  384: 	}while(0);
+001215         ?C0052?SYS:
+  385: 	return g_variable.bkKey;
+001215 904ED3            MOV     DPTR,#g_variable+018H
+001218 E0                MOVX    A,@DPTR
+001219 FF                MOV     R7,A
+  386: }
+00121A 22                RET     
+----- FUNCTION mouseBkKeyCheck (END) -------
+
+
+----- FUNCTION mouseFwKeyCheck (BEGIN) -----
+ FILE: 'sys.c'
+  388: static u8_t mouseFwKeyCheck()
+  389: {
+  390: 	if (!GPIO_GetInputStatus(KS_FW_GPIO)) return 0;
+  391: 	GPIO_SetOutput(Timer_div_io, 0);
+00121B 7F04              MOV     R7,#04H
+00121D 120D22            LCALL   _GPIO_GetInputStatus
+001220 4003              JC      ?C0056?SYS
+001222 7F00              MOV     R7,#00H
+001224 22                RET     
+001225         ?C0056?SYS:
+  392: 	g_variable.fwKeyTemp <<=1;
+001225 C207              CLR     ?_GPIO_SetOutput?BIT
+001227 7F07              MOV     R7,#07H
+001229 117F              ACALL   _GPIO_SetOutput
+  393: 	g_variable.fwKeyTemp |= !GPIO_GetInputStatus(KS_FW_GPIO);
+00122B 904ED0            MOV     DPTR,#g_variable+015H
+00122E E0                MOVX    A,@DPTR
+00122F FF                MOV     R7,A
+001230 25E0              ADD     A,ACC
+001232 F0                MOVX    @DPTR,A
+  394: 	GPIO_SetOutput(Timer_div_io,1);
+001233 E0                MOVX    A,@DPTR
+001234 FF                MOV     R7,A
+001235 C007              PUSH    AR7
+001237 7F04              MOV     R7,#04H
+001239 120D22            LCALL   _GPIO_GetInputStatus
+00123C 4004              JC      ?C0058?SYS
+00123E 7E01              MOV     R6,#01H
+001240 8002              SJMP    ?C0059?SYS
+001242         ?C0058?SYS:
+001242 7E00              MOV     R6,#00H
+001244         ?C0059?SYS:
+001244 D0E0              POP     ACC
+001246 4E                ORL     A,R6
+001247 904ED0            MOV     DPTR,#g_variable+015H
+00124A F0                MOVX    @DPTR,A
+  395: 	GPIO_SetInput(Timer_div_io, 0);	
+00124B D207              SETB    ?_GPIO_SetOutput?BIT
+00124D 7F07              MOV     R7,#07H
+00124F 117F              ACALL   _GPIO_SetOutput
+  396: 	if (g_variable.fwKeyTemp&0x01) 
+001251 C206              CLR     ?_GPIO_SetInput?BIT
+001253 7F07              MOV     R7,#07H
+001255 1203A1            LCALL   _GPIO_SetInput
+  397: 	{
+001258 904ED0            MOV     DPTR,#g_variable+015H
+00125B E0                MOVX    A,@DPTR
+00125C 30E006            JNB     ACC.0,?C0063?SYS
+  398: 		g_variable.wheelTimer= 2 ;
+  399: 	}
+00125F 904EC7            MOV     DPTR,#g_variable+0CH
+001262 7402              MOV     A,#02H
+001264 F0                MOVX    @DPTR,A
+  400: 	do
+001265         ?C0063?SYS:
+  401: 	{ 
+  402: 		if((g_variable.fwKeyTemp & 0x07) == 0x07) 
+001265 904ED0            MOV     DPTR,#g_variable+015H
+001268 E0                MOVX    A,@DPTR
+001269 5407              ANL     A,#07H
+00126B FF                MOV     R7,A
+00126C BF0706            CJNE    R7,#07H,?C0064?SYS
+  403: 		{
+  404: 			g_variable.fwKey = 1;
+00126F A3                INC     DPTR
+001270 7401              MOV     A,#01H
+001272 F0                MOVX    @DPTR,A
+  405: 			break;
+001273 8007              SJMP    ?C0062?SYS
+  406: 		}
+001275         ?C0064?SYS:
+  407: 		if((g_variable.fwKeyTemp & 0x07) == 0x00)
+001275 EF                MOV     A,R7
+001276 7004              JNZ     ?C0062?SYS
+  408: 		{
+  409: 			g_variable.fwKey = 0;
+001278 904ED1            MOV     DPTR,#g_variable+016H
+00127B F0                MOVX    @DPTR,A
+  410: 			break;
+  411: 		}
+  412: 	}while(0);
+00127C         ?C0062?SYS:
+  413: 	return g_variable.fwKey;
+00127C 904ED1            MOV     DPTR,#g_variable+016H
+00127F E0                MOVX    A,@DPTR
+001280 FF                MOV     R7,A
+  414: }
+001281 22                RET     
+----- FUNCTION mouseFwKeyCheck (END) -------
+
+
+----- FUNCTION mouseRKeyCheck (BEGIN) -----
+ FILE: 'sys.c'
+  335: static u8_t mouseRKeyCheck()
+  336: {
+  337: 	GPIO_SetOutput(Timer_div_io, 1);
+  338: 	g_variable.rKeyTemp <<=1;
+001282 D207              SETB    ?_GPIO_SetOutput?BIT
+001284 7F07              MOV     R7,#07H
+001286 117F              ACALL   _GPIO_SetOutput
+  339: 	g_variable.rKeyTemp |= !GPIO_GetInputStatus(KS_BR_GPIO);
+001288 904ECE            MOV     DPTR,#g_variable+013H
+00128B E0                MOVX    A,@DPTR
+00128C FF                MOV     R7,A
+00128D 25E0              ADD     A,ACC
+00128F F0                MOVX    @DPTR,A
+  340: 	if (g_variable.rKeyTemp&0x01) 
+001290 E0                MOVX    A,@DPTR
+001291 FF                MOV     R7,A
+001292 C007              PUSH    AR7
+001294 7F1B              MOV     R7,#01BH
+001296 120D22            LCALL   _GPIO_GetInputStatus
+001299 4004              JC      ?C0037?SYS
+00129B 7E01              MOV     R6,#01H
+00129D 8002              SJMP    ?C0038?SYS
+00129F         ?C0037?SYS:
+00129F 7E00              MOV     R6,#00H
+0012A1         ?C0038?SYS:
+0012A1 D0E0              POP     ACC
+0012A3 4E                ORL     A,R6
+0012A4 904ECE            MOV     DPTR,#g_variable+013H
+0012A7 F0                MOVX    @DPTR,A
+  341: 	{
+0012A8 30E006            JNB     ACC.0,?C0042?SYS
+  342: 		g_variable.wheelTimer= 2 ;
+  343: 	}
+0012AB 904EC7            MOV     DPTR,#g_variable+0CH
+0012AE 7402              MOV     A,#02H
+0012B0 F0                MOVX    @DPTR,A
+  344: 	do 
+0012B1         ?C0042?SYS:
+  345: 	{ 
+  346: 		if((g_variable.rKeyTemp & 0x07) == 0x07) 
+0012B1 904ECE            MOV     DPTR,#g_variable+013H
+0012B4 E0                MOVX    A,@DPTR
+0012B5 5407              ANL     A,#07H
+0012B7 FF                MOV     R7,A
+0012B8 BF0706            CJNE    R7,#07H,?C0043?SYS
+  347: 		{
+  348: 			g_variable.rKey = 1;
+0012BB A3                INC     DPTR
+0012BC 7401              MOV     A,#01H
+0012BE F0                MOVX    @DPTR,A
+  349: 			break;
+0012BF 8007              SJMP    ?C0041?SYS
+  350: 		}
+0012C1         ?C0043?SYS:
+  351: 		if((g_variable.rKeyTemp & 0x07) == 0x00) 
+0012C1 EF                MOV     A,R7
+0012C2 7004              JNZ     ?C0041?SYS
+  352: 		{
+  353: 			g_variable.rKey = 0;
+0012C4 904ECF            MOV     DPTR,#g_variable+014H
+0012C7 F0                MOVX    @DPTR,A
+  354: 			break;
+  355: 		}
+  356: 	}while(0);
+0012C8         ?C0041?SYS:
+  357: 	return g_variable.rKey;
+0012C8 904ECF            MOV     DPTR,#g_variable+014H
+0012CB E0                MOVX    A,@DPTR
+0012CC FF                MOV     R7,A
+  358: }
+0012CD 22                RET     
+----- FUNCTION mouseRKeyCheck (END) -------
+
+
+----- FUNCTION YC_24gShortLpmProcess (BEGIN) -----
+ FILE: 'sys.c'
+ 1387: void YC_24gShortLpmProcess(void)
+ 1388: {
+ 1389: 	u8_t deltaXL=0, deltaYL=0, deltaXH=0, deltaYH=0;
+ 1390: 	u8_t send_flag = 0;
+0012CE E4                CLR     A
+0012CF 901BE1            MOV     DPTR,#deltaXL
+0012D2 F0                MOVX    @DPTR,A
+0012D3 A3                INC     DPTR
+0012D4 F0                MOVX    @DPTR,A
+0012D5 A3                INC     DPTR
+0012D6 F0                MOVX    @DPTR,A
+0012D7 A3                INC     DPTR
+0012D8 F0                MOVX    @DPTR,A
+ 1391: 	u8_t poll_cnt = 0;
+0012D9 A3                INC     DPTR
+0012DA F0                MOVX    @DPTR,A
+ 1392: 
+0012DB A3                INC     DPTR
+0012DC F0                MOVX    @DPTR,A
+ 1393: 	m_sendData24gShortLpm = SHORT_LPM_STATE_POLLING;
+0012DD 904E7D            MOV     DPTR,#m_sendData24gShortLpm
+0012E0 F0                MOVX    @DPTR,A
+ 1394: 
+ 1395: 	SPI_Initialize();//spi
+0012E1 D1FA              ACALL   SPI_Initialize
+ 1396: 	if ( g_variable.currentState == DEVICE_MODE_24G && g_variable.g24DongleExist == 1
+0012E3 904EBD            MOV     DPTR,#g_variable+02H
+0012E6 E0                MOVX    A,@DPTR
+0012E7 B40117            CJNE    A,#01H,?C0237?SYS
+0012EA 904EE3            MOV     DPTR,#g_variable+028H
+0012ED E0                MOVX    A,@DPTR
+0012EE B40110            CJNE    A,#01H,?C0237?SYS
+0012F1 7F18              MOV     R7,#018H
+0012F3 120D22            LCALL   _GPIO_GetInputStatus
+0012F6 4009              JC      ?C0237?SYS
+ 1397: 		&&(!GPIO_GetInputStatus(SENSOR_MOTION_GPIO))){
+ 1398: 		send_flag = mouseReadSensor();
+0012F8 120B5A            LCALL   mouseReadSensor
+0012FB E4                CLR     A
+0012FC 33                RLC     A
+0012FD 901BE5            MOV     DPTR,#send_flag
+001300 F0                MOVX    @DPTR,A
+ 1399: 	}
+001301         ?C0237?SYS:
+ 1400: 	g_variable.currentState = DEVICE_MODE_24G;
+001301 904EBD            MOV     DPTR,#g_variable+02H
+001304 7401              MOV     A,#01H
+001306 F0                MOVX    @DPTR,A
+001307         ?C0238?SYS:
+ 1401: 	
+ 1402: 	while(1){
+ 1403: 		poll_cnt ++;
+001307 901BE6            MOV     DPTR,#poll_cnt
+00130A E0                MOVX    A,@DPTR
+00130B 04                INC     A
+00130C F0                MOVX    @DPTR,A
+ 1404: 		IPC_DealSingleStep();
+00130D 71CF              ACALL   IPC_DealSingleStep
+ 1405: 		if(poll_cnt > 5){
+00130F 901BE6            MOV     DPTR,#poll_cnt
+001312 E0                MOVX    A,@DPTR
+001313 D3                SETB    C
+001314 9405              SUBB    A,#05H
+001316 400B              JC      ?C0240?SYS
+ 1406: 			poll_cnt = 5;
+001318 7405              MOV     A,#05H
+00131A F0                MOVX    @DPTR,A
+ 1407: 			m_sendData24gShortLpm = SHORT_LPM_STATE_NODATA;
+00131B 904E7D            MOV     DPTR,#m_sendData24gShortLpm
+00131E 7402              MOV     A,#02H
+001320 F0                MOVX    @DPTR,A
+ 1408: 		}else{
+001321 8075              SJMP    ?C0241?SYS
+001323         ?C0240?SYS:
+ 1409: 			mouseWheelScan();
+001323 D165              ACALL   mouseWheelScan
+ 1410: 			mouseKeyDetect();			
+001325 3151              ACALL   mouseKeyDetect
+ 1411: 			if(SHORT_LPM_STATE_POLLING== m_sendData24gShortLpm){
+001327 904E7D            MOV     DPTR,#m_sendData24gShortLpm
+00132A E0                MOVX    A,@DPTR
+00132B 706B              JNZ     ?C0241?SYS
+ 1412: 				if (g_variable.deltaZWheel)
+00132D 904ED8            MOV     DPTR,#g_variable+01DH
+001330 E0                MOVX    A,@DPTR
+001331 6016              JZ      ?C0243?SYS
+ 1413: 				{
+ 1414: 					send_flag = 1;
+001333 901BE5            MOV     DPTR,#send_flag
+001336 7401              MOV     A,#01H
+001338 F0                MOVX    @DPTR,A
+ 1415: 					m_sendData24gShortLpm = SHORT_LPM_STATE_BUTTON_WHEEL;
+001339 904E7D            MOV     DPTR,#m_sendData24gShortLpm
+00133C 7403              MOV     A,#03H
+00133E F0                MOVX    @DPTR,A
+ 1416: 					m_new24gKWEvent = 1;
+00133F 9049B7            MOV     DPTR,#m_new24gKWEvent
+001342 7401              MOV     A,#01H
+001344 F0                MOVX    @DPTR,A
+ 1417: 					m_shortDataWheel = 1;
+001345 904E80            MOV     DPTR,#m_shortDataWheel
+001348 F0                MOVX    @DPTR,A
+ 1418: 				}
+001349         ?C0243?SYS:
+ 1419: 				if(g_variable.deltaKey != g_variable.keyDetect)
+001349 904EED            MOV     DPTR,#g_variable+032H
+00134C E0                MOVX    A,@DPTR
+00134D FF                MOV     R7,A
+00134E 904ED4            MOV     DPTR,#g_variable+019H
+001351 E0                MOVX    A,@DPTR
+001352 6F                XRL     A,R7
+001353 601D              JZ      ?C0244?SYS
+ 1420: 				{	
+ 1421: 					m_new24gKWEvent = 1;
+001355 9049B7            MOV     DPTR,#m_new24gKWEvent
+001358 7401              MOV     A,#01H
+00135A F0                MOVX    @DPTR,A
+ 1422: 					send_flag = 1;
+00135B 901BE5            MOV     DPTR,#send_flag
+00135E F0                MOVX    @DPTR,A
+ 1423: 					m_sendData24gShortLpm = SHORT_LPM_STATE_BUTTON_WHEEL;
+00135F 904E7D            MOV     DPTR,#m_sendData24gShortLpm
+001362 7403              MOV     A,#03H
+001364 F0                MOVX    @DPTR,A
+ 1424: 					g_variable.deltaKey = g_variable.keyDetect;
+001365 904ED4            MOV     DPTR,#g_variable+019H
+001368 EF                MOV     A,R7
+001369 F0                MOVX    @DPTR,A
+ 1425: 					if (g_variable.deltaKey == 0x07) {
+00136A BF0705            CJNE    R7,#07H,?C0244?SYS
+ 1426: 					//	g_variable.deltaKey = 0;
+ 1427: 						send_flag = 0;
+00136D E4                CLR     A
+00136E 901BE5            MOV     DPTR,#send_flag
+001371 F0                MOVX    @DPTR,A
+ 1428: 					}
+ 1429: 				}
+001372         ?C0244?SYS:
+ 1430: 				if(g_variable.deltaKey == 0x07)
+001372 904ED4            MOV     DPTR,#g_variable+019H
+001375 E0                MOVX    A,@DPTR
+001376 B40706            CJNE    A,#07H,?C0246?SYS
+ 1431: 				{
+ 1432: 					//m_new24gKWEvent = 1;
+ 1433: 					m_sendData24gShortLpm = SHORT_LPM_STATE_BUTTON_WHEEL;
+001379 904E7D            MOV     DPTR,#m_sendData24gShortLpm
+00137C 7403              MOV     A,#03H
+00137E F0                MOVX    @DPTR,A
+ 1434: 				}
+00137F         ?C0246?SYS:
+ 1435: 				
+ 1436: 				if(1 == send_flag){
+00137F 901BE5            MOV     DPTR,#send_flag
+001382 E0                MOVX    A,@DPTR
+001383 B40112            CJNE    A,#01H,?C0241?SYS
+ 1437: 					mousePackage();
+001386 F16E              ACALL   mousePackage
+ 1438: 					send_flag = 0;
+001388 E4                CLR     A
+001389 901BE5            MOV     DPTR,#send_flag
+00138C F0                MOVX    @DPTR,A
+ 1439: 					if(SHORT_LPM_STATE_BUTTON_WHEEL != m_sendData24gShortLpm){
+00138D 904E7D            MOV     DPTR,#m_sendData24gShortLpm
+001390 E0                MOVX    A,@DPTR
+001391 6403              XRL     A,#03H
+001393 6003              JZ      ?C0241?SYS
+ 1440: 						m_sendData24gShortLpm = SHORT_LPM_STATE_DATA;
+001395 7401              MOV     A,#01H
+001397 F0                MOVX    @DPTR,A
+ 1441: 					}
+ 1442: 				}
+ 1443: 			}
+ 1444: 		}
+001398         ?C0241?SYS:
+ 1445: 
+ 1446: #if OTA_ENABLE
+ 1447: 		//OTA
+ 1448: 		if(m_24gRxPayload[0] == PC_REPORT_ID 
+ 1449: 			&&m_24gRxPayload[1] == CMD_USER_DEFINE
+ 1450: 			&&m_24gRxPayload[2] == CMD_OTA_START){
+ 1451: 			wirelessCmdOtaStart();
+ 1452: 		}		
+ 1453: #endif
+ 1454: 
+ 1455: 		if(FIX_ENTER_LPM == current_task){
+001398 900B2A            MOV     DPTR,#current_task
+00139B E0                MOVX    A,@DPTR
+00139C 6401              XRL     A,#01H
+00139E 6002              JZ      $ + 4H
+0013A0 6107              AJMP    ?C0238?SYS
+ 1456: 			if(g_variable.wheelTimer ||g_variable.lockLpm)
+0013A2 904EC7            MOV     DPTR,#g_variable+0CH
+0013A5 E0                MOVX    A,@DPTR
+0013A6 7006              JNZ     ?C0251?SYS
+0013A8 904EC1            MOV     DPTR,#g_variable+06H
+0013AB E0                MOVX    A,@DPTR
+0013AC 6002              JZ      ?C0250?SYS
+0013AE         ?C0251?SYS:
+ 1457: 			{
+ 1458: 				IPC_AbandonLpm();
+0013AE 8013              SJMP    IPC_AbandonLpm
+ 1459: 				break;
+ 1460: 			}
+0013B0         ?C0250?SYS:
+ 1461: 			if (g_variable.currentState == DEVICE_MODE_24G)
+0013B0 904EBD            MOV     DPTR,#g_variable+02H
+0013B3 E0                MOVX    A,@DPTR
+0013B4 B4010C            CJNE    A,#01H,?C0252?SYS
+ 1462: 			{
+ 1463: 				YC_SetWake();
+0013B7 120716            LCALL   YC_SetWake
+ 1464: 				GPIO_SetWakeup(SENSOR_MOTION_GPIO,0);
+0013BA C208              CLR     ?_GPIO_SetWakeup?BIT
+0013BC 7F18              MOV     R7,#018H
+0013BE 120781            LCALL   _GPIO_SetWakeup
+ 1465: 				IPC_WaitLpm();	//<wait enter lpm,do nothing
+0013C1 C13A              AJMP    IPC_WaitLpm
+ 1466: 				break;
+ 1467: 			}
+0013C3         ?C0252?SYS:
+;----                  JMP     IPC_AbandonLpm
+ 1468: 			else
+ 1469: 			{
+ 1470: 				IPC_AbandonLpm();
+ 1471: 				break;
+ 1472: 			}
+ 1473: 		}
+ 1474: 	}
+----- FUNCTION YC_24gShortLpmProcess (END) -------
+
+
+----- FUNCTION IPC_AbandonLpm (BEGIN) -----
+ FILE: 'ipc.c'
+  133: void IPC_AbandonLpm()
+  134: {
+  135: 	lpm_flag = 1;
+  136: 	current_task = 0;
+0013C3 900B2B            MOV     DPTR,#lpm_flag
+0013C6 7401              MOV     A,#01H
+0013C8 F0                MOVX    @DPTR,A
+  137: }
+0013C9 E4                CLR     A
+0013CA 900B2A            MOV     DPTR,#current_task
+0013CD F0                MOVX    @DPTR,A
+  138: 
+0013CE 22                RET     
+----- FUNCTION IPC_AbandonLpm (END) -------
+
+
+----- FUNCTION IPC_DealSingleStep (BEGIN) -----
+ FILE: 'ipc.c'
+  147: void IPC_DealSingleStep()
+  148: {
+  149: 	u8_t *pbuff = ipcReadBuff;
+  150: 	if (ipcRxReadPtr == ipcRxWritePtr)
+0013CF 7A1A              MOV     R2,#HIGH ipcReadBuff
+0013D1 7900              MOV     R1,#LOW ipcReadBuff
+0013D3 901C22            MOV     DPTR,#pbuff
+0013D6 7401              MOV     A,#01H
+0013D8 F0                MOVX    @DPTR,A
+0013D9 A3                INC     DPTR
+0013DA 741A              MOV     A,#HIGH ipcReadBuff
+0013DC F0                MOVX    @DPTR,A
+0013DD A3                INC     DPTR
+0013DE 7400              MOV     A,#LOW ipcReadBuff
+0013E0 F0                MOVX    @DPTR,A
+  151: 		goto IPC_TIMER;
+0013E1 90482E            MOV     DPTR,#ipcRxWritePtr
+0013E4 E0                MOVX    A,@DPTR
+0013E5 FE                MOV     R6,A
+0013E6 A3                INC     DPTR
+0013E7 E0                MOVX    A,@DPTR
+0013E8 FF                MOV     R7,A
+0013E9 90482C            MOV     DPTR,#ipcRxReadPtr
+0013EC E0                MOVX    A,@DPTR
+0013ED 6E                XRL     A,R6
+0013EE 7003              JNZ     ?C0054?IPC
+0013F0 A3                INC     DPTR
+0013F1 E0                MOVX    A,@DPTR
+0013F2 6F                XRL     A,R7
+0013F3         ?C0054?IPC:
+0013F3 7002              JNZ     $ + 4H
+0013F5 A186              AJMP    ?C0041?IPC
+  152: 	ipcRx(ipcReadBuff, IPC_HEAD_LEN);
+0013F7         ?C0029?IPC:
+  153: 	if (*pbuff == IPC_CONTROL_EVT) {
+0013F7 7B01              MOV     R3,#01H
+0013F9 7A1A              MOV     R2,#HIGH ipcReadBuff
+0013FB 7900              MOV     R1,#LOW ipcReadBuff
+0013FD 7D03              MOV     R5,#03H
+0013FF B1DF              ACALL   _ipcRx
+  154: 		pbuff += 2;
+001401 901C22            MOV     DPTR,#pbuff
+001404 E0                MOVX    A,@DPTR
+001405 FB                MOV     R3,A
+001406 A3                INC     DPTR
+001407 E0                MOVX    A,@DPTR
+001408 FA                MOV     R2,A
+001409 A3                INC     DPTR
+00140A E0                MOVX    A,@DPTR
+00140B F9                MOV     R1,A
+00140C 1200F9            LCALL   ?C?CLDPTR
+00140F B4022B            CJNE    A,#02H,?C0031?IPC
+  155: 		ipcCb.evtcb(*pbuff);
+001412 901C23            MOV     DPTR,#pbuff+01H
+001415 E4                CLR     A
+001416 75F002            MOV     B,#02H
+001419 1201EE            LCALL   ?C?IILDX
+  156: 	}
+00141C 901C22            MOV     DPTR,#pbuff
+00141F E0                MOVX    A,@DPTR
+001420 FB                MOV     R3,A
+001421 A3                INC     DPTR
+001422 E0                MOVX    A,@DPTR
+001423 FA                MOV     R2,A
+001424 A3                INC     DPTR
+001425 E0                MOVX    A,@DPTR
+001426 F9                MOV     R1,A
+001427 1200F9            LCALL   ?C?CLDPTR
+00142A FF                MOV     R7,A
+00142B 904830            MOV     DPTR,#ipcCb
+00142E E0                MOVX    A,@DPTR
+00142F A3                INC     DPTR
+001430 E0                MOVX    A,@DPTR
+001431 FA                MOV     R2,A
+001432 A3                INC     DPTR
+001433 E0                MOVX    A,@DPTR
+001434 F582              MOV     DPL,A
+001436 8A83              MOV     DPH,R2
+001438 120244            LCALL   ?C?ICALL2
+  157: 	else if (*pbuff == IPC_SPP_DATA) {
+00143B A186              AJMP    ?C0041?IPC
+00143D         ?C0031?IPC:
+  158: 		pbuff ++ ;
+00143D 901C22            MOV     DPTR,#pbuff
+001440 E0                MOVX    A,@DPTR
+001441 FB                MOV     R3,A
+001442 A3                INC     DPTR
+001443 E0                MOVX    A,@DPTR
+001444 FA                MOV     R2,A
+001445 A3                INC     DPTR
+001446 E0                MOVX    A,@DPTR
+001447 F9                MOV     R1,A
+001448 1200F9            LCALL   ?C?CLDPTR
+00144B 6404              XRL     A,#04H
+00144D 705B              JNZ     ?C0033?IPC
+  159: 		ipcRx(ipcReadBuff+3, *pbuff -1);
+00144F 901C23            MOV     DPTR,#pbuff+01H
+001452 75F001            MOV     B,#01H
+001455 1201EE            LCALL   ?C?IILDX
+  160: 		ipcCb.sppcb(pbuff+1, *pbuff);
+001458 901C22            MOV     DPTR,#pbuff
+00145B E0                MOVX    A,@DPTR
+00145C FB                MOV     R3,A
+00145D A3                INC     DPTR
+00145E E0                MOVX    A,@DPTR
+00145F FA                MOV     R2,A
+001460 A3                INC     DPTR
+001461 E0                MOVX    A,@DPTR
+001462 F9                MOV     R1,A
+001463 1200F9            LCALL   ?C?CLDPTR
+001466 14                DEC     A
+001467 FD                MOV     R5,A
+001468 7B01              MOV     R3,#01H
+00146A 7A1A              MOV     R2,#HIGH ipcReadBuff+03H
+00146C 7903              MOV     R1,#LOW ipcReadBuff+03H
+00146E B1DF              ACALL   _ipcRx
+  161: 	}
+001470 901C22            MOV     DPTR,#pbuff
+001473 E0                MOVX    A,@DPTR
+001474 FB                MOV     R3,A
+001475 A3                INC     DPTR
+001476 E0                MOVX    A,@DPTR
+001477 FA                MOV     R2,A
+001478 A3                INC     DPTR
+001479 E0                MOVX    A,@DPTR
+00147A 2401              ADD     A,#01H
+00147C F9                MOV     R1,A
+00147D E4                CLR     A
+00147E 3A                ADDC    A,R2
+00147F FA                MOV     R2,A
+001480 C002              PUSH    AR2
+001482 C001              PUSH    AR1
+001484 901C22            MOV     DPTR,#pbuff
+001487 E0                MOVX    A,@DPTR
+001488 A3                INC     DPTR
+001489 E0                MOVX    A,@DPTR
+00148A FA                MOV     R2,A
+00148B A3                INC     DPTR
+00148C E0                MOVX    A,@DPTR
+00148D F9                MOV     R1,A
+00148E 1200F9            LCALL   ?C?CLDPTR
+001491 FD                MOV     R5,A
+001492 7C00              MOV     R4,#00H
+001494 904833            MOV     DPTR,#ipcCb+03H
+001497 E0                MOVX    A,@DPTR
+001498 A3                INC     DPTR
+001499 E0                MOVX    A,@DPTR
+00149A FA                MOV     R2,A
+00149B A3                INC     DPTR
+00149C E0                MOVX    A,@DPTR
+00149D F582              MOV     DPL,A
+00149F 8A83              MOV     DPH,R2
+0014A1 D001              POP     AR1
+0014A3 D002              POP     AR2
+0014A5 120244            LCALL   ?C?ICALL2
+  162: 	else if (*pbuff == IPC_BLE_DATA) {
+0014A8 A186              AJMP    ?C0041?IPC
+0014AA         ?C0033?IPC:
+  163: 		pbuff ++ ;
+0014AA 901C22            MOV     DPTR,#pbuff
+0014AD E0                MOVX    A,@DPTR
+0014AE FB                MOV     R3,A
+0014AF A3                INC     DPTR
+0014B0 E0                MOVX    A,@DPTR
+0014B1 FA                MOV     R2,A
+0014B2 A3                INC     DPTR
+0014B3 E0                MOVX    A,@DPTR
+0014B4 F9                MOV     R1,A
+0014B5 1200F9            LCALL   ?C?CLDPTR
+0014B8 6405              XRL     A,#05H
+0014BA 705B              JNZ     ?C0035?IPC
+  164: 		ipcRx(ipcReadBuff+3, *pbuff -1);
+0014BC 901C23            MOV     DPTR,#pbuff+01H
+0014BF 75F001            MOV     B,#01H
+0014C2 1201EE            LCALL   ?C?IILDX
+  165: 		ipcCb.blecb(pbuff+1, *pbuff);
+0014C5 901C22            MOV     DPTR,#pbuff
+0014C8 E0                MOVX    A,@DPTR
+0014C9 FB                MOV     R3,A
+0014CA A3                INC     DPTR
+0014CB E0                MOVX    A,@DPTR
+0014CC FA                MOV     R2,A
+0014CD A3                INC     DPTR
+0014CE E0                MOVX    A,@DPTR
+0014CF F9                MOV     R1,A
+0014D0 1200F9            LCALL   ?C?CLDPTR
+0014D3 14                DEC     A
+0014D4 FD                MOV     R5,A
+0014D5 7B01              MOV     R3,#01H
+0014D7 7A1A              MOV     R2,#HIGH ipcReadBuff+03H
+0014D9 7903              MOV     R1,#LOW ipcReadBuff+03H
+0014DB B1DF              ACALL   _ipcRx
+  166: 	}
+0014DD 901C22            MOV     DPTR,#pbuff
+0014E0 E0                MOVX    A,@DPTR
+0014E1 FB                MOV     R3,A
+0014E2 A3                INC     DPTR
+0014E3 E0                MOVX    A,@DPTR
+0014E4 FA                MOV     R2,A
+0014E5 A3                INC     DPTR
+0014E6 E0                MOVX    A,@DPTR
+0014E7 2401              ADD     A,#01H
+0014E9 F9                MOV     R1,A
+0014EA E4                CLR     A
+0014EB 3A                ADDC    A,R2
+0014EC FA                MOV     R2,A
+0014ED C002              PUSH    AR2
+0014EF C001              PUSH    AR1
+0014F1 901C22            MOV     DPTR,#pbuff
+0014F4 E0                MOVX    A,@DPTR
+0014F5 A3                INC     DPTR
+0014F6 E0                MOVX    A,@DPTR
+0014F7 FA                MOV     R2,A
+0014F8 A3                INC     DPTR
+0014F9 E0                MOVX    A,@DPTR
+0014FA F9                MOV     R1,A
+0014FB 1200F9            LCALL   ?C?CLDPTR
+0014FE FD                MOV     R5,A
+0014FF 7C00              MOV     R4,#00H
+001501 90483C            MOV     DPTR,#ipcCb+0CH
+001504 E0                MOVX    A,@DPTR
+001505 A3                INC     DPTR
+001506 E0                MOVX    A,@DPTR
+001507 FA                MOV     R2,A
+001508 A3                INC     DPTR
+001509 E0                MOVX    A,@DPTR
+00150A F582              MOV     DPL,A
+00150C 8A83              MOV     DPH,R2
+00150E D001              POP     AR1
+001510 D002              POP     AR2
+001512 120244            LCALL   ?C?ICALL2
+  167: 	else if (*pbuff == IPC_HID_DATA) {
+001515 806F              SJMP    ?C0041?IPC
+001517         ?C0035?IPC:
+  168: 		pbuff ++ ;
+001517 901C22            MOV     DPTR,#pbuff
+00151A E0                MOVX    A,@DPTR
+00151B FB                MOV     R3,A
+00151C A3                INC     DPTR
+00151D E0                MOVX    A,@DPTR
+00151E FA                MOV     R2,A
+00151F A3                INC     DPTR
+001520 E0                MOVX    A,@DPTR
+001521 F9                MOV     R1,A
+001522 1200F9            LCALL   ?C?CLDPTR
+001525 6403              XRL     A,#03H
+001527 705B              JNZ     ?C0039?IPC
+  169: 		ipcRx(ipcReadBuff+3, *pbuff -1);
+001529 901C23            MOV     DPTR,#pbuff+01H
+00152C 75F001            MOV     B,#01H
+00152F 1201EE            LCALL   ?C?IILDX
+  170: 		ipcCb.hidcb(pbuff+1, *pbuff);
+001532 901C22            MOV     DPTR,#pbuff
+001535 E0                MOVX    A,@DPTR
+001536 FB                MOV     R3,A
+001537 A3                INC     DPTR
+001538 E0                MOVX    A,@DPTR
+001539 FA                MOV     R2,A
+00153A A3                INC     DPTR
+00153B E0                MOVX    A,@DPTR
+00153C F9                MOV     R1,A
+00153D 1200F9            LCALL   ?C?CLDPTR
+001540 14                DEC     A
+001541 FD                MOV     R5,A
+001542 7B01              MOV     R3,#01H
+001544 7A1A              MOV     R2,#HIGH ipcReadBuff+03H
+001546 7903              MOV     R1,#LOW ipcReadBuff+03H
+001548 B1DF              ACALL   _ipcRx
+  171: 	}
+00154A 901C22            MOV     DPTR,#pbuff
+00154D E0                MOVX    A,@DPTR
+00154E FB                MOV     R3,A
+00154F A3                INC     DPTR
+001550 E0                MOVX    A,@DPTR
+001551 FA                MOV     R2,A
+001552 A3                INC     DPTR
+001553 E0                MOVX    A,@DPTR
+001554 2401              ADD     A,#01H
+001556 F9                MOV     R1,A
+001557 E4                CLR     A
+001558 3A                ADDC    A,R2
+001559 FA                MOV     R2,A
+00155A C002              PUSH    AR2
+00155C C001              PUSH    AR1
+00155E 901C22            MOV     DPTR,#pbuff
+001561 E0                MOVX    A,@DPTR
+001562 A3                INC     DPTR
+001563 E0                MOVX    A,@DPTR
+001564 FA                MOV     R2,A
+001565 A3                INC     DPTR
+001566 E0                MOVX    A,@DPTR
+001567 F9                MOV     R1,A
+001568 1200F9            LCALL   ?C?CLDPTR
+00156B FD                MOV     R5,A
+00156C 7C00              MOV     R4,#00H
+00156E 90483F            MOV     DPTR,#ipcCb+0FH
+001571 E0                MOVX    A,@DPTR
+001572 A3                INC     DPTR
+001573 E0                MOVX    A,@DPTR
+001574 FA                MOV     R2,A
+001575 A3                INC     DPTR
+001576 E0                MOVX    A,@DPTR
+001577 F582              MOV     DPL,A
+001579 8A83              MOV     DPH,R2
+00157B D001              POP     AR1
+00157D D002              POP     AR2
+00157F 120244            LCALL   ?C?ICALL2
+  172: 	else {
+001582 8002              SJMP    ?C0041?IPC
+  173: 		while(1);
+001584         ?C0039?IPC:
+  174: 	}
+001584 80FE              SJMP    ?C0039?IPC
+  175: IPC_TIMER:
+  176: 	while (c51timer != bttimer) {
+001586         IPC_TIMER:
+001586         ?C0041?IPC:
+  177: 		if (ipcCb.timercb == NULL)
+001586 904898            MOV     DPTR,#bttimer
+001589 E0                MOVX    A,@DPTR
+00158A FE                MOV     R6,A
+00158B A3                INC     DPTR
+00158C E0                MOVX    A,@DPTR
+00158D FF                MOV     R7,A
+00158E 90489A            MOV     DPTR,#c51timer
+001591 E0                MOVX    A,@DPTR
+001592 6E                XRL     A,R6
+001593 7003              JNZ     ?C0055?IPC
+001595 A3                INC     DPTR
+001596 E0                MOVX    A,@DPTR
+001597 6F                XRL     A,R7
+001598         ?C0055?IPC:
+001598 6021              JZ      ?C0045?IPC
+  178: 			return;
+00159A 904836            MOV     DPTR,#ipcCb+06H
+00159D E0                MOVX    A,@DPTR
+00159E FB                MOV     R3,A
+00159F A3                INC     DPTR
+0015A0 E0                MOVX    A,@DPTR
+0015A1 FA                MOV     R2,A
+0015A2 A3                INC     DPTR
+0015A3 E0                MOVX    A,@DPTR
+0015A4 F9                MOV     R1,A
+0015A5 4A                ORL     A,R2
+0015A6 6036              JZ      ?C0044?IPC
+0015A8         ?C0043?IPC:
+  179: 		ipcCb.timercb();
+0015A8 120240            LCALL   ?C?ICALL
+  180: 		c51timer ++;
+0015AB 90489B            MOV     DPTR,#c51timer+01H
+0015AE E0                MOVX    A,@DPTR
+0015AF 04                INC     A
+0015B0 F0                MOVX    @DPTR,A
+0015B1 7006              JNZ     ?C0056?IPC
+0015B3 90489A            MOV     DPTR,#c51timer
+0015B6 E0                MOVX    A,@DPTR
+0015B7 04                INC     A
+0015B8 F0                MOVX    @DPTR,A
+0015B9         ?C0056?IPC:
+  181: 	}
+0015B9 80CB              SJMP    ?C0041?IPC
+0015BB         ?C0045?IPC:
+  182: 	while (c51stimer!= btstimer) {
+0015BB 90489C            MOV     DPTR,#btstimer
+0015BE E0                MOVX    A,@DPTR
+0015BF FF                MOV     R7,A
+0015C0 A3                INC     DPTR
+0015C1 E0                MOVX    A,@DPTR
+0015C2 6F                XRL     A,R7
+0015C3 6019              JZ      ?C0044?IPC
+  183: 		if (ipcCb.stimercb == NULL)
+0015C5 904839            MOV     DPTR,#ipcCb+09H
+0015C8 E0                MOVX    A,@DPTR
+0015C9 FB                MOV     R3,A
+0015CA A3                INC     DPTR
+0015CB E0                MOVX    A,@DPTR
+0015CC FA                MOV     R2,A
+0015CD A3                INC     DPTR
+0015CE E0                MOVX    A,@DPTR
+0015CF F9                MOV     R1,A
+0015D0 4A                ORL     A,R2
+0015D1 600B              JZ      ?C0044?IPC
+0015D3         ?C0047?IPC:
+  184: 			return;
+  185: 		ipcCb.stimercb();
+0015D3 120240            LCALL   ?C?ICALL
+  186: 		c51stimer ++;
+0015D6 90489D            MOV     DPTR,#c51stimer
+0015D9 E0                MOVX    A,@DPTR
+0015DA 04                INC     A
+0015DB F0                MOVX    @DPTR,A
+  187: 	}
+0015DC 80DD              SJMP    ?C0045?IPC
+  188: 	//other app process
+  189: }
+0015DE         ?C0044?IPC:
+0015DE 22                RET     
+----- FUNCTION IPC_DealSingleStep (END) -------
+
+
+----- FUNCTION _ipcRx (BEGIN) -----
+ FILE: 'ipc.c'
+   44: static void ipcRx(u8_t* dest, u8_t len)
+   45: {
+0015DF 901C0E            MOV     DPTR,#dest
+0015E2 EB                MOV     A,R3
+0015E3 F0                MOVX    @DPTR,A
+0015E4 A3                INC     DPTR
+0015E5 EA                MOV     A,R2
+0015E6 F0                MOVX    @DPTR,A
+0015E7 A3                INC     DPTR
+0015E8 E9                MOV     A,R1
+0015E9 F0                MOVX    @DPTR,A
+0015EA A3                INC     DPTR
+0015EB ED                MOV     A,R5
+0015EC F0                MOVX    @DPTR,A
+   46: 	xu8_t* src = (xu8_t *)ipcRxReadPtr;
+   47: 	while(len--) {
+0015ED 90482C            MOV     DPTR,#ipcRxReadPtr
+0015F0 E0                MOVX    A,@DPTR
+0015F1 FE                MOV     R6,A
+0015F2 A3                INC     DPTR
+0015F3 E0                MOVX    A,@DPTR
+0015F4 FF                MOV     R7,A
+;---- Variable 'src' assigned to Register 'R6/R7' ----
+0015F5         ?C0001?IPC:
+   48: 		*dest++ = *src++;
+0015F5 901C11            MOV     DPTR,#len
+0015F8 E0                MOVX    A,@DPTR
+0015F9 FD                MOV     R5,A
+0015FA 14                DEC     A
+0015FB F0                MOVX    @DPTR,A
+0015FC ED                MOV     A,R5
+0015FD 6032              JZ      ?C0002?IPC
+   49: 		if ((u16_t)src == IPC_RX_END) {
+0015FF 0F                INC     R7
+001600 EF                MOV     A,R7
+001601 AC06              MOV     R4,AR6
+001603 7001              JNZ     ?C0048?IPC
+001605 0E                INC     R6
+001606         ?C0048?IPC:
+001606 14                DEC     A
+001607 F582              MOV     DPL,A
+001609 8C83              MOV     DPH,R4
+00160B E0                MOVX    A,@DPTR
+00160C FD                MOV     R5,A
+00160D 901C0E            MOV     DPTR,#dest
+001610 E0                MOVX    A,@DPTR
+001611 FB                MOV     R3,A
+001612 A3                INC     DPTR
+001613 E4                CLR     A
+001614 75F001            MOV     B,#01H
+001617 120204            LCALL   ?C?ILDIX
+00161A A9F0              MOV     R1,B
+00161C FA                MOV     R2,A
+00161D ED                MOV     A,R5
+00161E 12013F            LCALL   ?C?CSTPTR
+   50: 			src = (xu8_t *)IPC_RX_HEAD;
+001621 AD07              MOV     R5,AR7
+001623 AC06              MOV     R4,AR6
+001625 BC48CD            CJNE    R4,#048H,?C0001?IPC
+001628 BD2CCA            CJNE    R5,#02CH,?C0001?IPC
+   51: 		}
+00162B 7E47              MOV     R6,#047H
+00162D 7FC8              MOV     R7,#0C8H
+   52: 	}
+   53: 	ipcRxReadPtr = (u16_t)src;
+00162F 80C4              SJMP    ?C0001?IPC
+001631         ?C0002?IPC:
+   54: }
+001631 90482C            MOV     DPTR,#ipcRxReadPtr
+001634 EE                MOV     A,R6
+001635 F0                MOVX    @DPTR,A
+001636 A3                INC     DPTR
+001637 EF                MOV     A,R7
+001638 F0                MOVX    @DPTR,A
+   55: 
+001639 22                RET     
+----- FUNCTION _ipcRx (END) -------
+
+
+----- FUNCTION IPC_WaitLpm (BEGIN) -----
+ FILE: 'ipc.c'
+  126: void IPC_WaitLpm()
+  127: {
+  128: 	lpm_flag = 0;
+  129: 	current_task = 0;
+00163A E4                CLR     A
+00163B 900B2B            MOV     DPTR,#lpm_flag
+00163E F0                MOVX    @DPTR,A
+  130: 	Delay1ms(1);
+00163F 900B2A            MOV     DPTR,#current_task
+001642 F0                MOVX    @DPTR,A
+  131: }
+001643 7F01              MOV     R7,#01H
+001645 FE                MOV     R6,A
+;----                  JMP     _Delay1ms
+----- FUNCTION IPC_WaitLpm (END) -------
+
+
+----- FUNCTION _Delay1ms (BEGIN) -----
+ FILE: 'utilities.c'
+   46: void Delay1ms(u16_t Time)
+   47: {
+;---- Variable 'Time' assigned to Register 'R6/R7' ----
+   48: 	u16_t j; 
+   49: 	for(;Time>0;Time--)
+001646         ?C0014?UTILITIES:
+001646 D3                SETB    C
+001647 EF                MOV     A,R7
+001648 9400              SUBB    A,#00H
+00164A EE                MOV     A,R6
+00164B 9400              SUBB    A,#00H
+00164D 4015              JC      ?C0020?UTILITIES
+   50: 	{
+   51: 		for(j=0;j<1190;j++);
+;---- Variable 'j' assigned to Register 'R4/R5' ----
+00164F E4                CLR     A
+001650 FD                MOV     R5,A
+001651 FC                MOV     R4,A
+001652         ?C0017?UTILITIES:
+001652 0D                INC     R5
+001653 BD0001            CJNE    R5,#00H,?C0028?UTILITIES
+001656 0C                INC     R4
+001657         ?C0028?UTILITIES:
+001657 BC04F8            CJNE    R4,#04H,?C0017?UTILITIES
+00165A BDA6F5            CJNE    R5,#0A6H,?C0017?UTILITIES
+   52: 	}
+00165D         ?C0016?UTILITIES:
+00165D EF                MOV     A,R7
+00165E 1F                DEC     R7
+00165F 7001              JNZ     ?C0029?UTILITIES
+001661 1E                DEC     R6
+001662         ?C0029?UTILITIES:
+001662 80E2              SJMP    ?C0014?UTILITIES
+   53: }
+001664         ?C0020?UTILITIES:
+001664 22                RET     
+----- FUNCTION _Delay1ms (END) -------
+
+
+----- FUNCTION mouseWheelScan (BEGIN) -----
+ FILE: 'sys.c'
+  441: void mouseWheelScan(void)
+  442: {
+  443: 	u16_t result = 0;
+  444: 	u8_t tempStateA = GPIO_GetInputStatus(WHEEL_DATA_A_GPIO);
+001665 E4                CLR     A
+001666 901C16            MOV     DPTR,#result
+001669 F0                MOVX    @DPTR,A
+00166A A3                INC     DPTR
+00166B F0                MOVX    @DPTR,A
+  445: 	u8_t tempState = (tempStateA << 1)|
+00166C 7F02              MOV     R7,#02H
+00166E 120D22            LCALL   _GPIO_GetInputStatus
+001671 E4                CLR     A
+001672 33                RLC     A
+001673 901C18            MOV     DPTR,#tempStateA
+001676 F0                MOVX    @DPTR,A
+  446: 		GPIO_GetInputStatus(WHEEL_DATA_B_GPIO);
+001677 7F03              MOV     R7,#03H
+001679 120D22            LCALL   _GPIO_GetInputStatus
+00167C E4                CLR     A
+00167D 33                RLC     A
+00167E FF                MOV     R7,A
+00167F 901C18            MOV     DPTR,#tempStateA
+001682 E0                MOVX    A,@DPTR
+001683 FE                MOV     R6,A
+001684 25E0              ADD     A,ACC
+001686 4F                ORL     A,R7
+001687 FF                MOV     R7,A
+;---- Variable 'tempState' assigned to Register 'R7' ----
+  447: 	
+  448: 	if (g_variable.wheelStateNow == tempState)
+001688 904ED5            MOV     DPTR,#g_variable+01AH
+00168B E0                MOVX    A,@DPTR
+00168C 6F                XRL     A,R7
+00168D 605B              JZ      ?C0075?SYS
+00168F         ?C0074?SYS:
+  449: 		return;
+  450: 
+  451: 	g_variable.wheelStateLast = g_variable.wheelStateBefore;
+00168F 904ED6            MOV     DPTR,#g_variable+01BH
+001692 E0                MOVX    A,@DPTR
+001693 A3                INC     DPTR
+001694 F0                MOVX    @DPTR,A
+  452: 	g_variable.wheelStateBefore = g_variable.wheelStateNow;
+001695 904ED5            MOV     DPTR,#g_variable+01AH
+001698 E0                MOVX    A,@DPTR
+001699 A3                INC     DPTR
+00169A F0                MOVX    @DPTR,A
+  453: 	g_variable.wheelStateNow = tempState;
+00169B 904ED5            MOV     DPTR,#g_variable+01AH
+00169E EF                MOV     A,R7
+00169F F0                MOVX    @DPTR,A
+0016A0 FD                MOV     R5,A
+  454: 
+  455: 	result = (g_variable.wheelStateNow << 4) |(g_variable.wheelStateBefore << 2) |g_variable.wheelStateLast;
+0016A1 A3                INC     DPTR
+0016A2 E0                MOVX    A,@DPTR
+0016A3 75F004            MOV     B,#04H
+0016A6 A4                MUL     AB
+0016A7 FB                MOV     R3,A
+0016A8 AAF0              MOV     R2,B
+0016AA ED                MOV     A,R5
+0016AB 75F010            MOV     B,#010H
+0016AE A4                MUL     AB
+0016AF FF                MOV     R7,A
+0016B0 E5F0              MOV     A,B
+0016B2 4A                ORL     A,R2
+0016B3 FE                MOV     R6,A
+0016B4 EF                MOV     A,R7
+0016B5 4B                ORL     A,R3
+0016B6 FF                MOV     R7,A
+0016B7 A3                INC     DPTR
+0016B8 E0                MOVX    A,@DPTR
+0016B9 FD                MOV     R5,A
+0016BA EE                MOV     A,R6
+0016BB EF                MOV     A,R7
+0016BC 4D                ORL     A,R5
+0016BD FF                MOV     R7,A
+0016BE 901C16            MOV     DPTR,#result
+0016C1 EE                MOV     A,R6
+0016C2 F0                MOVX    @DPTR,A
+0016C3 A3                INC     DPTR
+0016C4 EF                MOV     A,R7
+0016C5 F0                MOVX    @DPTR,A
+  456: 
+  457: 	switch (result) 
+0016C6 EE                MOV     A,R6
+0016C7 7021              JNZ     ?C0075?SYS
+0016C9 EF                MOV     A,R7
+0016CA 24F5              ADD     A,#0F5H
+0016CC 6014              JZ      ?C0080?SYS
+0016CE 24D7              ADD     A,#0D7H
+0016D0 6010              JZ      ?C0080?SYS
+0016D2 24FC              ADD     A,#0FCH
+0016D4 6004              JZ      ?C0078?SYS
+0016D6 2431              ADD     A,#031H
+0016D8 7010              JNZ     ?C0075?SYS
+  458: 	{
+  459: 		case 0x38:
+  460: 		case 0x07:
+0016DA         ?C0078?SYS:
+  461: 			g_variable.deltaZWheel --;
+0016DA 904ED8            MOV     DPTR,#g_variable+01DH
+0016DD E0                MOVX    A,@DPTR
+0016DE 14                DEC     A
+0016DF F0                MOVX    @DPTR,A
+  462: 			mouse_wheel_delay_lpm();
+0016E0 8009              SJMP    mouse_wheel_delay_lpm
+  463: 			break;
+  464: 		case 0x34:
+  465: 		case 0x0b:
+0016E2         ?C0080?SYS:
+  466: 			g_variable.deltaZWheel ++;
+0016E2 904ED8            MOV     DPTR,#g_variable+01DH
+0016E5 E0                MOVX    A,@DPTR
+0016E6 04                INC     A
+0016E7 F0                MOVX    @DPTR,A
+  467: 			mouse_wheel_delay_lpm();
+0016E8 D1EB              ACALL   mouse_wheel_delay_lpm
+  468: 			break;
+  469: 		default:
+  470: 			break;
+  471: 	}
+  472: }
+0016EA         ?C0075?SYS:
+0016EA 22                RET     
+----- FUNCTION mouseWheelScan (END) -------
+
+
+----- FUNCTION mouse_wheel_delay_lpm (BEGIN) -----
+ FILE: 'sys.c'
+  433: void mouse_wheel_delay_lpm(void)
+  434: {
+  435: 	if(g_variable.currentState != DEVICE_MODE_24G)
+  436: 	{
+0016EB 904EBD            MOV     DPTR,#g_variable+02H
+0016EE E0                MOVX    A,@DPTR
+0016EF 6401              XRL     A,#01H
+0016F1 6006              JZ      ?C0073?SYS
+  437: 		g_variable.wheelTimer= 3;			//   10
+  438: 	}
+0016F3 904EC7            MOV     DPTR,#g_variable+0CH
+0016F6 7403              MOV     A,#03H
+0016F8 F0                MOVX    @DPTR,A
+  439: }
+  440: 
+0016F9         ?C0073?SYS:
+0016F9 22                RET     
+----- FUNCTION mouse_wheel_delay_lpm (END) -------
+
+
+----- FUNCTION SPI_Initialize (BEGIN) -----
+ FILE: 'spi.c'
+   17: void SPI_Initialize()
+   18: {
+   19: 	REG_SPID_CTRL = 0x75;
+   20: 	REG_SPID_DELAY = 10;
+0016FA 908086            MOV     DPTR,#08086H
+0016FD 7475              MOV     A,#075H
+0016FF F0                MOVX    @DPTR,A
+   21: 	REG_SPID_TXADDR = ESWAP(SPI_TBUFF);
+001700 A3                INC     DPTR
+001701 740A              MOV     A,#0AH
+001703 F0                MOVX    @DPTR,A
+   22: 	REG_SPID_RXADDR = ESWAP(SPI_RBUFF);
+001704 90808A            MOV     DPTR,#0808AH
+001707 7418              MOV     A,#018H
+001709 F0                MOVX    @DPTR,A
+00170A A3                INC     DPTR
+00170B 7402              MOV     A,#02H
+00170D F0                MOVX    @DPTR,A
+   23: 	REG_GPIO_OUT(3) |= 0x02;
+00170E A3                INC     DPTR
+00170F 741D              MOV     A,#01DH
+001711 F0                MOVX    @DPTR,A
+001712 A3                INC     DPTR
+001713 7402              MOV     A,#02H
+001715 F0                MOVX    @DPTR,A
+   24: }
+001716 908077            MOV     DPTR,#08077H
+001719 E0                MOVX    A,@DPTR
+00171A 4402              ORL     A,#02H
+00171C F0                MOVX    @DPTR,A
+   25: 
+00171D 22                RET     
+----- FUNCTION SPI_Initialize (END) -------
+
+
+----- FUNCTION deviceTimer100ms (BEGIN) -----
+ FILE: 'sys.c'
+ 1328: static void deviceTimer100ms()
+ 1329: {
+ 1330: 	if (g_variable.wheelTimer!=0) 
+ 1331: 		g_variable.wheelTimer--;
+00171E 904EC7            MOV     DPTR,#g_variable+0CH
+001721 E0                MOVX    A,@DPTR
+001722 6002              JZ      ?C0230?SYS
+ 1332: 	g_variable.timer100msCount++;
+001724 14                DEC     A
+001725 F0                MOVX    @DPTR,A
+001726         ?C0230?SYS:
+ 1333: 	if (g_variable.modeSwCount)
+001726 904EC9            MOV     DPTR,#g_variable+0EH
+001729 E0                MOVX    A,@DPTR
+00172A 04                INC     A
+00172B F0                MOVX    @DPTR,A
+ 1334: 		g_variable.modeSwCount ++;
+00172C 904EEC            MOV     DPTR,#g_variable+031H
+00172F E0                MOVX    A,@DPTR
+001730 6002              JZ      ?C0231?SYS
+ 1335: 	deviceLedFlash();
+001732 04                INC     A
+001733 F0                MOVX    @DPTR,A
+001734         ?C0231?SYS:
+ 1336: 	comboKeyPb();
+001734 11AC              ACALL   deviceLedFlash
+ 1337: 	Power_low_detect();
+001736 120D67            LCALL   comboKeyPb
+ 1338: 
+001739 121AD2            LCALL   Power_low_detect
+ 1339: 	if(g_variable.enterHibernateFlag == 1){
+00173C 904F01            MOV     DPTR,#g_variable+046H
+00173F E0                MOVX    A,@DPTR
+001740 B40110            CJNE    A,#01H,?C0234?SYS
+ 1340: 		if(g_variable.enterHibernateTimer == 0){
+001743 A3                INC     DPTR
+001744 E0                MOVX    A,@DPTR
+001745 7006              JNZ     ?C0233?SYS
+ 1341: 			g_variable.enterHibernateFlag = 0;
+001747 904F01            MOV     DPTR,#g_variable+046H
+00174A F0                MOVX    @DPTR,A
+ 1342: 			deviceLongSleep();
+00174B F154              ACALL   deviceLongSleep
+ 1343: 		}
+00174D         ?C0233?SYS:
+ 1344: 		g_variable.enterHibernateTimer--;
+00174D 904F02            MOV     DPTR,#g_variable+047H
+001750 E0                MOVX    A,@DPTR
+001751 14                DEC     A
+001752 F0                MOVX    @DPTR,A
+ 1345: 	}	
+ 1346: }
+001753         ?C0234?SYS:
+001753 22                RET     
+----- FUNCTION deviceTimer100ms (END) -------
+
+
+----- FUNCTION deviceLongSleep (BEGIN) -----
+ FILE: 'sys.c'
+  815: static void deviceLongSleep()
+  816: {
+  817: 	g_variable.sleepTimer = 0;
+  818: 	g_variable.wheelTimer = 0;
+001754 E4                CLR     A
+001755 904EC4            MOV     DPTR,#g_variable+09H
+001758 F0                MOVX    @DPTR,A
+001759 A3                INC     DPTR
+00175A F0                MOVX    @DPTR,A
+  819: 	g_variable.lockLpm = 1;
+00175B 904EC7            MOV     DPTR,#g_variable+0CH
+00175E F0                MOVX    @DPTR,A
+  820: 	g_variable.currentState = DEVICE_MODE_NONE;
+00175F 904EC1            MOV     DPTR,#g_variable+06H
+001762 04                INC     A
+001763 F0                MOVX    @DPTR,A
+  821: 	IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+001764 E4                CLR     A
+001765 904EBD            MOV     DPTR,#g_variable+02H
+001768 F0                MOVX    @DPTR,A
+  822: }
+001769 7F19              MOV     R7,#019H
+00176B 020E78            LJMP    _IPC_TxControlCmd
+----- FUNCTION deviceLongSleep (END) -------
+
+
+----- FUNCTION mousePackage (BEGIN) -----
+ FILE: 'sys.c'
+  570: void mousePackage()
+  571: {	
+  572: 	m_hidBuff[0] = g_variable.deltaKey;
+  573: 	m_hidBuff[1] = (u8_t)(g_variable.X_data & 0x00ff);
+00176E 904ED4            MOV     DPTR,#g_variable+019H
+001771 E0                MOVX    A,@DPTR
+001772 904E21            MOV     DPTR,#m_hidBuff
+001775 F0                MOVX    @DPTR,A
+  574: 	m_hidBuff[2] = (u8_t)(g_variable.X_data >>8);
+001776 904EFB            MOV     DPTR,#g_variable+040H
+001779 E0                MOVX    A,@DPTR
+00177A FC                MOV     R4,A
+00177B A3                INC     DPTR
+00177C E0                MOVX    A,@DPTR
+00177D 904E22            MOV     DPTR,#m_hidBuff+01H
+001780 F0                MOVX    @DPTR,A
+  575: 	m_hidBuff[3] = (u8_t)(g_variable.Y_data & 0x00ff);
+001781 EC                MOV     A,R4
+001782 FF                MOV     R7,A
+001783 33                RLC     A
+001784 95E0              SUBB    A,ACC
+001786 A3                INC     DPTR
+001787 EF                MOV     A,R7
+001788 F0                MOVX    @DPTR,A
+  576: 	m_hidBuff[4] = (u8_t)(g_variable.Y_data >>8);
+001789 904EFD            MOV     DPTR,#g_variable+042H
+00178C E0                MOVX    A,@DPTR
+00178D FC                MOV     R4,A
+00178E A3                INC     DPTR
+00178F E0                MOVX    A,@DPTR
+001790 904E24            MOV     DPTR,#m_hidBuff+03H
+001793 F0                MOVX    @DPTR,A
+  577: 	m_hidBuff[5] = g_variable.deltaZWheel;
+001794 EC                MOV     A,R4
+001795 FF                MOV     R7,A
+001796 33                RLC     A
+001797 95E0              SUBB    A,ACC
+001799 A3                INC     DPTR
+00179A EF                MOV     A,R7
+00179B F0                MOVX    @DPTR,A
+  578: 	m_hidBuff[6] = 0;	//tz
+00179C 904ED8            MOV     DPTR,#g_variable+01DH
+00179F E0                MOVX    A,@DPTR
+0017A0 904E26            MOV     DPTR,#m_hidBuff+05H
+0017A3 F0                MOVX    @DPTR,A
+  579: 	g_variable.deltaZWheel = 0;	
+0017A4 E4                CLR     A
+0017A5 A3                INC     DPTR
+0017A6 F0                MOVX    @DPTR,A
+  580: 	g_variable.sleepTimer = 0;
+0017A7 904ED8            MOV     DPTR,#g_variable+01DH
+0017AA F0                MOVX    @DPTR,A
+  581: }
+0017AB 904EC4            MOV     DPTR,#g_variable+09H
+0017AE F0                MOVX    @DPTR,A
+0017AF A3                INC     DPTR
+0017B0 F0                MOVX    @DPTR,A
+  582: 
+0017B1 22                RET     
+----- FUNCTION mousePackage (END) -------
+
+
+----- FUNCTION _IPC_TxHidData (BEGIN) -----
+ FILE: 'sys.c'
+  474: void IPC_TxHidData(u8_t* dt, u8_t len)
+  475: {
+0017B2 901C02            MOV     DPTR,#dt
+0017B5 EB                MOV     A,R3
+0017B6 F0                MOVX    @DPTR,A
+0017B7 A3                INC     DPTR
+0017B8 EA                MOV     A,R2
+0017B9 F0                MOVX    @DPTR,A
+0017BA A3                INC     DPTR
+0017BB E9                MOV     A,R1
+0017BC F0                MOVX    @DPTR,A
+0017BD A3                INC     DPTR
+0017BE ED                MOV     A,R5
+0017BF F0                MOVX    @DPTR,A
+  476: 	if(g_variable.currentState != DEVICE_MODE_24G
+  477: 		&&g_variable.currentState != DEVICE_MODE_BT
+0017C0 904EBD            MOV     DPTR,#g_variable+02H
+0017C3 E0                MOVX    A,@DPTR
+0017C4 FF                MOV     R7,A
+0017C5 6401              XRL     A,#01H
+0017C7 600A              JZ      ?C0082?SYS
+0017C9 EF                MOV     A,R7
+0017CA 6402              XRL     A,#02H
+0017CC 6005              JZ      ?C0082?SYS
+0017CE EF                MOV     A,R7
+0017CF 6407              XRL     A,#07H
+0017D1 702E              JNZ     ?C0083?SYS
+0017D3         ?C0082?SYS:
+  478: 		&& g_variable.currentState != DEVICE_MODE_BLE_BB_CONNECT)
+  479: 		return;
+  480: 	if(g_variable.currentState == DEVICE_MODE_24G)
+0017D3 EF                MOV     A,R7
+0017D4 B40111            CJNE    A,#01H,?C0084?SYS
+  481: 	{
+  482: 		IPC_Tx24GData(dt,len);
+0017D7 901C02            MOV     DPTR,#dt
+0017DA E0                MOVX    A,@DPTR
+0017DB FB                MOV     R3,A
+0017DC A3                INC     DPTR
+0017DD E0                MOVX    A,@DPTR
+0017DE FA                MOV     R2,A
+0017DF A3                INC     DPTR
+0017E0 E0                MOVX    A,@DPTR
+0017E1 F9                MOV     R1,A
+0017E2 A3                INC     DPTR
+0017E3 E0                MOVX    A,@DPTR
+0017E4 FD                MOV     R5,A
+0017E5 021B97            LJMP    _IPC_Tx24GData
+  483: 	}	
+0017E8         ?C0084?SYS:
+  484: #if MOUSE_BT_MODE_ENABLE
+  485: 	else if(g_variable.currentState == DEVICE_MODE_BT)
+  486: 	{
+  487: 		IPC_TxBREDRHidData(dt,len);
+  488: 	}
+  489: #endif
+  490: 	else if(g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+0017E8 904EBD            MOV     DPTR,#g_variable+02H
+0017EB E0                MOVX    A,@DPTR
+0017EC B40710            CJNE    A,#07H,?C0088?SYS
+  491: 	{
+  492: 		IPC_TxBleData(dt,len);
+0017EF 901C02            MOV     DPTR,#dt
+0017F2 E0                MOVX    A,@DPTR
+0017F3 FB                MOV     R3,A
+0017F4 A3                INC     DPTR
+0017F5 E0                MOVX    A,@DPTR
+0017F6 FA                MOV     R2,A
+0017F7 A3                INC     DPTR
+0017F8 E0                MOVX    A,@DPTR
+0017F9 F9                MOV     R1,A
+0017FA A3                INC     DPTR
+0017FB E0                MOVX    A,@DPTR
+0017FC FD                MOV     R5,A
+0017FD 8003              SJMP    _IPC_TxBleData
+  493: 	}
+  494: 	else
+  495: 	{
+0017FF         ?C0088?SYS:
+  496: 		while(1);
+0017FF 80FE              SJMP    ?C0088?SYS
+  497: 	}
+  498: }
+001801         ?C0083?SYS:
+001801 22                RET     
+----- FUNCTION _IPC_TxHidData (END) -------
+
+
+----- FUNCTION _IPC_TxBleData (BEGIN) -----
+ FILE: 'ipc.c'
+  112: void IPC_TxBleData(u8_t* dt, u8_t len)
+  113: {
+001802 901C31            MOV     DPTR,#len
+001805 ED                MOV     A,R5
+001806 F0                MOVX    @DPTR,A
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+  114: 	ipcSendBuff[0] = IPC_BLE_DATA;
+  115: 	while (ipcTxReadPtr!=ipcTxWritePtr);
+001807 901A96            MOV     DPTR,#ipcSendBuff
+00180A 7405              MOV     A,#05H
+00180C F0                MOVX    @DPTR,A
+00180D         ?C0021?IPC:
+  116: 	ipcSendBuff[1] = len;
+00180D 9047C6            MOV     DPTR,#ipcTxWritePtr
+001810 E0                MOVX    A,@DPTR
+001811 FE                MOV     R6,A
+001812 A3                INC     DPTR
+001813 E0                MOVX    A,@DPTR
+001814 FF                MOV     R7,A
+001815 9047C4            MOV     DPTR,#ipcTxReadPtr
+001818 E0                MOVX    A,@DPTR
+001819 B506F1            CJNE    A,AR6,?C0021?IPC
+00181C A3                INC     DPTR
+00181D E0                MOVX    A,@DPTR
+00181E B507EC            CJNE    A,AR7,?C0021?IPC
+001821         ?C0022?IPC:
+  117: 	xmemcpy(&ipcSendBuff[2], dt, len);
+001821 901C31            MOV     DPTR,#len
+001824 E0                MOVX    A,@DPTR
+001825 FD                MOV     R5,A
+001826 901A97            MOV     DPTR,#ipcSendBuff+01H
+001829 F0                MOVX    @DPTR,A
+  118: 	ipcTx(ipcSendBuff, len + 2);
+00182A 7E1A              MOV     R6,#HIGH ipcSendBuff+02H
+00182C 7F98              MOV     R7,#LOW ipcSendBuff+02H
+00182E 901BEC            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001831 ED                MOV     A,R5
+001832 F0                MOVX    @DPTR,A
+001833 1145              ACALL   _xmemcpy
+  119: }
+001835 7B01              MOV     R3,#01H
+001837 7A1A              MOV     R2,#HIGH ipcSendBuff
+001839 7996              MOV     R1,#LOW ipcSendBuff
+00183B 901C31            MOV     DPTR,#len
+00183E E0                MOVX    A,@DPTR
+00183F 2402              ADD     A,#02H
+001841 FD                MOV     R5,A
+001842 020EA0            LJMP    _ipcTx
+----- FUNCTION _IPC_TxBleData (END) -------
+
+
+----- FUNCTION _xmemcpy (BEGIN) -----
+ FILE: 'utilities.c'
+   10: void xmemcpy(pxbyte dest, u8_t* src, u8_t len) 
+   11: {
+001845 901BE7            MOV     DPTR,#dest
+001848 EE                MOV     A,R6
+001849 F0                MOVX    @DPTR,A
+00184A A3                INC     DPTR
+00184B EF                MOV     A,R7
+00184C F0                MOVX    @DPTR,A
+00184D A3                INC     DPTR
+00184E EB                MOV     A,R3
+00184F F0                MOVX    @DPTR,A
+001850 A3                INC     DPTR
+001851 EA                MOV     A,R2
+001852 F0                MOVX    @DPTR,A
+001853 A3                INC     DPTR
+001854 E9                MOV     A,R1
+001855 F0                MOVX    @DPTR,A
+   12: 	while(len--)
+001856         ?C0002?UTILITIES:
+   13: 		*dest++ = *src++;
+001856 901BEC            MOV     DPTR,#len
+001859 E0                MOVX    A,@DPTR
+00185A FF                MOV     R7,A
+00185B 14                DEC     A
+00185C F0                MOVX    @DPTR,A
+00185D EF                MOV     A,R7
+00185E 6027              JZ      ?C0004?UTILITIES
+   14: 	return;
+001860 901BE9            MOV     DPTR,#src
+001863 E0                MOVX    A,@DPTR
+001864 FB                MOV     R3,A
+001865 A3                INC     DPTR
+001866 E4                CLR     A
+001867 75F001            MOV     B,#01H
+00186A 120204            LCALL   ?C?ILDIX
+00186D A9F0              MOV     R1,B
+00186F FA                MOV     R2,A
+001870 1200F9            LCALL   ?C?CLDPTR
+001873 FF                MOV     R7,A
+001874 901BE7            MOV     DPTR,#dest
+001877 E4                CLR     A
+001878 75F001            MOV     B,#01H
+00187B 120204            LCALL   ?C?ILDIX
+00187E 85F082            MOV     DPL,B
+001881 F583              MOV     DPH,A
+001883 EF                MOV     A,R7
+001884 F0                MOVX    @DPTR,A
+001885 80CF              SJMP    ?C0002?UTILITIES
+   15: }
+001887         ?C0004?UTILITIES:
+001887 22                RET     
+----- FUNCTION _xmemcpy (END) -------
+
+
+----- FUNCTION _IIC_Read (BEGIN) -----
+ FILE: 'iic.c'
+   15: void IIC_Read(u16_t addr, u16_t len, u8_t* pbuff)
+   16: {
+001888 901BFD            MOV     DPTR,#len
+00188B EC                MOV     A,R4
+00188C F0                MOVX    @DPTR,A
+00188D A3                INC     DPTR
+00188E ED                MOV     A,R5
+00188F F0                MOVX    @DPTR,A
+001890 A3                INC     DPTR
+001891 EB                MOV     A,R3
+001892 F0                MOVX    @DPTR,A
+001893 A3                INC     DPTR
+001894 EA                MOV     A,R2
+001895 F0                MOVX    @DPTR,A
+001896 A3                INC     DPTR
+001897 E9                MOV     A,R1
+001898 F0                MOVX    @DPTR,A
+;---- Variable 'addr' assigned to Register 'R6/R7' ----
+   17: 	u16_t mem_src =  addr;
+   18: 	REG_IICD_TXLEN = ESWAP(4);
+;---- Variable 'mem_src' assigned to Register 'R6/R7' ----
+   19: 	YC_IICDTbuf[0] = 0xa0 |EEP_DEV_ADDR;
+001899 908098            MOV     DPTR,#08098H
+00189C 7404              MOV     A,#04H
+00189E F0                MOVX    @DPTR,A
+00189F A3                INC     DPTR
+0018A0 E4                CLR     A
+0018A1 F0                MOVX    @DPTR,A
+   20: 	*(u16_t*)(YC_IICDTbuf+1) = mem_src;
+0018A2 901B2C            MOV     DPTR,#YC_IICDTbuf
+0018A5 74A0              MOV     A,#0A0H
+0018A7 F0                MOVX    @DPTR,A
+   21: 	YC_IICDTbuf[3] = 0xa1 | EEP_DEV_ADDR;
+0018A8 A3                INC     DPTR
+0018A9 EE                MOV     A,R6
+0018AA F0                MOVX    @DPTR,A
+0018AB A3                INC     DPTR
+0018AC EF                MOV     A,R7
+0018AD F0                MOVX    @DPTR,A
+   22: 	REG_IICD_TXADDR = ESWAP((u16_t)&YC_IICDTbuf);
+0018AE 901B2F            MOV     DPTR,#YC_IICDTbuf+03H
+0018B1 74A1              MOV     A,#0A1H
+0018B3 F0                MOVX    @DPTR,A
+   23: 	REG_IICD_RXLEN = ESWAP(len);
+0018B4 7A1B              MOV     R2,#HIGH YC_IICDTbuf
+0018B6 792C              MOV     R1,#LOW YC_IICDTbuf
+0018B8 7E1B              MOV     R6,#HIGH YC_IICDTbuf
+0018BA 7F2C              MOV     R7,#LOW YC_IICDTbuf
+0018BC 742C              MOV     A,#LOW YC_IICDTbuf
+0018BE FC                MOV     R4,A
+0018BF 741B              MOV     A,#HIGH YC_IICDTbuf
+0018C1 FF                MOV     R7,A
+0018C2 EC                MOV     A,R4
+0018C3 FE                MOV     R6,A
+0018C4 EF                MOV     A,R7
+0018C5 90809A            MOV     DPTR,#0809AH
+0018C8 EE                MOV     A,R6
+0018C9 F0                MOVX    @DPTR,A
+0018CA A3                INC     DPTR
+0018CB EF                MOV     A,R7
+0018CC F0                MOVX    @DPTR,A
+   24: 	REG_IICD_RXADDR = ESWAP((u16_t)IIC_TempBuff);
+0018CD 901BFD            MOV     DPTR,#len
+0018D0 E0                MOVX    A,@DPTR
+0018D1 FC                MOV     R4,A
+0018D2 A3                INC     DPTR
+0018D3 E0                MOVX    A,@DPTR
+0018D4 FA                MOV     R2,A
+0018D5 EC                MOV     A,R4
+0018D6 FF                MOV     R7,A
+0018D7 EA                MOV     A,R2
+0018D8 FE                MOV     R6,A
+0018D9 EF                MOV     A,R7
+0018DA 90809E            MOV     DPTR,#0809EH
+0018DD EE                MOV     A,R6
+0018DE F0                MOVX    @DPTR,A
+0018DF A3                INC     DPTR
+0018E0 EF                MOV     A,R7
+0018E1 F0                MOVX    @DPTR,A
+   25: 	REG_IICD_CTRL = 2;
+0018E2 7A1B              MOV     R2,#HIGH IIC_TempBuff
+0018E4 7930              MOV     R1,#LOW IIC_TempBuff
+0018E6 7E1B              MOV     R6,#HIGH IIC_TempBuff
+0018E8 7F30              MOV     R7,#LOW IIC_TempBuff
+0018EA 7430              MOV     A,#LOW IIC_TempBuff
+0018EC FC                MOV     R4,A
+0018ED 741B              MOV     A,#HIGH IIC_TempBuff
+0018EF FF                MOV     R7,A
+0018F0 EC                MOV     A,R4
+0018F1 FE                MOV     R6,A
+0018F2 EF                MOV     A,R7
+0018F3 90809C            MOV     DPTR,#0809CH
+0018F6 EE                MOV     A,R6
+0018F7 F0                MOVX    @DPTR,A
+0018F8 A3                INC     DPTR
+0018F9 EF                MOV     A,R7
+0018FA F0                MOVX    @DPTR,A
+   26: 	if(!(REG_IICD_RXADDR&(1<<7)))
+0018FB 908090            MOV     DPTR,#08090H
+0018FE 7402              MOV     A,#02H
+001900 F0                MOVX    @DPTR,A
+   27: 	{
+001901 90809C            MOV     DPTR,#0809CH
+001904 A3                INC     DPTR
+001905 E0                MOVX    A,@DPTR
+001906 20E707            JB      ACC.7,?C0004?IIC
+   28: 		REG_IICD_CTRL |= 1;
+   29: 	}
+001909 908090            MOV     DPTR,#08090H
+00190C E0                MOVX    A,@DPTR
+00190D 4401              ORL     A,#01H
+00190F F0                MOVX    @DPTR,A
+   30: 	REG_MISC_CTRL |= 1 << 2;	//start iic dma
+001910         ?C0004?IIC:
+   31: 	IIcWaitDone();	
+001910 908006            MOV     DPTR,#08006H
+001913 E0                MOVX    A,@DPTR
+001914 4404              ORL     A,#04H
+001916 F0                MOVX    @DPTR,A
+   32: 	xmemcpy(pbuff,IIC_TempBuff,len);
+001917 51C1              ACALL   IIcWaitDone
+   33: }
+001919 901BFF            MOV     DPTR,#pbuff
+00191C E0                MOVX    A,@DPTR
+00191D A3                INC     DPTR
+00191E E0                MOVX    A,@DPTR
+00191F FA                MOV     R2,A
+001920 A3                INC     DPTR
+001921 E0                MOVX    A,@DPTR
+001922 AE02              MOV     R6,AR2
+001924 FF                MOV     R7,A
+001925 7B01              MOV     R3,#01H
+001927 7A1B              MOV     R2,#HIGH IIC_TempBuff
+001929 7930              MOV     R1,#LOW IIC_TempBuff
+00192B 901BFD            MOV     DPTR,#len
+00192E E0                MOVX    A,@DPTR
+00192F A3                INC     DPTR
+001930 E0                MOVX    A,@DPTR
+001931 901BEC            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001934 F0                MOVX    @DPTR,A
+001935 0145              AJMP    _xmemcpy
+----- FUNCTION _IIC_Read (END) -------
+
+
+----- FUNCTION leReconnStart (BEGIN) -----
+ FILE: 'sys.c'
+  858: void leReconnStart()
+  859: {
+  860: 	g_variable.sleepTimer = 0;
+  861: 	IIC_Read(EEPROM_RECONN_LE_ADDR,6,(u8_t *)m_reconnLeAddr);
+001937 E4                CLR     A
+001938 904EC4            MOV     DPTR,#g_variable+09H
+00193B F0                MOVX    @DPTR,A
+00193C A3                INC     DPTR
+00193D F0                MOVX    @DPTR,A
+  862: 	g_variable.currentState = DEVICE_MODE_BLE_ADV;
+00193E 7B01              MOV     R3,#01H
+001940 7A45              MOV     R2,#HIGH m_reconnLeAddr
+001942 793E              MOV     R1,#LOW m_reconnLeAddr
+001944 7D06              MOV     R5,#06H
+001946 FC                MOV     R4,A
+001947 7F9C              MOV     R7,#09CH
+001949 7E3F              MOV     R6,#03FH
+00194B 1188              ACALL   _IIC_Read
+  863: 	IPC_TxControlCmd(IPC_CMD_START_ADV_RECONN);
+00194D 904EBD            MOV     DPTR,#g_variable+02H
+001950 7408              MOV     A,#08H
+001952 F0                MOVX    @DPTR,A
+  864: }
+001953 7F27              MOV     R7,#027H
+001955 020E78            LJMP    _IPC_TxControlCmd
+----- FUNCTION leReconnStart (END) -------
+
+
+----- FUNCTION leAddrRandomCntInit (BEGIN) -----
+ FILE: 'sys.c'
+  876: void leAddrRandomCntInit()
+  877: {	
+  878: 	u8_t leAddrE2WP = 0;
+  879: 	IIC_Read(EEPROM_BLE_ADDR_RANDOM_CNT_WP, 1, &leAddrE2WP);
+001958 E4                CLR     A
+001959 901C29            MOV     DPTR,#leAddrE2WP
+00195C F0                MOVX    @DPTR,A
+  880: 	if(leAddrE2WP == 0xff)
+00195D 7B01              MOV     R3,#01H
+00195F 7A1C              MOV     R2,#HIGH leAddrE2WP
+001961 7929              MOV     R1,#LOW leAddrE2WP
+001963 7D01              MOV     R5,#01H
+001965 FC                MOV     R4,A
+001966 7FAC              MOV     R7,#0ACH
+001968 7E3F              MOV     R6,#03FH
+00196A 1188              ACALL   _IIC_Read
+  881: 	{
+00196C 901C29            MOV     DPTR,#leAddrE2WP
+00196F E0                MOVX    A,@DPTR
+001970 B4FF30            CJNE    A,#0FFH,?C0155?SYS
+  882: 		g_variable.leAddrRandomCnt = ADC_Get0vBase();
+  883: 		IIC_WriteBlock(EEPROM_BLE_ADDR_RANDOM_CNT, 2, (u8_t *)&g_variable.leAddrRandomCnt);
+001973 51C9              ACALL   ADC_Get0vBase
+001975 904F11            MOV     DPTR,#g_variable+056H
+001978 EE                MOV     A,R6
+001979 F0                MOVX    @DPTR,A
+00197A A3                INC     DPTR
+00197B EF                MOV     A,R7
+00197C F0                MOVX    @DPTR,A
+  884: 		leAddrE2WP = 0x5a;
+00197D 7B01              MOV     R3,#01H
+00197F 7A4F              MOV     R2,#HIGH g_variable+056H
+001981 7911              MOV     R1,#LOW g_variable+056H
+001983 7D02              MOV     R5,#02H
+001985 7C00              MOV     R4,#00H
+001987 7FAA              MOV     R7,#0AAH
+001989 7E3F              MOV     R6,#03FH
+00198B 31A4              ACALL   _IIC_WriteBlock
+  885: 		IIC_WriteBlock(EEPROM_BLE_ADDR_RANDOM_CNT_WP, 1, &leAddrE2WP);
+00198D 901C29            MOV     DPTR,#leAddrE2WP
+001990 745A              MOV     A,#05AH
+001992 F0                MOVX    @DPTR,A
+  886: 	}
+001993 7B01              MOV     R3,#01H
+001995 7A1C              MOV     R2,#HIGH leAddrE2WP
+001997 7929              MOV     R1,#LOW leAddrE2WP
+001999 7D01              MOV     R5,#01H
+00199B 7C00              MOV     R4,#00H
+00199D 7FAC              MOV     R7,#0ACH
+00199F 7E3F              MOV     R6,#03FH
+0019A1 31A4              ACALL   _IIC_WriteBlock
+  887: }
+  888: 
+0019A3         ?C0155?SYS:
+0019A3 22                RET     
+----- FUNCTION leAddrRandomCntInit (END) -------
+
+
+----- FUNCTION _IIC_WriteBlock (BEGIN) -----
+ FILE: 'iic.c'
+   50: void IIC_WriteBlock(u16_t addr, u16_t len, u8_t* pbuff)
+   51: {
+0019A4 901BC9            MOV     DPTR,#addr
+0019A7 EE                MOV     A,R6
+0019A8 F0                MOVX    @DPTR,A
+0019A9 A3                INC     DPTR
+0019AA EF                MOV     A,R7
+0019AB F0                MOVX    @DPTR,A
+0019AC A3                INC     DPTR
+0019AD EC                MOV     A,R4
+0019AE F0                MOVX    @DPTR,A
+0019AF A3                INC     DPTR
+0019B0 ED                MOV     A,R5
+0019B1 F0                MOVX    @DPTR,A
+0019B2 A3                INC     DPTR
+0019B3 EB                MOV     A,R3
+0019B4 F0                MOVX    @DPTR,A
+0019B5 A3                INC     DPTR
+0019B6 EA                MOV     A,R2
+0019B7 F0                MOVX    @DPTR,A
+0019B8 A3                INC     DPTR
+0019B9 E9                MOV     A,R1
+0019BA F0                MOVX    @DPTR,A
+   52: 	u16_t cris,curr_len;
+0019BB         ?C0007?IIC:
+   53: 	while (len)
+0019BB 901BCB            MOV     DPTR,#len
+0019BE E0                MOVX    A,@DPTR
+0019BF 7002              JNZ     ?C0012?IIC
+0019C1 A3                INC     DPTR
+0019C2 E0                MOVX    A,@DPTR
+0019C3         ?C0012?IIC:
+0019C3 7002              JNZ     $ + 4H
+0019C5 4153              AJMP    ?C0011?IIC
+   54: 	{
+   55: 		cris = (addr|(EEP_PAZE_SIZE-1)) +1;
+0019C7 901BC9            MOV     DPTR,#addr
+0019CA E0                MOVX    A,@DPTR
+0019CB FE                MOV     R6,A
+0019CC A3                INC     DPTR
+0019CD E0                MOVX    A,@DPTR
+0019CE FF                MOV     R7,A
+0019CF 440F              ORL     A,#0FH
+0019D1 2401              ADD     A,#01H
+0019D3 FD                MOV     R5,A
+0019D4 E4                CLR     A
+0019D5 3E                ADDC    A,R6
+0019D6 FC                MOV     R4,A
+;---- Variable 'cris' assigned to Register 'R4/R5' ----
+   56: 		curr_len = cris - addr;
+0019D7 C3                CLR     C
+0019D8 ED                MOV     A,R5
+0019D9 9F                SUBB    A,R7
+0019DA FF                MOV     R7,A
+0019DB EC                MOV     A,R4
+0019DC 9E                SUBB    A,R6
+0019DD FE                MOV     R6,A
+0019DE 901BD0            MOV     DPTR,#curr_len
+0019E1 F0                MOVX    @DPTR,A
+0019E2 A3                INC     DPTR
+0019E3 EF                MOV     A,R7
+0019E4 F0                MOVX    @DPTR,A
+   57: 		curr_len = min(curr_len,len);
+0019E5 901BCB            MOV     DPTR,#len
+0019E8 E0                MOVX    A,@DPTR
+0019E9 FC                MOV     R4,A
+0019EA A3                INC     DPTR
+0019EB E0                MOVX    A,@DPTR
+0019EC FD                MOV     R5,A
+0019ED D3                SETB    C
+0019EE 9F                SUBB    A,R7
+0019EF EC                MOV     A,R4
+0019F0 9E                SUBB    A,R6
+0019F1 400A              JC      ?C0009?IIC
+0019F3 901BD0            MOV     DPTR,#curr_len
+0019F6 E0                MOVX    A,@DPTR
+0019F7 FE                MOV     R6,A
+0019F8 A3                INC     DPTR
+0019F9 E0                MOVX    A,@DPTR
+0019FA FF                MOV     R7,A
+0019FB 8004              SJMP    ?C0010?IIC
+0019FD         ?C0009?IIC:
+0019FD AE04              MOV     R6,AR4
+0019FF AF05              MOV     R7,AR5
+001A01         ?C0010?IIC:
+001A01 901BD0            MOV     DPTR,#curr_len
+001A04 EE                MOV     A,R6
+001A05 F0                MOVX    @DPTR,A
+001A06 FC                MOV     R4,A
+001A07 A3                INC     DPTR
+001A08 EF                MOV     A,R7
+001A09 F0                MOVX    @DPTR,A
+001A0A FD                MOV     R5,A
+   58: 		len -= curr_len;
+001A0B C3                CLR     C
+001A0C 901BCC            MOV     DPTR,#len+01H
+001A0F E0                MOVX    A,@DPTR
+001A10 9D                SUBB    A,R5
+001A11 F0                MOVX    @DPTR,A
+001A12 901BCB            MOV     DPTR,#len
+001A15 E0                MOVX    A,@DPTR
+001A16 9C                SUBB    A,R4
+001A17 F0                MOVX    @DPTR,A
+   59: 		IIC_write(addr,curr_len,pbuff);
+001A18 901BC9            MOV     DPTR,#addr
+001A1B E0                MOVX    A,@DPTR
+001A1C FE                MOV     R6,A
+001A1D A3                INC     DPTR
+001A1E E0                MOVX    A,@DPTR
+001A1F FF                MOV     R7,A
+001A20 901BCD            MOV     DPTR,#pbuff
+001A23 E0                MOVX    A,@DPTR
+001A24 FB                MOV     R3,A
+001A25 A3                INC     DPTR
+001A26 E0                MOVX    A,@DPTR
+001A27 FA                MOV     R2,A
+001A28 A3                INC     DPTR
+001A29 E0                MOVX    A,@DPTR
+001A2A F9                MOV     R1,A
+001A2B 5154              ACALL   _IIC_write
+   60: 		Delay1ms(10);
+001A2D 7F0A              MOV     R7,#0AH
+001A2F 7E00              MOV     R6,#00H
+001A31 121646            LCALL   _Delay1ms
+   61: 		pbuff += curr_len;
+001A34 901BD0            MOV     DPTR,#curr_len
+001A37 E0                MOVX    A,@DPTR
+001A38 FE                MOV     R6,A
+001A39 A3                INC     DPTR
+001A3A E0                MOVX    A,@DPTR
+001A3B FF                MOV     R7,A
+001A3C 901BCE            MOV     DPTR,#pbuff+01H
+001A3F EE                MOV     A,R6
+001A40 8FF0              MOV     B,R7
+001A42 1201EE            LCALL   ?C?IILDX
+   62: 		addr += curr_len;
+001A45 901BCA            MOV     DPTR,#addr+01H
+001A48 E0                MOVX    A,@DPTR
+001A49 2F                ADD     A,R7
+001A4A F0                MOVX    @DPTR,A
+001A4B 901BC9            MOV     DPTR,#addr
+001A4E E0                MOVX    A,@DPTR
+001A4F 3E                ADDC    A,R6
+001A50 F0                MOVX    @DPTR,A
+   63: 	};
+001A51 21BB              AJMP    ?C0007?IIC
+   64: 	
+   65: }
+001A53         ?C0011?IIC:
+001A53 22                RET     
+----- FUNCTION _IIC_WriteBlock (END) -------
+
+
+----- FUNCTION _IIC_write (BEGIN) -----
+ FILE: 'iic.c'
+   35: void IIC_write(u16_t addr,u16_t len, u8_t* pbuff)
+   36: {
+001A54 901B94            MOV     DPTR,#addr
+001A57 EE                MOV     A,R6
+001A58 F0                MOVX    @DPTR,A
+001A59 A3                INC     DPTR
+001A5A EF                MOV     A,R7
+001A5B F0                MOVX    @DPTR,A
+;---- Variable 'pbuff' assigned to Register 'R1/R2/R3' ----
+001A5C A3                INC     DPTR
+001A5D EC                MOV     A,R4
+001A5E F0                MOVX    @DPTR,A
+001A5F A3                INC     DPTR
+001A60 ED                MOV     A,R5
+001A61 F0                MOVX    @DPTR,A
+   37: 	u8_t ptemp_addr[EEP_PAZE_SIZE+3];
+   38: 	xmemcpy(ptemp_addr+3, pbuff, len);
+001A62 7E1B              MOV     R6,#HIGH ptemp_addr+03H
+001A64 7F9B              MOV     R7,#LOW ptemp_addr+03H
+001A66 901BEC            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001A69 F0                MOVX    @DPTR,A
+001A6A 1145              ACALL   _xmemcpy
+   39: 	ptemp_addr[0] = 0xa0;
+001A6C 901B98            MOV     DPTR,#ptemp_addr
+001A6F 74A0              MOV     A,#0A0H
+001A71 F0                MOVX    @DPTR,A
+   40: 	(u16_t)ptemp_addr[1] = addr;
+001A72 901B94            MOV     DPTR,#addr
+001A75 E0                MOVX    A,@DPTR
+001A76 FF                MOV     R7,A
+001A77 A3                INC     DPTR
+001A78 E0                MOVX    A,@DPTR
+001A79 901B99            MOV     DPTR,#ptemp_addr+01H
+001A7C CF                XCH     A,R7
+001A7D F0                MOVX    @DPTR,A
+001A7E A3                INC     DPTR
+001A7F EF                MOV     A,R7
+001A80 F0                MOVX    @DPTR,A
+   41: 	REG_IICD_TXLEN = ESWAP(len+3);
+001A81 901B97            MOV     DPTR,#len+01H
+001A84 E0                MOVX    A,@DPTR
+001A85 2403              ADD     A,#03H
+001A87 FD                MOV     R5,A
+001A88 901B96            MOV     DPTR,#len
+001A8B E0                MOVX    A,@DPTR
+001A8C 3400              ADDC    A,#00H
+001A8E FC                MOV     R4,A
+001A8F ED                MOV     A,R5
+001A90 FA                MOV     R2,A
+001A91 EC                MOV     A,R4
+001A92 FF                MOV     R7,A
+001A93 EA                MOV     A,R2
+001A94 FE                MOV     R6,A
+001A95 EF                MOV     A,R7
+001A96 908098            MOV     DPTR,#08098H
+001A99 EE                MOV     A,R6
+001A9A F0                MOVX    @DPTR,A
+001A9B A3                INC     DPTR
+001A9C EF                MOV     A,R7
+001A9D F0                MOVX    @DPTR,A
+   42: 	REG_IICD_TXADDR = ESWAP((u16_t)ptemp_addr);
+001A9E 7D98              MOV     R5,#LOW ptemp_addr
+001AA0 ED                MOV     A,R5
+001AA1 FA                MOV     R2,A
+001AA2 741B              MOV     A,#HIGH ptemp_addr
+001AA4 FF                MOV     R7,A
+001AA5 EA                MOV     A,R2
+001AA6 FE                MOV     R6,A
+001AA7 EF                MOV     A,R7
+001AA8 A3                INC     DPTR
+001AA9 EE                MOV     A,R6
+001AAA F0                MOVX    @DPTR,A
+001AAB A3                INC     DPTR
+001AAC EF                MOV     A,R7
+001AAD F0                MOVX    @DPTR,A
+   43: 	REG_IICD_RXLEN = 0;
+001AAE 90809E            MOV     DPTR,#0809EH
+001AB1 E4                CLR     A
+001AB2 F0                MOVX    @DPTR,A
+001AB3 A3                INC     DPTR
+001AB4 F0                MOVX    @DPTR,A
+   44: 	REG_IICD_CTRL = 1;
+001AB5 908090            MOV     DPTR,#08090H
+001AB8 04                INC     A
+001AB9 F0                MOVX    @DPTR,A
+   45: 	
+   46: 	REG_MISC_CTRL |= 1 << 2;	//start iic dma
+001ABA 908006            MOV     DPTR,#08006H
+001ABD E0                MOVX    A,@DPTR
+001ABE 4404              ORL     A,#04H
+001AC0 F0                MOVX    @DPTR,A
+;----                  JMP     IIcWaitDone
+   47: 	IIcWaitDone();
+----- FUNCTION _IIC_write (END) -------
+
+
+----- FUNCTION IIcWaitDone (BEGIN) -----
+ FILE: 'iic.c'
+   10: static void IIcWaitDone(void)
+   11: {
+   12: 	while(!(REG_DMA_STATUS&(1<<5)));
+001AC1         ?C0001?IIC:
+   13: }
+001AC1 90812C            MOV     DPTR,#0812CH
+001AC4 E0                MOVX    A,@DPTR
+001AC5 30E5F9            JNB     ACC.5,?C0001?IIC
+   14: 
+001AC8 22                RET     
+----- FUNCTION IIcWaitDone (END) -------
+
+
+----- FUNCTION ADC_Get0vBase (BEGIN) -----
+ FILE: 'adc.c'
+   14: u16_t ADC_Get0vBase()
+   15: {
+   16: 	return m_adc0vBase;
+   17: }
+001AC9 904E41            MOV     DPTR,#m_adc0vBase
+001ACC E0                MOVX    A,@DPTR
+001ACD FE                MOV     R6,A
+001ACE A3                INC     DPTR
+001ACF E0                MOVX    A,@DPTR
+001AD0 FF                MOV     R7,A
+   17: 
+001AD1 22                RET     
+----- FUNCTION ADC_Get0vBase (END) -------
+
+
+----- FUNCTION Power_low_detect (BEGIN) -----
+ FILE: 'sys.c'
+ 1287: void Power_low_detect(void)
+ 1288: {
+ 1289: 	u16_t adc_value = 0;
+ 1290: 	adc_value = ADC_GetCurrentValue() - ADC_Get0vBase();
+001AD2 E4                CLR     A
+001AD3 901C25            MOV     DPTR,#adc_value
+001AD6 F0                MOVX    @DPTR,A
+001AD7 A3                INC     DPTR
+001AD8 F0                MOVX    @DPTR,A
+ 1291: 	
+001AD9 51C9              ACALL   ADC_Get0vBase
+001ADB C006              PUSH    AR6
+001ADD C007              PUSH    AR7
+001ADF 718E              ACALL   ADC_GetCurrentValue
+001AE1 AC06              MOV     R4,AR6
+001AE3 AD07              MOV     R5,AR7
+001AE5 D007              POP     AR7
+001AE7 D006              POP     AR6
+001AE9 C3                CLR     C
+001AEA ED                MOV     A,R5
+001AEB 9F                SUBB    A,R7
+001AEC FF                MOV     R7,A
+001AED EC                MOV     A,R4
+001AEE 9E                SUBB    A,R6
+001AEF 901C25            MOV     DPTR,#adc_value
+001AF2 F0                MOVX    @DPTR,A
+001AF3 A3                INC     DPTR
+001AF4 EF                MOV     A,R7
+001AF5 F0                MOVX    @DPTR,A
+ 1292: #if ADC_VINLPM_ENABLE
+ 1293: 	if ((*(volatile unsigned char xdata *)mem_adc_config_flag)  == 1) 
+ 1294: 	{
+ 1295: 		if (adc_value < (((ADC_Get3vBase() - ADC_Get0vBase()) /30)*23)) 
+ 1296: 		{
+ 1297: 			g_variable.adcLowPowerFlag = 1;
+ 1298: 		}
+ 1299: 		else 
+ 1300: 		{
+ 1301: 			g_variable.adcLowPowerFlag = 0;
+ 1302: 		}
+ 1303: 		if (adc_value < ((ADC_Get3vBase() - ADC_Get0vBase()) /30 * 21))
+ 1304: 		{
+ 1305: 			if(m_new24gAbortPac != 1 && g_variable.currentState == DEVICE_MODE_24G)
+ 1306: 				return;
+ 1307: 			deviceLongSleep();
+ 1308: 		}
+ 1309: 	}
+ 1310: #endif
+ 1311: 	
+ 1312: #if ADC_GPIO_ENABLE
+ 1313: 	if ((*(volatile unsigned char xdata *)mem_adc_config_flag)  == 4) 
+001AF6 9042CF            MOV     DPTR,#042CFH
+001AF9 E0                MOVX    A,@DPTR
+001AFA 6404              XRL     A,#04H
+001AFC 6002              JZ      $ + 4H
+001AFE 6184              AJMP    ?C0229?SYS
+ 1314: 	{
+ 1315: 		if (adc_value < (((ADC_Get3vBase() - ADC_Get0vBase()) /30)*10)) 
+001B00 51C9              ACALL   ADC_Get0vBase
+001B02 C006              PUSH    AR6
+001B04 C007              PUSH    AR7
+001B06 7185              ACALL   ADC_Get3vBase
+001B08 AC06              MOV     R4,AR6
+001B0A AD07              MOV     R5,AR7
+001B0C D007              POP     AR7
+001B0E D006              POP     AR6
+001B10 C3                CLR     C
+001B11 ED                MOV     A,R5
+001B12 9F                SUBB    A,R7
+001B13 FF                MOV     R7,A
+001B14 EC                MOV     A,R4
+001B15 9E                SUBB    A,R6
+001B16 FE                MOV     R6,A
+001B17 7C00              MOV     R4,#00H
+001B19 7D1E              MOV     R5,#01EH
+001B1B 120163            LCALL   ?C?UIDIV
+001B1E 7C00              MOV     R4,#00H
+001B20 7D0A              MOV     R5,#0AH
+001B22 120151            LCALL   ?C?IMUL
+001B25 C3                CLR     C
+001B26 901C26            MOV     DPTR,#adc_value+01H
+001B29 E0                MOVX    A,@DPTR
+001B2A 9F                SUBB    A,R7
+001B2B 901C25            MOV     DPTR,#adc_value
+001B2E E0                MOVX    A,@DPTR
+001B2F 9E                SUBB    A,R6
+001B30 5008              JNC     ?C0225?SYS
+ 1316: 			g_variable.adcLowPowerFlag = 1;
+001B32 904EE2            MOV     DPTR,#g_variable+027H
+001B35 7401              MOV     A,#01H
+001B37 F0                MOVX    @DPTR,A
+001B38 8005              SJMP    ?C0226?SYS
+001B3A         ?C0225?SYS:
+ 1317: 		else g_variable.adcLowPowerFlag = 0;
+001B3A E4                CLR     A
+001B3B 904EE2            MOV     DPTR,#g_variable+027H
+001B3E F0                MOVX    @DPTR,A
+001B3F         ?C0226?SYS:
+ 1318: 		if (adc_value < ((ADC_Get3vBase() - ADC_Get0vBase()) /30 * 9))
+001B3F 51C9              ACALL   ADC_Get0vBase
+001B41 C006              PUSH    AR6
+001B43 C007              PUSH    AR7
+001B45 7185              ACALL   ADC_Get3vBase
+001B47 AC06              MOV     R4,AR6
+001B49 AD07              MOV     R5,AR7
+001B4B D007              POP     AR7
+001B4D D006              POP     AR6
+001B4F C3                CLR     C
+001B50 ED                MOV     A,R5
+001B51 9F                SUBB    A,R7
+001B52 FF                MOV     R7,A
+001B53 EC                MOV     A,R4
+001B54 9E                SUBB    A,R6
+001B55 FE                MOV     R6,A
+001B56 7C00              MOV     R4,#00H
+001B58 7D1E              MOV     R5,#01EH
+001B5A 120163            LCALL   ?C?UIDIV
+001B5D 7C00              MOV     R4,#00H
+001B5F 7D09              MOV     R5,#09H
+001B61 120151            LCALL   ?C?IMUL
+001B64 C3                CLR     C
+001B65 901C26            MOV     DPTR,#adc_value+01H
+001B68 E0                MOVX    A,@DPTR
+001B69 9F                SUBB    A,R7
+001B6A 901C25            MOV     DPTR,#adc_value
+001B6D E0                MOVX    A,@DPTR
+001B6E 9E                SUBB    A,R6
+001B6F 5013              JNC     ?C0229?SYS
+ 1319: 		{
+ 1320: 			if(m_new24gAbortPac != 1 && g_variable.currentState == DEVICE_MODE_24G)
+001B71 904954            MOV     DPTR,#m_new24gAbortPac
+001B74 E0                MOVX    A,@DPTR
+001B75 6401              XRL     A,#01H
+001B77 6008              JZ      ?C0228?SYS
+001B79 904EBD            MOV     DPTR,#g_variable+02H
+001B7C E0                MOVX    A,@DPTR
+001B7D 6401              XRL     A,#01H
+001B7F 6003              JZ      ?C0229?SYS
+001B81         ?C0228?SYS:
+ 1321: 				return;
+ 1322: 			deviceLongSleep();
+001B81 121754            LCALL   deviceLongSleep
+ 1323: 		}
+ 1324: 	}
+ 1325: #endif
+ 1326: }
+001B84         ?C0229?SYS:
+001B84 22                RET     
+----- FUNCTION Power_low_detect (END) -------
+
+
+----- FUNCTION ADC_Get3vBase (BEGIN) -----
+ FILE: 'adc.c'
+    9: u16_t ADC_Get3vBase()
+   10: {
+   11: 	return m_adc3vValue;
+   12: }
+001B85 904E43            MOV     DPTR,#m_adc3vValue
+001B88 E0                MOVX    A,@DPTR
+001B89 FE                MOV     R6,A
+001B8A A3                INC     DPTR
+001B8B E0                MOVX    A,@DPTR
+001B8C FF                MOV     R7,A
+   13: 
+001B8D 22                RET     
+----- FUNCTION ADC_Get3vBase (END) -------
+
+
+----- FUNCTION ADC_GetCurrentValue (BEGIN) -----
+ FILE: 'adc.c'
+    4: u16_t ADC_GetCurrentValue()
+    5: {
+    6: 	return m_adcCurrentValue;
+    7: }
+001B8E 9042D1            MOV     DPTR,#m_adcCurrentValue
+001B91 E0                MOVX    A,@DPTR
+001B92 FE                MOV     R6,A
+001B93 A3                INC     DPTR
+001B94 E0                MOVX    A,@DPTR
+001B95 FF                MOV     R7,A
+    8: 
+001B96 22                RET     
+----- FUNCTION ADC_GetCurrentValue (END) -------
+
+
+----- FUNCTION _IPC_Tx24GData (BEGIN) -----
+ FILE: 'ipc.c'
+   88: void IPC_Tx24GData(u8_t* dt, u8_t len)
+   89: {
+001B97 901C2F            MOV     DPTR,#len
+001B9A ED                MOV     A,R5
+001B9B F0                MOVX    @DPTR,A
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+   90: 	ipcSendBuff[0] = IPC_24G_DATA;
+   91: 	while (ipcTxReadPtr!=ipcTxWritePtr);
+001B9C 901A96            MOV     DPTR,#ipcSendBuff
+001B9F 7406              MOV     A,#06H
+001BA1 F0                MOVX    @DPTR,A
+001BA2         ?C0014?IPC:
+   92: 	ipcSendBuff[1] = len;
+001BA2 9047C6            MOV     DPTR,#ipcTxWritePtr
+001BA5 E0                MOVX    A,@DPTR
+001BA6 FE                MOV     R6,A
+001BA7 A3                INC     DPTR
+001BA8 E0                MOVX    A,@DPTR
+001BA9 FF                MOV     R7,A
+001BAA 9047C4            MOV     DPTR,#ipcTxReadPtr
+001BAD E0                MOVX    A,@DPTR
+001BAE B506F1            CJNE    A,AR6,?C0014?IPC
+001BB1 A3                INC     DPTR
+001BB2 E0                MOVX    A,@DPTR
+001BB3 B507EC            CJNE    A,AR7,?C0014?IPC
+001BB6         ?C0015?IPC:
+   93: 	xmemcpy(&ipcSendBuff[2], dt, len);
+001BB6 901C2F            MOV     DPTR,#len
+001BB9 E0                MOVX    A,@DPTR
+001BBA FD                MOV     R5,A
+001BBB 901A97            MOV     DPTR,#ipcSendBuff+01H
+001BBE F0                MOVX    @DPTR,A
+   94: 	ipcTx(ipcSendBuff, len + 2);
+001BBF 7E1A              MOV     R6,#HIGH ipcSendBuff+02H
+001BC1 7F98              MOV     R7,#LOW ipcSendBuff+02H
+001BC3 901BEC            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001BC6 ED                MOV     A,R5
+001BC7 F0                MOVX    @DPTR,A
+001BC8 1145              ACALL   _xmemcpy
+   95: }
+001BCA 7B01              MOV     R3,#01H
+001BCC 7A1A              MOV     R2,#HIGH ipcSendBuff
+001BCE 7996              MOV     R1,#LOW ipcSendBuff
+001BD0 901C2F            MOV     DPTR,#len
+001BD3 E0                MOVX    A,@DPTR
+001BD4 2402              ADD     A,#02H
+001BD6 FD                MOV     R5,A
+001BD7 020EA0            LJMP    _ipcTx
+----- FUNCTION _IPC_Tx24GData (END) -------
+
+
+----- FUNCTION _IPC_TxSppData (BEGIN) -----
+ FILE: 'ipc.c'
+  103: void IPC_TxSppData(u8_t* dt, u8_t len)
+  104: {
+001BDA 901C30            MOV     DPTR,#len
+001BDD ED                MOV     A,R5
+001BDE F0                MOVX    @DPTR,A
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+  105: 	ipcSendBuff[0] = IPC_SPP_DATA;
+  106: 	while (ipcTxReadPtr!=ipcTxWritePtr);
+001BDF 901A96            MOV     DPTR,#ipcSendBuff
+001BE2 7404              MOV     A,#04H
+001BE4 F0                MOVX    @DPTR,A
+001BE5         ?C0018?IPC:
+  107: 	ipcSendBuff[1] = len;
+001BE5 9047C6            MOV     DPTR,#ipcTxWritePtr
+001BE8 E0                MOVX    A,@DPTR
+001BE9 FE                MOV     R6,A
+001BEA A3                INC     DPTR
+001BEB E0                MOVX    A,@DPTR
+001BEC FF                MOV     R7,A
+001BED 9047C4            MOV     DPTR,#ipcTxReadPtr
+001BF0 E0                MOVX    A,@DPTR
+001BF1 B506F1            CJNE    A,AR6,?C0018?IPC
+001BF4 A3                INC     DPTR
+001BF5 E0                MOVX    A,@DPTR
+001BF6 B507EC            CJNE    A,AR7,?C0018?IPC
+001BF9         ?C0019?IPC:
+  108: 	xmemcpy(&ipcSendBuff[2], dt, len);
+001BF9 901C30            MOV     DPTR,#len
+001BFC E0                MOVX    A,@DPTR
+001BFD FD                MOV     R5,A
+001BFE 901A97            MOV     DPTR,#ipcSendBuff+01H
+001C01 F0                MOVX    @DPTR,A
+  109: 	ipcTx(ipcSendBuff, len + 2);
+001C02 7E1A              MOV     R6,#HIGH ipcSendBuff+02H
+001C04 7F98              MOV     R7,#LOW ipcSendBuff+02H
+001C06 901BEC            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001C09 ED                MOV     A,R5
+001C0A F0                MOVX    @DPTR,A
+001C0B 1145              ACALL   _xmemcpy
+  110: }
+001C0D 7B01              MOV     R3,#01H
+001C0F 7A1A              MOV     R2,#HIGH ipcSendBuff
+001C11 7996              MOV     R1,#LOW ipcSendBuff
+001C13 901C30            MOV     DPTR,#len
+001C16 E0                MOVX    A,@DPTR
+001C17 2402              ADD     A,#02H
+001C19 FD                MOV     R5,A
+001C1A 020EA0            LJMP    _ipcTx
+----- FUNCTION _IPC_TxSppData (END) -------
+
+
+----- FUNCTION _IPC_TxBREDRHidData (BEGIN) -----
+ FILE: 'ipc.c'
+   75: void IPC_TxBREDRHidData(u8_t* dt, u8_t len)
+   76: {
+001C1D 901C2E            MOV     DPTR,#len
+001C20 ED                MOV     A,R5
+001C21 F0                MOVX    @DPTR,A
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+   77: 	ipcSendBuff[0] = IPC_HID_DATA;
+   78: 	if (len == 0)
+001C22 901A96            MOV     DPTR,#ipcSendBuff
+001C25 7403              MOV     A,#03H
+001C27 F0                MOVX    @DPTR,A
+   79: 		return;
+001C28 901C2E            MOV     DPTR,#len
+001C2B E0                MOVX    A,@DPTR
+001C2C 6038              JZ      ?C0011?IPC
+001C2E         ?C0010?IPC:
+001C2E         ?C0012?IPC:
+   80: 	while (ipcTxReadPtr!=ipcTxWritePtr);
+001C2E 9047C6            MOV     DPTR,#ipcTxWritePtr
+001C31 E0                MOVX    A,@DPTR
+001C32 FE                MOV     R6,A
+001C33 A3                INC     DPTR
+001C34 E0                MOVX    A,@DPTR
+001C35 FF                MOV     R7,A
+001C36 9047C4            MOV     DPTR,#ipcTxReadPtr
+001C39 E0                MOVX    A,@DPTR
+001C3A B506F1            CJNE    A,AR6,?C0012?IPC
+001C3D A3                INC     DPTR
+001C3E E0                MOVX    A,@DPTR
+001C3F B507EC            CJNE    A,AR7,?C0012?IPC
+001C42         ?C0013?IPC:
+   81: 	ipcSendBuff[1] = len;
+001C42 901C2E            MOV     DPTR,#len
+001C45 E0                MOVX    A,@DPTR
+001C46 FD                MOV     R5,A
+001C47 901A97            MOV     DPTR,#ipcSendBuff+01H
+001C4A F0                MOVX    @DPTR,A
+   82: 	xmemcpy(&ipcSendBuff[2], dt, len);
+001C4B 7E1A              MOV     R6,#HIGH ipcSendBuff+02H
+001C4D 7F98              MOV     R7,#LOW ipcSendBuff+02H
+001C4F 901BEC            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001C52 ED                MOV     A,R5
+001C53 F0                MOVX    @DPTR,A
+001C54 1145              ACALL   _xmemcpy
+   83: 	ipcTx(ipcSendBuff, len + 2);
+001C56 7B01              MOV     R3,#01H
+001C58 7A1A              MOV     R2,#HIGH ipcSendBuff
+001C5A 7996              MOV     R1,#LOW ipcSendBuff
+001C5C 901C2E            MOV     DPTR,#len
+001C5F E0                MOVX    A,@DPTR
+001C60 2402              ADD     A,#02H
+001C62 FD                MOV     R5,A
+001C63 120EA0            LCALL   _ipcTx
+   84: }
+001C66         ?C0011?IPC:
+001C66 22                RET     
+----- FUNCTION _IPC_TxBREDRHidData (END) -------
+
+
+----- FUNCTION mouseMotion (BEGIN) -----
+ FILE: 'sys.c'
+  583: static void mouseMotion()
+  584: {
+  585: 	u8_t deltaXL=0, deltaYL=0, deltaXH=0, deltaYH=0;
+  586: 	bool sendFlag = 0;
+001C67 E4                CLR     A
+001C68 901C0A            MOV     DPTR,#deltaXL
+001C6B F0                MOVX    @DPTR,A
+001C6C A3                INC     DPTR
+001C6D F0                MOVX    @DPTR,A
+001C6E A3                INC     DPTR
+001C6F F0                MOVX    @DPTR,A
+001C70 A3                INC     DPTR
+001C71 F0                MOVX    @DPTR,A
+  587: 
+001C72 C200              CLR     sendFlag
+  588: #if MOUSE_BT_MODE_ENABLE
+  589: 	if ((g_variable.currentState != DEVICE_MODE_24G)
+  590: 		&&(g_variable.currentState != DEVICE_MODE_BLE_BB_CONNECT)
+  591: 		&&(g_variable.currentState != DEVICE_MODE_BT))
+  592: 	{
+  593: #else
+  594: 	if ((g_variable.currentState != DEVICE_MODE_24G)&&(g_variable.currentState != DEVICE_MODE_BLE_BB_CONNECT))
+001C74 904EBD            MOV     DPTR,#g_variable+02H
+001C77 E0                MOVX    A,@DPTR
+001C78 FF                MOV     R7,A
+001C79 6401              XRL     A,#01H
+001C7B 6007              JZ      ?C0111?SYS
+001C7D EF                MOV     A,R7
+001C7E 6407              XRL     A,#07H
+001C80 6002              JZ      $ + 4H
+001C82 A1CA              AJMP    ?C0112?SYS
+  595: 	{
+  596: #endif
+  597: 		return;
+  598: 	}
+001C84         ?C0111?SYS:
+  599: 	if ((g_variable.g24DongleExist == 0)&&(g_variable.currentState == DEVICE_MODE_24G)){
+001C84 904EE3            MOV     DPTR,#g_variable+028H
+001C87 E0                MOVX    A,@DPTR
+001C88 700A              JNZ     ?C0113?SYS
+001C8A 904EBD            MOV     DPTR,#g_variable+02H
+001C8D E0                MOVX    A,@DPTR
+001C8E 6401              XRL     A,#01H
+001C90 7002              JNZ     $ + 4H
+001C92 A1CA              AJMP    ?C0112?SYS
+  600: 		return;	
+  601: 	}
+001C94         ?C0113?SYS:
+  602: 
+  603: 	if (!IPC_IsTxBuffEmpty()) {
+001C94 B1CB              ACALL   IPC_IsTxBuffEmpty
+001C96 4002              JC      $ + 4H
+001C98 A1CA              AJMP    ?C0112?SYS
+  604: 		return;
+  605: 	}
+001C9A         ?C0114?SYS:
+  606: 	
+  607: #if OTA_ENABLE
+  608: 	//OTA
+  609: 	if(m_new24gOtaEnable == 1 
+  610: 		&& g_variable.otaReqPacEnable == 1
+  611: 		&& g_variable.currentState == DEVICE_MODE_24G)
+  612: 	{
+  613: 		g_variable.sleepTimer = 0;
+  614: 		m_hidBuff[0] = CMD_OTA;
+  615: 		m_hidBuff[1] = g_variable.otaReqPacValue[0];	//ackpayload type
+  616: 		m_hidBuff[2] = g_variable.otaReqPacValue[1];	//ackpayload low byte
+  617: 		m_hidBuff[3] = g_variable.otaReqPacValue[2];	//ackpayload high byte
+  618: 		m_hidBuff[4] = g_variable.otaReqPacValue[3];
+  619: 		m_hidBuff[5] = g_variable.otaReqPacValue[4];
+  620: 		m_hidBuff[6] = 0;
+  621: 		IPC_TxHidData(m_hidBuff,7);
+  622: 		return;
+  623: 	}
+  624: #endif
+  625: 	
+  626: 	if(g_variable.deltaKey != g_variable.keyDetect
+001C9A 904EED            MOV     DPTR,#g_variable+032H
+001C9D E0                MOVX    A,@DPTR
+001C9E FF                MOV     R7,A
+001C9F 904ED4            MOV     DPTR,#g_variable+019H
+001CA2 E0                MOVX    A,@DPTR
+001CA3 B50719            CJNE    A,AR7,?C0116?SYS
+001CA6 904EC7            MOV     DPTR,#g_variable+0CH
+001CA9 E0                MOVX    A,@DPTR
+001CAA FE                MOV     R6,A
+001CAB D3                SETB    C
+001CAC 9400              SUBB    A,#00H
+001CAE 4005              JC      ?C0117?SYS
+001CB0 EE                MOV     A,R6
+001CB1 9403              SUBB    A,#03H
+001CB3 400A              JC      ?C0116?SYS
+001CB5         ?C0117?SYS:
+001CB5 904EBD            MOV     DPTR,#g_variable+02H
+001CB8 E0                MOVX    A,@DPTR
+001CB9 B4010B            CJNE    A,#01H,?C0115?SYS
+001CBC EF                MOV     A,R7
+001CBD 6008              JZ      ?C0115?SYS
+001CBF         ?C0116?SYS:
+  627: 		||(g_variable.wheelTimer > 0 && g_variable.wheelTimer < 3)
+  628: 		||((g_variable.currentState == DEVICE_MODE_24G) && (g_variable.keyDetect != 0)))
+  629: 	{
+  630: 		sendFlag = 1;
+001CBF D200              SETB    sendFlag
+  631: 		m_new24gKWEvent = 1;
+001CC1 9049B7            MOV     DPTR,#m_new24gKWEvent
+001CC4 7401              MOV     A,#01H
+001CC6 F0                MOVX    @DPTR,A
+  632: 	}
+001CC7         ?C0115?SYS:
+  633: 	g_variable.deltaKey = g_variable.keyDetect;
+001CC7 904EED            MOV     DPTR,#g_variable+032H
+001CCA E0                MOVX    A,@DPTR
+001CCB 904ED4            MOV     DPTR,#g_variable+019H
+001CCE F0                MOVX    @DPTR,A
+  634: 		
+  635: 	g_variable.X_data = 0;g_variable.Y_data = 0;
+001CCF E4                CLR     A
+001CD0 904EFB            MOV     DPTR,#g_variable+040H
+001CD3 F0                MOVX    @DPTR,A
+001CD4 A3                INC     DPTR
+001CD5 F0                MOVX    @DPTR,A
+001CD6 A3                INC     DPTR
+001CD7 F0                MOVX    @DPTR,A
+001CD8 A3                INC     DPTR
+001CD9 F0                MOVX    @DPTR,A
+  636: 	
+  637: #if MOUSE_BT_MODE_ENABLE
+  638: 
+  639: 	if(g_variable.currentState == DEVICE_MODE_BT)
+  640: 	{
+  641: 		sendFlag |= mouseReadSensor();
+  642: 	}
+  643: 
+  644: #endif
+  645: 	if ( (g_variable.currentState == DEVICE_MODE_24G) ) {
+001CDA 904EBD            MOV     DPTR,#g_variable+02H
+001CDD E0                MOVX    A,@DPTR
+001CDE B40107            CJNE    A,#01H,?C0118?SYS
+  646: 		sendFlag |= mouseReadSensor();
+001CE1 120B5A            LCALL   mouseReadSensor
+001CE4 7200              ORL     C,sendFlag
+001CE6 9200              MOV     sendFlag,C
+  647: 	}
+001CE8         ?C0118?SYS:
+  648: 	
+  649: 	if ( (g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT) && m_bleSendDataFlag == 1 ) 
+001CE8 904EBD            MOV     DPTR,#g_variable+02H
+001CEB E0                MOVX    A,@DPTR
+001CEC B40720            CJNE    A,#07H,?C0119?SYS
+001CEF 904595            MOV     DPTR,#m_bleSendDataFlag
+001CF2 E0                MOVX    A,@DPTR
+001CF3 B40119            CJNE    A,#01H,?C0119?SYS
+  650: 	{
+  651: 			SPI_Initialize();//spi
+001CF6 1216FA            LCALL   SPI_Initialize
+  652: 			sendFlag |= mouseReadSensor();
+001CF9 120B5A            LCALL   mouseReadSensor
+001CFC 7200              ORL     C,sendFlag
+001CFE 9200              MOV     sendFlag,C
+  653: 			if(m_51ReadSensor != m_BtReadIpcCount)
+001D00 904E83            MOV     DPTR,#m_BtReadIpcCount
+001D03 E0                MOVX    A,@DPTR
+001D04 FF                MOV     R7,A
+001D05 904E84            MOV     DPTR,#m_51ReadSensor
+001D08 E0                MOVX    A,@DPTR
+001D09 6F                XRL     A,R7
+001D0A 6003              JZ      ?C0119?SYS
+  654: 			{
+  655: 				m_51ReadSensor ++;
+001D0C E0                MOVX    A,@DPTR
+001D0D 04                INC     A
+001D0E F0                MOVX    @DPTR,A
+  656: 			}
+  657: 	}
+001D0F         ?C0119?SYS:
+  658: 
+  659: 	if (g_variable.deltaZWheel)
+001D0F 904ED8            MOV     DPTR,#g_variable+01DH
+001D12 E0                MOVX    A,@DPTR
+001D13 601F              JZ      ?C0121?SYS
+  660: 	{
+  661: 		sendFlag = 1;
+001D15 D200              SETB    sendFlag
+  662: 		m_new24gKWEvent = 1;
+001D17 9049B7            MOV     DPTR,#m_new24gKWEvent
+001D1A 7401              MOV     A,#01H
+001D1C F0                MOVX    @DPTR,A
+  663: 		m_shortDataWheel = 1;
+001D1D 904E80            MOV     DPTR,#m_shortDataWheel
+001D20 F0                MOVX    @DPTR,A
+  664: 		if(g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+001D21 904EBD            MOV     DPTR,#g_variable+02H
+001D24 E0                MOVX    A,@DPTR
+001D25 B4070C            CJNE    A,#07H,?C0121?SYS
+  665: 		{
+  666: 			m_bleDataWheel = 1;
+001D28 904E81            MOV     DPTR,#m_bleDataWheel
+001D2B 7401              MOV     A,#01H
+001D2D F0                MOVX    @DPTR,A
+  667: 			m_bleDataWheelLpmTimer = 10;
+001D2E 904E82            MOV     DPTR,#m_bleDataWheelLpmTimer
+001D31 740A              MOV     A,#0AH
+001D33 F0                MOVX    @DPTR,A
+  668: 		}
+  669: 	}
+001D34         ?C0121?SYS:
+  670: 
+  671: 	if(g_variable.buttonTimer >= (MOUSE_ENTER_PB_TIME - 2))
+001D34 904EC6            MOV     DPTR,#g_variable+0BH
+001D37 E0                MOVX    A,@DPTR
+001D38 C3                CLR     C
+001D39 9417              SUBB    A,#017H
+001D3B 4007              JC      ?C0123?SYS
+  672: 	{
+  673: 		g_variable.deltaKey = 0;	
+001D3D E4                CLR     A
+001D3E 904ED4            MOV     DPTR,#g_variable+019H
+001D41 F0                MOVX    @DPTR,A
+  674: 		sendFlag = 1;
+001D42 D200              SETB    sendFlag
+  675: 	}
+001D44         ?C0123?SYS:
+  676: 	
+  677: 	if ((!sendFlag) ||(g_variable.buttonTimer >= (MOUSE_ENTER_PB_TIME - 1)))
+001D44 200002            JB      sendFlag,$ + 5H
+001D47 A1CA              AJMP    ?C0112?SYS
+001D49 904EC6            MOV     DPTR,#g_variable+0BH
+001D4C E0                MOVX    A,@DPTR
+001D4D C3                CLR     C
+001D4E 9418              SUBB    A,#018H
+001D50 5078              JNC     ?C0112?SYS
+001D52         ?C0124?SYS:
+  678: 		return;
+  679: 	
+  680: 	m_btMotionEvent = 1;
+001D52 9049C2            MOV     DPTR,#m_btMotionEvent
+001D55 7401              MOV     A,#01H
+001D57 F0                MOVX    @DPTR,A
+  681: 	if (g_variable.currentState == DEVICE_MODE_24G
+001D58 904EBD            MOV     DPTR,#g_variable+02H
+001D5B E0                MOVX    A,@DPTR
+001D5C FF                MOV     R7,A
+001D5D 6401              XRL     A,#01H
+001D5F 600A              JZ      ?C0127?SYS
+001D61 EF                MOV     A,R7
+001D62 6402              XRL     A,#02H
+001D64 6005              JZ      ?C0127?SYS
+001D66 EF                MOV     A,R7
+001D67 6407              XRL     A,#07H
+001D69 705F              JNZ     ?C0112?SYS
+001D6B         ?C0127?SYS:
+  682: 		||g_variable.currentState == DEVICE_MODE_BT
+  683: 		||g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+  684: 	{
+  685: 		mousePackage();
+001D6B 12176E            LCALL   mousePackage
+  686: 
+  687: 		if(m_mouseFastConnFlag){
+001D6E 904EA6            MOV     DPTR,#m_mouseFastConnFlag
+001D71 E0                MOVX    A,@DPTR
+001D72 604B              JZ      ?C0128?SYS
+  688: 			if((m_hidBuff[0] == 0) && (m_hidBuff[1] == 0) &&
+001D74 904E21            MOV     DPTR,#m_hidBuff
+001D77 E0                MOVX    A,@DPTR
+001D78 7034              JNZ     ?C0129?SYS
+001D7A A3                INC     DPTR
+001D7B E0                MOVX    A,@DPTR
+001D7C 7030              JNZ     ?C0129?SYS
+001D7E A3                INC     DPTR
+001D7F E0                MOVX    A,@DPTR
+001D80 702C              JNZ     ?C0129?SYS
+001D82 A3                INC     DPTR
+001D83 E0                MOVX    A,@DPTR
+001D84 7028              JNZ     ?C0129?SYS
+001D86 A3                INC     DPTR
+001D87 E0                MOVX    A,@DPTR
+001D88 7024              JNZ     ?C0129?SYS
+001D8A A3                INC     DPTR
+001D8B E0                MOVX    A,@DPTR
+001D8C 7020              JNZ     ?C0129?SYS
+001D8E A3                INC     DPTR
+001D8F E0                MOVX    A,@DPTR
+001D90 701C              JNZ     ?C0129?SYS
+  689: 			(m_hidBuff[2] == 0) && (m_hidBuff[3] == 0) &&
+  690: 			(m_hidBuff[4] == 0) && (m_hidBuff[5] == 0) &&
+  691: 			(m_hidBuff[6] == 0) ){
+  692: 				if(m_FastConnSendEmptyCount < 3){
+001D92 901C32            MOV     DPTR,#m_FastConnSendEmptyCount
+001D95 E0                MOVX    A,@DPTR
+001D96 C3                CLR     C
+001D97 9403              SUBB    A,#03H
+001D99 502F              JNC     ?C0112?SYS
+  693: 					IPC_TxHidData(m_hidBuff,7);
+001D9B 7B01              MOV     R3,#01H
+001D9D 7A4E              MOV     R2,#HIGH m_hidBuff
+001D9F 7921              MOV     R1,#LOW m_hidBuff
+001DA1 7D07              MOV     R5,#07H
+001DA3 1217B2            LCALL   _IPC_TxHidData
+  694: 					m_FastConnSendEmptyCount = m_FastConnSendEmptyCount+1;
+001DA6 901C32            MOV     DPTR,#m_FastConnSendEmptyCount
+001DA9 E0                MOVX    A,@DPTR
+001DAA 04                INC     A
+001DAB F0                MOVX    @DPTR,A
+  695: 				}
+001DAC 22                RET     
+  696: 				else{
+  697: 					return;
+  698: 				}
+  699: 			}
+001DAD 22                RET     
+001DAE         ?C0129?SYS:
+  700: 			else{
+  701: 				IPC_TxHidData(m_hidBuff,7);
+001DAE 7B01              MOV     R3,#01H
+001DB0 7A4E              MOV     R2,#HIGH m_hidBuff
+001DB2 7921              MOV     R1,#LOW m_hidBuff
+001DB4 7D07              MOV     R5,#07H
+001DB6 1217B2            LCALL   _IPC_TxHidData
+  702: 				m_FastConnSendEmptyCount = 0;
+001DB9 E4                CLR     A
+001DBA 901C32            MOV     DPTR,#m_FastConnSendEmptyCount
+001DBD F0                MOVX    @DPTR,A
+  703: 			}
+  704: 		}
+001DBE 22                RET     
+001DBF         ?C0128?SYS:
+  705: 		else{
+  706: 			IPC_TxHidData(m_hidBuff,7);
+001DBF 7B01              MOV     R3,#01H
+001DC1 7A4E              MOV     R2,#HIGH m_hidBuff
+001DC3 7921              MOV     R1,#LOW m_hidBuff
+001DC5 7D07              MOV     R5,#07H
+001DC7 1217B2            LCALL   _IPC_TxHidData
+  707: 		}
+  708: 		
+  709: 	}
+  710: }
+001DCA         ?C0112?SYS:
+001DCA 22                RET     
+----- FUNCTION mouseMotion (END) -------
+
+
+----- FUNCTION IPC_IsTxBuffEmpty (BEGIN) -----
+ FILE: 'ipc.c'
+  139: bit IPC_IsTxBuffEmpty()
+  140: {
+  141: 	if (ipcTxReadPtr == ipcTxWritePtr)
+  142: 		return 1;
+001DCB 9047C6            MOV     DPTR,#ipcTxWritePtr
+001DCE E0                MOVX    A,@DPTR
+001DCF FE                MOV     R6,A
+001DD0 A3                INC     DPTR
+001DD1 E0                MOVX    A,@DPTR
+001DD2 FF                MOV     R7,A
+001DD3 9047C4            MOV     DPTR,#ipcTxReadPtr
+001DD6 E0                MOVX    A,@DPTR
+001DD7 B50607            CJNE    A,AR6,?C0027?IPC
+001DDA A3                INC     DPTR
+001DDB E0                MOVX    A,@DPTR
+001DDC B50702            CJNE    A,AR7,?C0027?IPC
+  143: 	return 0;
+001DDF D3                SETB    C
+001DE0 22                RET     
+001DE1         ?C0027?IPC:
+  144: }
+001DE1 C3                CLR     C
+  145: 
+001DE2 22                RET     
+----- FUNCTION IPC_IsTxBuffEmpty (END) -------
+
+
+----- FUNCTION deviceTimer500ms (BEGIN) -----
+ FILE: 'sys.c'
+ 1224: static void deviceTimer500ms()
+ 1225: {
+ 1226: 	u8_t sleepState = 0;
+ 1227: 	g_variable.sleepTimer++;
+001DE3 E4                CLR     A
+001DE4 901C2A            MOV     DPTR,#sleepState
+001DE7 F0                MOVX    @DPTR,A
+ 1228: 	switch (g_variable.currentState) 
+001DE8 904EC5            MOV     DPTR,#g_variable+0AH
+001DEB E0                MOVX    A,@DPTR
+001DEC 04                INC     A
+001DED F0                MOVX    @DPTR,A
+001DEE 7006              JNZ     ?C0277?SYS
+001DF0 904EC4            MOV     DPTR,#g_variable+09H
+001DF3 E0                MOVX    A,@DPTR
+001DF4 04                INC     A
+001DF5 F0                MOVX    @DPTR,A
+001DF6         ?C0277?SYS:
+ 1229: 	{
+001DF6 904EBD            MOV     DPTR,#g_variable+02H
+001DF9 E0                MOVX    A,@DPTR
+001DFA 14                DEC     A
+001DFB 6060              JZ      ?C0218?SYS
+001DFD 24FE              ADD     A,#0FEH
+001DFF 6021              JZ      ?C0214?SYS
+001E01 24FD              ADD     A,#0FDH
+001E03 6077              JZ      ?C0220?SYS
+001E05 14                DEC     A
+001E06 6035              JZ      ?C0216?SYS
+001E08 14                DEC     A
+001E09 6002              JZ      $ + 4H
+001E0B C19C              AJMP    ?C0222?SYS
+ 1230: 		case DEVICE_MODE_BLE_ADV:
+ 1231: 			 sleepState = DEVICE_MODE_BLE;
+001E0D         ?C0211?SYS:
+ 1232: 			 if (g_variable.sleepTimer == 16)
+001E0D 901C2A            MOV     DPTR,#sleepState
+001E10 7409              MOV     A,#09H
+001E12 F0                MOVX    @DPTR,A
+ 1233: 			 {
+001E13 904EC4            MOV     DPTR,#g_variable+09H
+001E16 E0                MOVX    A,@DPTR
+001E17 7004              JNZ     ?C0278?SYS
+001E19 A3                INC     DPTR
+001E1A E0                MOVX    A,@DPTR
+001E1B 6410              XRL     A,#010H
+001E1D         ?C0278?SYS:
+001E1D 707D              JNZ     ?C0222?SYS
+ 1234: 		 		goto LONG_SLEEP;
+ 1235: 			 }
+001E1F 8078              SJMP    LONG_SLEEP?SYS
+ 1236: 			 break;
+ 1237: 		case DEVICE_MODE_DISC:
+001E21 22                RET     
+ 1238: 			sleepState = DEVICE_MODE_BT;
+001E22         ?C0214?SYS:
+ 1239: 			if (g_variable.sleepTimer == 360)	//BT Discover time 360 = 3min
+001E22 901C2A            MOV     DPTR,#sleepState
+001E25 7402              MOV     A,#02H
+001E27 F0                MOVX    @DPTR,A
+ 1240: 			{
+001E28 904EC4            MOV     DPTR,#g_variable+09H
+001E2B E0                MOVX    A,@DPTR
+001E2C 6401              XRL     A,#01H
+001E2E 7004              JNZ     ?C0279?SYS
+001E30 A3                INC     DPTR
+001E31 E0                MOVX    A,@DPTR
+001E32 6468              XRL     A,#068H
+001E34         ?C0279?SYS:
+001E34 7066              JNZ     ?C0222?SYS
+ 1241: 				m_lpmMode = 1;
+ 1242: 				goto LONG_SLEEP;
+001E36 904131            MOV     DPTR,#m_lpmMode
+001E39 04                INC     A
+001E3A F0                MOVX    @DPTR,A
+ 1243: 			}
+001E3B 805C              SJMP    LONG_SLEEP?SYS
+ 1244: 			break;
+ 1245: 		case DEVICE_MODE_BLE_BB_CONNECT:	
+ 1246: 			sleepState = DEVICE_MODE_BLE;
+001E3D         ?C0216?SYS:
+ 1247: 			if (g_variable.sleepTimer == 1200)	//BT sleep time 1200 = 10min
+001E3D 901C2A            MOV     DPTR,#sleepState
+001E40 7409              MOV     A,#09H
+001E42 F0                MOVX    @DPTR,A
+ 1248: 			{	
+001E43 904EC4            MOV     DPTR,#g_variable+09H
+001E46 E0                MOVX    A,@DPTR
+001E47 6404              XRL     A,#04H
+001E49 7004              JNZ     ?C0280?SYS
+001E4B A3                INC     DPTR
+001E4C E0                MOVX    A,@DPTR
+001E4D 64B0              XRL     A,#0B0H
+001E4F         ?C0280?SYS:
+001E4F 704B              JNZ     ?C0222?SYS
+ 1249: 				IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+ 1250: 				g_variable.nextMode = DEVICE_MODE_PREPARE_SLEEP;
+001E51 7F11              MOV     R7,#011H
+001E53 120E78            LCALL   _IPC_TxControlCmd
+ 1251: 			}
+001E56 904EBE            MOV     DPTR,#g_variable+03H
+001E59 7406              MOV     A,#06H
+001E5B F0                MOVX    @DPTR,A
+ 1252: 			break;
+ 1253: #if MOUSE_BT_MODE_ENABLE
+001E5C 22                RET     
+ 1254: 		case DEVICE_MODE_BT:
+ 1255: 			sleepState = DEVICE_MODE_BT;
+ 1256: 			if (g_variable.sleepTimer == 1200)	//BT sleep time 1200 = 10min
+ 1257: 			{	
+ 1258: 				IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+ 1259: 				g_variable.nextMode = DEVICE_MODE_NONE;
+ 1260: 			}
+ 1261: 			break;
+ 1262: #endif
+ 1263: 		case DEVICE_MODE_24G:
+001E5D         ?C0218?SYS:
+ 1264: 			sleepState = DEVICE_MODE_24G;
+001E5D 901C2A            MOV     DPTR,#sleepState
+001E60 7401              MOV     A,#01H
+001E62 F0                MOVX    @DPTR,A
+ 1265: 			if ((g_variable.sleepTimer > 1200) && (g_variable.g24DongleExist == 1))
+001E63 D3                SETB    C
+001E64 904EC5            MOV     DPTR,#g_variable+0AH
+001E67 E0                MOVX    A,@DPTR
+001E68 94B0              SUBB    A,#0B0H
+001E6A 904EC4            MOV     DPTR,#g_variable+09H
+001E6D E0                MOVX    A,@DPTR
+001E6E 9404              SUBB    A,#04H
+001E70 402A              JC      ?C0222?SYS
+001E72 904EE3            MOV     DPTR,#g_variable+028H
+001E75 E0                MOVX    A,@DPTR
+001E76 B40123            CJNE    A,#01H,?C0222?SYS
+ 1266: 			{
+ 1267: 				goto LONG_SLEEP; 
+001E79 801E              SJMP    LONG_SLEEP?SYS
+ 1268: 			}
+ 1269: 			break;
+001E7B 22                RET     
+ 1270: 		case DEVICE_MODE_PREPARE_SLEEP:
+001E7C         ?C0220?SYS:
+ 1271: 			sleepState = DEVICE_MODE_BT;
+001E7C 901C2A            MOV     DPTR,#sleepState
+001E7F 7402              MOV     A,#02H
+001E81 F0                MOVX    @DPTR,A
+ 1272: 			if (!IPC_IsTxBuffEmpty())
+001E82 B1CB              ACALL   IPC_IsTxBuffEmpty
+001E84 5016              JNC     ?C0222?SYS
+001E86         ?C0221?SYS:
+ 1273: 				return;
+ 1274: 			if (g_variable.sleepTimer >= 3)		//24G sleep time 600=10min
+001E86 C3                CLR     C
+001E87 904EC5            MOV     DPTR,#g_variable+0AH
+001E8A E0                MOVX    A,@DPTR
+001E8B 9403              SUBB    A,#03H
+001E8D 904EC4            MOV     DPTR,#g_variable+09H
+001E90 E0                MOVX    A,@DPTR
+001E91 9400              SUBB    A,#00H
+001E93 4007              JC      ?C0222?SYS
+ 1275: 			{
+ 1276: 				goto LONG_SLEEP;
+001E95 8002              SJMP    LONG_SLEEP?SYS
+ 1277: 			}
+ 1278: 			break;
+001E97 22                RET     
+ 1279: 	}
+001E98 22                RET     
+ 1280: 	return;
+ 1281: 		
+ 1282: 	LONG_SLEEP:
+001E99         LONG_SLEEP:
+ 1283: //		IIC_WriteBlock(EEPROM_CONN_MODE,1,&sleepState);
+ 1284: 		deviceLongSleep();
+001E99 121754            LCALL   deviceLongSleep
+ 1285: }
+001E9C         ?C0222?SYS:
+001E9C 22                RET     
+----- FUNCTION deviceTimer500ms (END) -------
+
+
+----- FUNCTION clearGlobalMem (BEGIN) -----
+ FILE: 'sys.c'
+  807: void clearGlobalMem()
+  808: {
+  809: 	xmemclear_0(m_hidBuff,32);
+  810: 	xmemclear_0((u8_t *)&g_variable,sizeof(G_VARIABLE_MAP));
+001E9D 7B01              MOV     R3,#01H
+001E9F 7A4E              MOV     R2,#HIGH m_hidBuff
+001EA1 7921              MOV     R1,#LOW m_hidBuff
+001EA3 7D20              MOV     R5,#020H
+001EA5 7C00              MOV     R4,#00H
+001EA7 D1C0              ACALL   _xmemclear_0
+  811: 	g_variable.bufferEnd = 0xff;
+001EA9 7B01              MOV     R3,#01H
+001EAB 7A4E              MOV     R2,#HIGH g_variable
+001EAD 79BB              MOV     R1,#LOW g_variable
+001EAF 7D5A              MOV     R5,#05AH
+001EB1 7C00              MOV     R4,#00H
+001EB3 D1C0              ACALL   _xmemclear_0
+  812: 	g_variable.bufferSize = sizeof(g_variable);
+001EB5 904F13            MOV     DPTR,#g_variable+058H
+001EB8 74FF              MOV     A,#0FFH
+001EBA F0                MOVX    @DPTR,A
+  813: }
+001EBB A3                INC     DPTR
+001EBC 745A              MOV     A,#05AH
+001EBE F0                MOVX    @DPTR,A
+  814: 
+001EBF 22                RET     
+----- FUNCTION clearGlobalMem (END) -------
+
+
+----- FUNCTION _xmemclear_0 (BEGIN) -----
+ FILE: 'utilities.c'
+   24: void xmemclear_0(u8_t *dest, u16_t len)
+   25: {
+001EC0 901C19            MOV     DPTR,#dest
+001EC3 EB                MOV     A,R3
+001EC4 F0                MOVX    @DPTR,A
+001EC5 A3                INC     DPTR
+001EC6 EA                MOV     A,R2
+001EC7 F0                MOVX    @DPTR,A
+001EC8 A3                INC     DPTR
+001EC9 E9                MOV     A,R1
+001ECA F0                MOVX    @DPTR,A
+;---- Variable 'len' assigned to Register 'R4/R5' ----
+   26: 	while(len--)
+001ECB         ?C0008?UTILITIES:
+   27: 		*dest++ = 0x00;
+001ECB ED                MOV     A,R5
+001ECC 1D                DEC     R5
+001ECD AE04              MOV     R6,AR4
+001ECF 7001              JNZ     ?C0026?UTILITIES
+001ED1 1C                DEC     R4
+001ED2         ?C0026?UTILITIES:
+001ED2 4E                ORL     A,R6
+001ED3 6016              JZ      ?C0010?UTILITIES
+   28: 	return;
+001ED5 901C19            MOV     DPTR,#dest
+001ED8 E0                MOVX    A,@DPTR
+001ED9 FB                MOV     R3,A
+001EDA A3                INC     DPTR
+001EDB E4                CLR     A
+001EDC 75F001            MOV     B,#01H
+001EDF 120204            LCALL   ?C?ILDIX
+001EE2 A9F0              MOV     R1,B
+001EE4 FA                MOV     R2,A
+001EE5 E4                CLR     A
+001EE6 12013F            LCALL   ?C?CSTPTR
+001EE9 80E0              SJMP    ?C0008?UTILITIES
+   29: }
+001EEB         ?C0010?UTILITIES:
+001EEB 22                RET     
+----- FUNCTION _xmemclear_0 (END) -------
+
+
+----- FUNCTION deviceInit (BEGIN) -----
+ FILE: 'sys.c'
+ 1357: static void deviceInit()
+ 1358: {
+ 1359: 	IPC_Initialize(&cb);
+ 1360: }
+001EEC 7B01              MOV     R3,#01H
+001EEE 7A1B              MOV     R2,#HIGH cb
+001EF0 79AB              MOV     R1,#LOW cb
+;----                  JMP     _IPC_Initialize
+----- FUNCTION deviceInit (END) -------
+
+
+----- FUNCTION _IPC_Initialize (BEGIN) -----
+ FILE: 'ipc.c'
+  121: void IPC_Initialize(tIPCControlBlock *cb)
+  122: {
+;---- Variable 'cb' assigned to Register 'R1/R2/R3' ----
+  123: 	ipcCb = *cb;
+  124: }
+001EF2 7830              MOV     R0,#LOW ipcCb
+001EF4 7C48              MOV     R4,#HIGH ipcCb
+001EF6 7D01              MOV     R5,#01H
+001EF8 7E00              MOV     R6,#00H
+001EFA 7F12              MOV     R7,#012H
+001EFC 0200D3            LJMP    ?C?COPY
+----- FUNCTION _IPC_Initialize (END) -------
+
+
+----- FUNCTION YC_Ice_break (BEGIN) -----
+ FILE: 'utilities.c'
+    4: void YC_Ice_break()
+    5: {
+    6: 	CPUB_ICE_CTRL = 1;
+    7: 	return;
+001EFF 908280            MOV     DPTR,#08280H
+001F02 7401              MOV     A,#01H
+001F04 F0                MOVX    @DPTR,A
+    8: }
+001F05 22                RET     
+----- FUNCTION YC_Ice_break (END) -------
+
+
+----- FUNCTION _dmemcpy (BEGIN) -----
+ FILE: 'utilities.c'
+   17: void dmemcpy(u8_t *dest, u8_t* src, u16_t len) 
+   18: {
+001F06 901BD2            MOV     DPTR,#dest
+001F09 EB                MOV     A,R3
+001F0A F0                MOVX    @DPTR,A
+001F0B A3                INC     DPTR
+001F0C EA                MOV     A,R2
+001F0D F0                MOVX    @DPTR,A
+001F0E A3                INC     DPTR
+001F0F E9                MOV     A,R1
+001F10 F0                MOVX    @DPTR,A
+   19: 	while(len--)
+001F11         ?C0005?UTILITIES:
+   20: 		*dest++ = *src++;
+001F11 901BD8            MOV     DPTR,#len
+001F14 74FF              MOV     A,#0FFH
+001F16 F5F0              MOV     B,A
+001F18 120204            LCALL   ?C?ILDIX
+001F1B 45F0              ORL     A,B
+001F1D 602A              JZ      ?C0007?UTILITIES
+   21: 	return;
+001F1F 901BD5            MOV     DPTR,#src
+001F22 E0                MOVX    A,@DPTR
+001F23 FB                MOV     R3,A
+001F24 A3                INC     DPTR
+001F25 E4                CLR     A
+001F26 75F001            MOV     B,#01H
+001F29 120204            LCALL   ?C?ILDIX
+001F2C A9F0              MOV     R1,B
+001F2E FA                MOV     R2,A
+001F2F 1200F9            LCALL   ?C?CLDPTR
+001F32 FF                MOV     R7,A
+001F33 901BD2            MOV     DPTR,#dest
+001F36 E0                MOVX    A,@DPTR
+001F37 FB                MOV     R3,A
+001F38 A3                INC     DPTR
+001F39 E4                CLR     A
+001F3A 75F001            MOV     B,#01H
+001F3D 120204            LCALL   ?C?ILDIX
+001F40 A9F0              MOV     R1,B
+001F42 FA                MOV     R2,A
+001F43 EF                MOV     A,R7
+001F44 12013F            LCALL   ?C?CSTPTR
+001F47 80C8              SJMP    ?C0005?UTILITIES
+   22: }
+001F49         ?C0007?UTILITIES:
+001F49 22                RET     
+----- FUNCTION _dmemcpy (END) -------
+
+
+----- FUNCTION _xmemclear_ff (BEGIN) -----
+ FILE: 'utilities.c'
+   31: void xmemclear_ff(u8_t *dest, u16_t len)
+   32: {
+001F4A 901C1C            MOV     DPTR,#dest
+001F4D EB                MOV     A,R3
+001F4E F0                MOVX    @DPTR,A
+001F4F A3                INC     DPTR
+001F50 EA                MOV     A,R2
+001F51 F0                MOVX    @DPTR,A
+001F52 A3                INC     DPTR
+001F53 E9                MOV     A,R1
+001F54 F0                MOVX    @DPTR,A
+;---- Variable 'len' assigned to Register 'R4/R5' ----
+   33: 	while(len--)
+001F55         ?C0011?UTILITIES:
+   34: 		*dest++ = 0xff;
+001F55 ED                MOV     A,R5
+001F56 1D                DEC     R5
+001F57 AE04              MOV     R6,AR4
+001F59 7001              JNZ     ?C0027?UTILITIES
+001F5B 1C                DEC     R4
+001F5C         ?C0027?UTILITIES:
+001F5C 4E                ORL     A,R6
+001F5D 6017              JZ      ?C0013?UTILITIES
+   35: 	return;
+001F5F 901C1C            MOV     DPTR,#dest
+001F62 E0                MOVX    A,@DPTR
+001F63 FB                MOV     R3,A
+001F64 A3                INC     DPTR
+001F65 E4                CLR     A
+001F66 75F001            MOV     B,#01H
+001F69 120204            LCALL   ?C?ILDIX
+001F6C A9F0              MOV     R1,B
+001F6E FA                MOV     R2,A
+001F6F 74FF              MOV     A,#0FFH
+001F71 12013F            LCALL   ?C?CSTPTR
+001F74 80DF              SJMP    ?C0011?UTILITIES
+   36: }
+001F76         ?C0013?UTILITIES:
+001F76 22                RET     
+----- FUNCTION _xmemclear_ff (END) -------
+
+
+----- FUNCTION _compare_str (BEGIN) -----
+ FILE: 'utilities.c'
+   55: u8_t compare_str(u8_t * str1,u8_t * str2,u8_t len)
+   56: {
+001F77 901BDA            MOV     DPTR,#str1
+001F7A EB                MOV     A,R3
+001F7B F0                MOVX    @DPTR,A
+001F7C A3                INC     DPTR
+001F7D EA                MOV     A,R2
+001F7E F0                MOVX    @DPTR,A
+001F7F A3                INC     DPTR
+001F80 E9                MOV     A,R1
+001F81 F0                MOVX    @DPTR,A
+   57: 	u8_t i;
+   58: 	for (i=0;i < len;i++)
+;---- Variable 'i' assigned to Register 'R7' ----
+001F82 E4                CLR     A
+001F83 FF                MOV     R7,A
+001F84         ?C0021?UTILITIES:
+001F84 901BE0            MOV     DPTR,#len
+001F87 E0                MOVX    A,@DPTR
+001F88 FE                MOV     R6,A
+001F89 EF                MOV     A,R7
+001F8A C3                CLR     C
+001F8B 9E                SUBB    A,R6
+001F8C 5030              JNC     ?C0022?UTILITIES
+   59: 	{
+   60: 		if (str1[i] != str2[i])
+001F8E 901BDD            MOV     DPTR,#str2
+001F91 E0                MOVX    A,@DPTR
+001F92 FB                MOV     R3,A
+001F93 A3                INC     DPTR
+001F94 E0                MOVX    A,@DPTR
+001F95 FA                MOV     R2,A
+001F96 A3                INC     DPTR
+001F97 E0                MOVX    A,@DPTR
+001F98 F9                MOV     R1,A
+001F99 8F82              MOV     DPL,R7
+001F9B 758300            MOV     DPH,#00H
+001F9E 120112            LCALL   ?C?CLDOPTR
+001FA1 FE                MOV     R6,A
+001FA2 901BDA            MOV     DPTR,#str1
+001FA5 E0                MOVX    A,@DPTR
+001FA6 FB                MOV     R3,A
+001FA7 A3                INC     DPTR
+001FA8 E0                MOVX    A,@DPTR
+001FA9 FA                MOV     R2,A
+001FAA A3                INC     DPTR
+001FAB E0                MOVX    A,@DPTR
+001FAC F9                MOV     R1,A
+001FAD 8F82              MOV     DPL,R7
+001FAF 758300            MOV     DPH,#00H
+001FB2 120112            LCALL   ?C?CLDOPTR
+001FB5 6E                XRL     A,R6
+001FB6 6003              JZ      ?C0023?UTILITIES
+   61: 			return 0x00;
+001FB8 7F00              MOV     R7,#00H
+001FBA 22                RET     
+   62: 	}
+001FBB         ?C0023?UTILITIES:
+001FBB 0F                INC     R7
+001FBC 80C6              SJMP    ?C0021?UTILITIES
+001FBE         ?C0022?UTILITIES:
+   63: 	return 0x01;
+001FBE 7F01              MOV     R7,#01H
+   64: }
+001FC0 22                RET     
+----- FUNCTION _compare_str (END) -------
+
+
+----- FUNCTION _GPIO_SetPd (BEGIN) -----
+ FILE: 'gpio.c'
+   50: void GPIO_SetPd(u8_t gpio_num, bool bit_val)
+   51: {
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+   52: 	gpioSetBit(gpio_num, &REG_GPIO_PDN(0), bit_val);	
+   53: }
+001FC1 7B01              MOV     R3,#01H
+001FC3 7A80              MOV     R2,#080H
+001FC5 797C              MOV     R1,#07CH
+001FC7 A204              MOV     C,bit_val
+001FC9 9201              MOV     ?_gpioSetBit?BIT,C
+001FCB 0203C2            LJMP    _gpioSetBit
+----- FUNCTION _GPIO_SetPd (END) -------
+
+
+----- FUNCTION _GPIO_ClearWakeup (BEGIN) -----
+ FILE: 'gpio.c'
+   89: void GPIO_ClearWakeup(u8_t gpio_num)
+   90: {
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+   91: 	u8_t queue, group;
+   92: 	queue = (gpio_num & 7);
+001FCE EF                MOV     A,R7
+001FCF 5407              ANL     A,#07H
+001FD1 FE                MOV     R6,A
+;---- Variable 'queue' assigned to Register 'R6' ----
+   93: 	group = (gpio_num>>3 & 3);
+001FD2 EF                MOV     A,R7
+001FD3 13                RRC     A
+001FD4 13                RRC     A
+001FD5 13                RRC     A
+001FD6 5403              ANL     A,#03H
+001FD8 FF                MOV     R7,A
+;---- Variable 'group' assigned to Register 'R7' ----
+   94: 	*(YC_GPIOWakeupL+group) &= ~(1<<queue);
+001FD9 24A0              ADD     A,#LOW YC_GPIOWakeupL
+001FDB F582              MOV     DPL,A
+001FDD E4                CLR     A
+001FDE 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+001FE0 F583              MOV     DPH,A
+001FE2 C083              PUSH    DPH
+001FE4 C082              PUSH    DPL
+001FE6 E0                MOVX    A,@DPTR
+001FE7 FD                MOV     R5,A
+001FE8 7401              MOV     A,#01H
+001FEA A806              MOV     R0,AR6
+001FEC 08                INC     R0
+001FED 8002              SJMP    ?C0031?GPIO
+001FEF         ?C0030?GPIO:
+001FEF C3                CLR     C
+001FF0 33                RLC     A
+001FF1         ?C0031?GPIO:
+001FF1 D8FC              DJNZ    R0,?C0030?GPIO
+001FF3 F4                CPL     A
+001FF4 FC                MOV     R4,A
+001FF5 5D                ANL     A,R5
+001FF6 D082              POP     DPL
+001FF8 D083              POP     DPH
+001FFA F0                MOVX    @DPTR,A
+   95: 	*(YC_GPIOWakeupH+group) &= ~(1<<queue);
+001FFB 74A4              MOV     A,#LOW YC_GPIOWakeupH
+001FFD 2F                ADD     A,R7
+001FFE F582              MOV     DPL,A
+002000 E4                CLR     A
+002001 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+002003 F583              MOV     DPH,A
+002005 E0                MOVX    A,@DPTR
+002006 5C                ANL     A,R4
+002007 F0                MOVX    @DPTR,A
+   96: }
+002008 22                RET     
+----- FUNCTION _GPIO_ClearWakeup (END) -------
+
+
+----- FUNCTION IPC_GetBBDIsconnectReason (BEGIN) -----
+ FILE: 'ipc.c'
+   98: u8_t IPC_GetBBDIsconnectReason()
+   99: {
+  100: 	return bbDisReason;
+  101: }
+002009 9003F0            MOV     DPTR,#bbDisReason
+00200C E0                MOVX    A,@DPTR
+00200D FF                MOV     R7,A
+  102: 
+00200E 22                RET     
+----- FUNCTION IPC_GetBBDIsconnectReason (END) -------
+
+
+----- FUNCTION _abs (BEGIN) -----
+ FILE: 'sensor.c'
+  259: u16_t abs(s16_t data_in)
+  260: {
+;---- Variable 'data_in' assigned to Register 'R6/R7' ----
+  261: 	if( data_in<=0)
+  262: 		data_in = 0 - data_in;
+00200F D3                SETB    C
+002010 EF                MOV     A,R7
+002011 9400              SUBB    A,#00H
+002013 EE                MOV     A,R6
+002014 6480              XRL     A,#080H
+002016 9480              SUBB    A,#080H
+002018 5007              JNC     ?C0034?SENSOR
+  263: 	return ((u16_t) data_in);
+00201A C3                CLR     C
+00201B E4                CLR     A
+00201C 9F                SUBB    A,R7
+00201D FF                MOV     R7,A
+00201E E4                CLR     A
+00201F 9E                SUBB    A,R6
+002020 FE                MOV     R6,A
+002021         ?C0034?SENSOR:
+  264: }
+  265: 
+002021 22                RET     
+----- FUNCTION _abs (END) -------
+
+
+----- FUNCTION Drawing_optima (BEGIN) -----
+ FILE: 'sensor.c'
+  267: void Drawing_optima()
+  268: {
+  269: 	if ((g_variable.X_data > 6) ||(g_variable.X_data < -6)||(g_variable.Y_data > 6) ||(g_variable.Y_data < -6))
+  270: 		g_variable.asm_flag = 1;
+002022 904EFB            MOV     DPTR,#g_variable+040H
+002025 E0                MOVX    A,@DPTR
+002026 FE                MOV     R6,A
+002027 A3                INC     DPTR
+002028 E0                MOVX    A,@DPTR
+002029 FF                MOV     R7,A
+00202A D3                SETB    C
+00202B 9406              SUBB    A,#06H
+00202D EE                MOV     A,R6
+00202E 6480              XRL     A,#080H
+002030 9480              SUBB    A,#080H
+002032 5026              JNC     ?C0037?SENSOR
+002034 C3                CLR     C
+002035 EF                MOV     A,R7
+002036 94FA              SUBB    A,#0FAH
+002038 EE                MOV     A,R6
+002039 6480              XRL     A,#080H
+00203B 947F              SUBB    A,#07FH
+00203D 401B              JC      ?C0037?SENSOR
+00203F A3                INC     DPTR
+002040 E0                MOVX    A,@DPTR
+002041 FE                MOV     R6,A
+002042 A3                INC     DPTR
+002043 E0                MOVX    A,@DPTR
+002044 FF                MOV     R7,A
+002045 D3                SETB    C
+002046 9406              SUBB    A,#06H
+002048 EE                MOV     A,R6
+002049 6480              XRL     A,#080H
+00204B 9480              SUBB    A,#080H
+00204D 500B              JNC     ?C0037?SENSOR
+00204F C3                CLR     C
+002050 EF                MOV     A,R7
+002051 94FA              SUBB    A,#0FAH
+002053 EE                MOV     A,R6
+002054 6480              XRL     A,#080H
+002056 947F              SUBB    A,#07FH
+002058 5006              JNC     ?C0036?SENSOR
+00205A         ?C0037?SENSOR:
+  271: 	if ((abs(g_variable.X_data) <3) &&(abs(g_variable.Y_data) <3))
+00205A 904EFF            MOV     DPTR,#g_variable+044H
+00205D 7401              MOV     A,#01H
+00205F F0                MOVX    @DPTR,A
+002060         ?C0036?SENSOR:
+  272: 		g_variable.asm_flag = 0;
+002060 904EFB            MOV     DPTR,#g_variable+040H
+002063 E0                MOVX    A,@DPTR
+002064 FE                MOV     R6,A
+002065 A3                INC     DPTR
+002066 E0                MOVX    A,@DPTR
+002067 FF                MOV     R7,A
+002068 110F              ACALL   _abs
+00206A C3                CLR     C
+00206B EF                MOV     A,R7
+00206C 9403              SUBB    A,#03H
+00206E EE                MOV     A,R6
+00206F 9400              SUBB    A,#00H
+002071 5014              JNC     ?C0038?SENSOR
+002073 A3                INC     DPTR
+002074 E0                MOVX    A,@DPTR
+002075 FE                MOV     R6,A
+002076 A3                INC     DPTR
+002077 E0                MOVX    A,@DPTR
+002078 FF                MOV     R7,A
+002079 110F              ACALL   _abs
+00207B C3                CLR     C
+00207C EF                MOV     A,R7
+00207D 9403              SUBB    A,#03H
+00207F EE                MOV     A,R6
+002080 9400              SUBB    A,#00H
+002082 5003              JNC     ?C0038?SENSOR
+  273: 	if(g_variable.asm_flag == 1) {
+002084 E4                CLR     A
+002085 A3                INC     DPTR
+002086 F0                MOVX    @DPTR,A
+002087         ?C0038?SENSOR:
+  274: 		g_variable.X_sum = g_variable.X_sum - g_variable.X_pre + g_variable.X_data;
+002087 904EFF            MOV     DPTR,#g_variable+044H
+00208A E0                MOVX    A,@DPTR
+00208B 6401              XRL     A,#01H
+00208D 6002              JZ      $ + 4H
+00208F 2110              AJMP    ?C0039?SENSOR
+  275: 		g_variable.X_pre = g_variable.X_sum/2;
+002091 904EF7            MOV     DPTR,#g_variable+03CH
+002094 E0                MOVX    A,@DPTR
+002095 FE                MOV     R6,A
+002096 A3                INC     DPTR
+002097 E0                MOVX    A,@DPTR
+002098 FF                MOV     R7,A
+002099 C3                CLR     C
+00209A 904EF4            MOV     DPTR,#g_variable+039H
+00209D E0                MOVX    A,@DPTR
+00209E 9F                SUBB    A,R7
+00209F FF                MOV     R7,A
+0020A0 904EF3            MOV     DPTR,#g_variable+038H
+0020A3 E0                MOVX    A,@DPTR
+0020A4 9E                SUBB    A,R6
+0020A5 FE                MOV     R6,A
+0020A6 904EFC            MOV     DPTR,#g_variable+041H
+0020A9 E0                MOVX    A,@DPTR
+0020AA 2F                ADD     A,R7
+0020AB FF                MOV     R7,A
+0020AC 904EFB            MOV     DPTR,#g_variable+040H
+0020AF E0                MOVX    A,@DPTR
+0020B0 3E                ADDC    A,R6
+0020B1 FE                MOV     R6,A
+0020B2 904EF3            MOV     DPTR,#g_variable+038H
+0020B5 F0                MOVX    @DPTR,A
+0020B6 A3                INC     DPTR
+0020B7 EF                MOV     A,R7
+0020B8 F0                MOVX    @DPTR,A
+  276: 		g_variable.X_data = g_variable.X_pre;
+0020B9 7C00              MOV     R4,#00H
+0020BB 7D02              MOV     R5,#02H
+0020BD 1201B8            LCALL   ?C?SIDIV
+0020C0 904EF7            MOV     DPTR,#g_variable+03CH
+0020C3 EE                MOV     A,R6
+0020C4 F0                MOVX    @DPTR,A
+0020C5 A3                INC     DPTR
+0020C6 EF                MOV     A,R7
+0020C7 F0                MOVX    @DPTR,A
+  277: 		g_variable.Y_sum = g_variable.Y_sum - g_variable.Y_pre + g_variable.Y_data;
+0020C8 904EFB            MOV     DPTR,#g_variable+040H
+0020CB EE                MOV     A,R6
+0020CC F0                MOVX    @DPTR,A
+0020CD A3                INC     DPTR
+0020CE EF                MOV     A,R7
+0020CF F0                MOVX    @DPTR,A
+  278: 		g_variable.Y_pre = g_variable.Y_sum/2;
+0020D0 904EF9            MOV     DPTR,#g_variable+03EH
+0020D3 E0                MOVX    A,@DPTR
+0020D4 FE                MOV     R6,A
+0020D5 A3                INC     DPTR
+0020D6 E0                MOVX    A,@DPTR
+0020D7 FF                MOV     R7,A
+0020D8 C3                CLR     C
+0020D9 904EF6            MOV     DPTR,#g_variable+03BH
+0020DC E0                MOVX    A,@DPTR
+0020DD 9F                SUBB    A,R7
+0020DE FF                MOV     R7,A
+0020DF 904EF5            MOV     DPTR,#g_variable+03AH
+0020E2 E0                MOVX    A,@DPTR
+0020E3 9E                SUBB    A,R6
+0020E4 FE                MOV     R6,A
+0020E5 904EFE            MOV     DPTR,#g_variable+043H
+0020E8 E0                MOVX    A,@DPTR
+0020E9 2F                ADD     A,R7
+0020EA FF                MOV     R7,A
+0020EB 904EFD            MOV     DPTR,#g_variable+042H
+0020EE E0                MOVX    A,@DPTR
+0020EF 3E                ADDC    A,R6
+0020F0 FE                MOV     R6,A
+0020F1 904EF5            MOV     DPTR,#g_variable+03AH
+0020F4 F0                MOVX    @DPTR,A
+0020F5 A3                INC     DPTR
+0020F6 EF                MOV     A,R7
+0020F7 F0                MOVX    @DPTR,A
+  279: 		g_variable.Y_data = g_variable.Y_pre;
+0020F8 7C00              MOV     R4,#00H
+0020FA 7D02              MOV     R5,#02H
+0020FC 1201B8            LCALL   ?C?SIDIV
+0020FF 904EF9            MOV     DPTR,#g_variable+03EH
+002102 EE                MOV     A,R6
+002103 F0                MOVX    @DPTR,A
+002104 A3                INC     DPTR
+002105 EF                MOV     A,R7
+002106 F0                MOVX    @DPTR,A
+  280: 	}else{
+002107 904EFD            MOV     DPTR,#g_variable+042H
+00210A EE                MOV     A,R6
+00210B F0                MOVX    @DPTR,A
+00210C A3                INC     DPTR
+00210D EF                MOV     A,R7
+00210E F0                MOVX    @DPTR,A
+  281: 		g_variable.X_sum = 0;
+00210F 22                RET     
+002110         ?C0039?SENSOR:
+  282: 		g_variable.Y_sum = 0;
+002110 E4                CLR     A
+002111 904EF3            MOV     DPTR,#g_variable+038H
+002114 F0                MOVX    @DPTR,A
+002115 A3                INC     DPTR
+002116 F0                MOVX    @DPTR,A
+  283: 	 	g_variable.X_pre = 0;
+002117 A3                INC     DPTR
+002118 F0                MOVX    @DPTR,A
+002119 A3                INC     DPTR
+00211A F0                MOVX    @DPTR,A
+  284: 	 	g_variable.Y_pre = 0;
+00211B A3                INC     DPTR
+00211C F0                MOVX    @DPTR,A
+00211D A3                INC     DPTR
+00211E F0                MOVX    @DPTR,A
+  285:  	}
+00211F A3                INC     DPTR
+002120 F0                MOVX    @DPTR,A
+002121 A3                INC     DPTR
+002122 F0                MOVX    @DPTR,A
+  286: }
+  287: 
+002123 22                RET     
+----- FUNCTION Drawing_optima (END) -------
+
+
+----- FUNCTION Drawing_optima_init (BEGIN) -----
+ FILE: 'sensor.c'
+  288: void Drawing_optima_init()
+  289: {
+  290: 	g_variable.X_sum = 0;
+  291: 	g_variable.Y_sum = 0;
+002124 E4                CLR     A
+002125 904EF3            MOV     DPTR,#g_variable+038H
+002128 F0                MOVX    @DPTR,A
+002129 A3                INC     DPTR
+00212A F0                MOVX    @DPTR,A
+  292:  	g_variable.X_pre = 0;
+00212B A3                INC     DPTR
+00212C F0                MOVX    @DPTR,A
+00212D A3                INC     DPTR
+00212E F0                MOVX    @DPTR,A
+  293:  	g_variable.Y_pre = 0;
+00212F A3                INC     DPTR
+002130 F0                MOVX    @DPTR,A
+002131 A3                INC     DPTR
+002132 F0                MOVX    @DPTR,A
+  294: 	g_variable.asm_flag = 0;
+002133 A3                INC     DPTR
+002134 F0                MOVX    @DPTR,A
+002135 A3                INC     DPTR
+002136 F0                MOVX    @DPTR,A
+  295: 	g_variable.X_data = 0;
+002137 904EFF            MOV     DPTR,#g_variable+044H
+00213A F0                MOVX    @DPTR,A
+  296: 	g_variable.Y_data = 0;
+00213B 904EFB            MOV     DPTR,#g_variable+040H
+00213E F0                MOVX    @DPTR,A
+00213F A3                INC     DPTR
+002140 F0                MOVX    @DPTR,A
+  297: }
+002141 A3                INC     DPTR
+002142 F0                MOVX    @DPTR,A
+002143 A3                INC     DPTR
+002144 F0                MOVX    @DPTR,A
+  298: 
+002145 22                RET     
+----- FUNCTION Drawing_optima_init (END) -------
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.HTM
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.HTM	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.HTM	(working copy)
@@ -0,0 +1,1063 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>LX51 Static Call Analysis</title>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<style type="text/css">
+<!--
+p            { font-family: Verdana; font-size: 8pt; margin-top: 2; margin-bottom: 2 }
+.LI2         { margin-top: 2; margin-bottom: 2 }
+.Release     { background-color: #CCCCCC; font-weight: bold; padding: 6 }
+.ToolT       { font-size: 8pt; color: #808080 }
+.TinyT       { font-size: 8pt; text-align: Center }
+ul           { font-family: Verdana; font-size: 8pt; list-style-type: square;  margin-top: 2; margin-bottom: 2 }
+ol           { font-family: Verdana; font-size: 8pt }
+h1           { font-family: Verdana; font-size: 14pt; color: #000080; font-weight: bold; text-align: Center; margin-right: 3 }
+h2           { font-family: Verdana; font-size: 8pt; color: #000080; font-weight: bold; margin-top: 12; margin-bottom: 3; background-color: #CCCCCC; padding: 6 }
+h3           { font-family: Verdana; font-size: 8pt; font-weight: bold; margin-top: 12; margin-bottom: 3; background-color: #CCCCCC; padding: 6 }
+pre          { font-family: Courier New; font-size: 8pt; background-color: #CCFFCC; margin-left: 24; margin-right: 24 }
+li           { margin-top: 3; margin-bottom: 0 }
+-->
+</style>
+</head>
+<body>
+<h1>Static Call Analysis for<br>OUTPUT\FW (RAM)</h1>
+
+<p class="TinyT">
+Created from: <b>LX51 LINKER/LOCATER V4.41</b><br>
+Creation time: <b>10/24/2019  17:32:56</b><p>
+
+<hr>
+
+
+<h2><a name="S24"></a>?PR?DEVICESWITCH24GMODE?SYS (C:000F9DH - C:000FE6H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S97">?PR?_IIC_READ?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S97">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<h2><a name="S33"></a>?PR?_DEVICEEVTCB?SYS (C:00041FH - C:000715H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S31">?PR?LEADDRRANDOMCNTINIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+<li><a href="#S59">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S97">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S93">?PR?_SPI_WRITESENSOR?SPI</a></li>
+<li><a href="#S26">?PR?CLEARGLOBALMEM?SYS</a></li>
+<li><a href="#S27">?PR?DEVICELONGSLEEP?SYS</a></li>
+<li><a href="#S25">?PR?DEVICESTOP24G?SYS</a></li>
+<li><a href="#S4">?PR?DPIWRITEINSENSOR?SYS</a></li>
+<li><a href="#S187">?PR?DRAWING_OPTIMA_INIT?SENSOR</a></li>
+<li><a href="#S31">?PR?LEADDRRANDOMCNTINIT?SYS</a></li>
+<li><a href="#S30">?PR?LEADVSTART?SYS</a></li>
+<li><a href="#S29">?PR?LERECONNSTART?SYS</a></li>
+<li><a href="#S3">?PR?SENSORCLEARDATA?SYS</a></li>
+<li><a href="#S91">?PR?SPI_INITIALIZE?SPI</a></li>
+<li><a href="#S180">?PR?SPI_RESETSENSOR?SENSOR</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+</ul>
+
+<h2><a name="S37"></a>?PR?DEVICETIMER500MS?SYS (C:001DE3H - C:001E9CH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S27">?PR?DEVICELONGSLEEP?SYS</a></li>
+<li><a href="#S122">?PR?IPC_ISTXBUFFEMPTY?IPC</a></li>
+</ul>
+
+<h2><a name="S41"></a>?PR?DEVICETIMER100MS?SYS (C:00171EH - C:001753H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S35">?PR?COMBOKEYPB?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S35">?PR?COMBOKEYPB?SYS</a></li>
+<li><a href="#S28">?PR?DEVICELEDFLASH?SYS</a></li>
+<li><a href="#S27">?PR?DEVICELONGSLEEP?SYS</a></li>
+<li><a href="#S39">?PR?POWER_LOW_DETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S46"></a>?PR?YC_SYSMAIN?SYS (C:0002F1H - C:0003A0H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S80">?PR?_GPIO_SETWAKEUP?GPIO</a></li>
+<li><a href="#S42">?PR?DEVICEINIT?SYS</a></li>
+<li><a href="#S121">?PR?IPC_ABANDONLPM?IPC</a></li>
+<li><a href="#S123">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S120">?PR?IPC_WAITLPM?IPC</a></li>
+<li><a href="#S16">?PR?MOUSEKEYDETECT?SYS</a></li>
+<li><a href="#S21">?PR?MOUSEMOTION?SYS</a></li>
+<li><a href="#S12">?PR?MOUSEWHEELSCAN?SYS</a></li>
+<li><a href="#S183">?PR?SENSORPOWERDOWN?SENSOR</a></li>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S43">?PR?YC_SETWAKE?SYS</a></li>
+</ul>
+
+<h2><a name="S53"></a>?PR?_DMEMCPY?UTILITIES (C:001F06H - C:001F49H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<h2><a name="S57"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:001F4AH - C:001F76H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<h2><a name="S60"></a>?PR?_COMPARE_STR?UTILITIES (C:001F77H - C:001FC0H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<h2><a name="S110"></a>?PR?_IPC_TXBREDRHIDDATA?IPC (C:001C1DH - C:001C66H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S51">?PR?_XMEMCPY?UTILITIES</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S106">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S51">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<h2><a name="S115"></a>?PR?_IPC_TXSPPDATA?IPC (C:001BDAH - C:001C1CH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S51">?PR?_XMEMCPY?UTILITIES</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S106">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S51">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<h2><a name="S119"></a>?PR?_IPC_INITIALIZE?IPC (C:001EF2H - C:001EFEH)</h2>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<h2><a name="S3"></a>?PR?SENSORCLEARDATA?SYS (C:000807H - C:00081FH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S184">?PR?SENSORPOWERON?SENSOR</a>) Top=2 Bytes (<a href="#S33">?PR?_DEVICEEVTCB?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S92">?PR?_SPI_READSENSOR?SPI</a></li>
+<li><a href="#S184">?PR?SENSORPOWERON?SENSOR</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+</ul>
+
+<h2><a name="S4"></a>?PR?DPIWRITEINSENSOR?SYS (C:000A8FH - C:000B45H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S178">?PR?SPI_TWRESET?SENSOR</a>) Top=8 Bytes (<a href="#S10">?PR?MOUSEDPIKEYCHECK?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S93">?PR?_SPI_WRITESENSOR?SPI</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S10">?PR?MOUSEDPIKEYCHECK?SYS</a></li>
+</ul>
+
+<h2><a name="S5"></a>?PR?MOUSELKEYCHECK?SYS (C:000FE7H - C:001032H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=6 Bytes (<a href="#S16">?PR?MOUSEKEYDETECT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S16">?PR?MOUSEKEYDETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S6"></a>?PR?MOUSEMKEYCHECK?SYS (C:001033H - C:00107EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=6 Bytes (<a href="#S16">?PR?MOUSEKEYDETECT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S16">?PR?MOUSEKEYDETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S7"></a>?PR?MOUSERKEYCHECK?SYS (C:001282H - C:0012CDH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=6 Bytes (<a href="#S16">?PR?MOUSEKEYDETECT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S16">?PR?MOUSEKEYDETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S8"></a>?PR?MOUSEBKKEYCHECK?SYS (C:0011B4H - C:00121AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=6 Bytes (<a href="#S16">?PR?MOUSEKEYDETECT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S16">?PR?MOUSEKEYDETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S9"></a>?PR?MOUSEFWKEYCHECK?SYS (C:00121BH - C:001281H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=6 Bytes (<a href="#S16">?PR?MOUSEKEYDETECT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S16">?PR?MOUSEKEYDETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S10"></a>?PR?MOUSEDPIKEYCHECK?SYS (C:000F43H - C:000F9CH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=6 Bytes (<a href="#S16">?PR?MOUSEKEYDETECT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S4">?PR?DPIWRITEINSENSOR?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S16">?PR?MOUSEKEYDETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S11"></a>?PR?MOUSE_WHEEL_DELAY_LPM?SYS (C:0016EBH - C:0016F9H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S12">?PR?MOUSEWHEELSCAN?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S12">?PR?MOUSEWHEELSCAN?SYS</a></li>
+</ul>
+
+<h2><a name="S12"></a>?PR?MOUSEWHEELSCAN?SYS (C:001665H - C:0016EAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a>) Top=4 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S11">?PR?MOUSE_WHEEL_DELAY_LPM?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S14"></a>?PR?_IPC_TXHIDDATA?SYS (C:0017B2H - C:001801H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S112">?PR?_IPC_TX24GDATA?IPC</a>) Top=4 Bytes (<a href="#S21">?PR?MOUSEMOTION?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S112">?PR?_IPC_TX24GDATA?IPC</a></li>
+<li><a href="#S117">?PR?_IPC_TXBLEDATA?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S21">?PR?MOUSEMOTION?SYS</a></li>
+</ul>
+
+<h2><a name="S16"></a>?PR?MOUSEKEYDETECT?SYS (C:001151H - C:0011B3H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S10">?PR?MOUSEDPIKEYCHECK?SYS</a>) Top=4 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S8">?PR?MOUSEBKKEYCHECK?SYS</a></li>
+<li><a href="#S10">?PR?MOUSEDPIKEYCHECK?SYS</a></li>
+<li><a href="#S9">?PR?MOUSEFWKEYCHECK?SYS</a></li>
+<li><a href="#S5">?PR?MOUSELKEYCHECK?SYS</a></li>
+<li><a href="#S6">?PR?MOUSEMKEYCHECK?SYS</a></li>
+<li><a href="#S7">?PR?MOUSERKEYCHECK?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S18"></a>?PR?MOUSEREADSENSOR?SYS (C:000B5AH - C:000CB8H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S178">?PR?SPI_TWRESET?SENSOR</a>) Top=4 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S92">?PR?_SPI_READSENSOR?SPI</a></li>
+<li><a href="#S186">?PR?DRAWING_OPTIMA?SENSOR</a></li>
+<li><a href="#S182">?PR?SENSOR_SPI_DISABLE?SENSOR</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S21">?PR?MOUSEMOTION?SYS</a></li>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+</ul>
+
+<h2><a name="S20"></a>?PR?MOUSEPACKAGE?SYS (C:00176EH - C:0017B1H)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S21">?PR?MOUSEMOTION?SYS</a></li>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+</ul>
+
+<h2><a name="S21"></a>?PR?MOUSEMOTION?SYS (C:001C67H - C:001DCAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S18">?PR?MOUSEREADSENSOR?SYS</a>) Top=2 Bytes (<a href="#S46">?PR?YC_SYSMAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S14">?PR?_IPC_TXHIDDATA?SYS</a></li>
+<li><a href="#S122">?PR?IPC_ISTXBUFFEMPTY?IPC</a></li>
+<li><a href="#S20">?PR?MOUSEPACKAGE?SYS</a></li>
+<li><a href="#S18">?PR?MOUSEREADSENSOR?SYS</a></li>
+<li><a href="#S91">?PR?SPI_INITIALIZE?SPI</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S25"></a>?PR?DEVICESTOP24G?SYS (C:000F16H - C:000F1FH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=4 Bytes (<a href="#S35">?PR?COMBOKEYPB?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S35">?PR?COMBOKEYPB?SYS</a></li>
+</ul>
+
+<h2><a name="S26"></a>?PR?CLEARGLOBALMEM?SYS (C:001E9DH - C:001EBFH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S55">?PR?_XMEMCLEAR_0?UTILITIES</a>) Top=2 Bytes (<a href="#S33">?PR?_DEVICEEVTCB?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S55">?PR?_XMEMCLEAR_0?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+</ul>
+
+<h2><a name="S27"></a>?PR?DEVICELONGSLEEP?SYS (C:001754H - C:00176DH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=4 Bytes (<a href="#S39">?PR?POWER_LOW_DETECT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S41">?PR?DEVICETIMER100MS?SYS</a></li>
+<li><a href="#S37">?PR?DEVICETIMER500MS?SYS</a></li>
+<li><a href="#S39">?PR?POWER_LOW_DETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S28"></a>?PR?DEVICELEDFLASH?SYS (C:0010ACH - C:001134H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S68">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S41">?PR?DEVICETIMER100MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S86">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+<li><a href="#S68">?PR?_GPIO_SETOUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S41">?PR?DEVICETIMER100MS?SYS</a></li>
+</ul>
+
+<h2><a name="S29"></a>?PR?LERECONNSTART?SYS (C:001937H - C:001957H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S97">?PR?_IIC_READ?IIC</a>) Top=2 Bytes (<a href="#S33">?PR?_DEVICEEVTCB?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S97">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+</ul>
+
+<h2><a name="S30"></a>?PR?LEADVSTART?SYS (C:000E38H - C:000E77H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=2 Bytes (<a href="#S33">?PR?_DEVICEEVTCB?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S97">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S35">?PR?COMBOKEYPB?SYS</a></li>
+</ul>
+
+<h2><a name="S31"></a>?PR?LEADDRRANDOMCNTINIT?SYS (C:001958H - C:0019A3H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=2 Bytes (<a href="#S33">?PR?_DEVICEEVTCB?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S97">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S143">?PR?ADC_GET0VBASE?ADC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+</ul>
+
+<h2><a name="S35"></a>?PR?COMBOKEYPB?SYS (C:000D67H - C:000E37H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S30">?PR?LEADVSTART?SYS</a>) Top=2 Bytes (<a href="#S41">?PR?DEVICETIMER100MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S59">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S25">?PR?DEVICESTOP24G?SYS</a></li>
+<li><a href="#S30">?PR?LEADVSTART?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S41">?PR?DEVICETIMER100MS?SYS</a></li>
+</ul>
+
+<h2><a name="S39"></a>?PR?POWER_LOW_DETECT?SYS (C:001AD2H - C:001B84H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S141">?PR?ADC_GETCURRENTVALUE?ADC</a>) Top=2 Bytes (<a href="#S41">?PR?DEVICETIMER100MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+<li><a href="#S143">?PR?ADC_GET0VBASE?ADC</a></li>
+<li><a href="#S142">?PR?ADC_GET3VBASE?ADC</a></li>
+<li><a href="#S141">?PR?ADC_GETCURRENTVALUE?ADC</a></li>
+<li><a href="#S27">?PR?DEVICELONGSLEEP?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S41">?PR?DEVICETIMER100MS?SYS</a></li>
+</ul>
+
+<h2><a name="S42"></a>?PR?DEVICEINIT?SYS (C:001EECH - C:001EF1H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S46">?PR?YC_SYSMAIN?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S43"></a>?PR?YC_SETWAKE?SYS (C:000716H - C:00076CH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=4 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S83">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
+<li><a href="#S182">?PR?SENSOR_SPI_DISABLE?SENSOR</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S44"></a>?PR?YC_24GSHORTLPMPROCESS?SYS (C:0012CEH - C:0013C2H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S16">?PR?MOUSEKEYDETECT?SYS</a>) Top=2 Bytes (<a href="#S46">?PR?YC_SYSMAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+<li><a href="#S80">?PR?_GPIO_SETWAKEUP?GPIO</a></li>
+<li><a href="#S121">?PR?IPC_ABANDONLPM?IPC</a></li>
+<li><a href="#S123">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S120">?PR?IPC_WAITLPM?IPC</a></li>
+<li><a href="#S16">?PR?MOUSEKEYDETECT?SYS</a></li>
+<li><a href="#S20">?PR?MOUSEPACKAGE?SYS</a></li>
+<li><a href="#S18">?PR?MOUSEREADSENSOR?SYS</a></li>
+<li><a href="#S12">?PR?MOUSEWHEELSCAN?SYS</a></li>
+<li><a href="#S91">?PR?SPI_INITIALIZE?SPI</a></li>
+<li><a href="#S43">?PR?YC_SETWAKE?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S51"></a>?PR?_XMEMCPY?UTILITIES (C:001845H - C:001887H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>) Top=12 Bytes (<a href="#S99">?PR?_IIC_WRITE?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S97">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S99">?PR?_IIC_WRITE?IIC</a></li>
+<li><a href="#S112">?PR?_IPC_TX24GDATA?IPC</a></li>
+<li><a href="#S117">?PR?_IPC_TXBLEDATA?IPC</a></li>
+<li><a href="#S110">?PR?_IPC_TXBREDRHIDDATA?IPC</a></li>
+<li><a href="#S115">?PR?_IPC_TXSPPDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S55"></a>?PR?_XMEMCLEAR_0?UTILITIES (C:001EC0H - C:001EEBH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S26">?PR?CLEARGLOBALMEM?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S26">?PR?CLEARGLOBALMEM?SYS</a></li>
+</ul>
+
+<h2><a name="S59"></a>?PR?_DELAY1MS?UTILITIES (C:001646H - C:001664H)</h2>
+<p><br><b>Maximum Stack:</b> Top=10 Bytes (<a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S35">?PR?COMBOKEYPB?SYS</a></li>
+</ul>
+
+<h2><a name="S62"></a>?PR?_GPIOSETBIT?GPIO (C:0003C2H - C:00041EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>) Top=10 Bytes (<a href="#S68">?PR?_GPIO_SETOUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S68">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S72">?PR?_GPIO_SETPD?GPIO</a></li>
+<li><a href="#S70">?PR?_GPIO_SETPU?GPIO</a></li>
+</ul>
+
+<h2><a name="S65"></a>?PR?_GPIOGETBIT?GPIO (C:000D28H - C:000D66H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S86">?PR?_GPIO_FLIPOUTBIT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S86">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+</ul>
+
+<h2><a name="S67"></a>?PR?_GPIO_GETINPUTSTATUS?GPIO (C:000D22H - C:000D27H)</h2>
+<p><br><b>Maximum Stack:</b> Top=9 Bytes (<a href="#S5">?PR?MOUSELKEYCHECK?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S83">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
+<li><a href="#S35">?PR?COMBOKEYPB?SYS</a></li>
+<li><a href="#S8">?PR?MOUSEBKKEYCHECK?SYS</a></li>
+<li><a href="#S10">?PR?MOUSEDPIKEYCHECK?SYS</a></li>
+<li><a href="#S9">?PR?MOUSEFWKEYCHECK?SYS</a></li>
+<li><a href="#S5">?PR?MOUSELKEYCHECK?SYS</a></li>
+<li><a href="#S6">?PR?MOUSEMKEYCHECK?SYS</a></li>
+<li><a href="#S18">?PR?MOUSEREADSENSOR?SYS</a></li>
+<li><a href="#S7">?PR?MOUSERKEYCHECK?SYS</a></li>
+<li><a href="#S12">?PR?MOUSEWHEELSCAN?SYS</a></li>
+<li><a href="#S3">?PR?SENSORCLEARDATA?SYS</a></li>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S68"></a>?PR?_GPIO_SETOUT?GPIO (C:00109FH - C:0010ABH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S62">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S62">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S86">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S28">?PR?DEVICELEDFLASH?SYS</a></li>
+</ul>
+
+<h2><a name="S70"></a>?PR?_GPIO_SETPU?GPIO (C:001092H - C:00109EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S62">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S62">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S72"></a>?PR?_GPIO_SETPD?GPIO (C:001FC1H - C:001FCDH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S62">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S62">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S74"></a>?PR?_GPIO_SETOE?GPIO (C:0003B8H - C:0003C1H)</h2>
+<p><br><b>Maximum Stack:</b> Top=10 Bytes (<a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S78">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S76"></a>?PR?_GPIO_SETINPUT?GPIO (C:0003A1H - C:0003B7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S72">?PR?_GPIO_SETPD?GPIO</a>) Top=8 Bytes (<a href="#S8">?PR?MOUSEBKKEYCHECK?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S72">?PR?_GPIO_SETPD?GPIO</a></li>
+<li><a href="#S70">?PR?_GPIO_SETPU?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S8">?PR?MOUSEBKKEYCHECK?SYS</a></li>
+<li><a href="#S9">?PR?MOUSEFWKEYCHECK?SYS</a></li>
+<li><a href="#S183">?PR?SENSORPOWERDOWN?SENSOR</a></li>
+<li><a href="#S43">?PR?YC_SETWAKE?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S78"></a>?PR?_GPIO_SETOUTPUT?GPIO (C:00107FH - C:001091H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S68">?PR?_GPIO_SETOUT?GPIO</a>) Top=8 Bytes (<a href="#S5">?PR?MOUSELKEYCHECK?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S74">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S68">?PR?_GPIO_SETOUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S8">?PR?MOUSEBKKEYCHECK?SYS</a></li>
+<li><a href="#S9">?PR?MOUSEFWKEYCHECK?SYS</a></li>
+<li><a href="#S5">?PR?MOUSELKEYCHECK?SYS</a></li>
+<li><a href="#S6">?PR?MOUSEMKEYCHECK?SYS</a></li>
+<li><a href="#S7">?PR?MOUSERKEYCHECK?SYS</a></li>
+<li><a href="#S43">?PR?YC_SETWAKE?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S80"></a>?PR?_GPIO_SETWAKEUP?GPIO (C:000781H - C:000806H)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S83"></a>?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO (C:00076DH - C:000780H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a>) Top=6 Bytes (<a href="#S43">?PR?YC_SETWAKE?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S67">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S43">?PR?YC_SETWAKE?SYS</a></li>
+</ul>
+
+<h2><a name="S86"></a>?PR?_GPIO_FLIPOUTBIT?GPIO (C:001135H - C:001150H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S65">?PR?_GPIOGETBIT?GPIO</a>) Top=2 Bytes (<a href="#S28">?PR?DEVICELEDFLASH?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S68">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S65">?PR?_GPIOGETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S28">?PR?DEVICELEDFLASH?SYS</a></li>
+</ul>
+
+<h2><a name="S91"></a>?PR?SPI_INITIALIZE?SPI (C:0016FAH - C:00171DH)</h2>
+<p><br><b>Maximum Stack:</b> Top=12 Bytes (<a href="#S178">?PR?SPI_TWRESET?SENSOR</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S21">?PR?MOUSEMOTION?SYS</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+</ul>
+
+<h2><a name="S92"></a>?PR?_SPI_READSENSOR?SPI (C:000820H - C:000848H)</h2>
+<p><br><b>Maximum Stack:</b> Top=12 Bytes (<a href="#S178">?PR?SPI_TWRESET?SENSOR</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S18">?PR?MOUSEREADSENSOR?SYS</a></li>
+<li><a href="#S3">?PR?SENSORCLEARDATA?SYS</a></li>
+<li><a href="#S183">?PR?SENSORPOWERDOWN?SENSOR</a></li>
+<li><a href="#S184">?PR?SENSORPOWERON?SENSOR</a></li>
+<li><a href="#S180">?PR?SPI_RESETSENSOR?SENSOR</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+</ul>
+
+<h2><a name="S93"></a>?PR?_SPI_WRITESENSOR?SPI (C:000A64H - C:000A8EH)</h2>
+<p><br><b>Maximum Stack:</b> Top=10 Bytes (<a href="#S4">?PR?DPIWRITEINSENSOR?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S4">?PR?DPIWRITEINSENSOR?SYS</a></li>
+<li><a href="#S183">?PR?SENSORPOWERDOWN?SENSOR</a></li>
+<li><a href="#S184">?PR?SENSORPOWERON?SENSOR</a></li>
+<li><a href="#S180">?PR?SPI_RESETSENSOR?SENSOR</a></li>
+</ul>
+
+<h2><a name="S96"></a>?PR?IICWAITDONE?IIC (C:001AC1H - C:001AC8H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S97">?PR?_IIC_READ?IIC</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S97">?PR?_IIC_READ?IIC</a></li>
+</ul>
+
+<h2><a name="S97"></a>?PR?_IIC_READ?IIC (C:001888H - C:001936H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S96">?PR?IICWAITDONE?IIC</a>) Top=4 Bytes (<a href="#S31">?PR?LEADDRRANDOMCNTINIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S51">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S96">?PR?IICWAITDONE?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S24">?PR?DEVICESWITCH24GMODE?SYS</a></li>
+<li><a href="#S31">?PR?LEADDRRANDOMCNTINIT?SYS</a></li>
+<li><a href="#S30">?PR?LEADVSTART?SYS</a></li>
+<li><a href="#S29">?PR?LERECONNSTART?SYS</a></li>
+</ul>
+
+<h2><a name="S99"></a>?PR?_IIC_WRITE?IIC (C:001A54H - C:001AC0H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S51">?PR?_XMEMCPY?UTILITIES</a>) Top=10 Bytes (<a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S51">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+</ul>
+
+<h2><a name="S101"></a>?PR?_IIC_WRITEBLOCK?IIC (C:0019A4H - C:001A53H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S99">?PR?_IIC_WRITE?IIC</a>) Top=8 Bytes (<a href="#S10">?PR?MOUSEDPIKEYCHECK?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+<li><a href="#S59">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S99">?PR?_IIC_WRITE?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S31">?PR?LEADDRRANDOMCNTINIT?SYS</a></li>
+<li><a href="#S30">?PR?LEADVSTART?SYS</a></li>
+<li><a href="#S10">?PR?MOUSEDPIKEYCHECK?SYS</a></li>
+</ul>
+
+<h2><a name="S104"></a>?PR?_IPCRX?IPC (C:0015DFH - C:001639H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S123">?PR?IPC_DEALSINGLESTEP?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S123">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+</ul>
+
+<h2><a name="S106"></a>?PR?_IPCTX?IPC (C:000EA0H - C:000F15H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S112">?PR?_IPC_TX24GDATA?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S112">?PR?_IPC_TX24GDATA?IPC</a></li>
+<li><a href="#S117">?PR?_IPC_TXBLEDATA?IPC</a></li>
+<li><a href="#S110">?PR?_IPC_TXBREDRHIDDATA?IPC</a></li>
+<li><a href="#S115">?PR?_IPC_TXSPPDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S108"></a>?PR?_IPC_TXCONTROLCMD?IPC (C:000E78H - C:000E9FH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S190">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S25">?PR?DEVICESTOP24G?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S35">?PR?COMBOKEYPB?SYS</a></li>
+<li><a href="#S27">?PR?DEVICELONGSLEEP?SYS</a></li>
+<li><a href="#S25">?PR?DEVICESTOP24G?SYS</a></li>
+<li><a href="#S24">?PR?DEVICESWITCH24GMODE?SYS</a></li>
+<li><a href="#S37">?PR?DEVICETIMER500MS?SYS</a></li>
+<li><a href="#S29">?PR?LERECONNSTART?SYS</a></li>
+</ul>
+
+<h2><a name="S112"></a>?PR?_IPC_TX24GDATA?IPC (C:001B97H - C:001BD9H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S51">?PR?_XMEMCPY?UTILITIES</a>) Top=4 Bytes (<a href="#S14">?PR?_IPC_TXHIDDATA?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S106">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S51">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S14">?PR?_IPC_TXHIDDATA?SYS</a></li>
+</ul>
+
+<h2><a name="S117"></a>?PR?_IPC_TXBLEDATA?IPC (C:001802H - C:001844H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S51">?PR?_XMEMCPY?UTILITIES</a>) Top=4 Bytes (<a href="#S14">?PR?_IPC_TXHIDDATA?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S106">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S51">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S14">?PR?_IPC_TXHIDDATA?SYS</a></li>
+</ul>
+
+<h2><a name="S120"></a>?PR?IPC_WAITLPM?IPC (C:00163AH - C:001645H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S121"></a>?PR?IPC_ABANDONLPM?IPC (C:0013C3H - C:0013CEH)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S122"></a>?PR?IPC_ISTXBUFFEMPTY?IPC (C:001DCBH - C:001DE2H)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S21">?PR?MOUSEMOTION?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S37">?PR?DEVICETIMER500MS?SYS</a></li>
+<li><a href="#S21">?PR?MOUSEMOTION?SYS</a></li>
+</ul>
+
+<h2><a name="S123"></a>?PR?IPC_DEALSINGLESTEP?IPC (C:0013CFH - C:0015DEH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S104">?PR?_IPCRX?IPC</a>) Top=4 Bytes (<a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+<li><a href="#S104">?PR?_IPCRX?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S44">?PR?YC_24GSHORTLPMPROCESS?SYS</a></li>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S141"></a>?PR?ADC_GETCURRENTVALUE?ADC (C:001B8EH - C:001B96H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S39">?PR?POWER_LOW_DETECT?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S39">?PR?POWER_LOW_DETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S142"></a>?PR?ADC_GET3VBASE?ADC (C:001B85H - C:001B8DH)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S39">?PR?POWER_LOW_DETECT?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S39">?PR?POWER_LOW_DETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S143"></a>?PR?ADC_GET0VBASE?ADC (C:001AC9H - C:001AD1H)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S31">?PR?LEADDRRANDOMCNTINIT?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S31">?PR?LEADDRRANDOMCNTINIT?SYS</a></li>
+<li><a href="#S39">?PR?POWER_LOW_DETECT?SYS</a></li>
+</ul>
+
+<h2><a name="S178"></a>?PR?SPI_TWRESET?SENSOR (C:000CCFH - C:000D21H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S91">?PR?SPI_INITIALIZE?SPI</a>) Top=10 Bytes (<a href="#S4">?PR?DPIWRITEINSENSOR?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S92">?PR?_SPI_READSENSOR?SPI</a></li>
+<li><a href="#S91">?PR?SPI_INITIALIZE?SPI</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S4">?PR?DPIWRITEINSENSOR?SYS</a></li>
+<li><a href="#S18">?PR?MOUSEREADSENSOR?SYS</a></li>
+<li><a href="#S3">?PR?SENSORCLEARDATA?SYS</a></li>
+<li><a href="#S183">?PR?SENSORPOWERDOWN?SENSOR</a></li>
+<li><a href="#S184">?PR?SENSORPOWERON?SENSOR</a></li>
+<li><a href="#S180">?PR?SPI_RESETSENSOR?SENSOR</a></li>
+</ul>
+
+<h2><a name="S180"></a>?PR?SPI_RESETSENSOR?SENSOR (C:000849H - C:000A63H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S178">?PR?SPI_TWRESET?SENSOR</a>) Top=2 Bytes (<a href="#S33">?PR?_DEVICEEVTCB?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S92">?PR?_SPI_READSENSOR?SPI</a></li>
+<li><a href="#S93">?PR?_SPI_WRITESENSOR?SPI</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+</ul>
+
+<h2><a name="S182"></a>?PR?SENSOR_SPI_DISABLE?SENSOR (C:000B46H - C:000B59H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S18">?PR?MOUSEREADSENSOR?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S18">?PR?MOUSEREADSENSOR?SYS</a></li>
+<li><a href="#S184">?PR?SENSORPOWERON?SENSOR</a></li>
+<li><a href="#S43">?PR?YC_SETWAKE?SYS</a></li>
+</ul>
+
+<h2><a name="S183"></a>?PR?SENSORPOWERDOWN?SENSOR (C:000F20H - C:000F42H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a>) Top=2 Bytes (<a href="#S46">?PR?YC_SYSMAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S76">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S92">?PR?_SPI_READSENSOR?SPI</a></li>
+<li><a href="#S93">?PR?_SPI_WRITESENSOR?SPI</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S46">?PR?YC_SYSMAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S184"></a>?PR?SENSORPOWERON?SENSOR (C:000CB9H - C:000CCEH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S178">?PR?SPI_TWRESET?SENSOR</a>) Top=4 Bytes (<a href="#S3">?PR?SENSORCLEARDATA?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S92">?PR?_SPI_READSENSOR?SPI</a></li>
+<li><a href="#S93">?PR?_SPI_WRITESENSOR?SPI</a></li>
+<li><a href="#S182">?PR?SENSOR_SPI_DISABLE?SENSOR</a></li>
+<li><a href="#S178">?PR?SPI_TWRESET?SENSOR</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S3">?PR?SENSORCLEARDATA?SYS</a></li>
+</ul>
+
+<h2><a name="S185"></a>?PR?_ABS?SENSOR (C:00200FH - C:002021H)</h2>
+<p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S186">?PR?DRAWING_OPTIMA?SENSOR</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S186">?PR?DRAWING_OPTIMA?SENSOR</a></li>
+</ul>
+
+<h2><a name="S186"></a>?PR?DRAWING_OPTIMA?SENSOR (C:002022H - C:002123H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S185">?PR?_ABS?SENSOR</a>) Top=6 Bytes (<a href="#S18">?PR?MOUSEREADSENSOR?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?C?LIB_CODE</a></li>
+<li><a href="#S185">?PR?_ABS?SENSOR</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S18">?PR?MOUSEREADSENSOR?SYS</a></li>
+</ul>
+
+<h2><a name="S187"></a>?PR?DRAWING_OPTIMA_INIT?SENSOR (C:002124H - C:002145H)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S33">?PR?_DEVICEEVTCB?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+</ul>
+
+<h2><a name="S190"></a>?C?LIB_CODE (C:000003H - C:000245H)</h2>
+<p><br><b>Maximum Stack:</b> Top=14 Bytes (<a href="#S51">?PR?_XMEMCPY?UTILITIES</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S60">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S33">?PR?_DEVICEEVTCB?SYS</a></li>
+<li><a href="#S53">?PR?_DMEMCPY?UTILITIES</a></li>
+<li><a href="#S65">?PR?_GPIOGETBIT?GPIO</a></li>
+<li><a href="#S62">?PR?_GPIOSETBIT?GPIO</a></li>
+<li><a href="#S101">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S119">?PR?_IPC_INITIALIZE?IPC</a></li>
+<li><a href="#S108">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S104">?PR?_IPCRX?IPC</a></li>
+<li><a href="#S106">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S55">?PR?_XMEMCLEAR_0?UTILITIES</a></li>
+<li><a href="#S57">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S51">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S186">?PR?DRAWING_OPTIMA?SENSOR</a></li>
+<li><a href="#S123">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S39">?PR?POWER_LOW_DETECT?SYS</a></li>
+</ul>
+
+</body>
+</html>
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.MAP
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.MAP	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.MAP	(working copy)
@@ -0,0 +1,2429 @@
+LX51 LINKER/LOCATER V4.41                                                               10/24/2019  17:32:56  PAGE 1
+
+
+LX51 LINKER/LOCATER V4.41, INVOKED BY:
+C:\KEIL\C51\BIN\LX51.EXE OUTPUT/RAM.OBJ, OUTPUT/SYS.OBJ, OUTPUT/UTILITIES.OBJ, OUTPUT/GPIO.OBJ, OUTPUT/SPI.OBJ, OUTPUT/I
+>> IC.OBJ, OUTPUT/IPC.OBJ, OUTPUT/ADC.OBJ, OUTPUT/GLOBAL_VARIABLE.OBJ, OUTPUT/SENSOR.OBJ TO OUTPUT\FW CLASSES (XDATA (X:
+>> 0X1A00-X:0X1DFF), CODE (C:0-C:0XFFFF), DATA (D:0X10-0X7F), IDATA (I:0X80-0XCF)) SEGMENTS (?STACK (D:0XD0)) NOOVERLAY 
+>> PAGELENGTH (60000) CODE
+
+
+CPU MODE:     8051 MODE
+MEMORY MODEL: LARGE
+
+
+INPUT MODULES INCLUDED:
+  OUTPUT/RAM.OBJ (RAM)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/SYS.OBJ (SYS)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/UTILITIES.OBJ (UTILITIES)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/GPIO.OBJ (GPIO)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/SPI.OBJ (SPI)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/IIC.OBJ (IIC)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/IPC.OBJ (IPC)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/ADC.OBJ (ADC)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/GLOBAL_VARIABLE.OBJ (GLOBAL_VARIABLE)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/SENSOR.OBJ (SENSOR)
+         COMMENT TYPE 0: C51 V9.00
+  C:\KEIL\C51\LIB\C51L.LIB (?C_STARTUP)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?COPY)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?CLDPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?CLDOPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?CSTPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?IMUL)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?UIDIV)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?SIDIV)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?IILDX)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?ILDIX)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?CCASE)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C?ICALL)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  C:\KEIL\C51\LIB\C51L.LIB (?C_INIT)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+
+
+ACTIVE MEMORY CLASSES OF MODULE:  OUTPUT\FW (RAM)
+
+BASE        START       END         USED      MEMORY CLASS
+==========================================================
+X:000000H   X:001A00H   X:001DFFH   00035AH   XDATA
+C:000000H   C:000000H   C:00FFFFH   00213DH   CODE
+I:000000H   I:000010H   I:00007FH   000008H   DATA
+I:000000H   I:000080H   I:0000CFH   000001H   IDATA
+I:000020H.0 I:000020H.0 I:00002FH.7 000001H.3 BIT
+C:000000H   C:000000H   C:00FFFFH   000009H   CONST
+
+
+MEMORY MAP OF MODULE:  OUTPUT\FW (RAM)
+
+
+START     STOP      LENGTH    ALIGN  RELOC    MEMORY CLASS   SEGMENT NAME
+=========================================================================
+
+* * * * * * * * * * *   D A T A   M E M O R Y   * * * * * * * * * * * * *
+000000H   000007H   000008H   ---    AT..     DATA           "REG BANK 0"
+000008H.0 00001FH.7 000018H.0 ---    ---      **GAP**
+000020H.0 000020H.0 000000H.1 BIT    UNIT     BIT            ?BI?MOUSEMOTION?SYS
+000020H.1 000020H.1 000000H.1 BIT    UNIT     BIT            ?BI?_GPIOSETBIT?GPIO
+000020H.2 000020H.2 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOUT?GPIO
+000020H.3 000020H.3 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETPU?GPIO
+000020H.4 000020H.4 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETPD?GPIO
+000020H.5 000020H.5 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOE?GPIO
+000020H.6 000020H.6 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETINPUT?GPIO
+000020H.7 000020H.7 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOUTPUT?GPIO
+000021H.0 000021H.0 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETWAKEUP?GPIO
+000021H.1 000021H.1 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+000021H.2 000021H.2 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_FLIPOUTBIT?GPIO
+000021H.3 0000CFH   0000AEH.5 ---    ---      **GAP**
+0000D0H   0000D0H   000001H   BYTE   UNIT     IDATA          ?STACK
+
+* * * * * * * * * * *   C O D E   M E M O R Y   * * * * * * * * * * * * *
+000000H   000002H   000003H   ---    OFFS..   CODE           ?CO??C_STARTUP?0
+000003H   000245H   000243H   BYTE   UNIT     CODE           ?C?LIB_CODE
+000246H   0002D1H   00008CH   BYTE   UNIT     CODE           ?C_C51STARTUP
+0002D2H   0002E7H   000016H   BYTE   UNIT     CODE           ?C_INITSEG
+0002E8H   0002EDH   000006H   BYTE   UNIT     CONST          ?CO?SYS
+0002EEH   0002F0H   000003H   BYTE   UNIT     CONST          ?CO?IPC
+0002F1H   ---       000000H   BYTE   UNIT     CODE           ?PR?MAIN?RAM
+0002F1H   0003A0H   0000B0H   BYTE   UNIT     CODE           ?PR?YC_SYSMAIN?SYS
+0003A1H   0003B7H   000017H   BYTE   UNIT     CODE           ?PR?_GPIO_SETINPUT?GPIO
+0003B8H   0003C1H   00000AH   BYTE   UNIT     CODE           ?PR?_GPIO_SETOE?GPIO
+0003C2H   00041EH   00005DH   BYTE   UNIT     CODE           ?PR?_GPIOSETBIT?GPIO
+00041FH   000715H   0002F7H   BYTE   UNIT     CODE           ?PR?_DEVICEEVTCB?SYS
+000716H   00076CH   000057H   BYTE   UNIT     CODE           ?PR?YC_SETWAKE?SYS
+00076DH   000780H   000014H   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+000781H   000806H   000086H   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUP?GPIO
+000807H   00081FH   000019H   BYTE   UNIT     CODE           ?PR?SENSORCLEARDATA?SYS
+000820H   000848H   000029H   BYTE   UNIT     CODE           ?PR?_SPI_READSENSOR?SPI
+000849H   000A63H   00021BH   BYTE   UNIT     CODE           ?PR?SPI_RESETSENSOR?SENSOR
+000A64H   000A8EH   00002BH   BYTE   UNIT     CODE           ?PR?_SPI_WRITESENSOR?SPI
+000A8FH   000B45H   0000B7H   BYTE   UNIT     CODE           ?PR?DPIWRITEINSENSOR?SYS
+000B46H   000B59H   000014H   BYTE   UNIT     CODE           ?PR?SENSOR_SPI_DISABLE?SENSOR
+000B5AH   000CB8H   00015FH   BYTE   UNIT     CODE           ?PR?MOUSEREADSENSOR?SYS
+000CB9H   000CCEH   000016H   BYTE   UNIT     CODE           ?PR?SENSORPOWERON?SENSOR
+000CCFH   000D21H   000053H   BYTE   UNIT     CODE           ?PR?SPI_TWRESET?SENSOR
+000D22H   000D27H   000006H   BYTE   UNIT     CODE           ?PR?_GPIO_GETINPUTSTATUS?GPIO
+000D28H   000D66H   00003FH   BYTE   UNIT     CODE           ?PR?_GPIOGETBIT?GPIO
+000D67H   000E37H   0000D1H   BYTE   UNIT     CODE           ?PR?COMBOKEYPB?SYS
+000E38H   000E77H   000040H   BYTE   UNIT     CODE           ?PR?LEADVSTART?SYS
+000E78H   000E9FH   000028H   BYTE   UNIT     CODE           ?PR?_IPC_TXCONTROLCMD?IPC
+000EA0H   000F15H   000076H   BYTE   UNIT     CODE           ?PR?_IPCTX?IPC
+000F16H   000F1FH   00000AH   BYTE   UNIT     CODE           ?PR?DEVICESTOP24G?SYS
+000F20H   000F42H   000023H   BYTE   UNIT     CODE           ?PR?SENSORPOWERDOWN?SENSOR
+000F43H   000F9CH   00005AH   BYTE   UNIT     CODE           ?PR?MOUSEDPIKEYCHECK?SYS
+000F9DH   000FE6H   00004AH   BYTE   UNIT     CODE           ?PR?DEVICESWITCH24GMODE?SYS
+000FE7H   001032H   00004CH   BYTE   UNIT     CODE           ?PR?MOUSELKEYCHECK?SYS
+001033H   00107EH   00004CH   BYTE   UNIT     CODE           ?PR?MOUSEMKEYCHECK?SYS
+00107FH   001091H   000013H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUTPUT?GPIO
+001092H   00109EH   00000DH   BYTE   UNIT     CODE           ?PR?_GPIO_SETPU?GPIO
+00109FH   0010ABH   00000DH   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUT?GPIO
+0010ACH   001134H   000089H   BYTE   UNIT     CODE           ?PR?DEVICELEDFLASH?SYS
+001135H   001150H   00001CH   BYTE   UNIT     CODE           ?PR?_GPIO_FLIPOUTBIT?GPIO
+001151H   0011B3H   000063H   BYTE   UNIT     CODE           ?PR?MOUSEKEYDETECT?SYS
+0011B4H   00121AH   000067H   BYTE   UNIT     CODE           ?PR?MOUSEBKKEYCHECK?SYS
+00121BH   001281H   000067H   BYTE   UNIT     CODE           ?PR?MOUSEFWKEYCHECK?SYS
+001282H   0012CDH   00004CH   BYTE   UNIT     CODE           ?PR?MOUSERKEYCHECK?SYS
+0012CEH   0013C2H   0000F5H   BYTE   UNIT     CODE           ?PR?YC_24GSHORTLPMPROCESS?SYS
+0013C3H   0013CEH   00000CH   BYTE   UNIT     CODE           ?PR?IPC_ABANDONLPM?IPC
+0013CFH   0015DEH   000210H   BYTE   UNIT     CODE           ?PR?IPC_DEALSINGLESTEP?IPC
+0015DFH   001639H   00005BH   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
+00163AH   001645H   00000CH   BYTE   UNIT     CODE           ?PR?IPC_WAITLPM?IPC
+001646H   001664H   00001FH   BYTE   UNIT     CODE           ?PR?_DELAY1MS?UTILITIES
+001665H   0016EAH   000086H   BYTE   UNIT     CODE           ?PR?MOUSEWHEELSCAN?SYS
+0016EBH   0016F9H   00000FH   BYTE   UNIT     CODE           ?PR?MOUSE_WHEEL_DELAY_LPM?SYS
+0016FAH   00171DH   000024H   BYTE   UNIT     CODE           ?PR?SPI_INITIALIZE?SPI
+00171EH   001753H   000036H   BYTE   UNIT     CODE           ?PR?DEVICETIMER100MS?SYS
+001754H   00176DH   00001AH   BYTE   UNIT     CODE           ?PR?DEVICELONGSLEEP?SYS
+00176EH   0017B1H   000044H   BYTE   UNIT     CODE           ?PR?MOUSEPACKAGE?SYS
+0017B2H   001801H   000050H   BYTE   UNIT     CODE           ?PR?_IPC_TXHIDDATA?SYS
+001802H   001844H   000043H   BYTE   UNIT     CODE           ?PR?_IPC_TXBLEDATA?IPC
+001845H   001887H   000043H   BYTE   UNIT     CODE           ?PR?_XMEMCPY?UTILITIES
+001888H   001936H   0000AFH   BYTE   UNIT     CODE           ?PR?_IIC_READ?IIC
+001937H   001957H   000021H   BYTE   UNIT     CODE           ?PR?LERECONNSTART?SYS
+001958H   0019A3H   00004CH   BYTE   UNIT     CODE           ?PR?LEADDRRANDOMCNTINIT?SYS
+0019A4H   001A53H   0000B0H   BYTE   UNIT     CODE           ?PR?_IIC_WRITEBLOCK?IIC
+001A54H   001AC0H   00006DH   BYTE   UNIT     CODE           ?PR?_IIC_WRITE?IIC
+001AC1H   001AC8H   000008H   BYTE   UNIT     CODE           ?PR?IICWAITDONE?IIC
+001AC9H   001AD1H   000009H   BYTE   UNIT     CODE           ?PR?ADC_GET0VBASE?ADC
+001AD2H   001B84H   0000B3H   BYTE   UNIT     CODE           ?PR?POWER_LOW_DETECT?SYS
+001B85H   001B8DH   000009H   BYTE   UNIT     CODE           ?PR?ADC_GET3VBASE?ADC
+001B8EH   001B96H   000009H   BYTE   UNIT     CODE           ?PR?ADC_GETCURRENTVALUE?ADC
+001B97H   001BD9H   000043H   BYTE   UNIT     CODE           ?PR?_IPC_TX24GDATA?IPC
+001BDAH   001C1CH   000043H   BYTE   UNIT     CODE           ?PR?_IPC_TXSPPDATA?IPC
+001C1DH   001C66H   00004AH   BYTE   UNIT     CODE           ?PR?_IPC_TXBREDRHIDDATA?IPC
+001C67H   001DCAH   000164H   BYTE   UNIT     CODE           ?PR?MOUSEMOTION?SYS
+001DCBH   001DE2H   000018H   BYTE   UNIT     CODE           ?PR?IPC_ISTXBUFFEMPTY?IPC
+001DE3H   001E9CH   0000BAH   BYTE   UNIT     CODE           ?PR?DEVICETIMER500MS?SYS
+001E9DH   001EBFH   000023H   BYTE   UNIT     CODE           ?PR?CLEARGLOBALMEM?SYS
+001EC0H   001EEBH   00002CH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_0?UTILITIES
+001EECH   001EF1H   000006H   BYTE   UNIT     CODE           ?PR?DEVICEINIT?SYS
+001EF2H   001EFEH   00000DH   BYTE   UNIT     CODE           ?PR?_IPC_INITIALIZE?IPC
+001EFFH   001F05H   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
+001F06H   001F49H   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
+001F4AH   001F76H   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
+001F77H   001FC0H   00004AH   BYTE   UNIT     CODE           ?PR?_COMPARE_STR?UTILITIES
+001FC1H   001FCDH   00000DH   BYTE   UNIT     CODE           ?PR?_GPIO_SETPD?GPIO
+001FCEH   002008H   00003BH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
+002009H   00200EH   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
+00200FH   002021H   000013H   BYTE   UNIT     CODE           ?PR?_ABS?SENSOR
+002022H   002123H   000102H   BYTE   UNIT     CODE           ?PR?DRAWING_OPTIMA?SENSOR
+002124H   002145H   000022H   BYTE   UNIT     CODE           ?PR?DRAWING_OPTIMA_INIT?SENSOR
+
+* * * * * * * * * * *  X D A T A   M E M O R Y  * * * * * * * * * * * * *
+000040H   000045H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?27
+000046H   00009FH   00005AH   ---    ---      **GAP**
+0000A0H   0000A3H   000004H   BYTE   OFFS..   XDATA          ?XD?GPIO?1
+0000A4H   0000A7H   000004H   BYTE   OFFS..   XDATA          ?XD?GPIO?0
+0000A8H   000217H   000170H   ---    ---      **GAP**
+000218H   00021BH   000004H   BYTE   OFFS..   XDATA          ?XD?SPI?1
+00021CH   00021CH   000001H   ---    ---      **GAP**
+00021DH   000220H   000004H   BYTE   OFFS..   XDATA          ?XD?SPI?0
+000221H   000371H   000151H   ---    ---      **GAP**
+000372H   000377H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?4
+000378H   0003EFH   000078H   ---    ---      **GAP**
+0003F0H   0003F0H   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?7
+0003F1H   000B29H   000739H   ---    ---      **GAP**
+000B2AH   000B2AH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?0
+000B2BH   000B2BH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?4
+000B2CH   0019FFH   000ED4H   ---    ---      **GAP**
+001A00H   001B2BH   00012CH   BYTE   UNIT     XDATA          ?XD?IPC
+001B2CH   001B93H   000068H   BYTE   UNIT     XDATA          ?XD?IIC
+001B94H   001BAAH   000017H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITE?IIC
+001BABH   001BBCH   000012H   BYTE   UNIT     XDATA          ?XD?SYS
+001BBDH   001BC8H   00000CH   BYTE   UNIT     XDATA          ?XD?_DEVICEEVTCB?SYS
+001BC9H   001BD1H   000009H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITEBLOCK?IIC
+001BD2H   001BD9H   000008H   BYTE   UNIT     XDATA          ?XD?_DMEMCPY?UTILITIES
+001BDAH   001BE0H   000007H   BYTE   UNIT     XDATA          ?XD?_COMPARE_STR?UTILITIES
+001BE1H   001BE6H   000006H   BYTE   UNIT     XDATA          ?XD?YC_24GSHORTLPMPROCESS?SYS
+001BE7H   001BECH   000006H   BYTE   UNIT     XDATA          ?XD?_XMEMCPY?UTILITIES
+001BEDH   001BF2H   000006H   BYTE   UNIT     XDATA          ?XD?_IPCTX?IPC
+001BF3H   001BF7H   000005H   BYTE   UNIT     XDATA          ?XD?MOUSEKEYDETECT?SYS
+001BF8H   001BFCH   000005H   BYTE   UNIT     XDATA          ?XD?COMBOKEYPB?SYS
+001BFDH   001C01H   000005H   BYTE   UNIT     XDATA          ?XD?_IIC_READ?IIC
+001C02H   001C05H   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXHIDDATA?SYS
+001C06H   001C09H   000004H   BYTE   UNIT     XDATA          ?XD?MOUSEREADSENSOR?SYS
+001C0AH   001C0DH   000004H   BYTE   UNIT     XDATA          ?XD?MOUSEMOTION?SYS
+001C0EH   001C11H   000004H   BYTE   UNIT     XDATA          ?XD?_IPCRX?IPC
+001C12H   001C15H   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXCONTROLCMD?IPC
+001C16H   001C18H   000003H   BYTE   UNIT     XDATA          ?XD?MOUSEWHEELSCAN?SYS
+001C19H   001C1BH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR_0?UTILITIES
+001C1CH   001C1EH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR_FF?UTILITIES
+001C1FH   001C21H   000003H   BYTE   UNIT     XDATA          ?XD?_GPIOSETBIT?GPIO
+001C22H   001C24H   000003H   BYTE   UNIT     XDATA          ?XD?IPC_DEALSINGLESTEP?IPC
+001C25H   001C26H   000002H   BYTE   UNIT     XDATA          ?XD?POWER_LOW_DETECT?SYS
+001C27H   001C28H   000002H   BYTE   UNIT     XDATA          ?XD?SPI_RESETSENSOR?SENSOR
+001C29H   001C29H   000001H   BYTE   UNIT     XDATA          ?XD?LEADDRRANDOMCNTINIT?SYS
+001C2AH   001C2AH   000001H   BYTE   UNIT     XDATA          ?XD?DEVICETIMER500MS?SYS
+001C2BH   001C2BH   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
+001C2CH   001C2CH   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+001C2DH   001C2DH   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
+001C2EH   001C2EH   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXBREDRHIDDATA?IPC
+001C2FH   001C2FH   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TX24GDATA?IPC
+001C30H   001C30H   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXSPPDATA?IPC
+001C31H   001C31H   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXBLEDATA?IPC
+001C32H   001C32H   000001H   BYTE   UNIT     XDATA          ?XD?GLOBAL_VARIABLE
+001C33H   001C33H   000001H   BYTE   UNIT     XDATA          ?XD?SPI_TWRESET?SENSOR
+001C34H   004130H   0024FDH   ---    ---      **GAP**
+004131H   004131H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?10
+004132H   004260H   00012FH   ---    ---      **GAP**
+004261H   004270H   000010H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?15
+004271H   004272H   000002H   ---    ---      **GAP**
+004273H   004278H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?25
+004279H   0042B7H   00003FH   ---    ---      **GAP**
+0042B8H   0042B8H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?19
+0042B9H   0042D0H   000018H   ---    ---      **GAP**
+0042D1H   0042D2H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?28
+0042D3H   00453DH   00026BH   ---    ---      **GAP**
+00453EH   004543H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?1
+004544H   004594H   000051H   ---    ---      **GAP**
+004595H   004595H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?2
+004596H   00470AH   000175H   ---    ---      **GAP**
+00470BH   00470CH   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?24
+00470DH   004717H   00000BH   ---    ---      **GAP**
+004718H   004718H   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?1
+004719H   004728H   000010H   BYTE   OFFS..   XDATA          ?XD?IPC?10
+004729H   0047C3H   00009BH   ---    ---      **GAP**
+0047C4H   0047C5H   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?3
+0047C6H   0047C7H   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?6
+0047C8H   00482BH   000064H   ---    ---      **GAP**
+00482CH   00482DH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?2
+00482EH   00482FH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?5
+004830H   004841H   000012H   BYTE   OFFS..   XDATA          ?XD?IPC?9
+004842H   004897H   000056H   ---    ---      **GAP**
+004898H   004899H   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?13
+00489AH   00489BH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?11
+00489CH   00489CH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?12
+00489DH   00489DH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?8
+00489EH   004905H   000068H   ---    ---      **GAP**
+004906H   004925H   000020H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?18
+004926H   00494DH   000028H   ---    ---      **GAP**
+00494EH   00494EH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?20
+00494FH   00494FH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?21
+004950H   004953H   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?8
+004954H   004954H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?32
+004955H   0049B6H   000062H   ---    ---      **GAP**
+0049B7H   0049B7H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?5
+0049B8H   0049BFH   000008H   ---    ---      **GAP**
+0049C0H   0049C0H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?26
+0049C1H   0049C1H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?29
+0049C2H   0049C2H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?13
+0049C3H   004E20H   00045EH   ---    ---      **GAP**
+004E21H   004E40H   000020H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?3
+004E41H   004E42H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?9
+004E43H   004E44H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?12
+004E45H   004E77H   000033H   ---    ---      **GAP**
+004E78H   004E78H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?22
+004E79H   004E7CH   000004H   ---    ---      **GAP**
+004E7DH   004E7DH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?0
+004E7EH   004E7EH   000001H   ---    ---      **GAP**
+004E7FH   004E7FH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?11
+004E80H   004E80H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?30
+004E81H   004E81H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?31
+004E82H   004E82H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?14
+004E83H   004E83H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?16
+004E84H   004E84H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?17
+004E85H   004EA5H   000021H   ---    ---      **GAP**
+004EA6H   004EA6H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?7
+004EA7H   004EA7H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?23
+004EA8H   004EBAH   000013H   ---    ---      **GAP**
+004EBBH   004F14H   00005AH   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?6
+
+
+
+PUBLIC SYMBOLS OF MODULE:  OUTPUT\FW (RAM)
+
+
+      VALUE       CLASS    TYPE      PUBLIC SYMBOL NAME
+      =================================================
+      02001BDAH   XDATA    BYTE      ?_compare_str?BYTE
+      02001BD2H   XDATA    BYTE      ?_dmemcpy?BYTE
+      00000020H.6 BIT      BIT       ?_GPIO_SetInput?BIT
+      00000020H.5 BIT      BIT       ?_GPIO_Setoe?BIT
+      00000020H.2 BIT      BIT       ?_GPIO_Setout?BIT
+      00000020H.7 BIT      BIT       ?_GPIO_SetOutput?BIT
+      00000020H.4 BIT      BIT       ?_GPIO_SetPd?BIT
+      00000020H.3 BIT      BIT       ?_GPIO_SetPu?BIT
+      00000021H.0 BIT      BIT       ?_GPIO_SetWakeup?BIT
+      02001BE7H   XDATA    BYTE      ?_xmemcpy?BYTE
+      0100021AH   CODE     ---       ?C?CCASE
+      01000112H   CODE     ---       ?C?CLDOPTR
+      010000F9H   CODE     ---       ?C?CLDPTR
+      00000000H   NUMBER   ---       ?C?CODESEG
+      010000D3H   CODE     ---       ?C?COPY
+      0100013FH   CODE     ---       ?C?CSTPTR
+      01000240H   CODE     ---       ?C?ICALL
+      01000244H   CODE     ---       ?C?ICALL2
+      010001EEH   CODE     ---       ?C?IILDX
+      01000204H   CODE     ---       ?C?ILDIX
+      01000151H   CODE     ---       ?C?IMUL
+      010001B8H   CODE     ---       ?C?SIDIV
+      01000163H   CODE     ---       ?C?UIDIV
+      00000000H   NUMBER   ---       ?C?XDATASEG
+      0100028DH   CODE     ---       ?C_START
+      01000000H   CODE     ---       ?C_STARTUP
+      0100200FH   CODE     ---       _abs
+      01001F77H   CODE     ---       _compare_str
+      01001646H   CODE     ---       _Delay1ms
+      01001F06H   CODE     ---       _dmemcpy
+      01001FCEH   CODE     ---       _GPIO_ClearWakeup
+      01001135H   CODE     ---       _GPIO_FlipOutBit
+      01000D22H   CODE     ---       _GPIO_GetInputStatus
+      010003A1H   CODE     ---       _GPIO_SetInput
+      010003B8H   CODE     ---       _GPIO_Setoe
+      0100109FH   CODE     ---       _GPIO_Setout
+      0100107FH   CODE     ---       _GPIO_SetOutput
+      01001FC1H   CODE     ---       _GPIO_SetPd
+      01001092H   CODE     ---       _GPIO_SetPu
+      01000781H   CODE     ---       _GPIO_SetWakeup
+      0100076DH   CODE     ---       _GPIO_SetWakeupByCurrentState
+      01001888H   CODE     ---       _IIC_Read
+      01001A54H   CODE     ---       _IIC_write
+      010019A4H   CODE     ---       _IIC_WriteBlock
+      01001EF2H   CODE     ---       _IPC_Initialize
+      01001B97H   CODE     ---       _IPC_Tx24GData
+      01001802H   CODE     ---       _IPC_TxBleData
+      01001C1DH   CODE     ---       _IPC_TxBREDRHidData
+      01000E78H   CODE     ---       _IPC_TxControlCmd
+      010017B2H   CODE     ---       _IPC_TxHidData
+      01001BDAH   CODE     ---       _IPC_TxSppData
+      01000820H   CODE     ---       _SPI_ReadSensor
+      01000A64H   CODE     ---       _SPI_WriteSensor
+      01001EC0H   CODE     ---       _xmemclear_0
+      01001F4AH   CODE     ---       _xmemclear_ff
+      01001845H   CODE     ---       _xmemcpy
+      01001AC9H   CODE     ---       ADC_Get0vBase
+      01001B85H   CODE     ---       ADC_Get3vBase
+      01001B8EH   CODE     ---       ADC_GetCurrentValue
+      0200489CH   XDATA    BYTE      btstimer
+      02004898H   XDATA    WORD      bttimer
+      0200489DH   XDATA    BYTE      c51stimer
+      0200489AH   XDATA    WORD      c51timer
+      01001E9DH   CODE     ---       clearGlobalMem
+      01000D67H   CODE     ---       comboKeyPb
+      02000B2AH   XDATA    BYTE      current_task
+      01000A8FH   CODE     ---       dpiWriteInSensor
+      01002022H   CODE     ---       Drawing_optima
+      01002124H   CODE     ---       Drawing_optima_init
+      02004EBBH   XDATA    ---       g_variable
+      010013C3H   CODE     ---       IPC_AbandonLpm
+      010013CFH   CODE     ---       IPC_DealSingleStep
+      01002009H   CODE     ---       IPC_GetBBDIsconnectReason
+      01001DCBH   CODE     ---       IPC_IsTxBuffEmpty
+      0100163AH   CODE     ---       IPC_WaitLpm
+      02004719H   XDATA    ---       ipcPin
+      02004718H   XDATA    BYTE      ipcPinlen
+      02001A00H   XDATA    ---       ipcReadBuff
+      02001A96H   XDATA    ---       ipcSendBuff
+      01001958H   CODE     ---       leAddrRandomCntInit
+      01000E38H   CODE     ---       leADVStart
+      01001937H   CODE     ---       leReconnStart
+      02000B2BH   XDATA    BYTE      lpm_flag
+      02004950H   XDATA    ---       m_24gAddr
+      02004906H   XDATA    ---       m_24gRxPayload
+      02004E84H   XDATA    BYTE      m_51ReadSensor
+      02004E41H   XDATA    WORD      m_adc0vBase
+      02004E43H   XDATA    WORD      m_adc3vValue
+      020042D1H   XDATA    WORD      m_adcCurrentValue
+      02004E81H   XDATA    BYTE      m_bleDataWheel
+      02004E82H   XDATA    BYTE      m_bleDataWheelLpmTimer
+      02004595H   XDATA    BYTE      m_bleSendDataFlag
+      020049C2H   XDATA    BYTE      m_btMotionEvent
+      02004E83H   XDATA    BYTE      m_BtReadIpcCount
+      020049C1H   XDATA    BYTE      m_btWakeupFromLongMult
+      02004E78H   XDATA    BYTE      m_enable24gShortLpm
+      02001C32H   XDATA    BYTE      m_FastConnSendEmptyCount
+      02004E21H   XDATA    ---       m_hidBuff
+      02004E7FH   XDATA    BYTE      m_IpcIsReady
+      02004EA7H   XDATA    BYTE      m_leStartAdv
+      02004261H   XDATA    ---       m_linkKey
+      02004131H   XDATA    BYTE      m_lpmMode
+      02004EA6H   XDATA    BYTE      m_mouseFastConnFlag
+      02004954H   XDATA    BYTE      m_new24gAbortPac
+      0200494FH   XDATA    BYTE      m_new24gIntMax
+      0200494EH   XDATA    BYTE      m_new24gIntMin
+      020049B7H   XDATA    BYTE      m_new24gKWEvent
+      020049C0H   XDATA    BYTE      m_new24gOtaEnable
+      020042B8H   XDATA    BYTE      m_powerOnFlag
+      02004273H   XDATA    ---       m_reconnAddr
+      0200453EH   XDATA    ---       m_reconnLeAddr
+      02000040H   XDATA    ---       m_remoteAddr
+      02000372H   XDATA    ---       m_remoteLeAddr
+      02004E7DH   XDATA    BYTE      m_sendData24gShortLpm
+      02004E80H   XDATA    BYTE      m_shortDataWheel
+      0200470BH   XDATA    WORD      m_uiStateMap
+      010002F1H   CODE     ---       main
+      010016EBH   CODE     ---       mouse_wheel_delay_lpm
+      01000F43H   CODE     ---       mouseDpiKeyCheck
+      01001151H   CODE     ---       mouseKeyDetect
+      0100176EH   CODE     ---       mousePackage
+      01001665H   CODE     ---       mouseWheelScan
+      01001AD2H   CODE     ---       Power_low_detect
+      01000B46H   CODE     ---       Sensor_spi_disable
+      01000807H   CODE     ---       sensorClearData
+      01000F20H   CODE     ---       sensorPowerDown
+      01000CB9H   CODE     ---       sensorPowerOn
+      010016FAH   CODE     ---       SPI_Initialize
+      01000849H   CODE     ---       SPI_ResetSensor
+      0200021DH   XDATA    ---       spi_rx_buff
+      01000CCFH   CODE     ---       SPI_TwReset
+      02000218H   XDATA    ---       spi_tx_buff
+      010012CEH   CODE     ---       YC_24gShortLpmProcess
+      020000A4H   XDATA    ---       YC_GPIOWakeupH
+      020000A0H   XDATA    ---       YC_GPIOWakeupL
+      01001EFFH   CODE     ---       YC_Ice_break
+      01000716H   CODE     ---       YC_SetWake
+      010002F1H   CODE     ---       YC_SysMain
+
+
+
+SYMBOL TABLE OF MODULE:  OUTPUT\FW (RAM)
+
+      VALUE       REP       CLASS    TYPE      SYMBOL NAME
+      ====================================================
+      ---         MODULE    ---      ---       RAM
+      010002F1H   PUBLIC    CODE     ---       main
+
+      010002F1H   BLOCK     CODE     ---       LVL=0
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       SYS
+      010002F1H   PUBLIC    CODE     ---       YC_SysMain
+      010012CEH   PUBLIC    CODE     ---       YC_24gShortLpmProcess
+      01000716H   PUBLIC    CODE     ---       YC_SetWake
+      01001AD2H   PUBLIC    CODE     ---       Power_low_detect
+      01000D67H   PUBLIC    CODE     ---       comboKeyPb
+      01001958H   PUBLIC    CODE     ---       leAddrRandomCntInit
+      01000E38H   PUBLIC    CODE     ---       leADVStart
+      01001937H   PUBLIC    CODE     ---       leReconnStart
+      01001E9DH   PUBLIC    CODE     ---       clearGlobalMem
+      0100176EH   PUBLIC    CODE     ---       mousePackage
+      01001151H   PUBLIC    CODE     ---       mouseKeyDetect
+      010017B2H   PUBLIC    CODE     ---       _IPC_TxHidData
+      01001665H   PUBLIC    CODE     ---       mouseWheelScan
+      010016EBH   PUBLIC    CODE     ---       mouse_wheel_delay_lpm
+      01000F43H   PUBLIC    CODE     ---       mouseDpiKeyCheck
+      01000A8FH   PUBLIC    CODE     ---       dpiWriteInSensor
+      01000807H   PUBLIC    CODE     ---       sensorClearData
+
+      01000807H   BLOCK     CODE     ---       LVL=0
+      01000807H   LINE      ---      ---       #209
+      01000807H   LINE      ---      ---       #210
+      01000807H   LINE      ---      ---       #211
+      01000809H   LINE      ---      ---       #212
+      0100080BH   LINE      ---      ---       #213
+      01000811H   LINE      ---      ---       #214
+      01000815H   LINE      ---      ---       #215
+      01000819H   LINE      ---      ---       #216
+      0100081DH   LINE      ---      ---       #217
+      0100081FH   LINE      ---      ---       #218
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000A8FH   BLOCK     CODE     ---       LVL=0
+      01000A8FH   LINE      ---      ---       #220
+      01000A8FH   LINE      ---      ---       #221
+      01000A8FH   LINE      ---      ---       #222
+      01000A91H   LINE      ---      ---       #224
+      01000A9EH   LINE      ---      ---       #225
+      01000A9EH   LINE      ---      ---       #226
+      01000AA8H   LINE      ---      ---       #227
+      01000AA8H   LINE      ---      ---       #230
+      01000AAFH   LINE      ---      ---       #231
+      01000AAFH   LINE      ---      ---       #232
+      01000AB6H   LINE      ---      ---       #233
+      01000ABEH   LINE      ---      ---       #235
+      01000AC7H   LINE      ---      ---       #236
+      01000AC7H   LINE      ---      ---       #239
+      01000ACEH   LINE      ---      ---       #240
+      01000ACEH   LINE      ---      ---       #241
+      01000AD9H   LINE      ---      ---       #242
+      01000AD9H   LINE      ---      ---       #246
+      01000AE0H   LINE      ---      ---       #247
+      01000AE0H   LINE      ---      ---       #248
+      01000AEBH   LINE      ---      ---       #249
+      01000AEBH   LINE      ---      ---       #253
+      01000AF3H   LINE      ---      ---       #254
+      01000AF3H   LINE      ---      ---       #255
+      01000AF9H   LINE      ---      ---       #256
+      01000B0AH   LINE      ---      ---       #257
+      01000B0AH   LINE      ---      ---       #258
+      01000B0AH   LINE      ---      ---       #259
+      01000B10H   LINE      ---      ---       #260
+      01000B16H   LINE      ---      ---       #261
+      01000B18H   LINE      ---      ---       #262
+      01000B18H   LINE      ---      ---       #263
+      01000B1EH   LINE      ---      ---       #264
+      01000B24H   LINE      ---      ---       #265
+      01000B26H   LINE      ---      ---       #266
+      01000B26H   LINE      ---      ---       #267
+      01000B2CH   LINE      ---      ---       #268
+      01000B32H   LINE      ---      ---       #269
+      01000B34H   LINE      ---      ---       #270
+      01000B34H   LINE      ---      ---       #271
+      01000B3AH   LINE      ---      ---       #272
+      01000B40H   LINE      ---      ---       #273
+      01000B40H   LINE      ---      ---       #274
+      01000B40H   LINE      ---      ---       #275
+      01000B40H   LINE      ---      ---       #276
+      01000B40H   LINE      ---      ---       #277
+      01000B46H   LINE      ---      ---       #278
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FE7H   BLOCK     CODE     ---       LVL=0
+      01000FE7H   LINE      ---      ---       #284
+      01000FE7H   LINE      ---      ---       #285
+      01000FE7H   LINE      ---      ---       #286
+      01000FEEH   LINE      ---      ---       #287
+      01000FF6H   LINE      ---      ---       #288
+      0100100DH   LINE      ---      ---       #289
+      01001010H   LINE      ---      ---       #290
+      01001010H   LINE      ---      ---       #291
+      01001016H   LINE      ---      ---       #292
+      01001016H   LINE      ---      ---       #294
+      01001016H   LINE      ---      ---       #295
+      01001020H   LINE      ---      ---       #296
+      01001020H   LINE      ---      ---       #297
+      01001024H   LINE      ---      ---       #298
+      01001026H   LINE      ---      ---       #299
+      01001026H   LINE      ---      ---       #300
+      01001029H   LINE      ---      ---       #301
+      01001029H   LINE      ---      ---       #302
+      0100102DH   LINE      ---      ---       #303
+      0100102DH   LINE      ---      ---       #304
+      0100102DH   LINE      ---      ---       #305
+      0100102DH   LINE      ---      ---       #306
+      01001032H   LINE      ---      ---       #307
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001033H   BLOCK     CODE     ---       LVL=0
+      01001033H   LINE      ---      ---       #309
+      01001033H   LINE      ---      ---       #310
+      01001033H   LINE      ---      ---       #311
+      01001039H   LINE      ---      ---       #312
+      01001041H   LINE      ---      ---       #313
+      01001059H   LINE      ---      ---       #314
+      0100105CH   LINE      ---      ---       #315
+      0100105CH   LINE      ---      ---       #316
+      01001062H   LINE      ---      ---       #317
+      01001062H   LINE      ---      ---       #319
+      01001062H   LINE      ---      ---       #320
+      0100106CH   LINE      ---      ---       #321
+      0100106CH   LINE      ---      ---       #322
+      01001070H   LINE      ---      ---       #323
+      01001072H   LINE      ---      ---       #324
+      01001072H   LINE      ---      ---       #325
+      01001075H   LINE      ---      ---       #326
+      01001075H   LINE      ---      ---       #327
+      01001079H   LINE      ---      ---       #328
+      01001079H   LINE      ---      ---       #329
+      01001079H   LINE      ---      ---       #330
+      01001079H   LINE      ---      ---       #331
+      0100107EH   LINE      ---      ---       #332
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001282H   BLOCK     CODE     ---       LVL=0
+      01001282H   LINE      ---      ---       #335
+      01001282H   LINE      ---      ---       #336
+      01001282H   LINE      ---      ---       #337
+      01001288H   LINE      ---      ---       #338
+      01001290H   LINE      ---      ---       #339
+      010012A8H   LINE      ---      ---       #340
+      010012ABH   LINE      ---      ---       #341
+      010012ABH   LINE      ---      ---       #342
+      010012B1H   LINE      ---      ---       #343
+      010012B1H   LINE      ---      ---       #345
+      010012B1H   LINE      ---      ---       #346
+      010012BBH   LINE      ---      ---       #347
+      010012BBH   LINE      ---      ---       #348
+      010012BFH   LINE      ---      ---       #349
+      010012C1H   LINE      ---      ---       #350
+      010012C1H   LINE      ---      ---       #351
+      010012C4H   LINE      ---      ---       #352
+      010012C4H   LINE      ---      ---       #353
+      010012C8H   LINE      ---      ---       #354
+      010012C8H   LINE      ---      ---       #355
+      010012C8H   LINE      ---      ---       #356
+      010012C8H   LINE      ---      ---       #357
+      010012CDH   LINE      ---      ---       #358
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010011B4H   BLOCK     CODE     ---       LVL=0
+      010011B4H   LINE      ---      ---       #360
+      010011B4H   LINE      ---      ---       #361
+      010011B4H   LINE      ---      ---       #362
+      010011BEH   LINE      ---      ---       #363
+      010011C4H   LINE      ---      ---       #364
+      010011CCH   LINE      ---      ---       #365
+      010011E4H   LINE      ---      ---       #366
+      010011EAH   LINE      ---      ---       #367
+      010011F1H   LINE      ---      ---       #368
+      010011F8H   LINE      ---      ---       #369
+      010011F8H   LINE      ---      ---       #370
+      010011FEH   LINE      ---      ---       #371
+      010011FEH   LINE      ---      ---       #373
+      010011FEH   LINE      ---      ---       #374
+      01001208H   LINE      ---      ---       #375
+      01001208H   LINE      ---      ---       #376
+      0100120CH   LINE      ---      ---       #377
+      0100120EH   LINE      ---      ---       #378
+      0100120EH   LINE      ---      ---       #379
+      01001211H   LINE      ---      ---       #380
+      01001211H   LINE      ---      ---       #381
+      01001215H   LINE      ---      ---       #382
+      01001215H   LINE      ---      ---       #383
+      01001215H   LINE      ---      ---       #384
+      01001215H   LINE      ---      ---       #385
+      0100121AH   LINE      ---      ---       #386
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100121BH   BLOCK     CODE     ---       LVL=0
+      0100121BH   LINE      ---      ---       #388
+      0100121BH   LINE      ---      ---       #389
+      0100121BH   LINE      ---      ---       #390
+      01001225H   LINE      ---      ---       #391
+      0100122BH   LINE      ---      ---       #392
+      01001233H   LINE      ---      ---       #393
+      0100124BH   LINE      ---      ---       #394
+      01001251H   LINE      ---      ---       #395
+      01001258H   LINE      ---      ---       #396
+      0100125FH   LINE      ---      ---       #397
+      0100125FH   LINE      ---      ---       #398
+      01001265H   LINE      ---      ---       #399
+      01001265H   LINE      ---      ---       #401
+      01001265H   LINE      ---      ---       #402
+      0100126FH   LINE      ---      ---       #403
+      0100126FH   LINE      ---      ---       #404
+      01001273H   LINE      ---      ---       #405
+      01001275H   LINE      ---      ---       #406
+      01001275H   LINE      ---      ---       #407
+      01001278H   LINE      ---      ---       #408
+      01001278H   LINE      ---      ---       #409
+      0100127CH   LINE      ---      ---       #410
+      0100127CH   LINE      ---      ---       #411
+      0100127CH   LINE      ---      ---       #412
+      0100127CH   LINE      ---      ---       #413
+      01001281H   LINE      ---      ---       #414
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F43H   BLOCK     CODE     ---       LVL=0
+      01000F43H   LINE      ---      ---       #416
+      01000F43H   LINE      ---      ---       #417
+      01000F43H   LINE      ---      ---       #418
+      01000F4BH   LINE      ---      ---       #419
+      01000F62H   LINE      ---      ---       #420
+      01000F6BH   LINE      ---      ---       #421
+      01000F73H   LINE      ---      ---       #422
+      01000F73H   LINE      ---      ---       #423
+      01000F79H   LINE      ---      ---       #424
+      01000F7DH   LINE      ---      ---       #425
+      01000F81H   LINE      ---      ---       #426
+      01000F89H   LINE      ---      ---       #427
+      01000F8BH   LINE      ---      ---       #428
+      01000F9CH   LINE      ---      ---       #429
+      01000F9CH   LINE      ---      ---       #430
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010016EBH   BLOCK     CODE     ---       LVL=0
+      010016EBH   LINE      ---      ---       #433
+      010016EBH   LINE      ---      ---       #434
+      010016EBH   LINE      ---      ---       #435
+      010016F3H   LINE      ---      ---       #436
+      010016F3H   LINE      ---      ---       #437
+      010016F9H   LINE      ---      ---       #438
+      010016F9H   LINE      ---      ---       #439
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001665H   BLOCK     CODE     ---       LVL=0
+      01001665H   LINE      ---      ---       #441
+      01001665H   LINE      ---      ---       #442
+      01001665H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001665H   LINE      ---      ---       #443
+      0100166CH   LINE      ---      ---       #444
+      01001677H   LINE      ---      ---       #445
+      01001688H   LINE      ---      ---       #448
+      0100168FH   LINE      ---      ---       #451
+      01001695H   LINE      ---      ---       #452
+      0100169BH   LINE      ---      ---       #453
+      010016A1H   LINE      ---      ---       #455
+      010016C6H   LINE      ---      ---       #457
+      010016DAH   LINE      ---      ---       #458
+      010016DAH   LINE      ---      ---       #459
+      010016DAH   LINE      ---      ---       #460
+      010016DAH   LINE      ---      ---       #461
+      010016E0H   LINE      ---      ---       #462
+      010016E2H   LINE      ---      ---       #463
+      010016E2H   LINE      ---      ---       #464
+      010016E2H   LINE      ---      ---       #465
+      010016E2H   LINE      ---      ---       #466
+      010016E8H   LINE      ---      ---       #467
+      010016EAH   LINE      ---      ---       #468
+      010016EAH   LINE      ---      ---       #469
+      010016EAH   LINE      ---      ---       #470
+      010016EAH   LINE      ---      ---       #471
+      010016EAH   LINE      ---      ---       #472
+      02001C16H   SYMBOL    XDATA    VOID      result
+      02001C18H   SYMBOL    XDATA    VOID      tempStateA
+      00000007H   SYMBOL    DATA     VOID      tempState
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010017B2H   BLOCK     CODE     ---       LVL=0
+      010017B2H   LINE      ---      ---       #474
+      010017C0H   LINE      ---      ---       #475
+      010017C0H   LINE      ---      ---       #476
+      010017D3H   LINE      ---      ---       #480
+      010017D7H   LINE      ---      ---       #481
+      010017D7H   LINE      ---      ---       #482
+      010017E8H   LINE      ---      ---       #483
+      010017E8H   LINE      ---      ---       #490
+      010017EFH   LINE      ---      ---       #491
+      010017EFH   LINE      ---      ---       #492
+      010017FFH   LINE      ---      ---       #493
+      010017FFH   LINE      ---      ---       #495
+      010017FFH   LINE      ---      ---       #496
+      01001801H   LINE      ---      ---       #497
+      01001801H   LINE      ---      ---       #498
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001151H   BLOCK     CODE     ---       LVL=0
+      01001151H   LINE      ---      ---       #500
+      01001151H   LINE      ---      ---       #501
+      01001151H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001151H   LINE      ---      ---       #502
+      0100115EH   LINE      ---      ---       #503
+      01001166H   LINE      ---      ---       #504
+      0100116DH   LINE      ---      ---       #505
+      01001174H   LINE      ---      ---       #506
+      0100117BH   LINE      ---      ---       #507
+      01001182H   LINE      ---      ---       #509
+      01001185H   LINE      ---      ---       #510
+      010011B3H   LINE      ---      ---       #511
+      02001BF3H   SYMBOL    XDATA    VOID      buttonLeft
+      02001BF4H   SYMBOL    XDATA    VOID      buttonRight
+      02001BF5H   SYMBOL    XDATA    VOID      buttonMiddle
+      02001BF6H   SYMBOL    XDATA    VOID      buttonBack
+      02001BF7H   SYMBOL    XDATA    VOID      buttonForward
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000B5AH   BLOCK     CODE     ---       LVL=0
+      01000B5AH   LINE      ---      ---       #513
+      01000B5AH   LINE      ---      ---       #514
+      01000B5AH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000B5AH   LINE      ---      ---       #515
+      01000B65H   LINE      ---      ---       #517
+      01000B6BH   LINE      ---      ---       #518
+      01000B6DH   LINE      ---      ---       #519
+      01000B6DH   LINE      ---      ---       #521
+      01000B6FH   LINE      ---      ---       #523
+      01000B79H   LINE      ---      ---       #525
+      01000B7FH   LINE      ---      ---       #526
+      01000B87H   LINE      ---      ---       #527
+      01000B90H   LINE      ---      ---       #528
+      01000B9BH   LINE      ---      ---       #529
+      01000B9DH   LINE      ---      ---       #530
+      01000B9DH   LINE      ---      ---       #531
+      01000BA6H   LINE      ---      ---       #532
+      01000BAFH   LINE      ---      ---       #533
+      01000BB8H   LINE      ---      ---       #534
+      01000BC1H   LINE      ---      ---       #535
+      01000BC6H   LINE      ---      ---       #536
+      01000BC6H   LINE      ---      ---       #537
+      01000BC8H   LINE      ---      ---       #538
+      01000BD0H   LINE      ---      ---       #539
+      01000BDDH   LINE      ---      ---       #540
+      01000BE4H   LINE      ---      ---       #541
+      01000BF1H   LINE      ---      ---       #542
+      01000BF8H   LINE      ---      ---       #543
+      01000BFAH   LINE      ---      ---       #544
+      01000BFAH   LINE      ---      ---       #545
+      01000C09H   LINE      ---      ---       #546
+      01000C0EH   LINE      ---      ---       #547
+      01000C1DH   LINE      ---      ---       #548
+      01000C22H   LINE      ---      ---       #549
+      01000C22H   LINE      ---      ---       #551
+      01000C28H   LINE      ---      ---       #552
+      01000C42H   LINE      ---      ---       #553
+      01000C57H   LINE      ---      ---       #554
+      01000C59H   LINE      ---      ---       #555
+      01000C59H   LINE      ---      ---       #556
+      01000C6EH   LINE      ---      ---       #557
+      01000C83H   LINE      ---      ---       #558
+      01000C83H   LINE      ---      ---       #559
+      01000C98H   LINE      ---      ---       #560
+      01000CABH   LINE      ---      ---       #562
+      01000CB2H   LINE      ---      ---       #563
+      01000CB5H   LINE      ---      ---       #564
+      01000CB7H   LINE      ---      ---       #565
+      01000CB7H   LINE      ---      ---       #566
+      01000CB8H   LINE      ---      ---       #567
+      01000CB8H   LINE      ---      ---       #568
+      02001C06H   SYMBOL    XDATA    VOID      deltaXL
+      02001C07H   SYMBOL    XDATA    VOID      deltaYL
+      02001C08H   SYMBOL    XDATA    VOID      deltaXH
+      02001C09H   SYMBOL    XDATA    VOID      deltaYH
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100176EH   BLOCK     CODE     ---       LVL=0
+      0100176EH   LINE      ---      ---       #570
+      0100176EH   LINE      ---      ---       #571
+      0100176EH   LINE      ---      ---       #572
+      01001776H   LINE      ---      ---       #573
+      01001781H   LINE      ---      ---       #574
+      01001789H   LINE      ---      ---       #575
+      01001794H   LINE      ---      ---       #576
+      0100179CH   LINE      ---      ---       #577
+      010017A4H   LINE      ---      ---       #578
+      010017A7H   LINE      ---      ---       #579
+      010017ABH   LINE      ---      ---       #580
+      010017B1H   LINE      ---      ---       #581
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001C67H   BLOCK     CODE     ---       LVL=0
+      01001C67H   LINE      ---      ---       #583
+      01001C67H   LINE      ---      ---       #584
+      01001C67H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001C67H   LINE      ---      ---       #585
+      01001C72H   LINE      ---      ---       #586
+      01001C74H   LINE      ---      ---       #594
+      01001C84H   LINE      ---      ---       #595
+      01001C84H   LINE      ---      ---       #598
+      01001C84H   LINE      ---      ---       #599
+      01001C94H   LINE      ---      ---       #601
+      01001C94H   LINE      ---      ---       #603
+      01001C9AH   LINE      ---      ---       #605
+      01001C9AH   LINE      ---      ---       #626
+      01001CBFH   LINE      ---      ---       #629
+      01001CBFH   LINE      ---      ---       #630
+      01001CC1H   LINE      ---      ---       #631
+      01001CC7H   LINE      ---      ---       #632
+      01001CC7H   LINE      ---      ---       #633
+      01001CCFH   LINE      ---      ---       #635
+      01001CDAH   LINE      ---      ---       #645
+      01001CE1H   LINE      ---      ---       #646
+      01001CE8H   LINE      ---      ---       #647
+      01001CE8H   LINE      ---      ---       #649
+      01001CF6H   LINE      ---      ---       #650
+      01001CF6H   LINE      ---      ---       #651
+      01001CF9H   LINE      ---      ---       #652
+      01001D00H   LINE      ---      ---       #653
+      01001D0CH   LINE      ---      ---       #654
+      01001D0CH   LINE      ---      ---       #655
+      01001D0FH   LINE      ---      ---       #656
+      01001D0FH   LINE      ---      ---       #657
+      01001D0FH   LINE      ---      ---       #659
+      01001D15H   LINE      ---      ---       #660
+      01001D15H   LINE      ---      ---       #661
+      01001D17H   LINE      ---      ---       #662
+      01001D1DH   LINE      ---      ---       #663
+      01001D21H   LINE      ---      ---       #664
+      01001D28H   LINE      ---      ---       #665
+      01001D28H   LINE      ---      ---       #666
+      01001D2EH   LINE      ---      ---       #667
+      01001D34H   LINE      ---      ---       #668
+      01001D34H   LINE      ---      ---       #669
+      01001D34H   LINE      ---      ---       #671
+      01001D3DH   LINE      ---      ---       #672
+      01001D3DH   LINE      ---      ---       #673
+      01001D42H   LINE      ---      ---       #674
+      01001D44H   LINE      ---      ---       #675
+      01001D44H   LINE      ---      ---       #677
+      01001D52H   LINE      ---      ---       #680
+      01001D58H   LINE      ---      ---       #681
+      01001D6BH   LINE      ---      ---       #684
+      01001D6BH   LINE      ---      ---       #685
+      01001D6EH   LINE      ---      ---       #687
+      01001D74H   LINE      ---      ---       #688
+      01001D92H   LINE      ---      ---       #691
+      01001D92H   LINE      ---      ---       #692
+      01001D9BH   LINE      ---      ---       #693
+      01001DA6H   LINE      ---      ---       #694
+      01001DACH   LINE      ---      ---       #695
+      01001DADH   LINE      ---      ---       #696
+      01001DADH   LINE      ---      ---       #698
+      01001DADH   LINE      ---      ---       #699
+      01001DAEH   LINE      ---      ---       #700
+      01001DAEH   LINE      ---      ---       #701
+      01001DB9H   LINE      ---      ---       #702
+      01001DBEH   LINE      ---      ---       #703
+      01001DBEH   LINE      ---      ---       #704
+      01001DBFH   LINE      ---      ---       #705
+      01001DBFH   LINE      ---      ---       #706
+      01001DCAH   LINE      ---      ---       #707
+      01001DCAH   LINE      ---      ---       #709
+      01001DCAH   LINE      ---      ---       #710
+      02001C0AH   SYMBOL    XDATA    VOID      deltaXL
+      02001C0BH   SYMBOL    XDATA    VOID      deltaYL
+      02001C0CH   SYMBOL    XDATA    VOID      deltaXH
+      02001C0DH   SYMBOL    XDATA    VOID      deltaYH
+      00000020H.0 SYMBOL    BIT      VOID      sendFlag
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000F9DH   BLOCK     CODE     ---       LVL=0
+      01000F9DH   LINE      ---      ---       #713
+      01000F9DH   LINE      ---      ---       #714
+      01000F9DH   LINE      ---      ---       #715
+      01000FAEH   LINE      ---      ---       #716
+      01000FC4H   LINE      ---      ---       #717
+      01000FC4H   LINE      ---      ---       #718
+      01000FCAH   LINE      ---      ---       #719
+      01000FCCH   LINE      ---      ---       #720
+      01000FCEH   LINE      ---      ---       #721
+      01000FD0H   LINE      ---      ---       #722
+      01000FD4H   LINE      ---      ---       #723
+      01000FDAH   LINE      ---      ---       #724
+      01000FDCH   LINE      ---      ---       #726
+      01000FE0H   LINE      ---      ---       #727
+      01000FE6H   LINE      ---      ---       #728
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F16H   BLOCK     CODE     ---       LVL=0
+      01000F16H   LINE      ---      ---       #730
+      01000F16H   LINE      ---      ---       #731
+      01000F16H   LINE      ---      ---       #732
+      01000F1AH   LINE      ---      ---       #733
+      01000F1FH   LINE      ---      ---       #734
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001E9DH   BLOCK     CODE     ---       LVL=0
+      01001E9DH   LINE      ---      ---       #807
+      01001E9DH   LINE      ---      ---       #808
+      01001E9DH   LINE      ---      ---       #809
+      01001EA9H   LINE      ---      ---       #810
+      01001EB5H   LINE      ---      ---       #811
+      01001EBBH   LINE      ---      ---       #812
+      01001EBFH   LINE      ---      ---       #813
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001754H   BLOCK     CODE     ---       LVL=0
+      01001754H   LINE      ---      ---       #815
+      01001754H   LINE      ---      ---       #816
+      01001754H   LINE      ---      ---       #817
+      0100175BH   LINE      ---      ---       #818
+      0100175FH   LINE      ---      ---       #819
+      01001764H   LINE      ---      ---       #820
+      01001769H   LINE      ---      ---       #821
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010010ACH   BLOCK     CODE     ---       LVL=0
+      010010ACH   LINE      ---      ---       #824
+      010010ACH   LINE      ---      ---       #825
+      010010ACH   LINE      ---      ---       #826
+      010010B2H   LINE      ---      ---       #827
+      010010B5H   LINE      ---      ---       #828
+      010010B8H   LINE      ---      ---       #829
+      010010B8H   LINE      ---      ---       #830
+      010010BEH   LINE      ---      ---       #831
+      010010C4H   LINE      ---      ---       #832
+      010010CBH   LINE      ---      ---       #833
+      010010D1H   LINE      ---      ---       #834
+      010010D7H   LINE      ---      ---       #835
+      010010DDH   LINE      ---      ---       #836
+      010010E2H   LINE      ---      ---       #837
+      010010E3H   LINE      ---      ---       #838
+      010010E3H   LINE      ---      ---       #839
+      010010E9H   LINE      ---      ---       #840
+      010010EFH   LINE      ---      ---       #841
+      010010F5H   LINE      ---      ---       #842
+      010010F5H   LINE      ---      ---       #843
+      010010F5H   LINE      ---      ---       #844
+      010010F6H   LINE      ---      ---       #845
+      010010FDH   LINE      ---      ---       #846
+      01001103H   LINE      ---      ---       #847
+      0100110DH   LINE      ---      ---       #848
+      01001111H   LINE      ---      ---       #849
+      01001111H   LINE      ---      ---       #851
+      01001122H   LINE      ---      ---       #852
+      01001128H   LINE      ---      ---       #853
+      0100112EH   LINE      ---      ---       #854
+      0100112EH   LINE      ---      ---       #855
+      01001134H   LINE      ---      ---       #856
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001937H   BLOCK     CODE     ---       LVL=0
+      01001937H   LINE      ---      ---       #858
+      01001937H   LINE      ---      ---       #859
+      01001937H   LINE      ---      ---       #860
+      0100193EH   LINE      ---      ---       #861
+      0100194DH   LINE      ---      ---       #862
+      01001953H   LINE      ---      ---       #863
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000E38H   BLOCK     CODE     ---       LVL=0
+      01000E38H   LINE      ---      ---       #866
+      01000E38H   LINE      ---      ---       #867
+      01000E38H   LINE      ---      ---       #868
+      01000E49H   LINE      ---      ---       #869
+      01000E57H   LINE      ---      ---       #870
+      01000E68H   LINE      ---      ---       #871
+      01000E73H   LINE      ---      ---       #872
+      01000E76H   LINE      ---      ---       #873
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001958H   BLOCK     CODE     ---       LVL=0
+      01001958H   LINE      ---      ---       #876
+      01001958H   LINE      ---      ---       #877
+      01001958H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001958H   LINE      ---      ---       #878
+      0100195DH   LINE      ---      ---       #879
+      0100196CH   LINE      ---      ---       #880
+      01001973H   LINE      ---      ---       #881
+      01001973H   LINE      ---      ---       #882
+      0100197DH   LINE      ---      ---       #883
+      0100198DH   LINE      ---      ---       #884
+      01001993H   LINE      ---      ---       #885
+      010019A3H   LINE      ---      ---       #886
+      010019A3H   LINE      ---      ---       #887
+      02001C29H   SYMBOL    XDATA    VOID      leAddrE2WP
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100041FH   BLOCK     CODE     ---       LVL=0
+      0100041FH   LINE      ---      ---       #889
+      01000424H   LINE      ---      ---       #890
+      01000424H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000424H   LINE      ---      ---       #892
+      0100042DH   LINE      ---      ---       #893
+      0100042FH   LINE      ---      ---       #894
+      01000440H   LINE      ---      ---       #896
+      01000465H   LINE      ---      ---       #897
+      01000465H   LINE      ---      ---       #898
+      01000465H   LINE      ---      ---       #899
+      01000468H   LINE      ---      ---       #900
+      01000468H   LINE      ---      ---       #901
+      0100046BH   LINE      ---      ---       #902
+      01000471H   LINE      ---      ---       #903
+      01000477H   LINE      ---      ---       #904
+      0100047DH   LINE      ---      ---       #905
+      01000483H   LINE      ---      ---       #906
+      01000489H   LINE      ---      ---       #907
+      0100048FH   LINE      ---      ---       #908
+      01000495H   LINE      ---      ---       #909
+      0100049BH   LINE      ---      ---       #910
+      010004A1H   LINE      ---      ---       #911
+      010004A7H   LINE      ---      ---       #912
+      010004ADH   LINE      ---      ---       #913
+      010004B4H   LINE      ---      ---       #914
+      010004BBH   LINE      ---      ---       #916
+      010004C2H   LINE      ---      ---       #917
+      010004C7H   LINE      ---      ---       #918
+      010004C9H   LINE      ---      ---       #919
+      010004C9H   LINE      ---      ---       #920
+      010004CFH   LINE      ---      ---       #921
+      010004CFH   LINE      ---      ---       #923
+      010004D6H   LINE      ---      ---       #928
+      010004D6H   LINE      ---      ---       #929
+      010004D6H   LINE      ---      ---       #931
+      010004DCH   LINE      ---      ---       #932
+      010004E0H   LINE      ---      ---       #934
+      010004E0H   LINE      ---      ---       #935
+      010004E3H   LINE      ---      ---       #936
+      010004E6H   LINE      ---      ---       #937
+      010004EEH   LINE      ---      ---       #938
+      010004FFH   LINE      ---      ---       #939
+      01000508H   LINE      ---      ---       #940
+      0100050BH   LINE      ---      ---       #941
+      0100051CH   LINE      ---      ---       #942
+      0100051FH   LINE      ---      ---       #943
+      01000524H   LINE      ---      ---       #944
+      01000528H   LINE      ---      ---       #945
+      0100052CH   LINE      ---      ---       #946
+      0100053EH   LINE      ---      ---       #947
+      01000550H   LINE      ---      ---       #948
+      01000562H   LINE      ---      ---       #949
+      0100057AH   LINE      ---      ---       #950
+      01000584H   LINE      ---      ---       #951
+      01000584H   LINE      ---      ---       #952
+      01000589H   LINE      ---      ---       #953
+      01000589H   LINE      ---      ---       #954
+      01000589H   LINE      ---      ---       #956
+      01000590H   LINE      ---      ---       #957
+      01000593H   LINE      ---      ---       #958
+      01000598H   LINE      ---      ---       #959
+      01000599H   LINE      ---      ---       #962
+      0100059CH   LINE      ---      ---       #963
+      0100059CH   LINE      ---      ---       #964
+      0100059CH   LINE      ---      ---       #965
+      010005A3H   LINE      ---      ---       #966
+      010005A3H   LINE      ---      ---       #967
+      010005AEH   LINE      ---      ---       #968
+      010005AEH   LINE      ---      ---       #969
+      010005B2H   LINE      ---      ---       #970
+      010005B8H   LINE      ---      ---       #971
+      010005B8H   LINE      ---      ---       #972
+      010005BBH   LINE      ---      ---       #973
+      010005C2H   LINE      ---      ---       #974
+      010005C8H   LINE      ---      ---       #975
+      010005CBH   LINE      ---      ---       #976
+      010005CBH   LINE      ---      ---       #1038
+      010005CBH   LINE      ---      ---       #1039
+      010005D1H   LINE      ---      ---       #1040
+      010005E0H   LINE      ---      ---       #1041
+      010005F1H   LINE      ---      ---       #1042
+      010005F6H   LINE      ---      ---       #1043
+      010005F6H   LINE      ---      ---       #1044
+      010005F6H   LINE      ---      ---       #1045
+      010005F9H   LINE      ---      ---       #1046
+      010005FEH   LINE      ---      ---       #1047
+      01000604H   LINE      ---      ---       #1048
+      01000604H   LINE      ---      ---       #1049
+      01000606H   LINE      ---      ---       #1050
+      0100060AH   LINE      ---      ---       #1051
+      0100060DH   LINE      ---      ---       #1052
+      01000612H   LINE      ---      ---       #1054
+      01000617H   LINE      ---      ---       #1055
+      01000617H   LINE      ---      ---       #1056
+      01000617H   LINE      ---      ---       #1083
+      01000628H   LINE      ---      ---       #1084
+      01000648H   LINE      ---      ---       #1086
+      01000648H   LINE      ---      ---       #1087
+      0100064EH   LINE      ---      ---       #1088
+      01000652H   LINE      ---      ---       #1089
+      01000653H   LINE      ---      ---       #1090
+      01000653H   LINE      ---      ---       #1091
+      01000656H   LINE      ---      ---       #1093
+      01000656H   LINE      ---      ---       #1094
+      01000656H   LINE      ---      ---       #1095
+      01000659H   LINE      ---      ---       #1096
+      0100065FH   LINE      ---      ---       #1097
+      01000664H   LINE      ---      ---       #1098
+      01000666H   LINE      ---      ---       #1101
+      0100066AH   LINE      ---      ---       #1102
+      0100066BH   LINE      ---      ---       #1104
+      0100066BH   LINE      ---      ---       #1105
+      0100066EH   LINE      ---      ---       #1106
+      01000671H   LINE      ---      ---       #1107
+      01000678H   LINE      ---      ---       #1108
+      01000689H   LINE      ---      ---       #1109
+      0100068CH   LINE      ---      ---       #1110
+      0100068CH   LINE      ---      ---       #1111
+      0100068CH   LINE      ---      ---       #1112
+      01000691H   LINE      ---      ---       #1113
+      01000696H   LINE      ---      ---       #1114
+      0100069BH   LINE      ---      ---       #1115
+      010006A1H   LINE      ---      ---       #1116
+      010006A7H   LINE      ---      ---       #1117
+      010006AAH   LINE      ---      ---       #1118
+      010006BBH   LINE      ---      ---       #1119
+      010006C2H   LINE      ---      ---       #1120
+      010006D3H   LINE      ---      ---       #1121
+      010006DAH   LINE      ---      ---       #1122
+      010006EBH   LINE      ---      ---       #1123
+      010006F1H   LINE      ---      ---       #1124
+      010006F6H   LINE      ---      ---       #1125
+      010006F7H   LINE      ---      ---       #1126
+      010006F7H   LINE      ---      ---       #1127
+      010006FEH   LINE      ---      ---       #1128
+      010006FEH   LINE      ---      ---       #1132
+      01000701H   LINE      ---      ---       #1133
+      01000707H   LINE      ---      ---       #1134
+      01000708H   LINE      ---      ---       #1135
+      0100070FH   LINE      ---      ---       #1136
+      0100070FH   LINE      ---      ---       #1137
+      01000712H   LINE      ---      ---       #1138
+      01000712H   LINE      ---      ---       #1140
+      01000712H   LINE      ---      ---       #1141
+      01000715H   LINE      ---      ---       #1142
+      01000715H   LINE      ---      ---       #1143
+      01000715H   LINE      ---      ---       #1144
+      01000715H   LINE      ---      ---       #1146
+      02001BBEH   SYMBOL    XDATA    VOID      curentMode
+      02001BBFH   SYMBOL    XDATA    VOID      buttonLeft
+      02001BC0H   SYMBOL    XDATA    VOID      buttonRight
+      02001BC1H   SYMBOL    XDATA    VOID      buttonMiddle
+      02001BC2H   SYMBOL    XDATA    VOID      combkey
+      02001BC3H   SYMBOL    XDATA    VOID      reconnLeAddr_buff
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000D67H   BLOCK     CODE     ---       LVL=0
+      01000D67H   LINE      ---      ---       #1148
+      01000D67H   LINE      ---      ---       #1149
+      01000D67H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000D67H   LINE      ---      ---       #1150
+      01000D70H   LINE      ---      ---       #1151
+      01000D72H   LINE      ---      ---       #1152
+      01000D74H   LINE      ---      ---       #1153
+      01000D85H   LINE      ---      ---       #1154
+      01000D96H   LINE      ---      ---       #1155
+      01000DA7H   LINE      ---      ---       #1156
+      01000DBEH   LINE      ---      ---       #1157
+      01000DC2H   LINE      ---      ---       #1158
+      01000DC2H   LINE      ---      ---       #1159
+      01000DC8H   LINE      ---      ---       #1160
+      01000DCFH   LINE      ---      ---       #1161
+      01000DD5H   LINE      ---      ---       #1162
+      01000DDEH   LINE      ---      ---       #1164
+      01000DE4H   LINE      ---      ---       #1165
+      01000DE9H   LINE      ---      ---       #1166
+      01000DE9H   LINE      ---      ---       #1167
+      01000DEDH   LINE      ---      ---       #1168
+      01000DEFH   LINE      ---      ---       #1170
+      01000E03H   LINE      ---      ---       #1171
+      01000E03H   LINE      ---      ---       #1180
+      01000E03H   LINE      ---      ---       #1181
+      01000E07H   LINE      ---      ---       #1182
+      01000E0DH   LINE      ---      ---       #1183
+      01000E0EH   LINE      ---      ---       #1184
+      01000E0EH   LINE      ---      ---       #1185
+      01000E14H   LINE      ---      ---       #1189
+      01000E16H   LINE      ---      ---       #1190
+      01000E16H   LINE      ---      ---       #1191
+      01000E16H   LINE      ---      ---       #1192
+      01000E18H   LINE      ---      ---       #1193
+      01000E1FH   LINE      ---      ---       #1194
+      01000E25H   LINE      ---      ---       #1198
+      01000E27H   LINE      ---      ---       #1199
+      01000E27H   LINE      ---      ---       #1207
+      01000E27H   LINE      ---      ---       #1208
+      01000E27H   LINE      ---      ---       #1209
+      01000E29H   LINE      ---      ---       #1210
+      01000E2FH   LINE      ---      ---       #1214
+      01000E31H   LINE      ---      ---       #1215
+      01000E31H   LINE      ---      ---       #1216
+      01000E31H   LINE      ---      ---       #1217
+      01000E31H   LINE      ---      ---       #1218
+      01000E31H   LINE      ---      ---       #1219
+      01000E31H   LINE      ---      ---       #1220
+      01000E32H   LINE      ---      ---       #1221
+      01000E37H   LINE      ---      ---       #1222
+      02001BF8H   SYMBOL    XDATA    VOID      buttonLeft
+      02001BF9H   SYMBOL    XDATA    VOID      buttonRight
+      02001BFAH   SYMBOL    XDATA    VOID      buttonMiddle
+      02001BFBH   SYMBOL    XDATA    VOID      combkey
+      02001BFCH   SYMBOL    XDATA    VOID      currentStateTemp
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001DE3H   BLOCK     CODE     ---       LVL=0
+      01001DE3H   LINE      ---      ---       #1224
+      01001DE3H   LINE      ---      ---       #1225
+      01001DE3H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001DE3H   LINE      ---      ---       #1226
+      01001DE8H   LINE      ---      ---       #1227
+      01001DF6H   LINE      ---      ---       #1228
+      01001E0DH   LINE      ---      ---       #1229
+      01001E0DH   LINE      ---      ---       #1230
+      01001E0DH   LINE      ---      ---       #1231
+      01001E13H   LINE      ---      ---       #1232
+      01001E1FH   LINE      ---      ---       #1233
+      01001E1FH   LINE      ---      ---       #1234
+      01001E21H   LINE      ---      ---       #1235
+      01001E21H   LINE      ---      ---       #1236
+      01001E22H   LINE      ---      ---       #1237
+      01001E22H   LINE      ---      ---       #1238
+      01001E28H   LINE      ---      ---       #1239
+      01001E36H   LINE      ---      ---       #1240
+      01001E36H   LINE      ---      ---       #1241
+      01001E3BH   LINE      ---      ---       #1242
+      01001E3DH   LINE      ---      ---       #1243
+      01001E3DH   LINE      ---      ---       #1244
+      01001E3DH   LINE      ---      ---       #1245
+      01001E3DH   LINE      ---      ---       #1246
+      01001E43H   LINE      ---      ---       #1247
+      01001E51H   LINE      ---      ---       #1248
+      01001E51H   LINE      ---      ---       #1249
+      01001E56H   LINE      ---      ---       #1250
+      01001E5CH   LINE      ---      ---       #1251
+      01001E5CH   LINE      ---      ---       #1252
+      01001E5DH   LINE      ---      ---       #1263
+      01001E5DH   LINE      ---      ---       #1264
+      01001E63H   LINE      ---      ---       #1265
+      01001E79H   LINE      ---      ---       #1266
+      01001E79H   LINE      ---      ---       #1267
+      01001E7BH   LINE      ---      ---       #1268
+      01001E7BH   LINE      ---      ---       #1269
+      01001E7CH   LINE      ---      ---       #1270
+      01001E7CH   LINE      ---      ---       #1271
+      01001E82H   LINE      ---      ---       #1272
+      01001E86H   LINE      ---      ---       #1274
+      01001E95H   LINE      ---      ---       #1275
+      01001E95H   LINE      ---      ---       #1276
+      01001E97H   LINE      ---      ---       #1277
+      01001E97H   LINE      ---      ---       #1278
+      01001E98H   LINE      ---      ---       #1279
+      01001E99H   LINE      ---      ---       #1282
+      01001E99H   LINE      ---      ---       #1284
+      01001E9CH   LINE      ---      ---       #1285
+      01001E99H   SYMBOL    ---      ---       LONG_SLEEPr500ms
+      02001C2AH   SYMBOL    XDATA    VOID      sleepState
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001AD2H   BLOCK     CODE     ---       LVL=0
+      01001AD2H   LINE      ---      ---       #1287
+      01001AD2H   LINE      ---      ---       #1288
+      01001AD2H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001AD2H   LINE      ---      ---       #1289
+      01001AD9H   LINE      ---      ---       #1290
+      01001AF6H   LINE      ---      ---       #1313
+      01001B00H   LINE      ---      ---       #1314
+      01001B00H   LINE      ---      ---       #1315
+      01001B32H   LINE      ---      ---       #1316
+      01001B3AH   LINE      ---      ---       #1317
+      01001B3FH   LINE      ---      ---       #1318
+      01001B71H   LINE      ---      ---       #1319
+      01001B71H   LINE      ---      ---       #1320
+      01001B81H   LINE      ---      ---       #1322
+      01001B84H   LINE      ---      ---       #1323
+      01001B84H   LINE      ---      ---       #1324
+      01001B84H   LINE      ---      ---       #1326
+      02001C25H   SYMBOL    XDATA    VOID      adc_value
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100171EH   BLOCK     CODE     ---       LVL=0
+      0100171EH   LINE      ---      ---       #1328
+      0100171EH   LINE      ---      ---       #1329
+      0100171EH   LINE      ---      ---       #1330
+      01001724H   LINE      ---      ---       #1331
+      01001726H   LINE      ---      ---       #1332
+      0100172CH   LINE      ---      ---       #1333
+      01001732H   LINE      ---      ---       #1334
+      01001734H   LINE      ---      ---       #1335
+      01001736H   LINE      ---      ---       #1336
+      01001739H   LINE      ---      ---       #1337
+      0100173CH   LINE      ---      ---       #1339
+      01001743H   LINE      ---      ---       #1340
+      01001747H   LINE      ---      ---       #1341
+      0100174BH   LINE      ---      ---       #1342
+      0100174DH   LINE      ---      ---       #1343
+      0100174DH   LINE      ---      ---       #1344
+      01001753H   LINE      ---      ---       #1345
+      01001753H   LINE      ---      ---       #1346
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001EECH   BLOCK     CODE     ---       LVL=0
+      01001EECH   LINE      ---      ---       #1357
+      01001EECH   LINE      ---      ---       #1358
+      01001EECH   LINE      ---      ---       #1359
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000716H   BLOCK     CODE     ---       LVL=0
+      01000716H   LINE      ---      ---       #1362
+      01000716H   LINE      ---      ---       #1363
+      01000716H   LINE      ---      ---       #1364
+      0100071BH   LINE      ---      ---       #1365
+      0100071DH   LINE      ---      ---       #1366
+      0100071FH   LINE      ---      ---       #1367
+      01000721H   LINE      ---      ---       #1368
+      01000724H   LINE      ---      ---       #1369
+      0100072BH   LINE      ---      ---       #1370
+      01000731H   LINE      ---      ---       #1371
+      01000737H   LINE      ---      ---       #1372
+      0100073DH   LINE      ---      ---       #1373
+      01000743H   LINE      ---      ---       #1374
+      01000749H   LINE      ---      ---       #1375
+      0100074FH   LINE      ---      ---       #1376
+      01000753H   LINE      ---      ---       #1377
+      01000757H   LINE      ---      ---       #1378
+      0100075BH   LINE      ---      ---       #1379
+      0100075FH   LINE      ---      ---       #1380
+      01000763H   LINE      ---      ---       #1381
+      01000767H   LINE      ---      ---       #1382
+      0100076BH   LINE      ---      ---       #1383
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010012CEH   BLOCK     CODE     ---       LVL=0
+      010012CEH   LINE      ---      ---       #1387
+      010012CEH   LINE      ---      ---       #1388
+      010012CEH   BLOCK     CODE     NEAR LAB  LVL=1
+      010012CEH   LINE      ---      ---       #1389
+      010012D9H   LINE      ---      ---       #1390
+      010012DBH   LINE      ---      ---       #1391
+      010012DDH   LINE      ---      ---       #1393
+      010012E1H   LINE      ---      ---       #1395
+      010012E3H   LINE      ---      ---       #1396
+      010012F8H   LINE      ---      ---       #1397
+      010012F8H   LINE      ---      ---       #1398
+      01001301H   LINE      ---      ---       #1399
+      01001301H   LINE      ---      ---       #1400
+      01001307H   LINE      ---      ---       #1402
+      01001307H   LINE      ---      ---       #1403
+      0100130DH   LINE      ---      ---       #1404
+      0100130FH   LINE      ---      ---       #1405
+      01001318H   LINE      ---      ---       #1406
+      0100131BH   LINE      ---      ---       #1407
+      01001321H   LINE      ---      ---       #1408
+      01001323H   LINE      ---      ---       #1409
+      01001325H   LINE      ---      ---       #1410
+      01001327H   LINE      ---      ---       #1411
+      0100132DH   LINE      ---      ---       #1412
+      01001333H   LINE      ---      ---       #1413
+      01001333H   LINE      ---      ---       #1414
+      01001339H   LINE      ---      ---       #1415
+      0100133FH   LINE      ---      ---       #1416
+      01001345H   LINE      ---      ---       #1417
+      01001349H   LINE      ---      ---       #1418
+      01001349H   LINE      ---      ---       #1419
+      01001355H   LINE      ---      ---       #1420
+      01001355H   LINE      ---      ---       #1421
+      0100135BH   LINE      ---      ---       #1422
+      0100135FH   LINE      ---      ---       #1423
+      01001365H   LINE      ---      ---       #1424
+      0100136AH   LINE      ---      ---       #1425
+      0100136DH   LINE      ---      ---       #1427
+      01001372H   LINE      ---      ---       #1428
+      01001372H   LINE      ---      ---       #1429
+      01001372H   LINE      ---      ---       #1430
+      01001379H   LINE      ---      ---       #1431
+      01001379H   LINE      ---      ---       #1433
+      0100137FH   LINE      ---      ---       #1434
+      0100137FH   LINE      ---      ---       #1436
+      01001386H   LINE      ---      ---       #1437
+      01001388H   LINE      ---      ---       #1438
+      0100138DH   LINE      ---      ---       #1439
+      01001395H   LINE      ---      ---       #1440
+      01001398H   LINE      ---      ---       #1441
+      01001398H   LINE      ---      ---       #1442
+      01001398H   LINE      ---      ---       #1443
+      01001398H   LINE      ---      ---       #1444
+      01001398H   LINE      ---      ---       #1455
+      010013A2H   LINE      ---      ---       #1456
+      010013AEH   LINE      ---      ---       #1457
+      010013AEH   LINE      ---      ---       #1458
+      010013B0H   LINE      ---      ---       #1459
+      010013B0H   LINE      ---      ---       #1460
+      010013B0H   LINE      ---      ---       #1461
+      010013B7H   LINE      ---      ---       #1462
+      010013B7H   LINE      ---      ---       #1463
+      010013BAH   LINE      ---      ---       #1464
+      010013C1H   LINE      ---      ---       #1465
+      010013C3H   LINE      ---      ---       #1466
+      010013C3H   LINE      ---      ---       #1467
+      02001BE1H   SYMBOL    XDATA    VOID      deltaXL
+      02001BE2H   SYMBOL    XDATA    VOID      deltaYL
+      02001BE3H   SYMBOL    XDATA    VOID      deltaXH
+      02001BE4H   SYMBOL    XDATA    VOID      deltaYH
+      02001BE5H   SYMBOL    XDATA    VOID      send_flag
+      02001BE6H   SYMBOL    XDATA    VOID      poll_cnt
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010002F1H   BLOCK     CODE     ---       LVL=0
+      010002F1H   LINE      ---      ---       #1476
+      010002F1H   LINE      ---      ---       #1477
+      010002F1H   BLOCK     CODE     NEAR LAB  LVL=1
+      010002F1H   LINE      ---      ---       #1479
+      010002F4H   LINE      ---      ---       #1480
+      010002FBH   LINE      ---      ---       #1481
+      010002FEH   LINE      ---      ---       #1482
+      010002FEH   LINE      ---      ---       #1483
+      010002FEH   LINE      ---      ---       #1484
+      010002FEH   LINE      ---      ---       #1485
+      01000301H   LINE      ---      ---       #1486
+      01000304H   LINE      ---      ---       #1487
+      01000307H   LINE      ---      ---       #1488
+      0100030AH   LINE      ---      ---       #1492
+      01000315H   LINE      ---      ---       #1493
+      01000315H   LINE      ---      ---       #1494
+      01000315H   LINE      ---      ---       #1495
+      0100031AH   LINE      ---      ---       #1496
+      0100031DH   LINE      ---      ---       #1497
+      0100031FH   LINE      ---      ---       #1498
+      0100032CH   LINE      ---      ---       #1499
+      01000331H   LINE      ---      ---       #1500
+      01000338H   LINE      ---      ---       #1501
+      01000340H   LINE      ---      ---       #1502
+      01000346H   LINE      ---      ---       #1503
+      0100034DH   LINE      ---      ---       #1504
+      01000355H   LINE      ---      ---       #1505
+      0100035BH   LINE      ---      ---       #1506
+      01000362H   LINE      ---      ---       #1507
+      01000364H   LINE      ---      ---       #1508
+      01000367H   LINE      ---      ---       #1509
+      01000369H   LINE      ---      ---       #1510
+      01000369H   LINE      ---      ---       #1511
+      01000369H   LINE      ---      ---       #1512
+      01000375H   LINE      ---      ---       #1513
+      01000375H   LINE      ---      ---       #1514
+      01000378H   LINE      ---      ---       #1515
+      0100037AH   LINE      ---      ---       #1516
+      0100037AH   LINE      ---      ---       #1517
+      0100038CH   LINE      ---      ---       #1520
+      0100038CH   LINE      ---      ---       #1521
+      0100038EH   LINE      ---      ---       #1522
+      01000394H   LINE      ---      ---       #1523
+      01000397H   LINE      ---      ---       #1524
+      01000399H   LINE      ---      ---       #1525
+      01000399H   LINE      ---      ---       #1527
+      01000399H   LINE      ---      ---       #1528
+      0100039CH   LINE      ---      ---       #1529
+      0100039EH   LINE      ---      ---       #1530
+      0100039EH   LINE      ---      ---       #1531
+      0100039EH   LINE      ---      ---       #1532
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       UTILITIES
+      02001BDAH   PUBLIC    XDATA    BYTE      ?_compare_str?BYTE
+      01001F77H   PUBLIC    CODE     ---       _compare_str
+      01001646H   PUBLIC    CODE     ---       _Delay1ms
+      01001F4AH   PUBLIC    CODE     ---       _xmemclear_ff
+      01001EC0H   PUBLIC    CODE     ---       _xmemclear_0
+      02001BD2H   PUBLIC    XDATA    BYTE      ?_dmemcpy?BYTE
+      01001F06H   PUBLIC    CODE     ---       _dmemcpy
+      02001BE7H   PUBLIC    XDATA    BYTE      ?_xmemcpy?BYTE
+      01001845H   PUBLIC    CODE     ---       _xmemcpy
+      01001EFFH   PUBLIC    CODE     ---       YC_Ice_break
+
+      01001EFFH   BLOCK     CODE     ---       LVL=0
+      01001EFFH   LINE      ---      ---       #4
+      01001EFFH   LINE      ---      ---       #5
+      01001EFFH   LINE      ---      ---       #6
+      01001F05H   LINE      ---      ---       #8
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001845H   BLOCK     CODE     ---       LVL=0
+      01001845H   LINE      ---      ---       #10
+      01001856H   LINE      ---      ---       #11
+      01001856H   LINE      ---      ---       #12
+      01001860H   LINE      ---      ---       #13
+      01001887H   LINE      ---      ---       #15
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F06H   BLOCK     CODE     ---       LVL=0
+      01001F06H   LINE      ---      ---       #17
+      01001F11H   LINE      ---      ---       #18
+      01001F11H   LINE      ---      ---       #19
+      01001F1FH   LINE      ---      ---       #20
+      01001F49H   LINE      ---      ---       #22
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001EC0H   BLOCK     CODE     ---       LVL=0
+      01001EC0H   LINE      ---      ---       #24
+      01001ECBH   LINE      ---      ---       #25
+      01001ECBH   LINE      ---      ---       #26
+      01001ED5H   LINE      ---      ---       #27
+      01001EEBH   LINE      ---      ---       #29
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F4AH   BLOCK     CODE     ---       LVL=0
+      01001F4AH   LINE      ---      ---       #31
+      01001F55H   LINE      ---      ---       #32
+      01001F55H   LINE      ---      ---       #33
+      01001F5FH   LINE      ---      ---       #34
+      01001F76H   LINE      ---      ---       #36
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001646H   BLOCK     CODE     ---       LVL=0
+      01001646H   LINE      ---      ---       #46
+      01001646H   LINE      ---      ---       #47
+      01001646H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001646H   LINE      ---      ---       #49
+      0100164FH   LINE      ---      ---       #50
+      0100164FH   LINE      ---      ---       #51
+      0100165DH   LINE      ---      ---       #52
+      01001664H   LINE      ---      ---       #53
+      00000004H   SYMBOL    DATA     VOID      j
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001F77H   BLOCK     CODE     ---       LVL=0
+      01001F77H   LINE      ---      ---       #55
+      01001F82H   LINE      ---      ---       #56
+      01001F82H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001F82H   LINE      ---      ---       #58
+      01001F8EH   LINE      ---      ---       #59
+      01001F8EH   LINE      ---      ---       #60
+      01001FB8H   LINE      ---      ---       #61
+      01001FBBH   LINE      ---      ---       #62
+      01001FBEH   LINE      ---      ---       #63
+      01001FC0H   LINE      ---      ---       #64
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       GPIO
+      020000A0H   PUBLIC    XDATA    ---       YC_GPIOWakeupL
+      020000A4H   PUBLIC    XDATA    ---       YC_GPIOWakeupH
+      01001135H   PUBLIC    CODE     ---       _GPIO_FlipOutBit
+      0100076DH   PUBLIC    CODE     ---       _GPIO_SetWakeupByCurrentState
+      01001FCEH   PUBLIC    CODE     ---       _GPIO_ClearWakeup
+      00000021H.0 PUBLIC    BIT      BIT       ?_GPIO_SetWakeup?BIT
+      01000781H   PUBLIC    CODE     ---       _GPIO_SetWakeup
+      00000020H.7 PUBLIC    BIT      BIT       ?_GPIO_SetOutput?BIT
+      0100107FH   PUBLIC    CODE     ---       _GPIO_SetOutput
+      00000020H.6 PUBLIC    BIT      BIT       ?_GPIO_SetInput?BIT
+      010003A1H   PUBLIC    CODE     ---       _GPIO_SetInput
+      00000020H.5 PUBLIC    BIT      BIT       ?_GPIO_Setoe?BIT
+      010003B8H   PUBLIC    CODE     ---       _GPIO_Setoe
+      00000020H.4 PUBLIC    BIT      BIT       ?_GPIO_SetPd?BIT
+      01001FC1H   PUBLIC    CODE     ---       _GPIO_SetPd
+      00000020H.3 PUBLIC    BIT      BIT       ?_GPIO_SetPu?BIT
+      01001092H   PUBLIC    CODE     ---       _GPIO_SetPu
+      00000020H.2 PUBLIC    BIT      BIT       ?_GPIO_Setout?BIT
+      0100109FH   PUBLIC    CODE     ---       _GPIO_Setout
+      01000D22H   PUBLIC    CODE     ---       _GPIO_GetInputStatus
+
+      010003C2H   BLOCK     CODE     ---       LVL=0
+      010003C2H   LINE      ---      ---       #8
+      010003CDH   LINE      ---      ---       #9
+      010003CDH   BLOCK     CODE     NEAR LAB  LVL=1
+      010003CDH   LINE      ---      ---       #10
+      010003CFH   LINE      ---      ---       #11
+      010003D0H   LINE      ---      ---       #13
+      010003D4H   LINE      ---      ---       #14
+      010003DBH   LINE      ---      ---       #16
+      010003DEH   LINE      ---      ---       #17
+      010003FEH   LINE      ---      ---       #18
+      010003FEH   LINE      ---      ---       #19
+      010003FEH   LINE      ---      ---       #20
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000005H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000D28H   BLOCK     CODE     ---       LVL=0
+      01000D28H   LINE      ---      ---       #24
+      01000D2AH   LINE      ---      ---       #25
+      01000D2AH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000D2AH   LINE      ---      ---       #26
+      01000D2FH   LINE      ---      ---       #27
+      01000D30H   LINE      ---      ---       #29
+      01000D34H   LINE      ---      ---       #30
+      01000D3BH   LINE      ---      ---       #31
+      01000D66H   LINE      ---      ---       #33
+      02001C2BH   SYMBOL    XDATA    VOID      queue
+      00000006H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000D22H   BLOCK     CODE     ---       LVL=0
+      01000D22H   LINE      ---      ---       #35
+      01000D22H   LINE      ---      ---       #36
+      01000D22H   LINE      ---      ---       #37
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100109FH   BLOCK     CODE     ---       LVL=0
+      0100109FH   LINE      ---      ---       #40
+      0100109FH   LINE      ---      ---       #41
+      0100109FH   LINE      ---      ---       #42
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001092H   BLOCK     CODE     ---       LVL=0
+      01001092H   LINE      ---      ---       #45
+      01001092H   LINE      ---      ---       #46
+      01001092H   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001FC1H   BLOCK     CODE     ---       LVL=0
+      01001FC1H   LINE      ---      ---       #50
+      01001FC1H   LINE      ---      ---       #51
+      01001FC1H   LINE      ---      ---       #52
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010003B8H   BLOCK     CODE     ---       LVL=0
+      010003B8H   LINE      ---      ---       #55
+      010003B8H   LINE      ---      ---       #56
+      010003B8H   LINE      ---      ---       #57
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010003A1H   BLOCK     CODE     ---       LVL=0
+      010003A1H   LINE      ---      ---       #60
+      010003A3H   LINE      ---      ---       #61
+      010003A3H   LINE      ---      ---       #62
+      010003AAH   LINE      ---      ---       #63
+      010003B4H   LINE      ---      ---       #64
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100107FH   BLOCK     CODE     ---       LVL=0
+      0100107FH   LINE      ---      ---       #67
+      01001081H   LINE      ---      ---       #68
+      01001081H   LINE      ---      ---       #69
+      01001086H   LINE      ---      ---       #70
+      0100108EH   LINE      ---      ---       #71
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000781H   BLOCK     CODE     ---       LVL=0
+      01000781H   LINE      ---      ---       #74
+      01000781H   LINE      ---      ---       #75
+      01000781H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000781H   LINE      ---      ---       #77
+      01000785H   LINE      ---      ---       #78
+      0100078CH   LINE      ---      ---       #79
+      0100078FH   LINE      ---      ---       #80
+      010007B0H   LINE      ---      ---       #81
+      010007D1H   LINE      ---      ---       #82
+      010007D2H   LINE      ---      ---       #83
+      010007D2H   LINE      ---      ---       #84
+      010007F4H   LINE      ---      ---       #85
+      01000806H   LINE      ---      ---       #86
+      01000806H   LINE      ---      ---       #87
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000007H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001FCEH   BLOCK     CODE     ---       LVL=0
+      01001FCEH   LINE      ---      ---       #89
+      01001FCEH   LINE      ---      ---       #90
+      01001FCEH   BLOCK     CODE     NEAR LAB  LVL=1
+      01001FCEH   LINE      ---      ---       #92
+      01001FD2H   LINE      ---      ---       #93
+      01001FD9H   LINE      ---      ---       #94
+      01001FFBH   LINE      ---      ---       #95
+      01002008H   LINE      ---      ---       #96
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000007H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100076DH   BLOCK     CODE     ---       LVL=0
+      0100076DH   LINE      ---      ---       #98
+      01000772H   LINE      ---      ---       #99
+      01000772H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000772H   LINE      ---      ---       #100
+      01000777H   LINE      ---      ---       #101
+      00000021H.1 SYMBOL    BIT      VOID      st
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001135H   BLOCK     CODE     ---       LVL=0
+      01001135H   LINE      ---      ---       #104
+      0100113AH   LINE      ---      ---       #105
+      0100113AH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100113AH   LINE      ---      ---       #106
+      01001145H   LINE      ---      ---       #107
+      00000021H.2 SYMBOL    BIT      VOID      st
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       SPI
+      02000218H   PUBLIC    XDATA    ---       spi_tx_buff
+      0200021DH   PUBLIC    XDATA    ---       spi_rx_buff
+      01000A64H   PUBLIC    CODE     ---       _SPI_WriteSensor
+      01000820H   PUBLIC    CODE     ---       _SPI_ReadSensor
+      010016FAH   PUBLIC    CODE     ---       SPI_Initialize
+
+      010016FAH   BLOCK     CODE     ---       LVL=0
+      010016FAH   LINE      ---      ---       #17
+      010016FAH   LINE      ---      ---       #18
+      010016FAH   LINE      ---      ---       #19
+      01001700H   LINE      ---      ---       #20
+      01001704H   LINE      ---      ---       #21
+      0100170EH   LINE      ---      ---       #22
+      01001716H   LINE      ---      ---       #23
+      0100171DH   LINE      ---      ---       #24
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000820H   BLOCK     CODE     ---       LVL=0
+      01000820H   LINE      ---      ---       #26
+      01000820H   LINE      ---      ---       #27
+      01000820H   LINE      ---      ---       #28
+      01000825H   LINE      ---      ---       #29
+      0100082EH   LINE      ---      ---       #30
+      01000836H   LINE      ---      ---       #31
+      0100083CH   LINE      ---      ---       #32
+      0100083CH   LINE      ---      ---       #34
+      0100083CH   LINE      ---      ---       #35
+      01000843H   LINE      ---      ---       #36
+      01000848H   LINE      ---      ---       #37
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000A64H   BLOCK     CODE     ---       LVL=0
+      01000A64H   LINE      ---      ---       #39
+      01000A66H   LINE      ---      ---       #40
+      01000A66H   LINE      ---      ---       #41
+      01000A6DH   LINE      ---      ---       #42
+      01000A70H   LINE      ---      ---       #44
+      01000A79H   LINE      ---      ---       #45
+      01000A7FH   LINE      ---      ---       #47
+      01000A85H   LINE      ---      ---       #48
+      01000A85H   LINE      ---      ---       #50
+      01000A85H   LINE      ---      ---       #51
+      01000A8CH   LINE      ---      ---       #52
+      01000A8EH   LINE      ---      ---       #53
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       IIC
+      010019A4H   PUBLIC    CODE     ---       _IIC_WriteBlock
+      01001A54H   PUBLIC    CODE     ---       _IIC_write
+      01001888H   PUBLIC    CODE     ---       _IIC_Read
+
+      01001AC1H   BLOCK     CODE     ---       LVL=0
+      01001AC1H   LINE      ---      ---       #10
+      01001AC1H   LINE      ---      ---       #11
+      01001AC1H   LINE      ---      ---       #12
+      01001AC8H   LINE      ---      ---       #13
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001888H   BLOCK     CODE     ---       LVL=0
+      01001888H   LINE      ---      ---       #15
+      01001899H   LINE      ---      ---       #16
+      01001899H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001899H   LINE      ---      ---       #17
+      01001899H   LINE      ---      ---       #18
+      010018A2H   LINE      ---      ---       #19
+      010018A8H   LINE      ---      ---       #20
+      010018AEH   LINE      ---      ---       #21
+      010018B4H   LINE      ---      ---       #22
+      010018CDH   LINE      ---      ---       #23
+      010018E2H   LINE      ---      ---       #24
+      010018FBH   LINE      ---      ---       #25
+      01001901H   LINE      ---      ---       #26
+      01001909H   LINE      ---      ---       #27
+      01001909H   LINE      ---      ---       #28
+      01001910H   LINE      ---      ---       #29
+      01001910H   LINE      ---      ---       #30
+      01001917H   LINE      ---      ---       #31
+      01001919H   LINE      ---      ---       #32
+      00000006H   SYMBOL    DATA     VOID      mem_src
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001A54H   BLOCK     CODE     ---       LVL=0
+      01001A54H   LINE      ---      ---       #35
+      01001A62H   LINE      ---      ---       #36
+      01001A62H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001A62H   LINE      ---      ---       #38
+      01001A6CH   LINE      ---      ---       #39
+      01001A72H   LINE      ---      ---       #40
+      01001A81H   LINE      ---      ---       #41
+      01001A9EH   LINE      ---      ---       #42
+      01001AAEH   LINE      ---      ---       #43
+      01001AB5H   LINE      ---      ---       #44
+      01001ABAH   LINE      ---      ---       #46
+      02001B98H   SYMBOL    XDATA    VOID      ptemp_addr
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010019A4H   BLOCK     CODE     ---       LVL=0
+      010019A4H   LINE      ---      ---       #50
+      010019BBH   LINE      ---      ---       #51
+      010019BBH   BLOCK     CODE     NEAR LAB  LVL=1
+      010019BBH   LINE      ---      ---       #53
+      010019C7H   LINE      ---      ---       #54
+      010019C7H   LINE      ---      ---       #55
+      010019D7H   LINE      ---      ---       #56
+      010019E5H   LINE      ---      ---       #57
+      01001A0BH   LINE      ---      ---       #58
+      01001A18H   LINE      ---      ---       #59
+      01001A2DH   LINE      ---      ---       #60
+      01001A34H   LINE      ---      ---       #61
+      01001A45H   LINE      ---      ---       #62
+      01001A51H   LINE      ---      ---       #63
+      01001A53H   LINE      ---      ---       #65
+      00000004H   SYMBOL    DATA     VOID      cris
+      02001BD0H   SYMBOL    XDATA    VOID      curr_len
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       IPC
+      02004898H   PUBLIC    XDATA    WORD      bttimer
+      0200489CH   PUBLIC    XDATA    BYTE      btstimer
+      0200489AH   PUBLIC    XDATA    WORD      c51timer
+      02004719H   PUBLIC    XDATA    ---       ipcPin
+      0200489DH   PUBLIC    XDATA    BYTE      c51stimer
+      02001A96H   PUBLIC    XDATA    ---       ipcSendBuff
+      02000B2BH   PUBLIC    XDATA    BYTE      lpm_flag
+      02001A00H   PUBLIC    XDATA    ---       ipcReadBuff
+      02004718H   PUBLIC    XDATA    BYTE      ipcPinlen
+      02000B2AH   PUBLIC    XDATA    BYTE      current_task
+      010013CFH   PUBLIC    CODE     ---       IPC_DealSingleStep
+      01001DCBH   PUBLIC    CODE     ---       IPC_IsTxBuffEmpty
+      010013C3H   PUBLIC    CODE     ---       IPC_AbandonLpm
+      0100163AH   PUBLIC    CODE     ---       IPC_WaitLpm
+      01001EF2H   PUBLIC    CODE     ---       _IPC_Initialize
+      01001802H   PUBLIC    CODE     ---       _IPC_TxBleData
+      01001BDAH   PUBLIC    CODE     ---       _IPC_TxSppData
+      01002009H   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
+      01001B97H   PUBLIC    CODE     ---       _IPC_Tx24GData
+      01001C1DH   PUBLIC    CODE     ---       _IPC_TxBREDRHidData
+      01000E78H   PUBLIC    CODE     ---       _IPC_TxControlCmd
+
+      010015DFH   BLOCK     CODE     ---       LVL=0
+      010015DFH   LINE      ---      ---       #44
+      010015EDH   LINE      ---      ---       #45
+      010015EDH   BLOCK     CODE     NEAR LAB  LVL=1
+      010015EDH   LINE      ---      ---       #46
+      010015F5H   LINE      ---      ---       #47
+      010015FFH   LINE      ---      ---       #48
+      01001621H   LINE      ---      ---       #49
+      0100162BH   LINE      ---      ---       #50
+      0100162FH   LINE      ---      ---       #51
+      0100162FH   LINE      ---      ---       #52
+      01001631H   LINE      ---      ---       #53
+      01001639H   LINE      ---      ---       #54
+      00000006H   SYMBOL    DATA     VOID      src
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000EA0H   BLOCK     CODE     ---       LVL=0
+      01000EA0H   LINE      ---      ---       #56
+      01000EAEH   LINE      ---      ---       #57
+      01000EAEH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000EAEH   LINE      ---      ---       #58
+      01000EBDH   LINE      ---      ---       #59
+      01000EC7H   LINE      ---      ---       #60
+      01000EECH   LINE      ---      ---       #61
+      01000EFAH   LINE      ---      ---       #62
+      01000F04H   LINE      ---      ---       #63
+      01000F04H   LINE      ---      ---       #64
+      01000F06H   LINE      ---      ---       #65
+      01000F15H   LINE      ---      ---       #66
+      02001BF1H   SYMBOL    XDATA    VOID      dest
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000E78H   BLOCK     CODE     ---       LVL=0
+      01000E78H   LINE      ---      ---       #68
+      01000E7DH   LINE      ---      ---       #69
+      01000E7DH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000E7DH   LINE      ---      ---       #70
+      01000E90H   LINE      ---      ---       #71
+      01000E98H   LINE      ---      ---       #72
+      02001C13H   SYMBOL    XDATA    VOID      cmdBuff
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001C1DH   BLOCK     CODE     ---       LVL=0
+      01001C1DH   LINE      ---      ---       #75
+      01001C22H   LINE      ---      ---       #76
+      01001C22H   LINE      ---      ---       #77
+      01001C28H   LINE      ---      ---       #78
+      01001C2EH   LINE      ---      ---       #80
+      01001C42H   LINE      ---      ---       #81
+      01001C4BH   LINE      ---      ---       #82
+      01001C56H   LINE      ---      ---       #83
+      01001C66H   LINE      ---      ---       #84
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001B97H   BLOCK     CODE     ---       LVL=0
+      01001B97H   LINE      ---      ---       #88
+      01001B9CH   LINE      ---      ---       #89
+      01001B9CH   LINE      ---      ---       #90
+      01001BA2H   LINE      ---      ---       #91
+      01001BB6H   LINE      ---      ---       #92
+      01001BBFH   LINE      ---      ---       #93
+      01001BCAH   LINE      ---      ---       #94
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002009H   BLOCK     CODE     ---       LVL=0
+      01002009H   LINE      ---      ---       #98
+      01002009H   LINE      ---      ---       #99
+      01002009H   LINE      ---      ---       #100
+      0100200EH   LINE      ---      ---       #101
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001BDAH   BLOCK     CODE     ---       LVL=0
+      01001BDAH   LINE      ---      ---       #103
+      01001BDFH   LINE      ---      ---       #104
+      01001BDFH   LINE      ---      ---       #105
+      01001BE5H   LINE      ---      ---       #106
+      01001BF9H   LINE      ---      ---       #107
+      01001C02H   LINE      ---      ---       #108
+      01001C0DH   LINE      ---      ---       #109
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001802H   BLOCK     CODE     ---       LVL=0
+      01001802H   LINE      ---      ---       #112
+      01001807H   LINE      ---      ---       #113
+      01001807H   LINE      ---      ---       #114
+      0100180DH   LINE      ---      ---       #115
+      01001821H   LINE      ---      ---       #116
+      0100182AH   LINE      ---      ---       #117
+      01001835H   LINE      ---      ---       #118
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001EF2H   BLOCK     CODE     ---       LVL=0
+      01001EF2H   LINE      ---      ---       #121
+      01001EF2H   LINE      ---      ---       #122
+      01001EF2H   LINE      ---      ---       #123
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100163AH   BLOCK     CODE     ---       LVL=0
+      0100163AH   LINE      ---      ---       #126
+      0100163AH   LINE      ---      ---       #127
+      0100163AH   LINE      ---      ---       #128
+      0100163FH   LINE      ---      ---       #129
+      01001643H   LINE      ---      ---       #130
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010013C3H   BLOCK     CODE     ---       LVL=0
+      010013C3H   LINE      ---      ---       #133
+      010013C3H   LINE      ---      ---       #134
+      010013C3H   LINE      ---      ---       #135
+      010013C9H   LINE      ---      ---       #136
+      010013CEH   LINE      ---      ---       #137
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001DCBH   BLOCK     CODE     ---       LVL=0
+      01001DCBH   LINE      ---      ---       #139
+      01001DCBH   LINE      ---      ---       #140
+      01001DCBH   LINE      ---      ---       #141
+      01001DDFH   LINE      ---      ---       #142
+      01001DE1H   LINE      ---      ---       #143
+      01001DE2H   LINE      ---      ---       #144
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010013CFH   BLOCK     CODE     ---       LVL=0
+      010013CFH   LINE      ---      ---       #147
+      010013CFH   LINE      ---      ---       #148
+      010013CFH   BLOCK     CODE     NEAR LAB  LVL=1
+      010013CFH   LINE      ---      ---       #149
+      010013E1H   LINE      ---      ---       #150
+      010013F7H   LINE      ---      ---       #151
+      010013F7H   LINE      ---      ---       #152
+      01001401H   LINE      ---      ---       #153
+      01001412H   LINE      ---      ---       #154
+      0100141CH   LINE      ---      ---       #155
+      0100143BH   LINE      ---      ---       #156
+      0100143DH   LINE      ---      ---       #157
+      0100144FH   LINE      ---      ---       #158
+      01001458H   LINE      ---      ---       #159
+      01001470H   LINE      ---      ---       #160
+      010014A8H   LINE      ---      ---       #161
+      010014AAH   LINE      ---      ---       #162
+      010014BCH   LINE      ---      ---       #163
+      010014C5H   LINE      ---      ---       #164
+      010014DDH   LINE      ---      ---       #165
+      01001515H   LINE      ---      ---       #166
+      01001517H   LINE      ---      ---       #167
+      01001529H   LINE      ---      ---       #168
+      01001532H   LINE      ---      ---       #169
+      0100154AH   LINE      ---      ---       #170
+      01001582H   LINE      ---      ---       #171
+      01001584H   LINE      ---      ---       #172
+      01001584H   LINE      ---      ---       #173
+      01001586H   LINE      ---      ---       #174
+      01001586H   LINE      ---      ---       #175
+      01001586H   LINE      ---      ---       #176
+      0100159AH   LINE      ---      ---       #177
+      010015A8H   LINE      ---      ---       #179
+      010015ABH   LINE      ---      ---       #180
+      010015B9H   LINE      ---      ---       #181
+      010015BBH   LINE      ---      ---       #182
+      010015C5H   LINE      ---      ---       #183
+      010015D3H   LINE      ---      ---       #185
+      010015D6H   LINE      ---      ---       #186
+      010015DCH   LINE      ---      ---       #187
+      010015DEH   LINE      ---      ---       #189
+      01001586H   SYMBOL    ---      ---       IPC_TIMERingleStep
+      02001C22H   SYMBOL    XDATA    VOID      pbuff
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       ADC
+      01001AC9H   PUBLIC    CODE     ---       ADC_Get0vBase
+      01001B85H   PUBLIC    CODE     ---       ADC_Get3vBase
+      01001B8EH   PUBLIC    CODE     ---       ADC_GetCurrentValue
+
+      01001B8EH   BLOCK     CODE     ---       LVL=0
+      01001B8EH   LINE      ---      ---       #4
+      01001B8EH   LINE      ---      ---       #5
+      01001B8EH   LINE      ---      ---       #6
+      01001B96H   LINE      ---      ---       #7
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001B85H   BLOCK     CODE     ---       LVL=0
+      01001B85H   LINE      ---      ---       #9
+      01001B85H   LINE      ---      ---       #10
+      01001B85H   LINE      ---      ---       #11
+      01001B8DH   LINE      ---      ---       #12
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001AC9H   BLOCK     CODE     ---       LVL=0
+      01001AC9H   LINE      ---      ---       #14
+      01001AC9H   LINE      ---      ---       #15
+      01001AC9H   LINE      ---      ---       #16
+      01001AD1H   LINE      ---      ---       #17
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       GLOBAL_VARIABLE
+      02004954H   PUBLIC    XDATA    BYTE      m_new24gAbortPac
+      02004E81H   PUBLIC    XDATA    BYTE      m_bleDataWheel
+      02004E80H   PUBLIC    XDATA    BYTE      m_shortDataWheel
+      020049C1H   PUBLIC    XDATA    BYTE      m_btWakeupFromLongMult
+      020042D1H   PUBLIC    XDATA    WORD      m_adcCurrentValue
+      02000040H   PUBLIC    XDATA    ---       m_remoteAddr
+      020049C0H   PUBLIC    XDATA    BYTE      m_new24gOtaEnable
+      02004273H   PUBLIC    XDATA    ---       m_reconnAddr
+      0200470BH   PUBLIC    XDATA    WORD      m_uiStateMap
+      02004EA7H   PUBLIC    XDATA    BYTE      m_leStartAdv
+      02004E78H   PUBLIC    XDATA    BYTE      m_enable24gShortLpm
+      0200494FH   PUBLIC    XDATA    BYTE      m_new24gIntMax
+      0200494EH   PUBLIC    XDATA    BYTE      m_new24gIntMin
+      020042B8H   PUBLIC    XDATA    BYTE      m_powerOnFlag
+      02004906H   PUBLIC    XDATA    ---       m_24gRxPayload
+      02004E84H   PUBLIC    XDATA    BYTE      m_51ReadSensor
+      02004E83H   PUBLIC    XDATA    BYTE      m_BtReadIpcCount
+      02004261H   PUBLIC    XDATA    ---       m_linkKey
+      02004E82H   PUBLIC    XDATA    BYTE      m_bleDataWheelLpmTimer
+      020049C2H   PUBLIC    XDATA    BYTE      m_btMotionEvent
+      02004E43H   PUBLIC    XDATA    WORD      m_adc3vValue
+      02004E7FH   PUBLIC    XDATA    BYTE      m_IpcIsReady
+      02004131H   PUBLIC    XDATA    BYTE      m_lpmMode
+      02004E41H   PUBLIC    XDATA    WORD      m_adc0vBase
+      02001C32H   PUBLIC    XDATA    BYTE      m_FastConnSendEmptyCount
+      02004950H   PUBLIC    XDATA    ---       m_24gAddr
+      02004EA6H   PUBLIC    XDATA    BYTE      m_mouseFastConnFlag
+      02004EBBH   PUBLIC    XDATA    ---       g_variable
+      020049B7H   PUBLIC    XDATA    BYTE      m_new24gKWEvent
+      02000372H   PUBLIC    XDATA    ---       m_remoteLeAddr
+      02004E21H   PUBLIC    XDATA    ---       m_hidBuff
+      02004595H   PUBLIC    XDATA    BYTE      m_bleSendDataFlag
+      0200453EH   PUBLIC    XDATA    ---       m_reconnLeAddr
+      02004E7DH   PUBLIC    XDATA    BYTE      m_sendData24gShortLpm
+
+      ---         MODULE    ---      ---       SENSOR
+      01002124H   PUBLIC    CODE     ---       Drawing_optima_init
+      01002022H   PUBLIC    CODE     ---       Drawing_optima
+      0100200FH   PUBLIC    CODE     ---       _abs
+      01000CB9H   PUBLIC    CODE     ---       sensorPowerOn
+      01000F20H   PUBLIC    CODE     ---       sensorPowerDown
+      01000B46H   PUBLIC    CODE     ---       Sensor_spi_disable
+      01000849H   PUBLIC    CODE     ---       SPI_ResetSensor
+      01000CCFH   PUBLIC    CODE     ---       SPI_TwReset
+
+      01000CCFH   BLOCK     CODE     ---       LVL=0
+      01000CCFH   LINE      ---      ---       #67
+      01000CCFH   LINE      ---      ---       #68
+      01000CCFH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000CCFH   LINE      ---      ---       #69
+      01000CD4H   LINE      ---      ---       #70
+      01000CD9H   LINE      ---      ---       #71
+      01000CDEH   LINE      ---      ---       #72
+      01000CDEH   LINE      ---      ---       #73
+      01000CDEH   LINE      ---      ---       #74
+      01000CE4H   LINE      ---      ---       #75
+      01000CEAH   LINE      ---      ---       #76
+      01000CEAH   LINE      ---      ---       #77
+      01000CEDH   LINE      ---      ---       #78
+      01000CEDH   LINE      ---      ---       #79
+      01000CF6H   LINE      ---      ---       #80
+      01000CFFH   LINE      ---      ---       #81
+      01000CFFH   LINE      ---      ---       #82
+      01000D04H   LINE      ---      ---       #83
+      01000D0BH   LINE      ---      ---       #84
+      01000D12H   LINE      ---      ---       #85
+      01000D19H   LINE      ---      ---       #86
+      01000D1FH   LINE      ---      ---       #87
+      01000D21H   LINE      ---      ---       #88
+      02001C33H   SYMBOL    XDATA    VOID      sensorId
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000849H   BLOCK     CODE     ---       LVL=0
+      01000849H   LINE      ---      ---       #90
+      01000849H   LINE      ---      ---       #91
+      01000849H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000849H   LINE      ---      ---       #92
+      0100084EH   LINE      ---      ---       #93
+      01000850H   LINE      ---      ---       #94
+      01000850H   LINE      ---      ---       #95
+      01000850H   LINE      ---      ---       #96
+      01000857H   LINE      ---      ---       #97
+      01000857H   LINE      ---      ---       #98
+      01000863H   LINE      ---      ---       #99
+      01000867H   LINE      ---      ---       #100
+      0100086DH   LINE      ---      ---       #101
+      0100086FH   LINE      ---      ---       #102
+      0100086FH   LINE      ---      ---       #103
+      01000876H   LINE      ---      ---       #104
+      01000876H   LINE      ---      ---       #105
+      0100087CH   LINE      ---      ---       #106
+      01000888H   LINE      ---      ---       #107
+      0100088CH   LINE      ---      ---       #108
+      0100088EH   LINE      ---      ---       #109
+      0100088EH   LINE      ---      ---       #110
+      01000899H   LINE      ---      ---       #111
+      01000899H   LINE      ---      ---       #112
+      010008A0H   LINE      ---      ---       #113
+      010008A0H   LINE      ---      ---       #114
+      010008A6H   LINE      ---      ---       #115
+      010008A8H   LINE      ---      ---       #116
+      010008A8H   LINE      ---      ---       #118
+      010008B3H   LINE      ---      ---       #119
+      010008B3H   LINE      ---      ---       #120
+      010008BBH   LINE      ---      ---       #121
+      010008C3H   LINE      ---      ---       #123
+      010008C9H   LINE      ---      ---       #124
+      010008D5H   LINE      ---      ---       #125
+      010008D9H   LINE      ---      ---       #126
+      010008DBH   LINE      ---      ---       #127
+      010008DBH   LINE      ---      ---       #131
+      010008E6H   LINE      ---      ---       #132
+      010008E6H   LINE      ---      ---       #133
+      010008ECH   LINE      ---      ---       #134
+      010008F8H   LINE      ---      ---       #135
+      010008FCH   LINE      ---      ---       #136
+      010008FEH   LINE      ---      ---       #137
+      010008FEH   LINE      ---      ---       #141
+      01000905H   LINE      ---      ---       #142
+      01000905H   LINE      ---      ---       #143
+      01000911H   LINE      ---      ---       #144
+      01000915H   LINE      ---      ---       #145
+      0100091BH   LINE      ---      ---       #146
+      01000924H   LINE      ---      ---       #147
+      01000924H   LINE      ---      ---       #148
+      01000924H   LINE      ---      ---       #150
+      01000924H   LINE      ---      ---       #151
+      01000926H   LINE      ---      ---       #152
+      01000928H   LINE      ---      ---       #155
+      01000932H   LINE      ---      ---       #156
+      01000932H   LINE      ---      ---       #157
+      01000938H   LINE      ---      ---       #158
+      0100093EH   LINE      ---      ---       #159
+      01000944H   LINE      ---      ---       #160
+      0100094AH   LINE      ---      ---       #161
+      01000950H   LINE      ---      ---       #162
+      01000956H   LINE      ---      ---       #163
+      0100095CH   LINE      ---      ---       #164
+      01000962H   LINE      ---      ---       #165
+      01000968H   LINE      ---      ---       #166
+      0100096EH   LINE      ---      ---       #167
+      01000974H   LINE      ---      ---       #168
+      0100097AH   LINE      ---      ---       #169
+      01000980H   LINE      ---      ---       #170
+      01000986H   LINE      ---      ---       #171
+      0100098CH   LINE      ---      ---       #172
+      01000992H   LINE      ---      ---       #173
+      01000998H   LINE      ---      ---       #174
+      0100099EH   LINE      ---      ---       #175
+      010009A4H   LINE      ---      ---       #176
+      010009AAH   LINE      ---      ---       #177
+      010009B0H   LINE      ---      ---       #178
+      010009B6H   LINE      ---      ---       #179
+      010009BCH   LINE      ---      ---       #180
+      010009C2H   LINE      ---      ---       #181
+      010009C8H   LINE      ---      ---       #182
+      010009CEH   LINE      ---      ---       #183
+      010009D4H   LINE      ---      ---       #184
+      010009DAH   LINE      ---      ---       #185
+      010009E0H   LINE      ---      ---       #186
+      010009E6H   LINE      ---      ---       #187
+      010009ECH   LINE      ---      ---       #188
+      010009F2H   LINE      ---      ---       #189
+      010009F8H   LINE      ---      ---       #190
+      010009F8H   LINE      ---      ---       #194
+      010009FFH   LINE      ---      ---       #195
+      010009FFH   LINE      ---      ---       #196
+      01000A05H   LINE      ---      ---       #197
+      01000A0BH   LINE      ---      ---       #198
+      01000A11H   LINE      ---      ---       #199
+      01000A17H   LINE      ---      ---       #200
+      01000A17H   LINE      ---      ---       #204
+      01000A1FH   LINE      ---      ---       #205
+      01000A1FH   LINE      ---      ---       #206
+      01000A25H   LINE      ---      ---       #207
+      01000A2BH   LINE      ---      ---       #208
+      01000A34H   LINE      ---      ---       #209
+      01000A3CH   LINE      ---      ---       #210
+      01000A45H   LINE      ---      ---       #211
+      01000A4DH   LINE      ---      ---       #212
+      01000A56H   LINE      ---      ---       #213
+      01000A5EH   LINE      ---      ---       #214
+      01000A5EH   LINE      ---      ---       #217
+      01000A63H   LINE      ---      ---       #218
+      02001C27H   SYMBOL    XDATA    VOID      sensorConfig
+      02001C28H   SYMBOL    XDATA    VOID      Sensor_type
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000B46H   BLOCK     CODE     ---       LVL=0
+      01000B46H   LINE      ---      ---       #220
+      01000B46H   LINE      ---      ---       #221
+      01000B46H   LINE      ---      ---       #222
+      01000B4BH   LINE      ---      ---       #223
+      01000B52H   LINE      ---      ---       #224
+      01000B59H   LINE      ---      ---       #225
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F20H   BLOCK     CODE     ---       LVL=0
+      01000F20H   LINE      ---      ---       #227
+      01000F20H   LINE      ---      ---       #228
+      01000F20H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000F20H   LINE      ---      ---       #229
+      01000F22H   LINE      ---      ---       #230
+      01000F24H   LINE      ---      ---       #231
+      01000F2CH   LINE      ---      ---       #232
+      01000F30H   LINE      ---      ---       #233
+      01000F35H   LINE      ---      ---       #234
+      01000F3CH   LINE      ---      ---       #235
+      00000007H   SYMBOL    DATA     VOID      config
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000CB9H   BLOCK     CODE     ---       LVL=0
+      01000CB9H   LINE      ---      ---       #238
+      01000CB9H   LINE      ---      ---       #239
+      01000CB9H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000CB9H   LINE      ---      ---       #240
+      01000CBBH   LINE      ---      ---       #241
+      01000CBDH   LINE      ---      ---       #242
+      01000CC5H   LINE      ---      ---       #243
+      01000CC9H   LINE      ---      ---       #244
+      01000CCDH   LINE      ---      ---       #245
+      00000007H   SYMBOL    DATA     VOID      config
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100200FH   BLOCK     CODE     ---       LVL=0
+      0100200FH   LINE      ---      ---       #259
+      0100200FH   LINE      ---      ---       #260
+      0100200FH   LINE      ---      ---       #261
+      0100201AH   LINE      ---      ---       #262
+      01002021H   LINE      ---      ---       #263
+      01002021H   LINE      ---      ---       #264
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002022H   BLOCK     CODE     ---       LVL=0
+      01002022H   LINE      ---      ---       #267
+      01002022H   LINE      ---      ---       #268
+      01002022H   LINE      ---      ---       #269
+      0100205AH   LINE      ---      ---       #270
+      01002060H   LINE      ---      ---       #271
+      01002084H   LINE      ---      ---       #272
+      01002087H   LINE      ---      ---       #273
+      01002091H   LINE      ---      ---       #274
+      010020B9H   LINE      ---      ---       #275
+      010020C8H   LINE      ---      ---       #276
+      010020D0H   LINE      ---      ---       #277
+      010020F8H   LINE      ---      ---       #278
+      01002107H   LINE      ---      ---       #279
+      0100210FH   LINE      ---      ---       #280
+      01002110H   LINE      ---      ---       #281
+      01002117H   LINE      ---      ---       #282
+      0100211BH   LINE      ---      ---       #283
+      0100211FH   LINE      ---      ---       #284
+      01002123H   LINE      ---      ---       #285
+      01002123H   LINE      ---      ---       #286
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002124H   BLOCK     CODE     ---       LVL=0
+      01002124H   LINE      ---      ---       #288
+      01002124H   LINE      ---      ---       #289
+      01002124H   LINE      ---      ---       #290
+      0100212BH   LINE      ---      ---       #291
+      0100212FH   LINE      ---      ---       #292
+      01002133H   LINE      ---      ---       #293
+      01002137H   LINE      ---      ---       #294
+      0100213BH   LINE      ---      ---       #295
+      01002141H   LINE      ---      ---       #296
+      01002145H   LINE      ---      ---       #297
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       ?C_STARTUP
+      01000000H   PUBLIC    CODE     ---       ?C_STARTUP
+
+      ---         MODULE    ---      ---       ?C?COPY
+      010000D3H   PUBLIC    CODE     ---       ?C?COPY
+
+      ---         MODULE    ---      ---       ?C?CLDPTR
+      010000F9H   PUBLIC    CODE     ---       ?C?CLDPTR
+
+      ---         MODULE    ---      ---       ?C?CLDOPTR
+      01000112H   PUBLIC    CODE     ---       ?C?CLDOPTR
+
+      ---         MODULE    ---      ---       ?C?CSTPTR
+      0100013FH   PUBLIC    CODE     ---       ?C?CSTPTR
+
+      ---         MODULE    ---      ---       ?C?IMUL
+      01000151H   PUBLIC    CODE     ---       ?C?IMUL
+
+      ---         MODULE    ---      ---       ?C?UIDIV
+      01000163H   PUBLIC    CODE     ---       ?C?UIDIV
+
+      ---         MODULE    ---      ---       ?C?SIDIV
+      010001B8H   PUBLIC    CODE     ---       ?C?SIDIV
+
+      ---         MODULE    ---      ---       ?C?IILDX
+      010001EEH   PUBLIC    CODE     ---       ?C?IILDX
+
+      ---         MODULE    ---      ---       ?C?ILDIX
+      01000204H   PUBLIC    CODE     ---       ?C?ILDIX
+
+      ---         MODULE    ---      ---       ?C?CCASE
+      0100021AH   PUBLIC    CODE     ---       ?C?CCASE
+
+      ---         MODULE    ---      ---       ?C?ICALL
+      01000240H   PUBLIC    CODE     ---       ?C?ICALL
+      01000244H   PUBLIC    CODE     ---       ?C?ICALL2
+
+      ---         MODULE    ---      ---       ?C_INIT
+      0100028DH   PUBLIC    CODE     ---       ?C_START
+
+Program Size: data=10.3 xdata=858 const=9 code=8509
+LX51 RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.SBR
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.SBR
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.SBR	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.SBR	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/FW.SBR
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/eeprom.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/eeprom.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/eeprom.dat	(working copy)
@@ -0,0 +1,16384 @@
+00
+02
+aa
+55
+4a
+19
+c5
+12
+80
+11
+c0
+00
+00
+26
+c0
+01
+80
+31
+c0
+43
+00
+36
+c0
+45
+00
+40
+c0
+45
+80
+62
+c0
+53
+80
+6e
+c0
+54
+00
+75
+c0
+54
+80
+89
+c0
+56
+00
+9c
+c0
+5a
+03
+41
+c0
+5a
+80
+b5
+c0
+5b
+00
+bc
+c0
+5b
+80
+de
+c0
+5c
+82
+26
+c0
+5d
+02
+2a
+20
+20
+3b
+34
+c0
+02
+81
+18
+c0
+0b
+01
+1d
+c0
+0d
+81
+21
+c0
+11
+81
+24
+c0
+17
+81
+48
+c0
+18
+81
+5d
+c0
+19
+01
+6f
+c0
+19
+81
+82
+c0
+1c
+81
+93
+c0
+1e
+01
+a0
+c0
+1e
+81
+b3
+c0
+1f
+01
+b9
+c0
+1f
+81
+d2
+c0
+21
+01
+f0
+c0
+26
+81
+f5
+c0
+4a
+82
+32
+c0
+79
+82
+39
+c0
+7b
+82
+45
+c0
+7c
+02
+6f
+c0
+7c
+82
+75
+20
+20
+3b
+34
+20
+80
+00
+00
+24
+35
+b0
+04
+68
+00
+c5
+95
+24
+3a
+00
+2f
+68
+00
+ce
+78
+20
+3a
+30
+04
+70
+4e
+7f
+00
+c5
+93
+30
+04
+24
+35
+b0
+04
+70
+82
+80
+03
+20
+20
+30
+04
+20
+40
+02
+7f
+20
+40
+02
+bb
+68
+00
+ce
+78
+24
+3a
+03
+7a
+20
+20
+30
+1b
+20
+30
+b9
+a3
+70
+89
+55
+d4
+20
+00
+00
+04
+70
+89
+55
+d2
+20
+00
+00
+04
+70
+89
+55
+d1
+20
+00
+00
+04
+68
+00
+c2
+80
+c0
+0a
+39
+ae
+20
+20
+39
+9c
+60
+08
+80
+17
+18
+40
+a2
+00
+20
+40
+3a
+13
+58
+00
+05
+00
+20
+40
+3b
+35
+70
+89
+06
+01
+70
+89
+00
+3c
+70
+89
+01
+e0
+70
+89
+6d
+12
+20
+00
+00
+0a
+70
+89
+02
+01
+70
+89
+02
+3d
+20
+00
+00
+0a
+70
+89
+03
+b7
+20
+00
+00
+0a
+70
+89
+02
+7f
+68
+00
+c2
+80
+c0
+0a
+00
+5f
+c2
+80
+80
+59
+c2
+81
+00
+59
+70
+89
+4c
+5b
+70
+89
+4d
+96
+70
+89
+4e
+2c
+70
+89
+4f
+46
+20
+20
+00
+5d
+70
+89
+4c
+fb
+70
+89
+4d
+ef
+70
+89
+4e
+ec
+70
+89
+4f
+5e
+68
+00
+c2
+80
+20
+20
+39
+dc
+70
+89
+56
+c2
+70
+89
+55
+d0
+20
+60
+00
+00
+20
+40
+3c
+d2
+20
+40
+3a
+5f
+70
+80
+42
+06
+68
+10
+89
+68
+79
+20
+7e
+07
+60
+10
+89
+68
+79
+3f
+fe
+07
+60
+10
+89
+68
+79
+20
+7e
+07
+60
+10
+89
+68
+70
+80
+42
+05
+20
+20
+3a
+0c
+20
+40
+3c
+2b
+68
+00
+ce
+45
+20
+7a
+00
+00
+70
+4e
+45
+00
+1c
+42
+7e
+00
+60
+02
+48
+9e
+20
+60
+00
+00
+c6
+13
+00
+00
+20
+40
+3b
+e2
+68
+01
+c2
+0f
+20
+7a
+00
+00
+68
+01
+40
+42
+d8
+40
+ff
+ff
+98
+46
+7c
+00
+20
+62
+80
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+20
+40
+48
+16
+24
+7a
+00
+00
+20
+40
+3d
+0e
+24
+7a
+00
+00
+20
+40
+3a
+7b
+68
+00
+c6
+e2
+20
+3a
+3c
+5e
+68
+00
+c6
+39
+20
+7a
+00
+00
+20
+20
+3c
+5e
+68
+00
+c5
+95
+20
+3a
+00
+96
+68
+00
+80
+9f
+24
+3a
+00
+96
+68
+00
+ce
+83
+68
+08
+ce
+84
+98
+46
+7c
+00
+24
+62
+80
+00
+68
+00
+ce
+81
+24
+7a
+00
+00
+58
+00
+00
+00
+60
+04
+00
+a0
+20
+20
+3c
+6a
+20
+40
+00
+a1
+24
+74
+00
+00
+68
+00
+8b
+2b
+24
+7a
+00
+00
+70
+49
+c1
+00
+20
+20
+3c
+6a
+20
+40
+00
+a1
+24
+74
+00
+00
+68
+00
+8b
+2b
+24
+7a
+00
+00
+20
+20
+3c
+8c
+20
+40
+00
+ac
+24
+74
+00
+00
+20
+40
+00
+a9
+24
+74
+00
+00
+70
+0b
+2b
+01
+70
+0b
+2a
+01
+20
+40
+00
+b1
+20
+20
+00
+ac
+68
+01
+48
+2c
+68
+09
+48
+2e
+20
+20
+00
+ae
+68
+01
+47
+c4
+68
+09
+47
+c6
+98
+46
+7c
+00
+20
+22
+e4
+c0
+20
+20
+31
+d4
+68
+00
+8b
+2a
+20
+00
+00
+0a
+c0
+80
+00
+b1
+20
+60
+00
+00
+70
+00
+16
+27
+70
+01
+50
+00
+70
+01
+7e
+00
+70
+01
+7f
+00
+58
+00
+00
+00
+60
+02
+88
+d2
+20
+60
+00
+00
+da
+20
+46
+f0
+20
+40
+7f
+95
+20
+7a
+00
+00
+1f
+e2
+26
+00
+20
+40
+00
+c2
+20
+20
+3d
+9b
+c1
+0c
+00
+00
+c0
+0a
+00
+c7
+c0
+0a
+80
+d1
+c0
+14
+80
+dc
+20
+20
+3d
+73
+70
+4e
+83
+00
+70
+42
+12
+00
+70
+4e
+bb
+00
+70
+4e
+51
+14
+20
+40
+3e
+61
+20
+40
+3e
+59
+20
+40
+3e
+7f
+20
+40
+3e
+20
+70
+4e
+b9
+01
+20
+20
+3d
+c2
+70
+4e
+a4
+00
+20
+40
+02
+fc
+70
+44
+b2
+00
+70
+42
+12
+00
+70
+4e
+bb
+00
+70
+4e
+51
+00
+70
+45
+6a
+00
+68
+09
+4e
+4e
+60
+09
+44
+f8
+20
+40
+52
+a0
+20
+20
+3d
+c6
+20
+40
+01
+06
+20
+20
+7e
+3b
+60
+08
+82
+4e
+68
+00
+c8
+9c
+1f
+e0
+fe
+01
+60
+00
+c8
+9c
+68
+00
+82
+4e
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+82
+4e
+20
+40
+01
+09
+20
+40
+00
+ec
+20
+40
+01
+12
+20
+40
+00
+f8
+20
+40
+00
+ff
+20
+20
+00
+e2
+68
+00
+ce
+bb
+20
+7a
+00
+00
+68
+00
+c2
+12
+2f
+e1
+fe
+20
+24
+40
+80
+f6
+68
+00
+c1
+31
+20
+5a
+00
+f4
+20
+60
+00
+00
+70
+41
+31
+01
+20
+60
+00
+00
+70
+42
+12
+20
+20
+60
+00
+00
+68
+00
+c9
+ba
+20
+7a
+00
+00
+70
+4e
+80
+00
+1f
+e0
+ff
+ff
+60
+00
+c9
+ba
+24
+7a
+00
+00
+20
+60
+00
+00
+68
+00
+ce
+82
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+82
+24
+7a
+00
+00
+70
+4e
+81
+00
+20
+60
+00
+00
+20
+40
+3e
+7f
+70
+09
+bd
+12
+20
+20
+7d
+90
+68
+00
+ce
+51
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+51
+24
+7a
+00
+00
+70
+42
+12
+20
+70
+41
+31
+01
+70
+4e
+bb
+01
+20
+60
+00
+00
+68
+00
+ce
+52
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+52
+24
+7a
+00
+00
+20
+20
+3e
+6d
+20
+40
+49
+68
+20
+40
+4b
+51
+20
+40
+4b
+d8
+20
+40
+05
+a7
+20
+20
+49
+45
+20
+40
+3a
+50
+1f
+e2
+22
+00
+20
+40
+05
+e5
+20
+20
+4a
+3d
+68
+02
+4e
+48
+60
+02
+45
+96
+20
+20
+4a
+8c
+70
+41
+31
+01
+68
+01
+03
+7c
+68
+09
+03
+82
+98
+46
+7e
+00
+60
+01
+09
+be
+68
+00
+83
+62
+79
+3f
+fe
+05
+79
+3f
+fe
+03
+60
+00
+83
+62
+68
+02
+03
+66
+68
+09
+03
+64
+60
+09
+09
+c6
+98
+46
+22
+00
+68
+00
+c4
+5b
+60
+00
+83
+8d
+e8
+c9
+00
+00
+e8
+c1
+00
+00
+1f
+eb
+fe
+00
+60
+01
+03
+64
+18
+4b
+84
+00
+98
+40
+fe
+00
+e8
+ca
+00
+00
+60
+0a
+03
+8e
+9a
+20
+fe
+00
+1f
+e2
+28
+00
+68
+01
+03
+64
+68
+09
+09
+c6
+98
+46
+7e
+00
+68
+09
+09
+be
+98
+4f
+fe
+00
+9a
+80
+fe
+00
+60
+02
+03
+66
+20
+40
+51
+99
+68
+01
+03
+90
+60
+01
+45
+61
+20
+60
+00
+00
+68
+00
+83
+79
+c2
+82
+81
+59
+20
+40
+05
+99
+70
+4e
+62
+00
+68
+00
+ce
+20
+24
+3a
+01
+53
+68
+00
+ce
+a5
+c0
+00
+81
+57
+68
+00
+83
+03
+20
+3a
+4b
+de
+20
+20
+4f
+87
+68
+00
+ce
+20
+1f
+e0
+ff
+ff
+60
+00
+ce
+20
+20
+20
+4f
+87
+70
+4e
+20
+03
+20
+20
+4b
+de
+68
+00
+ce
+62
+1f
+e0
+fe
+01
+60
+00
+ce
+62
+20
+20
+05
+9d
+68
+00
+c4
+67
+c0
+03
+01
+61
+c0
+01
+01
+68
+20
+20
+4b
+fb
+68
+00
+ce
+53
+c0
+00
+81
+65
+20
+40
+3e
+6d
+20
+20
+4c
+86
+20
+40
+01
+06
+70
+4e
+52
+03
+20
+20
+4c
+90
+58
+00
+00
+13
+e0
+a0
+80
+00
+20
+40
+4c
+58
+58
+00
+00
+0a
+60
+01
+03
+90
+60
+01
+45
+61
+20
+60
+00
+00
+68
+00
+c4
+6b
+c0
+01
+01
+76
+c0
+03
+01
+7d
+c0
+03
+81
+74
+20
+20
+4c
+18
+70
+4e
+a5
+00
+20
+20
+4d
+17
+59
+00
+03
+02
+60
+01
+c4
+dc
+58
+00
+00
+01
+e0
+a0
+80
+00
+58
+01
+00
+10
+e0
+a1
+80
+00
+20
+20
+4c
+cd
+70
+09
+bd
+29
+20
+40
+7d
+86
+70
+09
+bd
+47
+20
+40
+4b
+d6
+20
+20
+4d
+01
+68
+00
+c4
+6b
+c0
+0d
+81
+86
+c0
+0e
+81
+86
+20
+20
+4c
+2b
+68
+09
+4e
+4e
+60
+09
+44
+6c
+68
+00
+ce
+86
+1f
+e0
+84
+01
+18
+41
+04
+03
+60
+08
+ce
+86
+1f
+ef
+fe
+07
+d8
+c0
+4e
+87
+98
+c0
+8c
+00
+e8
+c3
+80
+00
+60
+03
+c4
+6e
+d8
+40
+00
+0e
+20
+20
+4f
+89
+60
+08
+c4
+66
+28
+20
+06
+02
+24
+20
+81
+98
+18
+40
+ff
+fc
+60
+01
+44
+67
+68
+08
+83
+79
+20
+40
+01
+9b
+20
+20
+4f
+92
+68
+00
+ce
+a5
+c0
+00
+81
+9e
+20
+20
+4b
+d0
+58
+00
+00
+00
+20
+60
+00
+00
+1a
+62
+7e
+00
+c0
+00
+01
+a6
+c0
+01
+01
+a9
+c0
+01
+81
+ad
+c0
+05
+01
+b1
+20
+20
+4f
+b9
+70
+41
+31
+00
+70
+4e
+51
+3c
+20
+20
+50
+1f
+20
+40
+50
+33
+58
+00
+00
+00
+60
+04
+45
+44
+20
+60
+00
+00
+20
+40
+50
+39
+68
+00
+c5
+6a
+c1
+01
+00
+00
+20
+20
+64
+18
+70
+09
+bd
+2b
+20
+20
+4b
+d6
+e8
+c0
+80
+00
+c0
+00
+81
+b6
+20
+20
+4f
+fe
+70
+4e
+a5
+01
+70
+4e
+20
+03
+20
+20
+50
+69
+e8
+c1
+80
+00
+60
+01
+83
+9a
+c0
+09
+01
+bd
+20
+20
+50
+11
+70
+41
+31
+01
+20
+40
+01
+c9
+68
+00
+83
+9b
+1f
+e6
+7c
+60
+20
+22
+81
+ce
+70
+4e
+a6
+00
+20
+40
+51
+25
+24
+62
+80
+00
+68
+00
+ce
+a6
+24
+5a
+01
+d0
+70
+09
+bd
+13
+20
+20
+4b
+d6
+68
+00
+83
+03
+1f
+e0
+ff
+f9
+1f
+e2
+72
+00
+1f
+22
+24
+00
+20
+20
+51
+35
+70
+4e
+a6
+01
+20
+20
+01
+c3
+70
+09
+bd
+29
+20
+20
+7d
+86
+68
+00
+c3
+ff
+20
+7a
+00
+00
+d8
+e0
+00
+01
+20
+40
+7e
+e2
+24
+7a
+00
+00
+78
+54
+fc
+00
+78
+28
+7c
+00
+20
+40
+4b
+1e
+20
+40
+49
+d4
+20
+40
+4a
+8a
+24
+36
+81
+e4
+68
+00
+80
+03
+1f
+e0
+fe
+01
+60
+00
+80
+03
+68
+00
+83
+02
+1f
+e1
+7e
+0f
+c0
+01
+81
+ee
+c0
+02
+d1
+af
+68
+00
+80
+16
+c0
+93
+d1
+7d
+18
+0a
+7e
+00
+d8
+40
+01
+ff
+98
+41
+7e
+00
+1f
+e0
+fe
+fa
+1f
+e0
+ff
+ff
+20
+00
+00
+26
+24
+3a
+01
+ea
+20
+20
+51
+96
+20
+40
+4a
+c5
+20
+20
+01
+e4
+68
+02
+45
+96
+d8
+40
+ea
+60
+98
+40
+fe
+00
+60
+02
+45
+96
+20
+20
+51
+a9
+78
+55
+fc
+00
+20
+37
+01
+f8
+24
+36
+82
+07
+20
+40
+3c
+b7
+68
+01
+41
+61
+60
+01
+03
+70
+68
+00
+83
+02
+2f
+e0
+06
+01
+24
+20
+bc
+cb
+68
+00
+c4
+65
+2f
+e0
+06
+01
+24
+20
+bc
+cb
+20
+40
+4b
+d0
+24
+3a
+3c
+cb
+68
+00
+ce
+62
+1f
+e6
+7c
+01
+24
+21
+3c
+cb
+20
+20
+52
+97
+68
+09
+41
+61
+68
+01
+4e
+60
+98
+40
+84
+00
+18
+43
+04
+00
+68
+01
+03
+70
+98
+40
+fe
+00
+60
+01
+03
+70
+20
+20
+3c
+c3
+20
+40
+02
+1d
+df
+20
+00
+03
+d8
+c0
+4e
+ad
+58
+00
+ff
+ff
+20
+40
+02
+21
+24
+62
+80
+00
+68
+00
+ce
+a8
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+a8
+20
+40
+02
+2a
+20
+62
+80
+00
+70
+4e
+a7
+01
+20
+60
+00
+00
+d8
+40
+00
+0c
+da
+20
+4e
+ad
+68
+01
+4e
+ab
+20
+20
+62
+4a
+e8
+c9
+00
+00
+98
+46
+7c
+00
+24
+62
+80
+00
+c2
+00
+02
+21
+20
+60
+00
+00
+d8
+40
+00
+02
+da
+20
+09
+ce
+da
+40
+00
+30
+20
+20
+62
+6f
+d8
+40
+00
+02
+da
+20
+09
+be
+da
+40
+00
+30
+20
+40
+62
+45
+68
+01
+09
+be
+d8
+40
+aa
+55
+98
+46
+7c
+00
+20
+60
+00
+00
+68
+12
+00
+78
+68
+1a
+00
+7c
+98
+41
+fe
+00
+1f
+e4
+7e
+00
+9a
+21
+7e
+00
+60
+12
+00
+70
+20
+60
+00
+00
+1a
+22
+7e
+00
+20
+7a
+00
+00
+18
+40
+85
+60
+18
+40
+85
+60
+79
+3f
+84
+1c
+60
+0a
+47
+03
+1f
+e2
+04
+00
+da
+20
+46
+f0
+20
+40
+7f
+a6
+24
+7a
+00
+00
+18
+42
+7e
+00
+20
+20
+7d
+7d
+20
+40
+7d
+80
+da
+20
+46
+f8
+20
+40
+7f
+95
+1f
+e2
+04
+00
+20
+40
+7d
+84
+18
+42
+7e
+00
+20
+7a
+00
+00
+c0
+06
+82
+4f
+c0
+13
+82
+5e
+20
+20
+7d
+b3
+79
+3f
+80
+26
+70
+41
+31
+00
+18
+0a
+7e
+00
+60
+00
+c5
+3e
+58
+26
+10
+0e
+60
+01
+c5
+41
+70
+4e
+53
+00
+68
+09
+4e
+4e
+60
+09
+44
+f8
+20
+40
+52
+a0
+da
+40
+00
+05
+20
+40
+02
+68
+1a
+42
+7e
+00
+e0
+c0
+80
+00
+20
+20
+7e
+07
+79
+3f
+80
+26
+70
+41
+31
+00
+70
+4e
+53
+01
+68
+09
+4e
+4e
+20
+40
+4f
+6a
+1a
+22
+0a
+00
+58
+00
+00
+01
+e0
+a0
+80
+00
+da
+40
+00
+04
+20
+20
+02
+5a
+da
+20
+44
+01
+ea
+20
+80
+00
+20
+7a
+00
+00
+98
+c0
+a2
+00
+e8
+c0
+80
+00
+c1
+00
+80
+00
+20
+20
+02
+69
+20
+40
+58
+c5
+24
+3a
+7d
+e5
+68
+00
+89
+bd
+c5
+84
+fd
+e0
+c0
+0f
+82
+95
+20
+20
+7d
+d0
+70
+0b
+2a
+03
+20
+40
+00
+b1
+70
+4e
+45
+5a
+20
+40
+3c
+fc
+68
+12
+01
+38
+79
+3f
+fe
+0f
+60
+12
+00
+4c
+20
+40
+3c
+f4
+d8
+5f
+ff
+ff
+20
+20
+3c
+11
+68
+0a
+48
+9e
+1c
+42
+7e
+00
+98
+46
+7e
+00
+d8
+40
+06
+40
+98
+46
+fc
+00
+20
+40
+7f
+53
+18
+07
+fe
+00
+20
+7a
+00
+00
+1c
+42
+04
+00
+60
+0a
+48
+9e
+68
+09
+48
+98
+18
+50
+84
+00
+98
+40
+fe
+00
+1f
+f0
+fe
+00
+60
+01
+48
+98
+1f
+f0
+fe
+00
+1f
+e1
+7e
+03
+c1
+80
+00
+00
+20
+40
+02
+b3
+24
+76
+00
+00
+68
+00
+c2
+cf
+c2
+81
+02
+96
+20
+60
+00
+00
+68
+10
+80
+78
+79
+3f
+fe
+05
+60
+10
+80
+78
+70
+89
+71
+8f
+68
+00
+c2
+d0
+60
+10
+89
+73
+20
+40
+02
+a1
+68
+10
+80
+78
+79
+20
+7e
+05
+60
+10
+80
+78
+20
+60
+00
+00
+68
+10
+80
+53
+79
+20
+7e
+07
+60
+10
+80
+53
+68
+10
+89
+73
+1f
+e1
+fe
+30
+60
+10
+89
+73
+70
+89
+06
+7c
+70
+89
+72
+aa
+20
+00
+13
+88
+68
+19
+01
+50
+68
+10
+80
+53
+79
+3f
+fe
+07
+60
+10
+80
+53
+18
+50
+84
+00
+60
+09
+42
+d1
+20
+60
+00
+00
+78
+36
+7c
+00
+20
+60
+00
+00
+78
+56
+7c
+00
+20
+40
+4b
+d0
+20
+5a
+02
+b1
+20
+60
+00
+00
+70
+4e
+a3
+01
+20
+40
+02
+bb
+70
+4e
+a3
+00
+20
+60
+00
+00
+20
+40
+00
+ac
+20
+74
+00
+00
+1f
+f0
+fe
+00
+1f
+e2
+0c
+00
+20
+40
+02
+e0
+60
+00
+c8
+97
+c0
+00
+82
+cb
+1f
+e2
+04
+00
+18
+c2
+22
+00
+68
+00
+c0
+40
+c3
+00
+02
+d5
+1a
+22
+0c
+00
+c6
+84
+80
+00
+18
+42
+7e
+00
+c0
+02
+83
+0e
+20
+20
+3b
+31
+20
+40
+02
+e0
+20
+40
+02
+e0
+60
+00
+89
+bd
+20
+40
+02
+d0
+20
+20
+7d
+90
+20
+40
+02
+e3
+18
+c2
+04
+00
+18
+50
+84
+00
+60
+09
+47
+c4
+20
+60
+00
+00
+1a
+22
+0c
+00
+d8
+a0
+00
+f5
+20
+20
+02
+d8
+20
+40
+02
+e0
+1f
+e2
+72
+00
+20
+40
+02
+dc
+20
+20
+02
+d0
+20
+40
+02
+e0
+e0
+a0
+80
+00
+c2
+00
+02
+dc
+20
+60
+00
+00
+20
+40
+02
+e3
+e8
+c0
+80
+00
+20
+60
+00
+00
+58
+00
+47
+c4
+98
+c6
+7c
+00
+24
+62
+80
+00
+d8
+c0
+47
+2e
+20
+60
+00
+00
+df
+20
+00
+03
+d8
+c0
+48
+94
+18
+c2
+22
+00
+68
+01
+48
+2e
+1f
+f0
+fe
+00
+1f
+e2
+0a
+00
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+e0
+a0
+80
+00
+20
+40
+02
+f7
+c2
+00
+02
+ef
+18
+a2
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+48
+2e
+20
+60
+00
+00
+58
+00
+48
+2c
+98
+a6
+7c
+00
+24
+62
+80
+00
+d8
+a0
+47
+c8
+20
+60
+00
+00
+58
+00
+00
+00
+60
+01
+ce
+85
+20
+60
+00
+00
+c6
+13
+00
+00
+68
+00
+c5
+95
+20
+7a
+00
+00
+20
+40
+00
+ac
+20
+74
+00
+00
+1f
+f0
+fe
+00
+1f
+e2
+0c
+00
+20
+40
+02
+e0
+60
+00
+c8
+97
+18
+c2
+22
+00
+c0
+82
+82
+d5
+18
+c2
+24
+00
+20
+40
+4b
+d4
+24
+7a
+00
+00
+20
+20
+03
+13
+18
+c2
+24
+00
+68
+00
+ce
+a3
+20
+7a
+00
+00
+20
+40
+4b
+d0
+24
+7a
+00
+00
+68
+09
+4e
+4e
+20
+40
+4f
+6a
+c4
+00
+00
+00
+68
+00
+c5
+95
+c1
+00
+00
+00
+68
+00
+ce
+83
+1f
+e0
+fe
+01
+60
+00
+ce
+83
+68
+00
+ce
+85
+1f
+e0
+84
+01
+18
+41
+04
+03
+60
+08
+ce
+85
+1f
+ef
+fe
+07
+d8
+a0
+4e
+87
+98
+a0
+8a
+00
+1a
+42
+0c
+00
+20
+40
+02
+e0
+1f
+e2
+72
+00
+20
+40
+02
+da
+20
+40
+03
+2a
+20
+76
+00
+00
+70
+09
+bd
+1b
+20
+20
+4b
+d6
+78
+56
+7c
+00
+68
+00
+ce
+a4
+c1
+02
+80
+00
+78
+36
+7c
+00
+1f
+e0
+fe
+01
+60
+00
+ce
+a4
+1f
+e6
+7c
+01
+24
+61
+00
+00
+70
+48
+96
+40
+20
+20
+02
+e8
+58
+00
+47
+2e
+1f
+f0
+fe
+00
+60
+01
+47
+c4
+60
+01
+47
+c6
+58
+00
+47
+c8
+1f
+f0
+fe
+00
+60
+01
+48
+2c
+60
+01
+48
+2e
+20
+60
+00
+00
+68
+01
+4e
+a9
+1f
+e0
+fe
+1c
+60
+01
+4e
+ab
+20
+60
+00
+00
+20
+40
+52
+4a
+70
+0b
+2a
+00
+70
+01
+6c
+06
+20
+40
+3e
+7f
+58
+00
+03
+bf
+60
+01
+42
+96
+58
+00
+02
+b7
+60
+01
+42
+90
+58
+00
+03
+b8
+60
+01
+42
+8c
+24
+55
+83
+34
+20
+55
+83
+80
+20
+40
+3d
+3e
+68
+00
+ce
+ba
+20
+3a
+03
+5a
+1f
+e0
+ff
+ff
+60
+00
+ce
+ba
+58
+00
+3f
+80
+60
+01
+4e
+a9
+20
+40
+03
+3d
+68
+00
+ce
+53
+24
+3a
+03
+5a
+68
+00
+ce
+b9
+24
+3a
+03
+5a
+20
+40
+02
+0f
+68
+00
+ce
+45
+c0
+2d
+03
+94
+20
+35
+83
+92
+68
+00
+c2
+80
+60
+00
+c9
+c3
+20
+40
+05
+96
+68
+01
+4e
+41
+1f
+f0
+fe
+00
+60
+01
+4e
+41
+68
+01
+4e
+43
+1f
+f0
+fe
+00
+60
+01
+4e
+43
+20
+40
+03
+9f
+68
+04
+09
+c6
+24
+3a
+03
+6d
+68
+01
+4a
+d4
+1f
+f0
+fe
+00
+20
+3a
+03
+6d
+60
+01
+4e
+43
+70
+48
+96
+2f
+68
+00
+ce
+78
+24
+3a
+03
+75
+20
+40
+02
+93
+20
+40
+02
+e8
+20
+40
+02
+ff
+70
+82
+80
+03
+20
+60
+00
+00
+20
+55
+bc
+29
+d9
+60
+0d
+00
+34
+73
+02
+00
+1c
+42
+7e
+00
+60
+01
+ce
+7a
+68
+01
+47
+0b
+c3
+85
+80
+00
+c3
+83
+00
+00
+20
+40
+3d
+60
+20
+40
+04
+93
+20
+20
+03
+7a
+1c
+e2
+7e
+00
+c5
+93
+03
+8a
+20
+3a
+03
+85
+70
+49
+b9
+bb
+20
+60
+00
+00
+70
+49
+b9
+00
+68
+00
+c9
+b7
+20
+7a
+00
+00
+70
+49
+b7
+00
+20
+20
+03
+83
+20
+3a
+03
+8d
+70
+49
+c1
+02
+20
+60
+00
+00
+68
+00
+c9
+c2
+20
+7a
+00
+00
+70
+49
+c2
+00
+70
+49
+c1
+01
+20
+60
+00
+00
+70
+48
+96
+3c
+20
+20
+03
+6e
+1c
+e2
+7e
+00
+20
+3a
+02
+77
+20
+40
+53
+0d
+20
+40
+42
+eb
+58
+00
+00
+00
+60
+04
+40
+40
+60
+01
+47
+0b
+60
+01
+48
+98
+60
+01
+48
+9a
+70
+48
+96
+3d
+20
+20
+03
+6e
+20
+40
+62
+c4
+58
+00
+07
+e2
+da
+20
+09
+c6
+d8
+40
+00
+0c
+20
+40
+63
+0d
+20
+40
+62
+c7
+68
+04
+09
+c6
+20
+7a
+00
+00
+68
+00
+c2
+cf
+c2
+81
+03
+aa
+20
+60
+00
+00
+68
+09
+09
+c6
+68
+01
+09
+cc
+18
+42
+24
+00
+1f
+e2
+22
+00
+98
+46
+26
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+41
+1a
+6b
+fe
+00
+9a
+20
+fe
+00
+1f
+f0
+fe
+00
+60
+01
+4e
+43
+20
+60
+00
+00
+78
+34
+7c
+00
+68
+12
+01
+38
+79
+34
+7e
+1a
+60
+12
+00
+4c
+20
+40
+3c
+f4
+70
+00
+9f
+01
+20
+60
+00
+00
+1a
+62
+7e
+00
+1f
+e1
+7e
+f0
+c1
+28
+00
+00
+1a
+62
+7e
+00
+60
+00
+c8
+96
+20
+20
+02
+e8
+70
+49
+27
+00
+70
+49
+32
+4e
+68
+02
+49
+34
+60
+02
+49
+50
+20
+20
+04
+59
+68
+08
+c9
+33
+20
+40
+03
+d0
+18
+40
+84
+01
+18
+41
+04
+03
+60
+08
+c9
+33
+20
+60
+00
+00
+68
+00
+c9
+50
+1f
+e1
+7e
+03
+1f
+ef
+a2
+04
+58
+00
+49
+39
+9a
+20
+fe
+00
+98
+40
+8c
+00
+e8
+c0
+80
+00
+60
+00
+c9
+32
+20
+60
+00
+00
+70
+49
+b0
+01
+70
+49
+b2
+00
+68
+00
+c9
+29
+1f
+e1
+7e
+07
+60
+00
+c9
+29
+20
+60
+00
+00
+68
+00
+c9
+29
+79
+20
+7e
+04
+60
+00
+c9
+29
+60
+00
+c8
+e4
+20
+60
+00
+00
+68
+00
+c9
+29
+79
+3f
+fe
+04
+60
+00
+c9
+29
+20
+60
+00
+00
+20
+40
+05
+9d
+68
+00
+c9
+b4
+c0
+00
+83
+ed
+c0
+01
+03
+f1
+20
+60
+00
+00
+70
+49
+b2
+02
+70
+49
+b3
+00
+70
+49
+b0
+00
+20
+20
+03
+db
+70
+49
+b1
+00
+20
+20
+03
+ee
+68
+01
+49
+2e
+1f
+e0
+fe
+01
+60
+01
+49
+2e
+c2
+85
+05
+02
+68
+00
+c9
+b1
+c0
+00
+83
+fc
+70
+49
+b1
+01
+68
+00
+c9
+b1
+c0
+80
+83
+db
+68
+00
+c9
+b5
+1f
+e0
+fe
+01
+60
+00
+c9
+b5
+c0
+02
+04
+03
+20
+40
+03
+ca
+70
+49
+6e
+02
+20
+20
+04
+c3
+20
+40
+05
+9d
+70
+49
+b5
+00
+20
+20
+03
+db
+70
+49
+b2
+02
+70
+49
+b0
+01
+70
+49
+b1
+00
+20
+20
+03
+db
+68
+00
+c9
+b4
+c0
+01
+84
+07
+68
+00
+c9
+29
+2f
+ec
+00
+04
+20
+20
+83
+d9
+68
+00
+c9
+b4
+c0
+00
+84
+06
+c0
+01
+04
+07
+20
+60
+00
+00
+68
+00
+c9
+38
+c1
+ff
+80
+00
+20
+40
+04
+18
+24
+56
+04
+20
+20
+60
+00
+00
+78
+56
+7c
+00
+68
+00
+c9
+b0
+c1
+80
+80
+00
+68
+00
+c9
+b2
+c1
+80
+00
+00
+70
+49
+b4
+01
+70
+49
+6e
+04
+20
+20
+02
+b1
+68
+00
+c9
+b2
+20
+3a
+04
+28
+1f
+e0
+ff
+ff
+60
+00
+c9
+b2
+70
+49
+b4
+02
+20
+40
+03
+ca
+70
+49
+6e
+04
+20
+60
+00
+00
+70
+49
+b4
+03
+68
+00
+c9
+b1
+24
+3a
+03
+fa
+20
+40
+03
+ca
+70
+49
+6e
+02
+20
+60
+00
+00
+68
+00
+c9
+38
+c0
+ff
+86
+02
+20
+40
+02
+bb
+20
+34
+04
+40
+68
+00
+c8
+97
+c0
+83
+64
+c0
+68
+00
+ce
+80
+20
+5a
+04
+79
+68
+00
+ce
+80
+24
+5a
+04
+3c
+20
+40
+04
+45
+20
+40
+04
+66
+70
+49
+2d
+01
+20
+60
+00
+00
+70
+4e
+79
+00
+70
+4e
+78
+00
+70
+49
+ba
+0a
+20
+60
+00
+00
+68
+00
+ce
+78
+24
+3a
+04
+45
+68
+00
+c9
+2d
+c0
+00
+b1
+d4
+20
+60
+00
+00
+68
+00
+c9
+b9
+60
+00
+c9
+b8
+68
+00
+c9
+70
+1f
+e2
+22
+00
+da
+40
+49
+71
+70
+49
+54
+00
+20
+40
+03
+db
+60
+00
+c9
+90
+1a
+20
+84
+01
+d8
+a0
+49
+91
+1a
+22
+72
+00
+1a
+42
+0c
+00
+20
+40
+7e
+cd
+da
+20
+49
+90
+c6
+93
+80
+00
+60
+08
+c9
+28
+18
+42
+72
+00
+d8
+a0
+48
+c4
+1a
+22
+0c
+00
+20
+20
+7e
+cd
+da
+20
+00
+00
+df
+20
+00
+04
+d8
+c0
+49
+50
+e8
+c0
+80
+00
+9a
+20
+a2
+00
+c2
+00
+04
+5c
+1a
+22
+7e
+00
+60
+01
+49
+bb
+68
+00
+c9
+bb
+68
+08
+c9
+bc
+98
+40
+fe
+00
+60
+00
+c9
+bd
+20
+60
+00
+00
+68
+00
+c9
+28
+1f
+e0
+fe
+02
+60
+00
+c9
+2a
+68
+00
+c9
+29
+60
+00
+c8
+e4
+68
+00
+c9
+28
+1f
+e9
+fe
+00
+68
+08
+c9
+27
+18
+41
+04
+03
+18
+43
+84
+00
+98
+41
+fe
+00
+68
+08
+c9
+65
+98
+40
+fe
+00
+e0
+a0
+80
+00
+68
+00
+c9
+28
+98
+00
+72
+00
+d8
+c0
+48
+c4
+20
+20
+7e
+cd
+20
+60
+00
+00
+68
+00
+c2
+b8
+2f
+ec
+00
+02
+20
+20
+84
+83
+68
+00
+ce
+79
+c1
+02
+80
+00
+1f
+e0
+fe
+01
+60
+00
+ce
+79
+c1
+82
+80
+00
+70
+4e
+78
+01
+20
+60
+00
+00
+68
+00
+ce
+79
+c1
+0a
+00
+00
+1f
+e0
+fe
+01
+60
+00
+ce
+79
+c1
+8a
+00
+00
+68
+00
+c2
+b8
+79
+20
+7e
+02
+60
+00
+c2
+b8
+20
+20
+04
+81
+68
+00
+ce
+79
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+ce
+79
+24
+7a
+00
+00
+70
+4e
+78
+00
+20
+60
+00
+00
+79
+20
+00
+27
+20
+40
+02
+bb
+20
+34
+04
+98
+68
+00
+c8
+97
+c0
+03
+04
+9e
+68
+00
+ce
+7d
+c0
+00
+84
+9d
+c0
+01
+04
+78
+c0
+01
+84
+9d
+20
+60
+00
+00
+20
+60
+00
+00
+20
+60
+00
+00
+20
+40
+3b
+e2
+68
+01
+c2
+0f
+20
+7a
+00
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+68
+00
+ce
+80
+c0
+00
+84
+a8
+58
+00
+00
+00
+60
+04
+00
+a0
+20
+40
+04
+b8
+d9
+60
+0d
+00
+34
+73
+02
+00
+68
+09
+ce
+7a
+1c
+42
+7e
+00
+98
+46
+7e
+00
+1f
+e1
+7e
+ff
+d8
+40
+0e
+a6
+98
+4f
+84
+00
+68
+02
+4e
+74
+98
+46
+7e
+00
+20
+21
+3c
+7f
+68
+00
+c2
+18
+1f
+e0
+fe
+01
+60
+02
+41
+fb
+20
+20
+3c
+86
+58
+01
+3c
+68
+60
+02
+4e
+74
+68
+00
+ce
+7e
+1f
+e0
+fe
+01
+c0
+82
+84
+be
+58
+00
+00
+00
+60
+00
+ce
+7e
+c4
+00
+00
+00
+58
+01
+30
+b0
+60
+02
+4e
+74
+20
+60
+00
+00
+70
+49
+31
+00
+d9
+60
+0d
+00
+34
+73
+02
+00
+20
+40
+04
+db
+68
+00
+c9
+65
+c1
+00
+80
+00
+24
+2c
+04
+ea
+24
+37
+84
+ea
+20
+40
+05
+09
+20
+40
+05
+99
+68
+00
+c9
+27
+1f
+e0
+fe
+01
+60
+00
+c9
+27
+68
+00
+c9
+38
+c0
+ff
+84
+d9
+20
+40
+04
+0a
+58
+00
+00
+00
+60
+01
+49
+2e
+60
+00
+c9
+30
+60
+00
+c9
+b3
+70
+49
+2d
+00
+20
+60
+00
+00
+20
+40
+05
+96
+20
+20
+06
+1d
+78
+57
+fc
+00
+20
+40
+05
+29
+68
+00
+c9
+65
+c0
+00
+84
+e8
+18
+00
+2a
+00
+68
+02
+49
+50
+98
+00
+12
+00
+68
+08
+80
+17
+20
+40
+39
+b9
+20
+40
+39
+bf
+20
+40
+05
+53
+20
+57
+85
+92
+20
+60
+00
+00
+20
+40
+05
+92
+20
+20
+04
+cd
+68
+00
+c9
+30
+1f
+e0
+fe
+01
+60
+00
+c9
+30
+68
+00
+c9
+38
+c0
+ff
+84
+fe
+68
+08
+c9
+31
+18
+40
+84
+01
+60
+08
+c9
+31
+68
+00
+c9
+6e
+98
+46
+7e
+00
+24
+3a
+04
+c4
+68
+00
+c9
+b4
+c0
+01
+83
+f3
+68
+00
+c9
+b3
+1f
+e0
+fe
+01
+60
+00
+c9
+b3
+c0
+01
+03
+e8
+20
+40
+03
+df
+70
+49
+6e
+01
+20
+20
+04
+c3
+68
+00
+c9
+30
+c1
+ff
+80
+00
+70
+49
+30
+00
+20
+20
+05
+07
+58
+00
+00
+00
+60
+01
+49
+2e
+70
+41
+31
+00
+70
+4e
+79
+00
+70
+4e
+78
+00
+70
+48
+96
+3b
+20
+20
+02
+e8
+20
+40
+05
+10
+68
+00
+c9
+26
+20
+7a
+00
+00
+98
+00
+72
+00
+d8
+c0
+48
+a4
+d8
+a0
+49
+06
+20
+20
+7e
+cd
+68
+00
+c8
+a3
+1f
+e9
+7e
+00
+60
+00
+c9
+26
+1f
+e0
+fe
+01
+d8
+c0
+48
+a3
+98
+c0
+8c
+00
+e8
+c1
+80
+00
+60
+01
+c9
+66
+68
+00
+c8
+a3
+1f
+e3
+7e
+00
+1f
+e1
+7e
+03
+60
+00
+c9
+6c
+20
+60
+00
+00
+78
+44
+fc
+00
+78
+43
+fc
+00
+58
+55
+55
+55
+98
+00
+1e
+00
+68
+00
+c9
+32
+1f
+ed
+84
+00
+79
+20
+04
+01
+18
+43
+1c
+00
+20
+60
+00
+00
+20
+40
+39
+b1
+68
+08
+c9
+32
+20
+20
+39
+c9
+20
+40
+49
+76
+68
+02
+49
+50
+98
+00
+12
+00
+20
+40
+05
+1d
+20
+40
+05
+26
+79
+20
+2a
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+78
+4e
+fc
+00
+78
+2d
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+68
+00
+c9
+bd
+08
+00
+86
+08
+68
+00
+c9
+2a
+98
+00
+72
+00
+d8
+c0
+48
+e4
+e8
+c0
+80
+00
+08
+00
+86
+08
+c2
+00
+05
+3f
+78
+24
+7c
+00
+08
+00
+86
+18
+78
+44
+7c
+00
+37
+d3
+82
+00
+20
+00
+00
+64
+78
+4e
+fc
+00
+78
+4d
+fc
+00
+20
+60
+00
+00
+20
+40
+49
+76
+68
+02
+49
+50
+98
+00
+12
+00
+20
+40
+39
+b1
+68
+08
+c9
+32
+20
+40
+39
+b9
+58
+00
+05
+00
+20
+40
+3b
+35
+20
+40
+39
+bf
+20
+40
+05
+1d
+78
+57
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+28
+7c
+00
+68
+01
+49
+2b
+98
+00
+36
+00
+37
+c1
+84
+00
+24
+2c
+05
+95
+78
+46
+fc
+00
+78
+25
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+c9
+be
+20
+40
+04
+59
+68
+08
+c9
+be
+98
+46
+7c
+00
+24
+22
+85
+92
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+c8
+a2
+68
+00
+c9
+6f
+1f
+e6
+7c
+02
+20
+22
+85
+72
+68
+00
+c8
+a2
+68
+08
+c9
+29
+a8
+40
+0e
+00
+24
+20
+85
+92
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+1f
+e9
+7e
+00
+1f
+e1
+72
+1f
+20
+22
+85
+7c
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+c2
+00
+05
+78
+18
+a2
+22
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+c9
+cf
+1a
+22
+0a
+00
+09
+80
+00
+18
+78
+28
+7c
+00
+db
+60
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+78
+45
+fc
+00
+20
+23
+05
+92
+78
+37
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
+20
+40
+3a
+13
+78
+46
+fc
+00
+20
+40
+39
+b1
+68
+00
+c9
+cf
+1f
+e2
+22
+00
+20
+20
+05
+e5
+78
+4d
+fc
+00
+78
+45
+fc
+00
+20
+20
+36
+c6
+20
+20
+05
+92
+70
+49
+c4
+01
+70
+49
+c5
+00
+20
+60
+00
+00
+68
+00
+c9
+c5
+1f
+e0
+fe
+01
+60
+00
+c9
+c5
+20
+60
+00
+00
+68
+00
+c9
+c5
+1f
+e6
+7c
+01
+24
+41
+05
+a5
+68
+00
+c9
+c5
+c1
+00
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c9
+c5
+20
+60
+00
+00
+70
+49
+c5
+02
+20
+60
+00
+00
+da
+20
+49
+c6
+20
+40
+05
+ee
+60
+08
+c9
+d0
+28
+0f
+fe
+26
+20
+40
+85
+b5
+24
+40
+85
+b9
+98
+46
+7c
+00
+24
+21
+05
+d2
+68
+00
+c9
+c5
+1f
+e6
+7c
+01
+24
+21
+05
+bd
+68
+00
+c9
+c5
+c0
+00
+05
+d2
+20
+60
+00
+00
+58
+00
+00
+82
+20
+60
+00
+00
+58
+00
+00
+77
+20
+60
+00
+00
+58
+00
+00
+80
+20
+60
+00
+00
+58
+00
+00
+75
+20
+60
+00
+00
+68
+00
+c9
+c5
+c1
+a3
+00
+00
+70
+49
+c5
+00
+68
+08
+c9
+d0
+28
+0f
+fe
+26
+20
+40
+85
+b7
+24
+40
+85
+bb
+98
+46
+7c
+00
+24
+61
+00
+00
+68
+00
+c9
+c4
+c0
+00
+05
+de
+1f
+e0
+ff
+ff
+60
+00
+c9
+c4
+c0
+00
+05
+de
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+57
+4c
+70
+89
+58
+6c
+70
+89
+59
+50
+70
+42
+80
+01
+20
+60
+00
+00
+68
+00
+c9
+c4
+c0
+01
+05
+d7
+1f
+e0
+fe
+01
+60
+00
+c9
+c4
+c0
+00
+85
+cb
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+57
+4c
+70
+89
+58
+3c
+70
+89
+59
+10
+70
+42
+80
+04
+20
+60
+00
+00
+70
+89
+55
+d0
+70
+89
+56
+c0
+70
+89
+57
+4c
+70
+89
+58
+6c
+70
+89
+59
+50
+70
+42
+80
+10
+20
+60
+00
+00
+68
+08
+c9
+ce
+58
+00
+49
+c6
+98
+40
+8a
+00
+1a
+22
+7e
+00
+e0
+a0
+80
+00
+18
+40
+84
+01
+18
+41
+04
+07
+60
+08
+c9
+ce
+20
+60
+00
+00
+d8
+40
+00
+00
+df
+20
+00
+08
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+98
+40
+84
+00
+c2
+00
+05
+f1
+18
+49
+7e
+00
+1f
+e2
+04
+00
+c6
+93
+00
+00
+1f
+e6
+fc
+0a
+20
+40
+7f
+53
+18
+07
+fe
+00
+1f
+f2
+7e
+00
+18
+07
+04
+00
+98
+41
+84
+00
+20
+60
+00
+00
+79
+20
+00
+26
+20
+40
+03
+c5
+70
+49
+38
+01
+20
+60
+00
+00
+68
+00
+c9
+2d
+c0
+00
+b1
+d4
+68
+00
+c9
+38
+c0
+00
+86
+09
+c0
+01
+06
+0c
+c0
+01
+86
+0f
+20
+20
+3b
+31
+70
+49
+38
+11
+70
+49
+90
+aa
+20
+20
+06
+11
+70
+49
+38
+12
+70
+49
+90
+55
+20
+20
+06
+11
+70
+49
+38
+13
+70
+49
+90
+22
+68
+00
+c9
+29
+1f
+e1
+7e
+07
+60
+00
+c9
+91
+68
+02
+49
+60
+60
+02
+49
+92
+70
+49
+96
+00
+da
+20
+49
+90
+d8
+40
+00
+07
+20
+40
+04
+53
+20
+40
+04
+66
+20
+40
+04
+3a
+20
+20
+31
+d4
+68
+00
+c9
+38
+c1
+7f
+80
+00
+c0
+08
+86
+23
+c0
+09
+06
+25
+c0
+09
+86
+27
+20
+60
+00
+00
+70
+49
+38
+02
+20
+20
+04
+d3
+70
+49
+38
+03
+20
+20
+04
+d3
+70
+49
+38
+ff
+70
+48
+96
+39
+20
+40
+02
+e8
+68
+02
+49
+08
+20
+40
+03
+c8
+20
+20
+04
+d3
+79
+3f
+80
+26
+20
+40
+03
+ca
+68
+02
+49
+50
+20
+40
+04
+59
+68
+00
+c9
+38
+c1
+ff
+80
+00
+20
+40
+06
+43
+58
+00
+00
+00
+60
+01
+49
+56
+20
+00
+07
+d0
+68
+00
+c9
+56
+c0
+7f
+85
+07
+20
+40
+04
+db
+24
+2c
+06
+4d
+24
+37
+86
+4d
+70
+41
+31
+01
+79
+20
+00
+26
+58
+00
+00
+00
+60
+01
+49
+56
+70
+09
+bd
+3a
+20
+40
+7d
+86
+20
+20
+7e
+0d
+79
+20
+00
+27
+70
+49
+90
+ff
+68
+00
+c9
+29
+60
+00
+c9
+91
+68
+02
+49
+60
+60
+02
+49
+92
+d8
+40
+00
+06
+da
+20
+49
+90
+20
+40
+04
+53
+20
+20
+04
+66
+68
+01
+49
+56
+1f
+e0
+fe
+01
+60
+01
+49
+56
+20
+40
+03
+ca
+20
+20
+06
+36
+85
+6f
+aa
+55
+48
+21
+02
+02
+46
+e7
+09
+f6
+08
+df
+fa
+80
+46
+e7
+09
+f2
+08
+df
+fa
+80
+3e
+88
+82
+8c
+83
+e7
+09
+f0
+a3
+df
+fa
+80
+32
+e3
+09
+f6
+08
+df
+fa
+80
+78
+e3
+09
+f2
+08
+df
+fa
+80
+70
+88
+82
+8c
+83
+e3
+09
+f0
+a3
+df
+fa
+80
+64
+89
+82
+8a
+83
+e0
+a3
+f6
+08
+df
+fa
+80
+58
+89
+82
+8a
+83
+e0
+a3
+f2
+08
+df
+fa
+80
+4c
+80
+d2
+80
+fa
+80
+c6
+80
+d4
+80
+69
+80
+f2
+80
+33
+80
+10
+80
+a6
+80
+ea
+80
+9a
+80
+a8
+80
+da
+80
+e2
+80
+ca
+80
+33
+89
+82
+8a
+83
+ec
+fa
+e4
+93
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+e9
+de
+e7
+80
+0d
+89
+82
+8a
+83
+e4
+93
+a3
+f6
+08
+df
+f9
+ec
+fa
+a9
+f0
+ed
+fb
+22
+89
+82
+8a
+83
+ec
+fa
+e0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+ea
+de
+e8
+80
+db
+89
+82
+8a
+83
+e4
+93
+a3
+f2
+08
+df
+f9
+80
+cc
+88
+f0
+ef
+60
+01
+0e
+4e
+60
+c3
+88
+f0
+ed
+24
+02
+b4
+04
+00
+50
+b9
+f5
+82
+eb
+24
+02
+b4
+04
+00
+50
+af
+23
+23
+45
+82
+23
+90
+00
+53
+73
+bb
+01
+06
+89
+82
+8a
+83
+e0
+22
+50
+02
+e7
+22
+bb
+fe
+02
+e3
+22
+89
+82
+8a
+83
+e4
+93
+22
+bb
+01
+0c
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e0
+22
+50
+06
+e9
+25
+82
+f8
+e6
+22
+bb
+fe
+06
+e9
+25
+82
+f8
+e2
+22
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e4
+93
+22
+bb
+01
+06
+89
+82
+8a
+83
+f0
+22
+50
+02
+f7
+22
+bb
+fe
+01
+f3
+22
+ef
+8d
+f0
+a4
+a8
+f0
+cf
+8c
+f0
+a4
+28
+ce
+8d
+f0
+a4
+2e
+fe
+22
+bc
+00
+0b
+be
+00
+29
+ef
+8d
+f0
+84
+ff
+ad
+f0
+22
+e4
+cc
+f8
+75
+f0
+08
+ef
+2f
+ff
+ee
+33
+fe
+ec
+33
+fc
+ee
+9d
+ec
+98
+40
+05
+fc
+ee
+9d
+fe
+0f
+d5
+f0
+e9
+e4
+ce
+fd
+22
+ed
+f8
+f5
+f0
+ee
+84
+20
+d2
+1c
+fe
+ad
+f0
+75
+f0
+08
+ef
+2f
+ff
+ed
+33
+fd
+40
+07
+98
+50
+06
+d5
+f0
+f2
+22
+c3
+98
+fd
+0f
+d5
+f0
+ea
+22
+c2
+d5
+ec
+30
+e7
+09
+b2
+d5
+e4
+c3
+9d
+fd
+e4
+9c
+fc
+ee
+30
+e7
+15
+b2
+d5
+e4
+c3
+9f
+ff
+e4
+9e
+fe
+12
+01
+63
+c3
+e4
+9d
+fd
+e4
+9c
+fc
+80
+03
+12
+01
+63
+30
+d5
+07
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+22
+c5
+f0
+f8
+a3
+e0
+28
+f0
+c5
+f0
+f8
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+38
+f0
+22
+a3
+f8
+e0
+c5
+f0
+25
+f0
+f0
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+c8
+38
+f0
+e8
+22
+d0
+83
+d0
+82
+f8
+e4
+93
+70
+12
+74
+01
+93
+70
+0d
+a3
+a3
+93
+f8
+74
+01
+93
+f5
+82
+88
+83
+e4
+73
+74
+02
+93
+68
+60
+ef
+a3
+a3
+a3
+80
+df
+8a
+83
+89
+82
+e4
+73
+78
+7f
+e4
+f6
+d8
+fd
+75
+81
+cf
+02
+02
+8d
+02
+02
+f1
+e4
+93
+a3
+f8
+e4
+93
+a3
+40
+03
+f6
+80
+01
+f2
+08
+df
+f4
+80
+29
+e4
+93
+a3
+f8
+54
+07
+24
+0c
+c8
+c3
+33
+c4
+54
+0f
+44
+20
+c8
+83
+40
+04
+f4
+56
+80
+01
+46
+f6
+df
+e4
+80
+0b
+01
+02
+04
+08
+10
+20
+40
+80
+90
+02
+d2
+e4
+7e
+01
+93
+60
+bc
+a3
+ff
+54
+3f
+30
+e5
+09
+54
+1f
+fe
+e4
+93
+a3
+60
+01
+0e
+cf
+54
+c0
+25
+e0
+60
+a8
+40
+b8
+e4
+93
+a3
+fa
+e4
+93
+a3
+f8
+e4
+93
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+f0
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+df
+e9
+de
+e7
+80
+be
+52
+1b
+ab
+ff
+04
+1f
+00
+00
+00
+ff
+1d
+e3
+ff
+17
+1e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+01
+01
+00
+12
+1e
+ec
+90
+4e
+78
+e0
+b4
+01
+03
+12
+12
+ce
+12
+13
+cf
+12
+16
+65
+12
+11
+51
+12
+1c
+67
+90
+0b
+2a
+e0
+14
+60
+58
+24
+fe
+70
+e9
+e4
+90
+4f
+00
+f0
+12
+0f
+20
+e4
+ff
+ef
+24
+70
+fd
+e4
+34
+80
+8d
+82
+f5
+83
+e4
+f0
+0f
+ef
+b4
+10
+ee
+7f
+02
+12
+0d
+22
+50
+08
+c2
+06
+7f
+02
+71
+a1
+80
+06
+d2
+06
+7f
+02
+71
+a1
+7f
+03
+12
+0d
+22
+50
+08
+c2
+06
+7f
+03
+71
+a1
+80
+06
+d2
+06
+7f
+03
+71
+a1
+d2
+07
+7f
+08
+12
+10
+7f
+f1
+16
+12
+16
+3a
+80
+fe
+90
+4e
+c7
+e0
+70
+06
+90
+4e
+c1
+e0
+60
+05
+12
+13
+c3
+80
+84
+90
+4e
+bd
+e0
+ff
+64
+01
+60
+09
+ef
+64
+02
+60
+04
+ef
+b4
+07
+0d
+f1
+16
+c2
+08
+7f
+18
+f1
+81
+12
+16
+3a
+41
+fe
+12
+13
+c3
+41
+fe
+41
+fe
+22
+ac
+07
+a2
+06
+92
+04
+12
+1f
+c1
+af
+04
+a2
+06
+b3
+92
+03
+12
+10
+92
+af
+04
+c2
+05
+7b
+01
+7a
+80
+79
+70
+a2
+05
+92
+01
+90
+1c
+1f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+fe
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+fd
+30
+01
+20
+90
+1c
+1f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+11
+f9
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+21
+3f
+90
+1c
+1f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+11
+f9
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5f
+21
+3f
+90
+1b
+bd
+ef
+f0
+e4
+90
+1b
+bf
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+78
+c3
+7c
+1b
+7d
+01
+7b
+ff
+7a
+02
+79
+e8
+fe
+7f
+06
+11
+d3
+90
+1b
+bd
+e0
+51
+1a
+06
+8c
+14
+06
+f7
+15
+04
+68
+2f
+05
+cb
+39
+06
+56
+3a
+05
+f6
+3b
+05
+9c
+3c
+04
+65
+3d
+06
+6b
+40
+00
+00
+07
+15
+12
+1e
+9d
+12
+19
+58
+c2
+06
+7f
+18
+71
+a1
+c2
+06
+7f
+12
+71
+a1
+c2
+06
+7f
+13
+71
+a1
+c2
+06
+7f
+02
+71
+a1
+c2
+06
+7f
+03
+71
+a1
+c2
+06
+7f
+04
+71
+a1
+c2
+06
+7f
+17
+71
+a1
+c2
+06
+7f
+1b
+71
+a1
+c2
+06
+7f
+17
+71
+a1
+c2
+06
+7f
+04
+71
+a1
+c2
+06
+7f
+06
+71
+a1
+d2
+07
+7f
+08
+12
+10
+7f
+d2
+07
+7f
+07
+12
+10
+7f
+7f
+12
+12
+0d
+22
+40
+07
+e4
+90
+4e
+f0
+f0
+80
+06
+90
+4e
+f0
+74
+01
+f0
+7f
+13
+12
+0d
+22
+50
+0a
+90
+42
+cf
+74
+04
+f0
+a3
+74
+30
+f0
+12
+16
+fa
+12
+21
+24
+12
+08
+49
+90
+4e
+d9
+ef
+f0
+7b
+01
+7a
+4e
+79
+db
+7d
+01
+7c
+00
+7f
+a8
+7e
+3f
+12
+18
+88
+90
+4e
+db
+e0
+d3
+94
+03
+40
+03
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+db
+7d
+01
+7c
+00
+7f
+a8
+7e
+3f
+12
+19
+a4
+12
+0a
+8f
+90
+80
+80
+e4
+f0
+90
+4e
+de
+f0
+90
+4e
+dd
+f0
+7f
+04
+12
+0d
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+bf
+ef
+f0
+7f
+17
+12
+0d
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+c1
+ef
+f0
+7f
+1b
+12
+0d
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+c0
+ef
+f0
+e0
+ff
+25
+e0
+ff
+90
+1b
+bf
+e0
+4f
+ff
+90
+1b
+c1
+e0
+fe
+25
+e0
+25
+e0
+4f
+ff
+a3
+f0
+bf
+05
+0c
+90
+1b
+bd
+e0
+b4
+2f
+05
+7f
+25
+02
+0e
+78
+90
+4e
+a7
+e0
+b4
+01
+09
+12
+19
+37
+e4
+90
+4e
+a7
+f0
+22
+02
+19
+37
+90
+4e
+bd
+e0
+b4
+07
+15
+90
+49
+c1
+e0
+ff
+64
+01
+70
+02
+e1
+15
+ef
+b4
+02
+06
+90
+49
+c1
+74
+01
+f0
+12
+16
+fa
+d2
+07
+7f
+07
+12
+10
+7f
+c2
+06
+7f
+07
+71
+a1
+02
+21
+24
+90
+4e
+bd
+74
+01
+f0
+fb
+7a
+4e
+79
+bd
+fd
+7c
+00
+7f
+a9
+7e
+3f
+12
+19
+a4
+7b
+01
+7a
+49
+79
+06
+7d
+06
+7c
+00
+7f
+a2
+7e
+3f
+12
+19
+a4
+7f
+23
+02
+0e
+78
+12
+0f
+16
+e4
+90
+4e
+e3
+f0
+90
+4e
+f2
+e0
+60
+13
+04
+f0
+e0
+54
+07
+f0
+30
+e0
+05
+7f
+23
+02
+0e
+78
+7f
+25
+02
+0e
+78
+7b
+01
+7a
+1b
+79
+c3
+7d
+06
+7c
+00
+7f
+9c
+7e
+3f
+12
+18
+88
+90
+1b
+c3
+e0
+f4
+70
+24
+a3
+e0
+f4
+70
+1f
+a3
+e0
+b4
+ff
+1a
+a3
+e0
+b4
+ff
+15
+a3
+e0
+b4
+ff
+10
+a3
+e0
+b4
+ff
+0b
+90
+4f
+01
+74
+01
+f0
+a3
+74
+1e
+f0
+22
+02
+19
+37
+12
+08
+07
+90
+4e
+e3
+74
+01
+f0
+e4
+90
+4e
+f1
+f0
+a3
+f0
+90
+4e
+be
+f0
+22
+12
+16
+fa
+12
+0c
+cf
+7d
+06
+7f
+80
+12
+0a
+64
+7b
+01
+7a
+4e
+79
+db
+7d
+01
+7c
+00
+7f
+a8
+7e
+3f
+12
+18
+88
+02
+0a
+8f
+e4
+90
+4e
+84
+f0
+7f
+0e
+12
+0e
+78
+7f
+02
+12
+0e
+78
+90
+4e
+bd
+74
+07
+f0
+90
+1b
+be
+74
+09
+f0
+12
+08
+07
+7b
+01
+7a
+03
+79
+72
+7d
+06
+7c
+00
+7f
+96
+7e
+3f
+12
+19
+a4
+7f
+0a
+7e
+00
+12
+16
+46
+7b
+01
+7a
+45
+79
+3e
+7d
+06
+7c
+00
+7f
+9c
+7e
+3f
+12
+19
+a4
+7f
+0a
+7e
+00
+12
+16
+46
+7b
+01
+7a
+1b
+79
+be
+7d
+01
+7c
+00
+7f
+a9
+7e
+3f
+12
+19
+a4
+90
+4e
+be
+74
+06
+f0
+e4
+90
+4e
+c2
+f0
+22
+90
+4e
+be
+e0
+b4
+08
+0a
+12
+0e
+38
+90
+4e
+bd
+74
+03
+f0
+22
+90
+4e
+be
+e0
+b4
+06
+03
+02
+17
+54
+12
+19
+37
+22
+90
+00
+a0
+e4
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+0b
+46
+c2
+07
+7f
+07
+12
+10
+7f
+c2
+06
+7f
+04
+71
+a1
+c2
+06
+7f
+1b
+71
+a1
+c2
+06
+7f
+17
+71
+a1
+c2
+06
+7f
+17
+71
+a1
+c2
+06
+7f
+04
+71
+a1
+c2
+06
+7f
+06
+71
+a1
+7f
+02
+f1
+6d
+7f
+03
+f1
+6d
+7f
+04
+f1
+6d
+7f
+17
+f1
+6d
+7f
+1b
+f1
+6d
+7f
+17
+f1
+6d
+7f
+04
+f1
+6d
+7f
+06
+90
+1c
+2c
+ef
+f0
+12
+0d
+22
+92
+09
+90
+1c
+2c
+e0
+ff
+a2
+09
+b3
+92
+08
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+30
+08
+43
+24
+a0
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+d0
+82
+d0
+83
+f0
+22
+74
+a0
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+fc
+4d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+ff
+ec
+f4
+fe
+ef
+5e
+f0
+22
+91
+b9
+91
+cf
+7f
+18
+b1
+22
+40
+0e
+7f
+02
+11
+20
+7f
+03
+11
+20
+7f
+04
+11
+20
+80
+ec
+22
+90
+02
+18
+ef
+f0
+90
+80
+88
+74
+01
+f0
+a3
+e4
+f0
+90
+80
+8e
+04
+f0
+a3
+e4
+f0
+90
+80
+06
+74
+02
+f0
+90
+81
+2c
+e0
+30
+e3
+f9
+90
+02
+1d
+e0
+ff
+22
+e4
+90
+1c
+27
+f0
+a3
+f0
+e4
+ff
+11
+20
+bf
+31
+18
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+90
+1c
+28
+74
+31
+f0
+21
+28
+7f
+01
+11
+20
+bf
+5a
+18
+90
+1c
+28
+74
+5a
+f0
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+21
+28
+e4
+ff
+11
+20
+ef
+64
+30
+60
+02
+21
+24
+7f
+01
+11
+20
+bf
+54
+08
+90
+1c
+28
+74
+31
+f0
+21
+28
+7f
+01
+11
+20
+ef
+54
+f0
+64
+d0
+70
+28
+7f
+1e
+11
+20
+ef
+30
+e0
+08
+90
+1c
+28
+74
+d1
+f0
+80
+06
+90
+1c
+28
+74
+d0
+f0
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+80
+4d
+7f
+01
+11
+20
+ef
+54
+f0
+ff
+bf
+50
+18
+90
+1c
+28
+74
+50
+f0
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+80
+2a
+7f
+01
+11
+20
+bf
+02
+1f
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+90
+1c
+28
+74
+02
+f0
+7f
+01
+11
+20
+ef
+64
+02
+60
+04
+91
+cf
+01
+50
+90
+1c
+28
+e0
+64
+d0
+60
+02
+21
+f8
+7d
+09
+7f
+5a
+51
+64
+7d
+0d
+7f
+0a
+51
+64
+7d
+1b
+7f
+35
+51
+64
+7d
+1d
+7f
+db
+51
+64
+7d
+28
+7f
+b4
+51
+64
+7d
+29
+7f
+46
+51
+64
+7d
+2a
+7f
+96
+51
+64
+7d
+2b
+7f
+8c
+51
+64
+7d
+2c
+7f
+6e
+51
+64
+7d
+2d
+7f
+64
+51
+64
+7d
+38
+7f
+5f
+51
+64
+7d
+39
+7f
+0f
+51
+64
+7d
+3a
+7f
+32
+51
+64
+7d
+3b
+7f
+47
+51
+64
+7d
+42
+7f
+10
+51
+64
+7d
+43
+7f
+09
+51
+64
+7d
+54
+7f
+2e
+51
+64
+7d
+55
+7f
+f2
+51
+64
+7d
+61
+7f
+f4
+51
+64
+7d
+63
+7f
+70
+51
+64
+7d
+75
+7f
+52
+51
+64
+7d
+76
+7f
+41
+51
+64
+7d
+77
+7f
+ed
+51
+64
+7d
+78
+7f
+23
+51
+64
+7d
+79
+7f
+46
+51
+64
+7d
+7a
+7f
+e5
+51
+64
+7d
+7c
+7f
+48
+51
+64
+7d
+7d
+7f
+80
+51
+64
+7d
+7e
+7f
+77
+51
+64
+7d
+7f
+7f
+01
+51
+64
+7d
+0b
+e4
+ff
+51
+64
+7d
+7f
+e4
+ff
+51
+64
+7d
+09
+e4
+ff
+51
+64
+90
+1c
+28
+e0
+b4
+02
+18
+7d
+09
+7f
+5a
+51
+64
+7d
+26
+7f
+34
+51
+64
+7d
+19
+7f
+14
+51
+64
+7d
+09
+e4
+ff
+51
+64
+90
+1c
+28
+e0
+64
+50
+70
+3f
+7d
+09
+7f
+5a
+51
+64
+7d
+5b
+7f
+9a
+51
+64
+7f
+0d
+11
+20
+ef
+64
+12
+60
+08
+7d
+0d
+7f
+12
+51
+64
+80
+ef
+7f
+0e
+11
+20
+ef
+64
+c5
+60
+08
+7d
+0e
+7f
+c5
+51
+64
+80
+ef
+7f
+53
+11
+20
+ef
+64
+48
+60
+08
+7d
+53
+7f
+48
+51
+64
+80
+ef
+90
+1c
+28
+e0
+ff
+22
+ac
+07
+ed
+44
+80
+90
+02
+18
+f0
+a3
+ef
+f0
+90
+80
+88
+74
+02
+f0
+a3
+e4
+f0
+90
+80
+8e
+f0
+a3
+f0
+90
+80
+06
+74
+02
+f0
+90
+81
+2c
+e0
+30
+e3
+f9
+7f
+00
+22
+91
+cf
+90
+4e
+d9
+e0
+ff
+64
+d0
+60
+04
+ef
+b4
+d1
+0a
+90
+4e
+db
+e0
+04
+ff
+7d
+06
+51
+64
+90
+4e
+d9
+e0
+b4
+31
+18
+90
+4e
+db
+e0
+b4
+01
+08
+7d
+06
+e4
+ff
+51
+64
+80
+09
+90
+4e
+db
+e0
+ff
+7d
+06
+51
+64
+90
+4e
+d9
+e0
+b4
+50
+0b
+90
+4e
+db
+e0
+24
+03
+ff
+7d
+06
+51
+64
+90
+4e
+d9
+e0
+b4
+5a
+0b
+90
+4e
+db
+e0
+24
+03
+ff
+7d
+06
+51
+64
+90
+4e
+d9
+e0
+64
+02
+70
+53
+7d
+09
+7f
+5a
+51
+64
+90
+4e
+db
+e0
+14
+60
+18
+14
+60
+23
+14
+60
+2e
+24
+03
+70
+36
+7d
+0d
+7f
+15
+51
+64
+7d
+0e
+7f
+15
+51
+64
+80
+28
+7d
+0d
+7f
+20
+51
+64
+7d
+0e
+7f
+20
+51
+64
+80
+1a
+7d
+0d
+7f
+2a
+51
+64
+7d
+0e
+7f
+2a
+51
+64
+80
+0c
+7d
+0d
+7f
+3f
+51
+64
+7d
+0e
+7f
+3f
+51
+64
+7d
+09
+e4
+ff
+51
+64
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+22
+e4
+90
+1c
+06
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7f
+18
+b1
+22
+50
+02
+c3
+22
+91
+cf
+7f
+02
+11
+20
+ef
+20
+e7
+02
+81
+b7
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+d9
+e0
+64
+02
+60
+16
+7f
+03
+11
+20
+90
+1c
+06
+ef
+f0
+7f
+04
+11
+20
+ef
+f4
+04
+90
+1c
+07
+f0
+80
+29
+7f
+03
+11
+20
+90
+1c
+06
+ef
+f0
+7f
+04
+11
+20
+90
+1c
+07
+ef
+f0
+7f
+12
+11
+20
+90
+1c
+09
+ef
+f0
+e0
+ff
+c4
+54
+0f
+90
+1c
+08
+f0
+ef
+54
+0f
+a3
+f0
+71
+46
+90
+4e
+d9
+e0
+64
+02
+70
+2a
+90
+1c
+08
+e0
+ff
+30
+e3
+05
+44
+f0
+f0
+80
+07
+90
+1c
+08
+e0
+54
+0f
+f0
+90
+1c
+09
+e0
+ff
+30
+e3
+05
+44
+f0
+f0
+80
+31
+90
+1c
+09
+e0
+54
+0f
+f0
+80
+28
+90
+1c
+06
+e0
+30
+e7
+08
+90
+1c
+08
+74
+ff
+f0
+80
+05
+e4
+90
+1c
+08
+f0
+90
+1c
+07
+e0
+30
+e7
+08
+90
+1c
+09
+74
+ff
+f0
+80
+05
+e4
+90
+1c
+09
+f0
+90
+4e
+f0
+e0
+70
+31
+90
+1c
+08
+e0
+fe
+90
+1c
+06
+e0
+fd
+ee
+ed
+ff
+c3
+e4
+9f
+ff
+e4
+9e
+90
+4e
+fd
+f0
+a3
+ef
+f0
+90
+1c
+09
+e0
+fe
+90
+1c
+07
+e0
+fd
+ee
+ed
+ff
+90
+4e
+fb
+ee
+f0
+a3
+ef
+f0
+80
+2a
+90
+1c
+08
+e0
+fe
+90
+1c
+06
+e0
+fd
+ee
+ed
+ff
+90
+4e
+fb
+ee
+f0
+a3
+ef
+f0
+90
+1c
+09
+e0
+fe
+90
+1c
+07
+e0
+fd
+ee
+ed
+ff
+90
+4e
+fd
+ee
+f0
+a3
+ef
+f0
+90
+4e
+fb
+e0
+fe
+a3
+e0
+ff
+c3
+e4
+9f
+ff
+e4
+9e
+90
+4e
+fb
+f0
+a3
+ef
+f0
+a3
+e0
+fe
+a3
+e0
+ff
+c3
+e4
+9f
+ff
+e4
+9e
+90
+4e
+fd
+f0
+a3
+ef
+f0
+90
+4e
+bd
+e0
+b4
+01
+03
+12
+20
+22
+d3
+22
+c3
+22
+e4
+ff
+91
+cf
+7f
+06
+11
+20
+ef
+54
+f7
+ff
+7d
+06
+51
+64
+7f
+02
+11
+20
+61
+46
+e4
+90
+1c
+33
+f0
+90
+80
+81
+04
+f0
+e4
+90
+4f
+00
+f0
+90
+4f
+00
+e0
+04
+f0
+e0
+c3
+94
+06
+40
+03
+12
+16
+fa
+e4
+ff
+11
+20
+90
+1c
+33
+ef
+f0
+64
+30
+60
+27
+e0
+64
+31
+60
+22
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+54
+fd
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+81
+74
+01
+f0
+80
+bd
+22
+7b
+01
+7a
+81
+79
+1c
+ad
+07
+e4
+90
+1c
+2b
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+01
+12
+fd
+33
+95
+e0
+fc
+90
+1c
+2b
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
+e4
+90
+1b
+f8
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7f
+04
+b1
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+f8
+ef
+f0
+7f
+17
+b1
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+fa
+ef
+f0
+7f
+1b
+b1
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+f9
+ef
+f0
+e0
+ff
+25
+e0
+ff
+90
+1b
+f8
+e0
+4f
+ff
+90
+1b
+fa
+e0
+fe
+25
+e0
+25
+e0
+4f
+a3
+f0
+64
+07
+70
+70
+90
+4f
+02
+74
+1e
+f0
+e4
+90
+4e
+c4
+f0
+a3
+f0
+90
+4e
+c7
+74
+0a
+f0
+90
+4e
+c6
+e0
+c3
+94
+19
+50
+59
+90
+4e
+c6
+e0
+04
+f0
+e0
+64
+19
+70
+4e
+90
+4f
+01
+f0
+a3
+f0
+90
+4e
+bd
+e0
+60
+32
+14
+60
+1e
+24
+fb
+60
+2b
+24
+fe
+60
+0e
+04
+70
+34
+7f
+11
+d1
+78
+90
+4e
+be
+74
+08
+f0
+22
+90
+4e
+bd
+74
+03
+f0
+80
+22
+f1
+16
+7f
+0a
+7e
+00
+12
+16
+46
+90
+4e
+bd
+74
+03
+f0
+80
+11
+f1
+16
+90
+4e
+bd
+74
+03
+f0
+80
+07
+22
+e4
+90
+4e
+c6
+f0
+22
+7b
+01
+7a
+4f
+79
+11
+7d
+02
+7c
+00
+7f
+aa
+7e
+3f
+12
+18
+88
+90
+4f
+12
+e0
+04
+f0
+70
+06
+90
+4f
+11
+e0
+04
+f0
+7b
+01
+7a
+4f
+79
+11
+7d
+02
+7c
+00
+7f
+aa
+7e
+3f
+12
+19
+a4
+90
+4f
+11
+e0
+fc
+a3
+e0
+90
+45
+3f
+f0
+ec
+a3
+f0
+7f
+0d
+90
+1c
+12
+ef
+f0
+78
+13
+7c
+1c
+7d
+01
+7b
+ff
+7a
+02
+79
+ee
+7e
+00
+7f
+03
+12
+00
+d3
+90
+1c
+12
+e0
+90
+1c
+15
+f0
+7b
+01
+7a
+1c
+79
+13
+7d
+03
+90
+1b
+ed
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+47
+c6
+e0
+ff
+a3
+e0
+90
+1b
+f1
+cf
+f0
+a3
+ef
+f0
+90
+1b
+f0
+e0
+ff
+14
+f0
+ef
+60
+3f
+90
+1b
+ed
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+12
+00
+f9
+ff
+90
+1b
+f1
+e4
+75
+f0
+01
+12
+02
+04
+85
+f0
+82
+f5
+83
+ef
+f0
+90
+1b
+f1
+e0
+fe
+a3
+e0
+ff
+be
+47
+c6
+bf
+c4
+c3
+90
+1b
+f1
+74
+47
+f0
+a3
+74
+2e
+f0
+80
+b7
+90
+1b
+f1
+e0
+ff
+a3
+e0
+90
+47
+c6
+cf
+f0
+a3
+ef
+f0
+22
+7f
+24
+d1
+78
+e4
+90
+4e
+bd
+f0
+22
+e4
+ff
+91
+cf
+7f
+06
+11
+20
+ef
+44
+08
+ff
+7d
+06
+51
+64
+90
+80
+81
+e4
+f0
+c2
+06
+7f
+19
+12
+03
+a1
+c2
+06
+7f
+1a
+02
+03
+a1
+90
+4e
+dc
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+06
+b1
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+dc
+f0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+dc
+e0
+64
+07
+70
+29
+90
+4e
+db
+e0
+04
+f0
+e0
+54
+03
+f0
+70
+02
+04
+f0
+90
+4e
+db
+e0
+90
+4e
+dd
+f0
+51
+8f
+7b
+01
+7a
+4e
+79
+db
+7d
+01
+7c
+00
+7f
+a8
+7e
+3f
+12
+19
+a4
+22
+7b
+01
+7a
+49
+79
+50
+7d
+04
+7c
+00
+7f
+a4
+7e
+3f
+12
+18
+88
+90
+49
+50
+e0
+f4
+70
+27
+a3
+e0
+f4
+70
+22
+a3
+e0
+b4
+ff
+1d
+a3
+e0
+b4
+ff
+18
+90
+49
+50
+74
+0f
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7f
+23
+d1
+78
+90
+4e
+f2
+74
+01
+f0
+80
+04
+7f
+23
+d1
+78
+90
+4e
+bd
+74
+01
+f0
+22
+d2
+07
+7f
+07
+12
+10
+7f
+90
+4e
+ca
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+04
+b1
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+ca
+f0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+ca
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+cb
+f0
+90
+4e
+cb
+e0
+ff
+22
+d2
+07
+7f
+07
+11
+7f
+90
+4e
+cc
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+17
+12
+0d
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+cc
+f0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+cc
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+cd
+f0
+90
+4e
+cd
+e0
+ff
+22
+ac
+07
+d2
+05
+12
+03
+b8
+af
+04
+a2
+07
+92
+02
+11
+9f
+af
+04
+c2
+03
+7b
+01
+7a
+80
+79
+78
+a2
+03
+92
+01
+02
+03
+c2
+7b
+01
+7a
+80
+79
+74
+a2
+02
+92
+01
+02
+03
+c2
+90
+4e
+dd
+e0
+70
+06
+a3
+04
+f0
+e4
+a3
+f0
+90
+4e
+dd
+e0
+60
+38
+90
+4e
+df
+e0
+04
+f0
+e0
+54
+07
+64
+05
+70
+69
+90
+4e
+c7
+74
+0a
+f0
+90
+4e
+de
+e0
+60
+0c
+c2
+02
+7f
+08
+11
+9f
+e4
+90
+4e
+de
+f0
+22
+d2
+02
+7f
+08
+11
+9f
+90
+4e
+de
+74
+01
+f0
+90
+4e
+dd
+e0
+14
+f0
+22
+90
+4e
+bd
+e0
+b4
+03
+14
+90
+4e
+c7
+74
+45
+f0
+90
+4e
+c9
+e0
+54
+07
+64
+04
+70
+27
+7f
+08
+80
+24
+90
+4e
+e2
+e0
+60
+17
+90
+4e
+c9
+e0
+54
+1f
+c3
+94
+05
+50
+0c
+90
+4e
+c7
+74
+0a
+f0
+c2
+02
+7f
+08
+01
+9f
+d2
+02
+7f
+08
+11
+9f
+22
+90
+1c
+2d
+ef
+f0
+7b
+01
+7a
+80
+79
+74
+12
+0d
+28
+92
+0a
+90
+1c
+2d
+e0
+ff
+a2
+0a
+b3
+92
+02
+01
+9f
+e4
+90
+1b
+f3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+0f
+e7
+90
+1b
+f3
+ef
+f0
+11
+33
+90
+1b
+f5
+ef
+f0
+51
+82
+90
+1b
+f4
+ef
+f0
+31
+b4
+90
+1b
+f6
+ef
+f0
+51
+1b
+90
+1b
+f7
+ef
+f0
+12
+0f
+43
+90
+1b
+f4
+e0
+ff
+25
+e0
+ff
+90
+1b
+f3
+e0
+4f
+ff
+90
+1b
+f5
+e0
+fe
+25
+e0
+25
+e0
+4f
+ff
+a3
+e0
+fe
+33
+33
+33
+54
+f8
+4f
+ff
+a3
+e0
+fe
+c4
+54
+f0
+4f
+90
+4e
+ed
+f0
+22
+7f
+17
+12
+0d
+22
+40
+03
+7f
+00
+22
+c2
+07
+7f
+07
+11
+7f
+90
+4e
+d2
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+17
+12
+0d
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+d2
+f0
+d2
+07
+7f
+07
+11
+7f
+c2
+06
+7f
+07
+12
+03
+a1
+90
+4e
+d2
+e0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+d2
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+d3
+f0
+90
+4e
+d3
+e0
+ff
+22
+7f
+04
+12
+0d
+22
+40
+03
+7f
+00
+22
+c2
+07
+7f
+07
+11
+7f
+90
+4e
+d0
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+04
+12
+0d
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+d0
+f0
+d2
+07
+7f
+07
+11
+7f
+c2
+06
+7f
+07
+12
+03
+a1
+90
+4e
+d0
+e0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+d0
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+d1
+f0
+90
+4e
+d1
+e0
+ff
+22
+d2
+07
+7f
+07
+11
+7f
+90
+4e
+ce
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+1b
+12
+0d
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+ce
+f0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+ce
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+cf
+f0
+90
+4e
+cf
+e0
+ff
+22
+e4
+90
+1b
+e1
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+7d
+f0
+d1
+fa
+90
+4e
+bd
+e0
+b4
+01
+17
+90
+4e
+e3
+e0
+b4
+01
+10
+7f
+18
+12
+0d
+22
+40
+09
+12
+0b
+5a
+e4
+33
+90
+1b
+e5
+f0
+90
+4e
+bd
+74
+01
+f0
+90
+1b
+e6
+e0
+04
+f0
+71
+cf
+90
+1b
+e6
+e0
+d3
+94
+05
+40
+0b
+74
+05
+f0
+90
+4e
+7d
+74
+02
+f0
+80
+75
+d1
+65
+31
+51
+90
+4e
+7d
+e0
+70
+6b
+90
+4e
+d8
+e0
+60
+16
+90
+1b
+e5
+74
+01
+f0
+90
+4e
+7d
+74
+03
+f0
+90
+49
+b7
+74
+01
+f0
+90
+4e
+80
+f0
+90
+4e
+ed
+e0
+ff
+90
+4e
+d4
+e0
+6f
+60
+1d
+90
+49
+b7
+74
+01
+f0
+90
+1b
+e5
+f0
+90
+4e
+7d
+74
+03
+f0
+90
+4e
+d4
+ef
+f0
+bf
+07
+05
+e4
+90
+1b
+e5
+f0
+90
+4e
+d4
+e0
+b4
+07
+06
+90
+4e
+7d
+74
+03
+f0
+90
+1b
+e5
+e0
+b4
+01
+12
+f1
+6e
+e4
+90
+1b
+e5
+f0
+90
+4e
+7d
+e0
+64
+03
+60
+03
+74
+01
+f0
+90
+0b
+2a
+e0
+64
+01
+60
+02
+61
+07
+90
+4e
+c7
+e0
+70
+06
+90
+4e
+c1
+e0
+60
+02
+80
+13
+90
+4e
+bd
+e0
+b4
+01
+0c
+12
+07
+16
+c2
+08
+7f
+18
+12
+07
+81
+c1
+3a
+90
+0b
+2b
+74
+01
+f0
+e4
+90
+0b
+2a
+f0
+22
+7a
+1a
+79
+00
+90
+1c
+22
+74
+01
+f0
+a3
+74
+1a
+f0
+a3
+74
+00
+f0
+90
+48
+2e
+e0
+fe
+a3
+e0
+ff
+90
+48
+2c
+e0
+6e
+70
+03
+a3
+e0
+6f
+70
+02
+a1
+86
+7b
+01
+7a
+1a
+79
+00
+7d
+03
+b1
+df
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+b4
+02
+2b
+90
+1c
+23
+e4
+75
+f0
+02
+12
+01
+ee
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+ff
+90
+48
+30
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+12
+02
+44
+a1
+86
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+64
+04
+70
+5b
+90
+1c
+23
+75
+f0
+01
+12
+01
+ee
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+b1
+df
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+22
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+fd
+7c
+00
+90
+48
+33
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+02
+44
+a1
+86
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+64
+05
+70
+5b
+90
+1c
+23
+75
+f0
+01
+12
+01
+ee
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+b1
+df
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+22
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+fd
+7c
+00
+90
+48
+3c
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+02
+44
+80
+6f
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+64
+03
+70
+5b
+90
+1c
+23
+75
+f0
+01
+12
+01
+ee
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+b1
+df
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+22
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+fd
+7c
+00
+90
+48
+3f
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+02
+44
+80
+02
+80
+fe
+90
+48
+98
+e0
+fe
+a3
+e0
+ff
+90
+48
+9a
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+21
+90
+48
+36
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+36
+12
+02
+40
+90
+48
+9b
+e0
+04
+f0
+70
+06
+90
+48
+9a
+e0
+04
+f0
+80
+cb
+90
+48
+9c
+e0
+ff
+a3
+e0
+6f
+60
+19
+90
+48
+39
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+0b
+12
+02
+40
+90
+48
+9d
+e0
+04
+f0
+80
+dd
+22
+90
+1c
+0e
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+48
+2c
+e0
+fe
+a3
+e0
+ff
+90
+1c
+11
+e0
+fd
+14
+f0
+ed
+60
+32
+0f
+ef
+ac
+06
+70
+01
+0e
+14
+f5
+82
+8c
+83
+e0
+fd
+90
+1c
+0e
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+ed
+12
+01
+3f
+ad
+07
+ac
+06
+bc
+48
+cd
+bd
+2c
+ca
+7e
+47
+7f
+c8
+80
+c4
+90
+48
+2c
+ee
+f0
+a3
+ef
+f0
+22
+e4
+90
+0b
+2b
+f0
+90
+0b
+2a
+f0
+7f
+01
+fe
+d3
+ef
+94
+00
+ee
+94
+00
+40
+15
+e4
+fd
+fc
+0d
+bd
+00
+01
+0c
+bc
+04
+f8
+bd
+a6
+f5
+ef
+1f
+70
+01
+1e
+80
+e2
+22
+e4
+90
+1c
+16
+f0
+a3
+f0
+7f
+02
+12
+0d
+22
+e4
+33
+90
+1c
+18
+f0
+7f
+03
+12
+0d
+22
+e4
+33
+ff
+90
+1c
+18
+e0
+fe
+25
+e0
+4f
+ff
+90
+4e
+d5
+e0
+6f
+60
+5b
+90
+4e
+d6
+e0
+a3
+f0
+90
+4e
+d5
+e0
+a3
+f0
+90
+4e
+d5
+ef
+f0
+fd
+a3
+e0
+75
+f0
+04
+a4
+fb
+aa
+f0
+ed
+75
+f0
+10
+a4
+ff
+e5
+f0
+4a
+fe
+ef
+4b
+ff
+a3
+e0
+fd
+ee
+ef
+4d
+ff
+90
+1c
+16
+ee
+f0
+a3
+ef
+f0
+ee
+70
+21
+ef
+24
+f5
+60
+14
+24
+d7
+60
+10
+24
+fc
+60
+04
+24
+31
+70
+10
+90
+4e
+d8
+e0
+14
+f0
+80
+09
+90
+4e
+d8
+e0
+04
+f0
+d1
+eb
+22
+90
+4e
+bd
+e0
+64
+01
+60
+06
+90
+4e
+c7
+74
+03
+f0
+22
+90
+80
+86
+74
+75
+f0
+a3
+74
+0a
+f0
+90
+80
+8a
+74
+18
+f0
+a3
+74
+02
+f0
+a3
+74
+1d
+f0
+a3
+74
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+22
+90
+4e
+c7
+e0
+60
+02
+14
+f0
+90
+4e
+c9
+e0
+04
+f0
+90
+4e
+ec
+e0
+60
+02
+04
+f0
+11
+ac
+12
+0d
+67
+12
+1a
+d2
+90
+4f
+01
+e0
+b4
+01
+10
+a3
+e0
+70
+06
+90
+4f
+01
+f0
+f1
+54
+90
+4f
+02
+e0
+14
+f0
+22
+e4
+90
+4e
+c4
+f0
+a3
+f0
+90
+4e
+c7
+f0
+90
+4e
+c1
+04
+f0
+e4
+90
+4e
+bd
+f0
+7f
+19
+02
+0e
+78
+90
+4e
+d4
+e0
+90
+4e
+21
+f0
+90
+4e
+fb
+e0
+fc
+a3
+e0
+90
+4e
+22
+f0
+ec
+ff
+33
+95
+e0
+a3
+ef
+f0
+90
+4e
+fd
+e0
+fc
+a3
+e0
+90
+4e
+24
+f0
+ec
+ff
+33
+95
+e0
+a3
+ef
+f0
+90
+4e
+d8
+e0
+90
+4e
+26
+f0
+e4
+a3
+f0
+90
+4e
+d8
+f0
+90
+4e
+c4
+f0
+a3
+f0
+22
+90
+1c
+02
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+4e
+bd
+e0
+ff
+64
+01
+60
+0a
+ef
+64
+02
+60
+05
+ef
+64
+07
+70
+2e
+ef
+b4
+01
+11
+90
+1c
+02
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+02
+1b
+97
+90
+4e
+bd
+e0
+b4
+07
+10
+90
+1c
+02
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+80
+03
+80
+fe
+22
+90
+1c
+31
+ed
+f0
+90
+1a
+96
+74
+05
+f0
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+31
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+ec
+ed
+f0
+11
+45
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+31
+e0
+24
+02
+fd
+02
+0e
+a0
+90
+1b
+e7
+ee
+f0
+a3
+ef
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+ec
+e0
+ff
+14
+f0
+ef
+60
+27
+90
+1b
+e9
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+12
+00
+f9
+ff
+90
+1b
+e7
+e4
+75
+f0
+01
+12
+02
+04
+85
+f0
+82
+f5
+83
+ef
+f0
+80
+cf
+22
+90
+1b
+fd
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+80
+98
+74
+04
+f0
+a3
+e4
+f0
+90
+1b
+2c
+74
+a0
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+90
+1b
+2f
+74
+a1
+f0
+7a
+1b
+79
+2c
+7e
+1b
+7f
+2c
+74
+2c
+fc
+74
+1b
+ff
+ec
+fe
+ef
+90
+80
+9a
+ee
+f0
+a3
+ef
+f0
+90
+1b
+fd
+e0
+fc
+a3
+e0
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+9e
+ee
+f0
+a3
+ef
+f0
+7a
+1b
+79
+30
+7e
+1b
+7f
+30
+74
+30
+fc
+74
+1b
+ff
+ec
+fe
+ef
+90
+80
+9c
+ee
+f0
+a3
+ef
+f0
+90
+80
+90
+74
+02
+f0
+90
+80
+9c
+a3
+e0
+20
+e7
+07
+90
+80
+90
+e0
+44
+01
+f0
+90
+80
+06
+e0
+44
+04
+f0
+51
+c1
+90
+1b
+ff
+e0
+a3
+e0
+fa
+a3
+e0
+ae
+02
+ff
+7b
+01
+7a
+1b
+79
+30
+90
+1b
+fd
+e0
+a3
+e0
+90
+1b
+ec
+f0
+01
+45
+e4
+90
+4e
+c4
+f0
+a3
+f0
+7b
+01
+7a
+45
+79
+3e
+7d
+06
+fc
+7f
+9c
+7e
+3f
+11
+88
+90
+4e
+bd
+74
+08
+f0
+7f
+27
+02
+0e
+78
+e4
+90
+1c
+29
+f0
+7b
+01
+7a
+1c
+79
+29
+7d
+01
+fc
+7f
+ac
+7e
+3f
+11
+88
+90
+1c
+29
+e0
+b4
+ff
+30
+51
+c9
+90
+4f
+11
+ee
+f0
+a3
+ef
+f0
+7b
+01
+7a
+4f
+79
+11
+7d
+02
+7c
+00
+7f
+aa
+7e
+3f
+31
+a4
+90
+1c
+29
+74
+5a
+f0
+7b
+01
+7a
+1c
+79
+29
+7d
+01
+7c
+00
+7f
+ac
+7e
+3f
+31
+a4
+22
+90
+1b
+c9
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+cb
+e0
+70
+02
+a3
+e0
+70
+02
+41
+53
+90
+1b
+c9
+e0
+fe
+a3
+e0
+ff
+44
+0f
+24
+01
+fd
+e4
+3e
+fc
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+90
+1b
+d0
+f0
+a3
+ef
+f0
+90
+1b
+cb
+e0
+fc
+a3
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
+90
+1b
+d0
+e0
+fe
+a3
+e0
+ff
+80
+04
+ae
+04
+af
+05
+90
+1b
+d0
+ee
+f0
+fc
+a3
+ef
+f0
+fd
+c3
+90
+1b
+cc
+e0
+9d
+f0
+90
+1b
+cb
+e0
+9c
+f0
+90
+1b
+c9
+e0
+fe
+a3
+e0
+ff
+90
+1b
+cd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+51
+54
+7f
+0a
+7e
+00
+12
+16
+46
+90
+1b
+d0
+e0
+fe
+a3
+e0
+ff
+90
+1b
+ce
+ee
+8f
+f0
+12
+01
+ee
+90
+1b
+ca
+e0
+2f
+f0
+90
+1b
+c9
+e0
+3e
+f0
+21
+bb
+22
+90
+1b
+94
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+7e
+1b
+7f
+9b
+90
+1b
+ec
+f0
+11
+45
+90
+1b
+98
+74
+a0
+f0
+90
+1b
+94
+e0
+ff
+a3
+e0
+90
+1b
+99
+cf
+f0
+a3
+ef
+f0
+90
+1b
+97
+e0
+24
+03
+fd
+90
+1b
+96
+e0
+34
+00
+fc
+ed
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+98
+ee
+f0
+a3
+ef
+f0
+7d
+98
+ed
+fa
+74
+1b
+ff
+ea
+fe
+ef
+a3
+ee
+f0
+a3
+ef
+f0
+90
+80
+9e
+e4
+f0
+a3
+f0
+90
+80
+90
+04
+f0
+90
+80
+06
+e0
+44
+04
+f0
+90
+81
+2c
+e0
+30
+e5
+f9
+22
+90
+4e
+41
+e0
+fe
+a3
+e0
+ff
+22
+e4
+90
+1c
+25
+f0
+a3
+f0
+51
+c9
+c0
+06
+c0
+07
+71
+8e
+ac
+06
+ad
+07
+d0
+07
+d0
+06
+c3
+ed
+9f
+ff
+ec
+9e
+90
+1c
+25
+f0
+a3
+ef
+f0
+90
+42
+cf
+e0
+64
+04
+60
+02
+61
+84
+51
+c9
+c0
+06
+c0
+07
+71
+85
+ac
+06
+ad
+07
+d0
+07
+d0
+06
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+7c
+00
+7d
+1e
+12
+01
+63
+7c
+00
+7d
+0a
+12
+01
+51
+c3
+90
+1c
+26
+e0
+9f
+90
+1c
+25
+e0
+9e
+50
+08
+90
+4e
+e2
+74
+01
+f0
+80
+05
+e4
+90
+4e
+e2
+f0
+51
+c9
+c0
+06
+c0
+07
+71
+85
+ac
+06
+ad
+07
+d0
+07
+d0
+06
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+7c
+00
+7d
+1e
+12
+01
+63
+7c
+00
+7d
+09
+12
+01
+51
+c3
+90
+1c
+26
+e0
+9f
+90
+1c
+25
+e0
+9e
+50
+13
+90
+49
+54
+e0
+64
+01
+60
+08
+90
+4e
+bd
+e0
+64
+01
+60
+03
+12
+17
+54
+22
+90
+4e
+43
+e0
+fe
+a3
+e0
+ff
+22
+90
+42
+d1
+e0
+fe
+a3
+e0
+ff
+22
+90
+1c
+2f
+ed
+f0
+90
+1a
+96
+74
+06
+f0
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+2f
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+ec
+ed
+f0
+11
+45
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+2f
+e0
+24
+02
+fd
+02
+0e
+a0
+90
+1c
+30
+ed
+f0
+90
+1a
+96
+74
+04
+f0
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+30
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+ec
+ed
+f0
+11
+45
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+30
+e0
+24
+02
+fd
+02
+0e
+a0
+90
+1c
+2e
+ed
+f0
+90
+1a
+96
+74
+03
+f0
+90
+1c
+2e
+e0
+60
+38
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+2e
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+ec
+ed
+f0
+11
+45
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+2e
+e0
+24
+02
+fd
+12
+0e
+a0
+22
+e4
+90
+1c
+0a
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+c2
+00
+90
+4e
+bd
+e0
+ff
+64
+01
+60
+07
+ef
+64
+07
+60
+02
+a1
+ca
+90
+4e
+e3
+e0
+70
+0a
+90
+4e
+bd
+e0
+64
+01
+70
+02
+a1
+ca
+b1
+cb
+40
+02
+a1
+ca
+90
+4e
+ed
+e0
+ff
+90
+4e
+d4
+e0
+b5
+07
+19
+90
+4e
+c7
+e0
+fe
+d3
+94
+00
+40
+05
+ee
+94
+03
+40
+0a
+90
+4e
+bd
+e0
+b4
+01
+0b
+ef
+60
+08
+d2
+00
+90
+49
+b7
+74
+01
+f0
+90
+4e
+ed
+e0
+90
+4e
+d4
+f0
+e4
+90
+4e
+fb
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+bd
+e0
+b4
+01
+07
+12
+0b
+5a
+72
+00
+92
+00
+90
+4e
+bd
+e0
+b4
+07
+20
+90
+45
+95
+e0
+b4
+01
+19
+12
+16
+fa
+12
+0b
+5a
+72
+00
+92
+00
+90
+4e
+83
+e0
+ff
+90
+4e
+84
+e0
+6f
+60
+03
+e0
+04
+f0
+90
+4e
+d8
+e0
+60
+1f
+d2
+00
+90
+49
+b7
+74
+01
+f0
+90
+4e
+80
+f0
+90
+4e
+bd
+e0
+b4
+07
+0c
+90
+4e
+81
+74
+01
+f0
+90
+4e
+82
+74
+0a
+f0
+90
+4e
+c6
+e0
+c3
+94
+17
+40
+07
+e4
+90
+4e
+d4
+f0
+d2
+00
+20
+00
+02
+a1
+ca
+90
+4e
+c6
+e0
+c3
+94
+18
+50
+78
+90
+49
+c2
+74
+01
+f0
+90
+4e
+bd
+e0
+ff
+64
+01
+60
+0a
+ef
+64
+02
+60
+05
+ef
+64
+07
+70
+5f
+12
+17
+6e
+90
+4e
+a6
+e0
+60
+4b
+90
+4e
+21
+e0
+70
+34
+a3
+e0
+70
+30
+a3
+e0
+70
+2c
+a3
+e0
+70
+28
+a3
+e0
+70
+24
+a3
+e0
+70
+20
+a3
+e0
+70
+1c
+90
+1c
+32
+e0
+c3
+94
+03
+50
+2f
+7b
+01
+7a
+4e
+79
+21
+7d
+07
+12
+17
+b2
+90
+1c
+32
+e0
+04
+f0
+22
+22
+7b
+01
+7a
+4e
+79
+21
+7d
+07
+12
+17
+b2
+e4
+90
+1c
+32
+f0
+22
+7b
+01
+7a
+4e
+79
+21
+7d
+07
+12
+17
+b2
+22
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+07
+a3
+e0
+b5
+07
+02
+d3
+22
+c3
+22
+e4
+90
+1c
+2a
+f0
+90
+4e
+c5
+e0
+04
+f0
+70
+06
+90
+4e
+c4
+e0
+04
+f0
+90
+4e
+bd
+e0
+14
+60
+60
+24
+fe
+60
+21
+24
+fd
+60
+77
+14
+60
+35
+14
+60
+02
+c1
+9c
+90
+1c
+2a
+74
+09
+f0
+90
+4e
+c4
+e0
+70
+04
+a3
+e0
+64
+10
+70
+7d
+80
+78
+22
+90
+1c
+2a
+74
+02
+f0
+90
+4e
+c4
+e0
+64
+01
+70
+04
+a3
+e0
+64
+68
+70
+66
+90
+41
+31
+04
+f0
+80
+5c
+90
+1c
+2a
+74
+09
+f0
+90
+4e
+c4
+e0
+64
+04
+70
+04
+a3
+e0
+64
+b0
+70
+4b
+7f
+11
+12
+0e
+78
+90
+4e
+be
+74
+06
+f0
+22
+90
+1c
+2a
+74
+01
+f0
+d3
+90
+4e
+c5
+e0
+94
+b0
+90
+4e
+c4
+e0
+94
+04
+40
+2a
+90
+4e
+e3
+e0
+b4
+01
+23
+80
+1e
+22
+90
+1c
+2a
+74
+02
+f0
+b1
+cb
+50
+16
+c3
+90
+4e
+c5
+e0
+94
+03
+90
+4e
+c4
+e0
+94
+00
+40
+07
+80
+02
+22
+22
+12
+17
+54
+22
+7b
+01
+7a
+4e
+79
+21
+7d
+20
+7c
+00
+d1
+c0
+7b
+01
+7a
+4e
+79
+bb
+7d
+5a
+7c
+00
+d1
+c0
+90
+4f
+13
+74
+ff
+f0
+a3
+74
+5a
+f0
+22
+90
+1c
+19
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+16
+90
+1c
+19
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+e4
+12
+01
+3f
+80
+e0
+22
+7b
+01
+7a
+1b
+79
+ab
+78
+30
+7c
+48
+7d
+01
+7e
+00
+7f
+12
+02
+00
+d3
+90
+82
+80
+74
+01
+f0
+22
+90
+1b
+d2
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+d8
+74
+ff
+f5
+f0
+12
+02
+04
+45
+f0
+60
+2a
+90
+1b
+d5
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+12
+00
+f9
+ff
+90
+1b
+d2
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+ef
+12
+01
+3f
+80
+c8
+22
+90
+1c
+1c
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+17
+90
+1c
+1c
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+74
+ff
+12
+01
+3f
+80
+df
+22
+90
+1b
+da
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+90
+1b
+e0
+e0
+fe
+ef
+c3
+9e
+50
+30
+90
+1b
+dd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+01
+12
+fe
+90
+1b
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+01
+12
+6e
+60
+03
+7f
+00
+22
+0f
+80
+c6
+7f
+01
+22
+7b
+01
+7a
+80
+79
+7c
+a2
+04
+92
+01
+02
+03
+c2
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+24
+a0
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+fc
+5d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+5c
+f0
+22
+90
+03
+f0
+e0
+ff
+22
+d3
+ef
+94
+00
+ee
+64
+80
+94
+80
+50
+07
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+22
+90
+4e
+fb
+e0
+fe
+a3
+e0
+ff
+d3
+94
+06
+ee
+64
+80
+94
+80
+50
+26
+c3
+ef
+94
+fa
+ee
+64
+80
+94
+7f
+40
+1b
+a3
+e0
+fe
+a3
+e0
+ff
+d3
+94
+06
+ee
+64
+80
+94
+80
+50
+0b
+c3
+ef
+94
+fa
+ee
+64
+80
+94
+7f
+50
+06
+90
+4e
+ff
+74
+01
+f0
+90
+4e
+fb
+e0
+fe
+a3
+e0
+ff
+11
+0f
+c3
+ef
+94
+03
+ee
+94
+00
+50
+14
+a3
+e0
+fe
+a3
+e0
+ff
+11
+0f
+c3
+ef
+94
+03
+ee
+94
+00
+50
+03
+e4
+a3
+f0
+90
+4e
+ff
+e0
+64
+01
+60
+02
+21
+10
+90
+4e
+f7
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4e
+f4
+e0
+9f
+ff
+90
+4e
+f3
+e0
+9e
+fe
+90
+4e
+fc
+e0
+2f
+ff
+90
+4e
+fb
+e0
+3e
+fe
+90
+4e
+f3
+f0
+a3
+ef
+f0
+7c
+00
+7d
+02
+12
+01
+b8
+90
+4e
+f7
+ee
+f0
+a3
+ef
+f0
+90
+4e
+fb
+ee
+f0
+a3
+ef
+f0
+90
+4e
+f9
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4e
+f6
+e0
+9f
+ff
+90
+4e
+f5
+e0
+9e
+fe
+90
+4e
+fe
+e0
+2f
+ff
+90
+4e
+fd
+e0
+3e
+fe
+90
+4e
+f5
+f0
+a3
+ef
+f0
+7c
+00
+7d
+02
+12
+01
+b8
+90
+4e
+f9
+ee
+f0
+a3
+ef
+f0
+90
+4e
+fd
+ee
+f0
+a3
+ef
+f0
+22
+e4
+90
+4e
+f3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+22
+e4
+90
+4e
+f3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+ff
+f0
+90
+4e
+fb
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+22
+33
+e6
+aa
+55
+01
+00
+00
+40
+09
+aa
+55
+02
+00
+10
+40
+40
+0c
+aa
+55
+04
+00
+14
+40
+80
+13
+f0
+06
+aa
+55
+01
+00
+20
+40
+20
+aa
+55
+08
+00
+22
+40
+40
+08
+08
+80
+0e
+f2
+04
+20
+aa
+55
+01
+00
+32
+40
+20
+aa
+55
+02
+00
+3e
+40
+88
+03
+aa
+55
+01
+00
+e2
+46
+00
+aa
+55
+01
+00
+0d
+47
+01
+aa
+55
+01
+00
+25
+46
+00
+aa
+55
+01
+00
+32
+41
+42
+aa
+55
+01
+00
+d4
+08
+00
+aa
+55
+01
+00
+9f
+00
+00
+aa
+55
+01
+00
+d5
+08
+00
+aa
+55
+01
+00
+16
+00
+27
+aa
+55
+01
+00
+15
+47
+ff
+aa
+55
+01
+00
+0e
+47
+ff
+aa
+55
+01
+00
+31
+41
+01
+aa
+55
+02
+00
+12
+42
+20
+03
+aa
+55
+01
+00
+f6
+41
+08
+aa
+55
+02
+00
+f4
+41
+00
+00
+aa
+55
+01
+00
+33
+41
+00
+aa
+55
+02
+00
+94
+48
+02
+01
+aa
+55
+02
+00
+cf
+42
+04
+30
+aa
+55
+04
+00
+41
+4e
+9f
+3e
+cd
+4d
+aa
+55
+01
+00
+21
+45
+00
+aa
+55
+02
+00
+29
+45
+07
+00
+aa
+55
+01
+00
+96
+45
+50
+aa
+55
+01
+00
+f8
+44
+1a
+aa
+55
+06
+00
+3e
+45
+ab
+b9
+12
+0e
+10
+26
+aa
+55
+0a
+00
+40
+44
+09
+42
+4c
+45
+20
+4d
+6f
+75
+73
+65
+aa
+55
+01
+00
+4c
+45
+17
+aa
+55
+01
+00
+20
+45
+00
+aa
+55
+07
+00
+22
+45
+01
+00
+00
+00
+00
+00
+00
+aa
+55
+18
+00
+ff
+43
+00
+1f
+03
+19
+c2
+03
+03
+03
+12
+18
+02
+01
+05
+0a
+09
+42
+4c
+45
+20
+4d
+6f
+75
+73
+65
+aa
+55
+0c
+00
+20
+44
+1f
+0a
+09
+42
+4c
+45
+20
+4d
+6f
+75
+73
+65
+aa
+55
+b5
+01
+40
+4c
+01
+00
+02
+00
+28
+02
+00
+18
+02
+00
+02
+03
+28
+01
+0a
+03
+00
+02
+00
+2a
+09
+42
+4c
+45
+20
+4d
+6f
+75
+73
+65
+04
+00
+02
+03
+28
+01
+02
+05
+00
+02
+01
+2a
+02
+c2
+03
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+08
+00
+02
+00
+28
+02
+01
+18
+09
+00
+02
+03
+28
+01
+20
+0a
+00
+02
+05
+2a
+00
+0b
+00
+02
+02
+29
+02
+00
+00
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+02
+03
+28
+01
+02
+10
+00
+02
+50
+2a
+07
+02
+35
+12
+22
+aa
+01
+00
+11
+00
+02
+00
+28
+02
+0f
+18
+12
+00
+02
+03
+28
+01
+02
+13
+00
+02
+19
+2a
+01
+33
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+00
+28
+02
+12
+18
+16
+00
+02
+03
+28
+01
+06
+17
+00
+02
+4e
+2a
+01
+01
+18
+00
+02
+03
+28
+01
+1a
+19
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+1a
+00
+02
+02
+29
+02
+00
+00
+1b
+00
+02
+08
+29
+02
+01
+01
+1c
+00
+02
+03
+28
+01
+0a
+1d
+00
+02
+4b
+2a
+45
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+f8
+26
+ff
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+1e
+00
+02
+03
+28
+01
+1a
+1f
+00
+02
+33
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+02
+02
+29
+02
+01
+00
+21
+00
+02
+03
+28
+01
+02
+22
+00
+02
+4a
+2a
+04
+01
+01
+00
+03
+23
+00
+02
+03
+28
+01
+04
+24
+00
+02
+4c
+2a
+00
+25
+00
+02
+03
+28
+01
+12
+26
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+27
+00
+02
+02
+29
+02
+00
+00
+28
+00
+02
+08
+29
+02
+11
+01
+29
+00
+02
+03
+28
+01
+0e
+2a
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+2b
+00
+02
+08
+29
+02
+11
+02
+00
+00
+aa
+55
+02
+00
+37
+46
+40
+4c
+aa
+55
+01
+00
+48
+4e
+50
+aa
+55
+08
+00
+8d
+45
+07
+00
+07
+00
+05
+00
+2c
+01
+aa
+55
+01
+00
+20
+4e
+00
+aa
+55
+02
+00
+4e
+4e
+19
+00
+aa
+55
+02
+00
+8b
+45
+22
+00
+aa
+55
+01
+00
+6c
+45
+01
+aa
+55
+01
+00
+a8
+45
+01
+aa
+55
+01
+00
+80
+42
+02
+aa
+55
+01
+00
+a8
+4e
+01
+aa
+55
+01
+00
+ba
+4e
+01
+aa
+55
+01
+00
+6f
+49
+01
+aa
+55
+01
+00
+29
+49
+01
+aa
+55
+01
+00
+6e
+49
+04
+aa
+55
+01
+00
+65
+49
+00
+aa
+55
+02
+00
+2b
+49
+c0
+12
+aa
+55
+03
+00
+4d
+49
+19
+19
+1c
+aa
+55
+10
+00
+39
+49
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+01
+00
+38
+49
+ff
+aa
+55
+04
+00
+34
+49
+20
+15
+10
+05
+aa
+55
+0a
+00
+90
+49
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+58
+49
+00
+48
+60
+00
+00
+00
+00
+00
+aa
+55
+03
+00
+15
+42
+8f
+1b
+ce
+aa
+55
+04
+00
+19
+42
+0a
+0b
+ef
+0f
+aa
+55
+01
+00
+f7
+41
+00
+aa
+55
+08
+00
+a0
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+02
+00
+5d
+41
+02
+24
+aa
+55
+08
+00
+4d
+41
+12
+00
+00
+02
+12
+00
+00
+02
+aa
+55
+02
+00
+5b
+41
+20
+00
+aa
+55
+04
+00
+57
+41
+20
+00
+00
+20
+aa
+55
+04
+00
+5f
+41
+80
+04
+00
+08
+aa
+55
+02
+00
+60
+4e
+00
+40
+aa
+55
+05
+00
+a9
+45
+09
+59
+00
+b0
+00
+aa
+55
+02
+00
+a8
+42
+80
+3f
+aa
+55
+01
+00
+b6
+42
+20
+aa
+55
+01
+00
+81
+42
+01
+aa
+55
+0b
+00
+69
+4e
+55
+d0
+56
+c0
+57
+4c
+58
+3c
+59
+50
+ff
+aa
+55
+02
+00
+63
+41
+69
+4e
+42
+d5
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+93
+14
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/fw.hex
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/fw.hex	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/fw.hex	(working copy)
@@ -0,0 +1,534 @@
+:10000000020246E709F608DFFA8046E709F208DF50
+:10001000FA803E88828C83E709F0A3DFFA8032E31E
+:1000200009F608DFFA8078E309F208DFFA807088C1
+:10003000828C83E309F0A3DFFA806489828A83E0FB
+:10004000A3F608DFFA805889828A83E0A3F208DFEA
+:10005000FA804C80D280FA80C680D4806980F28099
+:1000600033801080A680EA809A80A880DA80E280BF
+:10007000CA803389828A83ECFAE493A3C8C582C814
+:10008000CCC583CCF0A3C8C582C8CCC583CCDFE97E
+:10009000DEE7800D89828A83E493A3F608DFF9EC1A
+:1000A000FAA9F0EDFB2289828A83ECFAE0A3C8C5A5
+:1000B00082C8CCC583CCF0A3C8C582C8CCC583CCCC
+:1000C000DFEADEE880DB89828A83E493A3F208DF3B
+:1000D000F980CC88F0EF60010E4E60C388F0ED240B
+:1000E00002B4040050B9F582EB2402B4040050AF0E
+:1000F000232345822390005373BB010689828A83A0
+:10010000E0225002E722BBFE02E32289828A83E4D6
+:100110009322BB010CE58229F582E5833AF583E061
+:10012000225006E92582F8E622BBFE06E92582F880
+:10013000E222E58229F582E5833AF583E49322BB46
+:10014000010689828A83F0225002F722BBFE01F366
+:1001500022EF8DF0A4A8F0CF8CF0A428CE8DF0A4CF
+:100160002EFE22BC000BBE0029EF8DF084FFADF007
+:1001700022E4CCF875F008EF2FFFEE33FEEC33FCF1
+:10018000EE9DEC984005FCEE9DFE0FD5F0E9E4CE27
+:10019000FD22EDF8F5F0EE8420D21CFEADF075F0F6
+:1001A00008EF2FFFED33FD4007985006D5F0F222FF
+:1001B000C398FD0FD5F0EA22C2D5EC30E709B2D5DD
+:1001C000E4C39DFDE49CFCEE30E715B2D5E4C39F8B
+:1001D000FFE49EFE120163C3E49DFDE49CFC8003EA
+:1001E00012016330D507C3E49FFFE49EFE22C5F0F1
+:1001F000F8A3E028F0C5F0F8E582158270021583B7
+:10020000E038F022A3F8E0C5F025F0F0E582158291
+:1002100070021583E0C838F0E822D083D082F8E479
+:10022000937012740193700DA3A393F8740193F566
+:10023000828883E4737402936860EFA3A3A380DFD2
+:100240008A838982E473787FE4F6D8FD7581CF02D2
+:10025000028D0202F1E493A3F8E493A34003F68035
+:1002600001F208DFF48029E493A3F85407240CC8B2
+:10027000C333C4540F4420C8834004F4568001465D
+:10028000F6DFE4800B01020408102040809002D2C7
+:10029000E47E019360BCA3FF543F30E509541FFE88
+:1002A000E493A360010ECF54C025E060A840B8E4F9
+:1002B00093A3FAE493A3F8E493A3C8C582C8CAC57C
+:1002C00083CAF0A3C8C582C8CAC583CADFE9DEE70E
+:1002D00080BE521BABFF041F000000FF1DE3FF1791
+:1002E0001E000000000000000000000000000101EE
+:1002F00000121EEC904E78E0B401031212CE1213DD
+:10030000CF121665121151121C67900B2AE014606F
+:100310005824FE70E9E4904F00F0120F20E4FFEF44
+:100320002470FDE434808D82F583E4F00FEFB41087
+:10033000EE7F02120D225008C2067F0271A18006D4
+:10034000D2067F0271A17F03120D225008C2067FE0
+:100350000371A18006D2067F0371A1D2077F081224
+:10036000107FF11612163A80FE904EC7E07006908C
+:100370004EC1E060051213C38084904EBDE0FF645F
+:10038000016009EF64026004EFB4070DF116C208C2
+:100390007F18F18112163A41FE1213C341FE41FE4D
+:1003A00022AC07A2069204121FC1AF04A206B392A8
+:1003B00003121092AF04C2057B017A807970A20506
+:1003C0009201901C1FEBF0A3EAF0A3E9F0E4FEFD1C
+:1003D000EF5407FEEF1313135403FD300120901C5C
+:1003E0001FE0FBA3E0FAA3E02DF9E43AFA11F9FFCC
+:1003F0007401A806088002C333D8FC4F213F901C2B
+:100400001FE0FBA3E0FAA3E02DF9E43AFA11F9FFAB
+:100410007401A806088002C333D8FCF45F213F9022
+:100420001BBDEFF0E4901BBFF0A3F0A3F0A3F078A6
+:10043000C37C1B7D017BFF7A0279E8FE7F0611D326
+:10044000901BBDE0511A068C1406F71504682F05A1
+:10045000CB3906563A05F63B059C3C04653D066BD8
+:100460004000000715121E9D121958C2067F187110
+:10047000A1C2067F1271A1C2067F1371A1C2067FBD
+:100480000271A1C2067F0371A1C2067F0471A1C2DD
+:10049000067F1771A1C2067F1B71A1C2067F17716B
+:1004A000A1C2067F0471A1C2067F0671A1D2077F97
+:1004B0000812107FD2077F0712107F7F12120D22C1
+:1004C0004007E4904EF0F08006904EF07401F07F0B
+:1004D00013120D22500A9042CF7404F0A37430F02E
+:1004E0001216FA122124120849904ED9EFF07B011E
+:1004F0007A4E79DB7D017C007FA87E3F12188890C0
+:100500004EDBE0D3940340037402F07B017A4E7912
+:10051000DB7D017C007FA87E3F1219A4120A8F9018
+:100520008080E4F0904EDEF0904EDDF07F04120DFE
+:100530002240047F0180027F00901BBFEFF07F17F5
+:10054000120D2240047F0180027F00901BC1EFF05A
+:100550007F1B120D2240047F0180027F00901BC090
+:10056000EFF0E0FF25E0FF901BBFE04FFF901BC1C5
+:10057000E0FE25E025E04FFFA3F0BF050C901BBD7A
+:10058000E0B42F057F25020E78904EA7E0B4010954
+:10059000121937E4904EA7F022021937904EBDE0B1
+:1005A000B407159049C1E0FF64017002E115EFB492
+:1005B00002069049C17401F01216FAD2077F0712A1
+:1005C000107FC2067F0771A1022124904EBD7401E5
+:1005D000F0FB7A4E79BDFD7C007FA97E3F1219A405
+:1005E0007B017A4979067D067C007FA27E3F121945
+:1005F000A47F23020E78120F16E4904EE3F0904E83
+:10060000F2E0601304F0E05407F030E0057F2302CD
+:100610000E787F25020E787B017A1B79C37D067CDC
+:10062000007F9C7E3F121888901BC3E0F47024A3C7
+:10063000E0F4701FA3E0B4FF1AA3E0B4FF15A3E039
+:10064000B4FF10A3E0B4FF0B904F017401F0A3744A
+:100650001EF022021937120807904EE37401F0E4ED
+:10066000904EF1F0A3F0904EBEF0221216FA120C4A
+:10067000CF7D067F80120A647B017A4E79DB7D0193
+:100680007C007FA87E3F121888020A8FE4904E8477
+:10069000F07F0E120E787F02120E78904EBD740716
+:1006A000F0901BBE7409F01208077B017A0379727F
+:1006B0007D067C007F967E3F1219A47F0A7E001281
+:1006C00016467B017A45793E7D067C007F9C7E3F05
+:1006D0001219A47F0A7E001216467B017A1B79BE8E
+:1006E0007D017C007FA97E3F1219A4904EBE740646
+:1006F000F0E4904EC2F022904EBEE0B4080A120E12
+:1007000038904EBD7403F022904EBEE0B406030252
+:100710001754121937229000A0E4F0A3F0A3F0A31D
+:10072000F0120B46C2077F0712107FC2067F0471CA
+:10073000A1C2067F1B71A1C2067F1771A1C2067FED
+:100740001771A1C2067F0471A1C2067F0671A17F45
+:1007500002F16D7F03F16D7F04F16D7F17F16D7F05
+:100760001BF16D7F17F16D7F04F16D7F06901C2CDE
+:10077000EFF0120D229209901C2CE0FFA209B39217
+:1007800008EF5407FEEF1313135403FF30084324FC
+:10079000A0F582E43400F583C083C082E0FD7401DB
+:1007A000A806088002C333D8FCF45DD082D083F061
+:1007B00074A42FF582E43400F583C083C082E0FF87
+:1007C0007401A806088002C333D8FC4FD082D083BE
+:1007D000F02274A02FF582E43400F583C083C08238
+:1007E000E0FD7401A806088002C333D8FCFC4DD09C
+:1007F00082D083F074A42FF582E43400F583E0FF07
+:10080000ECF4FEEF5EF02291B991CF7F18B1224057
+:100810000E7F0211207F0311207F04112080EC2223
+:10082000900218EFF09080887401F0A3E4F09080BB
+:100830008E04F0A3E4F09080067402F090812CE026
+:1008400030E3F990021DE0FF22E4901C27F0A3F0B2
+:10085000E4FF1120BF31187F061120EF4480FF9084
+:100860001C27F07D065164901C287431F021287FEC
+:10087000011120BF5A18901C28745AF07F061120CD
+:10088000EF4480FF901C27F07D0651642128E4FF8F
+:100890001120EF6430600221247F011120BF540831
+:1008A000901C287431F021287F011120EF54F0644E
+:1008B000D070287F1E1120EF30E008901C2874D1E2
+:1008C000F08006901C2874D0F07F061120EF448041
+:1008D000FF901C27F07D065164804D7F011120EFB1
+:1008E00054F0FFBF5018901C287450F07F06112060
+:1008F000EF4480FF901C27F07D065164802A7F0121
+:100900001120BF021F7F061120EF4480FF901C279B
+:10091000F07D065164901C287402F07F011120EFD5
+:100920006402600491CF0150901C28E064D0600202
+:1009300021F87D097F5A51647D0D7F0A51647D1B2A
+:100940007F3551647D1D7FDB51647D287FB4516408
+:100950007D297F4651647D2A7F9651647D2B7F8C53
+:1009600051647D2C7F6E51647D2D7F6451647D3890
+:100970007F5F51647D397F0F51647D3A7F325164CE
+:100980007D3B7F4751647D427F1051647D437F09E9
+:1009900051647D547F2E51647D557FF251647D6199
+:1009A0007FF451647D637F7051647D757F52516423
+:1009B0007D767F4151647D777FED51647D787F2323
+:1009C00051647D797F4651647D7A7FE551647D7CF9
+:1009D0007F4851647D7D7F8051647D7E7F77516447
+:1009E0007D7F7F0151647D0BE4FF51647D7FE4FFD7
+:1009F00051647D09E4FF5164901C28E0B402187D25
+:100A0000097F5A51647D267F3451647D197F1451CA
+:100A1000647D09E4FF5164901C28E06450703F7DC0
+:100A2000097F5A51647D5B7F9A51647F0D1120EFDD
+:100A3000641260087D0D7F12516480EF7F0E1120DB
+:100A4000EF64C560087D0E7FC5516480EF7F531150
+:100A500020EF644860087D537F48516480EF901C0C
+:100A600028E0FF22AC07ED4480900218F0A3EFF0DD
+:100A70009080887402F0A3E4F090808EF0A3F09050
+:100A800080067402F090812CE030E3F97F0022911F
+:100A9000CF904ED9E0FF64D06004EFB4D10A904EFD
+:100AA000DBE004FF7D065164904ED9E0B43118902C
+:100AB0004EDBE0B401087D06E4FF51648009904EEE
+:100AC000DBE0FF7D065164904ED9E0B4500B904EB0
+:100AD000DBE02403FF7D065164904ED9E0B45A0B4D
+:100AE000904EDBE02403FF7D065164904ED9E06414
+:100AF0000270537D097F5A5164904EDBE0146018F8
+:100B000014602314602E240370367D0D7F1551640C
+:100B10007D0E7F15516480287D0D7F2051647D0EF0
+:100B20007F205164801A7D0D7F2A51647D0E7F2ABB
+:100B30005164800C7D0D7F3F51647D0E7F3F516479
+:100B40007D09E4FF5164908081E4F0908073E0447B
+:100B500002F0908077E04402F022E4901C06F0A3BB
+:100B6000F0A3F0A3F07F18B1225002C32291CF7FEF
+:100B7000021120EF20E70281B7904EC77402F09077
+:100B80004ED9E0640260167F031120901C06EFF03E
+:100B90007F041120EFF404901C07F080297F0311DB
+:100BA00020901C06EFF07F041120901C07EFF07FCF
+:100BB000121120901C09EFF0E0FFC4540F901C08A4
+:100BC000F0EF540FA3F07146904ED9E06402702A02
+:100BD000901C08E0FF30E30544F0F08007901C080B
+:100BE000E0540FF0901C09E0FF30E30544F0F08082
+:100BF00031901C09E0540FF08028901C06E030E78B
+:100C000008901C0874FFF08005E4901C08F0901C0C
+:100C100007E030E708901C0974FFF08005E4901CA1
+:100C200009F0904EF0E07031901C08E0FE901C0638
+:100C3000E0FDEEEDFFC3E49FFFE49E904EFDF0A3C8
+:100C4000EFF0901C09E0FE901C07E0FDEEEDFF9038
+:100C50004EFBEEF0A3EFF0802A901C08E0FE901C03
+:100C600006E0FDEEEDFF904EFBEEF0A3EFF0901CE2
+:100C700009E0FE901C07E0FDEEEDFF904EFDEEF06A
+:100C8000A3EFF0904EFBE0FEA3E0FFC3E49FFFE480
+:100C90009E904EFBF0A3EFF0A3E0FEA3E0FFC3E4C1
+:100CA0009FFFE49E904EFDF0A3EFF0904EBDE0B4A8
+:100CB0000103122022D322C322E4FF91CF7F061129
+:100CC00020EF54F7FF7D0651647F0211206146E456
+:100CD000901C33F090808104F0E4904F00F0904F2E
+:100CE00000E004F0E0C3940640031216FAE4FF119A
+:100CF00020901C33EFF064306027E0643160229074
+:100D00008081E4F0908073E04402F0908077E054BA
+:100D1000FDF0908073E04402F09080817401F080D7
+:100D2000BD227B017A81791CAD07E4901C2BF0FE7B
+:100D3000EF5407F0EF1313135403FEF5827583008D
+:100D4000120112FD3395E0FC901C2BE0FF74017E34
+:100D500000A807088005C333CE33CED8F9FFEE5C78
+:100D6000FEEF5D4E24FF22E4901BF8F0A3F0A3F009
+:100D7000A3F0A3F07F04B12240047F0180027F0032
+:100D8000901BF8EFF07F17B12240047F0180027FB3
+:100D900000901BFAEFF07F1BB12240047F0180021C
+:100DA0007F00901BF9EFF0E0FF25E0FF901BF8E0DB
+:100DB0004FFF901BFAE0FE25E025E04FA3F064070B
+:100DC0007070904F02741EF0E4904EC4F0A3F09047
+:100DD0004EC7740AF0904EC6E0C394195059904E15
+:100DE000C6E004F0E06419704E904F01F0A3F0905B
+:100DF0004EBDE0603214601E24FB602B24FE600EAA
+:100E00000470347F11D178904EBE7408F022904E59
+:100E1000BD7403F08022F1167F0A7E001216469000
+:100E20004EBD7403F08011F116904EBD7403F08036
+:100E30000722E4904EC6F0227B017A4F79117D02A1
+:100E40007C007FAA7E3F121888904F12E004F07059
+:100E500006904F11E004F07B017A4F79117D027CFE
+:100E6000007FAA7E3F1219A4904F11E0FCA3E090EE
+:100E7000453FF0ECA3F07F0D901C12EFF078137C4F
+:100E80001C7D017BFF7A0279EE7E007F031200D386
+:100E9000901C12E0901C15F07B017A1C79137D03E5
+:100EA000901BEDEBF0A3EAF0A3E9F0A3EDF090477F
+:100EB000C6E0FFA3E0901BF1CFF0A3EFF0901BF092
+:100EC000E0FF14F0EF603F901BEDE0FBA3E475F052
+:100ED00001120204A9F0FA1200F9FF901BF1E47567
+:100EE000F00112020485F082F583EFF0901BF1E02F
+:100EF000FEA3E0FFBE47C6BFC4C3901BF17447F01A
+:100F0000A3742EF080B7901BF1E0FFA3E09047C6DA
+:100F1000CFF0A3EFF0227F24D178E4904EBDF022F1
+:100F2000E4FF91CF7F061120EF4408FF7D06516456
+:100F3000908081E4F0C2067F191203A1C2067F1AD5
+:100F40000203A1904EDCE0FF25E0F0E0FFC0077F48
+:100F500006B12240047E0180027E00D0E04E904E19
+:100F6000DCF030E006904EC77402F0904EDCE06496
+:100F7000077029904EDBE004F0E05403F0700204A7
+:100F8000F0904EDBE0904EDDF0518F7B017A4E7990
+:100F9000DB7D017C007FA87E3F1219A4227B017AB1
+:100FA0004979507D047C007FA47E3F1218889049C7
+:100FB00050E0F47027A3E0F47022A3E0B4FF1DA377
+:100FC000E0B4FF18904950740FF0A3F0A3F0A3F021
+:100FD0007F23D178904EF27401F080047F23D17882
+:100FE000904EBD7401F022D2077F0712107F904E01
+:100FF000CAE0FF25E0F0E0FFC0077F04B122400413
+:101000007E0180027E00D0E04E904ECAF030E006B5
+:10101000904EC77402F0904ECAE05407FFBF070617
+:10102000A37401F08007EF7004904ECBF0904ECB8C
+:10103000E0FF22D2077F07117F904ECCE0FF25E032
+:10104000F0E0FFC0077F17120D2240047E018002EE
+:101050007E00D0E04E904ECCF030E006904EC7744B
+:1010600002F0904ECCE05407FFBF0706A37401F0D6
+:101070008007EF7004904ECDF0904ECDE0FF22AC93
+:1010800007D2051203B8AF04A2079202119FAF0462
+:10109000C2037B017A807978A20392010203C27BAA
+:1010A000017A807974A20292010203C2904EDDE0BF
+:1010B0007006A304F0E4A3F0904EDDE06038904E9B
+:1010C000DFE004F0E0540764057069904EC7740ACD
+:1010D000F0904EDEE0600CC2027F08119FE4904E5B
+:1010E000DEF022D2027F08119F904EDE7401F09054
+:1010F0004EDDE014F022904EBDE0B40314904EC7D4
+:101100007445F0904EC9E05407640470277F08804E
+:1011100024904EE2E06017904EC9E0541FC394053E
+:10112000500C904EC7740AF0C2027F08019FD20291
+:101130007F08119F22901C2DEFF07B017A8079743B
+:10114000120D28920A901C2DE0FFA20AB392020110
+:101150009FE4901BF3F0A3F0A3F0A3F0A3F0120F11
+:10116000E7901BF3EFF01133901BF5EFF0518290F5
+:101170001BF4EFF031B4901BF6EFF0511B901BF70E
+:10118000EFF0120F43901BF4E0FF25E0FF901BF3FC
+:10119000E04FFF901BF5E0FE25E025E04FFFA3E0C8
+:1011A000FE33333354F84FFFA3E0FEC454F04F90A6
+:1011B0004EEDF0227F17120D2240037F0022C2075E
+:1011C0007F07117F904ED2E0FF25E0F0E0FFC007DF
+:1011D0007F17120D2240047E0180027E00D0E04E77
+:1011E000904ED2F0D2077F07117FC2067F0712030D
+:1011F000A1904ED2E030E006904EC77402F0904EBF
+:10120000D2E05407FFBF0706A37401F08007EF7018
+:1012100004904ED3F0904ED3E0FF227F04120D22B3
+:1012200040037F0022C2077F07117F904ED0E0FF6E
+:1012300025E0F0E0FFC0077F04120D2240047E018C
+:1012400080027E00D0E04E904ED0F0D2077F071192
+:101250007FC2067F071203A1904ED0E030E00690D7
+:101260004EC77402F0904ED0E05407FFBF0706A3AC
+:101270007401F08007EF7004904ED1F0904ED1E0F1
+:10128000FF22D2077F07117F904ECEE0FF25E0F0CE
+:10129000E0FFC0077F1B120D2240047E0180027E0A
+:1012A00000D0E04E904ECEF030E006904EC7740273
+:1012B000F0904ECEE05407FFBF0706A37401F08004
+:1012C00007EF7004904ECFF0904ECFE0FF22E490F5
+:1012D0001BE1F0A3F0A3F0A3F0A3F0A3F0904E7DE8
+:1012E000F0D1FA904EBDE0B40117904EE3E0B401A6
+:1012F000107F18120D224009120B5AE433901BE59F
+:10130000F0904EBD7401F0901BE6E004F071CF90B8
+:101310001BE6E0D39405400B7405F0904E7D7402FB
+:10132000F08075D1653151904E7DE0706B904ED854
+:10133000E06016901BE57401F0904E7D7403F09010
+:1013400049B77401F0904E80F0904EEDE0FF904E62
+:10135000D4E06F601D9049B77401F0901BE5F090E8
+:101360004E7D7403F0904ED4EFF0BF0705E4901B60
+:10137000E5F0904ED4E0B40706904E7D7403F090F3
+:101380001BE5E0B40112F16EE4901BE5F0904E7D98
+:10139000E0640360037401F0900B2AE064016002D2
+:1013A0006107904EC7E07006904EC1E06002801366
+:1013B000904EBDE0B4010C120716C2087F18120748
+:1013C00081C13A900B2B7401F0E4900B2AF0227A41
+:1013D0001A7900901C227401F0A3741AF0A374000F
+:1013E000F090482EE0FEA3E0FF90482CE06E7003E2
+:1013F000A3E06F7002A1867B017A1A79007D03B1A8
+:10140000DF901C22E0FBA3E0FAA3E0F91200F9B49C
+:10141000022B901C23E475F0021201EE901C22E0D6
+:10142000FBA3E0FAA3E0F91200F9FF904830E0A333
+:10143000E0FAA3E0F5828A83120244A186901C227E
+:10144000E0FBA3E0FAA3E0F91200F96404705B90FA
+:101450001C2375F0011201EE901C22E0FBA3E0FAC0
+:10146000A3E0F91200F914FD7B017A1A7903B1DFC8
+:10147000901C22E0FBA3E0FAA3E02401F9E43AFA8D
+:10148000C002C001901C22E0A3E0FAA3E0F9120020
+:10149000F9FD7C00904833E0A3E0FAA3E0F5828AEE
+:1014A00083D001D002120244A186901C22E0FBA34B
+:1014B000E0FAA3E0F91200F96405705B901C237553
+:1014C000F0011201EE901C22E0FBA3E0FAA3E0F988
+:1014D0001200F914FD7B017A1A7903B1DF901C2206
+:1014E000E0FBA3E0FAA3E02401F9E43AFAC002C069
+:1014F00001901C22E0A3E0FAA3E0F91200F9FD7CC0
+:101500000090483CE0A3E0FAA3E0F5828A83D00192
+:10151000D002120244806F901C22E0FBA3E0FAA3E9
+:10152000E0F91200F96403705B901C2375F001125E
+:1015300001EE901C22E0FBA3E0FAA3E0F91200F90F
+:1015400014FD7B017A1A7903B1DF901C22E0FBA322
+:10155000E0FAA3E02401F9E43AFAC002C001901CC9
+:1015600022E0A3E0FAA3E0F91200F9FD7C00904824
+:101570003FE0A3E0FAA3E0F5828A83D001D0021213
+:101580000244800280FE904898E0FEA3E0FF90486D
+:101590009AE06E7003A3E06F6021904836E0FBA3F1
+:1015A000E0FAA3E0F94A603612024090489BE0045A
+:1015B000F0700690489AE004F080CB90489CE0FFE1
+:1015C000A3E06F6019904839E0FBA3E0FAA3E0F9CB
+:1015D0004A600B12024090489DE004F080DD2290AA
+:1015E0001C0EEBF0A3EAF0A3E9F0A3EDF090482C79
+:1015F000E0FEA3E0FF901C11E0FD14F0ED60320F5F
+:10160000EFAC0670010E14F5828C83E0FD901C0E89
+:10161000E0FBA3E475F001120204A9F0FAED120157
+:101620003FAD07AC06BC48CDBD2CCA7E477FC88005
+:10163000C490482CEEF0A3EFF022E4900B2BF09036
+:101640000B2AF07F01FED3EF9400EE94004015E4E6
+:10165000FDFC0DBD00010CBC04F8BDA6F5EF1F702C
+:10166000011E80E222E4901C16F0A3F07F02120D0E
+:1016700022E433901C18F07F03120D22E433FF9014
+:101680001C18E0FE25E04FFF904ED5E06F605B90A8
+:101690004ED6E0A3F0904ED5E0A3F0904ED5EFF0FB
+:1016A000FDA3E075F004A4FBAAF0ED75F010A4FF13
+:1016B000E5F04AFEEF4BFFA3E0FDEEEF4DFF901C7F
+:1016C00016EEF0A3EFF0EE7021EF24F5601424D7AE
+:1016D000601024FC600424317010904ED8E014F0A7
+:1016E0008009904ED8E004F0D1EB22904EBDE0642A
+:1016F000016006904EC77403F0229080867475F0E6
+:10170000A3740AF090808A7418F0A37402F0A37492
+:101710001DF0A37402F0908077E04402F022904E16
+:10172000C7E0600214F0904EC9E004F0904EECE087
+:10173000600204F011AC120D67121AD2904F01E052
+:10174000B40110A3E07006904F01F0F154904F02E5
+:10175000E014F022E4904EC4F0A3F0904EC7F09055
+:101760004EC104F0E4904EBDF07F19020E78904E09
+:10177000D4E0904E21F0904EFBE0FCA3E0904E228E
+:10178000F0ECFF3395E0A3EFF0904EFDE0FCA3E01A
+:10179000904E24F0ECFF3395E0A3EFF0904ED8E0AC
+:1017A000904E26F0E4A3F0904ED8F0904EC4F0A3F3
+:1017B000F022901C02EBF0A3EAF0A3E9F0A3EDF015
+:1017C000904EBDE0FF6401600AEF64026005EF64C3
+:1017D00007702EEFB40111901C02E0FBA3E0FAA306
+:1017E000E0F9A3E0FD021B97904EBDE0B407109016
+:1017F0001C02E0FBA3E0FAA3E0F9A3E0FD80038074
+:10180000FE22901C31EDF0901A967405F09047C6B8
+:10181000E0FEA3E0FF9047C4E0B506F1A3E0B50702
+:10182000EC901C31E0FD901A97F07E1A7F98901B87
+:10183000ECEDF011457B017A1A7996901C31E02489
+:1018400002FD020EA0901BE7EEF0A3EFF0A3EBF079
+:10185000A3EAF0A3E9F0901BECE0FF14F0EF60279F
+:10186000901BE9E0FBA3E475F001120204A9F0FA71
+:101870001200F9FF901BE7E475F00112020485F0F5
+:1018800082F583EFF080CF22901BFDECF0A3EDF00A
+:10189000A3EBF0A3EAF0A3E9F09080987404F0A31E
+:1018A000E4F0901B2C74A0F0A3EEF0A3EFF0901BDB
+:1018B0002F74A1F07A1B792C7E1B7F2C742CFC7466
+:1018C0001BFFECFEEF90809AEEF0A3EFF0901BFD73
+:1018D000E0FCA3E0FAECFFEAFEEF90809EEEF0A3BE
+:1018E000EFF07A1B79307E1B7F307430FC741BFF65
+:1018F000ECFEEF90809CEEF0A3EFF09080907402ED
+:10190000F090809CA3E020E707908090E04401F0F5
+:10191000908006E04404F051C1901BFFE0A3E0FA80
+:10192000A3E0AE02FF7B017A1B7930901BFDE0A3A0
+:10193000E0901BECF00145E4904EC4F0A3F07B0175
+:101940007A45793E7D06FC7F9C7E3F1188904EBD96
+:101950007408F07F27020E78E4901C29F07B017A4E
+:101960001C79297D01FC7FAC7E3F1188901C29E009
+:10197000B4FF3051C9904F11EEF0A3EFF07B017A24
+:101980004F79117D027C007FAA7E3F31A4901C29F3
+:10199000745AF07B017A1C79297D017C007FAC7E32
+:1019A0003F31A422901BC9EEF0A3EFF0A3ECF0A30B
+:1019B000EDF0A3EBF0A3EAF0A3E9F0901BCBE0700D
+:1019C00002A3E070024153901BC9E0FEA3E0FF4474
+:1019D0000F2401FDE43EFCC3ED9FFFEC9EFE901B37
+:1019E000D0F0A3EFF0901BCBE0FCA3E0FDD39FEC85
+:1019F0009E400A901BD0E0FEA3E0FF8004AE04AF3F
+:101A000005901BD0EEF0FCA3EFF0FDC3901BCCE0E3
+:101A10009DF0901BCBE09CF0901BC9E0FEA3E0FF83
+:101A2000901BCDE0FBA3E0FAA3E0F951547F0A7EBE
+:101A300000121646901BD0E0FEA3E0FF901BCEEEF6
+:101A40008FF01201EE901BCAE02FF0901BC9E03E10
+:101A5000F021BB22901B94EEF0A3EFF0A3ECF0A3D7
+:101A6000EDF07E1B7F9B901BECF01145901B987452
+:101A7000A0F0901B94E0FFA3E0901B99CFF0A3EFA0
+:101A8000F0901B97E02403FD901B96E03400FCEDE2
+:101A9000FAECFFEAFEEF908098EEF0A3EFF07D986D
+:101AA000EDFA741BFFEAFEEFA3EEF0A3EFF09080D7
+:101AB0009EE4F0A3F090809004F0908006E044044F
+:101AC000F090812CE030E5F922904E41E0FEA3E059
+:101AD000FF22E4901C25F0A3F051C9C006C0077195
+:101AE0008EAC06AD07D007D006C3ED9FFFEC9E90ED
+:101AF0001C25F0A3EFF09042CFE064046002618403
+:101B000051C9C006C0077185AC06AD07D007D00625
+:101B1000C3ED9FFFEC9EFE7C007D1E1201637C00E6
+:101B20007D0A120151C3901C26E09F901C25E09E67
+:101B30005008904EE27401F08005E4904EE2F051BE
+:101B4000C9C006C0077185AC06AD07D007D006C373
+:101B5000ED9FFFEC9EFE7C007D1E1201637C007DEC
+:101B600009120151C3901C26E09F901C25E09E5055
+:101B700013904954E064016008904EBDE064016038
+:101B80000312175422904E43E0FEA3E0FF2290423E
+:101B9000D1E0FEA3E0FF22901C2FEDF0901A967486
+:101BA00006F09047C6E0FEA3E0FF9047C4E0B5060C
+:101BB000F1A3E0B507EC901C2FE0FD901A97F07EA2
+:101BC0001A7F98901BECEDF011457B017A1A7996FB
+:101BD000901C2FE02402FD020EA0901C30EDF0902E
+:101BE0001A967404F09047C6E0FEA3E0FF9047C445
+:101BF000E0B506F1A3E0B507EC901C30E0FD901ACB
+:101C000097F07E1A7F98901BECEDF011457B017ADE
+:101C10001A7996901C30E02402FD020EA0901C2E32
+:101C2000EDF0901A967403F0901C2EE06038904707
+:101C3000C6E0FEA3E0FF9047C4E0B506F1A3E0B51F
+:101C400007EC901C2EE0FD901A97F07E1A7F98907A
+:101C50001BECEDF011457B017A1A7996901C2EE071
+:101C60002402FD120EA022E4901C0AF0A3F0A3F0BF
+:101C7000A3F0C200904EBDE0FF64016007EF64076F
+:101C80006002A1CA904EE3E0700A904EBDE064018C
+:101C90007002A1CAB1CB4002A1CA904EEDE0FF9004
+:101CA0004ED4E0B50719904EC7E0FED3940040052E
+:101CB000EE9403400A904EBDE0B4010BEF6008D2F1
+:101CC000009049B77401F0904EEDE0904ED4F0E4EE
+:101CD000904EFBF0A3F0A3F0A3F0904EBDE0B40152
+:101CE00007120B5A72009200904EBDE0B40720908C
+:101CF0004595E0B401191216FA120B5A72009200BF
+:101D0000904E83E0FF904E84E06F6003E004F0901B
+:101D10004ED8E0601FD2009049B77401F0904E8019
+:101D2000F0904EBDE0B4070C904E817401F0904EDF
+:101D300082740AF0904EC6E0C394174007E4904EB8
+:101D4000D4F0D200200002A1CA904EC6E0C394187D
+:101D500050789049C27401F0904EBDE0FF6401607C
+:101D60000AEF64026005EF6407705F12176E904E11
+:101D7000A6E0604B904E21E07034A3E07030A3E009
+:101D8000702CA3E07028A3E07024A3E07020A3E0EF
+:101D9000701C901C32E0C39403502F7B017A4E7963
+:101DA000217D071217B2901C32E004F022227B0141
+:101DB0007A4E79217D071217B2E4901C32F0227B13
+:101DC000017A4E79217D071217B2229047C6E0FEB4
+:101DD000A3E0FF9047C4E0B50607A3E0B50702D330
+:101DE00022C322E4901C2AF0904EC5E004F0700655
+:101DF000904EC4E004F0904EBDE014606024FE609C
+:101E00002124FD6077146035146002C19C901C2A67
+:101E10007409F0904EC4E07004A3E06410707D80FB
+:101E20007822901C2A7402F0904EC4E06401700481
+:101E3000A3E06468706690413104F0805C901C2AD5
+:101E40007409F0904EC4E064047004A3E064B070C0
+:101E50004B7F11120E78904EBE7406F022901C2A11
+:101E60007401F0D3904EC5E094B0904EC4E0940459
+:101E7000402A904EE3E0B40123801E22901C2A7475
+:101E800002F0B1CB5016C3904EC5E09403904EC4FF
+:101E9000E09400400780022222121754227B017A2C
+:101EA0004E79217D207C00D1C07B017A4E79BB7DAB
+:101EB0005A7C00D1C0904F1374FFF0A3745AF022E3
+:101EC000901C19EBF0A3EAF0A3E9F0ED1DAE04704D
+:101ED000011C4E6016901C19E0FBA3E475F0011282
+:101EE0000204A9F0FAE412013F80E0227B017A1B90
+:101EF00079AB78307C487D017E007F120200D39060
+:101F000082807401F022901BD2EBF0A3EAF0A3E9E7
+:101F1000F0901BD874FFF5F012020445F0602A908F
+:101F20001BD5E0FBA3E475F001120204A9F0FA123C
+:101F300000F9FF901BD2E0FBA3E475F0011202044C
+:101F4000A9F0FAEF12013F80C822901C1CEBF0A30D
+:101F5000EAF0A3E9F0ED1DAE0470011C4E6017908D
+:101F60001C1CE0FBA3E475F001120204A9F0FA7452
+:101F7000FF12013F80DF22901BDAEBF0A3EAF0A30F
+:101F8000E9F0E4FF901BE0E0FEEFC39E5030901BB1
+:101F9000DDE0FBA3E0FAA3E0F98F82758300120174
+:101FA00012FE901BDAE0FBA3E0FAA3E0F98F827542
+:101FB00083001201126E60037F00220F80C67F0132
+:101FC000227B017A80797CA20492010203C2EF5441
+:101FD00007FEEF1313135403FF24A0F582E434002B
+:101FE000F583C083C082E0FD7401A806088002C3A7
+:101FF00033D8FCF4FC5DD082D083F074A42FF5823A
+:10200000E43400F583E05CF0229003F0E0FF22D39B
+:10201000EF9400EE648094805007C3E49FFFE49E39
+:10202000FE22904EFBE0FEA3E0FFD39406EE648018
+:1020300094805026C3EF94FAEE6480947F401BA3F3
+:10204000E0FEA3E0FFD39406EE64809480500BC3BF
+:10205000EF94FAEE6480947F5006904EFF7401F086
+:10206000904EFBE0FEA3E0FF110FC3EF9403EE944C
+:10207000005014A3E0FEA3E0FF110FC3EF9403EEA2
+:1020800094005003E4A3F0904EFFE064016002214D
+:1020900010904EF7E0FEA3E0FFC3904EF4E09FFFE8
+:1020A000904EF3E09EFE904EFCE02FFF904EFBE042
+:1020B0003EFE904EF3F0A3EFF07C007D021201B8DB
+:1020C000904EF7EEF0A3EFF0904EFBEEF0A3EFF0A2
+:1020D000904EF9E0FEA3E0FFC3904EF6E09FFF9024
+:1020E0004EF5E09EFE904EFEE02FFF904EFDE03E4E
+:1020F000FE904EF5F0A3EFF07C007D021201B89047
+:102100004EF9EEF0A3EFF0904EFDEEF0A3EFF022CB
+:10211000E4904EF3F0A3F0A3F0A3F0A3F0A3F0A398
+:10212000F0A3F022E4904EF3F0A3F0A3F0A3F0A309
+:10213000F0A3F0A3F0A3F0904EFFF0904EFBF0A3BD
+:06214000F0A3F0A3F02261
+:00000001FF
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/fwram.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/fwram.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/fwram.rom	(working copy)
@@ -0,0 +1,8518 @@
+02
+02
+46
+e7
+09
+f6
+08
+df
+fa
+80
+46
+e7
+09
+f2
+08
+df
+fa
+80
+3e
+88
+82
+8c
+83
+e7
+09
+f0
+a3
+df
+fa
+80
+32
+e3
+09
+f6
+08
+df
+fa
+80
+78
+e3
+09
+f2
+08
+df
+fa
+80
+70
+88
+82
+8c
+83
+e3
+09
+f0
+a3
+df
+fa
+80
+64
+89
+82
+8a
+83
+e0
+a3
+f6
+08
+df
+fa
+80
+58
+89
+82
+8a
+83
+e0
+a3
+f2
+08
+df
+fa
+80
+4c
+80
+d2
+80
+fa
+80
+c6
+80
+d4
+80
+69
+80
+f2
+80
+33
+80
+10
+80
+a6
+80
+ea
+80
+9a
+80
+a8
+80
+da
+80
+e2
+80
+ca
+80
+33
+89
+82
+8a
+83
+ec
+fa
+e4
+93
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+e9
+de
+e7
+80
+0d
+89
+82
+8a
+83
+e4
+93
+a3
+f6
+08
+df
+f9
+ec
+fa
+a9
+f0
+ed
+fb
+22
+89
+82
+8a
+83
+ec
+fa
+e0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+ea
+de
+e8
+80
+db
+89
+82
+8a
+83
+e4
+93
+a3
+f2
+08
+df
+f9
+80
+cc
+88
+f0
+ef
+60
+01
+0e
+4e
+60
+c3
+88
+f0
+ed
+24
+02
+b4
+04
+00
+50
+b9
+f5
+82
+eb
+24
+02
+b4
+04
+00
+50
+af
+23
+23
+45
+82
+23
+90
+00
+53
+73
+bb
+01
+06
+89
+82
+8a
+83
+e0
+22
+50
+02
+e7
+22
+bb
+fe
+02
+e3
+22
+89
+82
+8a
+83
+e4
+93
+22
+bb
+01
+0c
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e0
+22
+50
+06
+e9
+25
+82
+f8
+e6
+22
+bb
+fe
+06
+e9
+25
+82
+f8
+e2
+22
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e4
+93
+22
+bb
+01
+06
+89
+82
+8a
+83
+f0
+22
+50
+02
+f7
+22
+bb
+fe
+01
+f3
+22
+ef
+8d
+f0
+a4
+a8
+f0
+cf
+8c
+f0
+a4
+28
+ce
+8d
+f0
+a4
+2e
+fe
+22
+bc
+00
+0b
+be
+00
+29
+ef
+8d
+f0
+84
+ff
+ad
+f0
+22
+e4
+cc
+f8
+75
+f0
+08
+ef
+2f
+ff
+ee
+33
+fe
+ec
+33
+fc
+ee
+9d
+ec
+98
+40
+05
+fc
+ee
+9d
+fe
+0f
+d5
+f0
+e9
+e4
+ce
+fd
+22
+ed
+f8
+f5
+f0
+ee
+84
+20
+d2
+1c
+fe
+ad
+f0
+75
+f0
+08
+ef
+2f
+ff
+ed
+33
+fd
+40
+07
+98
+50
+06
+d5
+f0
+f2
+22
+c3
+98
+fd
+0f
+d5
+f0
+ea
+22
+c2
+d5
+ec
+30
+e7
+09
+b2
+d5
+e4
+c3
+9d
+fd
+e4
+9c
+fc
+ee
+30
+e7
+15
+b2
+d5
+e4
+c3
+9f
+ff
+e4
+9e
+fe
+12
+01
+63
+c3
+e4
+9d
+fd
+e4
+9c
+fc
+80
+03
+12
+01
+63
+30
+d5
+07
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+22
+c5
+f0
+f8
+a3
+e0
+28
+f0
+c5
+f0
+f8
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+38
+f0
+22
+a3
+f8
+e0
+c5
+f0
+25
+f0
+f0
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+c8
+38
+f0
+e8
+22
+d0
+83
+d0
+82
+f8
+e4
+93
+70
+12
+74
+01
+93
+70
+0d
+a3
+a3
+93
+f8
+74
+01
+93
+f5
+82
+88
+83
+e4
+73
+74
+02
+93
+68
+60
+ef
+a3
+a3
+a3
+80
+df
+8a
+83
+89
+82
+e4
+73
+78
+7f
+e4
+f6
+d8
+fd
+75
+81
+cf
+02
+02
+8d
+02
+02
+f1
+e4
+93
+a3
+f8
+e4
+93
+a3
+40
+03
+f6
+80
+01
+f2
+08
+df
+f4
+80
+29
+e4
+93
+a3
+f8
+54
+07
+24
+0c
+c8
+c3
+33
+c4
+54
+0f
+44
+20
+c8
+83
+40
+04
+f4
+56
+80
+01
+46
+f6
+df
+e4
+80
+0b
+01
+02
+04
+08
+10
+20
+40
+80
+90
+02
+d2
+e4
+7e
+01
+93
+60
+bc
+a3
+ff
+54
+3f
+30
+e5
+09
+54
+1f
+fe
+e4
+93
+a3
+60
+01
+0e
+cf
+54
+c0
+25
+e0
+60
+a8
+40
+b8
+e4
+93
+a3
+fa
+e4
+93
+a3
+f8
+e4
+93
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+f0
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+df
+e9
+de
+e7
+80
+be
+52
+1b
+ab
+ff
+04
+1f
+00
+00
+00
+ff
+1d
+e3
+ff
+17
+1e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+01
+01
+00
+12
+1e
+ec
+90
+4e
+78
+e0
+b4
+01
+03
+12
+12
+ce
+12
+13
+cf
+12
+16
+65
+12
+11
+51
+12
+1c
+67
+90
+0b
+2a
+e0
+14
+60
+58
+24
+fe
+70
+e9
+e4
+90
+4f
+00
+f0
+12
+0f
+20
+e4
+ff
+ef
+24
+70
+fd
+e4
+34
+80
+8d
+82
+f5
+83
+e4
+f0
+0f
+ef
+b4
+10
+ee
+7f
+02
+12
+0d
+22
+50
+08
+c2
+06
+7f
+02
+71
+a1
+80
+06
+d2
+06
+7f
+02
+71
+a1
+7f
+03
+12
+0d
+22
+50
+08
+c2
+06
+7f
+03
+71
+a1
+80
+06
+d2
+06
+7f
+03
+71
+a1
+d2
+07
+7f
+08
+12
+10
+7f
+f1
+16
+12
+16
+3a
+80
+fe
+90
+4e
+c7
+e0
+70
+06
+90
+4e
+c1
+e0
+60
+05
+12
+13
+c3
+80
+84
+90
+4e
+bd
+e0
+ff
+64
+01
+60
+09
+ef
+64
+02
+60
+04
+ef
+b4
+07
+0d
+f1
+16
+c2
+08
+7f
+18
+f1
+81
+12
+16
+3a
+41
+fe
+12
+13
+c3
+41
+fe
+41
+fe
+22
+ac
+07
+a2
+06
+92
+04
+12
+1f
+c1
+af
+04
+a2
+06
+b3
+92
+03
+12
+10
+92
+af
+04
+c2
+05
+7b
+01
+7a
+80
+79
+70
+a2
+05
+92
+01
+90
+1c
+1f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+fe
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+fd
+30
+01
+20
+90
+1c
+1f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+11
+f9
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+21
+3f
+90
+1c
+1f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+11
+f9
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5f
+21
+3f
+90
+1b
+bd
+ef
+f0
+e4
+90
+1b
+bf
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+78
+c3
+7c
+1b
+7d
+01
+7b
+ff
+7a
+02
+79
+e8
+fe
+7f
+06
+11
+d3
+90
+1b
+bd
+e0
+51
+1a
+06
+8c
+14
+06
+f7
+15
+04
+68
+2f
+05
+cb
+39
+06
+56
+3a
+05
+f6
+3b
+05
+9c
+3c
+04
+65
+3d
+06
+6b
+40
+00
+00
+07
+15
+12
+1e
+9d
+12
+19
+58
+c2
+06
+7f
+18
+71
+a1
+c2
+06
+7f
+12
+71
+a1
+c2
+06
+7f
+13
+71
+a1
+c2
+06
+7f
+02
+71
+a1
+c2
+06
+7f
+03
+71
+a1
+c2
+06
+7f
+04
+71
+a1
+c2
+06
+7f
+17
+71
+a1
+c2
+06
+7f
+1b
+71
+a1
+c2
+06
+7f
+17
+71
+a1
+c2
+06
+7f
+04
+71
+a1
+c2
+06
+7f
+06
+71
+a1
+d2
+07
+7f
+08
+12
+10
+7f
+d2
+07
+7f
+07
+12
+10
+7f
+7f
+12
+12
+0d
+22
+40
+07
+e4
+90
+4e
+f0
+f0
+80
+06
+90
+4e
+f0
+74
+01
+f0
+7f
+13
+12
+0d
+22
+50
+0a
+90
+42
+cf
+74
+04
+f0
+a3
+74
+30
+f0
+12
+16
+fa
+12
+21
+24
+12
+08
+49
+90
+4e
+d9
+ef
+f0
+7b
+01
+7a
+4e
+79
+db
+7d
+01
+7c
+00
+7f
+a8
+7e
+3f
+12
+18
+88
+90
+4e
+db
+e0
+d3
+94
+03
+40
+03
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+db
+7d
+01
+7c
+00
+7f
+a8
+7e
+3f
+12
+19
+a4
+12
+0a
+8f
+90
+80
+80
+e4
+f0
+90
+4e
+de
+f0
+90
+4e
+dd
+f0
+7f
+04
+12
+0d
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+bf
+ef
+f0
+7f
+17
+12
+0d
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+c1
+ef
+f0
+7f
+1b
+12
+0d
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+c0
+ef
+f0
+e0
+ff
+25
+e0
+ff
+90
+1b
+bf
+e0
+4f
+ff
+90
+1b
+c1
+e0
+fe
+25
+e0
+25
+e0
+4f
+ff
+a3
+f0
+bf
+05
+0c
+90
+1b
+bd
+e0
+b4
+2f
+05
+7f
+25
+02
+0e
+78
+90
+4e
+a7
+e0
+b4
+01
+09
+12
+19
+37
+e4
+90
+4e
+a7
+f0
+22
+02
+19
+37
+90
+4e
+bd
+e0
+b4
+07
+15
+90
+49
+c1
+e0
+ff
+64
+01
+70
+02
+e1
+15
+ef
+b4
+02
+06
+90
+49
+c1
+74
+01
+f0
+12
+16
+fa
+d2
+07
+7f
+07
+12
+10
+7f
+c2
+06
+7f
+07
+71
+a1
+02
+21
+24
+90
+4e
+bd
+74
+01
+f0
+fb
+7a
+4e
+79
+bd
+fd
+7c
+00
+7f
+a9
+7e
+3f
+12
+19
+a4
+7b
+01
+7a
+49
+79
+06
+7d
+06
+7c
+00
+7f
+a2
+7e
+3f
+12
+19
+a4
+7f
+23
+02
+0e
+78
+12
+0f
+16
+e4
+90
+4e
+e3
+f0
+90
+4e
+f2
+e0
+60
+13
+04
+f0
+e0
+54
+07
+f0
+30
+e0
+05
+7f
+23
+02
+0e
+78
+7f
+25
+02
+0e
+78
+7b
+01
+7a
+1b
+79
+c3
+7d
+06
+7c
+00
+7f
+9c
+7e
+3f
+12
+18
+88
+90
+1b
+c3
+e0
+f4
+70
+24
+a3
+e0
+f4
+70
+1f
+a3
+e0
+b4
+ff
+1a
+a3
+e0
+b4
+ff
+15
+a3
+e0
+b4
+ff
+10
+a3
+e0
+b4
+ff
+0b
+90
+4f
+01
+74
+01
+f0
+a3
+74
+1e
+f0
+22
+02
+19
+37
+12
+08
+07
+90
+4e
+e3
+74
+01
+f0
+e4
+90
+4e
+f1
+f0
+a3
+f0
+90
+4e
+be
+f0
+22
+12
+16
+fa
+12
+0c
+cf
+7d
+06
+7f
+80
+12
+0a
+64
+7b
+01
+7a
+4e
+79
+db
+7d
+01
+7c
+00
+7f
+a8
+7e
+3f
+12
+18
+88
+02
+0a
+8f
+e4
+90
+4e
+84
+f0
+7f
+0e
+12
+0e
+78
+7f
+02
+12
+0e
+78
+90
+4e
+bd
+74
+07
+f0
+90
+1b
+be
+74
+09
+f0
+12
+08
+07
+7b
+01
+7a
+03
+79
+72
+7d
+06
+7c
+00
+7f
+96
+7e
+3f
+12
+19
+a4
+7f
+0a
+7e
+00
+12
+16
+46
+7b
+01
+7a
+45
+79
+3e
+7d
+06
+7c
+00
+7f
+9c
+7e
+3f
+12
+19
+a4
+7f
+0a
+7e
+00
+12
+16
+46
+7b
+01
+7a
+1b
+79
+be
+7d
+01
+7c
+00
+7f
+a9
+7e
+3f
+12
+19
+a4
+90
+4e
+be
+74
+06
+f0
+e4
+90
+4e
+c2
+f0
+22
+90
+4e
+be
+e0
+b4
+08
+0a
+12
+0e
+38
+90
+4e
+bd
+74
+03
+f0
+22
+90
+4e
+be
+e0
+b4
+06
+03
+02
+17
+54
+12
+19
+37
+22
+90
+00
+a0
+e4
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+0b
+46
+c2
+07
+7f
+07
+12
+10
+7f
+c2
+06
+7f
+04
+71
+a1
+c2
+06
+7f
+1b
+71
+a1
+c2
+06
+7f
+17
+71
+a1
+c2
+06
+7f
+17
+71
+a1
+c2
+06
+7f
+04
+71
+a1
+c2
+06
+7f
+06
+71
+a1
+7f
+02
+f1
+6d
+7f
+03
+f1
+6d
+7f
+04
+f1
+6d
+7f
+17
+f1
+6d
+7f
+1b
+f1
+6d
+7f
+17
+f1
+6d
+7f
+04
+f1
+6d
+7f
+06
+90
+1c
+2c
+ef
+f0
+12
+0d
+22
+92
+09
+90
+1c
+2c
+e0
+ff
+a2
+09
+b3
+92
+08
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+30
+08
+43
+24
+a0
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+d0
+82
+d0
+83
+f0
+22
+74
+a0
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+fc
+4d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+ff
+ec
+f4
+fe
+ef
+5e
+f0
+22
+91
+b9
+91
+cf
+7f
+18
+b1
+22
+40
+0e
+7f
+02
+11
+20
+7f
+03
+11
+20
+7f
+04
+11
+20
+80
+ec
+22
+90
+02
+18
+ef
+f0
+90
+80
+88
+74
+01
+f0
+a3
+e4
+f0
+90
+80
+8e
+04
+f0
+a3
+e4
+f0
+90
+80
+06
+74
+02
+f0
+90
+81
+2c
+e0
+30
+e3
+f9
+90
+02
+1d
+e0
+ff
+22
+e4
+90
+1c
+27
+f0
+a3
+f0
+e4
+ff
+11
+20
+bf
+31
+18
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+90
+1c
+28
+74
+31
+f0
+21
+28
+7f
+01
+11
+20
+bf
+5a
+18
+90
+1c
+28
+74
+5a
+f0
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+21
+28
+e4
+ff
+11
+20
+ef
+64
+30
+60
+02
+21
+24
+7f
+01
+11
+20
+bf
+54
+08
+90
+1c
+28
+74
+31
+f0
+21
+28
+7f
+01
+11
+20
+ef
+54
+f0
+64
+d0
+70
+28
+7f
+1e
+11
+20
+ef
+30
+e0
+08
+90
+1c
+28
+74
+d1
+f0
+80
+06
+90
+1c
+28
+74
+d0
+f0
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+80
+4d
+7f
+01
+11
+20
+ef
+54
+f0
+ff
+bf
+50
+18
+90
+1c
+28
+74
+50
+f0
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+80
+2a
+7f
+01
+11
+20
+bf
+02
+1f
+7f
+06
+11
+20
+ef
+44
+80
+ff
+90
+1c
+27
+f0
+7d
+06
+51
+64
+90
+1c
+28
+74
+02
+f0
+7f
+01
+11
+20
+ef
+64
+02
+60
+04
+91
+cf
+01
+50
+90
+1c
+28
+e0
+64
+d0
+60
+02
+21
+f8
+7d
+09
+7f
+5a
+51
+64
+7d
+0d
+7f
+0a
+51
+64
+7d
+1b
+7f
+35
+51
+64
+7d
+1d
+7f
+db
+51
+64
+7d
+28
+7f
+b4
+51
+64
+7d
+29
+7f
+46
+51
+64
+7d
+2a
+7f
+96
+51
+64
+7d
+2b
+7f
+8c
+51
+64
+7d
+2c
+7f
+6e
+51
+64
+7d
+2d
+7f
+64
+51
+64
+7d
+38
+7f
+5f
+51
+64
+7d
+39
+7f
+0f
+51
+64
+7d
+3a
+7f
+32
+51
+64
+7d
+3b
+7f
+47
+51
+64
+7d
+42
+7f
+10
+51
+64
+7d
+43
+7f
+09
+51
+64
+7d
+54
+7f
+2e
+51
+64
+7d
+55
+7f
+f2
+51
+64
+7d
+61
+7f
+f4
+51
+64
+7d
+63
+7f
+70
+51
+64
+7d
+75
+7f
+52
+51
+64
+7d
+76
+7f
+41
+51
+64
+7d
+77
+7f
+ed
+51
+64
+7d
+78
+7f
+23
+51
+64
+7d
+79
+7f
+46
+51
+64
+7d
+7a
+7f
+e5
+51
+64
+7d
+7c
+7f
+48
+51
+64
+7d
+7d
+7f
+80
+51
+64
+7d
+7e
+7f
+77
+51
+64
+7d
+7f
+7f
+01
+51
+64
+7d
+0b
+e4
+ff
+51
+64
+7d
+7f
+e4
+ff
+51
+64
+7d
+09
+e4
+ff
+51
+64
+90
+1c
+28
+e0
+b4
+02
+18
+7d
+09
+7f
+5a
+51
+64
+7d
+26
+7f
+34
+51
+64
+7d
+19
+7f
+14
+51
+64
+7d
+09
+e4
+ff
+51
+64
+90
+1c
+28
+e0
+64
+50
+70
+3f
+7d
+09
+7f
+5a
+51
+64
+7d
+5b
+7f
+9a
+51
+64
+7f
+0d
+11
+20
+ef
+64
+12
+60
+08
+7d
+0d
+7f
+12
+51
+64
+80
+ef
+7f
+0e
+11
+20
+ef
+64
+c5
+60
+08
+7d
+0e
+7f
+c5
+51
+64
+80
+ef
+7f
+53
+11
+20
+ef
+64
+48
+60
+08
+7d
+53
+7f
+48
+51
+64
+80
+ef
+90
+1c
+28
+e0
+ff
+22
+ac
+07
+ed
+44
+80
+90
+02
+18
+f0
+a3
+ef
+f0
+90
+80
+88
+74
+02
+f0
+a3
+e4
+f0
+90
+80
+8e
+f0
+a3
+f0
+90
+80
+06
+74
+02
+f0
+90
+81
+2c
+e0
+30
+e3
+f9
+7f
+00
+22
+91
+cf
+90
+4e
+d9
+e0
+ff
+64
+d0
+60
+04
+ef
+b4
+d1
+0a
+90
+4e
+db
+e0
+04
+ff
+7d
+06
+51
+64
+90
+4e
+d9
+e0
+b4
+31
+18
+90
+4e
+db
+e0
+b4
+01
+08
+7d
+06
+e4
+ff
+51
+64
+80
+09
+90
+4e
+db
+e0
+ff
+7d
+06
+51
+64
+90
+4e
+d9
+e0
+b4
+50
+0b
+90
+4e
+db
+e0
+24
+03
+ff
+7d
+06
+51
+64
+90
+4e
+d9
+e0
+b4
+5a
+0b
+90
+4e
+db
+e0
+24
+03
+ff
+7d
+06
+51
+64
+90
+4e
+d9
+e0
+64
+02
+70
+53
+7d
+09
+7f
+5a
+51
+64
+90
+4e
+db
+e0
+14
+60
+18
+14
+60
+23
+14
+60
+2e
+24
+03
+70
+36
+7d
+0d
+7f
+15
+51
+64
+7d
+0e
+7f
+15
+51
+64
+80
+28
+7d
+0d
+7f
+20
+51
+64
+7d
+0e
+7f
+20
+51
+64
+80
+1a
+7d
+0d
+7f
+2a
+51
+64
+7d
+0e
+7f
+2a
+51
+64
+80
+0c
+7d
+0d
+7f
+3f
+51
+64
+7d
+0e
+7f
+3f
+51
+64
+7d
+09
+e4
+ff
+51
+64
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+22
+e4
+90
+1c
+06
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7f
+18
+b1
+22
+50
+02
+c3
+22
+91
+cf
+7f
+02
+11
+20
+ef
+20
+e7
+02
+81
+b7
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+d9
+e0
+64
+02
+60
+16
+7f
+03
+11
+20
+90
+1c
+06
+ef
+f0
+7f
+04
+11
+20
+ef
+f4
+04
+90
+1c
+07
+f0
+80
+29
+7f
+03
+11
+20
+90
+1c
+06
+ef
+f0
+7f
+04
+11
+20
+90
+1c
+07
+ef
+f0
+7f
+12
+11
+20
+90
+1c
+09
+ef
+f0
+e0
+ff
+c4
+54
+0f
+90
+1c
+08
+f0
+ef
+54
+0f
+a3
+f0
+71
+46
+90
+4e
+d9
+e0
+64
+02
+70
+2a
+90
+1c
+08
+e0
+ff
+30
+e3
+05
+44
+f0
+f0
+80
+07
+90
+1c
+08
+e0
+54
+0f
+f0
+90
+1c
+09
+e0
+ff
+30
+e3
+05
+44
+f0
+f0
+80
+31
+90
+1c
+09
+e0
+54
+0f
+f0
+80
+28
+90
+1c
+06
+e0
+30
+e7
+08
+90
+1c
+08
+74
+ff
+f0
+80
+05
+e4
+90
+1c
+08
+f0
+90
+1c
+07
+e0
+30
+e7
+08
+90
+1c
+09
+74
+ff
+f0
+80
+05
+e4
+90
+1c
+09
+f0
+90
+4e
+f0
+e0
+70
+31
+90
+1c
+08
+e0
+fe
+90
+1c
+06
+e0
+fd
+ee
+ed
+ff
+c3
+e4
+9f
+ff
+e4
+9e
+90
+4e
+fd
+f0
+a3
+ef
+f0
+90
+1c
+09
+e0
+fe
+90
+1c
+07
+e0
+fd
+ee
+ed
+ff
+90
+4e
+fb
+ee
+f0
+a3
+ef
+f0
+80
+2a
+90
+1c
+08
+e0
+fe
+90
+1c
+06
+e0
+fd
+ee
+ed
+ff
+90
+4e
+fb
+ee
+f0
+a3
+ef
+f0
+90
+1c
+09
+e0
+fe
+90
+1c
+07
+e0
+fd
+ee
+ed
+ff
+90
+4e
+fd
+ee
+f0
+a3
+ef
+f0
+90
+4e
+fb
+e0
+fe
+a3
+e0
+ff
+c3
+e4
+9f
+ff
+e4
+9e
+90
+4e
+fb
+f0
+a3
+ef
+f0
+a3
+e0
+fe
+a3
+e0
+ff
+c3
+e4
+9f
+ff
+e4
+9e
+90
+4e
+fd
+f0
+a3
+ef
+f0
+90
+4e
+bd
+e0
+b4
+01
+03
+12
+20
+22
+d3
+22
+c3
+22
+e4
+ff
+91
+cf
+7f
+06
+11
+20
+ef
+54
+f7
+ff
+7d
+06
+51
+64
+7f
+02
+11
+20
+61
+46
+e4
+90
+1c
+33
+f0
+90
+80
+81
+04
+f0
+e4
+90
+4f
+00
+f0
+90
+4f
+00
+e0
+04
+f0
+e0
+c3
+94
+06
+40
+03
+12
+16
+fa
+e4
+ff
+11
+20
+90
+1c
+33
+ef
+f0
+64
+30
+60
+27
+e0
+64
+31
+60
+22
+90
+80
+81
+e4
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+77
+e0
+54
+fd
+f0
+90
+80
+73
+e0
+44
+02
+f0
+90
+80
+81
+74
+01
+f0
+80
+bd
+22
+7b
+01
+7a
+81
+79
+1c
+ad
+07
+e4
+90
+1c
+2b
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+01
+12
+fd
+33
+95
+e0
+fc
+90
+1c
+2b
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
+e4
+90
+1b
+f8
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7f
+04
+b1
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+f8
+ef
+f0
+7f
+17
+b1
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+fa
+ef
+f0
+7f
+1b
+b1
+22
+40
+04
+7f
+01
+80
+02
+7f
+00
+90
+1b
+f9
+ef
+f0
+e0
+ff
+25
+e0
+ff
+90
+1b
+f8
+e0
+4f
+ff
+90
+1b
+fa
+e0
+fe
+25
+e0
+25
+e0
+4f
+a3
+f0
+64
+07
+70
+70
+90
+4f
+02
+74
+1e
+f0
+e4
+90
+4e
+c4
+f0
+a3
+f0
+90
+4e
+c7
+74
+0a
+f0
+90
+4e
+c6
+e0
+c3
+94
+19
+50
+59
+90
+4e
+c6
+e0
+04
+f0
+e0
+64
+19
+70
+4e
+90
+4f
+01
+f0
+a3
+f0
+90
+4e
+bd
+e0
+60
+32
+14
+60
+1e
+24
+fb
+60
+2b
+24
+fe
+60
+0e
+04
+70
+34
+7f
+11
+d1
+78
+90
+4e
+be
+74
+08
+f0
+22
+90
+4e
+bd
+74
+03
+f0
+80
+22
+f1
+16
+7f
+0a
+7e
+00
+12
+16
+46
+90
+4e
+bd
+74
+03
+f0
+80
+11
+f1
+16
+90
+4e
+bd
+74
+03
+f0
+80
+07
+22
+e4
+90
+4e
+c6
+f0
+22
+7b
+01
+7a
+4f
+79
+11
+7d
+02
+7c
+00
+7f
+aa
+7e
+3f
+12
+18
+88
+90
+4f
+12
+e0
+04
+f0
+70
+06
+90
+4f
+11
+e0
+04
+f0
+7b
+01
+7a
+4f
+79
+11
+7d
+02
+7c
+00
+7f
+aa
+7e
+3f
+12
+19
+a4
+90
+4f
+11
+e0
+fc
+a3
+e0
+90
+45
+3f
+f0
+ec
+a3
+f0
+7f
+0d
+90
+1c
+12
+ef
+f0
+78
+13
+7c
+1c
+7d
+01
+7b
+ff
+7a
+02
+79
+ee
+7e
+00
+7f
+03
+12
+00
+d3
+90
+1c
+12
+e0
+90
+1c
+15
+f0
+7b
+01
+7a
+1c
+79
+13
+7d
+03
+90
+1b
+ed
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+47
+c6
+e0
+ff
+a3
+e0
+90
+1b
+f1
+cf
+f0
+a3
+ef
+f0
+90
+1b
+f0
+e0
+ff
+14
+f0
+ef
+60
+3f
+90
+1b
+ed
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+12
+00
+f9
+ff
+90
+1b
+f1
+e4
+75
+f0
+01
+12
+02
+04
+85
+f0
+82
+f5
+83
+ef
+f0
+90
+1b
+f1
+e0
+fe
+a3
+e0
+ff
+be
+47
+c6
+bf
+c4
+c3
+90
+1b
+f1
+74
+47
+f0
+a3
+74
+2e
+f0
+80
+b7
+90
+1b
+f1
+e0
+ff
+a3
+e0
+90
+47
+c6
+cf
+f0
+a3
+ef
+f0
+22
+7f
+24
+d1
+78
+e4
+90
+4e
+bd
+f0
+22
+e4
+ff
+91
+cf
+7f
+06
+11
+20
+ef
+44
+08
+ff
+7d
+06
+51
+64
+90
+80
+81
+e4
+f0
+c2
+06
+7f
+19
+12
+03
+a1
+c2
+06
+7f
+1a
+02
+03
+a1
+90
+4e
+dc
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+06
+b1
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+dc
+f0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+dc
+e0
+64
+07
+70
+29
+90
+4e
+db
+e0
+04
+f0
+e0
+54
+03
+f0
+70
+02
+04
+f0
+90
+4e
+db
+e0
+90
+4e
+dd
+f0
+51
+8f
+7b
+01
+7a
+4e
+79
+db
+7d
+01
+7c
+00
+7f
+a8
+7e
+3f
+12
+19
+a4
+22
+7b
+01
+7a
+49
+79
+50
+7d
+04
+7c
+00
+7f
+a4
+7e
+3f
+12
+18
+88
+90
+49
+50
+e0
+f4
+70
+27
+a3
+e0
+f4
+70
+22
+a3
+e0
+b4
+ff
+1d
+a3
+e0
+b4
+ff
+18
+90
+49
+50
+74
+0f
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7f
+23
+d1
+78
+90
+4e
+f2
+74
+01
+f0
+80
+04
+7f
+23
+d1
+78
+90
+4e
+bd
+74
+01
+f0
+22
+d2
+07
+7f
+07
+12
+10
+7f
+90
+4e
+ca
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+04
+b1
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+ca
+f0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+ca
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+cb
+f0
+90
+4e
+cb
+e0
+ff
+22
+d2
+07
+7f
+07
+11
+7f
+90
+4e
+cc
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+17
+12
+0d
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+cc
+f0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+cc
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+cd
+f0
+90
+4e
+cd
+e0
+ff
+22
+ac
+07
+d2
+05
+12
+03
+b8
+af
+04
+a2
+07
+92
+02
+11
+9f
+af
+04
+c2
+03
+7b
+01
+7a
+80
+79
+78
+a2
+03
+92
+01
+02
+03
+c2
+7b
+01
+7a
+80
+79
+74
+a2
+02
+92
+01
+02
+03
+c2
+90
+4e
+dd
+e0
+70
+06
+a3
+04
+f0
+e4
+a3
+f0
+90
+4e
+dd
+e0
+60
+38
+90
+4e
+df
+e0
+04
+f0
+e0
+54
+07
+64
+05
+70
+69
+90
+4e
+c7
+74
+0a
+f0
+90
+4e
+de
+e0
+60
+0c
+c2
+02
+7f
+08
+11
+9f
+e4
+90
+4e
+de
+f0
+22
+d2
+02
+7f
+08
+11
+9f
+90
+4e
+de
+74
+01
+f0
+90
+4e
+dd
+e0
+14
+f0
+22
+90
+4e
+bd
+e0
+b4
+03
+14
+90
+4e
+c7
+74
+45
+f0
+90
+4e
+c9
+e0
+54
+07
+64
+04
+70
+27
+7f
+08
+80
+24
+90
+4e
+e2
+e0
+60
+17
+90
+4e
+c9
+e0
+54
+1f
+c3
+94
+05
+50
+0c
+90
+4e
+c7
+74
+0a
+f0
+c2
+02
+7f
+08
+01
+9f
+d2
+02
+7f
+08
+11
+9f
+22
+90
+1c
+2d
+ef
+f0
+7b
+01
+7a
+80
+79
+74
+12
+0d
+28
+92
+0a
+90
+1c
+2d
+e0
+ff
+a2
+0a
+b3
+92
+02
+01
+9f
+e4
+90
+1b
+f3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+0f
+e7
+90
+1b
+f3
+ef
+f0
+11
+33
+90
+1b
+f5
+ef
+f0
+51
+82
+90
+1b
+f4
+ef
+f0
+31
+b4
+90
+1b
+f6
+ef
+f0
+51
+1b
+90
+1b
+f7
+ef
+f0
+12
+0f
+43
+90
+1b
+f4
+e0
+ff
+25
+e0
+ff
+90
+1b
+f3
+e0
+4f
+ff
+90
+1b
+f5
+e0
+fe
+25
+e0
+25
+e0
+4f
+ff
+a3
+e0
+fe
+33
+33
+33
+54
+f8
+4f
+ff
+a3
+e0
+fe
+c4
+54
+f0
+4f
+90
+4e
+ed
+f0
+22
+7f
+17
+12
+0d
+22
+40
+03
+7f
+00
+22
+c2
+07
+7f
+07
+11
+7f
+90
+4e
+d2
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+17
+12
+0d
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+d2
+f0
+d2
+07
+7f
+07
+11
+7f
+c2
+06
+7f
+07
+12
+03
+a1
+90
+4e
+d2
+e0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+d2
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+d3
+f0
+90
+4e
+d3
+e0
+ff
+22
+7f
+04
+12
+0d
+22
+40
+03
+7f
+00
+22
+c2
+07
+7f
+07
+11
+7f
+90
+4e
+d0
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+04
+12
+0d
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+d0
+f0
+d2
+07
+7f
+07
+11
+7f
+c2
+06
+7f
+07
+12
+03
+a1
+90
+4e
+d0
+e0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+d0
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+d1
+f0
+90
+4e
+d1
+e0
+ff
+22
+d2
+07
+7f
+07
+11
+7f
+90
+4e
+ce
+e0
+ff
+25
+e0
+f0
+e0
+ff
+c0
+07
+7f
+1b
+12
+0d
+22
+40
+04
+7e
+01
+80
+02
+7e
+00
+d0
+e0
+4e
+90
+4e
+ce
+f0
+30
+e0
+06
+90
+4e
+c7
+74
+02
+f0
+90
+4e
+ce
+e0
+54
+07
+ff
+bf
+07
+06
+a3
+74
+01
+f0
+80
+07
+ef
+70
+04
+90
+4e
+cf
+f0
+90
+4e
+cf
+e0
+ff
+22
+e4
+90
+1b
+e1
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+7d
+f0
+d1
+fa
+90
+4e
+bd
+e0
+b4
+01
+17
+90
+4e
+e3
+e0
+b4
+01
+10
+7f
+18
+12
+0d
+22
+40
+09
+12
+0b
+5a
+e4
+33
+90
+1b
+e5
+f0
+90
+4e
+bd
+74
+01
+f0
+90
+1b
+e6
+e0
+04
+f0
+71
+cf
+90
+1b
+e6
+e0
+d3
+94
+05
+40
+0b
+74
+05
+f0
+90
+4e
+7d
+74
+02
+f0
+80
+75
+d1
+65
+31
+51
+90
+4e
+7d
+e0
+70
+6b
+90
+4e
+d8
+e0
+60
+16
+90
+1b
+e5
+74
+01
+f0
+90
+4e
+7d
+74
+03
+f0
+90
+49
+b7
+74
+01
+f0
+90
+4e
+80
+f0
+90
+4e
+ed
+e0
+ff
+90
+4e
+d4
+e0
+6f
+60
+1d
+90
+49
+b7
+74
+01
+f0
+90
+1b
+e5
+f0
+90
+4e
+7d
+74
+03
+f0
+90
+4e
+d4
+ef
+f0
+bf
+07
+05
+e4
+90
+1b
+e5
+f0
+90
+4e
+d4
+e0
+b4
+07
+06
+90
+4e
+7d
+74
+03
+f0
+90
+1b
+e5
+e0
+b4
+01
+12
+f1
+6e
+e4
+90
+1b
+e5
+f0
+90
+4e
+7d
+e0
+64
+03
+60
+03
+74
+01
+f0
+90
+0b
+2a
+e0
+64
+01
+60
+02
+61
+07
+90
+4e
+c7
+e0
+70
+06
+90
+4e
+c1
+e0
+60
+02
+80
+13
+90
+4e
+bd
+e0
+b4
+01
+0c
+12
+07
+16
+c2
+08
+7f
+18
+12
+07
+81
+c1
+3a
+90
+0b
+2b
+74
+01
+f0
+e4
+90
+0b
+2a
+f0
+22
+7a
+1a
+79
+00
+90
+1c
+22
+74
+01
+f0
+a3
+74
+1a
+f0
+a3
+74
+00
+f0
+90
+48
+2e
+e0
+fe
+a3
+e0
+ff
+90
+48
+2c
+e0
+6e
+70
+03
+a3
+e0
+6f
+70
+02
+a1
+86
+7b
+01
+7a
+1a
+79
+00
+7d
+03
+b1
+df
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+b4
+02
+2b
+90
+1c
+23
+e4
+75
+f0
+02
+12
+01
+ee
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+ff
+90
+48
+30
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+12
+02
+44
+a1
+86
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+64
+04
+70
+5b
+90
+1c
+23
+75
+f0
+01
+12
+01
+ee
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+b1
+df
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+22
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+fd
+7c
+00
+90
+48
+33
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+02
+44
+a1
+86
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+64
+05
+70
+5b
+90
+1c
+23
+75
+f0
+01
+12
+01
+ee
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+b1
+df
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+22
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+fd
+7c
+00
+90
+48
+3c
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+02
+44
+80
+6f
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+64
+03
+70
+5b
+90
+1c
+23
+75
+f0
+01
+12
+01
+ee
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+14
+fd
+7b
+01
+7a
+1a
+79
+03
+b1
+df
+90
+1c
+22
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+1c
+22
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+00
+f9
+fd
+7c
+00
+90
+48
+3f
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+02
+44
+80
+02
+80
+fe
+90
+48
+98
+e0
+fe
+a3
+e0
+ff
+90
+48
+9a
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+21
+90
+48
+36
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+36
+12
+02
+40
+90
+48
+9b
+e0
+04
+f0
+70
+06
+90
+48
+9a
+e0
+04
+f0
+80
+cb
+90
+48
+9c
+e0
+ff
+a3
+e0
+6f
+60
+19
+90
+48
+39
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+0b
+12
+02
+40
+90
+48
+9d
+e0
+04
+f0
+80
+dd
+22
+90
+1c
+0e
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+48
+2c
+e0
+fe
+a3
+e0
+ff
+90
+1c
+11
+e0
+fd
+14
+f0
+ed
+60
+32
+0f
+ef
+ac
+06
+70
+01
+0e
+14
+f5
+82
+8c
+83
+e0
+fd
+90
+1c
+0e
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+ed
+12
+01
+3f
+ad
+07
+ac
+06
+bc
+48
+cd
+bd
+2c
+ca
+7e
+47
+7f
+c8
+80
+c4
+90
+48
+2c
+ee
+f0
+a3
+ef
+f0
+22
+e4
+90
+0b
+2b
+f0
+90
+0b
+2a
+f0
+7f
+01
+fe
+d3
+ef
+94
+00
+ee
+94
+00
+40
+15
+e4
+fd
+fc
+0d
+bd
+00
+01
+0c
+bc
+04
+f8
+bd
+a6
+f5
+ef
+1f
+70
+01
+1e
+80
+e2
+22
+e4
+90
+1c
+16
+f0
+a3
+f0
+7f
+02
+12
+0d
+22
+e4
+33
+90
+1c
+18
+f0
+7f
+03
+12
+0d
+22
+e4
+33
+ff
+90
+1c
+18
+e0
+fe
+25
+e0
+4f
+ff
+90
+4e
+d5
+e0
+6f
+60
+5b
+90
+4e
+d6
+e0
+a3
+f0
+90
+4e
+d5
+e0
+a3
+f0
+90
+4e
+d5
+ef
+f0
+fd
+a3
+e0
+75
+f0
+04
+a4
+fb
+aa
+f0
+ed
+75
+f0
+10
+a4
+ff
+e5
+f0
+4a
+fe
+ef
+4b
+ff
+a3
+e0
+fd
+ee
+ef
+4d
+ff
+90
+1c
+16
+ee
+f0
+a3
+ef
+f0
+ee
+70
+21
+ef
+24
+f5
+60
+14
+24
+d7
+60
+10
+24
+fc
+60
+04
+24
+31
+70
+10
+90
+4e
+d8
+e0
+14
+f0
+80
+09
+90
+4e
+d8
+e0
+04
+f0
+d1
+eb
+22
+90
+4e
+bd
+e0
+64
+01
+60
+06
+90
+4e
+c7
+74
+03
+f0
+22
+90
+80
+86
+74
+75
+f0
+a3
+74
+0a
+f0
+90
+80
+8a
+74
+18
+f0
+a3
+74
+02
+f0
+a3
+74
+1d
+f0
+a3
+74
+02
+f0
+90
+80
+77
+e0
+44
+02
+f0
+22
+90
+4e
+c7
+e0
+60
+02
+14
+f0
+90
+4e
+c9
+e0
+04
+f0
+90
+4e
+ec
+e0
+60
+02
+04
+f0
+11
+ac
+12
+0d
+67
+12
+1a
+d2
+90
+4f
+01
+e0
+b4
+01
+10
+a3
+e0
+70
+06
+90
+4f
+01
+f0
+f1
+54
+90
+4f
+02
+e0
+14
+f0
+22
+e4
+90
+4e
+c4
+f0
+a3
+f0
+90
+4e
+c7
+f0
+90
+4e
+c1
+04
+f0
+e4
+90
+4e
+bd
+f0
+7f
+19
+02
+0e
+78
+90
+4e
+d4
+e0
+90
+4e
+21
+f0
+90
+4e
+fb
+e0
+fc
+a3
+e0
+90
+4e
+22
+f0
+ec
+ff
+33
+95
+e0
+a3
+ef
+f0
+90
+4e
+fd
+e0
+fc
+a3
+e0
+90
+4e
+24
+f0
+ec
+ff
+33
+95
+e0
+a3
+ef
+f0
+90
+4e
+d8
+e0
+90
+4e
+26
+f0
+e4
+a3
+f0
+90
+4e
+d8
+f0
+90
+4e
+c4
+f0
+a3
+f0
+22
+90
+1c
+02
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+4e
+bd
+e0
+ff
+64
+01
+60
+0a
+ef
+64
+02
+60
+05
+ef
+64
+07
+70
+2e
+ef
+b4
+01
+11
+90
+1c
+02
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+02
+1b
+97
+90
+4e
+bd
+e0
+b4
+07
+10
+90
+1c
+02
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+80
+03
+80
+fe
+22
+90
+1c
+31
+ed
+f0
+90
+1a
+96
+74
+05
+f0
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+31
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+ec
+ed
+f0
+11
+45
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+31
+e0
+24
+02
+fd
+02
+0e
+a0
+90
+1b
+e7
+ee
+f0
+a3
+ef
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+ec
+e0
+ff
+14
+f0
+ef
+60
+27
+90
+1b
+e9
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+12
+00
+f9
+ff
+90
+1b
+e7
+e4
+75
+f0
+01
+12
+02
+04
+85
+f0
+82
+f5
+83
+ef
+f0
+80
+cf
+22
+90
+1b
+fd
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+80
+98
+74
+04
+f0
+a3
+e4
+f0
+90
+1b
+2c
+74
+a0
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+90
+1b
+2f
+74
+a1
+f0
+7a
+1b
+79
+2c
+7e
+1b
+7f
+2c
+74
+2c
+fc
+74
+1b
+ff
+ec
+fe
+ef
+90
+80
+9a
+ee
+f0
+a3
+ef
+f0
+90
+1b
+fd
+e0
+fc
+a3
+e0
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+9e
+ee
+f0
+a3
+ef
+f0
+7a
+1b
+79
+30
+7e
+1b
+7f
+30
+74
+30
+fc
+74
+1b
+ff
+ec
+fe
+ef
+90
+80
+9c
+ee
+f0
+a3
+ef
+f0
+90
+80
+90
+74
+02
+f0
+90
+80
+9c
+a3
+e0
+20
+e7
+07
+90
+80
+90
+e0
+44
+01
+f0
+90
+80
+06
+e0
+44
+04
+f0
+51
+c1
+90
+1b
+ff
+e0
+a3
+e0
+fa
+a3
+e0
+ae
+02
+ff
+7b
+01
+7a
+1b
+79
+30
+90
+1b
+fd
+e0
+a3
+e0
+90
+1b
+ec
+f0
+01
+45
+e4
+90
+4e
+c4
+f0
+a3
+f0
+7b
+01
+7a
+45
+79
+3e
+7d
+06
+fc
+7f
+9c
+7e
+3f
+11
+88
+90
+4e
+bd
+74
+08
+f0
+7f
+27
+02
+0e
+78
+e4
+90
+1c
+29
+f0
+7b
+01
+7a
+1c
+79
+29
+7d
+01
+fc
+7f
+ac
+7e
+3f
+11
+88
+90
+1c
+29
+e0
+b4
+ff
+30
+51
+c9
+90
+4f
+11
+ee
+f0
+a3
+ef
+f0
+7b
+01
+7a
+4f
+79
+11
+7d
+02
+7c
+00
+7f
+aa
+7e
+3f
+31
+a4
+90
+1c
+29
+74
+5a
+f0
+7b
+01
+7a
+1c
+79
+29
+7d
+01
+7c
+00
+7f
+ac
+7e
+3f
+31
+a4
+22
+90
+1b
+c9
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+cb
+e0
+70
+02
+a3
+e0
+70
+02
+41
+53
+90
+1b
+c9
+e0
+fe
+a3
+e0
+ff
+44
+0f
+24
+01
+fd
+e4
+3e
+fc
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+90
+1b
+d0
+f0
+a3
+ef
+f0
+90
+1b
+cb
+e0
+fc
+a3
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
+90
+1b
+d0
+e0
+fe
+a3
+e0
+ff
+80
+04
+ae
+04
+af
+05
+90
+1b
+d0
+ee
+f0
+fc
+a3
+ef
+f0
+fd
+c3
+90
+1b
+cc
+e0
+9d
+f0
+90
+1b
+cb
+e0
+9c
+f0
+90
+1b
+c9
+e0
+fe
+a3
+e0
+ff
+90
+1b
+cd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+51
+54
+7f
+0a
+7e
+00
+12
+16
+46
+90
+1b
+d0
+e0
+fe
+a3
+e0
+ff
+90
+1b
+ce
+ee
+8f
+f0
+12
+01
+ee
+90
+1b
+ca
+e0
+2f
+f0
+90
+1b
+c9
+e0
+3e
+f0
+21
+bb
+22
+90
+1b
+94
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+7e
+1b
+7f
+9b
+90
+1b
+ec
+f0
+11
+45
+90
+1b
+98
+74
+a0
+f0
+90
+1b
+94
+e0
+ff
+a3
+e0
+90
+1b
+99
+cf
+f0
+a3
+ef
+f0
+90
+1b
+97
+e0
+24
+03
+fd
+90
+1b
+96
+e0
+34
+00
+fc
+ed
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+98
+ee
+f0
+a3
+ef
+f0
+7d
+98
+ed
+fa
+74
+1b
+ff
+ea
+fe
+ef
+a3
+ee
+f0
+a3
+ef
+f0
+90
+80
+9e
+e4
+f0
+a3
+f0
+90
+80
+90
+04
+f0
+90
+80
+06
+e0
+44
+04
+f0
+90
+81
+2c
+e0
+30
+e5
+f9
+22
+90
+4e
+41
+e0
+fe
+a3
+e0
+ff
+22
+e4
+90
+1c
+25
+f0
+a3
+f0
+51
+c9
+c0
+06
+c0
+07
+71
+8e
+ac
+06
+ad
+07
+d0
+07
+d0
+06
+c3
+ed
+9f
+ff
+ec
+9e
+90
+1c
+25
+f0
+a3
+ef
+f0
+90
+42
+cf
+e0
+64
+04
+60
+02
+61
+84
+51
+c9
+c0
+06
+c0
+07
+71
+85
+ac
+06
+ad
+07
+d0
+07
+d0
+06
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+7c
+00
+7d
+1e
+12
+01
+63
+7c
+00
+7d
+0a
+12
+01
+51
+c3
+90
+1c
+26
+e0
+9f
+90
+1c
+25
+e0
+9e
+50
+08
+90
+4e
+e2
+74
+01
+f0
+80
+05
+e4
+90
+4e
+e2
+f0
+51
+c9
+c0
+06
+c0
+07
+71
+85
+ac
+06
+ad
+07
+d0
+07
+d0
+06
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+7c
+00
+7d
+1e
+12
+01
+63
+7c
+00
+7d
+09
+12
+01
+51
+c3
+90
+1c
+26
+e0
+9f
+90
+1c
+25
+e0
+9e
+50
+13
+90
+49
+54
+e0
+64
+01
+60
+08
+90
+4e
+bd
+e0
+64
+01
+60
+03
+12
+17
+54
+22
+90
+4e
+43
+e0
+fe
+a3
+e0
+ff
+22
+90
+42
+d1
+e0
+fe
+a3
+e0
+ff
+22
+90
+1c
+2f
+ed
+f0
+90
+1a
+96
+74
+06
+f0
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+2f
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+ec
+ed
+f0
+11
+45
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+2f
+e0
+24
+02
+fd
+02
+0e
+a0
+90
+1c
+30
+ed
+f0
+90
+1a
+96
+74
+04
+f0
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+30
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+ec
+ed
+f0
+11
+45
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+30
+e0
+24
+02
+fd
+02
+0e
+a0
+90
+1c
+2e
+ed
+f0
+90
+1a
+96
+74
+03
+f0
+90
+1c
+2e
+e0
+60
+38
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+f1
+a3
+e0
+b5
+07
+ec
+90
+1c
+2e
+e0
+fd
+90
+1a
+97
+f0
+7e
+1a
+7f
+98
+90
+1b
+ec
+ed
+f0
+11
+45
+7b
+01
+7a
+1a
+79
+96
+90
+1c
+2e
+e0
+24
+02
+fd
+12
+0e
+a0
+22
+e4
+90
+1c
+0a
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+c2
+00
+90
+4e
+bd
+e0
+ff
+64
+01
+60
+07
+ef
+64
+07
+60
+02
+a1
+ca
+90
+4e
+e3
+e0
+70
+0a
+90
+4e
+bd
+e0
+64
+01
+70
+02
+a1
+ca
+b1
+cb
+40
+02
+a1
+ca
+90
+4e
+ed
+e0
+ff
+90
+4e
+d4
+e0
+b5
+07
+19
+90
+4e
+c7
+e0
+fe
+d3
+94
+00
+40
+05
+ee
+94
+03
+40
+0a
+90
+4e
+bd
+e0
+b4
+01
+0b
+ef
+60
+08
+d2
+00
+90
+49
+b7
+74
+01
+f0
+90
+4e
+ed
+e0
+90
+4e
+d4
+f0
+e4
+90
+4e
+fb
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+bd
+e0
+b4
+01
+07
+12
+0b
+5a
+72
+00
+92
+00
+90
+4e
+bd
+e0
+b4
+07
+20
+90
+45
+95
+e0
+b4
+01
+19
+12
+16
+fa
+12
+0b
+5a
+72
+00
+92
+00
+90
+4e
+83
+e0
+ff
+90
+4e
+84
+e0
+6f
+60
+03
+e0
+04
+f0
+90
+4e
+d8
+e0
+60
+1f
+d2
+00
+90
+49
+b7
+74
+01
+f0
+90
+4e
+80
+f0
+90
+4e
+bd
+e0
+b4
+07
+0c
+90
+4e
+81
+74
+01
+f0
+90
+4e
+82
+74
+0a
+f0
+90
+4e
+c6
+e0
+c3
+94
+17
+40
+07
+e4
+90
+4e
+d4
+f0
+d2
+00
+20
+00
+02
+a1
+ca
+90
+4e
+c6
+e0
+c3
+94
+18
+50
+78
+90
+49
+c2
+74
+01
+f0
+90
+4e
+bd
+e0
+ff
+64
+01
+60
+0a
+ef
+64
+02
+60
+05
+ef
+64
+07
+70
+5f
+12
+17
+6e
+90
+4e
+a6
+e0
+60
+4b
+90
+4e
+21
+e0
+70
+34
+a3
+e0
+70
+30
+a3
+e0
+70
+2c
+a3
+e0
+70
+28
+a3
+e0
+70
+24
+a3
+e0
+70
+20
+a3
+e0
+70
+1c
+90
+1c
+32
+e0
+c3
+94
+03
+50
+2f
+7b
+01
+7a
+4e
+79
+21
+7d
+07
+12
+17
+b2
+90
+1c
+32
+e0
+04
+f0
+22
+22
+7b
+01
+7a
+4e
+79
+21
+7d
+07
+12
+17
+b2
+e4
+90
+1c
+32
+f0
+22
+7b
+01
+7a
+4e
+79
+21
+7d
+07
+12
+17
+b2
+22
+90
+47
+c6
+e0
+fe
+a3
+e0
+ff
+90
+47
+c4
+e0
+b5
+06
+07
+a3
+e0
+b5
+07
+02
+d3
+22
+c3
+22
+e4
+90
+1c
+2a
+f0
+90
+4e
+c5
+e0
+04
+f0
+70
+06
+90
+4e
+c4
+e0
+04
+f0
+90
+4e
+bd
+e0
+14
+60
+60
+24
+fe
+60
+21
+24
+fd
+60
+77
+14
+60
+35
+14
+60
+02
+c1
+9c
+90
+1c
+2a
+74
+09
+f0
+90
+4e
+c4
+e0
+70
+04
+a3
+e0
+64
+10
+70
+7d
+80
+78
+22
+90
+1c
+2a
+74
+02
+f0
+90
+4e
+c4
+e0
+64
+01
+70
+04
+a3
+e0
+64
+68
+70
+66
+90
+41
+31
+04
+f0
+80
+5c
+90
+1c
+2a
+74
+09
+f0
+90
+4e
+c4
+e0
+64
+04
+70
+04
+a3
+e0
+64
+b0
+70
+4b
+7f
+11
+12
+0e
+78
+90
+4e
+be
+74
+06
+f0
+22
+90
+1c
+2a
+74
+01
+f0
+d3
+90
+4e
+c5
+e0
+94
+b0
+90
+4e
+c4
+e0
+94
+04
+40
+2a
+90
+4e
+e3
+e0
+b4
+01
+23
+80
+1e
+22
+90
+1c
+2a
+74
+02
+f0
+b1
+cb
+50
+16
+c3
+90
+4e
+c5
+e0
+94
+03
+90
+4e
+c4
+e0
+94
+00
+40
+07
+80
+02
+22
+22
+12
+17
+54
+22
+7b
+01
+7a
+4e
+79
+21
+7d
+20
+7c
+00
+d1
+c0
+7b
+01
+7a
+4e
+79
+bb
+7d
+5a
+7c
+00
+d1
+c0
+90
+4f
+13
+74
+ff
+f0
+a3
+74
+5a
+f0
+22
+90
+1c
+19
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+16
+90
+1c
+19
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+e4
+12
+01
+3f
+80
+e0
+22
+7b
+01
+7a
+1b
+79
+ab
+78
+30
+7c
+48
+7d
+01
+7e
+00
+7f
+12
+02
+00
+d3
+90
+82
+80
+74
+01
+f0
+22
+90
+1b
+d2
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+1b
+d8
+74
+ff
+f5
+f0
+12
+02
+04
+45
+f0
+60
+2a
+90
+1b
+d5
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+12
+00
+f9
+ff
+90
+1b
+d2
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+ef
+12
+01
+3f
+80
+c8
+22
+90
+1c
+1c
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+17
+90
+1c
+1c
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+02
+04
+a9
+f0
+fa
+74
+ff
+12
+01
+3f
+80
+df
+22
+90
+1b
+da
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+90
+1b
+e0
+e0
+fe
+ef
+c3
+9e
+50
+30
+90
+1b
+dd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+01
+12
+fe
+90
+1b
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+01
+12
+6e
+60
+03
+7f
+00
+22
+0f
+80
+c6
+7f
+01
+22
+7b
+01
+7a
+80
+79
+7c
+a2
+04
+92
+01
+02
+03
+c2
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+24
+a0
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+fc
+5d
+d0
+82
+d0
+83
+f0
+74
+a4
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+5c
+f0
+22
+90
+03
+f0
+e0
+ff
+22
+d3
+ef
+94
+00
+ee
+64
+80
+94
+80
+50
+07
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+22
+90
+4e
+fb
+e0
+fe
+a3
+e0
+ff
+d3
+94
+06
+ee
+64
+80
+94
+80
+50
+26
+c3
+ef
+94
+fa
+ee
+64
+80
+94
+7f
+40
+1b
+a3
+e0
+fe
+a3
+e0
+ff
+d3
+94
+06
+ee
+64
+80
+94
+80
+50
+0b
+c3
+ef
+94
+fa
+ee
+64
+80
+94
+7f
+50
+06
+90
+4e
+ff
+74
+01
+f0
+90
+4e
+fb
+e0
+fe
+a3
+e0
+ff
+11
+0f
+c3
+ef
+94
+03
+ee
+94
+00
+50
+14
+a3
+e0
+fe
+a3
+e0
+ff
+11
+0f
+c3
+ef
+94
+03
+ee
+94
+00
+50
+03
+e4
+a3
+f0
+90
+4e
+ff
+e0
+64
+01
+60
+02
+21
+10
+90
+4e
+f7
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4e
+f4
+e0
+9f
+ff
+90
+4e
+f3
+e0
+9e
+fe
+90
+4e
+fc
+e0
+2f
+ff
+90
+4e
+fb
+e0
+3e
+fe
+90
+4e
+f3
+f0
+a3
+ef
+f0
+7c
+00
+7d
+02
+12
+01
+b8
+90
+4e
+f7
+ee
+f0
+a3
+ef
+f0
+90
+4e
+fb
+ee
+f0
+a3
+ef
+f0
+90
+4e
+f9
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4e
+f6
+e0
+9f
+ff
+90
+4e
+f5
+e0
+9e
+fe
+90
+4e
+fe
+e0
+2f
+ff
+90
+4e
+fd
+e0
+3e
+fe
+90
+4e
+f5
+f0
+a3
+ef
+f0
+7c
+00
+7d
+02
+12
+01
+b8
+90
+4e
+f9
+ee
+f0
+a3
+ef
+f0
+90
+4e
+fd
+ee
+f0
+a3
+ef
+f0
+22
+e4
+90
+4e
+f3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+22
+e4
+90
+4e
+f3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+90
+4e
+ff
+f0
+90
+4e
+fb
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+22
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/geneep.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/geneep.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/geneep.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/otp.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/otp.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/otp.dat	(working copy)
@@ -0,0 +1,12 @@
+00
+02
+aa
+55
+00
+00
+aa
+55
+00
+00
+82
+78
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/ramcode.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/ramcode.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/ramcode.rom	(working copy)
@@ -0,0 +1,1618 @@
+c5128011
+c0000026
+c0018031
+c0430036
+c0450040
+c0458062
+c053806e
+c0540075
+c0548089
+c056009c
+c05a0341
+c05a80b5
+c05b00bc
+c05b80de
+c05c8226
+c05d022a
+20203b34
+c0028118
+c00b011d
+c00d8121
+c0118124
+c0178148
+c018815d
+c019016f
+c0198182
+c01c8193
+c01e01a0
+c01e81b3
+c01f01b9
+c01f81d2
+c02101f0
+c02681f5
+c04a8232
+c0798239
+c07b8245
+c07c026f
+c07c8275
+20203b34
+20800000
+2435b004
+6800c595
+243a002f
+6800ce78
+203a3004
+704e7f00
+c5933004
+2435b004
+70828003
+20203004
+2040027f
+204002bb
+6800ce78
+243a037a
+2020301b
+2030b9a3
+708955d4
+20000004
+708955d2
+20000004
+708955d1
+20000004
+6800c280
+c00a39ae
+2020399c
+60088017
+1840a200
+20403a13
+58000500
+20403b35
+70890601
+7089003c
+708901e0
+70896d12
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027f
+6800c280
+c00a005f
+c2808059
+c2810059
+70894c5b
+70894d96
+70894e2c
+70894f46
+2020005d
+70894cfb
+70894def
+70894eec
+70894f5e
+6800c280
+202039dc
+708956c2
+708955d0
+20600000
+20403cd2
+20403a5f
+70804206
+68108968
+79207e07
+60108968
+793ffe07
+60108968
+79207e07
+60108968
+70804205
+20203a0c
+20403c2b
+6800ce45
+207a0000
+704e4500
+1c427e00
+6002489e
+20600000
+c6130000
+20403be2
+6801c20f
+207a0000
+68014042
+d840ffff
+98467c00
+20628000
+6800c131
+207a0000
+20404816
+247a0000
+20403d0e
+247a0000
+20403a7b
+6800c6e2
+203a3c5e
+6800c639
+207a0000
+20203c5e
+6800c595
+203a0096
+6800809f
+243a0096
+6800ce83
+6808ce84
+98467c00
+24628000
+6800ce81
+247a0000
+58000000
+600400a0
+20203c6a
+204000a1
+24740000
+68008b2b
+247a0000
+7049c100
+20203c6a
+204000a1
+24740000
+68008b2b
+247a0000
+20203c8c
+204000ac
+24740000
+204000a9
+24740000
+700b2b01
+700b2a01
+204000b1
+202000ac
+6801482c
+6809482e
+202000ae
+680147c4
+680947c6
+98467c00
+2022e4c0
+202031d4
+68008b2a
+2000000a
+c08000b1
+20600000
+70001627
+70015000
+70017e00
+70017f00
+58000000
+600288d2
+20600000
+da2046f0
+20407f95
+207a0000
+1fe22600
+204000c2
+20203d9b
+c10c0000
+c00a00c7
+c00a80d1
+c01480dc
+20203d73
+704e8300
+70421200
+704ebb00
+704e5114
+20403e61
+20403e59
+20403e7f
+20403e20
+704eb901
+20203dc2
+704ea400
+204002fc
+7044b200
+70421200
+704ebb00
+704e5100
+70456a00
+68094e4e
+600944f8
+204052a0
+20203dc6
+20400106
+20207e3b
+6008824e
+6800c89c
+1fe0fe01
+6000c89c
+6800824e
+207a0000
+1fe0ffff
+6000824e
+20400109
+204000ec
+20400112
+204000f8
+204000ff
+202000e2
+6800cebb
+207a0000
+6800c212
+2fe1fe20
+244080f6
+6800c131
+205a00f4
+20600000
+70413101
+20600000
+70421220
+20600000
+6800c9ba
+207a0000
+704e8000
+1fe0ffff
+6000c9ba
+247a0000
+20600000
+6800ce82
+207a0000
+1fe0ffff
+6000ce82
+247a0000
+704e8100
+20600000
+20403e7f
+7009bd12
+20207d90
+6800ce51
+207a0000
+1fe0ffff
+6000ce51
+247a0000
+70421220
+70413101
+704ebb01
+20600000
+6800ce52
+207a0000
+1fe0ffff
+6000ce52
+247a0000
+20203e6d
+20404968
+20404b51
+20404bd8
+204005a7
+20204945
+20403a50
+1fe22200
+204005e5
+20204a3d
+68024e48
+60024596
+20204a8c
+70413101
+6801037c
+68090382
+98467e00
+600109be
+68008362
+793ffe05
+793ffe03
+60008362
+68020366
+68090364
+600909c6
+98462200
+6800c45b
+6000838d
+e8c90000
+e8c10000
+1febfe00
+60010364
+184b8400
+9840fe00
+e8ca0000
+600a038e
+9a20fe00
+1fe22800
+68010364
+680909c6
+98467e00
+680909be
+984ffe00
+9a80fe00
+60020366
+20405199
+68010390
+60014561
+20600000
+68008379
+c2828159
+20400599
+704e6200
+6800ce20
+243a0153
+6800cea5
+c0008157
+68008303
+203a4bde
+20204f87
+6800ce20
+1fe0ffff
+6000ce20
+20204f87
+704e2003
+20204bde
+6800ce62
+1fe0fe01
+6000ce62
+2020059d
+6800c467
+c0030161
+c0010168
+20204bfb
+6800ce53
+c0008165
+20403e6d
+20204c86
+20400106
+704e5203
+20204c90
+58000013
+e0a08000
+20404c58
+5800000a
+60010390
+60014561
+20600000
+6800c46b
+c0010176
+c003017d
+c0038174
+20204c18
+704ea500
+20204d17
+59000302
+6001c4dc
+58000001
+e0a08000
+58010010
+e0a18000
+20204ccd
+7009bd29
+20407d86
+7009bd47
+20404bd6
+20204d01
+6800c46b
+c00d8186
+c00e8186
+20204c2b
+68094e4e
+6009446c
+6800ce86
+1fe08401
+18410403
+6008ce86
+1feffe07
+d8c04e87
+98c08c00
+e8c38000
+6003c46e
+d840000e
+20204f89
+6008c466
+28200602
+24208198
+1840fffc
+60014467
+68088379
+2040019b
+20204f92
+6800cea5
+c000819e
+20204bd0
+58000000
+20600000
+1a627e00
+c00001a6
+c00101a9
+c00181ad
+c00501b1
+20204fb9
+70413100
+704e513c
+2020501f
+20405033
+58000000
+60044544
+20600000
+20405039
+6800c56a
+c1010000
+20206418
+7009bd2b
+20204bd6
+e8c08000
+c00081b6
+20204ffe
+704ea501
+704e2003
+20205069
+e8c18000
+6001839a
+c00901bd
+20205011
+70413101
+204001c9
+6800839b
+1fe67c60
+202281ce
+704ea600
+20405125
+24628000
+6800cea6
+245a01d0
+7009bd13
+20204bd6
+68008303
+1fe0fff9
+1fe27200
+1f222400
+20205135
+704ea601
+202001c3
+7009bd29
+20207d86
+6800c3ff
+207a0000
+d8e00001
+20407ee2
+247a0000
+7854fc00
+78287c00
+20404b1e
+204049d4
+20404a8a
+243681e4
+68008003
+1fe0fe01
+60008003
+68008302
+1fe17e0f
+c00181ee
+c002d1af
+68008016
+c093d17d
+180a7e00
+d84001ff
+98417e00
+1fe0fefa
+1fe0ffff
+20000026
+243a01ea
+20205196
+20404ac5
+202001e4
+68024596
+d840ea60
+9840fe00
+60024596
+202051a9
+7855fc00
+203701f8
+24368207
+20403cb7
+68014161
+60010370
+68008302
+2fe00601
+2420bccb
+6800c465
+2fe00601
+2420bccb
+20404bd0
+243a3ccb
+6800ce62
+1fe67c01
+24213ccb
+20205297
+68094161
+68014e60
+98408400
+18430400
+68010370
+9840fe00
+60010370
+20203cc3
+2040021d
+df200003
+d8c04ead
+5800ffff
+20400221
+24628000
+6800cea8
+207a0000
+1fe0ffff
+6000cea8
+2040022a
+20628000
+704ea701
+20600000
+d840000c
+da204ead
+68014eab
+2020624a
+e8c90000
+98467c00
+24628000
+c2000221
+20600000
+d8400002
+da2009ce
+da400030
+2020626f
+d8400002
+da2009be
+da400030
+20406245
+680109be
+d840aa55
+98467c00
+20600000
+68120078
+681a007c
+9841fe00
+1fe47e00
+9a217e00
+60120070
+20600000
+1a227e00
+207a0000
+18408560
+18408560
+793f841c
+600a4703
+1fe20400
+da2046f0
+20407fa6
+247a0000
+18427e00
+20207d7d
+20407d80
+da2046f8
+20407f95
+1fe20400
+20407d84
+18427e00
+207a0000
+c006824f
+c013825e
+20207db3
+793f8026
+70413100
+180a7e00
+6000c53e
+5826100e
+6001c541
+704e5300
+68094e4e
+600944f8
+204052a0
+da400005
+20400268
+1a427e00
+e0c08000
+20207e07
+793f8026
+70413100
+704e5301
+68094e4e
+20404f6a
+1a220a00
+58000001
+e0a08000
+da400004
+2020025a
+da204401
+ea208000
+207a0000
+98c0a200
+e8c08000
+c1008000
+20200269
+204058c5
+243a7de5
+680089bd
+c584fde0
+c00f8295
+20207dd0
+700b2a03
+204000b1
+704e455a
+20403cfc
+68120138
+793ffe0f
+6012004c
+20403cf4
+d85fffff
+20203c11
+680a489e
+1c427e00
+98467e00
+d8400640
+9846fc00
+20407f53
+1807fe00
+207a0000
+1c420400
+600a489e
+68094898
+18508400
+9840fe00
+1ff0fe00
+60014898
+1ff0fe00
+1fe17e03
+c1800000
+204002b3
+24760000
+6800c2cf
+c2810296
+20600000
+68108078
+793ffe05
+60108078
+7089718f
+6800c2d0
+60108973
+204002a1
+68108078
+79207e05
+60108078
+20600000
+68108053
+79207e07
+60108053
+68108973
+1fe1fe30
+60108973
+7089067c
+708972aa
+20001388
+68190150
+68108053
+793ffe07
+60108053
+18508400
+600942d1
+20600000
+78367c00
+20600000
+78567c00
+20404bd0
+205a02b1
+20600000
+704ea301
+204002bb
+704ea300
+20600000
+204000ac
+20740000
+1ff0fe00
+1fe20c00
+204002e0
+6000c897
+c00082cb
+1fe20400
+18c22200
+6800c040
+c30002d5
+1a220c00
+c6848000
+18427e00
+c002830e
+20203b31
+204002e0
+204002e0
+600089bd
+204002d0
+20207d90
+204002e3
+18c20400
+18508400
+600947c4
+20600000
+1a220c00
+d8a000f5
+202002d8
+204002e0
+1fe27200
+204002dc
+202002d0
+204002e0
+e0a08000
+c20002dc
+20600000
+204002e3
+e8c08000
+20600000
+580047c4
+98c67c00
+24628000
+d8c0472e
+20600000
+df200003
+d8c04894
+18c22200
+6801482e
+1ff0fe00
+1fe20a00
+1a220c00
+e8c08000
+e0a08000
+204002f7
+c20002ef
+18a27e00
+1ff0fe00
+6001482e
+20600000
+5800482c
+98a67c00
+24628000
+d8a047c8
+20600000
+58000000
+6001ce85
+20600000
+c6130000
+6800c595
+207a0000
+204000ac
+20740000
+1ff0fe00
+1fe20c00
+204002e0
+6000c897
+18c22200
+c08282d5
+18c22400
+20404bd4
+247a0000
+20200313
+18c22400
+6800cea3
+207a0000
+20404bd0
+247a0000
+68094e4e
+20404f6a
+c4000000
+6800c595
+c1000000
+6800ce83
+1fe0fe01
+6000ce83
+6800ce85
+1fe08401
+18410403
+6008ce85
+1feffe07
+d8a04e87
+98a08a00
+1a420c00
+204002e0
+1fe27200
+204002da
+2040032a
+20760000
+7009bd1b
+20204bd6
+78567c00
+6800cea4
+c1028000
+78367c00
+1fe0fe01
+6000cea4
+1fe67c01
+24610000
+70489640
+202002e8
+5800472e
+1ff0fe00
+600147c4
+600147c6
+580047c8
+1ff0fe00
+6001482c
+6001482e
+20600000
+68014ea9
+1fe0fe1c
+60014eab
+20600000
+2040524a
+700b2a00
+70016c06
+20403e7f
+580003bf
+60014296
+580002b7
+60014290
+580003b8
+6001428c
+24558334
+20558380
+20403d3e
+6800ceba
+203a035a
+1fe0ffff
+6000ceba
+58003f80
+60014ea9
+2040033d
+6800ce53
+243a035a
+6800ceb9
+243a035a
+2040020f
+6800ce45
+c02d0394
+20358392
+6800c280
+6000c9c3
+20400596
+68014e41
+1ff0fe00
+60014e41
+68014e43
+1ff0fe00
+60014e43
+2040039f
+680409c6
+243a036d
+68014ad4
+1ff0fe00
+203a036d
+60014e43
+7048962f
+6800ce78
+243a0375
+20400293
+204002e8
+204002ff
+70828003
+20600000
+2055bc29
+d9600d00
+34730200
+1c427e00
+6001ce7a
+6801470b
+c3858000
+c3830000
+20403d60
+20400493
+2020037a
+1ce27e00
+c593038a
+203a0385
+7049b9bb
+20600000
+7049b900
+6800c9b7
+207a0000
+7049b700
+20200383
+203a038d
+7049c102
+20600000
+6800c9c2
+207a0000
+7049c200
+7049c101
+20600000
+7048963c
+2020036e
+1ce27e00
+203a0277
+2040530d
+204042eb
+58000000
+60044040
+6001470b
+60014898
+6001489a
+7048963d
+2020036e
+204062c4
+580007e2
+da2009c6
+d840000c
+2040630d
+204062c7
+680409c6
+207a0000
+6800c2cf
+c28103aa
+20600000
+680909c6
+680109cc
+18422400
+1fe22200
+98462600
+1a427e00
+9a667e00
+1ff0fe00
+60014e41
+1a6bfe00
+9a20fe00
+1ff0fe00
+60014e43
+20600000
+78347c00
+68120138
+79347e1a
+6012004c
+20403cf4
+70009f01
+20600000
+1a627e00
+1fe17ef0
+c1280000
+1a627e00
+6000c896
+202002e8
+70492700
+7049324e
+68024934
+60024950
+20200459
+6808c933
+204003d0
+18408401
+18410403
+6008c933
+20600000
+6800c950
+1fe17e03
+1fefa204
+58004939
+9a20fe00
+98408c00
+e8c08000
+6000c932
+20600000
+7049b001
+7049b200
+6800c929
+1fe17e07
+6000c929
+20600000
+6800c929
+79207e04
+6000c929
+6000c8e4
+20600000
+6800c929
+793ffe04
+6000c929
+20600000
+2040059d
+6800c9b4
+c00083ed
+c00103f1
+20600000
+7049b202
+7049b300
+7049b000
+202003db
+7049b100
+202003ee
+6801492e
+1fe0fe01
+6001492e
+c2850502
+6800c9b1
+c00083fc
+7049b101
+6800c9b1
+c08083db
+6800c9b5
+1fe0fe01
+6000c9b5
+c0020403
+204003ca
+70496e02
+202004c3
+2040059d
+7049b500
+202003db
+7049b202
+7049b001
+7049b100
+202003db
+6800c9b4
+c0018407
+6800c929
+2fec0004
+202083d9
+6800c9b4
+c0008406
+c0010407
+20600000
+6800c938
+c1ff8000
+20400418
+24560420
+20600000
+78567c00
+6800c9b0
+c1808000
+6800c9b2
+c1800000
+7049b401
+70496e04
+202002b1
+6800c9b2
+203a0428
+1fe0ffff
+6000c9b2
+7049b402
+204003ca
+70496e04
+20600000
+7049b403
+6800c9b1
+243a03fa
+204003ca
+70496e02
+20600000
+6800c938
+c0ff8602
+204002bb
+20340440
+6800c897
+c08364c0
+6800ce80
+205a0479
+6800ce80
+245a043c
+20400445
+20400466
+70492d01
+20600000
+704e7900
+704e7800
+7049ba0a
+20600000
+6800ce78
+243a0445
+6800c92d
+c000b1d4
+20600000
+6800c9b9
+6000c9b8
+6800c970
+1fe22200
+da404971
+70495400
+204003db
+6000c990
+1a208401
+d8a04991
+1a227200
+1a420c00
+20407ecd
+da204990
+c6938000
+6008c928
+18427200
+d8a048c4
+1a220c00
+20207ecd
+da200000
+df200004
+d8c04950
+e8c08000
+9a20a200
+c200045c
+1a227e00
+600149bb
+6800c9bb
+6808c9bc
+9840fe00
+6000c9bd
+20600000
+6800c928
+1fe0fe02
+6000c92a
+6800c929
+6000c8e4
+6800c928
+1fe9fe00
+6808c927
+18410403
+18438400
+9841fe00
+6808c965
+9840fe00
+e0a08000
+6800c928
+98007200
+d8c048c4
+20207ecd
+20600000
+6800c2b8
+2fec0002
+20208483
+6800ce79
+c1028000
+1fe0fe01
+6000ce79
+c1828000
+704e7801
+20600000
+6800ce79
+c10a0000
+1fe0fe01
+6000ce79
+c18a0000
+6800c2b8
+79207e02
+6000c2b8
+20200481
+6800ce79
+207a0000
+1fe0ffff
+6000ce79
+247a0000
+704e7800
+20600000
+79200027
+204002bb
+20340498
+6800c897
+c003049e
+6800ce7d
+c000849d
+c0010478
+c001849d
+20600000
+20600000
+20600000
+20403be2
+6801c20f
+207a0000
+6800c131
+207a0000
+6800ce80
+c00084a8
+58000000
+600400a0
+204004b8
+d9600d00
+34730200
+6809ce7a
+1c427e00
+98467e00
+1fe17eff
+d8400ea6
+984f8400
+68024e74
+98467e00
+20213c7f
+6800c218
+1fe0fe01
+600241fb
+20203c86
+58013c68
+60024e74
+6800ce7e
+1fe0fe01
+c08284be
+58000000
+6000ce7e
+c4000000
+580130b0
+60024e74
+20600000
+70493100
+d9600d00
+34730200
+204004db
+6800c965
+c1008000
+242c04ea
+243784ea
+20400509
+20400599
+6800c927
+1fe0fe01
+6000c927
+6800c938
+c0ff84d9
+2040040a
+58000000
+6001492e
+6000c930
+6000c9b3
+70492d00
+20600000
+20400596
+2020061d
+7857fc00
+20400529
+6800c965
+c00084e8
+18002a00
+68024950
+98001200
+68088017
+204039b9
+204039bf
+20400553
+20578592
+20600000
+20400592
+202004cd
+6800c930
+1fe0fe01
+6000c930
+6800c938
+c0ff84fe
+6808c931
+18408401
+6008c931
+6800c96e
+98467e00
+243a04c4
+6800c9b4
+c00183f3
+6800c9b3
+1fe0fe01
+6000c9b3
+c00103e8
+204003df
+70496e01
+202004c3
+6800c930
+c1ff8000
+70493000
+20200507
+58000000
+6001492e
+70413100
+704e7900
+704e7800
+7048963b
+202002e8
+20400510
+6800c926
+207a0000
+98007200
+d8c048a4
+d8a04906
+20207ecd
+6800c8a3
+1fe97e00
+6000c926
+1fe0fe01
+d8c048a3
+98c08c00
+e8c18000
+6001c966
+6800c8a3
+1fe37e00
+1fe17e03
+6000c96c
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+6800c932
+1fed8400
+79200401
+18431c00
+20600000
+204039b1
+6808c932
+202039c9
+20404976
+68024950
+98001200
+2040051d
+20400526
+79202a00
+782efc00
+78307c00
+7850fc00
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6800c9bd
+08008608
+6800c92a
+98007200
+d8c048e4
+e8c08000
+08008608
+c200053f
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+784dfc00
+20600000
+20404976
+68024950
+98001200
+204039b1
+6808c932
+204039b9
+58000500
+20403b35
+204039bf
+2040051d
+7857fc00
+7826fc00
+7830fc00
+78507c00
+78287c00
+6801492b
+98003600
+37c18400
+242c0595
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+09800008
+19897e00
+6000c9be
+20400459
+6808c9be
+98467c00
+24228592
+09800008
+19897e00
+6000c8a2
+6800c96f
+1fe67c02
+20228572
+6800c8a2
+6808c929
+a8400e00
+24208592
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+2022857c
+09800008
+19897e00
+e0a08000
+c2000578
+18a22200
+09800008
+19897e00
+6000c9cf
+1a220a00
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+7845fc00
+20230592
+7837fc00
+68008017
+1fe0a200
+20403a13
+7846fc00
+204039b1
+6800c9cf
+1fe22200
+202005e5
+784dfc00
+7845fc00
+202036c6
+20200592
+7049c401
+7049c500
+20600000
+6800c9c5
+1fe0fe01
+6000c9c5
+20600000
+6800c9c5
+1fe67c01
+244105a5
+6800c9c5
+c1000000
+1fe0ffff
+6000c9c5
+20600000
+7049c502
+20600000
+da2049c6
+204005ee
+6008c9d0
+280ffe26
+204085b5
+244085b9
+98467c00
+242105d2
+6800c9c5
+1fe67c01
+242105bd
+6800c9c5
+c00005d2
+20600000
+58000082
+20600000
+58000077
+20600000
+58000080
+20600000
+58000075
+20600000
+6800c9c5
+c1a30000
+7049c500
+6808c9d0
+280ffe26
+204085b7
+244085bb
+98467c00
+24610000
+6800c9c4
+c00005de
+1fe0ffff
+6000c9c4
+c00005de
+708955d0
+708956e0
+7089574c
+7089586c
+70895950
+70428001
+20600000
+6800c9c4
+c00105d7
+1fe0fe01
+6000c9c4
+c00085cb
+708955d0
+708956e0
+7089574c
+7089583c
+70895910
+70428004
+20600000
+708955d0
+708956c0
+7089574c
+7089586c
+70895950
+70428010
+20600000
+6808c9ce
+580049c6
+98408a00
+1a227e00
+e0a08000
+18408401
+18410407
+6008c9ce
+20600000
+d8400000
+df200008
+1a220c00
+e8c08000
+98408400
+c20005f1
+18497e00
+1fe20400
+c6930000
+1fe6fc0a
+20407f53
+1807fe00
+1ff27e00
+18070400
+98418400
+20600000
+79200026
+204003c5
+70493801
+20600000
+6800c92d
+c000b1d4
+6800c938
+c0008609
+c001060c
+c001860f
+20203b31
+70493811
+704990aa
+20200611
+70493812
+70499055
+20200611
+70493813
+70499022
+6800c929
+1fe17e07
+6000c991
+68024960
+60024992
+70499600
+da204990
+d8400007
+20400453
+20400466
+2040043a
+202031d4
+6800c938
+c17f8000
+c0088623
+c0090625
+c0098627
+20600000
+70493802
+202004d3
+70493803
+202004d3
+704938ff
+70489639
+204002e8
+68024908
+204003c8
+202004d3
+793f8026
+204003ca
+68024950
+20400459
+6800c938
+c1ff8000
+20400643
+58000000
+60014956
+200007d0
+6800c956
+c07f8507
+204004db
+242c064d
+2437864d
+70413101
+79200026
+58000000
+60014956
+7009bd3a
+20407d86
+20207e0d
+79200027
+704990ff
+6800c929
+6000c991
+68024960
+60024992
+d8400006
+da204990
+20400453
+20200466
+68014956
+1fe0fe01
+60014956
+204003ca
+20200636
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/sched.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/sched.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/output/sched.rom	(working copy)
@@ -0,0 +1,940 @@
+4000:09
+4010:40
+4011:0c
+4014:80
+4015:13
+4016:f0
+4017:06
+4020:20
+4022:40
+4023:08
+4024:08
+4025:80
+4026:0e
+4027:f2
+4028:04
+4029:20
+4032:20
+403e:88
+403f:03
+
+##49   #mem_patch00	#49 enable HID
+##02   #mem_patch01	#02 enable HID
+##00   #mem_patch02
+##00   #mem_patch03
+##60   #mem_patch04	#60 enable HID
+##02   #mem_patch05	#02 enable HID
+##00   #mem_patch06
+##80   #mem_patch07	#80 enable HID
+##00   #mem_patch08
+##10   #mem_patch09	#10 enable HID
+##01   #mem_patch0A	#01 enable HID
+##00   #mem_patch0B
+##00   #mem_patch0C
+##00   #mem_patch0D
+##00   #mem_patch0E
+##00   #mem_patch0F
+##40   #mem_patch10
+##0c   #mem_patch11
+##00   #mem_patch12
+##00   #mem_patch13
+##80   #mem_patch14
+##13   #mem_patch15
+##f0   #mem_patch16
+##00   #mem_patch17
+##00   #mem_patch18
+##01   #mem_patch19	#01 enable HID
+##00   #mem_patch1A
+##00   #mem_patch1B
+##00   #mem_patch1C
+##00   #mem_patch1D
+##00   #mem_patch1E
+##00   #mem_patch1F
+##20   #mem_patch20
+##00   #mem_patch21
+##40   #mem_patch22
+##08   #mem_patch23
+##08   #mem_patch24
+##80   #mem_patch25
+##0e   #mem_patch26
+##d0   #mem_patch27
+##04   #mem_patch28
+##20   #mem_patch29
+##60   #mem_patch2A	#60 enable HID
+##41   #mem_patch2B	#41 enable HID
+##00   #mem_patch2C
+##00   #mem_patch2D
+##00   #mem_patch2E
+##00   #mem_patch2F
+##00   #mem_patch30
+##00   #mem_patch31
+##20   #mem_patch32
+##00   #mem_patch33
+##00   #mem_patch34
+##40   #mem_patch35	#40 enable HID
+##00   #mem_patch36
+##00   #mem_patch37
+##00   #mem_patch38
+##01   #mem_patch39	#01 enable HID
+##00   #mem_patch3A
+##00   #mem_patch3B
+##00   #mem_patch3C
+##00   #mem_patch3D
+##88   #mem_patch3E
+##03   #mem_patch3F
+
+
+#mem_class: 80 25 00
+#mem_lap:ab ab 66 63 5d 6c
+#mem_local_name_length:
+#'bt mouse
+#mem_sniff_param_interval:0c 00
+#mem_sniff_param_attempt:01
+#mem_sniff_param_timeout:01
+#mem_unsniff2sniff_timer:0a
+46e2:00
+#mem_sp_iocap_local:03 00 04
+470d:01
+
+#mem_eir_enable:01
+
+#mem_all_uuid_16bits:
+#06
+#03#Type: Complete list of 16-bit UUIDs
+#1100 0001 0210 2411  0012  0100
+
+4625:00
+
+#mouse uuid
+#mem_device_uuid_list:
+#04 0011 0100 1002 1124
+#00 01 00 00
+#36 01 61
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#09
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#24
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#11
+#35
+#03
+#19
+#00
+#11
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#06
+#35
+#09
+#09
+#65
+#6e
+#09
+#00
+#6a
+#09
+#01
+#00
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#11
+#24
+#09
+#01
+#00
+#09
+#00
+#0d
+#35
+#0f
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#13
+#35
+#03
+#19
+#00
+#11
+#09
+#01
+#00
+#25
+#16
+#59 69 43 68 69 70#YiChip
+#20 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65
+#09
+#01
+#01
+#25
+#05
+#4d
+#6f
+#75
+#73
+#65
+#09
+#01
+#02
+#25
+#06
+#59 69 43 68 69 70#YiChip
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#01
+#11
+#09
+#02
+#02
+#08
+#80
+#09
+#02
+#03
+#08
+#21
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#28
+#01
+#09
+#02
+#06
+#35
+#81
+#35
+#7f
+#08
+#22
+#25
+#7b
+#05
+#01
+#09
+#02
+#a1
+#01
+#85
+#02
+#09
+#01
+#a1
+#00
+#05
+#09
+#19
+#01
+#29
+#08
+#15
+#00
+#25
+#01
+#75
+#01
+#95
+#08
+#81
+#02
+#05
+#01
+#09
+#30
+#09
+#31
+#16
+#01
+#f8
+#26
+#ff
+#07
+#75
+#10
+#95
+#02
+#81
+#06
+#09
+#38
+#15
+#81
+#25
+#7f
+#75
+#08
+#95
+#01
+#81
+#06
+#05
+#0c
+#0a
+#38
+#02
+#75
+#08
+#95
+#01
+#81
+#06
+#c0
+#c0
+#05
+#0c
+#09
+#01
+#a1
+#01
+#85
+#03
+#75
+#10
+#95
+#02
+#15
+#01
+#26
+#8c
+#02
+#19
+#01
+#2a
+#8c
+#02
+#81
+#60
+#c0
+#06
+#00
+#ff
+#09
+#01
+#a1
+#01
+#85
+#10
+#75
+#08
+#95
+#06
+#15
+#00
+#26
+#ff
+#00
+#09
+#01
+#81
+#00
+#09
+#01
+#91
+#00
+#c0
+#09
+#02
+#07
+#35
+#08
+#35
+#06
+#09
+#04
+#09
+#09
+#01
+#00
+#09
+#02
+#08
+#28
+#00
+#09
+#02
+#09
+#28
+#01
+#09
+#02
+#0a
+#28
+#01
+#09
+#02
+#0b
+#09
+#01
+#00
+#09
+#02
+#0c
+#09
+#0c
+#80
+#09
+#02
+#0d
+#28
+#00
+#09
+#02
+#0e
+#28
+#01
+#
+#04 1002 1200 0100 0001
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09 02 00#SpecificationID
+#09 01 03#DeviceID Spec Version:1.3
+#
+#09 02 01# VendorID
+#09 0a 5c#Unknown See http://www.bluetooth.org/assigned-number.htm
+#
+#09 02 02#ProductID
+#09 00 01#0x0001
+#
+#09 02 03#Version
+#09 01 29#Product Version:1.2.9
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#00
+#00
+#
+#01 00 01
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#05
+#ac
+#09
+#02
+#02
+#09
+#02
+#39
+#09
+#02
+#03
+#09
+#00
+#44
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#
+#03 1101 0003 0100 
+#00 01 00 02
+#36 00 2f
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#02
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#01
+#09
+#00
+#04
+#35
+#0c
+#35
+#03
+#19
+#01
+#00
+#35
+#05
+#19
+#00
+#03
+#08
+#01
+#09
+#01
+#00
+#25
+#09
+#53
+#50
+#50
+#20
+#73
+
+#mem_ui_uuid_table:mem_device_uuid_list
+#Auto reconnection after power on
+4132:42
+#mem_ptt:0
+#mem_features:
+#ff
+#ff
+#8f
+#f8	#fe--EDR  F8--BR
+#9b	#AFHclose 83
+#9d
+#51
+#82
+
+#bluetootch param init
+08d4:00
+009f:00
+08d5:00
+0016:27
+4715:ff
+470e:ff
+
+#2=mouse 4=dongle 6=ukey 7=ir
+4131:01
+4212:20
+4213:03
+41f6:08
+41f4:00 00
+4133:00
+4894:02 01
+
+42cf:04
+42d0:30
+4e41:9f 3e
+4e43:cd 4d
+
+
+4521:00
+4529:07 
+452a:00
+4596:50
+44f8:1a
+453e:ab b9 12 0e 10 26			#bluetooth MAC address
+4440:			#bluetooth name
+'BLE Mouse
+
+454c:17
+4520:00
+4522:01
+4523:00 00 00 00 00 00
+43ff:00
+
+4400:1f
+4401:
+#appearance
+03 19 c2 03
+
+#uuid
+03 03 12 18
+
+#flag 
+02 01 05
+
+#name
+'\09BLE Mouse
+
+
+4420:1f
+4421:
+#name
+'\09BLE Mouse
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+4c40:
+
+#Primary service GAP ------
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 0a
+03 00 02 00 2a
+'BLE Mouse
+
+#Appearance
+04 00 02 03 28 01 02
+05 00 02 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 02 00 28 02 01 18
+#Service changed
+09 00 02 03 28 01 20
+0a 00 02 05 2a 00
+#Client Characteristic Configuration
+0b 00 02 02 29 02 00 00
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#Manufacturer Name
+0d 00 02 03 28 01 02
+0e 00 02 29 2a 06 59 69 43 68 69 70
+#PNP id
+0f 00 02 03 28 01 02
+10 00 02 50 2a 07 02 35 12 22 aa 01 00
+#Primary service battery ------
+11 00 02 00 28 02 0f 18
+#Battery level
+12 00 02 03 28 01 02
+13 00 02 19 2a 01 33
+#Client Characteristic
+14 00 02 02 29 02 00 00
+
+#Primary service hid ------
+15 00 02 00 28 02 12 18
+
+#Protocol mode
+16 00 02 03 28 01 06
+17 00 02 4e 2a 01 01
+
+#Hid report
+18 00 02 03 28 01 1a
+19 00 02 4d 2a 07 00 00 00 00 00 00 00
+
+#Client Characteristic
+1a 00 02 02 29 02 00 00
+
+#Report reference
+1b 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Report map
+1c 00 02 03 28 01 0a
+1d 00 02 4b 2a 45 # length 72 bytes
+
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0).
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 f8 # Logical Minimum(-2047)
+26 ff 07 # Logical Maximum(2047)
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+05 0c # Usage Page(Consumer)
+0a 38 02 # Usage(AC Pan)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+c0 # End Collection
+c0 # End Collection
+
+#Boot mouse input report
+1e 00 02 03 28 01 1a
+1f 00 02 33 2a 08 00 00 00 00 00 00 00 00
+
+#Client Characteristic
+20 00 02 02 29 02 01 00
+
+#Hid information
+21 00 02 03 28 01 02
+22 00 02 4a 2a 04 01 01 00 03
+
+#Hid control point
+23 00 02 03 28 01 04
+24 00 02 4c 2a 00
+
+25 00 02 03 28 01 12 
+26 00 02 4d 2a 07 00 00 00 00 00 00 00 
+27 00 02 02 29 02 00 00
+28 00 02 08 29 02 11 01
+29 00 02 03 28 01 0e 
+2a 00 02 4d 2a 07 00 00 00 00 00 00 00
+2b 00 02 08 29 02 11 02
+
+#End of Attribute list
+00 00
+
+4637:40 4c
+
+4e48:50
+
+458d:
+07 00 #min interval
+07 00 #max interval
+05 00 #latency
+2c 01 #timeout
+
+4e20:00
+#mem_le_att_report1:13 00
+4e4e:19 00
+458b:22 00
+456c:01
+45a8:01
+
+4280:02#3dbm
+
+4ea8:01
+4eba:01
+
+#24g init
+496f:01#tx
+4929:01	#mouse 1,kb 2
+496e:04#max tx retry
+4965:00#with ack
+492b:c0 12	#400us
+494d:19
+494e:19
+494f:1c
+4939:00 13 2c 42
+493d:06 15 36 48
+4941:0f 1a 3a 4c
+4945:11 23 31 4d
+4938:ff
+4934:20 15 10 05
+4990:00 00 00 00 00 00 00 00 00 00
+4958:00 48 60 00 00 00 00 00#10 min
+
+
+4215:8f 1b ce
+4219:0a 0b ef 0f
+41f7:00
+00a0:00 00 00 00 00 00 00 00
+
+415d:02
+415e:24
+414d:12 00
+414f:00 02
+4151:12 00
+4153:00 02
+
+415b:20 00
+4157:20 00
+4159:00 20
+415f:80 04
+4161:00 08
+4e60:00 40
+
+45a9: 09 59 00 B0 00    #04 0a 00 e9 12
+
+42a8:80 3f
+42b6:20
+
+4281:01
+
+4e69:
+# tx power
+55 d0
+56 c0
+57 4c
+58 3c
+59 50
+ff
+4163:69 4e
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/geneep.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/geneep.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/geneep.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/memmap.format
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/memmap.format	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/memmap.format	(working copy)
@@ -0,0 +1,1494 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_inquiryscan_waitcnt
+0x0007 mem_inquiryscan_rcvcnt
+0x0008 mem_pagescan_waitcnt
+0x0009 mem_pagescan_rcvcnt
+0x000a mem_pagescan_rcvfhscnt
+0x000b mem_slave_rcvcnt
+0x000c mem_page_transmit
+0x000d mem_page_rcv
+0x000e mem_page_rcv_fhs
+0x000f mem_master_rcvcnt
+0x0010 mem_fhs_wait_counter
+0x0011 mem_newconnto_counter
+0x0012 mem_inquiry_transmit
+0x0013 mem_inquiry_rcv
+0x0014 mem_fw_ver
+0x0015 mem_current_context
+0x0016 mem_le_ch_mapped
+0x0017 mem_last_freq
+0x0018 mem_rssi
+0x0019 mem_rx_type
+0x001a mem_rx_hec_err
+0x001c mem_rx_crc_err
+0x001e mem_context_ptr
+0x0020 mem_display
+0x0028 mem_bcd
+0x0030 mem_state
+0x0031 mem_mode
+0x0032 mem_tsniff
+0x0034 mem_sniff_anchor
+0x0038 mem_clk_offset
+0x003e mem_rx_window
+0x0040 mem_plap
+0x0043 mem_puap
+0x0044 mem_pnap
+0x0046 mem_conn_handle
+0x0047 mem_arq
+0x0048 mem_lmp_to_send
+0x0049 mem_lmi_opcode
+0x004a mem_lmo_reason
+0x004b mem_op
+0x004c mem_state_map
+0x004d mem_supervision_timer
+0x0051 mem_supervision_to
+0x0053 mem_name_offset
+0x0054 mem_key_size
+0x0055 mem_conn_sm
+0x0056 mem_aco
+0x0062 mem_kc
+0x0072 mem_conn_timer
+0x0073 mem_sniff_attempt
+0x0074 mem_sniff_timeout
+0x0075 mem_dsniff
+0x0077 mem_amaddr
+0x0078 mem_lmo_opcode1
+0x0079 mem_lmi_opcode1
+0x007a mem_lmo_reason1
+0x007b mem_lmo_tid1
+0x007c mem_lmo_opcode2
+0x007d mem_lmi_opcode2
+0x007e mem_lmo_reason2
+0x007f mem_lmo_tid2
+0x0080 mem_hci_version
+0x0083 mem_acl_pktlen
+0x0085 mem_sco_pktlen
+0x0086 mem_acl_pktcnt
+0x0088 mem_sco_pktcnt
+0x008a mem_current_sniff_attempt
+0x008b mem_current_sniff_timeout
+0x008c mem_nfreq_index_inq
+0x008d mem_nfreq_index_page
+0x008e mem_ninqy_index
+0x008f mem_fhs_misc
+0x0090 mem_subsniff_instant
+0x0094 mem_subsniff_rate
+0x0095 mem_subsniff_tcmax
+0x0097 mem_subsniff_tsniff
+0x0098 mem_lpm_adjust
+0x0099 mem_sync_clke
+0x009f mem_lpm_current_mult
+0x00a0 mem_gpio_wakeup_low
+0x00a4 mem_gpio_wakeup_high
+0x00a8 mem_air_mode
+0x00a9 mem_sco_asso_handle
+0x00aa mem_sco_handle
+0x00ac mem_esco_desco
+0x00ad mem_esco_type
+0x00ae mem_neogotiation_state
+0x00af mem_saved_amaddr
+0x00b0 mem_esco_arq
+0x00b1 mem_esco_saved_arq
+0x00b2 mem_sco_obuf
+0x00d0 mem_sco_ibuf
+0x00ee mem_sco_poll
+0x00ef mem_npage_index
+0x00f0 mem_page_mode
+0x00f1 mem_page_clk
+0x00f5 mem_tst_pktcnt_sync
+0x00f7 mem_tst_pktcnt_hec
+0x00f9 mem_tst_pktcnt_crc
+0x00fb mem_tst_pktcnt_dmh
+0x00fd mem_tmp_buffer_head
+0x0100 mem_tmp_buffer
+0x0150 mem_tester_emulate
+0x0151 mem_temp_payload
+0x0151 test_mode_scenario
+0x0152 test_mode_hopping_mode
+0x0153 test_mode_tx_freq
+0x0154 test_mode_rx_freq
+0x0155 test_mode_power_mode
+0x0156 test_mode_poll_period
+0x0157 test_mode_packet_type
+0x0158 test_mode_data_length
+0x015a mem_test_mode_old_debug_config
+0x015b mem_tester_cnt
+0x015c mem_temp_am_addr
+0x015d mem_temp_arq
+0x015e mem_len
+0x0160 mem_clkn_bt
+0x0164 mem_clke_bt
+0x0168 mem_dpll_clkn
+0x016c mem_connection_options
+0x016d mem_nameres_cnt
+0x016e mem_txptr
+0x0170 mem_slot_offset
+0x0172 extm_fhs_misc
+0x0173 extm_newconn_am_addr
+0x0174 extm_class
+0x0177 extm_lap
+0x017a extm_uap
+0x017b extm_nap
+0x017e mem_debug_config
+0x017f mem_lch_code
+0x0180 mem_fhs_am_addr
+0x0181 mem_dpll_error
+0x0183 mem_bdaddr_list_buff
+0x01a7 mem_select_list_item
+0x01a8 mem_temp_reconn_record
+0x01a8 mem_record_bt_mode
+0x01a9 mem_temp_lap
+0x01af mem_list_item_ptr
+0x01b1 mem_eir
+0x0215 mem_ucode_status
+0x0216 mem_otp_ucode_flag
+0x0218 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x0219 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x0219 mem_addr_hi
+0x021a mem_addr_mi
+0x021b mem_addr_lo
+0x021c mem_iicd_addr
+0x021d mem_spid_rbuf
+0x0221 mem_ucode_buf
+0x0223 mem_ucode_len
+0x0225 mem_sched_addr
+0x0227 mem_ucode_ptr
+0x0229 mem_ucode_keybuf
+0x0239 mem_check_plap_temp
+0x024b mem_sensor_id
+0x024c mem_reconnect_flag
+0x024d mem_switch_fail_master_count
+0x024e mem_app_evt_timer_count
+0x024f mem_h5rx_ackcnt
+0x0250 mem_check_err_acl_cont
+0x0251 mem_rp_packets
+0x0252 mem_packet_type
+0x0254 mem_hci_sniff_conn_handle
+0x0256 mem_hci_sniff_max_interval
+0x0258 mem_hci_sniff_min_interval
+0x025a mem_hci_sniff_attempt
+0x025c mem_hci_sniff_timeout
+0x025e mem_voice_setting
+0x0260 mem_retransmission_effort
+0x0261 mem_sco_ptype
+0x0263 mem_extm_uap_restore
+0x0266 mem_h5rx_rptr
+0x0268 mem_h5rx_ack
+0x0269 mem_h5tx_ack
+0x026a mem_h5tx_rptr
+0x026c mem_h5tx_wptr
+0x026e mem_h5tx_free
+0x0270 mem_h5rx_tmp
+0x0271 mem_h5tx_seq
+0x0272 mem_hci_acl_queue_wptr
+0x0274 mem_hci_acl_queue_rptr
+0x0276 mem_hci_acl_queue_end
+0x0278 mem_hci_acl_queue_wcnt
+0x0279 mem_hci_acl_cnt
+0x027a mem_hci_acl_tx_trigger_wptr//tx via uart
+0x027c mem_ucode_id_local
+0x027d mem_ucode_id_remote
+0x027e mem_check_sum
+0x027f mem_ucode_temp
+0x0280 mem_ucode_temp1
+0x0281 mem_lock_in_enc//boolean
+0x0282 mem_hci_disconn_reason
+0x0283 mem_hci_curr_len
+0x0284 mem_hci_curr_target
+0x0286 mem_l2cap_mem_start
+0x0286 mem_l2cap_rxbuff1_len
+0x0288 mem_l2cap_rxbuff2_len
+0x028a mem_l2cap_rxbuff_new
+0x028c mem_l2cap_rxbuff_inuse
+0x028d mem_l2cap_payload_ptr
+0x028f mem_l2cap_rx_pkt_length
+0x0291 mem_l2cap_rx_cid
+0x0293 mem_l2cap_rx_done
+0x0294 mem_l2cap_signal_tx_buff_ptr
+0x0296 mem_l2cap_signal_tx_payload_ptr
+0x0298 mem_l2cap_signal_tx_length
+0x029a mem_sdp_tx_buff_ptr
+0x029c mem_sdp_tx_payload_ptr
+0x029e mem_sdp_tx_pkt_length
+0x02a0 mem_rfcomm_tx_buff_ptr
+0x02a2 mem_rfcomm_tx_payload_ptr
+0x02a4 mem_rfcomm_tx_pkt_length
+0x02a6 memL2CAP_T1
+0x02a8 mem_CONTROL_tasks
+0x02a9 mem_send_config_req
+0x02aa mem_config_identifier
+0x02ab mem_config_req_dest_CID
+0x02ad mem_rfcomm_malloc_fail_flag
+0x02ae mem_message_to_uppersm
+0x02af mem_upper_sm_remote_page
+0x02b0 mem_upper_sm_reconn
+0x02b1 mem_upper_sm_ss
+0x02b2 mem_tx_malloc_log
+0x02f2 mem_l2cap_mem_end
+0x02f2 mem_scid
+0x02f4 mem_cmd_length
+0x02f6 mem_tt2
+0x02f8 mem_tt3
+0x02fa mem_id
+0x02fc mem_psm
+0x02fe mem_l2cap_sdpres_delay_time
+0x0302 mem_le_rxbuf
+0x033a mem_le_mic
+0x033e mem_le_peer_mic
+0x0342 mem_le_peer_ltk
+0x0352 mem_le_mrand
+0x0362 mem_le_state
+0x0363 mem_le_mode
+0x0364 mem_le_tsniff
+0x0366 mem_le_anchor
+0x036a mem_le_clk_offset
+0x0370 mem_le_receive_window
+0x0372 mem_le_plap
+0x0378 mem_le_conn_handle
+0x0379 mem_le_arq
+0x037a mem_le_ch
+0x037b mem_le_hop
+0x037c mem_le_event_count
+0x037e mem_le_supervision_timer
+0x0382 mem_le_instant
+0x0384 mem_le_channels
+0x0385 mem_le_op
+0x0386 mem_le_access
+0x038a mem_le_crcinit
+0x038d mem_le_window_size
+0x038e mem_le_slave_latency
+0x0390 mem_le_superto
+0x0392 mem_le_channel_map
+0x0397 mem_le_no_using
+0x0399 mem_le_peer_sca
+0x039a mem_le_att_opcode
+0x039b mem_le_att_handle
+0x039d mem_le_err_code
+0x039e mem_le_l2cap_pdu_length
+0x03a0 mem_le_sk
+0x03b0 mem_le_testtype
+0x03b1 mem_le_test_sync
+0x03b3 mem_le_test_pcnt
+0x03b5 mem_le_rxon_ts
+0x03bb mem_le_rx_ll_opcode
+0x03bc mem_le_notify_attr_start
+0x03be mem_le_notify_len
+0x03bf mem_cmd_le_create_conn
+0x03c0 mem_24g_id
+0x03c1 mem_le_cur_attlist_start_ptr
+0x03c3 mem_le_cur_handle_start
+0x03c5 mem_le_cur_handle_end
+0x03c7 mem_le_cur_uuid_lenth
+0x03c8 mem_le_cur_uuid
+0x03d8 mem_le_search_len
+0x03d9 mem_le_search_res
+0x03da mem_le_continue_type
+0x03db mem_le_public_length
+0x03dc mem_lmo_header_length
+0x03dd mem_lmo_header_opcode
+0x03de mem_lmo_payload
+0x03ef mem_lmi_accepted_opcode
+0x03f0 mem_disconn_reason_send
+0x03f1 mem_tx_fixed_freq
+0x03f2 mem_rx_fixed_freq
+0x03f3 mem_ext_features_page
+0x03f4 mem_lmpext_ssp_enable
+0x03f6 mem_remote_sppcap
+0x03f7 mem_lmp_conn_state
+0x03f8 mem_soft_timer
+0x03fa mem_pincode_state
+0x03fb mem_sres_tid
+0x03fc mem_accptsco_tid
+0x03fd mem_auth_enable
+0x03fe mem_wait_encryption
+0x03ff mem_sniff_payload
+0x040f mem_aurand_send_delay_time
+0x0413 mem_module_temp_len
+0x0415 mem_uart_cmd
+0x0416 mem_uart_opcode
+0x0417 mem_uart_len
+0x0418 mem_module_temp_nl_discard_packet
+0x0419 mem_module_le_md_flag
+0x041a mem_init_cnt
+0x041c memRemoteRPNBitRate
+0x041d memRemotePRNDataBits
+0x041e memRemotePRNStopBit
+0x041f memRemotePRNParity
+0x0420 memRemotePRNFlowControl
+0x0421 memRemotePRNXon
+0x0422 memRemotePRNXoff
+0x0423 mem_mod2div_temp
+0x0426 mem_contw_temp
+0x0428 mem_attrib_list
+0x042a mem_current_adss
+0x042b mem_current_channel
+0x042c mem_current_frame_type
+0x042d mem_current_fcs
+0x042e mem_current_length
+0x0430 mem_rfcomm_uih_payload_ptr
+0x0432 mem_uih_cmd_type
+0x0433 mem_uih_length
+0x0435 mem_param_payload_ptr
+0x0437 mem_ms_param
+0x0438 mem_pn_credit_flow_type_info
+0x0439 mem_pn_priority
+0x043a mem_pn_acknowledg_timer
+0x043b mem_pn_max_retrans
+0x043c mem_rfcomm_send_adss
+0x043d mem_rfcomm_send_frame_type
+0x043e mem_rfcomm_send_fcs
+0x043f mem_rfcomm_send_offset
+0x0440 mem_sdp_mem_start
+0x0440 mem_uuid_search_pat
+0x0444 mem_sdp_continue_byte
+0x0446 mem_sdp_pduid
+0x0447 mem_sdp_transactionid
+0x0449 mem_sdp_attribute_maxbyte
+0x044b mem_sdp_record_maxcnt
+0x044d mem_sdp_error_code
+0x0455 mem_sdp_record_handle
+0x0459 mem_sdp_search_failed
+0x045a mem_sdp_LACAP_found
+0x045b mem_sdp_RFCOMM_found
+0x045c mem_handle_list
+0x0474 mem_handle_humber
+0x0475 mem_sdp_mem_end
+0x0475 mem_rxbuf
+0x0486 mem_random_number
+0x0496 mem_round_key
+0x04a6 mem_kinit
+0x04b6 mem_input_store
+0x04c6 mem_x
+0x04d6 mem_y
+0x04e5 mem_y15
+0x04e6 mem_key_store
+0x04f7 mem_key_store_end
+0x04f8 memp_ar_key
+0x04fa memp_ar_input
+0x04fc mem_ar_hround
+0x0506 mem_ec_infinite
+0x0507 mem_ec_loopc
+0x0509 mem_aes_cmac_data_length
+0x050a memdat
+0x050a mem_ax
+0x0522 mem_ay
+0x053a mem_az
+0x0552 mem_bx
+0x056a mem_ax_256//32 bytes
+0x056a mem_by
+0x0582 mem_bz
+0x058a mem_ay_256// 32 bytes
+0x059a mem_cx
+0x05aa mem_az_256// 32 bytes
+0x05b2 mem_cy
+0x05c9 mem_cy5
+0x05ca mem_bx_256// 32 bytes
+0x05ca mem_cz
+0x05e2 mem_k
+0x05ea mem_by_256// 31 bytes
+0x05fa mem_align
+0x060a mem_bz_256//32 bytes
+0x060a mem_tmp1
+0x060a memahbak
+0x0622 mem_tmp5
+0x062a mem_cx_256//32 bytes
+0x062a memahsave
+0x063a mem_tmp2
+0x064a mem_cy_256// 32 bytes
+0x064a memahsave_end
+0x064a mem_addr_padding
+0x064b mem_addr_value/* 12 bytes     */ 
+0x0652 mem_tmp3
+0x0652 mem_t1
+0x0657 mem_addr_value_end
+0x065a mem_addr_iocap_end
+0x0669 mem_cy5_256// 1 byte
+0x066a mem_cz_256// 32 bytes
+0x066a mem_tmp0
+0x066a mem_t0
+0x0672 mem_tmp0a
+0x0682 mem_t2
+0x068a mem_k_256//32 bytes
+0x069a mem_t3
+0x06aa mem_tmp1_256//32 bytes
+0x06b2 mem_t7
+0x06ca mem_tmp5_256
+0x06ea mem_tmp2_256
+0x070a mem_tmp3_256
+0x070a mem_t1_256
+0x072a mem_tmp0_256
+0x072a mem_t0_256
+0x074a mem_t2_256
+0x076a mem_t3_256
+0x078a mem_t7_256
+0x07aa mem_p
+0x07c2 mem_a
+0x07da mem_b
+0x07f2 mem_gx
+0x080a mem_gy
+0x0822 memh0
+0x0842 mem_p_256
+0x0862 mem_a_256
+0x0882 mem_gx_256
+0x08a2 mem_gy_256
+0x08c2 mem_le_slat
+0x08d2 mem_sp_state_start
+0x08d2 mem_sp_state
+0x08d3 mem_master_sp_state
+0x08d4 mem_sp_flag
+0x08d5 mem_master_sp_flag
+0x08d6 mem_sp_calc
+0x08d7 mem_sp_dh_ready
+0x08d8 mem_sp_localsm
+0x08d9 mem_pairing_auth
+0x08da mem_sp_flag_start
+0x08da mem_sp_local_key_send_count
+0x08db mem_sp_remote_key_recv_count
+0x08dc mem_sp_remote_key_invalid
+0x08dd mem_sp_dhkey_invalid
+0x08de mem_gkey
+0x08e2 mem_le_pubkey_remote_x_256
+0x08ea mem_sp_pubkey_remote
+0x08ea mem_sp_pubkey_remote_x
+0x0902 mem_sp_pubkey_remote_x_end
+0x0902 mem_le_pubkey_remote_y_256
+0x090a mem_sp_pubkey_remote_y
+0x0922 mem_le_dhkey_256
+0x092a mem_sp_dhkey
+0x0942 mem_sp_dhkey_end
+0x0942 mem_sp_random_local
+0x0952 mem_sp_random_local_end
+0x0952 mem_sp_random_remote
+0x0962 mem_sp_random_remote_end
+0x0962 memresult
+0x0962 mem_sp_calc_result
+0x0962 memh
+0x0966 memg
+0x096a memf
+0x096e meme
+0x0972 mem_sp_calc_result_high
+0x0972 memd
+0x0976 memc
+0x097a memb
+0x097e mema
+0x0982 mem_sp_check_result
+0x0992 mem_sp_confirm_remote
+0x09a2 mem_sp_prarm_stack
+0x09b2 mem_UI_data_txbuff_length
+0x09b4 mem_ipc_skip_continue_proc
+0x09b5 mem_ui_timer_temp//length 4
+0x09b5 mem_ipc_rega_temp
+0x09b9 mem_hold_contr
+0x09bb mem_hold_contw
+0x09bd mem_fifo_temp
+0x09be mem_pdatatemp
+0x09c6 mem_temp//8 bytes
+0x09ce mem_timeup// 4 bytes
+0x09d2 mem_rega//4 bytes
+0x09d6 mem_regb//4 bytes
+0x09da mem_regc//3 bytes
+0x09dd mem_contr//2 bytes
+0x09df mem_contw//2 bytes
+0x09e1 mem_le_data_len_temp//1byte
+0x09e1 mem_tx_fifo_map_temp
+0x09e1 mem_rpn_dlci//1byte
+0x09e1 mem_event_cmd_response_content//2byte
+0x09e1 mem_le_prand//16byte
+0x09e1 mem_AES_CMAC_k//16 bytes
+0x09e1 mem_regext_index//1 bytes
+0x09e1 mem_temp_block0
+0x09e2 mem_le_data_temp//15bytes
+0x09e2 mem_temp_block1
+0x09f1 mem_le_aes_128//16byte
+0x09f1 mem_regext//64 bytes
+0x09f1 mem_AES_CMAC_k1//16 bytes
+0x09f1 mem_temp_block2
+0x0a01 mem_AES_CMAC_k2//16 bytes
+0x0a01 mem_temp_block3
+0x0a11 mem_AES_CMAC_temp// 16 bytes
+0x0a11 mem_temp_block4
+0x0a21 mem_AES_CMAC_M_last// 16 bytes
+0x0a21 mem_temp_block5
+0x0a31 mem_le_mackey//16 bytes
+0x0a31 mem_temp_block6
+0x0a41 mem_temp_prepare_write_request
+0x0b09 mem_kb_map2_temp_start
+0x0b09 mem_kb_map2_vk
+0x0b0c mem_kb_current_vk
+0x0b0f mem_kb_vk_offset
+0x0b10 mem_kb_vk_processed_cnt
+0x0b11 mem_kb_map2_current_cell_ptr
+0x0b13 mem_kb_device_button
+0x0b14 mem_table_temp0
+0x0b1c mem_table_temp1
+0x0b24 mem_kb_map2_temp_end
+0x0b24 mem_check_count
+0x0b25 mem_store_key_count
+0x0b26 mem_kb_gpio_val
+0x0b2a mem_c51_flag
+0x0b2b mem_c51_lmp_lock
+0x0b2c mem_lmp_bb_disconnect_reason
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4130 mem_current_amaddr
+0x4131 mem_lpm_mode
+0x4132 mem_device_option
+0x4133 mem_scan_mode
+0x4134 mem_last_clkn
+0x4138 mem_features
+0x4140 mem_lap
+0x4143 mem_uap
+0x4144 mem_nap
+0x4146 mem_npage
+0x4147 mem_glap
+0x414a mem_class
+0x414d mem_iscan_window
+0x414f mem_iscan_interval
+0x4151 mem_pscan_window
+0x4153 mem_pscan_interval
+0x4155 mem_page_interval
+0x4157 mem_page_window
+0x4159 mem_page_to
+0x415b mem_inq_window
+0x415d mem_fcomp_mul
+0x415e mem_fcomp_div
+0x415f mem_rx_window_init
+0x4161 mem_rx_window_sniff
+0x4163 mem_rf_init_ptr
+0x4165 mem_last_type
+0x4166 mem_last_type_esco
+0x4167 mem_last_type_saved
+0x4168 mem_retransmission_cnt
+0x416a mem_next_btclk
+0x416e mem_rf_rccal
+0x416f mem_handle_num
+0x4170 mem_max_slot
+0x4171 mem_eir_enable
+0x4172 mem_afh_instant
+0x4176 mem_afh_error_total
+0x4178 mem_afh_cfg
+0x4179 mem_afh_new_mod
+0x417a mem_afh_map_lo
+0x417f mem_afh_map_hi
+0x4184 mem_afh_used
+0x4185 mem_afh_index
+0x4187 mem_afh_map_new
+0x4192 mem_afh_map
+0x41e2 mem_afh_timer
+0x41e6 mem_afh_classify_channel_map
+0x41f0 mem_chip_functions
+0x41f2 mem_lpm_wake_lock
+0x41f4 mem_lpm_interval
+0x41f6 mem_lpm_overhead
+0x41f7 mem_lpm_hibernate_switch
+0x41f8 mem_esco_addr
+0x41f9 mem_sniff_unint_lost
+0x41fa mem_ptt
+0x41fb mem_sleep_counter//should be 0x41fc in REVC
+0x41ff mem_sleep_counter_all
+0x4203 mem_sleep_clkn
+0x4209 mem_sniff_rcv
+0x420c mem_sniff_lost
+0x420f mem_clks_per_lpo
+0x4212 mem_lpm_mult
+0x4213 mem_lpm_mult_timeout
+0x4214 mem_lpm_mult_cnt
+0x4215 mem_lpm_config
+0x4218 mem_lpm_xtalcnt
+0x4219 mem_lpm_buckcnt
+0x421a mem_lpm_ldocnt
+0x421b mem_lpm_isogate
+0x421c mem_lpm_isogate_final
+0x421d mem_saved_gpio// should be 0x421e in REVC
+0x422d mem_saved_gsel
+0x4230 mem_saved_mark
+0x4238 mem_saved_spidctrl
+0x4239 mem_patch_ptr
+0x423b mem_patch_len
+0x423d mem_timers
+0x425d mem_link_key_exists
+0x425e mem_link_key_eeprom_head
+0x4261 mem_link_key
+0x4271 mem_hci_cmd
+0x4272 mem_hci_conn_handle
+0x4273 mem_hci_plap
+0x4276 mem_hci_puap
+0x4277 mem_hci_pnap
+0x4279 mem_uartd_rxitems_got_data
+0x427a mem_uartd_rxitems_threshold
+0x427b mem_uartd_rx_timeout
+0x427d mem_tx_lch
+0x427e mem_tx_len
+0x4280 mem_tx_power
+0x4281 mem_context_number
+0x4282 mem_rf_init_data
+0x4283 mem_app_handshake_flag
+0x4284 mem_sniff_param_interval
+0x4286 mem_sniff_param_attempt
+0x4288 mem_sniff_param_timeout
+0x428a mem_cb_check_wakelock
+0x428c mem_cb_before_hibernate
+0x428e mem_cb_before_lpm
+0x4290 mem_cb_le_process
+0x4292 mem_cb_bt_process
+0x4294 mem_cb_idle_process
+0x4296 mem_cb_bb_event_process
+0x4298 mem_cb_discovry_timeout
+0x429a mem_cb_att_write
+0x429c mem_cb_update_notify_value
+0x429e mem_cb_update_notify_continue
+0x42a0 mem_cb_event_timer
+0x42a2 mem_cb_le_set_mult
+0x42a4 mem_cb_bt_set_mult
+0x42a6 mem_soft_version_num
+0x42a8 mem_eeprom_base
+0x42aa mem_unsniff2sniff_timer_count
+0x42ab mem_wake_up_delay_timer
+0x42ac mem_app_connection_options
+0x42ad mem_app_disconn_reason
+0x42af mem_app_disconn_reason_flag
+0x42b1 mem_lpm_delay_after_sniff
+0x42b5 mem_xrecord_mode
+0x42b6 mem_eeprom_block_size
+0x42b8 mem_wakup_from_power_flag
+0x42b9 mem_spi_init_clk
+0x42ba mem_spi_init_delay_time
+0x42bb mem_spi_ncs_gpio
+0x42bc mem_nv_data_ptr
+0x42be mem_nv_data_number
+0x42bf mem_0_5_adc_io_data
+0x42c1 mem_1v_adc_hvin_data
+0x42c3 mem_2v_adc_vinlpm_data
+0x42c5 mem_1v_adc_io_data
+0x42c7 mem_5v_adc_hvin_data
+0x42c9 mem_3v_adc_vinlpm_data
+0x42cb mem_otp_adc_flag
+0x42cd mem_reference_voltage
+0x42cf mem_adc_config_flag
+0x42d0 mem_adc_channel
+0x42d1 mem_adc_current_value
+0x42d3 mem_baud
+0x42d5 mem_hci_lt_rx_state
+0x42d6 mem_l2cap_xmem_start
+0x42d6 mem_l2cap_tx_multi_offset//0 means single packet
+0x42d8 mem_sdp_remote_cid
+0x42da mem_rfcomm_remote_cid
+0x42dc mem_hid_ctrl_remote_cid
+0x42de mem_hid_int_remote_cid
+0x42e0 mem_sdp_state
+0x42e1 mem_rfcomm_state
+0x42e2 mem_hid_control_state
+0x42e3 mem_hid_interrupt_state
+0x42e4 mem_spp_state
+0x42e5 mem_ML2CAP_comm_id
+0x42e6 mem_used_map
+0x42e7 mem_tx_fifo0
+0x42e7 mem_tx_fifo0_map
+0x42e8 mem_tx_fifo0_ptr
+0x42ea mem_tx_fifo1
+0x42ea mem_tx_fifo1_map
+0x42eb mem_tx_fifo1_ptr
+0x42ed mem_tx_fifo2
+0x42ed mem_tx_fifo2_map
+0x42ee mem_tx_fifo2_ptr
+0x42f0 mem_tx_fifo3
+0x42f0 mem_tx_fifo3_map
+0x42f1 mem_tx_fifo3_ptr
+0x42f3 mem_tx_fifo_end
+0x42f3 mem_l2cap_lpm_txbuf
+0x43f3 mem_l2cap_flow_ctrl_flag
+0x43f4 mem_l2cap_pending_item
+0x43f5 mem_l2cap_xmem_end
+0x43f5 mem_le_dsniff
+0x43f7 mem_le_conn_interval
+0x43f9 mem_le_scan_enable
+0x43fa mem_le_scan_interval
+0x43fc mem_le_scan_window
+0x43fe mem_le_adv_led
+0x43ff mem_le_adv_enable
+0x4400 mem_le_adv_data_len
+0x4401 mem_le_adv_data
+0x4420 mem_le_scan_data_len
+0x4421 mem_le_scan_data
+0x4440 mem_le_name_len
+0x4441 mem_le_name
+0x4455 mem_le_led_on_time
+0x4456 mem_le_new_map
+0x445b mem_le_new_param
+0x445b mem_le_new_transmitwindowsize
+0x445c mem_le_new_transmitwindowoffset
+0x445e mem_le_new_conninterval
+0x4460 mem_le_new_connslavelatency
+0x4462 mem_le_new_connsupervisiontimeout
+0x4464 mem_le_temp
+0x4465 mem_le_txheader
+0x4466 mem_le_txlen
+0x4467 mem_le_txpayload
+0x4469 mem_le_txcid
+0x446b mem_le_l2cap
+0x446c mem_le_l2cap_response
+0x446d mem_le_txbdy
+0x448c mem_le_pcnt_tx
+0x4491 mem_le_pcnt_rx
+0x4496 mem_le_last_mic
+0x449a mem_le_ivm
+0x449e mem_le_ivs
+0x44a2 mem_le_ltk
+0x44b2 mem_ltk_exists
+0x44b3 mem_le_rconfirm
+0x44c3 mem_le_srand
+0x44d3 mem_le_iat
+0x44d4 mem_le_rat
+0x44d5 mem_le_preq
+0x44d6 mem_le_preq_iocap
+0x44d7 mem_le_preq_oob
+0x44d8 mem_le_preq_auth
+0x44d9 mem_le_preq_max_keysize
+0x44da mem_le_preq_init_key_distribution
+0x44db mem_le_preq_resp_key_distribution
+0x44dc mem_le_pres
+0x44dd mem_le_pres_iocap
+0x44de mem_le_pres_oob
+0x44df mem_le_pres_auth
+0x44e0 mem_le_pres_max_keysize
+0x44e1 mem_le_pres_init_key_distribution
+0x44e2 mem_le_pres_resp_key_distribution
+0x44e3 mem_le_search_handle_start
+0x44e5 mem_le_search_handle_end
+0x44e7 mem_le_att_offset
+0x44e7 mem_le_search_att_type_length
+0x44e8 mem_le_search_att_type
+0x44f8 mem_le_notify_handle
+0x44fa mem_le_search_uuid_length
+0x44fb mem_le_search_uuid
+0x450b mem_le_handle_data_len
+0x450c mem_le_handle_data
+0x451c mem_le_adv_param
+0x451c mem_le_adv_interval_min
+0x451e mem_le_adv_interval_max
+0x4520 mem_le_adv_type
+0x4521 mem_le_adv_own_addr_type
+0x4522 mem_le_adv_direct_addr_type
+0x4523 mem_le_adv_direct_addr
+0x4529 mem_le_adv_channel_map
+0x452a mem_le_adv_filter_policy
+0x452b mem_le_conn_param
+0x452b mem_le_conn_peer_addr_type
+0x452c mem_le_conn_peer_addr
+0x4532 mem_le_conn_own_addr_type
+0x4533 mem_le_conn_interval_min
+0x4535 mem_le_conn_interval_max
+0x4537 mem_le_conn_latency
+0x4539 mem_le_conn_superto
+0x453b mem_le_scan_params
+0x453b mem_le_scan_type
+0x453c mem_le_scan_own_addr_type
+0x453d mem_le_scan_filter_policy
+0x453e mem_le_lap
+0x4541 mem_le_uap
+0x4542 mem_le_nap
+0x4544 mem_le_xtype_fifo
+0x454c mem_le_local_mtu
+0x454e mem_le_remote_mtu
+0x4550 mem_le_ll_cur_opcode
+0x4551 mem_le_skdm
+0x4559 mem_le_skds
+0x4561 mem_le_init_superto
+0x4563 mem_le_secure_connect_enable
+0x4564 mem_le_secure_connect_flag
+0x4565 mem_le_sc_calc
+0x4566 mem_le_secure_connect_state
+0x4567 mem_le_sc_confirm_gkey_flag
+0x4568 mem_le_sc_local_key_invalid
+0x4569 mem_le_continue_flag
+0x456a mem_le_pairing_state
+0x456b mem_le_enc_state
+0x456c mem_le_pairing_mode
+0x456d mem_le_tk
+0x4571 mem_le_ediv
+0x4573 mem_le_rand
+0x457b mem_le_irk
+0x458b mem_le_pairing_handle
+0x458d mem_le_interal_min
+0x458f mem_le_interal_max
+0x4591 mem_le_latency
+0x4593 mem_le_timeout
+0x4595 mem_le_switch_send_data
+0x4596 mem_le_transmit_window
+0x459a mem_le_buff_len
+0x459c mem_le_buff_len_all
+0x459e mem_le_buff_data_len_all
+0x45a0 mem_prepare_write_len
+0x45a2 mem_le_prepare_write_req_offset
+0x45a4 mem_prepare_handle
+0x45a6 mem_prepare_write_offest
+0x45a8 mem_le_flag
+0x45a9 mem_lmp_version
+0x45ac mem_lmp_subversion
+0x45ae mem_local_name_length
+0x45af mem_local_name
+0x45b2 mem_local_name2
+0x45f2 mem_local_name_end
+0x45f3 mem_unsniff2sniff_timer
+0x45f4 mem_switch_flag
+0x45f5 mem_pn_dlci
+0x45f6 mem_pn_max_frame_size
+0x45f8 memFCStemp1
+0x45f9 memFCStemp2
+0x45fa memFCStemp3
+0x45fb mem_rfcomm_initiator
+0x45fc mem_remote_spp_channel
+0x45fd mem_HIUfcs_SPP
+0x45fe mem_HIUfcs_SPP_WCredits
+0x45ff mem_rfcomm_send_more_pkt
+0x4600 mem_remote_credits
+0x4601 mem_credit_given
+0x4602 mem_ms_channel
+0x4603 mem_credit_flag
+0x4604 mem_rfcomm_max_frame_size
+0x4606 mem_rfcomm_credit_init_data
+0x4607 mem_cb_receive_spp_data
+0x4609 mem_nl_rx_data_src
+0x460b mem_nl_rx_len_all
+0x460d mem_ui_uuid_table
+0x460f mem_all_uuid_16bits
+0x4625 mem_all_uuid_128bits
+0x4637 mem_ui_le_uuid_table
+0x4639 mem_sp_local_key_invalid
+0x463a mem_le_private_key_256
+0x465a mem_le_pubkey_local_x_256
+0x467a mem_le_pubkey_local_y_256
+0x469a mem_sp_private_key
+0x46b2 mem_sp_pubkey_local
+0x46b2 mem_sp_pubkey_local_x
+0x46ca mem_sp_pubkey_local_x_end
+0x46ca mem_sp_pubkey_local_y
+0x46e2 mem_ssp_enable
+0x46e3 mem_sp_iocap_local
+0x46e6 mem_sp_iocap_remote
+0x46e9 mem_flag_mode_ssp_pin
+0x46ea mem_ssp_mode_flag
+0x46eb mem_authentication_passkey_times
+0x46ec mem_passkey_1bit
+0x46ed mem_flag_pairing_state
+0x46ee mem_ipc_lock_bt
+0x46ef mem_ipc_lock_c51
+0x46f0 mem_ipc_fifo_bt2c51
+0x46f8 mem_ipc_fifo_c512bt
+0x4700 mem_led_switch
+0x4701 mem_ui_button_timer
+0x4702 mem_ui_button_last_state
+0x4703 mem_ui_timer_last_btclk
+0x4707 mem_discovery_timeout_timer_count
+0x4709 mem_hid_handshake_timer_count
+0x470a memui_reconnect_mode
+0x470b mem_ui_state_map
+0x470d mem_ui_profile_supported
+0x470e mem_led_gpio
+0x470f mem_led_dark_time
+0x4711 mem_led_light_time
+0x4713 mem_led_blink_count
+0x4714 mem_ui_button_timeout
+0x4715 mem_ui_button_gpio
+0x4716 mem_discovery_timeout
+0x4718 mem_pin_length
+0x4719 mem_pin
+0x4729 mem_24g_tx_btclk
+0x472d mem_24g_interval
+0x472e mem_24g_txfail_cnt
+0x472f mem_24g_attempt_cnt
+0x4730 mem_24g_attempt_flag
+0x4731 mem_24g_rxfail_cnt
+0x4734 mem_24g_retry
+0x4735 mem_24g_pid
+0x4736 mem_24g_datalen
+0x4737 mem_24g_crc
+0x4739 mem_24g_rxbuf
+0x4779 mem_24g_addr
+0x477d mem_24g_len
+0x477f mem_24g_txpayload
+0x4789 mem_24g_txdata
+0x4793 mem_24g_ch
+0x4794 mem_24g_scremble
+0x47a4 mem_24g_current_ch_number
+0x47a5 mem_24g_ch_map1
+0x47a9 mem_24g_ch_map2
+0x47ad mem_24g_ch_map3
+0x47b1 mem_24g_ch_map4
+0x47b5 mem_24g_interval_min
+0x47b6 mem_24g_interval_max
+0x47b7 mem_24g_ensure
+0x47b8 mem_24g_enter_hibernate
+0x47c0 mem_24g_enter_lpm_timer
+0x47c1 mem_24g_pairing_sm
+0x47c2 mem_24g_addr_copy
+0x47c6 mem_24g_sifs
+0x47c7 mem_24g_rxcnt
+0x47c8 mem_24g_addr_private_dongle
+0x47cc mem_24g_map_buff0_dongle
+0x47cd mem_24g_channel_cnt_dongle
+0x47ce mem_24g_pairing_sm_dongle
+0x47cf mem_24g_tx_btclk_dongle
+0x47d3 mem_24g_interval_dongle
+0x47d4 mem_24g_ch_update_dongle
+0x47d5 mem_24g_rx_sync_dongle
+0x47d6 mem_24g_ch_cnt_dongle
+0x47d7 mem_24g_rxbuf_temp_dongle
+0x47dd mem_24g_rxbuf_dongle
+0x47e3 mem_24g_rxfail_cnt_dongle
+0x47e6 mem_24g_spi_enable_flag
+0x4729 mem_acl_credits
+0x472b mem_allow_switch
+0x472c mem_hci_acl_queue_start/*param_acl_pktcnt+2 byte*/
+0x4730 mem_hci_wake_clk
+0x4729 mem_kb_state
+0x472b mem_kb_report_data
+0x4731 mem_kb_keys
+0x4732 mem_kb_rcv_led_data
+0x4733 mem_kb_fast_wake_last
+0x4737 mem_led_cap_gpio
+0x4738 mem_led_num_gpio
+0x4739 mem_led_scl_gpio
+0x473a mem_kb_current_vdd_value_10times
+0x473c mem_kb_read_adc_cnt_100ms
+0x473d mem_kb_current_vdd_value
+0x473f mem_led_power_blink_count
+0x4740 mem_led_power_500ms_cnt
+0x4741 mem_kb_map2
+0x49fd mem_3v1_adc_default
+0x49ff mem_kb_map
+0x4a9d mem_kb_discovery_timer
+0x4a9f mem_kb_direct_timer
+0x4aa1 mem_kb_no_data_timer
+0x4aa3 mem_kb_direct_timeout
+0x4aa5 mem_kscn_event_last
+0x4aa6 mem_kscan_event_num_last
+0x4aa7 mem_auto_enable_mult_timer
+0x4aa8 mem_auto_enable_mult_timer_init
+0x4aa9 mem_kb_temp_flag
+0x4aaa mem_map2_out_report0
+0x4ab2 mem_map2_out_report1
+0x4aba mem_table_last_repory_data0
+0x4ac2 mem_table_last_repory_data1
+0x4aca mem_kb_down
+0x4ad4 mem_kb_down_last
+0x4ade mem_table_temp
+0x4ae6 mem_pincode_vk_last
+0x4ae7 mem_kb_device_button_last
+0x4ae8 mem_kb_device_button_timer
+0x4ae9 mem_kb_current_status
+0x4aea mem_seq
+0x4aeb mem_dorx_cnt
+0x4aec mem_matched_btclk
+0x4aee mem_master_sniff_interval
+0x4aef mem_led_power_gpio
+0x4af0 mem_kb_check_vdd_count
+0x4af2 mem_0v_adc_data
+0x4af4 mem_2v2_adc_data
+0x4af6 mem_3v_adc_data
+0x4af8 mem_select_system_led_timer
+0x4af9 mem_led_cap_gpio_status
+0x4afa mem_kb_no_data_timeout
+0x4afc mem_kb_gpio_last_val
+0x4b00 mem_store_current_status
+0x4b01 mem_kb_led_on_timer
+0x4b02 mem_kb_debug_sm
+0x4b03 mem_kb_mode
+0x4b05 mem_kb_mode_revese
+0x4b07 mem_master_addr
+0x4b0d mem_led_device_blink_count
+0x4b0e mem_led_device_500ms_cnt
+0x4b0f mem_kb_caps_led_status
+0x4b10 mem_kb_reconnection_ssp
+0x4b11 mem_kb_rcv_hid_control_rsp
+0x4b12 mem_kb_down_regroup
+0x4b17 mem_kb_get_fn_flag
+0x4b18 mem_kb_kscan_cnt
+0x4b19 mem_kb_down_test
+0x4b23 mem_kb_release_fn_data
+0x4b24 mem_led_cap_delay_timer
+0x4b25 mem_led_cap_mult_timer
+0x4b26 mem_led_cap_flag
+0x4b27 mem_hid_rx_data
+0x4b28 mem_kb_fn_c
+0x4b29 mem_kb_c_fn
+0x4b2a mem_keyboard_uuid_list
+0x4db4 mem_keyboard_uuid_list_end
+0x4db4 mem_keyboard_le_att_list
+0x4fa8 mem_keyboard_le_att_list_end
+0x4729 mem_module_wake_up_gpio
+0x472a mem_module_state_gpio
+0x472b mem_module_connect_state_gpio
+0x472c mem_current_packet_length
+0x472e mem_module_state
+0x472f mem_module_task
+0x4730 mem_cmode_addr
+0x4736 mem_module_mcu_wake_pin
+0x4737 mem_module_mcu_wake_delay_us
+0x473b mem_module_spp_lpm_mult
+0x473c mem_module_le_lpm_mult
+0x473d mem_module_bluetooth_stauts_by_command
+0x473e mem_module_uart_rx_buffer
+0x4740 mem_module_uart_rx_buffer_end
+0x4742 mem_module_uart_tx_buffer
+0x4744 mem_module_uart_tx_buffer_end
+0x4746 mem_module_read_vdd_flag
+0x4747 mem_module_read_vdd_count
+0x4748 mem_module_vdd_quotient
+0x4749 mem_module_vdd_remainder
+0x474a mem_module_le_buff_len
+0x474c mem_module_le_buff_len_all
+0x474e mem_module_le_buff_data_len_all
+0x4750 mem_module_le_continue_flag
+0x4751 mem_module_le_rx_data_len
+0x4752 mem_module_le_rx_data_address
+0x4754 mem_module_le_rx_data_handle
+0x4756 mem_module_data_write_handle
+0x4758 mem_module_data_write_handle2
+0x475a mem_module_flag
+0x475b mem_le_notify_type
+0x475c mem_module_hci_notify_start
+0x475e mem_module_hci_notify_offset
+0x4760 mem_module_hci_notify_len
+0x4762 mem_module_hci_notify_att
+0x4764 mem_module_hci_notify_original_len
+0x4766 mem_module_uuid_list
+0x4892 mem_module_uuid_list_end
+0x4892 mem_module_le_att_list
+0x4a86 mem_module_le_att_list_end
+0x4a86 mem_nv_data
+0x4a86 mem_nv_data0
+0x4aa8 mem_nv_data1
+0x4aca mem_nv_data2
+0x4aec mem_nv_data3
+0x4b0e mem_nv_data4
+0x4729 mem_mouse_key
+0x472a mem_mouse_x
+0x472c mem_mouse_y
+0x472e mem_mouse_z
+0x472f mem_mouse_tz
+0x4730 mem_mouse_xy_h
+0x4731 mem_sensor_shutter_hi
+0x4732 mem_sensor_shutter_lo
+0x4733 mem_sensor_smart_flag
+0x4734 mem_sensor_squal_reg
+0x4735 mem_mouse_move_flag
+0x4736 mem_reconnect_timeout
+0x4737 mem_mouse_direct_timeout
+0x4739 mem_mouse_no_data_timeout
+0x473b mem_mouse_blank_data_timeout
+0x473d mem_mouse_discovery_timer
+0x473f mem_mouse_direct_timer
+0x4741 mem_mouse_no_data_timer
+0x4743 mem_mouse_blank_data_timer
+0x4745 mem_mouse_send_blank_timer
+0x4746 mem_mouse_dpi
+0x4747 mem_mouse_dpi_button_state
+0x4748 mem_mouse_test_cnt
+0x4749 mem_le_hibernate_timer
+0x474b mem_mouse_mode_state
+0x474c mem_mouse_le_notify_handle
+0x474d mem_lbutton_gpio
+0x474e mem_rbutton_gpio
+0x474f mem_mbutton_gpio
+0x4750 mem_sbutton1_gpio
+0x4751 mem_sbutton2_gpio
+0x4752 mem_dpi_button_gpio
+0x4753 mem_sensor_data_gpio
+0x4754 mem_whee_a_data_gpio
+0x4755 mem_whee_b_data_gpio
+0x4756 mem_sensor_reset_gpio
+0x4757 mem_device1_led_gpio
+0x4758 mem_device2_led_gpio
+0x4759 mem_device3_led_gpio
+0x475a mem_conn_cnt
+0x475b mem_whee_ta_data_gpio
+0x475c mem_whee_tb_data_gpio
+0x475d mem_wheel_tb_old_pinlevel
+0x475e mem_wheel_tb_new_pinlevel
+0x475f mem_wheel_tog
+0x4760 mem_mouse_tz_data
+0x4761 mem_mouse_tz_data_count
+0x4762 mem_mouse_tz_data_count1
+0x4763 mem_mwhee_a_data_gpio
+0x4764 mem_mwhee_b_data_gpio
+0x4765 mem_mwheel_b_old_pinlevel
+0x4766 mem_mwheel_b_new_pinlevel
+0x4767 mem_mwheel_tog
+0x4768 mem_mouse_z_data
+0x4769 mem_mouse_z_data_count
+0x476a mem_mouse_z_data_count1
+0x476b mem_reconn_mode
+0x476c mem_mouse_statue_led_timer
+0x476d mem_device_flag
+0x476e mem_mouse_uuid_list
+0x4a5c mem_mouse_uuid_list_end
+0x4a5c mem_mouse_le_att_list
+0x4cb4 mem_mouse_le_att_list_end
+0x4729 mem_shutter_send_data
+0x472d mem_shutter_key_temp
+0x472e mem_shutter_send_length
+0x472f mem_shutter_clkn_bt_last
+0x4733 mem_shutter_key
+0x4734 mem_shutter_flag
+0x4735 mem_shutter_cable_unplug_conut
+0x4736 mem_shutter_hid_disconn_count
+0x4737 mem_shutter_1key_send_sm
+0x4738 mem_shutter_iphonekey_gpio
+0x4739 mem_shutter_androidkey_gpio
+0x473a mem_shutter_key_number
+0x473b mem_read_eeprom_temp
+0x473c mem_read_eeprom_mac_addr
+0x473f mem_scale_tx_length
+0x4740 mem_scale_txbuff_inuse
+0x4741 mem_adv_lap_ptr
+0x4743 mem_le_sleep_flag
+0x4744 mem_rx_window_sniff_inc
+0x4746 mem_pair_state
+0x4747 mem_exchange_mtu_req
+0x4748 mem_le_sleep_timeout
+0x474a mem_le_sleep_timeout_timer_count
+0x474c mem_le_fast_adv_timeout
+0x474e mem_le_fast_adv_timeout_timer_count
+0x4750 mem_led_fast_dark_time
+0x4752 mem_led_fast_light_time
+0x4754 mem_power_on_pin
+0x4755 mem_hard_soft_switch_case
+0x4756 mem_shutter_powerup_flag
+0x4757 mem_shutter_button_timeout
+0x4758 mem_shutter_button_timer
+0x4759 mem_power_timeout
+0x475a mem_power_timer
+0x475b mem_enable_key_scan
+0x475c mem_packet_interval_set
+0x475e mem_shutter_led_num
+0x475f mem_led_map
+0x4763 mem_fast_adv_led_style
+0x4763 mem_fa_led_type
+0x4764 mem_fa_led_pin
+0x4765 mem_fa_led_on_time
+0x4767 mem_fa_led_off_time
+0x4769 mem_fa_blink_count
+0x476a mem_slow_adv_led_style
+0x476a mem_sa_led_type
+0x476b mem_sa_led_pin
+0x476c mem_sa_led_on_time
+0x476e mem_sa_led_off_time
+0x4770 mem_sa_blink_count
+0x4771 mem_power_on_led_style
+0x4771 mem_po_led_type
+0x4772 mem_po_led_pin
+0x4773 mem_po_led_on_time
+0x4775 mem_po_led_off_time
+0x4777 mem_po_blink_count
+0x4778 mem_powe_off_led_style
+0x4778 mem_pf_led_type
+0x4779 mem_pf_led_pin
+0x477a mem_pf_led_on_time
+0x477c mem_pf_led_off_time
+0x477e mem_pf_blink_count
+0x477f mem_connected_led_style
+0x477f mem_co_led_type
+0x4780 mem_co_led_pin
+0x4781 mem_co_led_on_time
+0x4783 mem_co_led_off_time
+0x4785 mem_co_blink_count
+0x4786 mem_key_led_style
+0x4786 mem_key_led_style_ind_0
+0x4786 mem_key_led_style_ind_0_data
+0x478d mem_key_led_style_ind_1
+0x478d mem_key_led_style_ind_1_data
+0x4794 mem_key_led_style_ind_2
+0x4794 mem_key_led_style_ind_2_data
+0x479b mem_key_led_style_ind_3
+0x479b mem_key_led_style_ind_key_release
+0x479b mem_key_led_style_ind_3_data
+0x47a2 mem_temp_led_style
+0x47a2 mem_temp_led_type
+0x47a3 mem_temp_led_pin
+0x47a4 mem_temp_led_on_time
+0x47a6 mem_temp_led_off_time
+0x47a8 mem_temp_blink_count
+0x47a9 mem_shutter_key_num
+0x47aa mem_key_conf0
+0x47aa mem_key_conf0_pin
+0x47ab mem_key_conf0_led
+0x47ac mem_key_conf1
+0x47ac mem_key_conf1_pin
+0x47ad mem_key_conf1_led
+0x47ae mem_key_conf2
+0x47ae mem_key_conf2_pin
+0x47af mem_key_conf2_led
+0x47b0 mem_key_conf3
+0x47b0 mem_key_conf3_pin
+0x47b1 mem_key_conf3_led
+0x47b2 mem_key_conf4
+0x47b2 mem_key_conf4_pin
+0x47b3 mem_key_conf4_led
+0x47b4 mem_key_conf5
+0x47b4 mem_key_conf5_pin
+0x47b5 mem_key_conf5_led
+0x47b6 mem_key_value_temp
+0x47b8 mem_key_value
+0x47ba mem_key_packet_count
+0x47bb mem_key_next_addr
+0x47bd mem_key_value_temp1
+0x47be mem_key_value_temp2
+0x47bf mem_key_value_temp3
+0x47c0 mem_key_value_temp4
+0x47c1 mem_key_value_temp5
+0x47c2 mem_key_value_temp6
+0x47c3 mem_key0_press
+0x47d7 mem_key0_release
+0x47eb mem_key1_press
+0x47f9 mem_key1_release
+0x4807 mem_key2_press
+0x4815 mem_key2_release
+0x4823 mem_key3_press
+0x4831 mem_key3_release
+0x483f mem_key4_press
+0x484d mem_key4_release
+0x485b mem_key5_press
+0x4869 mem_key5_release
+0x4877 mem_queue_ele_num
+0x4878 mem_queue_read
+0x487a mem_queue_write
+0x487c mem_queue_start
+0x487c mem_data_ele0
+0x4886 mem_data_ele1
+0x4890 mem_data_ele2
+0x489a mem_data_ele3
+0x48a4 mem_data_ele4
+0x48ae mem_data_ele5
+0x48b8 mem_queue_end
+0x48b8 mem_queue_temp
+0x48ba mem_shutter_key_data_flag
+0x48bb mem_shutter_key_data_flag_1
+0x48bc mem_le_find_type_value_start_handle
+0x48be mem_le_find_type_value_end_handle
+0x48c0 mem_shutter_find_type_value_flag
+0x48c1 mem_le_uuid
+0x48c2 mem_send_updata_le_param_timer
+0x48c3 mem_le_smp_key_dist
+0x48c6 mem_ltk_states
+0x48c7 mem_shutter_conn_update_timer
+0x48c8 mem_empty_count
+0x48c9 mem_shutter_notification_len
+0x48ca mem_shutter_notification_addr
+0x48cc mem_shutter_le_att_list
+0x4729 mem_current_event
+0x472a mem_ipc_lock_rx_data_bt
+0x472b mem_ipc_lock_rx_data_c51
+0x472c mem_ipc_lock_tx_data_bt
+0x472d mem_ipc_lock_tx_data_c51
+0x472e mem_ipc_2bt_fifo_head
+0x47c4 mem_ipc_2bt_fifo_end
+0x47c4 mem_ipc_2bt_read_index
+0x47c6 mem_ipc_2bt_write_index
+0x47c8 mem_ipc_2C51_fifo_head
+0x482c mem_ipc_2C51_fifo_end
+0x482c mem_ipc_2C51_read_index
+0x482e mem_ipc_2C51_write_index
+0x4830 mem_c51_private_area
+0x4894 mem_ipc_tx_evt_buff
+0x4896 mem_ipc_tx_evt
+0x4897 mem_ipc_rx_type
+0x4898 mem_ipc_bt_timer
+0x489a mem_ipc_c51_timer
+0x489c mem_ipc_bt_100ms_timer
+0x489d mem_ipc_c51_100ms_timer
+0x489e mem_ipc_last_check_timer
+0x48a2 mem_new_24g_rxbuf
+0x48c4 mem_new_24g_txbuf
+0x48e4 mem_new_24g_txpayload
+0x4906 mem_new_24g_rxpayload
+0x4926 mem_new_24g_rxdata_length
+0x4927 mem_new_24g_pid
+0x4928 mem_new_24g_datalen
+0x4929 mem_new_24g_data_type
+0x492a mem_new_24g_txlen
+0x492b mem_new_24g_rx_window
+0x492d mem_new_24g_ensure
+0x492e mem_new_24g_txfail_cnt
+0x4930 mem_new_24g_get_ack_fail
+0x4931 mem_new_24g_retry
+0x4932 mem_new_24g_ch
+0x4933 mem_new_24g_current_ch_number
+0x4934 mem_new_24g_paring_addr
+0x4938 mem_new_24g_pairing_sm
+0x4939 mem_new_24g_ch_map1
+0x493d mem_new_24g_ch_map2
+0x4941 mem_new_24g_ch_map3
+0x4945 mem_new_24g_ch_map4
+0x4949 mem_new_24g_tx_btclk
+0x494d mem_new_24g_interval
+0x494e mem_new_24g_interval_min
+0x494f mem_new_24g_interval_max
+0x4950 mem_new_24g_addr
+0x4954 mem_new_24g_abort_pac
+0x4955 mem_new_24g_sync_pac
+0x4956 mem_new_24g_check_dongle_times
+0x4958 mem_new_24g_enter_hibernate
+0x4960 mem_new_24g_device_addr
+0x4964 mem_new_24g_pac_index
+0x4965 mem_new_24g_no_ack
+0x4966 mem_new_24g_sta_crc
+0x4969 mem_new_24g_last_crc
+0x496c mem_new_24g_sta_pid
+0x496d mem_new_24g_last_pid
+0x496e mem_new_24g_max_retry
+0x496f mem_new_24g_mode
+0x4970 mem_new_uart_packet
+0x4990 mem_new_24g_common_temp
+0x49b0 mem_new_24g_rf_last_sta
+0x49b1 mem_new_24g_rf_hop_ch
+0x49b2 mem_new_24g_sync_cnt
+0x49b3 mem_new_24g_hop_pac_retry
+0x49b4 mem_new_24g_rf_work_stage
+0x49b5 mem_new_24g_hop_fastly_cnt
+0x49b6 mem_new_24g_auto_paring_switch
+0x49b7 mem_new_24g_key_wheel_event
+0x49b8 mem_new_24g_delay_long_sleep_cnt
+0x49b9 mem_new_24g_delay_long_sleep_maxcnt
+0x49ba mem_new_24g_enter_lpm_timer
+0x49bb mem_new_24g_syncword
+0x49bd mem_new_24g_syncword_crc8
+0x49be mem_new_24g_get_syncword_crc8
+0x49bf mem_new_24g_paccnt
+0x49c0 mem_new_24g_ota_enable
+0x49c1 mem_bt_wakeup_from_long_mult
+0x49c2 mem_bt_motion_event
+0x49c3 mem_tx_power_temp
+0x49c4 mem_power_ctrl_level
+0x49c5 mem_power_ctrl_pac_succ_cnt
+0x49c6 mem_rssi_signal_buf
+0x49ce mem_rssi_signal_index
+0x49cf mem_rssi_hex_received
+0x49d0 mem_rssi_avg_received
+0x49d1 mem_last_txlch
+0x49d2 mem_last_txlen
+0x49d4 mem_last_txdata
+0x49e8 mem_device_uuid_list
+0x4c40 mem_device_uuid_list_end
+0x4c40 mem_device_le_att_list
+0x4e20 mem_device_le_att_list_end
+0x4e20 mem_empty_count_user
+0x4e21 mem_hid_buff
+0x4e41 mem_adc_0v
+0x4e43 mem_adc_3v
+0x4e45 mem_hibernate_flag
+0x4e46 mem_new_supervision_to
+0x4e48 mem_le_rx_winsows
+0x4e4c mem_le_att_report1
+0x4e4e mem_le_att_report2
+0x4e50 mem_le_slave_update_param_timer
+0x4e51 mem_le_slave_update_mult_timer
+0x4e52 mem_le_reconn_enable_notify_timer
+0x4e53 mem_le_reconn_flag
+0x4e54 mem_le_buff_temp
+0x4e60 mem_le_rx_window_inc
+0x4e62 mem_le_prepare_tx_retransmited_number
+0x4e63 mem_last_check_clk
+0x4e67 mem_hid_send_handshake
+0x4e68 mem_feature_ext_page_number
+0x4e69 mem_rf_init_data_new
+0x4e74 mem_short_lpm_interval_param
+0x4e78 mem_short_lpm_enable
+0x4e79 mem_short_lpm_tx_cnt
+0x4e7a mem_ckln_24g_short_lpm
+0x4e7d mem_send_data_24g_short_lpm
+0x4e7e mem_short_lpm_interval_cnt
+0x4e7f mem_ipc_is_ready
+0x4e80 mem_short_data_wheel
+0x4e81 mem_ble_data_wheel
+0x4e82 mem_ble_data_wheel_lpm_timer
+0x4e83 mem_bt_read_ipc_count
+0x4e84 mem_51_read_sensor_count
+0x4e85 mem_queue_write_prt
+0x4e86 mem_queue_read_ptr
+0x4e87 mem_queue_buffer0
+0x4e8e mem_queue_buffer1
+0x4e95 mem_queue_buffer2
+0x4e9c mem_queue_buffer3
+0x4ea3 mem_ble_read_ipc_fifo_once
+0x4ea4 mem_ble_send_flag
+0x4ea5 mem_mouse_le_pairing_flag
+0x4ea6 mem_le_mouse_fast_conn_flag
+0x4ea7 mem_le_start_adv
+0x4ea8 mem_le_start_fast_conn_count
+0x4ea9 mem_mouse_eeprom_base
+0x4eab mem_mouse_reconn_addr
+0x4ead mem_mouse_le_reconn_addr_data
+0x4eb3 mem_mouse_24g_reconn_addr_data
+0x4eb9 mem_le_fast_conn_finished
+0x4eba mem_le_init_eeprom_base_count
+0x4ebb mem_32asm_data_end
+0x4ebb mem_mult_time_arrive_flag
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/patch.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/patch.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/patch.dat	(working copy)
@@ -0,0 +1,85 @@
+mem_patch00:09
+mem_patch10:40
+mem_patch11:0c
+mem_patch14:80
+mem_patch15:13
+mem_patch16:f0
+mem_patch17:06
+mem_patch20:20
+mem_patch22:40
+mem_patch23:08
+mem_patch24:08
+mem_patch25:80
+mem_patch26:0e
+mem_patch27:f2
+mem_patch28:04
+mem_patch29:20
+mem_patch32:20
+mem_patch3e:88
+mem_patch3f:03
+
+##49   #mem_patch00	#49 enable HID
+##02   #mem_patch01	#02 enable HID
+##00   #mem_patch02
+##00   #mem_patch03
+##60   #mem_patch04	#60 enable HID
+##02   #mem_patch05	#02 enable HID
+##00   #mem_patch06
+##80   #mem_patch07	#80 enable HID
+##00   #mem_patch08
+##10   #mem_patch09	#10 enable HID
+##01   #mem_patch0A	#01 enable HID
+##00   #mem_patch0B
+##00   #mem_patch0C
+##00   #mem_patch0D
+##00   #mem_patch0E
+##00   #mem_patch0F
+##40   #mem_patch10
+##0c   #mem_patch11
+##00   #mem_patch12
+##00   #mem_patch13
+##80   #mem_patch14
+##13   #mem_patch15
+##f0   #mem_patch16
+##00   #mem_patch17
+##00   #mem_patch18
+##01   #mem_patch19	#01 enable HID
+##00   #mem_patch1A
+##00   #mem_patch1B
+##00   #mem_patch1C
+##00   #mem_patch1D
+##00   #mem_patch1E
+##00   #mem_patch1F
+##20   #mem_patch20
+##00   #mem_patch21
+##40   #mem_patch22
+##08   #mem_patch23
+##08   #mem_patch24
+##80   #mem_patch25
+##0e   #mem_patch26
+##d0   #mem_patch27
+##04   #mem_patch28
+##20   #mem_patch29
+##60   #mem_patch2A	#60 enable HID
+##41   #mem_patch2B	#41 enable HID
+##00   #mem_patch2C
+##00   #mem_patch2D
+##00   #mem_patch2E
+##00   #mem_patch2F
+##00   #mem_patch30
+##00   #mem_patch31
+##20   #mem_patch32
+##00   #mem_patch33
+##00   #mem_patch34
+##40   #mem_patch35	#40 enable HID
+##00   #mem_patch36
+##00   #mem_patch37
+##00   #mem_patch38
+##01   #mem_patch39	#01 enable HID
+##00   #mem_patch3A
+##00   #mem_patch3B
+##00   #mem_patch3C
+##00   #mem_patch3D
+##88   #mem_patch3E
+##03   #mem_patch3F
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/ramcode.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/ramcode.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/ramcode.rom	(working copy)
@@ -0,0 +1,1618 @@
+c5128011
+c0000026
+c0018031
+c0430036
+c0450040
+c0458062
+c053806e
+c0540075
+c0548089
+c056009c
+c05a0341
+c05a80b5
+c05b00bc
+c05b80de
+c05c8226
+c05d022a
+20203b34
+c0028118
+c00b011d
+c00d8121
+c0118124
+c0178148
+c018815d
+c019016f
+c0198182
+c01c8193
+c01e01a0
+c01e81b3
+c01f01b9
+c01f81d2
+c02101f0
+c02681f5
+c04a8232
+c0798239
+c07b8245
+c07c026f
+c07c8275
+20203b34
+20800000
+2435b004
+6800c595
+243a002f
+6800ce78
+203a3004
+704e7f00
+c5933004
+2435b004
+70828003
+20203004
+2040027f
+204002bb
+6800ce78
+243a037a
+2020301b
+2030b9a3
+708955d4
+20000004
+708955d2
+20000004
+708955d1
+20000004
+6800c280
+c00a39ae
+2020399c
+60088017
+1840a200
+20403a13
+58000500
+20403b35
+70890601
+7089003c
+708901e0
+70896d12
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027f
+6800c280
+c00a005f
+c2808059
+c2810059
+70894c5b
+70894d96
+70894e2c
+70894f46
+2020005d
+70894cfb
+70894def
+70894eec
+70894f5e
+6800c280
+202039dc
+708956c2
+708955d0
+20600000
+20403cd2
+20403a5f
+70804206
+68108968
+79207e07
+60108968
+793ffe07
+60108968
+79207e07
+60108968
+70804205
+20203a0c
+20403c2b
+6800ce45
+207a0000
+704e4500
+1c427e00
+6002489e
+20600000
+c6130000
+20403be2
+6801c20f
+207a0000
+68014042
+d840ffff
+98467c00
+20628000
+6800c131
+207a0000
+20404816
+247a0000
+20403d0e
+247a0000
+20403a7b
+6800c6e2
+203a3c5e
+6800c639
+207a0000
+20203c5e
+6800c595
+203a0096
+6800809f
+243a0096
+6800ce83
+6808ce84
+98467c00
+24628000
+6800ce81
+247a0000
+58000000
+600400a0
+20203c6a
+204000a1
+24740000
+68008b2b
+247a0000
+7049c100
+20203c6a
+204000a1
+24740000
+68008b2b
+247a0000
+20203c8c
+204000ac
+24740000
+204000a9
+24740000
+700b2b01
+700b2a01
+204000b1
+202000ac
+6801482c
+6809482e
+202000ae
+680147c4
+680947c6
+98467c00
+2022e4c0
+202031d4
+68008b2a
+2000000a
+c08000b1
+20600000
+70001627
+70015000
+70017e00
+70017f00
+58000000
+600288d2
+20600000
+da2046f0
+20407f95
+207a0000
+1fe22600
+204000c2
+20203d9b
+c10c0000
+c00a00c7
+c00a80d1
+c01480dc
+20203d73
+704e8300
+70421200
+704ebb00
+704e5114
+20403e61
+20403e59
+20403e7f
+20403e20
+704eb901
+20203dc2
+704ea400
+204002fc
+7044b200
+70421200
+704ebb00
+704e5100
+70456a00
+68094e4e
+600944f8
+204052a0
+20203dc6
+20400106
+20207e3b
+6008824e
+6800c89c
+1fe0fe01
+6000c89c
+6800824e
+207a0000
+1fe0ffff
+6000824e
+20400109
+204000ec
+20400112
+204000f8
+204000ff
+202000e2
+6800cebb
+207a0000
+6800c212
+2fe1fe20
+244080f6
+6800c131
+205a00f4
+20600000
+70413101
+20600000
+70421220
+20600000
+6800c9ba
+207a0000
+704e8000
+1fe0ffff
+6000c9ba
+247a0000
+20600000
+6800ce82
+207a0000
+1fe0ffff
+6000ce82
+247a0000
+704e8100
+20600000
+20403e7f
+7009bd12
+20207d90
+6800ce51
+207a0000
+1fe0ffff
+6000ce51
+247a0000
+70421220
+70413101
+704ebb01
+20600000
+6800ce52
+207a0000
+1fe0ffff
+6000ce52
+247a0000
+20203e6d
+20404968
+20404b51
+20404bd8
+204005a7
+20204945
+20403a50
+1fe22200
+204005e5
+20204a3d
+68024e48
+60024596
+20204a8c
+70413101
+6801037c
+68090382
+98467e00
+600109be
+68008362
+793ffe05
+793ffe03
+60008362
+68020366
+68090364
+600909c6
+98462200
+6800c45b
+6000838d
+e8c90000
+e8c10000
+1febfe00
+60010364
+184b8400
+9840fe00
+e8ca0000
+600a038e
+9a20fe00
+1fe22800
+68010364
+680909c6
+98467e00
+680909be
+984ffe00
+9a80fe00
+60020366
+20405199
+68010390
+60014561
+20600000
+68008379
+c2828159
+20400599
+704e6200
+6800ce20
+243a0153
+6800cea5
+c0008157
+68008303
+203a4bde
+20204f87
+6800ce20
+1fe0ffff
+6000ce20
+20204f87
+704e2003
+20204bde
+6800ce62
+1fe0fe01
+6000ce62
+2020059d
+6800c467
+c0030161
+c0010168
+20204bfb
+6800ce53
+c0008165
+20403e6d
+20204c86
+20400106
+704e5203
+20204c90
+58000013
+e0a08000
+20404c58
+5800000a
+60010390
+60014561
+20600000
+6800c46b
+c0010176
+c003017d
+c0038174
+20204c18
+704ea500
+20204d17
+59000302
+6001c4dc
+58000001
+e0a08000
+58010010
+e0a18000
+20204ccd
+7009bd29
+20407d86
+7009bd47
+20404bd6
+20204d01
+6800c46b
+c00d8186
+c00e8186
+20204c2b
+68094e4e
+6009446c
+6800ce86
+1fe08401
+18410403
+6008ce86
+1feffe07
+d8c04e87
+98c08c00
+e8c38000
+6003c46e
+d840000e
+20204f89
+6008c466
+28200602
+24208198
+1840fffc
+60014467
+68088379
+2040019b
+20204f92
+6800cea5
+c000819e
+20204bd0
+58000000
+20600000
+1a627e00
+c00001a6
+c00101a9
+c00181ad
+c00501b1
+20204fb9
+70413100
+704e513c
+2020501f
+20405033
+58000000
+60044544
+20600000
+20405039
+6800c56a
+c1010000
+20206418
+7009bd2b
+20204bd6
+e8c08000
+c00081b6
+20204ffe
+704ea501
+704e2003
+20205069
+e8c18000
+6001839a
+c00901bd
+20205011
+70413101
+204001c9
+6800839b
+1fe67c60
+202281ce
+704ea600
+20405125
+24628000
+6800cea6
+245a01d0
+7009bd13
+20204bd6
+68008303
+1fe0fff9
+1fe27200
+1f222400
+20205135
+704ea601
+202001c3
+7009bd29
+20207d86
+6800c3ff
+207a0000
+d8e00001
+20407ee2
+247a0000
+7854fc00
+78287c00
+20404b1e
+204049d4
+20404a8a
+243681e4
+68008003
+1fe0fe01
+60008003
+68008302
+1fe17e0f
+c00181ee
+c002d1af
+68008016
+c093d17d
+180a7e00
+d84001ff
+98417e00
+1fe0fefa
+1fe0ffff
+20000026
+243a01ea
+20205196
+20404ac5
+202001e4
+68024596
+d840ea60
+9840fe00
+60024596
+202051a9
+7855fc00
+203701f8
+24368207
+20403cb7
+68014161
+60010370
+68008302
+2fe00601
+2420bccb
+6800c465
+2fe00601
+2420bccb
+20404bd0
+243a3ccb
+6800ce62
+1fe67c01
+24213ccb
+20205297
+68094161
+68014e60
+98408400
+18430400
+68010370
+9840fe00
+60010370
+20203cc3
+2040021d
+df200003
+d8c04ead
+5800ffff
+20400221
+24628000
+6800cea8
+207a0000
+1fe0ffff
+6000cea8
+2040022a
+20628000
+704ea701
+20600000
+d840000c
+da204ead
+68014eab
+2020624a
+e8c90000
+98467c00
+24628000
+c2000221
+20600000
+d8400002
+da2009ce
+da400030
+2020626f
+d8400002
+da2009be
+da400030
+20406245
+680109be
+d840aa55
+98467c00
+20600000
+68120078
+681a007c
+9841fe00
+1fe47e00
+9a217e00
+60120070
+20600000
+1a227e00
+207a0000
+18408560
+18408560
+793f841c
+600a4703
+1fe20400
+da2046f0
+20407fa6
+247a0000
+18427e00
+20207d7d
+20407d80
+da2046f8
+20407f95
+1fe20400
+20407d84
+18427e00
+207a0000
+c006824f
+c013825e
+20207db3
+793f8026
+70413100
+180a7e00
+6000c53e
+5826100e
+6001c541
+704e5300
+68094e4e
+600944f8
+204052a0
+da400005
+20400268
+1a427e00
+e0c08000
+20207e07
+793f8026
+70413100
+704e5301
+68094e4e
+20404f6a
+1a220a00
+58000001
+e0a08000
+da400004
+2020025a
+da204401
+ea208000
+207a0000
+98c0a200
+e8c08000
+c1008000
+20200269
+204058c5
+243a7de5
+680089bd
+c584fde0
+c00f8295
+20207dd0
+700b2a03
+204000b1
+704e455a
+20403cfc
+68120138
+793ffe0f
+6012004c
+20403cf4
+d85fffff
+20203c11
+680a489e
+1c427e00
+98467e00
+d8400640
+9846fc00
+20407f53
+1807fe00
+207a0000
+1c420400
+600a489e
+68094898
+18508400
+9840fe00
+1ff0fe00
+60014898
+1ff0fe00
+1fe17e03
+c1800000
+204002b3
+24760000
+6800c2cf
+c2810296
+20600000
+68108078
+793ffe05
+60108078
+7089718f
+6800c2d0
+60108973
+204002a1
+68108078
+79207e05
+60108078
+20600000
+68108053
+79207e07
+60108053
+68108973
+1fe1fe30
+60108973
+7089067c
+708972aa
+20001388
+68190150
+68108053
+793ffe07
+60108053
+18508400
+600942d1
+20600000
+78367c00
+20600000
+78567c00
+20404bd0
+205a02b1
+20600000
+704ea301
+204002bb
+704ea300
+20600000
+204000ac
+20740000
+1ff0fe00
+1fe20c00
+204002e0
+6000c897
+c00082cb
+1fe20400
+18c22200
+6800c040
+c30002d5
+1a220c00
+c6848000
+18427e00
+c002830e
+20203b31
+204002e0
+204002e0
+600089bd
+204002d0
+20207d90
+204002e3
+18c20400
+18508400
+600947c4
+20600000
+1a220c00
+d8a000f5
+202002d8
+204002e0
+1fe27200
+204002dc
+202002d0
+204002e0
+e0a08000
+c20002dc
+20600000
+204002e3
+e8c08000
+20600000
+580047c4
+98c67c00
+24628000
+d8c0472e
+20600000
+df200003
+d8c04894
+18c22200
+6801482e
+1ff0fe00
+1fe20a00
+1a220c00
+e8c08000
+e0a08000
+204002f7
+c20002ef
+18a27e00
+1ff0fe00
+6001482e
+20600000
+5800482c
+98a67c00
+24628000
+d8a047c8
+20600000
+58000000
+6001ce85
+20600000
+c6130000
+6800c595
+207a0000
+204000ac
+20740000
+1ff0fe00
+1fe20c00
+204002e0
+6000c897
+18c22200
+c08282d5
+18c22400
+20404bd4
+247a0000
+20200313
+18c22400
+6800cea3
+207a0000
+20404bd0
+247a0000
+68094e4e
+20404f6a
+c4000000
+6800c595
+c1000000
+6800ce83
+1fe0fe01
+6000ce83
+6800ce85
+1fe08401
+18410403
+6008ce85
+1feffe07
+d8a04e87
+98a08a00
+1a420c00
+204002e0
+1fe27200
+204002da
+2040032a
+20760000
+7009bd1b
+20204bd6
+78567c00
+6800cea4
+c1028000
+78367c00
+1fe0fe01
+6000cea4
+1fe67c01
+24610000
+70489640
+202002e8
+5800472e
+1ff0fe00
+600147c4
+600147c6
+580047c8
+1ff0fe00
+6001482c
+6001482e
+20600000
+68014ea9
+1fe0fe1c
+60014eab
+20600000
+2040524a
+700b2a00
+70016c06
+20403e7f
+580003bf
+60014296
+580002b7
+60014290
+580003b8
+6001428c
+24558334
+20558380
+20403d3e
+6800ceba
+203a035a
+1fe0ffff
+6000ceba
+58003f80
+60014ea9
+2040033d
+6800ce53
+243a035a
+6800ceb9
+243a035a
+2040020f
+6800ce45
+c02d0394
+20358392
+6800c280
+6000c9c3
+20400596
+68014e41
+1ff0fe00
+60014e41
+68014e43
+1ff0fe00
+60014e43
+2040039f
+680409c6
+243a036d
+68014ad4
+1ff0fe00
+203a036d
+60014e43
+7048962f
+6800ce78
+243a0375
+20400293
+204002e8
+204002ff
+70828003
+20600000
+2055bc29
+d9600d00
+34730200
+1c427e00
+6001ce7a
+6801470b
+c3858000
+c3830000
+20403d60
+20400493
+2020037a
+1ce27e00
+c593038a
+203a0385
+7049b9bb
+20600000
+7049b900
+6800c9b7
+207a0000
+7049b700
+20200383
+203a038d
+7049c102
+20600000
+6800c9c2
+207a0000
+7049c200
+7049c101
+20600000
+7048963c
+2020036e
+1ce27e00
+203a0277
+2040530d
+204042eb
+58000000
+60044040
+6001470b
+60014898
+6001489a
+7048963d
+2020036e
+204062c4
+580007e2
+da2009c6
+d840000c
+2040630d
+204062c7
+680409c6
+207a0000
+6800c2cf
+c28103aa
+20600000
+680909c6
+680109cc
+18422400
+1fe22200
+98462600
+1a427e00
+9a667e00
+1ff0fe00
+60014e41
+1a6bfe00
+9a20fe00
+1ff0fe00
+60014e43
+20600000
+78347c00
+68120138
+79347e1a
+6012004c
+20403cf4
+70009f01
+20600000
+1a627e00
+1fe17ef0
+c1280000
+1a627e00
+6000c896
+202002e8
+70492700
+7049324e
+68024934
+60024950
+20200459
+6808c933
+204003d0
+18408401
+18410403
+6008c933
+20600000
+6800c950
+1fe17e03
+1fefa204
+58004939
+9a20fe00
+98408c00
+e8c08000
+6000c932
+20600000
+7049b001
+7049b200
+6800c929
+1fe17e07
+6000c929
+20600000
+6800c929
+79207e04
+6000c929
+6000c8e4
+20600000
+6800c929
+793ffe04
+6000c929
+20600000
+2040059d
+6800c9b4
+c00083ed
+c00103f1
+20600000
+7049b202
+7049b300
+7049b000
+202003db
+7049b100
+202003ee
+6801492e
+1fe0fe01
+6001492e
+c2850502
+6800c9b1
+c00083fc
+7049b101
+6800c9b1
+c08083db
+6800c9b5
+1fe0fe01
+6000c9b5
+c0020403
+204003ca
+70496e02
+202004c3
+2040059d
+7049b500
+202003db
+7049b202
+7049b001
+7049b100
+202003db
+6800c9b4
+c0018407
+6800c929
+2fec0004
+202083d9
+6800c9b4
+c0008406
+c0010407
+20600000
+6800c938
+c1ff8000
+20400418
+24560420
+20600000
+78567c00
+6800c9b0
+c1808000
+6800c9b2
+c1800000
+7049b401
+70496e04
+202002b1
+6800c9b2
+203a0428
+1fe0ffff
+6000c9b2
+7049b402
+204003ca
+70496e04
+20600000
+7049b403
+6800c9b1
+243a03fa
+204003ca
+70496e02
+20600000
+6800c938
+c0ff8602
+204002bb
+20340440
+6800c897
+c08364c0
+6800ce80
+205a0479
+6800ce80
+245a043c
+20400445
+20400466
+70492d01
+20600000
+704e7900
+704e7800
+7049ba0a
+20600000
+6800ce78
+243a0445
+6800c92d
+c000b1d4
+20600000
+6800c9b9
+6000c9b8
+6800c970
+1fe22200
+da404971
+70495400
+204003db
+6000c990
+1a208401
+d8a04991
+1a227200
+1a420c00
+20407ecd
+da204990
+c6938000
+6008c928
+18427200
+d8a048c4
+1a220c00
+20207ecd
+da200000
+df200004
+d8c04950
+e8c08000
+9a20a200
+c200045c
+1a227e00
+600149bb
+6800c9bb
+6808c9bc
+9840fe00
+6000c9bd
+20600000
+6800c928
+1fe0fe02
+6000c92a
+6800c929
+6000c8e4
+6800c928
+1fe9fe00
+6808c927
+18410403
+18438400
+9841fe00
+6808c965
+9840fe00
+e0a08000
+6800c928
+98007200
+d8c048c4
+20207ecd
+20600000
+6800c2b8
+2fec0002
+20208483
+6800ce79
+c1028000
+1fe0fe01
+6000ce79
+c1828000
+704e7801
+20600000
+6800ce79
+c10a0000
+1fe0fe01
+6000ce79
+c18a0000
+6800c2b8
+79207e02
+6000c2b8
+20200481
+6800ce79
+207a0000
+1fe0ffff
+6000ce79
+247a0000
+704e7800
+20600000
+79200027
+204002bb
+20340498
+6800c897
+c003049e
+6800ce7d
+c000849d
+c0010478
+c001849d
+20600000
+20600000
+20600000
+20403be2
+6801c20f
+207a0000
+6800c131
+207a0000
+6800ce80
+c00084a8
+58000000
+600400a0
+204004b8
+d9600d00
+34730200
+6809ce7a
+1c427e00
+98467e00
+1fe17eff
+d8400ea6
+984f8400
+68024e74
+98467e00
+20213c7f
+6800c218
+1fe0fe01
+600241fb
+20203c86
+58013c68
+60024e74
+6800ce7e
+1fe0fe01
+c08284be
+58000000
+6000ce7e
+c4000000
+580130b0
+60024e74
+20600000
+70493100
+d9600d00
+34730200
+204004db
+6800c965
+c1008000
+242c04ea
+243784ea
+20400509
+20400599
+6800c927
+1fe0fe01
+6000c927
+6800c938
+c0ff84d9
+2040040a
+58000000
+6001492e
+6000c930
+6000c9b3
+70492d00
+20600000
+20400596
+2020061d
+7857fc00
+20400529
+6800c965
+c00084e8
+18002a00
+68024950
+98001200
+68088017
+204039b9
+204039bf
+20400553
+20578592
+20600000
+20400592
+202004cd
+6800c930
+1fe0fe01
+6000c930
+6800c938
+c0ff84fe
+6808c931
+18408401
+6008c931
+6800c96e
+98467e00
+243a04c4
+6800c9b4
+c00183f3
+6800c9b3
+1fe0fe01
+6000c9b3
+c00103e8
+204003df
+70496e01
+202004c3
+6800c930
+c1ff8000
+70493000
+20200507
+58000000
+6001492e
+70413100
+704e7900
+704e7800
+7048963b
+202002e8
+20400510
+6800c926
+207a0000
+98007200
+d8c048a4
+d8a04906
+20207ecd
+6800c8a3
+1fe97e00
+6000c926
+1fe0fe01
+d8c048a3
+98c08c00
+e8c18000
+6001c966
+6800c8a3
+1fe37e00
+1fe17e03
+6000c96c
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+6800c932
+1fed8400
+79200401
+18431c00
+20600000
+204039b1
+6808c932
+202039c9
+20404976
+68024950
+98001200
+2040051d
+20400526
+79202a00
+782efc00
+78307c00
+7850fc00
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6800c9bd
+08008608
+6800c92a
+98007200
+d8c048e4
+e8c08000
+08008608
+c200053f
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+784dfc00
+20600000
+20404976
+68024950
+98001200
+204039b1
+6808c932
+204039b9
+58000500
+20403b35
+204039bf
+2040051d
+7857fc00
+7826fc00
+7830fc00
+78507c00
+78287c00
+6801492b
+98003600
+37c18400
+242c0595
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+09800008
+19897e00
+6000c9be
+20400459
+6808c9be
+98467c00
+24228592
+09800008
+19897e00
+6000c8a2
+6800c96f
+1fe67c02
+20228572
+6800c8a2
+6808c929
+a8400e00
+24208592
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+2022857c
+09800008
+19897e00
+e0a08000
+c2000578
+18a22200
+09800008
+19897e00
+6000c9cf
+1a220a00
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+7845fc00
+20230592
+7837fc00
+68008017
+1fe0a200
+20403a13
+7846fc00
+204039b1
+6800c9cf
+1fe22200
+202005e5
+784dfc00
+7845fc00
+202036c6
+20200592
+7049c401
+7049c500
+20600000
+6800c9c5
+1fe0fe01
+6000c9c5
+20600000
+6800c9c5
+1fe67c01
+244105a5
+6800c9c5
+c1000000
+1fe0ffff
+6000c9c5
+20600000
+7049c502
+20600000
+da2049c6
+204005ee
+6008c9d0
+280ffe26
+204085b5
+244085b9
+98467c00
+242105d2
+6800c9c5
+1fe67c01
+242105bd
+6800c9c5
+c00005d2
+20600000
+58000082
+20600000
+58000077
+20600000
+58000080
+20600000
+58000075
+20600000
+6800c9c5
+c1a30000
+7049c500
+6808c9d0
+280ffe26
+204085b7
+244085bb
+98467c00
+24610000
+6800c9c4
+c00005de
+1fe0ffff
+6000c9c4
+c00005de
+708955d0
+708956e0
+7089574c
+7089586c
+70895950
+70428001
+20600000
+6800c9c4
+c00105d7
+1fe0fe01
+6000c9c4
+c00085cb
+708955d0
+708956e0
+7089574c
+7089583c
+70895910
+70428004
+20600000
+708955d0
+708956c0
+7089574c
+7089586c
+70895950
+70428010
+20600000
+6808c9ce
+580049c6
+98408a00
+1a227e00
+e0a08000
+18408401
+18410407
+6008c9ce
+20600000
+d8400000
+df200008
+1a220c00
+e8c08000
+98408400
+c20005f1
+18497e00
+1fe20400
+c6930000
+1fe6fc0a
+20407f53
+1807fe00
+1ff27e00
+18070400
+98418400
+20600000
+79200026
+204003c5
+70493801
+20600000
+6800c92d
+c000b1d4
+6800c938
+c0008609
+c001060c
+c001860f
+20203b31
+70493811
+704990aa
+20200611
+70493812
+70499055
+20200611
+70493813
+70499022
+6800c929
+1fe17e07
+6000c991
+68024960
+60024992
+70499600
+da204990
+d8400007
+20400453
+20400466
+2040043a
+202031d4
+6800c938
+c17f8000
+c0088623
+c0090625
+c0098627
+20600000
+70493802
+202004d3
+70493803
+202004d3
+704938ff
+70489639
+204002e8
+68024908
+204003c8
+202004d3
+793f8026
+204003ca
+68024950
+20400459
+6800c938
+c1ff8000
+20400643
+58000000
+60014956
+200007d0
+6800c956
+c07f8507
+204004db
+242c064d
+2437864d
+70413101
+79200026
+58000000
+60014956
+7009bd3a
+20407d86
+20207e0d
+79200027
+704990ff
+6800c929
+6000c991
+68024960
+60024992
+d8400006
+da204990
+20400453
+20200466
+68014956
+1fe0fe01
+60014956
+204003ca
+20200636
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/rf.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/rf.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/rf.dat	(working copy)
@@ -0,0 +1,35 @@
+mem_lpm_config:8f 1b ce
+mem_lpm_buckcnt:0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 04
+mem_rx_window_sniff:00 08
+mem_le_rx_window_inc:00 40
+
+mem_lmp_version: 09 59 00 B0 00    #04 0a 00 e9 12
+
+mem_eeprom_base:80 3f
+mem_eeprom_block_size:20
+
+mem_context_number:01
+
+mem_rf_init_data_new:
+# tx power
+55 d0
+56 c0
+57 4c
+58 3c
+59 50
+ff
+mem_rf_init_ptr:mem_rf_init_data_new
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/sch.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/sch.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/sch.rom	(working copy)
@@ -0,0 +1,940 @@
+mem_patch00:09
+mem_patch10:40
+mem_patch11:0c
+mem_patch14:80
+mem_patch15:13
+mem_patch16:f0
+mem_patch17:06
+mem_patch20:20
+mem_patch22:40
+mem_patch23:08
+mem_patch24:08
+mem_patch25:80
+mem_patch26:0e
+mem_patch27:f2
+mem_patch28:04
+mem_patch29:20
+mem_patch32:20
+mem_patch3e:88
+mem_patch3f:03
+
+##49   #mem_patch00	#49 enable HID
+##02   #mem_patch01	#02 enable HID
+##00   #mem_patch02
+##00   #mem_patch03
+##60   #mem_patch04	#60 enable HID
+##02   #mem_patch05	#02 enable HID
+##00   #mem_patch06
+##80   #mem_patch07	#80 enable HID
+##00   #mem_patch08
+##10   #mem_patch09	#10 enable HID
+##01   #mem_patch0A	#01 enable HID
+##00   #mem_patch0B
+##00   #mem_patch0C
+##00   #mem_patch0D
+##00   #mem_patch0E
+##00   #mem_patch0F
+##40   #mem_patch10
+##0c   #mem_patch11
+##00   #mem_patch12
+##00   #mem_patch13
+##80   #mem_patch14
+##13   #mem_patch15
+##f0   #mem_patch16
+##00   #mem_patch17
+##00   #mem_patch18
+##01   #mem_patch19	#01 enable HID
+##00   #mem_patch1A
+##00   #mem_patch1B
+##00   #mem_patch1C
+##00   #mem_patch1D
+##00   #mem_patch1E
+##00   #mem_patch1F
+##20   #mem_patch20
+##00   #mem_patch21
+##40   #mem_patch22
+##08   #mem_patch23
+##08   #mem_patch24
+##80   #mem_patch25
+##0e   #mem_patch26
+##d0   #mem_patch27
+##04   #mem_patch28
+##20   #mem_patch29
+##60   #mem_patch2A	#60 enable HID
+##41   #mem_patch2B	#41 enable HID
+##00   #mem_patch2C
+##00   #mem_patch2D
+##00   #mem_patch2E
+##00   #mem_patch2F
+##00   #mem_patch30
+##00   #mem_patch31
+##20   #mem_patch32
+##00   #mem_patch33
+##00   #mem_patch34
+##40   #mem_patch35	#40 enable HID
+##00   #mem_patch36
+##00   #mem_patch37
+##00   #mem_patch38
+##01   #mem_patch39	#01 enable HID
+##00   #mem_patch3A
+##00   #mem_patch3B
+##00   #mem_patch3C
+##00   #mem_patch3D
+##88   #mem_patch3E
+##03   #mem_patch3F
+
+
+#mem_class: 80 25 00
+#mem_lap:ab ab 66 63 5d 6c
+#mem_local_name_length:
+#'bt mouse
+#mem_sniff_param_interval:0c 00
+#mem_sniff_param_attempt:01
+#mem_sniff_param_timeout:01
+#mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+#mem_sp_iocap_local:03 00 04
+mem_ui_profile_supported:01
+
+#mem_eir_enable:01
+
+#mem_all_uuid_16bits:
+#06
+#03#Type: Complete list of 16-bit UUIDs
+#1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#mouse uuid
+#mem_device_uuid_list:
+#04 0011 0100 1002 1124
+#00 01 00 00
+#36 01 61
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#09
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#24
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#11
+#35
+#03
+#19
+#00
+#11
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#06
+#35
+#09
+#09
+#65
+#6e
+#09
+#00
+#6a
+#09
+#01
+#00
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#11
+#24
+#09
+#01
+#00
+#09
+#00
+#0d
+#35
+#0f
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#13
+#35
+#03
+#19
+#00
+#11
+#09
+#01
+#00
+#25
+#16
+#59 69 43 68 69 70#YiChip
+#20 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65
+#09
+#01
+#01
+#25
+#05
+#4d
+#6f
+#75
+#73
+#65
+#09
+#01
+#02
+#25
+#06
+#59 69 43 68 69 70#YiChip
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#01
+#11
+#09
+#02
+#02
+#08
+#80
+#09
+#02
+#03
+#08
+#21
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#28
+#01
+#09
+#02
+#06
+#35
+#81
+#35
+#7f
+#08
+#22
+#25
+#7b
+#05
+#01
+#09
+#02
+#a1
+#01
+#85
+#02
+#09
+#01
+#a1
+#00
+#05
+#09
+#19
+#01
+#29
+#08
+#15
+#00
+#25
+#01
+#75
+#01
+#95
+#08
+#81
+#02
+#05
+#01
+#09
+#30
+#09
+#31
+#16
+#01
+#f8
+#26
+#ff
+#07
+#75
+#10
+#95
+#02
+#81
+#06
+#09
+#38
+#15
+#81
+#25
+#7f
+#75
+#08
+#95
+#01
+#81
+#06
+#05
+#0c
+#0a
+#38
+#02
+#75
+#08
+#95
+#01
+#81
+#06
+#c0
+#c0
+#05
+#0c
+#09
+#01
+#a1
+#01
+#85
+#03
+#75
+#10
+#95
+#02
+#15
+#01
+#26
+#8c
+#02
+#19
+#01
+#2a
+#8c
+#02
+#81
+#60
+#c0
+#06
+#00
+#ff
+#09
+#01
+#a1
+#01
+#85
+#10
+#75
+#08
+#95
+#06
+#15
+#00
+#26
+#ff
+#00
+#09
+#01
+#81
+#00
+#09
+#01
+#91
+#00
+#c0
+#09
+#02
+#07
+#35
+#08
+#35
+#06
+#09
+#04
+#09
+#09
+#01
+#00
+#09
+#02
+#08
+#28
+#00
+#09
+#02
+#09
+#28
+#01
+#09
+#02
+#0a
+#28
+#01
+#09
+#02
+#0b
+#09
+#01
+#00
+#09
+#02
+#0c
+#09
+#0c
+#80
+#09
+#02
+#0d
+#28
+#00
+#09
+#02
+#0e
+#28
+#01
+#
+#04 1002 1200 0100 0001
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09 02 00#SpecificationID
+#09 01 03#DeviceID Spec Version:1.3
+#
+#09 02 01# VendorID
+#09 0a 5c#Unknown See http://www.bluetooth.org/assigned-number.htm
+#
+#09 02 02#ProductID
+#09 00 01#0x0001
+#
+#09 02 03#Version
+#09 01 29#Product Version:1.2.9
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#00
+#00
+#
+#01 00 01
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#05
+#ac
+#09
+#02
+#02
+#09
+#02
+#39
+#09
+#02
+#03
+#09
+#00
+#44
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#
+#03 1101 0003 0100 
+#00 01 00 02
+#36 00 2f
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#02
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#01
+#09
+#00
+#04
+#35
+#0c
+#35
+#03
+#19
+#01
+#00
+#35
+#05
+#19
+#00
+#03
+#08
+#01
+#09
+#01
+#00
+#25
+#09
+#53
+#50
+#50
+#20
+#73
+
+#mem_ui_uuid_table:mem_device_uuid_list
+#Auto reconnection after power on
+mem_device_option:42
+#mem_ptt:0
+#mem_features:
+#ff
+#ff
+#8f
+#f8	#fe--EDR  F8--BR
+#9b	#AFHclose 83
+#9d
+#51
+#82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+#2=mouse 4=dongle 6=ukey 7=ir
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:08
+mem_lpm_interval:00 00
+mem_scan_mode:00
+mem_ipc_tx_evt_buff:02 01
+
+mem_adc_config_flag:04
+mem_adc_channel:30
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+
+
+mem_le_adv_own_addr_type:00
+mem_le_adv_channel_map:07 
+mem_le_adv_filter_policy:00
+mem_le_transmit_window:50
+mem_le_notify_handle:1a
+mem_le_lap:ab b9 12 0e 10 26			#bluetooth MAC address
+mem_le_name_len:			#bluetooth name
+'BLE Mouse
+
+mem_le_local_mtu:17
+mem_le_adv_type:00
+mem_le_adv_direct_addr_type:01
+mem_le_adv_direct_addr:00 00 00 00 00 00
+mem_le_adv_enable:00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#appearance
+03 19 c2 03
+
+#uuid
+03 03 12 18
+
+#flag 
+02 01 05
+
+#name
+'\09BLE Mouse
+
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BLE Mouse
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_device_le_att_list:
+
+#Primary service GAP ------
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 0a
+03 00 02 00 2a
+'BLE Mouse
+
+#Appearance
+04 00 02 03 28 01 02
+05 00 02 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 02 00 28 02 01 18
+#Service changed
+09 00 02 03 28 01 20
+0a 00 02 05 2a 00
+#Client Characteristic Configuration
+0b 00 02 02 29 02 00 00
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#Manufacturer Name
+0d 00 02 03 28 01 02
+0e 00 02 29 2a 06 59 69 43 68 69 70
+#PNP id
+0f 00 02 03 28 01 02
+10 00 02 50 2a 07 02 35 12 22 aa 01 00
+#Primary service battery ------
+11 00 02 00 28 02 0f 18
+#Battery level
+12 00 02 03 28 01 02
+13 00 02 19 2a 01 33
+#Client Characteristic
+14 00 02 02 29 02 00 00
+
+#Primary service hid ------
+15 00 02 00 28 02 12 18
+
+#Protocol mode
+16 00 02 03 28 01 06
+17 00 02 4e 2a 01 01
+
+#Hid report
+18 00 02 03 28 01 1a
+19 00 02 4d 2a 07 00 00 00 00 00 00 00
+
+#Client Characteristic
+1a 00 02 02 29 02 00 00
+
+#Report reference
+1b 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Report map
+1c 00 02 03 28 01 0a
+1d 00 02 4b 2a 45 # length 72 bytes
+
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0).
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 f8 # Logical Minimum(-2047)
+26 ff 07 # Logical Maximum(2047)
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+05 0c # Usage Page(Consumer)
+0a 38 02 # Usage(AC Pan)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+c0 # End Collection
+c0 # End Collection
+
+#Boot mouse input report
+1e 00 02 03 28 01 1a
+1f 00 02 33 2a 08 00 00 00 00 00 00 00 00
+
+#Client Characteristic
+20 00 02 02 29 02 01 00
+
+#Hid information
+21 00 02 03 28 01 02
+22 00 02 4a 2a 04 01 01 00 03
+
+#Hid control point
+23 00 02 03 28 01 04
+24 00 02 4c 2a 00
+
+25 00 02 03 28 01 12 
+26 00 02 4d 2a 07 00 00 00 00 00 00 00 
+27 00 02 02 29 02 00 00
+28 00 02 08 29 02 11 01
+29 00 02 03 28 01 0e 
+2a 00 02 4d 2a 07 00 00 00 00 00 00 00
+2b 00 02 08 29 02 11 02
+
+#End of Attribute list
+00 00
+
+mem_ui_le_uuid_table:mem_device_le_att_list
+
+mem_le_rx_winsows:50
+
+mem_le_interal_min:
+07 00 #min interval
+07 00 #max interval
+05 00 #latency
+2c 01 #timeout
+
+mem_empty_count_user:00
+#mem_le_att_report1:13 00
+mem_le_att_report2:19 00
+mem_le_pairing_handle:22 00
+mem_le_pairing_mode:01
+mem_le_flag:01
+
+mem_tx_power:02#3dbm
+
+mem_le_start_fast_conn_count:01
+mem_le_init_eeprom_base_count:01
+
+#24g init
+mem_new_24g_mode:01#tx
+mem_new_24g_data_type:01	#mouse 1,kb 2
+mem_new_24g_max_retry:04#max tx retry
+mem_new_24g_no_ack:00#with ack
+mem_new_24g_rx_window:c0 12	#400us
+mem_new_24g_interval:19
+mem_new_24g_interval_min:19
+mem_new_24g_interval_max:1c
+mem_new_24g_ch_map1:00 13 2c 42
+mem_new_24g_ch_map2:06 15 36 48
+mem_new_24g_ch_map3:0f 1a 3a 4c
+mem_new_24g_ch_map4:11 23 31 4d
+mem_new_24g_pairing_sm:ff
+mem_new_24g_paring_addr:20 15 10 05
+mem_new_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_new_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 min
+
+
+mem_lpm_config:8f 1b ce
+mem_lpm_buckcnt:0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 04
+mem_rx_window_sniff:00 08
+mem_le_rx_window_inc:00 40
+
+mem_lmp_version: 09 59 00 B0 00    #04 0a 00 e9 12
+
+mem_eeprom_base:80 3f
+mem_eeprom_block_size:20
+
+mem_context_number:01
+
+mem_rf_init_data_new:
+# tx power
+55 d0
+56 c0
+57 4c
+58 3c
+59 50
+ff
+mem_rf_init_ptr:mem_rf_init_data_new
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/sched.rom
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/sched.rom	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/sched.rom	(working copy)
@@ -0,0 +1,940 @@
+mem_patch00:09
+mem_patch10:40
+mem_patch11:0c
+mem_patch14:80
+mem_patch15:13
+mem_patch16:f0
+mem_patch17:06
+mem_patch20:20
+mem_patch22:40
+mem_patch23:08
+mem_patch24:08
+mem_patch25:80
+mem_patch26:0e
+mem_patch27:f2
+mem_patch28:04
+mem_patch29:20
+mem_patch32:20
+mem_patch3e:88
+mem_patch3f:03
+
+##49   #mem_patch00	#49 enable HID
+##02   #mem_patch01	#02 enable HID
+##00   #mem_patch02
+##00   #mem_patch03
+##60   #mem_patch04	#60 enable HID
+##02   #mem_patch05	#02 enable HID
+##00   #mem_patch06
+##80   #mem_patch07	#80 enable HID
+##00   #mem_patch08
+##10   #mem_patch09	#10 enable HID
+##01   #mem_patch0A	#01 enable HID
+##00   #mem_patch0B
+##00   #mem_patch0C
+##00   #mem_patch0D
+##00   #mem_patch0E
+##00   #mem_patch0F
+##40   #mem_patch10
+##0c   #mem_patch11
+##00   #mem_patch12
+##00   #mem_patch13
+##80   #mem_patch14
+##13   #mem_patch15
+##f0   #mem_patch16
+##00   #mem_patch17
+##00   #mem_patch18
+##01   #mem_patch19	#01 enable HID
+##00   #mem_patch1A
+##00   #mem_patch1B
+##00   #mem_patch1C
+##00   #mem_patch1D
+##00   #mem_patch1E
+##00   #mem_patch1F
+##20   #mem_patch20
+##00   #mem_patch21
+##40   #mem_patch22
+##08   #mem_patch23
+##08   #mem_patch24
+##80   #mem_patch25
+##0e   #mem_patch26
+##d0   #mem_patch27
+##04   #mem_patch28
+##20   #mem_patch29
+##60   #mem_patch2A	#60 enable HID
+##41   #mem_patch2B	#41 enable HID
+##00   #mem_patch2C
+##00   #mem_patch2D
+##00   #mem_patch2E
+##00   #mem_patch2F
+##00   #mem_patch30
+##00   #mem_patch31
+##20   #mem_patch32
+##00   #mem_patch33
+##00   #mem_patch34
+##40   #mem_patch35	#40 enable HID
+##00   #mem_patch36
+##00   #mem_patch37
+##00   #mem_patch38
+##01   #mem_patch39	#01 enable HID
+##00   #mem_patch3A
+##00   #mem_patch3B
+##00   #mem_patch3C
+##00   #mem_patch3D
+##88   #mem_patch3E
+##03   #mem_patch3F
+
+mem_lpm_config:8f 1b ce
+mem_lpm_buckcnt:0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 04
+mem_rx_window_sniff:00 08
+mem_le_rx_window_inc:00 40
+
+mem_lmp_version: 09 59 00 B0 00    #04 0a 00 e9 12
+
+mem_eeprom_base:80 3f
+mem_eeprom_block_size:20
+
+mem_context_number:01
+
+mem_rf_init_data_new:
+# tx power
+55 d0
+56 c0
+57 4c
+58 3c
+59 50
+ff
+mem_rf_init_ptr:mem_rf_init_data_new
+
+#mem_class: 80 25 00
+#mem_lap:ab ab 66 63 5d 6c
+#mem_local_name_length:
+#'bt mouse
+#mem_sniff_param_interval:0c 00
+#mem_sniff_param_attempt:01
+#mem_sniff_param_timeout:01
+#mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+#mem_sp_iocap_local:03 00 04
+mem_ui_profile_supported:01
+
+#mem_eir_enable:01
+
+#mem_all_uuid_16bits:
+#06
+#03#Type: Complete list of 16-bit UUIDs
+#1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#mouse uuid
+#mem_device_uuid_list:
+#04 0011 0100 1002 1124
+#00 01 00 00
+#36 01 61
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#09
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#24
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#11
+#35
+#03
+#19
+#00
+#11
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#06
+#35
+#09
+#09
+#65
+#6e
+#09
+#00
+#6a
+#09
+#01
+#00
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#11
+#24
+#09
+#01
+#00
+#09
+#00
+#0d
+#35
+#0f
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#13
+#35
+#03
+#19
+#00
+#11
+#09
+#01
+#00
+#25
+#16
+#59 69 43 68 69 70#YiChip
+#20 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65
+#09
+#01
+#01
+#25
+#05
+#4d
+#6f
+#75
+#73
+#65
+#09
+#01
+#02
+#25
+#06
+#59 69 43 68 69 70#YiChip
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#01
+#11
+#09
+#02
+#02
+#08
+#80
+#09
+#02
+#03
+#08
+#21
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#28
+#01
+#09
+#02
+#06
+#35
+#81
+#35
+#7f
+#08
+#22
+#25
+#7b
+#05
+#01
+#09
+#02
+#a1
+#01
+#85
+#02
+#09
+#01
+#a1
+#00
+#05
+#09
+#19
+#01
+#29
+#08
+#15
+#00
+#25
+#01
+#75
+#01
+#95
+#08
+#81
+#02
+#05
+#01
+#09
+#30
+#09
+#31
+#16
+#01
+#f8
+#26
+#ff
+#07
+#75
+#10
+#95
+#02
+#81
+#06
+#09
+#38
+#15
+#81
+#25
+#7f
+#75
+#08
+#95
+#01
+#81
+#06
+#05
+#0c
+#0a
+#38
+#02
+#75
+#08
+#95
+#01
+#81
+#06
+#c0
+#c0
+#05
+#0c
+#09
+#01
+#a1
+#01
+#85
+#03
+#75
+#10
+#95
+#02
+#15
+#01
+#26
+#8c
+#02
+#19
+#01
+#2a
+#8c
+#02
+#81
+#60
+#c0
+#06
+#00
+#ff
+#09
+#01
+#a1
+#01
+#85
+#10
+#75
+#08
+#95
+#06
+#15
+#00
+#26
+#ff
+#00
+#09
+#01
+#81
+#00
+#09
+#01
+#91
+#00
+#c0
+#09
+#02
+#07
+#35
+#08
+#35
+#06
+#09
+#04
+#09
+#09
+#01
+#00
+#09
+#02
+#08
+#28
+#00
+#09
+#02
+#09
+#28
+#01
+#09
+#02
+#0a
+#28
+#01
+#09
+#02
+#0b
+#09
+#01
+#00
+#09
+#02
+#0c
+#09
+#0c
+#80
+#09
+#02
+#0d
+#28
+#00
+#09
+#02
+#0e
+#28
+#01
+#
+#04 1002 1200 0100 0001
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09 02 00#SpecificationID
+#09 01 03#DeviceID Spec Version:1.3
+#
+#09 02 01# VendorID
+#09 0a 5c#Unknown See http://www.bluetooth.org/assigned-number.htm
+#
+#09 02 02#ProductID
+#09 00 01#0x0001
+#
+#09 02 03#Version
+#09 01 29#Product Version:1.2.9
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#00
+#00
+#
+#01 00 01
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#05
+#ac
+#09
+#02
+#02
+#09
+#02
+#39
+#09
+#02
+#03
+#09
+#00
+#44
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#
+#03 1101 0003 0100 
+#00 01 00 02
+#36 00 2f
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#02
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#01
+#09
+#00
+#04
+#35
+#0c
+#35
+#03
+#19
+#01
+#00
+#35
+#05
+#19
+#00
+#03
+#08
+#01
+#09
+#01
+#00
+#25
+#09
+#53
+#50
+#50
+#20
+#73
+
+#mem_ui_uuid_table:mem_device_uuid_list
+#Auto reconnection after power on
+mem_device_option:42
+#mem_ptt:0
+#mem_features:
+#ff
+#ff
+#8f
+#f8	#fe--EDR  F8--BR
+#9b	#AFHclose 83
+#9d
+#51
+#82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+#2=mouse 4=dongle 6=ukey 7=ir
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:08
+mem_lpm_interval:00 00
+mem_scan_mode:00
+mem_ipc_tx_evt_buff:02 01
+
+mem_adc_config_flag:04
+mem_adc_channel:30
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+
+
+mem_le_adv_own_addr_type:00
+mem_le_adv_channel_map:07 
+mem_le_adv_filter_policy:00
+mem_le_transmit_window:50
+mem_le_notify_handle:1a
+mem_le_lap:ab b9 12 0e 10 26			#bluetooth MAC address
+mem_le_name_len:			#bluetooth name
+'BLE Mouse
+
+mem_le_local_mtu:17
+mem_le_adv_type:00
+mem_le_adv_direct_addr_type:01
+mem_le_adv_direct_addr:00 00 00 00 00 00
+mem_le_adv_enable:00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#appearance
+03 19 c2 03
+
+#uuid
+03 03 12 18
+
+#flag 
+02 01 05
+
+#name
+'\09BLE Mouse
+
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BLE Mouse
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_device_le_att_list:
+
+#Primary service GAP ------
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 0a
+03 00 02 00 2a
+'BLE Mouse
+
+#Appearance
+04 00 02 03 28 01 02
+05 00 02 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 02 00 28 02 01 18
+#Service changed
+09 00 02 03 28 01 20
+0a 00 02 05 2a 00
+#Client Characteristic Configuration
+0b 00 02 02 29 02 00 00
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#Manufacturer Name
+0d 00 02 03 28 01 02
+0e 00 02 29 2a 06 59 69 43 68 69 70
+#PNP id
+0f 00 02 03 28 01 02
+10 00 02 50 2a 07 02 35 12 22 aa 01 00
+#Primary service battery ------
+11 00 02 00 28 02 0f 18
+#Battery level
+12 00 02 03 28 01 02
+13 00 02 19 2a 01 33
+#Client Characteristic
+14 00 02 02 29 02 00 00
+
+#Primary service hid ------
+15 00 02 00 28 02 12 18
+
+#Protocol mode
+16 00 02 03 28 01 06
+17 00 02 4e 2a 01 01
+
+#Hid report
+18 00 02 03 28 01 1a
+19 00 02 4d 2a 07 00 00 00 00 00 00 00
+
+#Client Characteristic
+1a 00 02 02 29 02 00 00
+
+#Report reference
+1b 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Report map
+1c 00 02 03 28 01 0a
+1d 00 02 4b 2a 45 # length 72 bytes
+
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0).
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 f8 # Logical Minimum(-2047)
+26 ff 07 # Logical Maximum(2047)
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+05 0c # Usage Page(Consumer)
+0a 38 02 # Usage(AC Pan)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+c0 # End Collection
+c0 # End Collection
+
+#Boot mouse input report
+1e 00 02 03 28 01 1a
+1f 00 02 33 2a 08 00 00 00 00 00 00 00 00
+
+#Client Characteristic
+20 00 02 02 29 02 01 00
+
+#Hid information
+21 00 02 03 28 01 02
+22 00 02 4a 2a 04 01 01 00 03
+
+#Hid control point
+23 00 02 03 28 01 04
+24 00 02 4c 2a 00
+
+25 00 02 03 28 01 12 
+26 00 02 4d 2a 07 00 00 00 00 00 00 00 
+27 00 02 02 29 02 00 00
+28 00 02 08 29 02 11 01
+29 00 02 03 28 01 0e 
+2a 00 02 4d 2a 07 00 00 00 00 00 00 00
+2b 00 02 08 29 02 11 02
+
+#End of Attribute list
+00 00
+
+mem_ui_le_uuid_table:mem_device_le_att_list
+
+mem_le_rx_winsows:50
+
+mem_le_interal_min:
+07 00 #min interval
+07 00 #max interval
+05 00 #latency
+2c 01 #timeout
+
+mem_empty_count_user:00
+#mem_le_att_report1:13 00
+mem_le_att_report2:19 00
+mem_le_pairing_handle:22 00
+mem_le_pairing_mode:01
+mem_le_flag:01
+
+mem_tx_power:02#3dbm
+
+mem_le_start_fast_conn_count:01
+mem_le_init_eeprom_base_count:01
+
+#24g init
+mem_new_24g_mode:01#tx
+mem_new_24g_data_type:01	#mouse 1,kb 2
+mem_new_24g_max_retry:04#max tx retry
+mem_new_24g_no_ack:00#with ack
+mem_new_24g_rx_window:c0 12	#400us
+mem_new_24g_interval:19
+mem_new_24g_interval_min:19
+mem_new_24g_interval_max:1c
+mem_new_24g_ch_map1:00 13 2c 42
+mem_new_24g_ch_map2:06 15 36 48
+mem_new_24g_ch_map3:0f 1a 3a 4c
+mem_new_24g_ch_map4:11 23 31 4d
+mem_new_24g_pairing_sm:ff
+mem_new_24g_paring_addr:20 15 10 05
+mem_new_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_new_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 min
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/user.dat
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/user.dat	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/patch/user.dat	(working copy)
@@ -0,0 +1,820 @@
+
+#mem_class: 80 25 00
+#mem_lap:ab ab 66 63 5d 6c
+#mem_local_name_length:
+#'bt mouse
+#mem_sniff_param_interval:0c 00
+#mem_sniff_param_attempt:01
+#mem_sniff_param_timeout:01
+#mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+#mem_sp_iocap_local:03 00 04
+mem_ui_profile_supported:01
+
+#mem_eir_enable:01
+
+#mem_all_uuid_16bits:
+#06
+#03#Type: Complete list of 16-bit UUIDs
+#1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#mouse uuid
+#mem_device_uuid_list:
+#04 0011 0100 1002 1124
+#00 01 00 00
+#36 01 61
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#09
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#24
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#11
+#35
+#03
+#19
+#00
+#11
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#06
+#35
+#09
+#09
+#65
+#6e
+#09
+#00
+#6a
+#09
+#01
+#00
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#11
+#24
+#09
+#01
+#00
+#09
+#00
+#0d
+#35
+#0f
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#13
+#35
+#03
+#19
+#00
+#11
+#09
+#01
+#00
+#25
+#16
+#59 69 43 68 69 70#YiChip
+#20 42 6c 75 65 74 6f 6f 74 68 20 4d 6f 75 73 65
+#09
+#01
+#01
+#25
+#05
+#4d
+#6f
+#75
+#73
+#65
+#09
+#01
+#02
+#25
+#06
+#59 69 43 68 69 70#YiChip
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#01
+#11
+#09
+#02
+#02
+#08
+#80
+#09
+#02
+#03
+#08
+#21
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#28
+#01
+#09
+#02
+#06
+#35
+#81
+#35
+#7f
+#08
+#22
+#25
+#7b
+#05
+#01
+#09
+#02
+#a1
+#01
+#85
+#02
+#09
+#01
+#a1
+#00
+#05
+#09
+#19
+#01
+#29
+#08
+#15
+#00
+#25
+#01
+#75
+#01
+#95
+#08
+#81
+#02
+#05
+#01
+#09
+#30
+#09
+#31
+#16
+#01
+#f8
+#26
+#ff
+#07
+#75
+#10
+#95
+#02
+#81
+#06
+#09
+#38
+#15
+#81
+#25
+#7f
+#75
+#08
+#95
+#01
+#81
+#06
+#05
+#0c
+#0a
+#38
+#02
+#75
+#08
+#95
+#01
+#81
+#06
+#c0
+#c0
+#05
+#0c
+#09
+#01
+#a1
+#01
+#85
+#03
+#75
+#10
+#95
+#02
+#15
+#01
+#26
+#8c
+#02
+#19
+#01
+#2a
+#8c
+#02
+#81
+#60
+#c0
+#06
+#00
+#ff
+#09
+#01
+#a1
+#01
+#85
+#10
+#75
+#08
+#95
+#06
+#15
+#00
+#26
+#ff
+#00
+#09
+#01
+#81
+#00
+#09
+#01
+#91
+#00
+#c0
+#09
+#02
+#07
+#35
+#08
+#35
+#06
+#09
+#04
+#09
+#09
+#01
+#00
+#09
+#02
+#08
+#28
+#00
+#09
+#02
+#09
+#28
+#01
+#09
+#02
+#0a
+#28
+#01
+#09
+#02
+#0b
+#09
+#01
+#00
+#09
+#02
+#0c
+#09
+#0c
+#80
+#09
+#02
+#0d
+#28
+#00
+#09
+#02
+#0e
+#28
+#01
+#
+#04 1002 1200 0100 0001
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09 02 00#SpecificationID
+#09 01 03#DeviceID Spec Version:1.3
+#
+#09 02 01# VendorID
+#09 0a 5c#Unknown See http://www.bluetooth.org/assigned-number.htm
+#
+#09 02 02#ProductID
+#09 00 01#0x0001
+#
+#09 02 03#Version
+#09 01 29#Product Version:1.2.9
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#00
+#00
+#
+#01 00 01
+#00 01 00 01
+#36 00 5a
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#01
+#09
+#00
+#01
+#35
+#03
+#19
+#12
+#00
+#09
+#00
+#04
+#35
+#0d
+#35
+#06
+#19
+#01
+#00
+#09
+#00
+#01
+#35
+#03
+#19
+#00
+#01
+#09
+#00
+#05
+#35
+#03
+#19
+#10
+#02
+#09
+#00
+#09
+#35
+#08
+#35
+#06
+#19
+#12
+#00
+#09
+#01
+#00
+#09
+#02
+#00
+#09
+#01
+#00
+#09
+#02
+#01
+#09
+#05
+#ac
+#09
+#02
+#02
+#09
+#02
+#39
+#09
+#02
+#03
+#09
+#00
+#44
+#09
+#02
+#04
+#28
+#01
+#09
+#02
+#05
+#09
+#00
+#02
+#
+#03 1101 0003 0100 
+#00 01 00 02
+#36 00 2f
+#09
+#00
+#00
+#0a
+#00
+#01
+#00
+#02
+#09
+#00
+#01
+#35
+#03
+#19
+#11
+#01
+#09
+#00
+#04
+#35
+#0c
+#35
+#03
+#19
+#01
+#00
+#35
+#05
+#19
+#00
+#03
+#08
+#01
+#09
+#01
+#00
+#25
+#09
+#53
+#50
+#50
+#20
+#73
+
+#mem_ui_uuid_table:mem_device_uuid_list
+#Auto reconnection after power on
+mem_device_option:42
+#mem_ptt:0
+#mem_features:
+#ff
+#ff
+#8f
+#f8	#fe--EDR  F8--BR
+#9b	#AFHclose 83
+#9d
+#51
+#82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+#2=mouse 4=dongle 6=ukey 7=ir
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:08
+mem_lpm_interval:00 00
+mem_scan_mode:00
+mem_ipc_tx_evt_buff:02 01
+
+mem_adc_config_flag:04
+mem_adc_channel:30
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+
+
+mem_le_adv_own_addr_type:00
+mem_le_adv_channel_map:07 
+mem_le_adv_filter_policy:00
+mem_le_transmit_window:50
+mem_le_notify_handle:1a
+mem_le_lap:ab b9 12 0e 10 26			#bluetooth MAC address
+mem_le_name_len:			#bluetooth name
+'BLE Mouse
+
+mem_le_local_mtu:17
+mem_le_adv_type:00
+mem_le_adv_direct_addr_type:01
+mem_le_adv_direct_addr:00 00 00 00 00 00
+mem_le_adv_enable:00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#appearance
+03 19 c2 03
+
+#uuid
+03 03 12 18
+
+#flag 
+02 01 05
+
+#name
+'\09BLE Mouse
+
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BLE Mouse
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_device_le_att_list:
+
+#Primary service GAP ------
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 0a
+03 00 02 00 2a
+'BLE Mouse
+
+#Appearance
+04 00 02 03 28 01 02
+05 00 02 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 02 00 28 02 01 18
+#Service changed
+09 00 02 03 28 01 20
+0a 00 02 05 2a 00
+#Client Characteristic Configuration
+0b 00 02 02 29 02 00 00
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#Manufacturer Name
+0d 00 02 03 28 01 02
+0e 00 02 29 2a 06 59 69 43 68 69 70
+#PNP id
+0f 00 02 03 28 01 02
+10 00 02 50 2a 07 02 35 12 22 aa 01 00
+#Primary service battery ------
+11 00 02 00 28 02 0f 18
+#Battery level
+12 00 02 03 28 01 02
+13 00 02 19 2a 01 33
+#Client Characteristic
+14 00 02 02 29 02 00 00
+
+#Primary service hid ------
+15 00 02 00 28 02 12 18
+
+#Protocol mode
+16 00 02 03 28 01 06
+17 00 02 4e 2a 01 01
+
+#Hid report
+18 00 02 03 28 01 1a
+19 00 02 4d 2a 07 00 00 00 00 00 00 00
+
+#Client Characteristic
+1a 00 02 02 29 02 00 00
+
+#Report reference
+1b 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Report map
+1c 00 02 03 28 01 0a
+1d 00 02 4b 2a 45 # length 72 bytes
+
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0).
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 f8 # Logical Minimum(-2047)
+26 ff 07 # Logical Maximum(2047)
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+05 0c # Usage Page(Consumer)
+0a 38 02 # Usage(AC Pan)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+c0 # End Collection
+c0 # End Collection
+
+#Boot mouse input report
+1e 00 02 03 28 01 1a
+1f 00 02 33 2a 08 00 00 00 00 00 00 00 00
+
+#Client Characteristic
+20 00 02 02 29 02 01 00
+
+#Hid information
+21 00 02 03 28 01 02
+22 00 02 4a 2a 04 01 01 00 03
+
+#Hid control point
+23 00 02 03 28 01 04
+24 00 02 4c 2a 00
+
+25 00 02 03 28 01 12 
+26 00 02 4d 2a 07 00 00 00 00 00 00 00 
+27 00 02 02 29 02 00 00
+28 00 02 08 29 02 11 01
+29 00 02 03 28 01 0e 
+2a 00 02 4d 2a 07 00 00 00 00 00 00 00
+2b 00 02 08 29 02 11 02
+
+#End of Attribute list
+00 00
+
+mem_ui_le_uuid_table:mem_device_le_att_list
+
+mem_le_rx_winsows:50
+
+mem_le_interal_min:
+07 00 #min interval
+07 00 #max interval
+05 00 #latency
+2c 01 #timeout
+
+mem_empty_count_user:00
+#mem_le_att_report1:13 00
+mem_le_att_report2:19 00
+mem_le_pairing_handle:22 00
+mem_le_pairing_mode:01
+mem_le_flag:01
+
+mem_tx_power:02#3dbm
+
+mem_le_start_fast_conn_count:01
+mem_le_init_eeprom_base_count:01
+
+#24g init
+mem_new_24g_mode:01#tx
+mem_new_24g_data_type:01	#mouse 1,kb 2
+mem_new_24g_max_retry:04#max tx retry
+mem_new_24g_no_ack:00#with ack
+mem_new_24g_rx_window:c0 12	#400us
+mem_new_24g_interval:19
+mem_new_24g_interval_min:19
+mem_new_24g_interval_max:1c
+mem_new_24g_ch_map1:00 13 2c 42
+mem_new_24g_ch_map2:06 15 36 48
+mem_new_24g_ch_map3:0f 1a 3a 4c
+mem_new_24g_ch_map4:11 23 31 4d
+mem_new_24g_pairing_sm:ff
+mem_new_24g_paring_addr:20 15 10 05
+mem_new_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_new_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 min
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ram.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ram.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/ram.c	(working copy)
@@ -0,0 +1,10 @@
+
+extern void YC_SysMain(void);
+
+
+void main()
+{
+	YC_SysMain();
+	//while(1){
+	//}
+}
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sensor.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sensor.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sensor.h	(working copy)
@@ -0,0 +1,44 @@
+#ifndef _YC_SENSOR_H_
+#define _YC_SENSOR_H_
+
+#define FCT3065_ID						0x31
+#define PIXART_ID						0x30		// PAW3205,PAW3212
+#define PAW3205_ID						0xD0
+#define PAW3212_ID						0x02
+#define PAW3204UL_ID					0xD1
+#define PAW3204DB_ID					0x50
+#define X816_ID							0x54
+#define SENSOR_POWER					0x06
+#define MA8650_ID						0x5a
+
+#define SENSOR_POWER					0x06
+#define PAW3212_DPI0					21
+#define PAW3212_DPI1					32
+#define PAW3212_DPI2					42
+#define PAW3212_DPI3					63
+
+#define SENSOR_X_ADDR					0x03
+#define SENSOR_Y_ADDR					0x04
+#define SENSOR_XY_H						0x12
+#define SENSOR_POWER					0x06
+#define SENSOR_MOTION					0x02
+
+#define MOUSE_3205_ENABLE            	1//0 disable bt
+#define MOUSE_3204_ENABLE            	1//0 disable bt
+#define MOUSE_3212_ENABLE            	1//0 disable bt
+#define MOUSE_8650_ENABLE            	1//0 disable bt
+//extern s16_t X_data,Y_data;
+
+void Sensor_spi_disable(void);
+void SPI_TwReset (void);
+u8_t SPI_ResetSensor (void);
+void sensorPowerDown (void);
+void sensorPowerOn (void);
+//void Sensor_LED_DC_ON (void);
+//void Sensor_LED_DC_OFF (void);
+void Drawing_optima(void);
+void Drawing_optima_init(void);
+//void mouseTimer4ms_start(void);
+
+#endif
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sensor.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sensor.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sensor.c	(working copy)
@@ -0,0 +1,299 @@
+#include "common.h"
+#include "Spi.h"
+#include"Gpio.h"
+#include "global_variable.h"
+
+#define FCT3065_ID						0x31
+#define PIXART_ID						0x30		// PAW3205,PAW3212
+#define PAW3205_ID						0xD0
+#define PAW3212_ID						0x02
+#define PAW3204UL_ID					0xD1
+#define PAW3204DB_ID					0x50
+#define X816_ID							0x54
+#define SENSOR_POWER					0x06
+#define MA8650_ID						0x5a
+
+#define SENSOR_POWER					0x06
+#define PAW3212_DPI0					21
+#define PAW3212_DPI1					32
+#define PAW3212_DPI2					42
+#define PAW3212_DPI3					63
+
+#define OSC_FREQ        24
+#define TIMER_MODE0     0x00
+#define TIMER_MODE1     0x01
+#define TIMER_MODE2     0x02
+#define TIMER_MODE3     0x03
+#define GPIO_ACTIVE 0
+#define GPIO_NEGATIVE 1
+
+#define MOUSE_3205_ENABLE            	1//0 disable bt
+#define MOUSE_3204_ENABLE            	1//0 disable bt
+#define MOUSE_3212_ENABLE            	1//0 disable bt
+#define MOUSE_8650_ENABLE            	1//0 disable b
+
+//static s16_t X_sum, Y_sum, X_pre, Y_pre;
+//static bool asm_flag;
+//s16_t X_data,Y_data;
+/*
+void mouseTimer4ms_start(void)
+{    
+	TMOD &= 0xF0;	
+	TMOD |= TIMER_MODE1;        //    TH0=(65536-1085)/256; //    TL0=(65536-1085)%256;    
+	TH0=0x47;
+	TL0=0x00; 
+	IE = 0;
+	EA=1;        
+	ET0=1;       
+	TR0=1;  
+	X_sum = 0;
+	Y_sum = 0;
+ 	X_pre = 0;
+ 	Y_pre = 0;
+	asm_flag = 0;
+	X_data = 0;
+	Y_data = 0;
+	mouseTimer4ms();
+}
+
+void T0_time() interrupt 1
+{    
+	TH0=0x47;
+	TL0=0x00; 
+	mouseTimer4ms();
+}
+*/
+
+void SPI_TwReset()
+{
+	u8_t sensorId = 0;
+	REG_GPIO_SEL(1) = 1;
+	g_variable.read_sensor_count = 0;
+	while (1) 
+	{
+		g_variable.read_sensor_count++;
+		if(g_variable.read_sensor_count >= 6)
+		{
+			SPI_Initialize();
+		}
+		sensorId = SPI_ReadSensor(0) ;
+		if (( sensorId == PIXART_ID) ||(sensorId == FCT3065_ID))
+			break;
+		REG_GPIO_SEL(1) = 0;
+		REG_GPIO_OE(3) |= 0x02;
+		REG_GPIO_OUT(3) &= 0xfd;
+		REG_GPIO_OE(3) |= 0x02;
+		REG_GPIO_SEL(1) = 1;
+	} 
+}
+
+u8_t SPI_ResetSensor()
+{
+	u8_t sensorConfig=0;
+	u8_t Sensor_type = 0;
+	while (1) 
+	{
+		if (SPI_ReadSensor(0) == FCT3065_ID)// FCT3065_ID PAW3205DB_ID
+		{
+			sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+			SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+			Sensor_type= FCT3065_ID;
+			break;
+		}
+		else if((SPI_ReadSensor(1) == MA8650_ID))
+		{
+			Sensor_type= MA8650_ID;
+			sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+			SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+			break;
+		}
+		else if (SPI_ReadSensor(0) == PIXART_ID)// FCT3065_ID PAW3205DB_ID
+		{
+			if(SPI_ReadSensor(1) == X816_ID)
+			{
+				Sensor_type= FCT3065_ID;
+				break;
+			}
+#if MOUSE_3205_ENABLE
+			if ((SPI_ReadSensor(1) & 0xf0) == PAW3205_ID)// FCT3065_ID PAW3205DB_ID
+			{
+				if (SPI_ReadSensor(0x1e) & 0x01)
+					Sensor_type= PAW3204UL_ID;
+				else 
+					Sensor_type= PAW3205_ID;
+				sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+				SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+				break;
+			}
+#endif
+
+#if MOUSE_3204_ENABLE
+			if(((SPI_ReadSensor(1) & 0xf0) == PAW3204DB_ID))
+			{
+				Sensor_type= PAW3204DB_ID;
+				sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+				SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+				break;
+			}
+#endif
+			
+#if MOUSE_3212_ENABLE
+			if (SPI_ReadSensor(1) == PAW3212_ID)// FCT3065_ID PAW3205DB_ID
+			{
+				sensorConfig = SPI_ReadSensor(SENSOR_POWER)|0x80;
+				SPI_WriteSensor(sensorConfig, SENSOR_POWER);//dpi 1300
+				Sensor_type= PAW3212_ID;
+				if (SPI_ReadSensor(1) == PAW3212_ID)
+					break;
+			}
+#endif
+		}
+		SPI_TwReset();
+	}
+
+#if MOUSE_3205_ENABLE
+	if (Sensor_type== PAW3205_ID)
+	{
+		SPI_WriteSensor(0x5A,0x09);
+		SPI_WriteSensor(0x0A,0x0D);
+		SPI_WriteSensor(0x35,0x1B);
+		SPI_WriteSensor(0xDB,0x1D);
+		SPI_WriteSensor(0xB4,0x28);
+		SPI_WriteSensor(0x46,0x29);
+		SPI_WriteSensor(0x96,0x2A);
+		SPI_WriteSensor(0x8C,0x2B);
+		SPI_WriteSensor(0x6E,0x2C);
+		SPI_WriteSensor(0x64,0x2D);
+		SPI_WriteSensor(0x5F,0x38);
+		SPI_WriteSensor(0x0F,0x39);
+		SPI_WriteSensor(0x32,0x3A);
+		SPI_WriteSensor(0x47,0x3B);
+		SPI_WriteSensor(0x10,0x42);
+		SPI_WriteSensor(0x09,0x43);
+		SPI_WriteSensor(0x2E,0x54);
+		SPI_WriteSensor(0xF2,0x55);
+		SPI_WriteSensor(0xF4,0x61);
+		SPI_WriteSensor(0x70,0x63);
+		SPI_WriteSensor(0x52,0x75);
+		SPI_WriteSensor(0x41,0x76);
+		SPI_WriteSensor(0xED,0x77);
+		SPI_WriteSensor(0x23,0x78);
+		SPI_WriteSensor(0x46,0x79);
+		SPI_WriteSensor(0xE5,0x7A);
+		SPI_WriteSensor(0x48,0x7C);
+		SPI_WriteSensor(0x80,0x7D);
+		SPI_WriteSensor(0x77,0x7E);
+		SPI_WriteSensor(0x01,0x7F);
+		SPI_WriteSensor(0x00,0x0B);
+		SPI_WriteSensor(0x00,0x7F);
+		SPI_WriteSensor(0x00,0x09);
+	}
+#endif
+
+#if MOUSE_3212_ENABLE
+	if(Sensor_type== PAW3212_ID) 
+	{
+		SPI_WriteSensor(0x5a, 0x09);
+		SPI_WriteSensor(0x34, 0x26);
+		SPI_WriteSensor(0x14, 0x19);	
+		SPI_WriteSensor(0x00, 0x09);
+	}
+#endif
+
+#if MOUSE_3204_ENABLE
+	if(Sensor_type== PAW3204DB_ID)
+	{
+		SPI_WriteSensor(0x5a, 0x09);
+		SPI_WriteSensor(0x9a, 0x5b);
+		while (SPI_ReadSensor(0x0d) != 0x12)
+			SPI_WriteSensor(0x12, 0x0d);
+		while (SPI_ReadSensor(0x0e) != 0xc5)
+			SPI_WriteSensor(0xc5, 0x0e);
+		while (SPI_ReadSensor(0x53) != 0x48)
+			SPI_WriteSensor(0x48, 0x53);
+	}
+#endif
+
+	return Sensor_type;
+}
+
+void Sensor_spi_disable(void)
+{
+	REG_GPIO_SEL(1) = 0;
+	REG_GPIO_OE(3) |= 0x02;
+	REG_GPIO_OUT(3) |= 0x02;
+}
+
+void sensorPowerDown()
+{
+	u8_t config = 0;
+	SPI_TwReset();
+	config = SPI_ReadSensor(0x06) |0x08;
+	SPI_WriteSensor(config, 0x06);		//sensor Power down
+	REG_GPIO_SEL(1) = 0;
+	GPIO_SetInput(25, 0);
+	GPIO_SetInput(26, 0);
+}
+
+void sensorPowerOn()
+{
+	u8_t config = 0;
+	SPI_TwReset();
+	config = SPI_ReadSensor(0x06)&0xf7;
+	SPI_WriteSensor(config, 0x06);		//sensor Power on
+	SPI_ReadSensor(2);
+	Sensor_spi_disable();
+}
+
+/*
+void Sensor_LED_DC_ON()
+{
+	SPI_WriteSensor(0xa1, 0x05);
+}
+
+void Sensor_LED_DC_OFF()
+{
+	SPI_WriteSensor(0xb8, 0x05);
+}
+*/
+u16_t abs(s16_t data_in)
+{
+	if( data_in<=0)
+		data_in = 0 - data_in;
+	return ((u16_t) data_in);
+}
+
+
+void Drawing_optima()
+{
+	if ((g_variable.X_data > 6) ||(g_variable.X_data < -6)||(g_variable.Y_data > 6) ||(g_variable.Y_data < -6))
+		g_variable.asm_flag = 1;
+	if ((abs(g_variable.X_data) <3) &&(abs(g_variable.Y_data) <3))
+		g_variable.asm_flag = 0;
+	if(g_variable.asm_flag == 1) {
+		g_variable.X_sum = g_variable.X_sum - g_variable.X_pre + g_variable.X_data;
+		g_variable.X_pre = g_variable.X_sum/2;
+		g_variable.X_data = g_variable.X_pre;
+		g_variable.Y_sum = g_variable.Y_sum - g_variable.Y_pre + g_variable.Y_data;
+		g_variable.Y_pre = g_variable.Y_sum/2;
+		g_variable.Y_data = g_variable.Y_pre;
+	}else{
+		g_variable.X_sum = 0;
+		g_variable.Y_sum = 0;
+	 	g_variable.X_pre = 0;
+	 	g_variable.Y_pre = 0;
+ 	}
+}
+
+void Drawing_optima_init()
+{
+	g_variable.X_sum = 0;
+	g_variable.Y_sum = 0;
+ 	g_variable.X_pre = 0;
+ 	g_variable.Y_pre = 0;
+	g_variable.asm_flag = 0;
+	g_variable.X_data = 0;
+	g_variable.Y_data = 0;
+}
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/spi.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/spi.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/spi.h	(working copy)
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+
+  /** @file
+ *
+ * spi support for application
+ */
+#ifndef _SPI_H
+#define _SPI_H
+#include "common.h"
+
+#define	SPI_TBUFF		mem_spid_tbuf
+#define	SPI_RBUFF		mem_spid_rbuf
+
+/**
+ * This function SPI Initialize.
+ * 
+ * @param cb the IPC control block.
+ * 
+ * @return none.
+*/
+void SPI_Initialize(void);
+
+/**
+ * This function SPI read sensor.
+ * 
+ * @param cb the IPC control block.
+ * 
+ * @return none.
+*/
+u8_t SPI_ReadSensor(u8_t reg_num);
+
+
+/**
+ * This function SPI write sensor.
+ * 
+ * @param cb the IPC control block.
+ * 
+ * @return none.
+*/
+u8_t SPI_WriteSensor(u8_t value, u8_t reg_num);
+
+#endif/*YC_SPI_H*/
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/spi.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/spi.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/spi.c	(working copy)
@@ -0,0 +1,54 @@
+#include "spi.h"
+#include "Hwreg.h"
+
+#define	READ_SENSOR_TXLEN			0x01
+#define	READ_SENSOR_RXLEN			0X01
+
+#define	WRITE_SENSOR_TXLEN			0x02
+#define	WRITE_SENSOR_RXLEN			0X00
+
+#define	DMA_SPI_START				0X02
+
+#define SPI_RX_LEN (4)
+u8_t spi_rx_buff[SPI_RX_LEN] _at_ SPI_RBUFF;
+u8_t spi_tx_buff[SPI_RX_LEN] _at_ SPI_TBUFF;
+
+
+void SPI_Initialize()
+{
+	REG_SPID_CTRL = 0x75;
+	REG_SPID_DELAY = 10;
+	REG_SPID_TXADDR = ESWAP(SPI_TBUFF);
+	REG_SPID_RXADDR = ESWAP(SPI_RBUFF);
+	REG_GPIO_OUT(3) |= 0x02;
+}
+
+u8_t SPI_ReadSensor(u8_t reg_num)
+{
+	spi_tx_buff[0] = reg_num;
+	REG_SPID_TXLEN = ESWAP(READ_SENSOR_TXLEN);
+	REG_SPID_RXLEN = ESWAP(READ_SENSOR_TXLEN);
+	REG_MISC_CTRL = DMA_SPI_START;
+	do {
+	
+	}
+	while(!(REG_DMA_STATUS & 0x08));
+	return  *spi_rx_buff;
+}
+
+u8_t SPI_WriteSensor(u8_t value, u8_t reg_num)
+{
+	spi_tx_buff[0] = reg_num|0x80;
+	spi_tx_buff[1] = value;
+
+	REG_SPID_TXLEN = ESWAP(WRITE_SENSOR_TXLEN);
+	REG_SPID_RXLEN = ESWAP(WRITE_SENSOR_RXLEN);
+
+	REG_MISC_CTRL = DMA_SPI_START;
+	do {
+		
+	}
+	while(!(REG_DMA_STATUS & 0x08));
+	return 0;
+}
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sys.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sys.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sys.h	(working copy)
@@ -0,0 +1,84 @@
+#ifndef _YC_SYSTEM_H_
+#define _YC_SYSTEM_H_
+#include "common.h"
+
+#define TASK_NULL 							(0)
+#define TASK_OBTAIN_MOUSE_KEY				(TASK_NULL + 1)
+#define TASK_OBTAIN_MOUSE_SENSOR			(TASK_NULL + 2)
+#define TASK_OBTAIN_ADC_DATA				(TASK_NULL + 3)
+#define TASK_OBTAIN_MOUSE_TWHEEL			(TASK_NULL + 4)
+#define TASK_OBTAIN_MOUSE_VDD_COMPARE	(TASK_NULL + 5)
+#define TASK_OBTAIN_TIMER_100MS			(TASK_NULL + 6)
+#define TASK_OBTAIN_0V_ADC_BASE			(TASK_NULL + 7)
+#define TASK_OBTAIN_3V_ADC_BASE			(TASK_NULL + 8)
+#define TASK_OBTAIN_IPC_EVENT			(TASK_NULL + 9)
+
+typedef enum c51_ble_state_enum
+{
+	CHANGE_TO_BLE_DISCONNECT =0,
+	CHANGE_TO_BLE_INDIR_ADV = 1,
+	CHANGE_TO_BLE_DIRECT_ADV,
+	CHANGE_TO_BLE_CONNECTING,
+	CHANGE_TO_BLE_CONNECTED,
+}C51_BLE_STATE;
+
+typedef enum c51_br_state_enum{
+	CHANGE_TO_BR_DISCONNECT =0,
+	CHANGE_TO_BR_DISCOVERY = 1,
+	CHANGE_TO_BR_RECONNECT,
+	CHANGE_TO_BR_CONNECTING,
+	CHANGE_TO_BR_CONNECTED,
+}C51_BR_STATE;
+
+typedef enum c51_24g_state_enum{
+	CHANGE_TO_24G_DISCONNECTED =0,
+	CHANGE_TO_24G_PAIRING= 1,
+	CHANGE_TO_24G_CONNECTING,
+	CHANGE_TO_24G_CONNECTED,
+}C51_24G_STATE;
+
+typedef enum c51_ble_connecting_substate_enum
+{
+	CHANGE_TO_BLE_SUB_NONE=0,
+	CHANGE_TO_BLE_SUB_INIT,
+	CHANGE_TO_BLE_SUB_PINCODE,
+	CHANGE_TO_BLE_SUB_PINCODE_OK,
+}C51_BLE_CONNECTING_SUBSTATE;
+
+typedef enum c51_br_connecting_substate_enum
+{
+	CHANGE_TO_BR_SUB_NONE =0,
+	CHANGE_TO_BR_SUB_INIT,
+	CHANGE_TO_BR_SUB_PINCODE,
+	CHANGE_TO_BR_SUB_PINCODE_OK,
+}C51_BR_CONNECTING_SUBSTATE;
+
+typedef enum c51_24g_connecting_substate_enum
+{
+	CHANGE_TO_24G_SUB_NONE=0,
+	CHANGE_TO_24G_SUB_INIT ,
+}C51_24G_CONNECTING_SUBSTATE;
+
+typedef enum c51_user_key_action
+{
+	KEY_NONE= 0,
+	KEY_RECON_0=1,
+	KEY_RECON_1=2,
+	KEY_RECON_2=3,
+	KEY_ENTER_ADV,
+	KEY_DISCOVERY,
+	KEY_DISCONNECT_ALL,
+	KEY_CLEAR_RECORD,
+	KEY_START_24G,
+	KEY_OPEN_24G,
+	KEY_PAIRING_24G,
+	KEY_STOP_24G,
+	KEY_USB,
+	KEY_STOP_DISCOVERY,
+}C51_KEY_ACTION;
+void YC_key_action_handle(C51_KEY_ACTION key_num);
+void check_switch_button_init();
+void check_switch_button();
+void mouseMotion();
+
+#endif
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sys.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sys.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/sys.c	(working copy)
@@ -0,0 +1,1537 @@
+#include "sys.h"
+#include "Peripheral.h"
+#include "gpio.h"
+#include "spi.h"
+#include "ipc.h"
+#include "iic.h"
+#include "global_variable.h"
+#include "adc.h"
+#include "sensor.h"
+
+#define MOUSE_BT_MODE_ENABLE            0//0 disable
+#define ADC_VINLPM_ENABLE            	0//0 disable
+#define ADC_GPIO_ENABLE            		1//0 disable
+#define OTA_ENABLE						0//0 disable
+
+#define DEVICE_MODE_NONE 				0
+#define DEVICE_MODE_24G 				1
+#define DEVICE_MODE_BT 					2
+#define DEVICE_MODE_DISC 				3
+#define DEVICE_MODE_PAGE 				4
+#define DEVICE_MODE_BB					5
+#define DEVICE_MODE_PREPARE_SLEEP		6
+#define DEVICE_MODE_BLE_BB_CONNECT 		7
+#define DEVICE_MODE_BLE_ADV 			8
+#define DEVICE_MODE_BLE 				9
+#define MOUSE_ENTER_PB_TIME				25
+#define MOUSE_MODE_SW_TIME				15
+
+#if OTA_ENABLE
+#define EEPROM_SIZE						0x8000		//TOTAL LEN
+#define EEPROM_RECON_INFO_BASE			0x7f80		//6BYTE
+#else
+#define EEPROM_RECON_INFO_BASE			0x3f80		//6BYTE
+#endif
+#define EEPROM_HEAD_ADDR				0									//2BYTE
+#define EEPROM_DATA_LENGTH				42			//TOTAL LEN
+#define EEPROM_LINK_KEY					(EEPROM_RECON_INFO_BASE+6)			//16BYTE
+#define EEPROM_REMOTE_LE_ADDR			(EEPROM_LINK_KEY+16)				//6BYTE
+#define EEPROM_RECONN_LE_ADDR			(EEPROM_REMOTE_LE_ADDR+6)			//6BYTE
+#define EEPROM_24G_ADDR					(EEPROM_RECONN_LE_ADDR+6)			//6BYTE
+#define EEPROM_DPI_ADDR					(EEPROM_24G_ADDR+6) 				//1BYTE
+#define EEPROM_CONN_MODE				(EEPROM_DPI_ADDR+1)					//1BYTE
+#define EEPROM_BLE_ADDR_RANDOM_CNT		(EEPROM_CONN_MODE+1)				//2BYTE
+#define EEPROM_BLE_ADDR_RANDOM_CNT_WP	(EEPROM_BLE_ADDR_RANDOM_CNT+2)			//1BYTE
+
+#define PWR_ON_F 						((m_powerOnFlag&0x04) == 0)
+
+#define LOW_BATTERY_INTERVAL 		10
+#define SHORT_LPM_STATE_POLLING 	0
+#define SHORT_LPM_STATE_DATA 		1
+#define SHORT_LPM_STATE_NODATA 	 	2
+#define SHORT_LPM_STATE_BUTTON_WHEEL		3
+
+#define PC_REPORT_ID 		0xba
+#define CMD_USER_DEFINE		0xb0
+#define CMD_OTA				0xcf
+#define CMD_OTA_START		0xc0
+#define CMD_OTA_DATA		0xc1
+#define CMD_OTA_EXIT		0xc2
+
+
+#if OTA_ENABLE
+void wirelessCmdOtaStart()
+{
+	u8_t eeprom_addr[2] = 0;
+	m_new24gIntMax = 5;
+	m_new24gIntMin = 5;
+	m_new24gOtaEnable = 1;
+	g_variable.otaReqPacEnable = 1;
+	g_variable.otaLastAckPid = 0;
+	g_variable.otaExitCmdCount = 0;
+	g_variable.otaExitFlag = 0;
+
+	//get boot eeprom addr
+	IIC_Read(EEPROM_HEAD_ADDR,2,eeprom_addr);
+	if(eeprom_addr[0] == 0x00 && eeprom_addr[1] == 0x02)
+		g_variable.otaHeadAddr = EEPROM_SIZE;	//
+	else
+		g_variable.otaHeadAddr = 0x0000;	//
+}
+
+void wirelessCmdOtaData()
+{
+	u16_t currentAckPID;
+	g_variable.otaReqPacEnable = 1;
+	//check ack pid;
+	currentAckPID = (m_24gRxPayload[3] & 0xff) |(m_24gRxPayload[4] <<8);
+	if((ESWAP(ESWAP(currentAckPID) -ESWAP(g_variable.otaLastAckPid))&0xff) != 0x01){
+		g_variable.otaReqPacValue[0] = CMD_OTA_DATA;
+		g_variable.otaReqPacValue[1] = g_variable.otaLastAckPid & 0xff;
+		g_variable.otaReqPacValue[2] = g_variable.otaLastAckPid >> 8;
+		return;
+	}
+	g_variable.otaLastAckPid = currentAckPID;
+	g_variable.otaReqPacValue[0] = CMD_OTA_DATA;
+	g_variable.otaReqPacValue[1] = m_24gRxPayload[3];
+	g_variable.otaReqPacValue[2] = m_24gRxPayload[4];
+	//store ota data
+	if(g_variable.otaHeadAddr == 0x0000 
+		&& m_24gRxPayload[3] == 0x01 
+		&&m_24gRxPayload[4] == 0x00){
+		IIC_WriteBlock(g_variable.otaHeadAddr+2,m_24gRxPayload[5],&m_24gRxPayload[8]);
+	}
+	else	
+		IIC_WriteBlock(g_variable.otaHeadAddr,m_24gRxPayload[5],&m_24gRxPayload[6]);
+	g_variable.otaHeadAddr += m_24gRxPayload[5];
+}
+
+void wirelessCmdOtaExit()
+{
+	u32_t checkSum = 0;
+	u16_t i,eepromHead = 0;
+	u8_t eepromData = 0,eepromData1 = 0;
+	u8_t eeprom_addr[2] = 0;
+	u16_t eepromDataRAddr = 0,eepromDataWAddr = 0;
+	u8_t eepromBootAddr = 0;
+	u16_t j,k;
+		
+	if(g_variable.otaExitFlag == 1){
+		IIC_Read(EEPROM_HEAD_ADDR,2,eeprom_addr);
+		if(eeprom_addr[0] == 0x00 && eeprom_addr[1] == 0x02){
+			eepromDataRAddr = EEPROM_RECON_INFO_BASE;
+			eepromDataWAddr = EEPROM_RECON_INFO_BASE+EEPROM_SIZE;
+			eepromBootAddr = 0x80;
+		}
+		else{
+			eepromDataRAddr = EEPROM_RECON_INFO_BASE+EEPROM_SIZE;
+			eepromDataWAddr = EEPROM_RECON_INFO_BASE;
+			eepromBootAddr = 0x00;
+		}
+		for(j=0;j<EEPROM_DATA_LENGTH;j++){
+			IIC_Read((eepromDataRAddr+j),1,&eepromData1);
+			Delay1ms(10);
+			IIC_WriteBlock((eepromDataWAddr+j),1,&eepromData1);
+			Delay1ms(10);
+		}
+		IIC_WriteBlock(EEPROM_HEAD_ADDR,1,&eepromBootAddr);
+		m_new24gOtaEnable = 0;
+		g_variable.otaHeadAddr = 0;
+		g_variable.otaLastAckPid = 0;
+		g_variable.otaReqPacEnable = 0;
+		g_variable.otaExitFlag = 0;
+		g_variable.otaExitCmdCount = 0;
+		for(k=0;k<7;k++)
+			g_variable.otaReqPacValue[k] = 0;
+		REG_RST = 1;
+		return;
+	}
+
+	if(g_variable.otaExitCmdCount == 1)
+		return;
+	g_variable.otaExitCmdCount = 1;
+
+	eepromHead = g_variable.otaHeadAddr -EEPROM_SIZE;
+	for(i=0;i<EEPROM_SIZE;i++){
+		IIC_Read((eepromHead+i),1,&eepromData);
+		checkSum += eepromData;
+	}
+	IIC_Read(EEPROM_HEAD_ADDR,2,eeprom_addr);
+	if(eeprom_addr[0] == 0x80 && eeprom_addr[1] == 0x02)
+		checkSum -= 0x80;
+
+	if(((checkSum & 0xff) == m_24gRxPayload[5]) 
+		&& (((checkSum>>8) & 0xff) == m_24gRxPayload[6]) 
+		&& (((checkSum>>16) & 0xff) == m_24gRxPayload[7])){
+		g_variable.otaReqPacValue[0] = CMD_OTA_EXIT;
+		g_variable.otaReqPacValue[1] = m_24gRxPayload[3];
+		g_variable.otaReqPacValue[2] = m_24gRxPayload[4];
+		g_variable.otaReqPacValue[3] = 0x55;
+		g_variable.otaReqPacValue[4] = 0;
+		g_variable.otaExitFlag = 1;
+	}
+	else{
+		g_variable.otaReqPacValue[0] = CMD_OTA_EXIT;
+		g_variable.otaReqPacValue[1] = m_24gRxPayload[3];
+		g_variable.otaReqPacValue[2] = m_24gRxPayload[4];
+		g_variable.otaReqPacValue[3] = 0xaa;
+		g_variable.otaReqPacValue[4] = 0;
+	}
+}
+
+void wirelessConfigProcess()
+{
+	if(g_variable.currentState != DEVICE_MODE_24G || g_variable.g24DongleExist != 1){
+		return;
+	}
+	//pc user define features
+	if(m_24gRxPayload[0] != PC_REPORT_ID ||m_24gRxPayload[1] != CMD_USER_DEFINE){
+		return;
+	}
+	else{	
+		switch(m_24gRxPayload[2]){	//pc cmd
+		case CMD_OTA_START:	//0xc0
+			wirelessCmdOtaStart();
+			break;
+		case CMD_OTA_DATA:	//0xc1
+			wirelessCmdOtaData();
+			break;
+		case CMD_OTA_EXIT:	//0xc2
+			wirelessCmdOtaExit();
+			break;
+		default:
+			break;
+		}
+	}
+}
+#endif
+
+void sensorClearData()
+{
+	sensorPowerOn();
+	SPI_TwReset();
+	while(!GPIO_GetInputStatus(SENSOR_MOTION_GPIO)){
+		SPI_ReadSensor(SENSOR_MOTION);
+		SPI_ReadSensor(SENSOR_X_ADDR);
+		SPI_ReadSensor(SENSOR_Y_ADDR);
+	}
+}
+
+void dpiWriteInSensor()
+{
+	SPI_TwReset();
+#if MOUSE_3205_ENABLE
+	if((g_variable.sensorType == PAW3205_ID) ||(g_variable.sensorType == PAW3204UL_ID)) 
+	{
+		SPI_WriteSensor((g_variable.dpiCount+1), SENSOR_POWER);
+	}
+#endif
+
+	if (g_variable.sensorType == FCT3065_ID)
+	{
+		if(g_variable.dpiCount == 1)
+			SPI_WriteSensor(0, SENSOR_POWER);
+		else
+			SPI_WriteSensor(g_variable.dpiCount, SENSOR_POWER);
+	}
+	
+#if MOUSE_3204_ENABLE
+	if (g_variable.sensorType == PAW3204DB_ID)
+	{
+		SPI_WriteSensor((g_variable.dpiCount+3), SENSOR_POWER);
+	}
+#endif
+
+#if MOUSE_8650_ENABLE
+	if (g_variable.sensorType == MA8650_ID)
+	{
+		SPI_WriteSensor((g_variable.dpiCount+3), SENSOR_POWER);
+	}
+#endif
+
+#if MOUSE_3212_ENABLE	
+	if (g_variable.sensorType == PAW3212_ID) 
+	{
+		SPI_WriteSensor(0x5a,0x09);
+		switch (g_variable.dpiCount)
+		{
+			case 0:
+				SPI_WriteSensor(PAW3212_DPI0, 0x0d);
+				SPI_WriteSensor(PAW3212_DPI0, 0x0e);
+				break;
+			case 1:
+				SPI_WriteSensor(PAW3212_DPI1, 0x0d);
+				SPI_WriteSensor(PAW3212_DPI1, 0x0e);
+				break;				
+			case 2:
+				SPI_WriteSensor(PAW3212_DPI2, 0x0d);
+				SPI_WriteSensor(PAW3212_DPI2, 0x0e);
+				break;
+			case 3:
+				SPI_WriteSensor(PAW3212_DPI3, 0x0d);
+				SPI_WriteSensor(PAW3212_DPI3, 0x0e);
+				break;
+			default:
+				break;
+		}
+		SPI_WriteSensor(0x00,0x09);
+	}
+#endif
+
+	Sensor_spi_disable();
+}
+
+static u8_t mouseLKeyCheck()
+{
+	GPIO_SetOutput(Timer_div_io, 1);
+	g_variable.lKeyTemp <<=1;
+	g_variable.lKeyTemp |= !GPIO_GetInputStatus(KS_BL_GPIO);
+	if (g_variable.lKeyTemp&0x01)
+	{
+		g_variable.wheelTimer= 2;
+	}
+	do
+	{ 
+		if((g_variable.lKeyTemp & 0x07) == 0x07)
+		{
+			g_variable.lKey = 1;
+			break;
+		}
+		if((g_variable.lKeyTemp & 0x07) == 0x00)
+		{
+			g_variable.lKey = 0;
+			break;
+		}
+	}while(0);
+	return g_variable.lKey;
+}
+
+static u8_t mouseMKeyCheck()
+{
+	GPIO_SetOutput(Timer_div_io, 1);
+	g_variable.mKeyTemp <<=1;
+	g_variable.mKeyTemp |= !GPIO_GetInputStatus(KS_BM_GPIO);
+	if (g_variable.mKeyTemp&0x01) 
+	{
+		g_variable.wheelTimer= 2 ;
+	}
+	do 
+	{ 
+		if((g_variable.mKeyTemp & 0x07) == 0x07) 
+		{
+			g_variable.mKey = 1;
+			break;
+		}
+		if((g_variable.mKeyTemp & 0x07) == 0x00) 
+		{
+			g_variable.mKey = 0;
+			break;
+		}
+	}while(0);
+	return g_variable.mKey;
+}
+
+
+static u8_t mouseRKeyCheck()
+{
+	GPIO_SetOutput(Timer_div_io, 1);
+	g_variable.rKeyTemp <<=1;
+	g_variable.rKeyTemp |= !GPIO_GetInputStatus(KS_BR_GPIO);
+	if (g_variable.rKeyTemp&0x01) 
+	{
+		g_variable.wheelTimer= 2 ;
+	}
+	do 
+	{ 
+		if((g_variable.rKeyTemp & 0x07) == 0x07) 
+		{
+			g_variable.rKey = 1;
+			break;
+		}
+		if((g_variable.rKeyTemp & 0x07) == 0x00) 
+		{
+			g_variable.rKey = 0;
+			break;
+		}
+	}while(0);
+	return g_variable.rKey;
+}
+
+static u8_t mouseBkKeyCheck()
+{
+	if (!GPIO_GetInputStatus(KS_BK_GPIO)) return 0;
+	GPIO_SetOutput(Timer_div_io, 0);
+	g_variable.bkKeyTemp <<=1;
+	g_variable.bkKeyTemp |= !GPIO_GetInputStatus(KS_BK_GPIO);
+	GPIO_SetOutput(Timer_div_io,1);
+	GPIO_SetInput(Timer_div_io, 0);	
+	if (g_variable.bkKeyTemp&0x01)
+	{
+		g_variable.wheelTimer= 2 ;
+	}	
+	do 
+	{ 
+		if((g_variable.bkKeyTemp & 0x07) == 0x07)
+		{
+			g_variable.bkKey = 1;
+			break;
+		}
+		if((g_variable.bkKeyTemp & 0x07) == 0x00)
+		{
+			g_variable.bkKey = 0;
+			break;
+		}
+	}while(0);
+	return g_variable.bkKey;
+}
+
+static u8_t mouseFwKeyCheck()
+{
+	if (!GPIO_GetInputStatus(KS_FW_GPIO)) return 0;
+	GPIO_SetOutput(Timer_div_io, 0);
+	g_variable.fwKeyTemp <<=1;
+	g_variable.fwKeyTemp |= !GPIO_GetInputStatus(KS_FW_GPIO);
+	GPIO_SetOutput(Timer_div_io,1);
+	GPIO_SetInput(Timer_div_io, 0);	
+	if (g_variable.fwKeyTemp&0x01) 
+	{
+		g_variable.wheelTimer= 2 ;
+	}
+	do
+	{ 
+		if((g_variable.fwKeyTemp & 0x07) == 0x07) 
+		{
+			g_variable.fwKey = 1;
+			break;
+		}
+		if((g_variable.fwKeyTemp & 0x07) == 0x00)
+		{
+			g_variable.fwKey = 0;
+			break;
+		}
+	}while(0);
+	return g_variable.fwKey;
+}
+
+void mouseDpiKeyCheck(void)
+{
+	g_variable.dpiKeyTemp <<=1;
+	g_variable.dpiKeyTemp |= !GPIO_GetInputStatus(CPI_GPIO);
+	if (g_variable.dpiKeyTemp&0x01)	g_variable.wheelTimer= 2 ;
+	if((g_variable.dpiKeyTemp & 0xff) == 0x07)  
+	{
+		g_variable.dpiCount++;
+		g_variable.dpiCount &= 0x03;
+		if (g_variable.dpiCount == 0 ) g_variable.dpiCount = 1;
+		g_variable.dpiLedFlipTime = g_variable.dpiCount;
+		dpiWriteInSensor();
+		IIC_WriteBlock(EEPROM_DPI_ADDR, 1,&g_variable.dpiCount);
+	}
+}
+
+
+void mouse_wheel_delay_lpm(void)
+{
+	if(g_variable.currentState != DEVICE_MODE_24G)
+	{
+		g_variable.wheelTimer= 3;			//   10
+	}
+}
+
+void mouseWheelScan(void)
+{
+	u16_t result = 0;
+	u8_t tempStateA = GPIO_GetInputStatus(WHEEL_DATA_A_GPIO);
+	u8_t tempState = (tempStateA << 1)|
+		GPIO_GetInputStatus(WHEEL_DATA_B_GPIO);
+	
+	if (g_variable.wheelStateNow == tempState)
+		return;
+
+	g_variable.wheelStateLast = g_variable.wheelStateBefore;
+	g_variable.wheelStateBefore = g_variable.wheelStateNow;
+	g_variable.wheelStateNow = tempState;
+
+	result = (g_variable.wheelStateNow << 4) |(g_variable.wheelStateBefore << 2) |g_variable.wheelStateLast;
+
+	switch (result) 
+	{
+		case 0x38:
+		case 0x07:
+			g_variable.deltaZWheel --;
+			mouse_wheel_delay_lpm();
+			break;
+		case 0x34:
+		case 0x0b:
+			g_variable.deltaZWheel ++;
+			mouse_wheel_delay_lpm();
+			break;
+		default:
+			break;
+	}
+}
+
+void IPC_TxHidData(u8_t* dt, u8_t len)
+{
+	if(g_variable.currentState != DEVICE_MODE_24G
+		&&g_variable.currentState != DEVICE_MODE_BT
+		&& g_variable.currentState != DEVICE_MODE_BLE_BB_CONNECT)
+		return;
+	if(g_variable.currentState == DEVICE_MODE_24G)
+	{
+		IPC_Tx24GData(dt,len);
+	}	
+#if MOUSE_BT_MODE_ENABLE
+	else if(g_variable.currentState == DEVICE_MODE_BT)
+	{
+		IPC_TxBREDRHidData(dt,len);
+	}
+#endif
+	else if(g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+	{
+		IPC_TxBleData(dt,len);
+	}
+	else
+	{
+		while(1);
+	}
+}
+
+void mouseKeyDetect()
+{
+	u8_t buttonLeft = 0,buttonRight = 0,buttonMiddle = 0,buttonBack=0,buttonForward=0;
+	buttonLeft = mouseLKeyCheck();
+	buttonMiddle = mouseMKeyCheck();
+	buttonRight = mouseRKeyCheck();
+	buttonBack = mouseBkKeyCheck();
+	buttonForward = mouseFwKeyCheck();
+
+	mouseDpiKeyCheck();
+	g_variable.keyDetect = buttonLeft |buttonRight<<1|buttonMiddle<<2|buttonBack<<3|buttonForward<<4;
+}
+
+static bool mouseReadSensor(void)
+{
+	u8_t deltaXL=0, deltaYL=0, deltaXH=0, deltaYH=0;
+
+	if(1 == GPIO_GetInputStatus(SENSOR_MOTION_GPIO)){
+		return 0;
+	}
+	
+	SPI_TwReset();
+
+	if ((SPI_ReadSensor(2)&0x80)){
+
+		g_variable.wheelTimer= 2;
+		if(g_variable.sensorType != PAW3212_ID ){
+			deltaXL = SPI_ReadSensor(SENSOR_X_ADDR);
+			deltaYL = 0 - SPI_ReadSensor(SENSOR_Y_ADDR);
+		}
+		else {
+			deltaXL = SPI_ReadSensor(SENSOR_X_ADDR);
+			deltaYL = SPI_ReadSensor(SENSOR_Y_ADDR);
+			deltaYH = SPI_ReadSensor(SENSOR_XY_H);
+			deltaXH = deltaYH>>4;
+			deltaYH &= 0x0f;
+		}
+		Sensor_spi_disable();
+		if(g_variable.sensorType == PAW3212_ID) {
+			if (deltaXH & 0x08) deltaXH |= 0xf0;
+			else deltaXH &= 0x0f;
+			if (deltaYH& 0x08) deltaYH |= 0xf0;
+			else deltaYH &= 0x0f;
+		}
+		else {
+			if (deltaXL & 0x80) deltaXH = 0xff;
+			else deltaXH = 0;
+			if (deltaYL & 0x80) deltaYH = 0xff;
+			else deltaYH = 0;
+		}
+		
+		if (g_variable.sensorChoice == 0) {
+			g_variable.Y_data = 0 -(deltaXL | deltaXH<<8);
+			g_variable.X_data = deltaYL | deltaYH<<8;
+		}
+		else {
+			g_variable.X_data = deltaXL | deltaXH<<8;
+			g_variable.Y_data = deltaYL | deltaYH<<8;
+		}
+		g_variable.X_data = 0 -g_variable.X_data ;
+		g_variable.Y_data = 0 -g_variable.Y_data;
+
+		if(g_variable.currentState == DEVICE_MODE_24G)
+			Drawing_optima();
+		return (1);
+	}else{
+		return (0);
+	}
+}
+
+void mousePackage()
+{	
+	m_hidBuff[0] = g_variable.deltaKey;
+	m_hidBuff[1] = (u8_t)(g_variable.X_data & 0x00ff);
+	m_hidBuff[2] = (u8_t)(g_variable.X_data >>8);
+	m_hidBuff[3] = (u8_t)(g_variable.Y_data & 0x00ff);
+	m_hidBuff[4] = (u8_t)(g_variable.Y_data >>8);
+	m_hidBuff[5] = g_variable.deltaZWheel;
+	m_hidBuff[6] = 0;	//tz
+	g_variable.deltaZWheel = 0;	
+	g_variable.sleepTimer = 0;
+}
+
+static void mouseMotion()
+{
+	u8_t deltaXL=0, deltaYL=0, deltaXH=0, deltaYH=0;
+	bool sendFlag = 0;
+
+#if MOUSE_BT_MODE_ENABLE
+	if ((g_variable.currentState != DEVICE_MODE_24G)
+		&&(g_variable.currentState != DEVICE_MODE_BLE_BB_CONNECT)
+		&&(g_variable.currentState != DEVICE_MODE_BT))
+	{
+#else
+	if ((g_variable.currentState != DEVICE_MODE_24G)&&(g_variable.currentState != DEVICE_MODE_BLE_BB_CONNECT))
+	{
+#endif
+		return;
+	}
+	if ((g_variable.g24DongleExist == 0)&&(g_variable.currentState == DEVICE_MODE_24G)){
+		return;	
+	}
+
+	if (!IPC_IsTxBuffEmpty()) {
+		return;
+	}
+	
+#if OTA_ENABLE
+	//OTA
+	if(m_new24gOtaEnable == 1 
+		&& g_variable.otaReqPacEnable == 1
+		&& g_variable.currentState == DEVICE_MODE_24G)
+	{
+		g_variable.sleepTimer = 0;
+		m_hidBuff[0] = CMD_OTA;
+		m_hidBuff[1] = g_variable.otaReqPacValue[0];	//ackpayload type
+		m_hidBuff[2] = g_variable.otaReqPacValue[1];	//ackpayload low byte
+		m_hidBuff[3] = g_variable.otaReqPacValue[2];	//ackpayload high byte
+		m_hidBuff[4] = g_variable.otaReqPacValue[3];
+		m_hidBuff[5] = g_variable.otaReqPacValue[4];
+		m_hidBuff[6] = 0;
+		IPC_TxHidData(m_hidBuff,7);
+		return;
+	}
+#endif
+	
+	if(g_variable.deltaKey != g_variable.keyDetect
+		||(g_variable.wheelTimer > 0 && g_variable.wheelTimer < 3)
+		||((g_variable.currentState == DEVICE_MODE_24G) && (g_variable.keyDetect != 0)))
+	{
+		sendFlag = 1;
+		m_new24gKWEvent = 1;
+	}
+	g_variable.deltaKey = g_variable.keyDetect;
+		
+	g_variable.X_data = 0;g_variable.Y_data = 0;
+	
+#if MOUSE_BT_MODE_ENABLE
+
+	if(g_variable.currentState == DEVICE_MODE_BT)
+	{
+		sendFlag |= mouseReadSensor();
+	}
+
+#endif
+	if ( (g_variable.currentState == DEVICE_MODE_24G) ) {
+		sendFlag |= mouseReadSensor();
+	}
+	
+	if ( (g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT) && m_bleSendDataFlag == 1 ) 
+	{
+			SPI_Initialize();//spi
+			sendFlag |= mouseReadSensor();
+			if(m_51ReadSensor != m_BtReadIpcCount)
+			{
+				m_51ReadSensor ++;
+			}
+	}
+
+	if (g_variable.deltaZWheel)
+	{
+		sendFlag = 1;
+		m_new24gKWEvent = 1;
+		m_shortDataWheel = 1;
+		if(g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+		{
+			m_bleDataWheel = 1;
+			m_bleDataWheelLpmTimer = 10;
+		}
+	}
+
+	if(g_variable.buttonTimer >= (MOUSE_ENTER_PB_TIME - 2))
+	{
+		g_variable.deltaKey = 0;	
+		sendFlag = 1;
+	}
+	
+	if ((!sendFlag) ||(g_variable.buttonTimer >= (MOUSE_ENTER_PB_TIME - 1)))
+		return;
+	
+	m_btMotionEvent = 1;
+	if (g_variable.currentState == DEVICE_MODE_24G
+		||g_variable.currentState == DEVICE_MODE_BT
+		||g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+	{
+		mousePackage();
+
+		if(m_mouseFastConnFlag){
+			if((m_hidBuff[0] == 0) && (m_hidBuff[1] == 0) &&
+			(m_hidBuff[2] == 0) && (m_hidBuff[3] == 0) &&
+			(m_hidBuff[4] == 0) && (m_hidBuff[5] == 0) &&
+			(m_hidBuff[6] == 0) ){
+				if(m_FastConnSendEmptyCount < 3){
+					IPC_TxHidData(m_hidBuff,7);
+					m_FastConnSendEmptyCount = m_FastConnSendEmptyCount+1;
+				}
+				else{
+					return;
+				}
+			}
+			else{
+				IPC_TxHidData(m_hidBuff,7);
+				m_FastConnSendEmptyCount = 0;
+			}
+		}
+		else{
+			IPC_TxHidData(m_hidBuff,7);
+		}
+		
+	}
+}
+
+
+static void deviceSwitch24GMode()
+{
+	IIC_Read(EEPROM_24G_ADDR+2, 4, (u8_t *)m_24gAddr);
+	if(m_24gAddr[0] == 0xff && m_24gAddr[1] == 0xff && m_24gAddr[2] == 0xff && m_24gAddr[3] == 0xff)
+	{
+		m_24gAddr[0] = 0x0f;
+		m_24gAddr[1] = 0x0f;
+		m_24gAddr[2] = 0x0f;
+		m_24gAddr[3] = 0x0f;
+		IPC_TxControlCmd(IPC_CMD_START_24G);
+		g_variable.Factory_Pwr_on_f = 1;
+	}
+	else
+		IPC_TxControlCmd(IPC_CMD_START_24G);
+	g_variable.currentState = DEVICE_MODE_24G;
+}
+
+static void deviceStop24g()
+{
+	IPC_TxControlCmd(IPC_CMD_STOP_24G);
+	g_variable.currentState = DEVICE_MODE_NONE;
+}
+
+
+/*
+void deviceBtPairCheck(void)
+{
+	g_variable.btKeyTemp <<=1;
+	g_variable.btKeyTemp |= !GPIO_GetInputStatus(BT_BUTTON_GPIO);
+
+	if (g_variable.btKeyTemp&0x01)
+	{
+		g_variable.wheelTimer = 2;
+	}
+	if((g_variable.btKeyTemp & 0xff) == 0x07)
+	{
+		switch (g_variable.currentState) 
+		{
+			case DEVICE_MODE_BT:
+			case DEVICE_MODE_BB:
+				IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+				g_variable.nextMode = DEVICE_MODE_DISC;
+				g_variable.reconnFlag = 0;
+				break;
+			
+			case DEVICE_MODE_BLE_BB_CONNECT:
+				IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+				g_variable.nextMode = DEVICE_MODE_BLE_ADV;
+				break;
+			case DEVICE_MODE_BLE_ADV:
+				IPC_TxControlCmd(IPC_CMD_START_ADV);
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+				break;	
+			case DEVICE_MODE_24G:
+				g_variable.g24Pid++;
+				if(g_variable.g24Pid>255)
+					g_variable.g24Pid = 0;
+				m_hidBuff[0] = HID_REPORTID_MS;
+				m_hidBuff[1] = 0;
+				m_hidBuff[2] = 0;
+				m_hidBuff[3] = 0;
+				m_hidBuff[4] = 0;
+				m_hidBuff[5] = 0;
+				m_hidBuff[6] = 0;
+				m_hidBuff[7] = 0;
+				m_hidBuff[8] = g_variable.g24Pid;
+				IPC_Tx24GData(m_hidBuff,9);
+				Delay1ms(100);
+				deviceStop24g();
+				Delay1ms(10);
+				g_variable.currentState = DEVICE_MODE_DISC;
+				
+				IPC_TxControlCmd(IPC_CMD_START_ADV);
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+				break;
+			case DEVICE_MODE_PAGE:
+				g_variable.reconnFlag = 0;
+				IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);
+				g_variable.nextMode = DEVICE_MODE_DISC;
+				break;
+			case DEVICE_MODE_NONE:
+			case DEVICE_MODE_PREPARE_SLEEP:
+				g_variable.currentState = DEVICE_MODE_DISC;
+			
+				IPC_TxControlCmd(IPC_CMD_START_ADV);
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+				break;
+			default :
+				break;
+		}
+	}
+}
+*/
+
+void clearGlobalMem()
+{
+	xmemclear_0(m_hidBuff,32);
+	xmemclear_0((u8_t *)&g_variable,sizeof(G_VARIABLE_MAP));
+	g_variable.bufferEnd = 0xff;
+	g_variable.bufferSize = sizeof(g_variable);
+}
+
+static void deviceLongSleep()
+{
+	g_variable.sleepTimer = 0;
+	g_variable.wheelTimer = 0;
+	g_variable.lockLpm = 1;
+	g_variable.currentState = DEVICE_MODE_NONE;
+	IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+}
+
+static void deviceLedFlash()
+{
+	if (g_variable.dpiLedFlipTime == 0){
+		g_variable.dpiLedStay = 1;
+		g_variable.dpiLedOnTimer = 0;
+	}
+	if (g_variable.dpiLedFlipTime){
+		g_variable.dpiLedOnTimer++;
+		if((g_variable.dpiLedOnTimer&0x07) == 0x05){
+			g_variable.wheelTimer = 0x0a;
+			if(g_variable.dpiLedStay){
+				GPIO_Setout( LED_GPIO, 0);
+				g_variable.dpiLedStay = 0;
+			}
+			else{
+				GPIO_Setout( LED_GPIO , 1);
+				g_variable.dpiLedStay = 1;
+				g_variable.dpiLedFlipTime--;
+			}
+		}
+	}
+	else if (g_variable.currentState == DEVICE_MODE_DISC){
+		g_variable.wheelTimer = 0x45;
+		if((g_variable.timer100msCount&0x07) == 0x04)
+			GPIO_FlipOutBit(LED_GPIO);
+	}
+	//low battery led
+	else if ((g_variable.adcLowPowerFlag)&& ((g_variable.timer100msCount & 0x1f) < 5)){
+		g_variable.wheelTimer = 10;
+		GPIO_Setout(LED_GPIO, 0);
+		}
+	else  GPIO_Setout(LED_GPIO, 1);
+}
+
+void leReconnStart()
+{
+	g_variable.sleepTimer = 0;
+	IIC_Read(EEPROM_RECONN_LE_ADDR,6,(u8_t *)m_reconnLeAddr);
+	g_variable.currentState = DEVICE_MODE_BLE_ADV;
+	IPC_TxControlCmd(IPC_CMD_START_ADV_RECONN);
+}
+
+void leADVStart()
+{
+	IIC_Read(EEPROM_BLE_ADDR_RANDOM_CNT, 2, (u8_t *)&g_variable.leAddrRandomCnt);
+	g_variable.leAddrRandomCnt++;
+	IIC_WriteBlock(EEPROM_BLE_ADDR_RANDOM_CNT, 2, (u8_t *)&g_variable.leAddrRandomCnt);
+	m_reconnLeAddr[1] = g_variable.leAddrRandomCnt & 0xff;
+	m_reconnLeAddr[2] = g_variable.leAddrRandomCnt >> 8;
+	IPC_TxControlCmd(IPC_CMD_START_ADV);
+}
+
+void leAddrRandomCntInit()
+{	
+	u8_t leAddrE2WP = 0;
+	IIC_Read(EEPROM_BLE_ADDR_RANDOM_CNT_WP, 1, &leAddrE2WP);
+	if(leAddrE2WP == 0xff)
+	{
+		g_variable.leAddrRandomCnt = ADC_Get0vBase();
+		IIC_WriteBlock(EEPROM_BLE_ADDR_RANDOM_CNT, 2, (u8_t *)&g_variable.leAddrRandomCnt);
+		leAddrE2WP = 0x5a;
+		IIC_WriteBlock(EEPROM_BLE_ADDR_RANDOM_CNT_WP, 1, &leAddrE2WP);
+	}
+}
+
+static void deviceEvtCB(u8_t evt)
+{
+	u8_t curentMode;
+	u8_t buttonLeft = 0,buttonRight = 0,buttonMiddle = 0;
+	u8_t combkey = 0;
+	u8_t reconnLeAddr_buff[6] = 0;
+	
+	switch(evt)
+	{
+		case IPC_EVT_HIBERNATE_WAKE:
+			clearGlobalMem();
+		case IPC_EVT_RESET:
+			leAddrRandomCntInit();
+			GPIO_SetInput(SENSOR_MOTION_GPIO, 0);
+			GPIO_SetInput(SENSOR_DIRECTION_GPIO_CHOICE,0);
+			GPIO_SetInput(LOWPOWER_GPIO_CHOICE, 0);
+			GPIO_SetInput(WHEEL_DATA_A_GPIO, 0);
+			GPIO_SetInput(WHEEL_DATA_B_GPIO, 0);
+			GPIO_SetInput(KS_BL_GPIO, 0);
+			GPIO_SetInput(KS_BM_GPIO, 0);
+			GPIO_SetInput(KS_BR_GPIO, 0);
+			GPIO_SetInput(KS_BK_GPIO, 0);
+			GPIO_SetInput(KS_FW_GPIO, 0);
+			GPIO_SetInput(CPI_GPIO, 0);
+			GPIO_SetOutput(LED_GPIO,1);
+			GPIO_SetOutput(Timer_div_io, 1);
+						
+			if (!GPIO_GetInputStatus(SENSOR_DIRECTION_GPIO_CHOICE)) {
+				g_variable.sensorChoice = 0;
+			}
+			else {
+				g_variable.sensorChoice = 1;
+			}
+			
+			if (!GPIO_GetInputStatus(LOWPOWER_GPIO_CHOICE)){
+			
+#if ADC_VINLPM_ENABLE
+				(*(volatile unsigned char xdata *)mem_adc_config_flag) = 0x01;
+#endif
+			}
+			else {
+#if ADC_GPIO_ENABLE
+				(*(volatile unsigned char xdata *)mem_adc_config_flag) = 0x04;
+				(*(volatile unsigned char xdata *)mem_adc_channel) = 0x30;//gpio5 for adc
+#endif				
+			}
+			SPI_Initialize();
+			Drawing_optima_init();
+			g_variable.sensorType = SPI_ResetSensor();
+			IIC_Read(EEPROM_DPI_ADDR, 1, &g_variable.dpiCount);
+			if(g_variable.dpiCount>3) 
+				g_variable.dpiCount=0x02;
+			IIC_WriteBlock(EEPROM_DPI_ADDR, 1, &g_variable.dpiCount);
+			dpiWriteInSensor();
+			REG_GPIO_SELECT(0) = 0x00;
+			g_variable.dpiLedStay = 0;
+			g_variable.dpiLedFlipTime = 0;
+			buttonLeft = !GPIO_GetInputStatus(KS_BL_GPIO);
+			buttonMiddle = !GPIO_GetInputStatus(KS_BM_GPIO);
+			buttonRight = !GPIO_GetInputStatus(KS_BR_GPIO);
+			combkey = buttonLeft |buttonRight<<1|buttonMiddle<<2;
+			if ((combkey == 0x05)&&(evt == IPC_EVT_RESET)) 
+			{
+				IPC_TxControlCmd(IPC_CMD_PAIR_24G);
+				break;
+			}
+
+			if(m_leStartAdv == 1){
+				leReconnStart();
+				m_leStartAdv = 0;
+			}
+			else
+			//	deviceSwitch24GMode();
+				leReconnStart();
+			break;
+		case IPC_EVT_WAKEUP:
+			if(g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+			{
+				if(m_btWakeupFromLongMult == 1)
+					break;
+				if(m_btWakeupFromLongMult == 2)
+					m_btWakeupFromLongMult = 1;
+			}
+			SPI_Initialize();//spi
+			GPIO_SetOutput(Timer_div_io,1);
+			GPIO_SetInput(Timer_div_io,0);
+			Drawing_optima_init();
+			break;
+#if MOUSE_BT_MODE_ENABLE			
+		case IPC_EVT_BB_CONNECTED:
+			IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+			IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+			g_variable.currentState = DEVICE_MODE_BB;
+			if (g_variable.reconnFlag)
+			{
+				g_variable.nextMode = DEVICE_MODE_NONE;
+			}
+			else 
+			{
+				g_variable.nextMode = DEVICE_MODE_DISC;
+			}
+			break;
+	
+		case IPC_EVT_PINCODE_REQ:
+			IPC_SetPincode("0000",4);
+			IPC_TxControlCmd(IPC_CMD_SET_PIN_CODE);
+			g_variable.nextMode = DEVICE_MODE_DISC;
+			break;
+		case IPC_EVT_HID_HANDSHAKE:
+			g_variable.currentState = DEVICE_MODE_BT;
+			sensorClearData();
+			IIC_WriteBlock(EEPROM_RECON_INFO_BASE,6,(u8_t *)m_remoteAddr);
+			Delay1ms(10);
+			IIC_WriteBlock(EEPROM_CONN_MODE,1,&g_variable.currentState);
+			IPC_TxControlCmd(IPC_CMD_ENTER_SNIFF);
+			g_variable.nextMode = DEVICE_MODE_NONE;
+			g_variable.reconnFlag = 0;
+			break;
+		case IPC_EVT_LINKKEY_GENERATE:
+			IIC_WriteBlock(EEPROM_LINK_KEY,16,(u8_t *)m_linkKey);
+			break;
+		case IPC_EVT_VIRTUAL_CABLE_UNPLUG:
+		case IPC_EVT_CLEAR_LINKKEY:
+			xmemclear_ff(m_remoteAddr,6);
+			IIC_WriteBlock(EEPROM_RECON_INFO_BASE,6,(u8_t *)m_remoteAddr);
+
+		case IPC_EVT_RECONN_FAILED:
+		case IPC_EVT_RECONN_PAGE_TIMEOUT:
+		case IPC_EVT_BB_DISCONNECTED:
+			if (g_variable.nextMode == DEVICE_MODE_24G) 
+			{
+				deviceSwitch24GMode();
+				g_variable.nextMode = DEVICE_MODE_NONE;
+				break;
+			}
+			else if (g_variable.nextMode == DEVICE_MODE_DISC) 
+			{
+				g_variable.currentState = DEVICE_MODE_DISC;
+				g_variable.nextMode = DEVICE_MODE_NONE;
+				
+#if MOUSE_BT_MODE_ENABLE	
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+#endif
+				leADVStart();
+				break;
+			}
+			g_variable.currentState = DEVICE_MODE_PREPARE_SLEEP;
+			break;
+#endif			
+		case IPC_EVT_24G_PAIRING_COMPLETE:
+			g_variable.currentState = DEVICE_MODE_24G;
+			IIC_WriteBlock(EEPROM_CONN_MODE, 1,&g_variable.currentState);
+			IIC_WriteBlock(EEPROM_24G_ADDR,6,(u8_t *)m_24gRxPayload);
+			IPC_TxControlCmd( IPC_CMD_START_24G);
+			break;
+		case IPC_EVT_24G_ATTEMPT_FAIL:	
+			deviceStop24g();
+			g_variable.g24DongleExist = 0;
+			if (g_variable.Factory_Pwr_on_f)
+			{
+				g_variable.Factory_Pwr_on_f++;
+				g_variable.Factory_Pwr_on_f = (g_variable.Factory_Pwr_on_f) & 0x07;
+				if (g_variable.Factory_Pwr_on_f & 0x01)
+					IPC_TxControlCmd(IPC_CMD_START_24G);
+				else 
+					IPC_TxControlCmd(IPC_CMD_PAIR_24G);
+				break;
+			}
+#if MOUSE_BT_MODE_ENABLE			
+			IIC_Read(EEPROM_CONN_MODE, 1,&curentMode);
+			Delay1ms(10);
+			if (curentMode == DEVICE_MODE_BT) 
+			{
+				Delay1ms(10);
+				IIC_Read(EEPROM_RECON_INFO_BASE ,6 , m_reconnAddr);
+				Delay1ms(10);
+				IIC_Read(EEPROM_LINK_KEY, 16, m_linkKey);
+				if (m_reconnAddr[0]!=0) 
+				{
+					g_variable.currentState = DEVICE_MODE_PAGE;
+					IPC_TxControlCmd(IPC_CMD_RECONNECT);
+					break;
+				}
+				else 
+				{
+					IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+					break;
+				}
+			}
+			else
+			{
+				leReconnStart();
+			}
+#else
+			IIC_Read(EEPROM_RECONN_LE_ADDR, 6,reconnLeAddr_buff);
+			if((reconnLeAddr_buff[0] == 0xff) && (reconnLeAddr_buff[1] == 0xff) 
+				&& (reconnLeAddr_buff[2] == 0xff) && (reconnLeAddr_buff[3] == 0xff) 
+				&& (reconnLeAddr_buff[4] == 0xff) && (reconnLeAddr_buff[5] == 0xff)){
+				g_variable.enterHibernateFlag = 1;
+				g_variable.enterHibernateTimer = 30;	//wait bt to exit 2.4G short lpm (about 50ms)
+				break;
+			}
+			leReconnStart();
+#endif
+			break;
+		case IPC_EVT_24G_ATTEMPT_SUCCESS:
+			sensorClearData();
+			g_variable.g24DongleExist = 1;
+			g_variable.mouseFlag = 0;
+			g_variable.Factory_Pwr_on_f = 0;
+//			curentMode = DEVICE_MODE_24G;
+//			IIC_WriteBlock(EEPROM_CONN_MODE,1,&curentMode);
+			g_variable.nextMode = DEVICE_MODE_NONE;
+			break;
+
+		case IPC_EVT_LE_NOTIFY_ENABLE:
+			SPI_Initialize();//spi
+			SPI_TwReset();
+			SPI_WriteSensor(0x80,0x06);			
+			IIC_Read(EEPROM_DPI_ADDR, 1, &g_variable.dpiCount);
+			dpiWriteInSensor();
+			break;
+		case IPC_EVT_LE_CONNECTED:
+			m_51ReadSensor = 0;
+			IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+			IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+			g_variable.currentState = DEVICE_MODE_BLE_BB_CONNECT;
+			curentMode = DEVICE_MODE_BLE;
+			sensorClearData();
+			IIC_WriteBlock(EEPROM_REMOTE_LE_ADDR,6,(u8_t *)m_remoteLeAddr);
+			Delay1ms(10);
+			IIC_WriteBlock(EEPROM_RECONN_LE_ADDR,6,(u8_t *)m_reconnLeAddr);
+			Delay1ms(10);				
+			IIC_WriteBlock(EEPROM_CONN_MODE,1,&curentMode);
+			g_variable.nextMode = DEVICE_MODE_PREPARE_SLEEP;
+			g_variable.reconnFlag = 0;
+			break;
+		case IPC_EVT_LE_DISCONNECTED:	
+			if(g_variable.nextMode == DEVICE_MODE_BLE_ADV)
+			{
+#if MOUSE_BT_MODE_ENABLE	
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+#endif
+				leADVStart();
+				g_variable.currentState = DEVICE_MODE_DISC;
+			}
+			else if(g_variable.nextMode == DEVICE_MODE_PREPARE_SLEEP)
+			{
+				deviceLongSleep();
+			}
+			else 
+			{
+				leReconnStart();
+			}
+			break;
+		}
+			
+}
+
+void comboKeyPb()    // Lmr 3s enter discovery mode
+{
+	u8_t buttonLeft = 0,buttonRight = 0,buttonMiddle = 0;
+	u8_t combkey = 0;
+	u8_t currentStateTemp=0;
+	buttonLeft = !GPIO_GetInputStatus(KS_BL_GPIO);
+	buttonMiddle = !GPIO_GetInputStatus(KS_BM_GPIO);
+	buttonRight = !GPIO_GetInputStatus(KS_BR_GPIO);
+	combkey = buttonLeft |buttonRight<<1|buttonMiddle<<2;
+	if(combkey == 0x07) 
+	{
+		g_variable.enterHibernateTimer = 30;
+		g_variable.sleepTimer = 0;
+		g_variable.wheelTimer = 10;
+		if (g_variable.buttonTimer >= MOUSE_ENTER_PB_TIME)
+			return ;
+		g_variable.buttonTimer ++;
+		if (g_variable.buttonTimer == MOUSE_ENTER_PB_TIME)
+		{
+			g_variable.enterHibernateFlag = 0;
+			g_variable.enterHibernateTimer = 0;
+		
+			switch (g_variable.currentState) 
+			{
+#if MOUSE_BT_MODE_ENABLE
+				case DEVICE_MODE_BT:
+				case DEVICE_MODE_BB:
+					IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+					g_variable.nextMode = DEVICE_MODE_DISC;
+					g_variable.reconnFlag = 0;
+					break;
+#endif 
+				case DEVICE_MODE_BLE_BB_CONNECT:
+					IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+					g_variable.nextMode = DEVICE_MODE_BLE_ADV;
+					break;
+				case DEVICE_MODE_BLE_ADV:
+					g_variable.currentState = DEVICE_MODE_DISC;
+#if MOUSE_BT_MODE_ENABLE
+					IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+#endif
+					leADVStart();
+					break;	
+				case DEVICE_MODE_24G:
+					deviceStop24g();
+					Delay1ms(10);
+					g_variable.currentState = DEVICE_MODE_DISC;
+#if MOUSE_BT_MODE_ENABLE
+					IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+#endif
+					leADVStart();
+					break;
+#if MOUSE_BT_MODE_ENABLE
+				case DEVICE_MODE_PAGE:
+					g_variable.reconnFlag = 0;
+					IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);
+					g_variable.nextMode = DEVICE_MODE_DISC;
+					break;
+#endif
+				case DEVICE_MODE_NONE:
+				case DEVICE_MODE_PREPARE_SLEEP:
+					deviceStop24g();
+					g_variable.currentState = DEVICE_MODE_DISC;
+#if MOUSE_BT_MODE_ENABLE
+					IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+#endif
+					leADVStart();
+					break;
+				default :
+					break;
+			}
+		}
+	}
+	else  g_variable.buttonTimer = 0;
+}
+
+static void deviceTimer500ms()
+{
+	u8_t sleepState = 0;
+	g_variable.sleepTimer++;
+	switch (g_variable.currentState) 
+	{
+		case DEVICE_MODE_BLE_ADV:
+			 sleepState = DEVICE_MODE_BLE;
+			 if (g_variable.sleepTimer == 16)
+			 {
+		 		goto LONG_SLEEP;
+			 }
+			 break;
+		case DEVICE_MODE_DISC:
+			sleepState = DEVICE_MODE_BT;
+			if (g_variable.sleepTimer == 360)	//BT Discover time 360 = 3min
+			{
+				m_lpmMode = 1;
+				goto LONG_SLEEP;
+			}
+			break;
+		case DEVICE_MODE_BLE_BB_CONNECT:	
+			sleepState = DEVICE_MODE_BLE;
+			if (g_variable.sleepTimer == 1200)	//BT sleep time 1200 = 10min
+			{	
+				IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+				g_variable.nextMode = DEVICE_MODE_PREPARE_SLEEP;
+			}
+			break;
+#if MOUSE_BT_MODE_ENABLE
+		case DEVICE_MODE_BT:
+			sleepState = DEVICE_MODE_BT;
+			if (g_variable.sleepTimer == 1200)	//BT sleep time 1200 = 10min
+			{	
+				IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+				g_variable.nextMode = DEVICE_MODE_NONE;
+			}
+			break;
+#endif
+		case DEVICE_MODE_24G:
+			sleepState = DEVICE_MODE_24G;
+			if ((g_variable.sleepTimer > 1200) && (g_variable.g24DongleExist == 1))
+			{
+				goto LONG_SLEEP; 
+			}
+			break;
+		case DEVICE_MODE_PREPARE_SLEEP:
+			sleepState = DEVICE_MODE_BT;
+			if (!IPC_IsTxBuffEmpty())
+				return;
+			if (g_variable.sleepTimer >= 3)		//24G sleep time 600=10min
+			{
+				goto LONG_SLEEP;
+			}
+			break;
+	}
+	return;
+		
+	LONG_SLEEP:
+//		IIC_WriteBlock(EEPROM_CONN_MODE,1,&sleepState);
+		deviceLongSleep();
+}
+
+void Power_low_detect(void)
+{
+	u16_t adc_value = 0;
+	adc_value = ADC_GetCurrentValue() - ADC_Get0vBase();
+	
+#if ADC_VINLPM_ENABLE
+	if ((*(volatile unsigned char xdata *)mem_adc_config_flag)  == 1) 
+	{
+		if (adc_value < (((ADC_Get3vBase() - ADC_Get0vBase()) /30)*23)) 
+		{
+			g_variable.adcLowPowerFlag = 1;
+		}
+		else 
+		{
+			g_variable.adcLowPowerFlag = 0;
+		}
+		if (adc_value < ((ADC_Get3vBase() - ADC_Get0vBase()) /30 * 21))
+		{
+			if(m_new24gAbortPac != 1 && g_variable.currentState == DEVICE_MODE_24G)
+				return;
+			deviceLongSleep();
+		}
+	}
+#endif
+	
+#if ADC_GPIO_ENABLE
+	if ((*(volatile unsigned char xdata *)mem_adc_config_flag)  == 4) 
+	{
+		if (adc_value < (((ADC_Get3vBase() - ADC_Get0vBase()) /30)*10)) 
+			g_variable.adcLowPowerFlag = 1;
+		else g_variable.adcLowPowerFlag = 0;
+		if (adc_value < ((ADC_Get3vBase() - ADC_Get0vBase()) /30 * 9))
+		{
+			if(m_new24gAbortPac != 1 && g_variable.currentState == DEVICE_MODE_24G)
+				return;
+			deviceLongSleep();
+		}
+	}
+#endif
+}
+
+static void deviceTimer100ms()
+{
+	if (g_variable.wheelTimer!=0) 
+		g_variable.wheelTimer--;
+	g_variable.timer100msCount++;
+	if (g_variable.modeSwCount)
+		g_variable.modeSwCount ++;
+	deviceLedFlash();
+	comboKeyPb();
+	Power_low_detect();
+
+	if(g_variable.enterHibernateFlag == 1){
+		if(g_variable.enterHibernateTimer == 0){
+			g_variable.enterHibernateFlag = 0;
+			deviceLongSleep();
+		}
+		g_variable.enterHibernateTimer--;
+	}	
+}
+
+static tIPCControlBlock cb = 
+{
+	deviceEvtCB,
+	NULL,
+	deviceTimer500ms,
+	deviceTimer100ms,
+	NULL
+};
+
+static void deviceInit()
+{
+	IPC_Initialize(&cb);
+}
+
+void YC_SetWake(void)
+{
+	(*(volatile unsigned char xdata *)(mem_gpio_wakeup_low+0)) = 0;
+	(*(volatile unsigned char xdata *)(mem_gpio_wakeup_low+1)) = 0;
+	(*(volatile unsigned char xdata *)(mem_gpio_wakeup_low+2)) = 0;
+	(*(volatile unsigned char xdata *)(mem_gpio_wakeup_low+3)) = 0;
+	Sensor_spi_disable();
+	GPIO_SetOutput(Timer_div_io, 0);
+	GPIO_SetInput(KS_BL_GPIO, 0);
+	GPIO_SetInput(KS_BR_GPIO, 0);
+	GPIO_SetInput(KS_BM_GPIO, 0);
+	GPIO_SetInput(KS_BK_GPIO, 0);
+	GPIO_SetInput(KS_FW_GPIO, 0);
+	GPIO_SetInput(CPI_GPIO, 0);
+	GPIO_SetWakeupByCurrentState(WHEEL_DATA_A_GPIO);
+	GPIO_SetWakeupByCurrentState(WHEEL_DATA_B_GPIO);
+	GPIO_SetWakeupByCurrentState(KS_BL_GPIO);
+	GPIO_SetWakeupByCurrentState(KS_BM_GPIO);
+	GPIO_SetWakeupByCurrentState(KS_BR_GPIO);
+	GPIO_SetWakeupByCurrentState(KS_BK_GPIO);
+	GPIO_SetWakeupByCurrentState(KS_FW_GPIO);
+	GPIO_SetWakeupByCurrentState(CPI_GPIO);
+}
+
+
+void YC_24gShortLpmProcess(void)
+{
+	u8_t deltaXL=0, deltaYL=0, deltaXH=0, deltaYH=0;
+	u8_t send_flag = 0;
+	u8_t poll_cnt = 0;
+
+	m_sendData24gShortLpm = SHORT_LPM_STATE_POLLING;
+
+	SPI_Initialize();//spi
+	if ( g_variable.currentState == DEVICE_MODE_24G && g_variable.g24DongleExist == 1
+		&&(!GPIO_GetInputStatus(SENSOR_MOTION_GPIO))){
+		send_flag = mouseReadSensor();
+	}
+	g_variable.currentState = DEVICE_MODE_24G;
+	
+	while(1){
+		poll_cnt ++;
+		IPC_DealSingleStep();
+		if(poll_cnt > 5){
+			poll_cnt = 5;
+			m_sendData24gShortLpm = SHORT_LPM_STATE_NODATA;
+		}else{
+			mouseWheelScan();
+			mouseKeyDetect();			
+			if(SHORT_LPM_STATE_POLLING== m_sendData24gShortLpm){
+				if (g_variable.deltaZWheel)
+				{
+					send_flag = 1;
+					m_sendData24gShortLpm = SHORT_LPM_STATE_BUTTON_WHEEL;
+					m_new24gKWEvent = 1;
+					m_shortDataWheel = 1;
+				}
+				if(g_variable.deltaKey != g_variable.keyDetect)
+				{	
+					m_new24gKWEvent = 1;
+					send_flag = 1;
+					m_sendData24gShortLpm = SHORT_LPM_STATE_BUTTON_WHEEL;
+					g_variable.deltaKey = g_variable.keyDetect;
+					if (g_variable.deltaKey == 0x07) {
+					//	g_variable.deltaKey = 0;
+						send_flag = 0;
+					}
+				}
+				if(g_variable.deltaKey == 0x07)
+				{
+					//m_new24gKWEvent = 1;
+					m_sendData24gShortLpm = SHORT_LPM_STATE_BUTTON_WHEEL;
+				}
+				
+				if(1 == send_flag){
+					mousePackage();
+					send_flag = 0;
+					if(SHORT_LPM_STATE_BUTTON_WHEEL != m_sendData24gShortLpm){
+						m_sendData24gShortLpm = SHORT_LPM_STATE_DATA;
+					}
+				}
+			}
+		}
+
+#if OTA_ENABLE
+		//OTA
+		if(m_24gRxPayload[0] == PC_REPORT_ID 
+			&&m_24gRxPayload[1] == CMD_USER_DEFINE
+			&&m_24gRxPayload[2] == CMD_OTA_START){
+			wirelessCmdOtaStart();
+		}		
+#endif
+
+		if(FIX_ENTER_LPM == current_task){
+			if(g_variable.wheelTimer ||g_variable.lockLpm)
+			{
+				IPC_AbandonLpm();
+				break;
+			}
+			if (g_variable.currentState == DEVICE_MODE_24G)
+			{
+				YC_SetWake();
+				GPIO_SetWakeup(SENSOR_MOTION_GPIO,0);
+				IPC_WaitLpm();	//<wait enter lpm,do nothing
+				break;
+			}
+			else
+			{
+				IPC_AbandonLpm();
+				break;
+			}
+		}
+	}
+}
+void YC_SysMain(void)
+{		
+	u8_t i;
+	deviceInit();
+	if(1 == m_enable24gShortLpm){
+		YC_24gShortLpmProcess();
+	}
+	while(1)
+	{
+		IPC_DealSingleStep();
+		mouseWheelScan();
+		mouseKeyDetect();
+		mouseMotion();
+#if OTA_ENABLE
+		wirelessConfigProcess();
+#endif		
+		switch (current_task) 
+		{
+			case FIX_ENTER_HIBERNATE:
+				g_variable.read_sensor_count = 0;
+				sensorPowerDown();
+				for (i = 0; i < 16; i ++) {
+					REG_GPIO_OE(i) = 0x00;
+				}
+				if (GPIO_GetInputStatus(WHEEL_DATA_A_GPIO))
+					GPIO_SetInput(WHEEL_DATA_A_GPIO, 0);
+				else GPIO_SetInput(WHEEL_DATA_A_GPIO, 1);
+				if (GPIO_GetInputStatus(WHEEL_DATA_B_GPIO))
+					GPIO_SetInput(WHEEL_DATA_B_GPIO, 0);
+				else GPIO_SetInput(WHEEL_DATA_B_GPIO, 1);
+				GPIO_SetOutput(LED_GPIO, 1);
+				YC_SetWake();
+				IPC_WaitLpm();
+				while(1);
+				break;
+			case FIX_ENTER_LPM:
+				if (g_variable.wheelTimer ||g_variable.lockLpm)
+				{
+					IPC_AbandonLpm();
+					break;
+				}
+				if (g_variable.currentState == DEVICE_MODE_24G 
+					||g_variable.currentState == DEVICE_MODE_BT
+					||g_variable.currentState == DEVICE_MODE_BLE_BB_CONNECT)
+				{
+					YC_SetWake();
+					GPIO_SetWakeup(SENSOR_MOTION_GPIO,0);
+					IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+					break;
+				}
+				else
+				{
+					IPC_AbandonLpm();
+					break;
+				}
+		}
+	}
+}
+
+
+
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/type.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/type.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/type.h	(working copy)
@@ -0,0 +1,28 @@
+#ifndef _YC_DEFINE_H_
+#define _YC_DEFINE_H_
+
+#define PUBLIC 
+#define LOCAL static
+
+typedef unsigned char byte;
+typedef unsigned char xdata xbyte;
+typedef unsigned int uint;
+typedef unsigned char xdata * pxbyte;
+typedef unsigned char xdata * data pxdbyte;
+typedef unsigned   char    u8_t;
+typedef signed     char    s8_t;
+typedef unsigned   short   u16_t;
+typedef signed     short   s16_t;
+typedef unsigned   long    u32_t;
+typedef signed     long    s32_t;
+typedef unsigned char xdata xu8_t;
+typedef bit bool;
+
+#define true 1
+#define false 0
+#ifndef NULL
+#define NULL (0)
+#endif
+
+#endif
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/uart.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/uart.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/uart.h	(working copy)
@@ -0,0 +1,56 @@
+#ifndef _UART_H_
+#define _UART_H_
+#include "type.h"
+ 
+#define  UART_BAUD_115200 0x00d0
+
+///**********************<buff define**************************/
+//please do not change here
+#define UART_RX_HEAD	0x1e00		/**< yc rx buff head */
+#define UART_RX_END		0x1eff		/**< yc rx buff end */
+
+#define UART_TX_HEAD	0x1f00		  /**< yc tx buff head */
+#define UART_TX_END		0x1fff		/**< yc tx buff end */
+///**************************<end ****************************/
+#define UART_SelectGpio() REG_GPIO_SELECT(1) |= BIT(2)
+
+#define UART_Enable() \
+			REG_UART_CLK_SEL &= 0xfe,\
+			REG_CLK_OFF(1) &= ~ BIT(7)				//turn on UART's clock
+			
+#define  UART_ControlOn() \
+			REG_UART_CTRL = 0x91
+
+#define UART_ControlOff() \
+			REG_UART_CTRL = 0x81
+
+#define UART_SetRxBuff(s,e)   REG_UART_RX_ADDR_S = ESWAP((u16_t)(s)),\
+								REG_UART_RX_ADDR_E =  ESWAP((u16_t)(e))
+								
+							
+#define UART_SetTxBuff(s,e)	REG_UART_TX_ADDR_S = ESWAP((u16_t)(s)),\
+								REG_UART_TX_ADDR_E =  ESWAP((u16_t)(e))
+									
+
+#define UART_SetBaudRate(b)		REG_UART_BAUD = ESWAP((u16_t)(b))
+
+
+#define UART_ReSet()	REG_UART_TX_PTRP_R = REG_UART_TX_ADDR_S,\
+							REG_UART_TX_PTR_W = REG_UART_TX_ADDR_S,\
+								REG_UART_RX_PTR_R = REG_UART_RX_ADDR_S
+
+#define UART_OP_MAXREAD	1		
+#define UART_OP_UNRELEASE (0x02)
+
+
+void UART_Initialize(void);
+
+u8_t UART_RecvData(u8_t *   pbuff, u8_t len);
+
+u8_t  UART_SendData(const u8_t*  pbuff, u8_t len);
+
+u16_t UART_GetRxCount();
+
+u8_t UART_RecvDataWithoutRelease(u8_t *   pbuff, u8_t len);
+
+#endif
\ No newline at end of file
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/uart.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/uart.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/uart.c	(working copy)
@@ -0,0 +1,86 @@
+#include "uart.h" 
+#include "utilities.h"
+ 
+static volatile u8_t xdata uart_tx_buff[0x1ff] _at_ UART_RX_HEAD ;
+
+/*<********************** internal func**********************/
+
+static pxbyte uart_cpyout(pxbyte dest, u8_t* src, u8_t len)
+{
+	while(len--){
+		*dest++ = *src++;
+		if ((u16_t)src > UART_RX_END){
+			src = (pxbyte)UART_RX_HEAD;
+		}
+	}
+	return src;
+}
+
+static pxbyte uart_cpyin(pxbyte dest, u8_t* src, u8_t len)
+{
+	while(len--){
+		*dest++ = *src++;
+		if ((u16_t)dest > UART_TX_END){
+			dest = (pxbyte)UART_TX_HEAD;
+		}
+	}
+	return dest;
+}
+
+
+/*==============UART======================================================================*/
+void UART_Initialize()
+{
+	UART_SetRxBuff(UART_RX_HEAD,UART_RX_END);
+	UART_SetTxBuff(UART_TX_HEAD,UART_TX_END);
+	UART_SelectGpio();
+	UART_ReSet();
+	UART_SetBaudRate(UART_BAUD_115200);
+	UART_Enable();
+	UART_ControlOff();
+}
+//if len =0 ;return rev length in uart buff
+u8_t *rrptr  = uart_tx_buff;
+u8_t UART_RecvData(u8_t *   pbuff, u8_t len)
+{
+	u16_t rx_len;
+	rx_len = ESWAP(REG_UART_RX_ITEMS);
+
+	rx_len = min(len,rx_len);	
+	if (rx_len!=0){
+		rrptr = uart_cpyout(pbuff,rrptr,rx_len);
+		//yc_ice_break();
+		REG_UART_RX_PTR_R = ESWAP((short)rrptr);
+	}
+	return rx_len;
+}
+
+u8_t  UART_SendData(const u8_t*  pbuff, u8_t len)
+{
+	u8_t* twptr;
+	u8_t lenoo= len;
+	twptr = (u8_t*)ESWAP(REG_UART_TX_PTR_W);
+	twptr = uart_cpyin((u8_t*)twptr, pbuff,len);
+	REG_UART_TX_PTR_W = ESWAP((short)twptr);
+	return 0;
+}
+
+u16_t UART_GetRxCount()
+{
+	return ESWAP(REG_UART_RX_ITEMS);
+}
+
+u8_t UART_RecvDataWithoutRelease(u8_t *   pbuff, u8_t len)
+{
+	u16_t rx_len;
+	u8_t* rrp = rrptr;
+	rx_len = ESWAP(REG_UART_RX_ITEMS);
+
+	rx_len = min(len,rx_len);	
+	if (rx_len!=0){
+		rrp = uart_cpyout(pbuff,rrp,rx_len);
+	}
+	return rx_len;
+}
+
+ 
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/crc16.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/crc16.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/crc16.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/crc16.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/crc16.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/crc16.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/crc16.pl	(working copy)
@@ -0,0 +1,27 @@
+$debug = 0;
+$crc = 0xffff;
+$i = 0;
+$offset = 0xffff;
+$source_file = $ARGV[0];
+$offset = $ARGV[1];
+
+open(EEP,"$source_file") or die $!;
+
+while (<EEP>) {    
+	$c = hex();
+
+  if($i >= $offset){
+  	if($debug){printf "%02x\t", $c;}
+  	$crc  = ($crc >> 8) | ($crc << 8);
+		$crc ^= $c & 0xff;
+		$crc ^= ($crc & 0xff) >> 4;
+		$crc ^= $crc << 12;
+		$crc ^= ($crc & 0xff) << 5;
+		$crc &= 0xffff;
+  }
+  $i ++;
+  if($debug){printf "%02x\t", $crc;}
+  printf "%02x\n", $c;
+}
+
+printf "%02x\n%02x\n", (($crc >> 8) & 0xff),($crc & 0xff);
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2bin.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2bin.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2bin.pl	(working copy)
@@ -0,0 +1,15 @@
+
+$source_file = $ARGV[0];
+#$dest_file = $ARGV[1];
+
+
+open(EEP,"$source_file") or die $!;
+open(BINFILE, ">eeprom.bin") or die $!;
+binmode(BINFILE);
+while (<EEP>) {
+	printf BINFILE "%c", hex();
+}
+close(EEP);
+close(BINFILE);
+    
+   
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2fulleeprom.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2fulleeprom.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2fulleeprom.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2fulleeprom.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2fulleeprom.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/eeprom2fulleeprom.pl	(working copy)
@@ -0,0 +1,18 @@
+
+
+
+$source_file = $ARGV[0];
+$eeprom_size = $ARGV[1];
+
+open(EEP,"$source_file") or die("cannot open files");
+for ($i = 1 ;$i<=$eeprom_size*128-2;$i++)
+{
+
+    while (<EEP>) { 
+        $c = hex();
+        printf "%02x\n", $c;
+        $i++;
+    }
+
+	printf "FF\n";
+}
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/hex2mif.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/hex2mif.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/hex2mif.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/hex2mif.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/hex2mif.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/hex2mif.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/hex2mif.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/hex2mif.pl	(working copy)
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+# 2005 - David Grant.
+# Take an ihex input from STDIN, and write a .mif file to STDOUT
+# This script could probably be implemented with something like:
+#    $#!@_%^$@%$@%$_!^$@#^@%$#@_%$@^&!%$_!%!%&$*(#^#@%^) 
+# But I perfer the somewhat readable version.
+
+# Flow from within the Nios2 SDK Shell:
+# nios2-elf-as file.asm -o file.o
+# nios2-elf-objcopy file.o --target ihex file.hex
+# cat file.hex | perl hex2mif.pl > file.mif
+
+my @rom = ();
+my @ram = ();
+
+sub conv {
+	my ($in) = @_;
+	$out = substr($in,6,2).substr($in,4,2).substr($in,2,2).substr($in,0,2);
+	return hex $out;
+}
+
+sub writeromfile {
+	my (@buf) = @_;
+	my($x);
+
+	for($x=0; $x<@buf; $x++) {
+		printf ("%02x\n", $buf[$x]);
+	}
+}
+
+sub writebinfile {
+	my (@buf) = @_;
+	my($x);
+
+	for($x=0; $x<@buf; $x++) {
+		for($y=0;$y<8;$y++) {
+			printf ("%d", $buf[$x] & 1<<(7-$y) ? 1 : 0);
+		}
+		printf "\n" if(($x & 3) == 3);
+	}
+}
+
+sub writemiffile {
+	my (@buf) = @_;
+	my($x);
+	print  ("WIDTH=8;\n");
+	print ("DEPTH=".@buf.";\n");
+	print ("CONTENT BEGIN\n");
+	for($x=0; $x<@buf; $x++) {
+		printf ("\t%04x : %02x;\n", $x, $buf[$x]);
+	}
+	print ("END;\n");
+}
+
+if($ARGV[0] eq "ram" || $ARGV[0] eq "rammif")
+{
+	$org = 0x8000;
+	$limit = 0xffff;
+} elsif($ARGV[0] eq "rom" || $ARGV[0] eq "bin" || $ARGV[0] eq "mif" || $ARGV[0] eq "rommif" ) {
+	$org = 0;
+	$limit = 0x7fff;
+} else {
+	$org = 0;
+	$limit = 0xffffff;
+}
+
+
+$org = 0;
+$limit = 0x7fff;
+
+while (<STDIN>) {
+	$l = $_;
+	next if(!/\w/);
+	$count = (hex substr($l, 1, 2));
+	$addr = (hex substr($l, 3, 4));
+	$type = (hex substr($l, 7, 2));
+	last if $type eq 1;
+	if($type == 4) {
+		$org = -(hex substr($l, 9, 4))*0x10000;
+	}
+	if($addr >= $org && $addr <= $limit) 
+	{
+		$addr*=4 if($ARGV[0] eq "bin");
+		$addr -= $org;
+		for($x=0; $x<$count; $x++) {
+			$rom[$addr + $x] = (hex substr($l, 9+2*$x, 2)) ; 
+		}
+	}
+}
+
+if($ARGV[0] eq "rom" || $ARGV[0] eq "ram" || $ARGV[0] eq "mem")
+{
+	writeromfile(@rom);
+}
+elsif($ARGV[0] eq "bin")
+{
+	writebinfile(@rom);
+}
+else
+{
+	writemiffile(@rom);
+}
+
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/transform_name2addr.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/transform_name2addr.exe
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/transform_name2addr.exe	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/transform_name2addr.exe	(working copy)

Property changes on: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/transform_name2addr.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/transform_name2addr.pl
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/transform_name2addr.pl	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/util/transform_name2addr.pl	(working copy)
@@ -0,0 +1,103 @@
+$Sched_path=$ARGV[0];
+$Sched_test_path=$ARGV[1];
+$Memmap_path=$ARGV[2];
+open(Sched,$Sched_path)||die("Cannot open files\n");
+@sched=<Sched>;
+close(Sched);
+open(Sched_test,">$Sched_test_path");
+print Sched_test ("");
+close(Sched_test);
+open(Sched_test,">$Sched_test_path");
+open(Memmap,$Memmap_path)||die("Cannot open files\n");
+@memmap=<Memmap>;
+close(Memmap);
+$type_add=0;
+$type_exchange=0;
+foreach $sched(@sched)
+{
+	$sched_begin = $sched;
+	@Sched = split(/[#]+/, $sched);
+	$sched = @Sched[0];
+	@Sched[0] = "";
+	if($sched =~ /mem[\w]+/)
+	{
+		@memmap_name = split(/[\W]+/, $sched);
+		foreach $memmap_name(@memmap_name)
+		{
+			if($memmap_name =~ /mem[\w]+/)
+			{
+				$Memmap_name=$memmap_name;
+				$type_add = 0;
+				$type_exchange = 0;
+				if($sched =~ /$Memmap_name[+]/)
+				{
+					$type_add = 1;#ÐÞ¸ÄµÄÀàÐÍµÚÒ»ÖÖ£¬¼Ó
+					@ADD_Num=split(/[^0-9\+xa-fA-F]/,$sched);
+					foreach $ADD_Num(@ADD_Num)
+					{
+						if($ADD_Num =~ /\+/)
+						{
+							if($ADD_Num =~ /0x/)
+							{
+								@add_num = split(/\+0x/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = "0x".$add_num1;
+								$add_num = hex($add_num1);
+							}
+							else
+							{
+								@add_num = split(/\+/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = $add_num1;
+								$add_num = int($add_num1);
+							}
+						}#$add_numÊÇÆ¥Åä³öµÄÐèÒª¼ÓµÄÊýÖµ£¬×Ö·û´®ÐÎÊ½
+					}
+				}
+				if($sched =~ /[:] *\t*$Memmap_name/)
+				{
+					$type_exchange = 1;#ÐÞ¸ÄµÄÀàÐÍµÚ¶þÖÖ£¬¸ßµÍÎ»½»»»
+				}
+				foreach $memmap(@memmap)
+				{
+					if($memmap =~ /$Memmap_name/ && $memmap !~ /$Memmap_name[\w]+/)
+					{
+						@Memmap=split(/[ \t\n]/,$memmap);
+						$memmap_address=@Memmap[0];
+						$memmap_address =~ s/0x//;
+						if($type_add==1)
+						{
+							$memmap_address_D = hex($memmap_address);
+							$memmap_address_D = $memmap_address_D+$add_num;
+							$memmap_address_H = sprintf("%x", $memmap_address_D);
+							$memmap_address = $memmap_address_H;
+							$memmap_address_add_finish = $memmap_address;
+							$sched_begin =~ s/$Memmap_name\+$add_num_begin/$memmap_address/;
+						}
+						if($type_exchange==1)
+						{
+							$memmap_address_High = substr($memmap_address,0,2);
+							$memmap_address_Low = substr($memmap_address,2,2);
+							$memmap_address = $memmap_address_Low." ".$memmap_address_High;
+							if($type_add==0)
+							{
+								$sched_begin =~ s/$Memmap_name/$memmap_address/;
+							}
+							else
+							{
+								$sched_begin =~ s/$memmap_address_add_finish/$memmap_address/;
+							}
+						}
+					}
+				}
+				$sched_begin =~ s/$Memmap_name/$memmap_address/;
+			}
+		}
+		printf Sched_test ("%s",$sched_begin);
+	}
+	else
+	{
+		printf Sched_test ("%s",$sched_begin);
+	}	
+}
+close(Sched_test);
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/utilities.h
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/utilities.h	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/utilities.h	(working copy)
@@ -0,0 +1,28 @@
+ï»¿#ifndef _YC_UTILITIES_H_
+#define _YC_UTILITIES_H_
+#include "common.h"
+
+
+/*==============Set a breakpoint function
+no input:
+no output
+====================*/
+void YC_Ice_break();
+
+//void YC_Ice_Set_Write_Bp(u16_t memaddr);
+
+void dmemcpy(u8_t *dest, u8_t* src, u16_t len) ;
+
+void xmemcpy(pxbyte dest, u8_t* src, u8_t len);
+
+void Delay1ms(u16_t Time);
+
+//void YC_DelayNOP(u8_t num);
+
+void xmemclear_0(u8_t *dest, u16_t len);
+
+void xmemclear_ff(u8_t *dest, u16_t len);
+
+u8_t compare_str(u8_t * str1,u8_t * str2,u8_t len);
+
+#endif
Index: Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/utilities.c
===================================================================
--- /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/utilities.c	(revision 0)
+++ /branch/mouse/1098_customers_code_release/Standard_mouse_fast_conn_project/BLE/Standard_mouse/c51/utilities.c	(working copy)
@@ -0,0 +1,66 @@
+#include "utilities.h"
+
+
+void YC_Ice_break()
+{
+	CPUB_ICE_CTRL = 1;
+	return;
+}
+
+void xmemcpy(pxbyte dest, u8_t* src, u8_t len) 
+{
+	while(len--)
+		*dest++ = *src++;
+	return;
+}
+
+void dmemcpy(u8_t *dest, u8_t* src, u16_t len) 
+{
+	while(len--)
+		*dest++ = *src++;
+	return;
+}
+
+void xmemclear_0(u8_t *dest, u16_t len)
+{
+	while(len--)
+		*dest++ = 0x00;
+	return;
+}
+
+void xmemclear_ff(u8_t *dest, u16_t len)
+{
+	while(len--)
+		*dest++ = 0xff;
+	return;
+}
+/*
+void YC_DelayNOP(u8_t num)
+{
+	for(;num>0;num--)
+	{
+		;
+	}
+}
+*/
+void Delay1ms(u16_t Time)
+{
+	u16_t j; 
+	for(;Time>0;Time--)
+	{
+		for(j=0;j<1190;j++);
+	}
+}
+
+u8_t compare_str(u8_t * str1,u8_t * str2,u8_t len)
+{
+	u8_t i;
+	for (i=0;i < len;i++)
+	{
+		if (str1[i] != str2[i])
+			return 0x00;
+	}
+	return 0x01;
+}
+
+
